summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--.mailmap1
-rw-r--r--CODE_OF_CONDUCT.md93
-rw-r--r--Documentation/Makefile8
-rw-r--r--Documentation/MyFirstContribution.txt10
-rw-r--r--Documentation/MyFirstObjectWalk.txt906
-rw-r--r--Documentation/RelNotes/2.24.0.txt398
-rw-r--r--Documentation/RelNotes/2.7.1.txt2
-rw-r--r--Documentation/RelNotes/2.8.0.txt2
-rw-r--r--Documentation/SubmittingPatches4
-rw-r--r--Documentation/asciidoc.conf6
-rw-r--r--Documentation/asciidoctor-extensions.rb24
-rw-r--r--Documentation/config.txt86
-rw-r--r--Documentation/config/core.txt6
-rw-r--r--Documentation/config/diff.txt2
-rw-r--r--Documentation/config/feature.txt37
-rw-r--r--Documentation/config/fetch.txt23
-rw-r--r--Documentation/config/format.txt2
-rw-r--r--Documentation/config/gc.txt2
-rw-r--r--Documentation/config/index.txt1
-rw-r--r--Documentation/config/pack.txt3
-rw-r--r--Documentation/config/remote.txt8
-rw-r--r--Documentation/config/trace2.txt6
-rw-r--r--Documentation/diff-generate-patch.txt32
-rwxr-xr-xDocumentation/doc-diff17
-rw-r--r--Documentation/fetch-options.txt20
-rw-r--r--Documentation/git-clean.txt16
-rw-r--r--Documentation/git-commit-graph.txt7
-rw-r--r--Documentation/git-commit.txt8
-rw-r--r--Documentation/git-config.txt56
-rw-r--r--Documentation/git-fast-export.txt23
-rw-r--r--Documentation/git-fast-import.txt25
-rw-r--r--Documentation/git-filter-branch.txt273
-rw-r--r--Documentation/git-format-patch.txt3
-rw-r--r--Documentation/git-gc.txt17
-rw-r--r--Documentation/git-grep.txt17
-rw-r--r--Documentation/git-gui.txt10
-rw-r--r--Documentation/git-ls-remote.txt32
-rw-r--r--Documentation/git-merge-base.txt98
-rw-r--r--Documentation/git-merge-index.txt26
-rw-r--r--Documentation/git-merge.txt2
-rw-r--r--Documentation/git-rebase.txt35
-rw-r--r--Documentation/git-receive-pack.txt52
-rw-r--r--Documentation/git-replace.txt10
-rw-r--r--Documentation/git-rev-list.txt54
-rw-r--r--Documentation/git-send-email.txt12
-rw-r--r--Documentation/git-stash.txt5
-rw-r--r--Documentation/git-status.txt18
-rw-r--r--Documentation/git-submodule.txt3
-rw-r--r--Documentation/git-svn.txt10
-rw-r--r--Documentation/gitattributes.txt2
-rw-r--r--Documentation/gitcli.txt6
-rw-r--r--Documentation/githooks.txt32
-rw-r--r--Documentation/gitmodules.txt17
-rw-r--r--Documentation/gitremote-helpers.txt15
-rw-r--r--Documentation/gitrepository-layout.txt2
-rw-r--r--Documentation/gitweb.conf.txt6
-rw-r--r--Documentation/manpage-bold-literal.xsl3
-rw-r--r--Documentation/manpage.xsl3
-rw-r--r--Documentation/merge-options.txt32
-rw-r--r--Documentation/pretty-formats.txt2
-rw-r--r--Documentation/rev-list-options.txt16
-rw-r--r--Documentation/technical/api-directory-listing.txt6
-rw-r--r--Documentation/technical/api-trace2.txt31
-rw-r--r--Documentation/technical/api-tree-walking.txt8
-rw-r--r--Documentation/technical/partial-clone.txt117
-rw-r--r--Documentation/trace2-target-values.txt4
-rw-r--r--Documentation/user-manual.txt377
-rwxr-xr-xGIT-VERSION-GEN2
-rw-r--r--Makefile64
l---------RelNotes2
-rw-r--r--apply.c54
-rw-r--r--apply.h1
-rw-r--r--archive-tar.c14
-rw-r--r--attr.c34
-rw-r--r--azure-pipelines.yml168
-rw-r--r--banned.h2
-rw-r--r--bisect.c2
-rw-r--r--blame.c27
-rw-r--r--builtin/am.c23
-rw-r--r--builtin/blame.c8
-rw-r--r--builtin/cat-file.c5
-rw-r--r--builtin/check-ignore.c34
-rw-r--r--builtin/checkout.c31
-rw-r--r--builtin/clean.c27
-rw-r--r--builtin/clone.c11
-rw-r--r--builtin/commit-graph.c35
-rw-r--r--builtin/commit.c4
-rw-r--r--builtin/describe.c24
-rw-r--r--builtin/difftool.c56
-rw-r--r--builtin/fast-export.c82
-rw-r--r--builtin/fetch.c304
-rw-r--r--builtin/gc.c15
-rw-r--r--builtin/grep.c15
-rw-r--r--builtin/index-pack.c12
-rw-r--r--builtin/log.c21
-rw-r--r--builtin/ls-files.c8
-rw-r--r--builtin/merge-recursive.c4
-rw-r--r--builtin/merge-tree.c5
-rw-r--r--builtin/merge.c31
-rw-r--r--builtin/name-rev.c15
-rw-r--r--builtin/pack-objects.c52
-rw-r--r--builtin/patch-id.c11
-rw-r--r--builtin/pull.c6
-rw-r--r--builtin/push.c75
-rw-r--r--builtin/rebase.c113
-rw-r--r--builtin/receive-pack.c50
-rw-r--r--builtin/repack.c12
-rw-r--r--builtin/replace.c9
-rw-r--r--builtin/rev-list.c5
-rw-r--r--builtin/rev-parse.c5
-rw-r--r--builtin/show-index.c13
-rw-r--r--builtin/stash.c19
-rw-r--r--builtin/submodule--helper.c4
-rw-r--r--builtin/update-index.c6
-rw-r--r--builtin/worktree.c5
-rw-r--r--bulk-checkin.c2
-rw-r--r--bundle.c4
-rw-r--r--cache-tree.c92
-rw-r--r--cache-tree.h3
-rw-r--r--cache.h68
-rwxr-xr-xci/install-dependencies.sh11
-rwxr-xr-xci/lib.sh7
-rwxr-xr-xci/run-static-analysis.sh3
-rwxr-xr-xci/test-documentation.sh2
-rw-r--r--column.c13
-rw-r--r--combine-diff.c2
-rw-r--r--commit-graph.c116
-rw-r--r--commit-graph.h21
-rw-r--r--commit-reach.c1
-rw-r--r--commit.c5
-rw-r--r--common-main.c8
-rw-r--r--compat/mingw.c34
-rw-r--r--compat/mingw.h6
-rw-r--r--compat/nedmalloc/malloc.c.h6
-rwxr-xr-xcompat/vcbuild/scripts/clink.pl48
-rw-r--r--compat/win32/path-utils.h5
-rw-r--r--compat/win32/pthread.h8
-rw-r--r--compat/winansi.c2
-rw-r--r--config.c57
-rw-r--r--config.mak.uname19
-rw-r--r--connect.c4
-rw-r--r--connected.c10
-rw-r--r--contrib/buildsystems/Generators/Vcxproj.pm18
-rw-r--r--contrib/coccinelle/hashmap.cocci16
-rw-r--r--contrib/completion/git-completion.bash295
-rw-r--r--contrib/completion/git-completion.zsh5
-rw-r--r--contrib/diff-highlight/DiffHighlight.pm2
-rwxr-xr-xcontrib/hg-to-git/hg-to-git.py50
-rw-r--r--contrib/svn-fe/svn-fe.txt4
-rwxr-xr-xcontrib/svn-fe/svnrdump_sim.py2
-rw-r--r--convert.c29
-rw-r--r--convert.h6
-rw-r--r--credential-store.c9
-rw-r--r--date.c27
-rw-r--r--diff-delta.c2
-rw-r--r--diff.c87
-rw-r--r--diff.h2
-rw-r--r--diffcore-break.c12
-rw-r--r--diffcore-rename.c17
-rw-r--r--dir.c349
-rw-r--r--dir.h79
-rw-r--r--environment.c2
-rw-r--r--fast-import.c103
-rw-r--r--fetch-negotiator.c25
-rw-r--r--fetch-negotiator.h5
-rw-r--r--fetch-object.c40
-rw-r--r--fetch-object.h9
-rw-r--r--fetch-pack.c103
-rw-r--r--fsmonitor.c29
-rwxr-xr-xgit-add--interactive.perl2
-rw-r--r--git-compat-util.h53
-rwxr-xr-xgit-filter-branch.sh14
-rw-r--r--git-gui/README.md174
-rwxr-xr-xgit-gui/git-gui.sh174
-rw-r--r--git-gui/lib/checkout_op.tcl6
-rw-r--r--git-gui/lib/commit.tcl4
-rw-r--r--git-gui/lib/diff.tcl129
-rw-r--r--git-gui/lib/index.tcl8
-rw-r--r--git-gui/po/ja.po9
-rwxr-xr-xgit-legacy-stash.sh2
-rwxr-xr-xgit-p4.py13
-rw-r--r--git.c5
-rwxr-xr-xgitk-git/gitk64
-rw-r--r--gitk-git/po/zh_cn.po1367
-rw-r--r--gitweb/static/js/blame_incremental.js2
-rw-r--r--grep.c243
-rw-r--r--grep.h27
-rw-r--r--hashmap.c58
-rw-r--r--hashmap.h176
-rw-r--r--help.c3
-rw-r--r--help.h2
-rw-r--r--http-push.c8
-rw-r--r--http.c7
-rw-r--r--http.h4
-rw-r--r--line-log.c71
-rw-r--r--list-objects-filter-options.c324
-rw-r--r--list-objects-filter-options.h62
-rw-r--r--list-objects-filter.c382
-rw-r--r--list-objects-filter.h40
-rw-r--r--list-objects.c59
-rw-r--r--ll-merge.c19
-rw-r--r--ll-merge.h1
-rw-r--r--log-tree.c5
-rw-r--r--merge-recursive.c656
-rw-r--r--merge-recursive.h164
-rw-r--r--midx.c11
-rw-r--r--name-hash.c57
-rw-r--r--notes.c6
-rw-r--r--object.c1
-rw-r--r--object.h3
-rw-r--r--oidmap.c20
-rw-r--r--oidmap.h6
-rw-r--r--pack-bitmap-write.c2
-rw-r--r--pack-bitmap.c6
-rw-r--r--pack-bitmap.h6
-rw-r--r--pack-objects.c22
-rw-r--r--pack-objects.h6
-rw-r--r--pack-write.c8
-rw-r--r--packfile.c50
-rw-r--r--packfile.h2
-rw-r--r--parse-options.c3
-rw-r--r--parse-options.h18
-rw-r--r--patch-ids.c18
-rw-r--r--path.c39
-rw-r--r--path.h3
-rw-r--r--perl/Git/SVN.pm4
-rw-r--r--po/bg.po4987
-rw-r--r--po/ca.po60
-rw-r--r--po/de.po5044
-rw-r--r--po/es.po5220
-rw-r--r--po/fr.po4994
-rw-r--r--po/git.pot4924
-rw-r--r--po/it.po5034
-rw-r--r--po/sv.po5240
-rw-r--r--po/vi.po5040
-rw-r--r--po/zh_CN.po4978
-rw-r--r--pretty.c2
-rw-r--r--progress.c61
-rw-r--r--promisor-remote.c268
-rw-r--r--promisor-remote.h33
-rw-r--r--quote.c24
-rw-r--r--quote.h1
-rw-r--r--range-diff.c13
-rw-r--r--read-cache.c55
-rw-r--r--ref-filter.c43
-rw-r--r--refs.c25
-rw-r--r--refs/packed-backend.c23
-rw-r--r--remote-curl.c35
-rw-r--r--remote.c21
-rw-r--r--remote.h2
-rw-r--r--repo-settings.c68
-rw-r--r--repository.h34
-rw-r--r--rerere.c8
-rw-r--r--revision.c44
-rw-r--r--send-pack.c3
-rw-r--r--sequencer.c203
-rw-r--r--sequencer.h6
-rw-r--r--setup.c13
-rw-r--r--sha1-file.c24
-rw-r--r--sha1-lookup.c12
-rw-r--r--sha1-name.c35
-rw-r--r--shallow.c5
-rw-r--r--stable-qsort.c (renamed from compat/qsort.c)6
-rw-r--r--strbuf.c15
-rw-r--r--strbuf.h7
-rw-r--r--sub-process.c20
-rw-r--r--sub-process.h6
-rw-r--r--submodule-config.c52
-rw-r--r--t/helper/.gitignore9
-rw-r--r--t/helper/test-date.c27
-rw-r--r--t/helper/test-hashmap.c50
-rw-r--r--t/helper/test-lazy-init-name-hash.c12
-rw-r--r--t/helper/test-progress.c81
-rw-r--r--t/helper/test-read-cache.c5
-rw-r--r--t/helper/test-run-command.c153
-rw-r--r--t/helper/test-tool.c1
-rw-r--r--t/helper/test-tool.h1
-rw-r--r--t/lib-git-svn.sh2
-rw-r--r--t/lib-rebase.sh9
-rwxr-xr-xt/perf/p5601-clone-reference.sh (renamed from t/perf/p5600-clone-reference.sh)0
-rwxr-xr-xt/t0000-basic.sh58
-rwxr-xr-xt/t0014-alias.sh7
-rwxr-xr-xt/t0021-conversion.sh3
-rwxr-xr-xt/t0028-working-tree-encoding.sh41
-rwxr-xr-xt/t0040-parse-options.sh7
-rwxr-xr-xt/t0050-filesystem.sh20
-rwxr-xr-xt/t0061-run-command.sh21
-rwxr-xr-xt/t0211-trace2-perf.sh4
-rwxr-xr-xt/t0212-trace2-event.sh19
-rwxr-xr-xt/t0410-partial-clone.sh93
-rwxr-xr-xt/t0500-progress-display.sh286
-rwxr-xr-xt/t1300-config.sh9
-rwxr-xr-xt/t1308-config-set.sh8
-rwxr-xr-xt/t1309-early-config.sh7
-rwxr-xr-xt/t1404-update-ref-errors.sh64
-rwxr-xr-xt/t1414-reflog-walk.sh3
-rwxr-xr-xt/t1450-fsck.sh16
-rwxr-xr-xt/t1506-rev-parse-diagnosis.sh13
-rwxr-xr-xt/t1507-rev-parse-upstream.sh12
-rwxr-xr-xt/t1600-index.sh35
-rwxr-xr-xt/t2022-checkout-paths.sh11
-rwxr-xr-xt/t2070-restore.sh11
-rwxr-xr-xt/t3005-ls-files-relative.sh12
-rwxr-xr-xt/t3030-merge-recursive.sh37
-rwxr-xr-xt/t3201-branch-contains.sh8
-rwxr-xr-xt/t3206-range-diff.sh271
-rw-r--r--t/t3206/history.export31
-rwxr-xr-xt/t3301-notes.sh140
-rwxr-xr-xt/t3305-notes-fanout.sh22
-rwxr-xr-xt/t3306-notes-prune.sh45
-rwxr-xr-xt/t3400-rebase.sh38
-rwxr-xr-xt/t3404-rebase-interactive.sh43
-rwxr-xr-xt/t3416-rebase-onto-threedots.sh57
-rwxr-xr-xt/t3418-rebase-continue.sh14
-rwxr-xr-xt/t3420-rebase-autostash.sh12
-rwxr-xr-xt/t3421-rebase-topology-linear.sh29
-rwxr-xr-xt/t3422-rebase-incompatible-options.sh10
-rwxr-xr-xt/t3427-rebase-subtree.sh160
-rwxr-xr-xt/t3429-rebase-edit-todo.sh21
-rwxr-xr-xt/t3430-rebase-merges.sh45
-rwxr-xr-xt/t3431-rebase-fork-point.sh57
-rwxr-xr-xt/t3432-rebase-fast-forward.sh125
-rwxr-xr-xt/t3506-cherry-pick-ff.sh8
-rwxr-xr-xt/t3600-rm.sh4
-rwxr-xr-xt/t3701-add-interactive.sh2
-rwxr-xr-xt/t3800-mktag.sh49
-rwxr-xr-xt/t3903-stash.sh48
-rwxr-xr-xt/t3906-stash-submodule.sh42
-rwxr-xr-xt/t3908-stash-in-worktree.sh27
-rwxr-xr-xt/t4000-diff-format.sh2
-rwxr-xr-xt/t4002-diff-basic.sh367
-rwxr-xr-xt/t4009-diff-rename-4.sh19
-rwxr-xr-xt/t4013-diff-various.sh3
-rwxr-xr-xt/t4014-format-patch.sh26
-rwxr-xr-xt/t4018-diff-funcname.sh1
-rw-r--r--t/t4018/dts-labels9
-rw-r--r--t/t4018/dts-node-unitless8
-rw-r--r--t/t4018/dts-nodes8
-rw-r--r--t/t4018/dts-nodes-boolean-prop9
-rw-r--r--t/t4018/dts-nodes-comment18
-rw-r--r--t/t4018/dts-nodes-comment28
-rw-r--r--t/t4018/dts-nodes-multiline-prop13
-rw-r--r--t/t4018/dts-reference9
-rw-r--r--t/t4018/dts-root5
-rw-r--r--t/t4018/dts-root-comment8
-rwxr-xr-xt/t4034-diff-words.sh1
-rw-r--r--t/t4034/dts/expect37
-rw-r--r--t/t4034/dts/post32
-rw-r--r--t/t4034/dts/pre32
-rwxr-xr-xt/t4038-diff-combined.sh2
-rwxr-xr-xt/t4067-diff-partial-clone.sh31
-rwxr-xr-xt/t4150-am.sh52
-rwxr-xr-xt/t4202-log.sh22
-rwxr-xr-xt/t4210-log-i18n.sh41
-rwxr-xr-xt/t4211-line-log.sh82
-rwxr-xr-xt/t4214-log-graph-octopus.sh329
-rwxr-xr-xt/t5004-archive-corner-cases.sh19
-rwxr-xr-xt/t5307-pack-missing-commit.sh4
-rwxr-xr-xt/t5318-commit-graph.sh93
-rwxr-xr-xt/t5324-split-commit-graph.sh4
-rwxr-xr-xt/t5500-fetch-pack.sh54
-rwxr-xr-xt/t5510-fetch.sh76
-rwxr-xr-xt/t5514-fetch-multiple.sh11
-rwxr-xr-xt/t5515-fetch-merge-logic.sh3
-rwxr-xr-xt/t5517-push-mirror.sh10
-rwxr-xr-xt/t5537-fetch-shallow.sh3
-rwxr-xr-xt/t5541-http-push-smart.sh46
-rwxr-xr-xt/t5545-push-options.sh3
-rwxr-xr-xt/t5552-skipping-fetch-negotiator.sh23
-rwxr-xr-xt/t5553-set-upstream.sh178
-rwxr-xr-xt/t5601-clone.sh7
-rwxr-xr-xt/t5607-clone-bundle.sh11
-rwxr-xr-xt/t5616-partial-clone.sh70
-rwxr-xr-xt/t5700-protocol-v1.sh3
-rwxr-xr-xt/t5702-protocol-v2.sh16
-rwxr-xr-xt/t5703-upload-pack-ref-in-want.sh204
-rwxr-xr-xt/t5801-remote-helpers.sh1
-rwxr-xr-xt/t6000-rev-list-misc.sh8
-rwxr-xr-xt/t6006-rev-list-format.sh5
-rwxr-xr-xt/t6011-rev-list-with-bad-commit.sh2
-rwxr-xr-xt/t6036-recursive-corner-cases.sh8
-rwxr-xr-xt/t6047-diff3-conflict-markers.sh202
-rwxr-xr-xt/t6112-rev-list-filters-objects.sh194
-rwxr-xr-xt/t6120-describe.sh15
-rwxr-xr-xt/t6300-for-each-ref.sh19
-rwxr-xr-xt/t6501-freshen-objects.sh6
-rwxr-xr-xt/t7008-filter-branch-null-sha1.sh (renamed from t/t7009-filter-branch-null-sha1.sh)0
-rwxr-xr-xt/t7300-clean.sh64
-rwxr-xr-xt/t7400-submodule-basic.sh2
-rwxr-xr-xt/t7406-submodule-update.sh3
-rwxr-xr-xt/t7419-submodule-set-branch.sh6
-rwxr-xr-xt/t7503-pre-commit-and-pre-merge-commit-hooks.sh281
-rwxr-xr-xt/t7503-pre-commit-hook.sh139
-rwxr-xr-xt/t7505-prepare-commit-msg-hook.sh8
-rw-r--r--t/t7505/expected-rebase-i3
-rwxr-xr-xt/t7512-status-help.sh6
-rwxr-xr-xt/t7519-status-fsmonitor.sh19
-rwxr-xr-xt/t7519/fsmonitor-env24
-rwxr-xr-xt/t7812-grep-icase-non-ascii.sh28
-rwxr-xr-xt/t7814-grep-recurse-submodules.sh21
-rwxr-xr-xt/t7815-grep-binary.sh (renamed from t/t7008-grep-binary.sh)101
-rwxr-xr-xt/t7816-grep-binary-pattern.sh127
-rwxr-xr-xt/t9300-fast-import.sh50
-rwxr-xr-xt/t9350-fast-export.sh68
-rwxr-xr-xt/t9902-completion.sh75
-rw-r--r--t/test-lib-functions.sh10
-rw-r--r--t/test-lib.sh43
-rw-r--r--tag.c7
-rw-r--r--tag.h1
-rwxr-xr-xtemplates/hooks--pre-merge-commit.sample13
-rw-r--r--trace.c2
-rw-r--r--trace2/tr2_dst.c120
-rw-r--r--trace2/tr2_dst.h1
-rw-r--r--trace2/tr2_sysenv.c3
-rw-r--r--trace2/tr2_sysenv.h2
-rw-r--r--trace2/tr2_tgt_event.c36
-rw-r--r--trace2/tr2_tgt_normal.c37
-rw-r--r--trace2/tr2_tgt_perf.c91
-rw-r--r--transport-helper.c52
-rw-r--r--transport-internal.h6
-rw-r--r--transport.c33
-rw-r--r--transport.h3
-rw-r--r--tree-walk.c64
-rw-r--r--tree-walk.h18
-rw-r--r--tree.c18
-rw-r--r--unpack-trees.c150
-rw-r--r--unpack-trees.h4
-rw-r--r--upload-pack.c15
-rw-r--r--url.c6
-rw-r--r--url.h8
-rw-r--r--userdiff.c9
-rw-r--r--utf8.c6
-rw-r--r--wrapper.c84
-rw-r--r--wt-status.c6
-rw-r--r--wt-status.h2
-rw-r--r--xdiff/xdiffi.c99
437 files changed, 37865 insertions, 26943 deletions
diff --git a/.gitignore b/.gitignore
index 521d8f4..89b3b79 100644
--- a/.gitignore
+++ b/.gitignore
@@ -216,6 +216,7 @@
/tags
/TAGS
/cscope*
+*.hcc
*.obj
*.lib
*.res
@@ -231,7 +232,6 @@
*.ipdb
*.dll
.vs/
-*.manifest
Debug/
Release/
/UpgradeLog*.htm
diff --git a/.mailmap b/.mailmap
index 9a5ff04..14fa041 100644
--- a/.mailmap
+++ b/.mailmap
@@ -18,6 +18,7 @@ Alexey Shumkin <alex.crezoff@gmail.com> <zapped@mail.ru>
Alexey Shumkin <alex.crezoff@gmail.com> <Alex.Crezoff@gmail.com>
Anders Kaseorg <andersk@MIT.EDU> <andersk@ksplice.com>
Anders Kaseorg <andersk@MIT.EDU> <andersk@mit.edu>
+Andrey Mazo <ahippo@yandex.com> Mazo, Andrey <amazo@checkvideo.com>
Aneesh Kumar K.V <aneesh.kumar@gmail.com>
Amos Waterland <apw@debian.org> <apw@rossby.metr.ou.edu>
Amos Waterland <apw@debian.org> <apw@us.ibm.com>
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..fc4645d
--- /dev/null
+++ b/CODE_OF_CONDUCT.md
@@ -0,0 +1,93 @@
+# Git Code of Conduct
+
+This code of conduct outlines our expectations for participants within
+the Git community, as well as steps for reporting unacceptable behavior.
+We are committed to providing a welcoming and inspiring community for
+all and expect our code of conduct to be honored. Anyone who violates
+this code of conduct may be banned from the community.
+
+## Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to make participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, sex characteristics, gender identity and
+expression, level of experience, education, socio-economic status,
+nationality, personal appearance, race, religion, or sexual identity and
+orientation.
+
+## Our Standards
+
+Examples of behavior that contributes to creating a positive environment
+include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or
+ advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic
+ address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a
+ professional setting
+
+## Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+## Scope
+
+This Code of Conduct applies within all project spaces, and it also applies
+when an individual is representing the project or its community in public
+spaces. Examples of representing a project or community include using an
+official project e-mail address, posting via an official social media account,
+or acting as an appointed representative at an online or offline event.
+Representation of a project may be further defined and clarified by project
+maintainers.
+
+## Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at git@sfconservancy.org. All
+complaints will be reviewed and investigated and will result in a response
+that is deemed necessary and appropriate to the circumstances. The project
+team is obligated to maintain confidentiality with regard to the reporter of
+an incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+The project leadership team can be contacted by email as a whole at
+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>
+
+## Attribution
+
+This Code of Conduct is adapted from the [Contributor Covenant][homepage],
+version 1.4, available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
+
+[homepage]: https://www.contributor-covenant.org
+
+For answers to common questions about this code of conduct, see
+https://www.contributor-covenant.org/faq
diff --git a/Documentation/Makefile b/Documentation/Makefile
index 76f2ecf..8fe829c 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -77,6 +77,7 @@ API_DOCS = $(patsubst %.txt,%,$(filter-out technical/api-index-skel.txt technica
SP_ARTICLES += $(API_DOCS)
TECH_DOCS += MyFirstContribution
+TECH_DOCS += MyFirstObjectWalk
TECH_DOCS += SubmittingPatches
TECH_DOCS += technical/hash-function-transition
TECH_DOCS += technical/http-protocol
@@ -123,7 +124,8 @@ ASCIIDOC_HTML = xhtml11
ASCIIDOC_DOCBOOK = docbook
ASCIIDOC_CONF = -f asciidoc.conf
ASCIIDOC_COMMON = $(ASCIIDOC) $(ASCIIDOC_EXTRA) $(ASCIIDOC_CONF) \
- -agit_version=$(GIT_VERSION)
+ -amanversion=$(GIT_VERSION) \
+ -amanmanual='Git Manual' -amansource='Git'
TXT_TO_HTML = $(ASCIIDOC_COMMON) -b $(ASCIIDOC_HTML)
TXT_TO_XML = $(ASCIIDOC_COMMON) -b $(ASCIIDOC_DOCBOOK)
MANPAGE_XSL = manpage-normal.xsl
@@ -197,11 +199,13 @@ ifdef USE_ASCIIDOCTOR
ASCIIDOC = asciidoctor
ASCIIDOC_CONF =
ASCIIDOC_HTML = xhtml5
-ASCIIDOC_DOCBOOK = docbook45
+ASCIIDOC_DOCBOOK = docbook5
ASCIIDOC_EXTRA += -acompat-mode -atabsize=8
ASCIIDOC_EXTRA += -I. -rasciidoctor-extensions
ASCIIDOC_EXTRA += -alitdd='&\#x2d;&\#x2d;'
DBLATEX_COMMON =
+XMLTO_EXTRA += --skip-validation
+XMLTO_EXTRA += -x manpage.xsl
endif
SHELL_PATH ?= $(SHELL)
diff --git a/Documentation/MyFirstContribution.txt b/Documentation/MyFirstContribution.txt
index f867037..5e9b808 100644
--- a/Documentation/MyFirstContribution.txt
+++ b/Documentation/MyFirstContribution.txt
@@ -97,8 +97,8 @@ int cmd_psuh(int argc, const char **argv, const char *prefix)
----
We'll also need to add the declaration of psuh; open up `builtin.h`, find the
-declaration for `cmd_push`, and add a new line for `psuh` immediately before it,
-in order to keep the declarations sorted:
+declaration for `cmd_pull`, and add a new line for `psuh` immediately before it,
+in order to keep the declarations alphabetically sorted:
----
int cmd_psuh(int argc, const char **argv, const char *prefix);
@@ -123,7 +123,7 @@ int cmd_psuh(int argc, const char **argv, const char *prefix)
}
----
-Let's try to build it. Open `Makefile`, find where `builtin/push.o` is added
+Let's try to build it. Open `Makefile`, find where `builtin/pull.o` is added
to `BUILTIN_OBJS`, and add `builtin/psuh.o` in the same way next to it in
alphabetical order. Once you've done so, move to the top-level directory and
build simply with `make`. Also add the `DEVELOPER=1` variable to turn on
@@ -149,7 +149,7 @@ a `cmd_struct` to the `commands[]` array. `struct cmd_struct` takes a string
with the command name, a function pointer to the command implementation, and a
setup option flag. For now, let's keep mimicking `push`. Find the line where
`cmd_push` is registered, copy it, and modify it for `cmd_psuh`, placing the new
-line in alphabetical order.
+line in alphabetical order (immediately before `cmd_pull`).
The options are documented in `builtin.h` under "Adding a new built-in." Since
we hope to print some data about the user's current workspace context later,
@@ -167,7 +167,7 @@ Check it out! You've got a command! Nice work! Let's commit this.
`git status` reveals modified `Makefile`, `builtin.h`, and `git.c` as well as
untracked `builtin/psuh.c` and `git-psuh`. First, let's take care of the binary,
-which should be ignored. Open `.gitignore` in your editor, find `/git-push`, and
+which should be ignored. Open `.gitignore` in your editor, find `/git-pull`, and
add an entry for your new command in alphabetical order:
----
diff --git a/Documentation/MyFirstObjectWalk.txt b/Documentation/MyFirstObjectWalk.txt
new file mode 100644
index 0000000..4d24dae
--- /dev/null
+++ b/Documentation/MyFirstObjectWalk.txt
@@ -0,0 +1,906 @@
+= My First Object Walk
+
+== What's an Object Walk?
+
+The object walk is a key concept in Git - this is the process that underpins
+operations like object transfer and fsck. Beginning from a given commit, the
+list of objects is found by walking parent relationships between commits (commit
+X based on commit W) and containment relationships between objects (tree Y is
+contained within commit X, and blob Z is located within tree Y, giving our
+working tree for commit X something like `y/z.txt`).
+
+A related concept is the revision walk, which is focused on commit objects and
+their parent relationships and does not delve into other object types. The
+revision walk is used for operations like `git log`.
+
+=== Related Reading
+
+- `Documentation/user-manual.txt` under "Hacking Git" contains some coverage of
+ the revision walker in its various incarnations.
+- `Documentation/technical/api-revision-walking.txt`
+- https://eagain.net/articles/git-for-computer-scientists/[Git for Computer Scientists]
+ gives a good overview of the types of objects in Git and what your object
+ walk is really describing.
+
+== Setting Up
+
+Create a new branch from `master`.
+
+----
+git checkout -b revwalk origin/master
+----
+
+We'll put our fiddling into a new command. For fun, let's name it `git walken`.
+Open up a new file `builtin/walken.c` and set up the command handler:
+
+----
+/*
+ * "git walken"
+ *
+ * Part of the "My First Object Walk" tutorial.
+ */
+
+#include "builtin.h"
+
+int cmd_walken(int argc, const char **argv, const char *prefix)
+{
+ trace_printf(_("cmd_walken incoming...\n"));
+ return 0;
+}
+----
+
+NOTE: `trace_printf()` differs from `printf()` in that it can be turned on or
+off at runtime. For the purposes of this tutorial, we will write `walken` as
+though it is intended for use as a "plumbing" command: that is, a command which
+is used primarily in scripts, rather than interactively by humans (a "porcelain"
+command). So we will send our debug output to `trace_printf()` instead. When
+running, enable trace output by setting the environment variable `GIT_TRACE`.
+
+Add usage text and `-h` handling, like all subcommands should consistently do
+(our test suite will notice and complain if you fail to do so).
+
+----
+int cmd_walken(int argc, const char **argv, const char *prefix)
+{
+ const char * const walken_usage[] = {
+ N_("git walken"),
+ NULL,
+ }
+ struct option options[] = {
+ OPT_END()
+ };
+
+ argc = parse_options(argc, argv, prefix, options, walken_usage, 0);
+
+ ...
+}
+----
+
+Also add the relevant line in `builtin.h` near `cmd_whatchanged()`:
+
+----
+int cmd_walken(int argc, const char **argv, const char *prefix);
+----
+
+Include the command in `git.c` in `commands[]` near the entry for `whatchanged`,
+maintaining alphabetical ordering:
+
+----
+{ "walken", cmd_walken, RUN_SETUP },
+----
+
+Add it to the `Makefile` near the line for `builtin/worktree.o`:
+
+----
+BUILTIN_OBJS += builtin/walken.o
+----
+
+Build and test out your command, without forgetting to ensure the `DEVELOPER`
+flag is set, and with `GIT_TRACE` enabled so the debug output can be seen:
+
+----
+$ echo DEVELOPER=1 >>config.mak
+$ make
+$ GIT_TRACE=1 ./bin-wrappers/git walken
+----
+
+NOTE: For a more exhaustive overview of the new command process, take a look at
+`Documentation/MyFirstContribution.txt`.
+
+NOTE: A reference implementation can be found at
+https://github.com/nasamuffin/git/tree/revwalk.
+
+=== `struct rev_cmdline_info`
+
+The definition of `struct rev_cmdline_info` can be found in `revision.h`.
+
+This struct is contained within the `rev_info` struct and is used to reflect
+parameters provided by the user over the CLI.
+
+`nr` represents the number of `rev_cmdline_entry` present in the array.
+
+`alloc` is used by the `ALLOC_GROW` macro. Check
+`Documentation/technical/api-allocation-growing.txt` - this variable is used to
+track the allocated size of the list.
+
+Per entry, we find:
+
+`item` is the object provided upon which to base the object walk. Items in Git
+can be blobs, trees, commits, or tags. (See `Documentation/gittutorial-2.txt`.)
+
+`name` is the object ID (OID) of the object - a hex string you may be familiar
+with from using Git to organize your source in the past. Check the tutorial
+mentioned above towards the top for a discussion of where the OID can come
+from.
+
+`whence` indicates some information about what to do with the parents of the
+specified object. We'll explore this flag more later on; take a look at
+`Documentation/revisions.txt` to get an idea of what could set the `whence`
+value.
+
+`flags` are used to hint the beginning of the revision walk and are the first
+block under the `#include`s in `revision.h`. The most likely ones to be set in
+the `rev_cmdline_info` are `UNINTERESTING` and `BOTTOM`, but these same flags
+can be used during the walk, as well.
+
+=== `struct rev_info`
+
+This one is quite a bit longer, and many fields are only used during the walk
+by `revision.c` - not configuration options. Most of the configurable flags in
+`struct rev_info` have a mirror in `Documentation/rev-list-options.txt`. It's a
+good idea to take some time and read through that document.
+
+== Basic Commit Walk
+
+First, let's see if we can replicate the output of `git log --oneline`. We'll
+refer back to the implementation frequently to discover norms when performing
+an object walk of our own.
+
+To do so, we'll first find all the commits, in order, which preceded the current
+commit. We'll extract the name and subject of the commit from each.
+
+Ideally, we will also be able to find out which ones are currently at the tip of
+various branches.
+
+=== Setting Up
+
+Preparing for your object walk has some distinct stages.
+
+1. Perform default setup for this mode, and others which may be invoked.
+2. Check configuration files for relevant settings.
+3. Set up the `rev_info` struct.
+4. Tweak the initialized `rev_info` to suit the current walk.
+5. Prepare the `rev_info` for the walk.
+6. Iterate over the objects, processing each one.
+
+==== Default Setups
+
+Before examining configuration files which may modify command behavior, set up
+default state for switches or options your command may have. If your command
+utilizes other Git components, ask them to set up their default states as well.
+For instance, `git log` takes advantage of `grep` and `diff` functionality, so
+its `init_log_defaults()` sets its own state (`decoration_style`) and asks
+`grep` and `diff` to initialize themselves by calling each of their
+initialization functions.
+
+For our first example within `git walken`, we don't intend to use any other
+components within Git, and we don't have any configuration to do. However, we
+may want to add some later, so for now, we can add an empty placeholder. Create
+a new function in `builtin/walken.c`:
+
+----
+static void init_walken_defaults(void)
+{
+ /*
+ * We don't actually need the same components `git log` does; leave this
+ * empty for now.
+ */
+}
+----
+
+Make sure to add a line invoking it inside of `cmd_walken()`.
+
+----
+int cmd_walken(int argc, const char **argv, const char *prefix)
+{
+ init_walken_defaults();
+}
+----
+
+==== Configuring From `.gitconfig`
+
+Next, we should have a look at any relevant configuration settings (i.e.,
+settings readable and settable from `git config`). This is done by providing a
+callback to `git_config()`; within that callback, you can also invoke methods
+from other components you may need that need to intercept these options. Your
+callback will be invoked once per each configuration value which Git knows about
+(global, local, worktree, etc.).
+
+Similarly to the default values, we don't have anything to do here yet
+ourselves; however, we should call `git_default_config()` if we aren't calling
+any other existing config callbacks.
+
+Add a new function to `builtin/walken.c`:
+
+----
+static int git_walken_config(const char *var, const char *value, void *cb)
+{
+ /*
+ * For now, we don't have any custom configuration, so fall back to
+ * the default config.
+ */
+ return git_default_config(var, value, cb);
+}
+----
+
+Make sure to invoke `git_config()` with it in your `cmd_walken()`:
+
+----
+int cmd_walken(int argc, const char **argv, const char *prefix)
+{
+ ...
+
+ git_config(git_walken_config, NULL);
+
+ ...
+}
+----
+
+==== Setting Up `rev_info`
+
+Now that we've gathered external configuration and options, it's time to
+initialize the `rev_info` object which we will use to perform the walk. This is
+typically done by calling `repo_init_revisions()` with the repository you intend
+to target, as well as the `prefix` argument of `cmd_walken` and your `rev_info`
+struct.
+
+Add the `struct rev_info` and the `repo_init_revisions()` call:
+----
+int cmd_walken(int argc, const char **argv, const char *prefix)
+{
+ /* This can go wherever you like in your declarations.*/
+ struct rev_info rev;
+ ...
+
+ /* This should go after the git_config() call. */
+ repo_init_revisions(the_repository, &rev, prefix);
+
+ ...
+}
+----
+
+==== Tweaking `rev_info` For the Walk
+
+We're getting close, but we're still not quite ready to go. Now that `rev` is
+initialized, we can modify it to fit our needs. This is usually done within a
+helper for clarity, so let's add one:
+
+----
+static void final_rev_info_setup(struct rev_info *rev)
+{
+ /*
+ * We want to mimic the appearance of `git log --oneline`, so let's
+ * force oneline format.
+ */
+ get_commit_format("oneline", rev);
+
+ /* Start our object walk at HEAD. */
+ add_head_to_pending(rev);
+}
+----
+
+[NOTE]
+====
+Instead of using the shorthand `add_head_to_pending()`, you could do
+something like this:
+----
+ struct setup_revision_opt opt;
+
+ memset(&opt, 0, sizeof(opt));
+ opt.def = "HEAD";
+ opt.revarg_opt = REVARG_COMMITTISH;
+ setup_revisions(argc, argv, rev, &opt);
+----
+Using a `setup_revision_opt` gives you finer control over your walk's starting
+point.
+====
+
+Then let's invoke `final_rev_info_setup()` after the call to
+`repo_init_revisions()`:
+
+----
+int cmd_walken(int argc, const char **argv, const char *prefix)
+{
+ ...
+
+ final_rev_info_setup(&rev);
+
+ ...
+}
+----
+
+Later, we may wish to add more arguments to `final_rev_info_setup()`. But for
+now, this is all we need.
+
+==== Preparing `rev_info` For the Walk
+
+Now that `rev` is all initialized and configured, we've got one more setup step
+before we get rolling. We can do this in a helper, which will both prepare the
+`rev_info` for the walk, and perform the walk itself. Let's start the helper
+with the call to `prepare_revision_walk()`, which can return an error without
+dying on its own:
+
+----
+static void walken_commit_walk(struct rev_info *rev)
+{
+ if (prepare_revision_walk(rev))
+ die(_("revision walk setup failed"));
+}
+----
+
+NOTE: `die()` prints to `stderr` and exits the program. Since it will print to
+`stderr` it's likely to be seen by a human, so we will localize it.
+
+==== Performing the Walk!
+
+Finally! We are ready to begin the walk itself. Now we can see that `rev_info`
+can also be used as an iterator; we move to the next item in the walk by using
+`get_revision()` repeatedly. Add the listed variable declarations at the top and
+the walk loop below the `prepare_revision_walk()` call within your
+`walken_commit_walk()`:
+
+----
+static void walken_commit_walk(struct rev_info *rev)
+{
+ struct commit *commit;
+ struct strbuf prettybuf = STRBUF_INIT;
+
+ ...
+
+ while ((commit = get_revision(rev))) {
+ if (!commit)
+ continue;
+
+ strbuf_reset(&prettybuf);
+ pp_commit_easy(CMIT_FMT_ONELINE, commit, &prettybuf);
+ puts(prettybuf.buf);
+ }
+ strbuf_release(&prettybuf);
+}
+----
+
+NOTE: `puts()` prints a `char*` to `stdout`. Since this is the part of the
+command we expect to be machine-parsed, we're sending it directly to stdout.
+
+Give it a shot.
+
+----
+$ make
+$ ./bin-wrappers/git walken
+----
+
+You should see all of the subject lines of all the commits in
+your tree's history, in order, ending with the initial commit, "Initial revision
+of "git", the information manager from hell". Congratulations! You've written
+your first revision walk. You can play with printing some additional fields
+from each commit if you're curious; have a look at the functions available in
+`commit.h`.
+
+=== Adding a Filter
+
+Next, let's try to filter the commits we see based on their author. This is
+equivalent to running `git log --author=<pattern>`. We can add a filter by
+modifying `rev_info.grep_filter`, which is a `struct grep_opt`.
+
+First some setup. Add `init_grep_defaults()` to `init_walken_defaults()` and add
+`grep_config()` to `git_walken_config()`:
+
+----
+static void init_walken_defaults(void)
+{
+ init_grep_defaults(the_repository);
+}
+
+...
+
+static int git_walken_config(const char *var, const char *value, void *cb)
+{
+ grep_config(var, value, cb);
+ return git_default_config(var, value, cb);
+}
+----
+
+Next, we can modify the `grep_filter`. This is done with convenience functions
+found in `grep.h`. For fun, we're filtering to only commits from folks using a
+`gmail.com` email address - a not-very-precise guess at who may be working on
+Git as a hobby. Since we're checking the author, which is a specific line in the
+header, we'll use the `append_header_grep_pattern()` helper. We can use
+the `enum grep_header_field` to indicate which part of the commit header we want
+to search.
+
+In `final_rev_info_setup()`, add your filter line:
+
+----
+static void final_rev_info_setup(int argc, const char **argv,
+ const char *prefix, struct rev_info *rev)
+{
+ ...
+
+ append_header_grep_pattern(&rev->grep_filter, GREP_HEADER_AUTHOR,
+ "gmail");
+ compile_grep_patterns(&rev->grep_filter);
+
+ ...
+}
+----
+
+`append_header_grep_pattern()` adds your new "gmail" pattern to `rev_info`, but
+it won't work unless we compile it with `compile_grep_patterns()`.
+
+NOTE: If you are using `setup_revisions()` (for example, if you are passing a
+`setup_revision_opt` instead of using `add_head_to_pending()`), you don't need
+to call `compile_grep_patterns()` because `setup_revisions()` calls it for you.
+
+NOTE: We could add the same filter via the `append_grep_pattern()` helper if we
+wanted to, but `append_header_grep_pattern()` adds the `enum grep_context` and
+`enum grep_pat_token` for us.
+
+=== Changing the Order
+
+There are a few ways that we can change the order of the commits during a
+revision walk. Firstly, we can use the `enum rev_sort_order` to choose from some
+typical orderings.
+
+`topo_order` is the same as `git log --topo-order`: we avoid showing a parent
+before all of its children have been shown, and we avoid mixing commits which
+are in different lines of history. (`git help log`'s section on `--topo-order`
+has a very nice diagram to illustrate this.)
+
+Let's see what happens when we run with `REV_SORT_BY_COMMIT_DATE` as opposed to
+`REV_SORT_BY_AUTHOR_DATE`. Add the following:
+
+----
+static void final_rev_info_setup(int argc, const char **argv,
+ const char *prefix, struct rev_info *rev)
+{
+ ...
+
+ rev->topo_order = 1;
+ rev->sort_order = REV_SORT_BY_COMMIT_DATE;
+
+ ...
+}
+----
+
+Let's output this into a file so we can easily diff it with the walk sorted by
+author date.
+
+----
+$ make
+$ ./bin-wrappers/git walken > commit-date.txt
+----
+
+Then, let's sort by author date and run it again.
+
+----
+static void final_rev_info_setup(int argc, const char **argv,
+ const char *prefix, struct rev_info *rev)
+{
+ ...
+
+ rev->topo_order = 1;
+ rev->sort_order = REV_SORT_BY_AUTHOR_DATE;
+
+ ...
+}
+----
+
+----
+$ make
+$ ./bin-wrappers/git walken > author-date.txt
+----
+
+Finally, compare the two. This is a little less helpful without object names or
+dates, but hopefully we get the idea.
+
+----
+$ diff -u commit-date.txt author-date.txt
+----
+
+This display indicates that commits can be reordered after they're written, for
+example with `git rebase`.
+
+Let's try one more reordering of commits. `rev_info` exposes a `reverse` flag.
+Set that flag somewhere inside of `final_rev_info_setup()`:
+
+----
+static void final_rev_info_setup(int argc, const char **argv, const char *prefix,
+ struct rev_info *rev)
+{
+ ...
+
+ rev->reverse = 1;
+
+ ...
+}
+----
+
+Run your walk again and note the difference in order. (If you remove the grep
+pattern, you should see the last commit this call gives you as your current
+HEAD.)
+
+== Basic Object Walk
+
+So far we've been walking only commits. But Git has more types of objects than
+that! Let's see if we can walk _all_ objects, and find out some information
+about each one.
+
+We can base our work on an example. `git pack-objects` prepares all kinds of
+objects for packing into a bitmap or packfile. The work we are interested in
+resides in `builtins/pack-objects.c:get_object_list()`; examination of that
+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.
+
+- `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.
+- `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`.
+- `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.
+
+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
+tracking variables:
+
+----
+static int commit_count;
+static int tag_count;
+static int blob_count;
+static int tree_count;
+----
+
+Commits are handled by a different callback than other objects; let's do that
+one first:
+
+----
+static void walken_show_commit(struct commit *cmt, void *buf)
+{
+ commit_count++;
+}
+----
+
+The `cmt` argument is fairly self-explanatory. But it's worth mentioning that
+the `buf` argument is actually the context buffer that we can provide to the
+traversal calls - `show_data`, which we mentioned a moment ago.
+
+Since we have the `struct commit` object, we can look at all the same parts that
+we looked at in our earlier commit-only walk. For the sake of this tutorial,
+though, we'll just increment the commit counter and move on.
+
+The callback for non-commits is a little different, as we'll need to check
+which kind of object we're dealing with:
+
+----
+static void walken_show_object(struct object *obj, const char *str, void *buf)
+{
+ switch (obj->type) {
+ case OBJ_TREE:
+ tree_count++;
+ break;
+ case OBJ_BLOB:
+ blob_count++;
+ break;
+ case OBJ_TAG:
+ tag_count++;
+ break;
+ case OBJ_COMMIT:
+ BUG("unexpected commit object in walken_show_object\n");
+ default:
+ BUG("unexpected object type %s in walken_show_object\n",
+ type_name(obj->type));
+ }
+}
+----
+
+Again, `obj` is fairly self-explanatory, and we can guess that `buf` is the same
+context pointer that `walken_show_commit()` receives: the `show_data` argument
+to `traverse_commit_list()` and `traverse_commit_list_filtered()`. Finally,
+`str` contains the name of the object, which ends up being something like
+`foo.txt` (blob), `bar/baz` (tree), or `v1.2.3` (tag).
+
+To help assure us that we aren't double-counting commits, we'll include some
+complaining if a commit object is routed through our non-commit callback; we'll
+also complain if we see an invalid object type. Since those two cases should be
+unreachable, and would only change in the event of a semantic change to the Git
+codebase, we complain by using `BUG()` - which is a signal to a developer that
+the change they made caused unintended consequences, and the rest of the
+codebase needs to be updated to understand that change. `BUG()` is not intended
+to be seen by the public, so it is not localized.
+
+Our main object walk implementation is substantially different from our commit
+walk implementation, so let's make a new function to perform the object walk. We
+can perform setup which is applicable to all objects here, too, to keep separate
+from setup which is applicable to commit-only walks.
+
+We'll start by enabling all types of objects in the `struct rev_info`. We'll
+also turn on `tree_blobs_in_commit_order`, which means that we will walk a
+commit's tree and everything it points to immediately after we find each commit,
+as opposed to waiting for the end and walking through all trees after the commit
+history has been discovered. With the appropriate settings configured, we are
+ready to call `prepare_revision_walk()`.
+
+----
+static void walken_object_walk(struct rev_info *rev)
+{
+ rev->tree_objects = 1;
+ rev->blob_objects = 1;
+ rev->tag_objects = 1;
+ rev->tree_blobs_in_commit_order = 1;
+
+ if (prepare_revision_walk(rev))
+ die(_("revision walk setup failed"));
+
+ commit_count = 0;
+ tag_count = 0;
+ blob_count = 0;
+ tree_count = 0;
+----
+
+Let's start by calling just the unfiltered walk and reporting our counts.
+Complete your implementation of `walken_object_walk()`:
+
+----
+ traverse_commit_list(rev, walken_show_commit, walken_show_object, NULL);
+
+ printf("commits %d\nblobs %d\ntags %d\ntrees %d\n", commit_count,
+ blob_count, tag_count, tree_count);
+}
+----
+
+NOTE: This output is intended to be machine-parsed. Therefore, we are not
+sending it to `trace_printf()`, and we are not localizing it - we need scripts
+to be able to count on the formatting to be exactly the way it is shown here.
+If we were intending this output to be read by humans, we would need to localize
+it with `_()`.
+
+Finally, we'll ask `cmd_walken()` to use the object walk instead. Discussing
+command line options is out of scope for this tutorial, so we'll just hardcode
+a branch we can change at compile time. Where you call `final_rev_info_setup()`
+and `walken_commit_walk()`, instead branch like so:
+
+----
+ if (1) {
+ add_head_to_pending(&rev);
+ walken_object_walk(&rev);
+ } else {
+ final_rev_info_setup(argc, argv, prefix, &rev);
+ walken_commit_walk(&rev);
+ }
+----
+
+NOTE: For simplicity, we've avoided all the filters and sorts we applied in
+`final_rev_info_setup()` and simply added `HEAD` to our pending queue. If you
+want, you can certainly use the filters we added before by moving
+`final_rev_info_setup()` out of the conditional and removing the call to
+`add_head_to_pending()`.
+
+Now we can try to run our command! It should take noticeably longer than the
+commit walk, but an examination of the output will give you an idea why. Your
+output should look similar to this example, but with different counts:
+
+----
+Object walk completed. Found 55733 commits, 100274 blobs, 0 tags, and 104210 trees.
+----
+
+This makes sense. We have more trees than commits because the Git project has
+lots of subdirectories which can change, plus at least one tree per commit. We
+have no tags because we started on a commit (`HEAD`) and while tags can point to
+commits, commits can't point to tags.
+
+NOTE: You will have different counts when you run this yourself! The number of
+objects grows along with the Git project.
+
+=== Adding a Filter
+
+There are a handful of filters that we can apply to the object walk laid out in
+`Documentation/rev-list-options.txt`. These filters are typically useful for
+operations such as creating packfiles or performing a partial clone. They are
+defined in `list-objects-filter-options.h`. For the purposes of this tutorial we
+will use the "tree:1" filter, which causes the walk to omit all trees and blobs
+which are not directly referenced by commits reachable from the commit in
+`pending` when the walk begins. (`pending` is the list of objects which need to
+be traversed during a walk; you can imagine a breadth-first tree traversal to
+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 = {};
+
+ ...
+----
+
+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
+`traverse_commit_list()` with the following, which will remind us which kind of
+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);
+ }
+----
+
+`struct list_objects_filter_options` 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()`.
+
+With the filter spec "tree:1", we are expecting to see _only_ the root tree for
+each commit; therefore, the tree object count should be less than or equal to
+the number of commits. (For an example of why that's true: `git commit --revert`
+points to the same tree object as its grandparent.)
+
+=== Counting Omitted Objects
+
+We also have the capability to enumerate all objects which were omitted by a
+filter, like with `git log --filter=<spec> --filter-print-omitted`. Asking
+`traverse_commit_list_filtered()` to populate the `omitted` list means that our
+object walk does not perform any better than an unfiltered object walk; all
+reachable objects are walked in order to populate the list.
+
+First, add the `struct oidset` and related items we will use to iterate it:
+
+----
+static void walken_object_walk(
+ ...
+
+ struct oidset omitted;
+ struct oidset_iter oit;
+ struct object_id *oid = NULL;
+ int omitted_count = 0;
+ oidset_init(&omitted, 0);
+
+ ...
+----
+
+Modify the call to `traverse_commit_list_filtered()` to include your `omitted`
+object:
+
+----
+ ...
+
+ traverse_commit_list_filtered(&filter_options, rev,
+ walken_show_commit, walken_show_object, NULL, &omitted);
+
+ ...
+----
+
+Then, after your traversal, the `oidset` traversal is pretty straightforward.
+Count all the objects within and modify the print statement:
+
+----
+ /* Count the omitted objects. */
+ oidset_iter_init(&omitted, &oit);
+
+ while ((oid = oidset_iter_next(&oit)))
+ omitted_count++;
+
+ printf("commits %d\nblobs %d\ntags %d\ntrees%d\nomitted %d\n",
+ commit_count, blob_count, tag_count, tree_count, omitted_count);
+----
+
+By running your walk with and without the filter, you should find that the total
+object count in each case is identical. You can also time each invocation of
+the `walken` subcommand, with and without `omitted` being passed in, to confirm
+to yourself the runtime impact of tracking all omitted objects.
+
+=== Changing the Order
+
+Finally, let's demonstrate that you can also reorder walks of all objects, not
+just walks of commits. First, we'll make our handlers chattier - modify
+`walken_show_commit()` and `walken_show_object()` to print the object as they
+go:
+
+----
+static void walken_show_commit(struct commit *cmt, void *buf)
+{
+ trace_printf("commit: %s\n", oid_to_hex(&cmt->object.oid));
+ commit_count++;
+}
+
+static void walken_show_object(struct object *obj, const char *str, void *buf)
+{
+ trace_printf("%s: %s\n", type_name(obj->type), oid_to_hex(&obj->oid));
+
+ ...
+}
+----
+
+NOTE: Since we will be examining this output directly as humans, we'll use
+`trace_printf()` here. Additionally, since this change introduces a significant
+number of printed lines, using `trace_printf()` will allow us to easily silence
+those lines without having to recompile.
+
+(Leave the counter increment logic in place.)
+
+With only that change, run again (but save yourself some scrollback):
+
+----
+$ GIT_TRACE=1 ./bin-wrappers/git walken | head -n 10
+----
+
+Take a look at the top commit with `git show` and the object ID you printed; it
+should be the same as the output of `git show HEAD`.
+
+Next, let's change a setting on our `struct rev_info` within
+`walken_object_walk()`. Find where you're changing the other settings on `rev`,
+such as `rev->tree_objects` and `rev->tree_blobs_in_commit_order`, and add the
+`reverse` setting at the bottom:
+
+----
+ ...
+
+ rev->tree_objects = 1;
+ rev->blob_objects = 1;
+ rev->tag_objects = 1;
+ rev->tree_blobs_in_commit_order = 1;
+ rev->reverse = 1;
+
+ ...
+----
+
+Now, run again, but this time, let's grab the last handful of objects instead
+of the first handful:
+
+----
+$ make
+$ GIT_TRACE=1 ./bin-wrappers git walken | tail -n 10
+----
+
+The last commit object given should have the same OID as the one we saw at the
+top before, and running `git show <oid>` with that OID should give you again
+the same results as `git show HEAD`. Furthermore, if you run and examine the
+first ten lines again (with `head` instead of `tail` like we did before applying
+the `reverse` setting), you should see that now the first commit printed is the
+initial commit, `e83c5163`.
+
+== Wrapping Up
+
+Let's review. In this tutorial, we:
+
+- Built a commit walk from the ground up
+- Enabled a grep filter for that commit walk
+- Changed the sort order of that filtered commit walk
+- Built an object walk (tags, commits, trees, and blobs) from the ground up
+- Learned how to add a filter-spec to an object walk
+- Changed the display order of the filtered object walk
diff --git a/Documentation/RelNotes/2.24.0.txt b/Documentation/RelNotes/2.24.0.txt
new file mode 100644
index 0000000..bde1541
--- /dev/null
+++ b/Documentation/RelNotes/2.24.0.txt
@@ -0,0 +1,398 @@
+Git 2.24 Release Notes
+======================
+
+Updates since v2.23
+-------------------
+
+Backward compatibility note
+
+ * "filter-branch" is showing its age and alternatives are available.
+ From this release, we started to discourage its use and hint
+ people about filter-repo.
+
+UI, Workflows & Features
+
+ * We now have an active interim maintainer for the Git-Gui part of
+ the system. Praise and thank Pratyush Yadav for volunteering.
+
+ * The command line parser learned "--end-of-options" notation; the
+ standard convention for scripters to have hardcoded set of options
+ first on the command line, and force the command to treat end-user
+ input as non-options, has been to use "--" as the delimiter, but
+ that would not work for commands that use "--" as a delimiter
+ between revs and pathspec.
+
+ * A mechanism to affect the default setting for a (related) group of
+ configuration variables is introduced.
+
+ * "git fetch" learned "--set-upstream" option to help those who first
+ clone from their private fork they intend to push to, add the true
+ upstream via "git remote add" and then "git fetch" from it.
+
+ * Device-tree files learned their own userdiff patterns.
+ (merge 3c81760bc6 sb/userdiff-dts later to maint).
+
+ * "git rebase --rebase-merges" learned to drive different merge
+ strategies and pass strategy specific options to them.
+
+ * A new "pre-merge-commit" hook has been introduced.
+
+ * Command line completion updates for "git -c var.name=val" have been
+ added.
+
+ * The lazy clone machinery has been taught that there can be more
+ than one promisor remote and consult them in order when downloading
+ missing objects on demand.
+
+ * The list-objects-filter API (used to create a sparse/lazy clone)
+ learned to take a combined filter specification.
+
+ * The documentation and tests for "git format-patch" have been
+ cleaned up.
+
+ * On Windows, the root level of UNC share is now allowed to be used
+ just like any other directory.
+
+ * The command line completion support (in contrib/) learned about the
+ "--skip" option of "git revert" and "git cherry-pick".
+
+ * "git rebase --keep-base <upstream>" tries to find the original base
+ of the topic being rebased and rebase on top of that same base,
+ which is useful when running the "git rebase -i" (and its limited
+ variant "git rebase -x").
+
+ The command also has learned to fast-forward in more cases where it
+ can instead of replaying to recreate identical commits.
+
+ * A configuration variable tells "git fetch" to write the commit
+ graph after finishing.
+
+ * "git add -i" has been taught to show the total number of hunks and
+ the hunks that has been processed so far when showing prompts.
+
+ * "git fetch --jobs=<n>" allowed <n> parallel jobs when fetching
+ submodules, but this did not apply to "git fetch --multiple" that
+ fetches from multiple remote repositories. It now does.
+
+ * The installation instruction for zsh completion script (in
+ contrib/) has been a bit improved.
+
+
+Performance, Internal Implementation, Development Support etc.
+
+ * The code to write commit-graph over given commit object names has
+ been made a bit more robust.
+
+ * The first line of verbose output from each test piece now carries
+ the test name and number to help scanning with eyeballs.
+
+ * Further clean-up of the initialization code.
+
+ * xmalloc() used to have a mechanism to ditch memory and address
+ space resources as the last resort upon seeing an allocation
+ failure from the underlying malloc(), which made the code complex
+ and thread-unsafe with dubious benefit, as major memory resource
+ users already do limit their uses with various other mechanisms.
+ It has been simplified away.
+
+ * Unnecessary full-tree diff in "git log -L" machinery has been
+ optimized away.
+
+ * The http transport lacked some optimization the native transports
+ learned to avoid unnecessary ref advertisement, which has been
+ corrected.
+
+ * Preparation for SHA-256 upgrade continues in the test department.
+ (merge 0c37c41d13 bc/hash-independent-tests-part-5 later to maint).
+
+ * The memory ownership model of the "git fast-import" got
+ straightened out.
+
+ * Output from trace2 subsystem is formatted more prettily now.
+
+ * The internal code originally invented for ".gitignore" processing
+ got reshuffled and renamed to make it less tied to "excluding" and
+ stress more that it is about "matching", as it has been reused for
+ things like sparse checkout specification that want to check if a
+ path is "included".
+
+ * "git stash" learned to write refreshed index back to disk.
+
+ * Coccinelle checks are done on more source files than before now.
+
+ * The cache-tree code has been taught to be less aggressive in
+ attempting to see if a tree object it computed already exists in
+ the repository.
+
+ * The code to parse and use the commit-graph file has been made more
+ robust against corrupted input.
+
+ * The hg-to-git script (in contrib/) has been updated to work with
+ Python 3.
+
+ * Update the way build artifacts in t/helper/ directory are ignored.
+
+ * Preparation for SHA-256 upgrade continues.
+
+ * "git log --graph" for an octopus merge is sometimes colored
+ incorrectly, which is demonstrated and documented but not yet
+ fixed.
+
+ * The trace2 output, when sending them to files in a designated
+ directory, can populate the directory with too many files; a
+ mechanism is introduced to set the maximum number of files and
+ discard further logs when the maximum is reached.
+
+ * We have adopted a Code-of-conduct document.
+ (merge 3f9ef874a7 jk/coc later to maint).
+
+
+Fixes since v2.23
+-----------------
+
+ * "git grep --recurse-submodules" that looks at the working tree
+ files looked at the contents in the index in submodules, instead of
+ files in the working tree.
+ (merge 6a289d45c0 mt/grep-submodules-working-tree later to maint).
+
+ * Codepaths to walk tree objects have been audited for integer
+ overflows and hardened.
+ (merge 5aa02f9868 jk/tree-walk-overflow later to maint).
+
+ * "git pack-refs" can lose refs that are created while running, which
+ is getting corrected.
+ (merge a613d4f817 sc/pack-refs-deletion-racefix later to maint).
+
+ * "git checkout" and "git restore" to re-populate the index from a
+ tree-ish (typically HEAD) did not work correctly for a path that
+ was removed and then added again with the intent-to-add bit, when
+ the corresponding working tree file was empty. This has been
+ corrected.
+
+ * Compilation fix.
+ (merge 70597e8386 rs/nedalloc-fixlets later to maint).
+
+ * "git gui" learned to call the clean-up procedure before exiting.
+ (merge 0d88f3d2c5 py/git-gui-do-quit later to maint).
+
+ * We promoted the "indent heuristics" that decides where to split
+ diff hunks from experimental to the default a few years ago, but
+ some stale documentation still marked it as experimental, which has
+ been corrected.
+ (merge 64e5e1fba1 sg/diff-indent-heuristic-non-experimental later to maint).
+
+ * Fix a mismerge that happened in 2.22 timeframe.
+ (merge acb7da05ac en/checkout-mismerge-fix later to maint).
+
+ * "git archive" recorded incorrect length in extended pax header in
+ some corner cases, which has been corrected.
+ (merge 71d41ff651 rs/pax-extended-header-length-fix later to maint).
+
+ * On-demand object fetching in lazy clone incorrectly tried to fetch
+ commits from submodule projects, while still working in the
+ superproject, which has been corrected.
+ (merge a63694f523 jt/diff-lazy-fetch-submodule-fix later to maint).
+
+ * Prepare get_short_oid() codepath to be thread-safe.
+ (merge 7cfcb16b0e rs/sort-oid-array-thread-safe later to maint).
+
+ * "for-each-ref" and friends that show refs did not protect themselves
+ against ancient tags that did not record tagger names when asked to
+ show "%(taggername)", which have been corrected.
+ (merge 8b3f33ef11 mp/for-each-ref-missing-name-or-email later to maint).
+
+ * The "git am" based backend of "git rebase" ignored the result of
+ updating ".gitattributes" done in one step when replaying
+ subsequent steps.
+ (merge 2c65d90f75 bc/reread-attributes-during-rebase later to maint).
+
+ * Tell cURL library to use the same malloc() implementation, with the
+ xmalloc() wrapper, as the rest of the system, for consistency.
+ (merge 93b980e58f cb/curl-use-xmalloc later to maint).
+
+ * Build fix to adjust .gitignore to unignore a path that we started to track.
+ (merge aac6ff7b5b js/visual-studio later to maint).
+
+ * A few implementation fixes in the notes API.
+ (merge 60fe477a0b mh/notes-duplicate-entries later to maint).
+
+ * Fix an earlier regression to "git push --all" which should have
+ been forbidden when the target remote repository is set to be a
+ mirror.
+ (merge 8e4c8af058 tg/push-all-in-mirror-forbidden later to maint).
+
+ * Fix an earlier regression in the test suite, which mistakenly
+ stopped running HTTPD tests.
+ (merge 3960290675 sg/git-test-boolean later to maint).
+
+ * "git rebase --autostash <upstream> <branch>", when <branch> is
+ different from the current branch, incorrectly moved the tip of the
+ current branch, which has been corrected.
+ (merge bf1e28e0ad bw/rebase-autostash-keep-current-branch later to maint).
+
+ * Update support for Asciidoctor documentation toolchain.
+ (merge 83b0b8953e ma/asciidoctor-refmiscinfo later to maint).
+
+ * Start using DocBook 5 (instead of DocBook 4.5) as Asciidoctor 2.0
+ no longer works with the older one.
+ (merge f6461b82b9 bc/doc-use-docbook-5 later to maint).
+
+ * The markup used in user-manual has been updated to work better with
+ asciidoctor.
+ (merge c4d2f6143a ma/user-manual-markup-update later to maint).
+
+ * Make sure the grep machinery does not abort when seeing a payload
+ that is not UTF-8 even when JIT is not in use with PCRE1.
+ (merge ad7c543e3b cb/skip-utf8-check-with-pcre1 later to maint).
+
+ * The name of the blob object that stores the filter specification
+ for sparse cloning/fetching was interpreted in a wrong place in the
+ code, causing Git to abort.
+
+ * "git log --decorate-refs-exclude=<pattern>" was incorrectly
+ overruled when the "--simplify-by-decoration" option is used, which
+ has been corrected.
+ (merge 0cc7380d88 rs/simplify-by-deco-with-deco-refs-exclude later to maint).
+
+ * The "upload-pack" (the counterpart of "git fetch") needs to disable
+ commit-graph when responding to a shallow clone/fetch request, but
+ the way this was done made Git panic, which has been corrected.
+
+ * The object traversal machinery has been optimized not to load tree
+ objects when we are only interested in commit history.
+ (merge 72ed80c784 jk/list-objects-optim-wo-trees later to maint).
+
+ * The object name parser for "Nth parent" syntax has been made more
+ robust against integer overflows.
+ (merge 59fa5f5a25 rs/nth-parent-parse later to maint).
+
+ * The code used in following tags in "git fetch" has been optimized.
+ (merge b7e2d8bca5 ms/fetch-follow-tag-optim later to maint).
+
+ * Regression fix for progress output.
+ (merge 2bb74b53a4 sg/progress-fix later to maint).
+
+ * A bug in merge-recursive code that triggers when a branch with a
+ symbolic link is merged with a branch that replaces it with a
+ directory has been fixed.
+ (merge 83e3ad3b12 jt/merge-recursive-symlink-is-not-a-dir-in-way later to maint).
+
+ * The rename detection logic sorts a list of rename source candidates
+ by similarity to pick the best candidate, which means that a tie
+ between sources with the same similarity is broken by the original
+ location in the original candidate list (which is sorted by path).
+ Force the sorting by similarity done with a stable sort, which is
+ not promised by system supplied qsort(3), to ensure consistent
+ results across platforms.
+ (merge 2049b8dc65 js/diff-rename-force-stable-sort later to maint).
+
+ * The code to skip "UTF" and "UTF-" prefix, when computing an advice
+ message, did not work correctly when the prefix was "UTF", which
+ has been fixed.
+ (merge b181676ce9 rs/convert-fix-utf-without-dash later to maint).
+
+ * The author names taken from SVN repositories may have extra leading
+ or trailing whitespaces, which are now munged away.
+ (merge 4ddd4bddb1 tk/git-svn-trim-author-name later to maint).
+
+ * "git rebase -i" showed a wrong HEAD while "reword" open the editor.
+ (merge b0a3186140 pw/rebase-i-show-HEAD-to-reword later to maint).
+
+ * A few simplification and bugfixes to PCRE interface.
+ (merge c581e4a749 ab/pcre-jit-fixes later to maint).
+
+ * PCRE fixes.
+ (merge ff61681b46 cb/pcre1-cleanup later to maint).
+
+ * "git range-diff" segfaulted when diff.noprefix configuration was
+ used, as it blindly expected the patch it internally generates to
+ have the standard a/ and b/ prefixes. The command now forces the
+ internal patch to be built without any prefix, not to be affected
+ by any end-user configuration.
+ (merge 937b76ed49 js/range-diff-noprefix later to maint).
+
+ * "git stash apply" in a subdirectory of a secondary worktree failed
+ to access the worktree correctly, which has been corrected.
+ (merge dfd557c978 js/stash-apply-in-secondary-worktree later to maint).
+
+ * The merge-recursive machinery is one of the most complex parts of
+ the system that accumulated cruft over time. This large series
+ cleans up the implementation quite a bit.
+ (merge b657047719 en/merge-recursive-cleanup later to maint).
+
+ * Pretty-printed command line formatter (used in e.g. reporting the
+ command being run by the tracing API) had a bug that lost an
+ argument that is an empty string, which has been corrected.
+ (merge ce2d7ed2fd gs/sq-quote-buf-pretty later to maint).
+
+ * "git range-diff" failed to handle mode-only change, which has been
+ corrected.
+ (merge 2b6a9b13ca tg/range-diff-output-update later to maint).
+
+ * Dev support update.
+ (merge 4f3c1dc5d6 dl/allow-running-cocci-verbosely later to maint).
+
+ * "git format-patch -o <outdir>" did an equivalent of "mkdir <outdir>"
+ not "mkdir -p <outdir>", which was corrected.
+
+ * "git stash save" lost local changes to submodules, which has been
+ corrected.
+ (merge 556895d0c8 jj/stash-reset-only-toplevel later to maint).
+
+ * The atomic push over smart HTTP transport did not work, which has
+ been corrected.
+ (merge 6f1194246a bc/smart-http-atomic-push later to maint).
+
+ * Other code cleanup, docfix, build fix, etc.
+ (merge d1387d3895 en/fast-import-merge-doc later to maint).
+ (merge 1c24a54ea4 bm/repository-layout-typofix later to maint).
+ (merge 415b770b88 ds/midx-expire-repack later to maint).
+ (merge 19800bdc3f nd/diff-parseopt later to maint).
+ (merge 58166c2e9d tg/t0021-racefix later to maint).
+ (merge 7027f508c7 dl/compat-cleanup later to maint).
+ (merge e770fbfeff jc/test-cleanup later to maint).
+ (merge 1fd881d404 rs/trace2-dst-warning later to maint).
+ (merge 7e92756751 mh/http-urlmatch-cleanup later to maint).
+ (merge 9784f97321 mh/release-commit-memory-fix later to maint).
+ (merge 60d198d022 tb/banned-vsprintf-namefix later to maint).
+ (merge 80e3658647 rs/help-unknown-ref-does-not-return later to maint).
+ (merge 0a8bc7068f dt/remote-helper-doc-re-lock-option later to maint).
+ (merge 27fd1e4ea7 en/merge-options-ff-and-friends later to maint).
+ (merge 502c386ff9 sg/clean-nested-repo-with-ignored later to maint).
+ (merge 26e3d1cbea am/mailmap-andrey-mazo later to maint).
+ (merge 47b27c96fa ss/get-time-cleanup later to maint).
+ (merge dd2e50a84e jk/commit-graph-cleanup later to maint).
+ (merge 4fd39c76e6 cs/pretty-formats-doc-typofix later to maint).
+ (merge 40e747e89d dl/submodule-set-branch later to maint).
+ (merge 689a146c91 rs/commit-graph-use-list-count later to maint).
+ (merge 0eb7c37a8a js/doc-patch-text later to maint).
+ (merge 4b3aa170d1 rs/nth-switch-code-simplification later to maint).
+ (merge 0d4304c124 ah/doc-submodule-ignore-submodules later to maint).
+ (merge af78249463 cc/svn-fe-py-shebang later to maint).
+ (merge 7bd97d6dff rs/alias-use-copy-array later to maint).
+ (merge c46ebc2496 sg/travis-help-debug later to maint).
+ (merge 24c681794f ps/my-first-contribution-alphasort later to maint).
+ (merge 75b2c15435 cb/do-not-use-test-cmp-with-a later to maint).
+ (merge cda0d497e3 bw/submodule-helper-usage-fix later to maint).
+ (merge fe0ed5d5e9 am/visual-studio-config-fix later to maint).
+ (merge 2e09c01232 sg/name-rev-cutoff-underflow-fix later to maint).
+ (merge ddb3c856f3 as/shallow-slab-use-fix later to maint).
+ (merge 71f4960b91 js/mingw-spawn-with-spaces-in-path later to maint).
+ (merge 53d687bf5f ah/cleanups later to maint).
+ (merge f537485fa5 rs/test-remove-useless-debugging-cat later to maint).
+ (merge 11a3d3aadd dl/rev-list-doc-cleanup later to maint).
+ (merge d928a8388a am/t0028-utf16-tests later to maint).
+ (merge b05b40930e dl/t0000-skip-test-test later to maint).
+ (merge 03d3b1297c js/xdiffi-comment-updates later to maint).
+ (merge 57d8f4b4c7 js/doc-stash-save later to maint).
+ (merge 8c1cfd58e3 ta/t1308-typofix later to maint).
+ (merge fa364ad790 bb/utf8-wcwidth-cleanup later to maint).
+ (merge 68b69211b2 bb/compat-util-comment-fix later to maint).
+ (merge 5cc6a4be11 rs/http-push-simplify later to maint).
+ (merge a81e42d235 rs/column-use-utf8-strnwidth later to maint).
+ (merge 062a309d36 rs/remote-curl-use-argv-array later to maint).
+ (merge 3b3c79f6c9 nr/diff-highlight-indent-fix later to maint).
+ (merge 3444ec2eb2 wb/fsmonitor-bitmap-fix later to maint).
+ (merge 10da030ab7 cb/pcre2-chartables-leakfix later to maint).
+ (merge 60e6569a12 js/mingw-needs-hiding-fix later to maint).
+ (merge 52bd3e4657 rl/gitweb-blame-prev-fix later to maint).
diff --git a/Documentation/RelNotes/2.7.1.txt b/Documentation/RelNotes/2.7.1.txt
index 6553d69..6323fea 100644
--- a/Documentation/RelNotes/2.7.1.txt
+++ b/Documentation/RelNotes/2.7.1.txt
@@ -10,7 +10,7 @@ Fixes since v2.7
setting GIT_WORK_TREE environment themselves.
* The "exclude_list" structure has the usual "alloc, nr" pair of
- fields to be used by ALLOC_GROW(), but clear_exclude_list() forgot
+ fields to be used by ALLOC_GROW(), but clear_pattern_list() forgot
to reset 'alloc' to 0 when it cleared 'nr' to discard the managed
array.
diff --git a/Documentation/RelNotes/2.8.0.txt b/Documentation/RelNotes/2.8.0.txt
index 2507971..5fbe1b8 100644
--- a/Documentation/RelNotes/2.8.0.txt
+++ b/Documentation/RelNotes/2.8.0.txt
@@ -270,7 +270,7 @@ notes for details).
setting GIT_WORK_TREE environment themselves.
* The "exclude_list" structure has the usual "alloc, nr" pair of
- fields to be used by ALLOC_GROW(), but clear_exclude_list() forgot
+ fields to be used by ALLOC_GROW(), but clear_pattern_list() forgot
to reset 'alloc' to 0 when it cleared 'nr' to discard the managed
array.
diff --git a/Documentation/SubmittingPatches b/Documentation/SubmittingPatches
index 6d589e1..1a60cc1 100644
--- a/Documentation/SubmittingPatches
+++ b/Documentation/SubmittingPatches
@@ -372,9 +372,9 @@ such as "Thanks-to:", "Based-on-patch-by:", or "Mentored-by:".
Some parts of the system have dedicated maintainers with their own
repositories.
-- `git-gui/` comes from git-gui project, maintained by Pat Thoyts:
+- `git-gui/` comes from git-gui project, maintained by Pratyush Yadav:
- git://repo.or.cz/git-gui.git
+ https://github.com/prati0100/git-gui.git
- `gitk-git/` comes from Paul Mackerras's gitk project:
diff --git a/Documentation/asciidoc.conf b/Documentation/asciidoc.conf
index 2c16c53..8fc4b67 100644
--- a/Documentation/asciidoc.conf
+++ b/Documentation/asciidoc.conf
@@ -78,9 +78,9 @@ template::[header-declarations]
<refmeta>
<refentrytitle>{mantitle}</refentrytitle>
<manvolnum>{manvolnum}</manvolnum>
-<refmiscinfo class="source">Git</refmiscinfo>
-<refmiscinfo class="version">{git_version}</refmiscinfo>
-<refmiscinfo class="manual">Git Manual</refmiscinfo>
+<refmiscinfo class="source">{mansource}</refmiscinfo>
+<refmiscinfo class="version">{manversion}</refmiscinfo>
+<refmiscinfo class="manual">{manmanual}</refmiscinfo>
</refmeta>
<refnamediv>
<refname>{manname}</refname>
diff --git a/Documentation/asciidoctor-extensions.rb b/Documentation/asciidoctor-extensions.rb
index 0089e0c..d906a00 100644
--- a/Documentation/asciidoctor-extensions.rb
+++ b/Documentation/asciidoctor-extensions.rb
@@ -9,8 +9,11 @@ module Git
named :chrome
def process(parent, target, attrs)
- if parent.document.basebackend? 'html'
- prefix = parent.document.attr('git-relative-html-prefix')
+ prefix = parent.document.attr('git-relative-html-prefix')
+ if parent.document.doctype == 'book'
+ "<ulink url=\"#{prefix}#{target}.html\">" \
+ "#{target}(#{attrs[1]})</ulink>"
+ elsif parent.document.basebackend? 'html'
%(<a href="#{prefix}#{target}.html">#{target}(#{attrs[1]})</a>)
elsif parent.document.basebackend? 'docbook'
"<citerefentry>\n" \
@@ -20,9 +23,26 @@ module Git
end
end
end
+
+ class DocumentPostProcessor < Asciidoctor::Extensions::Postprocessor
+ def process document, output
+ if document.basebackend? 'docbook'
+ mansource = document.attributes['mansource']
+ manversion = document.attributes['manversion']
+ manmanual = document.attributes['manmanual']
+ new_tags = "" \
+ "<refmiscinfo class=\"source\">#{mansource}</refmiscinfo>\n" \
+ "<refmiscinfo class=\"version\">#{manversion}</refmiscinfo>\n" \
+ "<refmiscinfo class=\"manual\">#{manmanual}</refmiscinfo>\n"
+ output = output.sub(/<\/refmeta>/, new_tags + "</refmeta>")
+ end
+ output
+ end
+ end
end
end
Asciidoctor::Extensions.register do
inline_macro Git::Documentation::LinkGitProcessor, :linkgit
+ postprocessor Git::Documentation::DocumentPostProcessor
end
diff --git a/Documentation/config.txt b/Documentation/config.txt
index e3f5bc3..f50f1b4 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -178,47 +178,49 @@ to either specify only the realpath version, or both versions.
Example
~~~~~~~
- # Core variables
- [core]
- ; Don't trust file modes
- filemode = false
-
- # Our diff algorithm
- [diff]
- external = /usr/local/bin/diff-wrapper
- renames = true
-
- [branch "devel"]
- remote = origin
- merge = refs/heads/devel
-
- # Proxy settings
- [core]
- gitProxy="ssh" for "kernel.org"
- gitProxy=default-proxy ; for the rest
-
- [include]
- path = /path/to/foo.inc ; include by absolute path
- path = foo.inc ; find "foo.inc" relative to the current file
- path = ~/foo.inc ; find "foo.inc" in your `$HOME` directory
-
- ; include if $GIT_DIR is /path/to/foo/.git
- [includeIf "gitdir:/path/to/foo/.git"]
- path = /path/to/foo.inc
-
- ; include for all repositories inside /path/to/group
- [includeIf "gitdir:/path/to/group/"]
- path = /path/to/foo.inc
-
- ; include for all repositories inside $HOME/to/group
- [includeIf "gitdir:~/to/group/"]
- path = /path/to/foo.inc
-
- ; relative paths are always relative to the including
- ; file (if the condition is true); their location is not
- ; affected by the condition
- [includeIf "gitdir:/path/to/group/"]
- path = foo.inc
+----
+# Core variables
+[core]
+ ; Don't trust file modes
+ filemode = false
+
+# Our diff algorithm
+[diff]
+ external = /usr/local/bin/diff-wrapper
+ renames = true
+
+[branch "devel"]
+ remote = origin
+ merge = refs/heads/devel
+
+# Proxy settings
+[core]
+ gitProxy="ssh" for "kernel.org"
+ gitProxy=default-proxy ; for the rest
+
+[include]
+ path = /path/to/foo.inc ; include by absolute path
+ path = foo.inc ; find "foo.inc" relative to the current file
+ path = ~/foo.inc ; find "foo.inc" in your `$HOME` directory
+
+; include if $GIT_DIR is /path/to/foo/.git
+[includeIf "gitdir:/path/to/foo/.git"]
+ path = /path/to/foo.inc
+
+; include for all repositories inside /path/to/group
+[includeIf "gitdir:/path/to/group/"]
+ path = /path/to/foo.inc
+
+; include for all repositories inside $HOME/to/group
+[includeIf "gitdir:~/to/group/"]
+ path = /path/to/foo.inc
+
+; relative paths are always relative to the including
+; file (if the condition is true); their location is not
+; affected by the condition
+[includeIf "gitdir:/path/to/group/"]
+ path = foo.inc
+----
; include only if we are in a worktree where foo-branch is
; currently checked out
@@ -345,6 +347,8 @@ include::config/difftool.txt[]
include::config/fastimport.txt[]
+include::config/feature.txt[]
+
include::config/fetch.txt[]
include::config/format.txt[]
diff --git a/Documentation/config/core.txt b/Documentation/config/core.txt
index 75538d2..852d2ba 100644
--- a/Documentation/config/core.txt
+++ b/Documentation/config/core.txt
@@ -86,7 +86,9 @@ core.untrackedCache::
it will automatically be removed, if set to `false`. Before
setting it to `true`, you should check that mtime is working
properly on your system.
- See linkgit:git-update-index[1]. `keep` by default.
+ See linkgit:git-update-index[1]. `keep` by default, unless
+ `feature.manyFiles` is enabled which sets this setting to
+ `true` by default.
core.checkStat::
When missing or is set to `default`, many fields in the stat
@@ -577,7 +579,7 @@ the `GIT_NOTES_REF` environment variable. See linkgit:git-notes[1].
core.commitGraph::
If true, then git will read the commit-graph file (if it exists)
- to parse the graph structure of commits. Defaults to false. See
+ to parse the graph structure of commits. Defaults to true. See
linkgit:git-commit-graph[1] for more information.
core.useReplaceRefs::
diff --git a/Documentation/config/diff.txt b/Documentation/config/diff.txt
index 5afb5a2..ff09f1c 100644
--- a/Documentation/config/diff.txt
+++ b/Documentation/config/diff.txt
@@ -189,7 +189,7 @@ diff.guitool::
include::../mergetools-diff.txt[]
diff.indentHeuristic::
- Set this option to `true` to enable experimental heuristics
+ Set this option to `false` to disable the default heuristics
that shift diff hunk boundaries to make patches easier to read.
diff.algorithm::
diff --git a/Documentation/config/feature.txt b/Documentation/config/feature.txt
new file mode 100644
index 0000000..875f8c8
--- /dev/null
+++ b/Documentation/config/feature.txt
@@ -0,0 +1,37 @@
+feature.*::
+ The config settings that start with `feature.` modify the defaults of
+ a group of other config settings. These groups are created by the Git
+ developer community as recommended defaults and are subject to change.
+ In particular, new config options may be added with different defaults.
+
+feature.experimental::
+ Enable config options that are new to Git, and are being considered for
+ future defaults. Config settings included here may be added or removed
+ with each release, including minor version updates. These settings may
+ have unintended interactions since they are so new. Please enable this
+ setting if you are interested in providing feedback on experimental
+ features. The new default values are:
++
+* `pack.useSparse=true` uses a new algorithm when constructing a pack-file
+which can improve `git push` performance in repos with many files.
++
+* `fetch.negotiationAlgorithm=skipping` may improve fetch negotiation times by
+skipping more commits at a time, reducing the number of round trips.
++
+* `fetch.writeCommitGraph=true` writes a commit-graph after every `git fetch`
+command that downloads a pack-file from a remote. Using the `--split` option,
+most executions will create a very small commit-graph file on top of the
+existing commit-graph file(s). Occasionally, these files will merge and the
+write may take longer. Having an updated commit-graph file helps performance
+of many Git commands, including `git merge-base`, `git push -f`, and
+`git log --graph`.
+
+feature.manyFiles::
+ Enable config options that optimize for repos with many files in the
+ working directory. With many files, commands such as `git status` and
+ `git checkout` may be slow and these new defaults improve performance:
++
+* `index.version=4` enables path-prefix compression in the index.
++
+* `core.untrackedCache=true` enables the untracked cache. This setting assumes
+that mtime is working on your machine.
diff --git a/Documentation/config/fetch.txt b/Documentation/config/fetch.txt
index ba890b5..f119402 100644
--- a/Documentation/config/fetch.txt
+++ b/Documentation/config/fetch.txt
@@ -59,7 +59,8 @@ fetch.negotiationAlgorithm::
effort to converge faster, but may result in a larger-than-necessary
packfile; 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).
+ of its descendants). If `feature.experimental` is enabled, then this
+ setting defaults to "skipping".
Unknown values will cause 'git fetch' to error out.
+
See also the `--negotiation-tip` option for linkgit:git-fetch[1].
@@ -68,3 +69,23 @@ fetch.showForcedUpdates::
Set to false to enable `--no-show-forced-updates` in
linkgit:git-fetch[1] and linkgit:git-pull[1] commands.
Defaults to true.
+
+fetch.parallel::
+ Specifies the maximal number of fetch operations to be run in parallel
+ at a time (submodules, or remotes when the `--multiple` option of
+ linkgit:git-fetch[1] is in effect).
++
+A value of 0 will give some reasonable default. If unset, it defaults to 1.
++
+For submodules, this setting can be overridden using the `submodule.fetchJobs`
+config setting.
+
+fetch.writeCommitGraph::
+ Set to true to write a commit-graph after every `git fetch` command
+ that downloads a pack-file from a remote. Using the `--split` option,
+ most executions will create a very small commit-graph file on top of
+ the existing commit-graph file(s). Occasionally, these files will
+ merge and the write may take longer. Having an updated commit-graph
+ file helps performance of many Git commands, including `git merge-base`,
+ `git push -f`, and `git log --graph`. Defaults to false, unless
+ `feature.experimental` is true.
diff --git a/Documentation/config/format.txt b/Documentation/config/format.txt
index 735dfcf..513fcd8 100644
--- a/Documentation/config/format.txt
+++ b/Documentation/config/format.txt
@@ -87,7 +87,7 @@ format.coverLetter::
format.outputDirectory::
Set a custom directory to store the resulting files instead of the
- current working directory.
+ current working directory. All directory components will be created.
format.useAutoBase::
A boolean value which lets you enable the `--base=auto` option of
diff --git a/Documentation/config/gc.txt b/Documentation/config/gc.txt
index 02b92b1..00ea0a6 100644
--- a/Documentation/config/gc.txt
+++ b/Documentation/config/gc.txt
@@ -63,7 +63,7 @@ gc.writeCommitGraph::
If true, then gc will rewrite the commit-graph file when
linkgit:git-gc[1] is run. When using `git gc --auto`
the commit-graph will be updated if housekeeping is
- required. Default is false. See linkgit:git-commit-graph[1]
+ required. Default is true. See linkgit:git-commit-graph[1]
for details.
gc.logExpiry::
diff --git a/Documentation/config/index.txt b/Documentation/config/index.txt
index f181503..7cb50b3 100644
--- a/Documentation/config/index.txt
+++ b/Documentation/config/index.txt
@@ -24,3 +24,4 @@ index.threads::
index.version::
Specify the version with which new index files should be
initialized. This does not affect existing repositories.
+ If `feature.manyFiles` is enabled, then the default is 4.
diff --git a/Documentation/config/pack.txt b/Documentation/config/pack.txt
index 9cdcfa7..1d66f0c 100644
--- a/Documentation/config/pack.txt
+++ b/Documentation/config/pack.txt
@@ -112,7 +112,8 @@ pack.useSparse::
objects. This can have significant performance benefits when
computing a pack to send a small change. However, it is possible
that extra objects are added to the pack-file if the included
- commits contain certain types of direct renames.
+ commits contain certain types of direct renames. Default is `false`
+ unless `feature.experimental` is enabled.
pack.writeBitmaps (deprecated)::
This is a deprecated synonym for `repack.writeBitmaps`.
diff --git a/Documentation/config/remote.txt b/Documentation/config/remote.txt
index 6c4cad8..a8e6437 100644
--- a/Documentation/config/remote.txt
+++ b/Documentation/config/remote.txt
@@ -76,3 +76,11 @@ remote.<name>.pruneTags::
+
See also `remote.<name>.prune` and the PRUNING section of
linkgit:git-fetch[1].
+
+remote.<name>.promisor::
+ When set to true, this remote will be used to fetch promisor
+ objects.
+
+remote.<name>.partialclonefilter::
+ The filter that will be applied when fetching from this
+ promisor remote.
diff --git a/Documentation/config/trace2.txt b/Documentation/config/trace2.txt
index 2edbfb0..4ce0b9a 100644
--- a/Documentation/config/trace2.txt
+++ b/Documentation/config/trace2.txt
@@ -54,3 +54,9 @@ trace2.destinationDebug::
By default, these errors are suppressed and tracing is
silently disabled. May be overridden by the
`GIT_TRACE2_DST_DEBUG` environment variable.
+
+trace2.maxFiles::
+ Integer. When writing trace files to a target directory, do not
+ write additional traces if we would exceed this many files. Instead,
+ write a sentinel file that will block further tracing to this
+ directory. Defaults to 0, which disables this check.
diff --git a/Documentation/diff-generate-patch.txt b/Documentation/diff-generate-patch.txt
index f10ca41..e8ed647 100644
--- a/Documentation/diff-generate-patch.txt
+++ b/Documentation/diff-generate-patch.txt
@@ -1,11 +1,15 @@
-Generating patches with -p
---------------------------
-
-When "git-diff-index", "git-diff-tree", or "git-diff-files" are run
-with a `-p` option, "git diff" without the `--raw` option, or
-"git log" with the "-p" option, they
-do not produce the output described above; instead they produce a
-patch file. You can customize the creation of such patches via the
+Generating patch text with -p
+-----------------------------
+
+Running
+linkgit:git-diff[1],
+linkgit:git-log[1],
+linkgit:git-show[1],
+linkgit:git-diff-index[1],
+linkgit:git-diff-tree[1], or
+linkgit:git-diff-files[1]
+with the `-p` option produces patch text.
+You can customize the creation of patch text via the
`GIT_EXTERNAL_DIFF` and the `GIT_DIFF_OPTS` environment variables.
What the -p option produces is slightly different from the traditional
@@ -49,7 +53,7 @@ similarity index value of 100% is thus reserved for two equal
files, while 100% dissimilarity means that no line from the old
file made it into the new one.
+
-The index line includes the SHA-1 checksum before and after the change.
+The index line includes the blob object names before and after the change.
The <mode> is included if the file mode does not change; otherwise,
separate lines indicate the old and the new mode.
@@ -70,7 +74,7 @@ separate lines indicate the old and the new mode.
rename to a
-combined diff format
+Combined diff format
--------------------
Any diff-generating command can take the `-c` or `--cc` option to
@@ -80,7 +84,7 @@ linkgit:git-show[1]. Note also that you can give the `-m` option to any
of these commands to force generation of diffs with individual parents
of a merge.
-A 'combined diff' format looks like this:
+A "combined diff" format looks like this:
------------
diff --combined describe.c
@@ -113,11 +117,11 @@ index fabadb8,cc95eb0..4866510
------------
1. It is preceded with a "git diff" header, that looks like
- this (when `-c` option is used):
+ this (when the `-c` option is used):
diff --combined file
+
-or like this (when `--cc` option is used):
+or like this (when the `--cc` option is used):
diff --cc file
@@ -160,7 +164,7 @@ parents.
4. Chunk header format is modified to prevent people from
accidentally feeding it to `patch -p1`. Combined diff format
was created for review of merge commit changes, and was not
- meant for apply. The change is similar to the change in the
+ meant to be applied. The change is similar to the change in the
extended 'index' header:
@@@ <from-file-range> <from-file-range> <to-file-range> @@@
diff --git a/Documentation/doc-diff b/Documentation/doc-diff
index 3355be4..88a9b20 100755
--- a/Documentation/doc-diff
+++ b/Documentation/doc-diff
@@ -21,7 +21,7 @@ asciidoc use asciidoc with both commits
to-asciidoc use asciidoc with the 'to'-commit
to-asciidoctor use asciidoctor with the 'to'-commit
asciidoctor use asciidoctor with both commits
-cut-header-footer cut away header and footer
+cut-footer cut away footer
"
SUBDIRECTORY_OK=1
. "$(git --exec-path)/git-sh-setup"
@@ -31,7 +31,7 @@ force=
clean=
from_program=
to_program=
-cut_header_footer=
+cut_footer=
while test $# -gt 0
do
case "$1" in
@@ -55,8 +55,8 @@ do
--asciidoc)
from_program=-asciidoc
to_program=-asciidoc ;;
- --cut-header-footer)
- cut_header_footer=-cut-header-footer ;;
+ --cut-footer)
+ cut_footer=-cut-footer ;;
--)
shift; break ;;
*)
@@ -118,8 +118,8 @@ construct_makemanflags () {
from_makemanflags=$(construct_makemanflags "$from_program") &&
to_makemanflags=$(construct_makemanflags "$to_program") &&
-from_dir=$from_oid$from_program$cut_header_footer &&
-to_dir=$to_oid$to_program$cut_header_footer &&
+from_dir=$from_oid$from_program$cut_footer &&
+to_dir=$to_oid$to_program$cut_footer &&
# generate_render_makefile <srcdir> <dstdir>
generate_render_makefile () {
@@ -169,12 +169,11 @@ render_tree () {
make -j$parallel -f - &&
mv "$tmp/rendered/$dname+" "$tmp/rendered/$dname"
- if test "$cut_header_footer" = "-cut-header-footer"
+ if test "$cut_footer" = "-cut-footer"
then
for f in $(find "$tmp/rendered/$dname" -type f)
do
- tail -n +3 "$f" | head -n -2 |
- sed -e '1{/^$/d}' -e '${/^$/d}' >"$f+" &&
+ head -n -2 "$f" | sed -e '${/^$/d}' >"$f+" &&
mv "$f+" "$f" ||
return 1
done
diff --git a/Documentation/fetch-options.txt b/Documentation/fetch-options.txt
index 3c9b4f9..43b9ff3 100644
--- a/Documentation/fetch-options.txt
+++ b/Documentation/fetch-options.txt
@@ -160,15 +160,27 @@ ifndef::git-pull[]
-j::
--jobs=<n>::
- Number of parallel children to be used for fetching submodules.
- Each will fetch from different submodules, such that fetching many
- submodules will be faster. By default submodules will be fetched
- one at a time.
+ Number of parallel children to be used for all forms of fetching.
++
+If the `--multiple` option was specified, the different remotes will be fetched
+in parallel. If multiple submodules are fetched, they will be fetched in
+parallel. To control them independently, use the config settings
+`fetch.parallel` and `submodule.fetchJobs` (see linkgit:git-config[1]).
++
+Typically, parallel recursive and multi-remote fetches will be faster. By
+default fetches are performed sequentially, not in parallel.
--no-recurse-submodules::
Disable recursive fetching of submodules (this has the same effect as
using the `--recurse-submodules=no` option).
+--set-upstream::
+ If the remote is fetched successfully, pull and add upstream
+ (tracking) reference, used by argument-less
+ linkgit:git-pull[1] and other commands. For more information,
+ see `branch.<name>.merge` and `branch.<name>.remote` in
+ linkgit:git-config[1].
+
--submodule-prefix=<path>::
Prepend <path> to paths printed in informative messages
such as "Fetching submodule foo". This option is used
diff --git a/Documentation/git-clean.txt b/Documentation/git-clean.txt
index 0028ff1..a7f309d 100644
--- a/Documentation/git-clean.txt
+++ b/Documentation/git-clean.txt
@@ -26,18 +26,20 @@ are affected.
OPTIONS
-------
-d::
- Remove untracked directories in addition to untracked files.
- If an untracked directory is managed by a different Git
- repository, it is not removed by default. Use -f option twice
- if you really want to remove such a directory.
+ Normally, when no <path> is specified, git clean will not
+ recurse into untracked directories to avoid removing too much.
+ Specify -d to have it recurse into such directories as well.
+ If any paths are specified, -d is irrelevant; all untracked
+ files matching the specified paths (with exceptions for nested
+ git directories mentioned under `--force`) will be removed.
-f::
--force::
If the Git configuration variable clean.requireForce is not set
to false, 'git clean' will refuse to delete files or directories
- unless given -f, -n or -i. Git will refuse to delete directories
- with .git sub directory or file unless a second -f
- is given.
+ unless given -f or -i. Git will refuse to modify untracked
+ nested git repositories (directories with a .git subdirectory)
+ unless a second -f is given.
-i::
--interactive::
diff --git a/Documentation/git-commit-graph.txt b/Documentation/git-commit-graph.txt
index eb5e786..8c708a7 100644
--- a/Documentation/git-commit-graph.txt
+++ b/Documentation/git-commit-graph.txt
@@ -10,8 +10,8 @@ SYNOPSIS
--------
[verse]
'git commit-graph read' [--object-dir <dir>]
-'git commit-graph verify' [--object-dir <dir>] [--shallow]
-'git commit-graph write' <options> [--object-dir <dir>]
+'git commit-graph verify' [--object-dir <dir>] [--shallow] [--[no-]progress]
+'git commit-graph write' <options> [--object-dir <dir>] [--[no-]progress]
DESCRIPTION
@@ -29,6 +29,9 @@ OPTIONS
commit-graph file is expected to be in the `<dir>/info` directory and
the packfiles are expected to be in `<dir>/pack`.
+--[no-]progress::
+ Turn progress on/off explicitly. If neither is specified, progress is
+ shown if standard error is connected to a terminal.
COMMANDS
--------
diff --git a/Documentation/git-commit.txt b/Documentation/git-commit.txt
index 7628193..afa7b75 100644
--- a/Documentation/git-commit.txt
+++ b/Documentation/git-commit.txt
@@ -282,18 +282,20 @@ FROM UPSTREAM REBASE" section in linkgit:git-rebase[1].)
--untracked-files[=<mode>]::
Show untracked files.
+
+--
The mode parameter is optional (defaults to 'all'), and is used to
specify the handling of untracked files; when -u is not used, the
default is 'normal', i.e. show untracked files and directories.
-+
+
The possible options are:
-+
+
- 'no' - Show no untracked files
- 'normal' - Shows untracked files and directories
- 'all' - Also shows individual files in untracked directories.
-+
+
The default can be changed using the status.showUntrackedFiles
configuration variable documented in linkgit:git-config[1].
+--
-v::
--verbose::
diff --git a/Documentation/git-config.txt b/Documentation/git-config.txt
index ff9310f..899e92a 100644
--- a/Documentation/git-config.txt
+++ b/Documentation/git-config.txt
@@ -339,33 +339,35 @@ EXAMPLES
Given a .git/config like this:
- #
- # This is the config file, and
- # a '#' or ';' character indicates
- # a comment
- #
-
- ; core variables
- [core]
- ; Don't trust file modes
- filemode = false
-
- ; Our diff algorithm
- [diff]
- external = /usr/local/bin/diff-wrapper
- renames = true
-
- ; Proxy settings
- [core]
- gitproxy=proxy-command for kernel.org
- gitproxy=default-proxy ; for all the rest
-
- ; HTTP
- [http]
- sslVerify
- [http "https://weak.example.com"]
- sslVerify = false
- cookieFile = /tmp/cookie.txt
+------------
+#
+# This is the config file, and
+# a '#' or ';' character indicates
+# a comment
+#
+
+; core variables
+[core]
+ ; Don't trust file modes
+ filemode = false
+
+; Our diff algorithm
+[diff]
+ external = /usr/local/bin/diff-wrapper
+ renames = true
+
+; Proxy settings
+[core]
+ gitproxy=proxy-command for kernel.org
+ gitproxy=default-proxy ; for all the rest
+
+; HTTP
+[http]
+ sslVerify
+[http "https://weak.example.com"]
+ sslVerify = false
+ cookieFile = /tmp/cookie.txt
+------------
you can set the filemode to true with
diff --git a/Documentation/git-fast-export.txt b/Documentation/git-fast-export.txt
index cc940eb..37634bf 100644
--- a/Documentation/git-fast-export.txt
+++ b/Documentation/git-fast-export.txt
@@ -17,9 +17,9 @@ This program dumps the given revisions in a form suitable to be piped
into 'git fast-import'.
You can use it as a human-readable bundle replacement (see
-linkgit:git-bundle[1]), or as a kind of an interactive
-'git filter-branch'.
-
+linkgit:git-bundle[1]), or as a format that can be edited before being
+fed to 'git fast-import' in order to do history rewrites (an ability
+relied on by tools like 'git filter-repo').
OPTIONS
-------
@@ -75,11 +75,20 @@ produced incorrect results if you gave these options.
Before processing any input, load the marks specified in
<file>. The input file must exist, must be readable, and
must use the same format as produced by --export-marks.
+
+--mark-tags::
+ In addition to labelling blobs and commits with mark ids, also
+ label tags. This is useful in conjunction with
+ `--export-marks` and `--import-marks`, and is also useful (and
+ necessary) for exporting of nested tags. It does not hurt
+ other cases and would be the default, but many fast-import
+ frontends are not prepared to accept tags with mark
+ identifiers.
+
-Any commits that have already been marked will not be exported again.
-If the backend uses a similar --import-marks file, this allows for
-incremental bidirectional exporting of the repository by keeping the
-marks the same across runs.
+Any commits (or tags) that have already been marked will not be
+exported again. If the backend uses a similar --import-marks file,
+this allows for incremental bidirectional exporting of the repository
+by keeping the marks the same across runs.
--fake-missing-tagger::
Some old repositories have tags without a tagger. The
diff --git a/Documentation/git-fast-import.txt b/Documentation/git-fast-import.txt
index fad327a..a3f1e0c 100644
--- a/Documentation/git-fast-import.txt
+++ b/Documentation/git-fast-import.txt
@@ -337,6 +337,13 @@ and control the current import process. More detailed discussion
`commit` command. This command is optional and is not
needed to perform an import.
+`alias`::
+ Record that a mark refers to a given object without first
+ creating any new object. Using --import-marks and referring
+ to missing marks will cause fast-import to fail, so aliases
+ can provide a way to set otherwise pruned commits to a valid
+ value (e.g. the nearest non-pruned ancestor).
+
`checkpoint`::
Forces fast-import to close the current packfile, generate its
unique SHA-1 checksum and index, and start a new packfile.
@@ -391,7 +398,7 @@ change to the project.
('encoding' SP <encoding>)?
data
('from' SP <commit-ish> LF)?
- ('merge' SP <commit-ish> LF)?
+ ('merge' SP <commit-ish> LF)*
(filemodify | filedelete | filecopy | filerename | filedeleteall | notemodify)*
LF?
....
@@ -774,6 +781,7 @@ lightweight (non-annotated) tags see the `reset` command below.
....
'tag' SP <name> LF
+ mark?
'from' SP <commit-ish> LF
original-oid?
'tagger' (SP <name>)? SP LT <email> GT SP <when> LF
@@ -913,6 +921,21 @@ a data chunk which does not have an LF as its last byte.
+
The `LF` after `<delim> LF` is optional (it used to be required).
+`alias`
+~~~~~~~
+Record that a mark refers to a given object without first creating any
+new object.
+
+....
+ 'alias' LF
+ mark
+ 'to' SP <commit-ish> LF
+ LF?
+....
+
+For a detailed description of `<commit-ish>` see above under `from`.
+
+
`checkpoint`
~~~~~~~~~~~~
Forces fast-import to close the current packfile, start a new one, and to
diff --git a/Documentation/git-filter-branch.txt b/Documentation/git-filter-branch.txt
index 6b53dd7..5876598 100644
--- a/Documentation/git-filter-branch.txt
+++ b/Documentation/git-filter-branch.txt
@@ -16,6 +16,19 @@ SYNOPSIS
[--original <namespace>] [-d <directory>] [-f | --force]
[--state-branch <branch>] [--] [<rev-list options>...]
+WARNING
+-------
+'git filter-branch' has a plethora of pitfalls that can produce non-obvious
+manglings of the intended history rewrite (and can leave you with little
+time to investigate such problems since it has such abysmal performance).
+These safety and performance issues cannot be backward compatibly fixed and
+as such, its use is not recommended. Please use an alternative history
+filtering tool such as https://github.com/newren/git-filter-repo/[git
+filter-repo]. If you still need to use 'git filter-branch', please
+carefully read <<SAFETY>> (and <<PERFORMANCE>>) to learn about the land
+mines of filter-branch, and then vigilantly avoid as many of the hazards
+listed there as reasonably possible.
+
DESCRIPTION
-----------
Lets you rewrite Git revision history by rewriting the branches mentioned
@@ -445,36 +458,236 @@ warned.
(or if your git-gc is not new enough to support arguments to
`--prune`, use `git repack -ad; git prune` instead).
-NOTES
------
-
-git-filter-branch allows you to make complex shell-scripted rewrites
-of your Git history, but you probably don't need this flexibility if
-you're simply _removing unwanted data_ like large files or passwords.
-For those operations you may want to consider
-http://rtyley.github.io/bfg-repo-cleaner/[The BFG Repo-Cleaner],
-a JVM-based alternative to git-filter-branch, typically at least
-10-50x faster for those use-cases, and with quite different
-characteristics:
-
-* Any particular version of a file is cleaned exactly _once_. The BFG,
- unlike git-filter-branch, does not give you the opportunity to
- handle a file differently based on where or when it was committed
- within your history. This constraint gives the core performance
- benefit of The BFG, and is well-suited to the task of cleansing bad
- data - you don't care _where_ the bad data is, you just want it
- _gone_.
-
-* By default The BFG takes full advantage of multi-core machines,
- cleansing commit file-trees in parallel. git-filter-branch cleans
- commits sequentially (i.e. in a single-threaded manner), though it
- _is_ possible to write filters that include their own parallelism,
- in the scripts executed against each commit.
-
-* The http://rtyley.github.io/bfg-repo-cleaner/#examples[command options]
- are much more restrictive than git-filter branch, and dedicated just
- to the tasks of removing unwanted data- e.g:
- `--strip-blobs-bigger-than 1M`.
+[[PERFORMANCE]]
+PERFORMANCE
+-----------
+
+The performance of git-filter-branch is glacially slow; its design makes it
+impossible for a backward-compatible implementation to ever be fast:
+
+* In editing files, git-filter-branch by design checks out each and
+every commit as it existed in the original repo. If your repo has 10\^5
+files and 10\^5 commits, but each commit only modifies 5 files, then
+git-filter-branch will make you do 10\^10 modifications, despite only
+having (at most) 5*10^5 unique blobs.
+
+* If you try and cheat and try to make git-filter-branch only work on
+files modified in a commit, then two things happen
+
+ ** you run into problems with deletions whenever the user is simply
+ trying to rename files (because attempting to delete files that
+ don't exist looks like a no-op; it takes some chicanery to remap
+ deletes across file renames when the renames happen via arbitrary
+ user-provided shell)
+
+ ** even if you succeed at the map-deletes-for-renames chicanery, you
+ still technically violate backward compatibility because users are
+ allowed to filter files in ways that depend upon topology of
+ commits instead of filtering solely based on file contents or names
+ (though this has not been observed in the wild).
+
+* Even if you don't need to edit files but only want to e.g. rename or
+remove some and thus can avoid checking out each file (i.e. you can use
+--index-filter), you still are passing shell snippets for your filters.
+This means that for every commit, you have to have a prepared git repo
+where those filters can be run. That's a significant setup.
+
+* Further, several additional files are created or updated per commit by
+git-filter-branch. Some of these are for supporting the convenience
+functions provided by git-filter-branch (such as map()), while others
+are for keeping track of internal state (but could have also been
+accessed by user filters; one of git-filter-branch's regression tests
+does so). This essentially amounts to using the filesystem as an IPC
+mechanism between git-filter-branch and the user-provided filters.
+Disks tend to be a slow IPC mechanism, and writing these files also
+effectively represents a forced synchronization point between separate
+processes that we hit with every commit.
+
+* The user-provided shell commands will likely involve a pipeline of
+commands, resulting in the creation of many processes per commit.
+Creating and running another process takes a widely varying amount of
+time between operating systems, but on any platform it is very slow
+relative to invoking a function.
+
+* git-filter-branch itself is written in shell, which is kind of slow.
+This is the one performance issue that could be backward-compatibly
+fixed, but compared to the above problems that are intrinsic to the
+design of git-filter-branch, the language of the tool itself is a
+relatively minor issue.
+
+ ** Side note: Unfortunately, people tend to fixate on the
+ written-in-shell aspect and periodically ask if git-filter-branch
+ could be rewritten in another language to fix the performance
+ issues. Not only does that ignore the bigger intrinsic problems
+ with the design, it'd help less than you'd expect: if
+ git-filter-branch itself were not shell, then the convenience
+ functions (map(), skip_commit(), etc) and the `--setup` argument
+ could no longer be executed once at the beginning of the program
+ but would instead need to be prepended to every user filter (and
+ thus re-executed with every commit).
+
+The https://github.com/newren/git-filter-repo/[git filter-repo] tool is
+an alternative to git-filter-branch which does not suffer from these
+performance problems or the safety problems (mentioned below). For those
+with existing tooling which relies upon git-filter-branch, 'git
+repo-filter' also provides
+https://github.com/newren/git-filter-repo/blob/master/contrib/filter-repo-demos/filter-lamely[filter-lamely],
+a drop-in git-filter-branch replacement (with a few caveats). While
+filter-lamely suffers from all the same safety issues as
+git-filter-branch, it at least ameloriates the performance issues a
+little.
+
+[[SAFETY]]
+SAFETY
+------
+
+git-filter-branch is riddled with gotchas resulting in various ways to
+easily corrupt repos or end up with a mess worse than what you started
+with:
+
+* Someone can have a set of "working and tested filters" which they
+document or provide to a coworker, who then runs them on a different OS
+where the same commands are not working/tested (some examples in the
+git-filter-branch manpage are also affected by this). BSD vs. GNU
+userland differences can really bite. If lucky, error messages are
+spewed. But just as likely, the commands either don't do the filtering
+requested, or silently corrupt by making some unwanted change. The
+unwanted change may only affect a few commits, so it's not necessarily
+obvious either. (The fact that problems won't necessarily be obvious
+means they are likely to go unnoticed until the rewritten history is in
+use for quite a while, at which point it's really hard to justify
+another flag-day for another rewrite.)
+
+* Filenames with spaces are often mishandled by shell snippets since
+they cause problems for shell pipelines. Not everyone is familiar with
+find -print0, xargs -0, git-ls-files -z, etc. Even people who are
+familiar with these may assume such flags are not relevant because
+someone else renamed any such files in their repo back before the person
+doing the filtering joined the project. And often, even those familiar
+with handling arguments with spaces may not do so just because they
+aren't in the mindset of thinking about everything that could possibly
+go wrong.
+
+* Non-ascii filenames can be silently removed despite being in a desired
+directory. Keeping only wanted paths is often done using pipelines like
+`git ls-files | grep -v ^WANTED_DIR/ | xargs git rm`. ls-files will
+only quote filenames if needed, so folks may not notice that one of the
+files didn't match the regex (at least not until it's much too late).
+Yes, someone who knows about core.quotePath can avoid this (unless they
+have other special characters like \t, \n, or "), and people who use
+ls-files -z with something other than grep can avoid this, but that
+doesn't mean they will.
+
+* Similarly, when moving files around, one can find that filenames with
+non-ascii or special characters end up in a different directory, one
+that includes a double quote character. (This is technically the same
+issue as above with quoting, but perhaps an interesting different way
+that it can and has manifested as a problem.)
+
+* It's far too easy to accidentally mix up old and new history. It's
+still possible with any tool, but git-filter-branch almost invites it.
+If lucky, the only downside is users getting frustrated that they don't
+know how to shrink their repo and remove the old stuff. If unlucky,
+they merge old and new history and end up with multiple "copies" of each
+commit, some of which have unwanted or sensitive files and others which
+don't. This comes about in multiple different ways:
+
+ ** the default to only doing a partial history rewrite ('--all' is not
+ the default and few examples show it)
+
+ ** the fact that there's no automatic post-run cleanup
+
+ ** the fact that --tag-name-filter (when used to rename tags) doesn't
+ remove the old tags but just adds new ones with the new name
+
+ ** the fact that little educational information is provided to inform
+ users of the ramifications of a rewrite and how to avoid mixing old
+ and new history. For example, this man page discusses how users
+ need to understand that they need to rebase their changes for all
+ their branches on top of new history (or delete and reclone), but
+ that's only one of multiple concerns to consider. See the
+ "DISCUSSION" section of the git filter-repo manual page for more
+ details.
+
+* Annotated tags can be accidentally converted to lightweight tags, due
+to either of two issues:
+
+ ** Someone can do a history rewrite, realize they messed up, restore
+ from the backups in refs/original/, and then redo their
+ git-filter-branch command. (The backup in refs/original/ is not a
+ real backup; it dereferences tags first.)
+
+ ** Running git-filter-branch with either --tags or --all in your
+ <rev-list options>. In order to retain annotated tags as
+ annotated, you must use --tag-name-filter (and must not have
+ restored from refs/original/ in a previously botched rewrite).
+
+* Any commit messages that specify an encoding will become corrupted
+by the rewrite; git-filter-branch ignores the encoding, takes the original
+bytes, and feeds it to commit-tree without telling it the proper
+encoding. (This happens whether or not --msg-filter is used.)
+
+* Commit messages (even if they are all UTF-8) by default become
+corrupted due to not being updated -- any references to other commit
+hashes in commit messages will now refer to no-longer-extant commits.
+
+* There are no facilities for helping users find what unwanted crud they
+should delete, which means they are much more likely to have incomplete
+or partial cleanups that sometimes result in confusion and people
+wasting time trying to understand. (For example, folks tend to just
+look for big files to delete instead of big directories or extensions,
+and once they do so, then sometime later folks using the new repository
+who are going through history will notice a build artifact directory
+that has some files but not others, or a cache of dependencies
+(node_modules or similar) which couldn't have ever been functional since
+it's missing some files.)
+
+* If --prune-empty isn't specified, then the filtering process can
+create hoards of confusing empty commits
+
+* If --prune-empty is specified, then intentionally placed empty
+commits from before the filtering operation are also pruned instead of
+just pruning commits that became empty due to filtering rules.
+
+* If --prune empty is specified, sometimes empty commits are missed
+and left around anyway (a somewhat rare bug, but it happens...)
+
+* A minor issue, but users who have a goal to update all names and
+emails in a repository may be led to --env-filter which will only update
+authors and committers, missing taggers.
+
+* If the user provides a --tag-name-filter that maps multiple tags to
+the same name, no warning or error is provided; git-filter-branch simply
+overwrites each tag in some undocumented pre-defined order resulting in
+only one tag at the end. (A git-filter-branch regression test requires
+this surprising behavior.)
+
+Also, the poor performance of git-filter-branch often leads to safety
+issues:
+
+* Coming up with the correct shell snippet to do the filtering you want
+is sometimes difficult unless you're just doing a trivial modification
+such as deleting a couple files. Unfortunately, people often learn if
+the snippet is right or wrong by trying it out, but the rightness or
+wrongness can vary depending on special circumstances (spaces in
+filenames, non-ascii filenames, funny author names or emails, invalid
+timezones, presence of grafts or replace objects, etc.), meaning they
+may have to wait a long time, hit an error, then restart. The
+performance of git-filter-branch is so bad that this cycle is painful,
+reducing the time available to carefully re-check (to say nothing about
+what it does to the patience of the person doing the rewrite even if
+they do technically have more time available). This problem is extra
+compounded because errors from broken filters may not be shown for a
+long time and/or get lost in a sea of output. Even worse, broken
+filters often just result in silent incorrect rewrites.
+
+* To top it all off, even when users finally find working commands, they
+naturally want to share them. But they may be unaware that their repo
+didn't have some special cases that someone else's does. So, when
+someone else with a different repository runs the same commands, they
+get hit by the problems above. Or, the user just runs commands that
+really were vetted for special cases, but they run it on a different OS
+where it doesn't work, as noted above.
GIT
---
diff --git a/Documentation/git-format-patch.txt b/Documentation/git-format-patch.txt
index 6800e1a..00bdf9b 100644
--- a/Documentation/git-format-patch.txt
+++ b/Documentation/git-format-patch.txt
@@ -67,7 +67,8 @@ they are created in the current working directory. The default path
can be set with the `format.outputDirectory` configuration option.
The `-o` option takes precedence over `format.outputDirectory`.
To store patches in the current working directory even when
-`format.outputDirectory` points elsewhere, use `-o .`.
+`format.outputDirectory` points elsewhere, use `-o .`. All directory
+components will be created.
By default, the subject of a single patch is "[PATCH] " followed by
the concatenation of lines from the commit message up to the first blank
diff --git a/Documentation/git-gc.txt b/Documentation/git-gc.txt
index 247f765..0c114ad 100644
--- a/Documentation/git-gc.txt
+++ b/Documentation/git-gc.txt
@@ -115,15 +115,14 @@ NOTES
-----
'git gc' tries very hard not to delete objects that are referenced
-anywhere in your repository. In
-particular, it will keep not only objects referenced by your current set
-of branches and tags, but also objects referenced by the index,
-remote-tracking branches, refs saved by 'git filter-branch' in
-refs/original/, reflogs (which may reference commits in branches
-that were later amended or rewound), and anything else in the refs/* namespace.
-If you are expecting some objects to be deleted and they aren't, check
-all of those locations and decide whether it makes sense in your case to
-remove those references.
+anywhere in your repository. In particular, it will keep not only
+objects referenced by your current set of branches and tags, but also
+objects referenced by the index, remote-tracking branches, notes saved
+by 'git notes' under refs/notes/, reflogs (which may reference commits
+in branches that were later amended or rewound), and anything else in
+the refs/* namespace. If you are expecting some objects to be deleted
+and they aren't, check all of those locations and decide whether it
+makes sense in your case to remove those references.
On the other hand, when 'git gc' runs concurrently with another process,
there is a risk of it deleting an object that the other process is using
diff --git a/Documentation/git-grep.txt b/Documentation/git-grep.txt
index 2d27969..c89fb56 100644
--- a/Documentation/git-grep.txt
+++ b/Documentation/git-grep.txt
@@ -271,6 +271,23 @@ providing this option will cause it to die.
-f <file>::
Read patterns from <file>, one per line.
++
+Passing the pattern via <file> allows for providing a search pattern
+containing a \0.
++
+Not all pattern types support patterns containing \0. Git will error
+out if a given pattern type can't support such a pattern. The
+`--perl-regexp` pattern type when compiled against the PCRE v2 backend
+has the widest support for these types of patterns.
++
+In versions of Git before 2.23.0 patterns containing \0 would be
+silently considered fixed. This was never documented, there were also
+odd and undocumented interactions between e.g. non-ASCII patterns
+containing \0 and `--ignore-case`.
++
+In future versions we may learn to support patterns containing \0 for
+more search backends, until then we'll die when the pattern type in
+question doesn't support them.
-e::
The next parameter is the pattern. This option has to be
diff --git a/Documentation/git-gui.txt b/Documentation/git-gui.txt
index 5f93f80..c9d7e96 100644
--- a/Documentation/git-gui.txt
+++ b/Documentation/git-gui.txt
@@ -112,15 +112,9 @@ Other
versions are distributed as part of the Git suite for the convenience
of end users.
-A 'git gui' development repository can be obtained from:
+The official repository of the 'git gui' project can be found at:
- git clone git://repo.or.cz/git-gui.git
-
-or
-
- git clone http://repo.or.cz/r/git-gui.git
-
-or browsed online at http://repo.or.cz/w/git-gui.git/[].
+ https://github.com/prati0100/git-gui.git/
GIT
---
diff --git a/Documentation/git-ls-remote.txt b/Documentation/git-ls-remote.txt
index 0b057cb..a2ea1fd 100644
--- a/Documentation/git-ls-remote.txt
+++ b/Documentation/git-ls-remote.txt
@@ -92,21 +92,23 @@ OPTIONS
EXAMPLES
--------
- $ git ls-remote --tags ./.
- d6602ec5194c87b0fc87103ca4d67251c76f233a refs/tags/v0.99
- f25a265a342aed6041ab0cc484224d9ca54b6f41 refs/tags/v0.99.1
- 7ceca275d047c90c0c7d5afb13ab97efdf51bd6e refs/tags/v0.99.3
- c5db5456ae3b0873fc659c19fafdde22313cc441 refs/tags/v0.99.2
- 0918385dbd9656cab0d1d81ba7453d49bbc16250 refs/tags/junio-gpg-pub
- $ git ls-remote http://www.kernel.org/pub/scm/git/git.git master pu rc
- 5fe978a5381f1fbad26a80e682ddd2a401966740 refs/heads/master
- c781a84b5204fb294c9ccc79f8b3baceeb32c061 refs/heads/pu
- $ git remote add korg http://www.kernel.org/pub/scm/git/git.git
- $ git ls-remote --tags korg v\*
- d6602ec5194c87b0fc87103ca4d67251c76f233a refs/tags/v0.99
- f25a265a342aed6041ab0cc484224d9ca54b6f41 refs/tags/v0.99.1
- c5db5456ae3b0873fc659c19fafdde22313cc441 refs/tags/v0.99.2
- 7ceca275d047c90c0c7d5afb13ab97efdf51bd6e refs/tags/v0.99.3
+----
+$ git ls-remote --tags ./.
+d6602ec5194c87b0fc87103ca4d67251c76f233a refs/tags/v0.99
+f25a265a342aed6041ab0cc484224d9ca54b6f41 refs/tags/v0.99.1
+7ceca275d047c90c0c7d5afb13ab97efdf51bd6e refs/tags/v0.99.3
+c5db5456ae3b0873fc659c19fafdde22313cc441 refs/tags/v0.99.2
+0918385dbd9656cab0d1d81ba7453d49bbc16250 refs/tags/junio-gpg-pub
+$ git ls-remote http://www.kernel.org/pub/scm/git/git.git master pu rc
+5fe978a5381f1fbad26a80e682ddd2a401966740 refs/heads/master
+c781a84b5204fb294c9ccc79f8b3baceeb32c061 refs/heads/pu
+$ git remote add korg http://www.kernel.org/pub/scm/git/git.git
+$ git ls-remote --tags korg v\*
+d6602ec5194c87b0fc87103ca4d67251c76f233a refs/tags/v0.99
+f25a265a342aed6041ab0cc484224d9ca54b6f41 refs/tags/v0.99.1
+c5db5456ae3b0873fc659c19fafdde22313cc441 refs/tags/v0.99.2
+7ceca275d047c90c0c7d5afb13ab97efdf51bd6e refs/tags/v0.99.3
+----
SEE ALSO
--------
diff --git a/Documentation/git-merge-base.txt b/Documentation/git-merge-base.txt
index 261d5c1..2d944e0 100644
--- a/Documentation/git-merge-base.txt
+++ b/Documentation/git-merge-base.txt
@@ -80,9 +80,11 @@ which is reachable from both 'A' and 'B' through the parent relationship.
For example, with this topology:
- o---o---o---B
- /
- ---o---1---o---o---o---A
+....
+ o---o---o---B
+ /
+---o---1---o---o---o---A
+....
the merge base between 'A' and 'B' is '1'.
@@ -90,21 +92,25 @@ Given three commits 'A', 'B' and 'C', `git merge-base A B C` will compute the
merge base between 'A' and a hypothetical commit 'M', which is a merge
between 'B' and 'C'. For example, with this topology:
- o---o---o---o---C
- /
- / o---o---o---B
- / /
- ---2---1---o---o---o---A
+....
+ o---o---o---o---C
+ /
+ / o---o---o---B
+ / /
+---2---1---o---o---o---A
+....
the result of `git merge-base A B C` is '1'. This is because the
equivalent topology with a merge commit 'M' between 'B' and 'C' is:
- o---o---o---o---o
- / \
- / o---o---o---o---M
- / /
- ---2---1---o---o---o---A
+....
+ o---o---o---o---o
+ / \
+ / o---o---o---o---M
+ / /
+---2---1---o---o---o---A
+....
and the result of `git merge-base A M` is '1'. Commit '2' is also a
common ancestor between 'A' and 'M', but '1' is a better common ancestor,
@@ -116,11 +122,13 @@ the best common ancestor of all commits.
When the history involves criss-cross merges, there can be more than one
'best' common ancestor for two commits. For example, with this topology:
- ---1---o---A
- \ /
- X
- / \
- ---2---o---o---B
+....
+---1---o---A
+ \ /
+ X
+ / \
+---2---o---o---B
+....
both '1' and '2' are merge-bases of A and B. Neither one is better than
the other (both are 'best' merge bases). When the `--all` option is not given,
@@ -131,18 +139,22 @@ and B is (or at least used to be) to compute the merge base between
A and B, and check if it is the same as A, in which case, A is an
ancestor of B. You will see this idiom used often in older scripts.
- A=$(git rev-parse --verify A)
- if test "$A" = "$(git merge-base A B)"
- then
- ... A is an ancestor of B ...
- fi
+....
+A=$(git rev-parse --verify A)
+if test "$A" = "$(git merge-base A B)"
+then
+ ... A is an ancestor of B ...
+fi
+....
In modern git, you can say this in a more direct way:
- if git merge-base --is-ancestor A B
- then
- ... A is an ancestor of B ...
- fi
+....
+if git merge-base --is-ancestor A B
+then
+ ... A is an ancestor of B ...
+fi
+....
instead.
@@ -154,13 +166,15 @@ topic origin/master`, the history of remote-tracking branch
`origin/master` may have been rewound and rebuilt, leading to a
history of this shape:
- o---B2
- /
- ---o---o---B1--o---o---o---B (origin/master)
- \
- B0
- \
- D0---D1---D (topic)
+....
+ o---B2
+ /
+---o---o---B1--o---o---o---B (origin/master)
+ \
+ B0
+ \
+ D0---D1---D (topic)
+....
where `origin/master` used to point at commits B0, B1, B2 and now it
points at B, and your `topic` branch was started on top of it back
@@ -193,13 +207,15 @@ will find B0, and
will replay D0, D1 and D on top of B to create a new history of this
shape:
- o---B2
- /
- ---o---o---B1--o---o---o---B (origin/master)
- \ \
- B0 D0'--D1'--D' (topic - updated)
- \
- D0---D1---D (topic - old)
+....
+ o---B2
+ /
+---o---o---B1--o---o---o---B (origin/master)
+ \ \
+ B0 D0'--D1'--D' (topic - updated)
+ \
+ D0---D1---D (topic - old)
+....
A caveat is that older reflog entries in your repository may be
expired by `git gc`. If B0 no longer appears in the reflog of the
diff --git a/Documentation/git-merge-index.txt b/Documentation/git-merge-index.txt
index 02676fb..2ab84a9 100644
--- a/Documentation/git-merge-index.txt
+++ b/Documentation/git-merge-index.txt
@@ -54,20 +54,24 @@ original is first. But the argument order to the 3-way merge program
Examples:
- torvalds@ppc970:~/merge-test> git merge-index cat MM
- This is MM from the original tree. # original
- This is modified MM in the branch A. # merge1
- This is modified MM in the branch B. # merge2
- This is modified MM in the branch B. # current contents
+----
+torvalds@ppc970:~/merge-test> git merge-index cat MM
+This is MM from the original tree. # original
+This is modified MM in the branch A. # merge1
+This is modified MM in the branch B. # merge2
+This is modified MM in the branch B. # current contents
+----
or
- torvalds@ppc970:~/merge-test> git merge-index cat AA MM
- cat: : No such file or directory
- This is added AA in the branch A.
- This is added AA in the branch B.
- This is added AA in the branch B.
- fatal: merge program failed
+----
+torvalds@ppc970:~/merge-test> git merge-index cat AA MM
+cat: : No such file or directory
+This is added AA in the branch A.
+This is added AA in the branch B.
+This is added AA in the branch B.
+fatal: merge program failed
+----
where the latter example shows how 'git merge-index' will stop trying to
merge once anything has returned an error (i.e., `cat` returned an error
diff --git a/Documentation/git-merge.txt b/Documentation/git-merge.txt
index 01fd52d..092529c 100644
--- a/Documentation/git-merge.txt
+++ b/Documentation/git-merge.txt
@@ -10,7 +10,7 @@ SYNOPSIS
--------
[verse]
'git merge' [-n] [--stat] [--no-commit] [--squash] [--[no-]edit]
- [-s <strategy>] [-X <strategy-option>] [-S[<keyid>]]
+ [--no-verify] [-s <strategy>] [-X <strategy-option>] [-S[<keyid>]]
[--[no-]allow-unrelated-histories]
[--[no-]rerere-autoupdate] [-m <msg>] [-F <file>] [<commit>...]
'git merge' (--continue | --abort | --quit)
diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt
index 6156609..639a417 100644
--- a/Documentation/git-rebase.txt
+++ b/Documentation/git-rebase.txt
@@ -8,8 +8,8 @@ git-rebase - Reapply commits on top of another base tip
SYNOPSIS
--------
[verse]
-'git rebase' [-i | --interactive] [<options>] [--exec <cmd>] [--onto <newbase>]
- [<upstream> [<branch>]]
+'git rebase' [-i | --interactive] [<options>] [--exec <cmd>]
+ [--onto <newbase> | --keep-base] [<upstream> [<branch>]]
'git rebase' [-i | --interactive] [<options>] [--exec <cmd>] [--onto <newbase>]
--root [<branch>]
'git rebase' (--continue | --skip | --abort | --quit | --edit-todo | --show-current-patch)
@@ -217,6 +217,24 @@ As a special case, you may use "A\...B" as a shortcut for the
merge base of A and B if there is exactly one merge base. You can
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
+ 'git rebase --keep-base <upstream> <branch>' is equivalent to
+ running 'git rebase --onto <upstream>... <upstream>'.
++
+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
+upstream branch may advance and it may not be the best idea to keep
+rebasing on top of the upstream but to keep the base commit as-is.
++
+Although both this option and --fork-point find the merge base between
+<upstream> and <branch>, this option uses the merge base as the _starting
+point_ on which new commits will be created, whereas --fork-point uses
+the merge base to determine the _set of commits_ which will be rebased.
++
+See also INCOMPATIBLE OPTIONS below.
+
<upstream>::
Upstream branch to compare against. May be any valid commit,
not just an existing branch name. Defaults to the configured
@@ -369,6 +387,10 @@ ends up being empty, the <upstream> will be used as a fallback.
+
If either <upstream> or --root is given on the command line, then the
default is `--no-fork-point`, otherwise the default is `--fork-point`.
++
+If your branch was based on <upstream> but <upstream> was rewound and
+your branch contains commits which were dropped, this option can be used
+with `--keep-base` in order to drop those commits from your branch.
--ignore-whitespace::
--whitespace=<option>::
@@ -543,8 +565,8 @@ In addition, the following pairs of options are incompatible:
* --preserve-merges and --interactive
* --preserve-merges and --signoff
* --preserve-merges and --rebase-merges
- * --rebase-merges and --strategy
- * --rebase-merges and --strategy-option
+ * --keep-base and --onto
+ * --keep-base and --root
BEHAVIORAL DIFFERENCES
-----------------------
@@ -832,7 +854,8 @@ Hard case: The changes are not the same.::
This happens if the 'subsystem' rebase had conflicts, or used
`--interactive` to omit, edit, squash, or fixup commits; or
if the upstream used one of `commit --amend`, `reset`, or
- `filter-branch`.
+ a full history rewriting command like
+ https://github.com/newren/git-filter-repo[`filter-repo`].
The easy case
@@ -870,7 +893,7 @@ NOTE: While an "easy case recovery" sometimes appears to be successful
--interactive` will be **resurrected**!
The idea is to manually tell 'git rebase' "where the old 'subsystem'
-ended and your 'topic' began", that is, what the old merge-base
+ended and your 'topic' began", that is, what the old merge base
between them was. You will have to find a way to name the last commit
of the old 'subsystem', for example:
diff --git a/Documentation/git-receive-pack.txt b/Documentation/git-receive-pack.txt
index dedf97e..25702ed 100644
--- a/Documentation/git-receive-pack.txt
+++ b/Documentation/git-receive-pack.txt
@@ -165,29 +165,31 @@ ref listing the commits pushed to the repository, and logs the push
certificates of signed pushes with good signatures to a logger
service:
- #!/bin/sh
- # mail out commit update information.
- while read oval nval ref
- do
- if expr "$oval" : '0*$' >/dev/null
- then
- echo "Created a new ref, with the following commits:"
- git rev-list --pretty "$nval"
- else
- echo "New commits:"
- git rev-list --pretty "$nval" "^$oval"
- fi |
- mail -s "Changes to ref $ref" commit-list@mydomain
- done
- # log signed push certificate, if any
- if test -n "${GIT_PUSH_CERT-}" && test ${GIT_PUSH_CERT_STATUS} = G
+----
+#!/bin/sh
+# mail out commit update information.
+while read oval nval ref
+do
+ if expr "$oval" : '0*$' >/dev/null
then
- (
- echo expected nonce is ${GIT_PUSH_NONCE}
- git cat-file blob ${GIT_PUSH_CERT}
- ) | mail -s "push certificate from $GIT_PUSH_CERT_SIGNER" push-log@mydomain
- fi
- exit 0
+ echo "Created a new ref, with the following commits:"
+ git rev-list --pretty "$nval"
+ else
+ echo "New commits:"
+ git rev-list --pretty "$nval" "^$oval"
+ fi |
+ mail -s "Changes to ref $ref" commit-list@mydomain
+done
+# log signed push certificate, if any
+if test -n "${GIT_PUSH_CERT-}" && test ${GIT_PUSH_CERT_STATUS} = G
+then
+ (
+ echo expected nonce is ${GIT_PUSH_NONCE}
+ git cat-file blob ${GIT_PUSH_CERT}
+ ) | mail -s "push certificate from $GIT_PUSH_CERT_SIGNER" push-log@mydomain
+fi
+exit 0
+----
The exit code from this hook invocation is ignored, however a
non-zero exit code will generate an error message.
@@ -212,8 +214,10 @@ anyway.
This hook can be used, for example, to run `git update-server-info`
if the repository is packed and is served via a dumb transport.
- #!/bin/sh
- exec git update-server-info
+----
+#!/bin/sh
+exec git update-server-info
+----
QUARANTINE ENVIRONMENT
diff --git a/Documentation/git-replace.txt b/Documentation/git-replace.txt
index 246dc99..f271d75 100644
--- a/Documentation/git-replace.txt
+++ b/Documentation/git-replace.txt
@@ -123,10 +123,10 @@ The following format are available:
CREATING REPLACEMENT OBJECTS
----------------------------
-linkgit:git-filter-branch[1], linkgit:git-hash-object[1] and
-linkgit:git-rebase[1], among other git commands, can be used to create
-replacement objects from existing objects. The `--edit` option can
-also be used with 'git replace' to create a replacement object by
+linkgit:git-hash-object[1], linkgit:git-rebase[1], and
+https://github.com/newren/git-filter-repo[git-filter-repo], among other git commands, can be used to
+create replacement objects from existing objects. The `--edit` option
+can also be used with 'git replace' to create a replacement object by
editing an existing object.
If you want to replace many blobs, trees or commits that are part of a
@@ -148,13 +148,13 @@ pending objects.
SEE ALSO
--------
linkgit:git-hash-object[1]
-linkgit:git-filter-branch[1]
linkgit:git-rebase[1]
linkgit:git-tag[1]
linkgit:git-branch[1]
linkgit:git-commit[1]
linkgit:git-var[1]
linkgit:git[1]
+https://github.com/newren/git-filter-repo[git-filter-repo]
GIT
---
diff --git a/Documentation/git-rev-list.txt b/Documentation/git-rev-list.txt
index 9392760..025c911 100644
--- a/Documentation/git-rev-list.txt
+++ b/Documentation/git-rev-list.txt
@@ -9,59 +9,7 @@ git-rev-list - Lists commit objects in reverse chronological order
SYNOPSIS
--------
[verse]
-'git rev-list' [ --max-count=<number> ]
- [ --skip=<number> ]
- [ --max-age=<timestamp> ]
- [ --min-age=<timestamp> ]
- [ --sparse ]
- [ --merges ]
- [ --no-merges ]
- [ --min-parents=<number> ]
- [ --no-min-parents ]
- [ --max-parents=<number> ]
- [ --no-max-parents ]
- [ --first-parent ]
- [ --remove-empty ]
- [ --full-history ]
- [ --not ]
- [ --all ]
- [ --branches[=<pattern>] ]
- [ --tags[=<pattern>] ]
- [ --remotes[=<pattern>] ]
- [ --glob=<glob-pattern> ]
- [ --ignore-missing ]
- [ --stdin ]
- [ --quiet ]
- [ --topo-order ]
- [ --parents ]
- [ --timestamp ]
- [ --left-right ]
- [ --left-only ]
- [ --right-only ]
- [ --cherry-mark ]
- [ --cherry-pick ]
- [ --encoding=<encoding> ]
- [ --(author|committer|grep)=<pattern> ]
- [ --regexp-ignore-case | -i ]
- [ --extended-regexp | -E ]
- [ --fixed-strings | -F ]
- [ --date=<format>]
- [ [ --objects | --objects-edge | --objects-edge-aggressive ]
- [ --unpacked ]
- [ --object-names | --no-object-names ]
- [ --filter=<filter-spec> [ --filter-print-omitted ] ] ]
- [ --missing=<missing-action> ]
- [ --pretty | --header ]
- [ --bisect ]
- [ --bisect-vars ]
- [ --bisect-all ]
- [ --merge ]
- [ --reverse ]
- [ --walk-reflogs ]
- [ --no-walk ] [ --do-walk ]
- [ --count ]
- [ --use-bitmap-index ]
- <commit>... [ \-- <paths>... ]
+'git rev-list' [<options>] <commit>... [[--] <path>...]
DESCRIPTION
-----------
diff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt
index d93e5d0..0a69810 100644
--- a/Documentation/git-send-email.txt
+++ b/Documentation/git-send-email.txt
@@ -486,11 +486,13 @@ Use gmail as the smtp server
To use 'git send-email' to send your patches through the GMail SMTP server,
edit ~/.gitconfig to specify your account settings:
- [sendemail]
- smtpEncryption = tls
- smtpServer = smtp.gmail.com
- smtpUser = yourname@gmail.com
- smtpServerPort = 587
+----
+[sendemail]
+ smtpEncryption = tls
+ smtpServer = smtp.gmail.com
+ smtpUser = yourname@gmail.com
+ smtpServerPort = 587
+----
If you have multifactor authentication setup on your gmail account, you will
need to generate an app-specific password for use with 'git send-email'. Visit
diff --git a/Documentation/git-stash.txt b/Documentation/git-stash.txt
index 8fbe12c..53e1a12 100644
--- a/Documentation/git-stash.txt
+++ b/Documentation/git-stash.txt
@@ -87,8 +87,9 @@ The `--patch` option implies `--keep-index`. You can use
save [-p|--patch] [-k|--[no-]keep-index] [-u|--include-untracked] [-a|--all] [-q|--quiet] [<message>]::
This option is deprecated in favour of 'git stash push'. It
- differs from "stash push" in that it cannot take pathspecs,
- and any non-option arguments form the message.
+ differs from "stash push" in that it cannot take pathspecs.
+ Instead, all non-option arguments are concatenated to form the stash
+ message.
list [<options>]::
diff --git a/Documentation/git-status.txt b/Documentation/git-status.txt
index d4e8f24..7731b45 100644
--- a/Documentation/git-status.txt
+++ b/Documentation/git-status.txt
@@ -59,16 +59,17 @@ This is optional and defaults to the original version 'v1' format.
--untracked-files[=<mode>]::
Show untracked files.
+
+--
The mode parameter is used to specify the handling of untracked files.
It is optional: it defaults to 'all', and if specified, it must be
stuck to the option (e.g. `-uno`, but not `-u no`).
-+
+
The possible options are:
-+
+
- 'no' - Show no untracked files.
- 'normal' - Shows untracked files and directories.
- 'all' - Also shows individual files in untracked directories.
-+
+
When `-u` option is not used, untracked files and directories are
shown (i.e. the same as specifying `normal`), to help you avoid
forgetting to add newly created files. Because it takes extra work
@@ -78,9 +79,10 @@ Consider enabling untracked cache and split index if supported (see
`git update-index --untracked-cache` and `git update-index
--split-index`), Otherwise you can use `no` to have `git status`
return more quickly without showing untracked files.
-+
+
The default can be changed using the status.showUntrackedFiles
configuration variable documented in linkgit:git-config[1].
+--
--ignore-submodules[=<when>]::
Ignore changes to submodules when looking for changes. <when> can be
@@ -100,11 +102,12 @@ configuration variable documented in linkgit:git-config[1].
--ignored[=<mode>]::
Show ignored files as well.
+
+--
The mode parameter is used to specify the handling of ignored files.
It is optional: it defaults to 'traditional'.
-+
+
The possible options are:
-+
+
- 'traditional' - Shows ignored files and directories, unless
--untracked-files=all is specified, in which case
individual files in ignored directories are
@@ -112,12 +115,13 @@ The possible options are:
- 'no' - Show no ignored files.
- 'matching' - Shows ignored files and directories matching an
ignore pattern.
-+
+
When 'matching' mode is specified, paths that explicitly match an
ignored pattern are shown. If a directory matches an ignore pattern,
then it is shown, but not paths contained in the ignored directory. If
a directory does not match an ignore pattern, but all contents are
ignored, then the directory is not shown, but all contents are shown.
+--
-z::
Terminate entries with NUL, instead of LF. This implies
diff --git a/Documentation/git-submodule.txt b/Documentation/git-submodule.txt
index 0ed5c24..1f46380 100644
--- a/Documentation/git-submodule.txt
+++ b/Documentation/git-submodule.txt
@@ -173,7 +173,8 @@ submodule with the `--init` option.
If `--recursive` is specified, this command will recurse into the
registered submodules, and update any nested submodules within.
--
-set-branch ((-d|--default)|(-b|--branch <branch>)) [--] <path>::
+set-branch (-b|--branch) <branch> [--] <path>::
+set-branch (-d|--default) [--] <path>::
Sets the default remote tracking branch for the submodule. The
`--branch` option allows the remote branch to be specified. The
`--default` option removes the submodule.<name>.branch configuration
diff --git a/Documentation/git-svn.txt b/Documentation/git-svn.txt
index 3071162..53774f5 100644
--- a/Documentation/git-svn.txt
+++ b/Documentation/git-svn.txt
@@ -769,11 +769,11 @@ option for (hopefully) obvious reasons.
+
This option is NOT recommended as it makes it difficult to track down
old references to SVN revision numbers in existing documentation, bug
-reports and archives. If you plan to eventually migrate from SVN to Git
-and are certain about dropping SVN history, consider
-linkgit:git-filter-branch[1] instead. filter-branch also allows
-reformatting of metadata for ease-of-reading and rewriting authorship
-info for non-"svn.authorsFile" users.
+reports, and archives. If you plan to eventually migrate from SVN to
+Git and are certain about dropping SVN history, consider
+https://github.com/newren/git-filter-repo[git-filter-repo] instead.
+filter-repo also allows reformatting of metadata for ease-of-reading
+and rewriting authorship info for non-"svn.authorsFile" users.
svn.useSvmProps::
svn-remote.<name>.useSvmProps::
diff --git a/Documentation/gitattributes.txt b/Documentation/gitattributes.txt
index fb1d188..c5a528c 100644
--- a/Documentation/gitattributes.txt
+++ b/Documentation/gitattributes.txt
@@ -810,6 +810,8 @@ patterns are available:
- `css` suitable for cascading style sheets.
+- `dts` suitable for devicetree (DTS) files.
+
- `fortran` suitable for source code in the Fortran language.
- `fountain` suitable for Fountain documents.
diff --git a/Documentation/gitcli.txt b/Documentation/gitcli.txt
index 1ed3ca3..4b32876 100644
--- a/Documentation/gitcli.txt
+++ b/Documentation/gitcli.txt
@@ -37,6 +37,12 @@ arguments. Here are the rules:
file called HEAD in your work tree, `git diff HEAD` is ambiguous, and
you have to say either `git diff HEAD --` or `git diff -- HEAD` to
disambiguate.
+
+ * Because `--` disambiguates revisions and paths in some commands, it
+ cannot be used for those commands to separate options and revisions.
+ You can use `--end-of-options` for this (it also works for commands
+ that do not distinguish between revisions in paths, in which case it
+ is simply an alias for `--`).
+
When writing a script that is expected to handle random user-input, it is
a good practice to make it explicit which arguments are which by placing
diff --git a/Documentation/githooks.txt b/Documentation/githooks.txt
index 82cd573..50365f2 100644
--- a/Documentation/githooks.txt
+++ b/Documentation/githooks.txt
@@ -103,6 +103,28 @@ The default 'pre-commit' hook, when enabled--and with the
`hooks.allownonascii` config option unset or set to false--prevents
the use of non-ASCII filenames.
+pre-merge-commit
+~~~~~~~~~~~~~~~~
+
+This hook is invoked by linkgit:git-merge[1], and can be bypassed
+with the `--no-verify` option. It takes no parameters, and is
+invoked after the merge has been carried out successfully and before
+obtaining the proposed commit log message to
+make a commit. Exiting with a non-zero status from this script
+causes the `git merge` command to abort before creating a commit.
+
+The default 'pre-merge-commit' hook, when enabled, runs the
+'pre-commit' hook, if the latter is enabled.
+
+This hook is invoked with the environment variable
+`GIT_EDITOR=:` if the command will not bring up an editor
+to modify the commit message.
+
+If the merge cannot be carried out automatically, the conflicts
+need to be resolved and the result committed separately (see
+linkgit:git-merge[1]). At that point, this hook will not be executed,
+but the 'pre-commit' hook will, if it is enabled.
+
prepare-commit-msg
~~~~~~~~~~~~~~~~~~
@@ -425,10 +447,12 @@ post-rewrite
This hook is invoked by commands that rewrite commits
(linkgit:git-commit[1] when called with `--amend` and
-linkgit:git-rebase[1]; currently `git filter-branch` does 'not' call
-it!). Its first argument denotes the command it was invoked by:
-currently one of `amend` or `rebase`. Further command-dependent
-arguments may be passed in the future.
+linkgit:git-rebase[1]; however, full-history (re)writing tools like
+linkgit:git-fast-import[1] or
+https://github.com/newren/git-filter-repo[git-filter-repo] typically
+do not call it!). Its first argument denotes the command it was
+invoked by: currently one of `amend` or `rebase`. Further
+command-dependent arguments may be passed in the future.
The hook receives a list of the rewritten commits on stdin, in the
format
diff --git a/Documentation/gitmodules.txt b/Documentation/gitmodules.txt
index a66e95b..f2a65ba 100644
--- a/Documentation/gitmodules.txt
+++ b/Documentation/gitmodules.txt
@@ -90,7 +90,7 @@ of the superproject, the setting there will override the one found in
.gitmodules.
Both settings can be overridden on the command line by using the
-"--ignore-submodule" option. The 'git submodule' commands are not
+"--ignore-submodules" option. The 'git submodule' commands are not
affected by this setting.
--
@@ -105,14 +105,15 @@ EXAMPLES
Consider the following .gitmodules file:
- [submodule "libfoo"]
- path = include/foo
- url = git://foo.com/git/lib.git
-
- [submodule "libbar"]
- path = include/bar
- url = git://bar.com/git/lib.git
+----
+[submodule "libfoo"]
+ path = include/foo
+ url = git://foo.com/git/lib.git
+[submodule "libbar"]
+ path = include/bar
+ url = git://bar.com/git/lib.git
+----
This defines two submodules, `libfoo` and `libbar`. These are expected to
be checked out in the paths `include/foo` and `include/bar`, and for both
diff --git a/Documentation/gitremote-helpers.txt b/Documentation/gitremote-helpers.txt
index 43f80c8..f48a031 100644
--- a/Documentation/gitremote-helpers.txt
+++ b/Documentation/gitremote-helpers.txt
@@ -297,9 +297,13 @@ Supported if the helper has the "option" capability.
same batch are complete. Only objects which were reported
in the output of 'list' with a sha1 may be fetched this way.
+
-Optionally may output a 'lock <file>' line indicating a file under
-GIT_DIR/objects/pack which is keeping a pack until refs can be
-suitably updated.
+Optionally may output a 'lock <file>' line indicating the full path of
+a file under `$GIT_DIR/objects/pack` which is keeping a pack until
+refs can be suitably updated. The path must end with `.keep`. This is
+a mechanism to name a <pack,idx,keep> tuple by giving only the keep
+component. The kept pack will not be deleted by a concurrent repack,
+even though its objects may not be referenced until the fetch completes.
+The `.keep` file will be deleted at the conclusion of the fetch.
+
If option 'check-connectivity' is requested, the helper must output
'connectivity-ok' if the clone is self-contained and connected.
@@ -505,6 +509,11 @@ set by Git if the remote helper has the 'option' capability.
Indicate that only the objects wanted need to be fetched, not
their dependents.
+'option atomic' {'true'|'false'}::
+ When pushing, request the remote server to update refs in a single atomic
+ transaction. If successful, all refs will be updated, or none will. If the
+ remote side does not support this capability, the push will fail.
+
SEE ALSO
--------
linkgit:git-remote[1]
diff --git a/Documentation/gitrepository-layout.txt b/Documentation/gitrepository-layout.txt
index 216b11e..d6388f1 100644
--- a/Documentation/gitrepository-layout.txt
+++ b/Documentation/gitrepository-layout.txt
@@ -59,7 +59,7 @@ objects/[0-9a-f][0-9a-f]::
here are often called 'unpacked' (or 'loose') objects.
objects/pack::
- Packs (files that store many object in compressed form,
+ Packs (files that store many objects in compressed form,
along with index files to allow them to be randomly
accessed) are found in this directory.
diff --git a/Documentation/gitweb.conf.txt b/Documentation/gitweb.conf.txt
index 35317e7..7963a79 100644
--- a/Documentation/gitweb.conf.txt
+++ b/Documentation/gitweb.conf.txt
@@ -786,9 +786,9 @@ forks::
subdirectories of project root (basename) to be forks of existing
projects. For each project +$projname.git+, projects in the
+$projname/+ directory and its subdirectories will not be
- shown in the main projects list. Instead, a \'\+' mark is shown
- next to +$projname+, which links to a "forks" view that lists all
- the forks (all projects in +$projname/+ subdirectory). Additionally
+ shown in the main projects list. Instead, a \'+' mark is shown
+ next to `$projname`, which links to a "forks" view that lists all
+ the forks (all projects in `$projname/` subdirectory). Additionally
a "forks" view for a project is linked from project summary page.
+
If the project list is taken from a file (+$projects_list+ points to a
diff --git a/Documentation/manpage-bold-literal.xsl b/Documentation/manpage-bold-literal.xsl
index 608eb5d..94d6c1b 100644
--- a/Documentation/manpage-bold-literal.xsl
+++ b/Documentation/manpage-bold-literal.xsl
@@ -1,12 +1,13 @@
<!-- manpage-bold-literal.xsl:
special formatting for manpages rendered from asciidoc+docbook -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:d="http://docbook.org/ns/docbook"
version="1.0">
<!-- render literal text as bold (instead of plain or monospace);
this makes literal text easier to distinguish in manpages
viewed on a tty -->
-<xsl:template match="literal">
+<xsl:template match="literal|d:literal">
<xsl:value-of select="$git.docbook.backslash"/>
<xsl:text>fB</xsl:text>
<xsl:apply-templates/>
diff --git a/Documentation/manpage.xsl b/Documentation/manpage.xsl
new file mode 100644
index 0000000..ef64bab
--- /dev/null
+++ b/Documentation/manpage.xsl
@@ -0,0 +1,3 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+ <xsl:import href="http://docbook.sourceforge.net/release/xsl-ns/current/manpages/docbook.xsl" />
+</xsl:stylesheet>
diff --git a/Documentation/merge-options.txt b/Documentation/merge-options.txt
index 79a00d2..59b8ff1 100644
--- a/Documentation/merge-options.txt
+++ b/Documentation/merge-options.txt
@@ -40,20 +40,24 @@ set to `no` at the beginning of them.
case of a merge conflict.
--ff::
- When the merge resolves as a fast-forward, only update the branch
- pointer, without creating a merge commit. This is the default
- behavior.
-
--no-ff::
- Create a merge commit even when the merge resolves as a
- fast-forward. This is the default behaviour when merging an
- annotated (and possibly signed) tag that is not stored in
- its natural place in 'refs/tags/' hierarchy.
-
--ff-only::
- Refuse to merge and exit with a non-zero status unless the
- current `HEAD` is already up to date or the merge can be
- resolved as a fast-forward.
+ Specifies how a merge is handled when the merged-in history is
+ already a descendant of the current history. `--ff` is the
+ default unless merging an annotated (and possibly signed) tag
+ that is not stored in its natural place in the `refs/tags/`
+ hierarchy, in which case `--no-ff` is assumed.
++
+With `--ff`, when possible resolve the merge as a fast-forward (only
+update the branch pointer to match the merged branch; do not create a
+merge commit). When not possible (when the merged-in history is not a
+descendant of the current history), create a merge commit.
++
+With `--no-ff`, create a merge commit in all cases, even when the merge
+could instead be resolved as a fast-forward.
++
+With `--ff-only`, resolve the merge as a fast-forward when possible.
+When not possible, refuse to merge and exit with a non-zero status.
-S[<keyid>]::
--gpg-sign[=<keyid>]::
@@ -105,6 +109,10 @@ option can be used to override --squash.
+
With --squash, --commit is not allowed, and will fail.
+--no-verify::
+ This option bypasses the pre-merge and commit-msg hooks.
+ See also linkgit:githooks[5].
+
-s <strategy>::
--strategy=<strategy>::
Use the given merge strategy; can be supplied more than
diff --git a/Documentation/pretty-formats.txt b/Documentation/pretty-formats.txt
index 0795983..b87e2e8 100644
--- a/Documentation/pretty-formats.txt
+++ b/Documentation/pretty-formats.txt
@@ -208,7 +208,7 @@ endif::git-rev-list[]
'%GP':: show the fingerprint of the primary key whose subkey was used
to sign a signed commit
'%gD':: reflog selector, e.g., `refs/stash@{1}` or `refs/stash@{2
- minutes ago`}; the format follows the rules described for the
+ minutes ago}`; the format follows the rules described for the
`-g` option. The portion before the `@` is the refname as
given on the command line (so `git log -g refs/heads/master`
would yield `refs/heads/master@{0}`).
diff --git a/Documentation/rev-list-options.txt b/Documentation/rev-list-options.txt
index bb1251c..90ff9e2 100644
--- a/Documentation/rev-list-options.txt
+++ b/Documentation/rev-list-options.txt
@@ -756,6 +756,22 @@ explicitly-given commit or tree.
Note that the form '--filter=sparse:path=<path>' that wants to read
from an arbitrary path on the filesystem has been dropped for security
reasons.
++
+Multiple '--filter=' flags can be specified to combine filters. Only
+objects which are accepted by every filter are included.
++
+The form '--filter=combine:<filter1>+<filter2>+...<filterN>' can also be
+used to combined several filters, but this is harder than just repeating
+the '--filter' flag and is usually not necessary. Filters are joined by
+'{plus}' and individual filters are %-encoded (i.e. URL-encoded).
+Besides the '{plus}' and '%' characters, the following characters are
+reserved and also must be encoded: `~!@#$^&*()[]{}\;",<>?`+&#39;&#96;+
+as well as all characters with ASCII code &lt;= `0x20`, which includes
+space and newline.
++
+Other arbitrary characters can also be encoded. For instance,
+'combine:tree:3+blob:none' and 'combine:tree%3A3+blob%3Anone' are
+equivalent.
--no-filter::
Turn off any previous `--filter=` argument.
diff --git a/Documentation/technical/api-directory-listing.txt b/Documentation/technical/api-directory-listing.txt
index 5abb8e8..76b6e4f 100644
--- a/Documentation/technical/api-directory-listing.txt
+++ b/Documentation/technical/api-directory-listing.txt
@@ -111,11 +111,11 @@ marked. If you to exclude files, make sure you have loaded index first.
* Prepare `struct dir_struct dir` and clear it with `memset(&dir, 0,
sizeof(dir))`.
-* To add single exclude pattern, call `add_exclude_list()` and then
- `add_exclude()`.
+* To add single exclude pattern, call `add_pattern_list()` and then
+ `add_pattern()`.
* To add patterns from a file (e.g. `.git/info/exclude`), call
- `add_excludes_from_file()` , and/or set `dir.exclude_per_dir`. A
+ `add_patterns_from_file()` , and/or set `dir.exclude_per_dir`. A
short-hand function `setup_standard_excludes()` can be used to set
up the standard set of exclude settings.
diff --git a/Documentation/technical/api-trace2.txt b/Documentation/technical/api-trace2.txt
index 71eb081..a045dbe 100644
--- a/Documentation/technical/api-trace2.txt
+++ b/Documentation/technical/api-trace2.txt
@@ -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":"1","exe":"2.20.1.155.g426c96fcdb"}
+{"event":"version","sid":"sid":"20190408T191610.507018Z-H9b68c35f-P000059a8","thread":"main","time":"2019-01-16T17:28:42.620713Z","file":"common-main.c","line":38,"evt":"2","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}
@@ -142,10 +142,9 @@ system or global config value to one of the following:
include::../trace2-target-values.txt[]
-If the target already exists and is a directory, the traces will be
-written to files (one per process) underneath the given directory. They
-will be named according to the last component of the SID (optionally
-followed by a counter to avoid filename collisions).
+When trace files are written to a target directory, they will be named according
+to the last component of the SID (optionally followed by a counter to avoid
+filename collisions).
== Trace2 API
@@ -605,17 +604,35 @@ only present on the "start" and "atexit" events.
==== Event-Specific Key/Value Pairs
`"version"`::
- This event gives the version of the executable and the EVENT format.
+ This event gives the version of the executable and the EVENT format. It
+ should always be the first event in a trace session. The EVENT format
+ version will be incremented if new event types are added, if existing
+ fields are removed, or if there are significant changes in
+ interpretation of existing events or fields. Smaller changes, such as
+ adding a new field to an existing event, will not require an increment
+ to the EVENT format version.
+
------------
{
"event":"version",
...
- "evt":"1", # EVENT format version
+ "evt":"2", # EVENT format version
"exe":"2.20.1.155.g426c96fcdb" # git version
}
------------
+`"discard"`::
+ This event is written to the git-trace2-discard sentinel file if there
+ are too many files in the target trace directory (see the
+ trace2.maxFiles config option).
++
+------------
+{
+ "event":"discard",
+ ...
+}
+------------
+
`"start"`::
This event contains the complete argv received by main().
+
diff --git a/Documentation/technical/api-tree-walking.txt b/Documentation/technical/api-tree-walking.txt
index bde1862..7962e32 100644
--- a/Documentation/technical/api-tree-walking.txt
+++ b/Documentation/technical/api-tree-walking.txt
@@ -62,9 +62,7 @@ Initializing
`setup_traverse_info`::
Initialize a `traverse_info` given the pathname of the tree to start
- traversing from. The `base` argument is assumed to be the `path`
- member of the `name_entry` being recursed into unless the tree is a
- top-level tree in which case the empty string ("") is used.
+ traversing from.
Walking
-------
@@ -140,6 +138,10 @@ same in the next callback invocation.
This utilizes the memory structure of a tree entry to avoid the
overhead of using a generic strlen().
+`strbuf_make_traverse_path`::
+
+ Convenience wrapper to `make_traverse_path` into a strbuf.
+
Authors
-------
diff --git a/Documentation/technical/partial-clone.txt b/Documentation/technical/partial-clone.txt
index 896c7b3..210373e 100644
--- a/Documentation/technical/partial-clone.txt
+++ b/Documentation/technical/partial-clone.txt
@@ -30,12 +30,20 @@ advance* during clone and fetch operations and thereby reduce download
times and disk usage. Missing objects can later be "demand fetched"
if/when needed.
+A remote that can later provide the missing objects is called a
+promisor remote, as it promises to send the objects when
+requested. Initialy Git supported only one promisor remote, the origin
+remote from which the user cloned and that was configured in the
+"extensions.partialClone" config option. Later support for more than
+one promisor remote has been implemented.
+
Use of partial clone requires that the user be online and the origin
-remote be available for on-demand fetching of missing objects. This may
-or may not be problematic for the user. For example, if the user can
-stay within the pre-selected subset of the source tree, they may not
-encounter any missing objects. Alternatively, the user could try to
-pre-fetch various objects if they know that they are going offline.
+remote or other promisor remotes be available for on-demand fetching
+of missing objects. This may or may not be problematic for the user.
+For example, if the user can stay within the pre-selected subset of
+the source tree, they may not encounter any missing objects.
+Alternatively, the user could try to pre-fetch various objects if they
+know that they are going offline.
Non-Goals
@@ -100,18 +108,18 @@ or commits that reference missing trees.
Handling Missing Objects
------------------------
-- An object may be missing due to a partial clone or fetch, or missing due
- to repository corruption. To differentiate these cases, the local
- repository specially indicates such filtered packfiles obtained from the
- promisor remote as "promisor packfiles".
+- An object may be missing due to a partial clone or fetch, or missing
+ due to repository corruption. To differentiate these cases, the
+ local repository specially indicates such filtered packfiles
+ obtained from promisor remotes as "promisor packfiles".
+
These promisor packfiles consist of a "<name>.promisor" file with
arbitrary contents (like the "<name>.keep" files), in addition to
their "<name>.pack" and "<name>.idx" files.
- The local repository considers a "promisor object" to be an object that
- it knows (to the best of its ability) that the promisor remote has promised
- that it has, either because the local repository has that object in one of
+ it knows (to the best of its ability) that promisor remotes have promised
+ that they have, either because the local repository has that object in one of
its promisor packfiles, or because another promisor object refers to it.
+
When Git encounters a missing object, Git can see if it is a promisor object
@@ -123,12 +131,12 @@ expensive-to-modify list of missing objects.[a]
- Since almost all Git code currently expects any referenced object to be
present locally and because we do not want to force every command to do
a dry-run first, a fallback mechanism is added to allow Git to attempt
- to dynamically fetch missing objects from the promisor remote.
+ to dynamically fetch missing objects from promisor remotes.
+
When the normal object lookup fails to find an object, Git invokes
-fetch-object to try to get the object from the server and then retry
-the object lookup. This allows objects to be "faulted in" without
-complicated prediction algorithms.
+promisor_remote_get_direct() to try to get the object from a promisor
+remote and then retry the object lookup. This allows objects to be
+"faulted in" without complicated prediction algorithms.
+
For efficiency reasons, no check as to whether the missing object is
actually a promisor object is performed.
@@ -157,8 +165,7 @@ and prefetch those objects in bulk.
+
We are not happy with this global variable and would like to remove it,
but that requires significant refactoring of the object code to pass an
-additional flag. We hope that concurrent efforts to add an ODB API can
-encompass this.
+additional flag.
Fetching Missing Objects
@@ -182,21 +189,63 @@ has been updated to not use any object flags when the corresponding argument
though they are not necessary.
+Using many promisor remotes
+---------------------------
+
+Many promisor remotes can be configured and used.
+
+This allows for example a user to have multiple geographically-close
+cache servers for fetching missing blobs while continuing to do
+filtered `git-fetch` commands from the central server.
+
+When fetching objects, promisor remotes are tried one after the other
+until all the objects have been fetched.
+
+Remotes that are considered "promisor" remotes are those specified by
+the following configuration variables:
+
+- `extensions.partialClone = <name>`
+
+- `remote.<name>.promisor = true`
+
+- `remote.<name>.partialCloneFilter = ...`
+
+Only one promisor remote can be configured using the
+`extensions.partialClone` config variable. This promisor remote will
+be the last one tried when fetching objects.
+
+We decided to make it the last one we try, because it is likely that
+someone using many promisor remotes is doing so because the other
+promisor remotes are better for some reason (maybe they are closer or
+faster for some kind of objects) than the origin, and the origin is
+likely to be the remote specified by extensions.partialClone.
+
+This justification is not very strong, but one choice had to be made,
+and anyway the long term plan should be to make the order somehow
+fully configurable.
+
+For now though the other promisor remotes will be tried in the order
+they appear in the config file.
+
Current Limitations
-------------------
-- The remote used for a partial clone (or the first partial fetch
- following a regular clone) is marked as the "promisor remote".
+- It is not possible to specify the order in which the promisor
+ remotes are tried in other ways than the order in which they appear
+ in the config file.
+
-We are currently limited to a single promisor remote and only that
-remote may be used for subsequent partial fetches.
+It is also not possible to specify an order to be used when fetching
+from one remote and a different order when fetching from another
+remote.
+
+- It is not possible to push only specific objects to a promisor
+ remote.
+
-We accept this limitation because we believe initial users of this
-feature will be using it on repositories with a strong single central
-server.
+It is not possible to push at the same time to multiple promisor
+remote in a specific order.
-- Dynamic object fetching will only ask the promisor remote for missing
- objects. We assume that the promisor remote has a complete view of the
+- Dynamic object fetching will only ask promisor remotes for missing
+ objects. We assume that promisor remotes have a complete view of the
repository and can satisfy all such requests.
- Repack essentially treats promisor and non-promisor packfiles as 2
@@ -218,15 +267,17 @@ server.
Future Work
-----------
-- Allow more than one promisor remote and define a strategy for fetching
- missing objects from specific promisor remotes or of iterating over the
- set of promisor remotes until a missing object is found.
+- Improve the way to specify the order in which promisor remotes are
+ tried.
+
-A user might want to have multiple geographically-close cache servers
-for fetching missing blobs while continuing to do filtered `git-fetch`
-commands from the central server, for example.
+For example this could allow to specify explicitly something like:
+"When fetching from this remote, I want to use these promisor remotes
+in this order, though, when pushing or fetching to that remote, I want
+to use those promisor remotes in that order."
+
+- Allow pushing to promisor remotes.
+
-Or the user might want to work in a triangular work flow with multiple
+The user might want to work in a triangular work flow with multiple
promisor remotes that each have an incomplete view of the repository.
- Allow repack to work on promisor packfiles (while keeping them distinct
diff --git a/Documentation/trace2-target-values.txt b/Documentation/trace2-target-values.txt
index 27d3c64..3985b6d 100644
--- a/Documentation/trace2-target-values.txt
+++ b/Documentation/trace2-target-values.txt
@@ -2,7 +2,9 @@
* `0` or `false` - Disables the target.
* `1` or `true` - Writes to `STDERR`.
* `[2-9]` - Writes to the already opened file descriptor.
-* `<absolute-pathname>` - Writes to the file in append mode.
+* `<absolute-pathname>` - Writes to the file in append mode. If the target
+already exists and is a directory, the traces will be written to files (one
+per process) underneath the given directory.
* `af_unix:[<socket_type>:]<absolute-pathname>` - Write to a
Unix DomainSocket (on platforms that support them). Socket
type can be either `stream` or `dgram`; if omitted Git will
diff --git a/Documentation/user-manual.txt b/Documentation/user-manual.txt
index 8bce75b..06bd899 100644
--- a/Documentation/user-manual.txt
+++ b/Documentation/user-manual.txt
@@ -1,5 +1,4 @@
-Git User Manual
-===============
+= Git User Manual
Git is a fast distributed revision control system.
@@ -41,12 +40,10 @@ complete.
[[repositories-and-branches]]
-Repositories and Branches
-=========================
+== Repositories and Branches
[[how-to-get-a-git-repository]]
-How to get a Git repository
----------------------------
+=== How to get a Git repository
It will be useful to have a Git repository to experiment with as you
read this manual.
@@ -73,8 +70,7 @@ top-level directory named `.git`, which contains all the information
about the history of the project.
[[how-to-check-out]]
-How to check out a different version of a project
--------------------------------------------------
+=== How to check out a different version of a project
Git is best thought of as a tool for storing the history of a collection
of files. It stores the history as a compressed collection of
@@ -151,8 +147,7 @@ with no way to find the history it used to point to; so use this command
carefully.
[[understanding-commits]]
-Understanding History: Commits
-------------------------------
+=== Understanding History: Commits
Every change in the history of a project is represented by a commit.
The linkgit:git-show[1] command shows the most recent commit on the
@@ -202,8 +197,7 @@ history, including file data and directory contents, is stored in an object
with a name that is a hash of its contents.
[[understanding-reachability]]
-Understanding history: commits, parents, and reachability
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+==== Understanding history: commits, parents, and reachability
Every commit (except the very first commit in a project) also has a
parent commit which shows what happened before this commit.
@@ -227,8 +221,7 @@ that Y is a descendant of X, or that there is a chain of parents
leading from commit Y to commit X.
[[history-diagrams]]
-Understanding history: History diagrams
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+==== Understanding history: History diagrams
We will sometimes represent Git history using diagrams like the one
below. Commits are shown as "o", and the links between them with
@@ -247,8 +240,7 @@ If we need to talk about a particular commit, the character "o" may
be replaced with another letter or number.
[[what-is-a-branch]]
-Understanding history: What is a branch?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+==== Understanding history: What is a branch?
When we need to be precise, we will use the word "branch" to mean a line
of development, and "branch head" (or just "head") to mean a reference
@@ -261,8 +253,7 @@ However, when no confusion will result, we often just use the term
"branch" both for branches and for branch heads.
[[manipulating-branches]]
-Manipulating branches
----------------------
+=== Manipulating branches
Creating, deleting, and modifying branches is quick and easy; here's
a summary of the commands:
@@ -299,8 +290,7 @@ ref: refs/heads/master
------------------------------------------------
[[detached-head]]
-Examining an old version without creating a new branch
-------------------------------------------------------
+=== Examining an old version without creating a new branch
The `git switch` command normally expects a branch head, but will also
accept an arbitrary commit when invoked with --detach; for example,
@@ -340,8 +330,7 @@ make up a name for the new branch. You can still create a new branch
(or tag) for this version later if you decide to.
[[examining-remote-branches]]
-Examining branches from a remote repository
--------------------------------------------
+=== Examining branches from a remote repository
The "master" branch that was created at the time you cloned is a copy
of the HEAD in the repository that you cloned from. That repository
@@ -383,8 +372,7 @@ Note that the name "origin" is just the name that Git uses by default
to refer to the repository that you cloned from.
[[how-git-stores-references]]
-Naming branches, tags, and other references
--------------------------------------------
+=== Naming branches, tags, and other references
Branches, remote-tracking branches, and tags are all references to
commits. All references are named with a slash-separated path name
@@ -413,8 +401,7 @@ references with the same shorthand name, see the "SPECIFYING
REVISIONS" section of linkgit:gitrevisions[7].
[[Updating-a-repository-With-git-fetch]]
-Updating a repository with git fetch
-------------------------------------
+=== Updating a repository with git fetch
After you clone a repository and commit a few changes of your own, you
may wish to check the original repository for updates.
@@ -425,8 +412,7 @@ repository. It will not touch any of your own branches--not even the
"master" branch that was created for you on clone.
[[fetching-branches]]
-Fetching branches from other repositories
------------------------------------------
+=== Fetching branches from other repositories
You can also track branches from repositories other than the one you
cloned from, using linkgit:git-remote[1]:
@@ -474,8 +460,7 @@ text editor. (See the "CONFIGURATION FILE" section of
linkgit:git-config[1] for details.)
[[exploring-git-history]]
-Exploring Git history
-=====================
+== Exploring Git history
Git is best thought of as a tool for storing the history of a
collection of files. It does this by storing compressed snapshots of
@@ -489,8 +474,7 @@ We start with one specialized tool that is useful for finding the
commit that introduced a bug into a project.
[[using-bisect]]
-How to use bisect to find a regression
---------------------------------------
+=== How to use bisect to find a regression
Suppose version 2.6.18 of your project worked, but the version at
"master" crashes. Sometimes the best way to find the cause of such a
@@ -572,8 +556,7 @@ linkgit:git-bisect[1] for more information about this and other `git
bisect` features.
[[naming-commits]]
-Naming commits
---------------
+=== Naming commits
We have seen several ways of naming commits already:
@@ -637,8 +620,7 @@ e05db0fd4f31dde7005f075a84f96b360d05984b
-------------------------------------------------
[[creating-tags]]
-Creating tags
--------------
+=== Creating tags
We can also create a tag to refer to a particular commit; after
running
@@ -655,8 +637,7 @@ should create a tag object instead; see the linkgit:git-tag[1] man page
for details.
[[browsing-revisions]]
-Browsing revisions
-------------------
+=== Browsing revisions
The linkgit:git-log[1] command can show lists of commits. On its
own, it shows all commits reachable from the parent commit; but you
@@ -697,8 +678,7 @@ multiple independent lines of development, the particular order that
commits are listed in may be somewhat arbitrary.
[[generating-diffs]]
-Generating diffs
-----------------
+=== Generating diffs
You can generate diffs between any two versions using
linkgit:git-diff[1]:
@@ -726,8 +706,7 @@ will generate a file with a patch for each commit reachable from test
but not from master.
[[viewing-old-file-versions]]
-Viewing old file versions
--------------------------
+=== Viewing old file versions
You can always view an old version of a file by just checking out the
correct revision first. But sometimes it is more convenient to be
@@ -742,12 +721,10 @@ Before the colon may be anything that names a commit, and after it
may be any path to a file tracked by Git.
[[history-examples]]
-Examples
---------
+=== Examples
[[counting-commits-on-a-branch]]
-Counting the number of commits on a branch
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+==== Counting the number of commits on a branch
Suppose you want to know how many commits you've made on `mybranch`
since it diverged from `origin`:
@@ -765,8 +742,7 @@ $ git rev-list origin..mybranch | wc -l
-------------------------------------------------
[[checking-for-equal-branches]]
-Check whether two branches point at the same history
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+==== Check whether two branches point at the same history
Suppose you want to check whether two branches point at the same point
in history.
@@ -798,8 +774,7 @@ $ git log origin...master
will return no commits when the two branches are equal.
[[finding-tagged-descendants]]
-Find first tagged version including a given fix
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+==== Find first tagged version including a given fix
Suppose you know that the commit e05db0fd fixed a certain problem.
You'd like to find the earliest tagged release that contains that
@@ -883,8 +858,7 @@ shows that e05db0fd is reachable from itself, from v1.5.0-rc1,
and from v1.5.0-rc2, and not from v1.5.0-rc0.
[[showing-commits-unique-to-a-branch]]
-Showing commits unique to a given branch
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+==== Showing commits unique to a given branch
Suppose you would like to see all the commits reachable from the branch
head named `master` but not from any other head in your repository.
@@ -931,8 +905,7 @@ $ gitk $( git show-ref --heads ) --not $( git show-ref --tags )
syntax such as `--not`.)
[[making-a-release]]
-Creating a changelog and tarball for a software release
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+==== Creating a changelog and tarball for a software release
The linkgit:git-archive[1] command can create a tar or zip archive from
any version of a project; for example:
@@ -983,8 +956,7 @@ and then he just cut-and-pastes the output commands after verifying that
they look OK.
[[Finding-commits-With-given-Content]]
-Finding commits referencing a file with given content
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+==== Finding commits referencing a file with given content
Somebody hands you a copy of a file, and asks which commits modified a
file such that it contained the given content either before or after the
@@ -1000,12 +972,10 @@ student. The linkgit:git-log[1], linkgit:git-diff-tree[1], and
linkgit:git-hash-object[1] man pages may prove helpful.
[[Developing-With-git]]
-Developing with Git
-===================
+== Developing with Git
[[telling-git-your-name]]
-Telling Git your name
----------------------
+=== Telling Git your name
Before creating any commits, you should introduce yourself to Git.
The easiest way to do so is to use linkgit:git-config[1]:
@@ -1030,8 +1000,7 @@ also edit it with your favorite editor.
[[creating-a-new-repository]]
-Creating a new repository
--------------------------
+=== Creating a new repository
Creating a new repository from scratch is very easy:
@@ -1052,8 +1021,7 @@ $ git commit
-------------------------------------------------
[[how-to-make-a-commit]]
-How to make a commit
---------------------
+=== How to make a commit
Creating a new commit takes three steps:
@@ -1148,8 +1116,7 @@ for inclusion in the index (by right-clicking on the diff hunk and
choosing "Stage Hunk For Commit").
[[creating-good-commit-messages]]
-Creating good commit messages
------------------------------
+=== Creating good commit messages
Though not required, it's a good idea to begin the commit message
with a single short (less than 50 character) line summarizing the
@@ -1162,8 +1129,7 @@ rest of the commit in the body.
[[ignoring-files]]
-Ignoring files
---------------
+=== Ignoring files
A project will often generate files that you do 'not' want to track with Git.
This typically includes files generated by a build process or temporary
@@ -1205,8 +1171,7 @@ Some Git commands can also take exclude patterns directly on the
command line. See linkgit:gitignore[5] for the details.
[[how-to-merge]]
-How to merge
-------------
+=== How to merge
You can rejoin two diverging branches of development using
linkgit:git-merge[1]:
@@ -1254,8 +1219,7 @@ has two parents, one pointing to the top of the current branch, and
one to the top of the other branch.
[[resolving-a-merge]]
-Resolving a merge
------------------
+=== Resolving a merge
When a merge isn't resolved automatically, Git leaves the index and
the working tree in a special state that gives you all the
@@ -1297,8 +1261,7 @@ The above is all you need to know to resolve a simple merge. But Git
also provides more information to help resolve conflicts:
[[conflict-resolution]]
-Getting conflict-resolution help during a merge
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+==== Getting conflict-resolution help during a merge
All of the changes that Git was able to merge automatically are
already added to the index file, so linkgit:git-diff[1] shows only
@@ -1401,8 +1364,7 @@ the different stages of that file will be "collapsed", after which
`git diff` will (by default) no longer show diffs for that file.
[[undoing-a-merge]]
-Undoing a merge
----------------
+=== Undoing a merge
If you get stuck and decide to just give up and throw the whole mess
away, you can always return to the pre-merge state with
@@ -1423,8 +1385,7 @@ itself have been merged into another branch, as doing so may confuse
further merges.
[[fast-forwards]]
-Fast-forward merges
--------------------
+=== Fast-forward merges
There is one special case not mentioned above, which is treated
differently. Normally, a merge results in a merge commit, with two
@@ -1438,8 +1399,7 @@ to point at the head of the merged-in branch, without any new commits being
created.
[[fixing-mistakes]]
-Fixing mistakes
----------------
+=== Fixing mistakes
If you've messed up the working tree, but haven't yet committed your
mistake, you can return the entire working tree to the last committed
@@ -1463,8 +1423,7 @@ fundamentally different ways to fix the problem:
a branch that has had its history changed.
[[reverting-a-commit]]
-Fixing a mistake with a new commit
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+==== Fixing a mistake with a new commit
Creating a new commit that reverts an earlier change is very easy;
just pass the linkgit:git-revert[1] command a reference to the bad
@@ -1490,8 +1449,7 @@ conflicts manually, just as in the case of <<resolving-a-merge,
resolving a merge>>.
[[fixing-a-mistake-by-rewriting-history]]
-Fixing a mistake by rewriting history
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+==== Fixing a mistake by rewriting history
If the problematic commit is the most recent commit, and you have not
yet made that commit public, then you may just
@@ -1518,8 +1476,7 @@ this is an advanced topic to be left for
<<cleaning-up-history,another chapter>>.
[[checkout-of-path]]
-Checking out an old version of a file
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+==== Checking out an old version of a file
In the process of undoing a previous bad change, you may find it
useful to check out an older version of a particular file using
@@ -1543,8 +1500,7 @@ $ git show HEAD^:path/to/file
which will display the given version of the file.
[[interrupted-work]]
-Temporarily setting aside work in progress
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+==== Temporarily setting aside work in progress
While you are in the middle of working on something complicated, you
find an unrelated but obvious and trivial bug. You would like to fix it
@@ -1575,8 +1531,7 @@ $ git stash pop
[[ensuring-good-performance]]
-Ensuring good performance
--------------------------
+=== Ensuring good performance
On large repositories, Git depends on compression to keep the history
information from taking up too much space on disk or in memory. Some
@@ -1587,12 +1542,10 @@ to avoid automatic compression kicking in when it is not convenient.
[[ensuring-reliability]]
-Ensuring reliability
---------------------
+=== Ensuring reliability
[[checking-for-corruption]]
-Checking the repository for corruption
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+==== Checking the repository for corruption
The linkgit:git-fsck[1] command runs a number of self-consistency checks
on the repository, and reports on any problems. This may take some
@@ -1618,12 +1571,10 @@ You can run `git fsck --no-dangling` to suppress these messages, and still
view real errors.
[[recovering-lost-changes]]
-Recovering lost changes
-~~~~~~~~~~~~~~~~~~~~~~~
+==== Recovering lost changes
[[reflogs]]
-Reflogs
-^^^^^^^
+===== Reflogs
Say you modify a branch with <<fixing-mistakes,`git reset --hard`>>,
and then realize that the branch was the only reference you had to
@@ -1670,8 +1621,7 @@ same project, the reflog history is not shared: it tells you only about
how the branches in your local repository have changed over time.
[[dangling-object-recovery]]
-Examining dangling objects
-^^^^^^^^^^^^^^^^^^^^^^^^^^
+===== Examining dangling objects
In some situations the reflog may not be able to save you. For example,
suppose you delete a branch, then realize you need the history it
@@ -1715,12 +1665,10 @@ dangling objects can arise in other situations.
[[sharing-development]]
-Sharing development with others
-===============================
+== Sharing development with others
[[getting-updates-With-git-pull]]
-Getting updates with git pull
------------------------------
+=== Getting updates with git pull
After you clone a repository and commit a few changes of your own, you
may wish to check the original repository for updates and merge them
@@ -1783,8 +1731,7 @@ $ git merge branch
are roughly equivalent.
[[submitting-patches]]
-Submitting patches to a project
--------------------------------
+=== Submitting patches to a project
If you just have a few changes, the simplest way to submit them may
just be to send them as patches in email:
@@ -1812,8 +1759,7 @@ Consult the mailing list for your project first to determine
their requirements for submitting patches.
[[importing-patches]]
-Importing patches to a project
-------------------------------
+=== Importing patches to a project
Git also provides a tool called linkgit:git-am[1] (am stands for
"apply mailbox"), for importing such an emailed series of patches.
@@ -1845,8 +1791,7 @@ the original mailbox, with authorship and commit log message each
taken from the message containing each patch.
[[public-repositories]]
-Public Git repositories
------------------------
+=== Public Git repositories
Another way to submit changes to a project is to tell the maintainer
of that project to pull the changes from your repository using
@@ -1886,21 +1831,22 @@ pull from that repository. So the flow of changes, in a situation
where there is one other developer with a public repository, looks
like this:
- you push
- your personal repo ------------------> your public repo
- ^ |
- | |
- | you pull | they pull
- | |
- | |
- | they push V
- their public repo <------------------- their repo
+....
+ you push
+your personal repo ------------------> your public repo
+ ^ |
+ | |
+ | you pull | they pull
+ | |
+ | |
+ | they push V
+their public repo <------------------- their repo
+....
We explain how to do this in the following sections.
[[setting-up-a-public-repository]]
-Setting up a public repository
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+==== Setting up a public repository
Assume your personal repository is in the directory `~/proj`. We
first create a new clone of the repository and tell `git daemon` that it
@@ -1920,8 +1866,7 @@ public repository. You can use scp, rsync, or whatever is most
convenient.
[[exporting-via-git]]
-Exporting a Git repository via the Git protocol
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+==== Exporting a Git repository via the Git protocol
This is the preferred method.
@@ -1942,8 +1887,7 @@ linkgit:git-daemon[1] man page for details. (See especially the
examples section.)
[[exporting-via-http]]
-Exporting a git repository via HTTP
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+==== Exporting a git repository via HTTP
The Git protocol gives better performance and reliability, but on a
host with a web server set up, HTTP exports may be simpler to set up.
@@ -1975,8 +1919,7 @@ for a slightly more sophisticated setup using WebDAV which also
allows pushing over HTTP.)
[[pushing-changes-to-a-public-repository]]
-Pushing changes to a public repository
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+==== Pushing changes to a public repository
Note that the two techniques outlined above (exporting via
<<exporting-via-http,http>> or <<exporting-via-git,git>>) allow other
@@ -2035,8 +1978,7 @@ See the explanations of the `remote.<name>.url`,
linkgit:git-config[1] for details.
[[forcing-push]]
-What to do when a push fails
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+==== What to do when a push fails
If a push would not result in a <<fast-forwards,fast-forward>> of the
remote branch, then it will fail with an error like:
@@ -2090,8 +2032,7 @@ pull, or by a fetch followed by a rebase; see the
linkgit:gitcvs-migration[7] for more.
[[setting-up-a-shared-repository]]
-Setting up a shared repository
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+==== Setting up a shared repository
Another way to collaborate is by using a model similar to that
commonly used in CVS, where several developers with special rights
@@ -2121,8 +2062,7 @@ advantages over the central shared repository:
"out".
[[setting-up-gitweb]]
-Allowing web browsing of a repository
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+==== Allowing web browsing of a repository
The gitweb cgi script provides users an easy way to browse your
project's revisions, file contents and logs without having to install
@@ -2138,8 +2078,7 @@ linkgit:gitweb[1] for instructions on details setting up a permanent
installation with a CGI or Perl capable server.
[[how-to-get-a-git-repository-with-minimal-history]]
-How to get a Git repository with minimal history
-------------------------------------------------
+=== How to get a Git repository with minimal history
A <<def_shallow_clone,shallow clone>>, with its truncated
history, is useful when one is interested only in recent history
@@ -2158,12 +2097,10 @@ have to result in huge conflicts. This limitation may make such
a repository unsuitable to be used in merge based workflows.
[[sharing-development-examples]]
-Examples
---------
+=== Examples
[[maintaining-topic-branches]]
-Maintaining topic branches for a Linux subsystem maintainer
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+==== Maintaining topic branches for a Linux subsystem maintainer
This describes how Tony Luck uses Git in his role as maintainer of the
IA64 architecture for the Linux kernel.
@@ -2459,8 +2396,7 @@ done
[[cleaning-up-history]]
-Rewriting history and maintaining patch series
-==============================================
+== Rewriting history and maintaining patch series
Normally commits are only added to a project, never taken away or
replaced. Git is designed with this assumption, and violating it will
@@ -2470,8 +2406,7 @@ However, there is a situation in which it can be useful to violate this
assumption.
[[patch-series]]
-Creating the perfect patch series
----------------------------------
+=== Creating the perfect patch series
Suppose you are a contributor to a large project, and you want to add a
complicated feature, and to present it to the other developers in a way
@@ -2503,8 +2438,7 @@ use them, and then explain some of the problems that can arise because
you are rewriting history.
[[using-git-rebase]]
-Keeping a patch series up to date using git rebase
---------------------------------------------------
+=== Keeping a patch series up to date using git rebase
Suppose that you create a branch `mywork` on a remote-tracking branch
`origin`, and create some commits on top of it:
@@ -2591,8 +2525,7 @@ the rebase. See <<interactive-rebase>> for details, and
<<reordering-patch-series>> for alternatives.
[[rewriting-one-commit]]
-Rewriting a single commit
--------------------------
+=== Rewriting a single commit
We saw in <<fixing-a-mistake-by-rewriting-history>> that you can replace the
most recent commit using
@@ -2610,8 +2543,7 @@ If you need to amend commits from deeper in your history, you can
use <<interactive-rebase,interactive rebase's `edit` instruction>>.
[[reordering-patch-series]]
-Reordering or selecting from a patch series
--------------------------------------------
+=== Reordering or selecting from a patch series
Sometimes you want to edit a commit deeper in your history. One
approach is to use `git format-patch` to create a series of patches
@@ -2630,8 +2562,7 @@ $ git am *.patch
-------------------------------------------------
[[interactive-rebase]]
-Using interactive rebases
--------------------------
+=== Using interactive rebases
You can also edit a patch series with an interactive rebase. This is
the same as <<reordering-patch-series,reordering a patch series using
@@ -2688,16 +2619,14 @@ For a more detailed discussion of the procedure and additional tips,
see the "INTERACTIVE MODE" section of linkgit:git-rebase[1].
[[patch-series-tools]]
-Other tools
------------
+=== Other tools
There are numerous other tools, such as StGit, which exist for the
purpose of maintaining a patch series. These are outside of the scope of
this manual.
[[problems-With-rewriting-history]]
-Problems with rewriting history
--------------------------------
+=== Problems with rewriting history
The primary problem with rewriting the history of a branch has to do
with merging. Suppose somebody fetches your branch and merges it into
@@ -2745,8 +2674,7 @@ For true distributed development that supports proper merging,
published branches should never be rewritten.
[[bisect-merges]]
-Why bisecting merge commits can be harder than bisecting linear history
------------------------------------------------------------------------
+=== Why bisecting merge commits can be harder than bisecting linear history
The linkgit:git-bisect[1] command correctly handles history that
includes merge commits. However, when the commit that it finds is a
@@ -2811,12 +2739,10 @@ linear by rebasing against the latest upstream version before
publishing.
[[advanced-branch-management]]
-Advanced branch management
-==========================
+== Advanced branch management
[[fetching-individual-branches]]
-Fetching individual branches
-----------------------------
+=== Fetching individual branches
Instead of using linkgit:git-remote[1], you can also choose just
to update one branch at a time, and to store it locally under an
@@ -2844,8 +2770,7 @@ already have a branch named example-master, it will attempt to
master branch. In more detail:
[[fetch-fast-forwards]]
-git fetch and fast-forwards
----------------------------
+=== git fetch and fast-forwards
In the previous example, when updating an existing branch, `git fetch`
checks to make sure that the most recent commit on the remote
@@ -2882,8 +2807,7 @@ unless you've already created a reference of your own pointing to
them.
[[forcing-fetch]]
-Forcing git fetch to do non-fast-forward updates
-------------------------------------------------
+=== Forcing git fetch to do non-fast-forward updates
If git fetch fails because the new head of a branch is not a
descendant of the old head, you may force the update with:
@@ -2903,8 +2827,7 @@ Be aware that commits that the old version of example/master pointed at
may be lost, as we saw in the previous section.
[[remote-branch-configuration]]
-Configuring remote-tracking branches
-------------------------------------
+=== Configuring remote-tracking branches
We saw above that `origin` is just a shortcut to refer to the
repository that you originally cloned from. This information is
@@ -2955,8 +2878,7 @@ the refspec syntax.
[[git-concepts]]
-Git concepts
-============
+== Git concepts
Git is built on a small number of simple but powerful ideas. While it
is possible to get things done without understanding them, you will find
@@ -2966,8 +2888,7 @@ We start with the most important, the <<def_object_database,object
database>> and the <<def_index,index>>.
[[the-object-database]]
-The Object Database
--------------------
+=== The Object Database
We already saw in <<understanding-commits>> that all commits are stored
@@ -3011,8 +2932,7 @@ There are four different types of objects: "blob", "tree", "commit", and
The object types in some more detail:
[[commit-object]]
-Commit Object
-~~~~~~~~~~~~~
+==== Commit Object
The "commit" object links a physical state of a tree with a description
of how we got there and why. Use the `--pretty=raw` option to
@@ -3064,8 +2984,7 @@ commit whose parent is normally the current HEAD, and whose tree is
taken from the content currently stored in the index.
[[tree-object]]
-Tree Object
-~~~~~~~~~~~
+==== Tree Object
The ever-versatile linkgit:git-show[1] command can also be used to
examine tree objects, but linkgit:git-ls-tree[1] will give you more
@@ -3104,8 +3023,7 @@ Note that the files all have mode 644 or 755: Git actually only pays
attention to the executable bit.
[[blob-object]]
-Blob Object
-~~~~~~~~~~~
+==== Blob Object
You can use linkgit:git-show[1] to examine the contents of a blob; take,
for example, the blob in the entry for `COPYING` from the tree above:
@@ -3134,8 +3052,7 @@ sometimes be useful for browsing the contents of a tree that is not
currently checked out.
[[trust]]
-Trust
-~~~~~
+==== Trust
If you receive the SHA-1 name of a blob from one source, and its contents
from another (possibly untrusted) source, you can still trust that those
@@ -3164,8 +3081,7 @@ like GPG/PGP.
To assist in this, Git also provides the tag object...
[[tag-object]]
-Tag Object
-~~~~~~~~~~
+==== Tag Object
A tag object contains an object, object type, tag name, the name of the
person ("tagger") who created the tag, and a message, which may contain
@@ -3194,8 +3110,7 @@ objects. (Note that linkgit:git-tag[1] can also be used to create
references whose names begin with `refs/tags/`).
[[pack-files]]
-How Git stores objects efficiently: pack files
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+==== How Git stores objects efficiently: pack files
Newly created objects are initially created in a file named after the
object's SHA-1 hash (stored in `.git/objects`).
@@ -3253,8 +3168,7 @@ The linkgit:git-gc[1] command performs packing, pruning, and more for
you, so is normally the only high-level command you need.
[[dangling-objects]]
-Dangling objects
-~~~~~~~~~~~~~~~~
+==== Dangling objects
The linkgit:git-fsck[1] command will sometimes complain about dangling
objects. They are not a problem.
@@ -3334,8 +3248,7 @@ don't want to do that while the filesystem is mounted.
accesses to a repository but you might receive confusing or scary messages.)
[[recovering-from-repository-corruption]]
-Recovering from repository corruption
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+==== Recovering from repository corruption
By design, Git treats data trusted to it with caution. However, even in
the absence of bugs in Git itself, it is still possible that hardware or
@@ -3452,8 +3365,7 @@ whole thing. It's up to you--Git does *have* a lot of information, it is
just missing one particular blob version.
[[the-index]]
-The index
----------
+=== The index
The index is a binary file (generally kept in `.git/index`) containing a
sorted list of path names, each with permissions and the SHA-1 of a blob
@@ -3511,8 +3423,7 @@ If you blow the index away entirely, you generally haven't lost any
information as long as you have the name of the tree that it described.
[[submodules]]
-Submodules
-==========
+== Submodules
Large projects are often composed of smaller, self-contained modules. For
example, an embedded Linux distribution's source tree would include every
@@ -3698,8 +3609,8 @@ $ git push
You have to run `git submodule update` after `git pull` if you want to update
submodules, too.
-Pitfalls with submodules
-------------------------
+[[pitfalls-with-submodules]]
+=== Pitfalls with submodules
Always publish the submodule change before publishing the change to the
superproject that references it. If you forget to publish the submodule change,
@@ -3768,8 +3679,7 @@ submodule update` will not overwrite them. Instead, you get the usual
warning about not being able switch from a dirty branch.
[[low-level-operations]]
-Low-level Git operations
-========================
+== Low-level Git operations
Many of the higher-level commands were originally implemented as shell
scripts using a smaller core of low-level Git commands. These can still
@@ -3777,8 +3687,7 @@ be useful when doing unusual things with Git, or just as a way to
understand its inner workings.
[[object-manipulation]]
-Object access and manipulation
-------------------------------
+=== Object access and manipulation
The linkgit:git-cat-file[1] command can show the contents of any object,
though the higher-level linkgit:git-show[1] is usually more useful.
@@ -3795,8 +3704,7 @@ verified by linkgit:git-verify-tag[1], though it is normally simpler to
use linkgit:git-tag[1] for both.
[[the-workflow]]
-The Workflow
-------------
+=== The Workflow
High-level operations such as linkgit:git-commit[1] and
linkgit:git-restore[1] work by moving data
@@ -3811,8 +3719,7 @@ the database or the working directory. Thus there are four main
combinations:
[[working-directory-to-index]]
-working directory -> index
-~~~~~~~~~~~~~~~~~~~~~~~~~~
+==== working directory -> index
The linkgit:git-update-index[1] command updates the index with
information from the working directory. You generally update the
@@ -3848,8 +3755,7 @@ The previously introduced linkgit:git-add[1] is just a wrapper for
linkgit:git-update-index[1].
[[index-to-object-database]]
-index -> object database
-~~~~~~~~~~~~~~~~~~~~~~~~
+==== index -> object database
You write your current index file to a "tree" object with the program
@@ -3864,8 +3770,7 @@ use that tree to re-generate the index at any time by going in the
other direction:
[[object-database-to-index]]
-object database -> index
-~~~~~~~~~~~~~~~~~~~~~~~~
+==== object database -> index
You read a "tree" file from the object database, and use that to
populate (and overwrite--don't do this if your index contains any
@@ -3881,8 +3786,7 @@ earlier. However, that is only your 'index' file: your working
directory contents have not been modified.
[[index-to-working-directory]]
-index -> working directory
-~~~~~~~~~~~~~~~~~~~~~~~~~~
+==== index -> working directory
You update your working directory from the index by "checking out"
files. This is not a very common operation, since normally you'd just
@@ -3911,8 +3815,7 @@ Finally, there are a few odds and ends which are not purely moving
from one representation to the other:
[[tying-it-all-together]]
-Tying it all together
-~~~~~~~~~~~~~~~~~~~~~
+==== Tying it all together
To commit a tree you have instantiated with `git write-tree`, you'd
create a "commit" object that refers to that tree and the history
@@ -3986,8 +3889,7 @@ Here is a picture that illustrates how various pieces fit together:
[[examining-the-data]]
-Examining the data
-------------------
+=== Examining the data
You can examine the data represented in the object database and the
index with various helper tools. For every object, you can use
@@ -4022,8 +3924,7 @@ $ git cat-file commit HEAD
to see what the top commit was.
[[merging-multiple-trees]]
-Merging multiple trees
-----------------------
+=== Merging multiple trees
Git can help you perform a three-way merge, which can in turn be
used for a many-way merge by repeating the merge procedure several
@@ -4073,8 +3974,7 @@ index file, and you can just write the result out with
[[merging-multiple-trees-2]]
-Merging multiple trees, continued
----------------------------------
+=== Merging multiple trees, continued
Sadly, many merges aren't trivial. If there are files that have
been added, moved or removed, or if both branches have modified the
@@ -4144,15 +4044,13 @@ $ git merge-index git-merge-one-file hello.c
and that is what higher level `git merge -s resolve` is implemented with.
[[hacking-git]]
-Hacking Git
-===========
+== Hacking Git
This chapter covers internal details of the Git implementation which
probably only Git developers need to understand.
[[object-details]]
-Object storage format
----------------------
+=== Object storage format
All objects have a statically determined "type" which identifies the
format of the object (i.e. how it is used, and how it can refer to other
@@ -4182,8 +4080,7 @@ of all objects, and verifies their internal consistency (in addition
to just verifying their superficial consistency through the hash).
[[birdview-on-the-source-code]]
-A birds-eye view of Git's source code
--------------------------------------
+=== A birds-eye view of Git's source code
It is not always easy for new developers to find their way through Git's
source code. This section gives you a little guidance to show where to
@@ -4392,25 +4289,22 @@ You see, Git is actually the best tool to find out about the source of Git
itself!
[[glossary]]
-Git Glossary
-============
+== Git Glossary
[[git-explained]]
-Git explained
--------------
+=== Git explained
include::glossary-content.txt[]
[[git-quick-start]]
-Appendix A: Git Quick Reference
-===============================
+[appendix]
+== Git Quick Reference
This is a quick summary of the major commands; the previous chapters
explain how these work in more detail.
[[quick-creating-a-new-repository]]
-Creating a new repository
--------------------------
+=== Creating a new repository
From a tarball:
@@ -4431,8 +4325,7 @@ $ cd project
-----------------------------------------------
[[managing-branches]]
-Managing branches
------------------
+=== Managing branches
-----------------------------------------------
$ git branch # list all local branches in this repo
@@ -4496,8 +4389,7 @@ $ git branch -r # list all remote branches
[[exploring-history]]
-Exploring history
------------------
+=== Exploring history
-----------------------------------------------
$ gitk # visualize and browse history
@@ -4532,8 +4424,7 @@ $ git bisect bad # if this revision is bad.
-----------------------------------------------
[[making-changes]]
-Making changes
---------------
+=== Making changes
Make sure Git knows who to blame:
@@ -4563,8 +4454,7 @@ $ git commit -a # use latest content of all tracked files
-----------------------------------------------
[[merging]]
-Merging
--------
+=== Merging
-----------------------------------------------
$ git merge test # merge branch "test" into the current branch
@@ -4574,8 +4464,7 @@ $ git pull . test # equivalent to git merge test
-----------------------------------------------
[[sharing-your-changes]]
-Sharing your changes
---------------------
+=== Sharing your changes
Importing or exporting patches:
@@ -4620,8 +4509,7 @@ $ git push example test
-----------------------------------------------
[[repository-maintenance]]
-Repository maintenance
-----------------------
+=== Repository maintenance
Check for corruption:
@@ -4637,12 +4525,11 @@ $ git gc
[[todo]]
-Appendix B: Notes and todo list for this manual
-===============================================
+[appendix]
+== Notes and todo list for this manual
[[todo-list]]
-Todo list
----------
+=== Todo list
This is a work in progress.
diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN
index a1539a7..5048d9b 100755
--- a/GIT-VERSION-GEN
+++ b/GIT-VERSION-GEN
@@ -1,7 +1,7 @@
#!/bin/sh
GVF=GIT-VERSION-FILE
-DEF_VER=v2.23.0
+DEF_VER=v2.24.0
LF='
'
diff --git a/Makefile b/Makefile
index f925534..58b92af 100644
--- a/Makefile
+++ b/Makefile
@@ -34,13 +34,8 @@ all::
# library. Support for version 1 will likely be removed in some future
# release of Git, as upstream has all but abandoned it.
#
-# When using USE_LIBPCRE1, define NO_LIBPCRE1_JIT if the PCRE v1
-# library is compiled without --enable-jit. We will auto-detect
-# whether the version of the PCRE v1 library in use has JIT support at
-# all, but we unfortunately can't auto-detect whether JIT support
-# hasn't been compiled in in an otherwise JIT-supporting version. If
-# you have link-time errors about a missing `pcre_jit_exec` define
-# this, or recompile PCRE v1 with --enable-jit.
+# When using USE_LIBPCRE1, define NO_LIBPCRE1_JIT if you want to
+# disable JIT even if supported by your library.
#
# Define LIBPCREDIR=/foo/bar if your PCRE header and library files are
# in /foo/bar/include and /foo/bar/lib directories. Which version of
@@ -598,6 +593,7 @@ SCRIPT_SH =
SCRIPT_LIB =
TEST_BUILTINS_OBJS =
TEST_PROGRAMS_NEED_X =
+THIRD_PARTY_SOURCES =
# Having this variable in your environment would break pipelines because
# you cause "cd" to echo its destination to stdout. It can also take
@@ -728,6 +724,7 @@ TEST_BUILTINS_OBJS += test-parse-options.o
TEST_BUILTINS_OBJS += test-path-utils.o
TEST_BUILTINS_OBJS += test-pkt-line.o
TEST_BUILTINS_OBJS += test-prio-queue.o
+TEST_BUILTINS_OBJS += test-progress.o
TEST_BUILTINS_OBJS += test-reach.o
TEST_BUILTINS_OBJS += test-read-cache.o
TEST_BUILTINS_OBJS += test-read-midx.o
@@ -818,12 +815,12 @@ VCSSVN_LIB = vcs-svn/lib.a
GENERATED_H += command-list.h
-LIB_H := $(sort $(shell git ls-files '*.h' ':!t/' ':!Documentation/' 2>/dev/null || \
+LIB_H := $(sort $(patsubst ./%,%,$(shell git ls-files '*.h' ':!t/' ':!Documentation/' 2>/dev/null || \
$(FIND) . \
-name .git -prune -o \
-name t -prune -o \
-name Documentation -prune -o \
- -name '*.h' -print))
+ -name '*.h' -print)))
LIB_OBJS += abspath.o
LIB_OBJS += advice.o
@@ -884,7 +881,6 @@ LIB_OBJS += ewah/ewah_io.o
LIB_OBJS += ewah/ewah_rlw.o
LIB_OBJS += exec-cmd.o
LIB_OBJS += fetch-negotiator.o
-LIB_OBJS += fetch-object.o
LIB_OBJS += fetch-pack.o
LIB_OBJS += fsck.o
LIB_OBJS += fsmonitor.o
@@ -948,6 +944,7 @@ LIB_OBJS += preload-index.o
LIB_OBJS += pretty.o
LIB_OBJS += prio-queue.o
LIB_OBJS += progress.o
+LIB_OBJS += promisor-remote.o
LIB_OBJS += prompt.o
LIB_OBJS += protocol.o
LIB_OBJS += quote.o
@@ -965,6 +962,7 @@ LIB_OBJS += refspec.o
LIB_OBJS += ref-filter.o
LIB_OBJS += remote.o
LIB_OBJS += replace-object.o
+LIB_OBJS += repo-settings.o
LIB_OBJS += repository.o
LIB_OBJS += rerere.o
LIB_OBJS += resolve-undo.o
@@ -983,6 +981,7 @@ LIB_OBJS += shallow.o
LIB_OBJS += sideband.o
LIB_OBJS += sigchain.o
LIB_OBJS += split-index.o
+LIB_OBJS += stable-qsort.o
LIB_OBJS += strbuf.o
LIB_OBJS += streaming.o
LIB_OBJS += string-list.o
@@ -1145,6 +1144,20 @@ BUILTIN_OBJS += builtin/verify-tag.o
BUILTIN_OBJS += builtin/worktree.o
BUILTIN_OBJS += builtin/write-tree.o
+# THIRD_PARTY_SOURCES is a list of patterns compatible with the
+# $(filter) and $(filter-out) family of functions. They specify source
+# files which are taken from some third-party source where we want to be
+# less strict about issues such as coding style so we don't diverge from
+# upstream unnecessarily (making merging in future changes easier).
+THIRD_PARTY_SOURCES += compat/inet_ntop.c
+THIRD_PARTY_SOURCES += compat/inet_pton.c
+THIRD_PARTY_SOURCES += compat/nedmalloc/%
+THIRD_PARTY_SOURCES += compat/obstack.%
+THIRD_PARTY_SOURCES += compat/poll/%
+THIRD_PARTY_SOURCES += compat/regex/%
+THIRD_PARTY_SOURCES += sha1collisiondetection/%
+THIRD_PARTY_SOURCES += sha1dc/%
+
GITLIBS = common-main.o $(LIB_FILE) $(XDIFF_LIB)
EXTLIBS =
@@ -1714,7 +1727,6 @@ ifdef NO_GETPAGESIZE
endif
ifdef INTERNAL_QSORT
COMPAT_CFLAGS += -DINTERNAL_QSORT
- COMPAT_OBJS += compat/qsort.o
endif
ifdef HAVE_ISO_QSORT_S
COMPAT_CFLAGS += -DHAVE_ISO_QSORT_S
@@ -1871,8 +1883,9 @@ ifndef V
QUIET_MSGFMT = @echo ' ' MSGFMT $@;
QUIET_GCOV = @echo ' ' GCOV $@;
QUIET_SP = @echo ' ' SP $<;
- QUIET_HDR = @echo ' ' HDR $<;
+ 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
@@ -2599,6 +2612,7 @@ FIND_SOURCE_FILES = ( \
-o \( -name 'trash*' -type d -prune \) \
-o \( -name '*.[hcS]' -type f -print \) \
-o \( -name '*.sh' -type f -print \) \
+ | sed -e 's|^\./||' \
)
$(ETAGS_TARGET): FORCE
@@ -2768,11 +2782,16 @@ EXCEPT_HDRS := $(GEN_HDRS) compat/% xdiff/%
ifndef GCRYPT_SHA256
EXCEPT_HDRS += sha256/gcrypt.h
endif
-CHK_HDRS = $(filter-out $(EXCEPT_HDRS),$(patsubst ./%,%,$(LIB_H)))
+CHK_HDRS = $(filter-out $(EXCEPT_HDRS),$(LIB_H))
HCO = $(patsubst %.h,%.hco,$(CHK_HDRS))
+HCC = $(HCO:hco=hcc)
+
+%.hcc: %.h
+ @echo '#include "git-compat-util.h"' >$@
+ @echo '#include "$<"' >>$@
-$(HCO): %.hco: %.h FORCE
- $(QUIET_HDR)$(CC) -include git-compat-util.h -I. -o /dev/null -c -xc $<
+$(HCO): %.hco: %.hcc FORCE
+ $(QUIET_HDR)$(CC) $(ALL_CFLAGS) -o /dev/null -c -xc $<
.PHONY: hdr-check $(HCO)
hdr-check: $(HCO)
@@ -2791,15 +2810,11 @@ check: command-list.h
exit 1; \
fi
-C_SOURCES = $(patsubst %.o,%.c,$(C_OBJ))
-ifdef DC_SHA1_SUBMODULE
-COCCI_SOURCES = $(filter-out sha1collisiondetection/%,$(C_SOURCES))
-else
-COCCI_SOURCES = $(filter-out sha1dc/%,$(C_SOURCES))
-endif
+FOUND_C_SOURCES = $(filter %.c,$(shell $(FIND_SOURCE_FILES)))
+COCCI_SOURCES = $(filter-out $(THIRD_PARTY_SOURCES),$(FOUND_C_SOURCES))
%.cocci.patch: %.cocci $(COCCI_SOURCES)
- @echo ' ' SPATCH $<; \
+ $(QUIET_SPATCH) \
if test $(SPATCH_BATCH_SIZE) = 0; then \
limit=; \
else \
@@ -3028,6 +3043,10 @@ rpm::
@false
.PHONY: rpm
+ifneq ($(INCLUDE_DLLS_IN_ARTIFACTS),)
+OTHER_PROGRAMS += $(shell echo *.dll t/helper/*.dll)
+endif
+
artifacts-tar:: $(ALL_PROGRAMS) $(SCRIPT_LIB) $(BUILT_INS) $(OTHER_PROGRAMS) \
GIT-BUILD-OPTIONS $(TEST_PROGRAMS) $(test_bindir_programs) \
$(MOFILES)
@@ -3081,6 +3100,7 @@ clean: profile-clean coverage-clean cocciclean
$(RM) $(ALL_PROGRAMS) $(SCRIPT_LIB) $(BUILT_INS) git$X
$(RM) $(TEST_PROGRAMS)
$(RM) $(FUZZ_PROGRAMS)
+ $(RM) $(HCC)
$(RM) -r bin-wrappers $(dep_dirs)
$(RM) -r po/build/
$(RM) *.pyc *.pyo */*.pyc */*.pyo command-list.h $(ETAGS_TARGET) tags cscope*
diff --git a/RelNotes b/RelNotes
index 248d137..fc657e7 120000
--- a/RelNotes
+++ b/RelNotes
@@ -1 +1 @@
-Documentation/RelNotes/2.23.0.txt \ No newline at end of file
+Documentation/RelNotes/2.24.0.txt \ No newline at end of file
diff --git a/apply.c b/apply.c
index cde9536..f8a046a 100644
--- a/apply.c
+++ b/apply.c
@@ -1361,11 +1361,32 @@ int parse_git_diff_header(struct strbuf *root,
if (check_header_line(*linenr, patch))
return -1;
if (res > 0)
- return offset;
+ goto done;
break;
}
}
+done:
+ if (!patch->old_name && !patch->new_name) {
+ if (!patch->def_name) {
+ error(Q_("git diff header lacks filename information when removing "
+ "%d leading pathname component (line %d)",
+ "git diff header lacks filename information when removing "
+ "%d leading pathname components (line %d)",
+ parse_hdr_state.p_value),
+ parse_hdr_state.p_value, *linenr);
+ return -128;
+ }
+ patch->old_name = xstrdup(patch->def_name);
+ patch->new_name = xstrdup(patch->def_name);
+ }
+ if ((!patch->new_name && !patch->is_delete) ||
+ (!patch->old_name && !patch->is_new)) {
+ error(_("git diff header lacks filename information "
+ "(line %d)"), *linenr);
+ return -128;
+ }
+ patch->is_toplevel_relative = 1;
return offset;
}
@@ -1546,26 +1567,6 @@ static int find_header(struct apply_state *state,
return -128;
if (git_hdr_len <= len)
continue;
- if (!patch->old_name && !patch->new_name) {
- if (!patch->def_name) {
- error(Q_("git diff header lacks filename information when removing "
- "%d leading pathname component (line %d)",
- "git diff header lacks filename information when removing "
- "%d leading pathname components (line %d)",
- state->p_value),
- state->p_value, state->linenr);
- return -128;
- }
- patch->old_name = xstrdup(patch->def_name);
- patch->new_name = xstrdup(patch->def_name);
- }
- if ((!patch->new_name && !patch->is_delete) ||
- (!patch->old_name && !patch->is_new)) {
- error(_("git diff header lacks filename information "
- "(line %d)"), state->linenr);
- return -128;
- }
- patch->is_toplevel_relative = 1;
*hdrsize = git_hdr_len;
return offset;
}
@@ -4643,6 +4644,7 @@ static int apply_patch(struct apply_state *state,
struct patch *list = NULL, **listp = &list;
int skipped_patch = 0;
int res = 0;
+ int flush_attributes = 0;
state->patch_input_file = filename;
if (read_patch_file(&buf, fd) < 0)
@@ -4670,6 +4672,14 @@ static int apply_patch(struct apply_state *state,
patch_stats(state, patch);
*listp = patch;
listp = &patch->next;
+
+ if ((patch->new_name &&
+ ends_with_path_components(patch->new_name,
+ GITATTRIBUTES_FILE)) ||
+ (patch->old_name &&
+ ends_with_path_components(patch->old_name,
+ GITATTRIBUTES_FILE)))
+ flush_attributes = 1;
}
else {
if (state->apply_verbosity > verbosity_normal)
@@ -4746,6 +4756,8 @@ static int apply_patch(struct apply_state *state,
if (state->summary && state->apply_verbosity > verbosity_silent)
summary_patch_list(list);
+ if (flush_attributes)
+ reset_parsed_attributes();
end:
free_patch_list(list);
strbuf_release(&buf);
diff --git a/apply.h b/apply.h
index a795193..da3d95f 100644
--- a/apply.h
+++ b/apply.h
@@ -1,6 +1,7 @@
#ifndef APPLY_H
#define APPLY_H
+#include "hash.h"
#include "lockfile.h"
#include "string-list.h"
diff --git a/archive-tar.c b/archive-tar.c
index 3e53aac..e16d3f7 100644
--- a/archive-tar.c
+++ b/archive-tar.c
@@ -142,19 +142,25 @@ static int stream_blocked(const struct object_id *oid)
* string and appends it to a struct strbuf.
*/
static void strbuf_append_ext_header(struct strbuf *sb, const char *keyword,
- const char *value, unsigned int valuelen)
+ const char *value, size_t valuelen)
{
- int len, tmp;
+ size_t orig_len = sb->len;
+ size_t len, tmp;
/* "%u %s=%s\n" */
len = 1 + 1 + strlen(keyword) + 1 + valuelen + 1;
- for (tmp = len; tmp > 9; tmp /= 10)
+ for (tmp = 1; len / 10 >= tmp; tmp *= 10)
len++;
strbuf_grow(sb, len);
- strbuf_addf(sb, "%u %s=", len, keyword);
+ strbuf_addf(sb, "%"PRIuMAX" %s=", (uintmax_t)len, keyword);
strbuf_add(sb, value, valuelen);
strbuf_addch(sb, '\n');
+
+ if (len != sb->len - orig_len)
+ BUG("pax extended header length miscalculated as %"PRIuMAX
+ ", should be %"PRIuMAX,
+ (uintmax_t)len, (uintmax_t)(sb->len - orig_len));
}
/*
diff --git a/attr.c b/attr.c
index 93dc16b..11f19b5 100644
--- a/attr.c
+++ b/attr.c
@@ -62,7 +62,7 @@ static struct attr_hashmap g_attr_hashmap;
/* The container for objects stored in "struct attr_hashmap" */
struct attr_hash_entry {
- struct hashmap_entry ent; /* must be the first member! */
+ struct hashmap_entry ent;
const char *key; /* the key; memory should be owned by value */
size_t keylen; /* length of the key */
void *value; /* the stored value */
@@ -70,12 +70,14 @@ struct attr_hash_entry {
/* attr_hashmap comparison function */
static int attr_hash_entry_cmp(const void *unused_cmp_data,
- const void *entry,
- const void *entry_or_key,
+ const struct hashmap_entry *eptr,
+ const struct hashmap_entry *entry_or_key,
const void *unused_keydata)
{
- const struct attr_hash_entry *a = entry;
- const struct attr_hash_entry *b = entry_or_key;
+ const struct attr_hash_entry *a, *b;
+
+ a = container_of(eptr, const struct attr_hash_entry, ent);
+ b = container_of(entry_or_key, const struct attr_hash_entry, ent);
return (a->keylen != b->keylen) || strncmp(a->key, b->key, a->keylen);
}
@@ -98,10 +100,10 @@ static void *attr_hashmap_get(struct attr_hashmap *map,
if (!map->map.tablesize)
attr_hashmap_init(map);
- hashmap_entry_init(&k, memhash(key, keylen));
+ hashmap_entry_init(&k.ent, memhash(key, keylen));
k.key = key;
k.keylen = keylen;
- e = hashmap_get(&map->map, &k, NULL);
+ e = hashmap_get_entry(&map->map, &k, ent, NULL);
return e ? e->value : NULL;
}
@@ -117,12 +119,12 @@ static void attr_hashmap_add(struct attr_hashmap *map,
attr_hashmap_init(map);
e = xmalloc(sizeof(struct attr_hash_entry));
- hashmap_entry_init(e, memhash(key, keylen));
+ hashmap_entry_init(&e->ent, memhash(key, keylen));
e->key = key;
e->keylen = keylen;
e->value = value;
- hashmap_add(&map->map, e);
+ hashmap_add(&map->map, &e->ent);
}
struct all_attrs_item {
@@ -161,12 +163,12 @@ static void all_attrs_init(struct attr_hashmap *map, struct attr_check *check)
if (size != check->all_attrs_nr) {
struct attr_hash_entry *e;
struct hashmap_iter iter;
- hashmap_iter_init(&map->map, &iter);
REALLOC_ARRAY(check->all_attrs, size);
check->all_attrs_nr = size;
- while ((e = hashmap_iter_next(&iter))) {
+ hashmap_for_each_entry(&map->map, &iter, e,
+ ent /* member name */) {
const struct git_attr *a = e->value;
check->all_attrs[a->attr_nr].attr = a;
}
@@ -259,7 +261,7 @@ struct pattern {
const char *pattern;
int patternlen;
int nowildcardlen;
- unsigned flags; /* EXC_FLAG_* */
+ unsigned flags; /* PATTERN_FLAG_* */
};
/*
@@ -400,11 +402,11 @@ static struct match_attr *parse_attr_line(const char *line, const char *src,
char *p = (char *)&(res->state[num_attr]);
memcpy(p, name, namelen);
res->u.pat.pattern = p;
- parse_exclude_pattern(&res->u.pat.pattern,
+ parse_path_pattern(&res->u.pat.pattern,
&res->u.pat.patternlen,
&res->u.pat.flags,
&res->u.pat.nowildcardlen);
- if (res->u.pat.flags & EXC_FLAG_NEGATIVE) {
+ if (res->u.pat.flags & PATTERN_FLAG_NEGATIVE) {
warning(_("Negative patterns are ignored in git attributes\n"
"Use '\\!' for literal leading exclamation."));
goto fail_return;
@@ -991,10 +993,10 @@ static int path_matches(const char *pathname, int pathlen,
int prefix = pat->nowildcardlen;
int isdir = (pathlen && pathname[pathlen - 1] == '/');
- if ((pat->flags & EXC_FLAG_MUSTBEDIR) && !isdir)
+ if ((pat->flags & PATTERN_FLAG_MUSTBEDIR) && !isdir)
return 0;
- if (pat->flags & EXC_FLAG_NODIR) {
+ if (pat->flags & PATTERN_FLAG_NODIR) {
return match_basename(pathname + basename_offset,
pathlen - basename_offset - isdir,
pattern, prefix,
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index c329b72..af2a5ea 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -1,6 +1,5 @@
-resources:
-- repo: self
- fetchDepth: 1
+variables:
+ Agent.Source.Git.ShallowFetchDepth: 1
jobs:
- job: windows_build
@@ -131,6 +130,165 @@ jobs:
PathtoPublish: t/failed-test-artifacts
ArtifactName: failed-test-artifacts
+- job: vs_build
+ displayName: Visual Studio Build
+ condition: succeeded()
+ pool: Hosted VS2017
+ timeoutInMinutes: 240
+ steps:
+ - powershell: |
+ if ("$GITFILESHAREPWD" -ne "" -and "$GITFILESHAREPWD" -ne "`$`(gitfileshare.pwd)") {
+ net use s: \\gitfileshare.file.core.windows.net\test-cache "$GITFILESHAREPWD" /user:AZURE\gitfileshare /persistent:no
+ cmd /c mklink /d "$(Build.SourcesDirectory)\test-cache" S:\
+ }
+ displayName: 'Mount test-cache'
+ env:
+ GITFILESHAREPWD: $(gitfileshare.pwd)
+ - powershell: |
+ $urlbase = "https://dev.azure.com/git-for-windows/git/_apis/build/builds"
+ $id = ((Invoke-WebRequest -UseBasicParsing "${urlbase}?definitions=22&statusFilter=completed&resultFilter=succeeded&`$top=1").content | ConvertFrom-JSON).value[0].id
+ $downloadUrl = ((Invoke-WebRequest -UseBasicParsing "${urlbase}/$id/artifacts").content | ConvertFrom-JSON).value[1].resource.downloadUrl
+ (New-Object Net.WebClient).DownloadFile($downloadUrl,"git-sdk-64-minimal.zip")
+ Expand-Archive git-sdk-64-minimal.zip -DestinationPath . -Force
+ Remove-Item git-sdk-64-minimal.zip
+
+ # Let Git ignore the SDK and the test-cache
+ "/git-sdk-64-minimal/`n/test-cache/`n" | Out-File -NoNewLine -Encoding ascii -Append "$(Build.SourcesDirectory)\.git\info\exclude"
+ displayName: 'Download git-sdk-64-minimal'
+ - powershell: |
+ & git-sdk-64-minimal\usr\bin\bash.exe -lc @"
+ make NDEBUG=1 DEVELOPER=1 vcxproj
+ "@
+ if (!$?) { exit(1) }
+ displayName: Generate Visual Studio Solution
+ env:
+ HOME: $(Build.SourcesDirectory)
+ MSYSTEM: MINGW64
+ DEVELOPER: 1
+ NO_PERL: 1
+ GIT_CONFIG_PARAMETERS: "'user.name=CI' 'user.email=ci@git'"
+ - powershell: |
+ $urlbase = "https://dev.azure.com/git/git/_apis/build/builds"
+ $id = ((Invoke-WebRequest -UseBasicParsing "${urlbase}?definitions=9&statusFilter=completed&resultFilter=succeeded&`$top=1").content | ConvertFrom-JSON).value[0].id
+ $downloadUrl = ((Invoke-WebRequest -UseBasicParsing "${urlbase}/$id/artifacts").content | ConvertFrom-JSON).value[0].resource.downloadUrl
+ (New-Object Net.WebClient).DownloadFile($downloadUrl, "compat.zip")
+ Expand-Archive compat.zip -DestinationPath . -Force
+ Remove-Item compat.zip
+ displayName: 'Download vcpkg artifacts'
+ - task: MSBuild@1
+ inputs:
+ solution: git.sln
+ platform: x64
+ configuration: Release
+ maximumCpuCount: 4
+ - powershell: |
+ & compat\vcbuild\vcpkg_copy_dlls.bat release
+ if (!$?) { exit(1) }
+ & git-sdk-64-minimal\usr\bin\bash.exe -lc @"
+ mkdir -p artifacts &&
+ eval \"`$(make -n artifacts-tar INCLUDE_DLLS_IN_ARTIFACTS=YesPlease ARTIFACTS_DIRECTORY=artifacts | grep ^tar)\"
+ "@
+ if (!$?) { exit(1) }
+ displayName: Bundle artifact tar
+ env:
+ HOME: $(Build.SourcesDirectory)
+ MSYSTEM: MINGW64
+ DEVELOPER: 1
+ NO_PERL: 1
+ MSVC: 1
+ VCPKG_ROOT: $(Build.SourcesDirectory)\compat\vcbuild\vcpkg
+ - powershell: |
+ $tag = (Invoke-WebRequest -UseBasicParsing "https://gitforwindows.org/latest-tag.txt").content
+ $version = (Invoke-WebRequest -UseBasicParsing "https://gitforwindows.org/latest-version.txt").content
+ $url = "https://github.com/git-for-windows/git/releases/download/${tag}/PortableGit-${version}-64-bit.7z.exe"
+ (New-Object Net.WebClient).DownloadFile($url,"PortableGit.exe")
+ & .\PortableGit.exe -y -oartifacts\PortableGit
+ # Wait until it is unpacked
+ while (-not @(Remove-Item -ErrorAction SilentlyContinue PortableGit.exe; $?)) { sleep 1 }
+ displayName: Download & extract portable Git
+ - task: PublishPipelineArtifact@0
+ displayName: 'Publish Pipeline Artifact: MSVC test artifacts'
+ inputs:
+ artifactName: 'vs-artifacts'
+ targetPath: '$(Build.SourcesDirectory)\artifacts'
+ - powershell: |
+ if ("$GITFILESHAREPWD" -ne "" -and "$GITFILESHAREPWD" -ne "`$`(gitfileshare.pwd)") {
+ cmd /c rmdir "$(Build.SourcesDirectory)\test-cache"
+ }
+ displayName: 'Unmount test-cache'
+ condition: true
+ env:
+ GITFILESHAREPWD: $(gitfileshare.pwd)
+
+- job: vs_test
+ displayName: Visual Studio Test
+ dependsOn: vs_build
+ condition: succeeded()
+ pool: Hosted
+ timeoutInMinutes: 240
+ strategy:
+ parallel: 10
+ steps:
+ - powershell: |
+ if ("$GITFILESHAREPWD" -ne "" -and "$GITFILESHAREPWD" -ne "`$`(gitfileshare.pwd)") {
+ net use s: \\gitfileshare.file.core.windows.net\test-cache "$GITFILESHAREPWD" /user:AZURE\gitfileshare /persistent:no
+ cmd /c mklink /d "$(Build.SourcesDirectory)\test-cache" S:\
+ }
+ displayName: 'Mount test-cache'
+ env:
+ GITFILESHAREPWD: $(gitfileshare.pwd)
+ - task: DownloadPipelineArtifact@0
+ displayName: 'Download Pipeline Artifact: VS test artifacts'
+ inputs:
+ artifactName: 'vs-artifacts'
+ targetPath: '$(Build.SourcesDirectory)'
+ - powershell: |
+ & PortableGit\git-cmd.exe --command=usr\bin\bash.exe -lc @"
+ test -f artifacts.tar.gz || {
+ echo No test artifacts found\; skipping >&2
+ exit 0
+ }
+ tar xf artifacts.tar.gz || exit 1
+
+ # Let Git ignore the SDK and the test-cache
+ printf '%s\n' /PortableGit/ /test-cache/ >>.git/info/exclude
+
+ cd t &&
+ PATH=\"`$PWD/helper:`$PATH\" &&
+ test-tool.exe run-command testsuite --jobs=10 -V -x --write-junit-xml \
+ `$(test-tool.exe path-utils slice-tests \
+ `$SYSTEM_JOBPOSITIONINPHASE `$SYSTEM_TOTALJOBSINPHASE t[0-9]*.sh)
+ "@
+ if (!$?) { exit(1) }
+ displayName: 'Test (parallel)'
+ env:
+ HOME: $(Build.SourcesDirectory)
+ MSYSTEM: MINGW64
+ NO_SVN_TESTS: 1
+ GIT_TEST_SKIP_REBASE_P: 1
+ - powershell: |
+ if ("$GITFILESHAREPWD" -ne "" -and "$GITFILESHAREPWD" -ne "`$`(gitfileshare.pwd)") {
+ cmd /c rmdir "$(Build.SourcesDirectory)\test-cache"
+ }
+ displayName: 'Unmount test-cache'
+ condition: true
+ env:
+ GITFILESHAREPWD: $(gitfileshare.pwd)
+ - task: PublishTestResults@2
+ displayName: 'Publish Test Results **/TEST-*.xml'
+ inputs:
+ mergeTestResults: true
+ testRunTitle: 'vs'
+ platform: Windows
+ publishRunAttachments: false
+ condition: succeededOrFailed()
+ - task: PublishBuildArtifacts@1
+ displayName: 'Publish trash directories of failed tests'
+ condition: failed()
+ inputs:
+ PathtoPublish: t/failed-test-artifacts
+ ArtifactName: failed-vs-test-artifacts
+
- job: linux_clang
displayName: linux-clang
condition: succeeded()
@@ -354,7 +512,7 @@ jobs:
test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/test-cache gitfileshare "$GITFILESHAREPWD" "$HOME/test-cache" || exit 1
sudo apt-get update &&
- sudo apt-get install -y coccinelle &&
+ sudo apt-get install -y coccinelle libcurl4-openssl-dev libssl-dev libexpat-dev gettext &&
export jobname=StaticAnalysis &&
@@ -374,7 +532,7 @@ jobs:
test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/test-cache gitfileshare "$GITFILESHAREPWD" "$HOME/test-cache" || exit 1
sudo apt-get update &&
- sudo apt-get install -y asciidoc xmlto asciidoctor &&
+ sudo apt-get install -y asciidoc xmlto asciidoctor docbook-xsl-ns &&
export ALREADY_HAVE_ASCIIDOCTOR=yes. &&
export jobname=Documentation &&
diff --git a/banned.h b/banned.h
index 447af24..60a18d4 100644
--- a/banned.h
+++ b/banned.h
@@ -26,7 +26,7 @@
#define vsprintf(...) BANNED(vsprintf)
#else
#define sprintf(buf,fmt,arg) BANNED(sprintf)
-#define vsprintf(buf,fmt,arg) BANNED(sprintf)
+#define vsprintf(buf,fmt,arg) BANNED(vsprintf)
#endif
#endif /* BANNED_H */
diff --git a/bisect.c b/bisect.c
index e87ac29..e81c91d 100644
--- a/bisect.c
+++ b/bisect.c
@@ -707,7 +707,7 @@ static int bisect_checkout(const struct object_id *bisect_rev, int no_checkout)
{
char bisect_rev_hex[GIT_MAX_HEXSZ + 1];
- memcpy(bisect_rev_hex, oid_to_hex(bisect_rev), GIT_SHA1_HEXSZ + 1);
+ memcpy(bisect_rev_hex, oid_to_hex(bisect_rev), the_hash_algo->hexsz + 1);
update_ref(NULL, "BISECT_EXPECTED_REV", bisect_rev, NULL, 0, UPDATE_REFS_DIE_ON_ERR);
argv_checkout[2] = bisect_rev_hex;
diff --git a/blame.c b/blame.c
index 36a2e7e..29770e5 100644
--- a/blame.c
+++ b/blame.c
@@ -144,7 +144,7 @@ static void append_merge_parents(struct repository *r,
while (!strbuf_getwholeline_fd(&line, merge_head, '\n')) {
struct object_id oid;
- if (line.len < GIT_SHA1_HEXSZ || get_oid_hex(line.buf, &oid))
+ if (get_oid_hex(line.buf, &oid))
die("unknown line in '%s': %s",
git_path_merge_head(r), line.buf);
tail = append_parent(r, tail, &oid);
@@ -417,14 +417,15 @@ static void get_fingerprint(struct fingerprint *result,
/* Ignore whitespace pairs */
if (hash == 0)
continue;
- hashmap_entry_init(entry, hash);
+ hashmap_entry_init(&entry->entry, hash);
- found_entry = hashmap_get(&result->map, entry, NULL);
+ found_entry = hashmap_get_entry(&result->map, entry,
+ /* member name */ entry, NULL);
if (found_entry) {
found_entry->count += 1;
} else {
entry->count = 1;
- hashmap_add(&result->map, entry);
+ hashmap_add(&result->map, &entry->entry);
++entry;
}
}
@@ -432,7 +433,7 @@ static void get_fingerprint(struct fingerprint *result,
static void free_fingerprint(struct fingerprint *f)
{
- hashmap_free(&f->map, 0);
+ hashmap_free(&f->map);
free(f->entries);
}
@@ -449,10 +450,10 @@ static int fingerprint_similarity(struct fingerprint *a, struct fingerprint *b)
struct hashmap_iter iter;
const struct fingerprint_entry *entry_a, *entry_b;
- hashmap_iter_init(&b->map, &iter);
-
- while ((entry_b = hashmap_iter_next(&iter))) {
- if ((entry_a = hashmap_get(&a->map, entry_b, NULL))) {
+ hashmap_for_each_entry(&b->map, &iter, entry_b,
+ entry /* member name */) {
+ entry_a = hashmap_get_entry(&a->map, entry_b, entry, NULL);
+ if (entry_a) {
intersection += entry_a->count < entry_b->count ?
entry_a->count : entry_b->count;
}
@@ -470,10 +471,12 @@ static void fingerprint_subtract(struct fingerprint *a, struct fingerprint *b)
hashmap_iter_init(&b->map, &iter);
- while ((entry_b = hashmap_iter_next(&iter))) {
- if ((entry_a = hashmap_get(&a->map, entry_b, NULL))) {
+ hashmap_for_each_entry(&b->map, &iter, entry_b,
+ entry /* member name */) {
+ entry_a = hashmap_get_entry(&a->map, entry_b, entry, NULL);
+ if (entry_a) {
if (entry_a->count <= entry_b->count)
- hashmap_remove(&a->map, entry_b, NULL);
+ hashmap_remove(&a->map, &entry_b->entry, NULL);
else
entry_a->count -= entry_b->count;
}
diff --git a/builtin/am.c b/builtin/am.c
index 1aea657..8181c2a 100644
--- a/builtin/am.c
+++ b/builtin/am.c
@@ -24,7 +24,6 @@
#include "sequencer.h"
#include "revision.h"
#include "merge-recursive.h"
-#include "revision.h"
#include "log-tree.h"
#include "notes-utils.h"
#include "rerere.h"
@@ -1072,19 +1071,6 @@ static const char *msgnum(const struct am_state *state)
}
/**
- * Refresh and write index.
- */
-static void refresh_and_write_cache(void)
-{
- struct lock_file lock_file = LOCK_INIT;
-
- hold_locked_index(&lock_file, LOCK_DIE_ON_ERROR);
- refresh_cache(REFRESH_QUIET);
- if (write_locked_index(&the_index, &lock_file, COMMIT_LOCK))
- die(_("unable to write index file"));
-}
-
-/**
* Dies with a user-friendly message on how to proceed after resolving the
* problem. This message can be overridden with state->resolvemsg.
*/
@@ -1272,7 +1258,9 @@ static void get_commit_info(struct am_state *state, struct commit *commit)
buffer = logmsg_reencode(commit, NULL, get_commit_output_encoding());
ident_line = find_commit_header(buffer, "author", &ident_len);
-
+ if (!ident_line)
+ die(_("missing author line in commit %s"),
+ oid_to_hex(&commit->object.oid));
if (split_ident_line(&id, ident_line, ident_len) < 0)
die(_("invalid ident line: %.*s"), (int)ident_len, ident_line);
@@ -1538,7 +1526,7 @@ static int fall_back_threeway(const struct am_state *state, const char *index_pa
o.branch1 = "HEAD";
their_tree_name = xstrfmt("%.*s", linelen(state->msg), state->msg);
o.branch2 = their_tree_name;
- o.detect_directory_renames = 0;
+ o.detect_directory_renames = MERGE_DIRECTORY_RENAMES_NONE;
if (state->quiet)
o.verbosity = 0;
@@ -1703,7 +1691,8 @@ static void am_run(struct am_state *state, int resume)
unlink(am_path(state, "dirtyindex"));
- refresh_and_write_cache();
+ if (refresh_and_write_cache(REFRESH_QUIET, 0, 0) < 0)
+ die(_("unable to write index file"));
if (repo_index_has_changes(the_repository, NULL, &sb)) {
write_state_bool(state, "dirtyindex", 1);
diff --git a/builtin/blame.c b/builtin/blame.c
index b6534d4..e946ba6 100644
--- a/builtin/blame.c
+++ b/builtin/blame.c
@@ -26,7 +26,6 @@
#include "progress.h"
#include "object-store.h"
#include "blame.h"
-#include "string-list.h"
#include "refs.h"
static char blame_usage[] = N_("git blame [<options>] [<rev-opts>] [<rev>] [--] <file>");
@@ -460,7 +459,7 @@ static void emit_other(struct blame_scoreboard *sb, struct blame_entry *ent, int
for (cnt = 0; cnt < ent->num_lines; cnt++) {
char ch;
- int length = (opt & OUTPUT_LONG_OBJECT_NAME) ? GIT_SHA1_HEXSZ : abbrev;
+ int length = (opt & OUTPUT_LONG_OBJECT_NAME) ? the_hash_algo->hexsz : abbrev;
if (opt & OUTPUT_COLOR_LINE) {
if (cnt > 0) {
@@ -885,6 +884,7 @@ int cmd_blame(int argc, const char **argv, const char *prefix)
struct range_set ranges;
unsigned int range_i;
long anchor;
+ const int hexsz = the_hash_algo->hexsz;
setup_default_color_by_age();
git_config(git_blame_config, &output_option);
@@ -931,11 +931,11 @@ parse_done:
} else if (show_progress < 0)
show_progress = isatty(2);
- if (0 < abbrev && abbrev < GIT_SHA1_HEXSZ)
+ if (0 < abbrev && abbrev < hexsz)
/* one more abbrev length is needed for the boundary commit */
abbrev++;
else if (!abbrev)
- abbrev = GIT_SHA1_HEXSZ;
+ abbrev = hexsz;
if (revs_file && read_ancestry(revs_file))
die_errno("reading graft file '%s' failed", revs_file);
diff --git a/builtin/cat-file.c b/builtin/cat-file.c
index 995d47c..d6a1aa7 100644
--- a/builtin/cat-file.c
+++ b/builtin/cat-file.c
@@ -15,6 +15,7 @@
#include "sha1-array.h"
#include "packfile.h"
#include "object-store.h"
+#include "promisor-remote.h"
struct batch_options {
int enabled;
@@ -524,8 +525,8 @@ static int batch_objects(struct batch_options *opt)
if (opt->all_objects) {
struct object_cb_data cb;
- if (repository_format_partial_clone)
- warning("This repository has extensions.partialClone set. Some objects may not be loaded.");
+ if (has_promisor_remote())
+ warning("This repository uses promisor remotes. Some objects may not be loaded.");
cb.opt = opt;
cb.expand = &data;
diff --git a/builtin/check-ignore.c b/builtin/check-ignore.c
index 5990973..5a4f923 100644
--- a/builtin/check-ignore.c
+++ b/builtin/check-ignore.c
@@ -32,19 +32,19 @@ static const struct option check_ignore_options[] = {
OPT_END()
};
-static void output_exclude(const char *path, struct exclude *exclude)
+static void output_pattern(const char *path, struct path_pattern *pattern)
{
- char *bang = (exclude && exclude->flags & EXC_FLAG_NEGATIVE) ? "!" : "";
- char *slash = (exclude && exclude->flags & EXC_FLAG_MUSTBEDIR) ? "/" : "";
+ char *bang = (pattern && pattern->flags & PATTERN_FLAG_NEGATIVE) ? "!" : "";
+ char *slash = (pattern && pattern->flags & PATTERN_FLAG_MUSTBEDIR) ? "/" : "";
if (!nul_term_line) {
if (!verbose) {
write_name_quoted(path, stdout, '\n');
} else {
- if (exclude) {
- quote_c_style(exclude->el->src, NULL, stdout, 0);
+ if (pattern) {
+ quote_c_style(pattern->pl->src, NULL, stdout, 0);
printf(":%d:%s%s%s\t",
- exclude->srcpos,
- bang, exclude->pattern, slash);
+ pattern->srcpos,
+ bang, pattern->pattern, slash);
}
else {
printf("::\t");
@@ -56,11 +56,11 @@ static void output_exclude(const char *path, struct exclude *exclude)
if (!verbose) {
printf("%s%c", path, '\0');
} else {
- if (exclude)
+ if (pattern)
printf("%s%c%d%c%s%s%s%c%s%c",
- exclude->el->src, '\0',
- exclude->srcpos, '\0',
- bang, exclude->pattern, slash, '\0',
+ pattern->pl->src, '\0',
+ pattern->srcpos, '\0',
+ bang, pattern->pattern, slash, '\0',
path, '\0');
else
printf("%c%c%c%s%c", '\0', '\0', '\0', path, '\0');
@@ -74,7 +74,7 @@ static int check_ignore(struct dir_struct *dir,
const char *full_path;
char *seen;
int num_ignored = 0, i;
- struct exclude *exclude;
+ struct path_pattern *pattern;
struct pathspec pathspec;
if (!argc) {
@@ -103,15 +103,15 @@ static int check_ignore(struct dir_struct *dir,
seen = find_pathspecs_matching_against_index(&pathspec, &the_index);
for (i = 0; i < pathspec.nr; i++) {
full_path = pathspec.items[i].match;
- exclude = NULL;
+ pattern = NULL;
if (!seen[i]) {
int dtype = DT_UNKNOWN;
- exclude = last_exclude_matching(dir, &the_index,
+ pattern = last_matching_pattern(dir, &the_index,
full_path, &dtype);
}
- if (!quiet && (exclude || show_non_matching))
- output_exclude(pathspec.items[i].original, exclude);
- if (exclude)
+ if (!quiet && (pattern || show_non_matching))
+ output_pattern(pathspec.items[i].original, pattern);
+ if (pattern)
num_ignored++;
}
free(seen);
diff --git a/builtin/checkout.c b/builtin/checkout.c
index 6123f73..3634a3d 100644
--- a/builtin/checkout.c
+++ b/builtin/checkout.c
@@ -126,6 +126,7 @@ static int update_some(const struct object_id *oid, struct strbuf *base,
if (pos >= 0) {
struct cache_entry *old = active_cache[pos];
if (ce->ce_mode == old->ce_mode &&
+ !ce_intent_to_add(old) &&
oideq(&ce->oid, &old->oid)) {
old->ce_flags |= CE_UPDATE;
discard_cache_entry(ce);
@@ -708,11 +709,11 @@ static int merge_working_tree(const struct checkout_opts *opts,
* give up or do a real merge, depending on
* whether the merge flag was used.
*/
- struct tree *result;
struct tree *work;
struct tree *old_tree;
struct merge_options o;
struct strbuf sb = STRBUF_INIT;
+ struct strbuf old_commit_shortname = STRBUF_INIT;
if (!opts->merge)
return 1;
@@ -730,13 +731,6 @@ static int merge_working_tree(const struct checkout_opts *opts,
"the following files:\n%s"), sb.buf);
strbuf_release(&sb);
- if (repo_index_has_changes(the_repository,
- get_commit_tree(old_branch_info->commit),
- &sb))
- warning(_("staged changes in the following files may be lost: %s"),
- sb.buf);
- strbuf_release(&sb);
-
/* Do more real merge */
/*
@@ -760,7 +754,7 @@ static int merge_working_tree(const struct checkout_opts *opts,
*/
init_merge_options(&o, the_repository);
o.verbosity = 0;
- work = write_tree_from_memory(&o);
+ work = write_in_core_index_as_tree(the_repository);
ret = reset_tree(new_tree,
opts, 1,
@@ -768,19 +762,25 @@ static int merge_working_tree(const struct checkout_opts *opts,
if (ret)
return ret;
o.ancestor = old_branch_info->name;
+ if (old_branch_info->name == NULL) {
+ strbuf_add_unique_abbrev(&old_commit_shortname,
+ &old_branch_info->commit->object.oid,
+ DEFAULT_ABBREV);
+ o.ancestor = old_commit_shortname.buf;
+ }
o.branch1 = new_branch_info->name;
o.branch2 = "local";
ret = merge_trees(&o,
new_tree,
work,
- old_tree,
- &result);
+ old_tree);
if (ret < 0)
exit(128);
ret = reset_tree(new_tree,
opts, 0,
writeout_error);
strbuf_release(&o.obuf);
+ strbuf_release(&old_commit_shortname);
if (ret)
return ret;
}
@@ -1714,6 +1714,15 @@ int cmd_checkout(int argc, const char **argv, const char *prefix)
opts.checkout_index = -2; /* default on */
opts.checkout_worktree = -2; /* default on */
+ if (argc == 3 && !strcmp(argv[1], "-b")) {
+ /*
+ * User ran 'git checkout -b <branch>' and expects
+ * the same behavior as 'git switch -c <branch>'.
+ */
+ opts.switch_branch_doing_nothing_is_ok = 0;
+ opts.only_merge_on_switching_branches = 1;
+ }
+
options = parse_options_dup(checkout_options);
options = add_common_options(&opts, options);
options = add_common_switch_branch_options(&opts, options);
diff --git a/builtin/clean.c b/builtin/clean.c
index d5579da..5abf087 100644
--- a/builtin/clean.c
+++ b/builtin/clean.c
@@ -158,7 +158,8 @@ static int remove_dirs(struct strbuf *path, const char *prefix, int force_flag,
*dir_gone = 1;
- if ((force_flag & REMOVE_DIR_KEEP_NESTED_GIT) && is_nonbare_repository_dir(path)) {
+ if ((force_flag & REMOVE_DIR_KEEP_NESTED_GIT) &&
+ is_nonbare_repository_dir(path)) {
if (!quiet) {
quote_path_relative(path->buf, prefix, &quoted);
printf(dry_run ? _(msg_would_skip_git_dir) : _(msg_skip_git_dir),
@@ -648,7 +649,7 @@ static int filter_by_patterns_cmd(void)
struct strbuf confirm = STRBUF_INIT;
struct strbuf **ignore_list;
struct string_list_item *item;
- struct exclude_list *el;
+ struct pattern_list *pl;
int changed = -1, i;
for (;;) {
@@ -671,7 +672,7 @@ static int filter_by_patterns_cmd(void)
break;
memset(&dir, 0, sizeof(dir));
- el = add_exclude_list(&dir, EXC_CMDL, "manual exclude");
+ pl = add_pattern_list(&dir, EXC_CMDL, "manual exclude");
ignore_list = strbuf_split_max(&confirm, ' ', 0);
for (i = 0; ignore_list[i]; i++) {
@@ -679,7 +680,7 @@ static int filter_by_patterns_cmd(void)
if (!ignore_list[i]->len)
continue;
- add_exclude(ignore_list[i]->buf, "", 0, el, -(i+1));
+ add_pattern(ignore_list[i]->buf, "", 0, pl, -(i+1));
}
changed = 0;
@@ -901,7 +902,7 @@ int cmd_clean(int argc, const char **argv, const char *prefix)
struct pathspec pathspec;
struct strbuf buf = STRBUF_INIT;
struct string_list exclude_list = STRING_LIST_INIT_NODUP;
- struct exclude_list *el;
+ struct pattern_list *pl;
struct string_list_item *item;
const char *qname;
struct option options[] = {
@@ -946,9 +947,19 @@ int cmd_clean(int argc, const char **argv, const char *prefix)
if (force > 1)
rm_flags = 0;
+ else
+ dir.flags |= DIR_SKIP_NESTED_GIT;
dir.flags |= DIR_SHOW_OTHER_DIRECTORIES;
+ if (argc) {
+ /*
+ * Remaining args implies pathspecs specified, and we should
+ * recurse within those.
+ */
+ remove_directories = 1;
+ }
+
if (remove_directories)
dir.flags |= DIR_SHOW_IGNORED_TOO | DIR_KEEP_UNTRACKED_CONTENTS;
@@ -958,9 +969,9 @@ int cmd_clean(int argc, const char **argv, const char *prefix)
if (!ignored)
setup_standard_excludes(&dir);
- el = add_exclude_list(&dir, EXC_CMDL, "--exclude option");
+ pl = add_pattern_list(&dir, EXC_CMDL, "--exclude option");
for (i = 0; i < exclude_list.nr; i++)
- add_exclude(exclude_list.items[i].string, "", 0, el, -(i+1));
+ add_pattern(exclude_list.items[i].string, "", 0, pl, -(i+1));
parse_pathspec(&pathspec, 0,
PATHSPEC_PREFER_CWD,
@@ -1007,6 +1018,7 @@ int cmd_clean(int argc, const char **argv, const char *prefix)
for_each_string_list_item(item, &del_list) {
struct stat st;
+ strbuf_reset(&abs_path);
if (prefix)
strbuf_addstr(&abs_path, prefix);
@@ -1040,7 +1052,6 @@ int cmd_clean(int argc, const char **argv, const char *prefix)
printf(dry_run ? _(msg_would_remove) : _(msg_remove), qname);
}
}
- strbuf_reset(&abs_path);
}
strbuf_release(&abs_path);
diff --git a/builtin/clone.c b/builtin/clone.c
index f665b28..c46ee29 100644
--- a/builtin/clone.c
+++ b/builtin/clone.c
@@ -32,7 +32,6 @@
#include "connected.h"
#include "packfile.h"
#include "list-objects-filter-options.h"
-#include "object-store.h"
/*
* Overall FIXMEs:
@@ -785,7 +784,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", sha1_to_hex(null_sha1),
+ err |= run_hook_le(NULL, "post-checkout", oid_to_hex(&null_oid),
oid_to_hex(&oid), "1", NULL);
if (!err && (option_recurse_submodules.nr > 0)) {
@@ -1160,13 +1159,11 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
transport->server_options = &server_options;
if (filter_options.choice) {
- struct strbuf expanded_filter_spec = STRBUF_INIT;
- expand_list_objects_filter_spec(&filter_options,
- &expanded_filter_spec);
+ const char *spec =
+ expand_list_objects_filter_spec(&filter_options);
transport_set_option(transport, TRANS_OPT_LIST_OBJECTS_FILTER,
- expanded_filter_spec.buf);
+ spec);
transport_set_option(transport, TRANS_OPT_FROM_PROMISOR, "1");
- strbuf_release(&expanded_filter_spec);
}
if (transport->smart_options && !deepen && !filter_options.choice)
diff --git a/builtin/commit-graph.c b/builtin/commit-graph.c
index 38027b8..addc8d4 100644
--- a/builtin/commit-graph.c
+++ b/builtin/commit-graph.c
@@ -10,13 +10,13 @@
static char const * const builtin_commit_graph_usage[] = {
N_("git commit-graph [--object-dir <objdir>]"),
N_("git commit-graph read [--object-dir <objdir>]"),
- N_("git commit-graph verify [--object-dir <objdir>] [--shallow]"),
- N_("git commit-graph write [--object-dir <objdir>] [--append|--split] [--reachable|--stdin-packs|--stdin-commits] <split options>"),
+ N_("git commit-graph verify [--object-dir <objdir>] [--shallow] [--[no-]progress]"),
+ N_("git commit-graph write [--object-dir <objdir>] [--append|--split] [--reachable|--stdin-packs|--stdin-commits] [--[no-]progress] <split options>"),
NULL
};
static const char * const builtin_commit_graph_verify_usage[] = {
- N_("git commit-graph verify [--object-dir <objdir>] [--shallow]"),
+ N_("git commit-graph verify [--object-dir <objdir>] [--shallow] [--[no-]progress]"),
NULL
};
@@ -26,7 +26,7 @@ static const char * const builtin_commit_graph_read_usage[] = {
};
static const char * const builtin_commit_graph_write_usage[] = {
- N_("git commit-graph write [--object-dir <objdir>] [--append|--split] [--reachable|--stdin-packs|--stdin-commits] <split options>"),
+ N_("git commit-graph write [--object-dir <objdir>] [--append|--split] [--reachable|--stdin-packs|--stdin-commits] [--[no-]progress] <split options>"),
NULL
};
@@ -38,6 +38,7 @@ static struct opts_commit_graph {
int append;
int split;
int shallow;
+ int progress;
} opts;
static int graph_verify(int argc, const char **argv)
@@ -55,9 +56,13 @@ static int graph_verify(int argc, const char **argv)
N_("The object directory to store the graph")),
OPT_BOOL(0, "shallow", &opts.shallow,
N_("if the commit-graph is split, only verify the tip file")),
+ OPT_BOOL(0, "progress", &opts.progress, N_("force progress reporting")),
OPT_END(),
};
+ trace2_cmd_mode("verify");
+
+ opts.progress = isatty(2);
argc = parse_options(argc, argv, NULL,
builtin_commit_graph_verify_options,
builtin_commit_graph_verify_usage, 0);
@@ -66,6 +71,8 @@ static int graph_verify(int argc, const char **argv)
opts.obj_dir = get_object_directory();
if (opts.shallow)
flags |= COMMIT_GRAPH_VERIFY_SHALLOW;
+ if (opts.progress)
+ flags |= COMMIT_GRAPH_WRITE_PROGRESS;
graph_name = get_commit_graph_filename(opts.obj_dir);
open_ok = open_commit_graph(graph_name, &fd, &st);
@@ -102,6 +109,8 @@ static int graph_read(int argc, const char **argv)
OPT_END(),
};
+ trace2_cmd_mode("read");
+
argc = parse_options(argc, argv, NULL,
builtin_commit_graph_read_options,
builtin_commit_graph_read_usage, 0);
@@ -154,7 +163,7 @@ static int graph_write(int argc, const char **argv)
struct string_list *commit_hex = NULL;
struct string_list lines;
int result = 0;
- unsigned int flags = COMMIT_GRAPH_PROGRESS;
+ enum commit_graph_write_flags flags = 0;
static struct option builtin_commit_graph_write_options[] = {
OPT_STRING(0, "object-dir", &opts.obj_dir,
@@ -168,6 +177,7 @@ static int graph_write(int argc, const char **argv)
N_("start walk at commits listed by stdin")),
OPT_BOOL(0, "append", &opts.append,
N_("include all commits already in the commit-graph file")),
+ OPT_BOOL(0, "progress", &opts.progress, N_("force progress reporting")),
OPT_BOOL(0, "split", &opts.split,
N_("allow writing an incremental commit-graph file")),
OPT_INTEGER(0, "max-commits", &split_opts.max_commits,
@@ -179,10 +189,13 @@ static int graph_write(int argc, const char **argv)
OPT_END(),
};
+ opts.progress = isatty(2);
split_opts.size_multiple = 2;
split_opts.max_commits = 0;
split_opts.expire_time = 0;
+ trace2_cmd_mode("write");
+
argc = parse_options(argc, argv, NULL,
builtin_commit_graph_write_options,
builtin_commit_graph_write_usage, 0);
@@ -192,9 +205,11 @@ static int graph_write(int argc, const char **argv)
if (!opts.obj_dir)
opts.obj_dir = get_object_directory();
if (opts.append)
- flags |= COMMIT_GRAPH_APPEND;
+ flags |= COMMIT_GRAPH_WRITE_APPEND;
if (opts.split)
- flags |= COMMIT_GRAPH_SPLIT;
+ flags |= COMMIT_GRAPH_WRITE_SPLIT;
+ if (opts.progress)
+ flags |= COMMIT_GRAPH_WRITE_PROGRESS;
read_replace_refs = 0;
@@ -213,8 +228,10 @@ static int graph_write(int argc, const char **argv)
if (opts.stdin_packs)
pack_indexes = &lines;
- if (opts.stdin_commits)
+ if (opts.stdin_commits) {
commit_hex = &lines;
+ flags |= COMMIT_GRAPH_WRITE_CHECK_OIDS;
+ }
UNLEAK(buf);
}
@@ -249,6 +266,8 @@ int cmd_commit_graph(int argc, const char **argv, const char *prefix)
builtin_commit_graph_usage,
PARSE_OPT_STOP_AT_NON_OPTION);
+ save_commit_buffer = 0;
+
if (argc > 0) {
if (!strcmp(argv[0], "read"))
return graph_read(argc, argv);
diff --git a/builtin/commit.c b/builtin/commit.c
index ae7aaf6..e588bc6 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -510,7 +510,7 @@ static int run_status(FILE *fp, const char *index_file, const char *prefix, int
s->nowarn = nowarn;
s->is_initial = get_oid(s->reference, &oid) ? 1 : 0;
if (!s->is_initial)
- hashcpy(s->sha1_commit, oid.hash);
+ oidcpy(&s->oid_commit, &oid);
s->status_format = status_format;
s->ignore_submodule_arg = ignore_submodule_arg;
@@ -1406,7 +1406,7 @@ int cmd_status(int argc, const char **argv, const char *prefix)
s.is_initial = get_oid(s.reference, &oid) ? 1 : 0;
if (!s.is_initial)
- hashcpy(s.sha1_commit, oid.hash);
+ oidcpy(&s.oid_commit, &oid);
s.ignore_submodule_arg = ignore_submodule_arg;
s.status_format = status_format;
diff --git a/builtin/describe.c b/builtin/describe.c
index 2001542..b6df81d 100644
--- a/builtin/describe.c
+++ b/builtin/describe.c
@@ -15,7 +15,6 @@
#include "argv-array.h"
#include "run-command.h"
#include "object-store.h"
-#include "revision.h"
#include "list-objects.h"
#include "commit-slab.h"
@@ -64,19 +63,22 @@ static const char *prio_names[] = {
};
static int commit_name_neq(const void *unused_cmp_data,
- const void *entry,
- const void *entry_or_key,
+ const struct hashmap_entry *eptr,
+ const struct hashmap_entry *entry_or_key,
const void *peeled)
{
- const struct commit_name *cn1 = entry;
- const struct commit_name *cn2 = entry_or_key;
+ const struct commit_name *cn1, *cn2;
+
+ cn1 = container_of(eptr, const struct commit_name, entry);
+ cn2 = container_of(entry_or_key, const struct commit_name, entry);
return !oideq(&cn1->peeled, peeled ? peeled : &cn2->peeled);
}
static inline struct commit_name *find_commit_name(const struct object_id *peeled)
{
- return hashmap_get_from_hash(&names, oidhash(peeled), peeled);
+ return hashmap_get_entry_from_hash(&names, oidhash(peeled), peeled,
+ struct commit_name, entry);
}
static int replace_name(struct commit_name *e,
@@ -123,8 +125,8 @@ static void add_to_known_names(const char *path,
if (!e) {
e = xmalloc(sizeof(struct commit_name));
oidcpy(&e->peeled, peeled);
- hashmap_entry_init(e, oidhash(peeled));
- hashmap_add(&names, e);
+ hashmap_entry_init(&e->entry, oidhash(peeled));
+ hashmap_add(&names, &e->entry);
e->path = NULL;
}
e->tag = tag;
@@ -313,7 +315,7 @@ static void describe_commit(struct object_id *oid, struct strbuf *dst)
*/
append_name(n, dst);
if (longformat)
- append_suffix(0, n->tag ? &n->tag->tagged->oid : oid, dst);
+ append_suffix(0, n->tag ? get_tagged_oid(n->tag) : oid, dst);
if (suffix)
strbuf_addstr(dst, suffix);
return;
@@ -330,8 +332,8 @@ static void describe_commit(struct object_id *oid, struct strbuf *dst)
struct commit_name *n;
init_commit_names(&commit_names);
- n = hashmap_iter_first(&names, &iter);
- for (; n; n = hashmap_iter_next(&iter)) {
+ hashmap_for_each_entry(&names, &iter, n,
+ entry /* member name */) {
c = lookup_commit_reference_gently(the_repository,
&n->peeled, 1);
if (c)
diff --git a/builtin/difftool.c b/builtin/difftool.c
index 16eb8b7..c280e68 100644
--- a/builtin/difftool.c
+++ b/builtin/difftool.c
@@ -125,12 +125,15 @@ struct working_tree_entry {
};
static int working_tree_entry_cmp(const void *unused_cmp_data,
- const void *entry,
- const void *entry_or_key,
+ const struct hashmap_entry *eptr,
+ const struct hashmap_entry *entry_or_key,
const void *unused_keydata)
{
- const struct working_tree_entry *a = entry;
- const struct working_tree_entry *b = entry_or_key;
+ const struct working_tree_entry *a, *b;
+
+ a = container_of(eptr, const struct working_tree_entry, entry);
+ b = container_of(entry_or_key, const struct working_tree_entry, entry);
+
return strcmp(a->path, b->path);
}
@@ -145,12 +148,14 @@ struct pair_entry {
};
static int pair_cmp(const void *unused_cmp_data,
- const void *entry,
- const void *entry_or_key,
+ const struct hashmap_entry *eptr,
+ const struct hashmap_entry *entry_or_key,
const void *unused_keydata)
{
- const struct pair_entry *a = entry;
- const struct pair_entry *b = entry_or_key;
+ const struct pair_entry *a, *b;
+
+ a = container_of(eptr, const struct pair_entry, entry);
+ b = container_of(entry_or_key, const struct pair_entry, entry);
return strcmp(a->path, b->path);
}
@@ -161,14 +166,14 @@ static void add_left_or_right(struct hashmap *map, const char *path,
struct pair_entry *e, *existing;
FLEX_ALLOC_STR(e, path, path);
- hashmap_entry_init(e, strhash(path));
- existing = hashmap_get(map, e, NULL);
+ hashmap_entry_init(&e->entry, strhash(path));
+ existing = hashmap_get_entry(map, e, entry, NULL);
if (existing) {
free(e);
e = existing;
} else {
e->left[0] = e->right[0] = '\0';
- hashmap_add(map, e);
+ hashmap_add(map, &e->entry);
}
strlcpy(is_right ? e->right : e->left, content, PATH_MAX);
}
@@ -179,12 +184,14 @@ struct path_entry {
};
static int path_entry_cmp(const void *unused_cmp_data,
- const void *entry,
- const void *entry_or_key,
+ const struct hashmap_entry *eptr,
+ const struct hashmap_entry *entry_or_key,
const void *key)
{
- const struct path_entry *a = entry;
- const struct path_entry *b = entry_or_key;
+ const struct path_entry *a, *b;
+
+ a = container_of(eptr, const struct path_entry, entry);
+ b = container_of(entry_or_key, const struct path_entry, entry);
return strcmp(a->path, key ? key : b->path);
}
@@ -234,8 +241,8 @@ static void changed_files(struct hashmap *result, const char *index_path,
while (!strbuf_getline_nul(&buf, fp)) {
struct path_entry *entry;
FLEX_ALLOC_STR(entry, path, buf.buf);
- hashmap_entry_init(entry, strhash(buf.buf));
- hashmap_add(result, entry);
+ hashmap_entry_init(&entry->entry, strhash(buf.buf));
+ hashmap_add(result, &entry->entry);
}
fclose(fp);
if (finish_command(&diff_files))
@@ -461,12 +468,13 @@ static int run_dir_diff(const char *extcmd, int symlinks, const char *prefix,
/* Avoid duplicate working_tree entries */
FLEX_ALLOC_STR(entry, path, dst_path);
- hashmap_entry_init(entry, strhash(dst_path));
- if (hashmap_get(&working_tree_dups, entry, NULL)) {
+ hashmap_entry_init(&entry->entry, strhash(dst_path));
+ if (hashmap_get(&working_tree_dups, &entry->entry,
+ NULL)) {
free(entry);
continue;
}
- hashmap_add(&working_tree_dups, entry);
+ hashmap_add(&working_tree_dups, &entry->entry);
if (!use_wt_file(workdir, dst_path, &roid)) {
if (checkout_path(rmode, &roid, dst_path,
@@ -530,8 +538,8 @@ static int run_dir_diff(const char *extcmd, int symlinks, const char *prefix,
* temporary file to both the left and right directories to show the
* change in the recorded SHA1 for the submodule.
*/
- hashmap_iter_init(&submodules, &iter);
- while ((entry = hashmap_iter_next(&iter))) {
+ hashmap_for_each_entry(&submodules, &iter, entry,
+ entry /* member name */) {
if (*entry->left) {
add_path(&ldir, ldir_len, entry->path);
ensure_leading_directories(ldir.buf);
@@ -549,8 +557,8 @@ static int run_dir_diff(const char *extcmd, int symlinks, const char *prefix,
* shows only the link itself, not the contents of the link target.
* This loop replicates that behavior.
*/
- hashmap_iter_init(&symlinks2, &iter);
- while ((entry = hashmap_iter_next(&iter))) {
+ hashmap_for_each_entry(&symlinks2, &iter, entry,
+ entry /* member name */) {
if (*entry->left) {
add_path(&ldir, ldir_len, entry->path);
ensure_leading_directories(ldir.buf);
diff --git a/builtin/fast-export.c b/builtin/fast-export.c
index f541f55..dbec4df 100644
--- a/builtin/fast-export.c
+++ b/builtin/fast-export.c
@@ -40,6 +40,7 @@ static int no_data;
static int full_tree;
static int reference_excluded_commits;
static int show_original_ids;
+static int mark_tags;
static struct string_list extra_refs = STRING_LIST_INIT_NODUP;
static struct string_list tag_refs = STRING_LIST_INIT_NODUP;
static struct refspec refspecs = REFSPEC_INIT_FETCH;
@@ -126,10 +127,15 @@ struct anonymized_entry {
};
static int anonymized_entry_cmp(const void *unused_cmp_data,
- const void *va, const void *vb,
+ const struct hashmap_entry *eptr,
+ const struct hashmap_entry *entry_or_key,
const void *unused_keydata)
{
- const struct anonymized_entry *a = va, *b = vb;
+ const struct anonymized_entry *a, *b;
+
+ a = container_of(eptr, const struct anonymized_entry, hash);
+ b = container_of(entry_or_key, const struct anonymized_entry, hash);
+
return a->orig_len != b->orig_len ||
memcmp(a->orig, b->orig, a->orig_len);
}
@@ -148,10 +154,10 @@ static const void *anonymize_mem(struct hashmap *map,
if (!map->cmpfn)
hashmap_init(map, anonymized_entry_cmp, NULL, 0);
- hashmap_entry_init(&key, memhash(orig, *len));
+ hashmap_entry_init(&key.hash, memhash(orig, *len));
key.orig = orig;
key.orig_len = *len;
- ret = hashmap_get(map, &key, NULL);
+ ret = hashmap_get_entry(map, &key, hash, NULL);
if (!ret) {
ret = xmalloc(sizeof(*ret));
@@ -160,7 +166,7 @@ static const void *anonymize_mem(struct hashmap *map,
ret->orig_len = *len;
ret->anon = generate(orig, len);
ret->anon_len = *len;
- hashmap_put(map, ret);
+ hashmap_put(map, &ret->hash);
}
*len = ret->anon_len;
@@ -842,25 +848,40 @@ static void handle_tag(const char *name, struct tag *tag)
free(buf);
return;
case REWRITE:
- if (tagged->type != OBJ_COMMIT) {
- die("tag %s tags unexported %s!",
- oid_to_hex(&tag->object.oid),
- type_name(tagged->type));
- }
- p = rewrite_commit((struct commit *)tagged);
- if (!p) {
- printf("reset %s\nfrom %s\n\n",
- name, oid_to_hex(&null_oid));
- free(buf);
- return;
+ if (tagged->type == OBJ_TAG && !mark_tags) {
+ die(_("Error: Cannot export nested tags unless --mark-tags is specified."));
+ } else if (tagged->type == OBJ_COMMIT) {
+ p = rewrite_commit((struct commit *)tagged);
+ if (!p) {
+ printf("reset %s\nfrom %s\n\n",
+ name, oid_to_hex(&null_oid));
+ free(buf);
+ return;
+ }
+ tagged_mark = get_object_mark(&p->object);
+ } else {
+ /* tagged->type is either OBJ_BLOB or OBJ_TAG */
+ tagged_mark = get_object_mark(tagged);
}
- tagged_mark = get_object_mark(&p->object);
}
}
+ if (tagged->type == OBJ_TAG) {
+ printf("reset %s\nfrom %s\n\n",
+ name, oid_to_hex(&null_oid));
+ }
if (starts_with(name, "refs/tags/"))
name += 10;
- printf("tag %s\nfrom :%d\n", name, tagged_mark);
+ printf("tag %s\n", name);
+ if (mark_tags) {
+ mark_next_object(&tag->object);
+ printf("mark :%"PRIu32"\n", last_idnum);
+ }
+ if (tagged_mark)
+ printf("from :%d\n", tagged_mark);
+ else
+ printf("from %s\n", oid_to_hex(&tagged->oid));
+
if (show_original_ids)
printf("original-oid %s\n", oid_to_hex(&tag->object.oid));
printf("%.*s%sdata %d\n%.*s\n",
@@ -1047,11 +1068,16 @@ static void export_marks(char *file)
error("Unable to write marks file %s.", file);
}
-static void import_marks(char *input_file)
+static void import_marks(char *input_file, int check_exists)
{
char line[512];
- FILE *f = xfopen(input_file, "r");
+ FILE *f;
+ struct stat sb;
+
+ if (check_exists && stat(input_file, &sb))
+ return;
+ f = xfopen(input_file, "r");
while (fgets(line, sizeof(line), f)) {
uint32_t mark;
char *line_end, *mark_end;
@@ -1115,7 +1141,9 @@ int cmd_fast_export(int argc, const char **argv, const char *prefix)
struct rev_info revs;
struct object_array commits = OBJECT_ARRAY_INIT;
struct commit *commit;
- char *export_filename = NULL, *import_filename = NULL;
+ char *export_filename = NULL,
+ *import_filename = NULL,
+ *import_filename_if_exists = NULL;
uint32_t lastimportid;
struct string_list refspecs_list = STRING_LIST_INIT_NODUP;
struct string_list paths_of_changed_objects = STRING_LIST_INIT_DUP;
@@ -1135,6 +1163,10 @@ int cmd_fast_export(int argc, const char **argv, const char *prefix)
N_("Dump marks to this file")),
OPT_STRING(0, "import-marks", &import_filename, N_("file"),
N_("Import marks from this file")),
+ OPT_STRING(0, "import-marks-if-exists",
+ &import_filename_if_exists,
+ N_("file"),
+ N_("Import marks from this file if it exists")),
OPT_BOOL(0, "fake-missing-tagger", &fake_missing_tagger,
N_("Fake a tagger when tags lack one")),
OPT_BOOL(0, "full-tree", &full_tree,
@@ -1149,6 +1181,8 @@ int cmd_fast_export(int argc, const char **argv, const char *prefix)
&reference_excluded_commits, N_("Reference parents which are not in fast-export stream by object id")),
OPT_BOOL(0, "show-original-ids", &show_original_ids,
N_("Show original object ids of blobs/commits")),
+ OPT_BOOL(0, "mark-tags", &mark_tags,
+ N_("Label tags with mark ids")),
OPT_END()
};
@@ -1182,8 +1216,12 @@ int cmd_fast_export(int argc, const char **argv, const char *prefix)
if (use_done_feature)
printf("feature done\n");
+ if (import_filename && import_filename_if_exists)
+ die(_("Cannot pass both --import-marks and --import-marks-if-exists"));
if (import_filename)
- import_marks(import_filename);
+ import_marks(import_filename, 0);
+ else if (import_filename_if_exists)
+ import_marks(import_filename_if_exists, 1);
lastimportid = last_idnum;
if (import_filename && revs.prune_data.nr)
diff --git a/builtin/fetch.c b/builtin/fetch.c
index 717dd14..863c858 100644
--- a/builtin/fetch.c
+++ b/builtin/fetch.c
@@ -7,6 +7,7 @@
#include "refs.h"
#include "refspec.h"
#include "object-store.h"
+#include "oidset.h"
#include "commit.h"
#include "builtin.h"
#include "string-list.h"
@@ -23,6 +24,9 @@
#include "packfile.h"
#include "list-objects-filter-options.h"
#include "commit-reach.h"
+#include "branch.h"
+#include "promisor-remote.h"
+#include "commit-graph.h"
#define FORCED_UPDATES_DELAY_WARNING_IN_MS (10 * 1000)
@@ -50,11 +54,13 @@ static int fetch_prune_tags_config = -1; /* unspecified */
static int prune_tags = -1; /* unspecified */
#define PRUNE_TAGS_BY_DEFAULT 0 /* do we prune tags by default? */
-static int all, append, dry_run, force, keep, multiple, update_head_ok, verbosity, deepen_relative;
+static int all, append, dry_run, force, keep, multiple, update_head_ok;
+static int verbosity, deepen_relative, set_upstream;
static int progress = -1;
static int enable_auto_gc = 1;
static int tags = TAGS_DEFAULT, unshallow, update_shallow, deepen;
-static int max_children = 1;
+static int max_jobs = -1, submodule_fetch_jobs_config = -1;
+static int fetch_parallel_config = 1;
static enum transport_family family;
static const char *depth;
static const char *deepen_since;
@@ -96,13 +102,20 @@ static int git_fetch_config(const char *k, const char *v, void *cb)
}
if (!strcmp(k, "submodule.fetchjobs")) {
- max_children = parse_submodule_fetchjobs(k, v);
+ submodule_fetch_jobs_config = parse_submodule_fetchjobs(k, v);
return 0;
} else if (!strcmp(k, "fetch.recursesubmodules")) {
recurse_submodules = parse_fetch_recurse_submodules_arg(k, v);
return 0;
}
+ if (!strcmp(k, "fetch.parallel")) {
+ fetch_parallel_config = git_config_int(k, v);
+ if (fetch_parallel_config < 0)
+ die(_("fetch.parallel cannot be negative"));
+ return 0;
+ }
+
return git_default_config(k, v, cb);
}
@@ -123,6 +136,8 @@ static struct option builtin_fetch_options[] = {
OPT__VERBOSITY(&verbosity),
OPT_BOOL(0, "all", &all,
N_("fetch from all remotes")),
+ OPT_BOOL(0, "set-upstream", &set_upstream,
+ N_("set upstream for git pull/fetch")),
OPT_BOOL('a', "append", &append,
N_("append to .git/FETCH_HEAD instead of overwriting")),
OPT_STRING(0, "upload-pack", &upload_pack, N_("path"),
@@ -134,7 +149,7 @@ static struct option builtin_fetch_options[] = {
N_("fetch all tags and associated objects"), TAGS_SET),
OPT_SET_INT('n', NULL, &tags,
N_("do not fetch all tags (--no-tags)"), TAGS_UNSET),
- OPT_INTEGER('j', "jobs", &max_children,
+ OPT_INTEGER('j', "jobs", &max_jobs,
N_("number of submodules fetched in parallel")),
OPT_BOOL('p', "prune", &prune,
N_("prune remote-tracking branches no longer on remote")),
@@ -239,32 +254,31 @@ static void add_merge_config(struct ref **head,
}
}
-static int will_fetch(struct ref **head, const unsigned char *sha1)
+static void create_fetch_oidset(struct ref **head, struct oidset *out)
{
struct ref *rm = *head;
while (rm) {
- if (hasheq(rm->old_oid.hash, sha1))
- return 1;
+ oidset_insert(out, &rm->old_oid);
rm = rm->next;
}
- return 0;
}
struct refname_hash_entry {
- struct hashmap_entry ent; /* must be the first member */
+ struct hashmap_entry ent;
struct object_id oid;
int ignore;
char refname[FLEX_ARRAY];
};
static int refname_hash_entry_cmp(const void *hashmap_cmp_fn_data,
- const void *e1_,
- const void *e2_,
+ const struct hashmap_entry *eptr,
+ const struct hashmap_entry *entry_or_key,
const void *keydata)
{
- const struct refname_hash_entry *e1 = e1_;
- const struct refname_hash_entry *e2 = e2_;
+ const struct refname_hash_entry *e1, *e2;
+ e1 = container_of(eptr, const struct refname_hash_entry, ent);
+ e2 = container_of(entry_or_key, const struct refname_hash_entry, ent);
return strcmp(e1->refname, keydata ? keydata : e2->refname);
}
@@ -276,9 +290,9 @@ static struct refname_hash_entry *refname_hash_add(struct hashmap *map,
size_t len = strlen(refname);
FLEX_ALLOC_MEM(ent, refname, refname, len);
- hashmap_entry_init(ent, strhash(refname));
+ hashmap_entry_init(&ent->ent, strhash(refname));
oidcpy(&ent->oid, oid);
- hashmap_add(map, ent);
+ hashmap_add(map, &ent->ent);
return ent;
}
@@ -313,6 +327,7 @@ static void find_non_local_tags(const struct ref *refs,
{
struct hashmap existing_refs;
struct hashmap remote_refs;
+ struct oidset fetch_oids = OIDSET_INIT;
struct string_list remote_refs_list = STRING_LIST_INIT_NODUP;
struct string_list_item *remote_ref_item;
const struct ref *ref;
@@ -320,6 +335,7 @@ static void find_non_local_tags(const struct ref *refs,
refname_hash_init(&existing_refs);
refname_hash_init(&remote_refs);
+ create_fetch_oidset(head, &fetch_oids);
for_each_ref(add_one_refname, &existing_refs);
for (ref = refs; ref; ref = ref->next) {
@@ -336,9 +352,9 @@ static void find_non_local_tags(const struct ref *refs,
if (item &&
!has_object_file_with_flags(&ref->old_oid,
OBJECT_INFO_QUICK) &&
- !will_fetch(head, ref->old_oid.hash) &&
+ !oidset_contains(&fetch_oids, &ref->old_oid) &&
!has_object_file_with_flags(&item->oid, OBJECT_INFO_QUICK) &&
- !will_fetch(head, item->oid.hash))
+ !oidset_contains(&fetch_oids, &item->oid))
clear_item(item);
item = NULL;
continue;
@@ -352,7 +368,7 @@ static void find_non_local_tags(const struct ref *refs,
*/
if (item &&
!has_object_file_with_flags(&item->oid, OBJECT_INFO_QUICK) &&
- !will_fetch(head, item->oid.hash))
+ !oidset_contains(&fetch_oids, &item->oid))
clear_item(item);
item = NULL;
@@ -365,7 +381,7 @@ static void find_non_local_tags(const struct ref *refs,
item = refname_hash_add(&remote_refs, ref->name, &ref->old_oid);
string_list_insert(&remote_refs_list, ref->name);
}
- hashmap_free(&existing_refs, 1);
+ hashmap_free_entries(&existing_refs, struct refname_hash_entry, ent);
/*
* We may have a final lightweight tag that needs to be
@@ -373,7 +389,7 @@ static void find_non_local_tags(const struct ref *refs,
*/
if (item &&
!has_object_file_with_flags(&item->oid, OBJECT_INFO_QUICK) &&
- !will_fetch(head, item->oid.hash))
+ !oidset_contains(&fetch_oids, &item->oid))
clear_item(item);
/*
@@ -383,8 +399,10 @@ static void find_non_local_tags(const struct ref *refs,
for_each_string_list_item(remote_ref_item, &remote_refs_list) {
const char *refname = remote_ref_item->string;
struct ref *rm;
+ unsigned int hash = strhash(refname);
- item = hashmap_get_from_hash(&remote_refs, strhash(refname), refname);
+ item = hashmap_get_entry_from_hash(&remote_refs, hash, refname,
+ struct refname_hash_entry, ent);
if (!item)
BUG("unseen remote ref?");
@@ -398,8 +416,9 @@ static void find_non_local_tags(const struct ref *refs,
**tail = rm;
*tail = &rm->next;
}
- hashmap_free(&remote_refs, 1);
+ hashmap_free_entries(&remote_refs, struct refname_hash_entry, ent);
string_list_clear(&remote_refs_list, 0);
+ oidset_clear(&fetch_oids);
}
static struct ref *get_ref_map(struct remote *remote,
@@ -516,17 +535,18 @@ static struct ref *get_ref_map(struct remote *remote,
if (rm->peer_ref) {
const char *refname = rm->peer_ref->name;
struct refname_hash_entry *peer_item;
+ unsigned int hash = strhash(refname);
- peer_item = hashmap_get_from_hash(&existing_refs,
- strhash(refname),
- refname);
+ peer_item = hashmap_get_entry_from_hash(&existing_refs,
+ hash, refname,
+ struct refname_hash_entry, ent);
if (peer_item) {
struct object_id *old_oid = &peer_item->oid;
oidcpy(&rm->peer_ref->old_oid, old_oid);
}
}
}
- hashmap_free(&existing_refs, 1);
+ hashmap_free_entries(&existing_refs, struct refname_hash_entry, ent);
return ref_map;
}
@@ -1065,8 +1085,11 @@ static int check_exist_and_connected(struct ref *ref_map)
static int fetch_refs(struct transport *transport, struct ref *ref_map)
{
int ret = check_exist_and_connected(ref_map);
- if (ret)
+ if (ret) {
+ trace2_region_enter("fetch", "fetch_refs", the_repository);
ret = transport_fetch_refs(transport, ref_map);
+ trace2_region_leave("fetch", "fetch_refs", the_repository);
+ }
if (!ret)
/*
* Keep the new pack's ".keep" file around to allow the caller
@@ -1082,11 +1105,14 @@ static int consume_refs(struct transport *transport, struct ref *ref_map)
{
int connectivity_checked = transport->smart_options
? transport->smart_options->connectivity_checked : 0;
- int ret = store_updated_refs(transport->url,
- transport->remote->name,
- connectivity_checked,
- ref_map);
+ int ret;
+ trace2_region_enter("fetch", "consume_refs", the_repository);
+ ret = store_updated_refs(transport->url,
+ transport->remote->name,
+ connectivity_checked,
+ ref_map);
transport_unlock_pack(transport);
+ trace2_region_leave("fetch", "consume_refs", the_repository);
return ret;
}
@@ -1238,13 +1264,10 @@ static struct transport *prepare_transport(struct remote *remote, int deepen)
if (update_shallow)
set_option(transport, TRANS_OPT_UPDATE_SHALLOW, "yes");
if (filter_options.choice) {
- struct strbuf expanded_filter_spec = STRBUF_INIT;
- expand_list_objects_filter_spec(&filter_options,
- &expanded_filter_spec);
- set_option(transport, TRANS_OPT_LIST_OBJECTS_FILTER,
- expanded_filter_spec.buf);
+ const char *spec =
+ expand_list_objects_filter_spec(&filter_options);
+ set_option(transport, TRANS_OPT_LIST_OBJECTS_FILTER, spec);
set_option(transport, TRANS_OPT_FROM_PROMISOR, "1");
- strbuf_release(&expanded_filter_spec);
}
if (negotiation_tip.nr) {
if (transport->smart_options)
@@ -1334,9 +1357,11 @@ static int do_fetch(struct transport *transport,
argv_array_push(&ref_prefixes, "refs/tags/");
}
- if (must_list_refs)
+ if (must_list_refs) {
+ trace2_region_enter("fetch", "remote_refs", the_repository);
remote_refs = transport_get_remote_refs(transport, &ref_prefixes);
- else
+ trace2_region_leave("fetch", "remote_refs", the_repository);
+ } else
remote_refs = NULL;
argv_array_clear(&ref_prefixes);
@@ -1367,6 +1392,51 @@ static int do_fetch(struct transport *transport,
retcode = 1;
goto cleanup;
}
+
+ if (set_upstream) {
+ struct branch *branch = branch_get("HEAD");
+ struct ref *rm;
+ struct ref *source_ref = NULL;
+
+ /*
+ * We're setting the upstream configuration for the
+ * current branch. The relevent upstream is the
+ * fetched branch that is meant to be merged with the
+ * current one, i.e. the one fetched to FETCH_HEAD.
+ *
+ * When there are several such branches, consider the
+ * request ambiguous and err on the safe side by doing
+ * nothing and just emit a warning.
+ */
+ for (rm = ref_map; rm; rm = rm->next) {
+ if (!rm->peer_ref) {
+ if (source_ref) {
+ warning(_("multiple branch detected, incompatible with --set-upstream"));
+ goto skip;
+ } else {
+ source_ref = rm;
+ }
+ }
+ }
+ if (source_ref) {
+ if (!strcmp(source_ref->name, "HEAD") ||
+ starts_with(source_ref->name, "refs/heads/"))
+ install_branch_config(0,
+ branch->name,
+ transport->remote->name,
+ source_ref->name);
+ else if (starts_with(source_ref->name, "refs/remotes/"))
+ warning(_("not setting upstream for a remote remote-tracking branch"));
+ else if (starts_with(source_ref->name, "refs/tags/"))
+ warning(_("not setting upstream for a remote tag"));
+ else
+ warning(_("unknown branch type"));
+ } else {
+ warning(_("no source branch found.\n"
+ "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
@@ -1463,7 +1533,62 @@ static void add_options_to_argv(struct argv_array *argv)
}
-static int fetch_multiple(struct string_list *list)
+/* Fetch multiple remotes in parallel */
+
+struct parallel_fetch_state {
+ const char **argv;
+ struct string_list *remotes;
+ int next, result;
+};
+
+static int fetch_next_remote(struct child_process *cp, struct strbuf *out,
+ void *cb, void **task_cb)
+{
+ struct parallel_fetch_state *state = cb;
+ char *remote;
+
+ if (state->next < 0 || state->next >= state->remotes->nr)
+ return 0;
+
+ remote = state->remotes->items[state->next++].string;
+ *task_cb = remote;
+
+ argv_array_pushv(&cp->args, state->argv);
+ argv_array_push(&cp->args, remote);
+ cp->git_cmd = 1;
+
+ if (verbosity >= 0)
+ printf(_("Fetching %s\n"), remote);
+
+ return 1;
+}
+
+static int fetch_failed_to_start(struct strbuf *out, void *cb, void *task_cb)
+{
+ struct parallel_fetch_state *state = cb;
+ const char *remote = task_cb;
+
+ state->result = error(_("Could not fetch %s"), remote);
+
+ return 0;
+}
+
+static int fetch_finished(int result, struct strbuf *out,
+ void *cb, void *task_cb)
+{
+ struct parallel_fetch_state *state = cb;
+ const char *remote = task_cb;
+
+ if (result) {
+ strbuf_addf(out, _("could not fetch '%s' (exit code: %d)\n"),
+ remote, result);
+ state->result = -1;
+ }
+
+ return 0;
+}
+
+static int fetch_multiple(struct string_list *list, int max_children)
{
int i, result = 0;
struct argv_array argv = ARGV_ARRAY_INIT;
@@ -1477,20 +1602,34 @@ static int fetch_multiple(struct string_list *list)
argv_array_pushl(&argv, "fetch", "--append", "--no-auto-gc", NULL);
add_options_to_argv(&argv);
- for (i = 0; i < list->nr; i++) {
- const char *name = list->items[i].string;
- argv_array_push(&argv, name);
- if (verbosity >= 0)
- printf(_("Fetching %s\n"), name);
- if (run_command_v_opt(argv.argv, RUN_GIT_CMD)) {
- error(_("Could not fetch %s"), name);
- result = 1;
+ if (max_children != 1 && list->nr != 1) {
+ struct parallel_fetch_state state = { argv.argv, list, 0, 0 };
+
+ argv_array_push(&argv, "--end-of-options");
+ result = run_processes_parallel_tr2(max_children,
+ &fetch_next_remote,
+ &fetch_failed_to_start,
+ &fetch_finished,
+ &state,
+ "fetch", "parallel/fetch");
+
+ if (!result)
+ result = state.result;
+ } else
+ for (i = 0; i < list->nr; i++) {
+ const char *name = list->items[i].string;
+ argv_array_push(&argv, name);
+ if (verbosity >= 0)
+ printf(_("Fetching %s\n"), name);
+ if (run_command_v_opt(argv.argv, RUN_GIT_CMD)) {
+ error(_("Could not fetch %s"), name);
+ result = 1;
+ }
+ argv_array_pop(&argv);
}
- argv_array_pop(&argv);
- }
argv_array_clear(&argv);
- return result;
+ return !!result;
}
/*
@@ -1510,37 +1649,27 @@ static inline void fetch_one_setup_partial(struct remote *remote)
* If no prior partial clone/fetch and the current fetch DID NOT
* request a partial-fetch, do a normal fetch.
*/
- if (!repository_format_partial_clone && !filter_options.choice)
+ if (!has_promisor_remote() && !filter_options.choice)
return;
/*
- * If this is the FIRST partial-fetch request, we enable partial
- * on this repo and remember the given filter-spec as the default
- * for subsequent fetches to this remote.
+ * If this is a partial-fetch request, we enable partial on
+ * this repo if not already enabled and remember the given
+ * filter-spec as the default for subsequent fetches to this
+ * remote.
*/
- if (!repository_format_partial_clone && filter_options.choice) {
+ if (filter_options.choice) {
partial_clone_register(remote->name, &filter_options);
return;
}
/*
- * We are currently limited to only ONE promisor remote and only
- * allow partial-fetches from the promisor remote.
- */
- if (strcmp(remote->name, repository_format_partial_clone)) {
- if (filter_options.choice)
- die(_("--filter can only be used with the remote "
- "configured in extensions.partialClone"));
- return;
- }
-
- /*
* Do a partial-fetch from the promisor remote using either the
* explicitly given filter-spec or inherit the filter-spec from
* the config.
*/
if (!filter_options.choice)
- partial_clone_get_default_filter_spec(&filter_options);
+ partial_clone_get_default_filter_spec(&filter_options, remote->name);
return;
}
@@ -1626,14 +1755,13 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
packet_trace_identity("fetch");
- fetch_if_missing = 0;
-
/* Record the command line for the reflog */
strbuf_addstr(&default_rla, "fetch");
for (i = 1; i < argc; i++)
strbuf_addf(&default_rla, " %s", argv[i]);
- fetch_config_from_gitmodules(&max_children, &recurse_submodules);
+ fetch_config_from_gitmodules(&submodule_fetch_jobs_config,
+ &recurse_submodules);
git_config(git_fetch_config, NULL);
argc = parse_options(argc, argv, prefix,
@@ -1661,7 +1789,7 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
if (depth || deepen_since || deepen_not.nr)
deepen = 1;
- if (filter_options.choice && !repository_format_partial_clone)
+ if (filter_options.choice && !has_promisor_remote())
die("--filter can only be used when extensions.partialClone is set");
if (all) {
@@ -1694,20 +1822,34 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
}
}
+ fetch_if_missing = 0;
+
if (remote) {
- if (filter_options.choice || repository_format_partial_clone)
+ if (filter_options.choice || has_promisor_remote())
fetch_one_setup_partial(remote);
result = fetch_one(remote, argc, argv, prune_tags_ok);
} else {
+ int max_children = max_jobs;
+
if (filter_options.choice)
die(_("--filter can only be used with the remote "
"configured in extensions.partialclone"));
+
+ if (max_children < 0)
+ max_children = fetch_parallel_config;
+
/* TODO should this also die if we have a previous partial-clone? */
- result = fetch_multiple(&list);
+ result = fetch_multiple(&list, max_children);
}
if (!result && (recurse_submodules != RECURSE_SUBMODULES_OFF)) {
struct argv_array options = ARGV_ARRAY_INIT;
+ int max_children = max_jobs;
+
+ if (max_children < 0)
+ max_children = submodule_fetch_jobs_config;
+ if (max_children < 0)
+ max_children = fetch_parallel_config;
add_options_to_argv(&options);
result = fetch_populated_submodules(the_repository,
@@ -1722,6 +1864,20 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
string_list_clear(&list, 0);
+ prepare_repo_settings(the_repository);
+ if (the_repository->settings.fetch_write_commit_graph) {
+ int commit_graph_flags = COMMIT_GRAPH_WRITE_SPLIT;
+ struct split_commit_graph_opts split_opts;
+ memset(&split_opts, 0, sizeof(struct split_commit_graph_opts));
+
+ if (progress)
+ commit_graph_flags |= COMMIT_GRAPH_WRITE_PROGRESS;
+
+ write_commit_graph_reachable(get_object_directory(),
+ commit_graph_flags,
+ &split_opts);
+ }
+
close_object_store(the_repository->objects);
if (enable_auto_gc) {
diff --git a/builtin/gc.c b/builtin/gc.c
index c18efad..fadb454 100644
--- a/builtin/gc.c
+++ b/builtin/gc.c
@@ -27,6 +27,7 @@
#include "pack-objects.h"
#include "blob.h"
#include "tree.h"
+#include "promisor-remote.h"
#define FAILED_RUN "failed to run %s"
@@ -41,7 +42,6 @@ static int aggressive_depth = 50;
static int aggressive_window = 250;
static int gc_auto_threshold = 6700;
static int gc_auto_pack_limit = 50;
-static int gc_write_commit_graph;
static int detach_auto = 1;
static timestamp_t gc_log_expire_time;
static const char *gc_log_expire = "1.day.ago";
@@ -148,7 +148,6 @@ static void gc_config(void)
git_config_get_int("gc.aggressivedepth", &aggressive_depth);
git_config_get_int("gc.auto", &gc_auto_threshold);
git_config_get_int("gc.autopacklimit", &gc_auto_pack_limit);
- git_config_get_bool("gc.writecommitgraph", &gc_write_commit_graph);
git_config_get_bool("gc.autodetach", &detach_auto);
git_config_get_expiry("gc.pruneexpire", &prune_expire);
git_config_get_expiry("gc.worktreepruneexpire", &prune_worktrees_expire);
@@ -661,7 +660,7 @@ int cmd_gc(int argc, const char **argv, const char *prefix)
argv_array_push(&prune, prune_expire);
if (quiet)
argv_array_push(&prune, "--no-progress");
- if (repository_format_partial_clone)
+ if (has_promisor_remote())
argv_array_push(&prune,
"--exclude-promisor-objects");
if (run_command_v_opt(prune.argv, RUN_GIT_CMD))
@@ -685,11 +684,11 @@ int cmd_gc(int argc, const char **argv, const char *prefix)
clean_pack_garbage();
}
- if (gc_write_commit_graph &&
- write_commit_graph_reachable(get_object_directory(),
- !quiet && !daemonized ? COMMIT_GRAPH_PROGRESS : 0,
- NULL))
- return 1;
+ prepare_repo_settings(the_repository);
+ if (the_repository->settings.gc_write_commit_graph == 1)
+ write_commit_graph_reachable(get_object_directory(),
+ !quiet && !daemonized ? COMMIT_GRAPH_WRITE_PROGRESS : 0,
+ NULL);
if (auto_gc && too_many_loose_objects())
warning(_("There are too many unreachable loose objects; "
diff --git a/builtin/grep.c b/builtin/grep.c
index 5600517..50ce8d9 100644
--- a/builtin/grep.c
+++ b/builtin/grep.c
@@ -403,7 +403,7 @@ static int grep_tree(struct grep_opt *opt, const struct pathspec *pathspec,
static int grep_submodule(struct grep_opt *opt,
const struct pathspec *pathspec,
const struct object_id *oid,
- const char *filename, const char *path)
+ const char *filename, const char *path, int cached)
{
struct repository subrepo;
struct repository *superproject = opt->repo;
@@ -475,7 +475,7 @@ static int grep_submodule(struct grep_opt *opt,
strbuf_release(&base);
free(data);
} else {
- hit = grep_cache(&subopt, pathspec, 1);
+ hit = grep_cache(&subopt, pathspec, cached);
}
repo_clear(&subrepo);
@@ -523,7 +523,8 @@ static int grep_cache(struct grep_opt *opt,
}
} else if (recurse_submodules && S_ISGITLINK(ce->ce_mode) &&
submodule_path_match(repo->index, pathspec, name.buf, NULL)) {
- hit |= grep_submodule(opt, pathspec, NULL, ce->name, ce->name);
+ hit |= grep_submodule(opt, pathspec, NULL, ce->name,
+ ce->name, cached);
} else {
continue;
}
@@ -598,7 +599,8 @@ static int grep_tree(struct grep_opt *opt, const struct pathspec *pathspec,
free(data);
} else if (recurse_submodules && S_ISGITLINK(entry.mode)) {
hit |= grep_submodule(opt, pathspec, &entry.oid,
- base->buf, base->buf + tn_len);
+ base->buf, base->buf + tn_len,
+ 1); /* ignored */
}
strbuf_setlen(base, old_baselen);
@@ -1108,8 +1110,8 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
strbuf_addf(&buf, "+/%s%s",
strcmp("less", pager) ? "" : "*",
opt.pattern_list->pattern);
- string_list_append(&path_list, buf.buf);
- strbuf_detach(&buf, NULL);
+ string_list_append(&path_list,
+ strbuf_detach(&buf, NULL));
}
}
@@ -1145,5 +1147,6 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
run_pager(&opt, prefix);
clear_pathspec(&pathspec);
free_grep_patterns(&opt);
+ grep_destroy();
return !hit;
}
diff --git a/builtin/index-pack.c b/builtin/index-pack.c
index 0d55f73..60a5591 100644
--- a/builtin/index-pack.c
+++ b/builtin/index-pack.c
@@ -14,7 +14,7 @@
#include "thread-utils.h"
#include "packfile.h"
#include "object-store.h"
-#include "fetch-object.h"
+#include "promisor-remote.h"
static const char index_pack_usage[] =
"git index-pack [-v] [-o <index-file>] [--keep | --keep=<msg>] [--verify] [--strict] (<pack-file> | --stdin [--fix-thin] [<pack-file>])";
@@ -1352,7 +1352,7 @@ static void fix_unresolved_deltas(struct hashfile *f)
sorted_by_pos[i] = &ref_deltas[i];
QSORT(sorted_by_pos, nr_ref_deltas, delta_pos_compare);
- if (repository_format_partial_clone) {
+ if (has_promisor_remote()) {
/*
* Prefetch the delta bases.
*/
@@ -1366,8 +1366,8 @@ static void fix_unresolved_deltas(struct hashfile *f)
oid_array_append(&to_fetch, &d->oid);
}
if (to_fetch.nr)
- fetch_objects(repository_format_partial_clone,
- to_fetch.oid, to_fetch.nr);
+ promisor_remote_get_direct(the_repository,
+ to_fetch.oid, to_fetch.nr);
oid_array_clear(&to_fetch);
}
@@ -1490,11 +1490,11 @@ static void final(const char *final_pack_name, const char *curr_pack_name,
}
if (!from_stdin) {
- printf("%s\n", sha1_to_hex(hash));
+ printf("%s\n", hash_to_hex(hash));
} else {
struct strbuf buf = STRBUF_INIT;
- strbuf_addf(&buf, "%s\t%s\n", report, sha1_to_hex(hash));
+ strbuf_addf(&buf, "%s\t%s\n", report, hash_to_hex(hash));
write_or_die(1, buf.buf, buf.len);
strbuf_release(&buf);
diff --git a/builtin/log.c b/builtin/log.c
index 04be559..a26f223 100644
--- a/builtin/log.c
+++ b/builtin/log.c
@@ -628,6 +628,7 @@ int cmd_show(int argc, const char **argv, const char *prefix)
break;
case OBJ_TAG: {
struct tag *t = (struct tag *)o;
+ struct object_id *oid = get_tagged_oid(t);
if (rev.shown_one)
putchar('\n');
@@ -639,10 +640,10 @@ int cmd_show(int argc, const char **argv, const char *prefix)
rev.shown_one = 1;
if (ret)
break;
- o = parse_object(the_repository, &t->tagged->oid);
+ o = parse_object(the_repository, oid);
if (!o)
ret = error(_("could not read object %s"),
- oid_to_hex(&t->tagged->oid));
+ oid_to_hex(oid));
objects[i].item = o;
i--;
break;
@@ -1824,10 +1825,26 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
setup_pager();
if (output_directory) {
+ int saved;
if (rev.diffopt.use_color != GIT_COLOR_ALWAYS)
rev.diffopt.use_color = GIT_COLOR_NEVER;
if (use_stdout)
die(_("standard output, or directory, which one?"));
+ /*
+ * We consider <outdir> as 'outside of gitdir', therefore avoid
+ * applying adjust_shared_perm in s-c-l-d.
+ */
+ saved = get_shared_repository();
+ set_shared_repository(0);
+ switch (safe_create_leading_directories_const(output_directory)) {
+ case SCLD_OK:
+ case SCLD_EXISTS:
+ break;
+ default:
+ die(_("could not create leading directories "
+ "of '%s'"), output_directory);
+ }
+ set_shared_repository(saved);
if (mkdir(output_directory, 0777) < 0 && errno != EEXIST)
die_errno(_("could not create directory '%s'"),
output_directory);
diff --git a/builtin/ls-files.c b/builtin/ls-files.c
index 670e8fb..f069a02 100644
--- a/builtin/ls-files.c
+++ b/builtin/ls-files.c
@@ -492,7 +492,7 @@ static int option_parse_exclude_from(const struct option *opt,
BUG_ON_OPT_NEG(unset);
exc_given = 1;
- add_excludes_from_file(dir, arg);
+ add_patterns_from_file(dir, arg);
return 0;
}
@@ -516,7 +516,7 @@ int cmd_ls_files(int argc, const char **argv, const char *cmd_prefix)
int require_work_tree = 0, show_tag = 0, i;
const char *max_prefix;
struct dir_struct dir;
- struct exclude_list *el;
+ struct pattern_list *pl;
struct string_list exclude_list = STRING_LIST_INIT_NODUP;
struct option builtin_ls_files_options[] = {
/* Think twice before adding "--nul" synonym to this */
@@ -594,9 +594,9 @@ int cmd_ls_files(int argc, const char **argv, const char *cmd_prefix)
argc = parse_options(argc, argv, prefix, builtin_ls_files_options,
ls_files_usage, 0);
- el = add_exclude_list(&dir, EXC_CMDL, "--exclude option");
+ pl = add_pattern_list(&dir, EXC_CMDL, "--exclude option");
for (i = 0; i < exclude_list.nr; i++) {
- add_exclude(exclude_list.items[i].string, "", 0, el, --exclude_args);
+ add_pattern(exclude_list.items[i].string, "", 0, pl, --exclude_args);
}
if (show_tag || show_valid_bit || show_fsmonitor_bit) {
tag_cached = "H ";
diff --git a/builtin/merge-recursive.c b/builtin/merge-recursive.c
index 5b910e3..a4bfd8f 100644
--- a/builtin/merge-recursive.c
+++ b/builtin/merge-recursive.c
@@ -1,3 +1,4 @@
+#include "cache.h"
#include "builtin.h"
#include "commit.h"
#include "tag.h"
@@ -63,6 +64,9 @@ int cmd_merge_recursive(int argc, const char **argv, const char *prefix)
if (argc - i != 3) /* "--" "<head>" "<remote>" */
die(_("not handling anything other than two heads merge."));
+ if (repo_read_index_unmerged(the_repository))
+ die_resolve_conflict("merge");
+
o.branch1 = argv[++i];
o.branch2 = argv[++i];
diff --git a/builtin/merge-tree.c b/builtin/merge-tree.c
index 97b54ca..e72714a 100644
--- a/builtin/merge-tree.c
+++ b/builtin/merge-tree.c
@@ -180,8 +180,9 @@ static struct merge_list *create_entry(unsigned stage, unsigned mode, const stru
static char *traverse_path(const struct traverse_info *info, const struct name_entry *n)
{
- char *path = xmallocz(traverse_path_len(info, n) + the_hash_algo->rawsz);
- return make_traverse_path(path, info, n);
+ struct strbuf buf = STRBUF_INIT;
+ strbuf_make_traverse_path(&buf, info, n->path, n->pathlen);
+ return strbuf_detach(&buf, NULL);
}
static void resolve(const struct traverse_info *info, struct name_entry *ours, struct name_entry *result)
diff --git a/builtin/merge.c b/builtin/merge.c
index e2ccbc4..062e911 100644
--- a/builtin/merge.c
+++ b/builtin/merge.c
@@ -81,7 +81,7 @@ static int show_progress = -1;
static int default_to_upstream = 1;
static int signoff;
static const char *sign_commit;
-static int verify_msg = 1;
+static int no_verify;
static struct strategy all_strategy[] = {
{ "recursive", DEFAULT_TWOHEAD | NO_TRIVIAL },
@@ -287,7 +287,7 @@ static struct option builtin_merge_options[] = {
N_("GPG sign commit"), PARSE_OPT_OPTARG, NULL, (intptr_t) "" },
OPT_BOOL(0, "overwrite-ignore", &overwrite_ignore, N_("update ignored files (default)")),
OPT_BOOL(0, "signoff", &signoff, N_("add Signed-off-by:")),
- OPT_BOOL(0, "verify", &verify_msg, N_("verify commit-msg hook")),
+ OPT_BOOL(0, "no-verify", &no_verify, N_("bypass pre-merge-commit and commit-msg hooks")),
OPT_END()
};
@@ -688,16 +688,13 @@ static int try_merge_strategy(const char *strategy, struct commit_list *common,
struct commit_list *remoteheads,
struct commit *head)
{
- struct lock_file lock = LOCK_INIT;
const char *head_arg = "HEAD";
- hold_locked_index(&lock, LOCK_DIE_ON_ERROR);
- refresh_cache(REFRESH_QUIET);
- if (write_locked_index(&the_index, &lock,
- COMMIT_LOCK | SKIP_IF_UNCHANGED))
+ if (refresh_and_write_cache(REFRESH_QUIET, SKIP_IF_UNCHANGED, 0) < 0)
return error(_("Unable to write index."));
if (!strcmp(strategy, "recursive") || !strcmp(strategy, "subtree")) {
+ struct lock_file lock = LOCK_INIT;
int clean, x;
struct commit *result;
struct commit_list *reversed = NULL;
@@ -816,6 +813,18 @@ static void write_merge_heads(struct commit_list *);
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 (find_hook("pre-merge-commit"))
+ discard_cache();
+ read_cache_from(index_file);
strbuf_addbuf(&msg, &merge_msg);
if (squash)
BUG("the control must not reach here under --squash");
@@ -842,7 +851,7 @@ static void prepare_to_commit(struct commit_list *remoteheads)
abort_commit(remoteheads, NULL);
}
- if (verify_msg && run_commit_hook(0 < option_edit, get_index_file(),
+ if (!no_verify && run_commit_hook(0 < option_edit, get_index_file(),
"commit-msg",
git_path_merge_msg(the_repository), NULL))
abort_commit(remoteheads, NULL);
@@ -860,12 +869,8 @@ static int merge_trivial(struct commit *head, struct commit_list *remoteheads)
{
struct object_id result_tree, result_commit;
struct commit_list *parents, **pptr = &parents;
- struct lock_file lock = LOCK_INIT;
- hold_locked_index(&lock, LOCK_DIE_ON_ERROR);
- refresh_cache(REFRESH_QUIET);
- if (write_locked_index(&the_index, &lock,
- COMMIT_LOCK | SKIP_IF_UNCHANGED))
+ if (refresh_and_write_cache(REFRESH_QUIET, SKIP_IF_UNCHANGED, 0) < 0)
return error(_("Unable to write index."));
write_tree_trivial(&result_tree);
diff --git a/builtin/name-rev.c b/builtin/name-rev.c
index c785fe1..b0f0776 100644
--- a/builtin/name-rev.c
+++ b/builtin/name-rev.c
@@ -9,7 +9,11 @@
#include "sha1-lookup.h"
#include "commit-slab.h"
-#define CUTOFF_DATE_SLOP 86400 /* one day */
+/*
+ * One day. See the 'name a rev shortly after epoch' test in t6120 when
+ * changing this value
+ */
+#define CUTOFF_DATE_SLOP 86400
typedef struct rev_name {
const char *tip_name;
@@ -481,8 +485,13 @@ int cmd_name_rev(int argc, const char **argv, const char *prefix)
add_object_array(object, *argv, &revs);
}
- if (cutoff)
- cutoff = cutoff - CUTOFF_DATE_SLOP;
+ if (cutoff) {
+ /* check for undeflow */
+ if (cutoff > TIME_MIN + CUTOFF_DATE_SLOP)
+ cutoff = cutoff - CUTOFF_DATE_SLOP;
+ else
+ cutoff = TIME_MIN;
+ }
for_each_ref(name_ref, &data);
if (transform_stdin) {
diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c
index 76ce906..5876583 100644
--- a/builtin/pack-objects.c
+++ b/builtin/pack-objects.c
@@ -610,12 +610,12 @@ static int mark_tagged(const char *path, const struct object_id *oid, int flag,
void *cb_data)
{
struct object_id peeled;
- struct object_entry *entry = packlist_find(&to_pack, oid, NULL);
+ struct object_entry *entry = packlist_find(&to_pack, oid);
if (entry)
entry->tagged = 1;
if (!peel_ref(path, &peeled)) {
- entry = packlist_find(&to_pack, &peeled, NULL);
+ entry = packlist_find(&to_pack, &peeled);
if (entry)
entry->tagged = 1;
}
@@ -996,12 +996,11 @@ static int no_try_delta(const char *path)
* few lines later when we want to add the new entry.
*/
static int have_duplicate_entry(const struct object_id *oid,
- int exclude,
- uint32_t *index_pos)
+ int exclude)
{
struct object_entry *entry;
- entry = packlist_find(&to_pack, oid, index_pos);
+ entry = packlist_find(&to_pack, oid);
if (!entry)
return 0;
@@ -1141,13 +1140,12 @@ static void create_object_entry(const struct object_id *oid,
uint32_t hash,
int exclude,
int no_try_delta,
- uint32_t index_pos,
struct packed_git *found_pack,
off_t found_offset)
{
struct object_entry *entry;
- entry = packlist_alloc(&to_pack, oid->hash, index_pos);
+ entry = packlist_alloc(&to_pack, oid);
entry->hash = hash;
oe_set_type(entry, type);
if (exclude)
@@ -1171,11 +1169,10 @@ static int add_object_entry(const struct object_id *oid, enum object_type type,
{
struct packed_git *found_pack = NULL;
off_t found_offset = 0;
- uint32_t index_pos;
display_progress(progress_state, ++nr_seen);
- if (have_duplicate_entry(oid, exclude, &index_pos))
+ if (have_duplicate_entry(oid, exclude))
return 0;
if (!want_object_in_pack(oid, exclude, &found_pack, &found_offset)) {
@@ -1190,7 +1187,7 @@ static int add_object_entry(const struct object_id *oid, enum object_type type,
create_object_entry(oid, type, pack_name_hash(name),
exclude, name && no_try_delta(name),
- index_pos, found_pack, found_offset);
+ found_pack, found_offset);
return 1;
}
@@ -1199,17 +1196,15 @@ static int add_object_entry_from_bitmap(const struct object_id *oid,
int flags, uint32_t name_hash,
struct packed_git *pack, off_t offset)
{
- uint32_t index_pos;
-
display_progress(progress_state, ++nr_seen);
- if (have_duplicate_entry(oid, 0, &index_pos))
+ if (have_duplicate_entry(oid, 0))
return 0;
if (!want_object_in_pack(oid, 0, &pack, &offset))
return 0;
- create_object_entry(oid, type, name_hash, 0, 0, index_pos, pack, offset);
+ create_object_entry(oid, type, name_hash, 0, 0, pack, offset);
return 1;
}
@@ -1507,7 +1502,7 @@ static int can_reuse_delta(const unsigned char *base_sha1,
* First see if we're already sending the base (or it's explicitly in
* our "excluded" list).
*/
- base = packlist_find(&to_pack, &base_oid, NULL);
+ base = packlist_find(&to_pack, &base_oid);
if (base) {
if (!in_same_island(&delta->idx.oid, &base->idx.oid))
return 0;
@@ -2342,15 +2337,6 @@ static void find_deltas(struct object_entry **list, unsigned *list_size,
free(array);
}
-static void try_to_free_from_threads(size_t size)
-{
- packing_data_lock(&to_pack);
- release_pack_memory(size);
- packing_data_unlock(&to_pack);
-}
-
-static try_to_free_t old_try_to_free_routine;
-
/*
* The main object list is split into smaller lists, each is handed to
* one worker.
@@ -2391,12 +2377,10 @@ static void init_threaded_search(void)
pthread_mutex_init(&cache_mutex, NULL);
pthread_mutex_init(&progress_mutex, NULL);
pthread_cond_init(&progress_cond, NULL);
- old_try_to_free_routine = set_try_to_free_routine(try_to_free_from_threads);
}
static void cleanup_threaded_search(void)
{
- set_try_to_free_routine(old_try_to_free_routine);
pthread_cond_destroy(&progress_cond);
pthread_mutex_destroy(&cache_mutex);
pthread_mutex_destroy(&progress_mutex);
@@ -2579,7 +2563,7 @@ static void add_tag_chain(const struct object_id *oid)
* it was included via bitmaps, we would not have parsed it
* previously).
*/
- if (packlist_find(&to_pack, oid, NULL))
+ if (packlist_find(&to_pack, oid))
return;
tag = lookup_tag(the_repository, oid);
@@ -2603,7 +2587,7 @@ static int add_ref_tag(const char *path, const struct object_id *oid, int flag,
if (starts_with(path, "refs/tags/") && /* is a tag? */
!peel_ref(path, &peeled) && /* peelable? */
- packlist_find(&to_pack, &peeled, NULL)) /* object packed? */
+ packlist_find(&to_pack, &peeled)) /* object packed? */
add_tag_chain(oid);
return 0;
}
@@ -2715,10 +2699,6 @@ static int git_pack_config(const char *k, const char *v, void *cb)
use_bitmap_index_default = git_config_bool(k, v);
return 0;
}
- if (!strcmp(k, "pack.usesparse")) {
- sparse = git_config_bool(k, v);
- return 0;
- }
if (!strcmp(k, "pack.threads")) {
delta_search_threads = git_config_int(k, v);
if (delta_search_threads < 0)
@@ -2803,7 +2783,7 @@ static void show_object(struct object *obj, const char *name, void *data)
for (p = strchr(name, '/'); p; p = strchr(p + 1, '/'))
depth++;
- ent = packlist_find(&to_pack, &obj->oid, NULL);
+ ent = packlist_find(&to_pack, &obj->oid);
if (ent && depth > oe_tree_depth(&to_pack, ent))
oe_set_tree_depth(&to_pack, ent, depth);
}
@@ -3034,7 +3014,7 @@ static void loosen_unused_packed_objects(void)
for (i = 0; i < p->num_objects; i++) {
nth_packed_object_oid(&oid, p, i);
- if (!packlist_find(&to_pack, &oid, NULL) &&
+ if (!packlist_find(&to_pack, &oid) &&
!has_sha1_pack_kept_or_nonlocal(&oid) &&
!loosened_object_can_be_discarded(&oid, p->mtime))
if (force_object_loose(&oid, p->mtime))
@@ -3343,6 +3323,10 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix)
read_replace_refs = 0;
sparse = git_env_bool("GIT_TEST_PACK_SPARSE", 0);
+ prepare_repo_settings(the_repository);
+ if (!sparse && the_repository->settings.pack_use_sparse != -1)
+ sparse = the_repository->settings.pack_use_sparse;
+
reset_pack_idx_option(&pack_idx_opts);
git_config(git_pack_config, NULL);
diff --git a/builtin/patch-id.c b/builtin/patch-id.c
index bd28b80..3059e52 100644
--- a/builtin/patch-id.c
+++ b/builtin/patch-id.c
@@ -1,15 +1,16 @@
+#include "cache.h"
#include "builtin.h"
#include "config.h"
#include "diff.h"
static void flush_current_id(int patchlen, struct object_id *id, struct object_id *result)
{
- char name[50];
+ char name[GIT_MAX_HEXSZ + 1];
if (!patchlen)
return;
- memcpy(name, oid_to_hex(id), GIT_SHA1_HEXSZ + 1);
+ memcpy(name, oid_to_hex(id), the_hash_algo->hexsz + 1);
printf("%s %s\n", oid_to_hex(result), name);
}
@@ -60,9 +61,9 @@ static int get_one_patchid(struct object_id *next_oid, struct object_id *result,
{
int patchlen = 0, found_next = 0;
int before = -1, after = -1;
- git_SHA_CTX ctx;
+ git_hash_ctx ctx;
- git_SHA1_Init(&ctx);
+ the_hash_algo->init_fn(&ctx);
oidclr(result);
while (strbuf_getwholeline(line_buf, stdin, '\n') != EOF) {
@@ -122,7 +123,7 @@ static int get_one_patchid(struct object_id *next_oid, struct object_id *result,
/* Compute the sha without whitespace */
len = remove_space(line);
patchlen += len;
- git_SHA1_Update(&ctx, line, len);
+ the_hash_algo->update_fn(&ctx, line, len);
}
if (!found_next)
diff --git a/builtin/pull.c b/builtin/pull.c
index f1eaf6e..d25ff13 100644
--- a/builtin/pull.c
+++ b/builtin/pull.c
@@ -129,6 +129,7 @@ static char *opt_refmap;
static char *opt_ipv4;
static char *opt_ipv6;
static int opt_show_forced_updates = -1;
+static char *set_upstream;
static struct option pull_options[] = {
/* Shared options */
@@ -243,6 +244,9 @@ static struct option pull_options[] = {
PARSE_OPT_NOARG),
OPT_BOOL(0, "show-forced-updates", &opt_show_forced_updates,
N_("check for forced-updates on all updated branches")),
+ OPT_PASSTHRU(0, "set-upstream", &set_upstream, NULL,
+ N_("set upstream for git pull/fetch"),
+ PARSE_OPT_NOARG),
OPT_END()
};
@@ -556,6 +560,8 @@ static int run_fetch(const char *repo, const char **refspecs)
argv_array_push(&args, "--show-forced-updates");
else if (opt_show_forced_updates == 0)
argv_array_push(&args, "--no-show-forced-updates");
+ if (set_upstream)
+ argv_array_push(&args, set_upstream);
if (repo) {
argv_array_push(&args, repo);
diff --git a/builtin/push.c b/builtin/push.c
index 021dd3b..843f5b2 100644
--- a/builtin/push.c
+++ b/builtin/push.c
@@ -143,8 +143,8 @@ static int push_url_of_remote(struct remote *remote, const char ***url_p)
return remote->url_nr;
}
-static NORETURN int die_push_simple(struct branch *branch,
- struct remote *remote)
+static NORETURN void die_push_simple(struct branch *branch,
+ struct remote *remote)
{
/*
* There's no point in using shorten_unambiguous_ref here,
@@ -357,8 +357,10 @@ static int push_with_options(struct transport *transport, struct refspec *rs,
if (verbosity > 0)
fprintf(stderr, _("Pushing to %s\n"), transport->url);
+ trace2_region_enter("push", "transport_push", the_repository);
err = transport_push(the_repository, transport,
rs, flags, &reject_reasons);
+ trace2_region_leave("push", "transport_push", the_repository);
if (err != 0) {
fprintf(stderr, "%s", push_get_color(PUSH_COLOR_ERROR));
error(_("failed to push some refs to '%s'"), transport->url);
@@ -385,30 +387,14 @@ static int push_with_options(struct transport *transport, struct refspec *rs,
}
static int do_push(const char *repo, int flags,
- const struct string_list *push_options)
+ const struct string_list *push_options,
+ struct remote *remote)
{
int i, errs;
- struct remote *remote = pushremote_get(repo);
const char **url;
int url_nr;
struct refspec *push_refspec = &rs;
- if (!remote) {
- if (repo)
- die(_("bad repository '%s'"), repo);
- die(_("No configured push destination.\n"
- "Either specify the URL from the command-line or configure a remote repository using\n"
- "\n"
- " git remote add <name> <url>\n"
- "\n"
- "and then push using the remote name\n"
- "\n"
- " git push <name>\n"));
- }
-
- if (remote->mirror)
- flags |= (TRANSPORT_PUSH_MIRROR|TRANSPORT_PUSH_FORCE);
-
if (push_options->nr)
flags |= TRANSPORT_PUSH_OPTIONS;
@@ -548,6 +534,7 @@ int cmd_push(int argc, const char **argv, const char *prefix)
struct string_list push_options_cmdline = STRING_LIST_INIT_DUP;
struct string_list *push_options;
const struct string_list_item *item;
+ struct remote *remote;
struct option options[] = {
OPT__VERBOSITY(&verbosity),
@@ -602,20 +589,6 @@ int cmd_push(int argc, const char **argv, const char *prefix)
die(_("--delete is incompatible with --all, --mirror and --tags"));
if (deleterefs && argc < 2)
die(_("--delete doesn't make sense without any refs"));
- if (flags & TRANSPORT_PUSH_ALL) {
- if (tags)
- die(_("--all and --tags are incompatible"));
- if (argc >= 2)
- die(_("--all can't be combined with refspecs"));
- }
- if (flags & TRANSPORT_PUSH_MIRROR) {
- if (tags)
- die(_("--mirror and --tags are incompatible"));
- if (argc >= 2)
- die(_("--mirror can't be combined with refspecs"));
- }
- if ((flags & TRANSPORT_PUSH_ALL) && (flags & TRANSPORT_PUSH_MIRROR))
- die(_("--all and --mirror are incompatible"));
if (recurse_submodules == RECURSE_SUBMODULES_CHECK)
flags |= TRANSPORT_RECURSE_SUBMODULES_CHECK;
@@ -632,11 +605,43 @@ int cmd_push(int argc, const char **argv, const char *prefix)
set_refspecs(argv + 1, argc - 1, repo);
}
+ remote = pushremote_get(repo);
+ if (!remote) {
+ if (repo)
+ die(_("bad repository '%s'"), repo);
+ die(_("No configured push destination.\n"
+ "Either specify the URL from the command-line or configure a remote repository using\n"
+ "\n"
+ " git remote add <name> <url>\n"
+ "\n"
+ "and then push using the remote name\n"
+ "\n"
+ " git push <name>\n"));
+ }
+
+ if (remote->mirror)
+ flags |= (TRANSPORT_PUSH_MIRROR|TRANSPORT_PUSH_FORCE);
+
+ if (flags & TRANSPORT_PUSH_ALL) {
+ if (tags)
+ die(_("--all and --tags are incompatible"));
+ if (argc >= 2)
+ die(_("--all can't be combined with refspecs"));
+ }
+ if (flags & TRANSPORT_PUSH_MIRROR) {
+ if (tags)
+ die(_("--mirror and --tags are incompatible"));
+ if (argc >= 2)
+ die(_("--mirror can't be combined with refspecs"));
+ }
+ if ((flags & TRANSPORT_PUSH_ALL) && (flags & TRANSPORT_PUSH_MIRROR))
+ die(_("--all and --mirror are incompatible"));
+
for_each_string_list_item(item, push_options)
if (strchr(item->string, '\n'))
die(_("push options must not have new line characters"));
- rc = do_push(repo, flags, push_options);
+ rc = do_push(repo, flags, push_options, remote);
string_list_clear(&push_options_cmdline, 0);
string_list_clear(&push_options_config, 0);
if (rc == -1)
diff --git a/builtin/rebase.c b/builtin/rebase.c
index 670096c..4a20582 100644
--- a/builtin/rebase.c
+++ b/builtin/rebase.c
@@ -29,8 +29,8 @@
#include "rebase-interactive.h"
static char const * const builtin_rebase_usage[] = {
- N_("git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] "
- "[<upstream>] [<branch>]"),
+ N_("git rebase [-i] [options] [--exec <cmd>] "
+ "[--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"),
@@ -62,7 +62,7 @@ struct rebase_options {
const char *onto_name;
const char *revisions;
const char *switch_to;
- int root;
+ int root, root_with_onto;
struct object_id *squash_onto;
struct commit *restrict_revision;
int dont_finish_rebase;
@@ -374,6 +374,7 @@ static int run_rebase_interactive(struct rebase_options *opts,
flags |= abbreviate_commands ? TODO_LIST_ABBREVIATE_CMDS : 0;
flags |= opts->rebase_merges ? TODO_LIST_REBASE_MERGES : 0;
flags |= opts->rebase_cousins > 0 ? TODO_LIST_REBASE_COUSINS : 0;
+ flags |= opts->root_with_onto ? TODO_LIST_ROOT_WITH_ONTO : 0;
flags |= command == ACTION_SHORTEN_OIDS ? TODO_LIST_SHORTEN_IDS : 0;
switch (command) {
@@ -1260,24 +1261,44 @@ static int is_linear_history(struct commit *from, struct commit *to)
return 1;
}
-static int can_fast_forward(struct commit *onto, struct object_id *head_oid,
- struct object_id *merge_base)
+static int can_fast_forward(struct commit *onto, struct commit *upstream,
+ struct commit *restrict_revision,
+ struct object_id *head_oid, struct object_id *merge_base)
{
struct commit *head = lookup_commit(the_repository, head_oid);
- struct commit_list *merge_bases;
- int res;
+ struct commit_list *merge_bases = NULL;
+ int res = 0;
if (!head)
- return 0;
+ goto done;
merge_bases = get_merge_bases(onto, head);
- if (merge_bases && !merge_bases->next) {
- oidcpy(merge_base, &merge_bases->item->object.oid);
- res = oideq(merge_base, &onto->object.oid);
- } else {
+ if (!merge_bases || merge_bases->next) {
oidcpy(merge_base, &null_oid);
- res = 0;
+ goto done;
}
+
+ oidcpy(merge_base, &merge_bases->item->object.oid);
+ if (!oideq(merge_base, &onto->object.oid))
+ goto done;
+
+ if (restrict_revision && !oideq(&restrict_revision->object.oid, merge_base))
+ goto done;
+
+ if (!upstream)
+ goto done;
+
+ free_commit_list(merge_bases);
+ merge_bases = get_merge_bases(upstream, head);
+ if (!merge_bases || merge_bases->next)
+ goto done;
+
+ if (!oideq(&onto->object.oid, &merge_bases->item->object.oid))
+ goto done;
+
+ res = 1;
+
+done:
free_commit_list(merge_bases);
return res && is_linear_history(onto, head);
}
@@ -1376,6 +1397,7 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
struct rebase_options options = REBASE_OPTIONS_INIT;
const char *branch_name;
int ret, flags, total_argc, in_progress = 0;
+ int keep_base = 0;
int ok_to_skip_pre_rebase = 0;
struct strbuf msg = STRBUF_INIT;
struct strbuf revisions = STRBUF_INIT;
@@ -1394,6 +1416,8 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
OPT_STRING(0, "onto", &options.onto_name,
N_("revision"),
N_("rebase onto given branch instead of upstream")),
+ OPT_BOOL(0, "keep-base", &keep_base,
+ N_("use the merge-base of upstream and branch as the current base")),
OPT_BOOL(0, "no-verify", &ok_to_skip_pre_rebase,
N_("allow pre-rebase hook to run")),
OPT_NEGBIT('q', "quiet", &options.flags,
@@ -1547,6 +1571,13 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
warning(_("git rebase --preserve-merges is deprecated. "
"Use --rebase-merges instead."));
+ if (keep_base) {
+ if (options.onto_name)
+ die(_("cannot combine '--keep-base' with '--onto'"));
+ if (options.root)
+ die(_("cannot combine '--keep-base' with '--root'"));
+ }
+
if (action != ACTION_NONE && !in_progress)
die(_("No rebase in progress?"));
setenv(GIT_REFLOG_ACTION_ENVIRONMENT, "rebase", 0);
@@ -1833,15 +1864,6 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
"'--reschedule-failed-exec'"));
}
- if (options.rebase_merges) {
- if (strategy_options.nr)
- die(_("cannot combine '--rebase-merges' with "
- "'--strategy-option'"));
- if (options.strategy)
- die(_("cannot combine '--rebase-merges' with "
- "'--strategy'"));
- }
-
if (!options.root) {
if (argc < 1) {
struct branch *branch;
@@ -1872,7 +1894,9 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
options.squash_onto = &squash_onto;
options.onto_name = squash_onto_name =
xstrdup(oid_to_hex(&squash_onto));
- }
+ } else
+ options.root_with_onto = 1;
+
options.upstream_name = NULL;
options.upstream = NULL;
if (argc > 1)
@@ -1882,12 +1906,22 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
}
/* Make sure the branch to rebase onto is valid. */
- if (!options.onto_name)
+ 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)
- die(_("'%s': need exactly one merge base"),
- 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 {
@@ -1968,9 +2002,6 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
state_dir_path("autostash", &options);
struct child_process stash = CHILD_PROCESS_INIT;
struct object_id oid;
- struct commit *head =
- lookup_commit_reference(the_repository,
- &options.orig_head);
argv_array_pushl(&stash.args,
"stash", "create", "autostash", NULL);
@@ -1991,17 +2022,9 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
options.state_dir);
write_file(autostash, "%s", oid_to_hex(&oid));
printf(_("Created autostash: %s\n"), buf.buf);
- if (reset_head(&head->object.oid, "reset --hard",
+ if (reset_head(NULL, "reset --hard",
NULL, RESET_HEAD_HARD, NULL, NULL) < 0)
die(_("could not reset --hard"));
- printf(_("HEAD is now at %s"),
- find_unique_abbrev(&head->object.oid,
- DEFAULT_ABBREV));
- strbuf_reset(&buf);
- pp_commit_easy(CMIT_FMT_ONELINE, head, &buf);
- if (buf.len > 0)
- printf(" %s", buf.buf);
- putchar('\n');
if (discard_index(the_repository->index) < 0 ||
repo_read_index(the_repository) < 0)
@@ -2022,13 +2045,13 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
/*
* Check if we are already based on onto with linear history,
- * but this should be done only when upstream and onto are the same
- * and if this is not an interactive rebase.
+ * in which case we could fast-forward without replacing the commits
+ * with new commits recreated by replaying their changes. This
+ * optimization must not be done if this is an interactive rebase.
*/
- if (can_fast_forward(options.onto, &options.orig_head, &merge_base) &&
- !is_interactive(&options) && !options.restrict_revision &&
- options.upstream &&
- !oidcmp(&options.upstream->object.oid, &options.onto->object.oid)) {
+ if (can_fast_forward(options.onto, options.upstream, options.restrict_revision,
+ &options.orig_head, &merge_base) &&
+ !is_interactive(&options)) {
int flag;
if (!(options.flags & REBASE_FORCE)) {
diff --git a/builtin/receive-pack.c b/builtin/receive-pack.c
index dcf3855..411e0b4 100644
--- a/builtin/receive-pack.c
+++ b/builtin/receive-pack.c
@@ -417,24 +417,22 @@ static int copy_to_sideband(int in, int out, void *arg)
return 0;
}
-#define HMAC_BLOCK_SIZE 64
-
-static void hmac_sha1(unsigned char *out,
+static void hmac(unsigned char *out,
const char *key_in, size_t key_len,
const char *text, size_t text_len)
{
- unsigned char key[HMAC_BLOCK_SIZE];
- unsigned char k_ipad[HMAC_BLOCK_SIZE];
- unsigned char k_opad[HMAC_BLOCK_SIZE];
+ unsigned char key[GIT_MAX_BLKSZ];
+ unsigned char k_ipad[GIT_MAX_BLKSZ];
+ unsigned char k_opad[GIT_MAX_BLKSZ];
int i;
- git_SHA_CTX ctx;
+ git_hash_ctx ctx;
/* RFC 2104 2. (1) */
- memset(key, '\0', HMAC_BLOCK_SIZE);
- if (HMAC_BLOCK_SIZE < key_len) {
- git_SHA1_Init(&ctx);
- git_SHA1_Update(&ctx, key_in, key_len);
- git_SHA1_Final(key, &ctx);
+ memset(key, '\0', GIT_MAX_BLKSZ);
+ if (the_hash_algo->blksz < key_len) {
+ the_hash_algo->init_fn(&ctx);
+ the_hash_algo->update_fn(&ctx, key_in, key_len);
+ the_hash_algo->final_fn(key, &ctx);
} else {
memcpy(key, key_in, key_len);
}
@@ -446,29 +444,29 @@ static void hmac_sha1(unsigned char *out,
}
/* RFC 2104 2. (3) & (4) */
- git_SHA1_Init(&ctx);
- git_SHA1_Update(&ctx, k_ipad, sizeof(k_ipad));
- git_SHA1_Update(&ctx, text, text_len);
- git_SHA1_Final(out, &ctx);
+ the_hash_algo->init_fn(&ctx);
+ the_hash_algo->update_fn(&ctx, k_ipad, sizeof(k_ipad));
+ the_hash_algo->update_fn(&ctx, text, text_len);
+ the_hash_algo->final_fn(out, &ctx);
/* RFC 2104 2. (6) & (7) */
- git_SHA1_Init(&ctx);
- git_SHA1_Update(&ctx, k_opad, sizeof(k_opad));
- git_SHA1_Update(&ctx, out, GIT_SHA1_RAWSZ);
- git_SHA1_Final(out, &ctx);
+ the_hash_algo->init_fn(&ctx);
+ the_hash_algo->update_fn(&ctx, k_opad, sizeof(k_opad));
+ the_hash_algo->update_fn(&ctx, out, the_hash_algo->rawsz);
+ the_hash_algo->final_fn(out, &ctx);
}
static char *prepare_push_cert_nonce(const char *path, timestamp_t stamp)
{
struct strbuf buf = STRBUF_INIT;
- unsigned char sha1[GIT_SHA1_RAWSZ];
+ unsigned char hash[GIT_MAX_RAWSZ];
strbuf_addf(&buf, "%s:%"PRItime, path, stamp);
- hmac_sha1(sha1, buf.buf, buf.len, cert_nonce_seed, strlen(cert_nonce_seed));
+ hmac(hash, buf.buf, buf.len, cert_nonce_seed, strlen(cert_nonce_seed));
strbuf_release(&buf);
/* RFC 2104 5. HMAC-SHA1-80 */
- strbuf_addf(&buf, "%"PRItime"-%.*s", stamp, GIT_SHA1_HEXSZ, sha1_to_hex(sha1));
+ strbuf_addf(&buf, "%"PRItime"-%.*s", stamp, (int)the_hash_algo->hexsz, hash_to_hex(hash));
return strbuf_detach(&buf, NULL);
}
@@ -970,7 +968,7 @@ static const char *push_to_deploy(unsigned char *sha1,
if (run_command(&child))
return "Working directory has staged changes";
- read_tree[3] = sha1_to_hex(sha1);
+ read_tree[3] = hash_to_hex(sha1);
child_process_init(&child);
child.argv = read_tree;
child.env = env->argv;
@@ -987,13 +985,13 @@ 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 *sha1,
+static const char *push_to_checkout(unsigned char *hash,
struct argv_array *env,
const char *work_tree)
{
argv_array_pushf(env, "GIT_WORK_TREE=%s", absolute_path(work_tree));
if (run_hook_le(env->argv, push_to_checkout_hook,
- sha1_to_hex(sha1), NULL))
+ hash_to_hex(hash), NULL))
return "push-to-checkout hook declined";
else
return NULL;
diff --git a/builtin/repack.c b/builtin/repack.c
index 632c0c0..78b23d7 100644
--- a/builtin/repack.c
+++ b/builtin/repack.c
@@ -11,6 +11,7 @@
#include "midx.h"
#include "packfile.h"
#include "object-store.h"
+#include "promisor-remote.h"
static int delta_base_offset = 1;
static int pack_kept_objects = -1;
@@ -190,7 +191,7 @@ static int write_oid(const struct object_id *oid, struct packed_git *pack,
die(_("could not start pack-objects to repack promisor objects"));
}
- xwrite(cmd->in, oid_to_hex(oid), GIT_SHA1_HEXSZ);
+ xwrite(cmd->in, oid_to_hex(oid), the_hash_algo->hexsz);
xwrite(cmd->in, "\n", 1);
return 0;
}
@@ -232,6 +233,13 @@ static void repack_promisor_objects(const struct pack_objects_args *args,
/*
* pack-objects creates the .pack and .idx files, but not the
* .promisor file. Create the .promisor file, which is empty.
+ *
+ * NEEDSWORK: fetch-pack sometimes generates non-empty
+ * .promisor files containing the ref names and associated
+ * hashes at the point of generation of the corresponding
+ * packfile, but this would not preserve their contents. Maybe
+ * concatenate the contents of all .promisor files instead of
+ * just creating a new empty file.
*/
promisor_name = mkpathdup("%s-%s.promisor", packtmp,
line.buf);
@@ -361,7 +369,7 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
argv_array_push(&cmd.args, "--all");
argv_array_push(&cmd.args, "--reflog");
argv_array_push(&cmd.args, "--indexed-objects");
- if (repository_format_partial_clone)
+ if (has_promisor_remote())
argv_array_push(&cmd.args, "--exclude-promisor-objects");
if (write_bitmaps > 0)
argv_array_push(&cmd.args, "--write-bitmap-index");
diff --git a/builtin/replace.c b/builtin/replace.c
index 644b21c..bd92dc6 100644
--- a/builtin/replace.c
+++ b/builtin/replace.c
@@ -272,7 +272,7 @@ static int import_object(struct object_id *oid, enum object_type type,
return error(_("unable to spawn mktree"));
}
- if (strbuf_read(&result, cmd.out, 41) < 0) {
+ if (strbuf_read(&result, cmd.out, the_hash_algo->hexsz + 1) < 0) {
error_errno(_("unable to read from mktree"));
close(fd);
close(cmd.out);
@@ -358,14 +358,15 @@ static int replace_parents(struct strbuf *buf, int argc, const char **argv)
struct strbuf new_parents = STRBUF_INIT;
const char *parent_start, *parent_end;
int i;
+ const unsigned hexsz = the_hash_algo->hexsz;
/* find existing parents */
parent_start = buf->buf;
- parent_start += GIT_SHA1_HEXSZ + 6; /* "tree " + "hex sha1" + "\n" */
+ parent_start += hexsz + 6; /* "tree " + "hex sha1" + "\n" */
parent_end = parent_start;
while (starts_with(parent_end, "parent "))
- parent_end += 48; /* "parent " + "hex sha1" + "\n" */
+ parent_end += hexsz + 8; /* "parent " + "hex sha1" + "\n" */
/* prepare new parents */
for (i = 0; i < argc; i++) {
@@ -421,7 +422,7 @@ static int check_one_mergetag(struct commit *commit,
if (get_oid(mergetag_data->argv[i], &oid) < 0)
return error(_("not a valid object name: '%s'"),
mergetag_data->argv[i]);
- if (oideq(&tag->tagged->oid, &oid))
+ if (oideq(get_tagged_oid(tag), &oid))
return 0; /* found */
}
diff --git a/builtin/rev-list.c b/builtin/rev-list.c
index 301ccb9..e28d62e 100644
--- a/builtin/rev-list.c
+++ b/builtin/rev-list.c
@@ -18,7 +18,6 @@
#include "reflog-walk.h"
#include "oidset.h"
#include "packfile.h"
-#include "object-store.h"
static const char rev_list_usage[] =
"git rev-list [OPTION] <commit-id>... [ -- paths... ]\n"
@@ -471,10 +470,6 @@ int cmd_rev_list(int argc, const char **argv, const char *prefix)
parse_list_objects_filter(&filter_options, arg);
if (filter_options.choice && !revs.blob_objects)
die(_("object filtering requires --objects"));
- if (filter_options.choice == LOFC_SPARSE_OID &&
- !filter_options.sparse_oid_value)
- die(_("invalid sparse value '%s'"),
- filter_options.filter_spec);
continue;
}
if (!strcmp(arg, ("--no-" CL_ARG__FILTER))) {
diff --git a/builtin/rev-parse.c b/builtin/rev-parse.c
index f8bbe6d..308c67e 100644
--- a/builtin/rev-parse.c
+++ b/builtin/rev-parse.c
@@ -593,6 +593,7 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix)
const char *name = NULL;
struct object_context unused;
struct strbuf buf = STRBUF_INIT;
+ const int hexsz = the_hash_algo->hexsz;
if (argc > 1 && !strcmp("--parseopt", argv[1]))
return cmd_parseopt(argc - 1, argv + 1, prefix);
@@ -730,8 +731,8 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix)
abbrev = strtoul(arg, NULL, 10);
if (abbrev < MINIMUM_ABBREV)
abbrev = MINIMUM_ABBREV;
- else if (40 <= abbrev)
- abbrev = 40;
+ else if (hexsz <= abbrev)
+ abbrev = hexsz;
continue;
}
if (!strcmp(arg, "--sq")) {
diff --git a/builtin/show-index.c b/builtin/show-index.c
index a6e6788..0826f6a 100644
--- a/builtin/show-index.c
+++ b/builtin/show-index.c
@@ -11,6 +11,7 @@ int cmd_show_index(int argc, const char **argv, const char *prefix)
unsigned nr;
unsigned int version;
static unsigned int top_index[256];
+ const unsigned hashsz = the_hash_algo->rawsz;
if (argc != 1)
usage(show_index_usage);
@@ -36,23 +37,23 @@ int cmd_show_index(int argc, const char **argv, const char *prefix)
}
if (version == 1) {
for (i = 0; i < nr; i++) {
- unsigned int offset, entry[6];
+ unsigned int offset, entry[(GIT_MAX_RAWSZ + 4) / sizeof(unsigned int)];
- if (fread(entry, 4 + 20, 1, stdin) != 1)
+ if (fread(entry, 4 + hashsz, 1, stdin) != 1)
die("unable to read entry %u/%u", i, nr);
offset = ntohl(entry[0]);
- printf("%u %s\n", offset, sha1_to_hex((void *)(entry+1)));
+ printf("%u %s\n", offset, hash_to_hex((void *)(entry+1)));
}
} else {
unsigned off64_nr = 0;
struct {
- unsigned char sha1[20];
+ struct object_id oid;
uint32_t crc;
uint32_t off;
} *entries;
ALLOC_ARRAY(entries, nr);
for (i = 0; i < nr; i++)
- if (fread(entries[i].sha1, 20, 1, stdin) != 1)
+ if (fread(entries[i].oid.hash, hashsz, 1, stdin) != 1)
die("unable to read sha1 %u/%u", i, nr);
for (i = 0; i < nr; i++)
if (fread(&entries[i].crc, 4, 1, stdin) != 1)
@@ -77,7 +78,7 @@ int cmd_show_index(int argc, const char **argv, const char *prefix)
}
printf("%" PRIuMAX " %s (%08"PRIx32")\n",
(uintmax_t) offset,
- sha1_to_hex(entries[i].sha1),
+ oid_to_hex(&entries[i].oid),
ntohl(entries[i].crc));
}
free(entries);
diff --git a/builtin/stash.c b/builtin/stash.c
index b5a301f..4e80617 100644
--- a/builtin/stash.c
+++ b/builtin/stash.c
@@ -396,7 +396,7 @@ static int do_apply_stash(const char *prefix, struct stash_info *info,
const struct object_id *bases[1];
read_cache_preload(NULL);
- if (refresh_cache(REFRESH_QUIET))
+ if (refresh_and_write_cache(REFRESH_QUIET, 0, 0))
return -1;
if (write_cache_as_tree(&c_tree, 0, NULL))
@@ -427,6 +427,8 @@ static int do_apply_stash(const char *prefix, struct stash_info *info,
return error(_("could not save index tree"));
reset_head();
+ discard_cache();
+ read_cache();
}
}
@@ -485,7 +487,7 @@ static int do_apply_stash(const char *prefix, struct stash_info *info,
}
if (quiet) {
- if (refresh_cache(REFRESH_QUIET))
+ if (refresh_and_write_cache(REFRESH_QUIET, 0, 0))
warning("could not refresh index");
} else {
struct child_process cp = CHILD_PROCESS_INIT;
@@ -497,6 +499,10 @@ static int do_apply_stash(const char *prefix, struct stash_info *info,
*/
cp.git_cmd = 1;
cp.dir = prefix;
+ argv_array_pushf(&cp.env_array, GIT_WORK_TREE_ENVIRONMENT"=%s",
+ absolute_path(get_git_work_tree()));
+ argv_array_pushf(&cp.env_array, GIT_DIR_ENVIRONMENT"=%s",
+ absolute_path(get_git_dir()));
argv_array_push(&cp.args, "status");
run_command(&cp);
}
@@ -1129,7 +1135,10 @@ static int do_create_stash(const struct pathspec *ps, struct strbuf *stash_msg_b
prepare_fallback_ident("git stash", "git@stash");
read_cache_preload(NULL);
- refresh_cache(REFRESH_QUIET);
+ if (refresh_and_write_cache(REFRESH_QUIET, 0, 0) < 0) {
+ ret = -1;
+ goto done;
+ }
if (get_oid("HEAD", &info->b_commit)) {
if (!quiet)
@@ -1290,7 +1299,7 @@ static int do_push_stash(const struct pathspec *ps, const char *stash_msg, int q
free(ps_matched);
}
- if (refresh_cache(REFRESH_QUIET)) {
+ if (refresh_and_write_cache(REFRESH_QUIET, 0, 0)) {
ret = -1;
goto done;
}
@@ -1383,7 +1392,7 @@ 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;
argv_array_pushl(&cp.args, "reset", "--hard", "-q",
- NULL);
+ "--no-recurse-submodules", NULL);
if (run_command(&cp)) {
ret = -1;
goto done;
diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c
index 909e77e..2c2395a 100644
--- a/builtin/submodule--helper.c
+++ b/builtin/submodule--helper.c
@@ -424,7 +424,7 @@ static int module_list(int argc, const char **argv, const char *prefix)
const struct cache_entry *ce = list.entries[i];
if (ce_stage(ce))
- printf("%06o %s U\t", ce->ce_mode, sha1_to_hex(null_sha1));
+ printf("%06o %s U\t", ce->ce_mode, oid_to_hex(&null_oid));
else
printf("%06o %s %d\t", ce->ce_mode,
oid_to_hex(&ce->oid), ce_stage(ce));
@@ -1874,7 +1874,7 @@ static int update_clone(int argc, const char **argv, const char *prefix)
};
const char *const git_submodule_helper_usage[] = {
- N_("git submodule--helper update_clone [--prefix=<path>] [<path>...]"),
+ N_("git submodule--helper update-clone [--prefix=<path>] [<path>...]"),
NULL
};
suc.prefix = prefix;
diff --git a/builtin/update-index.c b/builtin/update-index.c
index dff2f4b..49302d9 100644
--- a/builtin/update-index.c
+++ b/builtin/update-index.c
@@ -966,6 +966,7 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
struct parse_opt_ctx_t ctx;
strbuf_getline_fn getline_fn;
int parseopt_state = PARSE_OPT_UNKNOWN;
+ struct repository *r = the_repository;
struct option options[] = {
OPT_BIT('q', NULL, &refresh_args.flags,
N_("continue refresh even when index needs update"),
@@ -1180,11 +1181,12 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
remove_split_index(&the_index);
}
+ prepare_repo_settings(r);
switch (untracked_cache) {
case UC_UNSPECIFIED:
break;
case UC_DISABLE:
- if (git_config_get_untracked_cache() == 1)
+ if (r->settings.core_untracked_cache == UNTRACKED_CACHE_WRITE)
warning(_("core.untrackedCache is set to true; "
"remove or change it, if you really want to "
"disable the untracked cache"));
@@ -1196,7 +1198,7 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
return !test_if_untracked_cache_is_supported();
case UC_ENABLE:
case UC_FORCE:
- if (git_config_get_untracked_cache() == 0)
+ if (r->settings.core_untracked_cache == UNTRACKED_CACHE_REMOVE)
warning(_("core.untrackedCache is set to false; "
"remove or change it, if you really want to "
"enable the untracked cache"));
diff --git a/builtin/worktree.c b/builtin/worktree.c
index a5bb02b..4de44f5 100644
--- a/builtin/worktree.c
+++ b/builtin/worktree.c
@@ -10,7 +10,6 @@
#include "run-command.h"
#include "sigchain.h"
#include "submodule.h"
-#include "refs.h"
#include "utf8.h"
#include "worktree.h"
@@ -350,7 +349,7 @@ static int add_worktree(const char *path, const char *refname,
*/
strbuf_reset(&sb);
strbuf_addf(&sb, "%s/HEAD", sb_repo.buf);
- write_file(sb.buf, "%s", sha1_to_hex(null_sha1));
+ write_file(sb.buf, "%s", oid_to_hex(&null_oid));
strbuf_reset(&sb);
strbuf_addf(&sb, "%s/commondir", sb_repo.buf);
write_file(sb.buf, "../..");
@@ -880,7 +879,7 @@ static void check_clean_worktree(struct worktree *wt,
original_path);
ret = xread(cp.out, buf, sizeof(buf));
if (ret)
- die(_("'%s' is dirty, use --force to delete it"),
+ die(_("'%s' contains modified or untracked files, use --force to delete it"),
original_path);
close(cp.out);
ret = finish_command(&cp);
diff --git a/bulk-checkin.c b/bulk-checkin.c
index 39ee7d6..583aacb 100644
--- a/bulk-checkin.c
+++ b/bulk-checkin.c
@@ -197,7 +197,7 @@ static int deflate_to_pack(struct bulk_checkin_state *state,
git_hash_ctx ctx;
unsigned char obuf[16384];
unsigned header_len;
- struct hashfile_checkpoint checkpoint;
+ struct hashfile_checkpoint checkpoint = {0};
struct pack_idx_entry *idx = NULL;
seekback = lseek(fd, 0, SEEK_CUR);
diff --git a/bundle.c b/bundle.c
index b5d21cd..a85ed3f 100644
--- a/bundle.c
+++ b/bundle.c
@@ -282,7 +282,7 @@ static int write_pack_data(int bundle_fd, struct rev_info *revs)
struct object *object = revs->pending.objects[i].item;
if (object->flags & UNINTERESTING)
write_or_die(pack_objects.in, "^", 1);
- write_or_die(pack_objects.in, oid_to_hex(&object->oid), GIT_SHA1_HEXSZ);
+ write_or_die(pack_objects.in, oid_to_hex(&object->oid), the_hash_algo->hexsz);
write_or_die(pack_objects.in, "\n", 1);
}
close(pack_objects.in);
@@ -414,7 +414,7 @@ static int write_bundle_refs(int bundle_fd, struct rev_info *revs)
}
ref_count++;
- write_or_die(bundle_fd, oid_to_hex(&e->item->oid), 40);
+ write_or_die(bundle_fd, oid_to_hex(&e->item->oid), the_hash_algo->hexsz);
write_or_die(bundle_fd, " ", 1);
write_or_die(bundle_fd, display_ref, strlen(display_ref));
write_or_die(bundle_fd, "\n", 1);
diff --git a/cache-tree.c b/cache-tree.c
index 706ffcf..1bd1b23 100644
--- a/cache-tree.c
+++ b/cache-tree.c
@@ -5,6 +5,7 @@
#include "cache-tree.h"
#include "object-store.h"
#include "replace-object.h"
+#include "promisor-remote.h"
#ifndef DEBUG_CACHE_TREE
#define DEBUG_CACHE_TREE 0
@@ -357,7 +358,7 @@ static int update_one(struct cache_tree *it,
}
ce_missing_ok = mode == S_IFGITLINK || missing_ok ||
- (repository_format_partial_clone &&
+ (has_promisor_remote() &&
ce_skip_worktree(ce));
if (is_null_oid(oid) ||
(!ce_missing_ok && !has_object_file(oid))) {
@@ -407,7 +408,7 @@ static int update_one(struct cache_tree *it,
if (repair) {
struct object_id oid;
hash_object_file(buffer.buf, buffer.len, tree_type, &oid);
- if (has_object_file(&oid))
+ if (has_object_file_with_flags(&oid, OBJECT_INFO_SKIP_FETCH_OBJECT))
oidcpy(&it->oid, &oid);
else
to_invalidate = 1;
@@ -608,11 +609,66 @@ static struct cache_tree *cache_tree_find(struct cache_tree *it, const char *pat
return it;
}
+static int write_index_as_tree_internal(struct object_id *oid,
+ struct index_state *index_state,
+ int cache_tree_valid,
+ int flags,
+ const char *prefix)
+{
+ if (flags & WRITE_TREE_IGNORE_CACHE_TREE) {
+ cache_tree_free(&index_state->cache_tree);
+ cache_tree_valid = 0;
+ }
+
+ if (!index_state->cache_tree)
+ index_state->cache_tree = cache_tree();
+
+ if (!cache_tree_valid && cache_tree_update(index_state, flags) < 0)
+ return WRITE_TREE_UNMERGED_INDEX;
+
+ if (prefix) {
+ struct cache_tree *subtree;
+ subtree = cache_tree_find(index_state->cache_tree, prefix);
+ if (!subtree)
+ return WRITE_TREE_PREFIX_ERROR;
+ oidcpy(oid, &subtree->oid);
+ }
+ else
+ oidcpy(oid, &index_state->cache_tree->oid);
+
+ return 0;
+}
+
+struct tree* write_in_core_index_as_tree(struct repository *repo) {
+ struct object_id o;
+ int was_valid, ret;
+
+ struct index_state *index_state = repo->index;
+ was_valid = index_state->cache_tree &&
+ cache_tree_fully_valid(index_state->cache_tree);
+
+ ret = write_index_as_tree_internal(&o, index_state, was_valid, 0, NULL);
+ if (ret == WRITE_TREE_UNMERGED_INDEX) {
+ int i;
+ fprintf(stderr, "BUG: There are unmerged index entries:\n");
+ for (i = 0; i < index_state->cache_nr; i++) {
+ const struct cache_entry *ce = index_state->cache[i];
+ if (ce_stage(ce))
+ fprintf(stderr, "BUG: %d %.*s\n", ce_stage(ce),
+ (int)ce_namelen(ce), ce->name);
+ }
+ BUG("unmerged index entries when writing inmemory index");
+ }
+
+ return lookup_tree(repo, &index_state->cache_tree->oid);
+}
+
+
int write_index_as_tree(struct object_id *oid, struct index_state *index_state, const char *index_path, int flags, const char *prefix)
{
int entries, was_valid;
struct lock_file lock_file = LOCK_INIT;
- int ret = 0;
+ int ret;
hold_lock_file_for_update(&lock_file, index_path, LOCK_DIE_ON_ERROR);
@@ -621,18 +677,14 @@ int write_index_as_tree(struct object_id *oid, struct index_state *index_state,
ret = WRITE_TREE_UNREADABLE_INDEX;
goto out;
}
- if (flags & WRITE_TREE_IGNORE_CACHE_TREE)
- cache_tree_free(&index_state->cache_tree);
- if (!index_state->cache_tree)
- index_state->cache_tree = cache_tree();
+ was_valid = !(flags & WRITE_TREE_IGNORE_CACHE_TREE) &&
+ index_state->cache_tree &&
+ cache_tree_fully_valid(index_state->cache_tree);
- was_valid = cache_tree_fully_valid(index_state->cache_tree);
- if (!was_valid) {
- if (cache_tree_update(index_state, flags) < 0) {
- ret = WRITE_TREE_UNMERGED_INDEX;
- goto out;
- }
+ ret = write_index_as_tree_internal(oid, index_state, was_valid, flags,
+ prefix);
+ if (!ret && !was_valid) {
write_locked_index(index_state, &lock_file, COMMIT_LOCK);
/* Not being able to write is fine -- we are only interested
* in updating the cache-tree part, and if the next caller
@@ -642,18 +694,6 @@ int write_index_as_tree(struct object_id *oid, struct index_state *index_state,
*/
}
- if (prefix) {
- struct cache_tree *subtree;
- subtree = cache_tree_find(index_state->cache_tree, prefix);
- if (!subtree) {
- ret = WRITE_TREE_PREFIX_ERROR;
- goto out;
- }
- oidcpy(oid, &subtree->oid);
- }
- else
- oidcpy(oid, &index_state->cache_tree->oid);
-
out:
rollback_lock_file(&lock_file);
return ret;
@@ -713,7 +753,7 @@ static struct cache_tree *find_cache_tree_from_traversal(struct cache_tree *root
if (!info->prev)
return root;
our_parent = find_cache_tree_from_traversal(root, info->prev);
- return cache_tree_find(our_parent, info->name.path);
+ return cache_tree_find(our_parent, info->name);
}
int cache_tree_matches_traversal(struct cache_tree *root,
diff --git a/cache-tree.h b/cache-tree.h
index 757bbc4..639bfa5 100644
--- a/cache-tree.h
+++ b/cache-tree.h
@@ -34,7 +34,7 @@ int cache_tree_fully_valid(struct cache_tree *);
int cache_tree_update(struct index_state *, int);
void cache_tree_verify(struct repository *, struct index_state *);
-/* bitmasks to write_cache_as_tree flags */
+/* bitmasks to write_index_as_tree flags */
#define WRITE_TREE_MISSING_OK 1
#define WRITE_TREE_IGNORE_CACHE_TREE 2
#define WRITE_TREE_DRY_RUN 4
@@ -46,6 +46,7 @@ void cache_tree_verify(struct repository *, struct index_state *);
#define WRITE_TREE_UNMERGED_INDEX (-2)
#define WRITE_TREE_PREFIX_ERROR (-3)
+struct tree* write_in_core_index_as_tree(struct repository *repo);
int write_index_as_tree(struct object_id *oid, struct index_state *index_state, const char *index_path, int flags, const char *prefix);
void prime_cache_tree(struct repository *, struct index_state *, struct tree *);
diff --git a/cache.h b/cache.h
index b1da1ab..04cabaa 100644
--- a/cache.h
+++ b/cache.h
@@ -414,6 +414,7 @@ extern struct index_state the_index;
#define add_file_to_cache(path, flags) add_file_to_index(&the_index, (path), (flags))
#define chmod_cache_entry(ce, flip) chmod_index_entry(&the_index, (ce), (flip))
#define refresh_cache(flags) refresh_index(&the_index, (flags), NULL, NULL, NULL)
+#define refresh_and_write_cache(refresh_flags, write_flags, gentle) repo_refresh_and_write_index(the_repository, (refresh_flags), (write_flags), (gentle), NULL, NULL, NULL)
#define ce_match_stat(ce, st, options) ie_match_stat(&the_index, (ce), (st), (options))
#define ce_modified(ce, st, options) ie_modified(&the_index, (ce), (st), (options))
#define cache_dir_exists(name, namelen) index_dir_exists(&the_index, (name), (namelen))
@@ -636,6 +637,9 @@ int daemonize(void);
* at least 'nr' entries; the number of entries currently allocated
* is 'alloc', using the standard growing factor alloc_nr() macro.
*
+ * Consider using ALLOC_GROW_BY instead of ALLOC_GROW as it has some
+ * added niceties.
+ *
* DO NOT USE any expression with side-effect for 'x', 'nr', or 'alloc'.
*/
#define ALLOC_GROW(x, nr, alloc) \
@@ -649,6 +653,25 @@ int daemonize(void);
} \
} while (0)
+/*
+ * Similar to ALLOC_GROW but handles updating of the nr value and
+ * zeroing the bytes of the newly-grown array elements.
+ *
+ * DO NOT USE any expression with side-effect for any of the
+ * arguments.
+ */
+#define ALLOC_GROW_BY(x, nr, increase, alloc) \
+ do { \
+ if (increase) { \
+ size_t new_nr = nr + (increase); \
+ if (new_nr < nr) \
+ BUG("negative growth in ALLOC_GROW_BY"); \
+ ALLOC_GROW(x, new_nr, alloc); \
+ memset((x) + nr, 0, sizeof(*(x)) * (increase)); \
+ nr = new_nr; \
+ } \
+ } while (0)
+
/* Initialize and use the cache information */
struct lock_file;
void preload_index(struct index_state *index,
@@ -725,6 +748,19 @@ struct cache_entry *index_file_exists(struct index_state *istate, const char *na
*/
int index_name_pos(const struct index_state *, const char *name, int namelen);
+/*
+ * Some functions return the negative complement of an insert position when a
+ * precise match was not found but a position was found where the entry would
+ * need to be inserted. This helper protects that logic from any integer
+ * underflow.
+ */
+static inline int index_pos_to_insert_pos(uintmax_t pos)
+{
+ if (pos > INT_MAX)
+ die("overflow: -1 - %"PRIuMAX, pos);
+ return -1 - (int)pos;
+}
+
#define ADD_CACHE_OK_TO_ADD 1 /* Ok to add */
#define ADD_CACHE_OK_TO_REPLACE 2 /* Ok to replace file/directory */
#define ADD_CACHE_SKIP_DFCHECK 4 /* Ok to skip DF conflict checks */
@@ -812,6 +848,23 @@ void fill_stat_cache_info(struct index_state *istate, struct cache_entry *ce, st
#define REFRESH_IN_PORCELAIN 0x0020 /* user friendly output, not "needs update" */
#define REFRESH_PROGRESS 0x0040 /* show progress bar if stderr is tty */
int refresh_index(struct index_state *, unsigned int flags, const struct pathspec *pathspec, char *seen, const char *header_msg);
+/*
+ * Refresh the index and write it to disk.
+ *
+ * 'refresh_flags' is passed directly to 'refresh_index()', while
+ * 'COMMIT_LOCK | write_flags' is passed to 'write_locked_index()', so
+ * the lockfile is always either committed or rolled back.
+ *
+ * If 'gentle' is passed, errors locking the index are ignored.
+ *
+ * Return 1 if refreshing the index returns an error, -1 if writing
+ * the index to disk fails, 0 on success.
+ *
+ * Note that if refreshing the index returns an error, we still write
+ * out the index (unless locking fails).
+ */
+int repo_refresh_and_write_index(struct repository*, unsigned int refresh_flags, unsigned int write_flags, int gentle, const struct pathspec *, char *seen, const char *header_msg);
+
struct cache_entry *refresh_cache_entry(struct index_state *, struct cache_entry *, unsigned int);
void set_alternate_index_output(const char *);
@@ -937,8 +990,6 @@ extern int grafts_replace_parents;
#define GIT_REPO_VERSION 0
#define GIT_REPO_VERSION_READ 1
extern int repository_format_precious_objects;
-extern char *repository_format_partial_clone;
-extern const char *core_partial_clone_filter_default;
extern int repository_format_worktree_config;
/*
@@ -1029,7 +1080,6 @@ const char *repo_find_unique_abbrev(struct repository *r, const struct object_id
int repo_find_unique_abbrev_r(struct repository *r, char *hex, const struct object_id *oid, int len);
#define find_unique_abbrev_r(hex, oid, len) repo_find_unique_abbrev_r(the_repository, hex, oid, len)
-extern const unsigned char null_sha1[GIT_MAX_RAWSZ];
extern const struct object_id null_oid;
static inline int hashcmp(const unsigned char *sha1, const unsigned char *sha2)
@@ -1064,14 +1114,9 @@ static inline int oideq(const struct object_id *oid1, const struct object_id *oi
return hasheq(oid1->hash, oid2->hash);
}
-static inline int is_null_sha1(const unsigned char *sha1)
-{
- return hasheq(sha1, null_sha1);
-}
-
static inline int is_null_oid(const struct object_id *oid)
{
- return hasheq(oid->hash, null_sha1);
+ return oideq(oid, &null_oid);
}
static inline void hashcpy(unsigned char *sha_dst, const unsigned char *sha_src)
@@ -1516,8 +1561,7 @@ struct date_mode {
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, const struct timeval *now,
- struct strbuf *timebuf);
+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);
@@ -1526,7 +1570,7 @@ 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, const struct timeval *now);
+timestamp_t approxidate_relative(const char *date);
void parse_date_format(const char *format, struct date_mode *mode);
int date_overflows(timestamp_t date);
diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
index 8cc7250..4e64a19 100755
--- a/ci/install-dependencies.sh
+++ b/ci/install-dependencies.sh
@@ -40,20 +40,27 @@ osx-clang|osx-gcc)
test -z "$BREW_INSTALL_PACKAGES" ||
brew install $BREW_INSTALL_PACKAGES
brew link --force gettext
+ brew cask install perforce || {
+ # Update the definitions and try again
+ git -C "$(brew --repository)"/Library/Taps/homebrew/homebrew-cask pull &&
+ brew cask install perforce
+ } ||
brew install caskroom/cask/perforce
case "$jobname" in
osx-gcc)
+ brew link gcc ||
brew link gcc@8
;;
esac
;;
StaticAnalysis)
sudo apt-get -q update
- sudo apt-get -q -y install coccinelle
+ sudo apt-get -q -y install coccinelle libcurl4-openssl-dev libssl-dev \
+ libexpat-dev gettext
;;
Documentation)
sudo apt-get -q update
- sudo apt-get -q -y install asciidoc xmlto
+ sudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns
test -n "$ALREADY_HAVE_ASCIIDOCTOR" ||
gem install --version 1.5.8 asciidoctor
diff --git a/ci/lib.sh b/ci/lib.sh
index 44db2d5..c8c2c38 100755
--- a/ci/lib.sh
+++ b/ci/lib.sh
@@ -34,6 +34,11 @@ save_good_tree () {
# successfully before (e.g. because the branch got rebased, changing only
# the commit messages).
skip_good_tree () {
+ if test "$TRAVIS_DEBUG_MODE" = true
+ then
+ return
+ fi
+
if ! good_tree_info="$(grep "^$(git rev-parse $CI_COMMIT^{tree}) " "$good_trees_file")"
then
# Haven't seen this tree yet, or no cached good trees file yet.
@@ -160,7 +165,7 @@ linux-clang|linux-gcc)
export CC=gcc-8
fi
- export GIT_TEST_HTTPD=YesPlease
+ export GIT_TEST_HTTPD=true
# The Linux build installs the defined dependency versions below.
# The OS X build installs much more recent versions, whichever
diff --git a/ci/run-static-analysis.sh b/ci/run-static-analysis.sh
index a19aa7e..65bcebd 100755
--- a/ci/run-static-analysis.sh
+++ b/ci/run-static-analysis.sh
@@ -26,4 +26,7 @@ then
exit 1
fi
+make hdr-check ||
+exit 1
+
save_good_tree
diff --git a/ci/test-documentation.sh b/ci/test-documentation.sh
index d490898..b3e76ef 100755
--- a/ci/test-documentation.sh
+++ b/ci/test-documentation.sh
@@ -8,6 +8,8 @@
filter_log () {
sed -e '/^GIT_VERSION = /d' \
-e '/^ \* new asciidoc flags$/d' \
+ -e '/stripped namespace before processing/d' \
+ -e '/Attributed.*IDs for element/d' \
"$1"
}
diff --git a/column.c b/column.c
index 7a17c14..4a38eed 100644
--- a/column.c
+++ b/column.c
@@ -23,18 +23,7 @@ struct column_data {
/* return length of 's' in letters, ANSI escapes stripped */
static int item_length(const char *s)
{
- int len, i = 0;
- struct strbuf str = STRBUF_INIT;
-
- strbuf_addstr(&str, s);
- while ((s = strstr(str.buf + i, "\033[")) != NULL) {
- int len = strspn(s + 2, "0123456789;");
- i = s - str.buf;
- strbuf_remove(&str, i, len + 3); /* \033[<len><func char> */
- }
- len = utf8_strwidth(str.buf);
- strbuf_release(&str);
- return len;
+ return utf8_strnwidth(s, -1, 1);
}
/*
diff --git a/combine-diff.c b/combine-diff.c
index 3e49f3b..d5c4d83 100644
--- a/combine-diff.c
+++ b/combine-diff.c
@@ -930,7 +930,7 @@ static void show_combined_header(struct combine_diff_path *elem,
int show_file_header)
{
struct diff_options *opt = &rev->diffopt;
- int abbrev = opt->flags.full_index ? GIT_SHA1_HEXSZ : DEFAULT_ABBREV;
+ int abbrev = opt->flags.full_index ? the_hash_algo->hexsz : DEFAULT_ABBREV;
const char *a_prefix = opt->a_prefix ? opt->a_prefix : "a/";
const char *b_prefix = opt->b_prefix ? opt->b_prefix : "b/";
const char *c_meta = diff_get_color_opt(opt, DIFF_METAINFO);
diff --git a/commit-graph.c b/commit-graph.c
index fe954ab..0aea7b2 100644
--- a/commit-graph.c
+++ b/commit-graph.c
@@ -41,6 +41,9 @@
#define GRAPH_MIN_SIZE (GRAPH_HEADER_SIZE + 4 * GRAPH_CHUNKLOOKUP_WIDTH \
+ GRAPH_FANOUT_SIZE + the_hash_algo->rawsz)
+/* Remember to update object flag allocation in object.h */
+#define REACHABLE (1u<<15)
+
char *get_commit_graph_filename(const char *obj_dir)
{
char *filename = xstrfmt("%s/info/commit-graph", obj_dir);
@@ -467,19 +470,26 @@ static void prepare_commit_graph_one(struct repository *r, const char *obj_dir)
static int prepare_commit_graph(struct repository *r)
{
struct object_directory *odb;
- int config_value;
- if (git_env_bool(GIT_TEST_COMMIT_GRAPH_DIE_ON_LOAD, 0))
- die("dying as requested by the '%s' variable on commit-graph load!",
- GIT_TEST_COMMIT_GRAPH_DIE_ON_LOAD);
+ /*
+ * This must come before the "already attempted?" check below, because
+ * we want to disable even an already-loaded graph file.
+ */
+ if (r->commit_graph_disabled)
+ return 0;
if (r->objects->commit_graph_attempted)
return !!r->objects->commit_graph;
r->objects->commit_graph_attempted = 1;
+ if (git_env_bool(GIT_TEST_COMMIT_GRAPH_DIE_ON_LOAD, 0))
+ die("dying as requested by the '%s' variable on commit-graph load!",
+ GIT_TEST_COMMIT_GRAPH_DIE_ON_LOAD);
+
+ prepare_repo_settings(r);
+
if (!git_env_bool(GIT_TEST_COMMIT_GRAPH, 0) &&
- (repo_config_get_bool(r, "core.commitgraph", &config_value) ||
- !config_value))
+ r->settings.core_commit_graph != 1)
/*
* This repository is not configured to use commit graphs, so
* do not load one. (But report commit_graph_attempted anyway
@@ -783,7 +793,8 @@ struct write_commit_graph_context {
unsigned append:1,
report_progress:1,
- split:1;
+ split:1,
+ check_oids:1;
const struct split_commit_graph_opts *split_opts;
};
@@ -838,12 +849,19 @@ static void write_graph_chunk_data(struct hashfile *f, int hash_len,
while (list < last) {
struct commit_list *parent;
+ struct object_id *tree;
int edge_value;
uint32_t packedDate[2];
display_progress(ctx->progress, ++ctx->progress_cnt);
- parse_commit_no_graph(*list);
- hashwrite(f, get_commit_tree_oid(*list)->hash, hash_len);
+ if (parse_commit_no_graph(*list))
+ die(_("unable to parse commit %s"),
+ oid_to_hex(&(*list)->object.oid));
+ tree = get_commit_tree_oid(*list);
+ if (!tree)
+ die(_("unable to get tree for %s"),
+ oid_to_hex(&(*list)->object.oid));
+ hashwrite(f, tree->hash, hash_len);
parent = (*list)->parents;
@@ -1015,11 +1033,11 @@ static void add_missing_parents(struct write_commit_graph_context *ctx, struct c
{
struct commit_list *parent;
for (parent = commit->parents; parent; parent = parent->next) {
- if (!(parent->item->object.flags & UNINTERESTING)) {
+ if (!(parent->item->object.flags & REACHABLE)) {
ALLOC_GROW(ctx->oids.list, ctx->oids.nr + 1, ctx->oids.alloc);
oidcpy(&ctx->oids.list[ctx->oids.nr], &(parent->item->object.oid));
ctx->oids.nr++;
- parent->item->object.flags |= UNINTERESTING;
+ parent->item->object.flags |= REACHABLE;
}
}
}
@@ -1037,7 +1055,7 @@ static void close_reachable(struct write_commit_graph_context *ctx)
display_progress(ctx->progress, i + 1);
commit = lookup_commit(ctx->r, &ctx->oids.list[i]);
if (commit)
- commit->object.flags |= UNINTERESTING;
+ commit->object.flags |= REACHABLE;
}
stop_progress(&ctx->progress);
@@ -1049,7 +1067,7 @@ static void close_reachable(struct write_commit_graph_context *ctx)
if (ctx->report_progress)
ctx->progress = start_delayed_progress(
_("Expanding reachable commits in commit graph"),
- ctx->oids.nr);
+ 0);
for (i = 0; i < ctx->oids.nr; i++) {
display_progress(ctx->progress, i + 1);
commit = lookup_commit(ctx->r, &ctx->oids.list[i]);
@@ -1074,7 +1092,7 @@ static void close_reachable(struct write_commit_graph_context *ctx)
commit = lookup_commit(ctx->r, &ctx->oids.list[i]);
if (commit)
- commit->object.flags &= ~UNINTERESTING;
+ commit->object.flags &= ~REACHABLE;
}
stop_progress(&ctx->progress);
}
@@ -1134,7 +1152,8 @@ static int add_ref_to_list(const char *refname,
return 0;
}
-int write_commit_graph_reachable(const char *obj_dir, unsigned int flags,
+int write_commit_graph_reachable(const char *obj_dir,
+ enum commit_graph_write_flags flags,
const struct split_commit_graph_opts *split_opts)
{
struct string_list list = STRING_LIST_INIT_DUP;
@@ -1193,8 +1212,8 @@ static int fill_oids_from_packs(struct write_commit_graph_context *ctx,
return 0;
}
-static void fill_oids_from_commit_hex(struct write_commit_graph_context *ctx,
- struct string_list *commit_hex)
+static int fill_oids_from_commit_hex(struct write_commit_graph_context *ctx,
+ struct string_list *commit_hex)
{
uint32_t i;
struct strbuf progress_title = STRBUF_INIT;
@@ -1215,20 +1234,21 @@ static void fill_oids_from_commit_hex(struct write_commit_graph_context *ctx,
struct commit *result;
display_progress(ctx->progress, i + 1);
- if (commit_hex->items[i].string &&
- parse_oid_hex(commit_hex->items[i].string, &oid, &end))
- continue;
-
- result = lookup_commit_reference_gently(ctx->r, &oid, 1);
-
- if (result) {
+ if (!parse_oid_hex(commit_hex->items[i].string, &oid, &end) &&
+ (result = lookup_commit_reference_gently(ctx->r, &oid, 1))) {
ALLOC_GROW(ctx->oids.list, ctx->oids.nr + 1, ctx->oids.alloc);
oidcpy(&ctx->oids.list[ctx->oids.nr], &(result->object.oid));
ctx->oids.nr++;
+ } else if (ctx->check_oids) {
+ error(_("invalid commit object id: %s"),
+ commit_hex->items[i].string);
+ return -1;
}
}
stop_progress(&ctx->progress);
strbuf_release(&progress_title);
+
+ return 0;
}
static void fill_oids_from_all_packs(struct write_commit_graph_context *ctx)
@@ -1276,7 +1296,6 @@ static uint32_t count_distinct_commits(struct write_commit_graph_context *ctx)
static void copy_oids_to_commits(struct write_commit_graph_context *ctx)
{
uint32_t i;
- struct commit_list *parent;
ctx->num_extra_edges = 0;
if (ctx->report_progress)
@@ -1284,7 +1303,8 @@ static void copy_oids_to_commits(struct write_commit_graph_context *ctx)
_("Finding extra edges in commit graph"),
ctx->oids.nr);
for (i = 0; i < ctx->oids.nr; i++) {
- int num_parents = 0;
+ unsigned int num_parents;
+
display_progress(ctx->progress, i + 1);
if (i > 0 && oideq(&ctx->oids.list[i - 1], &ctx->oids.list[i]))
continue;
@@ -1298,10 +1318,7 @@ static void copy_oids_to_commits(struct write_commit_graph_context *ctx)
parse_commit_no_graph(ctx->commits.list[ctx->commits.nr]);
- for (parent = ctx->commits.list[ctx->commits.nr]->parents;
- parent; parent = parent->next)
- num_parents++;
-
+ num_parents = commit_list_count(ctx->commits.list[ctx->commits.nr]->parents);
if (num_parents > 2)
ctx->num_extra_edges += num_parents - 1;
@@ -1519,8 +1536,8 @@ static int write_commit_graph_file(struct write_commit_graph_context *ctx)
static void split_graph_merge_strategy(struct write_commit_graph_context *ctx)
{
- struct commit_graph *g = ctx->r->objects->commit_graph;
- uint32_t num_commits = ctx->commits.nr;
+ struct commit_graph *g;
+ uint32_t num_commits;
uint32_t i;
int max_commits = 0;
@@ -1532,6 +1549,7 @@ static void split_graph_merge_strategy(struct write_commit_graph_context *ctx)
}
g = ctx->r->objects->commit_graph;
+ num_commits = ctx->commits.nr;
ctx->num_commit_graphs_after = ctx->num_commit_graphs_before + 1;
while (g && (g->num_commits <= size_mult * num_commits ||
@@ -1613,8 +1631,7 @@ static int commit_compare(const void *_a, const void *_b)
static void sort_and_scan_merged_commits(struct write_commit_graph_context *ctx)
{
- uint32_t i, num_parents;
- struct commit_list *parent;
+ uint32_t i;
if (ctx->report_progress)
ctx->progress = start_delayed_progress(
@@ -1632,10 +1649,9 @@ static void sort_and_scan_merged_commits(struct write_commit_graph_context *ctx)
die(_("unexpected duplicate commit id %s"),
oid_to_hex(&ctx->commits.list[i]->object.oid));
} else {
- num_parents = 0;
- for (parent = ctx->commits.list[i]->parents; parent; parent = parent->next)
- num_parents++;
+ unsigned int num_parents;
+ num_parents = commit_list_count(ctx->commits.list[i]->parents);
if (num_parents > 2)
ctx->num_extra_edges += num_parents - 1;
}
@@ -1752,7 +1768,7 @@ out:
int write_commit_graph(const char *obj_dir,
struct string_list *pack_indexes,
struct string_list *commit_hex,
- unsigned int flags,
+ enum commit_graph_write_flags flags,
const struct split_commit_graph_opts *split_opts)
{
struct write_commit_graph_context *ctx;
@@ -1773,9 +1789,10 @@ int write_commit_graph(const char *obj_dir,
if (len && ctx->obj_dir[len - 1] == '/')
ctx->obj_dir[len - 1] = 0;
- ctx->append = flags & COMMIT_GRAPH_APPEND ? 1 : 0;
- ctx->report_progress = flags & COMMIT_GRAPH_PROGRESS ? 1 : 0;
- ctx->split = flags & COMMIT_GRAPH_SPLIT ? 1 : 0;
+ ctx->append = flags & COMMIT_GRAPH_WRITE_APPEND ? 1 : 0;
+ ctx->report_progress = flags & COMMIT_GRAPH_WRITE_PROGRESS ? 1 : 0;
+ ctx->split = flags & COMMIT_GRAPH_WRITE_SPLIT ? 1 : 0;
+ ctx->check_oids = flags & COMMIT_GRAPH_WRITE_CHECK_OIDS ? 1 : 0;
ctx->split_opts = split_opts;
if (ctx->split) {
@@ -1830,8 +1847,10 @@ int write_commit_graph(const char *obj_dir,
goto cleanup;
}
- if (commit_hex)
- fill_oids_from_commit_hex(ctx, commit_hex);
+ if (commit_hex) {
+ if ((res = fill_oids_from_commit_hex(ctx, commit_hex)))
+ goto cleanup;
+ }
if (!pack_indexes && !commit_hex)
fill_oids_from_all_packs(ctx);
@@ -1986,8 +2005,10 @@ int verify_commit_graph(struct repository *r, struct commit_graph *g, int flags)
if (verify_commit_graph_error & ~VERIFY_COMMIT_GRAPH_ERROR_HASH)
return verify_commit_graph_error;
- progress = start_progress(_("Verifying commits in commit graph"),
- g->num_commits);
+ if (flags & COMMIT_GRAPH_WRITE_PROGRESS)
+ progress = start_progress(_("Verifying commits in commit graph"),
+ g->num_commits);
+
for (i = 0; i < g->num_commits; i++) {
struct commit *graph_commit, *odb_commit;
struct commit_list *graph_parents, *odb_parents;
@@ -2095,3 +2116,8 @@ void free_commit_graph(struct commit_graph *g)
free(g->filename);
free(g);
}
+
+void disable_commit_graph(struct repository *r)
+{
+ r->commit_graph_disabled = 1;
+}
diff --git a/commit-graph.h b/commit-graph.h
index df9a3b2..7f5c933 100644
--- a/commit-graph.h
+++ b/commit-graph.h
@@ -71,9 +71,13 @@ struct commit_graph *parse_commit_graph(void *graph_map, int fd,
*/
int generation_numbers_enabled(struct repository *r);
-#define COMMIT_GRAPH_APPEND (1 << 0)
-#define COMMIT_GRAPH_PROGRESS (1 << 1)
-#define COMMIT_GRAPH_SPLIT (1 << 2)
+enum commit_graph_write_flags {
+ COMMIT_GRAPH_WRITE_APPEND = (1 << 0),
+ COMMIT_GRAPH_WRITE_PROGRESS = (1 << 1),
+ COMMIT_GRAPH_WRITE_SPLIT = (1 << 2),
+ /* Make sure that each OID in the input is a valid commit OID. */
+ COMMIT_GRAPH_WRITE_CHECK_OIDS = (1 << 3)
+};
struct split_commit_graph_opts {
int size_multiple;
@@ -87,12 +91,13 @@ struct split_commit_graph_opts {
* is not compatible with the commit-graph feature, then the
* methods will return 0 without writing a commit-graph.
*/
-int write_commit_graph_reachable(const char *obj_dir, unsigned int flags,
+int write_commit_graph_reachable(const char *obj_dir,
+ enum commit_graph_write_flags flags,
const struct split_commit_graph_opts *split_opts);
int write_commit_graph(const char *obj_dir,
struct string_list *pack_indexes,
struct string_list *commit_hex,
- unsigned int flags,
+ enum commit_graph_write_flags flags,
const struct split_commit_graph_opts *split_opts);
#define COMMIT_GRAPH_VERIFY_SHALLOW (1 << 0)
@@ -102,4 +107,10 @@ int verify_commit_graph(struct repository *r, struct commit_graph *g, int flags)
void close_commit_graph(struct raw_object_store *);
void free_commit_graph(struct commit_graph *);
+/*
+ * Disable further use of the commit graph in this process when parsing a
+ * "struct commit".
+ */
+void disable_commit_graph(struct repository *r);
+
#endif
diff --git a/commit-reach.c b/commit-reach.c
index 3ea1747..4ca7e70 100644
--- a/commit-reach.c
+++ b/commit-reach.c
@@ -10,7 +10,6 @@
#include "commit-reach.h"
/* Remember to update object flag allocation in object.h */
-#define REACHABLE (1u<<15)
#define PARENT1 (1u<<16)
#define PARENT2 (1u<<17)
#define STALE (1u<<18)
diff --git a/commit.c b/commit.c
index a98de16..40890ae 100644
--- a/commit.c
+++ b/commit.c
@@ -358,14 +358,15 @@ struct tree *repo_get_commit_tree(struct repository *r,
struct object_id *get_commit_tree_oid(const struct commit *commit)
{
- return &get_commit_tree(commit)->object.oid;
+ struct tree *tree = get_commit_tree(commit);
+ return tree ? &tree->object.oid : NULL;
}
void release_commit_memory(struct parsed_object_pool *pool, struct commit *c)
{
set_commit_tree(c, NULL);
- c->index = 0;
free_commit_buffer(pool, c);
+ c->index = 0;
free_commit_list(c->parents);
c->object.parsed = 0;
diff --git a/common-main.c b/common-main.c
index 582a7b1..71e21dd 100644
--- a/common-main.c
+++ b/common-main.c
@@ -39,16 +39,16 @@ int main(int argc, const char **argv)
git_resolve_executable_dir(argv[0]);
- trace2_initialize();
- trace2_cmd_start(argv);
- trace2_collect_process_info(TRACE2_PROCESS_INFO_STARTUP);
-
git_setup_gettext();
initialize_the_repository();
attr_start();
+ trace2_initialize();
+ trace2_cmd_start(argv);
+ trace2_collect_process_info(TRACE2_PROCESS_INFO_STARTUP);
+
result = cmd_main(argc, argv);
trace2_cmd_exit(result);
diff --git a/compat/mingw.c b/compat/mingw.c
index 738f0a8..fe60923 100644
--- a/compat/mingw.c
+++ b/compat/mingw.c
@@ -363,6 +363,8 @@ static inline int needs_hiding(const char *path)
/* ignore trailing slashes */
if (*path)
basename = path;
+ else
+ break;
}
if (hide_dotfiles == HIDE_DOTFILES_TRUE)
@@ -1161,14 +1163,21 @@ static char *lookup_prog(const char *dir, int dirlen, const char *cmd,
int isexe, int exe_only)
{
char path[MAX_PATH];
+ wchar_t wpath[MAX_PATH];
snprintf(path, sizeof(path), "%.*s\\%s.exe", dirlen, dir, cmd);
- if (!isexe && access(path, F_OK) == 0)
+ if (xutftowcs_path(wpath, path) < 0)
+ return NULL;
+
+ if (!isexe && _waccess(wpath, F_OK) == 0)
return xstrdup(path);
- path[strlen(path)-4] = '\0';
- if ((!exe_only || isexe) && access(path, F_OK) == 0)
- if (!(GetFileAttributes(path) & FILE_ATTRIBUTE_DIRECTORY))
+ wpath[wcslen(wpath)-4] = '\0';
+ if ((!exe_only || isexe) && _waccess(wpath, F_OK) == 0) {
+ if (!(GetFileAttributesW(wpath) & FILE_ATTRIBUTE_DIRECTORY)) {
+ path[strlen(path)-4] = '\0';
return xstrdup(path);
+ }
+ }
return NULL;
}
@@ -1229,11 +1238,6 @@ static int wenvcmp(const void *a, const void *b)
return _wcsnicmp(p, q, p_len);
}
-/* We need a stable sort to convert the environment between UTF-16 <-> UTF-8 */
-#ifndef INTERNAL_QSORT
-#include "qsort.c"
-#endif
-
/*
* Build an environment block combining the inherited environment
* merged with the given list of settings.
@@ -1265,15 +1269,15 @@ static wchar_t *make_environment_block(char **deltaenv)
}
ALLOC_ARRAY(result, size);
- memcpy(result, wenv, size * sizeof(*wenv));
+ COPY_ARRAY(result, wenv, size);
FreeEnvironmentStringsW(wenv);
return result;
}
/*
* If there is a deltaenv, let's accumulate all keys into `array`,
- * sort them using the stable git_qsort() and then copy, skipping
- * duplicate keys
+ * sort them using the stable git_stable_qsort() and then copy,
+ * skipping duplicate keys
*/
for (p = wenv; p && *p; ) {
ALLOC_GROW(array, nr + 1, alloc);
@@ -1296,7 +1300,7 @@ static wchar_t *make_environment_block(char **deltaenv)
p += wlen + 1;
}
- git_qsort(array, nr, sizeof(*array), wenvcmp);
+ git_stable_qsort(array, nr, sizeof(*array), wenvcmp);
ALLOC_ARRAY(result, size + delta_size);
for (p = result, i = 0; i < nr; i++) {
@@ -1309,7 +1313,7 @@ static wchar_t *make_environment_block(char **deltaenv)
continue;
size = wcslen(array[i]) + 1;
- memcpy(p, array[i], size * sizeof(*p));
+ COPY_ARRAY(p, array[i], size);
p += size;
}
*p = L'\0';
@@ -1663,6 +1667,8 @@ char *mingw_getenv(const char *name)
if (!w_key)
die("Out of memory, (tried to allocate %u wchar_t's)", len_key);
xutftowcs(w_key, name, len_key);
+ /* GetEnvironmentVariableW() only sets the last error upon failure */
+ SetLastError(ERROR_SUCCESS);
len_value = GetEnvironmentVariableW(w_key, w_value, ARRAY_SIZE(w_value));
if (!len_value && GetLastError() == ERROR_ENVVAR_NOT_FOUND) {
free(w_key);
diff --git a/compat/mingw.h b/compat/mingw.h
index a03e40e..9ad204c 100644
--- a/compat/mingw.h
+++ b/compat/mingw.h
@@ -11,7 +11,7 @@ typedef _sigset_t sigset_t;
#undef _POSIX_THREAD_SAFE_FUNCTIONS
#endif
-extern int mingw_core_config(const char *var, const char *value, void *cb);
+int mingw_core_config(const char *var, const char *value, void *cb);
#define platform_core_config mingw_core_config
/*
@@ -443,7 +443,7 @@ static inline void convert_slashes(char *path)
*path = '/';
}
#define PATH_SEP ';'
-extern char *mingw_query_user_email(void);
+char *mingw_query_user_email(void);
#define query_user_email mingw_query_user_email
#if !defined(__MINGW64_VERSION_MAJOR) && (!defined(_MSC_VER) || _MSC_VER < 1800)
#define PRIuMAX "I64u"
@@ -580,4 +580,4 @@ int main(int argc, const char **argv);
/*
* Used by Pthread API implementation for Windows
*/
-extern int err_win_to_posix(DWORD winerr);
+int err_win_to_posix(DWORD winerr);
diff --git a/compat/nedmalloc/malloc.c.h b/compat/nedmalloc/malloc.c.h
index b833ff9..9134349 100644
--- a/compat/nedmalloc/malloc.c.h
+++ b/compat/nedmalloc/malloc.c.h
@@ -1755,10 +1755,10 @@ static FORCEINLINE void pthread_release_lock (MLOCK_T *sl) {
assert(sl->l != 0);
assert(sl->threadid == CURRENT_THREAD);
if (--sl->c == 0) {
- sl->threadid = 0;
volatile unsigned int* lp = &sl->l;
int prev = 0;
int ret;
+ sl->threadid = 0;
__asm__ __volatile__ ("lock; xchgl %0, %1"
: "=r" (ret)
: "m" (*(lp)), "0"(prev)
@@ -3066,7 +3066,7 @@ static int init_mparams(void) {
#if !ONLY_MSPACES
/* Set up lock for main malloc area */
gm->mflags = mparams.default_mflags;
- INITIAL_LOCK(&gm->mutex);
+ (void)INITIAL_LOCK(&gm->mutex);
#endif
#if (FOOTERS && !INSECURE)
@@ -5017,7 +5017,7 @@ static mstate init_user_mstate(char* tbase, size_t tsize) {
mchunkptr msp = align_as_chunk(tbase);
mstate m = (mstate)(chunk2mem(msp));
memset(m, 0, msize);
- INITIAL_LOCK(&m->mutex);
+ (void)INITIAL_LOCK(&m->mutex);
msp->head = (msize|PINUSE_BIT|CINUSE_BIT);
m->seg.base = m->least_addr = tbase;
m->seg.size = m->footprint = m->max_footprint = tsize;
diff --git a/compat/vcbuild/scripts/clink.pl b/compat/vcbuild/scripts/clink.pl
index c7b021b..ec95a3b 100755
--- a/compat/vcbuild/scripts/clink.pl
+++ b/compat/vcbuild/scripts/clink.pl
@@ -68,8 +68,54 @@ while (@ARGV) {
} elsif ("$arg" =~ /^-L/ && "$arg" ne "-LTCG") {
$arg =~ s/^-L/-LIBPATH:/;
push(@lflags, $arg);
- } elsif ("$arg" =~ /^-R/) {
+ } elsif ("$arg" =~ /^-[Rl]/) {
# eat
+ } elsif ("$arg" eq "-Werror") {
+ push(@cflags, "-WX");
+ } elsif ("$arg" eq "-Wall") {
+ # cl.exe understands -Wall, but it is really overzealous
+ push(@cflags, "-W4");
+ # disable the "signed/unsigned mismatch" warnings; our source code violates that
+ push(@cflags, "-wd4018");
+ push(@cflags, "-wd4245");
+ push(@cflags, "-wd4389");
+ # disable the "unreferenced formal parameter" warning; our source code violates that
+ push(@cflags, "-wd4100");
+ # disable the "conditional expression is constant" warning; our source code violates that
+ push(@cflags, "-wd4127");
+ # disable the "const object should be initialized" warning; these warnings affect only objects that are `static`
+ push(@cflags, "-wd4132");
+ # disable the "function/data pointer conversion in expression" warning; our source code violates that
+ push(@cflags, "-wd4152");
+ # disable the "non-constant aggregate initializer" warning; our source code violates that
+ push(@cflags, "-wd4204");
+ # disable the "cannot be initialized using address of automatic variable" warning; our source code violates that
+ push(@cflags, "-wd4221");
+ # disable the "possible loss of data" warnings; our source code violates that
+ push(@cflags, "-wd4244");
+ push(@cflags, "-wd4267");
+ # disable the "array is too small to include a terminating null character" warning; we ab-use strings to initialize OIDs
+ push(@cflags, "-wd4295");
+ # disable the "'<<': result of 32-bit shift implicitly converted to 64 bits" warning; our source code violates that
+ push(@cflags, "-wd4334");
+ # disable the "declaration hides previous local declaration" warning; our source code violates that
+ push(@cflags, "-wd4456");
+ # disable the "declaration hides function parameter" warning; our source code violates that
+ push(@cflags, "-wd4457");
+ # disable the "declaration hides global declaration" warning; our source code violates that
+ push(@cflags, "-wd4459");
+ # disable the "potentially uninitialized local variable '<name>' used" warning; our source code violates that
+ push(@cflags, "-wd4701");
+ # disable the "unreachable code" warning; our source code violates that
+ push(@cflags, "-wd4702");
+ # disable the "potentially uninitialized local pointer variable used" warning; our source code violates that
+ push(@cflags, "-wd4703");
+ # disable the "assignment within conditional expression" warning; our source code violates that
+ push(@cflags, "-wd4706");
+ # disable the "'inet_ntoa': Use inet_ntop() or InetNtop() instead" warning; our source code violates that
+ push(@cflags, "-wd4996");
+ } elsif ("$arg" =~ /^-W[a-z]/) {
+ # let's ignore those
} else {
push(@args, $arg);
}
diff --git a/compat/win32/path-utils.h b/compat/win32/path-utils.h
index 0f70d43..8ed062a 100644
--- a/compat/win32/path-utils.h
+++ b/compat/win32/path-utils.h
@@ -1,3 +1,6 @@
+#ifndef WIN32_PATH_UTILS_H
+#define WIN32_PATH_UTILS_H
+
#define has_dos_drive_prefix(path) \
(isalpha(*(path)) && (path)[1] == ':' ? 2 : 0)
int win32_skip_dos_drive_prefix(char **path);
@@ -18,3 +21,5 @@ static inline char *win32_find_last_dir_sep(const char *path)
#define find_last_dir_sep win32_find_last_dir_sep
int win32_offset_1st_component(const char *path);
#define offset_1st_component win32_offset_1st_component
+
+#endif
diff --git a/compat/win32/pthread.h b/compat/win32/pthread.h
index c6cb8dd..737983d 100644
--- a/compat/win32/pthread.h
+++ b/compat/win32/pthread.h
@@ -50,8 +50,8 @@ typedef struct {
DWORD tid;
} pthread_t;
-extern int pthread_create(pthread_t *thread, const void *unused,
- void *(*start_routine)(void*), void *arg);
+int pthread_create(pthread_t *thread, const void *unused,
+ void *(*start_routine)(void*), void *arg);
/*
* To avoid the need of copying a struct, we use small macro wrapper to pass
@@ -59,10 +59,10 @@ extern int pthread_create(pthread_t *thread, const void *unused,
*/
#define pthread_join(a, b) win32_pthread_join(&(a), (b))
-extern int win32_pthread_join(pthread_t *thread, void **value_ptr);
+int win32_pthread_join(pthread_t *thread, void **value_ptr);
#define pthread_equal(t1, t2) ((t1).tid == (t2).tid)
-extern pthread_t pthread_self(void);
+pthread_t pthread_self(void);
static inline void NORETURN pthread_exit(void *ret)
{
diff --git a/compat/winansi.c b/compat/winansi.c
index cacd82c..54fd701 100644
--- a/compat/winansi.c
+++ b/compat/winansi.c
@@ -546,7 +546,7 @@ static HANDLE swap_osfhnd(int fd, HANDLE new_handle)
typedef struct _OBJECT_NAME_INFORMATION
{
UNICODE_STRING Name;
- WCHAR NameBuffer[0];
+ WCHAR NameBuffer[FLEX_ARRAY];
} OBJECT_NAME_INFORMATION, *POBJECT_NAME_INFORMATION;
#define ObjectNameInformation 1
diff --git a/config.c b/config.c
index 3900e49..e7052b3 100644
--- a/config.c
+++ b/config.c
@@ -275,7 +275,7 @@ static int include_by_branch(const char *cond, size_t cond_len)
int flags;
int ret;
struct strbuf pattern = STRBUF_INIT;
- const char *refname = !the_repository || !the_repository->gitdir ?
+ const char *refname = !the_repository->gitdir ?
NULL : resolve_ref_unsafe("HEAD", 0, NULL, &flags);
const char *shortname;
@@ -1204,7 +1204,7 @@ static int git_default_core_config(const char *var, const char *value, void *cb)
default_abbrev = -1;
else {
int abbrev = git_config_int(var, value);
- if (abbrev < minimum_abbrev || abbrev > 40)
+ if (abbrev < minimum_abbrev || abbrev > the_hash_algo->hexsz)
return error(_("abbrev length out of range: %d"), abbrev);
default_abbrev = abbrev;
}
@@ -1379,11 +1379,6 @@ static int git_default_core_config(const char *var, const char *value, void *cb)
return 0;
}
- if (!strcmp(var, "core.partialclonefilter")) {
- return git_config_string(&core_partial_clone_filter_default,
- var, value);
- }
-
if (!strcmp(var, "core.usereplacerefs")) {
read_replace_refs = git_config_bool(var, value);
return 0;
@@ -1861,9 +1856,9 @@ static struct config_set_element *configset_find_element(struct config_set *cs,
if (git_config_parse_key(key, &normalized_key, NULL))
return NULL;
- hashmap_entry_init(&k, strhash(normalized_key));
+ hashmap_entry_init(&k.ent, strhash(normalized_key));
k.key = normalized_key;
- found_entry = hashmap_get(&cs->config_hash, &k, NULL);
+ found_entry = hashmap_get_entry(&cs->config_hash, &k, ent, NULL);
free(normalized_key);
return found_entry;
}
@@ -1882,10 +1877,10 @@ static int configset_add_value(struct config_set *cs, const char *key, const cha
*/
if (!e) {
e = xmalloc(sizeof(*e));
- hashmap_entry_init(e, strhash(key));
+ hashmap_entry_init(&e->ent, strhash(key));
e->key = xstrdup(key);
string_list_init(&e->value_list, 1);
- hashmap_add(&cs->config_hash, e);
+ hashmap_add(&cs->config_hash, &e->ent);
}
si = string_list_append_nodup(&e->value_list, xstrdup_or_null(value));
@@ -1913,12 +1908,14 @@ static int configset_add_value(struct config_set *cs, const char *key, const cha
}
static int config_set_element_cmp(const void *unused_cmp_data,
- const void *entry,
- const void *entry_or_key,
+ const struct hashmap_entry *eptr,
+ const struct hashmap_entry *entry_or_key,
const void *unused_keydata)
{
- const struct config_set_element *e1 = entry;
- const struct config_set_element *e2 = entry_or_key;
+ const struct config_set_element *e1, *e2;
+
+ e1 = container_of(eptr, const struct config_set_element, ent);
+ e2 = container_of(entry_or_key, const struct config_set_element, ent);
return strcmp(e1->key, e2->key);
}
@@ -1939,12 +1936,12 @@ void git_configset_clear(struct config_set *cs)
if (!cs->hash_initialized)
return;
- hashmap_iter_init(&cs->config_hash, &iter);
- while ((entry = hashmap_iter_next(&iter))) {
+ hashmap_for_each_entry(&cs->config_hash, &iter, entry,
+ ent /* member name */) {
free(entry->key);
string_list_clear(&entry->value_list, 1);
}
- hashmap_free(&cs->config_hash, 1);
+ hashmap_free_entries(&cs->config_hash, struct config_set_element, ent);
cs->hash_initialized = 0;
free(cs->list.items);
cs->list.nr = 0;
@@ -2288,30 +2285,6 @@ int git_config_get_expiry_in_days(const char *key, timestamp_t *expiry, timestam
return -1; /* thing exists but cannot be parsed */
}
-int git_config_get_untracked_cache(void)
-{
- int val = -1;
- const char *v;
-
- /* Hack for test programs like test-dump-untracked-cache */
- if (ignore_untracked_cache_config)
- return -1;
-
- if (!git_config_get_maybe_bool("core.untrackedcache", &val))
- return val;
-
- if (!git_config_get_value("core.untrackedcache", &v)) {
- if (!strcasecmp(v, "keep"))
- return -1;
-
- error(_("unknown core.untrackedCache value '%s'; "
- "using 'keep' default value"), v);
- return -1;
- }
-
- return -1; /* default value */
-}
-
int git_config_get_split_index(void)
{
int val;
diff --git a/config.mak.uname b/config.mak.uname
index db7f06b..cc8efd9 100644
--- a/config.mak.uname
+++ b/config.mak.uname
@@ -703,20 +703,24 @@ vcxproj:
perl contrib/buildsystems/generate -g Vcxproj
git add -f git.sln {*,*/lib,t/helper/*}/*.vcxproj
- # Generate the LinkOrCopyBuiltins.targets file
+ # Generate the LinkOrCopyBuiltins.targets and LinkOrCopyRemoteHttp.targets file
(echo '<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">' && \
echo ' <Target Name="CopyBuiltins_AfterBuild" AfterTargets="AfterBuild">' && \
for name in $(BUILT_INS);\
do \
echo ' <Copy SourceFiles="$$(OutDir)\git.exe" DestinationFiles="$$(OutDir)\'"$$name"'" SkipUnchangedFiles="true" UseHardlinksIfPossible="true" />'; \
done && \
+ echo ' </Target>' && \
+ echo '</Project>') >git/LinkOrCopyBuiltins.targets
+ (echo '<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">' && \
+ echo ' <Target Name="CopyBuiltins_AfterBuild" AfterTargets="AfterBuild">' && \
for name in $(REMOTE_CURL_ALIASES); \
do \
echo ' <Copy SourceFiles="$$(OutDir)\'"$(REMOTE_CURL_PRIMARY)"'" DestinationFiles="$$(OutDir)\'"$$name"'" SkipUnchangedFiles="true" UseHardlinksIfPossible="true" />'; \
done && \
echo ' </Target>' && \
- echo '</Project>') >git/LinkOrCopyBuiltins.targets
- git add -f git/LinkOrCopyBuiltins.targets
+ echo '</Project>') >git-remote-http/LinkOrCopyRemoteHttp.targets
+ git add -f git/LinkOrCopyBuiltins.targets git-remote-http/LinkOrCopyRemoteHttp.targets
# Add command-list.h
$(MAKE) MSVC=1 SKIP_VCPKG=1 prefix=/mingw64 command-list.h
@@ -724,11 +728,10 @@ vcxproj:
# Add scripts
rm -f perl/perl.mak
- $(MAKE) MSVC=1 SKIP_VCPKG=1 prefix=/mingw64 \
- $(SCRIPT_LIB) $(SCRIPT_SH_GEN) $(SCRIPT_PERL_GEN)
+ $(MAKE) MSVC=1 SKIP_VCPKG=1 prefix=/mingw64 $(SCRIPT_LIB) $(SCRIPTS)
# Strip out the sane tool path, needed only for building
sed -i '/^git_broken_path_fix ".*/d' git-sh-setup
- git add -f $(SCRIPT_LIB) $(SCRIPT_SH_GEN) $(SCRIPT_PERL_GEN)
+ git add -f $(SCRIPT_LIB) $(SCRIPTS)
# Add Perl module
$(MAKE) $(LIB_PERL_GEN)
@@ -758,6 +761,10 @@ vcxproj:
$(MAKE) -C templates
git add -f templates/boilerplates.made templates/blt/
+ # Add the translated messages
+ make MSVC=1 SKIP_VCPKG=1 prefix=/mingw64 $(MOFILES)
+ git add -f $(MOFILES)
+
# Add build options
$(MAKE) MSVC=1 SKIP_VCPKG=1 prefix=/mingw64 GIT-BUILD-OPTIONS
git add -f GIT-BUILD-OPTIONS
diff --git a/connect.c b/connect.c
index 2778481..da7daa2 100644
--- a/connect.c
+++ b/connect.c
@@ -915,6 +915,10 @@ static enum protocol parse_connect_url(const char *url_orig, char **ret_host,
if (protocol == PROTO_LOCAL)
path = end;
+ else if (protocol == PROTO_FILE && *host != '/' &&
+ !has_dos_drive_prefix(host) &&
+ offset_1st_component(host - 2) > 1)
+ path = host - 2; /* include the leading "//" */
else if (protocol == PROTO_FILE && has_dos_drive_prefix(end))
path = end; /* "file://$(pwd)" may be "file://C:/projects/repo" */
else
diff --git a/connected.c b/connected.c
index cd9b324..36c4e5d 100644
--- a/connected.c
+++ b/connected.c
@@ -5,6 +5,7 @@
#include "connected.h"
#include "transport.h"
#include "packfile.h"
+#include "promisor-remote.h"
/*
* If we feed all the commits we want to verify to this command
@@ -28,6 +29,7 @@ int check_connected(oid_iterate_fn fn, void *cb_data,
struct packed_git *new_pack = NULL;
struct transport *transport;
size_t base_len;
+ const unsigned hexsz = the_hash_algo->hexsz;
if (!opt)
opt = &defaults;
@@ -73,7 +75,7 @@ int check_connected(oid_iterate_fn fn, void *cb_data,
argv_array_push(&rev_list.args,"rev-list");
argv_array_push(&rev_list.args, "--objects");
argv_array_push(&rev_list.args, "--stdin");
- if (repository_format_partial_clone)
+ if (has_promisor_remote())
argv_array_push(&rev_list.args, "--exclude-promisor-objects");
if (!opt->is_deepening_fetch) {
argv_array_push(&rev_list.args, "--not");
@@ -99,7 +101,7 @@ int check_connected(oid_iterate_fn fn, void *cb_data,
sigchain_push(SIGPIPE, SIG_IGN);
- commit[GIT_SHA1_HEXSZ] = '\n';
+ commit[hexsz] = '\n';
do {
/*
* If index-pack already checked that:
@@ -112,8 +114,8 @@ int check_connected(oid_iterate_fn fn, void *cb_data,
if (new_pack && find_pack_entry_one(oid.hash, new_pack))
continue;
- memcpy(commit, oid_to_hex(&oid), GIT_SHA1_HEXSZ);
- if (write_in_full(rev_list.in, commit, GIT_SHA1_HEXSZ + 1) < 0) {
+ memcpy(commit, oid_to_hex(&oid), hexsz);
+ if (write_in_full(rev_list.in, commit, hexsz + 1) < 0) {
if (errno != EPIPE && errno != EINVAL)
error_errno(_("failed write to rev-list"));
err = -1;
diff --git a/contrib/buildsystems/Generators/Vcxproj.pm b/contrib/buildsystems/Generators/Vcxproj.pm
index 576ccab..5c666f9 100644
--- a/contrib/buildsystems/Generators/Vcxproj.pm
+++ b/contrib/buildsystems/Generators/Vcxproj.pm
@@ -79,7 +79,8 @@ sub createProject {
if (!$static_library) {
$libs_release = join(";", sort(grep /^(?!libgit\.lib|xdiff\/lib\.lib|vcs-svn\/lib\.lib)/, @{$$build_structure{"$prefix${name}_LIBS"}}));
$libs_debug = $libs_release;
- $libs_debug =~ s/zlib\.lib/zlibd\.lib/;
+ $libs_debug =~ s/zlib\.lib/zlibd\.lib/g;
+ $libs_debug =~ s/libcurl\.lib/libcurl-d\.lib/g;
}
$defines =~ s/-D//g;
@@ -119,13 +120,13 @@ sub createProject {
<VCPKGArch Condition="'\$(Platform)'=='Win32'">x86-windows</VCPKGArch>
<VCPKGArch Condition="'\$(Platform)'!='Win32'">x64-windows</VCPKGArch>
<VCPKGArchDirectory>$cdup\\compat\\vcbuild\\vcpkg\\installed\\\$(VCPKGArch)</VCPKGArchDirectory>
- <VCPKGBinDirectory Condition="'\(Configuration)'=='Debug'">\$(VCPKGArchDirectory)\\debug\\bin</VCPKGBinDirectory>
- <VCPKGLibDirectory Condition="'\(Configuration)'=='Debug'">\$(VCPKGArchDirectory)\\debug\\lib</VCPKGLibDirectory>
- <VCPKGBinDirectory Condition="'\(Configuration)'!='Debug'">\$(VCPKGArchDirectory)\\bin</VCPKGBinDirectory>
- <VCPKGLibDirectory Condition="'\(Configuration)'!='Debug'">\$(VCPKGArchDirectory)\\lib</VCPKGLibDirectory>
+ <VCPKGBinDirectory Condition="'\$(Configuration)'=='Debug'">\$(VCPKGArchDirectory)\\debug\\bin</VCPKGBinDirectory>
+ <VCPKGLibDirectory Condition="'\$(Configuration)'=='Debug'">\$(VCPKGArchDirectory)\\debug\\lib</VCPKGLibDirectory>
+ <VCPKGBinDirectory Condition="'\$(Configuration)'!='Debug'">\$(VCPKGArchDirectory)\\bin</VCPKGBinDirectory>
+ <VCPKGLibDirectory Condition="'\$(Configuration)'!='Debug'">\$(VCPKGArchDirectory)\\lib</VCPKGLibDirectory>
<VCPKGIncludeDirectory>\$(VCPKGArchDirectory)\\include</VCPKGIncludeDirectory>
- <VCPKGLibs Condition="'\(Configuration)'=='Debug'">$libs_debug</VCPKGLibs>
- <VCPKGLibs Condition="'\(Configuration)'!='Debug'">$libs_release</VCPKGLibs>
+ <VCPKGLibs Condition="'\$(Configuration)'=='Debug'">$libs_debug</VCPKGLibs>
+ <VCPKGLibs Condition="'\$(Configuration)'!='Debug'">$libs_release</VCPKGLibs>
</PropertyGroup>
<Import Project="\$(VCTargetsPath)\\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'\$(Configuration)'=='Debug'" Label="Configuration">
@@ -277,6 +278,9 @@ EOM
if ($target eq 'git') {
print F " <Import Project=\"LinkOrCopyBuiltins.targets\" />\n";
}
+ if ($target eq 'git-remote-http') {
+ print F " <Import Project=\"LinkOrCopyRemoteHttp.targets\" />\n";
+ }
print F << "EOM";
</Project>
EOM
diff --git a/contrib/coccinelle/hashmap.cocci b/contrib/coccinelle/hashmap.cocci
new file mode 100644
index 0000000..d69e120
--- /dev/null
+++ b/contrib/coccinelle/hashmap.cocci
@@ -0,0 +1,16 @@
+@ hashmap_entry_init_usage @
+expression E;
+struct hashmap_entry HME;
+@@
+- HME.hash = E;
++ hashmap_entry_init(&HME, E);
+
+@@
+identifier f !~ "^hashmap_entry_init$";
+expression E;
+struct hashmap_entry *HMEP;
+@@
+ f(...) {<...
+- HMEP->hash = E;
++ hashmap_entry_init(HMEP, E);
+ ...>}
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index e087c4b..00fbe6c 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -340,7 +340,7 @@ __gitcomp ()
c="$c${4-}"
if [[ $c == "$cur_"* ]]; then
case $c in
- --*=*|*.) ;;
+ --*=|*.) ;;
*) c="$c " ;;
esac
COMPREPLY[i++]="${2-}$c"
@@ -360,7 +360,7 @@ __gitcomp ()
c="$c${4-}"
if [[ $c == "$cur_"* ]]; then
case $c in
- --*=*|*.) ;;
+ *=|*.) ;;
*) c="$c " ;;
esac
COMPREPLY[i++]="${2-}$c"
@@ -524,7 +524,7 @@ __git_index_files ()
# Even when a directory name itself does not contain
# any special characters, it will still be quoted if
# any of its (stripped) trailing path components do.
- # Because of this we may have seen the same direcory
+ # Because of this we may have seen the same directory
# both quoted and unquoted.
if (p in paths)
# We have seen the same directory unquoted,
@@ -1250,10 +1250,7 @@ _git_archive ()
return
;;
--*)
- __gitcomp "
- --format= --list --verbose
- --prefix= --remote= --exec= --output
- "
+ __gitcomp_builtin archive "--format= --list --verbose --prefix= --worktree-attributes"
return
;;
esac
@@ -1361,7 +1358,9 @@ _git_checkout ()
esac
}
-__git_cherry_pick_inprogress_options="--continue --quit --abort"
+__git_sequencer_inprogress_options="--continue --quit --abort --skip"
+
+__git_cherry_pick_inprogress_options=$__git_sequencer_inprogress_options
_git_cherry_pick ()
{
@@ -1399,7 +1398,18 @@ _git_clean ()
_git_clone ()
{
+ case "$prev" in
+ -c|--config)
+ __git_complete_config_variable_name_and_value
+ return
+ ;;
+ esac
case "$cur" in
+ --config=*)
+ __git_complete_config_variable_name_and_value \
+ --cur="${cur##--config=}"
+ return
+ ;;
--*)
__gitcomp_builtin clone
return
@@ -1476,6 +1486,8 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
--dirstat-by-file= --cumulative
--diff-algorithm=
--submodule --submodule= --ignore-submodules
+ --indent-heuristic --no-indent-heuristic
+ --textconv --no-textconv
"
_git_diff ()
@@ -1784,6 +1796,10 @@ _git_log ()
__gitcomp "$__git_diff_submodule_formats" "" "${cur##--submodule=}"
return
;;
+ --no-walk=*)
+ __gitcomp "sorted unsorted" "" "${cur##--no-walk=}"
+ return
+ ;;
--*)
__gitcomp "
$__git_log_common_options
@@ -1791,16 +1807,19 @@ _git_log ()
$__git_log_gitk_options
--root --topo-order --date-order --reverse
--follow --full-diff
- --abbrev-commit --abbrev=
+ --abbrev-commit --no-abbrev-commit --abbrev=
--relative-date --date=
--pretty= --format= --oneline
--show-signature
--cherry-mark
--cherry-pick
--graph
- --decorate --decorate=
+ --decorate --decorate= --no-decorate
--walk-reflogs
+ --no-walk --no-walk= --do-walk
--parents --children
+ --expand-tabs --expand-tabs= --no-expand-tabs
+ --patch
$merge
$__git_diff_common_options
--pickaxe-all --pickaxe-regex
@@ -2004,15 +2023,18 @@ _git_range_diff ()
__git_complete_revlist
}
+__git_rebase_inprogress_options="--continue --skip --abort --quit --show-current-patch"
+__git_rebase_interactive_inprogress_options="$__git_rebase_inprogress_options --edit-todo"
+
_git_rebase ()
{
__git_find_repo_path
if [ -f "$__git_repo_path"/rebase-merge/interactive ]; then
- __gitcomp "--continue --skip --abort --quit --edit-todo --show-current-patch"
+ __gitcomp "$__git_rebase_interactive_inprogress_options"
return
elif [ -d "$__git_repo_path"/rebase-apply ] || \
[ -d "$__git_repo_path"/rebase-merge ]; then
- __gitcomp "--continue --skip --abort --quit --show-current-patch"
+ __gitcomp "$__git_rebase_inprogress_options"
return
fi
__git_complete_strategy && return
@@ -2022,19 +2044,8 @@ _git_rebase ()
return
;;
--*)
- __gitcomp "
- --onto --merge --strategy --interactive
- --rebase-merges --preserve-merges --stat --no-stat
- --committer-date-is-author-date --ignore-date
- --ignore-whitespace --whitespace=
- --autosquash --no-autosquash
- --fork-point --no-fork-point
- --autostash --no-autostash
- --verify --no-verify
- --keep-empty --root --force-rebase --no-ff
- --rerere-autoupdate
- --exec
- "
+ __gitcomp_builtin rebase "" \
+ "$__git_rebase_interactive_inprogress_options"
return
esac
@@ -2225,181 +2236,282 @@ __git_config_vars=
__git_compute_config_vars ()
{
test -n "$__git_config_vars" ||
- __git_config_vars="$(git help --config-for-completion | sort | uniq)"
+ __git_config_vars="$(git help --config-for-completion | sort -u)"
}
-_git_config ()
+# Completes possible values of various configuration variables.
+#
+# Usage: __git_complete_config_variable_value [<option>]...
+# --varname=<word>: The name of the configuration variable whose value is
+# to be completed. Defaults to the previous word on the
+# command line.
+# --cur=<word>: The current value to be completed. Defaults to the current
+# word to be completed.
+__git_complete_config_variable_value ()
{
- local varname
+ local varname="$prev" cur_="$cur"
+
+ while test $# != 0; do
+ case "$1" in
+ --varname=*) varname="${1##--varname=}" ;;
+ --cur=*) cur_="${1##--cur=}" ;;
+ *) return 1 ;;
+ esac
+ shift
+ done
if [ "${BASH_VERSINFO[0]:-0}" -ge 4 ]; then
- varname="${prev,,}"
+ varname="${varname,,}"
else
- varname="$(echo "$prev" |tr A-Z a-z)"
+ varname="$(echo "$varname" |tr A-Z a-z)"
fi
case "$varname" in
branch.*.remote|branch.*.pushremote)
- __gitcomp_nl "$(__git_remotes)"
+ __gitcomp_nl "$(__git_remotes)" "" "$cur_"
return
;;
branch.*.merge)
- __git_complete_refs
+ __git_complete_refs --cur="$cur_"
return
;;
branch.*.rebase)
- __gitcomp "false true merges preserve interactive"
+ __gitcomp "false true merges preserve interactive" "" "$cur_"
return
;;
remote.pushdefault)
- __gitcomp_nl "$(__git_remotes)"
+ __gitcomp_nl "$(__git_remotes)" "" "$cur_"
return
;;
remote.*.fetch)
- local remote="${prev#remote.}"
+ local remote="${varname#remote.}"
remote="${remote%.fetch}"
- if [ -z "$cur" ]; then
+ if [ -z "$cur_" ]; then
__gitcomp_nl "refs/heads/" "" "" ""
return
fi
- __gitcomp_nl "$(__git_refs_remotes "$remote")"
+ __gitcomp_nl "$(__git_refs_remotes "$remote")" "" "$cur_"
return
;;
remote.*.push)
- local remote="${prev#remote.}"
+ local remote="${varname#remote.}"
remote="${remote%.push}"
__gitcomp_nl "$(__git for-each-ref \
- --format='%(refname):%(refname)' refs/heads)"
+ --format='%(refname):%(refname)' refs/heads)" "" "$cur_"
return
;;
pull.twohead|pull.octopus)
__git_compute_merge_strategies
- __gitcomp "$__git_merge_strategies"
- return
- ;;
- color.branch|color.diff|color.interactive|\
- color.showbranch|color.status|color.ui)
- __gitcomp "always never auto"
+ __gitcomp "$__git_merge_strategies" "" "$cur_"
return
;;
color.pager)
- __gitcomp "false true"
+ __gitcomp "false true" "" "$cur_"
return
;;
color.*.*)
__gitcomp "
normal black red green yellow blue magenta cyan white
bold dim ul blink reverse
- "
+ " "" "$cur_"
+ return
+ ;;
+ color.*)
+ __gitcomp "false true always never auto" "" "$cur_"
return
;;
diff.submodule)
- __gitcomp "$__git_diff_submodule_formats"
+ __gitcomp "$__git_diff_submodule_formats" "" "$cur_"
return
;;
help.format)
- __gitcomp "man info web html"
+ __gitcomp "man info web html" "" "$cur_"
return
;;
log.date)
- __gitcomp "$__git_log_date_formats"
+ __gitcomp "$__git_log_date_formats" "" "$cur_"
return
;;
sendemail.aliasfiletype)
- __gitcomp "mutt mailrc pine elm gnus"
+ __gitcomp "mutt mailrc pine elm gnus" "" "$cur_"
return
;;
sendemail.confirm)
- __gitcomp "$__git_send_email_confirm_options"
+ __gitcomp "$__git_send_email_confirm_options" "" "$cur_"
return
;;
sendemail.suppresscc)
- __gitcomp "$__git_send_email_suppresscc_options"
+ __gitcomp "$__git_send_email_suppresscc_options" "" "$cur_"
return
;;
sendemail.transferencoding)
- __gitcomp "7bit 8bit quoted-printable base64"
- return
- ;;
- --get|--get-all|--unset|--unset-all)
- __gitcomp_nl "$(__git_config_get_set_variables)"
+ __gitcomp "7bit 8bit quoted-printable base64" "" "$cur_"
return
;;
*.*)
return
;;
esac
- case "$cur" in
- --*)
- __gitcomp_builtin config
- return
- ;;
+}
+
+# Completes configuration sections, subsections, variable names.
+#
+# Usage: __git_complete_config_variable_name [<option>]...
+# --cur=<word>: The current configuration section/variable name to be
+# completed. Defaults to the current word to be completed.
+# --sfx=<suffix>: A suffix to be appended to each fully completed
+# configuration variable name (but not to sections or
+# subsections) instead of the default space.
+__git_complete_config_variable_name ()
+{
+ local cur_="$cur" sfx
+
+ while test $# != 0; do
+ case "$1" in
+ --cur=*) cur_="${1##--cur=}" ;;
+ --sfx=*) sfx="${1##--sfx=}" ;;
+ *) return 1 ;;
+ esac
+ shift
+ done
+
+ case "$cur_" in
branch.*.*)
- local pfx="${cur%.*}." cur_="${cur##*.}"
- __gitcomp "remote pushRemote merge mergeOptions rebase" "$pfx" "$cur_"
+ local pfx="${cur_%.*}."
+ cur_="${cur_##*.}"
+ __gitcomp "remote pushRemote merge mergeOptions rebase" "$pfx" "$cur_" "$sfx"
return
;;
branch.*)
- local pfx="${cur%.*}." cur_="${cur#*.}"
+ local pfx="${cur%.*}."
+ cur_="${cur#*.}"
__gitcomp_direct "$(__git_heads "$pfx" "$cur_" ".")"
- __gitcomp_nl_append $'autoSetupMerge\nautoSetupRebase\n' "$pfx" "$cur_"
+ __gitcomp_nl_append $'autoSetupMerge\nautoSetupRebase\n' "$pfx" "$cur_" "$sfx"
return
;;
guitool.*.*)
- local pfx="${cur%.*}." cur_="${cur##*.}"
+ local pfx="${cur_%.*}."
+ cur_="${cur_##*.}"
__gitcomp "
argPrompt cmd confirm needsFile noConsole noRescan
prompt revPrompt revUnmerged title
- " "$pfx" "$cur_"
+ " "$pfx" "$cur_" "$sfx"
return
;;
difftool.*.*)
- local pfx="${cur%.*}." cur_="${cur##*.}"
- __gitcomp "cmd path" "$pfx" "$cur_"
+ local pfx="${cur_%.*}."
+ cur_="${cur_##*.}"
+ __gitcomp "cmd path" "$pfx" "$cur_" "$sfx"
return
;;
man.*.*)
- local pfx="${cur%.*}." cur_="${cur##*.}"
- __gitcomp "cmd path" "$pfx" "$cur_"
+ local pfx="${cur_%.*}."
+ cur_="${cur_##*.}"
+ __gitcomp "cmd path" "$pfx" "$cur_" "$sfx"
return
;;
mergetool.*.*)
- local pfx="${cur%.*}." cur_="${cur##*.}"
- __gitcomp "cmd path trustExitCode" "$pfx" "$cur_"
+ local pfx="${cur_%.*}."
+ cur_="${cur_##*.}"
+ __gitcomp "cmd path trustExitCode" "$pfx" "$cur_" "$sfx"
return
;;
pager.*)
- local pfx="${cur%.*}." cur_="${cur#*.}"
+ local pfx="${cur_%.*}."
+ cur_="${cur_#*.}"
__git_compute_all_commands
- __gitcomp_nl "$__git_all_commands" "$pfx" "$cur_"
+ __gitcomp_nl "$__git_all_commands" "$pfx" "$cur_" "$sfx"
return
;;
remote.*.*)
- local pfx="${cur%.*}." cur_="${cur##*.}"
+ local pfx="${cur_%.*}."
+ cur_="${cur_##*.}"
__gitcomp "
url proxy fetch push mirror skipDefaultUpdate
receivepack uploadpack tagOpt pushurl
- " "$pfx" "$cur_"
+ " "$pfx" "$cur_" "$sfx"
return
;;
remote.*)
- local pfx="${cur%.*}." cur_="${cur#*.}"
+ local pfx="${cur_%.*}."
+ cur_="${cur_#*.}"
__gitcomp_nl "$(__git_remotes)" "$pfx" "$cur_" "."
- __gitcomp_nl_append "pushDefault" "$pfx" "$cur_"
+ __gitcomp_nl_append "pushDefault" "$pfx" "$cur_" "$sfx"
return
;;
url.*.*)
- local pfx="${cur%.*}." cur_="${cur##*.}"
- __gitcomp "insteadOf pushInsteadOf" "$pfx" "$cur_"
+ local pfx="${cur_%.*}."
+ cur_="${cur_##*.}"
+ __gitcomp "insteadOf pushInsteadOf" "$pfx" "$cur_" "$sfx"
return
;;
*.*)
__git_compute_config_vars
- __gitcomp "$__git_config_vars"
+ __gitcomp "$__git_config_vars" "" "$cur_" "$sfx"
;;
*)
__git_compute_config_vars
- __gitcomp "$(echo "$__git_config_vars" | sed 's/\.[^ ]*/./g')"
+ __gitcomp "$(echo "$__git_config_vars" |
+ awk -F . '{
+ sections[$1] = 1
+ }
+ END {
+ for (s in sections)
+ print s "."
+ }
+ ')" "" "$cur_"
+ ;;
+ esac
+}
+
+# Completes '='-separated configuration sections/variable names and values
+# for 'git -c section.name=value'.
+#
+# Usage: __git_complete_config_variable_name_and_value [<option>]...
+# --cur=<word>: The current configuration section/variable name/value to be
+# completed. Defaults to the current word to be completed.
+__git_complete_config_variable_name_and_value ()
+{
+ local cur_="$cur"
+
+ while test $# != 0; do
+ case "$1" in
+ --cur=*) cur_="${1##--cur=}" ;;
+ *) return 1 ;;
+ esac
+ shift
+ done
+
+ case "$cur_" in
+ *=*)
+ __git_complete_config_variable_value \
+ --varname="${cur_%%=*}" --cur="${cur_#*=}"
+ ;;
+ *)
+ __git_complete_config_variable_name --cur="$cur_" --sfx='='
+ ;;
+ esac
+}
+
+_git_config ()
+{
+ case "$prev" in
+ --get|--get-all|--unset|--unset-all)
+ __gitcomp_nl "$(__git_config_get_set_variables)"
+ return
+ ;;
+ *.*)
+ __git_complete_config_variable_value
+ return
+ ;;
+ esac
+ case "$cur" in
+ --*)
+ __gitcomp_builtin config
+ ;;
+ *)
+ __git_complete_config_variable_name
+ ;;
esac
}
@@ -2512,7 +2624,7 @@ _git_restore ()
esac
}
-__git_revert_inprogress_options="--continue --quit --abort"
+__git_revert_inprogress_options=$__git_sequencer_inprogress_options
_git_revert ()
{
@@ -2580,8 +2692,9 @@ _git_show ()
return
;;
--*)
- __gitcomp "--pretty= --format= --abbrev-commit --oneline
- --show-signature
+ __gitcomp "--pretty= --format= --abbrev-commit --no-abbrev-commit
+ --oneline --show-signature --patch
+ --expand-tabs --expand-tabs= --no-expand-tabs
$__git_diff_common_options
"
return
@@ -2956,7 +3069,11 @@ __git_main ()
# Bash filename completion
return
;;
- -c|--namespace)
+ -c)
+ __git_complete_config_variable_name_and_value
+ return
+ ;;
+ --namespace)
# we don't support completing these options' arguments
return
;;
diff --git a/contrib/completion/git-completion.zsh b/contrib/completion/git-completion.zsh
index 886bf95..eef4eff 100644
--- a/contrib/completion/git-completion.zsh
+++ b/contrib/completion/git-completion.zsh
@@ -11,8 +11,9 @@
#
# zstyle ':completion:*:*:git:*' script ~/.git-completion.zsh
#
-# The recommended way to install this script is to copy to '~/.zsh/_git', and
-# then add the following to your ~/.zshrc file:
+# The recommended way to install this script is to make a copy of it in
+# ~/.zsh/ directory as ~/.zsh/git-completion.zsh and then add the following
+# to your ~/.zshrc file:
#
# fpath=(~/.zsh $fpath)
diff --git a/contrib/diff-highlight/DiffHighlight.pm b/contrib/diff-highlight/DiffHighlight.pm
index 7440aa1..e258992 100644
--- a/contrib/diff-highlight/DiffHighlight.pm
+++ b/contrib/diff-highlight/DiffHighlight.pm
@@ -72,7 +72,7 @@ sub handle_line {
(?:$COLOR?\|$COLOR?[ ])* # zero or more trailing "|"
[ ]* # trailing whitespace for merges
/x) {
- my $graph_prefix = $&;
+ my $graph_prefix = $&;
# We must flush before setting graph indent, since the
# new commit may be indented differently from what we
diff --git a/contrib/hg-to-git/hg-to-git.py b/contrib/hg-to-git/hg-to-git.py
index de3f816..7eb1b24 100755
--- a/contrib/hg-to-git/hg-to-git.py
+++ b/contrib/hg-to-git/hg-to-git.py
@@ -42,7 +42,7 @@ hgnewcsets = 0
def usage():
- print """\
+ print("""\
%s: [OPTIONS] <hgprj>
options:
@@ -54,7 +54,7 @@ options:
required:
hgprj: name of the HG project to import (directory)
-""" % sys.argv[0]
+""" % sys.argv[0])
#------------------------------------------------------------------------------
@@ -104,22 +104,22 @@ os.chdir(hgprj)
if state:
if os.path.exists(state):
if verbose:
- print 'State does exist, reading'
+ print('State does exist, reading')
f = open(state, 'r')
hgvers = pickle.load(f)
else:
- print 'State does not exist, first run'
+ print('State does not exist, first run')
sock = os.popen('hg tip --template "{rev}"')
tip = sock.read()
if sock.close():
sys.exit(1)
if verbose:
- print 'tip is', tip
+ print('tip is', tip)
# Calculate the branches
if verbose:
- print 'analysing the branches...'
+ print('analysing the branches...')
hgchildren["0"] = ()
hgparents["0"] = (None, None)
hgbranch["0"] = "master"
@@ -154,15 +154,15 @@ for cset in range(1, int(tip) + 1):
else:
hgbranch[str(cset)] = "branch-" + str(cset)
-if not hgvers.has_key("0"):
- print 'creating repository'
+if "0" not in hgvers:
+ print('creating repository')
os.system('git init')
# loop through every hg changeset
for cset in range(int(tip) + 1):
# incremental, already seen
- if hgvers.has_key(str(cset)):
+ if str(cset) in hgvers:
continue
hgnewcsets += 1
@@ -180,27 +180,27 @@ for cset in range(int(tip) + 1):
os.write(fdcomment, csetcomment)
os.close(fdcomment)
- print '-----------------------------------------'
- print 'cset:', cset
- print 'branch:', hgbranch[str(cset)]
- print 'user:', user
- print 'date:', date
- print 'comment:', csetcomment
+ print('-----------------------------------------')
+ print('cset:', cset)
+ print('branch:', hgbranch[str(cset)])
+ print('user:', user)
+ print('date:', date)
+ print('comment:', csetcomment)
if parent:
- print 'parent:', parent
+ print('parent:', parent)
if mparent:
- print 'mparent:', mparent
+ print('mparent:', mparent)
if tag:
- print 'tag:', tag
- print '-----------------------------------------'
+ print('tag:', tag)
+ print('-----------------------------------------')
# checkout the parent if necessary
if cset != 0:
if hgbranch[str(cset)] == "branch-" + str(cset):
- print 'creating new branch', hgbranch[str(cset)]
+ print('creating new branch', hgbranch[str(cset)])
os.system('git checkout -b %s %s' % (hgbranch[str(cset)], hgvers[parent]))
else:
- print 'checking out branch', hgbranch[str(cset)]
+ print('checking out branch', hgbranch[str(cset)])
os.system('git checkout %s' % hgbranch[str(cset)])
# merge
@@ -209,7 +209,7 @@ for cset in range(int(tip) + 1):
otherbranch = hgbranch[mparent]
else:
otherbranch = hgbranch[parent]
- print 'merging', otherbranch, 'into', hgbranch[str(cset)]
+ print('merging', otherbranch, 'into', hgbranch[str(cset)])
os.system(getgitenv(user, date) + 'git merge --no-commit -s ours "" %s %s' % (hgbranch[str(cset)], otherbranch))
# remove everything except .git and .hg directories
@@ -233,12 +233,12 @@ for cset in range(int(tip) + 1):
# delete branch if not used anymore...
if mparent and len(hgchildren[str(cset)]):
- print "Deleting unused branch:", otherbranch
+ print("Deleting unused branch:", otherbranch)
os.system('git branch -d %s' % otherbranch)
# retrieve and record the version
vvv = os.popen('git show --quiet --pretty=format:%H').read()
- print 'record', cset, '->', vvv
+ print('record', cset, '->', vvv)
hgvers[str(cset)] = vvv
if hgnewcsets >= opt_nrepack and opt_nrepack != -1:
@@ -247,7 +247,7 @@ if hgnewcsets >= opt_nrepack and opt_nrepack != -1:
# write the state for incrementals
if state:
if verbose:
- print 'Writing state'
+ print('Writing state')
f = open(state, 'w')
pickle.dump(hgvers, f)
diff --git a/contrib/svn-fe/svn-fe.txt b/contrib/svn-fe/svn-fe.txt
index a3425f4..19333fc 100644
--- a/contrib/svn-fe/svn-fe.txt
+++ b/contrib/svn-fe/svn-fe.txt
@@ -56,7 +56,7 @@ line. This line has the form `git-svn-id: URL@REVNO UUID`.
The resulting repository will generally require further processing
to put each project in its own repository and to separate the history
-of each branch. The 'git filter-branch --subdirectory-filter' command
+of each branch. The 'git filter-repo --subdirectory-filter' command
may be useful for this purpose.
BUGS
@@ -67,5 +67,5 @@ The exit status does not reflect whether an error was detected.
SEE ALSO
--------
-git-svn(1), svn2git(1), svk(1), git-filter-branch(1), git-fast-import(1),
+git-svn(1), svn2git(1), svk(1), git-filter-repo(1), git-fast-import(1),
https://svn.apache.org/repos/asf/subversion/trunk/notes/dump-load-format.txt
diff --git a/contrib/svn-fe/svnrdump_sim.py b/contrib/svn-fe/svnrdump_sim.py
index 11ac6f6..50c6a4f 100755
--- a/contrib/svn-fe/svnrdump_sim.py
+++ b/contrib/svn-fe/svnrdump_sim.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python
"""
Simulates svnrdump by replaying an existing dump from a file, taking care
of the specified revision range.
diff --git a/convert.c b/convert.c
index 94ff837..25ac525 100644
--- a/convert.c
+++ b/convert.c
@@ -8,6 +8,7 @@
#include "pkt-line.h"
#include "sub-process.h"
#include "utf8.h"
+#include "ll-merge.h"
/*
* convert.c - convert a file when checking it out and checking it in.
@@ -289,8 +290,8 @@ static int validate_encoding(const char *path, const char *enc,
const char *stripped = NULL;
char *upper = xstrdup_toupper(enc);
upper[strlen(upper)-2] = '\0';
- if (!skip_prefix(upper, "UTF-", &stripped))
- skip_prefix(stripped, "UTF", &stripped);
+ if (skip_prefix(upper, "UTF", &stripped))
+ skip_prefix(stripped, "-", &stripped);
advise(advise_msg, path, stripped);
free(upper);
if (die_on_error)
@@ -309,8 +310,8 @@ static int validate_encoding(const char *path, const char *enc,
"working-tree-encoding.");
const char *stripped = NULL;
char *upper = xstrdup_toupper(enc);
- if (!skip_prefix(upper, "UTF-", &stripped))
- skip_prefix(stripped, "UTF", &stripped);
+ if (skip_prefix(upper, "UTF", &stripped))
+ skip_prefix(stripped, "-", &stripped);
advise(advise_msg, path, stripped, stripped);
free(upper);
if (die_on_error)
@@ -1293,10 +1294,11 @@ struct conv_attrs {
const char *working_tree_encoding; /* Supported encoding or default encoding if NULL */
};
+static struct attr_check *check;
+
static void convert_attrs(const struct index_state *istate,
struct conv_attrs *ca, const char *path)
{
- static struct attr_check *check;
struct attr_check_item *ccheck = NULL;
if (!check) {
@@ -1339,6 +1341,23 @@ static void convert_attrs(const struct index_state *istate,
ca->crlf_action = CRLF_AUTO_INPUT;
}
+void reset_parsed_attributes(void)
+{
+ struct convert_driver *drv, *next;
+
+ attr_check_free(check);
+ check = NULL;
+ reset_merge_attributes();
+
+ for (drv = user_convert; drv; drv = next) {
+ next = drv->next;
+ free((void *)drv->name);
+ free(drv);
+ }
+ user_convert = NULL;
+ user_convert_tail = NULL;
+}
+
int would_convert_to_git_filter_fd(const struct index_state *istate, const char *path)
{
struct conv_attrs ca;
diff --git a/convert.h b/convert.h
index 831559f..3710969 100644
--- a/convert.h
+++ b/convert.h
@@ -94,6 +94,12 @@ void convert_to_git_filter_fd(const struct index_state *istate,
int would_convert_to_git_filter_fd(const struct index_state *istate,
const char *path);
+/*
+ * Reset the internal list of attributes used by convert_to_git and
+ * convert_to_working_tree.
+ */
+void reset_parsed_attributes(void);
+
/*****************************************************************
*
* Streaming conversion support
diff --git a/credential-store.c b/credential-store.c
index ac29542..c010497 100644
--- a/credential-store.c
+++ b/credential-store.c
@@ -72,15 +72,16 @@ static void store_credential_file(const char *fn, struct credential *c)
struct strbuf buf = STRBUF_INIT;
strbuf_addf(&buf, "%s://", c->protocol);
- strbuf_addstr_urlencode(&buf, c->username, 1);
+ strbuf_addstr_urlencode(&buf, c->username, is_rfc3986_unreserved);
strbuf_addch(&buf, ':');
- strbuf_addstr_urlencode(&buf, c->password, 1);
+ strbuf_addstr_urlencode(&buf, c->password, is_rfc3986_unreserved);
strbuf_addch(&buf, '@');
if (c->host)
- strbuf_addstr_urlencode(&buf, c->host, 1);
+ strbuf_addstr_urlencode(&buf, c->host, is_rfc3986_unreserved);
if (c->path) {
strbuf_addch(&buf, '/');
- strbuf_addstr_urlencode(&buf, c->path, 0);
+ strbuf_addstr_urlencode(&buf, c->path,
+ is_rfc3986_reserved_or_unreserved);
}
rewrite_credential_file(fn, c, &buf);
diff --git a/date.c b/date.c
index 8126146..041db7d 100644
--- a/date.c
+++ b/date.c
@@ -128,16 +128,17 @@ static void get_time(struct timeval *now)
gettimeofday(now, NULL);
}
-void show_date_relative(timestamp_t time,
- const struct timeval *now,
- struct strbuf *timebuf)
+void show_date_relative(timestamp_t time, struct strbuf *timebuf)
{
+ struct timeval now;
timestamp_t diff;
- if (now->tv_sec < time) {
+
+ get_time(&now);
+ if (now.tv_sec < time) {
strbuf_addstr(timebuf, _("in the future"));
return;
}
- diff = now->tv_sec - time;
+ diff = now.tv_sec - time;
if (diff < 90) {
strbuf_addf(timebuf,
Q_("%"PRItime" second ago", "%"PRItime" seconds ago", diff), diff);
@@ -240,9 +241,7 @@ static void show_date_normal(struct strbuf *buf, timestamp_t time, struct tm *tm
/* Show "today" times as just relative times */
if (hide.wday) {
- struct timeval now;
- get_time(&now);
- show_date_relative(time, &now, buf);
+ show_date_relative(time, buf);
return;
}
@@ -313,11 +312,8 @@ const char *show_date(timestamp_t time, int tz, const struct date_mode *mode)
}
if (mode->type == DATE_RELATIVE) {
- struct timeval now;
-
strbuf_reset(&timebuf);
- get_time(&now);
- show_date_relative(time, &now, &timebuf);
+ show_date_relative(time, &timebuf);
return timebuf.buf;
}
@@ -1288,15 +1284,18 @@ static timestamp_t approxidate_str(const char *date,
return (timestamp_t)update_tm(&tm, &now, 0);
}
-timestamp_t approxidate_relative(const char *date, const struct timeval *tv)
+timestamp_t approxidate_relative(const char *date)
{
+ struct timeval tv;
timestamp_t timestamp;
int offset;
int errors = 0;
if (!parse_date_basic(date, &timestamp, &offset))
return timestamp;
- return approxidate_str(date, tv, &errors);
+
+ get_time(&tv);
+ return approxidate_str(date, (const struct timeval *) &tv, &errors);
}
timestamp_t approxidate_careful(const char *date, int *error_ret)
diff --git a/diff-delta.c b/diff-delta.c
index e496433..77fea08 100644
--- a/diff-delta.c
+++ b/diff-delta.c
@@ -326,6 +326,8 @@ create_delta(const struct delta_index *index,
const unsigned char *ref_data, *ref_top, *data, *top;
unsigned char *out;
+ *delta_size = 0;
+
if (!trg_buf || !trg_size)
return NULL;
diff --git a/diff.c b/diff.c
index efe42b3..afe4400 100644
--- a/diff.c
+++ b/diff.c
@@ -25,7 +25,7 @@
#include "packfile.h"
#include "parse-options.h"
#include "help.h"
-#include "fetch-object.h"
+#include "promisor-remote.h"
#ifdef NO_FAST_WORKING_DIRECTORY
#define FAST_WORKING_DIRECTORY 0
@@ -933,16 +933,18 @@ static int cmp_in_block_with_wsd(const struct diff_options *o,
}
static int moved_entry_cmp(const void *hashmap_cmp_fn_data,
- const void *entry,
- const void *entry_or_key,
+ const struct hashmap_entry *eptr,
+ const struct hashmap_entry *entry_or_key,
const void *keydata)
{
const struct diff_options *diffopt = hashmap_cmp_fn_data;
- const struct moved_entry *a = entry;
- const struct moved_entry *b = entry_or_key;
+ const struct moved_entry *a, *b;
unsigned flags = diffopt->color_moved_ws_handling
& XDF_WHITESPACE_FLAGS;
+ a = container_of(eptr, const struct moved_entry, ent);
+ b = container_of(entry_or_key, const struct moved_entry, ent);
+
if (diffopt->color_moved_ws_handling &
COLOR_MOVED_WS_ALLOW_INDENTATION_CHANGE)
/*
@@ -964,8 +966,9 @@ static struct moved_entry *prepare_entry(struct diff_options *o,
struct moved_entry *ret = xmalloc(sizeof(*ret));
struct emitted_diff_symbol *l = &o->emitted_symbols->buf[line_no];
unsigned flags = o->color_moved_ws_handling & XDF_WHITESPACE_FLAGS;
+ unsigned int hash = xdiff_hash_string(l->line, l->len, flags);
- ret->ent.hash = xdiff_hash_string(l->line, l->len, flags);
+ hashmap_entry_init(&ret->ent, hash);
ret->es = l;
ret->next_line = NULL;
@@ -1002,7 +1005,7 @@ static void add_lines_to_move_detection(struct diff_options *o,
if (prev_line && prev_line->es->s == o->emitted_symbols->buf[n].s)
prev_line->next_line = key;
- hashmap_add(hm, key);
+ hashmap_add(hm, &key->ent);
prev_line = key;
}
}
@@ -1018,7 +1021,7 @@ static void pmb_advance_or_null(struct diff_options *o,
struct moved_entry *prev = pmb[i].match;
struct moved_entry *cur = (prev && prev->next_line) ?
prev->next_line : NULL;
- if (cur && !hm->cmpfn(o, cur, match, NULL)) {
+ if (cur && !hm->cmpfn(o, &cur->ent, &match->ent, NULL)) {
pmb[i].match = cur;
} else {
pmb[i].match = NULL;
@@ -1035,7 +1038,7 @@ static void pmb_advance_or_null_multi_match(struct diff_options *o,
int i;
char *got_match = xcalloc(1, pmb_nr);
- for (; match; match = hashmap_get_next(hm, match)) {
+ hashmap_for_each_entry_from(hm, match, ent) {
for (i = 0; i < pmb_nr; i++) {
struct moved_entry *prev = pmb[i].match;
struct moved_entry *cur = (prev && prev->next_line) ?
@@ -1143,13 +1146,13 @@ static void mark_color_as_moved(struct diff_options *o,
case DIFF_SYMBOL_PLUS:
hm = del_lines;
key = prepare_entry(o, n);
- match = hashmap_get(hm, key, NULL);
+ match = hashmap_get_entry(hm, key, ent, NULL);
free(key);
break;
case DIFF_SYMBOL_MINUS:
hm = add_lines;
key = prepare_entry(o, n);
- match = hashmap_get(hm, key, NULL);
+ match = hashmap_get_entry(hm, key, ent, NULL);
free(key);
break;
default:
@@ -1188,7 +1191,7 @@ static void mark_color_as_moved(struct diff_options *o,
* The current line is the start of a new block.
* Setup the set of potential blocks.
*/
- for (; match; match = hashmap_get_next(hm, match)) {
+ hashmap_for_each_entry_from(hm, match, ent) {
ALLOC_GROW(pmb, pmb_nr + 1, pmb_alloc);
if (o->color_moved_ws_handling &
COLOR_MOVED_WS_ALLOW_INDENTATION_CHANGE) {
@@ -5978,7 +5981,7 @@ static void diff_summary(struct diff_options *opt, struct diff_filepair *p)
}
struct patch_id_t {
- git_SHA_CTX *ctx;
+ git_hash_ctx *ctx;
int patchlen;
};
@@ -5995,16 +5998,16 @@ static int remove_space(char *line, int len)
return dst - line;
}
-void flush_one_hunk(struct object_id *result, git_SHA_CTX *ctx)
+void flush_one_hunk(struct object_id *result, git_hash_ctx *ctx)
{
unsigned char hash[GIT_MAX_RAWSZ];
unsigned short carry = 0;
int i;
- git_SHA1_Final(hash, ctx);
- git_SHA1_Init(ctx);
+ the_hash_algo->final_fn(hash, ctx);
+ the_hash_algo->init_fn(ctx);
/* 20-byte sum, with carry */
- for (i = 0; i < GIT_SHA1_RAWSZ; ++i) {
+ for (i = 0; i < the_hash_algo->rawsz; ++i) {
carry += result->hash[i] + hash[i];
result->hash[i] = carry;
carry >>= 8;
@@ -6018,21 +6021,21 @@ static void patch_id_consume(void *priv, char *line, unsigned long len)
new_len = remove_space(line, len);
- git_SHA1_Update(data->ctx, line, new_len);
+ the_hash_algo->update_fn(data->ctx, line, new_len);
data->patchlen += new_len;
}
-static void patch_id_add_string(git_SHA_CTX *ctx, const char *str)
+static void patch_id_add_string(git_hash_ctx *ctx, const char *str)
{
- git_SHA1_Update(ctx, str, strlen(str));
+ the_hash_algo->update_fn(ctx, str, strlen(str));
}
-static void patch_id_add_mode(git_SHA_CTX *ctx, unsigned mode)
+static void patch_id_add_mode(git_hash_ctx *ctx, unsigned mode)
{
/* large enough for 2^32 in octal */
char buf[12];
int len = xsnprintf(buf, sizeof(buf), "%06o", mode);
- git_SHA1_Update(ctx, buf, len);
+ the_hash_algo->update_fn(ctx, buf, len);
}
/* returns 0 upon success, and writes result into oid */
@@ -6040,10 +6043,10 @@ static int diff_get_patch_id(struct diff_options *options, struct object_id *oid
{
struct diff_queue_struct *q = &diff_queued_diff;
int i;
- git_SHA_CTX ctx;
+ git_hash_ctx ctx;
struct patch_id_t data;
- git_SHA1_Init(&ctx);
+ the_hash_algo->init_fn(&ctx);
memset(&data, 0, sizeof(struct patch_id_t));
data.ctx = &ctx;
oidclr(oid);
@@ -6076,27 +6079,27 @@ static int diff_get_patch_id(struct diff_options *options, struct object_id *oid
len2 = remove_space(p->two->path, strlen(p->two->path));
patch_id_add_string(&ctx, "diff--git");
patch_id_add_string(&ctx, "a/");
- git_SHA1_Update(&ctx, p->one->path, len1);
+ the_hash_algo->update_fn(&ctx, p->one->path, len1);
patch_id_add_string(&ctx, "b/");
- git_SHA1_Update(&ctx, p->two->path, len2);
+ the_hash_algo->update_fn(&ctx, p->two->path, len2);
if (p->one->mode == 0) {
patch_id_add_string(&ctx, "newfilemode");
patch_id_add_mode(&ctx, p->two->mode);
patch_id_add_string(&ctx, "---/dev/null");
patch_id_add_string(&ctx, "+++b/");
- git_SHA1_Update(&ctx, p->two->path, len2);
+ the_hash_algo->update_fn(&ctx, p->two->path, len2);
} else if (p->two->mode == 0) {
patch_id_add_string(&ctx, "deletedfilemode");
patch_id_add_mode(&ctx, p->one->mode);
patch_id_add_string(&ctx, "---a/");
- git_SHA1_Update(&ctx, p->one->path, len1);
+ the_hash_algo->update_fn(&ctx, p->one->path, len1);
patch_id_add_string(&ctx, "+++/dev/null");
} else {
patch_id_add_string(&ctx, "---a/");
- git_SHA1_Update(&ctx, p->one->path, len1);
+ the_hash_algo->update_fn(&ctx, p->one->path, len1);
patch_id_add_string(&ctx, "+++b/");
- git_SHA1_Update(&ctx, p->two->path, len2);
+ the_hash_algo->update_fn(&ctx, p->two->path, len2);
}
if (diff_header_only)
@@ -6108,10 +6111,10 @@ static int diff_get_patch_id(struct diff_options *options, struct object_id *oid
if (diff_filespec_is_binary(options->repo, p->one) ||
diff_filespec_is_binary(options->repo, p->two)) {
- git_SHA1_Update(&ctx, oid_to_hex(&p->one->oid),
- GIT_SHA1_HEXSZ);
- git_SHA1_Update(&ctx, oid_to_hex(&p->two->oid),
- GIT_SHA1_HEXSZ);
+ the_hash_algo->update_fn(&ctx, oid_to_hex(&p->one->oid),
+ the_hash_algo->hexsz);
+ the_hash_algo->update_fn(&ctx, oid_to_hex(&p->two->oid),
+ the_hash_algo->hexsz);
continue;
}
@@ -6128,7 +6131,7 @@ static int diff_get_patch_id(struct diff_options *options, struct object_id *oid
}
if (!stable)
- git_SHA1_Final(oid->hash, &ctx);
+ the_hash_algo->final_fn(oid->hash, &ctx);
return 0;
}
@@ -6230,8 +6233,10 @@ static void diff_flush_patch_all_file_pairs(struct diff_options *o)
if (o->color_moved == COLOR_MOVED_ZEBRA_DIM)
dim_moved_lines(o);
- hashmap_free(&add_lines, 1);
- hashmap_free(&del_lines, 1);
+ hashmap_free_entries(&add_lines, struct moved_entry,
+ ent);
+ hashmap_free_entries(&del_lines, struct moved_entry,
+ ent);
}
for (i = 0; i < esm.nr; i++)
@@ -6512,6 +6517,7 @@ static void add_if_missing(struct repository *r,
const struct diff_filespec *filespec)
{
if (filespec && filespec->oid_valid &&
+ !S_ISGITLINK(filespec->mode) &&
oid_object_info_extended(r, &filespec->oid, NULL,
OBJECT_INFO_FOR_PREFETCH))
oid_array_append(to_fetch, &filespec->oid);
@@ -6519,8 +6525,7 @@ static void add_if_missing(struct repository *r,
void diffcore_std(struct diff_options *options)
{
- if (options->repo == the_repository &&
- repository_format_partial_clone) {
+ if (options->repo == the_repository && has_promisor_remote()) {
/*
* Prefetch the diff pairs that are about to be flushed.
*/
@@ -6537,8 +6542,8 @@ void diffcore_std(struct diff_options *options)
/*
* NEEDSWORK: Consider deduplicating the OIDs sent.
*/
- fetch_objects(repository_format_partial_clone,
- to_fetch.oid, to_fetch.nr);
+ promisor_remote_get_direct(options->repo,
+ to_fetch.oid, to_fetch.nr);
oid_array_clear(&to_fetch);
}
diff --git a/diff.h b/diff.h
index c2c3056..7f8f024 100644
--- a/diff.h
+++ b/diff.h
@@ -438,7 +438,7 @@ int run_diff_index(struct rev_info *revs, int cached);
int do_diff_cache(const struct object_id *, struct diff_options *);
int diff_flush_patch_id(struct diff_options *, struct object_id *, int, int);
-void flush_one_hunk(struct object_id *, git_SHA_CTX *);
+void flush_one_hunk(struct object_id *result, git_hash_ctx *ctx);
int diff_result_code(struct diff_options *, int);
diff --git a/diffcore-break.c b/diffcore-break.c
index 875aefd..9d20a6a 100644
--- a/diffcore-break.c
+++ b/diffcore-break.c
@@ -286,17 +286,17 @@ void diffcore_merge_broken(void)
/* Peer survived. Merge them */
merge_broken(p, pp, &outq);
q->queue[j] = NULL;
- break;
+ goto next;
}
}
- if (q->nr <= j)
- /* The peer did not survive, so we keep
- * it in the output.
- */
- diff_q(&outq, p);
+ /* The peer did not survive, so we keep
+ * it in the output.
+ */
+ diff_q(&outq, p);
}
else
diff_q(&outq, p);
+next:;
}
free(q->queue);
*q = outq;
diff --git a/diffcore-rename.c b/diffcore-rename.c
index 9624864..531d7ad 100644
--- a/diffcore-rename.c
+++ b/diffcore-rename.c
@@ -274,18 +274,17 @@ static int find_identical_files(struct hashmap *srcs,
struct diff_options *options)
{
int renames = 0;
-
struct diff_filespec *target = rename_dst[dst_index].two;
struct file_similarity *p, *best = NULL;
int i = 100, best_score = -1;
+ unsigned int hash = hash_filespec(options->repo, target);
/*
* Find the best source match for specified destination.
*/
- p = hashmap_get_from_hash(srcs,
- hash_filespec(options->repo, target),
- NULL);
- for (; p; p = hashmap_get_next(srcs, p)) {
+ p = hashmap_get_entry_from_hash(srcs, hash, NULL,
+ struct file_similarity, entry);
+ hashmap_for_each_entry_from(srcs, p, entry) {
int score;
struct diff_filespec *source = p->filespec;
@@ -329,8 +328,8 @@ static void insert_file_table(struct repository *r,
entry->index = index;
entry->filespec = filespec;
- hashmap_entry_init(entry, hash_filespec(r, filespec));
- hashmap_add(table, entry);
+ hashmap_entry_init(&entry->entry, hash_filespec(r, filespec));
+ hashmap_add(table, &entry->entry);
}
/*
@@ -359,7 +358,7 @@ static int find_exact_renames(struct diff_options *options)
renames += find_identical_files(&file_table, i, options);
/* Free the hash data structure and entries */
- hashmap_free(&file_table, 1);
+ hashmap_free_entries(&file_table, struct file_similarity, entry);
return renames;
}
@@ -585,7 +584,7 @@ void diffcore_rename(struct diff_options *options)
stop_progress(&progress);
/* cost matrix sorted by most to least similar pair */
- QSORT(mx, dst_cnt * NUM_CANDIDATE_PER_DST, score_compare);
+ STABLE_QSORT(mx, dst_cnt * NUM_CANDIDATE_PER_DST, score_compare);
rename_count += find_renames(mx, dst_cnt, minimum_score, 0);
if (detect_rename == DIFF_DETECT_COPY)
diff --git a/dir.c b/dir.c
index d021c90..61f559f9 100644
--- a/dir.c
+++ b/dir.c
@@ -139,7 +139,7 @@ static size_t common_prefix_len(const struct pathspec *pathspec)
* ":(icase)path" is treated as a pathspec full of
* wildcard. In other words, only prefix is considered common
* prefix. If the pathspec is abc/foo abc/bar, running in
- * subdir xyz, the common prefix is still xyz, not xuz/abc as
+ * subdir xyz, the common prefix is still xyz, not xyz/abc as
* in non-:(icase).
*/
GUARD_PATHSPEC(pathspec,
@@ -273,19 +273,30 @@ static int do_read_blob(const struct object_id *oid, struct oid_stat *oid_stat,
#define DO_MATCH_EXCLUDE (1<<0)
#define DO_MATCH_DIRECTORY (1<<1)
-#define DO_MATCH_SUBMODULE (1<<2)
+#define DO_MATCH_LEADING_PATHSPEC (1<<2)
/*
- * Does 'match' match the given name?
- * A match is found if
+ * Does the given pathspec match the given name? A match is found if
*
- * (1) the 'match' string is leading directory of 'name', or
- * (2) the 'match' string is a wildcard and matches 'name', or
- * (3) the 'match' string is exactly the same as 'name'.
+ * (1) the pathspec string is leading directory of 'name' ("RECURSIVELY"), or
+ * (2) the pathspec string has a leading part matching 'name' ("LEADING"), or
+ * (3) the pathspec string is a wildcard and matches 'name' ("WILDCARD"), or
+ * (4) the pathspec string is exactly the same as 'name' ("EXACT").
*
- * and the return value tells which case it was.
+ * Return value tells which case it was (1-4), or 0 when there is no match.
*
- * It returns 0 when there is no match.
+ * It may be instructive to look at a small table of concrete examples
+ * to understand the differences between 1, 2, and 4:
+ *
+ * Pathspecs
+ * | a/b | a/b/ | a/b/c
+ * ------+-----------+-----------+------------
+ * a/b | EXACT | EXACT[1] | LEADING[2]
+ * Names a/b/ | RECURSIVE | EXACT | LEADING[2]
+ * a/b/c | RECURSIVE | RECURSIVE | EXACT
+ *
+ * [1] Only if DO_MATCH_DIRECTORY is passed; otherwise, this is NOT a match.
+ * [2] Only if DO_MATCH_LEADING_PATHSPEC is passed; otherwise, not a match.
*/
static int match_pathspec_item(const struct index_state *istate,
const struct pathspec_item *item, int prefix,
@@ -353,13 +364,14 @@ static int match_pathspec_item(const struct index_state *istate,
item->nowildcard_len - prefix))
return MATCHED_FNMATCH;
- /* Perform checks to see if "name" is a super set of the pathspec */
- if (flags & DO_MATCH_SUBMODULE) {
+ /* Perform checks to see if "name" is a leading string of the pathspec */
+ if (flags & DO_MATCH_LEADING_PATHSPEC) {
/* name is a literal prefix of the pathspec */
+ int offset = name[namelen-1] == '/' ? 1 : 0;
if ((namelen < matchlen) &&
- (match[namelen] == '/') &&
+ (match[namelen-offset] == '/') &&
!ps_strncmp(item, match, name, namelen))
- return MATCHED_RECURSIVELY;
+ return MATCHED_RECURSIVELY_LEADING_PATHSPEC;
/* name" doesn't match up to the first wild character */
if (item->nowildcard_len < item->len &&
@@ -376,7 +388,7 @@ static int match_pathspec_item(const struct index_state *istate,
* The submodules themselves will be able to perform more
* accurate matching to determine if the pathspec matches.
*/
- return MATCHED_RECURSIVELY;
+ return MATCHED_RECURSIVELY_LEADING_PATHSPEC;
}
return 0;
@@ -497,7 +509,7 @@ int submodule_path_match(const struct index_state *istate,
strlen(submodule_name),
0, seen,
DO_MATCH_DIRECTORY |
- DO_MATCH_SUBMODULE);
+ DO_MATCH_LEADING_PATHSPEC);
return matched;
}
@@ -561,7 +573,7 @@ int no_wildcard(const char *string)
return string[simple_length(string)] == '\0';
}
-void parse_exclude_pattern(const char **pattern,
+void parse_path_pattern(const char **pattern,
int *patternlen,
unsigned *flags,
int *nowildcardlen)
@@ -571,20 +583,20 @@ void parse_exclude_pattern(const char **pattern,
*flags = 0;
if (*p == '!') {
- *flags |= EXC_FLAG_NEGATIVE;
+ *flags |= PATTERN_FLAG_NEGATIVE;
p++;
}
len = strlen(p);
if (len && p[len - 1] == '/') {
len--;
- *flags |= EXC_FLAG_MUSTBEDIR;
+ *flags |= PATTERN_FLAG_MUSTBEDIR;
}
for (i = 0; i < len; i++) {
if (p[i] == '/')
break;
}
if (i == len)
- *flags |= EXC_FLAG_NODIR;
+ *flags |= PATTERN_FLAG_NODIR;
*nowildcardlen = simple_length(p);
/*
* we should have excluded the trailing slash from 'p' too,
@@ -594,35 +606,35 @@ void parse_exclude_pattern(const char **pattern,
if (*nowildcardlen > len)
*nowildcardlen = len;
if (*p == '*' && no_wildcard(p + 1))
- *flags |= EXC_FLAG_ENDSWITH;
+ *flags |= PATTERN_FLAG_ENDSWITH;
*pattern = p;
*patternlen = len;
}
-void add_exclude(const char *string, const char *base,
- int baselen, struct exclude_list *el, int srcpos)
+void add_pattern(const char *string, const char *base,
+ int baselen, struct pattern_list *pl, int srcpos)
{
- struct exclude *x;
+ struct path_pattern *pattern;
int patternlen;
unsigned flags;
int nowildcardlen;
- parse_exclude_pattern(&string, &patternlen, &flags, &nowildcardlen);
- if (flags & EXC_FLAG_MUSTBEDIR) {
- FLEXPTR_ALLOC_MEM(x, pattern, string, patternlen);
+ parse_path_pattern(&string, &patternlen, &flags, &nowildcardlen);
+ if (flags & PATTERN_FLAG_MUSTBEDIR) {
+ FLEXPTR_ALLOC_MEM(pattern, pattern, string, patternlen);
} else {
- x = xmalloc(sizeof(*x));
- x->pattern = string;
+ pattern = xmalloc(sizeof(*pattern));
+ pattern->pattern = string;
}
- x->patternlen = patternlen;
- x->nowildcardlen = nowildcardlen;
- x->base = base;
- x->baselen = baselen;
- x->flags = flags;
- x->srcpos = srcpos;
- ALLOC_GROW(el->excludes, el->nr + 1, el->alloc);
- el->excludes[el->nr++] = x;
- x->el = el;
+ pattern->patternlen = patternlen;
+ pattern->nowildcardlen = nowildcardlen;
+ pattern->base = base;
+ pattern->baselen = baselen;
+ pattern->flags = flags;
+ pattern->srcpos = srcpos;
+ ALLOC_GROW(pl->patterns, pl->nr + 1, pl->alloc);
+ pl->patterns[pl->nr++] = pattern;
+ pattern->pl = pl;
}
static int read_skip_worktree_file_from_index(const struct index_state *istate,
@@ -643,19 +655,19 @@ static int read_skip_worktree_file_from_index(const struct index_state *istate,
}
/*
- * Frees memory within el which was allocated for exclude patterns and
- * the file buffer. Does not free el itself.
+ * Frees memory within pl which was allocated for exclude patterns and
+ * the file buffer. Does not free pl itself.
*/
-void clear_exclude_list(struct exclude_list *el)
+void clear_pattern_list(struct pattern_list *pl)
{
int i;
- for (i = 0; i < el->nr; i++)
- free(el->excludes[i]);
- free(el->excludes);
- free(el->filebuf);
+ for (i = 0; i < pl->nr; i++)
+ free(pl->patterns[i]);
+ free(pl->patterns);
+ free(pl->filebuf);
- memset(el, 0, sizeof(*el));
+ memset(pl, 0, sizeof(*pl));
}
static void trim_trailing_spaces(char *buf)
@@ -762,21 +774,21 @@ static void invalidate_directory(struct untracked_cache *uc,
dir->dirs[i]->recurse = 0;
}
-static int add_excludes_from_buffer(char *buf, size_t size,
+static int add_patterns_from_buffer(char *buf, size_t size,
const char *base, int baselen,
- struct exclude_list *el);
+ struct pattern_list *pl);
/*
* Given a file with name "fname", read it (either from disk, or from
* an index if 'istate' is non-null), parse it and store the
- * exclude rules in "el".
+ * exclude rules in "pl".
*
* If "ss" is not NULL, compute SHA-1 of the exclude file and fill
- * stat data from disk (only valid if add_excludes returns zero). If
+ * stat data from disk (only valid if add_patterns returns zero). If
* ss_valid is non-zero, "ss" must contain good value as input.
*/
-static int add_excludes(const char *fname, const char *base, int baselen,
- struct exclude_list *el, struct index_state *istate,
+static int add_patterns(const char *fname, const char *base, int baselen,
+ struct pattern_list *pl, struct index_state *istate,
struct oid_stat *oid_stat)
{
struct stat st;
@@ -837,21 +849,21 @@ static int add_excludes(const char *fname, const char *base, int baselen,
}
}
- add_excludes_from_buffer(buf, size, base, baselen, el);
+ add_patterns_from_buffer(buf, size, base, baselen, pl);
return 0;
}
-static int add_excludes_from_buffer(char *buf, size_t size,
+static int add_patterns_from_buffer(char *buf, size_t size,
const char *base, int baselen,
- struct exclude_list *el)
+ struct pattern_list *pl)
{
int i, lineno = 1;
char *entry;
- el->filebuf = buf;
+ pl->filebuf = buf;
if (skip_utf8_bom(&buf, size))
- size -= buf - el->filebuf;
+ size -= buf - pl->filebuf;
entry = buf;
@@ -860,7 +872,7 @@ static int add_excludes_from_buffer(char *buf, size_t size,
if (entry != buf + i && entry[0] != '#') {
buf[i - (i && buf[i-1] == '\r')] = 0;
trim_trailing_spaces(entry);
- add_exclude(entry, base, baselen, el, lineno);
+ add_pattern(entry, base, baselen, pl, lineno);
}
lineno++;
entry = buf + i + 1;
@@ -869,17 +881,17 @@ static int add_excludes_from_buffer(char *buf, size_t size,
return 0;
}
-int add_excludes_from_file_to_list(const char *fname, const char *base,
- int baselen, struct exclude_list *el,
+int add_patterns_from_file_to_list(const char *fname, const char *base,
+ int baselen, struct pattern_list *pl,
struct index_state *istate)
{
- return add_excludes(fname, base, baselen, el, istate, NULL);
+ return add_patterns(fname, base, baselen, pl, istate, NULL);
}
-int add_excludes_from_blob_to_list(
+int add_patterns_from_blob_to_list(
struct object_id *oid,
const char *base, int baselen,
- struct exclude_list *el)
+ struct pattern_list *pl)
{
char *buf;
size_t size;
@@ -889,31 +901,31 @@ int add_excludes_from_blob_to_list(
if (r != 1)
return r;
- add_excludes_from_buffer(buf, size, base, baselen, el);
+ add_patterns_from_buffer(buf, size, base, baselen, pl);
return 0;
}
-struct exclude_list *add_exclude_list(struct dir_struct *dir,
+struct pattern_list *add_pattern_list(struct dir_struct *dir,
int group_type, const char *src)
{
- struct exclude_list *el;
+ struct pattern_list *pl;
struct exclude_list_group *group;
group = &dir->exclude_list_group[group_type];
- ALLOC_GROW(group->el, group->nr + 1, group->alloc);
- el = &group->el[group->nr++];
- memset(el, 0, sizeof(*el));
- el->src = src;
- return el;
+ ALLOC_GROW(group->pl, group->nr + 1, group->alloc);
+ pl = &group->pl[group->nr++];
+ memset(pl, 0, sizeof(*pl));
+ pl->src = src;
+ return pl;
}
/*
* Used to set up core.excludesfile and .git/info/exclude lists.
*/
-static void add_excludes_from_file_1(struct dir_struct *dir, const char *fname,
+static void add_patterns_from_file_1(struct dir_struct *dir, const char *fname,
struct oid_stat *oid_stat)
{
- struct exclude_list *el;
+ struct pattern_list *pl;
/*
* catch setup_standard_excludes() that's called before
* dir->untracked is assigned. That function behaves
@@ -921,15 +933,15 @@ static void add_excludes_from_file_1(struct dir_struct *dir, const char *fname,
*/
if (!dir->untracked)
dir->unmanaged_exclude_files++;
- el = add_exclude_list(dir, EXC_FILE, fname);
- if (add_excludes(fname, "", 0, el, NULL, oid_stat) < 0)
+ pl = add_pattern_list(dir, EXC_FILE, fname);
+ if (add_patterns(fname, "", 0, pl, NULL, oid_stat) < 0)
die(_("cannot use %s as an exclude file"), fname);
}
-void add_excludes_from_file(struct dir_struct *dir, const char *fname)
+void add_patterns_from_file(struct dir_struct *dir, const char *fname)
{
dir->unmanaged_exclude_files++; /* see validate_untracked_cache() */
- add_excludes_from_file_1(dir, fname, NULL);
+ add_patterns_from_file_1(dir, fname, NULL);
}
int match_basename(const char *basename, int basenamelen,
@@ -940,7 +952,7 @@ int match_basename(const char *basename, int basenamelen,
if (patternlen == basenamelen &&
!fspathncmp(pattern, basename, basenamelen))
return 1;
- } else if (flags & EXC_FLAG_ENDSWITH) {
+ } else if (flags & PATTERN_FLAG_ENDSWITH) {
/* "*literal" matching against "fooliteral" */
if (patternlen - 1 <= basenamelen &&
!fspathncmp(pattern + 1,
@@ -1021,85 +1033,97 @@ int match_pathname(const char *pathname, int pathlen,
* any, determines the fate. Returns the exclude_list element which
* matched, or NULL for undecided.
*/
-static struct exclude *last_exclude_matching_from_list(const char *pathname,
+static struct path_pattern *last_matching_pattern_from_list(const char *pathname,
int pathlen,
const char *basename,
int *dtype,
- struct exclude_list *el,
+ struct pattern_list *pl,
struct index_state *istate)
{
- struct exclude *exc = NULL; /* undecided */
+ struct path_pattern *res = NULL; /* undecided */
int i;
- if (!el->nr)
+ if (!pl->nr)
return NULL; /* undefined */
- for (i = el->nr - 1; 0 <= i; i--) {
- struct exclude *x = el->excludes[i];
- const char *exclude = x->pattern;
- int prefix = x->nowildcardlen;
+ for (i = pl->nr - 1; 0 <= i; i--) {
+ struct path_pattern *pattern = pl->patterns[i];
+ const char *exclude = pattern->pattern;
+ int prefix = pattern->nowildcardlen;
- if (x->flags & EXC_FLAG_MUSTBEDIR) {
+ if (pattern->flags & PATTERN_FLAG_MUSTBEDIR) {
if (*dtype == DT_UNKNOWN)
*dtype = get_dtype(NULL, istate, pathname, pathlen);
if (*dtype != DT_DIR)
continue;
}
- if (x->flags & EXC_FLAG_NODIR) {
+ if (pattern->flags & PATTERN_FLAG_NODIR) {
if (match_basename(basename,
pathlen - (basename - pathname),
- exclude, prefix, x->patternlen,
- x->flags)) {
- exc = x;
+ exclude, prefix, pattern->patternlen,
+ pattern->flags)) {
+ res = pattern;
break;
}
continue;
}
- assert(x->baselen == 0 || x->base[x->baselen - 1] == '/');
+ assert(pattern->baselen == 0 ||
+ pattern->base[pattern->baselen - 1] == '/');
if (match_pathname(pathname, pathlen,
- x->base, x->baselen ? x->baselen - 1 : 0,
- exclude, prefix, x->patternlen, x->flags)) {
- exc = x;
+ pattern->base,
+ pattern->baselen ? pattern->baselen - 1 : 0,
+ exclude, prefix, pattern->patternlen,
+ pattern->flags)) {
+ res = pattern;
break;
}
}
- return exc;
+ return res;
}
/*
- * Scan the list and let the last match determine the fate.
- * Return 1 for exclude, 0 for include and -1 for undecided.
+ * Scan the list of patterns to determine if the ordered list
+ * of patterns matches on 'pathname'.
+ *
+ * Return 1 for a match, 0 for not matched and -1 for undecided.
*/
-int is_excluded_from_list(const char *pathname,
- int pathlen, const char *basename, int *dtype,
- struct exclude_list *el, struct index_state *istate)
-{
- struct exclude *exclude;
- exclude = last_exclude_matching_from_list(pathname, pathlen, basename,
- dtype, el, istate);
- if (exclude)
- return exclude->flags & EXC_FLAG_NEGATIVE ? 0 : 1;
- return -1; /* undecided */
+enum pattern_match_result path_matches_pattern_list(
+ const char *pathname, int pathlen,
+ const char *basename, int *dtype,
+ struct pattern_list *pl,
+ struct index_state *istate)
+{
+ struct path_pattern *pattern;
+ pattern = last_matching_pattern_from_list(pathname, pathlen, basename,
+ dtype, pl, istate);
+ if (pattern) {
+ if (pattern->flags & PATTERN_FLAG_NEGATIVE)
+ return NOT_MATCHED;
+ else
+ return MATCHED;
+ }
+
+ return UNDECIDED;
}
-static struct exclude *last_exclude_matching_from_lists(struct dir_struct *dir,
- struct index_state *istate,
- const char *pathname, int pathlen, const char *basename,
- int *dtype_p)
+static struct path_pattern *last_matching_pattern_from_lists(
+ struct dir_struct *dir, struct index_state *istate,
+ const char *pathname, int pathlen,
+ const char *basename, int *dtype_p)
{
int i, j;
struct exclude_list_group *group;
- struct exclude *exclude;
+ struct path_pattern *pattern;
for (i = EXC_CMDL; i <= EXC_FILE; i++) {
group = &dir->exclude_list_group[i];
for (j = group->nr - 1; j >= 0; j--) {
- exclude = last_exclude_matching_from_list(
+ pattern = last_matching_pattern_from_list(
pathname, pathlen, basename, dtype_p,
- &group->el[j], istate);
- if (exclude)
- return exclude;
+ &group->pl[j], istate);
+ if (pattern)
+ return pattern;
}
}
return NULL;
@@ -1114,7 +1138,7 @@ static void prep_exclude(struct dir_struct *dir,
const char *base, int baselen)
{
struct exclude_list_group *group;
- struct exclude_list *el;
+ struct pattern_list *pl;
struct exclude_stack *stk = NULL;
struct untracked_cache_dir *untracked;
int current;
@@ -1130,17 +1154,17 @@ static void prep_exclude(struct dir_struct *dir,
if (stk->baselen <= baselen &&
!strncmp(dir->basebuf.buf, base, stk->baselen))
break;
- el = &group->el[dir->exclude_stack->exclude_ix];
+ pl = &group->pl[dir->exclude_stack->exclude_ix];
dir->exclude_stack = stk->prev;
- dir->exclude = NULL;
- free((char *)el->src); /* see strbuf_detach() below */
- clear_exclude_list(el);
+ dir->pattern = NULL;
+ free((char *)pl->src); /* see strbuf_detach() below */
+ clear_pattern_list(pl);
free(stk);
group->nr--;
}
/* Skip traversing into sub directories if the parent is excluded */
- if (dir->exclude)
+ if (dir->pattern)
return;
/*
@@ -1181,7 +1205,7 @@ static void prep_exclude(struct dir_struct *dir,
stk->baselen = cp - base;
stk->exclude_ix = group->nr;
stk->ucd = untracked;
- el = add_exclude_list(dir, EXC_DIRS, NULL);
+ pl = add_pattern_list(dir, EXC_DIRS, NULL);
strbuf_add(&dir->basebuf, base + current, stk->baselen - current);
assert(stk->baselen == dir->basebuf.len);
@@ -1189,15 +1213,15 @@ static void prep_exclude(struct dir_struct *dir,
if (stk->baselen) {
int dt = DT_DIR;
dir->basebuf.buf[stk->baselen - 1] = 0;
- dir->exclude = last_exclude_matching_from_lists(dir,
+ dir->pattern = last_matching_pattern_from_lists(dir,
istate,
dir->basebuf.buf, stk->baselen - 1,
dir->basebuf.buf + current, &dt);
dir->basebuf.buf[stk->baselen - 1] = '/';
- if (dir->exclude &&
- dir->exclude->flags & EXC_FLAG_NEGATIVE)
- dir->exclude = NULL;
- if (dir->exclude) {
+ if (dir->pattern &&
+ dir->pattern->flags & PATTERN_FLAG_NEGATIVE)
+ dir->pattern = NULL;
+ if (dir->pattern) {
dir->exclude_stack = stk;
return;
}
@@ -1223,30 +1247,30 @@ static void prep_exclude(struct dir_struct *dir,
/*
* dir->basebuf gets reused by the traversal, but we
* need fname to remain unchanged to ensure the src
- * member of each struct exclude correctly
+ * member of each struct path_pattern correctly
* back-references its source file. Other invocations
- * of add_exclude_list provide stable strings, so we
+ * of add_pattern_list provide stable strings, so we
* strbuf_detach() and free() here in the caller.
*/
struct strbuf sb = STRBUF_INIT;
strbuf_addbuf(&sb, &dir->basebuf);
strbuf_addstr(&sb, dir->exclude_per_dir);
- el->src = strbuf_detach(&sb, NULL);
- add_excludes(el->src, el->src, stk->baselen, el, istate,
+ pl->src = strbuf_detach(&sb, NULL);
+ add_patterns(pl->src, pl->src, stk->baselen, pl, istate,
untracked ? &oid_stat : NULL);
}
/*
* NEEDSWORK: when untracked cache is enabled, prep_exclude()
* will first be called in valid_cached_dir() then maybe many
- * times more in last_exclude_matching(). When the cache is
- * used, last_exclude_matching() will not be called and
+ * times more in last_matching_pattern(). When the cache is
+ * used, last_matching_pattern() will not be called and
* reading .gitignore content will be a waste.
*
* So when it's called by valid_cached_dir() and we can get
* .gitignore SHA-1 from the index (i.e. .gitignore is not
* modified on work tree), we could delay reading the
* .gitignore content until we absolutely need it in
- * last_exclude_matching(). Be careful about ignore rule
+ * last_matching_pattern(). Be careful about ignore rule
* order, though, if you do that.
*/
if (untracked &&
@@ -1266,7 +1290,7 @@ static void prep_exclude(struct dir_struct *dir,
* Returns the exclude_list element which matched, or NULL for
* undecided.
*/
-struct exclude *last_exclude_matching(struct dir_struct *dir,
+struct path_pattern *last_matching_pattern(struct dir_struct *dir,
struct index_state *istate,
const char *pathname,
int *dtype_p)
@@ -1277,10 +1301,10 @@ struct exclude *last_exclude_matching(struct dir_struct *dir,
prep_exclude(dir, istate, pathname, basename-pathname);
- if (dir->exclude)
- return dir->exclude;
+ if (dir->pattern)
+ return dir->pattern;
- return last_exclude_matching_from_lists(dir, istate, pathname, pathlen,
+ return last_matching_pattern_from_lists(dir, istate, pathname, pathlen,
basename, dtype_p);
}
@@ -1292,10 +1316,10 @@ struct exclude *last_exclude_matching(struct dir_struct *dir,
int is_excluded(struct dir_struct *dir, struct index_state *istate,
const char *pathname, int *dtype_p)
{
- struct exclude *exclude =
- last_exclude_matching(dir, istate, pathname, dtype_p);
- if (exclude)
- return exclude->flags & EXC_FLAG_NEGATIVE ? 0 : 1;
+ struct path_pattern *pattern =
+ last_matching_pattern(dir, istate, pathname, dtype_p);
+ if (pattern)
+ return pattern->flags & PATTERN_FLAG_NEGATIVE ? 0 : 1;
return 0;
}
@@ -1439,6 +1463,16 @@ static enum path_treatment treat_directory(struct dir_struct *dir,
return path_none;
case index_nonexistent:
+ if (dir->flags & DIR_SKIP_NESTED_GIT) {
+ int nested_repo;
+ struct strbuf sb = STRBUF_INIT;
+ strbuf_addstr(&sb, dirname);
+ nested_repo = is_nonbare_repository_dir(&sb);
+ strbuf_release(&sb);
+ if (nested_repo)
+ return path_none;
+ }
+
if (dir->flags & DIR_SHOW_OTHER_DIRECTORIES)
break;
if (exclude &&
@@ -1808,7 +1842,7 @@ static int valid_cached_dir(struct dir_struct *dir,
/*
* prep_exclude will be called eventually on this directory,
- * but it's called much later in last_exclude_matching(). We
+ * but it's called much later in last_matching_pattern(). We
* need it now to determine the validity of the cache for this
* path. The next calls will be nearly no-op, the way
* prep_exclude() is designed.
@@ -1938,8 +1972,11 @@ static enum path_treatment read_directory_recursive(struct dir_struct *dir,
/* recurse into subdir if instructed by treat_path */
if ((state == path_recurse) ||
((state == path_untracked) &&
- (dir->flags & DIR_SHOW_IGNORED_TOO) &&
- (get_dtype(cdir.de, istate, path.buf, path.len) == DT_DIR))) {
+ (get_dtype(cdir.de, istate, path.buf, path.len) == DT_DIR) &&
+ ((dir->flags & DIR_SHOW_IGNORED_TOO) ||
+ (pathspec &&
+ do_match_pathspec(istate, pathspec, path.buf, path.len,
+ baselen, NULL, DO_MATCH_LEADING_PATHSPEC) == MATCHED_RECURSIVELY_LEADING_PATHSPEC)))) {
struct untracked_cache_dir *ud;
ud = lookup_untracked(dir->untracked, untracked,
path.buf + baselen,
@@ -1950,6 +1987,12 @@ static enum path_treatment read_directory_recursive(struct dir_struct *dir,
check_only, stop_at_first_file, pathspec);
if (subdir_state > dir_state)
dir_state = subdir_state;
+
+ if (pathspec &&
+ !match_pathspec(istate, pathspec, path.buf, path.len,
+ 0 /* prefix */, NULL,
+ 0 /* do NOT special case dirs */))
+ state = path_none;
}
if (check_only) {
@@ -2488,14 +2531,14 @@ void setup_standard_excludes(struct dir_struct *dir)
if (!excludes_file)
excludes_file = xdg_config_home("ignore");
if (excludes_file && !access_or_warn(excludes_file, R_OK, 0))
- add_excludes_from_file_1(dir, excludes_file,
+ add_patterns_from_file_1(dir, excludes_file,
dir->untracked ? &dir->ss_excludes_file : NULL);
/* per repository user preference */
if (startup_info->have_repository) {
const char *path = git_path_info_exclude();
if (!access_or_warn(path, R_OK, 0))
- add_excludes_from_file_1(dir, path,
+ add_patterns_from_file_1(dir, path,
dir->untracked ? &dir->ss_info_exclude : NULL);
}
}
@@ -2527,18 +2570,18 @@ void clear_directory(struct dir_struct *dir)
{
int i, j;
struct exclude_list_group *group;
- struct exclude_list *el;
+ struct pattern_list *pl;
struct exclude_stack *stk;
for (i = EXC_CMDL; i <= EXC_FILE; i++) {
group = &dir->exclude_list_group[i];
for (j = 0; j < group->nr; j++) {
- el = &group->el[j];
+ pl = &group->pl[j];
if (i == EXC_DIRS)
- free((char *)el->src);
- clear_exclude_list(el);
+ free((char *)pl->src);
+ clear_pattern_list(pl);
}
- free(group->el);
+ free(group->pl);
}
stk = dir->exclude_stack;
diff --git a/dir.h b/dir.h
index 680079b..2fbdef0 100644
--- a/dir.h
+++ b/dir.h
@@ -11,24 +11,24 @@ struct dir_entry {
char name[FLEX_ARRAY]; /* more */
};
-#define EXC_FLAG_NODIR 1
-#define EXC_FLAG_ENDSWITH 4
-#define EXC_FLAG_MUSTBEDIR 8
-#define EXC_FLAG_NEGATIVE 16
+#define PATTERN_FLAG_NODIR 1
+#define PATTERN_FLAG_ENDSWITH 4
+#define PATTERN_FLAG_MUSTBEDIR 8
+#define PATTERN_FLAG_NEGATIVE 16
-struct exclude {
+struct path_pattern {
/*
- * This allows callers of last_exclude_matching() etc.
+ * This allows callers of last_matching_pattern() etc.
* to determine the origin of the matching pattern.
*/
- struct exclude_list *el;
+ struct pattern_list *pl;
const char *pattern;
int patternlen;
int nowildcardlen;
const char *base;
int baselen;
- unsigned flags; /* EXC_FLAG_* */
+ unsigned flags; /* PATTERN_FLAG_* */
/*
* Counting starts from 1 for line numbers in ignore files,
@@ -44,7 +44,7 @@ struct exclude {
* can also be used to represent the list of --exclude values passed
* via CLI args.
*/
-struct exclude_list {
+struct pattern_list {
int nr;
int alloc;
@@ -54,7 +54,7 @@ struct exclude_list {
/* origin of list, e.g. path to filename, or descriptive string */
const char *src;
- struct exclude **excludes;
+ struct path_pattern **patterns;
};
/*
@@ -72,7 +72,7 @@ struct exclude_stack {
struct exclude_list_group {
int nr, alloc;
- struct exclude_list *el;
+ struct pattern_list *pl;
};
struct oid_stat {
@@ -156,7 +156,8 @@ struct dir_struct {
DIR_SHOW_IGNORED_TOO = 1<<5,
DIR_COLLECT_KILLED_ONLY = 1<<6,
DIR_KEEP_UNTRACKED_CONTENTS = 1<<7,
- DIR_SHOW_IGNORED_TOO_MODE_MATCHING = 1<<8
+ DIR_SHOW_IGNORED_TOO_MODE_MATCHING = 1<<8,
+ DIR_SKIP_NESTED_GIT = 1<<9
} flags;
struct dir_entry **entries;
struct dir_entry **ignored;
@@ -191,7 +192,7 @@ struct dir_struct {
* matching exclude struct if the directory is excluded.
*/
struct exclude_stack *exclude_stack;
- struct exclude *exclude;
+ struct path_pattern *pattern;
struct strbuf basebuf;
/* Enable untracked file cache if set */
@@ -211,8 +212,9 @@ int count_slashes(const char *s);
* when populating the seen[] array.
*/
#define MATCHED_RECURSIVELY 1
-#define MATCHED_FNMATCH 2
-#define MATCHED_EXACTLY 3
+#define MATCHED_RECURSIVELY_LEADING_PATHSPEC 2
+#define MATCHED_FNMATCH 3
+#define MATCHED_EXACTLY 4
int simple_length(const char *match);
int no_wildcard(const char *string);
char *common_prefix(const struct pathspec *pathspec);
@@ -230,10 +232,23 @@ int read_directory(struct dir_struct *, struct index_state *istate,
const char *path, int len,
const struct pathspec *pathspec);
-int is_excluded_from_list(const char *pathname, int pathlen,
- const char *basename, int *dtype,
- struct exclude_list *el,
- struct index_state *istate);
+enum pattern_match_result {
+ UNDECIDED = -1,
+ NOT_MATCHED = 0,
+ MATCHED = 1,
+};
+
+/*
+ * Scan the list of patterns to determine if the ordered list
+ * of patterns matches on 'pathname'.
+ *
+ * Return 1 for a match, 0 for not matched and -1 for undecided.
+ */
+enum pattern_match_result path_matches_pattern_list(const char *pathname,
+ int pathlen,
+ const char *basename, int *dtype,
+ struct pattern_list *pl,
+ struct index_state *istate);
struct dir_entry *dir_add_ignored(struct dir_struct *dir,
struct index_state *istate,
const char *pathname, int len);
@@ -248,26 +263,26 @@ int match_pathname(const char *, int,
const char *, int,
const char *, int, int, unsigned);
-struct exclude *last_exclude_matching(struct dir_struct *dir,
- struct index_state *istate,
- const char *name, int *dtype);
+struct path_pattern *last_matching_pattern(struct dir_struct *dir,
+ struct index_state *istate,
+ const char *name, int *dtype);
int is_excluded(struct dir_struct *dir,
struct index_state *istate,
const char *name, int *dtype);
-struct exclude_list *add_exclude_list(struct dir_struct *dir,
+struct pattern_list *add_pattern_list(struct dir_struct *dir,
int group_type, const char *src);
-int add_excludes_from_file_to_list(const char *fname, const char *base, int baselen,
- struct exclude_list *el, struct index_state *istate);
-void add_excludes_from_file(struct dir_struct *, const char *fname);
-int add_excludes_from_blob_to_list(struct object_id *oid,
+int add_patterns_from_file_to_list(const char *fname, const char *base, int baselen,
+ struct pattern_list *pl, struct index_state *istate);
+void add_patterns_from_file(struct dir_struct *, const char *fname);
+int add_patterns_from_blob_to_list(struct object_id *oid,
const char *base, int baselen,
- struct exclude_list *el);
-void parse_exclude_pattern(const char **string, int *patternlen, unsigned *flags, int *nowildcardlen);
-void add_exclude(const char *string, const char *base,
- int baselen, struct exclude_list *el, int srcpos);
-void clear_exclude_list(struct exclude_list *el);
+ struct pattern_list *pl);
+void parse_path_pattern(const char **string, int *patternlen, unsigned *flags, int *nowildcardlen);
+void add_pattern(const char *string, const char *base,
+ int baselen, struct pattern_list *pl, int srcpos);
+void clear_pattern_list(struct pattern_list *pl);
void clear_directory(struct dir_struct *dir);
int repo_file_exists(struct repository *repo, const char *path);
diff --git a/environment.c b/environment.c
index 89af47c..efa0726 100644
--- a/environment.c
+++ b/environment.c
@@ -31,8 +31,6 @@ int warn_ambiguous_refs = 1;
int warn_on_object_refname_ambiguity = 1;
int ref_paranoia = -1;
int repository_format_precious_objects;
-char *repository_format_partial_clone;
-const char *core_partial_clone_filter_default;
int repository_format_worktree_config;
const char *git_commit_encoding;
const char *git_log_output_encoding;
diff --git a/fast-import.c b/fast-import.c
index b44d6a4..9503d08 100644
--- a/fast-import.c
+++ b/fast-import.c
@@ -1763,7 +1763,6 @@ static int read_next_command(void)
} else {
struct recent_command *rc;
- strbuf_detach(&command_buf, NULL);
stdin_eof = strbuf_getline_lf(&command_buf, stdin);
if (stdin_eof)
return EOF;
@@ -1784,7 +1783,7 @@ static int read_next_command(void)
free(rc->buf);
}
- rc->buf = command_buf.buf;
+ rc->buf = xstrdup(command_buf.buf);
rc->prev = cmd_tail;
rc->next = cmd_hist.prev;
rc->prev->next = rc;
@@ -1833,7 +1832,6 @@ static int parse_data(struct strbuf *sb, uintmax_t limit, uintmax_t *len_res)
char *term = xstrdup(data);
size_t term_len = command_buf.len - (data - command_buf.buf);
- strbuf_detach(&command_buf, NULL);
for (;;) {
if (strbuf_getline_lf(&command_buf, stdin) == EOF)
die("EOF in data (terminator '%s' not found)", term);
@@ -2491,18 +2489,14 @@ static void parse_from_existing(struct branch *b)
}
}
-static int parse_from(struct branch *b)
+static int parse_objectish(struct branch *b, const char *objectish)
{
- const char *from;
struct branch *s;
struct object_id oid;
- if (!skip_prefix(command_buf.buf, "from ", &from))
- return 0;
-
oidcpy(&oid, &b->branch_tree.versions[1].oid);
- s = lookup_branch(from);
+ s = lookup_branch(objectish);
if (b == s)
die("Can't create a branch from itself: %s", b->name);
else if (s) {
@@ -2510,8 +2504,8 @@ static int parse_from(struct branch *b)
oidcpy(&b->oid, &s->oid);
oidcpy(&b->branch_tree.versions[0].oid, t);
oidcpy(&b->branch_tree.versions[1].oid, t);
- } else if (*from == ':') {
- uintmax_t idnum = parse_mark_ref_eol(from);
+ } else if (*objectish == ':') {
+ uintmax_t idnum = parse_mark_ref_eol(objectish);
struct object_entry *oe = find_mark(idnum);
if (oe->type != OBJ_COMMIT)
die("Mark :%" PRIuMAX " not a commit", idnum);
@@ -2525,13 +2519,13 @@ static int parse_from(struct branch *b)
} else
parse_from_existing(b);
}
- } else if (!get_oid(from, &b->oid)) {
+ } else if (!get_oid(objectish, &b->oid)) {
parse_from_existing(b);
if (is_null_oid(&b->oid))
b->delete = 1;
}
else
- die("Invalid ref name or SHA1 expression: %s", from);
+ die("Invalid ref name or SHA1 expression: %s", objectish);
if (b->branch_tree.tree && !oideq(&oid, &b->branch_tree.versions[1].oid)) {
release_tree_content_recursive(b->branch_tree.tree);
@@ -2542,6 +2536,26 @@ static int parse_from(struct branch *b)
return 1;
}
+static int parse_from(struct branch *b)
+{
+ const char *from;
+
+ if (!skip_prefix(command_buf.buf, "from ", &from))
+ return 0;
+
+ return parse_objectish(b, from);
+}
+
+static int parse_objectish_with_prefix(struct branch *b, const char *prefix)
+{
+ const char *base;
+
+ if (!skip_prefix(command_buf.buf, prefix, &base))
+ return 0;
+
+ return parse_objectish(b, base);
+}
+
static struct hash_list *parse_merge(unsigned int *count)
{
struct hash_list *list = NULL, **tail = &list, *n;
@@ -2588,7 +2602,7 @@ static void parse_new_commit(const char *arg)
struct branch *b;
char *author = NULL;
char *committer = NULL;
- const char *encoding = NULL;
+ char *encoding = NULL;
struct hash_list *merge_list = NULL;
unsigned int merge_count;
unsigned char prev_fanout, new_fanout;
@@ -2611,8 +2625,10 @@ static void parse_new_commit(const char *arg)
}
if (!committer)
die("Expected committer but didn't get one");
- if (skip_prefix(command_buf.buf, "encoding ", &encoding))
+ if (skip_prefix(command_buf.buf, "encoding ", &v)) {
+ encoding = xstrdup(v);
read_next_command();
+ }
parse_data(&msg, 0, NULL);
read_next_command();
parse_from(b);
@@ -2686,6 +2702,7 @@ static void parse_new_commit(const char *arg)
strbuf_addbuf(&new_data, &msg);
free(author);
free(committer);
+ free(encoding);
if (!store_object(OBJ_COMMIT, &new_data, NULL, &b->oid, next_mark))
b->pack_id = pack_id;
@@ -2713,6 +2730,7 @@ static void parse_new_tag(const char *arg)
first_tag = t;
last_tag = t;
read_next_command();
+ parse_mark();
/* from ... */
if (!skip_prefix(command_buf.buf, "from ", &from))
@@ -2769,7 +2787,7 @@ static void parse_new_tag(const char *arg)
strbuf_addbuf(&new_data, &msg);
free(tagger);
- if (store_object(OBJ_TAG, &new_data, NULL, &t->oid, 0))
+ if (store_object(OBJ_TAG, &new_data, NULL, &t->oid, next_mark))
t->pack_id = MAX_PACK_ID;
else
t->pack_id = pack_id;
@@ -2778,6 +2796,7 @@ static void parse_new_tag(const char *arg)
static void parse_reset_branch(const char *arg)
{
struct branch *b;
+ const char *tag_name;
b = lookup_branch(arg);
if (b) {
@@ -2793,6 +2812,32 @@ static void parse_reset_branch(const char *arg)
b = new_branch(arg);
read_next_command();
parse_from(b);
+ if (b->delete && skip_prefix(b->name, "refs/tags/", &tag_name)) {
+ /*
+ * Elsewhere, we call dump_branches() before dump_tags(),
+ * and dump_branches() will handle ref deletions first, so
+ * in order to make sure the deletion actually takes effect,
+ * we need to remove the tag from our list of tags to update.
+ *
+ * NEEDSWORK: replace list of tags with hashmap for faster
+ * deletion?
+ */
+ struct tag *t, *prev = NULL;
+ for (t = first_tag; t; t = t->next_tag) {
+ if (!strcmp(t->name, tag_name))
+ break;
+ prev = t;
+ }
+ if (t) {
+ if (prev)
+ prev->next_tag = t->next_tag;
+ else
+ first_tag = t->next_tag;
+ if (!t->next_tag)
+ last_tag = prev;
+ /* There is no mem_pool_free(t) function to call. */
+ }
+ }
if (command_buf.len > 0)
unread_command_buf = 1;
}
@@ -3059,6 +3104,28 @@ static void parse_progress(void)
skip_optional_lf();
}
+static void parse_alias(void)
+{
+ struct object_entry *e;
+ struct branch b;
+
+ skip_optional_lf();
+ read_next_command();
+
+ /* mark ... */
+ parse_mark();
+ if (!next_mark)
+ die(_("Expected 'mark' command, got %s"), command_buf.buf);
+
+ /* to ... */
+ memset(&b, 0, sizeof(b));
+ if (!parse_objectish_with_prefix(&b, "to "))
+ die(_("Expected 'to' command, got %s"), command_buf.buf);
+ e = find_object(&b.oid);
+ assert(e);
+ insert_mark(next_mark, e);
+}
+
static char* make_fast_import_path(const char *path)
{
if (!relative_marks_paths || is_absolute_path(path))
@@ -3186,6 +3253,8 @@ static int parse_one_feature(const char *feature, int from_stream)
option_import_marks(arg, from_stream, 1);
} else if (skip_prefix(feature, "export-marks=", &arg)) {
option_export_marks(arg);
+ } else if (!strcmp(feature, "alias")) {
+ ; /* Don't die - this feature is supported */
} else if (!strcmp(feature, "get-mark")) {
; /* Don't die - this feature is supported */
} else if (!strcmp(feature, "cat-blob")) {
@@ -3342,6 +3411,8 @@ int cmd_main(int argc, const char **argv)
parse_checkpoint();
else if (!strcmp("done", command_buf.buf))
break;
+ else if (!strcmp("alias", command_buf.buf))
+ parse_alias();
else if (starts_with(command_buf.buf, "progress "))
parse_progress();
else if (skip_prefix(command_buf.buf, "feature ", &v))
diff --git a/fetch-negotiator.c b/fetch-negotiator.c
index d6d685c..0a1357d 100644
--- a/fetch-negotiator.c
+++ b/fetch-negotiator.c
@@ -2,19 +2,20 @@
#include "fetch-negotiator.h"
#include "negotiator/default.h"
#include "negotiator/skipping.h"
+#include "repository.h"
-void fetch_negotiator_init(struct fetch_negotiator *negotiator,
- const char *algorithm)
+void fetch_negotiator_init(struct repository *r,
+ struct fetch_negotiator *negotiator)
{
- if (algorithm) {
- if (!strcmp(algorithm, "skipping")) {
- skipping_negotiator_init(negotiator);
- return;
- } else if (!strcmp(algorithm, "default")) {
- /* Fall through to default initialization */
- } else {
- die("unknown fetch negotiation algorithm '%s'", algorithm);
- }
+ prepare_repo_settings(r);
+ switch(r->settings.fetch_negotiation_algorithm) {
+ case FETCH_NEGOTIATION_SKIPPING:
+ skipping_negotiator_init(negotiator);
+ return;
+
+ case FETCH_NEGOTIATION_DEFAULT:
+ default:
+ default_negotiator_init(negotiator);
+ return;
}
- default_negotiator_init(negotiator);
}
diff --git a/fetch-negotiator.h b/fetch-negotiator.h
index 9e3967c..ea78868 100644
--- a/fetch-negotiator.h
+++ b/fetch-negotiator.h
@@ -2,6 +2,7 @@
#define FETCH_NEGOTIATOR_H
struct commit;
+struct repository;
/*
* An object that supplies the information needed to negotiate the contents of
@@ -52,7 +53,7 @@ struct fetch_negotiator {
void *data;
};
-void fetch_negotiator_init(struct fetch_negotiator *negotiator,
- const char *algorithm);
+void fetch_negotiator_init(struct repository *r,
+ struct fetch_negotiator *negotiator);
#endif
diff --git a/fetch-object.c b/fetch-object.c
deleted file mode 100644
index 4266548..0000000
--- a/fetch-object.c
+++ /dev/null
@@ -1,40 +0,0 @@
-#include "cache.h"
-#include "packfile.h"
-#include "pkt-line.h"
-#include "strbuf.h"
-#include "transport.h"
-#include "fetch-object.h"
-
-static void fetch_refs(const char *remote_name, struct ref *ref)
-{
- struct remote *remote;
- struct transport *transport;
- int original_fetch_if_missing = fetch_if_missing;
-
- fetch_if_missing = 0;
- remote = remote_get(remote_name);
- if (!remote->url[0])
- die(_("Remote with no URL"));
- transport = transport_get(remote, remote->url[0]);
-
- transport_set_option(transport, TRANS_OPT_FROM_PROMISOR, "1");
- transport_set_option(transport, TRANS_OPT_NO_DEPENDENTS, "1");
- transport_fetch_refs(transport, ref);
- fetch_if_missing = original_fetch_if_missing;
-}
-
-void fetch_objects(const char *remote_name, const struct object_id *oids,
- int oid_nr)
-{
- struct ref *ref = NULL;
- int i;
-
- for (i = 0; i < oid_nr; i++) {
- struct ref *new_ref = alloc_ref(oid_to_hex(&oids[i]));
- oidcpy(&new_ref->old_oid, &oids[i]);
- new_ref->exact_oid = 1;
- new_ref->next = ref;
- ref = new_ref;
- }
- fetch_refs(remote_name, ref);
-}
diff --git a/fetch-object.h b/fetch-object.h
deleted file mode 100644
index d6444ca..0000000
--- a/fetch-object.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef FETCH_OBJECT_H
-#define FETCH_OBJECT_H
-
-struct object_id;
-
-void fetch_objects(const char *remote_name, const struct object_id *oids,
- int oid_nr);
-
-#endif
diff --git a/fetch-pack.c b/fetch-pack.c
index 65be043..f80e2d1 100644
--- a/fetch-pack.c
+++ b/fetch-pack.c
@@ -36,7 +36,6 @@ static int agent_supported;
static int server_supports_filtering;
static struct lock_file shallow_lock;
static const char *alternate_shallow_file;
-static char *negotiation_algorithm;
static struct strbuf fsck_msg_types = STRBUF_INIT;
/* Remember to update object flag allocation in object.h */
@@ -168,16 +167,16 @@ static enum ack_type get_ack(struct packet_reader *reader,
if (!strcmp(reader->line, "NAK"))
return NAK;
if (skip_prefix(reader->line, "ACK ", &arg)) {
- if (!get_oid_hex(arg, result_oid)) {
- arg += 40;
- len -= arg - reader->line;
+ const char *p;
+ if (!parse_oid_hex(arg, result_oid, &p)) {
+ len -= p - reader->line;
if (len < 1)
return ACK;
- if (strstr(arg, "continue"))
+ if (strstr(p, "continue"))
return ACK_continue;
- if (strstr(arg, "common"))
+ if (strstr(p, "common"))
return ACK_common;
- if (strstr(arg, "ready"))
+ if (strstr(p, "ready"))
return ACK_ready;
return ACK;
}
@@ -339,12 +338,9 @@ static int find_common(struct fetch_negotiator *negotiator,
}
}
if (server_supports_filtering && args->filter_options.choice) {
- struct strbuf expanded_filter_spec = STRBUF_INIT;
- expand_list_objects_filter_spec(&args->filter_options,
- &expanded_filter_spec);
- packet_buf_write(&req_buf, "filter %s",
- expanded_filter_spec.buf);
- strbuf_release(&expanded_filter_spec);
+ const char *spec =
+ expand_list_objects_filter_spec(&args->filter_options);
+ packet_buf_write(&req_buf, "filter %s", spec);
}
packet_buf_flush(&req_buf);
state_len = req_buf.len;
@@ -386,6 +382,7 @@ static int find_common(struct fetch_negotiator *negotiator,
state_len = 0;
}
+ trace2_region_enter("fetch-pack", "negotiation_v0_v1", the_repository);
flushes = 0;
retval = -1;
if (args->no_dependents)
@@ -470,6 +467,7 @@ static int find_common(struct fetch_negotiator *negotiator,
}
}
done:
+ trace2_region_leave("fetch-pack", "negotiation_v0_v1", the_repository);
if (!got_ready || !no_done) {
packet_buf_write(&req_buf, "done\n");
send_request(args, fd[1], &req_buf);
@@ -758,8 +756,33 @@ static int sideband_demux(int in, int out, void *data)
return ret;
}
+static void write_promisor_file(const char *keep_name,
+ struct ref **sought, int nr_sought)
+{
+ struct strbuf promisor_name = STRBUF_INIT;
+ int suffix_stripped;
+ FILE *output;
+ int i;
+
+ strbuf_addstr(&promisor_name, keep_name);
+ suffix_stripped = strbuf_strip_suffix(&promisor_name, ".keep");
+ if (!suffix_stripped)
+ BUG("name of pack lockfile should end with .keep (was '%s')",
+ keep_name);
+ strbuf_addstr(&promisor_name, ".promisor");
+
+ output = xfopen(promisor_name.buf, "w");
+ for (i = 0; i < nr_sought; i++)
+ fprintf(output, "%s %s\n", oid_to_hex(&sought[i]->old_oid),
+ sought[i]->name);
+ fclose(output);
+
+ strbuf_release(&promisor_name);
+}
+
static int get_pack(struct fetch_pack_args *args,
- int xd[2], char **pack_lockfile)
+ int xd[2], char **pack_lockfile,
+ struct ref **sought, int nr_sought)
{
struct async demux;
int do_keep = args->keep_pack;
@@ -821,7 +844,13 @@ static int get_pack(struct fetch_pack_args *args,
}
if (args->check_self_contained_and_connected)
argv_array_push(&cmd.args, "--check-self-contained-and-connected");
- if (args->from_promisor)
+ /*
+ * If we're obtaining the filename of a lockfile, we'll use
+ * that filename to write a .promisor file with more
+ * information below. If not, we need index-pack to do it for
+ * us.
+ */
+ if (!(do_keep && pack_lockfile) && args->from_promisor)
argv_array_push(&cmd.args, "--promisor");
}
else {
@@ -875,6 +904,14 @@ static int get_pack(struct fetch_pack_args *args,
die(_("%s failed"), cmd_name);
if (use_sideband && finish_async(&demux))
die(_("error in sideband demultiplexer"));
+
+ /*
+ * Now that index-pack has succeeded, write the promisor file using the
+ * obtained .keep filename if necessary
+ */
+ if (do_keep && pack_lockfile && args->from_promisor)
+ write_promisor_file(*pack_lockfile, sought, nr_sought);
+
return 0;
}
@@ -892,12 +929,13 @@ static struct ref *do_fetch_pack(struct fetch_pack_args *args,
struct shallow_info *si,
char **pack_lockfile)
{
+ struct repository *r = the_repository;
struct ref *ref = copy_ref_list(orig_ref);
struct object_id oid;
const char *agent_feature;
int agent_len;
struct fetch_negotiator negotiator;
- fetch_negotiator_init(&negotiator, negotiation_algorithm);
+ fetch_negotiator_init(r, &negotiator);
sort_ref_list(&ref, ref_compare_name);
QSORT(sought, nr_sought, cmp_ref_by_name);
@@ -911,7 +949,7 @@ static struct ref *do_fetch_pack(struct fetch_pack_args *args,
if (server_supports("shallow"))
print_verbose(args, _("Server supports %s"), "shallow");
- else if (args->depth > 0 || is_repository_shallow(the_repository))
+ else if (args->depth > 0 || is_repository_shallow(r))
die(_("Server does not support shallow clients"));
if (args->depth > 0 || args->deepen_since || args->deepen_not)
args->deepen = 1;
@@ -1009,7 +1047,7 @@ static struct ref *do_fetch_pack(struct fetch_pack_args *args,
alternate_shallow_file = setup_temporary_shallow(si->shallow);
else
alternate_shallow_file = NULL;
- if (get_pack(args, fd, pack_lockfile))
+ if (get_pack(args, fd, pack_lockfile, sought, nr_sought))
die(_("git fetch-pack: fetch failed."));
all_done:
@@ -1112,7 +1150,7 @@ static int add_haves(struct fetch_negotiator *negotiator,
}
static int send_fetch_request(struct fetch_negotiator *negotiator, int fd_out,
- const struct fetch_pack_args *args,
+ struct fetch_pack_args *args,
const struct ref *wants, struct oidset *common,
int *haves_to_send, int *in_vain,
int sideband_all)
@@ -1153,13 +1191,10 @@ static int send_fetch_request(struct fetch_negotiator *negotiator, int fd_out,
/* Add filter */
if (server_supports_feature("fetch", "filter", 0) &&
args->filter_options.choice) {
- struct strbuf expanded_filter_spec = STRBUF_INIT;
+ const char *spec =
+ expand_list_objects_filter_spec(&args->filter_options);
print_verbose(args, _("Server supports filter"));
- expand_list_objects_filter_spec(&args->filter_options,
- &expanded_filter_spec);
- packet_buf_write(&req_buf, "filter %s",
- expanded_filter_spec.buf);
- strbuf_release(&expanded_filter_spec);
+ packet_buf_write(&req_buf, "filter %s", spec);
} else if (args->filter_options.choice) {
warning("filtering not recognized by server, ignoring");
}
@@ -1379,14 +1414,15 @@ static struct ref *do_fetch_pack_v2(struct fetch_pack_args *args,
struct shallow_info *si,
char **pack_lockfile)
{
+ struct repository *r = the_repository;
struct ref *ref = copy_ref_list(orig_ref);
enum fetch_state state = FETCH_CHECK_LOCAL;
struct oidset common = OIDSET_INIT;
struct packet_reader reader;
- int in_vain = 0;
+ int in_vain = 0, negotiation_started = 0;
int haves_to_send = INITIAL_FLUSH;
struct fetch_negotiator negotiator;
- fetch_negotiator_init(&negotiator, negotiation_algorithm);
+ fetch_negotiator_init(r, &negotiator);
packet_reader_init(&reader, fd[0], NULL, 0,
PACKET_READ_CHOMP_NEWLINE |
PACKET_READ_DIE_ON_ERR_PACKET);
@@ -1426,6 +1462,12 @@ static struct ref *do_fetch_pack_v2(struct fetch_pack_args *args,
}
break;
case FETCH_SEND_REQUEST:
+ if (!negotiation_started) {
+ negotiation_started = 1;
+ trace2_region_enter("fetch-pack",
+ "negotiation_v2",
+ the_repository);
+ }
if (send_fetch_request(&negotiator, fd[1], args, ref,
&common,
&haves_to_send, &in_vain,
@@ -1449,6 +1491,9 @@ static struct ref *do_fetch_pack_v2(struct fetch_pack_args *args,
}
break;
case FETCH_GET_PACK:
+ trace2_region_leave("fetch-pack",
+ "negotiation_v2",
+ the_repository);
/* Check for shallow-info section */
if (process_section_header(&reader, "shallow-info", 1))
receive_shallow_info(args, &reader, shallows, si);
@@ -1458,7 +1503,7 @@ static struct ref *do_fetch_pack_v2(struct fetch_pack_args *args,
/* get the pack */
process_section_header(&reader, "packfile", 0);
- if (get_pack(args, fd, pack_lockfile))
+ if (get_pack(args, fd, pack_lockfile, sought, nr_sought))
die(_("git fetch-pack: fetch failed."));
state = FETCH_DONE;
@@ -1505,8 +1550,6 @@ static void fetch_pack_config(void)
git_config_get_bool("repack.usedeltabaseoffset", &prefer_ofs_delta);
git_config_get_bool("fetch.fsckobjects", &fetch_fsck_objects);
git_config_get_bool("transfer.fsckobjects", &transfer_fsck_objects);
- git_config_get_string("fetch.negotiationalgorithm",
- &negotiation_algorithm);
git_config(fetch_pack_config_cb, NULL);
}
diff --git a/fsmonitor.c b/fsmonitor.c
index 231e83a..1f4aa1b 100644
--- a/fsmonitor.c
+++ b/fsmonitor.c
@@ -14,8 +14,13 @@ struct trace_key trace_fsmonitor = TRACE_KEY_INIT(FSMONITOR);
static void fsmonitor_ewah_callback(size_t pos, void *is)
{
struct index_state *istate = (struct index_state *)is;
- struct cache_entry *ce = istate->cache[pos];
+ struct cache_entry *ce;
+ if (pos >= istate->cache_nr)
+ BUG("fsmonitor_dirty has more entries than the index (%"PRIuMAX" >= %u)",
+ (uintmax_t)pos, istate->cache_nr);
+
+ ce = istate->cache[pos];
ce->ce_flags &= ~CE_FSMONITOR_VALID;
}
@@ -50,17 +55,24 @@ int read_fsmonitor_extension(struct index_state *istate, const void *data,
}
istate->fsmonitor_dirty = fsmonitor_dirty;
+ if (istate->fsmonitor_dirty->bit_size > istate->cache_nr)
+ BUG("fsmonitor_dirty has more entries than the index (%"PRIuMAX" > %u)",
+ (uintmax_t)istate->fsmonitor_dirty->bit_size, istate->cache_nr);
+
trace_printf_key(&trace_fsmonitor, "read fsmonitor extension successful");
return 0;
}
void fill_fsmonitor_bitmap(struct index_state *istate)
{
- unsigned int i;
+ unsigned int i, skipped = 0;
istate->fsmonitor_dirty = ewah_new();
- for (i = 0; i < istate->cache_nr; i++)
- if (!(istate->cache[i]->ce_flags & CE_FSMONITOR_VALID))
- ewah_set(istate->fsmonitor_dirty, i);
+ for (i = 0; i < istate->cache_nr; i++) {
+ if (istate->cache[i]->ce_flags & CE_REMOVE)
+ skipped++;
+ else if (!(istate->cache[i]->ce_flags & CE_FSMONITOR_VALID))
+ ewah_set(istate->fsmonitor_dirty, i - skipped);
+ }
}
void write_fsmonitor_extension(struct strbuf *sb, struct index_state *istate)
@@ -71,6 +83,10 @@ void write_fsmonitor_extension(struct strbuf *sb, struct index_state *istate)
uint32_t ewah_size = 0;
int fixup = 0;
+ if (istate->fsmonitor_dirty->bit_size > istate->cache_nr)
+ BUG("fsmonitor_dirty has more entries than the index (%"PRIuMAX" > %u)",
+ (uintmax_t)istate->fsmonitor_dirty->bit_size, istate->cache_nr);
+
put_be32(&hdr_version, INDEX_EXTENSION_VERSION);
strbuf_add(sb, &hdr_version, sizeof(uint32_t));
@@ -236,6 +252,9 @@ void tweak_fsmonitor(struct index_state *istate)
}
/* Mark all previously saved entries as dirty */
+ if (istate->fsmonitor_dirty->bit_size > istate->cache_nr)
+ BUG("fsmonitor_dirty has more entries than the index (%"PRIuMAX" > %u)",
+ (uintmax_t)istate->fsmonitor_dirty->bit_size, istate->cache_nr);
ewah_each_bit(istate->fsmonitor_dirty, fsmonitor_ewah_callback, istate);
/* Now mark the untracked cache for fsmonitor usage */
diff --git a/git-add--interactive.perl b/git-add--interactive.perl
index c20ae9e..52659bb 100755
--- a/git-add--interactive.perl
+++ b/git-add--interactive.perl
@@ -1541,7 +1541,7 @@ sub patch_update_file {
for (@{$hunk[$ix]{DISPLAY}}) {
print;
}
- print colored $prompt_color,
+ print colored $prompt_color, "(", ($ix+1), "/$num) ",
sprintf(__($patch_update_prompt_modes{$patch_mode}{$hunk[$ix]{TYPE}}), $other);
my $line = prompt_single_character;
diff --git a/git-compat-util.h b/git-compat-util.h
index 83be89d..607dca7 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -77,7 +77,7 @@
#endif
/*
* ARRAY_SIZE - get the number of elements in a visible array
- * <at> x: the array whose size you want.
+ * @x: the array whose size you want.
*
* This does not work on pointers, or arrays declared as [], or
* function parameters. With correct compiler support, such usage
@@ -344,6 +344,7 @@ typedef uintmax_t timestamp_t;
#define PRItime PRIuMAX
#define parse_timestamp strtoumax
#define TIME_MAX UINTMAX_MAX
+#define TIME_MIN 0
#ifndef PATH_SEP
#define PATH_SEP ':'
@@ -818,9 +819,6 @@ const char *inet_ntop(int af, const void *src, char *dst, size_t size);
int git_atexit(void (*handler)(void));
#endif
-typedef void (*try_to_free_t)(size_t);
-try_to_free_t set_try_to_free_routine(try_to_free_t);
-
static inline size_t st_add(size_t a, size_t b)
{
if (unsigned_add_overflows(a, b))
@@ -1094,10 +1092,10 @@ static inline int strtol_i(char const *s, int base, int *result)
return 0;
}
+void git_stable_qsort(void *base, size_t nmemb, size_t size,
+ int(*compar)(const void *, const void *));
#ifdef INTERNAL_QSORT
-void git_qsort(void *base, size_t nmemb, size_t size,
- int(*compar)(const void *, const void *));
-#define qsort git_qsort
+#define qsort git_stable_qsort
#endif
#define QSORT(base, n, compar) sane_qsort((base), (n), sizeof(*(base)), compar)
@@ -1108,6 +1106,9 @@ static inline void sane_qsort(void *base, size_t nmemb, size_t size,
qsort(base, nmemb, size, compar);
}
+#define STABLE_QSORT(base, n, compar) \
+ git_stable_qsort((base), (n), sizeof(*(base)), compar)
+
#ifndef HAVE_ISO_QSORT_S
int git_qsort_s(void *base, size_t nmemb, size_t size,
int (*compar)(const void *, const void *, void *), void *ctx);
@@ -1312,4 +1313,42 @@ void unleak_memory(const void *ptr, size_t len);
*/
#include "banned.h"
+/*
+ * container_of - Get the address of an object containing a field.
+ *
+ * @ptr: pointer to the field.
+ * @type: type of the object.
+ * @member: name of the field within the object.
+ */
+#define container_of(ptr, type, member) \
+ ((type *) ((char *)(ptr) - offsetof(type, member)))
+
+/*
+ * helper function for `container_of_or_null' to avoid multiple
+ * evaluation of @ptr
+ */
+static inline void *container_of_or_null_offset(void *ptr, size_t offset)
+{
+ return ptr ? (char *)ptr - offset : NULL;
+}
+
+/*
+ * like `container_of', but allows returned value to be NULL
+ */
+#define container_of_or_null(ptr, type, member) \
+ (type *)container_of_or_null_offset(ptr, offsetof(type, member))
+
+/*
+ * like offsetof(), but takes a pointer to a a variable of type which
+ * contains @member, instead of a specified type.
+ * @ptr is subject to multiple evaluation since we can't rely on __typeof__
+ * everywhere.
+ */
+#if defined(__GNUC__) /* clang sets this, too */
+#define OFFSETOF_VAR(ptr, member) offsetof(__typeof__(*ptr), member)
+#else /* !__GNUC__ */
+#define OFFSETOF_VAR(ptr, member) \
+ ((uintptr_t)&(ptr)->member - (uintptr_t)(ptr))
+#endif /* !__GNUC__ */
+
#endif
diff --git a/git-filter-branch.sh b/git-filter-branch.sh
index 5c5afa2..fea7964 100755
--- a/git-filter-branch.sh
+++ b/git-filter-branch.sh
@@ -83,6 +83,20 @@ set_ident () {
finish_ident COMMITTER
}
+if test -z "$FILTER_BRANCH_SQUELCH_WARNING$GIT_TEST_DISALLOW_ABBREVIATED_OPTIONS"
+then
+ cat <<EOF
+WARNING: git-filter-branch has a glut of gotchas generating mangled history
+ rewrites. Hit Ctrl-C before proceeding to abort, then use an
+ alternative filtering tool such as 'git filter-repo'
+ (https://github.com/newren/git-filter-repo/) instead. See the
+ filter-branch manual page for more details; to squelch this warning,
+ set FILTER_BRANCH_SQUELCH_WARNING=1.
+EOF
+ sleep 10
+ printf "Proceeding with filter-branch...\n\n"
+fi
+
USAGE="[--setup <command>] [--subdirectory-filter <directory>] [--env-filter <command>]
[--tree-filter <command>] [--index-filter <command>]
[--parent-filter <command>] [--msg-filter <command>]
diff --git a/git-gui/README.md b/git-gui/README.md
new file mode 100644
index 0000000..5ce2122
--- /dev/null
+++ b/git-gui/README.md
@@ -0,0 +1,174 @@
+# Git GUI - A graphical user interface for Git
+
+Git GUI allows you to use the [Git source control management
+tools](https://git-scm.com/) via a GUI. This includes staging, committing,
+adding, pushing, etc. It can also be used as a blame viewer, a tree browser,
+and a citool (make exactly one commit before exiting and returning to shell).
+More details about Git GUI can be found in its manual page by either running
+`man git-gui`, or by visiting the [online manual
+page](https://git-scm.com/docs/git-gui).
+
+Git GUI was initially written by Shawn O. Pearce, and is distributed with the
+standard Git installation.
+
+# Building and installing
+
+You need to have the following dependencies installed before you begin:
+
+- Git
+- Tcl
+- Tk
+- wish
+- Gitk (needed for browsing history)
+- msgfmt
+
+Most of Git GUI is written in Tcl, so there is no compilation involved. Still,
+some things do need to be done (mostly some substitutions), so you do need to
+"build" it.
+
+You can build Git GUI using:
+
+```
+make
+```
+
+And then install it using:
+
+```
+make install
+```
+
+You probably need to have root/admin permissions to install.
+
+# Contributing
+
+The project is currently maintained by Pratyush Yadav over at
+https://github.com/prati0100/git-gui. Even though the project is hosted at
+GitHub, the development does not happen over GitHub Issues and Pull Requests.
+Instead, an email based workflow is used. The Git mailing list
+[git@vger.kernel.org](mailto:git@vger.kernel.org) is where the patches are
+discussed and reviewed.
+
+More information about the Git mailing list and instructions to subscribe can
+be found [here](https://git.wiki.kernel.org/index.php/GitCommunity).
+
+## Sending your changes
+
+Since the development happens over email, you need to send in your commits in
+text format. Commits can be converted to emails via the two tools provided by
+Git: `git-send-email` and `git-format-patch`.
+
+You can use `git-format-patch` to generate patches in mbox format from your
+commits that can then be sent via email. Let's say you are working on a branch
+called 'foo' that was created on top of 'master'. You can run:
+
+```
+git format-patch -o output_dir master..foo
+```
+
+to convert all the extra commits in 'foo' into a set of patches saved in the
+folder `output_dir`.
+
+If you are sending multiple patches, it is recommended to include a cover
+letter. A cover letter is an email explaining in brief what the series is
+supposed to do. A cover letter template can be generated by passing
+`--cover-letter` to `git-format-patch`.
+
+After you send your patches, you might get a review suggesting some changes.
+Make those changes, and re-send your patch(es) in reply to the first patch of
+your initial version. Also please mention the version of the patch. This can be
+done by passing `-v X` to `git-format-patch`, where 'X' is the version number
+of the patch(es).
+
+### Using git-send-email
+
+You can use `git-send-email` to send patches generated via `git-format-patch`.
+While you can directly send patches via `git-send-email`, it is recommended
+that you first use `git-format-patch` to generate the emails, audit them, and
+then send them via `git-send-email`.
+
+A pretty good guide to configuring and using `git-send-email` can be found
+[here](https://www.freedesktop.org/wiki/Software/PulseAudio/HowToUseGitSendEmail/)
+
+### Using your email client
+
+If your email client supports sending mbox format emails, you can use
+`git-format-patch` to get an mbox file for each commit, and then send them. If
+there is more than one patch in the series, then all patches after the first
+patch (or the cover letter) need to be sent as replies to the first.
+`git-send-email` does this by default.
+
+### Using GitGitGadget
+
+Since some people prefer a GitHub pull request based workflow, they can use
+[GitGitGadget](https://gitgitgadget.github.io/) to send in patches. The tool
+was originally written for sending patches to the Git project, but it now also
+supports sending patches for git-gui.
+
+Instructions for using GitGitGadget to send git-gui patches, courtesy of
+Johannes Schindelin:
+
+If you don't already have a fork of the [git/git](https://github.com/git/git)
+repo, you need to make one. Then clone your fork:
+
+```
+git clone https://github.com/<your-username>/git
+```
+
+Then add GitGitGadget as a remote:
+
+```
+git remote add gitgitgadget https://github.com/gitgitgadget/git
+```
+
+Then fetch the git-gui branch:
+
+```
+git fetch gitgitgadget git-gui/master
+```
+
+Then create a new branch based on git-gui/master:
+
+```
+git checkout -b <your-branch-name> git-gui/master
+```
+
+Make whatever commits you need to, push them to your fork, and then head over
+to https://github.com/gitgitgadget/git/pulls and open a Pull Request targeting
+git-gui/master.
+
+GitGitGadget will welcome you with a (hopefully) helpful message.
+
+## Signing off
+
+You need to sign off your commits before sending them to the list. You can do
+that by passing the `-s` option to `git-commit`. You can also use the "Sign
+Off" option in Git GUI.
+
+A sign-off is a simple 'Signed-off-by: A U Thor \<author@example.com\>' line at
+the end of the commit message, after your explanation of the commit.
+
+A sign-off means that you are legally allowed to send the code, and it serves
+as a certificate of origin. More information can be found at
+[developercertificate.org](https://developercertificate.org/).
+
+## Responding to review comments
+
+It is quite likely your patches will get review comments. Those comments are
+sent on the Git mailing list as replies to your patch, and you will usually be
+Cc'ed in those replies.
+
+You are expected to respond by either explaining your code further to convince
+the reviewer what you are doing is correct, or acknowledge the comments and
+re-send the patches with those comments addressed.
+
+Some tips for those not familiar with communication on a mailing list:
+
+- Use only plain text emails. No HTML at all.
+- Wrap lines at around 75 characters.
+- Do not send attachments. If you do need to send some files, consider using a
+ hosting service, and paste the link in your email.
+- Do not [top post](http://www.idallen.com/topposting.html).
+- Always "reply all". Keep all correspondents and the list in Cc. If you reply
+ directly to a reviewer, and not Cc the list, other people would not be able
+ to chime in.
diff --git a/git-gui/git-gui.sh b/git-gui/git-gui.sh
index 6de74ce..0d21f56 100755
--- a/git-gui/git-gui.sh
+++ b/git-gui/git-gui.sh
@@ -1340,6 +1340,7 @@ set HEAD {}
set PARENT {}
set MERGE_HEAD [list]
set commit_type {}
+set commit_type_is_amend 0
set empty_tree {}
set current_branch {}
set is_detached 0
@@ -1347,8 +1348,9 @@ set current_diff_path {}
set is_3way_diff 0
set is_submodule_diff 0
set is_conflict_diff 0
-set selected_commit_type new
set diff_empty_count 0
+set last_revert {}
+set last_revert_enc {}
set nullid "0000000000000000000000000000000000000000"
set nullid2 "0000000000000000000000000000000000000001"
@@ -1434,7 +1436,7 @@ proc PARENT {} {
}
proc force_amend {} {
- global selected_commit_type
+ global commit_type_is_amend
global HEAD PARENT MERGE_HEAD commit_type
repository_state newType newHEAD newMERGE_HEAD
@@ -1443,7 +1445,7 @@ proc force_amend {} {
set MERGE_HEAD $newMERGE_HEAD
set commit_type $newType
- set selected_commit_type amend
+ set commit_type_is_amend 1
do_select_commit_type
}
@@ -2494,7 +2496,7 @@ proc force_first_diff {after} {
proc toggle_or_diff {mode w args} {
global file_states file_lists current_diff_path ui_index ui_workdir
- global last_clicked selected_paths
+ global last_clicked selected_paths file_lists_last_clicked
if {$mode eq "click"} {
foreach {x y} $args break
@@ -2551,6 +2553,8 @@ proc toggle_or_diff {mode w args} {
$ui_index tag remove in_sel 0.0 end
$ui_workdir tag remove in_sel 0.0 end
+ set file_lists_last_clicked($w) $path
+
# Determine the state of the file
if {[info exists file_states($path)]} {
set state [lindex $file_states($path) 0]
@@ -2664,6 +2668,32 @@ proc show_less_context {} {
}
}
+proc focus_widget {widget} {
+ global file_lists last_clicked selected_paths
+ global file_lists_last_clicked
+
+ if {[llength $file_lists($widget)] > 0} {
+ set path $file_lists_last_clicked($widget)
+ set index [lsearch -sorted -exact $file_lists($widget) $path]
+ if {$index < 0} {
+ set index 0
+ set path [lindex $file_lists($widget) $index]
+ }
+
+ focus $widget
+ set last_clicked [list $widget [expr $index + 1]]
+ array unset selected_paths
+ set selected_paths($path) 1
+ show_diff $path $widget
+ }
+}
+
+proc toggle_commit_type {} {
+ global commit_type_is_amend
+ set commit_type_is_amend [expr !$commit_type_is_amend]
+ do_select_commit_type
+}
+
######################################################################
##
## ui construction
@@ -2706,10 +2736,18 @@ if {![is_bare]} {
}
if {[is_Windows]} {
+ # Use /git-bash.exe if available
+ set normalized [file normalize $::argv0]
+ regsub "/mingw../libexec/git-core/git-gui$" \
+ $normalized "/git-bash.exe" cmdLine
+ if {$cmdLine != $normalized && [file exists $cmdLine]} {
+ set cmdLine [list "Git Bash" $cmdLine &]
+ } else {
+ set cmdLine [list "Git Bash" bash --login -l &]
+ }
.mbar.repository add command \
-label [mc "Git Bash"] \
- -command {eval exec [auto_execok start] \
- [list "Git Bash" bash --login -l &]}
+ -command {eval exec [auto_execok start] $cmdLine}
}
if {[is_Windows] || ![is_bare]} {
@@ -2852,19 +2890,11 @@ if {[is_enabled multicommit] || [is_enabled singlecommit]} {
menu .mbar.commit
if {![is_enabled nocommit]} {
- .mbar.commit add radiobutton \
- -label [mc "New Commit"] \
- -command do_select_commit_type \
- -variable selected_commit_type \
- -value new
- lappend disable_on_lock \
- [list .mbar.commit entryconf [.mbar.commit index last] -state]
-
- .mbar.commit add radiobutton \
+ .mbar.commit add checkbutton \
-label [mc "Amend Last Commit"] \
- -command do_select_commit_type \
- -variable selected_commit_type \
- -value amend
+ -accelerator $M1T-E \
+ -variable commit_type_is_amend \
+ -command do_select_commit_type
lappend disable_on_lock \
[list .mbar.commit entryconf [.mbar.commit index last] -state]
@@ -3030,8 +3060,23 @@ unset doc_path doc_url
wm protocol . WM_DELETE_WINDOW do_quit
bind all <$M1B-Key-q> do_quit
bind all <$M1B-Key-Q> do_quit
-bind all <$M1B-Key-w> {destroy [winfo toplevel %W]}
-bind all <$M1B-Key-W> {destroy [winfo toplevel %W]}
+
+set m1b_w_script {
+ set toplvl_win [winfo toplevel %W]
+
+ # If we are destroying the main window, we should call do_quit to take
+ # care of cleanup before exiting the program.
+ if {$toplvl_win eq "."} {
+ do_quit
+ } else {
+ destroy $toplvl_win
+ }
+}
+
+bind all <$M1B-Key-w> $m1b_w_script
+bind all <$M1B-Key-W> $m1b_w_script
+
+unset m1b_w_script
set subcommand_args {}
proc usage {} {
@@ -3337,18 +3382,10 @@ set ui_comm .vpane.lower.commarea.buffer.frame.t
set ui_coml .vpane.lower.commarea.buffer.header.l
if {![is_enabled nocommit]} {
- ${NS}::radiobutton .vpane.lower.commarea.buffer.header.new \
- -text [mc "New Commit"] \
- -command do_select_commit_type \
- -variable selected_commit_type \
- -value new
- lappend disable_on_lock \
- [list .vpane.lower.commarea.buffer.header.new conf -state]
- ${NS}::radiobutton .vpane.lower.commarea.buffer.header.amend \
+ ${NS}::checkbutton .vpane.lower.commarea.buffer.header.amend \
-text [mc "Amend Last Commit"] \
- -command do_select_commit_type \
- -variable selected_commit_type \
- -value amend
+ -variable commit_type_is_amend \
+ -command do_select_commit_type
lappend disable_on_lock \
[list .vpane.lower.commarea.buffer.header.amend conf -state]
}
@@ -3373,7 +3410,6 @@ pack $ui_coml -side left -fill x
if {![is_enabled nocommit]} {
pack .vpane.lower.commarea.buffer.header.amend -side right
- pack .vpane.lower.commarea.buffer.header.new -side right
}
textframe .vpane.lower.commarea.buffer.frame
@@ -3387,10 +3423,16 @@ ttext $ui_comm -background white -foreground black \
-relief sunken \
-width $repo_config(gui.commitmsgwidth) -height 9 -wrap none \
-font font_diff \
+ -xscrollcommand {.vpane.lower.commarea.buffer.frame.sbx set} \
-yscrollcommand {.vpane.lower.commarea.buffer.frame.sby set}
+${NS}::scrollbar .vpane.lower.commarea.buffer.frame.sbx \
+ -orient horizontal \
+ -command [list $ui_comm xview]
${NS}::scrollbar .vpane.lower.commarea.buffer.frame.sby \
+ -orient vertical \
-command [list $ui_comm yview]
+pack .vpane.lower.commarea.buffer.frame.sbx -side bottom -fill x
pack .vpane.lower.commarea.buffer.frame.sby -side right -fill y
pack $ui_comm -side left -fill y
pack .vpane.lower.commarea.buffer.header -side top -fill x
@@ -3547,6 +3589,9 @@ $ui_diff tag conf d_s- \
$ui_diff tag conf d< \
-foreground orange \
-font font_diffbold
+$ui_diff tag conf d| \
+ -foreground orange \
+ -font font_diffbold
$ui_diff tag conf d= \
-foreground orange \
-font font_diffbold
@@ -3606,16 +3651,32 @@ set ctxm .vpane.lower.diff.body.ctxm
menu $ctxm -tearoff 0
$ctxm add command \
-label [mc "Apply/Reverse Hunk"] \
- -command {apply_hunk $cursorX $cursorY}
+ -command {apply_or_revert_hunk $cursorX $cursorY 0}
set ui_diff_applyhunk [$ctxm index last]
lappend diff_actions [list $ctxm entryconf $ui_diff_applyhunk -state]
$ctxm add command \
-label [mc "Apply/Reverse Line"] \
- -command {apply_range_or_line $cursorX $cursorY; do_rescan}
+ -command {apply_or_revert_range_or_line $cursorX $cursorY 0; do_rescan}
set ui_diff_applyline [$ctxm index last]
lappend diff_actions [list $ctxm entryconf $ui_diff_applyline -state]
$ctxm add separator
$ctxm add command \
+ -label [mc "Revert Hunk"] \
+ -command {apply_or_revert_hunk $cursorX $cursorY 1}
+set ui_diff_reverthunk [$ctxm index last]
+lappend diff_actions [list $ctxm entryconf $ui_diff_reverthunk -state]
+$ctxm add command \
+ -label [mc "Revert Line"] \
+ -command {apply_or_revert_range_or_line $cursorX $cursorY 1; do_rescan}
+set ui_diff_revertline [$ctxm index last]
+lappend diff_actions [list $ctxm entryconf $ui_diff_revertline -state]
+$ctxm add command \
+ -label [mc "Undo Last Revert"] \
+ -command {undo_last_revert; do_rescan}
+set ui_diff_undorevert [$ctxm index last]
+lappend diff_actions [list $ctxm entryconf $ui_diff_undorevert -state]
+$ctxm add separator
+$ctxm add command \
-label [mc "Show Less Context"] \
-command show_less_context
lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state]
@@ -3693,7 +3754,7 @@ proc has_textconv {path} {
}
proc popup_diff_menu {ctxm ctxmmg ctxmsm x y X Y} {
- global current_diff_path file_states
+ global current_diff_path file_states last_revert
set ::cursorX $x
set ::cursorY $y
if {[info exists file_states($current_diff_path)]} {
@@ -3707,19 +3768,28 @@ proc popup_diff_menu {ctxm ctxmmg ctxmsm x y X Y} {
tk_popup $ctxmsm $X $Y
} else {
set has_range [expr {[$::ui_diff tag nextrange sel 0.0] != {}}]
+ set u [mc "Undo Last Revert"]
if {$::ui_index eq $::current_diff_side} {
set l [mc "Unstage Hunk From Commit"]
+ set h [mc "Revert Hunk"]
+
if {$has_range} {
set t [mc "Unstage Lines From Commit"]
+ set r [mc "Revert Lines"]
} else {
set t [mc "Unstage Line From Commit"]
+ set r [mc "Revert Line"]
}
} else {
set l [mc "Stage Hunk For Commit"]
+ set h [mc "Revert Hunk"]
+
if {$has_range} {
set t [mc "Stage Lines For Commit"]
+ set r [mc "Revert Lines"]
} else {
set t [mc "Stage Line For Commit"]
+ set r [mc "Revert Line"]
}
}
if {$::is_3way_diff
@@ -3730,11 +3800,35 @@ proc popup_diff_menu {ctxm ctxmmg ctxmsm x y X Y} {
|| [string match {T?} $state]
|| [has_textconv $current_diff_path]} {
set s disabled
+ set revert_state disabled
} else {
set s normal
+
+ # Only allow reverting changes in the working tree. If
+ # the user wants to revert changes in the index, they
+ # need to unstage those first.
+ if {$::ui_workdir eq $::current_diff_side} {
+ set revert_state normal
+ } else {
+ set revert_state disabled
+ }
+ }
+
+ if {$last_revert eq {}} {
+ set undo_state disabled
+ } else {
+ set undo_state normal
}
+
$ctxm entryconf $::ui_diff_applyhunk -state $s -label $l
$ctxm entryconf $::ui_diff_applyline -state $s -label $t
+ $ctxm entryconf $::ui_diff_revertline -state $revert_state \
+ -label $r
+ $ctxm entryconf $::ui_diff_reverthunk -state $revert_state \
+ -label $h
+ $ctxm entryconf $::ui_diff_undorevert -state $undo_state \
+ -label $u
+
tk_popup $ctxm $X $Y
}
}
@@ -3861,6 +3955,8 @@ bind . <$M1B-Key-j> do_revert_selection
bind . <$M1B-Key-J> do_revert_selection
bind . <$M1B-Key-i> do_add_all
bind . <$M1B-Key-I> do_add_all
+bind . <$M1B-Key-e> toggle_commit_type
+bind . <$M1B-Key-E> toggle_commit_type
bind . <$M1B-Key-minus> {show_less_context;break}
bind . <$M1B-Key-KP_Subtract> {show_less_context;break}
bind . <$M1B-Key-equal> {show_more_context;break}
@@ -3877,6 +3973,14 @@ foreach i [list $ui_index $ui_workdir] {
}
unset i
+bind . <Alt-Key-1> {focus_widget $::ui_workdir}
+bind . <Alt-Key-2> {focus_widget $::ui_index}
+bind . <Alt-Key-3> {focus $::ui_diff}
+bind . <Alt-Key-4> {focus $::ui_comm}
+
+set file_lists_last_clicked($ui_index) {}
+set file_lists_last_clicked($ui_workdir) {}
+
set file_lists($ui_index) [list]
set file_lists($ui_workdir) [list]
diff --git a/git-gui/lib/checkout_op.tcl b/git-gui/lib/checkout_op.tcl
index 9e7412c..a522829 100644
--- a/git-gui/lib/checkout_op.tcl
+++ b/git-gui/lib/checkout_op.tcl
@@ -389,7 +389,7 @@ $err
}
method _after_readtree {} {
- global selected_commit_type commit_type HEAD MERGE_HEAD PARENT
+ global commit_type HEAD MERGE_HEAD PARENT
global current_branch is_detached
global ui_comm
@@ -490,12 +490,12 @@ method _update_repo_state {} {
# amend mode our file lists are accurate and we can avoid
# the rescan.
#
- global selected_commit_type commit_type HEAD MERGE_HEAD PARENT
+ global commit_type_is_amend commit_type HEAD MERGE_HEAD PARENT
global ui_comm
unlock_index
set name [_name $this]
- set selected_commit_type new
+ set commit_type_is_amend 0
if {[string match amend* $commit_type]} {
$ui_comm delete 0.0 end
$ui_comm edit reset
diff --git a/git-gui/lib/commit.tcl b/git-gui/lib/commit.tcl
index 75ea965..b516aa2 100644
--- a/git-gui/lib/commit.tcl
+++ b/git-gui/lib/commit.tcl
@@ -333,7 +333,7 @@ proc commit_writetree {curHEAD msg_p} {
proc commit_committree {fd_wt curHEAD msg_p} {
global HEAD PARENT MERGE_HEAD commit_type commit_author
global current_branch
- global ui_comm selected_commit_type
+ global ui_comm commit_type_is_amend
global file_states selected_paths rescan_active
global repo_config
global env
@@ -467,8 +467,8 @@ A rescan will be automatically started now.
# -- Update in memory status
#
- set selected_commit_type new
set commit_type normal
+ set commit_type_is_amend 0
set HEAD $cmt_id
set PARENT $cmt_id
set MERGE_HEAD [list]
diff --git a/git-gui/lib/diff.tcl b/git-gui/lib/diff.tcl
index 68c4a6c..871ad48 100644
--- a/git-gui/lib/diff.tcl
+++ b/git-gui/lib/diff.tcl
@@ -55,7 +55,7 @@ proc reshow_diff {{after {}}} {
proc force_diff_encoding {enc} {
global current_diff_path
-
+
if {$current_diff_path ne {}} {
force_path_encoding $current_diff_path $enc
reshow_diff
@@ -270,19 +270,6 @@ proc show_other_diff {path w m cont_info} {
}
}
-proc get_conflict_marker_size {path} {
- set size 7
- catch {
- set fd_rc [eval [list git_read check-attr "conflict-marker-size" -- $path]]
- set ret [gets $fd_rc line]
- close $fd_rc
- if {$ret > 0} {
- regexp {.*: conflict-marker-size: (\d+)$} $line line size
- }
- }
- return $size
-}
-
proc start_show_diff {cont_info {add_opts {}}} {
global file_states file_lists
global is_3way_diff is_submodule_diff diff_active repo_config
@@ -298,7 +285,7 @@ proc start_show_diff {cont_info {add_opts {}}} {
set is_submodule_diff 0
set diff_active 1
set current_diff_header {}
- set conflict_size [get_conflict_marker_size $path]
+ set conflict_size [gitattr $path conflict-marker-size 7]
set cmd [list]
if {$w eq $ui_index} {
@@ -360,6 +347,10 @@ proc start_show_diff {cont_info {add_opts {}}} {
}
set ::current_diff_inheader 1
+ # Detect pre-image lines of the diff3 conflict-style. They are just
+ # '++' lines which is not bijective. Thus, we need to maintain a state
+ # across lines.
+ set ::conflict_in_pre_image 0
fconfigure $fd \
-blocking 0 \
-encoding [get_path_encoding $path] \
@@ -462,11 +453,23 @@ proc read_diff {fd conflict_size cont_info} {
{--} {set tags d_--}
{++} {
set regexp [string map [list %conflict_size $conflict_size]\
- {^\+\+([<>=]){%conflict_size}(?: |$)}]
+ {^\+\+([<>=|]){%conflict_size}(?: |$)}]
if {[regexp $regexp $line _g op]} {
set is_conflict_diff 1
set line [string replace $line 0 1 { }]
set tags d$op
+
+ # The ||| conflict-marker marks the start of the pre-image.
+ # All those lines are also prefixed with '++'. Thus we need
+ # to maintain this state.
+ set ::conflict_in_pre_image [expr {$op eq {|}}]
+ } elseif {$::conflict_in_pre_image} {
+ # This is a pre-image line. It is the one which both sides
+ # are based on. As it has also the '++' line start, it is
+ # normally shown as 'added'. Invert this to '--' to make
+ # it a 'removed' line.
+ set line [string replace $line 0 1 {--}]
+ set tags d_--
} else {
set tags d_++
}
@@ -567,24 +570,31 @@ proc read_diff {fd conflict_size cont_info} {
}
}
-proc apply_hunk {x y} {
+proc apply_or_revert_hunk {x y revert} {
global current_diff_path current_diff_header current_diff_side
- global ui_diff ui_index file_states
+ global ui_diff ui_index file_states last_revert last_revert_enc
if {$current_diff_path eq {} || $current_diff_header eq {}} return
if {![lock_index apply_hunk]} return
- set apply_cmd {apply --cached --whitespace=nowarn}
+ set apply_cmd {apply --whitespace=nowarn}
set mi [lindex $file_states($current_diff_path) 0]
if {$current_diff_side eq $ui_index} {
set failed_msg [mc "Failed to unstage selected hunk."]
- lappend apply_cmd --reverse
+ lappend apply_cmd --reverse --cached
if {[string index $mi 0] ne {M}} {
unlock_index
return
}
} else {
- set failed_msg [mc "Failed to stage selected hunk."]
+ if {$revert} {
+ set failed_msg [mc "Failed to revert selected hunk."]
+ lappend apply_cmd --reverse
+ } else {
+ set failed_msg [mc "Failed to stage selected hunk."]
+ lappend apply_cmd --cached
+ }
+
if {[string index $mi 1] ne {M}} {
unlock_index
return
@@ -603,29 +613,40 @@ proc apply_hunk {x y} {
set e_lno end
}
+ set wholepatch "$current_diff_header[$ui_diff get $s_lno $e_lno]"
+
if {[catch {
set enc [get_path_encoding $current_diff_path]
set p [eval git_write $apply_cmd]
fconfigure $p -translation binary -encoding $enc
- puts -nonewline $p $current_diff_header
- puts -nonewline $p [$ui_diff get $s_lno $e_lno]
+ puts -nonewline $p $wholepatch
close $p} err]} {
error_popup "$failed_msg\n\n$err"
unlock_index
return
}
+ if {$revert} {
+ # Save a copy of this patch for undoing reverts.
+ set last_revert $wholepatch
+ set last_revert_enc $enc
+ }
+
$ui_diff conf -state normal
$ui_diff delete $s_lno $e_lno
$ui_diff conf -state disabled
+ # Check if the hunk was the last one in the file.
if {[$ui_diff get 1.0 end] eq "\n"} {
set o _
} else {
set o ?
}
- if {$current_diff_side eq $ui_index} {
+ # Update the status flags.
+ if {$revert} {
+ set mi [string index $mi 0]$o
+ } elseif {$current_diff_side eq $ui_index} {
set mi ${o}M
} elseif {[string index $mi 0] eq {_}} {
set mi M$o
@@ -640,9 +661,9 @@ proc apply_hunk {x y} {
}
}
-proc apply_range_or_line {x y} {
+proc apply_or_revert_range_or_line {x y revert} {
global current_diff_path current_diff_header current_diff_side
- global ui_diff ui_index file_states
+ global ui_diff ui_index file_states last_revert
set selected [$ui_diff tag nextrange sel 0.0]
@@ -660,19 +681,27 @@ proc apply_range_or_line {x y} {
if {$current_diff_path eq {} || $current_diff_header eq {}} return
if {![lock_index apply_hunk]} return
- set apply_cmd {apply --cached --whitespace=nowarn}
+ set apply_cmd {apply --whitespace=nowarn}
set mi [lindex $file_states($current_diff_path) 0]
if {$current_diff_side eq $ui_index} {
set failed_msg [mc "Failed to unstage selected line."]
set to_context {+}
- lappend apply_cmd --reverse
+ lappend apply_cmd --reverse --cached
if {[string index $mi 0] ne {M}} {
unlock_index
return
}
} else {
- set failed_msg [mc "Failed to stage selected line."]
- set to_context {-}
+ if {$revert} {
+ set failed_msg [mc "Failed to revert selected line."]
+ set to_context {+}
+ lappend apply_cmd --reverse
+ } else {
+ set failed_msg [mc "Failed to stage selected line."]
+ set to_context {-}
+ lappend apply_cmd --cached
+ }
+
if {[string index $mi 1] ne {M}} {
unlock_index
return
@@ -830,7 +859,47 @@ proc apply_range_or_line {x y} {
puts -nonewline $p $wholepatch
close $p} err]} {
error_popup "$failed_msg\n\n$err"
+ unlock_index
+ return
+ }
+
+ if {$revert} {
+ # Save a copy of this patch for undoing reverts.
+ set last_revert $current_diff_header$wholepatch
+ set last_revert_enc $enc
+ }
+
+ unlock_index
+}
+
+# Undo the last line/hunk reverted. When hunks and lines are reverted, a copy
+# of the diff applied is saved. Re-apply that diff to undo the revert.
+#
+# Right now, we only use a single variable to hold the copy, and not a
+# stack/deque for simplicity, so multiple undos are not possible. Maybe this
+# can be added if the need for something like this is felt in the future.
+proc undo_last_revert {} {
+ global last_revert current_diff_path current_diff_header
+ global last_revert_enc
+
+ if {$last_revert eq {}} return
+ if {![lock_index apply_hunk]} return
+
+ set apply_cmd {apply --whitespace=nowarn}
+ set failed_msg [mc "Failed to undo last revert."]
+
+ if {[catch {
+ set enc $last_revert_enc
+ set p [eval git_write $apply_cmd]
+ fconfigure $p -translation binary -encoding $enc
+ puts -nonewline $p $last_revert
+ close $p} err]} {
+ error_popup "$failed_msg\n\n$err"
+ unlock_index
+ return
}
+ set last_revert {}
+
unlock_index
}
diff --git a/git-gui/lib/index.tcl b/git-gui/lib/index.tcl
index b588db1..e07b7a3 100644
--- a/git-gui/lib/index.tcl
+++ b/git-gui/lib/index.tcl
@@ -466,19 +466,19 @@ proc do_revert_selection {} {
}
proc do_select_commit_type {} {
- global commit_type selected_commit_type
+ global commit_type commit_type_is_amend
- if {$selected_commit_type eq {new}
+ if {$commit_type_is_amend == 0
&& [string match amend* $commit_type]} {
create_new_commit
- } elseif {$selected_commit_type eq {amend}
+ } elseif {$commit_type_is_amend == 1
&& ![string match amend* $commit_type]} {
load_last_commit
# The amend request was rejected...
#
if {![string match amend* $commit_type]} {
- set selected_commit_type new
+ set commit_type_is_amend 0
}
}
}
diff --git a/git-gui/po/ja.po b/git-gui/po/ja.po
index 208651c..2f61153 100644
--- a/git-gui/po/ja.po
+++ b/git-gui/po/ja.po
@@ -4,14 +4,15 @@
#
# ã—らã„ã— ãªãªã“ <nanako3@bluebottle.com>, 2007.
# Satoshi Yasushima <s.yasushima@gmail.com>, 2016.
+# KIDANI Akito <a.kid.1985@gmail.com>, 2019.
#
msgid ""
msgstr ""
"Project-Id-Version: git-gui\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-05-27 17:52+0900\n"
-"PO-Revision-Date: 2016-06-22 12:50+0900\n"
-"Last-Translator: Satoshi Yasushima <s.yasushima@gmail.com>\n"
+"PO-Revision-Date: 2019-10-13 23:20+0900\n"
+"Last-Translator: KIDANI Akito <a.kid.1985@gmail.com>\n"
"Language-Team: Japanese\n"
"Language: ja\n"
"MIME-Version: 1.0\n"
@@ -661,7 +662,7 @@ msgstr ""
#: lib/merge.tcl:108
#, tcl-format
msgid "%s of %s"
-msgstr "%s ã® %s ブランãƒ"
+msgstr "%2$s ã® %1$s ブランãƒ"
#: lib/merge.tcl:122
#, tcl-format
@@ -956,7 +957,7 @@ msgstr "エラー: コマンドãŒå¤±æ•—ã—ã¾ã—ãŸ"
#: lib/checkout_op.tcl:85
#, tcl-format
msgid "Fetching %s from %s"
-msgstr "%s ã‹ã‚‰ %s をフェッãƒã—ã¦ã„ã¾ã™"
+msgstr "%2$s ã‹ã‚‰ %1$s をフェッãƒã—ã¦ã„ã¾ã™"
#: lib/checkout_op.tcl:133
#, tcl-format
diff --git a/git-legacy-stash.sh b/git-legacy-stash.sh
index f60e9b3..07ad4a5 100755
--- a/git-legacy-stash.sh
+++ b/git-legacy-stash.sh
@@ -370,7 +370,7 @@ push_stash () {
git diff-index -p --cached --binary HEAD -- "$@" |
git apply --index -R
else
- git reset --hard -q
+ git reset --hard -q --no-recurse-submodules
fi
if test "$keep_index" = "t" && test -n "$i_tree"
diff --git a/git-p4.py b/git-p4.py
index 3991e7d..60c73b6 100755
--- a/git-p4.py
+++ b/git-p4.py
@@ -1160,13 +1160,11 @@ class LargeFileSystem(object):
if contentsSize <= gitConfigInt('git-p4.largeFileCompressedThreshold'):
return False
contentTempFile = self.generateTempFile(contents)
- compressedContentFile = tempfile.NamedTemporaryFile(prefix='git-p4-large-file', delete=False)
- zf = zipfile.ZipFile(compressedContentFile.name, mode='w')
- zf.write(contentTempFile, compress_type=zipfile.ZIP_DEFLATED)
- zf.close()
- compressedContentsSize = zf.infolist()[0].compress_size
+ compressedContentFile = tempfile.NamedTemporaryFile(prefix='git-p4-large-file', delete=True)
+ with zipfile.ZipFile(compressedContentFile, mode='w') as zf:
+ zf.write(contentTempFile, compress_type=zipfile.ZIP_DEFLATED)
+ compressedContentsSize = zf.infolist()[0].compress_size
os.remove(contentTempFile)
- os.remove(compressedContentFile.name)
if compressedContentsSize > gitConfigInt('git-p4.largeFileCompressedThreshold'):
return True
return False
@@ -3525,8 +3523,9 @@ class P4Sync(Command, P4UserMap):
self.updateOptionDict(details)
try:
self.commit(details, self.extractFilesFromCommit(details), self.branch)
- except IOError:
+ except IOError as err:
print("IO error with git fast-import. Is your git version recent enough?")
+ print("IO error details: {}".format(err))
print(self.gitError.read())
def openStreams(self):
diff --git a/git.c b/git.c
index c1ee712..ce6ab0e 100644
--- a/git.c
+++ b/git.c
@@ -369,8 +369,7 @@ static int handle_alias(int *argcp, const char ***argv)
die(_("alias '%s' changes environment variables.\n"
"You can use '!git' in the alias to do this"),
alias_command);
- memmove(new_argv - option_count, new_argv,
- count * sizeof(char *));
+ MOVE_ARRAY(new_argv - option_count, new_argv, count);
new_argv -= option_count;
if (count < 1)
@@ -385,7 +384,7 @@ static int handle_alias(int *argcp, const char ***argv)
REALLOC_ARRAY(new_argv, count + *argcp);
/* insert after command name */
- memcpy(new_argv + count, *argv + 1, sizeof(char *) * *argcp);
+ COPY_ARRAY(new_argv + count, *argv + 1, *argcp);
trace2_cmd_alias(alias_command, new_argv);
trace2_cmd_list_config();
diff --git a/gitk-git/gitk b/gitk-git/gitk
index a14d7a1..abe4805 100755
--- a/gitk-git/gitk
+++ b/gitk-git/gitk
@@ -3404,6 +3404,8 @@ set rectmask {
}
image create bitmap reficon-H -background black -foreground "#00ff00" \
-data $rectdata -maskdata $rectmask
+image create bitmap reficon-R -background black -foreground "#ffddaa" \
+ -data $rectdata -maskdata $rectmask
image create bitmap reficon-o -background black -foreground "#ddddff" \
-data $rectdata -maskdata $rectmask
@@ -7016,6 +7018,7 @@ proc commit_descriptor {p} {
# append some text to the ctext widget, and make any SHA1 ID
# that we know about be a clickable link.
+# Also look for URLs of the form "http[s]://..." and make them web links.
proc appendwithlinks {text tags} {
global ctext linknum curview
@@ -7032,6 +7035,18 @@ proc appendwithlinks {text tags} {
setlink $linkid link$linknum
incr linknum
}
+ set wlinks [regexp -indices -all -inline -line \
+ {https?://[^[:space:]]+} $text]
+ foreach l $wlinks {
+ set s2 [lindex $l 0]
+ set e2 [lindex $l 1]
+ set url [string range $text $s2 $e2]
+ incr e2
+ $ctext tag delete link$linknum
+ $ctext tag add link$linknum "$start + $s2 c" "$start + $e2 c"
+ setwlink $url link$linknum
+ incr linknum
+ }
}
proc setlink {id lk} {
@@ -7064,6 +7079,18 @@ proc setlink {id lk} {
}
}
+proc setwlink {url lk} {
+ global ctext
+ global linkfgcolor
+ global web_browser
+
+ if {$web_browser eq {}} return
+ $ctext tag conf $lk -foreground $linkfgcolor -underline 1
+ $ctext tag bind $lk <1> [list browseweb $url]
+ $ctext tag bind $lk <Enter> {linkcursor %W 1}
+ $ctext tag bind $lk <Leave> {linkcursor %W -1}
+}
+
proc appendshortlink {id {pre {}} {post {}}} {
global ctext linknum
@@ -7098,6 +7125,16 @@ proc linkcursor {w inc} {
}
}
+proc browseweb {url} {
+ global web_browser
+
+ if {$web_browser eq {}} return
+ # Use eval here in case $web_browser is a command plus some arguments
+ if {[catch {eval exec $web_browser [list $url] &} err]} {
+ error_popup "[mc "Error starting web browser:"] $err"
+ }
+}
+
proc viewnextline {dir} {
global canv linespc
@@ -8191,11 +8228,11 @@ proc parseblobdiffline {ids line} {
} else {
$ctext insert end "$line\n" filesep
}
- } elseif {![string compare -length 3 " >" $line]} {
+ } elseif {$currdiffsubmod != "" && ![string compare -length 3 " >" $line]} {
set $currdiffsubmod ""
set line [encoding convertfrom $diffencoding $line]
$ctext insert end "$line\n" dresult
- } elseif {![string compare -length 3 " <" $line]} {
+ } elseif {$currdiffsubmod != "" && ![string compare -length 3 " <" $line]} {
set $currdiffsubmod ""
set line [encoding convertfrom $diffencoding $line]
$ctext insert end "$line\n" d0
@@ -10022,6 +10059,7 @@ proc sel_reflist {w x y} {
set n [lindex $ref 0]
switch -- [lindex $ref 1] {
"H" {selbyid $headids($n)}
+ "R" {selbyid $headids($n)}
"T" {selbyid $tagids($n)}
"o" {selbyid $otherrefids($n)}
}
@@ -10051,7 +10089,11 @@ proc refill_reflist {} {
foreach n [array names headids] {
if {[string match $reflistfilter $n]} {
if {[commitinview $headids($n) $curview]} {
- lappend refs [list $n H]
+ if {[string match "remotes/*" $n]} {
+ lappend refs [list $n R]
+ } else {
+ lappend refs [list $n H]
+ }
} else {
interestedin $headids($n) {run refill_reflist}
}
@@ -11488,7 +11530,7 @@ proc create_prefs_page {w} {
proc prefspage_general {notebook} {
global NS maxwidth maxgraphpct showneartags showlocalchanges
global tabstop limitdiffs autoselect autosellen extdifftool perfile_attrs
- global hideremotes want_ttk have_ttk maxrefs
+ global hideremotes want_ttk have_ttk maxrefs web_browser
set page [create_prefs_page $notebook.general]
@@ -11539,6 +11581,13 @@ proc prefspage_general {notebook} {
pack configure $page.extdifff.l -padx 10
grid x $page.extdifff $page.extdifft -sticky ew
+ ${NS}::entry $page.webbrowser -textvariable web_browser
+ ${NS}::frame $page.webbrowserf
+ ${NS}::label $page.webbrowserf.l -text [mc "Web browser" ]
+ pack $page.webbrowserf.l -side left
+ pack configure $page.webbrowserf.l -padx 10
+ grid x $page.webbrowserf $page.webbrowser -sticky ew
+
${NS}::label $page.lgen -text [mc "General options"]
grid $page.lgen - -sticky w -pady 10
${NS}::checkbutton $page.want_ttk -variable want_ttk \
@@ -12310,6 +12359,7 @@ if {[tk windowingsystem] eq "win32"} {
set bgcolor SystemWindow
set fgcolor SystemWindowText
set selectbgcolor SystemHighlight
+ set web_browser "cmd /c start"
} else {
set uicolor grey85
set uifgcolor black
@@ -12317,6 +12367,11 @@ if {[tk windowingsystem] eq "win32"} {
set bgcolor white
set fgcolor black
set selectbgcolor gray85
+ if {[tk windowingsystem] eq "aqua"} {
+ set web_browser "open"
+ } else {
+ set web_browser "xdg-open"
+ }
}
set diffcolors {red "#00a000" blue}
set diffcontext 3
@@ -12390,6 +12445,7 @@ set config_variables {
filesepbgcolor filesepfgcolor linehoverbgcolor linehoverfgcolor
linehoveroutlinecolor mainheadcirclecolor workingfilescirclecolor
indexcirclecolor circlecolors linkfgcolor circleoutlinecolor
+ web_browser
}
foreach var $config_variables {
config_init_trace $var
diff --git a/gitk-git/po/zh_cn.po b/gitk-git/po/zh_cn.po
new file mode 100644
index 0000000..17b7f89
--- /dev/null
+++ b/gitk-git/po/zh_cn.po
@@ -0,0 +1,1367 @@
+# Translation of gitk to Simplified Chinese.
+#
+# Translators:
+# YanKe <imyanke@163.com>, 2017
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Git Chinese Localization Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-02-28 23:11+0800\n"
+"PO-Revision-Date: 2017-03-11 02:27+0800\n"
+"Last-Translator: YanKe <imyanke@163.com>\n"
+"Language-Team: Chinese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: zh_CN\n"
+
+#: gitk:140
+msgid "Couldn't get list of unmerged files:"
+msgstr "ä¸èƒ½èŽ·å–未åˆå¹¶æ–‡ä»¶åˆ—表:"
+
+#: gitk:212 gitk:2403
+msgid "Color words"
+msgstr "ç€è‰²æ˜¾ç¤ºå·®å¼‚"
+
+#: gitk:217 gitk:2403 gitk:8249 gitk:8282
+msgid "Markup words"
+msgstr "标记显示差异"
+
+#: gitk:324
+msgid "Error parsing revisions:"
+msgstr "解æžç‰ˆæœ¬é”™è¯¯ï¼š"
+
+#: gitk:380
+msgid "Error executing --argscmd command:"
+msgstr "è¿è¡Œ --argscmd命令出错"
+
+#: gitk:393
+msgid "No files selected: --merge specified but no files are unmerged."
+msgstr "没有选中文件:--指定mergeå‚数但没有未åˆå¹¶çš„文件。"
+
+#: gitk:396
+msgid ""
+"No files selected: --merge specified but no unmerged files are within file "
+"limit."
+msgstr "没有选中文件:--指定mergeå‚数但没有未åˆå¹¶çš„文件在文件中"
+
+#: gitk:418 gitk:566
+msgid "Error executing git log:"
+msgstr "执行git log命令出错:"
+
+#: gitk:436 gitk:582
+msgid "Reading"
+msgstr "读å–中"
+
+#: gitk:496 gitk:4549
+msgid "Reading commits..."
+msgstr "æ交记录读å–中..."
+
+#: gitk:499 gitk:1641 gitk:4552
+msgid "No commits selected"
+msgstr "未选中任何æ交"
+
+#: gitk:1449 gitk:4069 gitk:12583
+msgid "Command line"
+msgstr "命令行"
+
+#: gitk:1515
+msgid "Can't parse git log output:"
+msgstr "ä¸èƒ½è§£æžgit log输出:"
+
+#: gitk:1744
+msgid "No commit information available"
+msgstr "æ— å¯ç”¨æ交信æ¯"
+
+#: gitk:1907 gitk:1936 gitk:4339 gitk:9789 gitk:11388 gitk:11668
+msgid "OK"
+msgstr "确定"
+
+#: gitk:1938 gitk:4341 gitk:9225 gitk:9304 gitk:9434 gitk:9520 gitk:9791
+#: gitk:11389 gitk:11669
+msgid "Cancel"
+msgstr "å–消"
+
+#: gitk:2087
+msgid "&Update"
+msgstr "æ›´æ–°"
+
+#: gitk:2088
+msgid "&Reload"
+msgstr "é‡æ–°åŠ è½½"
+
+#: gitk:2089
+msgid "Reread re&ferences"
+msgstr "é‡æ–°è¯»å–引用"
+
+#: gitk:2090
+msgid "&List references"
+msgstr "列出引用(分支以åŠtag)"
+
+#: gitk:2092
+msgid "Start git &gui"
+msgstr "å¯åŠ¨git gui客户端"
+
+#: gitk:2094
+msgid "&Quit"
+msgstr "退出"
+
+#: gitk:2086
+msgid "&File"
+msgstr "文件"
+
+#: gitk:2098
+msgid "&Preferences"
+msgstr "å好设置"
+
+#: gitk:2097
+msgid "&Edit"
+msgstr "编辑"
+
+#: gitk:2102
+msgid "&New view..."
+msgstr "新视图..."
+
+#: gitk:2103
+msgid "&Edit view..."
+msgstr "编辑视图..."
+
+#: gitk:2104
+msgid "&Delete view"
+msgstr "删除视图"
+
+#: gitk:2106
+msgid "&All files"
+msgstr "所有文件"
+
+#: gitk:2101
+msgid "&View"
+msgstr "视图"
+
+#: gitk:2111 gitk:2121
+msgid "&About gitk"
+msgstr "关于gitk"
+
+#: gitk:2112 gitk:2126
+msgid "&Key bindings"
+msgstr "å¿«æ·é”®"
+
+#: gitk:2110 gitk:2125
+msgid "&Help"
+msgstr "帮助"
+
+#: gitk:2203 gitk:8681
+msgid "SHA1 ID:"
+msgstr "SHA1 ID:"
+
+#: gitk:2247
+msgid "Row"
+msgstr "行"
+
+#: gitk:2285
+msgid "Find"
+msgstr "查找"
+
+#: gitk:2313
+msgid "commit"
+msgstr "æ交"
+
+#: gitk:2317 gitk:2319 gitk:4711 gitk:4734 gitk:4758 gitk:6779 gitk:6851
+#: gitk:6936
+msgid "containing:"
+msgstr "包å«ï¼š"
+
+#: gitk:2320 gitk:3550 gitk:3555 gitk:4787
+msgid "touching paths:"
+msgstr "å½±å“路径:"
+
+#: gitk:2321 gitk:4801
+msgid "adding/removing string:"
+msgstr "增加/删除字符串:"
+
+#: gitk:2322 gitk:4803
+msgid "changing lines matching:"
+msgstr "改å˜è¡ŒåŒ¹é…:"
+
+#: gitk:2331 gitk:2333 gitk:4790
+msgid "Exact"
+msgstr "精确匹é…"
+
+#: gitk:2333 gitk:4878 gitk:6747
+msgid "IgnCase"
+msgstr "忽略大å°å†™"
+
+#: gitk:2333 gitk:4760 gitk:4876 gitk:6743
+msgid "Regexp"
+msgstr "正则"
+
+#: gitk:2335 gitk:2336 gitk:4898 gitk:4928 gitk:4935 gitk:6872 gitk:6940
+msgid "All fields"
+msgstr "所有字段"
+
+#: gitk:2336 gitk:4895 gitk:4928 gitk:6810
+msgid "Headline"
+msgstr "标题"
+
+#: gitk:2337 gitk:4895 gitk:6810 gitk:6940 gitk:7413
+msgid "Comments"
+msgstr "æ交注释"
+
+#: gitk:2337 gitk:4895 gitk:4900 gitk:4935 gitk:6810 gitk:7348 gitk:8859
+#: gitk:8874
+msgid "Author"
+msgstr "作者"
+
+#: gitk:2337 gitk:4895 gitk:6810 gitk:7350
+msgid "Committer"
+msgstr "æ交者"
+
+#: gitk:2371
+msgid "Search"
+msgstr "æœç´¢"
+
+#: gitk:2379
+msgid "Diff"
+msgstr "差异"
+
+#: gitk:2381
+msgid "Old version"
+msgstr "è€ç‰ˆæœ¬"
+
+#: gitk:2383
+msgid "New version"
+msgstr "新版本"
+
+#: gitk:2386
+msgid "Lines of context"
+msgstr "Diff上下文显示行数"
+
+#: gitk:2396
+msgid "Ignore space change"
+msgstr "忽略空格修改"
+
+#: gitk:2400 gitk:2402 gitk:7983 gitk:8235
+msgid "Line diff"
+msgstr "按行显示差异"
+
+#: gitk:2467
+msgid "Patch"
+msgstr "è¡¥ä¸"
+
+#: gitk:2469
+msgid "Tree"
+msgstr "æ ‘"
+
+#: gitk:2639 gitk:2660
+msgid "Diff this -> selected"
+msgstr "比较从当å‰æ交到选中æ交的差异"
+
+#: gitk:2640 gitk:2661
+msgid "Diff selected -> this"
+msgstr "比较从选中æ交到当å‰æ交的差异"
+
+#: gitk:2641 gitk:2662
+msgid "Make patch"
+msgstr "制作补ä¸"
+
+#: gitk:2642 gitk:9283
+msgid "Create tag"
+msgstr "创建tag"
+
+#: gitk:2643
+msgid "Copy commit summary"
+msgstr "å¤åˆ¶æ交摘è¦"
+
+#: gitk:2644 gitk:9414
+msgid "Write commit to file"
+msgstr "写入æ交到文件"
+
+#: gitk:2645
+msgid "Create new branch"
+msgstr "创建新分支"
+
+#: gitk:2646
+msgid "Cherry-pick this commit"
+msgstr "在此æ交è¿ç”¨è¡¥ä¸(cherry-pick)命令"
+
+#: gitk:2647
+msgid "Reset HEAD branch to here"
+msgstr "将分支头(HEAD)é‡ç½®åˆ°æ­¤å¤„"
+
+#: gitk:2648
+msgid "Mark this commit"
+msgstr "标记此æ交"
+
+#: gitk:2649
+msgid "Return to mark"
+msgstr "返回到标记"
+
+#: gitk:2650
+msgid "Find descendant of this and mark"
+msgstr "查找本次æ交的å­æ交并标记"
+
+#: gitk:2651
+msgid "Compare with marked commit"
+msgstr "和已标记的æ交作比较"
+
+#: gitk:2652 gitk:2663
+msgid "Diff this -> marked commit"
+msgstr "比较从当å‰æ交到已标记æ交的差异"
+
+#: gitk:2653 gitk:2664
+msgid "Diff marked commit -> this"
+msgstr "比较从已标记æ交到当å‰æ交的差异"
+
+#: gitk:2654
+msgid "Revert this commit"
+msgstr "撤销(revert)æ­¤æ交"
+
+#: gitk:2670
+msgid "Check out this branch"
+msgstr "检出(checkout)此分支"
+
+#: gitk:2671
+msgid "Rename this branch"
+msgstr "é‡å‘½å(Rename)此分支"
+
+#: gitk:2672
+msgid "Remove this branch"
+msgstr "删除(Remove)此分支"
+
+#: gitk:2673
+msgid "Copy branch name"
+msgstr "å¤åˆ¶åˆ†æ”¯å称"
+
+#: gitk:2680
+msgid "Highlight this too"
+msgstr "高亮此处"
+
+#: gitk:2681
+msgid "Highlight this only"
+msgstr "åªé«˜äº®æ­¤å¤„"
+
+#: gitk:2682
+msgid "External diff"
+msgstr "外部diff"
+
+#: gitk:2683
+msgid "Blame parent commit"
+msgstr "Blame父æ交"
+
+#: gitk:2684
+msgid "Copy path"
+msgstr "å¤åˆ¶è·¯å¾„"
+
+#: gitk:2691
+msgid "Show origin of this line"
+msgstr "显示此行原始æ交"
+
+#: gitk:2692
+msgid "Run git gui blame on this line"
+msgstr "在此行è¿è¡Œgit gui客户端的blame"
+
+#: gitk:3036
+msgid "About gitk"
+msgstr "关于gitk"
+
+#: gitk:3038
+msgid ""
+"\n"
+"Gitk - a commit viewer for git\n"
+"\n"
+"Copyright © 2005-2016 Paul Mackerras\n"
+"\n"
+"Use and redistribute under the terms of the GNU General Public License"
+msgstr "\nGitk — 一个gitçš„æ交查看器\n\n© 2005-2016 Paul Mackerras\n\n在GNU许å¯è¯ä¸‹ä½¿ç”¨ä»¥åŠåˆ†å‘"
+
+#: gitk:3046 gitk:3113 gitk:10004
+msgid "Close"
+msgstr "关闭"
+
+#: gitk:3067
+msgid "Gitk key bindings"
+msgstr "Gitkå¿«æ·é”®"
+
+#: gitk:3070
+msgid "Gitk key bindings:"
+msgstr "Gitkå¿«æ·é”®ï¼š"
+
+#: gitk:3072
+#, tcl-format
+msgid "<%s-Q>\t\tQuit"
+msgstr "<%s-Q>\t\t退出"
+
+#: gitk:3073
+#, tcl-format
+msgid "<%s-W>\t\tClose window"
+msgstr "<%s-W>\t\t关闭窗å£"
+
+#: gitk:3074
+msgid "<Home>\t\tMove to first commit"
+msgstr "<Home>\t\t移动到第一次æ交"
+
+#: gitk:3075
+msgid "<End>\t\tMove to last commit"
+msgstr "<End>\t\t移动到最åŽä¸€æ¬¡æ交"
+
+#: gitk:3076
+msgid "<Up>, p, k\tMove up one commit"
+msgstr "<Up>, p, k\t移动到上一次æ交"
+
+#: gitk:3077
+msgid "<Down>, n, j\tMove down one commit"
+msgstr "<Down>, n, j\t移动到下一次æ交"
+
+#: gitk:3078
+msgid "<Left>, z, h\tGo back in history list"
+msgstr "<Left>, z, h\t历å²åˆ—表的上一项"
+
+#: gitk:3079
+msgid "<Right>, x, l\tGo forward in history list"
+msgstr "<Right>, x, l\t历å²åˆ—表的下一项"
+
+#: gitk:3080
+#, tcl-format
+msgid "<%s-n>\tGo to n-th parent of current commit in history list"
+msgstr "<%s-n>\t在历å²åˆ—表中å‰å¾€æœ¬æ¬¡æ交的第n个父æ交"
+
+#: gitk:3081
+msgid "<PageUp>\tMove up one page in commit list"
+msgstr "<PageUp>\t上一页æ交列表"
+
+#: gitk:3082
+msgid "<PageDown>\tMove down one page in commit list"
+msgstr "<PageDown>\t下一页æ交列表"
+
+#: gitk:3083
+#, tcl-format
+msgid "<%s-Home>\tScroll to top of commit list"
+msgstr "<%s-Home>\t滚动到æ交列表顶部"
+
+#: gitk:3084
+#, tcl-format
+msgid "<%s-End>\tScroll to bottom of commit list"
+msgstr "<%s-End>\t滚动到æ交列表底部"
+
+#: gitk:3085
+#, tcl-format
+msgid "<%s-Up>\tScroll commit list up one line"
+msgstr "<%s-Up>\tå‘上滚动一行æ交列表"
+
+#: gitk:3086
+#, tcl-format
+msgid "<%s-Down>\tScroll commit list down one line"
+msgstr "<%s-Down>\tå‘下滚动一行æ交列表"
+
+#: gitk:3087
+#, tcl-format
+msgid "<%s-PageUp>\tScroll commit list up one page"
+msgstr "<%s-PageUp>\tå‘上滚动一页æ交列表"
+
+#: gitk:3088
+#, tcl-format
+msgid "<%s-PageDown>\tScroll commit list down one page"
+msgstr "<%s-PageDown>\tå‘下滚动一页æ交列表"
+
+#: gitk:3089
+msgid "<Shift-Up>\tFind backwards (upwards, later commits)"
+msgstr "<Shift-Up>\tå‘åŽæŸ¥æ‰¾(å‘上的,更晚的æ交)"
+
+#: gitk:3090
+msgid "<Shift-Down>\tFind forwards (downwards, earlier commits)"
+msgstr "<Shift-Down>\tå‘å‰æŸ¥æ‰¾(å‘下的,更早的æ交)"
+
+#: gitk:3091
+msgid "<Delete>, b\tScroll diff view up one page"
+msgstr "<Delete>, b\tå‘上滚动diff视图一页"
+
+#: gitk:3092
+msgid "<Backspace>\tScroll diff view up one page"
+msgstr "<Backspace>\tå‘上滚动diff视图一页"
+
+#: gitk:3093
+msgid "<Space>\t\tScroll diff view down one page"
+msgstr "<Space>\t\tå‘下滚动diff视图一页"
+
+#: gitk:3094
+msgid "u\t\tScroll diff view up 18 lines"
+msgstr "u\t\tå‘上滚动diff视图18è¡Œ"
+
+#: gitk:3095
+msgid "d\t\tScroll diff view down 18 lines"
+msgstr "d\t\tå‘下滚动diff视图18è¡Œ"
+
+#: gitk:3096
+#, tcl-format
+msgid "<%s-F>\t\tFind"
+msgstr "<%s-F>\t\t查找"
+
+#: gitk:3097
+#, tcl-format
+msgid "<%s-G>\t\tMove to next find hit"
+msgstr "<%s-G>\t\t移动到下一次查找命中"
+
+#: gitk:3098
+msgid "<Return>\tMove to next find hit"
+msgstr "<Return>\t\t移动到下一次查找命中"
+
+#: gitk:3099
+msgid "g\t\tGo to commit"
+msgstr "g\t\t转到æ交"
+
+#: gitk:3100
+msgid "/\t\tFocus the search box"
+msgstr "/\t\t选中æœç´¢æ¡†"
+
+#: gitk:3101
+msgid "?\t\tMove to previous find hit"
+msgstr "?\t\t移动到上一次查找命中"
+
+#: gitk:3102
+msgid "f\t\tScroll diff view to next file"
+msgstr "f\t\t滚动diff视图到下一个文件"
+
+#: gitk:3103
+#, tcl-format
+msgid "<%s-S>\t\tSearch for next hit in diff view"
+msgstr "<%s-S>\t\t在diff视图中查找下一此命中"
+
+#: gitk:3104
+#, tcl-format
+msgid "<%s-R>\t\tSearch for previous hit in diff view"
+msgstr "<%s-R>\t\t在diff视图中查找上一次命中"
+
+#: gitk:3105
+#, tcl-format
+msgid "<%s-KP+>\tIncrease font size"
+msgstr "<%s-KP+>\t增大字体大å°"
+
+#: gitk:3106
+#, tcl-format
+msgid "<%s-plus>\tIncrease font size"
+msgstr "<%s-plus>\t增大字体大å°"
+
+#: gitk:3107
+#, tcl-format
+msgid "<%s-KP->\tDecrease font size"
+msgstr "<%s-KP->\tå‡å°å­—体大å°"
+
+#: gitk:3108
+#, tcl-format
+msgid "<%s-minus>\tDecrease font size"
+msgstr "<%s-minus>\tå‡å°å­—体大å°"
+
+#: gitk:3109
+msgid "<F5>\t\tUpdate"
+msgstr "<F5>\t\tæ›´æ–°"
+
+#: gitk:3574 gitk:3583
+#, tcl-format
+msgid "Error creating temporary directory %s:"
+msgstr "创建临时目录出错%s:"
+
+#: gitk:3596
+#, tcl-format
+msgid "Error getting \"%s\" from %s:"
+msgstr "从%s获å–\"%s\"出错:"
+
+#: gitk:3659
+msgid "command failed:"
+msgstr "执行命令失败:"
+
+#: gitk:3808
+msgid "No such commit"
+msgstr "æ— æ­¤æ交"
+
+#: gitk:3822
+msgid "git gui blame: command failed:"
+msgstr "git gui blame:执行命令失败:"
+
+#: gitk:3853
+#, tcl-format
+msgid "Couldn't read merge head: %s"
+msgstr "ä¸èƒ½è¯»å–åˆå¹¶å¤´(merge head):%s"
+
+#: gitk:3861
+#, tcl-format
+msgid "Error reading index: %s"
+msgstr "读å–索引出错:%s"
+
+#: gitk:3886
+#, tcl-format
+msgid "Couldn't start git blame: %s"
+msgstr "ä¸èƒ½æ‰§è¡Œgit blame:%s"
+
+#: gitk:3889 gitk:6778
+msgid "Searching"
+msgstr "æœç´¢ä¸­"
+
+#: gitk:3921
+#, tcl-format
+msgid "Error running git blame: %s"
+msgstr "è¿è¡Œgit blame出错:%s"
+
+#: gitk:3949
+#, tcl-format
+msgid "That line comes from commit %s, which is not in this view"
+msgstr "此行æ¥è‡ªæ交%s,ä¸åœ¨æ­¤è§†å›¾ä¸­"
+
+#: gitk:3963
+msgid "External diff viewer failed:"
+msgstr "外部diff查看器失败:"
+
+#: gitk:4067
+msgid "All files"
+msgstr "所有文件"
+
+#: gitk:4091
+msgid "View"
+msgstr "视图"
+
+#: gitk:4094
+msgid "Gitk view definition"
+msgstr "Gitk视图定义"
+
+#: gitk:4098
+msgid "Remember this view"
+msgstr "è®°ä½æ­¤è§†å›¾"
+
+#: gitk:4099
+msgid "References (space separated list):"
+msgstr "引用(空格切分的列表):"
+
+#: gitk:4100
+msgid "Branches & tags:"
+msgstr "分支和tags"
+
+#: gitk:4101
+msgid "All refs"
+msgstr "所有引用"
+
+#: gitk:4102
+msgid "All (local) branches"
+msgstr "所有(本地)分支"
+
+#: gitk:4103
+msgid "All tags"
+msgstr "所有tag"
+
+#: gitk:4104
+msgid "All remote-tracking branches"
+msgstr "所有远程跟踪分支"
+
+#: gitk:4105
+msgid "Commit Info (regular expressions):"
+msgstr "æäº¤ä¿¡æ¯ (正则表达å¼):"
+
+#: gitk:4106
+msgid "Author:"
+msgstr "作者:"
+
+#: gitk:4107
+msgid "Committer:"
+msgstr "æ交者:"
+
+#: gitk:4108
+msgid "Commit Message:"
+msgstr "æ交信æ¯ï¼š"
+
+#: gitk:4109
+msgid "Matches all Commit Info criteria"
+msgstr "匹é…所有æ交信æ¯æ ‡å‡†"
+
+#: gitk:4110
+msgid "Matches no Commit Info criteria"
+msgstr "匹é…æ— æ交信æ¯æ ‡å‡†"
+
+#: gitk:4111
+msgid "Changes to Files:"
+msgstr "文件修改列表:"
+
+#: gitk:4112
+msgid "Fixed String"
+msgstr "固定字符串"
+
+#: gitk:4113
+msgid "Regular Expression"
+msgstr "正则表达å¼ï¼š"
+
+#: gitk:4114
+msgid "Search string:"
+msgstr "æœç´¢å­—符串:"
+
+#: gitk:4115
+msgid ""
+"Commit Dates (\"2 weeks ago\", \"2009-03-17 15:27:38\", \"March 17, 2009 "
+"15:27:38\"):"
+msgstr "æ交日期 (\"2星期之å‰\", \"2009-03-17 15:27:38\", \"5月 17, 2009 15:27:38\"):"
+
+#: gitk:4116
+msgid "Since:"
+msgstr "自:"
+
+#: gitk:4117
+msgid "Until:"
+msgstr "到:"
+
+#: gitk:4118
+msgid "Limit and/or skip a number of revisions (positive integer):"
+msgstr "é™åˆ¶ 且/或 跳过一定数é‡çš„版本(正整数):"
+
+#: gitk:4119
+msgid "Number to show:"
+msgstr "显示数é‡ï¼š"
+
+#: gitk:4120
+msgid "Number to skip:"
+msgstr "跳过数é‡ï¼š"
+
+#: gitk:4121
+msgid "Miscellaneous options:"
+msgstr "其他选项:"
+
+#: gitk:4122
+msgid "Strictly sort by date"
+msgstr "严格按日期整ç†"
+
+#: gitk:4123
+msgid "Mark branch sides"
+msgstr "标记分支边界"
+
+#: gitk:4124
+msgid "Limit to first parent"
+msgstr "é™åˆ¶åˆ°ç¬¬ä¸€ä¸ªçˆ¶æ交"
+
+#: gitk:4125
+msgid "Simple history"
+msgstr "简易历å²"
+
+#: gitk:4126
+msgid "Additional arguments to git log:"
+msgstr "git log命令的é¢å¤–å‚数:"
+
+#: gitk:4127
+msgid "Enter files and directories to include, one per line:"
+msgstr "输入文件和文件夹æ¥å¼•ç”¨ï¼Œæ¯è¡Œä¸€ä¸ªï¼š"
+
+#: gitk:4128
+msgid "Command to generate more commits to include:"
+msgstr "命令产生更多的æ交æ¥å¼•ç”¨ï¼š"
+
+#: gitk:4252
+msgid "Gitk: edit view"
+msgstr "Gitk: 编辑视图"
+
+#: gitk:4260
+msgid "-- criteria for selecting revisions"
+msgstr "-- 用æ¥é€‰æ‹©ç‰ˆæœ¬çš„规则"
+
+#: gitk:4265
+msgid "View Name"
+msgstr "视图å称"
+
+#: gitk:4340
+msgid "Apply (F5)"
+msgstr "应用(F5)"
+
+#: gitk:4378
+msgid "Error in commit selection arguments:"
+msgstr "æ交选择å‚数错误:"
+
+#: gitk:4433 gitk:4486 gitk:4948 gitk:4962 gitk:6232 gitk:12524 gitk:12525
+msgid "None"
+msgstr "æ— "
+
+#: gitk:5045 gitk:5050
+msgid "Descendant"
+msgstr "å­æ交"
+
+#: gitk:5046
+msgid "Not descendant"
+msgstr "éžå­æ交"
+
+#: gitk:5053 gitk:5058
+msgid "Ancestor"
+msgstr "父æ交"
+
+#: gitk:5054
+msgid "Not ancestor"
+msgstr "éžçˆ¶æ交"
+
+#: gitk:5348
+msgid "Local changes checked in to index but not committed"
+msgstr "已添加到索引但未æ交的修改"
+
+#: gitk:5384
+msgid "Local uncommitted changes, not checked in to index"
+msgstr "未添加到索引且未æ交的修改"
+
+#: gitk:7158
+msgid "and many more"
+msgstr "更多"
+
+#: gitk:7161
+msgid "many"
+msgstr "很多"
+
+#: gitk:7352
+msgid "Tags:"
+msgstr "Tags:"
+
+#: gitk:7369 gitk:7375 gitk:8854
+msgid "Parent"
+msgstr "父节点"
+
+#: gitk:7380
+msgid "Child"
+msgstr "å­èŠ‚点"
+
+#: gitk:7389
+msgid "Branch"
+msgstr "分支"
+
+#: gitk:7392
+msgid "Follows"
+msgstr "之åŽçš„tag"
+
+#: gitk:7395
+msgid "Precedes"
+msgstr "之å‰çš„tag"
+
+#: gitk:7990
+#, tcl-format
+msgid "Error getting diffs: %s"
+msgstr "获å–差异错误:%s"
+
+#: gitk:8679
+msgid "Goto:"
+msgstr "转到:"
+
+#: gitk:8700
+#, tcl-format
+msgid "Short SHA1 id %s is ambiguous"
+msgstr "短格å¼çš„SHA1æ交å·%sä¸æ˜Žç¡®ã€æœ‰æ­§ä¹‰"
+
+#: gitk:8707
+#, tcl-format
+msgid "Revision %s is not known"
+msgstr "版本%s未知"
+
+#: gitk:8717
+#, tcl-format
+msgid "SHA1 id %s is not known"
+msgstr "æ交å·(SHA1 id)%s未知"
+
+#: gitk:8719
+#, tcl-format
+msgid "Revision %s is not in the current view"
+msgstr "版本%sä¸åœ¨å½“å‰è§†å›¾ä¸­"
+
+#: gitk:8861 gitk:8876
+msgid "Date"
+msgstr "日期"
+
+#: gitk:8864
+msgid "Children"
+msgstr "å­èŠ‚点"
+
+#: gitk:8927
+#, tcl-format
+msgid "Reset %s branch to here"
+msgstr "é‡ç½®åˆ†æ”¯%s到此处"
+
+#: gitk:8929
+msgid "Detached head: can't reset"
+msgstr "分离的头(head):ä¸èƒ½é‡ç½®(reset)"
+
+#: gitk:9034 gitk:9040
+msgid "Skipping merge commit "
+msgstr "跳过åˆå¹¶æ交"
+
+#: gitk:9049 gitk:9054
+msgid "Error getting patch ID for "
+msgstr "获å–è¡¥ä¸ID出错"
+
+#: gitk:9050 gitk:9055
+msgid " - stopping\n"
+msgstr " — åœæ­¢ä¸­\n"
+
+#: gitk:9060 gitk:9063 gitk:9071 gitk:9085 gitk:9094
+msgid "Commit "
+msgstr "æ交"
+
+#: gitk:9064
+msgid ""
+" is the same patch as\n"
+" "
+msgstr " 是相åŒçš„è¡¥ä¸(patch)\n "
+
+#: gitk:9072
+msgid ""
+" differs from\n"
+" "
+msgstr " 差异æ¥è‡ª\n "
+
+#: gitk:9074
+msgid ""
+"Diff of commits:\n"
+"\n"
+msgstr "æ交的差异(Diff):\n\n"
+
+#: gitk:9086 gitk:9095
+#, tcl-format
+msgid " has %s children - stopping\n"
+msgstr "有%så­èŠ‚点 — åœæ­¢ä¸­\n"
+
+#: gitk:9114
+#, tcl-format
+msgid "Error writing commit to file: %s"
+msgstr "写入æ交到文件出错:%s"
+
+#: gitk:9120
+#, tcl-format
+msgid "Error diffing commits: %s"
+msgstr "比较æ交差异出错:%s"
+
+#: gitk:9166
+msgid "Top"
+msgstr "顶部"
+
+#: gitk:9167
+msgid "From"
+msgstr "从"
+
+#: gitk:9172
+msgid "To"
+msgstr "到"
+
+#: gitk:9196
+msgid "Generate patch"
+msgstr "生æˆè¡¥ä¸(patch)"
+
+#: gitk:9198
+msgid "From:"
+msgstr "从:"
+
+#: gitk:9207
+msgid "To:"
+msgstr "到:"
+
+#: gitk:9216
+msgid "Reverse"
+msgstr "åå‘(Reverse)"
+
+#: gitk:9218 gitk:9428
+msgid "Output file:"
+msgstr "输出文件:"
+
+#: gitk:9224
+msgid "Generate"
+msgstr "生æˆ"
+
+#: gitk:9262
+msgid "Error creating patch:"
+msgstr "创建补ä¸(patch)出错:"
+
+#: gitk:9285 gitk:9416 gitk:9504
+msgid "ID:"
+msgstr "ID:"
+
+#: gitk:9294
+msgid "Tag name:"
+msgstr "Tagå称:"
+
+#: gitk:9297
+msgid "Tag message is optional"
+msgstr "Tagä¿¡æ¯æ˜¯å¯é€‰çš„"
+
+#: gitk:9299
+msgid "Tag message:"
+msgstr "Tagä¿¡æ¯ï¼š"
+
+#: gitk:9303 gitk:9474
+msgid "Create"
+msgstr "创建"
+
+#: gitk:9321
+msgid "No tag name specified"
+msgstr "未指定tagå称"
+
+#: gitk:9325
+#, tcl-format
+msgid "Tag \"%s\" already exists"
+msgstr "Tag\"%s\"å·²ç»å­˜åœ¨"
+
+#: gitk:9335
+msgid "Error creating tag:"
+msgstr "创建tag出错:"
+
+#: gitk:9425
+msgid "Command:"
+msgstr "命令:"
+
+#: gitk:9433
+msgid "Write"
+msgstr "写入"
+
+#: gitk:9451
+msgid "Error writing commit:"
+msgstr "写入æ交出错:"
+
+#: gitk:9473
+msgid "Create branch"
+msgstr "创建分支"
+
+#: gitk:9489
+#, tcl-format
+msgid "Rename branch %s"
+msgstr "é‡å‘½å分支%s"
+
+#: gitk:9490
+msgid "Rename"
+msgstr "é‡å‘½å"
+
+#: gitk:9514
+msgid "Name:"
+msgstr "å称:"
+
+#: gitk:9538
+msgid "Please specify a name for the new branch"
+msgstr "请指定新分支的å称"
+
+#: gitk:9543
+#, tcl-format
+msgid "Branch '%s' already exists. Overwrite?"
+msgstr "分支\"%s\"å·²ç»å­˜åœ¨ã€‚覆盖它?"
+
+#: gitk:9587
+msgid "Please specify a new name for the branch"
+msgstr "请é‡æ–°æŒ‡å®šæ–°åˆ†æ”¯çš„å称"
+
+#: gitk:9650
+#, tcl-format
+msgid "Commit %s is already included in branch %s -- really re-apply it?"
+msgstr "æ交%så·²ç»å­˜åœ¨äºŽåˆ†æ”¯%s。确定é‡æ–°åº”用它?"
+
+#: gitk:9655
+msgid "Cherry-picking"
+msgstr "打补ä¸ä¸­(Cherry-picking)"
+
+#: gitk:9664
+#, tcl-format
+msgid ""
+"Cherry-pick failed because of local changes to file '%s'.\n"
+"Please commit, reset or stash your changes and try again."
+msgstr "打补ä¸(Cherry-pick)失败,因为本地修改了文件\"%s\"。\n请æ交(commit)ã€é‡ç½®(reset)或暂存(stash)修改åŽé‡è¯•ã€‚"
+
+#: gitk:9670
+msgid ""
+"Cherry-pick failed because of merge conflict.\n"
+"Do you wish to run git citool to resolve it?"
+msgstr "打补ä¸(Cherry-pick)失败因为åˆå¹¶å†²çªã€‚\n你是å¦å¸Œæœ›è¿è¡Œgit citool æ¥è§£å†³å†²çªï¼Ÿ"
+
+#: gitk:9686 gitk:9744
+msgid "No changes committed"
+msgstr "æ— å·²ç»æ交的修改"
+
+#: gitk:9713
+#, tcl-format
+msgid "Commit %s is not included in branch %s -- really revert it?"
+msgstr "æ交%sä¸åŒ…å«åœ¨åˆ†æ”¯%s中,确认回滚(revert)它?"
+
+#: gitk:9718
+msgid "Reverting"
+msgstr "回滚中(Reverting)"
+
+#: gitk:9726
+#, tcl-format
+msgid ""
+"Revert failed because of local changes to the following files:%s Please "
+"commit, reset or stash your changes and try again."
+msgstr "回滚(revert)失败,因为如下的本地文件修改:%s\n请æ交(commit)ã€é‡ç½®(reset)或者暂存(stash)改å˜åŽé‡è¯•ã€‚"
+
+#: gitk:9730
+msgid ""
+"Revert failed because of merge conflict.\n"
+" Do you wish to run git citool to resolve it?"
+msgstr "回滚(revert)失败,因为åˆå¹¶å†²çªã€‚\n你是å¦å¸Œæœ›è¿è¡Œgit citoolæ¥è§£å†³å†²çªï¼Ÿ"
+
+#: gitk:9773
+msgid "Confirm reset"
+msgstr "确认é‡ç½®(reset)"
+
+#: gitk:9775
+#, tcl-format
+msgid "Reset branch %s to %s?"
+msgstr "é‡ç½®(reset)分支%s到%s?"
+
+#: gitk:9777
+msgid "Reset type:"
+msgstr "é‡ç½®(reset)类型:"
+
+#: gitk:9780
+msgid "Soft: Leave working tree and index untouched"
+msgstr "软性:离开工作树,索引未改å˜"
+
+#: gitk:9783
+msgid "Mixed: Leave working tree untouched, reset index"
+msgstr "æ··åˆï¼šç¦»å¼€å·¥ä½œæ ‘(未改å˜),索引é‡ç½®"
+
+#: gitk:9786
+msgid ""
+"Hard: Reset working tree and index\n"
+"(discard ALL local changes)"
+msgstr "硬性:é‡ç½®å·¥ä½œæ ‘和索引\n(丢弃所有的本地修改)"
+
+#: gitk:9803
+msgid "Resetting"
+msgstr "é‡ç½®ä¸­(Resetting)"
+
+#: gitk:9876
+#, tcl-format
+msgid "A local branch named %s exists already"
+msgstr "本地分支%så·²ç»å­˜åœ¨"
+
+#: gitk:9884
+msgid "Checking out"
+msgstr "检出中(Checking out)"
+
+#: gitk:9943
+msgid "Cannot delete the currently checked-out branch"
+msgstr "ä¸èƒ½åˆ é™¤å½“å‰æ£€å‡º(checkout)分支"
+
+#: gitk:9949
+#, tcl-format
+msgid ""
+"The commits on branch %s aren't on any other branch.\n"
+"Really delete branch %s?"
+msgstr "在分支%s上的æ交ä¸åœ¨å…¶ä»–任何分支上。\n确认删除分支%s?"
+
+#: gitk:9980
+#, tcl-format
+msgid "Tags and heads: %s"
+msgstr "Tags和头指针(heads):%s"
+
+#: gitk:9997
+msgid "Filter"
+msgstr "过滤器"
+
+#: gitk:10293
+msgid ""
+"Error reading commit topology information; branch and preceding/following "
+"tag information will be incomplete."
+msgstr "读å–æ交拓扑信æ¯å‡ºé”™ï¼›åˆ†æ”¯å’Œä¹‹å‰/之åŽçš„tagä¿¡æ¯å°†ä¸èƒ½å®Œæˆã€‚"
+
+#: gitk:11270
+msgid "Tag"
+msgstr "标签(Tag)"
+
+#: gitk:11274
+msgid "Id"
+msgstr "Id"
+
+#: gitk:11357
+msgid "Gitk font chooser"
+msgstr "Gitk字体选择"
+
+#: gitk:11374
+msgid "B"
+msgstr "粗体"
+
+#: gitk:11377
+msgid "I"
+msgstr "斜体"
+
+#: gitk:11495
+msgid "Commit list display options"
+msgstr "æ交列表展示选项"
+
+#: gitk:11498
+msgid "Maximum graph width (lines)"
+msgstr "最大图宽度(行数)"
+
+#: gitk:11502
+#, no-tcl-format
+msgid "Maximum graph width (% of pane)"
+msgstr "最大图宽度(%窗å£ç™¾åˆ†æ¯”)"
+
+#: gitk:11505
+msgid "Show local changes"
+msgstr "显示本地修改"
+
+#: gitk:11508
+msgid "Auto-select SHA1 (length)"
+msgstr "自动选择SHA1(长度)"
+
+#: gitk:11512
+msgid "Hide remote refs"
+msgstr "éšè—远程引用"
+
+#: gitk:11516
+msgid "Diff display options"
+msgstr "差异(Diff)展示选项"
+
+#: gitk:11518
+msgid "Tab spacing"
+msgstr "制表符宽度"
+
+#: gitk:11521
+msgid "Display nearby tags/heads"
+msgstr "显示临近的tags/heads"
+
+#: gitk:11524
+msgid "Maximum # tags/heads to show"
+msgstr "最大tags/heads展示数é‡"
+
+#: gitk:11527
+msgid "Limit diffs to listed paths"
+msgstr "diff中列出文件é™åˆ¶"
+
+#: gitk:11530
+msgid "Support per-file encodings"
+msgstr "å•ç‹¬æ–‡ä»¶ç¼–ç æ”¯æŒ"
+
+#: gitk:11536 gitk:11683
+msgid "External diff tool"
+msgstr "外部差异(diff)工具"
+
+#: gitk:11537
+msgid "Choose..."
+msgstr "选择..."
+
+#: gitk:11542
+msgid "General options"
+msgstr "常规选项"
+
+#: gitk:11545
+msgid "Use themed widgets"
+msgstr "使用主题å°éƒ¨ä»¶"
+
+#: gitk:11547
+msgid "(change requires restart)"
+msgstr "(需é‡å¯ç”Ÿæ•ˆ)"
+
+#: gitk:11549
+msgid "(currently unavailable)"
+msgstr "(当å‰ä¸å¯ç”¨)"
+
+#: gitk:11560
+msgid "Colors: press to choose"
+msgstr "颜色:点击æ¥é€‰æ‹©"
+
+#: gitk:11563
+msgid "Interface"
+msgstr "ç•Œé¢"
+
+#: gitk:11564
+msgid "interface"
+msgstr "ç•Œé¢"
+
+#: gitk:11567
+msgid "Background"
+msgstr "背景"
+
+#: gitk:11568 gitk:11598
+msgid "background"
+msgstr "背景"
+
+#: gitk:11571
+msgid "Foreground"
+msgstr "å‰æ™¯"
+
+#: gitk:11572
+msgid "foreground"
+msgstr "å‰æ™¯"
+
+#: gitk:11575
+msgid "Diff: old lines"
+msgstr "差异(Diff):è€ä»£ç è¡Œ"
+
+#: gitk:11576
+msgid "diff old lines"
+msgstr "差异(diff)è€ä»£ç è¡Œ"
+
+#: gitk:11580
+msgid "Diff: new lines"
+msgstr "差异(Diff):新代ç è¡Œ"
+
+#: gitk:11581
+msgid "diff new lines"
+msgstr "差异(diff)新代ç è¡Œ"
+
+#: gitk:11585
+msgid "Diff: hunk header"
+msgstr "差异(Diff):补ä¸ç‰‡æ®µå¤´ä¿¡æ¯"
+
+#: gitk:11587
+msgid "diff hunk header"
+msgstr "差异(diff)è¡¥ä¸ç‰‡æ®µå¤´ä¿¡æ¯"
+
+#: gitk:11591
+msgid "Marked line bg"
+msgstr "已标记代ç è¡ŒèƒŒæ™¯"
+
+#: gitk:11593
+msgid "marked line background"
+msgstr "已标记代ç è¡ŒèƒŒæ™¯"
+
+#: gitk:11597
+msgid "Select bg"
+msgstr "选择背景"
+
+#: gitk:11606
+msgid "Fonts: press to choose"
+msgstr "字体:点击æ¥é€‰æ‹©"
+
+#: gitk:11608
+msgid "Main font"
+msgstr "主字体"
+
+#: gitk:11609
+msgid "Diff display font"
+msgstr "差异(Diff)显示字体"
+
+#: gitk:11610
+msgid "User interface font"
+msgstr "用户界é¢å­—体"
+
+#: gitk:11632
+msgid "Gitk preferences"
+msgstr "Gitkå好设置"
+
+#: gitk:11641
+msgid "General"
+msgstr "常规"
+
+#: gitk:11642
+msgid "Colors"
+msgstr "颜色"
+
+#: gitk:11643
+msgid "Fonts"
+msgstr "字体"
+
+#: gitk:11693
+#, tcl-format
+msgid "Gitk: choose color for %s"
+msgstr "Gitk:选择颜色用于%s"
+
+#: gitk:12206
+msgid ""
+"Sorry, gitk cannot run with this version of Tcl/Tk.\n"
+" Gitk requires at least Tcl/Tk 8.4."
+msgstr "对ä¸èµ·ï¼Œgitkä¸èƒ½è¿è¡Œåœ¨å½“å‰ç‰ˆæœ¬çš„Tcl/Tk中。\nGitkè¿è¡Œéœ€è¦æœ€ä½Žç‰ˆæœ¬ä¸ºTcl/Tk8.4。"
+
+#: gitk:12416
+msgid "Cannot find a git repository here."
+msgstr "在此ä½ç½®æœªå‘现git仓库。"
+
+#: gitk:12463
+#, tcl-format
+msgid "Ambiguous argument '%s': both revision and filename"
+msgstr "ä¸æ˜Žç¡®æœ‰æ­§ä¹‰çš„å‚æ•°\"%s\":版本和文件å称"
+
+#: gitk:12475
+msgid "Bad arguments to gitk:"
+msgstr "è¿è¡Œgitkå‚数错误:"
diff --git a/gitweb/static/js/blame_incremental.js b/gitweb/static/js/blame_incremental.js
index db6eb50..e100d82 100644
--- a/gitweb/static/js/blame_incremental.js
+++ b/gitweb/static/js/blame_incremental.js
@@ -484,7 +484,7 @@ function processBlameLines(lines) {
case 'previous':
curCommit.nprevious++;
// store only first 'previous' header
- if (!'previous' in curCommit) {
+ if (!('previous' in curCommit)) {
var parts = data.split(' ', 2);
curCommit.previous = parts[0];
curCommit.file_parent = unquote(parts[1]);
diff --git a/grep.c b/grep.c
index cd952ef..b7ae5a4 100644
--- a/grep.c
+++ b/grep.c
@@ -16,6 +16,20 @@ static int grep_source_is_binary(struct grep_source *gs,
static struct grep_opt grep_defaults;
+#ifdef USE_LIBPCRE2
+static pcre2_general_context *pcre2_global_context;
+
+static void *pcre2_malloc(PCRE2_SIZE size, MAYBE_UNUSED void *memory_data)
+{
+ return malloc(size);
+}
+
+static void pcre2_free(void *pointer, MAYBE_UNUSED void *memory_data)
+{
+ return free(pointer);
+}
+#endif
+
static const char *color_grep_slots[] = {
[GREP_COLOR_CONTEXT] = "context",
[GREP_COLOR_FILENAME] = "filename",
@@ -150,12 +164,28 @@ int grep_config(const char *var, const char *value, void *cb)
* 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).
+ *
+ * If using PCRE, make sure that the library is configured
+ * to use the same allocator as Git (e.g. nedmalloc on Windows).
+ *
+ * Any allocated memory needs to be released in grep_destroy().
*/
void grep_init(struct grep_opt *opt, struct repository *repo, const char *prefix)
{
struct grep_opt *def = &grep_defaults;
int i;
+#if defined(USE_LIBPCRE2)
+ if (!pcre2_global_context)
+ pcre2_global_context = pcre2_general_context_create(
+ pcre2_malloc, pcre2_free, NULL);
+#endif
+
+#ifdef USE_LIBPCRE1
+ pcre_malloc = malloc;
+ pcre_free = free;
+#endif
+
memset(opt, 0, sizeof(*opt));
opt->repo = repo;
opt->prefix = prefix;
@@ -178,6 +208,13 @@ void grep_init(struct grep_opt *opt, struct repository *repo, const char *prefix
color_set(opt->colors[i], def->colors[i]);
}
+void grep_destroy(void)
+{
+#ifdef USE_LIBPCRE2
+ pcre2_general_context_free(pcre2_global_context);
+#endif
+}
+
static void grep_set_pattern_type_option(enum grep_pattern_type pattern_type, struct grep_opt *opt)
{
/*
@@ -368,31 +405,20 @@ static int is_fixed(const char *s, size_t len)
return 1;
}
-static int has_null(const char *s, size_t len)
-{
- /*
- * regcomp cannot accept patterns with NULs so when using it
- * we consider any pattern containing a NUL fixed.
- */
- if (memchr(s, 0, len))
- return 1;
-
- return 0;
-}
-
#ifdef USE_LIBPCRE1
static void compile_pcre1_regexp(struct grep_pat *p, const struct grep_opt *opt)
{
const char *error;
int erroffset;
int options = PCRE_MULTILINE;
+ int study_options = 0;
if (opt->ignore_case) {
- if (has_non_ascii(p->pattern))
+ if (!opt->ignore_locale && has_non_ascii(p->pattern))
p->pcre1_tables = pcre_maketables();
options |= PCRE_CASELESS;
}
- if (is_utf8_locale() && has_non_ascii(p->pattern))
+ if (!opt->ignore_locale && is_utf8_locale() && has_non_ascii(p->pattern))
options |= PCRE_UTF8;
p->pcre1_regexp = pcre_compile(p->pattern, options, &error, &erroffset,
@@ -400,44 +426,31 @@ static void compile_pcre1_regexp(struct grep_pat *p, const struct grep_opt *opt)
if (!p->pcre1_regexp)
compile_regexp_failed(p, error);
- p->pcre1_extra_info = pcre_study(p->pcre1_regexp, GIT_PCRE_STUDY_JIT_COMPILE, &error);
- if (!p->pcre1_extra_info && error)
- die("%s", error);
-
-#ifdef GIT_PCRE1_USE_JIT
+#if defined(PCRE_CONFIG_JIT) && !defined(NO_LIBPCRE1_JIT)
pcre_config(PCRE_CONFIG_JIT, &p->pcre1_jit_on);
- if (p->pcre1_jit_on == 1) {
- p->pcre1_jit_stack = pcre_jit_stack_alloc(1, 1024 * 1024);
- if (!p->pcre1_jit_stack)
- die("Couldn't allocate PCRE JIT stack");
- pcre_assign_jit_stack(p->pcre1_extra_info, NULL, p->pcre1_jit_stack);
- } else if (p->pcre1_jit_on != 0) {
- BUG("The pcre1_jit_on variable should be 0 or 1, not %d",
- p->pcre1_jit_on);
- }
+ if (opt->debug)
+ fprintf(stderr, "pcre1_jit_on=%d\n", p->pcre1_jit_on);
+
+ if (p->pcre1_jit_on)
+ study_options = PCRE_STUDY_JIT_COMPILE;
#endif
+
+ p->pcre1_extra_info = pcre_study(p->pcre1_regexp, study_options, &error);
+ if (!p->pcre1_extra_info && error)
+ die("%s", error);
}
static int pcre1match(struct grep_pat *p, const char *line, const char *eol,
regmatch_t *match, int eflags)
{
- int ovector[30], ret, flags = 0;
+ int ovector[30], ret, flags = PCRE_NO_UTF8_CHECK;
if (eflags & REG_NOTBOL)
flags |= PCRE_NOTBOL;
-#ifdef GIT_PCRE1_USE_JIT
- if (p->pcre1_jit_on) {
- ret = pcre_jit_exec(p->pcre1_regexp, p->pcre1_extra_info, line,
- eol - line, 0, flags, ovector,
- ARRAY_SIZE(ovector), p->pcre1_jit_stack);
- } else
-#endif
- {
- ret = pcre_exec(p->pcre1_regexp, p->pcre1_extra_info, line,
- eol - line, 0, flags, ovector,
- ARRAY_SIZE(ovector));
- }
+ ret = pcre_exec(p->pcre1_regexp, p->pcre1_extra_info, line,
+ eol - line, 0, flags, ovector,
+ ARRAY_SIZE(ovector));
if (ret < 0 && ret != PCRE_ERROR_NOMATCH)
die("pcre_exec failed with error code %d", ret);
@@ -453,15 +466,12 @@ static int pcre1match(struct grep_pat *p, const char *line, const char *eol,
static void free_pcre1_regexp(struct grep_pat *p)
{
pcre_free(p->pcre1_regexp);
-#ifdef GIT_PCRE1_USE_JIT
- if (p->pcre1_jit_on) {
+#ifdef PCRE_CONFIG_JIT
+ if (p->pcre1_jit_on)
pcre_free_study(p->pcre1_extra_info);
- pcre_jit_stack_free(p->pcre1_jit_stack);
- } else
+ else
#endif
- {
pcre_free(p->pcre1_extra_info);
- }
pcre_free((void *)p->pcre1_tables);
}
#else /* !USE_LIBPCRE1 */
@@ -488,7 +498,6 @@ static void compile_pcre2_pattern(struct grep_pat *p, const struct grep_opt *opt
PCRE2_UCHAR errbuf[256];
PCRE2_SIZE erroffset;
int options = PCRE2_MULTILINE;
- const uint8_t *character_tables = NULL;
int jitret;
int patinforet;
size_t jitsizearg;
@@ -497,15 +506,20 @@ static void compile_pcre2_pattern(struct grep_pat *p, const struct grep_opt *opt
p->pcre2_compile_context = NULL;
+ /* pcre2_global_context is initialized in append_grep_pattern */
if (opt->ignore_case) {
- if (has_non_ascii(p->pattern)) {
- character_tables = pcre2_maketables(NULL);
+ if (!opt->ignore_locale && has_non_ascii(p->pattern)) {
+ if (!pcre2_global_context)
+ BUG("pcre2_global_context uninitialized");
+ p->pcre2_tables = pcre2_maketables(pcre2_global_context);
p->pcre2_compile_context = pcre2_compile_context_create(NULL);
- pcre2_set_character_tables(p->pcre2_compile_context, character_tables);
+ pcre2_set_character_tables(p->pcre2_compile_context,
+ p->pcre2_tables);
}
options |= PCRE2_CASELESS;
}
- if (is_utf8_locale() && has_non_ascii(p->pattern))
+ if (!opt->ignore_locale && is_utf8_locale() && has_non_ascii(p->pattern) &&
+ !(!opt->ignore_case && (p->fixed || p->is_fixed)))
options |= PCRE2_UTF;
p->pcre2_pattern = pcre2_compile((PCRE2_SPTR)p->pattern,
@@ -522,7 +536,9 @@ static void compile_pcre2_pattern(struct grep_pat *p, const struct grep_opt *opt
}
pcre2_config(PCRE2_CONFIG_JIT, &p->pcre2_jit_on);
- if (p->pcre2_jit_on == 1) {
+ if (opt->debug)
+ fprintf(stderr, "pcre2_jit_on=%d\n", p->pcre2_jit_on);
+ if (p->pcre2_jit_on) {
jitret = pcre2_jit_compile(p->pcre2_pattern, PCRE2_JIT_COMPLETE);
if (jitret)
die("Couldn't JIT the PCRE2 pattern '%s', got '%d'\n", p->pattern, jitret);
@@ -547,19 +563,11 @@ static void compile_pcre2_pattern(struct grep_pat *p, const struct grep_opt *opt
BUG("pcre2_pattern_info() failed: %d", patinforet);
if (jitsizearg == 0) {
p->pcre2_jit_on = 0;
+ if (opt->debug)
+ fprintf(stderr, "pcre2_jit_on=%d: (*NO_JIT) in regex\n",
+ p->pcre2_jit_on);
return;
}
-
- p->pcre2_jit_stack = pcre2_jit_stack_create(1, 1024 * 1024, NULL);
- if (!p->pcre2_jit_stack)
- die("Couldn't allocate PCRE2 JIT stack");
- p->pcre2_match_context = pcre2_match_context_create(NULL);
- if (!p->pcre2_match_context)
- die("Couldn't allocate PCRE2 match context");
- pcre2_jit_stack_assign(p->pcre2_match_context, NULL, p->pcre2_jit_stack);
- } else if (p->pcre2_jit_on != 0) {
- BUG("The pcre2_jit_on variable should be 0 or 1, not %d",
- p->pcre2_jit_on);
}
}
@@ -603,8 +611,7 @@ static void free_pcre2_pattern(struct grep_pat *p)
pcre2_compile_context_free(p->pcre2_compile_context);
pcre2_code_free(p->pcre2_pattern);
pcre2_match_data_free(p->pcre2_match_data);
- pcre2_jit_stack_free(p->pcre2_jit_stack);
- pcre2_match_context_free(p->pcre2_match_context);
+ free((void *)p->pcre2_tables);
}
#else /* !USE_LIBPCRE2 */
static void compile_pcre2_pattern(struct grep_pat *p, const struct grep_opt *opt)
@@ -626,7 +633,6 @@ static int pcre2match(struct grep_pat *p, const char *line, const char *eol,
static void free_pcre2_pattern(struct grep_pat *p)
{
}
-#endif /* !USE_LIBPCRE2 */
static void compile_fixed_regexp(struct grep_pat *p, struct grep_opt *opt)
{
@@ -647,46 +653,66 @@ static void compile_fixed_regexp(struct grep_pat *p, struct grep_opt *opt)
compile_regexp_failed(p, errbuf);
}
}
+#endif /* !USE_LIBPCRE2 */
static void compile_regexp(struct grep_pat *p, struct grep_opt *opt)
{
- int ascii_only;
int err;
int regflags = REG_NEWLINE;
p->word_regexp = opt->word_regexp;
p->ignore_case = opt->ignore_case;
- ascii_only = !has_non_ascii(p->pattern);
+ p->fixed = opt->fixed;
- /*
- * Even when -F (fixed) asks us to do a non-regexp search, we
- * may not be able to correctly case-fold when -i
- * (ignore-case) is asked (in which case, we'll synthesize a
- * regexp to match the pattern that matches regexp special
- * characters literally, while ignoring case differences). On
- * the other hand, even without -F, if the pattern does not
- * have any regexp special characters and there is no need for
- * case-folding search, we can internally turn it into a
- * simple string match using kws. p->fixed tells us if we
- * want to use kws.
- */
- if (opt->fixed ||
- has_null(p->pattern, p->patternlen) ||
- is_fixed(p->pattern, p->patternlen))
- p->fixed = !p->ignore_case || ascii_only;
-
- if (p->fixed) {
- p->kws = kwsalloc(p->ignore_case ? tolower_trans_tbl : NULL);
- kwsincr(p->kws, p->pattern, p->patternlen);
- kwsprep(p->kws);
- return;
- } else if (opt->fixed) {
- /*
- * We come here when the pattern has the non-ascii
- * characters we cannot case-fold, and asked to
- * ignore-case.
- */
+ if (memchr(p->pattern, 0, p->patternlen) && !opt->pcre2)
+ 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);
+#ifdef USE_LIBPCRE2
+ if (!p->fixed && !p->is_fixed) {
+ const char *no_jit = "(*NO_JIT)";
+ const int no_jit_len = strlen(no_jit);
+ if (starts_with(p->pattern, no_jit) &&
+ is_fixed(p->pattern + no_jit_len,
+ p->patternlen - no_jit_len))
+ p->is_fixed = 1;
+ }
+#endif
+ if (p->fixed || p->is_fixed) {
+#ifdef USE_LIBPCRE2
+ opt->pcre2 = 1;
+ if (p->is_fixed) {
+ compile_pcre2_pattern(p, opt);
+ } else {
+ /*
+ * E.g. t7811-grep-open.sh relies on the
+ * pattern being restored.
+ */
+ char *old_pattern = p->pattern;
+ size_t old_patternlen = p->patternlen;
+ struct strbuf sb = STRBUF_INIT;
+
+ /*
+ * There is the PCRE2_LITERAL flag, but it's
+ * only in PCRE v2 10.30 and later. Needing to
+ * ifdef our way around that and dealing with
+ * it + PCRE2_MULTILINE being an error is more
+ * complex than just quoting this ourselves.
+ */
+ strbuf_add(&sb, "\\Q", 2);
+ strbuf_add(&sb, p->pattern, p->patternlen);
+ strbuf_add(&sb, "\\E", 2);
+
+ p->pattern = sb.buf;
+ p->patternlen = sb.len;
+ compile_pcre2_pattern(p, opt);
+ p->pattern = old_pattern;
+ p->patternlen = old_patternlen;
+ strbuf_release(&sb);
+ }
+#else /* !USE_LIBPCRE2 */
compile_fixed_regexp(p, opt);
+#endif /* !USE_LIBPCRE2 */
return;
}
@@ -1053,9 +1079,7 @@ void free_grep_patterns(struct grep_opt *opt)
case GREP_PATTERN: /* atom */
case GREP_PATTERN_HEAD:
case GREP_PATTERN_BODY:
- if (p->kws)
- kwsfree(p->kws);
- else if (p->pcre1_regexp)
+ if (p->pcre1_regexp)
free_pcre1_regexp(p);
else if (p->pcre2_pattern)
free_pcre2_pattern(p);
@@ -1115,29 +1139,12 @@ static void show_name(struct grep_opt *opt, const char *name)
opt->output(opt, opt->null_following_name ? "\0" : "\n", 1);
}
-static int fixmatch(struct grep_pat *p, char *line, char *eol,
- regmatch_t *match)
-{
- struct kwsmatch kwsm;
- size_t offset = kwsexec(p->kws, line, eol - line, &kwsm);
- if (offset == -1) {
- match->rm_so = match->rm_eo = -1;
- return REG_NOMATCH;
- } else {
- match->rm_so = offset;
- match->rm_eo = match->rm_so + kwsm.size[0];
- return 0;
- }
-}
-
static int patmatch(struct grep_pat *p, char *line, char *eol,
regmatch_t *match, int eflags)
{
int hit;
- if (p->fixed)
- hit = !fixmatch(p, line, eol, match);
- else if (p->pcre1_regexp)
+ if (p->pcre1_regexp)
hit = !pcre1match(p, line, eol, match, eflags);
else if (p->pcre2_pattern)
hit = !pcre2match(p, line, eol, match, eflags);
diff --git a/grep.h b/grep.h
index 1875880..811fd27 100644
--- a/grep.h
+++ b/grep.h
@@ -3,24 +3,12 @@
#include "color.h"
#ifdef USE_LIBPCRE1
#include <pcre.h>
-#ifdef PCRE_CONFIG_JIT
-#if PCRE_MAJOR >= 8 && PCRE_MINOR >= 32
-#ifndef NO_LIBPCRE1_JIT
-#define GIT_PCRE1_USE_JIT
-#define GIT_PCRE_STUDY_JIT_COMPILE PCRE_STUDY_JIT_COMPILE
-#endif
-#endif
-#endif
-#ifndef GIT_PCRE_STUDY_JIT_COMPILE
-#define GIT_PCRE_STUDY_JIT_COMPILE 0
-#endif
-#if PCRE_MAJOR <= 8 && PCRE_MINOR < 20
-typedef int pcre_jit_stack;
+#ifndef PCRE_NO_UTF8_CHECK
+#define PCRE_NO_UTF8_CHECK 0
#endif
#else
typedef int pcre;
typedef int pcre_extra;
-typedef int pcre_jit_stack;
#endif
#ifdef USE_LIBPCRE2
#define PCRE2_CODE_UNIT_WIDTH 8
@@ -29,10 +17,7 @@ typedef int pcre_jit_stack;
typedef int pcre2_code;
typedef int pcre2_match_data;
typedef int pcre2_compile_context;
-typedef int pcre2_match_context;
-typedef int pcre2_jit_stack;
#endif
-#include "kwset.h"
#include "thread-utils.h"
#include "userdiff.h"
@@ -88,17 +73,15 @@ struct grep_pat {
regex_t regexp;
pcre *pcre1_regexp;
pcre_extra *pcre1_extra_info;
- pcre_jit_stack *pcre1_jit_stack;
const unsigned char *pcre1_tables;
int pcre1_jit_on;
pcre2_code *pcre2_pattern;
pcre2_match_data *pcre2_match_data;
pcre2_compile_context *pcre2_compile_context;
- pcre2_match_context *pcre2_match_context;
- pcre2_jit_stack *pcre2_jit_stack;
+ const uint8_t *pcre2_tables;
uint32_t pcre2_jit_on;
- kwset_t kws;
unsigned fixed:1;
+ unsigned is_fixed:1;
unsigned ignore_case:1;
unsigned word_regexp:1;
};
@@ -173,6 +156,7 @@ struct grep_opt {
int funcbody;
int extended_regexp_option;
int pattern_type_option;
+ int ignore_locale;
char colors[NR_GREP_COLORS][COLOR_MAXLEN];
unsigned pre_context;
unsigned post_context;
@@ -189,6 +173,7 @@ struct grep_opt {
void init_grep_defaults(struct repository *);
int grep_config(const char *var, const char *value, void *);
void grep_init(struct grep_opt *, struct repository *repo, const char *prefix);
+void grep_destroy(void);
void grep_commit_pattern_type(enum grep_pattern_type, struct grep_opt *opt);
void append_grep_pat(struct grep_opt *opt, const char *pat, size_t patlen, const char *origin, int no, enum grep_pat_token t);
diff --git a/hashmap.c b/hashmap.c
index d42f01f..39c1311 100644
--- a/hashmap.c
+++ b/hashmap.c
@@ -140,8 +140,8 @@ static inline struct hashmap_entry **find_entry_ptr(const struct hashmap *map,
}
static int always_equal(const void *unused_cmp_data,
- const void *unused1,
- const void *unused2,
+ const struct hashmap_entry *unused1,
+ const struct hashmap_entry *unused2,
const void *unused_keydata)
{
return 0;
@@ -171,41 +171,49 @@ void hashmap_init(struct hashmap *map, hashmap_cmp_fn equals_function,
map->do_count_items = 1;
}
-void hashmap_free(struct hashmap *map, int free_entries)
+void hashmap_free_(struct hashmap *map, ssize_t entry_offset)
{
if (!map || !map->table)
return;
- if (free_entries) {
+ if (entry_offset >= 0) { /* called by hashmap_free_entries */
struct hashmap_iter iter;
struct hashmap_entry *e;
+
hashmap_iter_init(map, &iter);
while ((e = hashmap_iter_next(&iter)))
- free(e);
+ /*
+ * like container_of, but using caller-calculated
+ * offset (caller being hashmap_free_entries)
+ */
+ free((char *)e - entry_offset);
}
free(map->table);
memset(map, 0, sizeof(*map));
}
-void *hashmap_get(const struct hashmap *map, const void *key, const void *keydata)
+struct hashmap_entry *hashmap_get(const struct hashmap *map,
+ const struct hashmap_entry *key,
+ const void *keydata)
{
return *find_entry_ptr(map, key, keydata);
}
-void *hashmap_get_next(const struct hashmap *map, const void *entry)
+struct hashmap_entry *hashmap_get_next(const struct hashmap *map,
+ const struct hashmap_entry *entry)
{
- struct hashmap_entry *e = ((struct hashmap_entry *) entry)->next;
+ struct hashmap_entry *e = entry->next;
for (; e; e = e->next)
if (entry_equals(map, entry, e, NULL))
return e;
return NULL;
}
-void hashmap_add(struct hashmap *map, void *entry)
+void hashmap_add(struct hashmap *map, struct hashmap_entry *entry)
{
unsigned int b = bucket(map, entry);
/* add entry */
- ((struct hashmap_entry *) entry)->next = map->table[b];
+ entry->next = map->table[b];
map->table[b] = entry;
/* fix size and rehash if appropriate */
@@ -216,7 +224,9 @@ void hashmap_add(struct hashmap *map, void *entry)
}
}
-void *hashmap_remove(struct hashmap *map, const void *key, const void *keydata)
+struct hashmap_entry *hashmap_remove(struct hashmap *map,
+ const struct hashmap_entry *key,
+ const void *keydata)
{
struct hashmap_entry *old;
struct hashmap_entry **e = find_entry_ptr(map, key, keydata);
@@ -238,7 +248,8 @@ void *hashmap_remove(struct hashmap *map, const void *key, const void *keydata)
return old;
}
-void *hashmap_put(struct hashmap *map, void *entry)
+struct hashmap_entry *hashmap_put(struct hashmap *map,
+ struct hashmap_entry *entry)
{
struct hashmap_entry *old = hashmap_remove(map, entry, NULL);
hashmap_add(map, entry);
@@ -252,7 +263,7 @@ void hashmap_iter_init(struct hashmap *map, struct hashmap_iter *iter)
iter->next = NULL;
}
-void *hashmap_iter_next(struct hashmap_iter *iter)
+struct hashmap_entry *hashmap_iter_next(struct hashmap_iter *iter)
{
struct hashmap_entry *current = iter->next;
for (;;) {
@@ -275,10 +286,15 @@ struct pool_entry {
};
static int pool_entry_cmp(const void *unused_cmp_data,
- const struct pool_entry *e1,
- const struct pool_entry *e2,
- const unsigned char *keydata)
+ const struct hashmap_entry *eptr,
+ const struct hashmap_entry *entry_or_key,
+ const void *keydata)
{
+ const struct pool_entry *e1, *e2;
+
+ e1 = container_of(eptr, const struct pool_entry, ent);
+ e2 = container_of(entry_or_key, const struct pool_entry, ent);
+
return e1->data != keydata &&
(e1->len != e2->len || memcmp(e1->data, keydata, e1->len));
}
@@ -290,18 +306,18 @@ const void *memintern(const void *data, size_t len)
/* initialize string pool hashmap */
if (!map.tablesize)
- hashmap_init(&map, (hashmap_cmp_fn) pool_entry_cmp, NULL, 0);
+ hashmap_init(&map, pool_entry_cmp, NULL, 0);
/* lookup interned string in pool */
- hashmap_entry_init(&key, memhash(data, len));
+ hashmap_entry_init(&key.ent, memhash(data, len));
key.len = len;
- e = hashmap_get(&map, &key, data);
+ e = hashmap_get_entry(&map, &key, ent, data);
if (!e) {
/* not found: create it */
FLEX_ALLOC_MEM(e, data, data, len);
- hashmap_entry_init(e, key.ent.hash);
+ hashmap_entry_init(&e->ent, key.ent.hash);
e->len = len;
- hashmap_add(&map, e);
+ hashmap_add(&map, &e->ent);
}
return e->data;
}
diff --git a/hashmap.h b/hashmap.h
index 8424911..bd27015 100644
--- a/hashmap.h
+++ b/hashmap.h
@@ -13,7 +13,7 @@
*
* struct hashmap map;
* struct long2string {
- * struct hashmap_entry ent; // must be the first member!
+ * struct hashmap_entry ent;
* long key;
* char value[FLEX_ARRAY]; // be careful with allocating on stack!
* };
@@ -21,12 +21,16 @@
* #define COMPARE_VALUE 1
*
* static int long2string_cmp(const void *hashmap_cmp_fn_data,
- * const struct long2string *e1,
- * const struct long2string *e2,
+ * const struct hashmap_entry *eptr,
+ * const struct hashmap_entry *entry_or_key,
* const void *keydata)
* {
* const char *string = keydata;
* unsigned flags = *(unsigned *)hashmap_cmp_fn_data;
+ * const struct long2string *e1, *e2;
+ *
+ * e1 = container_of(eptr, const struct long2string, ent);
+ * e2 = container_of(entry_or_key, const struct long2string, ent);
*
* if (flags & COMPARE_VALUE)
* return e1->key != e2->key ||
@@ -41,54 +45,58 @@
* char value[255], action[32];
* unsigned flags = 0;
*
- * hashmap_init(&map, (hashmap_cmp_fn) long2string_cmp, &flags, 0);
+ * hashmap_init(&map, long2string_cmp, &flags, 0);
*
* while (scanf("%s %ld %s", action, &key, value)) {
*
* if (!strcmp("add", action)) {
* struct long2string *e;
* FLEX_ALLOC_STR(e, value, value);
- * hashmap_entry_init(e, memhash(&key, sizeof(long)));
+ * hashmap_entry_init(&e->ent, memhash(&key, sizeof(long)));
* e->key = key;
- * hashmap_add(&map, e);
+ * hashmap_add(&map, &e->ent);
* }
*
* if (!strcmp("print_all_by_key", action)) {
* struct long2string k, *e;
- * hashmap_entry_init(&k, memhash(&key, sizeof(long)));
+ * hashmap_entry_init(&k->ent, memhash(&key, sizeof(long)));
* k.key = key;
*
* flags &= ~COMPARE_VALUE;
- * e = hashmap_get(&map, &k, NULL);
+ * e = hashmap_get_entry(&map, &k, ent, NULL);
* if (e) {
* printf("first: %ld %s\n", e->key, e->value);
- * while ((e = hashmap_get_next(&map, e)))
+ * while ((e = hashmap_get_next_entry(&map, e,
+ * struct long2string, ent))) {
* printf("found more: %ld %s\n", e->key, e->value);
+ * }
* }
* }
*
* if (!strcmp("has_exact_match", action)) {
* struct long2string *e;
* FLEX_ALLOC_STR(e, value, value);
- * hashmap_entry_init(e, memhash(&key, sizeof(long)));
+ * hashmap_entry_init(&e->ent, memhash(&key, sizeof(long)));
* e->key = key;
*
* flags |= COMPARE_VALUE;
- * printf("%sfound\n", hashmap_get(&map, e, NULL) ? "" : "not ");
+ * printf("%sfound\n",
+ * hashmap_get(&map, &e->ent, NULL) ? "" : "not ");
* free(e);
* }
*
* if (!strcmp("has_exact_match_no_heap_alloc", action)) {
* struct long2string k;
- * hashmap_entry_init(&k, memhash(&key, sizeof(long)));
+ * hashmap_entry_init(&k->ent, memhash(&key, sizeof(long)));
* k.key = key;
*
* flags |= COMPARE_VALUE;
- * printf("%sfound\n", hashmap_get(&map, &k, value) ? "" : "not ");
+ * printf("%sfound\n",
+ * hashmap_get(&map, &k->ent, value) ? "" : "not ");
* }
*
* if (!strcmp("end", action)) {
- * hashmap_free(&map, 1);
+ * hashmap_free_entries(&map, struct long2string, ent);
* break;
* }
* }
@@ -133,7 +141,7 @@ static inline unsigned int oidhash(const struct object_id *oid)
/*
* struct hashmap_entry is an opaque structure representing an entry in the
- * hash table, which must be used as first member of user data structures.
+ * hash table.
* Ideally it should be followed by an int-sized member to prevent unused
* memory on 64-bit systems due to alignment.
*/
@@ -168,7 +176,8 @@ struct hashmap_entry {
* The `hashmap_cmp_fn_data` entry is the pointer given in the init function.
*/
typedef int (*hashmap_cmp_fn)(const void *hashmap_cmp_fn_data,
- const void *entry, const void *entry_or_key,
+ const struct hashmap_entry *entry,
+ const struct hashmap_entry *entry_or_key,
const void *keydata);
/*
@@ -223,13 +232,20 @@ void hashmap_init(struct hashmap *map,
const void *equals_function_data,
size_t initial_size);
+/* internal function for freeing hashmap */
+void hashmap_free_(struct hashmap *map, ssize_t offset);
+
/*
- * Frees a hashmap structure and allocated memory.
- *
- * If `free_entries` is true, each hashmap_entry in the map is freed as well
- * using stdlibs free().
+ * Frees a hashmap structure and allocated memory, leaves entries undisturbed
*/
-void hashmap_free(struct hashmap *map, int free_entries);
+#define hashmap_free(map) hashmap_free_(map, -1)
+
+/*
+ * Frees @map and all entries. @type is the struct type of the entry
+ * where @member is the hashmap_entry struct used to associate with @map
+ */
+#define hashmap_free_entries(map, type, member) \
+ hashmap_free_(map, offsetof(type, member));
/* hashmap_entry functions */
@@ -244,9 +260,9 @@ void hashmap_free(struct hashmap *map, int free_entries);
* your structure was allocated with xmalloc(), you can just free(3) it,
* and if it is on stack, you can just let it go out of scope).
*/
-static inline void hashmap_entry_init(void *entry, unsigned int hash)
+static inline void hashmap_entry_init(struct hashmap_entry *e,
+ unsigned int hash)
{
- struct hashmap_entry *e = entry;
e->hash = hash;
e->next = NULL;
}
@@ -286,8 +302,9 @@ static inline unsigned int hashmap_get_size(struct hashmap *map)
* If an entry with matching hash code is found, `key` and `keydata` are passed
* to `hashmap_cmp_fn` to decide whether the entry matches the key.
*/
-void *hashmap_get(const struct hashmap *map, const void *key,
- const void *keydata);
+struct hashmap_entry *hashmap_get(const struct hashmap *map,
+ const struct hashmap_entry *key,
+ const void *keydata);
/*
* Returns the hashmap entry for the specified hash code and key data,
@@ -301,9 +318,10 @@ void *hashmap_get(const struct hashmap *map, const void *key,
* `entry_or_key` parameter of `hashmap_cmp_fn` points to a hashmap_entry
* structure that should not be used in the comparison.
*/
-static inline void *hashmap_get_from_hash(const struct hashmap *map,
- unsigned int hash,
- const void *keydata)
+static inline struct hashmap_entry *hashmap_get_from_hash(
+ const struct hashmap *map,
+ unsigned int hash,
+ const void *keydata)
{
struct hashmap_entry key;
hashmap_entry_init(&key, hash);
@@ -318,7 +336,8 @@ static inline void *hashmap_get_from_hash(const struct hashmap *map,
* `entry` is the hashmap_entry to start the search from, obtained via a previous
* call to `hashmap_get` or `hashmap_get_next`.
*/
-void *hashmap_get_next(const struct hashmap *map, const void *entry);
+struct hashmap_entry *hashmap_get_next(const struct hashmap *map,
+ const struct hashmap_entry *entry);
/*
* Adds a hashmap entry. This allows to add duplicate entries (i.e.
@@ -327,7 +346,7 @@ void *hashmap_get_next(const struct hashmap *map, const void *entry);
* `map` is the hashmap structure.
* `entry` is the entry to add.
*/
-void hashmap_add(struct hashmap *map, void *entry);
+void hashmap_add(struct hashmap *map, struct hashmap_entry *entry);
/*
* Adds or replaces a hashmap entry. If the hashmap contains duplicate
@@ -337,7 +356,20 @@ void hashmap_add(struct hashmap *map, void *entry);
* `entry` is the entry to add or replace.
* Returns the replaced entry, or NULL if not found (i.e. the entry was added).
*/
-void *hashmap_put(struct hashmap *map, void *entry);
+struct hashmap_entry *hashmap_put(struct hashmap *map,
+ struct hashmap_entry *entry);
+
+/*
+ * Adds or replaces a hashmap entry contained within @keyvar,
+ * where @keyvar is a pointer to a struct containing a
+ * "struct hashmap_entry" @member.
+ *
+ * Returns the replaced pointer which is of the same type as @keyvar,
+ * or NULL if not found.
+ */
+#define hashmap_put_entry(map, keyvar, member) \
+ container_of_or_null_offset(hashmap_put(map, &(keyvar)->member), \
+ OFFSETOF_VAR(keyvar, member))
/*
* Removes a hashmap entry matching the specified key. If the hashmap contains
@@ -346,8 +378,24 @@ void *hashmap_put(struct hashmap *map, void *entry);
*
* Argument explanation is the same as in `hashmap_get`.
*/
-void *hashmap_remove(struct hashmap *map, const void *key,
- const void *keydata);
+struct hashmap_entry *hashmap_remove(struct hashmap *map,
+ const struct hashmap_entry *key,
+ const void *keydata);
+
+/*
+ * Removes a hashmap entry contained within @keyvar,
+ * where @keyvar is a pointer to a struct containing a
+ * "struct hashmap_entry" @member.
+ *
+ * See `hashmap_get` for an explanation of @keydata
+ *
+ * Returns the replaced pointer which is of the same type as @keyvar,
+ * or NULL if not found.
+ */
+#define hashmap_remove_entry(map, keyvar, member, keydata) \
+ container_of_or_null_offset( \
+ hashmap_remove(map, &(keyvar)->member, keydata), \
+ OFFSETOF_VAR(keyvar, member))
/*
* Returns the `bucket` an entry is stored in.
@@ -370,10 +418,10 @@ struct hashmap_iter {
void hashmap_iter_init(struct hashmap *map, struct hashmap_iter *iter);
/* Returns the next hashmap_entry, or NULL if there are no more entries. */
-void *hashmap_iter_next(struct hashmap_iter *iter);
+struct hashmap_entry *hashmap_iter_next(struct hashmap_iter *iter);
/* Initializes the iterator and returns the first entry, if any. */
-static inline void *hashmap_iter_first(struct hashmap *map,
+static inline struct hashmap_entry *hashmap_iter_first(struct hashmap *map,
struct hashmap_iter *iter)
{
hashmap_iter_init(map, iter);
@@ -381,6 +429,64 @@ static inline void *hashmap_iter_first(struct hashmap *map,
}
/*
+ * returns the first entry in @map using @iter, where the entry is of
+ * @type (e.g. "struct foo") and @member is the name of the
+ * "struct hashmap_entry" in @type
+ */
+#define hashmap_iter_first_entry(map, iter, type, member) \
+ container_of_or_null(hashmap_iter_first(map, iter), type, member)
+
+/* internal macro for hashmap_for_each_entry */
+#define hashmap_iter_next_entry_offset(iter, offset) \
+ container_of_or_null_offset(hashmap_iter_next(iter), offset)
+
+/* internal macro for hashmap_for_each_entry */
+#define hashmap_iter_first_entry_offset(map, iter, offset) \
+ container_of_or_null_offset(hashmap_iter_first(map, iter), offset)
+
+/*
+ * iterate through @map using @iter, @var is a pointer to a type
+ * containing a @member which is a "struct hashmap_entry"
+ */
+#define hashmap_for_each_entry(map, iter, var, member) \
+ for (var = hashmap_iter_first_entry_offset(map, iter, \
+ OFFSETOF_VAR(var, member)); \
+ var; \
+ var = hashmap_iter_next_entry_offset(iter, \
+ OFFSETOF_VAR(var, member)))
+
+/*
+ * returns a pointer of type matching @keyvar, or NULL if nothing found.
+ * @keyvar is a pointer to a struct containing a
+ * "struct hashmap_entry" @member.
+ */
+#define hashmap_get_entry(map, keyvar, member, keydata) \
+ container_of_or_null_offset( \
+ hashmap_get(map, &(keyvar)->member, keydata), \
+ OFFSETOF_VAR(keyvar, member))
+
+#define hashmap_get_entry_from_hash(map, hash, keydata, type, member) \
+ container_of_or_null(hashmap_get_from_hash(map, hash, keydata), \
+ type, member)
+/*
+ * returns the next equal pointer to @var, or NULL if not found.
+ * @var is a pointer of any type containing "struct hashmap_entry"
+ * @member is the name of the "struct hashmap_entry" field
+ */
+#define hashmap_get_next_entry(map, var, member) \
+ container_of_or_null_offset(hashmap_get_next(map, &(var)->member), \
+ OFFSETOF_VAR(var, member))
+
+/*
+ * iterate @map starting from @var, where @var is a pointer of @type
+ * and @member is the name of the "struct hashmap_entry" field in @type
+ */
+#define hashmap_for_each_entry_from(map, var, member) \
+ for (; \
+ var; \
+ var = hashmap_get_next_entry(map, var, member))
+
+/*
* Disable item counting and automatic rehashing when adding/removing items.
*
* Normally, the hashmap keeps track of the number of items in the map
diff --git a/help.c b/help.c
index 5261d83..9ff2be6 100644
--- a/help.c
+++ b/help.c
@@ -774,7 +774,8 @@ static struct string_list guess_refs(const char *ref)
return similar_refs;
}
-void help_unknown_ref(const char *ref, const char *cmd, const char *error)
+NORETURN void help_unknown_ref(const char *ref, const char *cmd,
+ const char *error)
{
int i;
struct string_list suggested_refs = guess_refs(ref);
diff --git a/help.h b/help.h
index b8780fb..7a455be 100644
--- a/help.h
+++ b/help.h
@@ -43,7 +43,7 @@ void list_commands(unsigned int colopts, struct cmdnames *main_cmds, struct cmdn
* call this to die(), when it is suspected that the user mistyped a
* ref to the command, to give suggested "correct" refs.
*/
-void help_unknown_ref(const char *ref, const char *cmd, const char *error);
+NORETURN void help_unknown_ref(const char *ref, const char *cmd, const char *error);
static inline void list_config_item(struct string_list *list,
const char *prefix,
diff --git a/http-push.c b/http-push.c
index 0353f9f..822f326 100644
--- a/http-push.c
+++ b/http-push.c
@@ -501,10 +501,10 @@ static void release_request(struct transfer_request *request)
if (request == request_queue_head) {
request_queue_head = request->next;
} else {
- while (entry->next != NULL && entry->next != request)
+ while (entry && entry->next != request)
entry = entry->next;
- if (entry->next == request)
- entry->next = entry->next->next;
+ if (entry)
+ entry->next = request->next;
}
free(request->url);
@@ -981,7 +981,7 @@ static int unlock_remote(struct remote_lock *lock)
while (prev && prev->next != lock)
prev = prev->next;
if (prev)
- prev->next = prev->next->next;
+ prev->next = lock->next;
}
free(lock->owner);
diff --git a/http.c b/http.c
index 27aa0a3..027a86d 100644
--- a/http.c
+++ b/http.c
@@ -513,9 +513,11 @@ static void set_proxyauth_name_password(CURL *result)
#else
struct strbuf s = STRBUF_INIT;
- strbuf_addstr_urlencode(&s, proxy_auth.username, 1);
+ strbuf_addstr_urlencode(&s, proxy_auth.username,
+ is_rfc3986_unreserved);
strbuf_addch(&s, ':');
- strbuf_addstr_urlencode(&s, proxy_auth.password, 1);
+ strbuf_addstr_urlencode(&s, proxy_auth.password,
+ is_rfc3986_unreserved);
curl_proxyuserpwd = strbuf_detach(&s, NULL);
curl_easy_setopt(result, CURLOPT_PROXYUSERPWD, curl_proxyuserpwd);
#endif
@@ -1073,6 +1075,7 @@ void http_init(struct remote *remote, const char *url, int proactive_auth)
git_config(urlmatch_config_entry, &config);
free(normalized_url);
+ string_list_clear(&config.vars, 1);
#if LIBCURL_VERSION_NUM >= 0x073800
if (http_ssl_backend) {
diff --git a/http.h b/http.h
index b429f1c..5e0ad72 100644
--- a/http.h
+++ b/http.h
@@ -25,8 +25,12 @@
#if LIBCURL_VERSION_NUM < 0x070704
#define curl_global_cleanup() do { /* nothing */ } while (0)
#endif
+
#if LIBCURL_VERSION_NUM < 0x070800
#define curl_global_init(a) do { /* nothing */ } while (0)
+#elif LIBCURL_VERSION_NUM >= 0x070c00
+#define curl_global_init(a) curl_global_init_mem(a, xmalloc, free, \
+ xrealloc, xstrdup, xcalloc)
#endif
#if (LIBCURL_VERSION_NUM < 0x070c04) || (LIBCURL_VERSION_NUM == 0x071000)
diff --git a/line-log.c b/line-log.c
index 3aff184..9010e00 100644
--- a/line-log.c
+++ b/line-log.c
@@ -737,6 +737,38 @@ static struct line_log_data *lookup_line_range(struct rev_info *revs,
return ret;
}
+static int same_paths_in_pathspec_and_range(struct pathspec *pathspec,
+ struct line_log_data *range)
+{
+ int i;
+ struct line_log_data *r;
+
+ for (i = 0, r = range; i < pathspec->nr && r; i++, r = r->next)
+ if (strcmp(pathspec->items[i].match, r->path))
+ return 0;
+ if (i < pathspec->nr || r)
+ /* different number of pathspec items and ranges */
+ return 0;
+
+ return 1;
+}
+
+static void parse_pathspec_from_ranges(struct pathspec *pathspec,
+ struct line_log_data *range)
+{
+ struct line_log_data *r;
+ struct argv_array array = ARGV_ARRAY_INIT;
+ const char **paths;
+
+ for (r = range; r; r = r->next)
+ argv_array_push(&array, r->path);
+ paths = argv_array_detach(&array);
+
+ parse_pathspec(pathspec, 0, PATHSPEC_PREFER_FULL, "", paths);
+ /* strings are now owned by pathspec */
+ free(paths);
+}
+
void line_log_init(struct rev_info *rev, const char *prefix, struct string_list *args)
{
struct commit *commit = NULL;
@@ -746,20 +778,7 @@ void line_log_init(struct rev_info *rev, const char *prefix, struct string_list
range = parse_lines(rev->diffopt.repo, commit, prefix, args);
add_line_range(rev, commit, range);
- if (!rev->diffopt.detect_rename) {
- struct line_log_data *r;
- struct argv_array array = ARGV_ARRAY_INIT;
- const char **paths;
-
- for (r = range; r; r = r->next)
- argv_array_push(&array, r->path);
- paths = argv_array_detach(&array);
-
- parse_pathspec(&rev->diffopt.pathspec, 0,
- PATHSPEC_PREFER_FULL, "", paths);
- /* strings are now owned by pathspec */
- free(paths);
- }
+ parse_pathspec_from_ranges(&rev->diffopt.pathspec, range);
}
static void move_diff_queue(struct diff_queue_struct *dst,
@@ -817,15 +836,29 @@ static void queue_diffs(struct line_log_data *range,
struct diff_queue_struct *queue,
struct commit *commit, struct commit *parent)
{
+ struct object_id *tree_oid, *parent_tree_oid;
+
assert(commit);
+ tree_oid = get_commit_tree_oid(commit);
+ parent_tree_oid = parent ? get_commit_tree_oid(parent) : NULL;
+
+ if (opt->detect_rename &&
+ !same_paths_in_pathspec_and_range(&opt->pathspec, range)) {
+ clear_pathspec(&opt->pathspec);
+ parse_pathspec_from_ranges(&opt->pathspec, range);
+ }
DIFF_QUEUE_CLEAR(&diff_queued_diff);
- diff_tree_oid(parent ? get_commit_tree_oid(parent) : NULL,
- get_commit_tree_oid(commit), "", opt);
- if (opt->detect_rename) {
+ diff_tree_oid(parent_tree_oid, tree_oid, "", opt);
+ if (opt->detect_rename && diff_might_be_rename()) {
+ /* must look at the full tree diff to detect renames */
+ clear_pathspec(&opt->pathspec);
+ DIFF_QUEUE_CLEAR(&diff_queued_diff);
+
+ diff_tree_oid(parent_tree_oid, tree_oid, "", opt);
+
filter_diffs_for_paths(range, 1);
- if (diff_might_be_rename())
- diffcore_std(opt);
+ diffcore_std(opt);
filter_diffs_for_paths(range, 0);
}
move_diff_queue(queue, &diff_queued_diff);
diff --git a/list-objects-filter-options.c b/list-objects-filter-options.c
index 1cb20c6..256bcfb 100644
--- a/list-objects-filter-options.c
+++ b/list-objects-filter-options.c
@@ -6,6 +6,14 @@
#include "list-objects.h"
#include "list-objects-filter.h"
#include "list-objects-filter-options.h"
+#include "promisor-remote.h"
+#include "trace.h"
+#include "url.h"
+
+static int parse_combine_filter(
+ struct list_objects_filter_options *filter_options,
+ const char *arg,
+ struct strbuf *errbuf);
/*
* Parse value of the argument to the "filter" keyword.
@@ -29,16 +37,11 @@ static int gently_parse_list_objects_filter(
{
const char *v0;
- if (filter_options->choice) {
- if (errbuf) {
- strbuf_addstr(
- errbuf,
- _("multiple filter-specs cannot be combined"));
- }
- return 1;
- }
+ if (!arg)
+ return 0;
- filter_options->filter_spec = strdup(arg);
+ if (filter_options->choice)
+ BUG("filter_options already populated");
if (!strcmp(arg, "blob:none")) {
filter_options->choice = LOFC_BLOB_NONE;
@@ -52,28 +55,14 @@ static int gently_parse_list_objects_filter(
} else if (skip_prefix(arg, "tree:", &v0)) {
if (!git_parse_ulong(v0, &filter_options->tree_exclude_depth)) {
- if (errbuf) {
- strbuf_addstr(
- errbuf,
- _("expected 'tree:<depth>'"));
- }
+ strbuf_addstr(errbuf, _("expected 'tree:<depth>'"));
return 1;
}
filter_options->choice = LOFC_TREE_DEPTH;
return 0;
} else if (skip_prefix(arg, "sparse:oid=", &v0)) {
- struct object_context oc;
- struct object_id sparse_oid;
-
- /*
- * Try to parse <oid-expression> into an OID for the current
- * command, but DO NOT complain if we don't have the blob or
- * ref locally.
- */
- if (!get_oid_with_context(the_repository, v0, GET_OID_BLOB,
- &sparse_oid, &oc))
- filter_options->sparse_oid_value = oiddup(&sparse_oid);
+ filter_options->sparse_oid_name = xstrdup(v0);
filter_options->choice = LOFC_SPARSE_OID;
return 0;
@@ -84,103 +73,298 @@ static int gently_parse_list_objects_filter(
_("sparse:path filters support has been dropped"));
}
return 1;
+
+ } else if (skip_prefix(arg, "combine:", &v0)) {
+ return parse_combine_filter(filter_options, v0, errbuf);
+
}
/*
* Please update _git_fetch() in git-completion.bash when you
* add new filters
*/
- if (errbuf)
- strbuf_addf(errbuf, _("invalid filter-spec '%s'"), arg);
+ strbuf_addf(errbuf, _("invalid filter-spec '%s'"), arg);
memset(filter_options, 0, sizeof(*filter_options));
return 1;
}
-int parse_list_objects_filter(struct list_objects_filter_options *filter_options,
- const char *arg)
+static const char *RESERVED_NON_WS = "~`!@#$^&*()[]{}\\;'\",<>?";
+
+static int has_reserved_character(
+ struct strbuf *sub_spec, struct strbuf *errbuf)
{
- struct strbuf buf = STRBUF_INIT;
- if (gently_parse_list_objects_filter(filter_options, arg, &buf))
- die("%s", buf.buf);
+ const char *c = sub_spec->buf;
+ while (*c) {
+ if (*c <= ' ' || strchr(RESERVED_NON_WS, *c)) {
+ strbuf_addf(
+ errbuf,
+ _("must escape char in sub-filter-spec: '%c'"),
+ *c);
+ return 1;
+ }
+ c++;
+ }
+
return 0;
}
+static int parse_combine_subfilter(
+ struct list_objects_filter_options *filter_options,
+ struct strbuf *subspec,
+ struct strbuf *errbuf)
+{
+ size_t new_index = filter_options->sub_nr;
+ char *decoded;
+ int result;
+
+ ALLOC_GROW_BY(filter_options->sub, filter_options->sub_nr, 1,
+ filter_options->sub_alloc);
+
+ decoded = url_percent_decode(subspec->buf);
+
+ result = has_reserved_character(subspec, errbuf) ||
+ gently_parse_list_objects_filter(
+ &filter_options->sub[new_index], decoded, errbuf);
+
+ free(decoded);
+ return result;
+}
+
+static int parse_combine_filter(
+ struct list_objects_filter_options *filter_options,
+ const char *arg,
+ struct strbuf *errbuf)
+{
+ struct strbuf **subspecs = strbuf_split_str(arg, '+', 0);
+ size_t sub;
+ int result = 0;
+
+ if (!subspecs[0]) {
+ strbuf_addstr(errbuf, _("expected something after combine:"));
+ result = 1;
+ goto cleanup;
+ }
+
+ for (sub = 0; subspecs[sub] && !result; sub++) {
+ if (subspecs[sub + 1]) {
+ /*
+ * This is not the last subspec. Remove trailing "+" so
+ * we can parse it.
+ */
+ size_t last = subspecs[sub]->len - 1;
+ assert(subspecs[sub]->buf[last] == '+');
+ strbuf_remove(subspecs[sub], last, 1);
+ }
+ result = parse_combine_subfilter(
+ filter_options, subspecs[sub], errbuf);
+ }
+
+ filter_options->choice = LOFC_COMBINE;
+
+cleanup:
+ strbuf_list_free(subspecs);
+ if (result) {
+ list_objects_filter_release(filter_options);
+ memset(filter_options, 0, sizeof(*filter_options));
+ }
+ return result;
+}
+
+static int allow_unencoded(char ch)
+{
+ if (ch <= ' ' || ch == '%' || ch == '+')
+ return 0;
+ return !strchr(RESERVED_NON_WS, ch);
+}
+
+static void filter_spec_append_urlencode(
+ struct list_objects_filter_options *filter, const char *raw)
+{
+ struct strbuf buf = STRBUF_INIT;
+ strbuf_addstr_urlencode(&buf, raw, allow_unencoded);
+ trace_printf("Add to combine filter-spec: %s\n", buf.buf);
+ string_list_append(&filter->filter_spec, strbuf_detach(&buf, NULL));
+}
+
+/*
+ * Changes filter_options into an equivalent LOFC_COMBINE filter options
+ * instance. Does not do anything if filter_options is already LOFC_COMBINE.
+ */
+static void transform_to_combine_type(
+ struct list_objects_filter_options *filter_options)
+{
+ assert(filter_options->choice);
+ if (filter_options->choice == LOFC_COMBINE)
+ return;
+ {
+ const int initial_sub_alloc = 2;
+ struct list_objects_filter_options *sub_array =
+ xcalloc(initial_sub_alloc, sizeof(*sub_array));
+ sub_array[0] = *filter_options;
+ memset(filter_options, 0, sizeof(*filter_options));
+ filter_options->sub = sub_array;
+ filter_options->sub_alloc = initial_sub_alloc;
+ }
+ filter_options->sub_nr = 1;
+ filter_options->choice = LOFC_COMBINE;
+ string_list_append(&filter_options->filter_spec, xstrdup("combine:"));
+ filter_spec_append_urlencode(
+ filter_options,
+ list_objects_filter_spec(&filter_options->sub[0]));
+ /*
+ * We don't need the filter_spec strings for subfilter specs, only the
+ * top level.
+ */
+ string_list_clear(&filter_options->sub[0].filter_spec, /*free_util=*/0);
+}
+
+void list_objects_filter_die_if_populated(
+ struct list_objects_filter_options *filter_options)
+{
+ if (filter_options->choice)
+ die(_("multiple filter-specs cannot be combined"));
+}
+
+void parse_list_objects_filter(
+ struct list_objects_filter_options *filter_options,
+ const char *arg)
+{
+ struct strbuf errbuf = STRBUF_INIT;
+ int parse_error;
+
+ if (!filter_options->choice) {
+ string_list_append(&filter_options->filter_spec, xstrdup(arg));
+
+ parse_error = gently_parse_list_objects_filter(
+ filter_options, arg, &errbuf);
+ } else {
+ /*
+ * Make filter_options an LOFC_COMBINE spec so we can trivially
+ * add subspecs to it.
+ */
+ transform_to_combine_type(filter_options);
+
+ string_list_append(&filter_options->filter_spec, xstrdup("+"));
+ filter_spec_append_urlencode(filter_options, arg);
+ ALLOC_GROW_BY(filter_options->sub, filter_options->sub_nr, 1,
+ filter_options->sub_alloc);
+
+ parse_error = gently_parse_list_objects_filter(
+ &filter_options->sub[filter_options->sub_nr - 1], arg,
+ &errbuf);
+ }
+ if (parse_error)
+ die("%s", errbuf.buf);
+}
+
int opt_parse_list_objects_filter(const struct option *opt,
const char *arg, int unset)
{
struct list_objects_filter_options *filter_options = opt->value;
- if (unset || !arg) {
+ if (unset || !arg)
list_objects_filter_set_no_filter(filter_options);
- return 0;
+ else
+ parse_list_objects_filter(filter_options, arg);
+ return 0;
+}
+
+const char *list_objects_filter_spec(struct list_objects_filter_options *filter)
+{
+ if (!filter->filter_spec.nr)
+ BUG("no filter_spec available for this filter");
+ if (filter->filter_spec.nr != 1) {
+ struct strbuf concatted = STRBUF_INIT;
+ strbuf_add_separated_string_list(
+ &concatted, "", &filter->filter_spec);
+ string_list_clear(&filter->filter_spec, /*free_util=*/0);
+ string_list_append(
+ &filter->filter_spec, strbuf_detach(&concatted, NULL));
}
- return parse_list_objects_filter(filter_options, arg);
+ return filter->filter_spec.items[0].string;
}
-void expand_list_objects_filter_spec(
- const struct list_objects_filter_options *filter,
- struct strbuf *expanded_spec)
+const char *expand_list_objects_filter_spec(
+ struct list_objects_filter_options *filter)
{
- strbuf_init(expanded_spec, strlen(filter->filter_spec));
- if (filter->choice == LOFC_BLOB_LIMIT)
- strbuf_addf(expanded_spec, "blob:limit=%lu",
+ if (filter->choice == LOFC_BLOB_LIMIT) {
+ struct strbuf expanded_spec = STRBUF_INIT;
+ strbuf_addf(&expanded_spec, "blob:limit=%lu",
filter->blob_limit_value);
- else if (filter->choice == LOFC_TREE_DEPTH)
- strbuf_addf(expanded_spec, "tree:%lu",
- filter->tree_exclude_depth);
- else
- strbuf_addstr(expanded_spec, filter->filter_spec);
+ string_list_clear(&filter->filter_spec, /*free_util=*/0);
+ string_list_append(
+ &filter->filter_spec,
+ strbuf_detach(&expanded_spec, NULL));
+ }
+
+ return list_objects_filter_spec(filter);
}
void list_objects_filter_release(
struct list_objects_filter_options *filter_options)
{
- free(filter_options->filter_spec);
- free(filter_options->sparse_oid_value);
+ size_t sub;
+
+ if (!filter_options)
+ return;
+ string_list_clear(&filter_options->filter_spec, /*free_util=*/0);
+ free(filter_options->sparse_oid_name);
+ for (sub = 0; sub < filter_options->sub_nr; sub++)
+ list_objects_filter_release(&filter_options->sub[sub]);
+ free(filter_options->sub);
memset(filter_options, 0, sizeof(*filter_options));
}
void partial_clone_register(
const char *remote,
- const struct list_objects_filter_options *filter_options)
+ struct list_objects_filter_options *filter_options)
{
- /*
- * Record the name of the partial clone remote in the
- * config and in the global variable -- the latter is
- * used throughout to indicate that partial clone is
- * enabled and to expect missing objects.
- */
- if (repository_format_partial_clone &&
- *repository_format_partial_clone &&
- strcmp(remote, repository_format_partial_clone))
- die(_("cannot change partial clone promisor remote"));
+ char *cfg_name;
+ char *filter_name;
- git_config_set("core.repositoryformatversion", "1");
- git_config_set("extensions.partialclone", remote);
+ /* Check if it is already registered */
+ if (!promisor_remote_find(remote)) {
+ git_config_set("core.repositoryformatversion", "1");
- repository_format_partial_clone = xstrdup(remote);
+ /* Add promisor config for the remote */
+ cfg_name = xstrfmt("remote.%s.promisor", remote);
+ git_config_set(cfg_name, "true");
+ free(cfg_name);
+ }
/*
* Record the initial filter-spec in the config as
* the default for subsequent fetches from this remote.
*/
- core_partial_clone_filter_default =
- xstrdup(filter_options->filter_spec);
- git_config_set("core.partialclonefilter",
- core_partial_clone_filter_default);
+ filter_name = xstrfmt("remote.%s.partialclonefilter", remote);
+ /* NEEDSWORK: 'expand' result leaking??? */
+ git_config_set(filter_name,
+ expand_list_objects_filter_spec(filter_options));
+ free(filter_name);
+
+ /* Make sure the config info are reset */
+ promisor_remote_reinit();
}
void partial_clone_get_default_filter_spec(
- struct list_objects_filter_options *filter_options)
+ struct list_objects_filter_options *filter_options,
+ const char *remote)
{
+ struct promisor_remote *promisor = promisor_remote_find(remote);
+ struct strbuf errbuf = STRBUF_INIT;
+
/*
* Parse default value, but silently ignore it if it is invalid.
*/
- if (!core_partial_clone_filter_default)
+ if (!promisor)
return;
+
+ string_list_append(&filter_options->filter_spec,
+ promisor->partial_clone_filter);
gently_parse_list_objects_filter(filter_options,
- core_partial_clone_filter_default,
- NULL);
+ promisor->partial_clone_filter,
+ &errbuf);
+ strbuf_release(&errbuf);
}
diff --git a/list-objects-filter-options.h b/list-objects-filter-options.h
index c54f000..2ffb392 100644
--- a/list-objects-filter-options.h
+++ b/list-objects-filter-options.h
@@ -2,7 +2,7 @@
#define LIST_OBJECTS_FILTER_OPTIONS_H
#include "parse-options.h"
-#include "strbuf.h"
+#include "string-list.h"
/*
* The list of defined filters for list-objects.
@@ -13,6 +13,7 @@ enum list_objects_filter_choice {
LOFC_BLOB_LIMIT,
LOFC_TREE_DEPTH,
LOFC_SPARSE_OID,
+ LOFC_COMBINE,
LOFC__COUNT /* must be last */
};
@@ -23,8 +24,10 @@ struct list_objects_filter_options {
* commands that launch filtering sub-processes, or for communication
* over the network, don't use this value; use the result of
* expand_list_objects_filter_spec() instead.
+ * To get the raw filter spec given by the user, use the result of
+ * list_objects_filter_spec().
*/
- char *filter_spec;
+ struct string_list filter_spec;
/*
* 'choice' is determined by parsing the filter-spec. This indicates
@@ -38,19 +41,40 @@ struct list_objects_filter_options {
unsigned int no_filter : 1;
/*
- * Parsed values (fields) from within the filter-spec. These are
- * choice-specific; not all values will be defined for any given
- * choice.
+ * BEGIN choice-specific parsed values from within the filter-spec. Only
+ * some values will be defined for any given choice.
*/
- struct object_id *sparse_oid_value;
+
+ char *sparse_oid_name;
unsigned long blob_limit_value;
unsigned long tree_exclude_depth;
+
+ /* LOFC_COMBINE values */
+
+ /* This array contains all the subfilters which this filter combines. */
+ size_t sub_nr, sub_alloc;
+ struct list_objects_filter_options *sub;
+
+ /*
+ * END choice-specific parsed values.
+ */
};
/* Normalized command line arguments */
#define CL_ARG__FILTER "filter"
-int parse_list_objects_filter(
+void list_objects_filter_die_if_populated(
+ struct list_objects_filter_options *filter_options);
+
+/*
+ * Parses the filter spec string given by arg and either (1) simply places the
+ * result in filter_options if it is not yet populated or (2) combines it with
+ * the filter already in filter_options if it is already populated. In the case
+ * of (2), the filter specs are combined as if specified with 'combine:'.
+ *
+ * Dies and prints a user-facing message if an error occurs.
+ */
+void parse_list_objects_filter(
struct list_objects_filter_options *filter_options,
const char *arg);
@@ -65,13 +89,22 @@ int opt_parse_list_objects_filter(const struct option *opt,
/*
* Translates abbreviated numbers in the filter's filter_spec into their
* fully-expanded forms (e.g., "limit:blob=1k" becomes "limit:blob=1024").
+ * Returns a string owned by the list_objects_filter_options object.
*
- * This form should be used instead of the raw filter_spec field when
- * communicating with a remote process or subprocess.
+ * This form should be used instead of the raw list_objects_filter_spec()
+ * value when communicating with a remote process or subprocess.
+ */
+const char *expand_list_objects_filter_spec(
+ struct list_objects_filter_options *filter);
+
+/*
+ * Returns the filter spec string more or less in the form as the user
+ * entered it. This form of the filter_spec can be used in user-facing
+ * messages. Returns a string owned by the list_objects_filter_options
+ * object.
*/
-void expand_list_objects_filter_spec(
- const struct list_objects_filter_options *filter,
- struct strbuf *expanded_spec);
+const char *list_objects_filter_spec(
+ struct list_objects_filter_options *filter);
void list_objects_filter_release(
struct list_objects_filter_options *filter_options);
@@ -85,8 +118,9 @@ static inline void list_objects_filter_set_no_filter(
void partial_clone_register(
const char *remote,
- const struct list_objects_filter_options *filter_options);
-void partial_clone_get_default_filter_spec(
struct list_objects_filter_options *filter_options);
+void partial_clone_get_default_filter_spec(
+ struct list_objects_filter_options *filter_options,
+ const char *remote);
#endif /* LIST_OBJECTS_FILTER_OPTIONS_H */
diff --git a/list-objects-filter.c b/list-objects-filter.c
index 36e1f77..1e8d4e7 100644
--- a/list-objects-filter.c
+++ b/list-objects-filter.c
@@ -26,11 +26,46 @@
*/
#define FILTER_SHOWN_BUT_REVISIT (1<<21)
-/*
- * A filter for list-objects to omit ALL blobs from the traversal.
- * And to OPTIONALLY collect a list of the omitted OIDs.
- */
-struct filter_blobs_none_data {
+struct subfilter {
+ struct filter *filter;
+ struct oidset seen;
+ struct oidset omits;
+ struct object_id skip_tree;
+ unsigned is_skipping_tree : 1;
+};
+
+struct filter {
+ enum list_objects_filter_result (*filter_object_fn)(
+ struct repository *r,
+ enum list_objects_filter_situation filter_situation,
+ struct object *obj,
+ const char *pathname,
+ const char *filename,
+ struct oidset *omits,
+ void *filter_data);
+
+ /*
+ * Optional. If this function is supplied and the filter needs
+ * to collect omits, then this function is called once before
+ * free_fn is called.
+ *
+ * This is required because the following two conditions hold:
+ *
+ * a. A tree filter can add and remove objects as an object
+ * graph is traversed.
+ * b. A combine filter's omit set is the union of all its
+ * subfilters, which may include tree: filters.
+ *
+ * As such, the omits sets must be separate sets, and can only
+ * be unioned after the traversal is completed.
+ */
+ void (*finalize_omits_fn)(struct oidset *omits, void *filter_data);
+
+ void (*free_fn)(void *filter_data);
+
+ void *filter_data;
+
+ /* If non-NULL, the filter collects a list of the omitted OIDs here. */
struct oidset *omits;
};
@@ -40,10 +75,9 @@ static enum list_objects_filter_result filter_blobs_none(
struct object *obj,
const char *pathname,
const char *filename,
+ struct oidset *omits,
void *filter_data_)
{
- struct filter_blobs_none_data *filter_data = filter_data_;
-
switch (filter_situation) {
default:
BUG("unknown filter_situation: %d", filter_situation);
@@ -61,24 +95,18 @@ static enum list_objects_filter_result filter_blobs_none(
assert(obj->type == OBJ_BLOB);
assert((obj->flags & SEEN) == 0);
- if (filter_data->omits)
- oidset_insert(filter_data->omits, &obj->oid);
+ if (omits)
+ oidset_insert(omits, &obj->oid);
return LOFR_MARK_SEEN; /* but not LOFR_DO_SHOW (hard omit) */
}
}
-static void *filter_blobs_none__init(
- struct oidset *omitted,
+static void filter_blobs_none__init(
struct list_objects_filter_options *filter_options,
- filter_object_fn *filter_fn,
- filter_free_fn *filter_free_fn)
+ struct filter *filter)
{
- struct filter_blobs_none_data *d = xcalloc(1, sizeof(*d));
- d->omits = omitted;
-
- *filter_fn = filter_blobs_none;
- *filter_free_fn = free;
- return d;
+ filter->filter_object_fn = filter_blobs_none;
+ filter->free_fn = free;
}
/*
@@ -86,8 +114,6 @@ static void *filter_blobs_none__init(
* Can OPTIONALLY collect a list of the omitted OIDs.
*/
struct filter_trees_depth_data {
- struct oidset *omits;
-
/*
* Maps trees to the minimum depth at which they were seen. It is not
* necessary to re-traverse a tree at deeper or equal depths than it has
@@ -110,16 +136,16 @@ struct seen_map_entry {
/* Returns 1 if the oid was in the omits set before it was invoked. */
static int filter_trees_update_omits(
struct object *obj,
- struct filter_trees_depth_data *filter_data,
+ struct oidset *omits,
int include_it)
{
- if (!filter_data->omits)
+ if (!omits)
return 0;
if (include_it)
- return oidset_remove(filter_data->omits, &obj->oid);
+ return oidset_remove(omits, &obj->oid);
else
- return oidset_insert(filter_data->omits, &obj->oid);
+ return oidset_insert(omits, &obj->oid);
}
static enum list_objects_filter_result filter_trees_depth(
@@ -128,6 +154,7 @@ static enum list_objects_filter_result filter_trees_depth(
struct object *obj,
const char *pathname,
const char *filename,
+ struct oidset *omits,
void *filter_data_)
{
struct filter_trees_depth_data *filter_data = filter_data_;
@@ -152,7 +179,7 @@ static enum list_objects_filter_result filter_trees_depth(
return LOFR_ZERO;
case LOFS_BLOB:
- filter_trees_update_omits(obj, filter_data, include_it);
+ filter_trees_update_omits(obj, omits, include_it);
return include_it ? LOFR_MARK_SEEN | LOFR_DO_SHOW : LOFR_ZERO;
case LOFS_BEGIN_TREE:
@@ -173,12 +200,12 @@ static enum list_objects_filter_result filter_trees_depth(
filter_res = LOFR_SKIP_TREE;
} else {
int been_omitted = filter_trees_update_omits(
- obj, filter_data, include_it);
+ obj, omits, include_it);
seen_info->depth = filter_data->current_depth;
if (include_it)
filter_res = LOFR_DO_SHOW;
- else if (filter_data->omits && !been_omitted)
+ else if (omits && !been_omitted)
/*
* Must update omit information of children
* recursively; they have not been omitted yet.
@@ -201,21 +228,18 @@ static void filter_trees_free(void *filter_data) {
free(d);
}
-static void *filter_trees_depth__init(
- struct oidset *omitted,
+static void filter_trees_depth__init(
struct list_objects_filter_options *filter_options,
- filter_object_fn *filter_fn,
- filter_free_fn *filter_free_fn)
+ struct filter *filter)
{
struct filter_trees_depth_data *d = xcalloc(1, sizeof(*d));
- d->omits = omitted;
oidmap_init(&d->seen_at_depth, 0);
d->exclude_depth = filter_options->tree_exclude_depth;
d->current_depth = 0;
- *filter_fn = filter_trees_depth;
- *filter_free_fn = filter_trees_free;
- return d;
+ filter->filter_data = d;
+ filter->filter_object_fn = filter_trees_depth;
+ filter->free_fn = filter_trees_free;
}
/*
@@ -223,7 +247,6 @@ static void *filter_trees_depth__init(
* And to OPTIONALLY collect a list of the omitted OIDs.
*/
struct filter_blobs_limit_data {
- struct oidset *omits;
unsigned long max_bytes;
};
@@ -233,6 +256,7 @@ static enum list_objects_filter_result filter_blobs_limit(
struct object *obj,
const char *pathname,
const char *filename,
+ struct oidset *omits,
void *filter_data_)
{
struct filter_blobs_limit_data *filter_data = filter_data_;
@@ -270,30 +294,27 @@ static enum list_objects_filter_result filter_blobs_limit(
if (object_length < filter_data->max_bytes)
goto include_it;
- if (filter_data->omits)
- oidset_insert(filter_data->omits, &obj->oid);
+ if (omits)
+ oidset_insert(omits, &obj->oid);
return LOFR_MARK_SEEN; /* but not LOFR_DO_SHOW (hard omit) */
}
include_it:
- if (filter_data->omits)
- oidset_remove(filter_data->omits, &obj->oid);
+ if (omits)
+ oidset_remove(omits, &obj->oid);
return LOFR_MARK_SEEN | LOFR_DO_SHOW;
}
-static void *filter_blobs_limit__init(
- struct oidset *omitted,
+static void filter_blobs_limit__init(
struct list_objects_filter_options *filter_options,
- filter_object_fn *filter_fn,
- filter_free_fn *filter_free_fn)
+ struct filter *filter)
{
struct filter_blobs_limit_data *d = xcalloc(1, sizeof(*d));
- d->omits = omitted;
d->max_bytes = filter_options->blob_limit_value;
- *filter_fn = filter_blobs_limit;
- *filter_free_fn = free;
- return d;
+ filter->filter_data = d;
+ filter->filter_object_fn = filter_blobs_limit;
+ filter->free_fn = free;
}
/*
@@ -307,12 +328,12 @@ static void *filter_blobs_limit__init(
*/
struct frame {
/*
- * defval is the usual default include/exclude value that
+ * default_match is the usual default include/exclude value that
* should be inherited as we recurse into directories based
* upon pattern matching of the directory itself or of a
* containing directory.
*/
- int defval;
+ enum pattern_match_result default_match;
/*
* 1 if the directory (recursively) contains any provisionally
@@ -326,8 +347,7 @@ struct frame {
};
struct filter_sparse_data {
- struct oidset *omits;
- struct exclude_list el;
+ struct pattern_list pl;
size_t nr, alloc;
struct frame *array_frame;
@@ -339,11 +359,13 @@ static enum list_objects_filter_result filter_sparse(
struct object *obj,
const char *pathname,
const char *filename,
+ struct oidset *omits,
void *filter_data_)
{
struct filter_sparse_data *filter_data = filter_data_;
- int val, dtype;
+ int dtype;
struct frame *frame;
+ enum pattern_match_result match;
switch (filter_situation) {
default:
@@ -352,15 +374,15 @@ static enum list_objects_filter_result filter_sparse(
case LOFS_BEGIN_TREE:
assert(obj->type == OBJ_TREE);
dtype = DT_DIR;
- val = is_excluded_from_list(pathname, strlen(pathname),
- filename, &dtype, &filter_data->el,
- r->index);
- if (val < 0)
- val = filter_data->array_frame[filter_data->nr - 1].defval;
+ match = path_matches_pattern_list(pathname, strlen(pathname),
+ filename, &dtype, &filter_data->pl,
+ r->index);
+ if (match == UNDECIDED)
+ match = filter_data->array_frame[filter_data->nr - 1].default_match;
ALLOC_GROW(filter_data->array_frame, filter_data->nr + 1,
filter_data->alloc);
- filter_data->array_frame[filter_data->nr].defval = val;
+ filter_data->array_frame[filter_data->nr].default_match = match;
filter_data->array_frame[filter_data->nr].child_prov_omit = 0;
filter_data->nr++;
@@ -414,14 +436,14 @@ static enum list_objects_filter_result filter_sparse(
frame = &filter_data->array_frame[filter_data->nr - 1];
dtype = DT_REG;
- val = is_excluded_from_list(pathname, strlen(pathname),
- filename, &dtype, &filter_data->el,
+ match = path_matches_pattern_list(pathname, strlen(pathname),
+ filename, &dtype, &filter_data->pl,
r->index);
- if (val < 0)
- val = frame->defval;
- if (val > 0) {
- if (filter_data->omits)
- oidset_remove(filter_data->omits, &obj->oid);
+ if (match == UNDECIDED)
+ match = frame->default_match;
+ if (match == MATCHED) {
+ if (omits)
+ oidset_remove(omits, &obj->oid);
return LOFR_MARK_SEEN | LOFR_DO_SHOW;
}
@@ -435,8 +457,8 @@ static enum list_objects_filter_result filter_sparse(
* Leave the LOFR_ bits unset so that if the blob appears
* again in the traversal, we will be asked again.
*/
- if (filter_data->omits)
- oidset_insert(filter_data->omits, &obj->oid);
+ if (omits)
+ oidset_insert(omits, &obj->oid);
/*
* Remember that at least 1 blob in this tree was
@@ -456,33 +478,169 @@ static void filter_sparse_free(void *filter_data)
free(d);
}
-static void *filter_sparse_oid__init(
- struct oidset *omitted,
+static void filter_sparse_oid__init(
struct list_objects_filter_options *filter_options,
- filter_object_fn *filter_fn,
- filter_free_fn *filter_free_fn)
+ struct filter *filter)
{
struct filter_sparse_data *d = xcalloc(1, sizeof(*d));
- d->omits = omitted;
- if (add_excludes_from_blob_to_list(filter_options->sparse_oid_value,
- NULL, 0, &d->el) < 0)
- die("could not load filter specification");
+ struct object_context oc;
+ struct object_id sparse_oid;
+
+ if (get_oid_with_context(the_repository,
+ filter_options->sparse_oid_name,
+ GET_OID_BLOB, &sparse_oid, &oc))
+ die(_("unable to access sparse blob in '%s'"),
+ filter_options->sparse_oid_name);
+ if (add_patterns_from_blob_to_list(&sparse_oid, "", 0, &d->pl) < 0)
+ die(_("unable to parse sparse filter data in %s"),
+ oid_to_hex(&sparse_oid));
ALLOC_GROW(d->array_frame, d->nr + 1, d->alloc);
- d->array_frame[d->nr].defval = 0; /* default to include */
+ d->array_frame[d->nr].default_match = 0; /* default to include */
d->array_frame[d->nr].child_prov_omit = 0;
d->nr++;
- *filter_fn = filter_sparse;
- *filter_free_fn = filter_sparse_free;
- return d;
+ filter->filter_data = d;
+ filter->filter_object_fn = filter_sparse;
+ filter->free_fn = filter_sparse_free;
}
-typedef void *(*filter_init_fn)(
- struct oidset *omitted,
+/* A filter which only shows objects shown by all sub-filters. */
+struct combine_filter_data {
+ struct subfilter *sub;
+ size_t nr;
+};
+
+static enum list_objects_filter_result process_subfilter(
+ struct repository *r,
+ enum list_objects_filter_situation filter_situation,
+ struct object *obj,
+ const char *pathname,
+ const char *filename,
+ struct subfilter *sub)
+{
+ enum list_objects_filter_result result;
+
+ /*
+ * Check and update is_skipping_tree before oidset_contains so
+ * that is_skipping_tree gets unset even when the object is
+ * marked as seen. As of this writing, no filter uses
+ * LOFR_MARK_SEEN on trees that also uses LOFR_SKIP_TREE, so the
+ * ordering is only theoretically important. Be cautious if you
+ * change the order of the below checks and more filters have
+ * been added!
+ */
+ if (sub->is_skipping_tree) {
+ if (filter_situation == LOFS_END_TREE &&
+ oideq(&obj->oid, &sub->skip_tree))
+ sub->is_skipping_tree = 0;
+ else
+ return LOFR_ZERO;
+ }
+ if (oidset_contains(&sub->seen, &obj->oid))
+ return LOFR_ZERO;
+
+ result = list_objects_filter__filter_object(
+ r, filter_situation, obj, pathname, filename, sub->filter);
+
+ if (result & LOFR_MARK_SEEN)
+ oidset_insert(&sub->seen, &obj->oid);
+
+ if (result & LOFR_SKIP_TREE) {
+ sub->is_skipping_tree = 1;
+ sub->skip_tree = obj->oid;
+ }
+
+ return result;
+}
+
+static enum list_objects_filter_result filter_combine(
+ struct repository *r,
+ enum list_objects_filter_situation filter_situation,
+ struct object *obj,
+ const char *pathname,
+ const char *filename,
+ struct oidset *omits,
+ void *filter_data)
+{
+ struct combine_filter_data *d = filter_data;
+ enum list_objects_filter_result combined_result =
+ LOFR_DO_SHOW | LOFR_MARK_SEEN | LOFR_SKIP_TREE;
+ size_t sub;
+
+ for (sub = 0; sub < d->nr; sub++) {
+ enum list_objects_filter_result sub_result = process_subfilter(
+ r, filter_situation, obj, pathname, filename,
+ &d->sub[sub]);
+ if (!(sub_result & LOFR_DO_SHOW))
+ combined_result &= ~LOFR_DO_SHOW;
+ if (!(sub_result & LOFR_MARK_SEEN))
+ combined_result &= ~LOFR_MARK_SEEN;
+ if (!d->sub[sub].is_skipping_tree)
+ combined_result &= ~LOFR_SKIP_TREE;
+ }
+
+ return combined_result;
+}
+
+static void filter_combine__free(void *filter_data)
+{
+ struct combine_filter_data *d = filter_data;
+ size_t sub;
+ for (sub = 0; sub < d->nr; sub++) {
+ list_objects_filter__free(d->sub[sub].filter);
+ oidset_clear(&d->sub[sub].seen);
+ if (d->sub[sub].omits.set.size)
+ BUG("expected oidset to be cleared already");
+ }
+ free(d->sub);
+}
+
+static void add_all(struct oidset *dest, struct oidset *src) {
+ struct oidset_iter iter;
+ struct object_id *src_oid;
+
+ oidset_iter_init(src, &iter);
+ while ((src_oid = oidset_iter_next(&iter)) != NULL)
+ oidset_insert(dest, src_oid);
+}
+
+static void filter_combine__finalize_omits(
+ struct oidset *omits,
+ void *filter_data)
+{
+ struct combine_filter_data *d = filter_data;
+ size_t sub;
+
+ for (sub = 0; sub < d->nr; sub++) {
+ add_all(omits, &d->sub[sub].omits);
+ oidset_clear(&d->sub[sub].omits);
+ }
+}
+
+static void filter_combine__init(
struct list_objects_filter_options *filter_options,
- filter_object_fn *filter_fn,
- filter_free_fn *filter_free_fn);
+ struct filter* filter)
+{
+ struct combine_filter_data *d = xcalloc(1, sizeof(*d));
+ size_t sub;
+
+ d->nr = filter_options->sub_nr;
+ d->sub = xcalloc(d->nr, sizeof(*d->sub));
+ for (sub = 0; sub < d->nr; sub++)
+ d->sub[sub].filter = list_objects_filter__init(
+ filter->omits ? &d->sub[sub].omits : NULL,
+ &filter_options->sub[sub]);
+
+ filter->filter_data = d;
+ filter->filter_object_fn = filter_combine;
+ filter->free_fn = filter_combine__free;
+ filter->finalize_omits_fn = filter_combine__finalize_omits;
+}
+
+typedef void (*filter_init_fn)(
+ struct list_objects_filter_options *filter_options,
+ struct filter *filter);
/*
* Must match "enum list_objects_filter_choice".
@@ -493,14 +651,14 @@ static filter_init_fn s_filters[] = {
filter_blobs_limit__init,
filter_trees_depth__init,
filter_sparse_oid__init,
+ filter_combine__init,
};
-void *list_objects_filter__init(
+struct filter *list_objects_filter__init(
struct oidset *omitted,
- struct list_objects_filter_options *filter_options,
- filter_object_fn *filter_fn,
- filter_free_fn *filter_free_fn)
+ struct list_objects_filter_options *filter_options)
{
+ struct filter *filter;
filter_init_fn init_fn;
assert((sizeof(s_filters) / sizeof(s_filters[0])) == LOFC__COUNT);
@@ -510,10 +668,44 @@ void *list_objects_filter__init(
filter_options->choice);
init_fn = s_filters[filter_options->choice];
- if (init_fn)
- return init_fn(omitted, filter_options,
- filter_fn, filter_free_fn);
- *filter_fn = NULL;
- *filter_free_fn = NULL;
- return NULL;
+ if (!init_fn)
+ return NULL;
+
+ filter = xcalloc(1, sizeof(*filter));
+ filter->omits = omitted;
+ init_fn(filter_options, filter);
+ return filter;
+}
+
+enum list_objects_filter_result list_objects_filter__filter_object(
+ struct repository *r,
+ enum list_objects_filter_situation filter_situation,
+ struct object *obj,
+ const char *pathname,
+ const char *filename,
+ struct filter *filter)
+{
+ if (filter && (obj->flags & NOT_USER_GIVEN))
+ return filter->filter_object_fn(r, filter_situation, obj,
+ pathname, filename,
+ filter->omits,
+ filter->filter_data);
+ /*
+ * No filter is active or user gave object explicitly. In this case,
+ * always show the object (except when LOFS_END_TREE, since this tree
+ * had already been shown when LOFS_BEGIN_TREE).
+ */
+ if (filter_situation == LOFS_END_TREE)
+ return 0;
+ return LOFR_MARK_SEEN | LOFR_DO_SHOW;
+}
+
+void list_objects_filter__free(struct filter *filter)
+{
+ if (!filter)
+ return;
+ if (filter->finalize_omits_fn && filter->omits)
+ filter->finalize_omits_fn(filter->omits, filter->filter_data);
+ filter->free_fn(filter->filter_data);
+ free(filter);
}
diff --git a/list-objects-filter.h b/list-objects-filter.h
index 1d45a4a..cfd784e 100644
--- a/list-objects-filter.h
+++ b/list-objects-filter.h
@@ -60,30 +60,36 @@ enum list_objects_filter_situation {
LOFS_BLOB
};
-typedef enum list_objects_filter_result (*filter_object_fn)(
+struct filter;
+
+/*
+ * Constructor for the set of defined list-objects filters.
+ * The `omitted` set is optional. It is populated with objects that the
+ * filter excludes. This set should not be considered finalized until
+ * after list_objects_filter__free is called on the returned `struct
+ * filter *`.
+ */
+struct filter *list_objects_filter__init(
+ struct oidset *omitted,
+ struct list_objects_filter_options *filter_options);
+
+/*
+ * Lets `filter` decide how to handle the `obj`. If `filter` is NULL, this
+ * function behaves as expected if no filter is configured: all objects are
+ * included.
+ */
+enum list_objects_filter_result list_objects_filter__filter_object(
struct repository *r,
enum list_objects_filter_situation filter_situation,
struct object *obj,
const char *pathname,
const char *filename,
- void *filter_data);
-
-typedef void (*filter_free_fn)(void *filter_data);
+ struct filter *filter);
/*
- * Constructor for the set of defined list-objects filters.
- * Returns a generic "void *filter_data".
- *
- * The returned "filter_fn" will be used by traverse_commit_list()
- * to filter the results.
- *
- * The returned "filter_free_fn" is a destructor for the
- * filter_data.
+ * Destroys `filter` and finalizes the `omitted` set, if present. Does
+ * nothing if `filter` is null.
*/
-void *list_objects_filter__init(
- struct oidset *omitted,
- struct list_objects_filter_options *filter_options,
- filter_object_fn *filter_fn,
- filter_free_fn *filter_free_fn);
+void list_objects_filter__free(struct filter *filter);
#endif /* LIST_OBJECTS_FILTER_H */
diff --git a/list-objects.c b/list-objects.c
index b5651dd..e19589b 100644
--- a/list-objects.c
+++ b/list-objects.c
@@ -18,8 +18,7 @@ struct traversal_context {
show_object_fn show_object;
show_commit_fn show_commit;
void *show_data;
- filter_object_fn filter_fn;
- void *filter_data;
+ struct filter *filter;
};
static void process_blob(struct traversal_context *ctx,
@@ -29,7 +28,7 @@ static void process_blob(struct traversal_context *ctx,
{
struct object *obj = &blob->object;
size_t pathlen;
- enum list_objects_filter_result r = LOFR_MARK_SEEN | LOFR_DO_SHOW;
+ enum list_objects_filter_result r;
if (!ctx->revs->blob_objects)
return;
@@ -54,11 +53,10 @@ static void process_blob(struct traversal_context *ctx,
pathlen = path->len;
strbuf_addstr(path, name);
- if ((obj->flags & NOT_USER_GIVEN) && ctx->filter_fn)
- r = ctx->filter_fn(ctx->revs->repo,
- LOFS_BLOB, obj,
- path->buf, &path->buf[pathlen],
- ctx->filter_data);
+ r = list_objects_filter__filter_object(ctx->revs->repo,
+ LOFS_BLOB, obj,
+ path->buf, &path->buf[pathlen],
+ ctx->filter);
if (r & LOFR_MARK_SEEN)
obj->flags |= SEEN;
if (r & LOFR_DO_SHOW)
@@ -157,7 +155,7 @@ static void process_tree(struct traversal_context *ctx,
struct object *obj = &tree->object;
struct rev_info *revs = ctx->revs;
int baselen = base->len;
- enum list_objects_filter_result r = LOFR_MARK_SEEN | LOFR_DO_SHOW;
+ enum list_objects_filter_result r;
int failed_parse;
if (!revs->tree_objects)
@@ -186,11 +184,10 @@ static void process_tree(struct traversal_context *ctx,
}
strbuf_addstr(base, name);
- if ((obj->flags & NOT_USER_GIVEN) && ctx->filter_fn)
- r = ctx->filter_fn(ctx->revs->repo,
- LOFS_BEGIN_TREE, obj,
- base->buf, &base->buf[baselen],
- ctx->filter_data);
+ r = list_objects_filter__filter_object(ctx->revs->repo,
+ LOFS_BEGIN_TREE, obj,
+ base->buf, &base->buf[baselen],
+ ctx->filter);
if (r & LOFR_MARK_SEEN)
obj->flags |= SEEN;
if (r & LOFR_DO_SHOW)
@@ -203,16 +200,14 @@ static void process_tree(struct traversal_context *ctx,
else if (!failed_parse)
process_tree_contents(ctx, tree, base);
- if ((obj->flags & NOT_USER_GIVEN) && ctx->filter_fn) {
- r = ctx->filter_fn(ctx->revs->repo,
- LOFS_END_TREE, obj,
- base->buf, &base->buf[baselen],
- ctx->filter_data);
- if (r & LOFR_MARK_SEEN)
- obj->flags |= SEEN;
- if (r & LOFR_DO_SHOW)
- ctx->show_object(obj, base->buf, ctx->show_data);
- }
+ r = list_objects_filter__filter_object(ctx->revs->repo,
+ LOFS_END_TREE, obj,
+ base->buf, &base->buf[baselen],
+ ctx->filter);
+ if (r & LOFR_MARK_SEEN)
+ obj->flags |= SEEN;
+ if (r & LOFR_DO_SHOW)
+ ctx->show_object(obj, base->buf, ctx->show_data);
strbuf_setlen(base, baselen);
free_tree_buffer(tree);
@@ -370,7 +365,9 @@ static void do_traverse(struct traversal_context *ctx)
* an uninteresting boundary commit may not have its tree
* parsed yet, but we are not going to show them anyway
*/
- if (get_commit_tree(commit)) {
+ if (!ctx->revs->tree_objects)
+ ; /* do not bother loading tree */
+ else if (get_commit_tree(commit)) {
struct tree *tree = get_commit_tree(commit);
tree->object.flags |= NOT_USER_GIVEN;
add_pending_tree(ctx->revs, tree);
@@ -402,8 +399,7 @@ void traverse_commit_list(struct rev_info *revs,
ctx.show_commit = show_commit;
ctx.show_object = show_object;
ctx.show_data = show_data;
- ctx.filter_fn = NULL;
- ctx.filter_data = NULL;
+ ctx.filter = NULL;
do_traverse(&ctx);
}
@@ -416,17 +412,12 @@ void traverse_commit_list_filtered(
struct oidset *omitted)
{
struct traversal_context ctx;
- filter_free_fn filter_free_fn = NULL;
ctx.revs = revs;
ctx.show_object = show_object;
ctx.show_commit = show_commit;
ctx.show_data = show_data;
- ctx.filter_fn = NULL;
-
- ctx.filter_data = list_objects_filter__init(omitted, filter_options,
- &ctx.filter_fn, &filter_free_fn);
+ ctx.filter = list_objects_filter__init(omitted, filter_options);
do_traverse(&ctx);
- if (ctx.filter_data && filter_free_fn)
- filter_free_fn(ctx.filter_data);
+ list_objects_filter__free(ctx.filter);
}
diff --git a/ll-merge.c b/ll-merge.c
index 5b8d46a..d65a897 100644
--- a/ll-merge.c
+++ b/ll-merge.c
@@ -32,6 +32,20 @@ struct ll_merge_driver {
char *cmdline;
};
+static struct attr_check *merge_attributes;
+static struct attr_check *load_merge_attributes(void)
+{
+ if (!merge_attributes)
+ merge_attributes = attr_check_initl("merge", "conflict-marker-size", NULL);
+ return merge_attributes;
+}
+
+void reset_merge_attributes(void)
+{
+ attr_check_free(merge_attributes);
+ merge_attributes = NULL;
+}
+
/*
* Built-in low-levels
*/
@@ -354,7 +368,7 @@ int ll_merge(mmbuffer_t *result_buf,
struct index_state *istate,
const struct ll_merge_options *opts)
{
- static struct attr_check *check;
+ struct attr_check *check = load_merge_attributes();
static const struct ll_merge_options default_opts;
const char *ll_driver_name = NULL;
int marker_size = DEFAULT_CONFLICT_MARKER_SIZE;
@@ -369,9 +383,6 @@ int ll_merge(mmbuffer_t *result_buf,
normalize_file(theirs, path, istate);
}
- if (!check)
- check = attr_check_initl("merge", "conflict-marker-size", NULL);
-
git_check_attr(istate, path, check);
ll_driver_name = check->items[0].value;
if (check->items[1].value) {
diff --git a/ll-merge.h b/ll-merge.h
index b9e2af1..e78973d 100644
--- a/ll-merge.h
+++ b/ll-merge.h
@@ -26,5 +26,6 @@ int ll_merge(mmbuffer_t *result_buf,
const struct ll_merge_options *opts);
int ll_merge_marker_size(struct index_state *istate, const char *path);
+void reset_merge_attributes(void);
#endif
diff --git a/log-tree.c b/log-tree.c
index 1e56df6..923a299 100644
--- a/log-tree.c
+++ b/log-tree.c
@@ -77,6 +77,7 @@ void add_name_decoration(enum decoration_type type, const char *name, struct obj
const struct name_decoration *get_name_decoration(const struct object *obj)
{
+ load_ref_decorations(NULL, DECORATE_SHORT_REFS);
return lookup_decoration(&name_decoration, obj);
}
@@ -677,9 +678,7 @@ void show_log(struct rev_info *opt)
raw = (opt->commit_format == CMIT_FMT_USERFORMAT);
format_display_notes(&commit->object.oid, &notebuf,
get_log_output_encoding(), raw);
- ctx.notes_message = notebuf.len
- ? strbuf_detach(&notebuf, NULL)
- : xcalloc(1, 1);
+ ctx.notes_message = strbuf_detach(&notebuf, NULL);
}
/*
diff --git a/merge-recursive.c b/merge-recursive.c
index 6b812d6..42be7c9 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -4,30 +4,40 @@
* The thieves were Alex Riesen and Johannes Schindelin, in June/July 2006
*/
#include "cache.h"
-#include "config.h"
+#include "merge-recursive.h"
+
#include "advice.h"
-#include "lockfile.h"
-#include "cache-tree.h"
-#include "object-store.h"
-#include "repository.h"
-#include "commit.h"
+#include "alloc.h"
+#include "attr.h"
#include "blob.h"
#include "builtin.h"
-#include "tree-walk.h"
+#include "cache-tree.h"
+#include "commit.h"
+#include "commit-reach.h"
+#include "config.h"
#include "diff.h"
#include "diffcore.h"
+#include "dir.h"
+#include "ll-merge.h"
+#include "lockfile.h"
+#include "object-store.h"
+#include "repository.h"
+#include "revision.h"
+#include "string-list.h"
+#include "submodule.h"
#include "tag.h"
-#include "alloc.h"
+#include "tree-walk.h"
#include "unpack-trees.h"
-#include "string-list.h"
#include "xdiff-interface.h"
-#include "ll-merge.h"
-#include "attr.h"
-#include "merge-recursive.h"
-#include "dir.h"
-#include "submodule.h"
-#include "revision.h"
-#include "commit-reach.h"
+
+struct merge_options_internal {
+ int call_depth;
+ int needed_rename_limit;
+ struct hashmap current_file_dir_set;
+ struct string_list df_conflict_file_set;
+ struct unpack_trees_options unpack_opts;
+ struct index_state orig_index;
+};
struct path_hashmap_entry {
struct hashmap_entry e;
@@ -35,14 +45,16 @@ struct path_hashmap_entry {
};
static int path_hashmap_cmp(const void *cmp_data,
- const void *entry,
- const void *entry_or_key,
+ const struct hashmap_entry *eptr,
+ const struct hashmap_entry *entry_or_key,
const void *keydata)
{
- const struct path_hashmap_entry *a = entry;
- const struct path_hashmap_entry *b = entry_or_key;
+ const struct path_hashmap_entry *a, *b;
const char *key = keydata;
+ a = container_of(eptr, const struct path_hashmap_entry, e);
+ b = container_of(entry_or_key, const struct path_hashmap_entry, e);
+
if (ignore_case)
return strcasecmp(a->path, key ? key : b->path);
else
@@ -54,6 +66,24 @@ static unsigned int path_hash(const char *path)
return ignore_case ? strihash(path) : strhash(path);
}
+/*
+ * For dir_rename_entry, directory names are stored as a full path from the
+ * toplevel of the repository and do not include a trailing '/'. Also:
+ *
+ * dir: original name of directory being renamed
+ * non_unique_new_dir: if true, could not determine new_dir
+ * new_dir: final name of directory being renamed
+ * possible_new_dirs: temporary used to help determine new_dir; see comments
+ * in get_directory_renames() for details
+ */
+struct dir_rename_entry {
+ struct hashmap_entry ent;
+ char *dir;
+ unsigned non_unique_new_dir:1;
+ struct strbuf new_dir;
+ struct string_list possible_new_dirs;
+};
+
static struct dir_rename_entry *dir_rename_find_entry(struct hashmap *hashmap,
char *dir)
{
@@ -61,18 +91,20 @@ static struct dir_rename_entry *dir_rename_find_entry(struct hashmap *hashmap,
if (dir == NULL)
return NULL;
- hashmap_entry_init(&key, strhash(dir));
+ hashmap_entry_init(&key.ent, strhash(dir));
key.dir = dir;
- return hashmap_get(hashmap, &key, NULL);
+ return hashmap_get_entry(hashmap, &key, ent, NULL);
}
static int dir_rename_cmp(const void *unused_cmp_data,
- const void *entry,
- const void *entry_or_key,
+ const struct hashmap_entry *eptr,
+ const struct hashmap_entry *entry_or_key,
const void *unused_keydata)
{
- const struct dir_rename_entry *e1 = entry;
- const struct dir_rename_entry *e2 = entry_or_key;
+ const struct dir_rename_entry *e1, *e2;
+
+ e1 = container_of(eptr, const struct dir_rename_entry, ent);
+ e2 = container_of(entry_or_key, const struct dir_rename_entry, ent);
return strcmp(e1->dir, e2->dir);
}
@@ -85,34 +117,46 @@ static void dir_rename_init(struct hashmap *map)
static void dir_rename_entry_init(struct dir_rename_entry *entry,
char *directory)
{
- hashmap_entry_init(entry, strhash(directory));
+ hashmap_entry_init(&entry->ent, strhash(directory));
entry->dir = directory;
entry->non_unique_new_dir = 0;
strbuf_init(&entry->new_dir, 0);
string_list_init(&entry->possible_new_dirs, 0);
}
+struct collision_entry {
+ struct hashmap_entry ent;
+ char *target_file;
+ struct string_list source_files;
+ unsigned reported_already:1;
+};
+
static struct collision_entry *collision_find_entry(struct hashmap *hashmap,
char *target_file)
{
struct collision_entry key;
- hashmap_entry_init(&key, strhash(target_file));
+ hashmap_entry_init(&key.ent, strhash(target_file));
key.target_file = target_file;
- return hashmap_get(hashmap, &key, NULL);
+ return hashmap_get_entry(hashmap, &key, ent, NULL);
}
-static int collision_cmp(void *unused_cmp_data,
- const struct collision_entry *e1,
- const struct collision_entry *e2,
+static int collision_cmp(const void *unused_cmp_data,
+ const struct hashmap_entry *eptr,
+ const struct hashmap_entry *entry_or_key,
const void *unused_keydata)
{
+ const struct collision_entry *e1, *e2;
+
+ e1 = container_of(eptr, const struct collision_entry, ent);
+ e2 = container_of(entry_or_key, const struct collision_entry, ent);
+
return strcmp(e1->target_file, e2->target_file);
}
static void collision_init(struct hashmap *map)
{
- hashmap_init(map, (hashmap_cmp_fn) collision_cmp, NULL, 0);
+ hashmap_init(map, collision_cmp, NULL, 0);
}
static void flush_output(struct merge_options *opt)
@@ -284,7 +328,8 @@ static inline void setup_rename_conflict_info(enum rename_type rename_type,
static int show(struct merge_options *opt, int v)
{
- return (!opt->call_depth && opt->verbosity >= v) || opt->verbosity >= 5;
+ return (!opt->priv->call_depth && opt->verbosity >= v) ||
+ opt->verbosity >= 5;
}
__attribute__((format (printf, 3, 4)))
@@ -295,7 +340,7 @@ static void output(struct merge_options *opt, int v, const char *fmt, ...)
if (!show(opt, v))
return;
- strbuf_addchars(&opt->obuf, ' ', opt->call_depth * 2);
+ strbuf_addchars(&opt->obuf, ' ', opt->priv->call_depth * 2);
va_start(ap, fmt);
strbuf_vaddf(&opt->obuf, fmt, ap);
@@ -310,7 +355,7 @@ static void output_commit_title(struct merge_options *opt, struct commit *commit
{
struct merge_remote_desc *desc;
- strbuf_addchars(&opt->obuf, ' ', opt->call_depth * 2);
+ strbuf_addchars(&opt->obuf, ' ', opt->priv->call_depth * 2);
desc = merge_remote_util(commit);
if (desc)
strbuf_addf(&opt->obuf, "virtual %s\n", desc->name);
@@ -358,6 +403,11 @@ static int add_cacheinfo(struct merge_options *opt,
return ret;
}
+static inline int merge_detect_rename(struct merge_options *opt)
+{
+ return (opt->detect_renames >= 0) ? opt->detect_renames : 1;
+}
+
static void init_tree_desc_from_tree(struct tree_desc *desc, struct tree *tree)
{
parse_tree(tree);
@@ -373,74 +423,43 @@ static int unpack_trees_start(struct merge_options *opt,
struct tree_desc t[3];
struct index_state tmp_index = { NULL };
- memset(&opt->unpack_opts, 0, sizeof(opt->unpack_opts));
- if (opt->call_depth)
- opt->unpack_opts.index_only = 1;
+ memset(&opt->priv->unpack_opts, 0, sizeof(opt->priv->unpack_opts));
+ if (opt->priv->call_depth)
+ opt->priv->unpack_opts.index_only = 1;
else
- opt->unpack_opts.update = 1;
- opt->unpack_opts.merge = 1;
- opt->unpack_opts.head_idx = 2;
- opt->unpack_opts.fn = threeway_merge;
- opt->unpack_opts.src_index = opt->repo->index;
- opt->unpack_opts.dst_index = &tmp_index;
- opt->unpack_opts.aggressive = !merge_detect_rename(opt);
- setup_unpack_trees_porcelain(&opt->unpack_opts, "merge");
+ opt->priv->unpack_opts.update = 1;
+ opt->priv->unpack_opts.merge = 1;
+ opt->priv->unpack_opts.head_idx = 2;
+ opt->priv->unpack_opts.fn = threeway_merge;
+ opt->priv->unpack_opts.src_index = opt->repo->index;
+ opt->priv->unpack_opts.dst_index = &tmp_index;
+ opt->priv->unpack_opts.aggressive = !merge_detect_rename(opt);
+ setup_unpack_trees_porcelain(&opt->priv->unpack_opts, "merge");
init_tree_desc_from_tree(t+0, common);
init_tree_desc_from_tree(t+1, head);
init_tree_desc_from_tree(t+2, merge);
- rc = unpack_trees(3, t, &opt->unpack_opts);
+ rc = unpack_trees(3, t, &opt->priv->unpack_opts);
cache_tree_free(&opt->repo->index->cache_tree);
/*
- * Update opt->repo->index to match the new results, AFTER saving a copy
- * in opt->orig_index. Update src_index to point to the saved copy.
- * (verify_uptodate() checks src_index, and the original index is
- * the one that had the necessary modification timestamps.)
+ * Update opt->repo->index to match the new results, AFTER saving a
+ * copy in opt->priv->orig_index. Update src_index to point to the
+ * saved copy. (verify_uptodate() checks src_index, and the original
+ * index is the one that had the necessary modification timestamps.)
*/
- opt->orig_index = *opt->repo->index;
+ opt->priv->orig_index = *opt->repo->index;
*opt->repo->index = tmp_index;
- opt->unpack_opts.src_index = &opt->orig_index;
+ opt->priv->unpack_opts.src_index = &opt->priv->orig_index;
return rc;
}
static void unpack_trees_finish(struct merge_options *opt)
{
- discard_index(&opt->orig_index);
- clear_unpack_trees_porcelain(&opt->unpack_opts);
-}
-
-struct tree *write_tree_from_memory(struct merge_options *opt)
-{
- struct tree *result = NULL;
- struct index_state *istate = opt->repo->index;
-
- if (unmerged_index(istate)) {
- int i;
- fprintf(stderr, "BUG: There are unmerged index entries:\n");
- for (i = 0; i < istate->cache_nr; i++) {
- const struct cache_entry *ce = istate->cache[i];
- if (ce_stage(ce))
- fprintf(stderr, "BUG: %d %.*s\n", ce_stage(ce),
- (int)ce_namelen(ce), ce->name);
- }
- BUG("unmerged index entries in merge-recursive.c");
- }
-
- if (!istate->cache_tree)
- istate->cache_tree = cache_tree();
-
- if (!cache_tree_fully_valid(istate->cache_tree) &&
- cache_tree_update(istate, 0) < 0) {
- err(opt, _("error building trees"));
- return NULL;
- }
-
- result = lookup_tree(opt->repo, &istate->cache_tree->oid);
-
- return result;
+ discard_index(&opt->priv->orig_index);
+ clear_unpack_trees_porcelain(&opt->priv->unpack_opts);
}
static int save_files_dirs(const struct object_id *oid,
@@ -454,8 +473,8 @@ static int save_files_dirs(const struct object_id *oid,
strbuf_addstr(base, path);
FLEX_ALLOC_MEM(entry, path, base->buf, base->len);
- hashmap_entry_init(entry, path_hash(entry->path));
- hashmap_add(&opt->current_file_dir_set, entry);
+ hashmap_entry_init(&entry->e, path_hash(entry->path));
+ hashmap_add(&opt->priv->current_file_dir_set, &entry->e);
strbuf_setlen(base, baselen);
return (S_ISDIR(mode) ? READ_TREE_RECURSIVE : 0);
@@ -586,7 +605,7 @@ static void record_df_conflict_files(struct merge_options *opt,
* If we're merging merge-bases, we don't want to bother with
* any working directory changes.
*/
- if (opt->call_depth)
+ if (opt->priv->call_depth)
return;
/* Ensure D/F conflicts are adjacent in the entries list. */
@@ -598,7 +617,7 @@ static void record_df_conflict_files(struct merge_options *opt,
df_sorted_entries.cmp = string_list_df_name_compare;
string_list_sort(&df_sorted_entries);
- string_list_clear(&opt->df_conflict_file_set, 1);
+ string_list_clear(&opt->priv->df_conflict_file_set, 1);
for (i = 0; i < df_sorted_entries.nr; i++) {
const char *path = df_sorted_entries.items[i].string;
int len = strlen(path);
@@ -614,7 +633,7 @@ static void record_df_conflict_files(struct merge_options *opt,
len > last_len &&
memcmp(path, last_file, last_len) == 0 &&
path[last_len] == '/') {
- string_list_insert(&opt->df_conflict_file_set, last_file);
+ string_list_insert(&opt->priv->df_conflict_file_set, last_file);
}
/*
@@ -681,8 +700,8 @@ static void update_entry(struct stage_data *entry,
static int remove_file(struct merge_options *opt, int clean,
const char *path, int no_wd)
{
- int update_cache = opt->call_depth || clean;
- int update_working_directory = !opt->call_depth && !no_wd;
+ int update_cache = opt->priv->call_depth || clean;
+ int update_working_directory = !opt->priv->call_depth && !no_wd;
if (update_cache) {
if (remove_file_from_index(opt->repo->index, path))
@@ -712,7 +731,9 @@ static void add_flattened_path(struct strbuf *out, const char *s)
out->buf[i] = '_';
}
-static char *unique_path(struct merge_options *opt, const char *path, const char *branch)
+static char *unique_path(struct merge_options *opt,
+ const char *path,
+ const char *branch)
{
struct path_hashmap_entry *entry;
struct strbuf newpath = STRBUF_INIT;
@@ -723,16 +744,16 @@ static char *unique_path(struct merge_options *opt, const char *path, const char
add_flattened_path(&newpath, branch);
base_len = newpath.len;
- while (hashmap_get_from_hash(&opt->current_file_dir_set,
+ while (hashmap_get_from_hash(&opt->priv->current_file_dir_set,
path_hash(newpath.buf), newpath.buf) ||
- (!opt->call_depth && file_exists(newpath.buf))) {
+ (!opt->priv->call_depth && file_exists(newpath.buf))) {
strbuf_setlen(&newpath, base_len);
strbuf_addf(&newpath, "_%d", suffix++);
}
FLEX_ALLOC_MEM(entry, path, newpath.buf, newpath.len);
- hashmap_entry_init(entry, path_hash(entry->path));
- hashmap_add(&opt->current_file_dir_set, entry);
+ hashmap_entry_init(&entry->e, path_hash(entry->path));
+ hashmap_add(&opt->priv->current_file_dir_set, &entry->e);
return strbuf_detach(&newpath, NULL);
}
@@ -764,7 +785,8 @@ static int dir_in_way(struct index_state *istate, const char *path,
strbuf_release(&dirpath);
return check_working_copy && !lstat(path, &st) && S_ISDIR(st.st_mode) &&
- !(empty_ok && is_empty_dir(path));
+ !(empty_ok && is_empty_dir(path)) &&
+ !has_symlink_leading_path(path, strlen(path));
}
/*
@@ -774,7 +796,7 @@ static int dir_in_way(struct index_state *istate, const char *path,
static int was_tracked_and_matches(struct merge_options *opt, const char *path,
const struct diff_filespec *blob)
{
- int pos = index_name_pos(&opt->orig_index, path, strlen(path));
+ int pos = index_name_pos(&opt->priv->orig_index, path, strlen(path));
struct cache_entry *ce;
if (0 > pos)
@@ -782,7 +804,7 @@ static int was_tracked_and_matches(struct merge_options *opt, const char *path,
return 0;
/* See if the file we were tracking before matches */
- ce = opt->orig_index.cache[pos];
+ ce = opt->priv->orig_index.cache[pos];
return (oid_eq(&ce->oid, &blob->oid) && ce->ce_mode == blob->mode);
}
@@ -791,7 +813,7 @@ static int was_tracked_and_matches(struct merge_options *opt, const char *path,
*/
static int was_tracked(struct merge_options *opt, const char *path)
{
- int pos = index_name_pos(&opt->orig_index, path, strlen(path));
+ int pos = index_name_pos(&opt->priv->orig_index, path, strlen(path));
if (0 <= pos)
/* we were tracking this path before the merge */
@@ -848,12 +870,12 @@ static int was_dirty(struct merge_options *opt, const char *path)
struct cache_entry *ce;
int dirty = 1;
- if (opt->call_depth || !was_tracked(opt, path))
+ if (opt->priv->call_depth || !was_tracked(opt, path))
return !dirty;
- ce = index_file_exists(opt->unpack_opts.src_index,
+ ce = index_file_exists(opt->priv->unpack_opts.src_index,
path, strlen(path), ignore_case);
- dirty = verify_uptodate(ce, &opt->unpack_opts) != 0;
+ dirty = verify_uptodate(ce, &opt->priv->unpack_opts) != 0;
return dirty;
}
@@ -863,8 +885,8 @@ static int make_room_for_path(struct merge_options *opt, const char *path)
const char *msg = _("failed to create path '%s'%s");
/* Unlink any D/F conflict files that are in the way */
- for (i = 0; i < opt->df_conflict_file_set.nr; i++) {
- const char *df_path = opt->df_conflict_file_set.items[i].string;
+ for (i = 0; i < opt->priv->df_conflict_file_set.nr; i++) {
+ const char *df_path = opt->priv->df_conflict_file_set.items[i].string;
size_t pathlen = strlen(path);
size_t df_pathlen = strlen(df_path);
if (df_pathlen < pathlen &&
@@ -874,7 +896,7 @@ static int make_room_for_path(struct merge_options *opt, const char *path)
_("Removing %s to make room for subdirectory\n"),
df_path);
unlink(df_path);
- unsorted_string_list_delete_item(&opt->df_conflict_file_set,
+ unsorted_string_list_delete_item(&opt->priv->df_conflict_file_set,
i, 0);
break;
}
@@ -915,7 +937,7 @@ static int update_file_flags(struct merge_options *opt,
{
int ret = 0;
- if (opt->call_depth)
+ if (opt->priv->call_depth)
update_wd = 0;
if (update_wd) {
@@ -934,9 +956,11 @@ static int update_file_flags(struct merge_options *opt,
}
buf = read_object_file(&contents->oid, &type, &size);
- if (!buf)
- return err(opt, _("cannot read object %s '%s'"),
- oid_to_hex(&contents->oid), path);
+ if (!buf) {
+ ret = err(opt, _("cannot read object %s '%s'"),
+ oid_to_hex(&contents->oid), path);
+ goto free_buf;
+ }
if (type != OBJ_BLOB) {
ret = err(opt, _("blob expected for %s '%s'"),
oid_to_hex(&contents->oid), path);
@@ -944,7 +968,8 @@ static int update_file_flags(struct merge_options *opt,
}
if (S_ISREG(contents->mode)) {
struct strbuf strbuf = STRBUF_INIT;
- if (convert_to_working_tree(opt->repo->index, path, buf, size, &strbuf)) {
+ if (convert_to_working_tree(opt->repo->index,
+ path, buf, size, &strbuf)) {
free(buf);
size = strbuf.len;
buf = strbuf_detach(&strbuf, NULL);
@@ -997,7 +1022,7 @@ static int update_file(struct merge_options *opt,
const char *path)
{
return update_file_flags(opt, contents, path,
- opt->call_depth || clean, !opt->call_depth);
+ opt->priv->call_depth || clean, !opt->priv->call_depth);
}
/* Low level file merging, update and removal */
@@ -1019,22 +1044,22 @@ static int merge_3way(struct merge_options *opt,
{
mmfile_t orig, src1, src2;
struct ll_merge_options ll_opts = {0};
- char *base_name, *name1, *name2;
+ char *base, *name1, *name2;
int merge_status;
ll_opts.renormalize = opt->renormalize;
ll_opts.extra_marker_size = extra_marker_size;
ll_opts.xdl_opts = opt->xdl_opts;
- if (opt->call_depth) {
+ if (opt->priv->call_depth) {
ll_opts.virtual_ancestor = 1;
ll_opts.variant = 0;
} else {
switch (opt->recursive_variant) {
- case MERGE_RECURSIVE_OURS:
+ case MERGE_VARIANT_OURS:
ll_opts.variant = XDL_MERGE_FAVOR_OURS;
break;
- case MERGE_RECURSIVE_THEIRS:
+ case MERGE_VARIANT_THEIRS:
ll_opts.variant = XDL_MERGE_FAVOR_THEIRS;
break;
default:
@@ -1043,16 +1068,13 @@ static int merge_3way(struct merge_options *opt,
}
}
- assert(a->path && b->path);
- if (strcmp(a->path, b->path) ||
- (opt->ancestor != NULL && strcmp(a->path, o->path) != 0)) {
- base_name = opt->ancestor == NULL ? NULL :
- mkpathdup("%s:%s", opt->ancestor, o->path);
+ assert(a->path && b->path && o->path && opt->ancestor);
+ if (strcmp(a->path, b->path) || strcmp(a->path, o->path) != 0) {
+ base = mkpathdup("%s:%s", opt->ancestor, o->path);
name1 = mkpathdup("%s:%s", branch1, a->path);
name2 = mkpathdup("%s:%s", branch2, b->path);
} else {
- base_name = opt->ancestor == NULL ? NULL :
- mkpathdup("%s", opt->ancestor);
+ base = mkpathdup("%s", opt->ancestor);
name1 = mkpathdup("%s", branch1);
name2 = mkpathdup("%s", branch2);
}
@@ -1061,11 +1083,11 @@ static int merge_3way(struct merge_options *opt,
read_mmblob(&src1, &a->oid);
read_mmblob(&src2, &b->oid);
- merge_status = ll_merge(result_buf, a->path, &orig, base_name,
+ merge_status = ll_merge(result_buf, a->path, &orig, base,
&src1, name1, &src2, name2,
opt->repo->index, &ll_opts);
- free(base_name);
+ free(base);
free(name1);
free(name2);
free(orig.ptr);
@@ -1160,7 +1182,7 @@ static int merge_submodule(struct merge_options *opt,
struct object_array merges;
int i;
- int search = !opt->call_depth;
+ int search = !opt->priv->call_depth;
/* store a in result in case we fail */
oidcpy(result, a);
@@ -1344,15 +1366,15 @@ static int merge_mode_and_contents(struct merge_options *opt,
&b->oid);
} else if (S_ISLNK(a->mode)) {
switch (opt->recursive_variant) {
- case MERGE_RECURSIVE_NORMAL:
+ case MERGE_VARIANT_NORMAL:
oidcpy(&result->blob.oid, &a->oid);
if (!oid_eq(&a->oid, &b->oid))
result->clean = 0;
break;
- case MERGE_RECURSIVE_OURS:
+ case MERGE_VARIANT_OURS:
oidcpy(&result->blob.oid, &a->oid);
break;
- case MERGE_RECURSIVE_THEIRS:
+ case MERGE_VARIANT_THEIRS:
oidcpy(&result->blob.oid, &b->oid);
break;
}
@@ -1378,10 +1400,11 @@ static int handle_rename_via_dir(struct merge_options *opt,
const struct rename *ren = ci->ren1;
const struct diff_filespec *dest = ren->pair->two;
char *file_path = dest->path;
- int mark_conflicted = (opt->detect_directory_renames == 1);
+ int mark_conflicted = (opt->detect_directory_renames ==
+ MERGE_DIRECTORY_RENAMES_CONFLICT);
assert(ren->dir_rename_original_dest);
- if (!opt->call_depth && would_lose_untracked(opt, dest->path)) {
+ if (!opt->priv->call_depth && would_lose_untracked(opt, dest->path)) {
mark_conflicted = 1;
file_path = unique_path(opt, dest->path, ren->branch);
output(opt, 1, _("Error: Refusing to lose untracked file at %s; "
@@ -1424,12 +1447,12 @@ static int handle_change_delete(struct merge_options *opt,
const char *update_path = path;
int ret = 0;
- if (dir_in_way(opt->repo->index, path, !opt->call_depth, 0) ||
- (!opt->call_depth && would_lose_untracked(opt, path))) {
+ if (dir_in_way(opt->repo->index, path, !opt->priv->call_depth, 0) ||
+ (!opt->priv->call_depth && would_lose_untracked(opt, path))) {
update_path = alt_path = unique_path(opt, path, change_branch);
}
- if (opt->call_depth) {
+ if (opt->priv->call_depth) {
/*
* We cannot arbitrarily accept either a_sha or b_sha as
* correct; since there is no true "middle point" between
@@ -1504,14 +1527,14 @@ static int handle_rename_delete(struct merge_options *opt,
opt->branch2 : opt->branch1);
if (handle_change_delete(opt,
- opt->call_depth ? orig->path : dest->path,
- opt->call_depth ? NULL : orig->path,
+ opt->priv->call_depth ? orig->path : dest->path,
+ opt->priv->call_depth ? NULL : orig->path,
orig, dest,
rename_branch, delete_branch,
_("rename"), _("renamed")))
return -1;
- if (opt->call_depth)
+ if (opt->priv->call_depth)
return remove_file_from_index(opt->repo->index, dest->path);
else
return update_stages(opt, dest->path, NULL,
@@ -1548,7 +1571,7 @@ static int handle_file_collision(struct merge_options *opt,
/*
* In the recursive case, we just opt to undo renames
*/
- if (opt->call_depth && (prev_path1 || prev_path2)) {
+ if (opt->priv->call_depth && (prev_path1 || prev_path2)) {
/* Put first file (a->oid, a->mode) in its original spot */
if (prev_path1) {
if (update_file(opt, 1, a, prev_path1))
@@ -1577,10 +1600,10 @@ static int handle_file_collision(struct merge_options *opt,
/* Remove rename sources if rename/add or rename/rename(2to1) */
if (prev_path1)
remove_file(opt, 1, prev_path1,
- opt->call_depth || would_lose_untracked(opt, prev_path1));
+ opt->priv->call_depth || would_lose_untracked(opt, prev_path1));
if (prev_path2)
remove_file(opt, 1, prev_path2,
- opt->call_depth || would_lose_untracked(opt, prev_path2));
+ opt->priv->call_depth || would_lose_untracked(opt, prev_path2));
/*
* Remove the collision path, if it wouldn't cause dirty contents
@@ -1622,12 +1645,12 @@ static int handle_file_collision(struct merge_options *opt,
null.mode = 0;
if (merge_mode_and_contents(opt, &null, a, b, collide_path,
- branch1, branch2, opt->call_depth * 2, &mfi))
+ branch1, branch2, opt->priv->call_depth * 2, &mfi))
return -1;
mfi.clean &= !alt_path;
if (update_file(opt, mfi.clean, &mfi.blob, update_path))
return -1;
- if (!mfi.clean && !opt->call_depth &&
+ if (!mfi.clean && !opt->priv->call_depth &&
update_stages(opt, collide_path, NULL, a, b))
return -1;
free(alt_path);
@@ -1667,7 +1690,7 @@ static int handle_rename_add(struct merge_options *opt,
&ci->ren1->src_entry->stages[other_stage],
prev_path_desc,
opt->branch1, opt->branch2,
- 1 + opt->call_depth * 2, &mfi))
+ 1 + opt->priv->call_depth * 2, &mfi))
return -1;
free(prev_path_desc);
@@ -1685,7 +1708,7 @@ static char *find_path_for_conflict(struct merge_options *opt,
const char *branch2)
{
char *new_path = NULL;
- if (dir_in_way(opt->repo->index, path, !opt->call_depth, 0)) {
+ if (dir_in_way(opt->repo->index, path, !opt->priv->call_depth, 0)) {
new_path = unique_path(opt, path, branch1);
output(opt, 1, _("%s is a directory in %s adding "
"as %s instead"),
@@ -1716,17 +1739,17 @@ static int handle_rename_rename_1to2(struct merge_options *opt,
"rename \"%s\"->\"%s\" in \"%s\"%s"),
o->path, a->path, ci->ren1->branch,
o->path, b->path, ci->ren2->branch,
- opt->call_depth ? _(" (left unresolved)") : "");
+ opt->priv->call_depth ? _(" (left unresolved)") : "");
path_desc = xstrfmt("%s and %s, both renamed from %s",
a->path, b->path, o->path);
if (merge_mode_and_contents(opt, o, a, b, path_desc,
ci->ren1->branch, ci->ren2->branch,
- opt->call_depth * 2, &mfi))
+ opt->priv->call_depth * 2, &mfi))
return -1;
free(path_desc);
- if (opt->call_depth) {
+ if (opt->priv->call_depth) {
/*
* FIXME: For rename/add-source conflicts (if we could detect
* such), this is wrong. We should instead find a unique
@@ -1841,12 +1864,12 @@ static int handle_rename_rename_2to1(struct merge_options *opt,
&ci->ren1->src_entry->stages[ostage1],
path_side_1_desc,
opt->branch1, opt->branch2,
- 1 + opt->call_depth * 2, &mfi_c1) ||
+ 1 + opt->priv->call_depth * 2, &mfi_c1) ||
merge_mode_and_contents(opt, b,
&ci->ren2->src_entry->stages[ostage2],
c2, path_side_2_desc,
opt->branch1, opt->branch2,
- 1 + opt->call_depth * 2, &mfi_c2))
+ 1 + opt->priv->call_depth * 2, &mfi_c2))
return -1;
free(path_side_1_desc);
free(path_side_2_desc);
@@ -1880,17 +1903,15 @@ static struct diff_queue_struct *get_diffpairs(struct merge_options *opt,
*/
if (opts.detect_rename > DIFF_DETECT_RENAME)
opts.detect_rename = DIFF_DETECT_RENAME;
- opts.rename_limit = opt->merge_rename_limit >= 0 ? opt->merge_rename_limit :
- opt->diff_rename_limit >= 0 ? opt->diff_rename_limit :
- 1000;
+ opts.rename_limit = (opt->rename_limit >= 0) ? opt->rename_limit : 1000;
opts.rename_score = opt->rename_score;
opts.show_rename_progress = opt->show_rename_progress;
opts.output_format = DIFF_FORMAT_NO_OUTPUT;
diff_setup_done(&opts);
diff_tree_oid(&o_tree->object.oid, &tree->object.oid, "", &opts);
diffcore_std(&opts);
- if (opts.needed_rename_limit > opt->needed_rename_limit)
- opt->needed_rename_limit = opts.needed_rename_limit;
+ if (opts.needed_rename_limit > opt->priv->needed_rename_limit)
+ opt->priv->needed_rename_limit = opts.needed_rename_limit;
ret = xmalloc(sizeof(*ret));
*ret = diff_queued_diff;
@@ -2001,7 +2022,7 @@ static void remove_hashmap_entries(struct hashmap *dir_renames,
for (i = 0; i < items_to_remove->nr; i++) {
entry = items_to_remove->items[i].util;
- hashmap_remove(dir_renames, entry, NULL);
+ hashmap_remove(dir_renames, &entry->ent, NULL);
}
string_list_clear(items_to_remove, 0);
}
@@ -2124,8 +2145,8 @@ static void handle_directory_level_conflicts(struct merge_options *opt,
struct string_list remove_from_head = STRING_LIST_INIT_NODUP;
struct string_list remove_from_merge = STRING_LIST_INIT_NODUP;
- hashmap_iter_init(dir_re_head, &iter);
- while ((head_ent = hashmap_iter_next(&iter))) {
+ hashmap_for_each_entry(dir_re_head, &iter, head_ent,
+ ent /* member name */) {
merge_ent = dir_rename_find_entry(dir_re_merge, head_ent->dir);
if (merge_ent &&
!head_ent->non_unique_new_dir &&
@@ -2149,8 +2170,8 @@ static void handle_directory_level_conflicts(struct merge_options *opt,
remove_hashmap_entries(dir_re_head, &remove_from_head);
remove_hashmap_entries(dir_re_merge, &remove_from_merge);
- hashmap_iter_init(dir_re_merge, &iter);
- while ((merge_ent = hashmap_iter_next(&iter))) {
+ hashmap_for_each_entry(dir_re_merge, &iter, merge_ent,
+ ent /* member name */) {
head_ent = dir_rename_find_entry(dir_re_head, merge_ent->dir);
if (tree_has_path(opt->repo, merge, merge_ent->dir)) {
/* 2. This wasn't a directory rename after all */
@@ -2229,7 +2250,7 @@ static struct hashmap *get_directory_renames(struct diff_queue_struct *pairs)
if (!entry) {
entry = xmalloc(sizeof(*entry));
dir_rename_entry_init(entry, old_dir);
- hashmap_put(dir_renames, entry);
+ hashmap_put(dir_renames, &entry->ent);
} else {
free(old_dir);
}
@@ -2254,8 +2275,8 @@ static struct hashmap *get_directory_renames(struct diff_queue_struct *pairs)
* we set non_unique_new_dir. Once we've determined the winner (or
* that there is no winner), we no longer need possible_new_dirs.
*/
- hashmap_iter_init(dir_renames, &iter);
- while ((entry = hashmap_iter_next(&iter))) {
+ hashmap_for_each_entry(dir_renames, &iter, entry,
+ ent /* member name */) {
int max = 0;
int bad_max = 0;
char *best = NULL;
@@ -2358,8 +2379,9 @@ static void compute_collisions(struct hashmap *collisions,
if (!collision_ent) {
collision_ent = xcalloc(1,
sizeof(struct collision_entry));
- hashmap_entry_init(collision_ent, strhash(new_path));
- hashmap_put(collisions, collision_ent);
+ hashmap_entry_init(&collision_ent->ent,
+ strhash(new_path));
+ hashmap_put(collisions, &collision_ent->ent);
collision_ent->target_file = new_path;
} else {
free(new_path);
@@ -2612,12 +2634,12 @@ static struct string_list *get_renames(struct merge_options *opt,
entries);
}
- hashmap_iter_init(&collisions, &iter);
- while ((e = hashmap_iter_next(&iter))) {
+ hashmap_for_each_entry(&collisions, &iter, e,
+ ent /* member name */) {
free(e->target_file);
string_list_clear(&e->source_files, 0);
}
- hashmap_free(&collisions, 1);
+ hashmap_free_entries(&collisions, struct collision_entry, ent);
return renames;
}
@@ -2830,13 +2852,13 @@ static void initial_cleanup_rename(struct diff_queue_struct *pairs,
struct hashmap_iter iter;
struct dir_rename_entry *e;
- hashmap_iter_init(dir_renames, &iter);
- while ((e = hashmap_iter_next(&iter))) {
+ hashmap_for_each_entry(dir_renames, &iter, e,
+ ent /* member name */) {
free(e->dir);
strbuf_release(&e->new_dir);
/* possible_new_dirs already cleared in get_directory_renames */
}
- hashmap_free(dir_renames, 1);
+ hashmap_free_entries(dir_renames, struct dir_rename_entry, ent);
free(dir_renames);
free(pairs->queue);
@@ -2863,8 +2885,9 @@ static int detect_and_process_renames(struct merge_options *opt,
head_pairs = get_diffpairs(opt, common, head);
merge_pairs = get_diffpairs(opt, common, merge);
- if ((opt->detect_directory_renames == 2) ||
- (opt->detect_directory_renames == 1 && !opt->call_depth)) {
+ if ((opt->detect_directory_renames == MERGE_DIRECTORY_RENAMES_TRUE) ||
+ (opt->detect_directory_renames == MERGE_DIRECTORY_RENAMES_CONFLICT &&
+ !opt->priv->call_depth)) {
dir_re_head = get_directory_renames(head_pairs);
dir_re_merge = get_directory_renames(merge_pairs);
@@ -3021,13 +3044,13 @@ static int handle_content_merge(struct merge_file_info *mfi,
reason = _("add/add");
assert(o->path && a->path && b->path);
- if (ci && dir_in_way(opt->repo->index, path, !opt->call_depth,
+ if (ci && dir_in_way(opt->repo->index, path, !opt->priv->call_depth,
S_ISGITLINK(ci->ren1->pair->two->mode)))
df_conflict_remains = 1;
if (merge_mode_and_contents(opt, o, a, b, path,
opt->branch1, opt->branch2,
- opt->call_depth * 2, mfi))
+ opt->priv->call_depth * 2, mfi))
return -1;
/*
@@ -3043,7 +3066,7 @@ static int handle_content_merge(struct merge_file_info *mfi,
output(opt, 3, _("Skipped %s (merged same as existing)"), path);
if (add_cacheinfo(opt, &mfi->blob, path,
- 0, (!opt->call_depth && !is_dirty), 0))
+ 0, (!opt->priv->call_depth && !is_dirty), 0))
return -1;
/*
* However, add_cacheinfo() will delete the old cache entry
@@ -3051,8 +3074,8 @@ static int handle_content_merge(struct merge_file_info *mfi,
* flag to avoid making the file appear as if it were
* deleted by the user.
*/
- pos = index_name_pos(&opt->orig_index, path, strlen(path));
- ce = opt->orig_index.cache[pos];
+ pos = index_name_pos(&opt->priv->orig_index, path, strlen(path));
+ ce = opt->priv->orig_index.cache[pos];
if (ce_skip_worktree(ce)) {
pos = index_name_pos(opt->repo->index, path, strlen(path));
ce = opt->repo->index->cache[pos];
@@ -3073,7 +3096,7 @@ static int handle_content_merge(struct merge_file_info *mfi,
if (df_conflict_remains || is_dirty) {
char *new_path;
- if (opt->call_depth) {
+ if (opt->priv->call_depth) {
remove_file_from_index(opt->repo->index, path);
} else {
if (!mfi->clean) {
@@ -3122,7 +3145,8 @@ static int handle_rename_normal(struct merge_options *opt,
clean = handle_content_merge(&mfi, opt, path, was_dirty(opt, path),
o, a, b, ci);
- if (clean && opt->detect_directory_renames == 1 &&
+ if (clean &&
+ opt->detect_directory_renames == MERGE_DIRECTORY_RENAMES_CONFLICT &&
ren->dir_rename_original_dest) {
if (update_stages(opt, path,
NULL,
@@ -3167,12 +3191,12 @@ static int warn_about_dir_renamed_entries(struct merge_options *opt,
return clean;
/* Sanity checks */
- assert(opt->detect_directory_renames > 0);
+ assert(opt->detect_directory_renames > MERGE_DIRECTORY_RENAMES_NONE);
assert(ren->dir_rename_original_type == 'A' ||
ren->dir_rename_original_type == 'R');
/* Check whether to treat directory renames as a conflict */
- clean = (opt->detect_directory_renames == 2);
+ clean = (opt->detect_directory_renames == MERGE_DIRECTORY_RENAMES_TRUE);
is_add = (ren->dir_rename_original_type == 'A');
if (ren->dir_rename_original_type == 'A' && clean) {
@@ -3331,7 +3355,7 @@ static int process_entry(struct merge_options *opt,
conf = _("directory/file");
}
if (dir_in_way(opt->repo->index, path,
- !opt->call_depth && !S_ISGITLINK(a->mode),
+ !opt->priv->call_depth && !S_ISGITLINK(a->mode),
0)) {
char *new_path = unique_path(opt, path, add_branch);
clean_merge = 0;
@@ -3340,7 +3364,7 @@ static int process_entry(struct merge_options *opt,
conf, path, other_branch, path, new_path);
if (update_file(opt, 0, contents, new_path))
clean_merge = -1;
- else if (opt->call_depth)
+ else if (opt->priv->call_depth)
remove_file_from_index(opt->repo->index, path);
free(new_path);
} else {
@@ -3380,37 +3404,32 @@ static int process_entry(struct merge_options *opt,
return clean_merge;
}
-int merge_trees(struct merge_options *opt,
- struct tree *head,
- struct tree *merge,
- struct tree *common,
- struct tree **result)
+static int merge_trees_internal(struct merge_options *opt,
+ struct tree *head,
+ struct tree *merge,
+ struct tree *merge_base,
+ struct tree **result)
{
struct index_state *istate = opt->repo->index;
int code, clean;
- struct strbuf sb = STRBUF_INIT;
-
- if (!opt->call_depth && repo_index_has_changes(opt->repo, head, &sb)) {
- err(opt, _("Your local changes to the following files would be overwritten by merge:\n %s"),
- sb.buf);
- return -1;
- }
if (opt->subtree_shift) {
- merge = shift_tree_object(opt->repo, head, merge, opt->subtree_shift);
- common = shift_tree_object(opt->repo, head, common, opt->subtree_shift);
+ merge = shift_tree_object(opt->repo, head, merge,
+ opt->subtree_shift);
+ merge_base = shift_tree_object(opt->repo, head, merge_base,
+ opt->subtree_shift);
}
- if (oid_eq(&common->object.oid, &merge->object.oid)) {
+ if (oid_eq(&merge_base->object.oid, &merge->object.oid)) {
output(opt, 0, _("Already up to date!"));
*result = head;
return 1;
}
- code = unpack_trees_start(opt, common, head, merge);
+ code = unpack_trees_start(opt, merge_base, head, merge);
if (code != 0) {
- if (show(opt, 4) || opt->call_depth)
+ if (show(opt, 4) || opt->priv->call_depth)
err(opt, _("merging of trees %s and %s failed"),
oid_to_hex(&head->object.oid),
oid_to_hex(&merge->object.oid));
@@ -3429,12 +3448,13 @@ int merge_trees(struct merge_options *opt,
* opposed to decaring a local hashmap is for convenience
* so that we don't have to pass it to around.
*/
- hashmap_init(&opt->current_file_dir_set, path_hashmap_cmp, NULL, 512);
+ hashmap_init(&opt->priv->current_file_dir_set, path_hashmap_cmp,
+ NULL, 512);
get_files_dirs(opt, head);
get_files_dirs(opt, merge);
entries = get_unmerged(opt->repo->index);
- clean = detect_and_process_renames(opt, common, head, merge,
+ clean = detect_and_process_renames(opt, merge_base, head, merge,
entries, &re_info);
record_df_conflict_files(opt, entries);
if (clean < 0)
@@ -3465,7 +3485,8 @@ int merge_trees(struct merge_options *opt,
string_list_clear(entries, 1);
free(entries);
- hashmap_free(&opt->current_file_dir_set, 1);
+ hashmap_free_entries(&opt->priv->current_file_dir_set,
+ struct path_hashmap_entry, e);
if (clean < 0) {
unpack_trees_finish(opt);
@@ -3477,7 +3498,8 @@ int merge_trees(struct merge_options *opt,
unpack_trees_finish(opt);
- if (opt->call_depth && !(*result = write_tree_from_memory(opt)))
+ if (opt->priv->call_depth &&
+ !(*result = write_in_core_index_as_tree(opt->repo)))
return -1;
return clean;
@@ -3498,16 +3520,18 @@ static struct commit_list *reverse_commit_list(struct commit_list *list)
* Merge the commits h1 and h2, return the resulting virtual
* commit object and a flag indicating the cleanness of the merge.
*/
-int merge_recursive(struct merge_options *opt,
- struct commit *h1,
- struct commit *h2,
- struct commit_list *ca,
- struct commit **result)
+static int merge_recursive_internal(struct merge_options *opt,
+ struct commit *h1,
+ struct commit *h2,
+ struct commit_list *merge_bases,
+ struct commit **result)
{
struct commit_list *iter;
- struct commit *merged_common_ancestors;
- struct tree *mrtree;
+ struct commit *merged_merge_bases;
+ struct tree *result_tree;
int clean;
+ const char *ancestor_name;
+ struct strbuf merge_base_abbrev = STRBUF_INIT;
if (show(opt, 4)) {
output(opt, 4, _("Merging:"));
@@ -3515,32 +3539,43 @@ int merge_recursive(struct merge_options *opt,
output_commit_title(opt, h2);
}
- if (!ca) {
- ca = get_merge_bases(h1, h2);
- ca = reverse_commit_list(ca);
+ if (!merge_bases) {
+ merge_bases = get_merge_bases(h1, h2);
+ merge_bases = reverse_commit_list(merge_bases);
}
if (show(opt, 5)) {
- unsigned cnt = commit_list_count(ca);
+ unsigned cnt = commit_list_count(merge_bases);
output(opt, 5, Q_("found %u common ancestor:",
"found %u common ancestors:", cnt), cnt);
- for (iter = ca; iter; iter = iter->next)
+ for (iter = merge_bases; iter; iter = iter->next)
output_commit_title(opt, iter->item);
}
- merged_common_ancestors = pop_commit(&ca);
- if (merged_common_ancestors == NULL) {
+ merged_merge_bases = pop_commit(&merge_bases);
+ if (merged_merge_bases == NULL) {
/* if there is no common ancestor, use an empty tree */
struct tree *tree;
tree = lookup_tree(opt->repo, opt->repo->hash_algo->empty_tree);
- merged_common_ancestors = make_virtual_commit(opt->repo, tree, "ancestor");
+ merged_merge_bases = make_virtual_commit(opt->repo, tree,
+ "ancestor");
+ ancestor_name = "empty tree";
+ } else if (opt->ancestor && !opt->priv->call_depth) {
+ ancestor_name = opt->ancestor;
+ } else if (merge_bases) {
+ ancestor_name = "merged common ancestors";
+ } else {
+ strbuf_add_unique_abbrev(&merge_base_abbrev,
+ &merged_merge_bases->object.oid,
+ DEFAULT_ABBREV);
+ ancestor_name = merge_base_abbrev.buf;
}
- for (iter = ca; iter; iter = iter->next) {
+ for (iter = merge_bases; iter; iter = iter->next) {
const char *saved_b1, *saved_b2;
- opt->call_depth++;
+ opt->priv->call_depth++;
/*
* When the merge fails, the result contains files
* with conflict markers. The cleanness flag is
@@ -3554,45 +3589,134 @@ int merge_recursive(struct merge_options *opt,
saved_b2 = opt->branch2;
opt->branch1 = "Temporary merge branch 1";
opt->branch2 = "Temporary merge branch 2";
- if (merge_recursive(opt, merged_common_ancestors, iter->item,
- NULL, &merged_common_ancestors) < 0)
+ if (merge_recursive_internal(opt, merged_merge_bases, iter->item,
+ NULL, &merged_merge_bases) < 0)
return -1;
opt->branch1 = saved_b1;
opt->branch2 = saved_b2;
- opt->call_depth--;
+ opt->priv->call_depth--;
- if (!merged_common_ancestors)
+ if (!merged_merge_bases)
return err(opt, _("merge returned no commit"));
}
discard_index(opt->repo->index);
- if (!opt->call_depth)
+ if (!opt->priv->call_depth)
repo_read_index(opt->repo);
- opt->ancestor = "merged common ancestors";
- clean = merge_trees(opt, get_commit_tree(h1), get_commit_tree(h2),
- get_commit_tree(merged_common_ancestors),
- &mrtree);
+ opt->ancestor = ancestor_name;
+ clean = merge_trees_internal(opt,
+ repo_get_commit_tree(opt->repo, h1),
+ repo_get_commit_tree(opt->repo, h2),
+ repo_get_commit_tree(opt->repo,
+ merged_merge_bases),
+ &result_tree);
+ strbuf_release(&merge_base_abbrev);
+ opt->ancestor = NULL; /* avoid accidental re-use of opt->ancestor */
if (clean < 0) {
flush_output(opt);
return clean;
}
- if (opt->call_depth) {
- *result = make_virtual_commit(opt->repo, mrtree, "merged tree");
+ if (opt->priv->call_depth) {
+ *result = make_virtual_commit(opt->repo, result_tree,
+ "merged tree");
commit_list_insert(h1, &(*result)->parents);
commit_list_insert(h2, &(*result)->parents->next);
}
+ return clean;
+}
+
+static int merge_start(struct merge_options *opt, struct tree *head)
+{
+ struct strbuf sb = STRBUF_INIT;
+
+ /* Sanity checks on opt */
+ assert(opt->repo);
+
+ assert(opt->branch1 && opt->branch2);
+
+ assert(opt->detect_renames >= -1 &&
+ opt->detect_renames <= DIFF_DETECT_COPY);
+ assert(opt->detect_directory_renames >= MERGE_DIRECTORY_RENAMES_NONE &&
+ opt->detect_directory_renames <= MERGE_DIRECTORY_RENAMES_TRUE);
+ assert(opt->rename_limit >= -1);
+ assert(opt->rename_score >= 0 && opt->rename_score <= MAX_SCORE);
+ assert(opt->show_rename_progress >= 0 && opt->show_rename_progress <= 1);
+
+ assert(opt->xdl_opts >= 0);
+ assert(opt->recursive_variant >= MERGE_VARIANT_NORMAL &&
+ opt->recursive_variant <= MERGE_VARIANT_THEIRS);
+
+ assert(opt->verbosity >= 0 && opt->verbosity <= 5);
+ assert(opt->buffer_output <= 2);
+ assert(opt->obuf.len == 0);
+
+ assert(opt->priv == NULL);
+
+ /* 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"),
+ sb.buf);
+ strbuf_release(&sb);
+ return -1;
+ }
+
+ opt->priv = xcalloc(1, sizeof(*opt->priv));
+ string_list_init(&opt->priv->df_conflict_file_set, 1);
+ return 0;
+}
+
+static void merge_finalize(struct merge_options *opt)
+{
flush_output(opt);
- if (!opt->call_depth && opt->buffer_output < 2)
+ if (!opt->priv->call_depth && opt->buffer_output < 2)
strbuf_release(&opt->obuf);
if (show(opt, 2))
diff_warn_rename_limit("merge.renamelimit",
- opt->needed_rename_limit, 0);
+ opt->priv->needed_rename_limit, 0);
+ FREE_AND_NULL(opt->priv);
+}
+
+int merge_trees(struct merge_options *opt,
+ struct tree *head,
+ struct tree *merge,
+ struct tree *merge_base)
+{
+ int clean;
+ struct tree *ignored;
+
+ assert(opt->ancestor != NULL);
+
+ if (merge_start(opt, head))
+ return -1;
+ clean = merge_trees_internal(opt, head, merge, merge_base, &ignored);
+ merge_finalize(opt);
+
return clean;
}
-static struct commit *get_ref(struct repository *repo, const struct object_id *oid,
+int merge_recursive(struct merge_options *opt,
+ struct commit *h1,
+ struct commit *h2,
+ struct commit_list *merge_bases,
+ struct commit **result)
+{
+ int clean;
+
+ assert(opt->ancestor == NULL ||
+ !strcmp(opt->ancestor, "constructed merge base"));
+
+ if (merge_start(opt, repo_get_commit_tree(opt->repo, h1)))
+ return -1;
+ clean = merge_recursive_internal(opt, h1, h2, merge_bases, result);
+ merge_finalize(opt);
+
+ return clean;
+}
+
+static struct commit *get_ref(struct repository *repo,
+ const struct object_id *oid,
const char *name)
{
struct object *object;
@@ -3613,8 +3737,8 @@ static struct commit *get_ref(struct repository *repo, const struct object_id *o
int merge_recursive_generic(struct merge_options *opt,
const struct object_id *head,
const struct object_id *merge,
- int num_base_list,
- const struct object_id **base_list,
+ int num_merge_bases,
+ const struct object_id **merge_bases,
struct commit **result)
{
int clean;
@@ -3623,15 +3747,18 @@ int merge_recursive_generic(struct merge_options *opt,
struct commit *next_commit = get_ref(opt->repo, merge, opt->branch2);
struct commit_list *ca = NULL;
- if (base_list) {
+ if (merge_bases) {
int i;
- for (i = 0; i < num_base_list; ++i) {
+ for (i = 0; i < num_merge_bases; ++i) {
struct commit *base;
- if (!(base = get_ref(opt->repo, base_list[i], oid_to_hex(base_list[i]))))
+ if (!(base = get_ref(opt->repo, merge_bases[i],
+ oid_to_hex(merge_bases[i]))))
return err(opt, _("Could not parse object '%s'"),
- oid_to_hex(base_list[i]));
+ oid_to_hex(merge_bases[i]));
commit_list_insert(base, &ca);
}
+ if (num_merge_bases == 1)
+ opt->ancestor = "constructed merge base";
}
repo_hold_locked_index(opt->repo, &lock, LOCK_DIE_ON_ERROR);
@@ -3653,22 +3780,25 @@ static void merge_recursive_config(struct merge_options *opt)
{
char *value = NULL;
git_config_get_int("merge.verbosity", &opt->verbosity);
- git_config_get_int("diff.renamelimit", &opt->diff_rename_limit);
- git_config_get_int("merge.renamelimit", &opt->merge_rename_limit);
+ git_config_get_int("diff.renamelimit", &opt->rename_limit);
+ git_config_get_int("merge.renamelimit", &opt->rename_limit);
if (!git_config_get_string("diff.renames", &value)) {
- opt->diff_detect_rename = git_config_rename("diff.renames", value);
+ opt->detect_renames = git_config_rename("diff.renames", value);
free(value);
}
if (!git_config_get_string("merge.renames", &value)) {
- opt->merge_detect_rename = git_config_rename("merge.renames", value);
+ opt->detect_renames = git_config_rename("merge.renames", value);
free(value);
}
if (!git_config_get_string("merge.directoryrenames", &value)) {
int boolval = git_parse_maybe_bool(value);
if (0 <= boolval) {
- opt->detect_directory_renames = boolval ? 2 : 0;
+ opt->detect_directory_renames = boolval ?
+ MERGE_DIRECTORY_RENAMES_TRUE :
+ MERGE_DIRECTORY_RENAMES_NONE;
} else if (!strcasecmp(value, "conflict")) {
- opt->detect_directory_renames = 1;
+ opt->detect_directory_renames =
+ MERGE_DIRECTORY_RENAMES_CONFLICT;
} /* avoid erroring on values from future versions of git */
free(value);
}
@@ -3680,23 +3810,25 @@ void init_merge_options(struct merge_options *opt,
{
const char *merge_verbosity;
memset(opt, 0, sizeof(struct merge_options));
+
opt->repo = repo;
+
+ opt->detect_renames = -1;
+ opt->detect_directory_renames = MERGE_DIRECTORY_RENAMES_CONFLICT;
+ opt->rename_limit = -1;
+
opt->verbosity = 2;
opt->buffer_output = 1;
- opt->diff_rename_limit = -1;
- opt->merge_rename_limit = -1;
+ strbuf_init(&opt->obuf, 0);
+
opt->renormalize = 0;
- opt->diff_detect_rename = -1;
- opt->merge_detect_rename = -1;
- opt->detect_directory_renames = 1;
+
merge_recursive_config(opt);
merge_verbosity = getenv("GIT_MERGE_VERBOSITY");
if (merge_verbosity)
opt->verbosity = strtol(merge_verbosity, NULL, 10);
if (opt->verbosity >= 5)
opt->buffer_output = 0;
- strbuf_init(&opt->obuf, 0);
- string_list_init(&opt->df_conflict_file_set, 1);
}
int parse_merge_opt(struct merge_options *opt, const char *s)
@@ -3706,9 +3838,9 @@ int parse_merge_opt(struct merge_options *opt, const char *s)
if (!s || !*s)
return -1;
if (!strcmp(s, "ours"))
- opt->recursive_variant = MERGE_RECURSIVE_OURS;
+ opt->recursive_variant = MERGE_VARIANT_OURS;
else if (!strcmp(s, "theirs"))
- opt->recursive_variant = MERGE_RECURSIVE_THEIRS;
+ opt->recursive_variant = MERGE_VARIANT_THEIRS;
else if (!strcmp(s, "subtree"))
opt->subtree_shift = "";
else if (skip_prefix(s, "subtree=", &arg))
@@ -3739,16 +3871,16 @@ int parse_merge_opt(struct merge_options *opt, const char *s)
else if (!strcmp(s, "no-renormalize"))
opt->renormalize = 0;
else if (!strcmp(s, "no-renames"))
- opt->merge_detect_rename = 0;
+ opt->detect_renames = 0;
else if (!strcmp(s, "find-renames")) {
- opt->merge_detect_rename = 1;
+ opt->detect_renames = 1;
opt->rename_score = 0;
}
else if (skip_prefix(s, "find-renames=", &arg) ||
skip_prefix(s, "rename-threshold=", &arg)) {
if ((opt->rename_score = parse_rename_score(&arg)) == -1 || *arg != 0)
return -1;
- opt->merge_detect_rename = 1;
+ opt->detect_renames = 1;
}
/*
* Please update $__git_merge_strategy_options in
diff --git a/merge-recursive.h b/merge-recursive.h
index c2b7bb6..978847e 100644
--- a/merge-recursive.h
+++ b/merge-recursive.h
@@ -1,104 +1,124 @@
#ifndef MERGE_RECURSIVE_H
#define MERGE_RECURSIVE_H
-#include "string-list.h"
-#include "unpack-trees.h"
+#include "strbuf.h"
struct commit;
-
+struct commit_list;
+struct object_id;
struct repository;
+struct tree;
+struct merge_options_internal;
struct merge_options {
+ struct repository *repo;
+
+ /* ref names used in console messages and conflict markers */
const char *ancestor;
const char *branch1;
const char *branch2;
+
+ /* rename related options */
+ int detect_renames;
enum {
- MERGE_RECURSIVE_NORMAL = 0,
- MERGE_RECURSIVE_OURS,
- MERGE_RECURSIVE_THEIRS
+ MERGE_DIRECTORY_RENAMES_NONE = 0,
+ MERGE_DIRECTORY_RENAMES_CONFLICT = 1,
+ MERGE_DIRECTORY_RENAMES_TRUE = 2
+ } detect_directory_renames;
+ int rename_limit;
+ int rename_score;
+ int show_rename_progress;
+
+ /* xdiff-related options (patience, ignore whitespace, ours/theirs) */
+ long xdl_opts;
+ enum {
+ MERGE_VARIANT_NORMAL = 0,
+ MERGE_VARIANT_OURS,
+ MERGE_VARIANT_THEIRS
} recursive_variant;
- const char *subtree_shift;
+
+ /* console output related options */
+ int verbosity;
unsigned buffer_output; /* 1: output at end, 2: keep buffered */
+ struct strbuf obuf; /* output buffer; if buffer_output == 2, caller
+ * must handle and call strbuf_release */
+
+ /* miscellaneous control options */
+ const char *subtree_shift;
unsigned renormalize : 1;
- long xdl_opts;
- int verbosity;
- int detect_directory_renames;
- int diff_detect_rename;
- int merge_detect_rename;
- int diff_rename_limit;
- int merge_rename_limit;
- int rename_score;
- int needed_rename_limit;
- int show_rename_progress;
- int call_depth;
- struct strbuf obuf;
- struct hashmap current_file_dir_set;
- struct string_list df_conflict_file_set;
- struct unpack_trees_options unpack_opts;
- struct index_state orig_index;
- struct repository *repo;
+
+ /* internal fields used by the implementation */
+ struct merge_options_internal *priv;
};
+void init_merge_options(struct merge_options *opt, struct repository *repo);
+
+/* parse the option in s and update the relevant field of opt */
+int parse_merge_opt(struct merge_options *opt, const char *s);
+
/*
- * For dir_rename_entry, directory names are stored as a full path from the
- * toplevel of the repository and do not include a trailing '/'. Also:
- *
- * dir: original name of directory being renamed
- * non_unique_new_dir: if true, could not determine new_dir
- * new_dir: final name of directory being renamed
- * possible_new_dirs: temporary used to help determine new_dir; see comments
- * in get_directory_renames() for details
+ * RETURN VALUES: All the merge_* functions below return a value as follows:
+ * > 0 Merge was clean
+ * = 0 Merge had conflicts
+ * < 0 Merge hit an unexpected and unrecoverable problem (e.g. disk
+ * full) and aborted merge part-way through.
*/
-struct dir_rename_entry {
- struct hashmap_entry ent; /* must be the first member! */
- char *dir;
- unsigned non_unique_new_dir:1;
- struct strbuf new_dir;
- struct string_list possible_new_dirs;
-};
-
-struct collision_entry {
- struct hashmap_entry ent; /* must be the first member! */
- char *target_file;
- struct string_list source_files;
- unsigned reported_already:1;
-};
-static inline int merge_detect_rename(struct merge_options *o)
-{
- return o->merge_detect_rename >= 0 ? o->merge_detect_rename :
- o->diff_detect_rename >= 0 ? o->diff_detect_rename : 1;
-}
+/*
+ * rename-detecting three-way merge, no recursion.
+ *
+ * Outputs:
+ * - See RETURN VALUES above
+ * - No commit is created
+ * - opt->repo->index has the new index
+ * - $GIT_INDEX_FILE is not updated
+ * - The working tree is updated with results of the merge
+ */
+int merge_trees(struct merge_options *opt,
+ struct tree *head,
+ struct tree *merge,
+ struct tree *merge_base);
-/* merge_trees() but with recursive ancestor consolidation */
-int merge_recursive(struct merge_options *o,
+/*
+ * merge_recursive is like merge_trees() but with recursive ancestor
+ * consolidation and, if the commit is clean, creation of a commit.
+ *
+ * NOTE: empirically, about a decade ago it was determined that with more
+ * than two merge bases, optimal behavior was found when the
+ * merge_bases were passed in the order of oldest commit to newest
+ * commit. Also, merge_bases will be consumed (emptied) so make a
+ * copy if you need it.
+ *
+ * Outputs:
+ * - See RETURN VALUES above
+ * - If merge is clean, a commit is created and its address written to *result
+ * - opt->repo->index has the new index
+ * - $GIT_INDEX_FILE is not updated
+ * - The working tree is updated with results of the merge
+ */
+int merge_recursive(struct merge_options *opt,
struct commit *h1,
struct commit *h2,
- struct commit_list *ancestors,
+ struct commit_list *merge_bases,
struct commit **result);
-/* rename-detecting three-way merge, no recursion */
-int merge_trees(struct merge_options *o,
- struct tree *head,
- struct tree *merge,
- struct tree *common,
- struct tree **result);
-
/*
- * "git-merge-recursive" can be fed trees; wrap them into
- * virtual commits and call merge_recursive() proper.
+ * merge_recursive_generic can operate on trees instead of commits, by
+ * wrapping the trees into virtual commits, and calling merge_recursive().
+ * It also writes out the in-memory index to disk if the merge is successful.
+ *
+ * Outputs:
+ * - See RETURN VALUES above
+ * - If merge is clean, a commit is created and its address written to *result
+ * - opt->repo->index has the new index
+ * - $GIT_INDEX_FILE is updated
+ * - The working tree is updated with results of the merge
*/
-int merge_recursive_generic(struct merge_options *o,
+int merge_recursive_generic(struct merge_options *opt,
const struct object_id *head,
const struct object_id *merge,
- int num_ca,
- const struct object_id **ca,
+ int num_merge_bases,
+ const struct object_id **merge_bases,
struct commit **result);
-void init_merge_options(struct merge_options *o,
- struct repository *repo);
-struct tree *write_tree_from_memory(struct merge_options *o);
-
-int parse_merge_opt(struct merge_options *out, const char *s);
-
#endif
diff --git a/midx.c b/midx.c
index d649644..f29afc0 100644
--- a/midx.c
+++ b/midx.c
@@ -19,8 +19,7 @@
#define MIDX_BYTE_NUM_PACKS 8
#define MIDX_HASH_VERSION 1
#define MIDX_HEADER_SIZE 12
-#define MIDX_HASH_LEN 20
-#define MIDX_MIN_SIZE (MIDX_HEADER_SIZE + MIDX_HASH_LEN)
+#define MIDX_MIN_SIZE (MIDX_HEADER_SIZE + the_hash_algo->rawsz)
#define MIDX_MAX_CHUNKS 5
#define MIDX_CHUNK_ALIGNMENT 4
@@ -93,7 +92,7 @@ struct multi_pack_index *load_multi_pack_index(const char *object_dir, int local
hash_version = m->data[MIDX_BYTE_HASH_VERSION];
if (hash_version != MIDX_HASH_VERSION)
die(_("hash version %u does not match"), hash_version);
- m->hash_len = MIDX_HASH_LEN;
+ m->hash_len = the_hash_algo->rawsz;
m->num_chunks = m->data[MIDX_BYTE_NUM_CHUNKS];
@@ -234,7 +233,7 @@ int prepare_midx_pack(struct repository *r, struct multi_pack_index *m, uint32_t
int bsearch_midx(const struct object_id *oid, struct multi_pack_index *m, uint32_t *result)
{
return bsearch_hash(oid->hash, m->chunk_oid_fanout, m->chunk_oid_lookup,
- MIDX_HASH_LEN, result);
+ the_hash_algo->rawsz, result);
}
struct object_id *nth_midxed_object_oid(struct object_id *oid,
@@ -928,7 +927,7 @@ static int write_midx_internal(const char *object_dir, struct multi_pack_index *
cur_chunk++;
chunk_ids[cur_chunk] = MIDX_CHUNKID_OBJECTOFFSETS;
- chunk_offsets[cur_chunk] = chunk_offsets[cur_chunk - 1] + nr_entries * MIDX_HASH_LEN;
+ chunk_offsets[cur_chunk] = chunk_offsets[cur_chunk - 1] + nr_entries * the_hash_algo->rawsz;
cur_chunk++;
chunk_offsets[cur_chunk] = chunk_offsets[cur_chunk - 1] + nr_entries * MIDX_CHUNK_OFFSET_WIDTH;
@@ -976,7 +975,7 @@ static int write_midx_internal(const char *object_dir, struct multi_pack_index *
break;
case MIDX_CHUNKID_OIDLOOKUP:
- written += write_midx_oid_lookup(f, MIDX_HASH_LEN, entries, nr_entries);
+ written += write_midx_oid_lookup(f, the_hash_algo->rawsz, entries, nr_entries);
break;
case MIDX_CHUNKID_OBJECTOFFSETS:
diff --git a/name-hash.c b/name-hash.c
index 6959086..ceb1d7b 100644
--- a/name-hash.c
+++ b/name-hash.c
@@ -17,14 +17,16 @@ struct dir_entry {
};
static int dir_entry_cmp(const void *unused_cmp_data,
- const void *entry,
- const void *entry_or_key,
+ const struct hashmap_entry *eptr,
+ const struct hashmap_entry *entry_or_key,
const void *keydata)
{
- const struct dir_entry *e1 = entry;
- const struct dir_entry *e2 = entry_or_key;
+ const struct dir_entry *e1, *e2;
const char *name = keydata;
+ e1 = container_of(eptr, const struct dir_entry, ent);
+ e2 = container_of(entry_or_key, const struct dir_entry, ent);
+
return e1->namelen != e2->namelen || strncasecmp(e1->name,
name ? name : e2->name, e1->namelen);
}
@@ -33,9 +35,9 @@ static struct dir_entry *find_dir_entry__hash(struct index_state *istate,
const char *name, unsigned int namelen, unsigned int hash)
{
struct dir_entry key;
- hashmap_entry_init(&key, hash);
+ hashmap_entry_init(&key.ent, hash);
key.namelen = namelen;
- return hashmap_get(&istate->dir_hash, &key, name);
+ return hashmap_get_entry(&istate->dir_hash, &key, ent, name);
}
static struct dir_entry *find_dir_entry(struct index_state *istate,
@@ -68,9 +70,9 @@ static struct dir_entry *hash_dir_entry(struct index_state *istate,
if (!dir) {
/* not found, create it and add to hash table */
FLEX_ALLOC_MEM(dir, name, ce->name, namelen);
- hashmap_entry_init(dir, memihash(ce->name, namelen));
+ hashmap_entry_init(&dir->ent, memihash(ce->name, namelen));
dir->namelen = namelen;
- hashmap_add(&istate->dir_hash, dir);
+ hashmap_add(&istate->dir_hash, &dir->ent);
/* recursively add missing parent directories */
dir->parent = hash_dir_entry(istate, ce, namelen);
@@ -95,7 +97,7 @@ static void remove_dir_entry(struct index_state *istate, struct cache_entry *ce)
struct dir_entry *dir = hash_dir_entry(istate, ce, ce_namelen(ce));
while (dir && !(--dir->nr)) {
struct dir_entry *parent = dir->parent;
- hashmap_remove(&istate->dir_hash, dir, NULL);
+ hashmap_remove(&istate->dir_hash, &dir->ent, NULL);
free(dir);
dir = parent;
}
@@ -106,20 +108,23 @@ static void hash_index_entry(struct index_state *istate, struct cache_entry *ce)
if (ce->ce_flags & CE_HASHED)
return;
ce->ce_flags |= CE_HASHED;
- hashmap_entry_init(ce, memihash(ce->name, ce_namelen(ce)));
- hashmap_add(&istate->name_hash, ce);
+ hashmap_entry_init(&ce->ent, memihash(ce->name, ce_namelen(ce)));
+ hashmap_add(&istate->name_hash, &ce->ent);
if (ignore_case)
add_dir_entry(istate, ce);
}
static int cache_entry_cmp(const void *unused_cmp_data,
- const void *entry,
- const void *entry_or_key,
+ const struct hashmap_entry *eptr,
+ const struct hashmap_entry *entry_or_key,
const void *remove)
{
- const struct cache_entry *ce1 = entry;
- const struct cache_entry *ce2 = entry_or_key;
+ const struct cache_entry *ce1, *ce2;
+
+ ce1 = container_of(eptr, const struct cache_entry, ent);
+ ce2 = container_of(entry_or_key, const struct cache_entry, ent);
+
/*
* For remove_name_hash, find the exact entry (pointer equality); for
* index_file_exists, find all entries with matching hash code and
@@ -280,10 +285,10 @@ static struct dir_entry *hash_dir_entry_with_parent_and_prefix(
dir = find_dir_entry__hash(istate, prefix->buf, prefix->len, hash);
if (!dir) {
FLEX_ALLOC_MEM(dir, name, prefix->buf, prefix->len);
- hashmap_entry_init(dir, hash);
+ hashmap_entry_init(&dir->ent, hash);
dir->namelen = prefix->len;
dir->parent = parent;
- hashmap_add(&istate->dir_hash, dir);
+ hashmap_add(&istate->dir_hash, &dir->ent);
if (parent) {
unlock_dir_mutex(lock_nr);
@@ -472,8 +477,8 @@ static void *lazy_name_thread_proc(void *_data)
for (k = 0; k < d->istate->cache_nr; k++) {
struct cache_entry *ce_k = d->istate->cache[k];
ce_k->ce_flags |= CE_HASHED;
- hashmap_entry_init(ce_k, d->lazy_entries[k].hash_name);
- hashmap_add(&d->istate->name_hash, ce_k);
+ hashmap_entry_init(&ce_k->ent, d->lazy_entries[k].hash_name);
+ hashmap_add(&d->istate->name_hash, &ce_k->ent);
}
return NULL;
@@ -625,7 +630,7 @@ void remove_name_hash(struct index_state *istate, struct cache_entry *ce)
if (!istate->name_hash_initialized || !(ce->ce_flags & CE_HASHED))
return;
ce->ce_flags &= ~CE_HASHED;
- hashmap_remove(&istate->name_hash, ce, ce);
+ hashmap_remove(&istate->name_hash, &ce->ent, ce);
if (ignore_case)
remove_dir_entry(istate, ce);
@@ -702,15 +707,15 @@ void adjust_dirname_case(struct index_state *istate, char *name)
struct cache_entry *index_file_exists(struct index_state *istate, const char *name, int namelen, int icase)
{
struct cache_entry *ce;
+ unsigned int hash = memihash(name, namelen);
lazy_init_name_hash(istate);
- ce = hashmap_get_from_hash(&istate->name_hash,
- memihash(name, namelen), NULL);
- while (ce) {
+ ce = hashmap_get_entry_from_hash(&istate->name_hash, hash, NULL,
+ struct cache_entry, ent);
+ hashmap_for_each_entry_from(&istate->name_hash, ce, ent) {
if (same_name(ce, name, namelen, icase))
return ce;
- ce = hashmap_get_next(&istate->name_hash, ce);
}
return NULL;
}
@@ -721,6 +726,6 @@ void free_name_hash(struct index_state *istate)
return;
istate->name_hash_initialized = 0;
- hashmap_free(&istate->name_hash, 0);
- hashmap_free(&istate->dir_hash, 1);
+ hashmap_free(&istate->name_hash);
+ hashmap_free_entries(&istate->dir_hash, struct dir_entry, ent);
}
diff --git a/notes.c b/notes.c
index 75c028b..03e7d0c 100644
--- a/notes.c
+++ b/notes.c
@@ -269,8 +269,10 @@ static int note_tree_insert(struct notes_tree *t, struct int_node *tree,
case PTR_TYPE_NOTE:
if (oideq(&l->key_oid, &entry->key_oid)) {
/* skip concatenation if l == entry */
- if (oideq(&l->val_oid, &entry->val_oid))
+ if (oideq(&l->val_oid, &entry->val_oid)) {
+ free(entry);
return 0;
+ }
ret = combine_notes(&l->val_oid,
&entry->val_oid);
@@ -458,7 +460,7 @@ static void load_subtree(struct notes_tree *t, struct leaf_node *subtree,
die("Failed to load %s %s into notes tree "
"from %s",
type == PTR_TYPE_NOTE ? "note" : "subtree",
- oid_to_hex(&l->key_oid), t->ref);
+ oid_to_hex(&object_oid), t->ref);
continue;
diff --git a/object.c b/object.c
index 07bdd5b..3b8b8c5 100644
--- a/object.c
+++ b/object.c
@@ -7,7 +7,6 @@
#include "commit.h"
#include "tag.h"
#include "alloc.h"
-#include "object-store.h"
#include "packfile.h"
#include "commit-graph.h"
diff --git a/object.h b/object.h
index 0120892..25f5ab3 100644
--- a/object.h
+++ b/object.h
@@ -68,7 +68,8 @@ struct object_array {
* bisect.c: 16
* bundle.c: 16
* http-push.c: 16-----19
- * commit-reach.c: 15-------19
+ * commit-graph.c: 15
+ * commit-reach.c: 16-----19
* sha1-name.c: 20
* list-objects-filter.c: 21
* builtin/fsck.c: 0--3
diff --git a/oidmap.c b/oidmap.c
index 6d6e840..423aa01 100644
--- a/oidmap.c
+++ b/oidmap.c
@@ -2,14 +2,18 @@
#include "oidmap.h"
static int oidmap_neq(const void *hashmap_cmp_fn_data,
- const void *entry, const void *entry_or_key,
+ const struct hashmap_entry *e1,
+ const struct hashmap_entry *e2,
const void *keydata)
{
- const struct oidmap_entry *entry_ = entry;
+ const struct oidmap_entry *a, *b;
+
+ a = container_of(e1, const struct oidmap_entry, internal_entry);
+ b = container_of(e2, const struct oidmap_entry, internal_entry);
+
if (keydata)
- return !oideq(&entry_->oid, (const struct object_id *) keydata);
- return !oideq(&entry_->oid,
- &((const struct oidmap_entry *) entry_or_key)->oid);
+ return !oideq(&a->oid, (const struct object_id *) keydata);
+ return !oideq(&a->oid, &b->oid);
}
void oidmap_init(struct oidmap *map, size_t initial_size)
@@ -21,7 +25,9 @@ void oidmap_free(struct oidmap *map, int free_entries)
{
if (!map)
return;
- hashmap_free(&map->map, free_entries);
+
+ /* TODO: make oidmap itself not depend on struct layouts */
+ hashmap_free_(&map->map, free_entries ? 0 : -1);
}
void *oidmap_get(const struct oidmap *map, const struct object_id *key)
@@ -51,5 +57,5 @@ void *oidmap_put(struct oidmap *map, void *entry)
oidmap_init(map, 0);
hashmap_entry_init(&to_put->internal_entry, oidhash(&to_put->oid));
- return hashmap_put(&map->map, to_put);
+ return hashmap_put(&map->map, &to_put->internal_entry);
}
diff --git a/oidmap.h b/oidmap.h
index 7a93946..c66a83a 100644
--- a/oidmap.h
+++ b/oidmap.h
@@ -78,14 +78,16 @@ static inline void oidmap_iter_init(struct oidmap *map, struct oidmap_iter *iter
static inline void *oidmap_iter_next(struct oidmap_iter *iter)
{
- return hashmap_iter_next(&iter->h_iter);
+ /* TODO: this API could be reworked to do compile-time type checks */
+ return (void *)hashmap_iter_next(&iter->h_iter);
}
static inline void *oidmap_iter_first(struct oidmap *map,
struct oidmap_iter *iter)
{
oidmap_iter_init(map, iter);
- return oidmap_iter_next(iter);
+ /* TODO: this API could be reworked to do compile-time type checks */
+ return (void *)oidmap_iter_next(iter);
}
#endif
diff --git a/pack-bitmap-write.c b/pack-bitmap-write.c
index fa78a46..a7a4964 100644
--- a/pack-bitmap-write.c
+++ b/pack-bitmap-write.c
@@ -144,7 +144,7 @@ static inline void reset_all_seen(void)
static uint32_t find_object_pos(const struct object_id *oid)
{
- struct object_entry *entry = packlist_find(writer.to_pack, oid, NULL);
+ struct object_entry *entry = packlist_find(writer.to_pack, oid);
if (!entry) {
die("Failed to write bitmap index. Packfile doesn't have full closure "
diff --git a/pack-bitmap.c b/pack-bitmap.c
index ed2befa..e07c798 100644
--- a/pack-bitmap.c
+++ b/pack-bitmap.c
@@ -709,9 +709,7 @@ struct bitmap_index *prepare_bitmap_walk(struct rev_info *revs)
else
object_list_insert(object, &wants);
- if (!tag->tagged)
- die("bad tag");
- object = parse_object_or_die(&tag->tagged->oid, NULL);
+ object = parse_object_or_die(get_tagged_oid(tag), NULL);
}
if (object->flags & UNINTERESTING)
@@ -1063,7 +1061,7 @@ int rebuild_existing_bitmaps(struct bitmap_index *bitmap_git,
entry = &bitmap_git->pack->revindex[i];
nth_packed_object_oid(&oid, bitmap_git->pack, entry->nr);
- oe = packlist_find(mapping, &oid, NULL);
+ oe = packlist_find(mapping, &oid);
if (oe)
reposition[i] = oe_in_pack_pos(mapping, oe) + 1;
diff --git a/pack-bitmap.h b/pack-bitmap.h
index 00de3ec..466c5af 100644
--- a/pack-bitmap.h
+++ b/pack-bitmap.h
@@ -9,16 +9,16 @@ struct commit;
struct repository;
struct rev_info;
+static const char BITMAP_IDX_SIGNATURE[] = {'B', 'I', 'T', 'M'};
+
struct bitmap_disk_header {
- char magic[4];
+ char magic[ARRAY_SIZE(BITMAP_IDX_SIGNATURE)];
uint16_t version;
uint16_t options;
uint32_t entry_count;
unsigned char checksum[GIT_MAX_RAWSZ];
};
-static const char BITMAP_IDX_SIGNATURE[] = {'B', 'I', 'T', 'M'};
-
#define NEEDS_BITMAP (1u<<22)
enum pack_bitmap_opts {
diff --git a/pack-objects.c b/pack-objects.c
index 5256029..c6250d7 100644
--- a/pack-objects.c
+++ b/pack-objects.c
@@ -68,8 +68,7 @@ static void rehash_objects(struct packing_data *pdata)
}
struct object_entry *packlist_find(struct packing_data *pdata,
- const struct object_id *oid,
- uint32_t *index_pos)
+ const struct object_id *oid)
{
uint32_t i;
int found;
@@ -79,9 +78,6 @@ struct object_entry *packlist_find(struct packing_data *pdata,
i = locate_object_entry_hash(pdata, oid, &found);
- if (index_pos)
- *index_pos = i;
-
if (!found)
return NULL;
@@ -153,8 +149,7 @@ void prepare_packing_data(struct repository *r, struct packing_data *pdata)
}
struct object_entry *packlist_alloc(struct packing_data *pdata,
- const unsigned char *sha1,
- uint32_t index_pos)
+ const struct object_id *oid)
{
struct object_entry *new_entry;
@@ -177,12 +172,19 @@ struct object_entry *packlist_alloc(struct packing_data *pdata,
new_entry = pdata->objects + pdata->nr_objects++;
memset(new_entry, 0, sizeof(*new_entry));
- hashcpy(new_entry->idx.oid.hash, sha1);
+ oidcpy(&new_entry->idx.oid, oid);
if (pdata->index_size * 3 <= pdata->nr_objects * 4)
rehash_objects(pdata);
- else
- pdata->index[index_pos] = pdata->nr_objects;
+ else {
+ int found;
+ uint32_t pos = locate_object_entry_hash(pdata,
+ &new_entry->idx.oid,
+ &found);
+ if (found)
+ BUG("duplicate object inserted into hash");
+ pdata->index[pos] = pdata->nr_objects;
+ }
if (pdata->in_pack)
pdata->in_pack[pdata->nr_objects - 1] = NULL;
diff --git a/pack-objects.h b/pack-objects.h
index 857d438..6fe6ae5 100644
--- a/pack-objects.h
+++ b/pack-objects.h
@@ -183,12 +183,10 @@ static inline void packing_data_unlock(struct packing_data *pdata)
}
struct object_entry *packlist_alloc(struct packing_data *pdata,
- const unsigned char *sha1,
- uint32_t index_pos);
+ const struct object_id *oid);
struct object_entry *packlist_find(struct packing_data *pdata,
- const struct object_id *oid,
- uint32_t *index_pos);
+ const struct object_id *oid);
static inline uint32_t pack_name_hash(const char *name)
{
diff --git a/pack-write.c b/pack-write.c
index 29d17a9..f0017be 100644
--- a/pack-write.c
+++ b/pack-write.c
@@ -349,7 +349,7 @@ void finish_tmp_packfile(struct strbuf *name_buffer,
struct pack_idx_entry **written_list,
uint32_t nr_written,
struct pack_idx_option *pack_idx_opts,
- unsigned char sha1[])
+ unsigned char hash[])
{
const char *idx_tmp_name;
int basename_len = name_buffer->len;
@@ -358,18 +358,18 @@ void finish_tmp_packfile(struct strbuf *name_buffer,
die_errno("unable to make temporary pack file readable");
idx_tmp_name = write_idx_file(NULL, written_list, nr_written,
- pack_idx_opts, sha1);
+ pack_idx_opts, hash);
if (adjust_shared_perm(idx_tmp_name))
die_errno("unable to make temporary index file readable");
- strbuf_addf(name_buffer, "%s.pack", sha1_to_hex(sha1));
+ strbuf_addf(name_buffer, "%s.pack", hash_to_hex(hash));
if (rename(pack_tmp_name, name_buffer->buf))
die_errno("unable to rename temporary pack file");
strbuf_setlen(name_buffer, basename_len);
- strbuf_addf(name_buffer, "%s.idx", sha1_to_hex(sha1));
+ strbuf_addf(name_buffer, "%s.idx", hash_to_hex(hash));
if (rename(idx_tmp_name, name_buffer->buf))
die_errno("unable to rename temporary index file");
diff --git a/packfile.c b/packfile.c
index fc43a6c..355066d 100644
--- a/packfile.c
+++ b/packfile.c
@@ -6,7 +6,6 @@
#include "mergesort.h"
#include "packfile.h"
#include "delta.h"
-#include "list.h"
#include "streaming.h"
#include "sha1-lookup.h"
#include "commit.h"
@@ -17,14 +16,15 @@
#include "object-store.h"
#include "midx.h"
#include "commit-graph.h"
+#include "promisor-remote.h"
char *odb_pack_name(struct strbuf *buf,
- const unsigned char *sha1,
+ const unsigned char *hash,
const char *ext)
{
strbuf_reset(buf);
strbuf_addf(buf, "%s/pack/pack-%s.%s", get_object_directory(),
- sha1_to_hex(sha1), ext);
+ hash_to_hex(hash), ext);
return buf->buf;
}
@@ -287,13 +287,6 @@ static int unuse_one_window(struct packed_git *current)
return 0;
}
-void release_pack_memory(size_t need)
-{
- size_t cur = pack_mapped;
- while (need >= (cur - pack_mapped) && unuse_one_window(NULL))
- ; /* nothing */
-}
-
void close_pack_windows(struct packed_git *p)
{
while (p->windows) {
@@ -710,23 +703,12 @@ void unuse_pack(struct pack_window **w_cursor)
}
}
-static void try_to_free_pack_memory(size_t size)
-{
- release_pack_memory(size);
-}
-
struct packed_git *add_packed_git(const char *path, size_t path_len, int local)
{
- static int have_set_try_to_free_routine;
struct stat st;
size_t alloc;
struct packed_git *p;
- if (!have_set_try_to_free_routine) {
- have_set_try_to_free_routine = 1;
- set_try_to_free_routine(try_to_free_pack_memory);
- }
-
/*
* Make sure a corresponding .pack file exists and that
* the index looks sane.
@@ -1361,7 +1343,7 @@ struct delta_base_cache_key {
};
struct delta_base_cache_entry {
- struct hashmap hash;
+ struct hashmap_entry ent;
struct delta_base_cache_key key;
struct list_head lru;
void *data;
@@ -1381,7 +1363,7 @@ static unsigned int pack_entry_hash(struct packed_git *p, off_t base_offset)
static struct delta_base_cache_entry *
get_delta_base_cache_entry(struct packed_git *p, off_t base_offset)
{
- struct hashmap_entry entry;
+ struct hashmap_entry entry, *e;
struct delta_base_cache_key key;
if (!delta_base_cache.cmpfn)
@@ -1390,7 +1372,8 @@ get_delta_base_cache_entry(struct packed_git *p, off_t base_offset)
hashmap_entry_init(&entry, pack_entry_hash(p, base_offset));
key.p = p;
key.base_offset = base_offset;
- return hashmap_get(&delta_base_cache, &entry, &key);
+ e = hashmap_get(&delta_base_cache, &entry, &key);
+ return e ? container_of(e, struct delta_base_cache_entry, ent) : NULL;
}
static int delta_base_cache_key_eq(const struct delta_base_cache_key *a,
@@ -1400,11 +1383,16 @@ static int delta_base_cache_key_eq(const struct delta_base_cache_key *a,
}
static int delta_base_cache_hash_cmp(const void *unused_cmp_data,
- const void *va, const void *vb,
+ const struct hashmap_entry *va,
+ const struct hashmap_entry *vb,
const void *vkey)
{
- const struct delta_base_cache_entry *a = va, *b = vb;
+ const struct delta_base_cache_entry *a, *b;
const struct delta_base_cache_key *key = vkey;
+
+ a = container_of(va, const struct delta_base_cache_entry, ent);
+ b = container_of(vb, const struct delta_base_cache_entry, ent);
+
if (key)
return !delta_base_cache_key_eq(&a->key, key);
else
@@ -1423,7 +1411,7 @@ static int in_delta_base_cache(struct packed_git *p, off_t base_offset)
*/
static void detach_delta_base_cache_entry(struct delta_base_cache_entry *ent)
{
- hashmap_remove(&delta_base_cache, ent, &ent->key);
+ hashmap_remove(&delta_base_cache, &ent->ent, &ent->key);
list_del(&ent->lru);
delta_base_cached -= ent->size;
free(ent);
@@ -1487,8 +1475,8 @@ static void add_delta_base_cache(struct packed_git *p, off_t base_offset,
if (!delta_base_cache.cmpfn)
hashmap_init(&delta_base_cache, delta_base_cache_hash_cmp, NULL, 0);
- hashmap_entry_init(ent, pack_entry_hash(p, base_offset));
- hashmap_add(&delta_base_cache, ent);
+ hashmap_entry_init(&ent->ent, pack_entry_hash(p, base_offset));
+ hashmap_add(&delta_base_cache, &ent->ent);
}
int packed_object_info(struct repository *r, struct packed_git *p,
@@ -2139,7 +2127,7 @@ static int add_promisor_object(const struct object_id *oid,
oidset_insert(set, &parents->item->object.oid);
} else if (obj->type == OBJ_TAG) {
struct tag *tag = (struct tag *) obj;
- oidset_insert(set, &tag->tagged->oid);
+ oidset_insert(set, get_tagged_oid(tag));
}
return 0;
}
@@ -2150,7 +2138,7 @@ int is_promisor_object(const struct object_id *oid)
static int promisor_objects_prepared;
if (!promisor_objects_prepared) {
- if (repository_format_partial_clone) {
+ if (has_promisor_remote()) {
for_each_packed_object(add_promisor_object,
&promisor_objects,
FOR_EACH_OBJECT_PROMISOR_ONLY);
diff --git a/packfile.h b/packfile.h
index 3e98910..fc7904e 100644
--- a/packfile.h
+++ b/packfile.h
@@ -100,7 +100,7 @@ struct packed_git *add_packed_git(const char *path, size_t path_len, int local);
* Does not unlink if 'force_delete' is false and the pack-file is
* marked as ".keep".
*/
-extern void unlink_pack_path(const char *pack_name, int force_delete);
+void unlink_pack_path(const char *pack_name, int force_delete);
/*
* Make sure that a pointer access into an mmap'd index file is within bounds,
diff --git a/parse-options.c b/parse-options.c
index 87b26a1..b42f54d 100644
--- a/parse-options.c
+++ b/parse-options.c
@@ -780,7 +780,8 @@ int parse_options_step(struct parse_opt_ctx_t *ctx,
continue;
}
- if (!arg[2]) { /* "--" */
+ if (!arg[2] /* "--" */ ||
+ !strcmp(arg + 2, "end-of-options")) {
if (!(ctx->flags & PARSE_OPT_KEEP_DASHDASH)) {
ctx->argc--;
ctx->argv++;
diff --git a/parse-options.h b/parse-options.h
index a4bd40b..38a33a0 100644
--- a/parse-options.h
+++ b/parse-options.h
@@ -46,6 +46,15 @@ enum parse_opt_option_flags {
PARSE_OPT_COMP_ARG = 1024
};
+enum parse_opt_result {
+ PARSE_OPT_COMPLETE = -3,
+ PARSE_OPT_HELP = -2,
+ PARSE_OPT_ERROR = -1, /* must be the same as error() */
+ PARSE_OPT_DONE = 0, /* fixed so that "return 0" works */
+ PARSE_OPT_NON_OPTION,
+ PARSE_OPT_UNKNOWN
+};
+
struct option;
typedef int parse_opt_cb(const struct option *, const char *arg, int unset);
@@ -241,15 +250,6 @@ const char *optname(const struct option *opt, int flags);
/*----- incremental advanced APIs -----*/
-enum parse_opt_result {
- PARSE_OPT_COMPLETE = -3,
- PARSE_OPT_HELP = -2,
- PARSE_OPT_ERROR = -1, /* must be the same as error() */
- PARSE_OPT_DONE = 0, /* fixed so that "return 0" works */
- PARSE_OPT_NON_OPTION,
- PARSE_OPT_UNKNOWN
-};
-
/*
* It's okay for the caller to consume argv/argc in the usual way.
* Other fields of that structure are private to parse-options and should not
diff --git a/patch-ids.c b/patch-ids.c
index e8c150d..12aa6d4 100644
--- a/patch-ids.c
+++ b/patch-ids.c
@@ -36,14 +36,16 @@ int commit_patch_id(struct commit *commit, struct diff_options *options,
* any significance; only that it is non-zero matters.
*/
static int patch_id_neq(const void *cmpfn_data,
- const void *entry,
- const void *entry_or_key,
+ const struct hashmap_entry *eptr,
+ const struct hashmap_entry *entry_or_key,
const void *unused_keydata)
{
/* NEEDSWORK: const correctness? */
struct diff_options *opt = (void *)cmpfn_data;
- struct patch_id *a = (void *)entry;
- struct patch_id *b = (void *)entry_or_key;
+ struct patch_id *a, *b;
+
+ a = container_of(eptr, struct patch_id, ent);
+ b = container_of(entry_or_key, struct patch_id, ent);
if (is_null_oid(&a->patch_id) &&
commit_patch_id(a->commit, opt, &a->patch_id, 0, 0))
@@ -69,7 +71,7 @@ int init_patch_ids(struct repository *r, struct patch_ids *ids)
int free_patch_ids(struct patch_ids *ids)
{
- hashmap_free(&ids->patches, 1);
+ hashmap_free_entries(&ids->patches, struct patch_id, ent);
return 0;
}
@@ -83,7 +85,7 @@ static int init_patch_id_entry(struct patch_id *patch,
if (commit_patch_id(commit, &ids->diffopts, &header_only_patch_id, 1, 0))
return -1;
- hashmap_entry_init(patch, oidhash(&header_only_patch_id));
+ hashmap_entry_init(&patch->ent, oidhash(&header_only_patch_id));
return 0;
}
@@ -99,7 +101,7 @@ struct patch_id *has_commit_patch_id(struct commit *commit,
if (init_patch_id_entry(&patch, commit, ids))
return NULL;
- return hashmap_get(&ids->patches, &patch, NULL);
+ return hashmap_get_entry(&ids->patches, &patch, ent, NULL);
}
struct patch_id *add_commit_patch_id(struct commit *commit,
@@ -116,6 +118,6 @@ struct patch_id *add_commit_patch_id(struct commit *commit,
return NULL;
}
- hashmap_add(&ids->patches, key);
+ hashmap_add(&ids->patches, &key->ent);
return key;
}
diff --git a/path.c b/path.c
index 25e97b8..e3da1f3 100644
--- a/path.c
+++ b/path.c
@@ -1221,31 +1221,52 @@ static inline int chomp_trailing_dir_sep(const char *path, int len)
}
/*
- * If path ends with suffix (complete path components), returns the
- * part before suffix (sans trailing directory separators).
- * Otherwise returns NULL.
+ * If path ends with suffix (complete path components), returns the offset of
+ * the last character in the path before the suffix (sans trailing directory
+ * separators), and -1 otherwise.
*/
-char *strip_path_suffix(const char *path, const char *suffix)
+static ssize_t stripped_path_suffix_offset(const char *path, const char *suffix)
{
int path_len = strlen(path), suffix_len = strlen(suffix);
while (suffix_len) {
if (!path_len)
- return NULL;
+ return -1;
if (is_dir_sep(path[path_len - 1])) {
if (!is_dir_sep(suffix[suffix_len - 1]))
- return NULL;
+ return -1;
path_len = chomp_trailing_dir_sep(path, path_len);
suffix_len = chomp_trailing_dir_sep(suffix, suffix_len);
}
else if (path[--path_len] != suffix[--suffix_len])
- return NULL;
+ return -1;
}
if (path_len && !is_dir_sep(path[path_len - 1]))
- return NULL;
- return xstrndup(path, chomp_trailing_dir_sep(path, path_len));
+ return -1;
+ return chomp_trailing_dir_sep(path, path_len);
+}
+
+/*
+ * Returns true if the path ends with components, considering only complete path
+ * components, and false otherwise.
+ */
+int ends_with_path_components(const char *path, const char *components)
+{
+ return stripped_path_suffix_offset(path, components) != -1;
+}
+
+/*
+ * If path ends with suffix (complete path components), returns the
+ * part before suffix (sans trailing directory separators).
+ * Otherwise returns NULL.
+ */
+char *strip_path_suffix(const char *path, const char *suffix)
+{
+ ssize_t offset = stripped_path_suffix_offset(path, suffix);
+
+ return offset == -1 ? NULL : xstrndup(path, offset);
}
int daemon_avoid_alias(const char *p)
diff --git a/path.h b/path.h
index 2ba6ca5..14d6dca 100644
--- a/path.h
+++ b/path.h
@@ -193,4 +193,7 @@ const char *git_path_merge_head(struct repository *r);
const char *git_path_fetch_head(struct repository *r);
const char *git_path_shallow(struct repository *r);
+
+int ends_with_path_components(const char *path, const char *components);
+
#endif /* PATH_H */
diff --git a/perl/Git/SVN.pm b/perl/Git/SVN.pm
index 76b2965..4b28b87 100644
--- a/perl/Git/SVN.pm
+++ b/perl/Git/SVN.pm
@@ -1491,6 +1491,10 @@ sub call_authors_prog {
sub check_author {
my ($author) = @_;
+ if (defined $author) {
+ $author =~ s/^\s+//g;
+ $author =~ s/\s+$//g;
+ }
if (!defined $author || length $author == 0) {
$author = '(no author)';
}
diff --git a/po/bg.po b/po/bg.po
index e1d10db..e446c76 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -31,7 +31,7 @@
# am прилагам поредица от кръпки
# working directory/tree — винаги работно дърво, git Ñледи цÑлото дърво, а не директории, работна Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð·Ð° cwd
# switch to branch преминавам към клон
-# sparse entry чаÑтично изтеглена директориÑ/път
+# sparse entry/blob чаÑтично изтеглена директориÑ/път/обект-BLOB
# revision range диапазон на верÑиите
# cover letter придружаващо пиÑмо
# reference repository еталонно хранилище
@@ -155,10 +155,10 @@
# for i in `sort -u FILES`; do cnt=`grep $i FILES | wc -l`; echo $cnt $i ;done | sort -n
msgid ""
msgstr ""
-"Project-Id-Version: git 2.22\n"
+"Project-Id-Version: git 2.24\n"
"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2019-08-10 12:25+0300\n"
-"PO-Revision-Date: 2019-08-10 12:33+0300\n"
+"POT-Creation-Date: 2019-10-28 13:19+0800\n"
+"PO-Revision-Date: 2019-10-29 11:35+0100\n"
"Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
"Language: bg\n"
@@ -209,7 +209,7 @@ msgstr ""
msgid "Exiting because of an unresolved conflict."
msgstr "Изход от програмата заради некоригиран конфликт."
-#: advice.c:193 builtin/merge.c:1327
+#: advice.c:193 builtin/merge.c:1332
msgid "You have not concluded your merge (MERGE_HEAD exists)."
msgstr "Ðе Ñте завършили Ñливане. (УказателÑÑ‚ „MERGE_HEAD“ ÑъщеÑтвува)."
@@ -355,17 +355,7 @@ msgstr "грешен режим на ред №%d: %s"
msgid "inconsistent header lines %d and %d"
msgstr "неÑъвмеÑтими заглавни чаÑти на редове â„–%d и â„–%d"
-#: apply.c:1460
-#, c-format
-msgid "recount: unexpected line: %.*s"
-msgstr "при повторното преброÑване бе получен неочакван ред: „%.*s“"
-
-#: apply.c:1529
-#, c-format
-msgid "patch fragment without header at line %d: %.*s"
-msgstr "чаÑÑ‚ от кръпка без заглавна чаÑÑ‚ на ред %d: %.*s"
-
-#: apply.c:1551
+#: apply.c:1372
#, c-format
msgid ""
"git diff header lacks filename information when removing %d leading pathname "
@@ -380,71 +370,81 @@ msgstr[1] ""
"След Ñъкращаването на първите %d чаÑти от компонентите на пътÑ, в заглавната "
"чаÑÑ‚ на „git diff“ липÑва Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° име на файл (ред: %d)"
-#: apply.c:1564
+#: apply.c:1385
#, c-format
msgid "git diff header lacks filename information (line %d)"
msgstr ""
"в заглавната чаÑÑ‚ на „git diff“ липÑва Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° име на файл (ред: %d)"
-#: apply.c:1752
+#: apply.c:1481
+#, c-format
+msgid "recount: unexpected line: %.*s"
+msgstr "при повторното преброÑване бе получен неочакван ред: „%.*s“"
+
+#: apply.c:1550
+#, c-format
+msgid "patch fragment without header at line %d: %.*s"
+msgstr "чаÑÑ‚ от кръпка без заглавна чаÑÑ‚ на ред %d: %.*s"
+
+#: apply.c:1753
msgid "new file depends on old contents"
msgstr "новиÑÑ‚ файл завиÑи от Ñтарото Ñъдържание на файла"
-#: apply.c:1754
+#: apply.c:1755
msgid "deleted file still has contents"
msgstr "изтритиÑÑ‚ файл не е празен"
-#: apply.c:1788
+#: apply.c:1789
#, c-format
msgid "corrupt patch at line %d"
msgstr "грешка в кръпката на ред %d"
-#: apply.c:1825
+#: apply.c:1826
#, c-format
msgid "new file %s depends on old contents"
msgstr "новиÑÑ‚ файл „%s“ завиÑи от Ñтарото Ñъдържание на файла"
-#: apply.c:1827
+#: apply.c:1828
#, c-format
msgid "deleted file %s still has contents"
msgstr "изтритиÑÑ‚ файл „%s“ не е празен"
-#: apply.c:1830
+#: apply.c:1831
#, c-format
msgid "** warning: file %s becomes empty but is not deleted"
msgstr "◠предупреждение: файлът „%s“ вече е празен, но не е изтрит"
-#: apply.c:1977
+#: apply.c:1978
#, c-format
msgid "corrupt binary patch at line %d: %.*s"
msgstr "грешка в двоичната кръпка на ред %d: %.*s"
-#: apply.c:2014
+#: apply.c:2015
#, c-format
msgid "unrecognized binary patch at line %d"
msgstr "неразпозната двоичната кръпка на ред %d"
-#: apply.c:2176
+#: apply.c:2177
#, c-format
msgid "patch with only garbage at line %d"
msgstr "кръпката е Ñ Ð¸Ð·Ñ†Ñло повредени данни на ред %d"
-#: apply.c:2262
+#: apply.c:2263
#, c-format
msgid "unable to read symlink %s"
msgstr "Ñимволната връзка „%s“ не може да бъде прочетена"
-#: apply.c:2266
+#: apply.c:2267
#, c-format
msgid "unable to open or read %s"
msgstr "файлът „%s“ не може да бъде отворен или прочетен"
-#: apply.c:2925
+#: apply.c:2926
#, c-format
msgid "invalid start of line: '%c'"
msgstr "неправилно начало на ред: „%c“"
-#: apply.c:3046
+#: apply.c:3047
#, c-format
msgid "Hunk #%d succeeded at %d (offset %d line)."
msgid_plural "Hunk #%d succeeded at %d (offset %d lines)."
@@ -453,13 +453,13 @@ msgstr[0] ""
msgstr[1] ""
"%d-то парче код бе уÑпешно приложено на ред %d (отмеÑтване от %d реда)."
-#: apply.c:3058
+#: apply.c:3059
#, c-format
msgid "Context reduced to (%ld/%ld) to apply fragment at %d"
msgstr ""
"КонтекÑÑ‚ÑŠÑ‚ е намален на (%ld/%ld) за прилагането на парчето код на ред %d"
-#: apply.c:3064
+#: apply.c:3065
#, c-format
msgid ""
"while searching for:\n"
@@ -468,317 +468,317 @@ msgstr ""
"при Ñ‚ÑŠÑ€Ñене за:\n"
"%.*s"
-#: apply.c:3086
+#: apply.c:3087
#, c-format
msgid "missing binary patch data for '%s'"
msgstr "липÑват данните за двоичната кръпка за „%s“"
-#: apply.c:3094
+#: apply.c:3095
#, c-format
msgid "cannot reverse-apply a binary patch without the reverse hunk to '%s'"
msgstr ""
"двоичната кръпка не може да Ñе приложи в обратна поÑока, когато обратното "
"парче за „%s“ липÑва"
-#: apply.c:3141
+#: apply.c:3142
#, c-format
msgid "cannot apply binary patch to '%s' without full index line"
msgstr "към „%s“ не може да Ñе приложи двоична кръпка без пълен индекÑ"
-#: apply.c:3151
+#: apply.c:3152
#, c-format
msgid ""
"the patch applies to '%s' (%s), which does not match the current contents."
msgstr "кръпката ÑъответÑтва на „%s“ (%s), който не Ñъвпада по Ñъдържание."
-#: apply.c:3159
+#: apply.c:3160
#, c-format
msgid "the patch applies to an empty '%s' but it is not empty"
msgstr "кръпката ÑъответÑтва на „%s“, който Ñ‚Ñ€Ñбва да е празен, но не е"
-#: apply.c:3177
+#: apply.c:3178
#, c-format
msgid "the necessary postimage %s for '%s' cannot be read"
msgstr ""
"необходимиÑÑ‚ резултат Ñлед операциÑта — „%s“ за „%s“ не може да бъде "
"прочетен"
-#: apply.c:3190
+#: apply.c:3191
#, c-format
msgid "binary patch does not apply to '%s'"
msgstr "двоичната кръпка не може да бъде приложена върху „%s“"
-#: apply.c:3196
+#: apply.c:3197
#, c-format
msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)"
msgstr ""
"двоичната кръпка за „%s“ води до неправилни резултати (очакваше Ñе: „%s“, а "
"бе получено: „%s“)"
-#: apply.c:3217
+#: apply.c:3218
#, c-format
msgid "patch failed: %s:%ld"
msgstr "неуÑпешно прилагане на кръпка: „%s:%ld“"
-#: apply.c:3340
+#: apply.c:3341
#, c-format
msgid "cannot checkout %s"
msgstr "„%s“ не може да Ñе изтегли"
-#: apply.c:3392 apply.c:3403 apply.c:3449 midx.c:62 setup.c:279
+#: apply.c:3393 apply.c:3404 apply.c:3450 midx.c:61 setup.c:280
#, c-format
msgid "failed to read %s"
msgstr "файлът „%s“ не може да бъде прочетен"
-#: apply.c:3400
+#: apply.c:3401
#, c-format
msgid "reading from '%s' beyond a symbolic link"
msgstr "изчитане на „%s“ Ñлед проÑледÑване на Ñимволна връзка"
-#: apply.c:3429 apply.c:3672
+#: apply.c:3430 apply.c:3673
#, c-format
msgid "path %s has been renamed/deleted"
msgstr "обектът Ñ Ð¿ÑŠÑ‚ „%s“ е преименуван или изтрит"
-#: apply.c:3515 apply.c:3687
+#: apply.c:3516 apply.c:3688
#, c-format
msgid "%s: does not exist in index"
msgstr "„%s“ не ÑъщеÑтвува в индекÑа"
-#: apply.c:3524 apply.c:3695
+#: apply.c:3525 apply.c:3696
#, c-format
msgid "%s: does not match index"
msgstr "„%s“ не ÑъответÑтва на индекÑа"
-#: apply.c:3559
+#: apply.c:3560
msgid "repository lacks the necessary blob to fall back on 3-way merge."
msgstr ""
"в хранилището липÑват необходимите обекти-BLOB, за да Ñе премине към тройно "
"Ñливане."
-#: apply.c:3562
+#: apply.c:3563
#, c-format
msgid "Falling back to three-way merge...\n"
msgstr "Преминаване към тройно Ñливане…\n"
-#: apply.c:3578 apply.c:3582
+#: apply.c:3579 apply.c:3583
#, c-format
msgid "cannot read the current contents of '%s'"
msgstr "текущото Ñъдържание на „%s“ не може да бъде прочетено"
-#: apply.c:3594
+#: apply.c:3595
#, c-format
msgid "Failed to fall back on three-way merge...\n"
msgstr "ÐеуÑпешно преминаване към тройно Ñливане…\n"
-#: apply.c:3608
+#: apply.c:3609
#, c-format
msgid "Applied patch to '%s' with conflicts.\n"
msgstr "Конфликти при прилагането на кръпката към „%s“.\n"
-#: apply.c:3613
+#: apply.c:3614
#, c-format
msgid "Applied patch to '%s' cleanly.\n"
msgstr "Кръпката бе приложена чиÑто към „%s“.\n"
-#: apply.c:3639
+#: apply.c:3640
msgid "removal patch leaves file contents"
msgstr "изтриващата кръпка оÑÑ‚Ð°Ð²Ñ Ñ„Ð°Ð¹Ð»Ð° непразен"
-#: apply.c:3712
+#: apply.c:3713
#, c-format
msgid "%s: wrong type"
msgstr "„%s“: неправилен вид"
-#: apply.c:3714
+#: apply.c:3715
#, c-format
msgid "%s has type %o, expected %o"
msgstr "„%s“ е от вид „%o“, а Ñе очакваше „%o“"
-#: apply.c:3865 apply.c:3867 read-cache.c:830 read-cache.c:856
+#: apply.c:3866 apply.c:3868 read-cache.c:830 read-cache.c:856
#: read-cache.c:1309
#, c-format
msgid "invalid path '%s'"
msgstr "неправилен път: „%s“"
-#: apply.c:3923
+#: apply.c:3924
#, c-format
msgid "%s: already exists in index"
msgstr "„%s“: вече ÑъщеÑтвува в индекÑа"
-#: apply.c:3926
+#: apply.c:3927
#, c-format
msgid "%s: already exists in working directory"
msgstr "„%s“: вече ÑъщеÑтвува в работното дърво"
-#: apply.c:3946
+#: apply.c:3947
#, c-format
msgid "new mode (%o) of %s does not match old mode (%o)"
msgstr "новите права за доÑтъп (%o) на „%s“ не Ñъвпадат ÑÑŠÑ Ñтарите (%o)"
-#: apply.c:3951
+#: apply.c:3952
#, c-format
msgid "new mode (%o) of %s does not match old mode (%o) of %s"
msgstr ""
"новите права за доÑтъп (%o) на „%s“ не Ñъвпадат ÑÑŠÑ Ñтарите (%o) на „%s“"
-#: apply.c:3971
+#: apply.c:3972
#, c-format
msgid "affected file '%s' is beyond a symbolic link"
msgstr "заÑегнатиÑÑ‚ файл „%s“ е Ñлед Ñимволна връзка"
-#: apply.c:3975
+#: apply.c:3976
#, c-format
msgid "%s: patch does not apply"
msgstr "Кръпката „%s“ не може да бъде приложена"
-#: apply.c:3990
+#: apply.c:3991
#, c-format
msgid "Checking patch %s..."
msgstr "ПроверÑване на кръпката „%s“…"
-#: apply.c:4082
+#: apply.c:4083
#, c-format
msgid "sha1 information is lacking or useless for submodule %s"
msgstr ""
"информациÑта за Ñумата по SHA1 за подмодула липÑва или не е доÑтатъчна (%s)."
-#: apply.c:4089
+#: apply.c:4090
#, c-format
msgid "mode change for %s, which is not in current HEAD"
msgstr "ÑмÑна на режима на доÑтъпа на „%s“, който не е в Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ Ð²Ñ€ÑŠÑ… „HEAD“"
-#: apply.c:4092
+#: apply.c:4093
#, c-format
msgid "sha1 information is lacking or useless (%s)."
msgstr "информациÑта за Ñумата по SHA1 липÑва или не е доÑтатъчна (%s)."
-#: apply.c:4097 builtin/checkout.c:278 builtin/reset.c:143
+#: apply.c:4098 builtin/checkout.c:279 builtin/reset.c:143
#, c-format
msgid "make_cache_entry failed for path '%s'"
msgstr "неуÑпешно Ñъздаване на Ð·Ð°Ð¿Ð¸Ñ Ð² кеша чрез „make_cache_entry“ за „%s“"
-#: apply.c:4101
+#: apply.c:4102
#, c-format
msgid "could not add %s to temporary index"
msgstr "„%s“ не може да Ñе добави към Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑ"
-#: apply.c:4111
+#: apply.c:4112
#, c-format
msgid "could not write temporary index to %s"
msgstr "временниÑÑ‚ Ð¸Ð½Ð´ÐµÐºÑ Ð½Ðµ може да Ñе запази в „%s“"
-#: apply.c:4249
+#: apply.c:4250
#, c-format
msgid "unable to remove %s from index"
msgstr "„%s“ не може да Ñе извади от индекÑа"
-#: apply.c:4283
+#: apply.c:4284
#, c-format
msgid "corrupt patch for submodule %s"
msgstr "повредена кръпка за модула „%s“"
-#: apply.c:4289
+#: apply.c:4290
#, c-format
msgid "unable to stat newly created file '%s'"
msgstr ""
"не може да Ñе получи Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ñ‡Ñ€ÐµÐ· „stat“ за новоÑÑŠÐ·Ð´Ð°Ð´ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð» „%s“"
-#: apply.c:4297
+#: apply.c:4298
#, c-format
msgid "unable to create backing store for newly created file %s"
msgstr ""
"не може да Ñе за Ñъздаде мÑÑтото за Ñъхранение на новоÑÑŠÐ·Ð´Ð°Ð´ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð» „%s“"
-#: apply.c:4303 apply.c:4448
+#: apply.c:4304 apply.c:4449
#, c-format
msgid "unable to add cache entry for %s"
msgstr "не може да Ñе добави Ð·Ð°Ð¿Ð¸Ñ Ð² кеша за „%s“"
-#: apply.c:4346
+#: apply.c:4347
#, c-format
msgid "failed to write to '%s'"
msgstr "в „%s“ не може да Ñе пише"
-#: apply.c:4350
+#: apply.c:4351
#, c-format
msgid "closing file '%s'"
msgstr "затварÑне на файла „%s“"
-#: apply.c:4420
+#: apply.c:4421
#, c-format
msgid "unable to write file '%s' mode %o"
msgstr "файлът „%s“ не може да Ñе запише Ñ Ñ€ÐµÐ¶Ð¸Ð¼ на доÑтъп „%o“"
-#: apply.c:4518
+#: apply.c:4519
#, c-format
msgid "Applied patch %s cleanly."
msgstr "Кръпката „%s“ бе приложена чиÑто."
-#: apply.c:4526
+#: apply.c:4527
msgid "internal error"
msgstr "вътрешна грешка"
-#: apply.c:4529
+#: apply.c:4530
#, 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:4540
+#: apply.c:4541
#, c-format
msgid "truncating .rej filename to %.*s.rej"
msgstr "Ñъкращаване на името на файла Ñ Ð¾Ñ‚Ñ…Ð²ÑŠÑ€Ð»ÐµÐ½Ð¸Ñ‚Ðµ парчета на „ %.*s.rej“"
-#: apply.c:4548 builtin/fetch.c:878 builtin/fetch.c:1168
+#: apply.c:4549 builtin/fetch.c:898 builtin/fetch.c:1194
#, c-format
msgid "cannot open %s"
msgstr "„%s“ не може да бъде отворен"
-#: apply.c:4562
+#: apply.c:4563
#, c-format
msgid "Hunk #%d applied cleanly."
msgstr "%d-то парче бе уÑпешно приложено."
-#: apply.c:4566
+#: apply.c:4567
#, c-format
msgid "Rejected hunk #%d."
msgstr "%d-то парче бе отхвърлено."
-#: apply.c:4676
+#: apply.c:4686
#, c-format
msgid "Skipped patch '%s'."
msgstr "ПропуÑната кръпка: „%s“"
-#: apply.c:4684
+#: apply.c:4694
msgid "unrecognized input"
msgstr "непознат вход"
-#: apply.c:4704
+#: apply.c:4714
msgid "unable to read index file"
msgstr "индекÑÑŠÑ‚ не може да бъде запиÑан"
-#: apply.c:4859
+#: apply.c:4871
#, c-format
msgid "can't open patch '%s': %s"
msgstr "кръпката „%s“ не може да бъде отворена: %s"
-#: apply.c:4886
+#: apply.c:4898
#, c-format
msgid "squelched %d whitespace error"
msgid_plural "squelched %d whitespace errors"
msgstr[0] "пренебрегната е %d грешка в знаците за интервали"
msgstr[1] "пренебрегнати Ñа %d грешки в знаците за интервали"
-#: apply.c:4892 apply.c:4907
+#: apply.c:4904 apply.c:4919
#, c-format
msgid "%d line adds whitespace errors."
msgid_plural "%d lines add whitespace errors."
msgstr[0] "%d ред Ð´Ð¾Ð±Ð°Ð²Ñ Ð³Ñ€ÐµÑˆÐºÐ¸ в знаците за интервали."
msgstr[1] "%d реда добавÑÑ‚ грешки в знаците за интервали."
-#: apply.c:4900
+#: apply.c:4912
#, c-format
msgid "%d line applied after fixing whitespace errors."
msgid_plural "%d lines applied after fixing whitespace errors."
@@ -787,144 +787,144 @@ msgstr[0] ""
msgstr[1] ""
"Добавени Ñа %d реда Ñлед корекциÑта на грешките в знаците за интервали."
-#: apply.c:4916 builtin/add.c:540 builtin/mv.c:301 builtin/rm.c:390
+#: apply.c:4928 builtin/add.c:540 builtin/mv.c:301 builtin/rm.c:390
msgid "Unable to write new index file"
msgstr "ÐовиÑÑ‚ Ð¸Ð½Ð´ÐµÐºÑ Ð½Ðµ може да бъде запиÑан"
-#: apply.c:4943 apply.c:4946 builtin/am.c:2208 builtin/am.c:2211
-#: builtin/clone.c:123 builtin/fetch.c:128 builtin/merge.c:273
-#: builtin/pull.c:208 builtin/submodule--helper.c:407
+#: apply.c:4955 apply.c:4958 builtin/am.c:2197 builtin/am.c:2200
+#: builtin/clone.c:122 builtin/fetch.c:143 builtin/merge.c:273
+#: builtin/pull.c:209 builtin/submodule--helper.c:407
#: builtin/submodule--helper.c:1367 builtin/submodule--helper.c:1370
#: builtin/submodule--helper.c:1850 builtin/submodule--helper.c:1853
#: builtin/submodule--helper.c:2092 git-add--interactive.perl:211
msgid "path"
msgstr "път"
-#: apply.c:4944
+#: apply.c:4956
msgid "don't apply changes matching the given path"
msgstr "без прилагане на промените напаÑващи на Ð´Ð°Ð´ÐµÐ½Ð¸Ñ Ð¿ÑŠÑ‚"
-#: apply.c:4947
+#: apply.c:4959
msgid "apply changes matching the given path"
msgstr "прилагане на промените напаÑващи на Ð´Ð°Ð´ÐµÐ½Ð¸Ñ Ð¿ÑŠÑ‚"
-#: apply.c:4949 builtin/am.c:2217
+#: apply.c:4961 builtin/am.c:2206
msgid "num"
msgstr "БРОЙ"
-#: apply.c:4950
+#: apply.c:4962
msgid "remove <num> leading slashes from traditional diff paths"
msgstr "премахване на този БРОЙ водещи елементи от пътищата в разликата"
-#: apply.c:4953
+#: apply.c:4965
msgid "ignore additions made by the patch"
msgstr "игнориране на редовете добавени от тази кръпка"
-#: apply.c:4955
+#: apply.c:4967
msgid "instead of applying the patch, output diffstat for the input"
msgstr "извеждане на ÑтатиÑтика на промените без прилагане на кръпката"
-#: apply.c:4959
+#: apply.c:4971
msgid "show number of added and deleted lines in decimal notation"
msgstr "извеждане на Ð±Ñ€Ð¾Ñ Ð½Ð° добавените и изтритите редове"
-#: apply.c:4961
+#: apply.c:4973
msgid "instead of applying the patch, output a summary for the input"
msgstr "извеждане на ÑтатиÑтика на входните данни без прилагане на кръпката"
-#: apply.c:4963
+#: apply.c:4975
msgid "instead of applying the patch, see if the patch is applicable"
msgstr "проверка дали кръпката може да Ñе приложи, без дейÑтвително прилагане"
-#: apply.c:4965
+#: apply.c:4977
msgid "make sure the patch is applicable to the current index"
msgstr "проверка дали кръпката може да бъде приложена към Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑ"
-#: apply.c:4967
+#: apply.c:4979
msgid "mark new files with `git add --intent-to-add`"
msgstr "отбелÑзване на новите файлове Ñ â€žgit add --intent-to-add“"
-#: apply.c:4969
+#: apply.c:4981
msgid "apply a patch without touching the working tree"
msgstr "прилагане на кръпката без промÑна на работното дърво"
-#: apply.c:4971
+#: apply.c:4983
msgid "accept a patch that touches outside the working area"
msgstr "прилагане на кръпка, коÑто Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ Ð¸ файлове извън работното дърво"
-#: apply.c:4974
+#: apply.c:4986
msgid "also apply the patch (use with --stat/--summary/--check)"
msgstr ""
"кръпката да бъде приложена. ОпциÑта Ñе комбинира Ñ â€ž--check“/„--stat“/„--"
"summary“"
-#: apply.c:4976
+#: apply.c:4988
msgid "attempt three-way merge if a patch does not apply"
msgstr "пробване Ñ Ñ‚Ñ€Ð¾Ð¹Ð½Ð¾ Ñливане, ако кръпката не може да Ñе приложи директно"
-#: apply.c:4978
+#: apply.c:4990
msgid "build a temporary index based on embedded index information"
msgstr ""
"Ñъздаване на временен Ð¸Ð½Ð´ÐµÐºÑ Ð½Ð° база на включената Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° индекÑа"
-#: apply.c:4981 builtin/checkout-index.c:173 builtin/ls-files.c:524
+#: apply.c:4993 builtin/checkout-index.c:173 builtin/ls-files.c:524
msgid "paths are separated with NUL character"
msgstr "разделÑне на пътищата Ñ Ð½ÑƒÐ»ÐµÐ²Ð¸Ñ Ð·Ð½Ð°Ðº „NUL“"
-#: apply.c:4983
+#: apply.c:4995
msgid "ensure at least <n> lines of context match"
msgstr "да Ñе оÑигури контекÑÑ‚ от поне такъв БРОЙ Ñъвпадащи редове"
-#: apply.c:4984 builtin/am.c:2196 builtin/interpret-trailers.c:98
+#: apply.c:4996 builtin/am.c:2185 builtin/interpret-trailers.c:98
#: builtin/interpret-trailers.c:100 builtin/interpret-trailers.c:102
-#: builtin/pack-objects.c:3330 builtin/rebase.c:1421
+#: builtin/pack-objects.c:3310 builtin/rebase.c:1445
msgid "action"
msgstr "дейÑтвие"
-#: apply.c:4985
+#: apply.c:4997
msgid "detect new or modified lines that have whitespace errors"
msgstr "заÑичане на нови или променени редове Ñ Ð³Ñ€ÐµÑˆÐºÐ¸ в знаците за интервали"
-#: apply.c:4988 apply.c:4991
+#: apply.c:5000 apply.c:5003
msgid "ignore changes in whitespace when finding context"
msgstr ""
"игнориране на промените в знаците за интервали при откриване на контекÑта"
-#: apply.c:4994
+#: apply.c:5006
msgid "apply the patch in reverse"
msgstr "прилагане на кръпката в обратна поÑока"
-#: apply.c:4996
+#: apply.c:5008
msgid "don't expect at least one line of context"
msgstr "без изиÑкване на дори и един ред контекÑÑ‚"
-#: apply.c:4998
+#: apply.c:5010
msgid "leave the rejected hunks in corresponding *.rej files"
msgstr "оÑтавÑне на отхвърлените парчета във файлове Ñ Ñ€Ð°Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¸Ðµ „.rej“"
-#: apply.c:5000
+#: apply.c:5012
msgid "allow overlapping hunks"
msgstr "позволÑване на заÑтъпващи Ñе парчета"
-#: apply.c:5001 builtin/add.c:291 builtin/check-ignore.c:22
+#: apply.c:5013 builtin/add.c:291 builtin/check-ignore.c:22
#: builtin/commit.c:1337 builtin/count-objects.c:98 builtin/fsck.c:786
-#: builtin/log.c:2068 builtin/mv.c:123 builtin/read-tree.c:128
+#: builtin/log.c:2085 builtin/mv.c:123 builtin/read-tree.c:128
msgid "be verbose"
msgstr "повече подробноÑти"
-#: apply.c:5003
+#: apply.c:5015
msgid "tolerate incorrectly detected missing new-line at the end of file"
msgstr "пренебрегване на неправилно липÑващ знак за нов ред в ÐºÑ€Ð°Ñ Ð½Ð° файл"
-#: apply.c:5006
+#: apply.c:5018
msgid "do not trust the line counts in the hunk headers"
msgstr "без доверÑване на номерата на редовете в заглавните чаÑти на парчетата"
-#: apply.c:5008 builtin/am.c:2205
+#: apply.c:5020 builtin/am.c:2194
msgid "root"
msgstr "ÐÐЧÐЛÐÐ_ДИРЕКТОРИЯ"
-#: apply.c:5009
+#: apply.c:5021
msgid "prepend <root> to all filenames"
msgstr "добавÑне на тази ÐÐЧÐЛÐÐ_ДИРЕКТОРИЯ към имената на вÑички файлове"
@@ -979,7 +979,7 @@ msgstr "ФОРМÐТ"
msgid "archive format"
msgstr "ФОРМÐТ на архива"
-#: archive.c:458 builtin/log.c:1580
+#: archive.c:458 builtin/log.c:1581
msgid "prefix"
msgstr "ПРЕФИКС"
@@ -987,11 +987,12 @@ msgstr "ПРЕФИКС"
msgid "prepend prefix to each pathname in the archive"
msgstr "добавÑне на този ПРЕФИКС към вÑеки път в архива"
-#: archive.c:460 builtin/blame.c:862 builtin/blame.c:874 builtin/blame.c:875
-#: builtin/commit-tree.c:117 builtin/config.c:129 builtin/fast-export.c:1134
-#: builtin/fast-export.c:1136 builtin/grep.c:897 builtin/hash-object.c:105
-#: builtin/ls-files.c:560 builtin/ls-files.c:563 builtin/notes.c:412
-#: builtin/notes.c:578 builtin/read-tree.c:123 parse-options.h:177
+#: archive.c:460 builtin/blame.c:861 builtin/blame.c:873 builtin/blame.c:874
+#: builtin/commit-tree.c:117 builtin/config.c:129 builtin/fast-export.c:1162
+#: builtin/fast-export.c:1164 builtin/fast-export.c:1168 builtin/grep.c:899
+#: builtin/hash-object.c:105 builtin/ls-files.c:560 builtin/ls-files.c:563
+#: builtin/notes.c:412 builtin/notes.c:578 builtin/read-tree.c:123
+#: parse-options.h:186
msgid "file"
msgstr "ФÐЙЛ"
@@ -1023,7 +1024,7 @@ msgstr "добро компреÑиране"
msgid "list supported archive formats"
msgstr "извеждане на ÑпиÑъка Ñ Ð¿Ð¾Ð´Ð´ÑŠÑ€Ð¶Ð°Ð½Ð¸Ñ‚Ðµ формати"
-#: archive.c:479 builtin/archive.c:91 builtin/clone.c:113 builtin/clone.c:116
+#: archive.c:479 builtin/archive.c:91 builtin/clone.c:112 builtin/clone.c:115
#: builtin/submodule--helper.c:1379 builtin/submodule--helper.c:1859
msgid "repo"
msgstr "хранилище"
@@ -1032,7 +1033,7 @@ msgstr "хранилище"
msgid "retrieve the archive from remote repository <repo>"
msgstr "изтеглÑне на архива от отдалеченото ХРÐÐИЛИЩЕ"
-#: archive.c:481 builtin/archive.c:93 builtin/difftool.c:707
+#: archive.c:481 builtin/archive.c:93 builtin/difftool.c:715
#: builtin/notes.c:498
msgid "command"
msgstr "команда"
@@ -1068,26 +1069,26 @@ msgstr "Ðргументът не Ñе поддържа за форма̀та â€
msgid "cannot stream blob %s"
msgstr "обектът-BLOB „%s“ не може да бъде обработен"
-#: archive-tar.c:260 archive-zip.c:363
+#: archive-tar.c:266 archive-zip.c:363
#, c-format
msgid "unsupported file mode: 0%o (SHA1: %s)"
msgstr "неподдържани права за доÑтъп до файл: 0%o (SHA1: %s)"
-#: archive-tar.c:287 archive-zip.c:353
+#: archive-tar.c:293 archive-zip.c:353
#, c-format
msgid "cannot read %s"
msgstr "обектът „%s“ не може да бъде прочетен"
-#: archive-tar.c:459
+#: archive-tar.c:465
#, c-format
msgid "unable to start '%s' filter"
msgstr "филтърът „%s“ не може да бъде Ñтартиран"
-#: archive-tar.c:462
+#: archive-tar.c:468
msgid "unable to redirect descriptor"
msgstr "деÑкрипторът не може да бъде пренаÑочен"
-#: archive-tar.c:469
+#: archive-tar.c:475
#, c-format
msgid "'%s' filter reported error"
msgstr "филтърът „%s“ върна грешка"
@@ -1112,17 +1113,17 @@ msgstr "грешка при декомпреÑиране Ñ â€ždeflate“ (%d)"
msgid "timestamp too large for this system: %<PRIuMAX>"
msgstr "времевата ÑтойноÑÑ‚ е твърде голÑма за тази ÑиÑтема: %<PRIuMAX>"
-#: attr.c:211
+#: attr.c:213
#, c-format
msgid "%.*s is not a valid attribute name"
msgstr "„%.*s“ е неправилно име за атрибут"
-#: attr.c:368
+#: attr.c:370
#, c-format
msgid "%s not allowed: %s:%d"
msgstr "%s: командата не е позволена: „%s:%d“"
-#: attr.c:408
+#: attr.c:410
msgid ""
"Negative patterns are ignored in git attributes\n"
"Use '\\!' for literal leading exclamation."
@@ -1249,41 +1250,41 @@ msgid_plural "Bisecting: %d revisions left to test after this %s\n"
msgstr[0] "Двоично Ñ‚ÑŠÑ€Ñене: оÑтава %d верÑÐ¸Ñ Ñлед тази %s\n"
msgstr[1] "Двоично Ñ‚ÑŠÑ€Ñене: оÑтават %d верÑии Ñлед тази %s\n"
-#: blame.c:2697
+#: blame.c:2700
msgid "--contents and --reverse do not blend well."
msgstr "Опциите „--contents“ и „--reverse“ Ñа неÑъвмеÑтими"
-#: blame.c:2711
+#: blame.c:2714
msgid "cannot use --contents with final commit object name"
msgstr "ОпциÑта „--contents“ е неÑъвмеÑтима Ñ Ð¸Ð¼Ðµ на обект от крайно подаване"
-#: blame.c:2732
+#: blame.c:2735
msgid "--reverse and --first-parent together require specified latest commit"
msgstr ""
"Едновременното задаване на опциите „--reverse“ и „--first-parent“ изиÑква "
"указването на крайно подаване"
-#: blame.c:2741 bundle.c:167 ref-filter.c:2196 remote.c:1938 sequencer.c:2033
-#: sequencer.c:4348 builtin/commit.c:1020 builtin/log.c:387 builtin/log.c:963
-#: builtin/log.c:1451 builtin/log.c:1827 builtin/log.c:2117 builtin/merge.c:411
-#: builtin/pack-objects.c:3148 builtin/pack-objects.c:3163
+#: blame.c:2744 bundle.c:167 ref-filter.c:2203 remote.c:1941 sequencer.c:1971
+#: sequencer.c:4305 builtin/commit.c:1020 builtin/log.c:387 builtin/log.c:964
+#: builtin/log.c:1452 builtin/log.c:1844 builtin/log.c:2134 builtin/merge.c:411
+#: builtin/pack-objects.c:3128 builtin/pack-objects.c:3143
#: builtin/shortlog.c:192
msgid "revision walk setup failed"
msgstr "неуÑпешно наÑтройване на обхождането на верÑиите"
-#: blame.c:2759
+#: blame.c:2762
msgid ""
"--reverse --first-parent together require range along first-parent chain"
msgstr ""
"Едновременното задаване на опциите „--reverse“ и „--first-parent“ изиÑква "
"указването на диапазон по веригата на първите наÑледници"
-#: blame.c:2770
+#: blame.c:2773
#, c-format
msgid "no such path %s in %s"
msgstr "нÑма път на име „%s“ в „%s“"
-#: blame.c:2781
+#: blame.c:2784
#, c-format
msgid "cannot read blob %s for path %s"
msgstr "обектът-BLOB „%s“ в Ð¿ÑŠÑ‚Ñ %s не може да бъде прочетен"
@@ -1436,7 +1437,7 @@ msgstr "Файлът „%s“ не изглежда да е пратка на gi
msgid "unrecognized header: %s%s (%d)"
msgstr "непозната заглавна чаÑÑ‚: %s%s (%d)"
-#: bundle.c:90 rerere.c:480 rerere.c:690 sequencer.c:2283 sequencer.c:3024
+#: bundle.c:90 rerere.c:480 rerere.c:690 sequencer.c:2221 sequencer.c:2962
#: builtin/commit.c:791
#, c-format
msgid "could not open '%s'"
@@ -1490,7 +1491,7 @@ msgid "ref '%s' is excluded by the rev-list options"
msgstr ""
"указателÑÑ‚ „%s“ не е бил включен поради опциите зададени на „git rev-list“"
-#: bundle.c:460 builtin/log.c:202 builtin/log.c:1732 builtin/shortlog.c:306
+#: bundle.c:460 builtin/log.c:202 builtin/log.c:1733 builtin/shortlog.c:306
#, c-format
msgid "unrecognized argument: %s"
msgstr "непознат аргумент: %s"
@@ -1513,8 +1514,8 @@ msgstr "Командата „git index-pack“ не завърши уÑпешн
msgid "invalid color value: %.*s"
msgstr "неправилна ÑтойноÑÑ‚ за цвÑÑ‚: %.*s"
-#: commit.c:50 sequencer.c:2727 builtin/am.c:355 builtin/am.c:399
-#: builtin/am.c:1378 builtin/am.c:2020 builtin/replace.c:455
+#: commit.c:50 sequencer.c:2665 builtin/am.c:354 builtin/am.c:398
+#: builtin/am.c:1366 builtin/am.c:2009 builtin/replace.c:456
#, c-format
msgid "could not parse %s"
msgstr "„%s“ не може да Ñе анализира"
@@ -1547,29 +1548,29 @@ msgstr ""
"\n"
" git config advice.graftFileDeprecated false"
-#: commit.c:1127
+#: commit.c:1128
#, c-format
msgid "Commit %s has an untrusted GPG signature, allegedly by %s."
msgstr ""
"Подаването „%s“ е Ñ Ð½ÐµÐ´Ð¾Ð²ÐµÑ€ÐµÐ½ Ð¿Ð¾Ð´Ð¿Ð¸Ñ Ð¾Ñ‚ GPG, който твърди, че е на „%s“."
-#: commit.c:1130
+#: commit.c:1131
#, c-format
msgid "Commit %s has a bad GPG signature allegedly by %s."
msgstr ""
"Подаването „%s“ е Ñ Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÐµÐ½ Ð¿Ð¾Ð´Ð¿Ð¸Ñ Ð¾Ñ‚ GPG, който твърди, че е на „%s“."
-#: commit.c:1133
+#: commit.c:1134
#, c-format
msgid "Commit %s does not have a GPG signature."
msgstr "Подаването „%s“ е без Ð¿Ð¾Ð´Ð¿Ð¸Ñ Ð¾Ñ‚ GPG."
-#: commit.c:1136
+#: commit.c:1137
#, c-format
msgid "Commit %s has a good GPG signature by %s\n"
msgstr "Подаването „%s“ е Ñ ÐºÐ¾Ñ€ÐµÐºÑ‚ÐµÐ½ Ð¿Ð¾Ð´Ð¿Ð¸Ñ Ð¾Ñ‚ GPG на „%s“.\n"
-#: commit.c:1390
+#: commit.c:1391
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"
@@ -1631,185 +1632,200 @@ msgstr ""
msgid "unable to find all commit-graph files"
msgstr "нÑкои файлове на гра̀фа Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñта не могат да бъдат открити"
-#: commit-graph.c:554 commit-graph.c:614
+#: commit-graph.c:561 commit-graph.c:621
msgid "invalid commit position. commit-graph is likely corrupt"
msgstr ""
"неправилна Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ñ Ð½Ð° подаването. ВероÑтно графът Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñта е повреден"
-#: commit-graph.c:575
+#: commit-graph.c:582
#, c-format
msgid "could not find commit %s"
msgstr "подаването „%s“ не може да бъде открито"
-#: commit-graph.c:1002 builtin/pack-objects.c:2657
+#: commit-graph.c:855 builtin/am.c:1287
+#, c-format
+msgid "unable to parse commit %s"
+msgstr "подаването не може да бъде анализирано: %s"
+
+#: commit-graph.c:859
+#, c-format
+msgid "unable to get tree for %s"
+msgstr "дървото на „%s“ не може да бъде получено"
+
+#: commit-graph.c:1017 builtin/pack-objects.c:2641
#, c-format
msgid "unable to get type of object %s"
msgstr "видът на обекта „%s“ не може да бъде определен"
-#: commit-graph.c:1034
+#: commit-graph.c:1049
msgid "Loading known commits in commit graph"
msgstr "Зареждане на познатите Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ Ð² гра̀фа Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñта"
-#: commit-graph.c:1051
+#: commit-graph.c:1066
msgid "Expanding reachable commits in commit graph"
msgstr "РазширÑване на доÑтижимите Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ Ð² гра̀фа"
-#: commit-graph.c:1070
+#: commit-graph.c:1085
msgid "Clearing commit marks in commit graph"
msgstr "ИзчиÑтване на отбелÑзваниÑта на подаваниÑта в гра̀фа Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñта"
-#: commit-graph.c:1089
+#: commit-graph.c:1104
msgid "Computing commit graph generation numbers"
msgstr "ИзчиÑлÑване на номерата на поколениÑта в гра̀фа Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñта"
-#: commit-graph.c:1163
+#: commit-graph.c:1179
#, c-format
msgid "Finding commits for commit graph in %d pack"
msgid_plural "Finding commits for commit graph in %d packs"
msgstr[0] "Откриване на подаваниÑта в гра̀фа в %d пакетен файл"
msgstr[1] "Откриване на подаваниÑта в гра̀фа в %d пакетни файла"
-#: commit-graph.c:1176
+#: commit-graph.c:1192
#, c-format
msgid "error adding pack %s"
msgstr "грешка при добавÑне на пакетен файл „%s“"
-#: commit-graph.c:1180
+#: commit-graph.c:1196
#, c-format
msgid "error opening index for %s"
msgstr "грешка при отварÑне на индекÑа на „%s“"
-#: commit-graph.c:1204
+#: commit-graph.c:1220
#, c-format
msgid "Finding commits for commit graph from %d ref"
msgid_plural "Finding commits for commit graph from %d refs"
msgstr[0] "Откриване на подаваниÑта в гра̀фа измежду %d указател"
msgstr[1] "Откриване на подаваниÑта в гра̀фа измежду %d указатели"
-#: commit-graph.c:1238
+#: commit-graph.c:1240
+#, c-format
+msgid "invalid commit object id: %s"
+msgstr "неправилен идентификатор на обект-подаване: „%s“"
+
+#: commit-graph.c:1255
msgid "Finding commits for commit graph among packed objects"
msgstr "Откриване на подаваниÑта в гра̀фа измежду пакетираните обекти"
-#: commit-graph.c:1253
+#: commit-graph.c:1270
msgid "Counting distinct commits in commit graph"
msgstr "ПреброÑване на различните Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ Ð² гра̀фа"
-#: commit-graph.c:1284
+#: commit-graph.c:1300
msgid "Finding extra edges in commit graph"
msgstr "Откриване на още върхове в гра̀фа Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñта"
-#: commit-graph.c:1332
+#: commit-graph.c:1346
msgid "failed to write correct number of base graph ids"
msgstr "правилниÑÑ‚ брой на базовите идентификатори не може да Ñе запише"
-#: commit-graph.c:1365 midx.c:811
+#: commit-graph.c:1379 midx.c:810
#, c-format
msgid "unable to create leading directories of %s"
msgstr "родителÑките директории на „%s“ не могат да бъдат Ñъздадени"
-#: commit-graph.c:1377 builtin/index-pack.c:306 builtin/repack.c:240
+#: commit-graph.c:1391 builtin/index-pack.c:306 builtin/repack.c:241
#, c-format
msgid "unable to create '%s'"
msgstr "пакетниÑÑ‚ файл „%s“ не може да бъде Ñъздаден"
-#: commit-graph.c:1437
+#: commit-graph.c:1451
#, 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:1478
+#: commit-graph.c:1492
msgid "unable to open commit-graph chain file"
msgstr "файлът Ñ Ð²ÐµÑ€Ð¸Ð³Ð°Ñ‚Ð° на гра̀фа Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñта не може да Ñе отвори"
-#: commit-graph.c:1490
+#: commit-graph.c:1504
msgid "failed to rename base commit-graph file"
msgstr "оÑновниÑÑ‚ файл на гра̀фа Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñта не може да бъде преименуван"
-#: commit-graph.c:1510
+#: commit-graph.c:1524
msgid "failed to rename temporary commit-graph file"
msgstr "временниÑÑ‚ файл на гра̀фа Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñта не може да бъде преименуван"
-#: commit-graph.c:1621
+#: commit-graph.c:1635
msgid "Scanning merged commits"
msgstr "ТърÑене на подаваниÑта ÑÑŠÑ ÑливаниÑ"
-#: commit-graph.c:1632
+#: commit-graph.c:1646
#, c-format
msgid "unexpected duplicate commit id %s"
msgstr "неочакван, повтарÑщ Ñе идентификатор на подаване: %s"
-#: commit-graph.c:1657
+#: commit-graph.c:1670
msgid "Merging commit-graph"
msgstr "Сливане на гра̀фа Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñта"
-#: commit-graph.c:1844
+#: commit-graph.c:1860
#, c-format
msgid "the commit graph format cannot write %d commits"
msgstr "форматът на гра̀фа Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñта не може да запише %d подаваниÑ"
-#: commit-graph.c:1855
+#: commit-graph.c:1871
msgid "too many commits to write graph"
msgstr "прекалено много Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ Ð·Ð° запиÑване на гра̀фа"
-#: commit-graph.c:1945
+#: commit-graph.c:1961
msgid "the commit-graph file has incorrect checksum and is likely corrupt"
msgstr "графът Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñта е Ñ Ð³Ñ€ÐµÑˆÐ½Ð° Ñума за проверка — вероÑтно е повреден"
-#: commit-graph.c:1955
+#: commit-graph.c:1971
#, c-format
msgid "commit-graph has incorrect OID order: %s then %s"
msgstr ""
"неправилна подредба на обектите по идентификатор в гра̀фа Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñта: „%s“ "
"е преди „%s“, а не Ñ‚Ñ€Ñбва"
-#: commit-graph.c:1965 commit-graph.c:1980
+#: commit-graph.c:1981 commit-graph.c:1996
#, c-format
msgid "commit-graph has incorrect fanout value: fanout[%d] = %u != %u"
msgstr ""
"неправилна ÑтойноÑÑ‚ за Ð¾Ñ‚ÐºÑŠÑ Ð² гра̀фа Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñта: fanout[%d] = %u, а "
"Ñ‚Ñ€Ñбва да е %u"
-#: commit-graph.c:1972
+#: commit-graph.c:1988
#, c-format
msgid "failed to parse commit %s from commit-graph"
msgstr "подаване „%s“ в гра̀фа Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñта не може да Ñе анализира"
-#: commit-graph.c:1989
+#: commit-graph.c:2006
msgid "Verifying commits in commit graph"
msgstr "Проверка на подаваниÑта в гра̀фа"
-#: commit-graph.c:2002
+#: commit-graph.c:2020
#, c-format
msgid "failed to parse commit %s from object database for commit-graph"
msgstr ""
"подаване „%s“ в базата от данни към гра̀фа Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñта не може да Ñе "
"анализира"
-#: commit-graph.c:2009
+#: commit-graph.c:2027
#, c-format
msgid "root tree OID for commit %s in commit-graph is %s != %s"
msgstr ""
"идентификаторът на обект за кореновото дърво за подаване „%s“ в гра̀фа Ñ "
"подаваниÑта е „%s“, а Ñ‚Ñ€Ñбва да е „%s“"
-#: commit-graph.c:2019
+#: commit-graph.c:2037
#, c-format
msgid "commit-graph parent list for commit %s is too long"
msgstr "ÑпиÑъкът Ñ Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»Ð¸ на „%s“ в гра̀фа Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñта е прекалено дълъг"
-#: commit-graph.c:2028
+#: commit-graph.c:2046
#, c-format
msgid "commit-graph parent for %s is %s != %s"
msgstr "родителÑÑ‚ на „%s“ в гра̀фа Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñта е „%s“, а Ñ‚Ñ€Ñбва да е „%s“"
-#: commit-graph.c:2041
+#: commit-graph.c:2059
#, c-format
msgid "commit-graph parent list for commit %s terminates early"
msgstr "ÑпиÑъкът Ñ Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»Ð¸ на „%s“ в гра̀фа Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñта е прекалено къÑ"
-#: commit-graph.c:2046
+#: commit-graph.c:2064
#, c-format
msgid ""
"commit-graph has generation number zero for commit %s, but non-zero elsewhere"
@@ -1817,7 +1833,7 @@ msgstr ""
"номерът на поколението на подаване „%s“ в гра̀фа Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñта е 0, а другаде "
"не е"
-#: commit-graph.c:2050
+#: commit-graph.c:2068
#, c-format
msgid ""
"commit-graph has non-zero generation number for commit %s, but zero elsewhere"
@@ -1825,14 +1841,14 @@ msgstr ""
"номерът на поколението на подаване „%s“ в гра̀фа Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñта не е 0, а "
"другаде е"
-#: commit-graph.c:2065
+#: commit-graph.c:2083
#, c-format
msgid "commit-graph generation for commit %s is %u != %u"
msgstr ""
"номерът на поколението на подаване „%s“ в гра̀фа Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñта е %u, а "
"другаде е %u"
-#: commit-graph.c:2071
+#: commit-graph.c:2089
#, c-format
msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>"
msgstr ""
@@ -1881,7 +1897,7 @@ msgstr "ключът не Ñъдържа раздел: „%s“"
msgid "key does not contain variable name: %s"
msgstr "ключът не Ñъдържа име на променлива: „%s“"
-#: config.c:406 sequencer.c:2463
+#: config.c:406 sequencer.c:2401
#, c-format
msgid "invalid key: %s"
msgstr "неправилен ключ: „%s“"
@@ -2003,17 +2019,17 @@ msgstr "наÑтройката „core.commentChar“ Ñ‚Ñ€Ñбва да е ÑаÐ
msgid "invalid mode for object creation: %s"
msgstr "неправилен режим за Ñъздаването на обекти: %s"
-#: config.c:1430
+#: config.c:1425
#, c-format
msgid "malformed value for %s"
msgstr "неправилна ÑтойноÑÑ‚ за „%s“"
-#: config.c:1456
+#: config.c:1451
#, c-format
msgid "malformed value for %s: %s"
msgstr "неправилна ÑтойноÑÑ‚ за „%s“: „%s“"
-#: config.c:1457
+#: config.c:1452
msgid "must be one of nothing, matching, simple, upstream or current"
msgstr ""
"Ñ‚Ñ€Ñбва да е една от Ñледните ÑтойноÑти: „nothing“ (без изтлаÑкване при липÑа "
@@ -2021,139 +2037,132 @@ msgstr ""
"„simple“ (клонът ÑÑŠÑ Ñъщото име, от който Ñе издърпва), „upstream“ (клонът, "
"от който Ñе издърпва) или „current“ (клонът ÑÑŠÑ Ñъщото име)"
-#: config.c:1518 builtin/pack-objects.c:3410
+#: config.c:1513 builtin/pack-objects.c:3394
#, c-format
msgid "bad pack compression level %d"
msgstr "неправилно ниво на компреÑиране при пакетиране: %d"
-#: config.c:1639
+#: config.c:1634
#, c-format
msgid "unable to load config blob object '%s'"
msgstr "обектът-BLOB „%s“ Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ð¸ не може да Ñе зареди"
-#: config.c:1642
+#: config.c:1637
#, c-format
msgid "reference '%s' does not point to a blob"
msgstr "указателÑÑ‚ „%s“ не Ñочи към обект-BLOB"
-#: config.c:1659
+#: config.c:1654
#, c-format
msgid "unable to resolve config blob '%s'"
msgstr "обектът-BLOB „%s“ Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ð¸ не може да бъде открит"
-#: config.c:1689
+#: config.c:1684
#, c-format
msgid "failed to parse %s"
msgstr "„%s“ не може да бъде анализиран"
-#: config.c:1745
+#: config.c:1740
msgid "unable to parse command-line config"
msgstr "неправилни наÑтройки от ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¸Ñ Ñ€ÐµÐ´"
-#: config.c:2094
+#: config.c:2091
msgid "unknown error occurred while reading the configuration files"
msgstr "неочаквана грешка при изчитането на конфигурационните файлове"
-#: config.c:2264
+#: config.c:2261
#, c-format
msgid "Invalid %s: '%s'"
msgstr "Ðеправилен %s: „%s“"
-#: config.c:2307
-#, c-format
-msgid "unknown core.untrackedCache value '%s'; using 'keep' default value"
-msgstr ""
-"непозната ÑтойноÑÑ‚ „%s“ за наÑтройката „core.untrackedCache“. Ще Ñе ползва "
-"Ñтандартната ÑтойноÑÑ‚ „keep“ (запазване)"
-
-#: config.c:2333
+#: config.c:2306
#, c-format
msgid "splitIndex.maxPercentChange value '%d' should be between 0 and 100"
msgstr ""
"ÑтойноÑтта на „splitIndex.maxPercentChange“ Ñ‚Ñ€Ñбва да е между 1 и 100, а не "
"%d"
-#: config.c:2379
+#: config.c:2352
#, c-format
msgid "unable to parse '%s' from command-line config"
msgstr "неразпозната ÑтойноÑÑ‚ „%s“ от ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¸Ñ Ñ€ÐµÐ´"
-#: config.c:2381
+#: config.c:2354
#, c-format
msgid "bad config variable '%s' in file '%s' at line %d"
msgstr "неправилна наÑтройка „%s“ във файла „%s“ на ред â„–%d"
-#: config.c:2462
+#: config.c:2435
#, c-format
msgid "invalid section name '%s'"
msgstr "неправилно име на раздел: „%s“"
-#: config.c:2494
+#: config.c:2467
#, c-format
msgid "%s has multiple values"
msgstr "зададени Ñа нÑколко ÑтойноÑти за „%s“"
-#: config.c:2523
+#: config.c:2496
#, c-format
msgid "failed to write new configuration file %s"
msgstr "новиÑÑ‚ конфигурационен файл „%s“ не може да бъде запазен"
-#: config.c:2775 config.c:3099
+#: config.c:2748 config.c:3072
#, c-format
msgid "could not lock config file %s"
msgstr "конфигурационниÑÑ‚ файл „%s“ не може да бъде заключен"
-#: config.c:2786
+#: config.c:2759
#, c-format
msgid "opening %s"
msgstr "отварÑне на „%s“"
-#: config.c:2821 builtin/config.c:328
+#: config.c:2794 builtin/config.c:328
#, c-format
msgid "invalid pattern: %s"
msgstr "неправилен шаблон: %s"
-#: config.c:2846
+#: config.c:2819
#, c-format
msgid "invalid config file %s"
msgstr "неправилен конфигурационен файл: „%s“"
-#: config.c:2859 config.c:3112
+#: config.c:2832 config.c:3085
#, c-format
msgid "fstat on %s failed"
msgstr "неуÑпешно изпълнение на „fstat“ върху „%s“"
-#: config.c:2870
+#: config.c:2843
#, c-format
msgid "unable to mmap '%s'"
msgstr "неуÑпешно изпълнение на „mmap“ върху „%s“"
-#: config.c:2879 config.c:3117
+#: config.c:2852 config.c:3090
#, c-format
msgid "chmod on %s failed"
msgstr "неуÑпешна ÑмÑна на права Ñ â€žchmod“ върху „%s“"
-#: config.c:2964 config.c:3214
+#: config.c:2937 config.c:3187
#, c-format
msgid "could not write config file %s"
msgstr "конфигурационниÑÑ‚ файл „%s“ не може да бъде запиÑан"
-#: config.c:2998
+#: config.c:2971
#, c-format
msgid "could not set '%s' to '%s'"
msgstr "„%s“ не може да Ñе зададе да е „%s“"
-#: config.c:3000 builtin/remote.c:782
+#: config.c:2973 builtin/remote.c:782
#, c-format
msgid "could not unset '%s'"
msgstr "„%s“ не може да Ñе премахне"
-#: config.c:3090
+#: config.c:3063
#, c-format
msgid "invalid section name: %s"
msgstr "неправилно име на раздел: %s"
-#: config.c:3257
+#: config.c:3230
#, c-format
msgid "missing value for '%s'"
msgstr "липÑва ÑтойноÑÑ‚ за „%s“"
@@ -2278,7 +2287,7 @@ msgstr "„%s“ не може да Ñе открие (%s)"
msgid "unknown port %s"
msgstr "непознат порт „%s“"
-#: connect.c:845 connect.c:1171
+#: connect.c:845 connect.c:1175
#, c-format
msgid "strange hostname '%s' blocked"
msgstr "необичайното име на хоÑÑ‚ „%s“ е блокирано"
@@ -2293,62 +2302,62 @@ msgstr "необичайниÑÑ‚ порт „%s“ е блокиран"
msgid "cannot start proxy %s"
msgstr "поÑредникът „%s“ не може да Ñе Ñтартира"
-#: connect.c:924
+#: connect.c:928
msgid "no path specified; see 'git help pull' for valid url syntax"
msgstr ""
"не е указан път. Проверете ÑинтакÑиÑа Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ‚Ð°:\n"
"\n"
" git help pull"
-#: connect.c:1119
+#: connect.c:1123
msgid "ssh variant 'simple' does not support -4"
msgstr "вариантът за „ssh“ — „simple“ (опроÑтен), не поддържа опциÑта „-4“"
-#: connect.c:1131
+#: connect.c:1135
msgid "ssh variant 'simple' does not support -6"
msgstr "вариантът за „ssh“ — „simple“ (опроÑтен), не поддържа опциÑта „-6“"
-#: connect.c:1148
+#: connect.c:1152
msgid "ssh variant 'simple' does not support setting port"
msgstr ""
"вариантът за „ssh“ — „simple“ (опроÑтен), не поддържа задаването на порт"
-#: connect.c:1260
+#: connect.c:1264
#, c-format
msgid "strange pathname '%s' blocked"
msgstr "необичайниÑÑ‚ път „%s“ е блокиран"
-#: connect.c:1307
+#: connect.c:1311
msgid "unable to fork"
msgstr "неуÑпешно Ñъздаване на процеÑ"
-#: connected.c:86 builtin/fsck.c:221 builtin/prune.c:43
+#: connected.c:88 builtin/fsck.c:221 builtin/prune.c:43
msgid "Checking connectivity"
msgstr "Проверка на ÑвързаноÑтта"
-#: connected.c:98
+#: connected.c:100
msgid "Could not run 'git rev-list'"
msgstr "Командата „git rev-list“ не може да бъде изпълнена."
-#: connected.c:118
+#: connected.c:120
msgid "failed write to rev-list"
msgstr "неуÑпешен Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° ÑпиÑъка Ñ Ð²ÐµÑ€Ñиите"
-#: connected.c:125
+#: connected.c:127
msgid "failed to close rev-list's stdin"
msgstr "ÑтандартниÑÑ‚ вход на ÑпиÑъка Ñ Ð²ÐµÑ€Ñиите не може да бъде затворен"
-#: convert.c:193
+#: convert.c:194
#, c-format
msgid "illegal crlf_action %d"
msgstr "неправилно дейÑтвие за край на ред: %d"
-#: convert.c:206
+#: convert.c:207
#, c-format
msgid "CRLF would be replaced by LF in %s"
msgstr "Ð’ÑÑка поÑледователноÑÑ‚ от знаци „CRLF“ ще бъдe заменена Ñ â€žLF“ в „%s“."
-#: convert.c:208
+#: convert.c:209
#, c-format
msgid ""
"CRLF will be replaced by LF in %s.\n"
@@ -2358,13 +2367,13 @@ msgstr ""
"Файлът ще оÑтане Ñ Ð¿ÑŠÑ€Ð²Ð¾Ð½Ð°Ñ‡Ð°Ð»Ð½Ð¸Ñ‚Ðµ знаци за край на ред в работната ви "
"директориÑ."
-#: convert.c:216
+#: convert.c:217
#, c-format
msgid "LF would be replaced by CRLF in %s"
msgstr ""
"Ð’Ñеки знак „LF“ ще бъдe заменен Ñ Ð¿Ð¾ÑледователноÑтта от знаци „CRLF“ в „%s“."
-#: convert.c:218
+#: convert.c:219
#, c-format
msgid ""
"LF will be replaced by CRLF in %s.\n"
@@ -2375,14 +2384,14 @@ msgstr ""
"Файлът ще оÑтане Ñ Ð¿ÑŠÑ€Ð²Ð¾Ð½Ð°Ñ‡Ð°Ð»Ð½Ð¸Ñ‚Ðµ знаци за край на ред в работната ви "
"директориÑ."
-#: convert.c:279
+#: convert.c:280
#, c-format
msgid "BOM is prohibited in '%s' if encoded as %s"
msgstr ""
"„%s“ не Ñ‚Ñ€Ñбва да Ñъдържа маркер за поредноÑтта на байтовете (BOM) при "
"кодиране „%s“"
-#: convert.c:286
+#: convert.c:287
#, c-format
msgid ""
"The file '%s' contains a byte order mark (BOM). Please use UTF-%s as working-"
@@ -2391,14 +2400,14 @@ msgstr ""
"Файлът „%s“ Ñъдържа маркер за поредноÑтта на байтовете (BOM). Използвайте "
"„UTF-%s“ като кодиране за работното дърво."
-#: convert.c:304
+#: convert.c:305
#, c-format
msgid "BOM is required in '%s' if encoded as %s"
msgstr ""
"„%s“ Ñ‚Ñ€Ñбва да Ñъдържа маркер за поредноÑтта на байтовете (BOM) при кодиране "
"„%s“"
-#: convert.c:306
+#: convert.c:307
#, c-format
msgid ""
"The file '%s' is missing a byte order mark (BOM). Please use UTF-%sBE or UTF-"
@@ -2408,50 +2417,50 @@ msgstr ""
"на работното дърво използвайте UTF-%sBE или UTF-%sLE (в завиÑимоÑÑ‚ от "
"поредноÑтта на байтовете)."
-#: convert.c:424 convert.c:495
+#: convert.c:425 convert.c:496
#, c-format
msgid "failed to encode '%s' from %s to %s"
msgstr "неуÑпешно прекодиране на „%s“ от „%s“ към „%s“"
-#: convert.c:467
+#: convert.c:468
#, c-format
msgid "encoding '%s' from %s to %s and back is not the same"
msgstr "Прекодирането на „%s“ от „%s“ към „%s“ и обратно Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ Ñ„Ð°Ð¹Ð»Ð°"
-#: convert.c:673
+#: convert.c:674
#, c-format
msgid "cannot fork to run external filter '%s'"
msgstr "неуÑпешно Ñъздаване на Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð° външен филтър „%s“"
-#: convert.c:693
+#: convert.c:694
#, c-format
msgid "cannot feed the input to external filter '%s'"
msgstr "входът не може да бъде подаден на Ð²ÑŠÐ½ÑˆÐ½Ð¸Ñ Ñ„Ð¸Ð»Ñ‚ÑŠÑ€ „%s“"
-#: convert.c:700
+#: convert.c:701
#, c-format
msgid "external filter '%s' failed %d"
msgstr "неуÑпешно изпълнение на Ð²ÑŠÐ½ÑˆÐ½Ð¸Ñ Ñ„Ð¸Ð»Ñ‚ÑŠÑ€ „%s“: %d"
-#: convert.c:735 convert.c:738
+#: convert.c:736 convert.c:739
#, c-format
msgid "read from external filter '%s' failed"
msgstr "неуÑпешно четене от Ð²ÑŠÐ½ÑˆÐ½Ð¸Ñ Ñ„Ð¸Ð»Ñ‚ÑŠÑ€ „%s“"
-#: convert.c:741 convert.c:796
+#: convert.c:742 convert.c:797
#, c-format
msgid "external filter '%s' failed"
msgstr "неуÑпешно изпълнение на Ð²ÑŠÐ½ÑˆÐ½Ð¸Ñ Ñ„Ð¸Ð»Ñ‚ÑŠÑ€ „%s“"
-#: convert.c:844
+#: convert.c:845
msgid "unexpected filter type"
msgstr "неочакван вид филтър"
-#: convert.c:855
+#: convert.c:856
msgid "path name too long for external filter"
msgstr "пътÑÑ‚ е прекалено дълъг за външен филтър"
-#: convert.c:929
+#: convert.c:930
#, c-format
msgid ""
"external filter '%s' is not available anymore although not all paths have "
@@ -2460,67 +2469,67 @@ msgstr ""
"външниÑÑ‚ филтър „%s“ вече не е наличен, въпреки че не вÑички пътища Ñа "
"филтрирани"
-#: convert.c:1228
+#: convert.c:1229
msgid "true/false are no valid working-tree-encodings"
msgstr "„true“/„false“ не може да Ñа ÐºÐ¾Ð´Ð¸Ñ€Ð°Ð½Ð¸Ñ Ð½Ð° работното дърво"
-#: convert.c:1398 convert.c:1432
+#: convert.c:1417 convert.c:1451
#, c-format
msgid "%s: clean filter '%s' failed"
msgstr "%s: неуÑпешно изпълнение на декодиращ филтър „%s“"
-#: convert.c:1476
+#: convert.c:1495
#, c-format
msgid "%s: smudge filter %s failed"
msgstr "%s: неуÑпешно изпълнение на кодиращ филтър „%s“"
-#: date.c:137
+#: date.c:138
msgid "in the future"
msgstr "в бъдещето"
-#: date.c:143
+#: date.c:144
#, c-format
msgid "%<PRIuMAX> second ago"
msgid_plural "%<PRIuMAX> seconds ago"
msgstr[0] "преди %<PRIuMAX> Ñекунда"
msgstr[1] "преди %<PRIuMAX> Ñекунди"
-#: date.c:150
+#: date.c:151
#, c-format
msgid "%<PRIuMAX> minute ago"
msgid_plural "%<PRIuMAX> minutes ago"
msgstr[0] "преди %<PRIuMAX> минута"
msgstr[1] "преди %<PRIuMAX> минути"
-#: date.c:157
+#: date.c:158
#, c-format
msgid "%<PRIuMAX> hour ago"
msgid_plural "%<PRIuMAX> hours ago"
msgstr[0] "преди %<PRIuMAX> чаÑ"
msgstr[1] "преди %<PRIuMAX> чаÑа"
-#: date.c:164
+#: date.c:165
#, c-format
msgid "%<PRIuMAX> day ago"
msgid_plural "%<PRIuMAX> days ago"
msgstr[0] "преди %<PRIuMAX> ден"
msgstr[1] "преди %<PRIuMAX> дена"
-#: date.c:170
+#: date.c:171
#, c-format
msgid "%<PRIuMAX> week ago"
msgid_plural "%<PRIuMAX> weeks ago"
msgstr[0] "преди %<PRIuMAX> Ñедмица"
msgstr[1] "преди %<PRIuMAX> Ñедмици"
-#: date.c:177
+#: date.c:178
#, c-format
msgid "%<PRIuMAX> month ago"
msgid_plural "%<PRIuMAX> months ago"
msgstr[0] "преди %<PRIuMAX> меÑец"
msgstr[1] "преди %<PRIuMAX> меÑеца"
-#: date.c:188
+#: date.c:189
#, c-format
msgid "%<PRIuMAX> year"
msgid_plural "%<PRIuMAX> years"
@@ -2528,14 +2537,14 @@ msgstr[0] "%<PRIuMAX> година"
msgstr[1] "%<PRIuMAX> години"
#. TRANSLATORS: "%s" is "<n> years"
-#: date.c:191
+#: date.c:192
#, c-format
msgid "%s, %<PRIuMAX> month ago"
msgid_plural "%s, %<PRIuMAX> months ago"
msgstr[0] "преди %s и %<PRIuMAX> меÑец"
msgstr[1] "преди %s и %<PRIuMAX> меÑеца"
-#: date.c:196 date.c:201
+#: date.c:197 date.c:202
#, c-format
msgid "%<PRIuMAX> year ago"
msgid_plural "%<PRIuMAX> years ago"
@@ -2573,7 +2582,7 @@ msgstr "ОтбелÑзани Ñа %d групи, работата приключ
msgid "failed to read orderfile '%s'"
msgstr "файлът Ñ Ð¿Ð¾Ð´Ñ€ÐµÐ´Ð±Ð°Ñ‚Ð° на ÑъответÑтвиÑта „%s“ не може да бъде прочетен"
-#: diffcore-rename.c:544
+#: diffcore-rename.c:543
msgid "Performing inexact rename detection"
msgstr "ТърÑене на Ð¿Ñ€ÐµÐ¸Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð¸Ñ Ð½Ð° обекти Ñъчетани Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð¸"
@@ -2645,38 +2654,38 @@ msgstr ""
"Грешки в наÑтройката „diff.dirstat“:\n"
"%s"
-#: diff.c:4215
+#: diff.c:4218
#, c-format
msgid "external diff died, stopping at %s"
msgstr ""
"външната програма за разлики завърши неуÑпешно. Спиране на работата при „%s“"
-#: diff.c:4560
+#: diff.c:4563
msgid "--name-only, --name-status, --check and -s are mutually exclusive"
msgstr ""
"Опциите „--name-only“, „--name-status“, „--check“ и „-s“ Ñа неÑъвмеÑтими "
"една Ñ Ð´Ñ€ÑƒÐ³Ð°"
-#: diff.c:4563
+#: diff.c:4566
msgid "-G, -S and --find-object are mutually exclusive"
msgstr "Опциите „-G“, „-S“ и „--find-object“ Ñа неÑъвмеÑтими една Ñ Ð´Ñ€ÑƒÐ³Ð°"
-#: diff.c:4641
+#: diff.c:4644
msgid "--follow requires exactly one pathspec"
msgstr "ОпциÑта „--follow“ изиÑква точно един път"
-#: diff.c:4689
+#: diff.c:4692
#, c-format
msgid "invalid --stat value: %s"
msgstr "неправилна ÑтойноÑÑ‚ за „--stat“: %s"
-#: diff.c:4694 diff.c:4699 diff.c:4704 diff.c:4709 diff.c:5222
+#: diff.c:4697 diff.c:4702 diff.c:4707 diff.c:4712 diff.c:5225
#: parse-options.c:199 parse-options.c:203
#, c-format
msgid "%s expects a numerical value"
msgstr "опциÑта „%s“ очаква чиÑло за аргумент"
-#: diff.c:4726
+#: diff.c:4729
#, c-format
msgid ""
"Failed to parse --dirstat/-X option parameter:\n"
@@ -2685,44 +2694,44 @@ msgstr ""
"Ðеразпознат параметър към опциÑта „--dirstat/-X“:\n"
"%s"
-#: diff.c:4811
+#: diff.c:4814
#, c-format
msgid "unknown change class '%c' in --diff-filter=%s"
msgstr "непознат вид промÑна: „%c“ в „--diff-filter=%s“"
-#: diff.c:4835
+#: diff.c:4838
#, c-format
msgid "unknown value after ws-error-highlight=%.*s"
msgstr "непозната ÑтойноÑÑ‚ Ñлед „ws-error-highlight=%.*s“"
-#: diff.c:4849
+#: diff.c:4852
#, c-format
msgid "unable to resolve '%s'"
msgstr "„%s“ не може да Ñе открие"
-#: diff.c:4899 diff.c:4905
+#: diff.c:4902 diff.c:4908
#, c-format
msgid "%s expects <n>/<m> form"
msgstr ""
"опциÑта „%s“ изиÑква ÑтойноÑти за МИÐИМÐЛЕÐ_%%_ПРОМЯÐÐ_ЗÐ_ИЗТОЧÐИК_/"
"ÐœÐКСИМÐЛЕÐ_%%_ПРОМЯÐÐ_ЗÐ_ЗÐМЯÐРот"
-#: diff.c:4917
+#: diff.c:4920
#, c-format
msgid "%s expects a character, got '%s'"
msgstr "опциÑта „%s“ изиÑква знак, а не: „%s“"
-#: diff.c:4938
+#: diff.c:4941
#, c-format
msgid "bad --color-moved argument: %s"
msgstr "неправилен аргумент за „--color-moved“: „%s“"
-#: diff.c:4957
+#: diff.c:4960
#, c-format
msgid "invalid mode '%s' in --color-moved-ws"
msgstr "неправилен режим „%s“ за „ --color-moved-ws“"
-#: diff.c:4997
+#: diff.c:5000
msgid ""
"option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and "
"\"histogram\""
@@ -2731,153 +2740,153 @@ msgstr ""
"МайерÑ), „minimal“ (минимизиране на разликите), „patience“ (паÑианÑ) и "
"„histogram“ (хиÑтограмен)"
-#: diff.c:5033 diff.c:5053
+#: diff.c:5036 diff.c:5056
#, c-format
msgid "invalid argument to %s"
msgstr "неправилен аргумент към „%s“"
-#: diff.c:5191
+#: diff.c:5194
#, c-format
msgid "failed to parse --submodule option parameter: '%s'"
msgstr "неразпознат параметър към опциÑта „--submodule“: „%s“"
-#: diff.c:5247
+#: diff.c:5250
#, c-format
msgid "bad --word-diff argument: %s"
msgstr "неправилен аргумент към „--word-diff“: „%s“"
-#: diff.c:5270
+#: diff.c:5273
msgid "Diff output format options"
msgstr "Формат на изхода за разликите"
-#: diff.c:5272 diff.c:5278
+#: diff.c:5275 diff.c:5281
msgid "generate patch"
msgstr "Ñъздаване на кръпки"
-#: diff.c:5275 builtin/log.c:172
+#: diff.c:5278 builtin/log.c:172
msgid "suppress diff output"
msgstr "без извеждане на разликите"
-#: diff.c:5280 diff.c:5394 diff.c:5401
+#: diff.c:5283 diff.c:5397 diff.c:5404
msgid "<n>"
msgstr "БРОЙ"
-#: diff.c:5281 diff.c:5284
+#: diff.c:5284 diff.c:5287
msgid "generate diffs with <n> lines context"
msgstr "файловете Ñ Ñ€Ð°Ð·Ð»Ð¸ÐºÐ¸ да Ñа Ñ ÐºÐ¾Ð½Ñ‚ÐµÐºÑÑ‚ Ñ Ñ‚Ð°ÐºÑŠÐ² БРОЙ редове"
-#: diff.c:5286
+#: diff.c:5289
msgid "generate the diff in raw format"
msgstr "файловете Ñ Ñ€Ð°Ð·Ð»Ð¸ÐºÐ¸ да Ñа в Ñуров формат"
-#: diff.c:5289
+#: diff.c:5292
msgid "synonym for '-p --raw'"
msgstr "пÑевдоним на „-p --stat“"
-#: diff.c:5293
+#: diff.c:5296
msgid "synonym for '-p --stat'"
msgstr "пÑевдоним на „-p --stat“"
-#: diff.c:5297
+#: diff.c:5300
msgid "machine friendly --stat"
msgstr "„--stat“ във формат за четене от програма"
-#: diff.c:5300
+#: diff.c:5303
msgid "output only the last line of --stat"
msgstr "извеждане Ñамо на поÑÐ»ÐµÐ´Ð½Ð¸Ñ Ñ€ÐµÐ´ на „--stat“"
-#: diff.c:5302 diff.c:5310
+#: diff.c:5305 diff.c:5313
msgid "<param1,param2>..."
msgstr "ПÐРÐМЕТЪР_1, ПÐРÐМЕТЪР_2, …"
-#: diff.c:5303
+#: diff.c:5306
msgid ""
"output the distribution of relative amount of changes for each sub-directory"
msgstr "извеждане на разпределението на промените за вÑÑка поддиректориÑ"
-#: diff.c:5307
+#: diff.c:5310
msgid "synonym for --dirstat=cumulative"
msgstr "пÑевдоним на „--dirstat=cumulative“"
-#: diff.c:5311
+#: diff.c:5314
msgid "synonym for --dirstat=files,param1,param2..."
msgstr "пÑевдоним на „--dirstat=ФÐЙЛОВЕ,ПÐРÐМЕТЪР_1,ПÐРÐМЕТЪР_2,…“"
-#: diff.c:5315
+#: diff.c:5318
msgid "warn if changes introduce conflict markers or whitespace errors"
msgstr ""
"предупреждаване, ако промените водÑÑ‚ до маркери за конфликт или грешки в "
"празните знаци"
-#: diff.c:5318
+#: diff.c:5321
msgid "condensed summary such as creations, renames and mode changes"
msgstr ""
"Ñъкратено резюме на Ñъздадените, преименуваните и файловете Ñ Ð¿Ñ€Ð¾Ð¼Ñна на "
"режима на доÑтъп"
-#: diff.c:5321
+#: diff.c:5324
msgid "show only names of changed files"
msgstr "извеждане Ñамо на имената на променените файлове"
-#: diff.c:5324
+#: diff.c:5327
msgid "show only names and status of changed files"
msgstr "извеждане Ñамо на имената и ÑтатиÑтиката за променените файлове"
-#: diff.c:5326
+#: diff.c:5329
msgid "<width>[,<name-width>[,<count>]]"
msgstr "ШИРОЧИÐÐ[,ИМЕ-ШИРОЧИÐÐ[,БРОЙ]]"
-#: diff.c:5327
+#: diff.c:5330
msgid "generate diffstat"
msgstr "извеждане на ÑтатиÑтика за промените"
-#: diff.c:5329 diff.c:5332 diff.c:5335
+#: diff.c:5332 diff.c:5335 diff.c:5338
msgid "<width>"
msgstr "ШИРОЧИÐÐ"
-#: diff.c:5330
+#: diff.c:5333
msgid "generate diffstat with a given width"
msgstr "ÑтатиÑтика Ñ Ñ‚Ð°ÐºÐ°Ð²Ð° ШИРОЧИÐРза промените"
-#: diff.c:5333
+#: diff.c:5336
msgid "generate diffstat with a given name width"
msgstr "ÑтатиÑтика за промените Ñ Ñ‚Ð°ÐºÐ°Ð²Ð° ШИРОЧИÐРна имената"
-#: diff.c:5336
+#: diff.c:5339
msgid "generate diffstat with a given graph width"
msgstr "ÑтатиÑтика за промените Ñ Ñ‚Ð°ÐºÐ°Ð²Ð° ШИРОЧИÐРна гра̀фа"
-#: diff.c:5338
+#: diff.c:5341
msgid "<count>"
msgstr "БРОЙ"
-#: diff.c:5339
+#: diff.c:5342
msgid "generate diffstat with limited lines"
msgstr "ограничаване на Ð‘Ð ÐžÑ Ð½Ð° редовете в ÑтатиÑтиката за промените"
-#: diff.c:5342
+#: diff.c:5345
msgid "generate compact summary in diffstat"
msgstr "кратко резюме в ÑтатиÑтиката за промените"
-#: diff.c:5345
+#: diff.c:5348
msgid "output a binary diff that can be applied"
msgstr "извеждане на двоична разлика във вид за прилагане"
-#: diff.c:5348
+#: diff.c:5351
msgid "show full pre- and post-image object names on the \"index\" lines"
msgstr ""
"показване на пълните имена на обекти в редовете за индекÑа при вариантите "
"преди и Ñлед промÑната"
-#: diff.c:5350
+#: diff.c:5353
msgid "show colored diff"
msgstr "разлики в цвÑÑ‚"
-#: diff.c:5351
+#: diff.c:5354
msgid "<kind>"
msgstr "ВИД"
-#: diff.c:5352
+#: diff.c:5355
msgid ""
"highlight whitespace errors in the 'context', 'old' or 'new' lines in the "
"diff"
@@ -2885,7 +2894,7 @@ msgstr ""
"грешките в празните знаци да Ñе указват в редовете за контекÑта, вариантите "
"преди и Ñлед разликата,"
-#: diff.c:5355
+#: diff.c:5358
msgid ""
"do not munge pathnames and use NULs as output field terminators in --raw or "
"--numstat"
@@ -2893,257 +2902,257 @@ msgstr ""
"без преименуване на пътищата. Да Ñе използват нулеви байтове за разделители "
"на полета в изхода при ползване на опциÑта „--raw“ или „--numstat“"
-#: diff.c:5358 diff.c:5361 diff.c:5364 diff.c:5470
+#: diff.c:5361 diff.c:5364 diff.c:5367 diff.c:5473
msgid "<prefix>"
msgstr "ПРЕФИКС"
-#: diff.c:5359
+#: diff.c:5362
msgid "show the given source prefix instead of \"a/\""
msgstr "Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ð²Ð¼ÐµÑто „a/“ за източник"
-#: diff.c:5362
+#: diff.c:5365
msgid "show the given destination prefix instead of \"b/\""
msgstr "Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ð²Ð¼ÐµÑто „b/“ за цел"
-#: diff.c:5365
+#: diff.c:5368
msgid "prepend an additional prefix to every line of output"
msgstr "добавÑне на допълнителен Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ð·Ð° вÑеки ред на изхода"
-#: diff.c:5368
+#: diff.c:5371
msgid "do not show any source or destination prefix"
msgstr "без Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ð·Ð° източника и целта"
-#: diff.c:5371
+#: diff.c:5374
msgid "show context between diff hunks up to the specified number of lines"
msgstr ""
"извеждане на контекÑÑ‚ между поÑледователните парчета Ñ Ñ€Ð°Ð·Ð»Ð¸ÐºÐ¸ от ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ "
"БРОЙ редове"
-#: diff.c:5375 diff.c:5380 diff.c:5385
+#: diff.c:5378 diff.c:5383 diff.c:5388
msgid "<char>"
msgstr "ЗÐÐК"
-#: diff.c:5376
+#: diff.c:5379
msgid "specify the character to indicate a new line instead of '+'"
msgstr "знак вмеÑто „+“ за нов вариант на ред"
-#: diff.c:5381
+#: diff.c:5384
msgid "specify the character to indicate an old line instead of '-'"
msgstr "знак вмеÑто „-“ за Ñтар вариант на ред"
-#: diff.c:5386
+#: diff.c:5389
msgid "specify the character to indicate a context instead of ' '"
msgstr "знак вмеÑто „ “ за контекÑÑ‚"
-#: diff.c:5389
+#: diff.c:5392
msgid "Diff rename options"
msgstr "ÐаÑтройки за разлики Ñ Ð¿Ñ€ÐµÐ¸Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ðµ"
-#: diff.c:5390
+#: diff.c:5393
msgid "<n>[/<m>]"
msgstr "МИÐИМÐЛЕÐ_%_ПРОМЯÐÐ_ЗÐ_ИЗТОЧÐИК[/ÐœÐКСИМÐЛEÐ_%_ПРОМЯÐÐ_ЗÐ_ЗÐМЯÐÐ]"
-#: diff.c:5391
+#: diff.c:5394
msgid "break complete rewrite changes into pairs of delete and create"
msgstr ""
"замеÑтване на пълните промени Ñ Ð¿Ð¾ÑледователноÑÑ‚ от изтриване и Ñъздаване"
-#: diff.c:5395
+#: diff.c:5398
msgid "detect renames"
msgstr "заÑичане на преименуваниÑта"
-#: diff.c:5399
+#: diff.c:5402
msgid "omit the preimage for deletes"
msgstr "без предварителен вариант при изтриване"
-#: diff.c:5402
+#: diff.c:5405
msgid "detect copies"
msgstr "заÑичане на копираниÑта"
-#: diff.c:5406
+#: diff.c:5409
msgid "use unmodified files as source to find copies"
msgstr "Ñ‚ÑŠÑ€Ñене на копирано и от непроменените файлове"
-#: diff.c:5408
+#: diff.c:5411
msgid "disable rename detection"
msgstr "без Ñ‚ÑŠÑ€Ñене на преименуваниÑ"
-#: diff.c:5411
+#: diff.c:5414
msgid "use empty blobs as rename source"
msgstr "празни обекти като източник при преименуваниÑ"
-#: diff.c:5413
+#: diff.c:5416
msgid "continue listing the history of a file beyond renames"
msgstr ""
"продължаване на извеждането на иÑториÑта — без отрÑзването при Ð¿Ñ€ÐµÐ¸Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð¸Ñ "
"на файл"
-#: diff.c:5416
+#: diff.c:5419
msgid ""
"prevent rename/copy detection if the number of rename/copy targets exceeds "
"given limit"
msgstr ""
"без заÑичане на преименуваниÑ/копираниÑ, ако броÑÑ‚ им надвишава тази ÑтойноÑÑ‚"
-#: diff.c:5418
+#: diff.c:5421
msgid "Diff algorithm options"
msgstr "Опции към алгоритъма за разлики"
-#: diff.c:5420
+#: diff.c:5423
msgid "produce the smallest possible diff"
msgstr "Ñ‚ÑŠÑ€Ñене на възможно най-малка разлика"
-#: diff.c:5423
+#: diff.c:5426
msgid "ignore whitespace when comparing lines"
msgstr "без промени в празните знаци при ÑравнÑване на редове"
-#: diff.c:5426
+#: diff.c:5429
msgid "ignore changes in amount of whitespace"
msgstr "без промени в празните знаци"
-#: diff.c:5429
+#: diff.c:5432
msgid "ignore changes in whitespace at EOL"
msgstr "без промени в празните знаци в ÐºÑ€Ð°Ñ Ð½Ð° редовете"
-#: diff.c:5432
+#: diff.c:5435
msgid "ignore carrier-return at the end of line"
msgstr "без промени в знаците за край на ред"
-#: diff.c:5435
+#: diff.c:5438
msgid "ignore changes whose lines are all blank"
msgstr "без промени в редовете, които Ñа изцÑло от празни знаци"
-#: diff.c:5438
+#: diff.c:5441
msgid "heuristic to shift diff hunk boundaries for easy reading"
msgstr ""
"евриÑтика за премеÑтване на границите на парчетата за улеÑнÑване на четенето"
-#: diff.c:5441
+#: diff.c:5444
msgid "generate diff using the \"patience diff\" algorithm"
msgstr "разлика чрез алгоритъм за подредба като паÑианÑ"
-#: diff.c:5445
+#: diff.c:5448
msgid "generate diff using the \"histogram diff\" algorithm"
msgstr "разлика по хиÑÑ‚Ð¾Ð³Ñ€Ð°Ð¼Ð½Ð¸Ñ Ð°Ð»Ð³Ð¾Ñ€Ð¸Ñ‚ÑŠÐ¼"
-#: diff.c:5447
+#: diff.c:5450
msgid "<algorithm>"
msgstr "ÐЛГОРИТЪМ"
-#: diff.c:5448
+#: diff.c:5451
msgid "choose a diff algorithm"
msgstr "избор на ÐЛГОРИТЪМа за разлики"
-#: diff.c:5450
+#: diff.c:5453
msgid "<text>"
msgstr "ТЕКСТ"
-#: diff.c:5451
+#: diff.c:5454
msgid "generate diff using the \"anchored diff\" algorithm"
msgstr "разлика чрез алгоритъма ÑÑŠÑ Ð·Ð°ÐºÐ¾Ñ‚Ð²Ñне"
-#: diff.c:5453 diff.c:5462 diff.c:5465
+#: diff.c:5456 diff.c:5465 diff.c:5468
msgid "<mode>"
msgstr "РЕЖИМ"
-#: diff.c:5454
+#: diff.c:5457
msgid "show word diff, using <mode> to delimit changed words"
msgstr ""
"разлика по думи, като Ñе ползва този РЕЖИМ за отделÑнето на променените думи"
-#: diff.c:5456 diff.c:5459 diff.c:5504
+#: diff.c:5459 diff.c:5462 diff.c:5507
msgid "<regex>"
msgstr "РЕГУЛЯРЕÐ_ИЗРÐЗ"
-#: diff.c:5457
+#: diff.c:5460
msgid "use <regex> to decide what a word is"
msgstr "РЕГУЛЯРЕÐ_ИЗРÐЗ за разделÑне по думи"
-#: diff.c:5460
+#: diff.c:5463
msgid "equivalent to --word-diff=color --word-diff-regex=<regex>"
msgstr "пÑевдоним на „--word-diff=color --word-diff-regex=РЕГУЛЯРЕÐ_ИЗРÐЗ“"
-#: diff.c:5463
+#: diff.c:5466
msgid "moved lines of code are colored differently"
msgstr "различен цвÑÑ‚ за извеждане на премеÑтените редове"
-#: diff.c:5466
+#: diff.c:5469
msgid "how white spaces are ignored in --color-moved"
msgstr ""
"режим за преÑкачането на празните знаци при задаването на „--color-moved“"
-#: diff.c:5469
+#: diff.c:5472
msgid "Other diff options"
msgstr "Други опции за разлики"
-#: diff.c:5471
+#: diff.c:5474
msgid "when run from subdir, exclude changes outside and show relative paths"
msgstr ""
"при изпълнение от Ð¿Ð¾Ð´Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð° Ñе пренебрегват разликите извън Ð½ÐµÑ Ð¸ да "
"Ñе ползват отноÑителни пътища"
-#: diff.c:5475
+#: diff.c:5478
msgid "treat all files as text"
msgstr "обработка на вÑички файлове като текÑтови"
-#: diff.c:5477
+#: diff.c:5480
msgid "swap two inputs, reverse the diff"
msgstr "размÑна на двата входа — обръщане на разликата"
-#: diff.c:5479
+#: diff.c:5482
msgid "exit with 1 if there were differences, 0 otherwise"
msgstr ""
"завършване Ñ ÐºÐ¾Ð´ за ÑÑŠÑтоÑние 1 при наличието на разлики, а в противен "
"Ñлучай — Ñ 0"
-#: diff.c:5481
+#: diff.c:5484
msgid "disable all output of the program"
msgstr "без вÑÑкакъв изход от програмата"
-#: diff.c:5483
+#: diff.c:5486
msgid "allow an external diff helper to be executed"
msgstr "позволÑване на изпълнение на външна помощна програма за разлики"
-#: diff.c:5485
+#: diff.c:5488
msgid "run external text conversion filters when comparing binary files"
msgstr ""
"изпълнение на външни програми-филтри при Ñравнението на двоични файлове"
-#: diff.c:5487
+#: diff.c:5490
msgid "<when>"
msgstr "КОГÐ"
-#: diff.c:5488
+#: diff.c:5491
msgid "ignore changes to submodules in the diff generation"
msgstr "игнориране на промените в подмодулите при извеждането на разликите"
-#: diff.c:5491
+#: diff.c:5494
msgid "<format>"
msgstr "ФОРМÐТ"
-#: diff.c:5492
+#: diff.c:5495
msgid "specify how differences in submodules are shown"
msgstr "начин за извеждане на промените в подмодулите"
-#: diff.c:5496
+#: diff.c:5499
msgid "hide 'git add -N' entries from the index"
msgstr "без включване в индекÑа на запиÑите, добавени Ñ â€žgit add -N“"
-#: diff.c:5499
+#: diff.c:5502
msgid "treat 'git add -N' entries as real in the index"
msgstr "включване в индекÑа на запиÑите, добавени Ñ â€žgit add -N“"
-#: diff.c:5501
+#: diff.c:5504
msgid "<string>"
msgstr "ÐИЗ"
-#: diff.c:5502
+#: diff.c:5505
msgid ""
"look for differences that change the number of occurrences of the specified "
"string"
msgstr "Ñ‚ÑŠÑ€Ñене на разлики, които променÑÑ‚ Ð±Ñ€Ð¾Ñ Ð½Ð° поÑва на указаните низове"
-#: diff.c:5505
+#: diff.c:5508
msgid ""
"look for differences that change the number of occurrences of the specified "
"regex"
@@ -3151,97 +3160,97 @@ msgstr ""
"Ñ‚ÑŠÑ€Ñене на разлики, които променÑÑ‚ Ð±Ñ€Ð¾Ñ Ð½Ð° поÑва на низовете, които напаÑват "
"на регулÑÑ€Ð½Ð¸Ñ Ð¸Ð·Ñ€Ð°Ð·"
-#: diff.c:5508
+#: diff.c:5511
msgid "show all changes in the changeset with -S or -G"
msgstr "извеждане на вÑички промени Ñ â€ž-G“/„-S“"
-#: diff.c:5511
+#: diff.c:5514
msgid "treat <string> in -S as extended POSIX regular expression"
msgstr "ÐИЗът към „-S“ да Ñе тълкува като разширен регулÑрен израз по POSIX"
-#: diff.c:5514
+#: diff.c:5517
msgid "control the order in which files appear in the output"
msgstr "управление на подредбата на файловете в изхода"
-#: diff.c:5515
+#: diff.c:5518
msgid "<object-id>"
msgstr "ИДЕÐТИФИКÐТОР_ÐÐ_ОБЕКТ"
-#: diff.c:5516
+#: diff.c:5519
msgid ""
"look for differences that change the number of occurrences of the specified "
"object"
msgstr "Ñ‚ÑŠÑ€Ñене на разлики, които променÑÑ‚ Ð±Ñ€Ð¾Ñ Ð½Ð° поÑва на ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð¾Ð±ÐµÐºÑ‚"
-#: diff.c:5518
+#: diff.c:5521
msgid "[(A|C|D|M|R|T|U|X|B)...[*]]"
msgstr "[(A|C|D|M|R|T|U|X|B)…[*]]"
-#: diff.c:5519
+#: diff.c:5522
msgid "select files by diff type"
msgstr "избор на файловете по вид разлика"
-#: diff.c:5521
+#: diff.c:5524
msgid "<file>"
msgstr "ФÐЙЛ"
-#: diff.c:5522
+#: diff.c:5525
msgid "Output to a specific file"
msgstr "Изход към ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»"
-#: diff.c:6177
+#: diff.c:6180
msgid "inexact rename detection was skipped due to too many files."
msgstr ""
"Ñ‚ÑŠÑ€Ñенето на Ð¿Ñ€ÐµÐ¸Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð¸Ñ Ð½Ð° обекти Ñъчетани Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð¸ Ñе преÑкача поради "
"многото файлове."
-#: diff.c:6180
+#: diff.c:6183
msgid "only found copies from modified paths due to too many files."
msgstr ""
"уÑтановени Ñа Ñамо точните ÐºÐ¾Ð¿Ð¸Ñ Ð½Ð° променените пътища поради многото "
"файлове."
-#: diff.c:6183
+#: diff.c:6186
#, c-format
msgid ""
"you may want to set your %s variable to at least %d and retry the command."
msgstr "задайте променливата „%s“ да е поне %d и отново изпълнете командата."
-#: dir.c:537
+#: dir.c:549
#, c-format
msgid "pathspec '%s' did not match any file(s) known to git"
msgstr "пътÑÑ‚ „%s“ не Ñъвпада Ñ Ð½Ð¸ÐºÐ¾Ð¹ файл в git"
-#: dir.c:926
+#: dir.c:938
#, c-format
msgid "cannot use %s as an exclude file"
msgstr "„%s“ не може да Ñе ползва за игнорираните файлове (като gitignore)"
-#: dir.c:1843
+#: dir.c:1877
#, c-format
msgid "could not open directory '%s'"
msgstr "директориÑта „%s“ не може да бъде отворена"
-#: dir.c:2085
+#: dir.c:2128
msgid "failed to get kernel name and information"
msgstr "името и верÑиÑта на Ñдрото не бÑха получени"
-#: dir.c:2209
+#: dir.c:2252
msgid "untracked cache is disabled on this system or location"
msgstr ""
"кешът за неÑледените файлове е изключен на тази ÑиÑтема или меÑтоположение"
-#: dir.c:3013
+#: dir.c:3056
#, c-format
msgid "index file corrupt in repo %s"
msgstr "файлът Ñ Ð¸Ð½Ð´ÐµÐºÑа е повреден в хранилището „%s“"
-#: dir.c:3058 dir.c:3063
+#: dir.c:3101 dir.c:3106
#, c-format
msgid "could not create directories for %s"
msgstr "директориите за „%s“ не може да бъдат Ñъздадени"
-#: dir.c:3092
+#: dir.c:3135
#, c-format
msgid "could not migrate git directory from '%s' to '%s'"
msgstr "директориÑта на git не може да Ñе мигрира от „%s“ до „%s“"
@@ -3260,12 +3269,12 @@ msgstr "Филтриране на Ñъдържанието"
msgid "could not stat file '%s'"
msgstr "неуÑпешно изпълнение на „stat“ върху файла „%s“"
-#: environment.c:150
+#: environment.c:148
#, c-format
msgid "bad git namespace path \"%s\""
msgstr "неправилен път към проÑтранÑтва от имена „%s“"
-#: environment.c:332
+#: environment.c:330
#, c-format
msgid "could not set GIT_DIR to '%s'"
msgstr "GIT_DIR не може да Ñе зададе да е „%s“"
@@ -3275,159 +3284,155 @@ msgstr "GIT_DIR не може да Ñе зададе да е „%s“"
msgid "too many args to run %s"
msgstr "прекалено много аргументи за изпълнение „%s“"
-#: fetch-object.c:17
-msgid "Remote with no URL"
-msgstr "ЛипÑва Ð°Ð´Ñ€ÐµÑ Ð·Ð° отдалеченото хранилище"
-
-#: fetch-pack.c:151
+#: fetch-pack.c:150
msgid "git fetch-pack: expected shallow list"
msgstr "git fetch-pack: очаква Ñе плитък ÑпиÑък"
-#: fetch-pack.c:154
+#: fetch-pack.c:153
msgid "git fetch-pack: expected a flush packet after shallow list"
msgstr "git fetch-pack: Ñлед плитък ÑпиÑък Ñе очаква изчиÑтващ пакет „flush“"
-#: fetch-pack.c:165
+#: fetch-pack.c:164
msgid "git fetch-pack: expected ACK/NAK, got a flush packet"
msgstr ""
"git fetch-pack: очаква Ñе „ACK“/„NAK“, а бе получен изчиÑтващ пакет „flush“"
-#: fetch-pack.c:185
+#: fetch-pack.c:184
#, c-format
msgid "git fetch-pack: expected ACK/NAK, got '%s'"
msgstr "git fetch-pack: очаква Ñе „ACK“/„NAK“, а бе получено „%s“"
-#: fetch-pack.c:196
+#: fetch-pack.c:195
msgid "unable to write to remote"
msgstr "невъзможно пиÑане към отдалечено хранилище"
-#: fetch-pack.c:258
+#: fetch-pack.c:257
msgid "--stateless-rpc requires multi_ack_detailed"
msgstr "опциÑта „--stateless-rpc“ изиÑква „multi_ack_detailed“"
-#: fetch-pack.c:360 fetch-pack.c:1284
+#: fetch-pack.c:356 fetch-pack.c:1280
#, c-format
msgid "invalid shallow line: %s"
msgstr "неправилен плитък ред: „%s“"
-#: fetch-pack.c:366 fetch-pack.c:1290
+#: fetch-pack.c:362 fetch-pack.c:1286
#, c-format
msgid "invalid unshallow line: %s"
msgstr "неправилен неплитък ред: „%s“"
-#: fetch-pack.c:368 fetch-pack.c:1292
+#: fetch-pack.c:364 fetch-pack.c:1288
#, c-format
msgid "object not found: %s"
msgstr "обектът „%s“ липÑва"
-#: fetch-pack.c:371 fetch-pack.c:1295
+#: fetch-pack.c:367 fetch-pack.c:1291
#, c-format
msgid "error in object: %s"
msgstr "грешка в обекта: „%s“"
-#: fetch-pack.c:373 fetch-pack.c:1297
+#: fetch-pack.c:369 fetch-pack.c:1293
#, c-format
msgid "no shallow found: %s"
msgstr "не е открит плитък обект: %s"
-#: fetch-pack.c:376 fetch-pack.c:1301
+#: fetch-pack.c:372 fetch-pack.c:1297
#, c-format
msgid "expected shallow/unshallow, got %s"
msgstr "очаква Ñе плитък или не обект, а бе получено: „%s“"
-#: fetch-pack.c:417
+#: fetch-pack.c:414
#, c-format
msgid "got %s %d %s"
msgstr "получено бе %s %d %s"
-#: fetch-pack.c:434
+#: fetch-pack.c:431
#, c-format
msgid "invalid commit %s"
msgstr "неправилно подаване: „%s“"
-#: fetch-pack.c:465
+#: fetch-pack.c:462
msgid "giving up"
msgstr "преуÑтановÑване"
-#: fetch-pack.c:477 progress.c:277
+#: fetch-pack.c:475 progress.c:312
msgid "done"
msgstr "дейÑтвието завърши"
-#: fetch-pack.c:489
+#: fetch-pack.c:487
#, c-format
msgid "got %s (%d) %s"
msgstr "получено бе %s (%d) %s"
-#: fetch-pack.c:535
+#: fetch-pack.c:533
#, c-format
msgid "Marking %s as complete"
msgstr "ОтбелÑзване на „%s“ като пълно"
-#: fetch-pack.c:744
+#: fetch-pack.c:742
#, c-format
msgid "already have %s (%s)"
msgstr "вече има „%s“ (%s)"
-#: fetch-pack.c:783
+#: fetch-pack.c:781
msgid "fetch-pack: unable to fork off sideband demultiplexer"
msgstr "fetch-pack: не може да Ñе Ñъздаде Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð° демултиплекÑора"
-#: fetch-pack.c:791
+#: fetch-pack.c:789
msgid "protocol error: bad pack header"
msgstr "протоколна грешка: неправилна заглавна чаÑÑ‚ на пакет"
-#: fetch-pack.c:859
+#: fetch-pack.c:857
#, c-format
msgid "fetch-pack: unable to fork off %s"
msgstr "fetch-pack: не може да Ñе Ñъздаде Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð° „%s“"
-#: fetch-pack.c:875
+#: fetch-pack.c:873
#, c-format
msgid "%s failed"
msgstr "неуÑпешно изпълнение на „%s“"
-#: fetch-pack.c:877
+#: fetch-pack.c:875
msgid "error in sideband demultiplexer"
msgstr "грешка в демултиплекÑора"
-#: fetch-pack.c:908
+#: fetch-pack.c:907
#, c-format
msgid "Server version is %.*s"
msgstr "ВерÑиÑта на Ñървъра е: %.*s"
-#: fetch-pack.c:913 fetch-pack.c:919 fetch-pack.c:922 fetch-pack.c:928
-#: fetch-pack.c:932 fetch-pack.c:936 fetch-pack.c:940 fetch-pack.c:944
-#: fetch-pack.c:948 fetch-pack.c:952 fetch-pack.c:956 fetch-pack.c:960
-#: fetch-pack.c:966 fetch-pack.c:972 fetch-pack.c:977 fetch-pack.c:982
+#: fetch-pack.c:912 fetch-pack.c:918 fetch-pack.c:921 fetch-pack.c:927
+#: fetch-pack.c:931 fetch-pack.c:935 fetch-pack.c:939 fetch-pack.c:943
+#: fetch-pack.c:947 fetch-pack.c:951 fetch-pack.c:955 fetch-pack.c:959
+#: fetch-pack.c:965 fetch-pack.c:971 fetch-pack.c:976 fetch-pack.c:981
#, c-format
msgid "Server supports %s"
msgstr "Сървърът поддържа „%s“"
-#: fetch-pack.c:915
+#: fetch-pack.c:914
msgid "Server does not support shallow clients"
msgstr "Сървърът не поддържа плитки клиенти"
-#: fetch-pack.c:975
+#: fetch-pack.c:974
msgid "Server does not support --shallow-since"
msgstr "Сървърът не поддържа опциÑта „--shallow-since“"
-#: fetch-pack.c:980
+#: fetch-pack.c:979
msgid "Server does not support --shallow-exclude"
msgstr "Сървърът не поддържа опциÑта „--shallow-exclude“"
-#: fetch-pack.c:984
+#: fetch-pack.c:983
msgid "Server does not support --deepen"
msgstr "Сървърът не поддържа опциÑта „--deepen“"
-#: fetch-pack.c:1001
+#: fetch-pack.c:1000
msgid "no common commits"
msgstr "нÑма общи подаваниÑ"
-#: fetch-pack.c:1013 fetch-pack.c:1462
+#: fetch-pack.c:1012 fetch-pack.c:1468
msgid "git fetch-pack: fetch failed."
msgstr "git fetch-pack: неуÑпешно доÑтавÑне."
-#: fetch-pack.c:1151
+#: fetch-pack.c:1150
msgid "Server does not support shallow requests"
msgstr "Сървърът не поддържа плитки заÑвки"
@@ -3435,75 +3440,75 @@ msgstr "Сървърът не поддържа плитки заÑвки"
msgid "Server supports filter"
msgstr "Сървърът поддържа филтри"
-#: fetch-pack.c:1184
+#: fetch-pack.c:1180
msgid "unable to write request to remote"
msgstr "невъзможно пиÑане към отдалечено хранилище"
-#: fetch-pack.c:1202
+#: fetch-pack.c:1198
#, c-format
msgid "error reading section header '%s'"
msgstr "грешка при прочитане на заглавната чаÑÑ‚ на раздел „%s“"
-#: fetch-pack.c:1208
+#: fetch-pack.c:1204
#, c-format
msgid "expected '%s', received '%s'"
msgstr "очаква Ñе „%s“, а бе получено „%s“"
-#: fetch-pack.c:1247
+#: fetch-pack.c:1243
#, c-format
msgid "unexpected acknowledgment line: '%s'"
msgstr "неочакван ред за потвърждение: „%s“"
-#: fetch-pack.c:1252
+#: fetch-pack.c:1248
#, c-format
msgid "error processing acks: %d"
msgstr "грешка при обработка на потвърждениÑта: %d"
-#: fetch-pack.c:1262
+#: fetch-pack.c:1258
msgid "expected packfile to be sent after 'ready'"
msgstr ""
"очакваше Ñе пакетниÑÑ‚ файл да бъде изпратен Ñлед отговор за готовноÑÑ‚ (ready)"
-#: fetch-pack.c:1264
+#: fetch-pack.c:1260
msgid "expected no other sections to be sent after no 'ready'"
msgstr ""
"очакваше Ñе Ñлед липÑа на отговор за готовноÑÑ‚ (ready) да не Ñе Ñе пращат "
"други раздели"
-#: fetch-pack.c:1306
+#: fetch-pack.c:1302
#, c-format
msgid "error processing shallow info: %d"
msgstr "грешка при обработка на Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° дълбочината/плиткоÑтта: %d"
-#: fetch-pack.c:1353
+#: fetch-pack.c:1349
#, c-format
msgid "expected wanted-ref, got '%s'"
msgstr "очаква Ñе иÑкан указател, а бе получено: „%s“"
-#: fetch-pack.c:1358
+#: fetch-pack.c:1354
#, c-format
msgid "unexpected wanted-ref: '%s'"
msgstr "неочакван иÑкан указател: „%s“"
-#: fetch-pack.c:1363
+#: fetch-pack.c:1359
#, c-format
msgid "error processing wanted refs: %d"
msgstr "грешка при обработката на иÑканите указатели: %d"
-#: fetch-pack.c:1689
+#: fetch-pack.c:1693
msgid "no matching remote head"
msgstr "не може да бъде открит подходÑщ връх от отдалеченото хранилище"
-#: fetch-pack.c:1712 builtin/clone.c:686
+#: fetch-pack.c:1716 builtin/clone.c:685
msgid "remote did not send all necessary objects"
msgstr "отдалеченото хранилище не изпрати вÑички необходими обекти."
-#: fetch-pack.c:1739
+#: fetch-pack.c:1743
#, c-format
msgid "no such remote ref %s"
msgstr "такъв отдалечен указател нÑма: %s"
-#: fetch-pack.c:1742
+#: fetch-pack.c:1746
#, c-format
msgid "Server does not allow request for unadvertised object %s"
msgstr "Сървърът не позволÑва заÑвка за необÑвен обект „%s“"
@@ -3526,18 +3531,26 @@ msgstr "Програмата не уÑÐ¿Ñ Ð´Ð° запише ÑамоÑтоÑÑ‚Ð
msgid "ignore invalid color '%.*s' in log.graphColors"
msgstr "преÑкачане на Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»Ð½Ð¸Ñ Ñ†Ð²ÑÑ‚ „%.*s“ в „log.graphColors“"
-#: grep.c:2117
+#: grep.c:668
+msgid ""
+"given pattern contains NULL byte (via -f <file>). This is only supported "
+"with -P under PCRE v2"
+msgstr ""
+"зададениÑÑ‚ шаблон Ñъдържа нулев знак (идва от -f „ФÐЙЛ“). Това Ñе поддържа "
+"в ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ Ñ â€ž-P“ Ñамо при ползването на „PCRE v2“"
+
+#: grep.c:2124
#, c-format
msgid "'%s': unable to read %s"
msgstr "„%s“: файлът Ñочен от „%s“ не може да бъде прочетен"
-#: grep.c:2134 setup.c:164 builtin/clone.c:409 builtin/diff.c:82
+#: grep.c:2141 setup.c:165 builtin/clone.c:408 builtin/diff.c:82
#: builtin/rm.c:135
#, c-format
msgid "failed to stat '%s'"
msgstr "не може да бъде получена Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ñ‡Ñ€ÐµÐ· „stat“ за „%s“"
-#: grep.c:2145
+#: grep.c:2152
#, c-format
msgid "'%s': short read"
msgstr "„%s“: изчитането върна по-малко байтове от очакваното"
@@ -3684,12 +3697,12 @@ msgstr[1] ""
msgid "git version [<options>]"
msgstr "git version [ОПЦИЯ…]"
-#: help.c:782
+#: help.c:783
#, c-format
msgid "%s: %s - %s"
msgstr "%s: %s — %s"
-#: help.c:786
+#: help.c:787
msgid ""
"\n"
"Did you mean this?"
@@ -3765,41 +3778,57 @@ msgstr "името Ñъдържа Ñамо непозволени знаци: â€
msgid "invalid date format: %s"
msgstr "неправилен формат на дата: %s"
-#: list-objects.c:129
+#: list-objects.c:127
#, c-format
msgid "entry '%s' in tree %s has tree mode, but is not a tree"
msgstr "обект „%s“ в дървото „%s“ е отбелÑзан като дърво, но не е"
-#: list-objects.c:142
+#: list-objects.c:140
#, c-format
msgid "entry '%s' in tree %s has blob mode, but is not a blob"
msgstr "обект „%s“ в дървото „%s“ е отбелÑзан като BLOB, но не е"
-#: list-objects.c:378
+#: list-objects.c:375
#, c-format
msgid "unable to load root tree for commit %s"
msgstr "кореновото дърво за подаване „%s“ не може да Ñе зареди"
-#: list-objects-filter-options.c:36
-msgid "multiple filter-specs cannot be combined"
-msgstr "не може да комбинирате множеÑтво филтри"
+#: list-objects-filter.c:492
+#, c-format
+msgid "unable to access sparse blob in '%s'"
+msgstr "нÑма доÑтъп до чаÑтично Ð¸Ð·Ñ‚ÐµÐ³Ð»ÐµÐ½Ð¸Ñ Ð¾Ð±ÐµÐºÑ‚-BLOB в „%s“"
+
+#: list-objects-filter.c:495
+#, c-format
+msgid "unable to parse sparse filter data in %s"
+msgstr ""
+"данните от филтъра за чаÑтични Ð¸Ð·Ñ‚ÐµÐ³Ð»Ð°Ð½Ð¸Ñ Ð² „%s“ не може да бъдат анализирани"
#: list-objects-filter-options.c:58
msgid "expected 'tree:<depth>'"
msgstr "очаква Ñе „tree:ДЪЛБОЧИÐГ"
-#: list-objects-filter-options.c:84
+#: list-objects-filter-options.c:73
msgid "sparse:path filters support has been dropped"
msgstr "поддръжката на филтри ÑÑŠÑ â€žsparse:path“ е премахната"
-#: list-objects-filter-options.c:94
+#: list-objects-filter-options.c:86
#, c-format
msgid "invalid filter-spec '%s'"
msgstr "неправилен филтър: „%s“"
-#: list-objects-filter-options.c:158
-msgid "cannot change partial clone promisor remote"
-msgstr "не може да промените хранилището-гарант на непълно хранилище"
+#: list-objects-filter-options.c:102
+#, c-format
+msgid "must escape char in sub-filter-spec: '%c'"
+msgstr "знак за екраниране в подфилтър: „%c“"
+
+#: list-objects-filter-options.c:144
+msgid "expected something after combine:"
+msgstr "добавете нещо Ñлед комбинирането:"
+
+#: list-objects-filter-options.c:226
+msgid "multiple filter-specs cannot be combined"
+msgstr "не може да комбинирате множеÑтво филтри"
#: lockfile.c:151
#, c-format
@@ -3829,126 +3858,122 @@ msgstr "Файлът-ключалка „%s.lock“ не може да бъде
msgid "failed to read the cache"
msgstr "кешът не може да бъде прочетен"
-#: merge.c:107 rerere.c:720 builtin/am.c:1885 builtin/am.c:1919
-#: builtin/checkout.c:536 builtin/checkout.c:796 builtin/clone.c:786
+#: merge.c:107 rerere.c:720 builtin/am.c:1874 builtin/am.c:1908
+#: builtin/checkout.c:537 builtin/checkout.c:796 builtin/clone.c:785
#: builtin/stash.c:264
msgid "unable to write new index file"
msgstr "неуÑпешно запиÑване на Ð½Ð¾Ð²Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑ"
-#: merge-recursive.c:322
+#: merge-recursive.c:367
msgid "(bad commit)\n"
msgstr "(лошо подаване)\n"
-#: merge-recursive.c:345
+#: merge-recursive.c:390
#, c-format
msgid "add_cacheinfo failed for path '%s'; merge aborting."
msgstr ""
"неуÑпешно изпълнение на „add_cacheinfo“ за Ð¿ÑŠÑ‚Ñ â€ž%s“. Сливането е "
"преуÑтановено."
-#: merge-recursive.c:354
+#: merge-recursive.c:399
#, c-format
msgid "add_cacheinfo failed to refresh for path '%s'; merge aborting."
msgstr ""
"неуÑпешно изпълнение на „add_cacheinfo“ за обновÑването на Ð¿ÑŠÑ‚Ñ â€ž%s“. "
"Сливането е преуÑтановено."
-#: merge-recursive.c:437
-msgid "error building trees"
-msgstr "грешка при изграждане на дърветата"
-
-#: merge-recursive.c:863
+#: merge-recursive.c:885
#, c-format
msgid "failed to create path '%s'%s"
msgstr "грешка при Ñъздаването на Ð¿ÑŠÑ‚Ñ â€ž%s“%s"
-#: merge-recursive.c:874
+#: merge-recursive.c:896
#, c-format
msgid "Removing %s to make room for subdirectory\n"
msgstr "Изтриване на „%s“, за да Ñе оÑвободи мÑÑто за поддиректориÑ\n"
-#: merge-recursive.c:888 merge-recursive.c:907
+#: merge-recursive.c:910 merge-recursive.c:929
msgid ": perhaps a D/F conflict?"
msgstr ": възможно е да има конфликт директориÑ/файл."
-#: merge-recursive.c:897
+#: merge-recursive.c:919
#, c-format
msgid "refusing to lose untracked file at '%s'"
msgstr ""
"преуÑтановÑване на дейÑтвието, за да не Ñе изтрие неÑледениÑÑ‚ файл „%s“"
-#: merge-recursive.c:938 builtin/cat-file.c:40
+#: merge-recursive.c:960 builtin/cat-file.c:41
#, c-format
msgid "cannot read object %s '%s'"
msgstr "обектът „%s“ (%s) не може да бъде прочетен"
-#: merge-recursive.c:941
+#: merge-recursive.c:965
#, c-format
msgid "blob expected for %s '%s'"
msgstr "обектът „%s“ (%s) Ñе очакваше да е BLOB, а не е"
-#: merge-recursive.c:965
+#: merge-recursive.c:990
#, c-format
msgid "failed to open '%s': %s"
msgstr "„%s“ не може да Ñе отвори: %s"
-#: merge-recursive.c:976
+#: merge-recursive.c:1001
#, c-format
msgid "failed to symlink '%s': %s"
msgstr "неуÑпешно Ñъздаване на Ñимволната връзка „%s“: %s"
-#: merge-recursive.c:981
+#: merge-recursive.c:1006
#, c-format
msgid "do not know what to do with %06o %s '%s'"
msgstr ""
"не е ÑÑно какво да Ñе прави Ñ Ð¾Ð±ÐµÐºÑ‚Ð° „%2$s“ (%3$s) Ñ Ð¿Ñ€Ð°Ð²Ð° за доÑтъп „%1$06o“"
-#: merge-recursive.c:1177
+#: merge-recursive.c:1199
#, c-format
msgid "Failed to merge submodule %s (not checked out)"
msgstr "ÐеуÑпешно Ñливане на подмодула „%s“ (не е изтеглен)"
-#: merge-recursive.c:1184
+#: merge-recursive.c:1206
#, c-format
msgid "Failed to merge submodule %s (commits not present)"
msgstr "ÐеуÑпешно Ñливане на подмодула „%s“ (нÑма подаваниÑ)"
-#: merge-recursive.c:1191
+#: merge-recursive.c:1213
#, c-format
msgid "Failed to merge submodule %s (commits don't follow merge-base)"
msgstr ""
"Подмодулът „%s“ не може да бъде ÑлÑÑ‚ (базата за Ñливане не предшеÑтва "
"подаваниÑта)"
-#: merge-recursive.c:1199 merge-recursive.c:1211
+#: merge-recursive.c:1221 merge-recursive.c:1233
#, c-format
msgid "Fast-forwarding submodule %s to the following commit:"
msgstr "Превъртане на подмодула „%s“ до Ñледното подаване:"
-#: merge-recursive.c:1202 merge-recursive.c:1214
+#: merge-recursive.c:1224 merge-recursive.c:1236
#, c-format
msgid "Fast-forwarding submodule %s"
msgstr "Превъртане на подмодула „%s“"
-#: merge-recursive.c:1237
+#: merge-recursive.c:1259
#, c-format
msgid "Failed to merge submodule %s (merge following commits not found)"
msgstr ""
"ÐеуÑпешно Ñливане на подмодула „%s“ (липÑва Ñливането, което Ñе предшеÑтва "
"от подаваниÑта)"
-#: merge-recursive.c:1241
+#: merge-recursive.c:1263
#, c-format
msgid "Failed to merge submodule %s (not fast-forward)"
msgstr "ÐеуÑпешно Ñливане на подмодула „%s“ (не е превъртане)"
-#: merge-recursive.c:1242
+#: merge-recursive.c:1264
msgid "Found a possible merge resolution for the submodule:\n"
msgstr ""
"Открито е Ñливане, което може да решава проблема ÑÑŠÑ Ñливането на "
"подмодула:\n"
-#: merge-recursive.c:1245
+#: merge-recursive.c:1267
#, c-format
msgid ""
"If this is correct simply add it to the index for example\n"
@@ -3964,31 +3989,31 @@ msgstr ""
"\n"
"Това приема предложеното.\n"
-#: merge-recursive.c:1254
+#: merge-recursive.c:1276
#, c-format
msgid "Failed to merge submodule %s (multiple merges found)"
msgstr "ÐеуÑпешно Ñливане на подмодула „%s“ (открити Ñа множеÑтво ÑливаниÑ)"
-#: merge-recursive.c:1327
+#: merge-recursive.c:1349
msgid "Failed to execute internal merge"
msgstr "ÐеуÑпешно вътрешно Ñливане"
-#: merge-recursive.c:1332
+#: merge-recursive.c:1354
#, c-format
msgid "Unable to add %s to database"
msgstr "„%s“ не може да Ñе добави в базата Ñ Ð´Ð°Ð½Ð½Ð¸"
-#: merge-recursive.c:1364
+#: merge-recursive.c:1386
#, c-format
msgid "Auto-merging %s"
msgstr "Ðвтоматично Ñливане на „%s“"
-#: merge-recursive.c:1387
+#: merge-recursive.c:1410
#, c-format
msgid "Error: Refusing to lose untracked file at %s; writing to %s instead."
msgstr "Грешка: за да не Ñе изтрие неÑледениÑÑ‚ файл „%s“, Ñе запиÑва в „%s“."
-#: merge-recursive.c:1459
+#: merge-recursive.c:1482
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -3997,7 +4022,7 @@ msgstr ""
"КОÐФЛИКТ (%s/изтриване): „%s“ е изтрит в %s, а „%s“ в %s. ВерÑÐ¸Ñ %s на „%s“ "
"е оÑтавена в дървото."
-#: merge-recursive.c:1464
+#: merge-recursive.c:1487
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -4006,7 +4031,7 @@ msgstr ""
"КОÐФЛИКТ (%s/изтриване): „%s“ е изтрит в %s, а „%s“ е преименуван на „%s“ в "
"%s. ВерÑÐ¸Ñ %s на „%s“ е оÑтавена в дървото."
-#: merge-recursive.c:1471
+#: merge-recursive.c:1494
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -4015,7 +4040,7 @@ msgstr ""
"КОÐФЛИКТ (%s/изтриване): „%s“ е изтрит в %s, а „%s“ в %s. ВерÑÐ¸Ñ %s на „%s“ "
"е оÑтавена в дървото: %s."
-#: merge-recursive.c:1476
+#: merge-recursive.c:1499
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -4024,45 +4049,45 @@ msgstr ""
"КОÐФЛИКТ (%s/изтриване): „%s“ е изтрит в %s, а „%s“ е преименуван на „%s“ в "
"%s. ВерÑÐ¸Ñ %s на „%s“ е оÑтавена в дървото: %s."
-#: merge-recursive.c:1511
+#: merge-recursive.c:1534
msgid "rename"
msgstr "преименуване"
-#: merge-recursive.c:1511
+#: merge-recursive.c:1534
msgid "renamed"
msgstr "преименуван"
-#: merge-recursive.c:1591 merge-recursive.c:2450 merge-recursive.c:3094
+#: merge-recursive.c:1614 merge-recursive.c:2472 merge-recursive.c:3117
#, c-format
msgid "Refusing to lose dirty file at %s"
msgstr "ПреуÑтановÑване на дейÑтвието, за да не Ñе изгуби променениÑÑ‚ „%s“"
-#: merge-recursive.c:1601
+#: merge-recursive.c:1624
#, c-format
msgid "Refusing to lose untracked file at %s, even though it's in the way."
msgstr ""
"Отказ да Ñе загуби неÑледениÑÑ‚ файл „%s“, защото е на мÑÑто, където пречи."
-#: merge-recursive.c:1659
+#: merge-recursive.c:1682
#, c-format
msgid "CONFLICT (rename/add): Rename %s->%s in %s. Added %s in %s"
msgstr ""
"КОÐФЛИКТ (преименуване/добавÑне): „%s“ е преименуван на „%s“ в клон „%s“, а "
"„%s“ е добавен в „%s“"
-#: merge-recursive.c:1690
+#: merge-recursive.c:1713
#, c-format
msgid "%s is a directory in %s adding as %s instead"
msgstr "„%s“ е Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð² „%s“, затова Ñе Ð´Ð¾Ð±Ð°Ð²Ñ ÐºÐ°Ñ‚Ð¾ „%s“"
-#: merge-recursive.c:1695
+#: merge-recursive.c:1718
#, c-format
msgid "Refusing to lose untracked file at %s; adding as %s instead"
msgstr ""
"ПреуÑтановÑване на дейÑтвието, за да не Ñе изгуби неÑледениÑÑ‚ файл „%s“. "
"ВмеÑто него Ñе Ð´Ð¾Ð±Ð°Ð²Ñ â€ž%s“"
-#: merge-recursive.c:1714
+#: merge-recursive.c:1737
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
@@ -4071,18 +4096,18 @@ msgstr ""
"КОÐФЛИКТ (преименуване/преименуване): „%s“ е преименуван на „%s“ в клон "
"„%s“, а „%s“ е преименуван на „%s“ в „%s“/%s."
-#: merge-recursive.c:1719
+#: merge-recursive.c:1742
msgid " (left unresolved)"
msgstr " (некоригиран конфликт)"
-#: merge-recursive.c:1828
+#: merge-recursive.c:1851
#, c-format
msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
msgstr ""
"КОÐФЛИКТ (преименуване/преименуване): „%s“ е преименуван на „%s“ в клон "
"„%s“, а „%s“ е преименуван на „%s“ в „%s“"
-#: merge-recursive.c:2035
+#: merge-recursive.c:2056
#, c-format
msgid ""
"CONFLICT (directory rename split): Unclear where to place %s because "
@@ -4093,7 +4118,7 @@ msgstr ""
"поÑтави „%s“, защото нÑколко нови директории поделÑÑ‚ Ñъдържанието на "
"Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ â€ž%s“, като Ð½Ð¸ÐºÐ¾Ñ Ð½Ðµ Ñъдържа мнозинÑтво от файловете Ñ."
-#: merge-recursive.c:2067
+#: merge-recursive.c:2088
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Existing file/dir at %s in the way of "
@@ -4102,7 +4127,7 @@ msgstr ""
"КОÐФЛИКТ (коÑвено преименуване на директориÑ): ÑледниÑÑ‚ файл или Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ "
"„%s“ не позволÑват коÑвеното преименуване на ÑÐ»ÐµÐ´Ð½Ð¸Ñ Ð¿ÑŠÑ‚/ища: %s."
-#: merge-recursive.c:2077
+#: merge-recursive.c:2098
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Cannot map more than one path to %s; "
@@ -4112,7 +4137,7 @@ msgstr ""
"ÑъответÑтва на „%s“. КоÑвено преименуване на Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð²Ð¾Ð´Ð¸ до поÑтавÑнето "
"на тези пътища там: %s."
-#: merge-recursive.c:2169
+#: merge-recursive.c:2190
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename directory %s->%s in %s. Rename directory %s-"
@@ -4121,7 +4146,7 @@ msgstr ""
"КОÐФЛИКТ (преименуване/преименуване): „%s“ е преименуван на „%s“ в клон "
"„%s“, а „%s“ е преименуван на „%s“ в „%s“"
-#: merge-recursive.c:2413
+#: merge-recursive.c:2435
#, c-format
msgid ""
"WARNING: Avoiding applying %s -> %s rename to %s, because %s itself was "
@@ -4130,52 +4155,52 @@ msgstr ""
"ПРЕДУПРЕЖДЕÐИЕ: преÑкачане на преименуването на „%s“ на „%s“ в „%s“, защото "
"„%s“ Ñъщо е Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ½ÐµÐ½Ð¾ име."
-#: merge-recursive.c:2938
+#: merge-recursive.c:2961
#, c-format
msgid "cannot read object %s"
msgstr "обектът „%s“ не може да Ñе прочете"
-#: merge-recursive.c:2941
+#: merge-recursive.c:2964
#, c-format
msgid "object %s is not a blob"
msgstr "обектът „%s“ не е BLOB"
-#: merge-recursive.c:3005
+#: merge-recursive.c:3028
msgid "modify"
msgstr "промÑна"
-#: merge-recursive.c:3005
+#: merge-recursive.c:3028
msgid "modified"
msgstr "променен"
-#: merge-recursive.c:3017
+#: merge-recursive.c:3040
msgid "content"
msgstr "Ñъдържание"
-#: merge-recursive.c:3021
+#: merge-recursive.c:3044
msgid "add/add"
msgstr "добавÑне/добавÑне"
-#: merge-recursive.c:3044
+#: merge-recursive.c:3067
#, c-format
msgid "Skipped %s (merged same as existing)"
msgstr "ПреÑкачане на „%s“ (ÑлетиÑÑ‚ резултат е идентичен ÑÑŠÑ ÑегашниÑ)"
-#: merge-recursive.c:3066 git-submodule.sh:937
+#: merge-recursive.c:3089 git-submodule.sh:937
msgid "submodule"
msgstr "ПОДМОДУЛ"
-#: merge-recursive.c:3067
+#: merge-recursive.c:3090
#, c-format
msgid "CONFLICT (%s): Merge conflict in %s"
msgstr "КОÐФЛИКТ (%s): Конфликт при Ñливане на „%s“"
-#: merge-recursive.c:3097
+#: merge-recursive.c:3120
#, c-format
msgid "Adding as %s instead"
msgstr "ДобавÑне като „%s“"
-#: merge-recursive.c:3179
+#: merge-recursive.c:3203
#, c-format
msgid ""
"Path updated: %s added in %s inside a directory that was renamed in %s; "
@@ -4184,7 +4209,7 @@ msgstr ""
"Обновен път: „%s“ е добавен в „%s“ в директориÑ, коÑто е преименувана в "
"„%s“. Обектът Ñе меÑти в „%s“."
-#: merge-recursive.c:3182
+#: merge-recursive.c:3206
#, c-format
msgid ""
"CONFLICT (file location): %s added in %s inside a directory that was renamed "
@@ -4193,7 +4218,7 @@ msgstr ""
"КОÐФЛИКТ (меÑта на файлове): „%s“ е добавен в „%s“ в директориÑ, коÑто е "
"преименувана в „%s“. Предложението е да премеÑтите обекта в „%s“."
-#: merge-recursive.c:3186
+#: merge-recursive.c:3210
#, c-format
msgid ""
"Path updated: %s renamed to %s in %s, inside a directory that was renamed in "
@@ -4202,7 +4227,7 @@ msgstr ""
"Обновен път: „%s“ е преименуван на „%s“ в „%s“ в директориÑ, коÑто е "
"преименувана в „%s“. Обектът Ñе меÑти в „%s“."
-#: merge-recursive.c:3189
+#: merge-recursive.c:3213
#, c-format
msgid ""
"CONFLICT (file location): %s renamed to %s in %s, inside a directory that "
@@ -4211,179 +4236,179 @@ msgstr ""
"КОÐФЛИКТ (меÑта на файлове): „%s“ е преименуван на „%s“ в „%s“ в директориÑ, "
"коÑто е преименувана в „%s“. Предложението е да премеÑтите обекта в „%s“."
-#: merge-recursive.c:3303
+#: merge-recursive.c:3327
#, c-format
msgid "Removing %s"
msgstr "Изтриване на „%s“"
-#: merge-recursive.c:3326
+#: merge-recursive.c:3350
msgid "file/directory"
msgstr "файл/директориÑ"
-#: merge-recursive.c:3331
+#: merge-recursive.c:3355
msgid "directory/file"
msgstr "директориÑ/файл"
-#: merge-recursive.c:3338
+#: merge-recursive.c:3362
#, c-format
msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
msgstr ""
"КОÐФЛИКТ (%s): СъщеÑтвува Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° име „%s“ в „%s“. ДобавÑне на „%s“ "
"като „%s“"
-#: merge-recursive.c:3347
+#: merge-recursive.c:3371
#, c-format
msgid "Adding %s"
msgstr "ДобавÑне на „%s“"
-#: merge-recursive.c:3356
+#: merge-recursive.c:3380
#, c-format
msgid "CONFLICT (add/add): Merge conflict in %s"
msgstr "КОÐФЛИКТ (добавÑне/добавÑне): Конфликт при Ñливане на „%s“"
-#: merge-recursive.c:3394
-#, c-format
-msgid ""
-"Your local changes to the following files would be overwritten by merge:\n"
-" %s"
-msgstr ""
-"Сливането ще презапише локалните промени на тези файлове:\n"
-" %s"
-
-#: merge-recursive.c:3405
+#: merge-recursive.c:3424
msgid "Already up to date!"
msgstr "Вече е обновено!"
-#: merge-recursive.c:3414
+#: merge-recursive.c:3433
#, c-format
msgid "merging of trees %s and %s failed"
msgstr "неуÑпешно Ñливане на дърветата „%s“ и „%s“"
-#: merge-recursive.c:3513
+#: merge-recursive.c:3537
msgid "Merging:"
msgstr "Сливане:"
-#: merge-recursive.c:3526
+#: merge-recursive.c:3550
#, c-format
msgid "found %u common ancestor:"
msgid_plural "found %u common ancestors:"
msgstr[0] "открит е %u общ предшеÑтвеник:"
msgstr[1] "открити Ñа %u общи предшеÑтвеници:"
-#: merge-recursive.c:3565
+#: merge-recursive.c:3600
msgid "merge returned no commit"
msgstr "Ñливането не върна подаване"
-#: merge-recursive.c:3631
+#: merge-recursive.c:3659
+#, c-format
+msgid ""
+"Your local changes to the following files would be overwritten by merge:\n"
+" %s"
+msgstr ""
+"Сливането ще презапише локалните промени на тези файлове:\n"
+" %s"
+
+#: merge-recursive.c:3756
#, c-format
msgid "Could not parse object '%s'"
msgstr "ÐеуÑпешен анализ на обекта „%s“"
-#: merge-recursive.c:3647 builtin/merge.c:698 builtin/merge.c:869
+#: merge-recursive.c:3774 builtin/merge.c:694 builtin/merge.c:874
msgid "Unable to write index."
msgstr "ИндекÑÑŠÑ‚ не може да бъде прочетен"
-#: midx.c:69
+#: midx.c:68
#, c-format
msgid "multi-pack-index file %s is too small"
msgstr "файлът Ñ Ð¸Ð½Ð´ÐµÐºÑа за множеÑтво пакети „%s“ е твърде малък"
-#: midx.c:85
+#: midx.c:84
#, c-format
msgid "multi-pack-index signature 0x%08x does not match signature 0x%08x"
msgstr "отпечатъкът на индекÑа за множеÑтво пакети 0x%08x не Ñъвпада Ñ 0x%08x"
-#: midx.c:90
+#: midx.c:89
#, c-format
msgid "multi-pack-index version %d not recognized"
msgstr "непозната верÑÐ¸Ñ Ð½Ð° Ð¸Ð½Ð´ÐµÐºÑ Ð·Ð° множеÑтво пакети — %d"
-#: midx.c:95
+#: midx.c:94
#, c-format
msgid "hash version %u does not match"
msgstr "верÑиÑта на отпечатъка %u не Ñъвпада"
-#: midx.c:109
+#: midx.c:108
msgid "invalid chunk offset (too large)"
msgstr "неправилно (прекалено голÑмо) отмеÑтване на откъÑ"
-#: midx.c:133
+#: midx.c:132
msgid "terminating multi-pack-index chunk id appears earlier than expected"
msgstr ""
"идентификаторът за краен Ð¾Ñ‚ÐºÑŠÑ Ð½Ð° Ð¸Ð½Ð´ÐµÐºÑ Ð·Ð° множеÑтво пакети Ñе ÑвÑва по-"
"рано от очакваното"
-#: midx.c:146
+#: midx.c:145
msgid "multi-pack-index missing required pack-name chunk"
msgstr "липÑва Ð¾Ñ‚ÐºÑŠÑ (pack-name) от Ð¸Ð½Ð´ÐµÐºÑ Ð·Ð° множеÑтво пакети"
-#: midx.c:148
+#: midx.c:147
msgid "multi-pack-index missing required OID fanout chunk"
msgstr "липÑва Ð¾Ñ‚ÐºÑŠÑ (OID fanout) от Ð¸Ð½Ð´ÐµÐºÑ Ð·Ð° множеÑтво пакети"
-#: midx.c:150
+#: midx.c:149
msgid "multi-pack-index missing required OID lookup chunk"
msgstr "липÑва Ð¾Ñ‚ÐºÑŠÑ (OID lookup) от Ð¸Ð½Ð´ÐµÐºÑ Ð·Ð° множеÑтво пакети"
-#: midx.c:152
+#: midx.c:151
msgid "multi-pack-index missing required object offsets chunk"
msgstr "липÑва Ð¾Ñ‚ÐºÑŠÑ Ð·Ð° отмеÑтваниÑта на обекти от Ð¸Ð½Ð´ÐµÐºÑ Ð·Ð° множеÑтво пакети"
-#: midx.c:166
+#: midx.c:165
#, c-format
msgid "multi-pack-index pack names out of order: '%s' before '%s'"
msgstr ""
"неправилна подредба на имената в Ð¸Ð½Ð´ÐµÐºÑ Ð·Ð° множеÑтво пакети: „%s“ Ñе поÑви "
"преди „%s“"
-#: midx.c:211
+#: midx.c:210
#, c-format
msgid "bad pack-int-id: %u (%u total packs)"
msgstr ""
"неправилен идентификатор на пакет (pack-int-id): %u (от общо %u пакети)"
-#: midx.c:261
+#: midx.c:260
msgid "multi-pack-index stores a 64-bit offset, but off_t is too small"
msgstr ""
"индекÑÑŠÑ‚ за множеÑтво пакети Ñъдържа 64-битови отмеÑтваниÑ, но размерът на "
"„off_t“ е недоÑтатъчен"
-#: midx.c:289
+#: midx.c:288
msgid "error preparing packfile from multi-pack-index"
msgstr ""
"грешка при Ñъздаването на пакетен файл на базата на Ð¸Ð½Ð´ÐµÐºÑ Ð·Ð° множеÑтво "
"пакети"
-#: midx.c:470
+#: midx.c:469
#, c-format
msgid "failed to add packfile '%s'"
msgstr "пакетниÑÑ‚ файл „%s“ не може да бъде добавен"
-#: midx.c:476
+#: midx.c:475
#, c-format
msgid "failed to open pack-index '%s'"
msgstr "индекÑÑŠÑ‚ за пакети „%s“ не може да бъде отворен"
-#: midx.c:536
+#: midx.c:535
#, c-format
msgid "failed to locate object %d in packfile"
msgstr "обект %d в Ð¿Ð°ÐºÐµÑ‚Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» липÑва"
-#: midx.c:865
+#: midx.c:864
#, c-format
msgid "did not see pack-file %s to drop"
msgstr "пакетниÑÑ‚ файл за триене „%s“ не може да Ñе открие"
-#: midx.c:1036
+#: midx.c:1035
#, c-format
msgid "failed to clear multi-pack-index at %s"
msgstr "индекÑÑŠÑ‚ за множеÑтво пакети не може да бъде изчиÑтен при „%s“"
-#: midx.c:1091
+#: midx.c:1090
msgid "Looking for referenced packfiles"
msgstr "ТърÑене на указаните пакетни файлове"
-#: midx.c:1106
+#: midx.c:1105
#, c-format
msgid ""
"oid fanout out of order: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
@@ -4391,60 +4416,60 @@ msgstr ""
"неправилна подредба на откъÑи (OID fanout): fanout[%d] = %<PRIx32> > "
"%<PRIx32> = fanout[%d]"
-#: midx.c:1110
+#: midx.c:1109
msgid "Verifying OID order in MIDX"
msgstr ""
"Проверка на подредбата на идентификатори на обекти в MIDX (файл Ñ Ð¸Ð½Ð´ÐµÐºÑ ÐºÑŠÐ¼ "
"множеÑтво пакетни файлове)"
-#: midx.c:1119
+#: midx.c:1118
#, c-format
msgid "oid lookup out of order: oid[%d] = %s >= %s = oid[%d]"
msgstr ""
"неправилна подредба на откъÑи (OID lookup): oid[%d] = %s >= %s = oid[%d]"
-#: midx.c:1138
+#: midx.c:1137
msgid "Sorting objects by packfile"
msgstr "Подредба на обектите по пакетни файлове"
-#: midx.c:1144
+#: midx.c:1143
msgid "Verifying object offsets"
msgstr "Проверка на отмеÑтването на обекти"
-#: midx.c:1160
+#: midx.c:1159
#, c-format
msgid "failed to load pack entry for oid[%d] = %s"
msgstr "запиÑÑŠÑ‚ в пакета за обекта oid[%d] = %s не може да бъде зареден"
-#: midx.c:1166
+#: midx.c:1165
#, c-format
msgid "failed to load pack-index for packfile %s"
msgstr "индекÑÑŠÑ‚ на пакета „%s“ не може да бъде зареден"
-#: midx.c:1175
+#: midx.c:1174
#, c-format
msgid "incorrect object offset for oid[%d] = %s: %<PRIx64> != %<PRIx64>"
msgstr "неправилно отмеÑтване на обект за oid[%d] = %s: %<PRIx64> != %<PRIx64>"
-#: midx.c:1350
+#: midx.c:1349
msgid "could not start pack-objects"
msgstr "командата „pack-objects“ не може да бъде Ñтартирана"
-#: midx.c:1369
+#: midx.c:1368
msgid "could not finish pack-objects"
msgstr "командата „pack-objects“ не може да бъде завършена"
-#: name-hash.c:532
+#: name-hash.c:537
#, c-format
msgid "unable to create lazy_dir thread: %s"
msgstr "не може да Ñе Ñъздаде нишка за директории: %s"
-#: name-hash.c:554
+#: name-hash.c:559
#, c-format
msgid "unable to create lazy_name thread: %s"
msgstr "не може да Ñе Ñъздаде нишка за имена: %s"
-#: name-hash.c:560
+#: name-hash.c:565
#, c-format
msgid "unable to join lazy_name thread: %s"
msgstr "не може да Ñе изчака нишка за имена: %s"
@@ -4497,44 +4522,44 @@ msgstr ""
msgid "Bad %s value: '%s'"
msgstr "Зададена е лоша ÑтойноÑÑ‚ на променливата „%s“: „%s“"
-#: object.c:54
+#: object.c:53
#, c-format
msgid "invalid object type \"%s\""
msgstr "неправилен вид обект: „%s“"
-#: object.c:174
+#: object.c:173
#, c-format
msgid "object %s is a %s, not a %s"
msgstr "обектът „%s“ е %s, а не %s"
-#: object.c:234
+#: object.c:233
#, c-format
msgid "object %s has unknown type id %d"
msgstr "обектът „%s“ е непознат вид: %d"
-#: object.c:247
+#: object.c:246
#, c-format
msgid "unable to parse object: %s"
msgstr "обектът „%s“ не може да бъде анализиран"
-#: object.c:267 object.c:278
+#: object.c:266 object.c:277
#, c-format
msgid "hash mismatch %s"
msgstr "разлика в контролната Ñума: „%s“"
-#: packfile.c:648
+#: packfile.c:641
msgid "offset before end of packfile (broken .idx?)"
msgstr ""
"отмеÑтване преди ÐºÑ€Ð°Ñ Ð½Ð° Ð¿Ð°ÐºÐµÑ‚Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» (възможно е индекÑÑŠÑ‚ да е повреден)"
-#: packfile.c:1899
+#: packfile.c:1887
#, c-format
msgid "offset before start of pack index for %s (corrupt index?)"
msgstr ""
"отмеÑтване преди началото на индекÑа на Ð¿Ð°ÐºÐµÑ‚Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» „%s“ (възможно е "
"индекÑÑŠÑ‚ да е повреден)"
-#: packfile.c:1903
+#: packfile.c:1891
#, c-format
msgid "offset beyond end of pack index for %s (truncated index?)"
msgstr ""
@@ -4582,26 +4607,26 @@ msgstr "нееднозначна опциÑ: „%s“ (може да е „--%s%
msgid "did you mean `--%s` (with two dashes ?)"
msgstr "„--%s“ (Ñ 2 тирета) ли имахте предвид?"
-#: parse-options.c:859
+#: parse-options.c:860
#, c-format
msgid "unknown option `%s'"
msgstr "непозната опциÑ: „%s“"
-#: parse-options.c:861
+#: parse-options.c:862
#, c-format
msgid "unknown switch `%c'"
msgstr "непознат флаг „%c“"
-#: parse-options.c:863
+#: parse-options.c:864
#, c-format
msgid "unknown non-ascii option in string: `%s'"
msgstr "непозната ÑтойноÑÑ‚ извън „ascii“ в низа: „%s“"
-#: parse-options.c:887
+#: parse-options.c:888
msgid "..."
msgstr "…"
-#: parse-options.c:906
+#: parse-options.c:907
#, c-format
msgid "usage: %s"
msgstr "употреба: %s"
@@ -4609,21 +4634,21 @@ msgstr "употреба: %s"
#. TRANSLATORS: the colon here should align with the
#. one in "usage: %s" translation.
#.
-#: parse-options.c:912
+#: parse-options.c:913
#, c-format
msgid " or: %s"
msgstr " или: %s"
-#: parse-options.c:915
+#: parse-options.c:916
#, c-format
msgid " %s"
msgstr " %s"
-#: parse-options.c:954
+#: parse-options.c:955
msgid "-NUM"
msgstr "-ЧИСЛО"
-#: parse-options.c:968
+#: parse-options.c:969
#, c-format
msgid "alias of --%s"
msgstr "пÑевдоним на „--%s“"
@@ -4795,30 +4820,40 @@ msgstr "не може да Ñе Ñъздаде нишка за изпълненÐ
msgid "unable to parse --pretty format"
msgstr "аргументът към опциÑта „--pretty“ не може да Ñе анализира"
-#: range-diff.c:70
+#: promisor-remote.c:25
+msgid "Remote with no URL"
+msgstr "ЛипÑва Ð°Ð´Ñ€ÐµÑ Ð·Ð° отдалеченото хранилище"
+
+#: promisor-remote.c:61
+#, c-format
+msgid "promisor remote name cannot begin with '/': %s"
+msgstr ""
+"името отдалеченото хранилище-гарант не може за започва ÑÑŠÑ Ð·Ð½Ð°ÐºÐ° „/“: %s"
+
+#: range-diff.c:71
msgid "could not start `log`"
msgstr "командата за журнала Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ â€žlog“ не може да Ñе Ñтартира"
-#: range-diff.c:72
+#: range-diff.c:73
msgid "could not read `log` output"
msgstr ""
"изходът от командата за журнала Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ â€žlog“ не може да Ñе прочете"
-#: range-diff.c:91 sequencer.c:5021
+#: range-diff.c:92 sequencer.c:4985
#, c-format
msgid "could not parse commit '%s'"
msgstr "подаването „%s“ не може да бъде анализирано"
-#: range-diff.c:117
+#: range-diff.c:118
#, c-format
msgid "could not parse git header '%.*s'"
msgstr "заглавната чаÑÑ‚ на git „%.*s“ не може да Ñе анализира"
-#: range-diff.c:274
+#: range-diff.c:275
msgid "failed to generate diff"
msgstr "неуÑпешно Ñ‚ÑŠÑ€Ñене на разлика"
-#: range-diff.c:506 range-diff.c:508
+#: range-diff.c:507 range-diff.c:509
#, c-format
msgid "could not parse log for '%s'"
msgstr "журналът Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñта на „%s“ не може да бъде анализиран"
@@ -4865,11 +4900,11 @@ msgstr "„stat“ не може да Ñе изпълни върху „%s“"
msgid "'%s' appears as both a file and as a directory"
msgstr "„%s“ ÑъщеÑтвува и като файл, и като директориÑ"
-#: read-cache.c:1499
+#: read-cache.c:1520
msgid "Refresh index"
msgstr "ОбновÑване на индекÑа"
-#: read-cache.c:1613
+#: read-cache.c:1635
#, c-format
msgid ""
"index.version set, but the value is invalid.\n"
@@ -4878,7 +4913,7 @@ msgstr ""
"Зададена е неправилна ÑтойноÑÑ‚ на наÑтройката „index.version“.\n"
"Ще Ñе ползва верÑÐ¸Ñ %i"
-#: read-cache.c:1623
+#: read-cache.c:1645
#, c-format
msgid ""
"GIT_INDEX_VERSION set, but the value is invalid.\n"
@@ -4888,141 +4923,141 @@ msgstr ""
"„GIT_INDEX_VERSION“.\n"
"Ще Ñе ползва верÑÐ¸Ñ %i"
-#: read-cache.c:1679
+#: read-cache.c:1701
#, c-format
msgid "bad signature 0x%08x"
msgstr "неправилен подпиÑ: „0x%08x“"
-#: read-cache.c:1682
+#: read-cache.c:1704
#, c-format
msgid "bad index version %d"
msgstr "неправилна верÑÐ¸Ñ Ð½Ð° индекÑа %d"
-#: read-cache.c:1691
+#: read-cache.c:1713
msgid "bad index file sha1 signature"
msgstr "неправилен Ð¿Ð¾Ð´Ð¿Ð¸Ñ Ð·Ð° контролна Ñума по SHA1 на файла на индекÑа"
-#: read-cache.c:1721
+#: read-cache.c:1743
#, c-format
msgid "index uses %.4s extension, which we do not understand"
msgstr ""
"индекÑÑŠÑ‚ ползва разширение „%.4s“, което не Ñе поддържа от тази верÑÐ¸Ñ Ð½Ð° git"
-#: read-cache.c:1723
+#: read-cache.c:1745
#, c-format
msgid "ignoring %.4s extension"
msgstr "игнориране на разширението „%.4s“"
-#: read-cache.c:1760
+#: read-cache.c:1782
#, c-format
msgid "unknown index entry format 0x%08x"
msgstr "непознат формат на Ð·Ð°Ð¿Ð¸Ñ Ð² индекÑа: „0x%08x“"
-#: read-cache.c:1776
+#: read-cache.c:1798
#, c-format
msgid "malformed name field in the index, near path '%s'"
msgstr "неправилно име на поле в индекÑа близо до Ð¿ÑŠÑ‚Ñ â€ž%s“"
-#: read-cache.c:1833
+#: read-cache.c:1855
msgid "unordered stage entries in index"
msgstr "неподредени запиÑи в индекÑа"
-#: read-cache.c:1836
+#: read-cache.c:1858
#, c-format
msgid "multiple stage entries for merged file '%s'"
msgstr "множеÑтво запиÑи за ÑÐ»ÐµÑ‚Ð¸Ñ Ñ„Ð°Ð¹Ð» „%s“"
-#: read-cache.c:1839
+#: read-cache.c:1861
#, c-format
msgid "unordered stage entries for '%s'"
msgstr "неподредени запиÑи за „%s“"
-#: read-cache.c:1946 read-cache.c:2234 rerere.c:565 rerere.c:599 rerere.c:1111
-#: builtin/add.c:460 builtin/check-ignore.c:178 builtin/checkout.c:467
-#: builtin/checkout.c:651 builtin/clean.c:956 builtin/commit.c:347
+#: read-cache.c:1967 read-cache.c:2255 rerere.c:565 rerere.c:599 rerere.c:1111
+#: builtin/add.c:460 builtin/check-ignore.c:178 builtin/checkout.c:468
+#: builtin/checkout.c:652 builtin/clean.c:967 builtin/commit.c:347
#: builtin/diff-tree.c:120 builtin/grep.c:499 builtin/mv.c:145
#: builtin/reset.c:245 builtin/rm.c:271 builtin/submodule--helper.c:330
msgid "index file corrupt"
msgstr "файлът Ñ Ð¸Ð½Ð´ÐµÐºÑа е повреден"
-#: read-cache.c:2087
+#: read-cache.c:2108
#, c-format
msgid "unable to create load_cache_entries thread: %s"
msgstr "не може да Ñе Ñъздаде нишка за зареждане на обектите от кеша: %s"
-#: read-cache.c:2100
+#: read-cache.c:2121
#, c-format
msgid "unable to join load_cache_entries thread: %s"
msgstr "не може да Ñе изчака нишка за зареждане на обектите от кеша: %s"
-#: read-cache.c:2133
+#: read-cache.c:2154
#, c-format
msgid "%s: index file open failed"
msgstr "%s: неуÑпешно отварÑне на файла на индекÑа"
-#: read-cache.c:2137
+#: read-cache.c:2158
#, c-format
msgid "%s: cannot stat the open index"
msgstr "%s: не може да Ñе получи Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° Ð¾Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑ ÑÑŠÑ â€žstat“"
-#: read-cache.c:2141
+#: read-cache.c:2162
#, c-format
msgid "%s: index file smaller than expected"
msgstr "%s: файлът на индекÑа е по-малък от очакваното"
-#: read-cache.c:2145
+#: read-cache.c:2166
#, c-format
msgid "%s: unable to map index file"
msgstr "%s: неуÑпешно заделÑне на ÑъответÑтваща памет чрез „mmap“ на индекÑа"
-#: read-cache.c:2187
+#: read-cache.c:2208
#, c-format
msgid "unable to create load_index_extensions thread: %s"
msgstr ""
"не може да Ñе Ñъздаде нишка за зареждане на разширениÑта на индекÑа: %s"
-#: read-cache.c:2214
+#: read-cache.c:2235
#, c-format
msgid "unable to join load_index_extensions thread: %s"
msgstr ""
"не може да Ñе Ñъздаде нишка за зареждане на разширениÑта на индекÑа: %s"
-#: read-cache.c:2246
+#: read-cache.c:2267
#, c-format
msgid "could not freshen shared index '%s'"
msgstr "ÑподелениÑÑ‚ Ð¸Ð½Ð´ÐµÐºÑ â€ž%s“ не може да Ñе обнови"
-#: read-cache.c:2293
+#: read-cache.c:2314
#, c-format
msgid "broken index, expect %s in %s, got %s"
msgstr "грешки в индекÑа — в „%2$s“ Ñе очаква „%1$s“, а бе получено „%3$s“"
-#: read-cache.c:2989 wrapper.c:658 builtin/merge.c:1114
+#: read-cache.c:3010 wrapper.c:622 builtin/merge.c:1119
#, c-format
msgid "could not close '%s'"
msgstr "„%s“ не може да Ñе затвори"
-#: read-cache.c:3092 sequencer.c:2358 sequencer.c:3928
+#: read-cache.c:3113 sequencer.c:2296 sequencer.c:3917
#, c-format
msgid "could not stat '%s'"
msgstr "неуÑпешно изпълнение на „stat“ върху „%s“"
-#: read-cache.c:3105
+#: read-cache.c:3126
#, c-format
msgid "unable to open git dir: %s"
msgstr "не може да Ñе отвори директориÑта на git: %s"
-#: read-cache.c:3117
+#: read-cache.c:3138
#, c-format
msgid "unable to unlink: %s"
msgstr "неуÑпешно изтриване на „%s“"
-#: read-cache.c:3142
+#: read-cache.c:3163
#, c-format
msgid "cannot fix permission bits on '%s'"
msgstr "правата за доÑтъп до „%s“ не могат да бъдат поправени"
-#: read-cache.c:3291
+#: read-cache.c:3312
#, c-format
msgid "%s: cannot drop to stage #0"
msgstr "%s: не може да Ñе премине към етап â„–0"
@@ -5135,8 +5170,8 @@ msgstr ""
msgid "Note that empty commits are commented out"
msgstr "Празните Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ Ñа коментирани"
-#: rebase-interactive.c:105 rerere.c:485 rerere.c:692 sequencer.c:3447
-#: sequencer.c:3473 sequencer.c:5120 builtin/fsck.c:356 builtin/rebase.c:235
+#: rebase-interactive.c:105 rerere.c:485 rerere.c:692 sequencer.c:3388
+#: sequencer.c:3414 sequencer.c:5084 builtin/fsck.c:356 builtin/rebase.c:235
#, c-format
msgid "could not write '%s'"
msgstr "„%s“ не може да Ñе запише"
@@ -5182,7 +5217,7 @@ msgstr "„%s“ не Ñочи към позволен обект!"
msgid "ignoring dangling symref %s"
msgstr "игнориране на указател на обект извън клон „%s“"
-#: refs.c:669 ref-filter.c:2092
+#: refs.c:669 ref-filter.c:2098
#, c-format
msgid "ignoring broken ref %s"
msgstr "игнориране на Ð¿Ð¾Ð²Ñ€ÐµÐ´ÐµÐ½Ð¸Ñ ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ» „%s“"
@@ -5207,14 +5242,14 @@ msgstr "указателÑÑ‚ „%s“ вече ÑъщеÑтвува"
msgid "unexpected object ID when writing '%s'"
msgstr "неочакван идентификатор на обект при запиÑването на „%s“"
-#: refs.c:833 sequencer.c:403 sequencer.c:2709 sequencer.c:2913
-#: sequencer.c:2927 sequencer.c:3184 sequencer.c:5037 wrapper.c:656
+#: refs.c:833 sequencer.c:403 sequencer.c:2647 sequencer.c:2851
+#: sequencer.c:2865 sequencer.c:3122 sequencer.c:5001 wrapper.c:620
#, c-format
msgid "could not write to '%s'"
msgstr "в „%s“ не може да Ñе пише"
-#: refs.c:860 wrapper.c:225 wrapper.c:395 builtin/am.c:715
-#: builtin/rebase.c:1003
+#: refs.c:860 wrapper.c:188 wrapper.c:358 builtin/am.c:714
+#: builtin/rebase.c:1004
#, c-format
msgid "could not open '%s' for writing"
msgstr "„%s“ не може да бъде отворен за запиÑ"
@@ -5249,21 +5284,21 @@ msgstr "указател не може да Ñе обнови Ñ Ð³Ñ€ÐµÑˆÐ½Ð¾ и
msgid "update_ref failed for ref '%s': %s"
msgstr "неуÑпешно обновÑване на ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ â€ž%s“: %s"
-#: refs.c:2012
+#: refs.c:2023
#, c-format
msgid "multiple updates for ref '%s' not allowed"
msgstr "не Ñа позволени повече от една промени на ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ â€ž%s“"
-#: refs.c:2044
+#: refs.c:2055
msgid "ref updates forbidden inside quarantine environment"
msgstr "обновÑваниÑта на указатели Ñа забранени в Ñреди под карантина"
-#: refs.c:2140 refs.c:2170
+#: refs.c:2151 refs.c:2181
#, c-format
msgid "'%s' exists; cannot create '%s'"
msgstr "„%s“ ÑъщеÑтвува, не може да Ñе Ñъздаде „%s“"
-#: refs.c:2146 refs.c:2181
+#: refs.c:2157 refs.c:2192
#, c-format
msgid "cannot process '%s' and '%s' at the same time"
msgstr "невъзможно е едновременно да Ñе обработват „%s“ и „%s“"
@@ -5273,13 +5308,13 @@ msgstr "невъзможно е едновременно да Ñе обрабоÑ
msgid "could not remove reference %s"
msgstr "УказателÑÑ‚ „%s“ не може да бъде изтрит"
-#: refs/files-backend.c:1248 refs/packed-backend.c:1532
-#: refs/packed-backend.c:1542
+#: refs/files-backend.c:1248 refs/packed-backend.c:1541
+#: refs/packed-backend.c:1551
#, c-format
msgid "could not delete reference %s: %s"
msgstr "УказателÑÑ‚ „%s“ не може да бъде изтрит: %s"
-#: refs/files-backend.c:1251 refs/packed-backend.c:1545
+#: refs/files-backend.c:1251 refs/packed-backend.c:1554
#, c-format
msgid "could not delete references: %s"
msgstr "Указателите не може да бъдат изтрити: %s"
@@ -5289,7 +5324,7 @@ msgstr "Указателите не може да бъдат изтрити: %s"
msgid "invalid refspec '%s'"
msgstr "неправилен указател: „%s“"
-#: ref-filter.c:42 wt-status.c:1934
+#: ref-filter.c:42 wt-status.c:1938
msgid "gone"
msgstr "изтрит"
@@ -5308,281 +5343,281 @@ msgstr "назад Ñ %d"
msgid "ahead %d, behind %d"
msgstr "напред Ñ %d, назад Ñ %d"
-#: ref-filter.c:162
+#: ref-filter.c:165
#, c-format
msgid "expected format: %%(color:<color>)"
msgstr "очакван формат: %%(color:ЦВЯТ)"
-#: ref-filter.c:164
+#: ref-filter.c:167
#, c-format
msgid "unrecognized color: %%(color:%s)"
msgstr "непознат цвÑÑ‚: %%(color:%s)"
-#: ref-filter.c:186
+#: ref-filter.c:189
#, c-format
msgid "Integer value expected refname:lstrip=%s"
msgstr "очаква Ñе цÑло чиÑло за „refname:lstrip=%s“"
-#: ref-filter.c:190
+#: ref-filter.c:193
#, c-format
msgid "Integer value expected refname:rstrip=%s"
msgstr "очаква Ñе цÑло чиÑло за „refname:rstrip=%s“"
-#: ref-filter.c:192
+#: ref-filter.c:195
#, c-format
msgid "unrecognized %%(%s) argument: %s"
msgstr "непознат аргумент за „%%(%s)“: %s"
-#: ref-filter.c:247
+#: ref-filter.c:250
#, c-format
msgid "%%(objecttype) does not take arguments"
msgstr "%%(objecttype) не приема аргументи"
-#: ref-filter.c:269
+#: ref-filter.c:272
#, c-format
msgid "unrecognized %%(objectsize) argument: %s"
msgstr "непознат аргумент за %%(objectsize): %s"
-#: ref-filter.c:277
+#: ref-filter.c:280
#, c-format
msgid "%%(deltabase) does not take arguments"
msgstr "%%(deltabase) не приема аргументи"
-#: ref-filter.c:289
+#: ref-filter.c:292
#, c-format
msgid "%%(body) does not take arguments"
msgstr "%%(body) не приема аргументи"
-#: ref-filter.c:298
+#: ref-filter.c:301
#, c-format
msgid "%%(subject) does not take arguments"
msgstr "%%(subject) не приема аргументи"
-#: ref-filter.c:320
+#: ref-filter.c:323
#, c-format
msgid "unknown %%(trailers) argument: %s"
msgstr "непознат аргумент „%%(trailers)“: %s"
-#: ref-filter.c:349
+#: ref-filter.c:352
#, c-format
msgid "positive value expected contents:lines=%s"
msgstr "очаква Ñе положителна ÑтойноÑÑ‚ за „contents:lines=%s“"
-#: ref-filter.c:351
+#: ref-filter.c:354
#, c-format
msgid "unrecognized %%(contents) argument: %s"
msgstr "непознат аргумент за %%(contents): %s"
-#: ref-filter.c:366
+#: ref-filter.c:369
#, c-format
msgid "positive value expected objectname:short=%s"
msgstr "очаква Ñе положителна ÑтойноÑÑ‚ за „objectname:short=%s“"
-#: ref-filter.c:370
+#: ref-filter.c:373
#, c-format
msgid "unrecognized %%(objectname) argument: %s"
msgstr "непознат аргумент за %%(objectname): %s"
-#: ref-filter.c:400
+#: ref-filter.c:403
#, c-format
msgid "expected format: %%(align:<width>,<position>)"
msgstr "очакван формат: %%(align:ШИРОЧИÐÐ,ПОЗИЦИЯ)"
-#: ref-filter.c:412
+#: ref-filter.c:415
#, c-format
msgid "unrecognized position:%s"
msgstr "непозната позициÑ: %s"
-#: ref-filter.c:419
+#: ref-filter.c:422
#, c-format
msgid "unrecognized width:%s"
msgstr "непозната широчина: %s"
-#: ref-filter.c:428
+#: ref-filter.c:431
#, c-format
msgid "unrecognized %%(align) argument: %s"
msgstr "непознат аргумент за %%(align): %s"
-#: ref-filter.c:436
+#: ref-filter.c:439
#, c-format
msgid "positive width expected with the %%(align) atom"
msgstr "очаква Ñе положителна широчина Ñ Ð»ÐµÐºÑемата „%%(align)“"
-#: ref-filter.c:454
+#: ref-filter.c:457
#, c-format
msgid "unrecognized %%(if) argument: %s"
msgstr "непознат аргумент за „%%(if)“: %s"
-#: ref-filter.c:556
+#: ref-filter.c:559
#, c-format
msgid "malformed field name: %.*s"
msgstr "неправилно име на обект: „%.*s“"
-#: ref-filter.c:583
+#: ref-filter.c:586
#, c-format
msgid "unknown field name: %.*s"
msgstr "непознато име на обект: „%.*s“"
-#: ref-filter.c:587
+#: ref-filter.c:590
#, c-format
msgid ""
"not a git repository, but the field '%.*s' requires access to object data"
msgstr "не е хранилище на git, а полето „%.*s“ изиÑква доÑтъп данни на обектни"
-#: ref-filter.c:711
+#: ref-filter.c:714
#, c-format
msgid "format: %%(if) atom used without a %%(then) atom"
msgstr "формат: лекÑемата %%(if) е използвана без Ñъответната Ñ %%(then)"
-#: ref-filter.c:774
+#: ref-filter.c:777
#, c-format
msgid "format: %%(then) atom used without an %%(if) atom"
msgstr "формат: лекÑемата %%(then) е използвана без Ñъответната Ñ %%(if)"
-#: ref-filter.c:776
+#: ref-filter.c:779
#, c-format
msgid "format: %%(then) atom used more than once"
msgstr "формат: лекÑемата %%(then) е използвана повече от един път"
-#: ref-filter.c:778
+#: ref-filter.c:781
#, c-format
msgid "format: %%(then) atom used after %%(else)"
msgstr "формат: лекÑемата %%(then) е използвана Ñлед %%(else)"
-#: ref-filter.c:806
+#: ref-filter.c:809
#, c-format
msgid "format: %%(else) atom used without an %%(if) atom"
msgstr "формат: лекÑемата %%(else) е използвана без Ñъответната Ñ %%(if)"
-#: ref-filter.c:808
+#: ref-filter.c:811
#, c-format
msgid "format: %%(else) atom used without a %%(then) atom"
msgstr "формат: лекÑемата %%(else) е използвана без Ñъответната Ñ %%(then)"
-#: ref-filter.c:810
+#: ref-filter.c:813
#, c-format
msgid "format: %%(else) atom used more than once"
msgstr "формат: лекÑемата %%(else) е използвана повече от един път"
-#: ref-filter.c:825
+#: ref-filter.c:828
#, c-format
msgid "format: %%(end) atom used without corresponding atom"
msgstr "формат: лекÑемата %%(end) е използвана без Ñъответната Ñ"
-#: ref-filter.c:882
+#: ref-filter.c:885
#, c-format
msgid "malformed format string %s"
msgstr "неправилен форматиращ низ „%s“"
-#: ref-filter.c:1485
+#: ref-filter.c:1488
#, c-format
msgid "no branch, rebasing %s"
msgstr "извън клон, пребазиране на „%s“"
-#: ref-filter.c:1488
+#: ref-filter.c:1491
#, c-format
msgid "no branch, rebasing detached HEAD %s"
msgstr "извън клон, пребазиране на неÑвързан указател „HEAD“ при „%s“"
-#: ref-filter.c:1491
+#: ref-filter.c:1494
#, c-format
msgid "no branch, bisect started on %s"
msgstr "извън клон, двоично Ñ‚ÑŠÑ€Ñене от „%s“"
-#: ref-filter.c:1501
+#: ref-filter.c:1504
msgid "no branch"
msgstr "извън клон"
-#: ref-filter.c:1537 ref-filter.c:1743
+#: ref-filter.c:1540 ref-filter.c:1749
#, c-format
msgid "missing object %s for %s"
msgstr "обектът „%s“ липÑва за „%s“"
-#: ref-filter.c:1547
+#: ref-filter.c:1550
#, c-format
msgid "parse_object_buffer failed on %s for %s"
msgstr "неуÑпешно анализиране чрез „parse_object_buffer“ на „%s“ за „%s“"
-#: ref-filter.c:1998
+#: ref-filter.c:2004
#, c-format
msgid "malformed object at '%s'"
msgstr "обект ÑÑŠÑ Ñгрешен формат при „%s“"
-#: ref-filter.c:2087
+#: ref-filter.c:2093
#, c-format
msgid "ignoring ref with broken name %s"
msgstr "игнориране на ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ Ñ Ð³Ñ€ÐµÑˆÐ½Ð¾ име „%s“"
-#: ref-filter.c:2382
+#: ref-filter.c:2389
#, c-format
msgid "format: %%(end) atom missing"
msgstr "грешка във форма̀та: липÑва лекÑемата %%(end)"
-#: ref-filter.c:2482
+#: ref-filter.c:2489
#, c-format
msgid "option `%s' is incompatible with --merged"
msgstr "опциите „%s“ и „--merged“ Ñа неÑъвмеÑтими"
-#: ref-filter.c:2485
+#: ref-filter.c:2492
#, c-format
msgid "option `%s' is incompatible with --no-merged"
msgstr "опциите „%s“ и „--no-merged“ Ñа неÑъвмеÑтими"
-#: ref-filter.c:2495
+#: ref-filter.c:2502
#, c-format
msgid "malformed object name %s"
msgstr "неправилно име на обект „%s“"
-#: ref-filter.c:2500
+#: ref-filter.c:2507
#, c-format
msgid "option `%s' must point to a commit"
msgstr "опциÑта „%s“ не Ñочи към подаване"
-#: remote.c:363
+#: remote.c:366
#, c-format
msgid "config remote shorthand cannot begin with '/': %s"
msgstr ""
"Ñъкращението за отдалечено хранилище не може за започва ÑÑŠÑ Ð·Ð½Ð°ÐºÐ° „/“: %s"
-#: remote.c:410
+#: remote.c:413
msgid "more than one receivepack given, using the first"
msgstr "зададен е повече от един пакет за получаване, ще Ñе ползва първиÑÑ‚"
-#: remote.c:418
+#: remote.c:421
msgid "more than one uploadpack given, using the first"
msgstr "зададен е повече от един пакет за изпращане, ще Ñе ползва първиÑÑ‚"
-#: remote.c:608
+#: remote.c:611
#, c-format
msgid "Cannot fetch both %s and %s to %s"
msgstr "Ðевъзможно е да Ñе доÑтавÑÑ‚ едновременно и „%s“, и „%s“ към „%s“"
-#: remote.c:612
+#: remote.c:615
#, c-format
msgid "%s usually tracks %s, not %s"
msgstr "„%s“ обикновено Ñледи „%s“, а не „%s“"
-#: remote.c:616
+#: remote.c:619
#, c-format
msgid "%s tracks both %s and %s"
msgstr "„%s“ Ñледи както „%s“, така и „%s“"
-#: remote.c:684
+#: remote.c:687
#, c-format
msgid "key '%s' of pattern had no '*'"
msgstr "ключ „%s“ на шаблона не Ñъдържа „*“"
-#: remote.c:694
+#: remote.c:697
#, c-format
msgid "value '%s' of pattern has no '*'"
msgstr "ÑтойноÑÑ‚ „%s“ на шаблона не Ñъдържа „*“"
-#: remote.c:1000
+#: remote.c:1003
#, c-format
msgid "src refspec %s does not match any"
msgstr "указателÑÑ‚ на верÑиÑ-източник „%s“ не Ñъвпада Ñ Ð½Ð¸ÐºÐ¾Ð¹ обект"
-#: remote.c:1005
+#: remote.c:1008
#, c-format
msgid "src refspec %s matches more than one"
msgstr "указателÑÑ‚ на верÑиÑ-източник „%s“ Ñъвпада Ñ Ð¿Ð¾Ð²ÐµÑ‡Ðµ от един обект"
@@ -5591,7 +5626,7 @@ msgstr "указателÑÑ‚ на верÑиÑ-източник „%s“ ÑъвÐ
#. <remote> <src>:<dst>" push, and "being pushed ('%s')" is
#. the <src>.
#.
-#: remote.c:1020
+#: remote.c:1023
#, c-format
msgid ""
"The destination you provided is not a full refname (i.e.,\n"
@@ -5615,7 +5650,7 @@ msgstr ""
"Ðикой от вариантите не Ñработи. ТрÑбва Ñами да укажете пълното име на\n"
"указателÑ."
-#: remote.c:1040
+#: remote.c:1043
#, c-format
msgid ""
"The <src> part of the refspec is a commit object.\n"
@@ -5626,7 +5661,7 @@ msgstr ""
"като\n"
"изтлаÑкате към „%s:refs/heads/%s“?"
-#: remote.c:1045
+#: remote.c:1048
#, c-format
msgid ""
"The <src> part of the refspec is a tag object.\n"
@@ -5637,7 +5672,7 @@ msgstr ""
"като\n"
"изтлаÑкате към „%s:refs/tags/%s“?"
-#: remote.c:1050
+#: remote.c:1053
#, c-format
msgid ""
"The <src> part of the refspec is a tree object.\n"
@@ -5647,7 +5682,7 @@ msgstr ""
"ИЗТОЧÐИКът е обект-дърво. Ðе целите ли вÑъщноÑÑ‚ да Ñъздадете нов клон като\n"
"изтлаÑкате към „%s:refs/tags/%s“?"
-#: remote.c:1055
+#: remote.c:1058
#, c-format
msgid ""
"The <src> part of the refspec is a blob object.\n"
@@ -5657,118 +5692,118 @@ msgstr ""
"ИЗТОЧÐИКът е обект-BLOB. Ðе целите ли вÑъщноÑÑ‚ да Ñъздадете нов клон като\n"
"изтлаÑкате към „%s:refs/tags/%s“?"
-#: remote.c:1091
+#: remote.c:1094
#, c-format
msgid "%s cannot be resolved to branch"
msgstr "не е открит клон ÑъответÑтващ на „%s“"
-#: remote.c:1102
+#: remote.c:1105
#, c-format
msgid "unable to delete '%s': remote ref does not exist"
msgstr "„%s“ не може да Ñе изтрие: Ð¾Ñ‚Ð´Ð°Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ» не ÑъщеÑтвува"
-#: remote.c:1114
+#: remote.c:1117
#, c-format
msgid "dst refspec %s matches more than one"
msgstr "указателÑÑ‚ на верÑиÑ-цел „%s“ Ñъвпада Ñ Ð¿Ð¾Ð²ÐµÑ‡Ðµ от един обект"
-#: remote.c:1121
+#: remote.c:1124
#, c-format
msgid "dst ref %s receives from more than one src"
msgstr ""
"указателÑÑ‚ на верÑиÑ-цел „%s“ ÑъответÑтва и ще получава от повече от един "
"източник"
-#: remote.c:1624 remote.c:1725
+#: remote.c:1627 remote.c:1728
msgid "HEAD does not point to a branch"
msgstr "УказателÑÑ‚ „HEAD“ не Ñочи към клон"
-#: remote.c:1633
+#: remote.c:1636
#, c-format
msgid "no such branch: '%s'"
msgstr "нÑма клон на име „%s“"
-#: remote.c:1636
+#: remote.c:1639
#, c-format
msgid "no upstream configured for branch '%s'"
msgstr "не е зададен клон-източник за клона „%s“"
-#: remote.c:1642
+#: remote.c:1645
#, c-format
msgid "upstream branch '%s' not stored as a remote-tracking branch"
msgstr "клонът-източник „%s“ не е Ñъхранен като ÑледÑщ клон"
-#: remote.c:1657
+#: remote.c:1660
#, c-format
msgid "push destination '%s' on remote '%s' has no local tracking branch"
msgstr ""
"липÑва локален ÑледÑщ клон за меÑтоположението за изтлаÑкване „%s“ в "
"хранилището „%s“"
-#: remote.c:1669
+#: remote.c:1672
#, c-format
msgid "branch '%s' has no remote for pushing"
msgstr "нÑма Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ ÐºÐ»Ð¾Ð½ÑŠÑ‚ „%s“ да Ñледи нÑкой друг"
-#: remote.c:1679
+#: remote.c:1682
#, c-format
msgid "push refspecs for '%s' do not include '%s'"
msgstr "указателÑÑ‚ за изтлаÑкване на „%s“ не включва „%s“"
-#: remote.c:1692
+#: remote.c:1695
msgid "push has no destination (push.default is 'nothing')"
msgstr "указателÑÑ‚ за изтлаÑкване не включва цел („push.default“ е „nothing“)"
-#: remote.c:1714
+#: remote.c:1717
msgid "cannot resolve 'simple' push to a single destination"
msgstr "проÑтото (simple) изтлаÑкване не ÑъответÑтва на една цел"
-#: remote.c:1840
+#: remote.c:1843
#, c-format
msgid "couldn't find remote ref %s"
msgstr "отдалечениÑÑ‚ указател „%s“ не може да бъде открит"
-#: remote.c:1853
+#: remote.c:1856
#, c-format
msgid "* Ignoring funny ref '%s' locally"
msgstr "• преÑкачане на Ð½ÐµÐ¾Ñ‡Ð°ÐºÐ²Ð°Ð½Ð¸Ñ Ð»Ð¾ÐºÐ°Ð»ÐµÐ½ указател „%s“"
-#: remote.c:2016
+#: remote.c:2019
#, c-format
msgid "Your branch is based on '%s', but the upstream is gone.\n"
msgstr "Този клон Ñледи „%s“, но ÑледениÑÑ‚ клон е изтрит.\n"
-#: remote.c:2020
+#: remote.c:2023
msgid " (use \"git branch --unset-upstream\" to fixup)\n"
msgstr " (за да коригирате това, използвайте „git branch --unset-upstream“)\n"
-#: remote.c:2023
+#: remote.c:2026
#, c-format
msgid "Your branch is up to date with '%s'.\n"
msgstr "Клонът е актуализиран към „%s“.\n"
-#: remote.c:2027
+#: remote.c:2030
#, c-format
msgid "Your branch and '%s' refer to different commits.\n"
msgstr "Клонът ви и „%s“ Ñочат към различни подаваниÑ.\n"
-#: remote.c:2030
+#: remote.c:2033
#, c-format
msgid " (use \"%s\" for details)\n"
msgstr " (за повече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ð»Ð·Ð²Ð°Ð¹Ñ‚Ðµ „%s“)\n"
-#: remote.c:2034
+#: remote.c:2037
#, c-format
msgid "Your branch is ahead of '%s' by %d commit.\n"
msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
msgstr[0] "Клонът ви е Ñ %2$d подаване пред „%1$s“.\n"
msgstr[1] "Клонът ви е Ñ %2$d Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ Ð¿Ñ€ÐµÐ´ „%1$s“.\n"
-#: remote.c:2040
+#: remote.c:2043
msgid " (use \"git push\" to publish your local commits)\n"
msgstr " (публикувайте локалните Ñи промени чрез „git push“)\n"
-#: remote.c:2043
+#: remote.c:2046
#, c-format
msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
msgid_plural ""
@@ -5776,11 +5811,11 @@ msgid_plural ""
msgstr[0] "Клонът ви е Ñ %2$d подаване зад „%1$s“ и може да бъде превъртÑн.\n"
msgstr[1] "Клонът ви е Ñ %2$d Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ Ð·Ð°Ð´ „%1$s“ и може да бъде превъртÑн.\n"
-#: remote.c:2051
+#: remote.c:2054
msgid " (use \"git pull\" to update your local branch)\n"
msgstr " (обновете Ð»Ð¾ÐºÐ°Ð»Ð½Ð¸Ñ Ñи клон чрез „git pull“)\n"
-#: remote.c:2054
+#: remote.c:2057
#, c-format
msgid ""
"Your branch and '%s' have diverged,\n"
@@ -5795,11 +5830,11 @@ msgstr[1] ""
"ТекущиÑÑ‚ клон Ñе е отделил от „%s“,\n"
"двата имат Ñъответно по %d и %d неÑъвпадащи подаваниÑ.\n"
-#: remote.c:2064
+#: remote.c:2067
msgid " (use \"git pull\" to merge the remote branch into yours)\n"
msgstr " (Ñлейте Ð¾Ñ‚Ð´Ð°Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ ÐºÐ»Ð¾Ð½ в Ð»Ð¾ÐºÐ°Ð»Ð½Ð¸Ñ Ñ‡Ñ€ÐµÐ· „git pull“)\n"
-#: remote.c:2247
+#: remote.c:2250
#, c-format
msgid "cannot parse expected object name '%s'"
msgstr "очакваното име на обект „%s“ не може да бъде анализирано"
@@ -5880,7 +5915,7 @@ msgstr "излишниÑÑ‚ обект „%s“ не може да Ñе изтрÐ
msgid "Recorded preimage for '%s'"
msgstr "ПредварителниÑÑ‚ вариант на „%s“ е запазен"
-#: rerere.c:881 submodule.c:2023 builtin/log.c:1773
+#: rerere.c:881 submodule.c:2023 builtin/log.c:1790
#: builtin/submodule--helper.c:1418 builtin/submodule--helper.c:1428
#, c-format
msgid "could not create directory '%s'"
@@ -5915,20 +5950,20 @@ msgstr "Запазената ÐºÐ¾Ñ€ÐµÐºÑ†Ð¸Ñ Ð½Ð° конфликт при „%s
msgid "unable to open rr-cache directory"
msgstr "директориÑта „rr-cache“ не може да Ñе отвори"
-#: revision.c:2507
+#: revision.c:2509
msgid "your current branch appears to be broken"
msgstr "ТекущиÑÑ‚ клон е повреден"
-#: revision.c:2510
+#: revision.c:2512
#, c-format
msgid "your current branch '%s' does not have any commits yet"
msgstr "ТекущиÑÑ‚ клон „%s“ е без Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ "
-#: revision.c:2710
+#: revision.c:2720
msgid "--first-parent is incompatible with --bisect"
msgstr "опциите „--first-parent“ и „--bisect“ Ñа неÑъвмеÑтими"
-#: revision.c:2714
+#: revision.c:2724
msgid "-L does not yet support diff formats besides -p and -s"
msgstr ""
"опциÑта „-L“ поддържа единÑтвено форматирането на разликите Ñпоред опциите „-"
@@ -5953,32 +5988,32 @@ msgstr ""
"За да изключите това предупреждение, изпълнете:\n"
" git config advice.ignoredHook false"
-#: send-pack.c:141
+#: send-pack.c:142
msgid "unexpected flush packet while reading remote unpack status"
msgstr ""
"неочакван изчиÑтващ пакет „flush“ при изчитане на ÑÑŠÑтоÑнието от "
"отдалеченото разпакетиране"
-#: send-pack.c:143
+#: send-pack.c:144
#, c-format
msgid "unable to parse remote unpack status: %s"
msgstr ""
"ÑÑŠÑтоÑнието от отдалеченото разпакетиране не може да бъде анализирано: %s"
-#: send-pack.c:145
+#: send-pack.c:146
#, c-format
msgid "remote unpack failed: %s"
msgstr "неуÑпешно отдалечено разпакетиране: %s"
-#: send-pack.c:306
+#: send-pack.c:307
msgid "failed to sign the push certificate"
msgstr "Ñертификатът за изтлаÑкване не може да бъде подпиÑан"
-#: send-pack.c:420
+#: send-pack.c:421
msgid "the receiving end does not support --signed push"
msgstr "отÑрещната Ñтрана не поддържа изтлаÑкване Ñ Ð¾Ð¿Ñ†Ð¸Ñта „--signed“"
-#: send-pack.c:422
+#: send-pack.c:423
msgid ""
"not sending a push certificate since the receiving end does not support --"
"signed push"
@@ -5986,11 +6021,11 @@ msgstr ""
"отÑрещната Ñтрана не поддържа изтлаÑкване Ñ Ð¾Ð¿Ñ†Ð¸Ñта „--signed“, затова не Ñе "
"използва Ñертификат"
-#: send-pack.c:434
+#: send-pack.c:435
msgid "the receiving end does not support --atomic push"
msgstr "получаващата Ñтрана не поддържа изтлаÑкване Ñ Ð¾Ð¿Ñ†Ð¸Ñта „--atomic“"
-#: send-pack.c:439
+#: send-pack.c:440
msgid "the receiving end does not support push options"
msgstr "отÑрещната Ñтрана не поддържа опции при изтлаÑкване"
@@ -6004,7 +6039,7 @@ msgstr "неÑъщеÑтвуващ режим на изчиÑтване „%s“
msgid "could not delete '%s'"
msgstr "„%s“ не може да бъде изтрит"
-#: sequencer.c:311 builtin/rebase.c:759 builtin/rebase.c:1645 builtin/rm.c:369
+#: sequencer.c:311 builtin/rebase.c:760 builtin/rebase.c:1676 builtin/rm.c:369
#, c-format
msgid "could not remove '%s'"
msgstr "„%s“ не може да бъде изтрит"
@@ -6044,7 +6079,7 @@ msgstr ""
"пътища Ñ â€žgit add ПЪТ…“ или „git rm ПЪТ…“, Ñлед което\n"
"подайте резултата Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ‚Ð° „git commit'“."
-#: sequencer.c:401 sequencer.c:2909
+#: sequencer.c:401 sequencer.c:2847
#, c-format
msgid "could not lock '%s'"
msgstr "„%s“ не може да Ñе заключи"
@@ -6054,15 +6089,15 @@ msgstr "„%s“ не може да Ñе заключи"
msgid "could not write eol to '%s'"
msgstr "краÑÑ‚ на ред не може да Ñе запише в „%s“"
-#: sequencer.c:413 sequencer.c:2714 sequencer.c:2915 sequencer.c:2929
-#: sequencer.c:3192
+#: sequencer.c:413 sequencer.c:2652 sequencer.c:2853 sequencer.c:2867
+#: sequencer.c:3130
#, c-format
msgid "failed to finalize '%s'"
msgstr "„%s“ не може да Ñе завърши"
-#: sequencer.c:436 sequencer.c:981 sequencer.c:1655 sequencer.c:2734
-#: sequencer.c:3174 sequencer.c:3283 builtin/am.c:245 builtin/commit.c:763
-#: builtin/merge.c:1112 builtin/rebase.c:567
+#: sequencer.c:436 sequencer.c:1585 sequencer.c:2672 sequencer.c:3112
+#: sequencer.c:3221 builtin/am.c:244 builtin/commit.c:763 builtin/merge.c:1117
+#: builtin/rebase.c:568
#, c-format
msgid "could not read '%s'"
msgstr "файлът „%s“ не може да бъде прочетен"
@@ -6089,70 +6124,65 @@ msgstr "ÐеÑъщеÑтвуващ режим на изчиÑтване „%s“
#. TRANSLATORS: %s will be "revert", "cherry-pick" or
#. "rebase -i".
#.
-#: sequencer.c:632
+#: sequencer.c:631
#, c-format
msgid "%s: Unable to write new index file"
msgstr "%s: новиÑÑ‚ Ð¸Ð½Ð´ÐµÐºÑ Ð½Ðµ може да бъде запазен"
-#: sequencer.c:649
+#: sequencer.c:648
msgid "unable to update cache tree"
msgstr "дървото на кеша не може да бъде обновено"
-#: sequencer.c:663
+#: sequencer.c:662
msgid "could not resolve HEAD commit"
msgstr "подаването, Ñочено от ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ â€žHEAD“, не може да бъде открито"
-#: sequencer.c:743
+#: sequencer.c:742
#, c-format
msgid "no key present in '%.*s'"
msgstr "в „%.*s“ нÑма ключове"
-#: sequencer.c:754
+#: sequencer.c:753
#, c-format
msgid "unable to dequote value of '%s'"
msgstr "цитирането на ÑтойноÑтта на „%s“ не може да бъде изчиÑтено"
-#: sequencer.c:791 wrapper.c:227 wrapper.c:397 builtin/am.c:706
-#: builtin/am.c:798 builtin/merge.c:1109 builtin/rebase.c:1045
+#: sequencer.c:790 wrapper.c:190 wrapper.c:360 builtin/am.c:705
+#: builtin/am.c:797 builtin/merge.c:1114 builtin/rebase.c:1046
#, c-format
msgid "could not open '%s' for reading"
msgstr "файлът не може да бъде прочетен: „%s“"
-#: sequencer.c:801
+#: sequencer.c:800
msgid "'GIT_AUTHOR_NAME' already given"
msgstr "наÑтройката за автор „GIT_AUTHOR_NAME“ вече е зададена"
-#: sequencer.c:806
+#: sequencer.c:805
msgid "'GIT_AUTHOR_EMAIL' already given"
msgstr "наÑтройката за е-поща „GIT_AUTHOR_EMAIL“ вече е зададена"
-#: sequencer.c:811
+#: sequencer.c:810
msgid "'GIT_AUTHOR_DATE' already given"
msgstr "наÑтройката за дата „GIT_AUTHOR_DATE“ вече е зададена"
-#: sequencer.c:815
+#: sequencer.c:814
#, c-format
msgid "unknown variable '%s'"
msgstr "непозната променлива „%s“"
-#: sequencer.c:820
+#: sequencer.c:819
msgid "missing 'GIT_AUTHOR_NAME'"
msgstr "наÑтройката за автор „GIT_AUTHOR_NAME“ липÑва"
-#: sequencer.c:822
+#: sequencer.c:821
msgid "missing 'GIT_AUTHOR_EMAIL'"
msgstr "наÑтройката за е-поща „GIT_AUTHOR_EMAIL“ липÑва"
-#: sequencer.c:824
+#: sequencer.c:823
msgid "missing 'GIT_AUTHOR_DATE'"
msgstr "наÑтройката за дата „GIT_AUTHOR_DATE“ липÑва"
-#: sequencer.c:884
-#, c-format
-msgid "invalid date format '%s' in '%s'"
-msgstr "неправилен формат на дата „%s“ в „%s“"
-
-#: sequencer.c:901
+#: sequencer.c:872
#, c-format
msgid ""
"you have staged changes in your working tree\n"
@@ -6181,17 +6211,13 @@ msgstr ""
"\n"
" git rebase --continue\n"
-#: sequencer.c:995
-msgid "writing root commit"
-msgstr "запазване на начално подаване"
-
-#: sequencer.c:1216
+#: sequencer.c:1146
msgid "'prepare-commit-msg' hook failed"
msgstr ""
"неуÑпешно изпълнение на куката при промÑна на Ñъобщението при подаване "
"(prepare-commit-msg)"
-#: sequencer.c:1223
+#: sequencer.c:1153
msgid ""
"Your name and email address were configured automatically based\n"
"on your username and hostname. Please check that they are accurate.\n"
@@ -6220,7 +6246,7 @@ msgstr ""
"\n"
" git commit --amend --reset-author\n"
-#: sequencer.c:1236
+#: sequencer.c:1166
msgid ""
"Your name and email address were configured automatically based\n"
"on your username and hostname. Please check that they are accurate.\n"
@@ -6246,338 +6272,338 @@ msgstr ""
"\n"
" git commit --amend --reset-author\n"
-#: sequencer.c:1278
+#: sequencer.c:1208
msgid "couldn't look up newly created commit"
msgstr "току що Ñъздаденото подаване не може да бъде открито"
-#: sequencer.c:1280
+#: sequencer.c:1210
msgid "could not parse newly created commit"
msgstr "току що Ñъздаденото подаване не може да бъде анализирано"
-#: sequencer.c:1326
+#: sequencer.c:1256
msgid "unable to resolve HEAD after creating commit"
msgstr ""
"ÑÑŠÑтоÑнието Ñочено от ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ â€žHEAD“ не може да бъде открито Ñлед "
"подаването"
-#: sequencer.c:1328
+#: sequencer.c:1258
msgid "detached HEAD"
msgstr "неÑвързан връх „HEAD“"
-#: sequencer.c:1332
+#: sequencer.c:1262
msgid " (root-commit)"
msgstr " (начално подаване)"
-#: sequencer.c:1353
+#: sequencer.c:1283
msgid "could not parse HEAD"
msgstr "указателÑÑ‚ „HEAD“ не може да бъде анализиран"
-#: sequencer.c:1355
+#: sequencer.c:1285
#, c-format
msgid "HEAD %s is not a commit!"
msgstr "указателÑÑ‚ „HEAD“ „%s“ Ñочи към нещо, което не е подаване!"
-#: sequencer.c:1359 builtin/commit.c:1571
+#: sequencer.c:1289 builtin/commit.c:1571
msgid "could not parse HEAD commit"
msgstr "върховото подаване „HEAD“ не може да бъде прочетено"
-#: sequencer.c:1411 sequencer.c:2004
+#: sequencer.c:1341 sequencer.c:1933
msgid "unable to parse commit author"
msgstr "авторът на подаването не може да бъде анализиран"
-#: sequencer.c:1421 builtin/am.c:1573 builtin/merge.c:684
+#: sequencer.c:1352 builtin/am.c:1561 builtin/merge.c:684
msgid "git write-tree failed to write a tree"
msgstr "Командата „git write-tree“ не уÑÐ¿Ñ Ð´Ð° запише обект-дърво"
-#: sequencer.c:1438 sequencer.c:1499
+#: sequencer.c:1369 sequencer.c:1429
#, c-format
msgid "unable to read commit message from '%s'"
msgstr "Ñъобщението за подаване не може да бъде прочетено от „%s“"
-#: sequencer.c:1465 builtin/am.c:1595 builtin/commit.c:1670 builtin/merge.c:878
-#: builtin/merge.c:903
+#: sequencer.c:1396 builtin/am.c:1583 builtin/commit.c:1670 builtin/merge.c:883
+#: builtin/merge.c:908
msgid "failed to write commit object"
msgstr "обектът за подаването не може да бъде запиÑан"
-#: sequencer.c:1526
+#: sequencer.c:1456
#, c-format
msgid "could not parse commit %s"
msgstr "подаването „%s“ не може да бъде анализирано"
-#: sequencer.c:1531
+#: sequencer.c:1461
#, c-format
msgid "could not parse parent commit %s"
msgstr "родителÑкото подаване „%s“ не може да бъде анализирано"
-#: sequencer.c:1605 sequencer.c:1715
+#: sequencer.c:1535 sequencer.c:1645
#, c-format
msgid "unknown command: %d"
msgstr "непозната команда: %d"
-#: sequencer.c:1662 sequencer.c:1687
+#: sequencer.c:1592 sequencer.c:1617
#, c-format
msgid "This is a combination of %d commits."
msgstr "Това е обединение от %d подаваниÑ"
-#: sequencer.c:1672
+#: sequencer.c:1602
msgid "need a HEAD to fixup"
msgstr "За вкарване в предходното подаване ви Ñ‚Ñ€Ñбва указател „HEAD“"
-#: sequencer.c:1674 sequencer.c:3219
+#: sequencer.c:1604 sequencer.c:3157
msgid "could not read HEAD"
msgstr "указателÑÑ‚ „HEAD“ не може да Ñе прочете"
-#: sequencer.c:1676
+#: sequencer.c:1606
msgid "could not read HEAD's commit message"
msgstr ""
"Ñъобщението за подаване към ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ â€žHEAD“ не може да бъде прочетено: %s"
-#: sequencer.c:1682
+#: sequencer.c:1612
#, c-format
msgid "cannot write '%s'"
msgstr "„%s“ не може да Ñе запази"
-#: sequencer.c:1689 git-rebase--preserve-merges.sh:496
+#: sequencer.c:1619 git-rebase--preserve-merges.sh:496
msgid "This is the 1st commit message:"
msgstr "Това е 1-то Ñъобщение при подаване:"
-#: sequencer.c:1697
+#: sequencer.c:1627
#, c-format
msgid "could not read commit message of %s"
msgstr "Ñъобщението за подаване към „%s“ не може да бъде прочетено"
-#: sequencer.c:1704
+#: sequencer.c:1634
#, c-format
msgid "This is the commit message #%d:"
msgstr "Това е Ñъобщение при подаване â„–%d:"
-#: sequencer.c:1710
+#: sequencer.c:1640
#, c-format
msgid "The commit message #%d will be skipped:"
msgstr "Съобщение при подаване â„–%d ще бъде преÑкочено:"
-#: sequencer.c:1798
+#: sequencer.c:1728
msgid "your index file is unmerged."
msgstr "индекÑÑŠÑ‚ не е ÑлÑÑ‚."
-#: sequencer.c:1805
+#: sequencer.c:1735
msgid "cannot fixup root commit"
msgstr "началното подаване не може да Ñе вкара в предходното му"
-#: sequencer.c:1824
+#: sequencer.c:1754
#, c-format
msgid "commit %s is a merge but no -m option was given."
msgstr "подаването „%s“ е Ñливане, но не е дадена опциÑта „-m“"
-#: sequencer.c:1832 sequencer.c:1840
+#: sequencer.c:1762 sequencer.c:1770
#, c-format
msgid "commit %s does not have parent %d"
msgstr "подаването „%s“ нÑма родител %d"
-#: sequencer.c:1846
+#: sequencer.c:1776
#, 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:1865
+#: sequencer.c:1795
#, c-format
msgid "%s: cannot parse parent commit %s"
msgstr "%s: неразпозната ÑтойноÑÑ‚ за родителÑкото подаване „%s“"
-#: sequencer.c:1930
+#: sequencer.c:1860
#, c-format
msgid "could not rename '%s' to '%s'"
msgstr "„%s“ не може да Ñе преименува на „%s“"
-#: sequencer.c:1985
+#: sequencer.c:1915
#, c-format
msgid "could not revert %s... %s"
msgstr "подаването „%s“… не може да бъде отменено: „%s“"
-#: sequencer.c:1986
+#: sequencer.c:1916
#, c-format
msgid "could not apply %s... %s"
msgstr "подаването „%s“… не може да бъде приложено: „%s“"
-#: sequencer.c:2045
+#: sequencer.c:1983
#, c-format
msgid "git %s: failed to read the index"
msgstr "git %s: неуÑпешно изчитане на индекÑа"
-#: sequencer.c:2052
+#: sequencer.c:1990
#, c-format
msgid "git %s: failed to refresh the index"
msgstr "git %s: неуÑпешно обновÑване на индекÑа"
-#: sequencer.c:2128
+#: sequencer.c:2066
#, c-format
msgid "%s does not accept arguments: '%s'"
msgstr "„%s“ не приема аргументи: „%s“"
-#: sequencer.c:2137
+#: sequencer.c:2075
#, c-format
msgid "missing arguments for %s"
msgstr "„%s“ изиÑква аргументи"
-#: sequencer.c:2174
+#: sequencer.c:2112
#, c-format
msgid "could not parse '%.*s'"
msgstr "„%.*s“ не може да Ñе анализира"
-#: sequencer.c:2228
+#: sequencer.c:2166
#, c-format
msgid "invalid line %d: %.*s"
msgstr "неправилен ред %d: %.*s"
-#: sequencer.c:2239
+#: sequencer.c:2177
#, c-format
msgid "cannot '%s' without a previous commit"
msgstr "Без предишно подаване не може да Ñе изпълни „%s“"
-#: sequencer.c:2287 builtin/rebase.c:153 builtin/rebase.c:178
+#: sequencer.c:2225 builtin/rebase.c:153 builtin/rebase.c:178
#: builtin/rebase.c:204 builtin/rebase.c:229
#, c-format
msgid "could not read '%s'."
msgstr "от „%s“ не може да Ñе чете."
-#: sequencer.c:2323
+#: sequencer.c:2261
msgid "cancelling a cherry picking in progress"
msgstr "преуÑтановÑване на извършваното в момента отбиране на подаваниÑ"
-#: sequencer.c:2330
+#: sequencer.c:2268
msgid "cancelling a revert in progress"
msgstr "преуÑтановÑване на извършваното в момента отмÑна на подаване"
-#: sequencer.c:2364
+#: sequencer.c:2302
msgid "please fix this using 'git rebase --edit-todo'."
msgstr "коригирайте това чрез „git rebase --edit-todo“."
-#: sequencer.c:2366
+#: sequencer.c:2304
#, c-format
msgid "unusable instruction sheet: '%s'"
msgstr "неизползваем файл Ñ Ð¾Ð¿Ð¸Ñание на предÑтоÑщите дейÑтвиÑ: „%s“"
-#: sequencer.c:2371
+#: sequencer.c:2309
msgid "no commits parsed."
msgstr "никое от подаваниÑта не може да Ñе разпознае."
-#: sequencer.c:2382
+#: sequencer.c:2320
msgid "cannot cherry-pick during a revert."
msgstr ""
"по време на отмÑна на подаване не може да Ñе извърши отбиране на подаване."
-#: sequencer.c:2384
+#: sequencer.c:2322
msgid "cannot revert during a cherry-pick."
msgstr "по време на отбиране не може да Ñе извърши отмÑна на подаване."
-#: sequencer.c:2466
+#: sequencer.c:2404
#, c-format
msgid "invalid value for %s: %s"
msgstr "неправилна ÑтойноÑÑ‚ за „%s“: „%s“"
-#: sequencer.c:2553
+#: sequencer.c:2491
msgid "unusable squash-onto"
msgstr "подаването, в което другите да Ñе вкарат, не може да Ñе използва"
-#: sequencer.c:2569
+#: sequencer.c:2507
#, c-format
msgid "malformed options sheet: '%s'"
msgstr "неправилен файл Ñ Ð¾Ð¿Ñ†Ð¸Ð¸: „%s“"
-#: sequencer.c:2652 sequencer.c:4351
+#: sequencer.c:2590 sequencer.c:4308
msgid "empty commit set passed"
msgstr "зададено е празно множеÑтво от подаваниÑ"
-#: sequencer.c:2668
+#: sequencer.c:2606
msgid "revert is already in progress"
msgstr "в момента вече Ñе извършва отмÑна на подаваниÑ"
-#: sequencer.c:2670
+#: sequencer.c:2608
#, c-format
msgid "try \"git revert (--continue | %s--abort | --quit)\""
msgstr "използвайте „git cherry-pick (--continue | %s--abort | --quit)“"
-#: sequencer.c:2673
+#: sequencer.c:2611
msgid "cherry-pick is already in progress"
msgstr "в момента вече Ñе извършва отбиране на подаваниÑ"
-#: sequencer.c:2675
+#: sequencer.c:2613
#, c-format
msgid "try \"git cherry-pick (--continue | %s--abort | --quit)\""
msgstr "използвайте „git cherry-pick (--continue | %s--abort | --quit)“"
-#: sequencer.c:2689
+#: sequencer.c:2627
#, c-format
msgid "could not create sequencer directory '%s'"
msgstr ""
"директориÑта за определÑнето на поÑледователноÑтта „%s“ не може да бъде "
"Ñъздадена"
-#: sequencer.c:2704
+#: sequencer.c:2642
msgid "could not lock HEAD"
msgstr "указателÑÑ‚ „HEAD“ не може да Ñе заключи"
-#: sequencer.c:2764 sequencer.c:4103
+#: sequencer.c:2702 sequencer.c:4057
msgid "no cherry-pick or revert in progress"
msgstr ""
"в момента не Ñе извършва отбиране на Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ пребазиране на клона"
-#: sequencer.c:2766 sequencer.c:2777
+#: sequencer.c:2704 sequencer.c:2715
msgid "cannot resolve HEAD"
msgstr "Подаването Ñочено от ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ â€žHEAD“ не може да бъде открито"
-#: sequencer.c:2768 sequencer.c:2812
+#: sequencer.c:2706 sequencer.c:2750
msgid "cannot abort from a branch yet to be born"
msgstr ""
"дейÑтвието не може да бъде преуÑтановено, когато Ñте на клон, който тепърва "
"предÑтои да бъде Ñъздаден"
-#: sequencer.c:2798 builtin/grep.c:734
+#: sequencer.c:2736 builtin/grep.c:736
#, c-format
msgid "cannot open '%s'"
msgstr "„%s“ не може да бъде отворен"
-#: sequencer.c:2800
+#: sequencer.c:2738
#, c-format
msgid "cannot read '%s': %s"
msgstr "„%s“ не може да бъде прочетен: %s"
-#: sequencer.c:2801
+#: sequencer.c:2739
msgid "unexpected end of file"
msgstr "неочакван край на файл"
-#: sequencer.c:2807
+#: sequencer.c:2745
#, c-format
msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
msgstr ""
"запазениÑÑ‚ преди започването на отбирането файл за ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ â€žHEAD“ — „%s“ е "
"повреден"
-#: sequencer.c:2818
+#: sequencer.c:2756
msgid "You seem to have moved HEAD. Not rewinding, check your HEAD!"
msgstr ""
"Изглежда указателÑÑ‚ „HEAD“ е променен. Проверете към какво Ñочи.\n"
"Ðе Ñе правÑÑ‚ промени."
-#: sequencer.c:2859
+#: sequencer.c:2797
msgid "no revert in progress"
msgstr "в момента не тече пребазиране"
-#: sequencer.c:2867
+#: sequencer.c:2805
msgid "no cherry-pick in progress"
msgstr "в момента не Ñе извършва отбиране на подаваниÑ"
-#: sequencer.c:2877
+#: sequencer.c:2815
msgid "failed to skip the commit"
msgstr "неуÑпешно преÑкачане на подаването"
-#: sequencer.c:2884
+#: sequencer.c:2822
msgid "there is nothing to skip"
msgstr "нÑма какво да Ñе преÑкочи"
-#: sequencer.c:2887
+#: sequencer.c:2825
#, c-format
msgid ""
"have you committed already?\n"
@@ -6587,21 +6613,21 @@ msgstr ""
"\n"
" git %s --continue"
-#: sequencer.c:3011 sequencer.c:4015
+#: sequencer.c:2949 sequencer.c:3969
#, c-format
msgid "could not update %s"
msgstr "„%s“ не може да Ñе обнови"
-#: sequencer.c:3049 sequencer.c:3995
+#: sequencer.c:2987 sequencer.c:3949
msgid "cannot read HEAD"
msgstr "указателÑÑ‚ „HEAD“ не може да бъде прочетен"
-#: sequencer.c:3066
+#: sequencer.c:3004
#, c-format
msgid "unable to copy '%s' to '%s'"
msgstr "„%s“ не може да Ñе копира като „%s“"
-#: sequencer.c:3074
+#: sequencer.c:3012
#, c-format
msgid ""
"You can amend the commit now, with\n"
@@ -6620,27 +6646,27 @@ msgstr ""
"\n"
" git rebase --continue\n"
-#: sequencer.c:3084
+#: sequencer.c:3022
#, c-format
msgid "Could not apply %s... %.*s"
msgstr "Подаването „%s“… не може да бъде приложено: „%.*s“"
-#: sequencer.c:3091
+#: sequencer.c:3029
#, c-format
msgid "Could not merge %.*s"
msgstr "Ðевъзможно Ñливане на „%.*s“"
-#: sequencer.c:3105 sequencer.c:3109 builtin/difftool.c:633
+#: sequencer.c:3043 sequencer.c:3047 builtin/difftool.c:641
#, c-format
msgid "could not copy '%s' to '%s'"
msgstr "„%s“ не може да Ñе копира като „%s“"
-#: sequencer.c:3131 sequencer.c:3558 builtin/rebase.c:849 builtin/rebase.c:1582
-#: builtin/rebase.c:1953 builtin/rebase.c:2008
+#: sequencer.c:3069 sequencer.c:3506 builtin/rebase.c:850 builtin/rebase.c:1613
+#: builtin/rebase.c:1987 builtin/rebase.c:2031
msgid "could not read index"
msgstr "индекÑÑŠÑ‚ не може да бъде прочетен"
-#: sequencer.c:3136
+#: sequencer.c:3074
#, c-format
msgid ""
"execution failed: %s\n"
@@ -6655,11 +6681,11 @@ msgstr ""
" git rebase --continue\n"
"\n"
-#: sequencer.c:3142
+#: sequencer.c:3080
msgid "and made changes to the index and/or the working tree\n"
msgstr "и Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ Ð¸Ð½Ð´ÐµÐºÑа и/или работното дърво\n"
-#: sequencer.c:3148
+#: sequencer.c:3086
#, c-format
msgid ""
"execution succeeded: %s\n"
@@ -6676,76 +6702,76 @@ msgstr ""
" git rebase --continue\n"
"\n"
-#: sequencer.c:3209
+#: sequencer.c:3147
#, c-format
msgid "illegal label name: '%.*s'"
msgstr "неправилно име на етикет: „%.*s“"
-#: sequencer.c:3263
+#: sequencer.c:3201
msgid "writing fake root commit"
msgstr "запазване на фалшиво начално подаване"
-#: sequencer.c:3268
+#: sequencer.c:3206
msgid "writing squash-onto"
msgstr "запазване на подаването, в което другите да Ñе вкарат"
-#: sequencer.c:3306 builtin/rebase.c:854 builtin/rebase.c:860
+#: sequencer.c:3244 builtin/rebase.c:855 builtin/rebase.c:861
#, c-format
msgid "failed to find tree of %s"
msgstr "дървото, Ñочено от „%s“, не може да бъде открито"
-#: sequencer.c:3324 builtin/rebase.c:873
+#: sequencer.c:3262 builtin/rebase.c:874
msgid "could not write index"
msgstr "индекÑÑŠÑ‚ не може да бъде запиÑан"
-#: sequencer.c:3351
+#: sequencer.c:3289
#, c-format
msgid "could not resolve '%s'"
msgstr "„%s“ не може да бъде открит"
-#: sequencer.c:3379
+#: sequencer.c:3320
msgid "cannot merge without a current revision"
msgstr "без текущо подаване не може да Ñе Ñлива"
-#: sequencer.c:3401
+#: sequencer.c:3342
#, c-format
msgid "unable to parse '%.*s'"
msgstr "„%.*s“ не може да Ñе анализира"
-#: sequencer.c:3410
+#: sequencer.c:3351
#, c-format
msgid "nothing to merge: '%.*s'"
msgstr "нÑма нищо за Ñливане: „%.*s“"
-#: sequencer.c:3422
+#: sequencer.c:3363
msgid "octopus merge cannot be executed on top of a [new root]"
msgstr "върху начално подаване не може да Ñе извърши множеÑтвено Ñливане"
-#: sequencer.c:3437
+#: sequencer.c:3378
#, c-format
msgid "could not get commit message of '%s'"
msgstr "Ñъобщението за подаване към „%s“ не може да бъде получено"
-#: sequencer.c:3590
+#: sequencer.c:3538
#, c-format
msgid "could not even attempt to merge '%.*s'"
msgstr "Ñливането на „%.*s“ не може даже да започне"
-#: sequencer.c:3606
+#: sequencer.c:3554
msgid "merge: Unable to write new index file"
msgstr "Ñливане: новиÑÑ‚ Ð¸Ð½Ð´ÐµÐºÑ Ð½Ðµ може да бъде запазен"
-#: sequencer.c:3675 builtin/rebase.c:711
+#: sequencer.c:3623 builtin/rebase.c:712
#, c-format
msgid "Applied autostash.\n"
msgstr "Ðвтоматично Ñкатаното е приложено.\n"
-#: sequencer.c:3687
+#: sequencer.c:3635
#, c-format
msgid "cannot store %s"
msgstr "„%s“ не може да бъде запазен"
-#: sequencer.c:3690 builtin/rebase.c:727 git-rebase--preserve-merges.sh:113
+#: sequencer.c:3638 builtin/rebase.c:728 git-rebase--preserve-merges.sh:113
#, c-format
msgid ""
"Applying autostash resulted in conflicts.\n"
@@ -6756,31 +6782,31 @@ msgstr ""
"надеждно Ñкатани. Можете да пробвате да ги приложите чрез „git stash pop“\n"
"или да ги изхвърлите чрез „git stash drop“, когато поиÑкате.\n"
-#: sequencer.c:3751
+#: sequencer.c:3699
#, c-format
msgid "could not checkout %s"
msgstr "„%s“ не може да Ñе изтегли"
-#: sequencer.c:3765
+#: sequencer.c:3713
#, c-format
msgid "%s: not a valid OID"
msgstr "„%s“ е неправилен идентификатор на обект"
-#: sequencer.c:3770 git-rebase--preserve-merges.sh:779
+#: sequencer.c:3718 git-rebase--preserve-merges.sh:779
msgid "could not detach HEAD"
msgstr "указателÑÑ‚ „HEAD“ не може да Ñе отдели"
-#: sequencer.c:3785
+#: sequencer.c:3733
#, c-format
msgid "Stopped at HEAD\n"
msgstr "Бе ÑпрÑно при „HEAD“\n"
-#: sequencer.c:3787
+#: sequencer.c:3735
#, c-format
msgid "Stopped at %s\n"
msgstr "Бе ÑпрÑно при „%s“\n"
-#: sequencer.c:3795
+#: sequencer.c:3743
#, c-format
msgid ""
"Could not execute the todo command\n"
@@ -6803,48 +6829,48 @@ msgstr ""
" git rebase --edit-todo\n"
" git rebase --continue\n"
-#: sequencer.c:3877
+#: sequencer.c:3827
#, c-format
msgid "Stopped at %s... %.*s\n"
msgstr "Спиране при „%s“… %.*s\n"
-#: sequencer.c:3958
+#: sequencer.c:3898
#, c-format
msgid "unknown command %d"
msgstr "непозната команда %d"
-#: sequencer.c:4003
+#: sequencer.c:3957
msgid "could not read orig-head"
msgstr "указателÑÑ‚ за „orig-head“ не може да Ñе прочете"
-#: sequencer.c:4008
+#: sequencer.c:3962
msgid "could not read 'onto'"
msgstr "указателÑÑ‚ за „onto“ не може да Ñе прочете"
-#: sequencer.c:4022
+#: sequencer.c:3976
#, c-format
msgid "could not update HEAD to %s"
msgstr "„HEAD“ не може да бъде обновен до „%s“"
-#: sequencer.c:4115
+#: sequencer.c:4069
msgid "cannot rebase: You have unstaged changes."
msgstr "не може да пребазирате, защото има промени, които не Ñа в индекÑа."
-#: sequencer.c:4124
+#: sequencer.c:4078
msgid "cannot amend non-existing commit"
msgstr "неÑъщеÑтвуващо подаване не може да Ñе поправи"
-#: sequencer.c:4126
+#: sequencer.c:4080
#, c-format
msgid "invalid file: '%s'"
msgstr "неправилен файл: „%s“"
-#: sequencer.c:4128
+#: sequencer.c:4082
#, c-format
msgid "invalid contents: '%s'"
msgstr "неправилно Ñъдържание: „%s“"
-#: sequencer.c:4131
+#: sequencer.c:4085
msgid ""
"\n"
"You have uncommitted changes in your working tree. Please, commit them\n"
@@ -6854,42 +6880,42 @@ msgstr ""
"Ð’ работното дърво има неподадени промени. Първо ги подайте, а Ñлед това\n"
"отново изпълнете „git rebase --continue“."
-#: sequencer.c:4167 sequencer.c:4205
+#: sequencer.c:4121 sequencer.c:4159
#, c-format
msgid "could not write file: '%s'"
msgstr "файлът „%s“ не може да бъде запиÑан"
-#: sequencer.c:4220
+#: sequencer.c:4174
msgid "could not remove CHERRY_PICK_HEAD"
msgstr "указателÑÑ‚ „CHERRY_PICK_HEAD“ не може да бъде изтрит"
-#: sequencer.c:4227
+#: sequencer.c:4181
msgid "could not commit staged changes."
msgstr "промените в индекÑа не могат да бъдат подадени."
-#: sequencer.c:4328
+#: sequencer.c:4285
#, c-format
msgid "%s: can't cherry-pick a %s"
msgstr "%s: не може да Ñе отбере „%s“"
-#: sequencer.c:4332
+#: sequencer.c:4289
#, c-format
msgid "%s: bad revision"
msgstr "%s: неправилна верÑиÑ"
-#: sequencer.c:4367
+#: sequencer.c:4324
msgid "can't revert as initial commit"
msgstr "първоначалното подаване не може да бъде отменено"
-#: sequencer.c:4810
+#: sequencer.c:4774
msgid "make_script: unhandled options"
msgstr "make_script: неподдържани опции"
-#: sequencer.c:4813
+#: sequencer.c:4777
msgid "make_script: error preparing revisions"
msgstr "make_script: грешка при подготовката на верÑии"
-#: sequencer.c:4971
+#: sequencer.c:4935
msgid ""
"You can fix this with 'git rebase --edit-todo' and then run 'git rebase --"
"continue'.\n"
@@ -6899,24 +6925,24 @@ msgstr ""
"continue“ Ñлед това.\n"
"Може и да преуÑтановите пребазирането Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ‚Ð° „git rebase --abort“.\n"
-#: sequencer.c:5083 sequencer.c:5100
+#: sequencer.c:5047 sequencer.c:5064
msgid "nothing to do"
msgstr "нÑма какво да Ñе прави"
-#: sequencer.c:5114
+#: sequencer.c:5078
msgid "could not skip unnecessary pick commands"
msgstr "излишните команди за отбиране не бÑха преÑкочени"
-#: sequencer.c:5197
+#: sequencer.c:5166
msgid "the script was already rearranged."
msgstr "Ñкриптът вече е преподреден."
-#: setup.c:123
+#: setup.c:124
#, c-format
msgid "'%s' is outside repository"
msgstr "„%s“ е извън хранилището"
-#: setup.c:173
+#: setup.c:174
#, c-format
msgid ""
"%s: no such path in the working tree.\n"
@@ -6927,7 +6953,7 @@ msgstr ""
"\n"
" git КОМÐÐДР-- ПЪТ…"
-#: setup.c:186
+#: setup.c:187
#, c-format
msgid ""
"ambiguous argument '%s': unknown revision or path not in the working tree.\n"
@@ -6940,12 +6966,12 @@ msgstr ""
"\n"
" git КОМÐÐДР[ВЕРСИЯ…] -- [ФÐЙЛ…]"
-#: setup.c:235
+#: setup.c:236
#, c-format
msgid "option '%s' must come before non-option arguments"
msgstr "опциÑта „%s“ Ñ‚Ñ€Ñбва да е преди Ð¿ÑŠÑ€Ð²Ð¸Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚, който не е опциÑ"
-#: setup.c:254
+#: setup.c:255
#, c-format
msgid ""
"ambiguous argument '%s': both revision and filename\n"
@@ -6957,95 +6983,95 @@ msgstr ""
"\n"
" git КОМÐÐДР[ВЕРСИЯ…] -- [ФÐЙЛ…]"
-#: setup.c:390
+#: setup.c:391
msgid "unable to set up work tree using invalid config"
msgstr ""
"не може да Ñе зададе текуща работна Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð¿Ñ€Ð¸ неправилни наÑтройки"
-#: setup.c:394
+#: setup.c:395
msgid "this operation must be run in a work tree"
msgstr "тази команда Ñ‚Ñ€Ñбва да Ñе изпълни в работно дърво"
-#: setup.c:540
+#: setup.c:541
#, c-format
msgid "Expected git repo version <= %d, found %d"
msgstr "Очаква Ñе верÑÐ¸Ñ Ð½Ð° хранилището на git <= %d, а не %d"
-#: setup.c:548
+#: setup.c:549
msgid "unknown repository extensions found:"
msgstr "открити Ñа непознати Ñ€Ð°Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ Ð² хранилището:"
-#: setup.c:567
+#: setup.c:568
#, c-format
msgid "error opening '%s'"
msgstr "„%s“ не може да Ñе отвори"
-#: setup.c:569
+#: setup.c:570
#, c-format
msgid "too large to be a .git file: '%s'"
msgstr "прекалено голÑм файл „.git“: „%s“"
-#: setup.c:571
+#: setup.c:572
#, c-format
msgid "error reading %s"
msgstr "грешка при прочитане на „%s“"
-#: setup.c:573
+#: setup.c:574
#, c-format
msgid "invalid gitfile format: %s"
msgstr "неправилен формат на gitfile: %s"
-#: setup.c:575
+#: setup.c:576
#, c-format
msgid "no path in gitfile: %s"
msgstr "липÑва път в gitfile: „%s“"
-#: setup.c:577
+#: setup.c:578
#, c-format
msgid "not a git repository: %s"
msgstr "не е хранилище на Git: %s"
-#: setup.c:676
+#: setup.c:677
#, c-format
msgid "'$%s' too big"
msgstr "„%s“ е прекалено голÑм"
-#: setup.c:690
+#: setup.c:691
#, c-format
msgid "not a git repository: '%s'"
msgstr "не е хранилище на git: „%s“"
-#: setup.c:719 setup.c:721 setup.c:752
+#: setup.c:720 setup.c:722 setup.c:753
#, c-format
msgid "cannot chdir to '%s'"
msgstr "не може да Ñе влезе в директориÑта „%s“"
-#: setup.c:724 setup.c:780 setup.c:790 setup.c:829 setup.c:837
+#: setup.c:725 setup.c:781 setup.c:791 setup.c:830 setup.c:838
msgid "cannot come back to cwd"
msgstr "процеÑÑŠÑ‚ не може да Ñе върне към предишната работна директориÑ"
-#: setup.c:851
+#: setup.c:852
#, c-format
msgid "failed to stat '%*s%s%s'"
msgstr "не може да бъде получена Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ñ‡Ñ€ÐµÐ· „stat“ за „%*s%s%s“"
-#: setup.c:1083
+#: setup.c:1090
msgid "Unable to read current working directory"
msgstr "Текущата работна Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ðµ може да бъде прочетена"
-#: setup.c:1092 setup.c:1098
+#: setup.c:1099 setup.c:1105
#, c-format
msgid "cannot change to '%s'"
msgstr "не може да Ñе влезе в директориÑта „%s“"
-#: setup.c:1103
+#: setup.c:1110
#, c-format
msgid "not a git repository (or any of the parent directories): %s"
msgstr ""
"нито тази, нито коÑто и да е от по-горните директории, не е хранилище на "
"git: %s"
-#: setup.c:1109
+#: setup.c:1116
#, c-format
msgid ""
"not a git repository (or any parent up to mount point %s)\n"
@@ -7056,7 +7082,7 @@ msgstr ""
"Git работи в рамките на една файлова ÑиÑтема, защото променливата на Ñредата "
"„GIT_DISCOVERY_ACROSS_FILESYSTEM“ не е зададена."
-#: setup.c:1220
+#: setup.c:1227
#, c-format
msgid ""
"problem with core.sharedRepository filemode value (0%.3o).\n"
@@ -7066,291 +7092,291 @@ msgstr ""
"(0%.3o).\n"
"СобÑтвеникът на файла Ñ‚Ñ€Ñбва да има права за пиÑане и четене."
-#: setup.c:1264
+#: setup.c:1271
msgid "open /dev/null or dup failed"
msgstr "неуÑпешно изпълнение на „open“ или „dup“ върху „/dev/null“"
-#: setup.c:1279
+#: setup.c:1286
msgid "fork failed"
msgstr "неуÑпешно Ñъздаване на Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñ‡Ñ€ÐµÐ· „fork“"
-#: setup.c:1284
+#: setup.c:1291
msgid "setsid failed"
msgstr "неуÑпешно изпълнение на „setsid“"
-#: sha1-file.c:453
+#: sha1-file.c:452
#, c-format
msgid "object directory %s does not exist; check .git/objects/info/alternates"
msgstr ""
"директориÑта за обекти „%s“ не ÑъщеÑтвува, проверете „.git/objects/info/"
"alternates“"
-#: sha1-file.c:504
+#: sha1-file.c:503
#, c-format
msgid "unable to normalize alternate object path: %s"
msgstr "алтернативниÑÑ‚ път към обекти не може да бъде нормализиран: „%s“"
-#: sha1-file.c:576
+#: sha1-file.c:575
#, c-format
msgid "%s: ignoring alternate object stores, nesting too deep"
msgstr ""
"%s: алтернативните хранилища за обекти Ñе пренебрегват поради прекалено "
"дълбоко влагане"
-#: sha1-file.c:583
+#: sha1-file.c:582
#, c-format
msgid "unable to normalize object directory: %s"
msgstr "директориÑта за обекти „%s“ не може да бъде нормализирана"
-#: sha1-file.c:626
+#: sha1-file.c:625
msgid "unable to fdopen alternates lockfile"
msgstr "заключващиÑÑ‚ файл за алтернативите не може да Ñе отвори Ñ â€žfdopen“"
-#: sha1-file.c:644
+#: sha1-file.c:643
msgid "unable to read alternates file"
msgstr "файлът Ñ Ð°Ð»Ñ‚ÐµÑ€Ð½Ð°Ñ‚Ð¸Ð²Ð¸Ñ‚Ðµ не може да бъде прочетен"
-#: sha1-file.c:651
+#: sha1-file.c:650
msgid "unable to move new alternates file into place"
msgstr "новиÑÑ‚ файл Ñ Ð°Ð»Ñ‚ÐµÑ€Ð½Ð°Ñ‚Ð¸Ð²Ð¸Ñ‚Ðµ не може да бъде премеÑтен на мÑÑтото му"
-#: sha1-file.c:686
+#: sha1-file.c:685
#, c-format
msgid "path '%s' does not exist"
msgstr "пътÑÑ‚ „%s“ не ÑъщеÑтвува."
-#: sha1-file.c:712
+#: sha1-file.c:711
#, c-format
msgid "reference repository '%s' as a linked checkout is not supported yet."
msgstr "вÑе още не Ñе поддържа еталонно хранилище „%s“ като Ñвързано."
-#: sha1-file.c:718
+#: sha1-file.c:717
#, c-format
msgid "reference repository '%s' is not a local repository."
msgstr "еталонното хранилище „%s“ не е локално"
-#: sha1-file.c:724
+#: sha1-file.c:723
#, c-format
msgid "reference repository '%s' is shallow"
msgstr "еталонното хранилище „%s“ е плитко"
-#: sha1-file.c:732
+#: sha1-file.c:731
#, c-format
msgid "reference repository '%s' is grafted"
msgstr "еталонното хранилище „%s“ е Ñ Ð¿Ñ€Ð¸Ñаждане"
-#: sha1-file.c:792
+#: sha1-file.c:791
#, c-format
msgid "invalid line while parsing alternate refs: %s"
msgstr "неправилен ред при анализа на алтернативните указатели: „%s“"
-#: sha1-file.c:944
+#: sha1-file.c:943
#, c-format
msgid "attempting to mmap %<PRIuMAX> over limit %<PRIuMAX>"
msgstr ""
"неуÑпешен опит за „mmap“ %<PRIuMAX>, което е над позволеното %<PRIuMAX>"
-#: sha1-file.c:969
+#: sha1-file.c:964
msgid "mmap failed"
msgstr "неуÑпешно изпълнение на „mmap“"
-#: sha1-file.c:1133
+#: sha1-file.c:1128
#, c-format
msgid "object file %s is empty"
msgstr "файлът Ñ Ð¾Ð±ÐµÐºÑ‚Ð¸Ñ‚Ðµ „%s“ е празен"
-#: sha1-file.c:1257 sha1-file.c:2396
+#: sha1-file.c:1252 sha1-file.c:2392
#, c-format
msgid "corrupt loose object '%s'"
msgstr "непакетираниÑÑ‚ обект „%s“ е повреден"
-#: sha1-file.c:1259 sha1-file.c:2400
+#: sha1-file.c:1254 sha1-file.c:2396
#, c-format
msgid "garbage at end of loose object '%s'"
msgstr "грешни данни в ÐºÑ€Ð°Ñ Ð½Ð° Ð½ÐµÐ¿Ð°ÐºÐµÑ‚Ð¸Ñ€Ð°Ð½Ð¸Ñ Ð¾Ð±ÐµÐºÑ‚ „%s“"
-#: sha1-file.c:1301
+#: sha1-file.c:1296
msgid "invalid object type"
msgstr "неправилен вид обект"
-#: sha1-file.c:1385
+#: sha1-file.c:1380
#, c-format
msgid "unable to unpack %s header with --allow-unknown-type"
msgstr ""
"заглавната чаÑÑ‚ „%s“ не може да Ñе разпакетира Ñ Ð¾Ð¿Ñ†Ð¸Ñта „--allow-unknown-"
"type“"
-#: sha1-file.c:1388
+#: sha1-file.c:1383
#, c-format
msgid "unable to unpack %s header"
msgstr "заглавната чаÑÑ‚ на „%s“ не може да бъде разпакетирана"
-#: sha1-file.c:1394
+#: sha1-file.c:1389
#, c-format
msgid "unable to parse %s header with --allow-unknown-type"
msgstr ""
"заглавната чаÑÑ‚ „%s“ не може да Ñе анализира Ñ Ð¾Ð¿Ñ†Ð¸Ñта „--allow-unknown-type“"
-#: sha1-file.c:1397
+#: sha1-file.c:1392
#, c-format
msgid "unable to parse %s header"
msgstr "заглавната чаÑÑ‚ на „%s“ не може да бъде анализирана"
-#: sha1-file.c:1588
+#: sha1-file.c:1584
#, c-format
msgid "failed to read object %s"
msgstr "обектът „%s“ не може да бъде прочетен"
-#: sha1-file.c:1592
+#: sha1-file.c:1588
#, c-format
msgid "replacement %s not found for %s"
msgstr "замеÑтителÑÑ‚ „%s“ на „%s“ не може да бъде открит"
-#: sha1-file.c:1596
+#: sha1-file.c:1592
#, c-format
msgid "loose object %s (stored in %s) is corrupt"
msgstr "непакетираниÑÑ‚ обект „%s“ (в „%s“) е повреден"
-#: sha1-file.c:1600
+#: sha1-file.c:1596
#, c-format
msgid "packed object %s (stored in %s) is corrupt"
msgstr "пакетираниÑÑ‚ обект „%s“ (в „%s“) е повреден"
-#: sha1-file.c:1703
+#: sha1-file.c:1699
#, c-format
msgid "unable to write file %s"
msgstr "файлът „%s“ не може да бъде запиÑан"
-#: sha1-file.c:1710
+#: sha1-file.c:1706
#, c-format
msgid "unable to set permission to '%s'"
msgstr "правата за доÑтъп до „%s“ не могат да бъдат зададени"
-#: sha1-file.c:1717
+#: sha1-file.c:1713
msgid "file write error"
msgstr "грешка при Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° файл"
-#: sha1-file.c:1736
+#: sha1-file.c:1732
msgid "error when closing loose object file"
msgstr "грешка при затварÑнето на файла Ñ Ð½ÐµÐ¿Ð°ÐºÐµÑ‚Ð¸Ñ€Ð°Ð½ обект"
-#: sha1-file.c:1801
+#: sha1-file.c:1797
#, c-format
msgid "insufficient permission for adding an object to repository database %s"
msgstr ""
"нÑма права за добавÑне на обект към базата от данни на хранилището „%s“"
-#: sha1-file.c:1803
+#: sha1-file.c:1799
msgid "unable to create temporary file"
msgstr "не може да бъде Ñъздаден временен файл"
-#: sha1-file.c:1827
+#: sha1-file.c:1823
msgid "unable to write loose object file"
msgstr "грешка при запиÑа на файла Ñ Ð½ÐµÐ¿Ð°ÐºÐµÑ‚Ð¸Ñ€Ð°Ð½ обект"
-#: sha1-file.c:1833
+#: sha1-file.c:1829
#, c-format
msgid "unable to deflate new object %s (%d)"
msgstr "новиÑÑ‚ обект „%s“ не може да Ñе компреÑира Ñ â€ždeflate“: %d"
-#: sha1-file.c:1837
+#: sha1-file.c:1833
#, c-format
msgid "deflateEnd on object %s failed (%d)"
msgstr "неуÑпешно приключване на „deflate“ върху „%s“: %d"
-#: sha1-file.c:1841
+#: sha1-file.c:1837
#, c-format
msgid "confused by unstable object source data for %s"
msgstr "грешка поради неÑÑ‚Ð°Ð±Ð¸Ð»Ð½Ð¸Ñ Ð¸Ð·Ñ‚Ð¾Ñ‡Ð½Ð¸Ðº данни за обектите „%s“"
-#: sha1-file.c:1851 builtin/pack-objects.c:925
+#: sha1-file.c:1847 builtin/pack-objects.c:925
#, c-format
msgid "failed utime() on %s"
msgstr "неуÑпешно задаване на време на доÑтъп/Ñъздаване чрез „utime“ на „%s“"
-#: sha1-file.c:1926
+#: sha1-file.c:1922
#, c-format
msgid "cannot read object for %s"
msgstr "обектът за „%s“ не може да Ñе прочете"
-#: sha1-file.c:1966
+#: sha1-file.c:1962
msgid "corrupt commit"
msgstr "повредено подаване"
-#: sha1-file.c:1974
+#: sha1-file.c:1970
msgid "corrupt tag"
msgstr "повреден етикет"
-#: sha1-file.c:2073
+#: sha1-file.c:2069
#, c-format
msgid "read error while indexing %s"
msgstr "грешка при четене по време на индекÑиране на „%s“"
-#: sha1-file.c:2076
+#: sha1-file.c:2072
#, c-format
msgid "short read while indexing %s"
msgstr "непълно прочитане по време на индекÑиране на „%s“"
-#: sha1-file.c:2149 sha1-file.c:2158
+#: sha1-file.c:2145 sha1-file.c:2154
#, c-format
msgid "%s: failed to insert into database"
msgstr "„%s“ не може да Ñе вмъкне в базата от данни"
-#: sha1-file.c:2164
+#: sha1-file.c:2160
#, c-format
msgid "%s: unsupported file type"
msgstr "неподдържан вид файл: „%s“"
-#: sha1-file.c:2188
+#: sha1-file.c:2184
#, c-format
msgid "%s is not a valid object"
msgstr "„%s“ е неправилен обект"
-#: sha1-file.c:2190
+#: sha1-file.c:2186
#, c-format
msgid "%s is not a valid '%s' object"
msgstr "„%s“ е неправилен обект от вид „%s“"
-#: sha1-file.c:2217 builtin/index-pack.c:155
+#: sha1-file.c:2213 builtin/index-pack.c:155
#, c-format
msgid "unable to open %s"
msgstr "обектът „%s“ не може да бъде отворен"
-#: sha1-file.c:2407 sha1-file.c:2459
+#: sha1-file.c:2403 sha1-file.c:2455
#, c-format
msgid "hash mismatch for %s (expected %s)"
msgstr "неправилна контролна Ñума за „%s“ (Ñ‚Ñ€Ñбва да е %s)"
-#: sha1-file.c:2431
+#: sha1-file.c:2427
#, c-format
msgid "unable to mmap %s"
msgstr "неуÑпешно изпълнение на „mmap“ върху „%s“"
-#: sha1-file.c:2436
+#: sha1-file.c:2432
#, c-format
msgid "unable to unpack header of %s"
msgstr "заглавната чаÑÑ‚ на „%s“ не може да бъде разпакетирана"
-#: sha1-file.c:2442
+#: sha1-file.c:2438
#, c-format
msgid "unable to parse header of %s"
msgstr "заглавната чаÑÑ‚ на „%s“ не може да бъде анализирана"
-#: sha1-file.c:2453
+#: sha1-file.c:2449
#, c-format
msgid "unable to unpack contents of %s"
msgstr "Ñъдържанието на „%s“ не може да бъде разпакетирано"
-#: sha1-name.c:490
+#: sha1-name.c:487
#, c-format
msgid "short SHA1 %s is ambiguous"
msgstr "къÑиÑÑ‚ SHA1 „%s“ не е еднозначен"
-#: sha1-name.c:501
+#: sha1-name.c:498
msgid "The candidates are:"
msgstr "ВъзможноÑтите Ñа:"
-#: sha1-name.c:800
+#: sha1-name.c:797
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"
@@ -7376,43 +7402,43 @@ msgstr ""
" git config advice.objectNameWarning false"
#. TRANSLATORS: IEC 80000-13:2008 gibibyte
-#: strbuf.c:821
+#: strbuf.c:822
#, c-format
msgid "%u.%2.2u GiB"
msgstr "%u.%2.2u GiB"
#. TRANSLATORS: IEC 80000-13:2008 gibibyte/second
-#: strbuf.c:823
+#: strbuf.c:824
#, c-format
msgid "%u.%2.2u GiB/s"
msgstr "%u.%2.2u GiB/s"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte
-#: strbuf.c:831
+#: strbuf.c:832
#, c-format
msgid "%u.%2.2u MiB"
msgstr "%u.%2.2u MiB"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte/second
-#: strbuf.c:833
+#: strbuf.c:834
#, c-format
msgid "%u.%2.2u MiB/s"
msgstr "%u.%2.2u MiB/s"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte
-#: strbuf.c:840
+#: strbuf.c:841
#, c-format
msgid "%u.%2.2u KiB"
msgstr "%u.%2.2u KiB"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte/second
-#: strbuf.c:842
+#: strbuf.c:843
#, c-format
msgid "%u.%2.2u KiB/s"
msgstr "%u.%2.2u KiB/s"
#. TRANSLATORS: IEC 80000-13:2008 byte
-#: strbuf.c:848
+#: strbuf.c:849
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -7420,7 +7446,7 @@ msgstr[0] "%u байт"
msgstr[1] "%u байта"
#. TRANSLATORS: IEC 80000-13:2008 byte/second
-#: strbuf.c:850
+#: strbuf.c:851
#, c-format
msgid "%u byte/s"
msgid_plural "%u bytes/s"
@@ -7539,28 +7565,28 @@ msgstr "„ls-stat“ не може да Ñе Ñтартира в „..“"
msgid "ls-tree returned unexpected return code %d"
msgstr "„ls-tree“ завърши Ñ Ð½ÐµÐ¾Ñ‡Ð°ÐºÐ²Ð°Ð½ изходен код: %d"
-#: submodule-config.c:232
+#: submodule-config.c:236
#, c-format
msgid "ignoring suspicious submodule name: %s"
msgstr "игнориране на подозрително име на подмодул: „%s“"
-#: submodule-config.c:299
+#: submodule-config.c:303
msgid "negative values not allowed for submodule.fetchjobs"
msgstr "наÑтройката „submodule.fetchjobs“ не приема отрицателни ÑтойноÑти"
-#: submodule-config.c:397
+#: submodule-config.c:401
#, c-format
msgid "ignoring '%s' which may be interpreted as a command-line option: %s"
msgstr ""
"„%s“ Ñе преÑкача, защото е възможно да Ñе тълкува като Ð¾Ð¿Ñ†Ð¸Ñ Ð·Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¸Ñ "
"ред: %s"
-#: submodule-config.c:486
+#: submodule-config.c:490
#, c-format
msgid "invalid value for %s"
msgstr "Ðеправилна ÑтойноÑÑ‚ за „%s“"
-#: submodule-config.c:755
+#: submodule-config.c:761
#, c-format
msgid "Could not update .gitmodules entry %s"
msgstr "ЗапиÑÑŠÑ‚ „%s“ във файла „.gitmodules“ не може да бъде променен"
@@ -7595,7 +7621,7 @@ msgstr "входниÑÑ‚ файл „%s“ не може да бъде прочÐ
msgid "could not read from stdin"
msgstr "от ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð²Ñ…Ð¾Ð´ не може да Ñе чете"
-#: trailer.c:1011 wrapper.c:701
+#: trailer.c:1011 wrapper.c:665
#, c-format
msgid "could not stat %s"
msgstr "Ðе може да Ñе получи Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ñ‡Ñ€ÐµÐ· „stat“ за „%s“"
@@ -7624,48 +7650,48 @@ msgstr "временниÑÑ‚ файл не може да Ñе преименув
msgid "Would set upstream of '%s' to '%s' of '%s'\n"
msgstr "Клонът „%s“ ще Ñледи „%s“ от „%s“\n"
-#: transport.c:142
+#: transport.c:145
#, c-format
msgid "could not read bundle '%s'"
msgstr "пратката на git „%s“ не може да бъде прочетена"
-#: transport.c:208
+#: transport.c:214
#, c-format
msgid "transport: invalid depth option '%s'"
msgstr "transport: неправилна Ð¾Ð¿Ñ†Ð¸Ñ Ð·Ð° дълбочина: %s"
-#: transport.c:259
+#: transport.c:266
msgid "see protocol.version in 'git help config' for more details"
msgstr ""
"За повече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð²Ð¸Ð¶Ñ‚Ðµ раздела „protocol.version“ в „git help config“"
-#: transport.c:260
+#: transport.c:267
msgid "server options require protocol version 2 or later"
msgstr "опциите на Ñървъра изиÑкват поне верÑÐ¸Ñ 2 на протокола"
-#: transport.c:625
+#: transport.c:632
msgid "could not parse transport.color.* config"
msgstr "ÑтойноÑтта на наÑтройката „transport.color.*“ не може да Ñе разпознае"
-#: transport.c:698
+#: transport.c:705
msgid "support for protocol v2 not implemented yet"
msgstr "протокол верÑÐ¸Ñ 2 вÑе още не Ñе поддържа"
-#: transport.c:825
+#: transport.c:831
#, c-format
msgid "unknown value for config '%s': %s"
msgstr "непозната ÑтойноÑÑ‚ за наÑтройката „%s“: „%s“"
-#: transport.c:891
+#: transport.c:897
#, c-format
msgid "transport '%s' not allowed"
msgstr "преноÑÑŠÑ‚ по „%s“ не е позволен"
-#: transport.c:945
+#: transport.c:949
msgid "git-over-rsync is no longer supported"
msgstr "командата „git-over-rsync“ вече не Ñе поддържа"
-#: transport.c:1040
+#: transport.c:1044
#, c-format
msgid ""
"The following submodule paths contain changes that can\n"
@@ -7674,7 +7700,7 @@ msgstr ""
"Следните пътища за подмодули Ñъдържат промени,\n"
"които липÑват от вÑички отдалечени хранилища:\n"
-#: transport.c:1044
+#: transport.c:1048
#, c-format
msgid ""
"\n"
@@ -7699,34 +7725,34 @@ msgstr ""
" git push\n"
"\n"
-#: transport.c:1052
+#: transport.c:1056
msgid "Aborting."
msgstr "ПреуÑтановÑване на дейÑтвието."
-#: transport.c:1193
+#: transport.c:1201
msgid "failed to push all needed submodules"
msgstr "неуÑпешно изтлаÑкване на вÑички необходими подмодули"
-#: transport.c:1340 transport-helper.c:645
+#: transport.c:1345 transport-helper.c:655
msgid "operation not supported by protocol"
msgstr "опциÑта не Ñе поддържа от протокола"
-#: transport-helper.c:51 transport-helper.c:80
+#: transport-helper.c:61 transport-helper.c:90
msgid "full write to remote helper failed"
msgstr "неуÑпешен пълен Ð·Ð°Ð¿Ð¸Ñ ÐºÑŠÐ¼ наÑрещната помощна програма"
-#: transport-helper.c:134
+#: transport-helper.c:144
#, c-format
msgid "unable to find remote helper for '%s'"
msgstr "наÑрещната помощна програма за „%s“ не може да бъде открита"
-#: transport-helper.c:150 transport-helper.c:559
+#: transport-helper.c:160 transport-helper.c:569
msgid "can't dup helper output fd"
msgstr ""
"файловиÑÑ‚ деÑкриптор от наÑрещната помощна програма не може да Ñе дублира Ñ "
"„dup“"
-#: transport-helper.c:201
+#: transport-helper.c:211
#, c-format
msgid ""
"unknown mandatory capability %s; this remote helper probably needs newer "
@@ -7735,106 +7761,111 @@ msgstr ""
"непозната задължителна ÑпоÑобноÑÑ‚ „%s“. ÐаÑрещната помощна програма "
"вероÑтно изиÑква нова верÑÐ¸Ñ Ð½Ð° Git"
-#: transport-helper.c:207
+#: transport-helper.c:217
msgid "this remote helper should implement refspec capability"
msgstr ""
"наÑрещната помощна програма Ñ‚Ñ€Ñбва да поддържа ÑпоÑобноÑÑ‚ за изброÑване на "
"указатели"
-#: transport-helper.c:274 transport-helper.c:414
+#: transport-helper.c:284 transport-helper.c:424
#, c-format
msgid "%s unexpectedly said: '%s'"
msgstr "„%s“ неочаквано върна: „%s“"
-#: transport-helper.c:403
+#: transport-helper.c:413
#, c-format
msgid "%s also locked %s"
msgstr "„%s“ заключи и „%s“"
-#: transport-helper.c:481
+#: transport-helper.c:491
msgid "couldn't run fast-import"
msgstr "неуÑпешно изпълнение на бързо внаÑÑне"
-#: transport-helper.c:504
+#: transport-helper.c:514
msgid "error while running fast-import"
msgstr "грешка при изпълнението на бързо внаÑÑне"
-#: transport-helper.c:533 transport-helper.c:1105
+#: transport-helper.c:543 transport-helper.c:1132
#, c-format
msgid "could not read ref %s"
msgstr "указателÑÑ‚ „%s“ не може да Ñе прочете"
-#: transport-helper.c:578
+#: transport-helper.c:588
#, c-format
msgid "unknown response to connect: %s"
msgstr "неочакван отговор при Ñвързване: „%s“"
-#: transport-helper.c:600
+#: transport-helper.c:610
msgid "setting remote service path not supported by protocol"
msgstr "протоколът не поддържа задаването на път на отдалечената уÑлуга"
-#: transport-helper.c:602
+#: transport-helper.c:612
msgid "invalid remote service path"
msgstr "неправилен път на отдалечената уÑлуга"
-#: transport-helper.c:648
+#: transport-helper.c:658
#, c-format
msgid "can't connect to subservice %s"
msgstr "неуÑпешно Ñвързване към подуÑлугата „%s“"
-#: transport-helper.c:720
+#: transport-helper.c:734
#, c-format
msgid "expected ok/error, helper said '%s'"
msgstr ""
"очаква Ñе или уÑпех, или грешка, но наÑрещната помощна програма върна „%s“"
-#: transport-helper.c:773
+#: transport-helper.c:787
#, c-format
msgid "helper reported unexpected status of %s"
msgstr "наÑрещната помощна програма завърши Ñ Ð½ÐµÐ¾Ñ‡Ð°ÐºÐ²Ð°Ð½ изходен код: „%s“"
-#: transport-helper.c:834
+#: transport-helper.c:848
#, c-format
msgid "helper %s does not support dry-run"
msgstr "наÑрещната помощна програма „%s“ не поддържа проби „dry-run“"
-#: transport-helper.c:837
+#: transport-helper.c:851
#, c-format
msgid "helper %s does not support --signed"
msgstr "наÑрещната помощна програма „%s“ не поддържа опциÑта „--signed“"
-#: transport-helper.c:840
+#: transport-helper.c:854
#, c-format
msgid "helper %s does not support --signed=if-asked"
msgstr ""
"наÑрещната помощна програма „%s“ не поддържа опциÑта „--signed=if-asked“"
-#: transport-helper.c:847
+#: transport-helper.c:859
+#, c-format
+msgid "helper %s does not support --atomic"
+msgstr "наÑрещната помощна програма „%s“ не поддържа опциÑта „--atomic“"
+
+#: transport-helper.c:865
#, c-format
msgid "helper %s does not support 'push-option'"
msgstr "наÑрещната помощна програма „%s“ не поддържа опции за изтлаÑкване"
-#: transport-helper.c:945
+#: transport-helper.c:963
msgid "remote-helper doesn't support push; refspec needed"
msgstr ""
"наÑрещната помощна програма не поддържа изтлаÑкване. Ðеобходимо е "
"изброÑване на указателите"
-#: transport-helper.c:950
+#: transport-helper.c:968
#, c-format
msgid "helper %s does not support 'force'"
msgstr ""
"наÑрещната помощна програма не поддържа „%s“ поддържа опциÑта „--force“"
-#: transport-helper.c:997
+#: transport-helper.c:1015
msgid "couldn't run fast-export"
msgstr "не може да Ñе извърши бързо изнаÑÑне"
-#: transport-helper.c:1002
+#: transport-helper.c:1020
msgid "error while running fast-export"
msgstr "грешка при изпълнението на командата за бързо изнаÑÑне"
-#: transport-helper.c:1027
+#: transport-helper.c:1045
#, c-format
msgid ""
"No refs in common and none specified; doing nothing.\n"
@@ -7843,47 +7874,47 @@ msgstr ""
"ÐÑма общи указатели, не Ñа указани никакви указатели — нищо нÑма да бъде\n"
"направено. Пробвайте да укажете клон, напр. “master“.\n"
-#: transport-helper.c:1091
+#: transport-helper.c:1118
#, c-format
msgid "malformed response in ref list: %s"
msgstr "неправилен отговор в ÑпиÑъка Ñ ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ð¸: „%s“"
-#: transport-helper.c:1244
+#: transport-helper.c:1270
#, c-format
msgid "read(%s) failed"
msgstr "неуÑпешно четене на „%s“"
-#: transport-helper.c:1271
+#: transport-helper.c:1297
#, c-format
msgid "write(%s) failed"
msgstr "неуÑпешен Ð·Ð°Ð¿Ð¸Ñ Ð² „%s“"
-#: transport-helper.c:1320
+#: transport-helper.c:1346
#, c-format
msgid "%s thread failed"
msgstr "неуÑпешно изпълнение на нишката „%s“"
-#: transport-helper.c:1324
+#: transport-helper.c:1350
#, c-format
msgid "%s thread failed to join: %s"
msgstr "завършването на нишката „%s“ не може да Ñе изчака: „%s“"
-#: transport-helper.c:1343 transport-helper.c:1347
+#: transport-helper.c:1369 transport-helper.c:1373
#, c-format
msgid "can't start thread for copying data: %s"
msgstr "неуÑпешно Ñтартиране на нишка за копиране на данните: „%s“"
-#: transport-helper.c:1384
+#: transport-helper.c:1410
#, c-format
msgid "%s process failed to wait"
msgstr "процеÑÑŠÑ‚ на „%s“ не уÑÐ¿Ñ Ð´Ð° изчака чрез „waitpid“"
-#: transport-helper.c:1388
+#: transport-helper.c:1414
#, c-format
msgid "%s process failed"
msgstr "неуÑпешно изпълнение на „%s“"
-#: transport-helper.c:1406 transport-helper.c:1415
+#: transport-helper.c:1432 transport-helper.c:1441
msgid "can't start thread for copying data"
msgstr "неуÑпешно Ñтартиране на нишка за копиране на данните"
@@ -7903,7 +7934,7 @@ msgstr "празно име на файл в Ð·Ð°Ð¿Ð¸Ñ Ð² дърво"
msgid "too-short tree file"
msgstr "прекалено кратък файл-дърво"
-#: unpack-trees.c:111
+#: unpack-trees.c:110
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by checkout:\n"
@@ -7912,7 +7943,7 @@ msgstr ""
"ИзтеглÑнето ще презапише локалните промени на тези файлове:\n"
"%%sПодайте или Ñкатайте промените, за да преминете към нов клон."
-#: unpack-trees.c:113
+#: unpack-trees.c:112
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by checkout:\n"
@@ -7921,7 +7952,7 @@ msgstr ""
"ИзтеглÑнето ще презапише локалните промени на тези файлове:\n"
"%%s"
-#: unpack-trees.c:116
+#: unpack-trees.c:115
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by merge:\n"
@@ -7930,7 +7961,7 @@ msgstr ""
"Сливането ще презапише локалните промени на тези файлове:\n"
"%%sПодайте или Ñкатайте промените, за да Ñлеете."
-#: unpack-trees.c:118
+#: unpack-trees.c:117
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by merge:\n"
@@ -7939,7 +7970,7 @@ msgstr ""
"Сливането ще презапише локалните промени на тези файлове:\n"
"%%s"
-#: unpack-trees.c:121
+#: unpack-trees.c:120
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by %s:\n"
@@ -7948,7 +7979,7 @@ msgstr ""
"„%s“ ще презапише локалните промени на тези файлове:\n"
"%%sПодайте или Ñкатайте промените, за да извършите „%s“."
-#: unpack-trees.c:123
+#: unpack-trees.c:122
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by %s:\n"
@@ -7957,7 +7988,7 @@ msgstr ""
"„%s“ ще презапише локалните промени на тези файлове:\n"
"%%s"
-#: unpack-trees.c:128
+#: unpack-trees.c:127
#, c-format
msgid ""
"Updating the following directories would lose untracked files in them:\n"
@@ -7966,7 +7997,7 @@ msgstr ""
"ОбновÑването на Ñледните директории ще изтрие неÑледените файлове в Ñ‚ÑÑ…:\n"
"%s"
-#: unpack-trees.c:132
+#: unpack-trees.c:131
#, c-format
msgid ""
"The following untracked working tree files would be removed by checkout:\n"
@@ -7975,7 +8006,7 @@ msgstr ""
"ИзтеглÑнето ще изтрие тези неÑледени файлове в работното дърво:\n"
"%%sПремеÑтете ги или ги изтрийте, за да преминете на друг клон."
-#: unpack-trees.c:134
+#: unpack-trees.c:133
#, c-format
msgid ""
"The following untracked working tree files would be removed by checkout:\n"
@@ -7984,7 +8015,7 @@ msgstr ""
"ИзтеглÑнето ще изтрие тези неÑледени файлове в работното дърво:\n"
"%%s"
-#: unpack-trees.c:137
+#: unpack-trees.c:136
#, c-format
msgid ""
"The following untracked working tree files would be removed by merge:\n"
@@ -7993,7 +8024,7 @@ msgstr ""
"Сливането ще изтрие тези неÑледени файлове в работното дърво:\n"
"%%sПремеÑтете ги или ги изтрийте, за да Ñлеете."
-#: unpack-trees.c:139
+#: unpack-trees.c:138
#, c-format
msgid ""
"The following untracked working tree files would be removed by merge:\n"
@@ -8002,7 +8033,7 @@ msgstr ""
"Сливането ще изтрие тези неÑледени файлове в работното дърво:\n"
"%%s"
-#: unpack-trees.c:142
+#: unpack-trees.c:141
#, c-format
msgid ""
"The following untracked working tree files would be removed by %s:\n"
@@ -8011,7 +8042,7 @@ msgstr ""
"„%s“ ще изтрие тези неÑледени файлове в работното дърво:\n"
"%%sПремеÑтете ги или ги изтрийте, за да извършите „%s“."
-#: unpack-trees.c:144
+#: unpack-trees.c:143
#, c-format
msgid ""
"The following untracked working tree files would be removed by %s:\n"
@@ -8020,7 +8051,7 @@ msgstr ""
"„%s“ ще изтрие тези неÑледени файлове в работното дърво:\n"
"%%s"
-#: unpack-trees.c:150
+#: unpack-trees.c:149
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by "
@@ -8030,7 +8061,7 @@ msgstr ""
"ИзтеглÑнето ще презапише тези неÑледени файлове в работното дърво:\n"
"%%sПремеÑтете ги или ги изтрийте, за да Ñмените клон."
-#: unpack-trees.c:152
+#: unpack-trees.c:151
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by "
@@ -8040,7 +8071,7 @@ msgstr ""
"ИзтеглÑнето ще презапише тези неÑледени файлове в работното дърво:\n"
"%%s"
-#: unpack-trees.c:155
+#: unpack-trees.c:154
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by merge:\n"
@@ -8049,7 +8080,7 @@ msgstr ""
"Сливането ще презапише тези неÑледени файлове в работното дърво:\n"
"%%sПремеÑтете ги или ги изтрийте, за да Ñлеете."
-#: unpack-trees.c:157
+#: unpack-trees.c:156
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by merge:\n"
@@ -8058,7 +8089,7 @@ msgstr ""
"Сливането ще презапише тези неÑледени файлове в работното дърво:\n"
"%%s"
-#: unpack-trees.c:160
+#: unpack-trees.c:159
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by %s:\n"
@@ -8067,7 +8098,7 @@ msgstr ""
"„%s“ ще презапише тези неÑледени файлове в работното дърво:\n"
"%%sПремеÑтете ги или ги изтрийте, за да извършите „%s“."
-#: unpack-trees.c:162
+#: unpack-trees.c:161
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by %s:\n"
@@ -8076,12 +8107,12 @@ msgstr ""
"„%s“ ще презапише тези неÑледени файлове в работното дърво:\n"
"%%s"
-#: unpack-trees.c:170
+#: unpack-trees.c:169
#, c-format
msgid "Entry '%s' overlaps with '%s'. Cannot bind."
msgstr "ЗапиÑÑŠÑ‚ за „%s“ Ñъвпада Ñ Ñ‚Ð¾Ð·Ð¸ за „%s“. Ðе може да Ñе приÑвои."
-#: unpack-trees.c:173
+#: unpack-trees.c:172
#, c-format
msgid ""
"Cannot update sparse checkout: the following entries are not up to date:\n"
@@ -8091,7 +8122,7 @@ msgstr ""
"актуални:\n"
"%s"
-#: unpack-trees.c:175
+#: unpack-trees.c:174
#, c-format
msgid ""
"The following working tree files would be overwritten by sparse checkout "
@@ -8102,7 +8133,7 @@ msgstr ""
"дърво:\n"
"%s"
-#: unpack-trees.c:177
+#: unpack-trees.c:176
#, c-format
msgid ""
"The following working tree files would be removed by sparse checkout "
@@ -8113,7 +8144,7 @@ msgstr ""
"дърво:\n"
"%s"
-#: unpack-trees.c:179
+#: unpack-trees.c:178
#, c-format
msgid ""
"Cannot update submodule:\n"
@@ -8122,16 +8153,16 @@ msgstr ""
"Подмодулът не може да бъде обновен:\n"
"„%s“"
-#: unpack-trees.c:256
+#: unpack-trees.c:255
#, c-format
msgid "Aborting\n"
msgstr "ПреуÑтановÑване на дейÑтвието\n"
-#: unpack-trees.c:318
+#: unpack-trees.c:317
msgid "Updating files"
msgstr "ОбновÑване на файлове"
-#: unpack-trees.c:350
+#: unpack-trees.c:349
msgid ""
"the following paths have collided (e.g. case-sensitive paths\n"
"on a case-insensitive filesystem) and only one from the same\n"
@@ -8170,7 +8201,7 @@ msgstr "неправилен номер на порт"
msgid "invalid '..' path segment"
msgstr "неправилна чаÑÑ‚ от Ð¿ÑŠÑ‚Ñ â€ž..“"
-#: worktree.c:258 builtin/am.c:2095
+#: worktree.c:258 builtin/am.c:2084
#, c-format
msgid "failed to read '%s'"
msgstr "„%s“ не може да бъде прочетен"
@@ -8201,17 +8232,17 @@ msgstr "„%s“ не е файл на .git, код за грешка: %d"
msgid "'%s' does not point back to '%s'"
msgstr "„%s“ не Ñочи към обратно към „%s“"
-#: wrapper.c:223 wrapper.c:393
+#: wrapper.c:186 wrapper.c:356
#, c-format
msgid "could not open '%s' for reading and writing"
msgstr "„%s“ не може да бъде отворен и за четене, и за запиÑ"
-#: wrapper.c:424 wrapper.c:624
+#: wrapper.c:387 wrapper.c:588
#, c-format
msgid "unable to access '%s'"
msgstr "нÑма доÑтъп до „%s“"
-#: wrapper.c:632
+#: wrapper.c:596
msgid "unable to get current working directory"
msgstr "текущата работна Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ðµ недоÑтъпна"
@@ -8558,86 +8589,94 @@ msgstr ""
" (вÑички конфликти Ñа коригирани, изпълнете „git cherry-pick --continue“)"
#: wt-status.c:1437
+msgid " (use \"git cherry-pick --skip\" to skip this patch)"
+msgstr " (използвайте „git cherry-pick --skip“, за да пропуÑнете тази кръпка)"
+
+#: wt-status.c:1439
msgid " (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)"
msgstr ""
" (използвайте „git cherry-pick --abort“, за да отмените вÑички дейÑÑ‚Ð²Ð¸Ñ Ñ "
"отбиране)"
-#: wt-status.c:1447
+#: wt-status.c:1449
msgid "Revert currently in progress."
msgstr "Ð’ момента тече отмÑна на подаване."
-#: wt-status.c:1450
+#: wt-status.c:1452
#, c-format
msgid "You are currently reverting commit %s."
msgstr "Ð’ момента отменÑте подаване „%s“."
-#: wt-status.c:1456
+#: wt-status.c:1458
msgid " (fix conflicts and run \"git revert --continue\")"
msgstr " (коригирайте конфликтите и изпълнете „git revert --continue“)"
-#: wt-status.c:1459
+#: wt-status.c:1461
msgid " (run \"git revert --continue\" to continue)"
msgstr " (за да продължите, изпълнете „git revert --continue“)"
-#: wt-status.c:1462
+#: wt-status.c:1464
msgid " (all conflicts fixed: run \"git revert --continue\")"
msgstr " (вÑички конфликти Ñа коригирани, изпълнете „git revert --continue“)"
-#: wt-status.c:1464
+#: wt-status.c:1466
+msgid " (use \"git revert --skip\" to skip this patch)"
+msgstr " (използвайте „git revert --skip“, за да пропуÑнете тази кръпка)"
+
+#: wt-status.c:1468
msgid " (use \"git revert --abort\" to cancel the revert operation)"
msgstr ""
" (използвайте „git revert --abort“, за да преуÑтановите отмÑната на "
"подаване)"
-#: wt-status.c:1474
+#: wt-status.c:1478
#, c-format
msgid "You are currently bisecting, started from branch '%s'."
msgstr "Ð’ момента Ñ‚ÑŠÑ€Ñите двоично, като Ñте Ñтартирали от клон „%s“."
-#: wt-status.c:1478
+#: wt-status.c:1482
msgid "You are currently bisecting."
msgstr "Ð’ момента Ñ‚ÑŠÑ€Ñите двоично."
-#: wt-status.c:1481
+#: wt-status.c:1485
msgid " (use \"git bisect reset\" to get back to the original branch)"
msgstr ""
" (използвайте „git bisect reset“, за да Ñе върнете към първоначалното "
"ÑÑŠÑтоÑние и клон)"
-#: wt-status.c:1690
+#: wt-status.c:1694
msgid "On branch "
msgstr "Ðа клон "
-#: wt-status.c:1697
+#: wt-status.c:1701
msgid "interactive rebase in progress; onto "
msgstr "извършвате интерактивно пребазиране върху "
-#: wt-status.c:1699
+#: wt-status.c:1703
msgid "rebase in progress; onto "
msgstr "извършвате пребазиране върху "
-#: wt-status.c:1709
+#: wt-status.c:1713
msgid "Not currently on any branch."
msgstr "Извън вÑички клони."
-#: wt-status.c:1726
+#: wt-status.c:1730
msgid "Initial commit"
msgstr "Първоначално подаване"
-#: wt-status.c:1727
+#: wt-status.c:1731
msgid "No commits yet"
msgstr "Ð’Ñе още липÑват подаваниÑ"
-#: wt-status.c:1741
+#: wt-status.c:1745
msgid "Untracked files"
msgstr "ÐеÑледени файлове"
-#: wt-status.c:1743
+#: wt-status.c:1747
msgid "Ignored files"
msgstr "Игнорирани файлове"
-#: wt-status.c:1747
+#: wt-status.c:1751
#, c-format
msgid ""
"It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
@@ -8649,32 +8688,32 @@ msgstr ""
"изпълнението, но ще Ñ‚Ñ€Ñбва да добавÑте новите файлове ръчно.\n"
"За повече подробноÑти погледнете „git status help“."
-#: wt-status.c:1753
+#: wt-status.c:1757
#, c-format
msgid "Untracked files not listed%s"
msgstr "ÐеÑледените файлове не Ñа изведени%s"
-#: wt-status.c:1755
+#: wt-status.c:1759
msgid " (use -u option to show untracked files)"
msgstr " (използвайте опциÑта „-u“, за да изведете неÑледените файлове)"
-#: wt-status.c:1761
+#: wt-status.c:1765
msgid "No changes"
msgstr "ÐÑма промени"
-#: wt-status.c:1766
+#: wt-status.c:1770
#, 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:1769
+#: wt-status.c:1773
#, c-format
msgid "no changes added to commit\n"
msgstr "към индекÑа за подаване не Ñа добавени промени\n"
-#: wt-status.c:1772
+#: wt-status.c:1776
#, c-format
msgid ""
"nothing added to commit but untracked files present (use \"git add\" to "
@@ -8683,71 +8722,71 @@ msgstr ""
"към индекÑа за подаване не Ñа добавени промени, но има нови файлове "
"(използвайте „git add“, за да започне Ñ‚Ñхното Ñледене)\n"
-#: wt-status.c:1775
+#: wt-status.c:1779
#, c-format
msgid "nothing added to commit but untracked files present\n"
msgstr "към индекÑа за подаване не Ñа добавени промени, но има нови файлове\n"
-#: wt-status.c:1778
+#: wt-status.c:1782
#, c-format
msgid "nothing to commit (create/copy files and use \"git add\" to track)\n"
msgstr ""
"липÑват каквито и да е промени (Ñъздайте или копирайте файлове и използвайте "
"„git add“, за да започне Ñ‚Ñхното Ñледене)\n"
-#: wt-status.c:1781 wt-status.c:1786
+#: wt-status.c:1785 wt-status.c:1790
#, c-format
msgid "nothing to commit\n"
msgstr "липÑват каквито и да е промени\n"
-#: wt-status.c:1784
+#: wt-status.c:1788
#, c-format
msgid "nothing to commit (use -u to show untracked files)\n"
msgstr ""
"липÑват каквито и да е промени (използвайте опциÑта „-u“, за да Ñе изведат и "
"неÑледените файлове)\n"
-#: wt-status.c:1788
+#: wt-status.c:1792
#, c-format
msgid "nothing to commit, working tree clean\n"
msgstr "липÑват каквито и да е промени, работното дърво е чиÑто\n"
-#: wt-status.c:1901
+#: wt-status.c:1905
msgid "No commits yet on "
msgstr "Ð’Ñе още липÑват Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ Ð² "
-#: wt-status.c:1905
+#: wt-status.c:1909
msgid "HEAD (no branch)"
msgstr "HEAD (извън клон)"
-#: wt-status.c:1936
+#: wt-status.c:1940
msgid "different"
msgstr "различен"
-#: wt-status.c:1938 wt-status.c:1946
+#: wt-status.c:1942 wt-status.c:1950
msgid "behind "
msgstr "назад Ñ "
-#: wt-status.c:1941 wt-status.c:1944
+#: wt-status.c:1945 wt-status.c:1948
msgid "ahead "
msgstr "напред Ñ "
#. TRANSLATORS: the action is e.g. "pull with rebase"
-#: wt-status.c:2466
+#: wt-status.c:2470
#, c-format
msgid "cannot %s: You have unstaged changes."
msgstr "не може да извършите „%s“, защото има промени, които не Ñа в индекÑа."
-#: wt-status.c:2472
+#: wt-status.c:2476
msgid "additionally, your index contains uncommitted changes."
msgstr "оÑвен това в индекÑа има неподадени промени."
-#: wt-status.c:2474
+#: wt-status.c:2478
#, c-format
msgid "cannot %s: Your index contains uncommitted changes."
msgstr "не може да извършите „%s“, защото в индекÑа има неподадени промени."
-#: compat/precompose_utf8.c:58 builtin/clone.c:453
+#: compat/precompose_utf8.c:58 builtin/clone.c:452
#, c-format
msgid "failed to unlink '%s'"
msgstr "неуÑпешно изтриване на „%s“"
@@ -8774,7 +8813,7 @@ msgstr "изтриване на „%s“\n"
msgid "Unstaged changes after refreshing the index:"
msgstr "Промени, които и Ñлед обновÑването на индекÑа не Ñа добавени към него:"
-#: builtin/add.c:234 builtin/rev-parse.c:896
+#: builtin/add.c:234 builtin/rev-parse.c:897
msgid "Could not read the index"
msgstr "ИндекÑÑŠÑ‚ не може да бъде прочетен"
@@ -8810,8 +8849,8 @@ msgid "The following paths are ignored by one of your .gitignore files:\n"
msgstr ""
"Следните пътища ще бъдат игнорирани Ñпоред нÑкой от файловете „.gitignore“:\n"
-#: builtin/add.c:290 builtin/clean.c:909 builtin/fetch.c:147 builtin/mv.c:124
-#: builtin/prune-packed.c:56 builtin/pull.c:222 builtin/push.c:560
+#: builtin/add.c:290 builtin/clean.c:910 builtin/fetch.c:162 builtin/mv.c:124
+#: builtin/prune-packed.c:56 builtin/pull.c:223 builtin/push.c:547
#: builtin/remote.c:1345 builtin/rm.c:241 builtin/send-pack.c:165
msgid "dry run"
msgstr "пробно изпълнение"
@@ -8869,7 +8908,7 @@ msgstr ""
"проверка, че при пробно изпълнение вÑички файлове, дори и изтритите, Ñе "
"игнорират"
-#: builtin/add.c:309 builtin/update-index.c:1001
+#: builtin/add.c:309 builtin/update-index.c:1002
msgid "override the executable bit of the listed files"
msgstr "изрично задаване на ÑтойноÑтта на флага дали файлът е изпълним"
@@ -8945,114 +8984,110 @@ msgstr "Ðищо не е зададено и нищо не е добавено.\
msgid "Maybe you wanted to say 'git add .'?\n"
msgstr "ВероÑтно иÑкахте да използвате „git add .“?\n"
-#: builtin/am.c:348
+#: builtin/am.c:347
msgid "could not parse author script"
msgstr "Ñкриптът за автор не може да Ñе анализира"
-#: builtin/am.c:432
+#: builtin/am.c:431
#, c-format
msgid "'%s' was deleted by the applypatch-msg hook"
msgstr "„%s“ бе изтрит от куката „applypatch-msg“"
-#: builtin/am.c:474
+#: builtin/am.c:473
#, c-format
msgid "Malformed input line: '%s'."
msgstr "ДадениÑÑ‚ входен ред е Ñ Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÐµÐ½ формат: „%s“."
-#: builtin/am.c:512
+#: builtin/am.c:511
#, c-format
msgid "Failed to copy notes from '%s' to '%s'"
msgstr "Бележката не може да Ñе копира от „%s“ към „%s“"
-#: builtin/am.c:538
+#: builtin/am.c:537
msgid "fseek failed"
msgstr "неуÑпешно изпълнение на „fseek“"
-#: builtin/am.c:726
+#: builtin/am.c:725
#, c-format
msgid "could not parse patch '%s'"
msgstr "кръпката „%s“ не може да Ñе анализира"
-#: builtin/am.c:791
+#: builtin/am.c:790
msgid "Only one StGIT patch series can be applied at once"
msgstr ""
"Само една поредица от кръпки от „StGIT“ може да бъде прилагана в даден момент"
-#: builtin/am.c:839
+#: builtin/am.c:838
msgid "invalid timestamp"
msgstr "неправилна ÑтойноÑÑ‚ за време"
-#: builtin/am.c:844 builtin/am.c:856
+#: builtin/am.c:843 builtin/am.c:855
msgid "invalid Date line"
msgstr "неправилен ред за дата „Date“"
-#: builtin/am.c:851
+#: builtin/am.c:850
msgid "invalid timezone offset"
msgstr "неправилно отмеÑтване на чаÑÐ¾Ð²Ð¸Ñ Ð¿Ð¾ÑÑ"
-#: builtin/am.c:944
+#: builtin/am.c:943
msgid "Patch format detection failed."
msgstr "Форматът на кръпката не може да бъде определен."
-#: builtin/am.c:949 builtin/clone.c:407
+#: builtin/am.c:948 builtin/clone.c:406
#, c-format
msgid "failed to create directory '%s'"
msgstr "директориÑта „%s“ не може да бъде Ñъздадена"
-#: builtin/am.c:954
+#: builtin/am.c:953
msgid "Failed to split patches."
msgstr "Кръпките не могат да бъдат разделени."
-#: builtin/am.c:1084 builtin/commit.c:374
-msgid "unable to write index file"
-msgstr "индекÑÑŠÑ‚ не може да бъде запиÑан"
-
-#: builtin/am.c:1098
+#: builtin/am.c:1084
#, c-format
msgid "When you have resolved this problem, run \"%s --continue\"."
msgstr "След коригирането на този проблем изпълнете „%s --continue“."
-#: builtin/am.c:1099
+#: builtin/am.c:1085
#, c-format
msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
msgstr "Ðко предпочитате да преÑкочите тази кръпка, изпълнете „%s --skip“."
-#: builtin/am.c:1100
+#: builtin/am.c:1086
#, c-format
msgid "To restore the original branch and stop patching, run \"%s --abort\"."
msgstr "За да Ñе върнете към първоначалното ÑÑŠÑтоÑние, изпълнете „%s --abort“."
-#: builtin/am.c:1183
+#: builtin/am.c:1169
msgid "Patch sent with format=flowed; space at the end of lines might be lost."
msgstr ""
"Кръпката е пратена Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð¸Ñ€Ð°Ð½Ðµ „format=flowed“. Празните знаци в ÐºÑ€Ð°Ñ Ð½Ð° "
"редовете може да Ñе загубÑÑ‚."
-#: builtin/am.c:1211
+#: builtin/am.c:1197
msgid "Patch is empty."
msgstr "Кръпката е празна."
-#: builtin/am.c:1277
+#: builtin/am.c:1262
#, c-format
-msgid "invalid ident line: %.*s"
-msgstr "грешен ред Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ‡Ð½Ð¾ÑÑ‚: %.*s"
+msgid "missing author line in commit %s"
+msgstr "липÑва ред за авторÑтво в подаването „%s“"
-#: builtin/am.c:1299
+#: builtin/am.c:1265
#, c-format
-msgid "unable to parse commit %s"
-msgstr "подаването не може да бъде анализирано: %s"
+msgid "invalid ident line: %.*s"
+msgstr "грешен ред Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ‡Ð½Ð¾ÑÑ‚: %.*s"
-#: builtin/am.c:1496
+#: builtin/am.c:1484
msgid "Repository lacks necessary blobs to fall back on 3-way merge."
msgstr ""
"Ð’ хранилището липÑват необходимите обекти-BLOB, за да Ñе премине към тройно "
"Ñливане."
-#: builtin/am.c:1498
+#: builtin/am.c:1486
msgid "Using index info to reconstruct a base tree..."
msgstr "Базовото дърво Ñе реконÑтруира от информациÑта в индекÑа…"
-#: builtin/am.c:1517
+#: builtin/am.c:1505
msgid ""
"Did you hand edit your patch?\n"
"It does not apply to blobs recorded in its index."
@@ -9060,24 +9095,24 @@ msgstr ""
"Кръпката не може да Ñе приложи към обектите-BLOB в индекÑа.\n"
"Да не би да Ñте Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð°Ð»Ð¸ на ръка?"
-#: builtin/am.c:1523
+#: builtin/am.c:1511
msgid "Falling back to patching base and 3-way merge..."
msgstr "Преминаване към прилагане на кръпка към базата и тройно Ñливане…"
-#: builtin/am.c:1549
+#: builtin/am.c:1537
msgid "Failed to merge in the changes."
msgstr "ÐеуÑпешно Ñливане на промените."
-#: builtin/am.c:1581
+#: builtin/am.c:1569
msgid "applying to an empty history"
msgstr "прилагане върху празна иÑториÑ"
-#: builtin/am.c:1628 builtin/am.c:1632
+#: builtin/am.c:1616 builtin/am.c:1620
#, c-format
msgid "cannot resume: %s does not exist."
msgstr "не може да Ñе продължи — „%s“ не ÑъщеÑтвува."
-#: builtin/am.c:1650
+#: builtin/am.c:1638
msgid "Commit Body is:"
msgstr "ТÑлото на кръпката за прилагане е:"
@@ -9085,40 +9120,44 @@ msgstr "ТÑлото на кръпката за прилагане е:"
#. in your translation. The program will only accept English
#. input at this point.
#.
-#: builtin/am.c:1660
+#: builtin/am.c:1648
#, 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:1710
+#: builtin/am.c:1695 builtin/commit.c:374
+msgid "unable to write index file"
+msgstr "индекÑÑŠÑ‚ не може да бъде запиÑан"
+
+#: builtin/am.c:1699
#, c-format
msgid "Dirty index: cannot apply patches (dirty: %s)"
msgstr ""
"ИндекÑÑŠÑ‚ не е чиÑÑ‚: кръпките не могат да бъдат приложени (замърÑени Ñа: %s)"
-#: builtin/am.c:1750 builtin/am.c:1818
+#: builtin/am.c:1739 builtin/am.c:1807
#, c-format
msgid "Applying: %.*s"
msgstr "Прилагане: %.*s"
-#: builtin/am.c:1767
+#: builtin/am.c:1756
msgid "No changes -- Patch already applied."
msgstr "Без промени — кръпката вече е приложена."
-#: builtin/am.c:1773
+#: builtin/am.c:1762
#, c-format
msgid "Patch failed at %s %.*s"
msgstr "ÐеуÑпешно прилагане на кръпка при %s %.*s“"
-#: builtin/am.c:1777
+#: builtin/am.c:1766
msgid "Use 'git am --show-current-patch' to see the failed patch"
msgstr ""
"За да видите неуÑпешно приложени кръпки, използвайте опциÑта „git am --show-"
"current-patch“ to see the failed patch"
-#: builtin/am.c:1821
+#: builtin/am.c:1810
msgid ""
"No changes - did you forget to use 'git add'?\n"
"If there is nothing left to stage, chances are that something else\n"
@@ -9128,7 +9167,7 @@ msgstr ""
"Ðко нÑма друга промÑна за включване в индекÑа, най-вероÑтно нÑÐºÐ¾Ñ Ð´Ñ€ÑƒÐ³Ð°\n"
"кръпка е довела до Ñъщите промени и в такъв Ñлучай проÑто пропуÑнете тази."
-#: builtin/am.c:1828
+#: builtin/am.c:1817
msgid ""
"You still have unmerged paths in your index.\n"
"You should 'git add' each file with resolved conflicts to mark them as "
@@ -9139,17 +9178,17 @@ msgstr ""
"След ÐºÐ¾Ñ€ÐµÐºÑ†Ð¸Ñ Ð½Ð° конфликтите изпълнете „git add“ върху поправените файлове.\n"
"За да приемете „изтрити от Ñ‚Ñх“, изпълнете „git rm“ върху изтритите файлове."
-#: builtin/am.c:1935 builtin/am.c:1939 builtin/am.c:1951 builtin/reset.c:329
+#: builtin/am.c:1924 builtin/am.c:1928 builtin/am.c:1940 builtin/reset.c:329
#: builtin/reset.c:337
#, c-format
msgid "Could not parse object '%s'."
msgstr "„%s“ не е разпознат като обект."
-#: builtin/am.c:1987
+#: builtin/am.c:1976
msgid "failed to clean index"
msgstr "индекÑÑŠÑ‚ не може да бъде изчиÑтен"
-#: builtin/am.c:2031
+#: builtin/am.c:2020
msgid ""
"You seem to have moved HEAD since the last 'am' failure.\n"
"Not rewinding to ORIG_HEAD"
@@ -9160,149 +9199,149 @@ msgstr ""
"Ñочи към\n"
"„ORIG_HEAD“"
-#: builtin/am.c:2128
+#: builtin/am.c:2117
#, c-format
msgid "Invalid value for --patch-format: %s"
msgstr "Ðеправилна ÑтойноÑÑ‚ за „--patch-format“: „%s“"
-#: builtin/am.c:2164
+#: builtin/am.c:2153
msgid "git am [<options>] [(<mbox> | <Maildir>)...]"
msgstr "git am [ОПЦИЯ…] [(ФÐЙЛ_С_ПОЩÐ|ДИРЕКТОРИЯ_С_ПОЩÐ)…]"
-#: builtin/am.c:2165
+#: builtin/am.c:2154
msgid "git am [<options>] (--continue | --skip | --abort)"
msgstr "git am [ОПЦИЯ…] (--continue | --quit | --abort)"
-#: builtin/am.c:2171
+#: builtin/am.c:2160
msgid "run interactively"
msgstr "интерактивна работа"
-#: builtin/am.c:2173
+#: builtin/am.c:2162
msgid "historical option -- no-op"
msgstr "изоÑтавена опциÑ, ÑъщеÑтвува по иÑторичеÑки причини, нищо не прави"
-#: builtin/am.c:2175
+#: builtin/am.c:2164
msgid "allow fall back on 3way merging if needed"
msgstr "да Ñе преминава към тройно Ñливане при нужда."
-#: builtin/am.c:2176 builtin/init-db.c:494 builtin/prune-packed.c:58
-#: builtin/repack.c:296 builtin/stash.c:806
+#: builtin/am.c:2165 builtin/init-db.c:494 builtin/prune-packed.c:58
+#: builtin/repack.c:297 builtin/stash.c:812
msgid "be quiet"
msgstr "без извеждане на информациÑ"
-#: builtin/am.c:2178
+#: builtin/am.c:2167
msgid "add a Signed-off-by line to the commit message"
msgstr "добавÑне на ред за Ð¿Ð¾Ð´Ð¿Ð¸Ñ â€žSigned-off-by“ в Ñъобщението за подаване"
-#: builtin/am.c:2181
+#: builtin/am.c:2170
msgid "recode into utf8 (default)"
msgstr "прекодиране в UTF-8 (Ñтандартно)"
-#: builtin/am.c:2183
+#: builtin/am.c:2172
msgid "pass -k flag to git-mailinfo"
msgstr "подаване на опциÑта „-k“ на командата „git-mailinfo“"
-#: builtin/am.c:2185
+#: builtin/am.c:2174
msgid "pass -b flag to git-mailinfo"
msgstr "подаване на опциÑта „-b“ на командата „git-mailinfo“"
-#: builtin/am.c:2187
+#: builtin/am.c:2176
msgid "pass -m flag to git-mailinfo"
msgstr "подаване на опциÑта „-m“ на командата „git-mailinfo“"
-#: builtin/am.c:2189
+#: builtin/am.c:2178
msgid "pass --keep-cr flag to git-mailsplit for mbox format"
msgstr ""
"подаване на опциÑта „--keep-cr“ на командата „git-mailsplit“ за формат „mbox“"
-#: builtin/am.c:2192
+#: builtin/am.c:2181
msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
msgstr ""
"без подаване на опциÑта „--keep-cr“ на командата „git-mailsplit“ незавиÑимо "
"от „am.keepcr“"
-#: builtin/am.c:2195
+#: builtin/am.c:2184
msgid "strip everything before a scissors line"
msgstr "пропуÑкане на вÑичко преди реда за отрÑзване"
-#: builtin/am.c:2197 builtin/am.c:2200 builtin/am.c:2203 builtin/am.c:2206
-#: builtin/am.c:2209 builtin/am.c:2212 builtin/am.c:2215 builtin/am.c:2218
-#: builtin/am.c:2224
+#: builtin/am.c:2186 builtin/am.c:2189 builtin/am.c:2192 builtin/am.c:2195
+#: builtin/am.c:2198 builtin/am.c:2201 builtin/am.c:2204 builtin/am.c:2207
+#: builtin/am.c:2213
msgid "pass it through git-apply"
msgstr "прекарване през „git-apply“"
-#: builtin/am.c:2214 builtin/commit.c:1368 builtin/fmt-merge-msg.c:671
-#: builtin/fmt-merge-msg.c:674 builtin/grep.c:881 builtin/merge.c:249
-#: builtin/pull.c:159 builtin/pull.c:218 builtin/rebase.c:1418
-#: builtin/repack.c:307 builtin/repack.c:311 builtin/repack.c:313
+#: builtin/am.c:2203 builtin/commit.c:1368 builtin/fmt-merge-msg.c:671
+#: builtin/fmt-merge-msg.c:674 builtin/grep.c:883 builtin/merge.c:249
+#: builtin/pull.c:160 builtin/pull.c:219 builtin/rebase.c:1442
+#: builtin/repack.c:308 builtin/repack.c:312 builtin/repack.c:314
#: builtin/show-branch.c:650 builtin/show-ref.c:172 builtin/tag.c:403
-#: parse-options.h:141 parse-options.h:162 parse-options.h:312
+#: parse-options.h:150 parse-options.h:171 parse-options.h:312
msgid "n"
msgstr "БРОЙ"
-#: builtin/am.c:2220 builtin/branch.c:661 builtin/for-each-ref.c:38
-#: builtin/replace.c:554 builtin/tag.c:437 builtin/verify-tag.c:38
+#: builtin/am.c:2209 builtin/branch.c:661 builtin/for-each-ref.c:38
+#: builtin/replace.c:555 builtin/tag.c:437 builtin/verify-tag.c:38
msgid "format"
msgstr "ФОРМÐТ"
-#: builtin/am.c:2221
+#: builtin/am.c:2210
msgid "format the patch(es) are in"
msgstr "формат на кръпките"
-#: builtin/am.c:2227
+#: builtin/am.c:2216
msgid "override error message when patch failure occurs"
msgstr "избрано от Ð²Ð°Ñ Ñъобщение за грешка при прилагане на кръпки"
-#: builtin/am.c:2229
+#: builtin/am.c:2218
msgid "continue applying patches after resolving a conflict"
msgstr "продължаване на прилагането на кръпки Ñлед коригирането на конфликт"
-#: builtin/am.c:2232
+#: builtin/am.c:2221
msgid "synonyms for --continue"
msgstr "пÑевдоними на „--continue“"
-#: builtin/am.c:2235
+#: builtin/am.c:2224
msgid "skip the current patch"
msgstr "преÑкачане на текущата кръпка"
-#: builtin/am.c:2238
+#: builtin/am.c:2227
msgid "restore the original branch and abort the patching operation."
msgstr ""
"възÑтановÑване на първоначалното ÑÑŠÑтоÑние на клона и преуÑтановÑване на "
"прилагането на кръпката."
-#: builtin/am.c:2241
+#: builtin/am.c:2230
msgid "abort the patching operation but keep HEAD where it is."
msgstr ""
"преуÑтановÑване на прилагането на кръпката без промÑна към кое Ñочи „HEAD“."
-#: builtin/am.c:2244
+#: builtin/am.c:2233
msgid "show the patch being applied."
msgstr "показване на прилаганата кръпка."
-#: builtin/am.c:2248
+#: builtin/am.c:2237
msgid "lie about committer date"
msgstr "дата за подаване различна от първоначалната"
-#: builtin/am.c:2250
+#: builtin/am.c:2239
msgid "use current timestamp for author date"
msgstr "използване на текущото време като това за автор"
-#: builtin/am.c:2252 builtin/commit-tree.c:120 builtin/commit.c:1511
-#: builtin/merge.c:286 builtin/pull.c:193 builtin/rebase.c:489
-#: builtin/rebase.c:1459 builtin/revert.c:117 builtin/tag.c:418
+#: builtin/am.c:2241 builtin/commit-tree.c:120 builtin/commit.c:1511
+#: builtin/merge.c:286 builtin/pull.c:194 builtin/rebase.c:490
+#: builtin/rebase.c:1483 builtin/revert.c:117 builtin/tag.c:418
msgid "key-id"
msgstr "ИДЕÐТИФИКÐТОР_ÐÐ_КЛЮЧ"
-#: builtin/am.c:2253 builtin/rebase.c:490 builtin/rebase.c:1460
+#: builtin/am.c:2242 builtin/rebase.c:491 builtin/rebase.c:1484
msgid "GPG-sign commits"
msgstr "подпиÑване на подаваниÑта Ñ GPG"
-#: builtin/am.c:2256
+#: builtin/am.c:2245
msgid "(internal use for git-rebase)"
msgstr "(ползва Ñе вътрешно за „git-rebase“)"
-#: builtin/am.c:2274
+#: builtin/am.c:2263
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."
@@ -9310,18 +9349,18 @@ msgstr ""
"Опциите „-b“/„--binary“ отдавна не правÑÑ‚ нищо и\n"
"ще бъдат премахнати в бъдеще. Ðе ги ползвайте."
-#: builtin/am.c:2281
+#: builtin/am.c:2270
msgid "failed to read the index"
msgstr "неуÑпешно изчитане на индекÑа"
-#: builtin/am.c:2296
+#: builtin/am.c:2285
#, c-format
msgid "previous rebase directory %s still exists but mbox given."
msgstr ""
"предишната Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð·Ð° пребазиране „%s“ вÑе още ÑъщеÑтвува, а е зададен "
"файл „mbox“."
-#: builtin/am.c:2320
+#: builtin/am.c:2309
#, c-format
msgid ""
"Stray %s directory found.\n"
@@ -9330,11 +9369,11 @@ msgstr ""
"Открита е излишна Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ â€ž%s“.\n"
"Можете да Ñ Ð¸Ð·Ñ‚Ñ€Ð¸ÐµÑ‚Ðµ Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ‚Ð° „git am --abort“."
-#: builtin/am.c:2326
+#: builtin/am.c:2315
msgid "Resolve operation not in progress, we are not resuming."
msgstr "Ð’ момента не тече Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð¿Ð¾ коригиране и нÑма как да Ñе продължи."
-#: builtin/am.c:2336
+#: builtin/am.c:2325
msgid "interactive mode requires patches on the command line"
msgstr "интерактивниÑÑ‚ режим изиÑква кръпки на ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¸Ñ Ñ€ÐµÐ´"
@@ -9652,171 +9691,171 @@ msgstr "опциÑта „--bisect-next-check“ изиÑква 2 или 3 арÐ
msgid "--bisect-terms requires 0 or 1 argument"
msgstr "опциÑта „--bisect-terms“ изиÑква 0 или 1 аргумента"
-#: builtin/blame.c:32
+#: builtin/blame.c:31
msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>"
msgstr "git blame [ОПЦИЯ…] [ОПЦИЯ_ЗÐ_ВЕРСИЯТÐ…] [ВЕРСИЯ] [--] ФÐЙЛ"
-#: builtin/blame.c:37
+#: builtin/blame.c:36
msgid "<rev-opts> are documented in git-rev-list(1)"
msgstr "ОПЦИИте_ЗÐ_ВЕРСИЯТРÑа документирани в ръководÑтвото git-rev-list(1)"
-#: builtin/blame.c:410
+#: builtin/blame.c:409
#, c-format
msgid "expecting a color: %s"
msgstr "Ñ‚Ñ€Ñбва да е цвÑÑ‚: %s"
-#: builtin/blame.c:417
+#: builtin/blame.c:416
msgid "must end with a color"
msgstr "Ñ‚Ñ€Ñбва да завършва Ñ Ñ†Ð²ÑÑ‚"
-#: builtin/blame.c:730
+#: builtin/blame.c:729
#, c-format
msgid "invalid color '%s' in color.blame.repeatedLines"
msgstr "неправилен цвÑÑ‚ „%s“ в „color.blame.repeatedLines“"
-#: builtin/blame.c:748
+#: builtin/blame.c:747
msgid "invalid value for blame.coloring"
msgstr "неправилна ÑтойноÑÑ‚ за „blame.coloring“"
-#: builtin/blame.c:823
+#: builtin/blame.c:822
#, c-format
msgid "cannot find revision %s to ignore"
msgstr "верÑиÑта за преÑкачане „%s“ не може да бъде открита"
-#: builtin/blame.c:845
+#: builtin/blame.c:844
msgid "Show blame entries as we find them, incrementally"
msgstr "Извеждане на авторÑтвото Ñ Ð½Ð°Ð¼Ð¸Ñ€Ð°Ð½ÐµÑ‚Ð¾ му, поÑледователно"
-#: builtin/blame.c:846
+#: builtin/blame.c:845
msgid "Show blank SHA-1 for boundary commits (Default: off)"
msgstr ""
"Извеждане на празни Ñуми по SHA1 за граничните Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ (Ñтандартно опциÑта "
"е изключена)"
-#: builtin/blame.c:847
+#: builtin/blame.c:846
msgid "Do not treat root commits as boundaries (Default: off)"
msgstr ""
"Ðачалните Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ Ð´Ð° не Ñе Ñчитат за гранични (Ñтандартно опциÑта е "
"изключена)"
-#: builtin/blame.c:848
+#: builtin/blame.c:847
msgid "Show work cost statistics"
msgstr "Извеждане на ÑтатиÑтика за извършените дейÑтвиÑ"
-#: builtin/blame.c:849
+#: builtin/blame.c:848
msgid "Force progress reporting"
msgstr "Принудително извеждане на напредъка"
-#: builtin/blame.c:850
+#: builtin/blame.c:849
msgid "Show output score for blame entries"
msgstr "Извеждане на допълнителна Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° определÑнето на авторÑтвото"
-#: builtin/blame.c:851
+#: builtin/blame.c:850
msgid "Show original filename (Default: auto)"
msgstr ""
"Извеждане на първоначалното име на файл (Ñтандартно това е автоматично)"
-#: builtin/blame.c:852
+#: builtin/blame.c:851
msgid "Show original linenumber (Default: off)"
msgstr ""
"Извеждане на първоначалниÑÑ‚ номер на ред (Ñтандартно опциÑта е изключена)"
-#: builtin/blame.c:853
+#: builtin/blame.c:852
msgid "Show in a format designed for machine consumption"
msgstr "Извеждане във формат за по-нататъшна обработка"
-#: builtin/blame.c:854
+#: builtin/blame.c:853
msgid "Show porcelain format with per-line commit information"
msgstr ""
"Извеждане във формат за команди от потребителÑко ниво Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð½Ð° вÑеки "
"ред"
-#: builtin/blame.c:855
+#: builtin/blame.c:854
msgid "Use the same output mode as git-annotate (Default: off)"
msgstr ""
"Използване на ÑÑŠÑ‰Ð¸Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ като „git-annotate“ (Ñтандартно опциÑта е "
"изключена)"
-#: builtin/blame.c:856
+#: builtin/blame.c:855
msgid "Show raw timestamp (Default: off)"
msgstr "Извеждане на неформатирани времена (Ñтандартно опциÑта е изключена)"
-#: builtin/blame.c:857
+#: builtin/blame.c:856
msgid "Show long commit SHA1 (Default: off)"
msgstr "Извеждане на пълните Ñуми по SHA1 (Ñтандартно опциÑта е изключена)"
-#: builtin/blame.c:858
+#: builtin/blame.c:857
msgid "Suppress author name and timestamp (Default: off)"
msgstr "Без име на автор и време на промÑна (Ñтандартно опциÑта е изключена)"
-#: builtin/blame.c:859
+#: builtin/blame.c:858
msgid "Show author email instead of name (Default: off)"
msgstr ""
"Извеждане на е-пощата на автора, а не името му (Ñтандартно опциÑта е "
"изключена)"
-#: builtin/blame.c:860
+#: builtin/blame.c:859
msgid "Ignore whitespace differences"
msgstr "Без разлики в знаците за интервали"
-#: builtin/blame.c:861 builtin/log.c:1629
+#: builtin/blame.c:860 builtin/log.c:1630
msgid "rev"
msgstr "ВЕРС"
-#: builtin/blame.c:861
+#: builtin/blame.c:860
msgid "Ignore <rev> when blaming"
msgstr "ПреÑкачане на ВЕРСиÑта при извеждане на авторÑтвото"
-#: builtin/blame.c:862
+#: builtin/blame.c:861
msgid "Ignore revisions from <file>"
msgstr "ПреÑкачане на верÑиите указани във ФÐЙЛа при извеждане на авторÑтвото"
-#: builtin/blame.c:863
+#: builtin/blame.c:862
msgid "color redundant metadata from previous line differently"
msgstr ""
"оцветÑване на повтарÑщите Ñе метаданни от Ð¿Ñ€ÐµÐ´Ð¸ÑˆÐ½Ð¸Ñ Ñ€ÐµÐ´ в различен цвÑÑ‚"
-#: builtin/blame.c:864
+#: builtin/blame.c:863
msgid "color lines by age"
msgstr "оцветÑване на редовете по възраÑÑ‚"
-#: builtin/blame.c:871
+#: builtin/blame.c:870
msgid "Use an experimental heuristic to improve diffs"
msgstr "ПодобрÑване на разликите чрез екÑпериментална евриÑтика"
-#: builtin/blame.c:873
+#: builtin/blame.c:872
msgid "Spend extra cycles to find better match"
msgstr "Допълнителни изчиÑÐ»ÐµÐ½Ð¸Ñ Ð·Ð° по-добри резултати"
-#: builtin/blame.c:874
+#: builtin/blame.c:873
msgid "Use revisions from <file> instead of calling git-rev-list"
msgstr "Изчитане на верÑиите от ФÐЙЛ, а не чрез изпълнение на „git-rev-list“"
-#: builtin/blame.c:875
+#: builtin/blame.c:874
msgid "Use <file>'s contents as the final image"
msgstr "Използване на Ñъдържанието на ФÐЙЛа като крайно положение"
-#: builtin/blame.c:876 builtin/blame.c:877
+#: builtin/blame.c:875 builtin/blame.c:876
msgid "score"
msgstr "напаÑване на редовете"
-#: builtin/blame.c:876
+#: builtin/blame.c:875
msgid "Find line copies within and across files"
msgstr ""
"ТърÑене на копирани редове както в рамките на един файл, така и от един файл "
"към друг"
-#: builtin/blame.c:877
+#: builtin/blame.c:876
msgid "Find line movements within and across files"
msgstr ""
"ТърÑене на премеÑтени редове както в рамките на един файл, така и от един "
"файл към друг"
-#: builtin/blame.c:878
+#: builtin/blame.c:877
msgid "n,m"
msgstr "n,m"
-#: builtin/blame.c:878
+#: builtin/blame.c:877
msgid "Process only line range n,m, counting from 1"
msgstr ""
"Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ñамо за редовете в диапазона от n до m включително. Броенето "
@@ -10059,7 +10098,7 @@ msgstr "задаване на режима на Ñледене (виж git-pull(
msgid "do not use"
msgstr "да не Ñе ползва"
-#: builtin/branch.c:626 builtin/rebase.c:485
+#: builtin/branch.c:626 builtin/rebase.c:486
msgid "upstream"
msgstr "клон-източник"
@@ -10171,7 +10210,7 @@ msgstr "подредбата и филтрирането третират едн
msgid "format to use for the output"
msgstr "ФОРМÐТ за изхода"
-#: builtin/branch.c:684 builtin/clone.c:761
+#: builtin/branch.c:684 builtin/clone.c:760
msgid "HEAD not found below refs/heads!"
msgstr "Ð’ директориÑта „refs/heads“ липÑва файл „HEAD“"
@@ -10274,7 +10313,7 @@ msgstr "За Ñъздаването на пратка е необходимо Ñ…
msgid "Need a repository to unbundle."
msgstr "За приемането на пратка е необходимо хранилище."
-#: builtin/cat-file.c:594
+#: builtin/cat-file.c:595
msgid ""
"git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -"
"p | <type> | --textconv | --filters) [--path=<path>] <object>"
@@ -10282,7 +10321,7 @@ msgstr ""
"git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -"
"p | ВИД | --textconv --filters) [--path=ПЪТ] ОБЕКТ"
-#: builtin/cat-file.c:595
+#: builtin/cat-file.c:596
msgid ""
"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --"
"filters]"
@@ -10290,79 +10329,79 @@ msgstr ""
"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --"
"filters]"
-#: builtin/cat-file.c:616
+#: builtin/cat-file.c:617
msgid "only one batch option may be specified"
msgstr "може да укажете Ñамо една пакетна опциÑ"
-#: builtin/cat-file.c:634
+#: builtin/cat-file.c:635
msgid "<type> can be one of: blob, tree, commit, tag"
msgstr ""
"ВИДът може да е: „blob“ (BLOB), „tree“ (дърво), „commit“ (подаване), "
"„tag“ (етикет)"
-#: builtin/cat-file.c:635
+#: builtin/cat-file.c:636
msgid "show object type"
msgstr "извеждане на вида на обект"
-#: builtin/cat-file.c:636
+#: builtin/cat-file.c:637
msgid "show object size"
msgstr "извеждане на размера на обект"
-#: builtin/cat-file.c:638
+#: builtin/cat-file.c:639
msgid "exit with zero when there's no error"
msgstr "изход Ñ 0, когато нÑма грешка"
-#: builtin/cat-file.c:639
+#: builtin/cat-file.c:640
msgid "pretty-print object's content"
msgstr "форматирано извеждане на Ñъдържанието на обекта"
-#: builtin/cat-file.c:641
+#: builtin/cat-file.c:642
msgid "for blob objects, run textconv on object's content"
msgstr ""
"да Ñе Ñтартира програмата зададена в наÑтройката „textconv“ за преобразуване "
"на Ñъдържанието на обекта-BLOB"
-#: builtin/cat-file.c:643
+#: builtin/cat-file.c:644
msgid "for blob objects, run filters on object's content"
msgstr ""
"да Ñе Ñтартират програмите за преобразуване на Ñъдържанието на обектите-BLOB"
-#: builtin/cat-file.c:644 git-submodule.sh:936
+#: builtin/cat-file.c:645 git-submodule.sh:936
msgid "blob"
msgstr "обект-BLOB"
-#: builtin/cat-file.c:645
+#: builtin/cat-file.c:646
msgid "use a specific path for --textconv/--filters"
msgstr "опциите „--textconv“/„--filters“ изиÑкват път"
-#: builtin/cat-file.c:647
+#: builtin/cat-file.c:648
msgid "allow -s and -t to work with broken/corrupt objects"
msgstr "позволÑване на опциите „-s“ и „-t“ да работÑÑ‚ Ñ Ð¿Ð¾Ð²Ñ€ÐµÐ´ÐµÐ½Ð¸ обекти"
-#: builtin/cat-file.c:648
+#: builtin/cat-file.c:649
msgid "buffer --batch output"
msgstr "буфериране на изхода от „--batch“"
-#: builtin/cat-file.c:650
+#: builtin/cat-file.c:651
msgid "show info and content of objects fed from the standard input"
msgstr ""
"извеждане на Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¸ Ñъдържание на обектите подадени на ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð²Ñ…Ð¾Ð´"
-#: builtin/cat-file.c:654
+#: builtin/cat-file.c:655
msgid "show info about objects fed from the standard input"
msgstr "извеждане на Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° обектите подадени на ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð²Ñ…Ð¾Ð´"
-#: builtin/cat-file.c:658
+#: builtin/cat-file.c:659
msgid "follow in-tree symlinks (used with --batch or --batch-check)"
msgstr ""
"Ñледване на Ñимволните връзки Ñочещи в дървото (ползва Ñе Ñ â€ž--batch“ или „--"
"batch-check“)"
-#: builtin/cat-file.c:660
+#: builtin/cat-file.c:661
msgid "show all objects with --batch or --batch-check"
msgstr "извеждане на вÑички обекти Ñ â€ž--batch“ или „--batch-check“"
-#: builtin/cat-file.c:662
+#: builtin/cat-file.c:663
msgid "do not order --batch-all-objects output"
msgstr "без подреждане на изхода от „--batch-all-objects“"
@@ -10390,8 +10429,8 @@ msgstr "изчитане на имената на файловете от Ñта
msgid "terminate input and output records by a NUL character"
msgstr "разделÑне на входните и изходните запиÑи Ñ Ð½ÑƒÐ»ÐµÐ²Ð¸Ñ Ð·Ð½Ð°Ðº „NUL“"
-#: builtin/check-ignore.c:21 builtin/checkout.c:1433 builtin/gc.c:538
-#: builtin/worktree.c:507
+#: builtin/check-ignore.c:21 builtin/checkout.c:1433 builtin/gc.c:537
+#: builtin/worktree.c:506
msgid "suppress progress reporting"
msgstr "без показване на напредъка"
@@ -10483,7 +10522,7 @@ msgstr "запиÑване на Ñъдържанието във временни
#: builtin/checkout-index.c:178 builtin/column.c:31
#: builtin/submodule--helper.c:1373 builtin/submodule--helper.c:1376
#: builtin/submodule--helper.c:1384 builtin/submodule--helper.c:1857
-#: builtin/worktree.c:680
+#: builtin/worktree.c:679
msgid "string"
msgstr "ÐИЗ"
@@ -10511,99 +10550,99 @@ msgstr "git switch [ОПЦИЯ…] КЛОÐ"
msgid "git restore [<options>] [--source=<branch>] <file>..."
msgstr "git restore [ОПЦИЯ…] [--source=КЛОÐ] ФÐЙЛ…"
-#: builtin/checkout.c:172 builtin/checkout.c:211
+#: builtin/checkout.c:173 builtin/checkout.c:212
#, c-format
msgid "path '%s' does not have our version"
msgstr "вашата верÑÐ¸Ñ Ð»Ð¸Ð¿Ñва в Ð¿ÑŠÑ‚Ñ â€ž%s“"
-#: builtin/checkout.c:174 builtin/checkout.c:213
+#: builtin/checkout.c:175 builtin/checkout.c:214
#, c-format
msgid "path '%s' does not have their version"
msgstr "чуждата верÑÐ¸Ñ Ð»Ð¸Ð¿Ñва в Ð¿ÑŠÑ‚Ñ â€ž%s“"
-#: builtin/checkout.c:190
+#: builtin/checkout.c:191
#, c-format
msgid "path '%s' does not have all necessary versions"
msgstr "нÑÐºÐ¾Ñ Ð¾Ñ‚ необходимите верÑии липÑва в Ð¿ÑŠÑ‚Ñ â€ž%s“"
-#: builtin/checkout.c:240
+#: builtin/checkout.c:241
#, c-format
msgid "path '%s' does not have necessary versions"
msgstr "нÑÐºÐ¾Ñ Ð¾Ñ‚ необходимите верÑии липÑва в Ð¿ÑŠÑ‚Ñ â€ž%s“"
-#: builtin/checkout.c:258
+#: builtin/checkout.c:259
#, c-format
msgid "path '%s': cannot merge"
msgstr "пътÑÑ‚ „%s“ не може да бъде ÑлÑн"
-#: builtin/checkout.c:274
+#: builtin/checkout.c:275
#, c-format
msgid "Unable to add merge result for '%s'"
msgstr "Резултатът за „%s“ не може да бъде ÑлÑн"
-#: builtin/checkout.c:374
+#: builtin/checkout.c:375
#, c-format
msgid "Recreated %d merge conflict"
msgid_plural "Recreated %d merge conflicts"
msgstr[0] "ПреÑъздаден е %d конфликт при Ñливане"
msgstr[1] "ПреÑъздадени Ñа %d конфликта при Ñливане"
-#: builtin/checkout.c:379
+#: builtin/checkout.c:380
#, c-format
msgid "Updated %d path from %s"
msgid_plural "Updated %d paths from %s"
msgstr[0] "Обновен е %d път от „%s“"
msgstr[1] "Обновени Ñа %d Ð¿ÑŠÑ‚Ñ Ð¾Ñ‚ „%s“"
-#: builtin/checkout.c:386
+#: builtin/checkout.c:387
#, 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:409 builtin/checkout.c:412 builtin/checkout.c:415
-#: builtin/checkout.c:419
+#: builtin/checkout.c:410 builtin/checkout.c:413 builtin/checkout.c:416
+#: builtin/checkout.c:420
#, c-format
msgid "'%s' cannot be used with updating paths"
msgstr "опциÑта „%s“ е неÑъвмеÑтима Ñ Ð¾Ð±Ð½Ð¾Ð²Ñването на пътища"
-#: builtin/checkout.c:422 builtin/checkout.c:425
+#: builtin/checkout.c:423 builtin/checkout.c:426
#, c-format
msgid "'%s' cannot be used with %s"
msgstr "опциÑта „%s“ е неÑъвмеÑтима Ñ â€ž%s“"
-#: builtin/checkout.c:429
+#: builtin/checkout.c:430
#, c-format
msgid "Cannot update paths and switch to branch '%s' at the same time."
msgstr ""
"Ðевъзможно е едновременно да обновÑвате пътища и да преминете към клона „%s“."
-#: builtin/checkout.c:433
+#: builtin/checkout.c:434
#, c-format
msgid "neither '%s' or '%s' is specified"
msgstr "не е указано нито „%s“, нито „%s“"
-#: builtin/checkout.c:437
+#: builtin/checkout.c:438
#, c-format
msgid "'%s' must be used when '%s' is not specified"
msgstr "опциÑта „%s“ е задължителна, когато „%s“ не е зададена"
-#: builtin/checkout.c:442 builtin/checkout.c:447
+#: builtin/checkout.c:443 builtin/checkout.c:448
#, c-format
msgid "'%s' or '%s' cannot be used with %s"
msgstr "опциÑта „%3$s“ е неÑъвмеÑтима както Ñ â€ž%1$s“, така и Ñ â€ž%2$s“"
-#: builtin/checkout.c:506 builtin/checkout.c:513
+#: builtin/checkout.c:507 builtin/checkout.c:514
#, c-format
msgid "path '%s' is unmerged"
msgstr "пътÑÑ‚ „%s“ не е ÑлÑÑ‚"
-#: builtin/checkout.c:679
+#: builtin/checkout.c:680
msgid "you need to resolve your current index first"
msgstr "първо Ñ‚Ñ€Ñбва да коригирате индекÑа Ñи"
-#: builtin/checkout.c:729
+#: builtin/checkout.c:730
#, c-format
msgid ""
"cannot continue with staged changes in the following files:\n"
@@ -10613,11 +10652,6 @@ msgstr ""
"индекÑа:\n"
"%s"
-#: builtin/checkout.c:736
-#, c-format
-msgid "staged changes in the following files may be lost: %s"
-msgstr "локалните промени в тези файлове ще Ñе презапишат: %s"
-
#: builtin/checkout.c:833
#, c-format
msgid "Can not do reflog for '%s': %s\n"
@@ -10627,7 +10661,7 @@ msgstr "Журналът на указателите за „%s“ не може
msgid "HEAD is now at"
msgstr "УказателÑÑ‚ „HEAD“ в момента Ñочи към"
-#: builtin/checkout.c:879 builtin/clone.c:714
+#: builtin/checkout.c:879 builtin/clone.c:713
msgid "unable to update HEAD"
msgstr "УказателÑÑ‚ „HEAD“ не може да бъде обновен"
@@ -10740,7 +10774,7 @@ msgstr ""
"„%s“ може да е както локален файл, така и ÑледÑщ клон. За уточнÑване\n"
"ползвайте Ñ€Ð°Ð·Ð´ÐµÐ»Ð¸Ñ‚ÐµÐ»Ñ â€ž--“ (и евентуално опциÑта „--no-guess“)"
-#: builtin/checkout.c:1243 builtin/worktree.c:291 builtin/worktree.c:456
+#: builtin/checkout.c:1243 builtin/worktree.c:290 builtin/worktree.c:455
#, c-format
msgid "invalid reference: %s"
msgstr "неправилен указател: %s"
@@ -10846,9 +10880,9 @@ msgstr ""
msgid "missing branch or commit argument"
msgstr "липÑва аргумент — клон или подаване"
-#: builtin/checkout.c:1437 builtin/clone.c:91 builtin/fetch.c:151
-#: builtin/merge.c:285 builtin/pull.c:137 builtin/push.c:575
-#: builtin/send-pack.c:174
+#: builtin/checkout.c:1437 builtin/clone.c:90 builtin/commit-graph.c:59
+#: builtin/commit-graph.c:180 builtin/fetch.c:166 builtin/merge.c:285
+#: builtin/pull.c:138 builtin/push.c:562 builtin/send-pack.c:174
msgid "force progress reporting"
msgstr "извеждане на напредъка"
@@ -10856,7 +10890,7 @@ msgstr "извеждане на напредъка"
msgid "perform a 3-way merge with the new branch"
msgstr "извършване на тройно Ñливане Ñ Ð½Ð¾Ð²Ð¸Ñ ÐºÐ»Ð¾Ð½"
-#: builtin/checkout.c:1439 builtin/log.c:1617 parse-options.h:318
+#: builtin/checkout.c:1439 builtin/log.c:1618 parse-options.h:318
msgid "style"
msgstr "СТИЛ"
@@ -10864,7 +10898,7 @@ msgstr "СТИЛ"
msgid "conflict style (merge or diff3)"
msgstr "дейÑтвие при конфликт (Ñливане или тройна разлика)"
-#: builtin/checkout.c:1452 builtin/worktree.c:504
+#: builtin/checkout.c:1452 builtin/worktree.c:503
msgid "detach HEAD at named commit"
msgstr "отделÑне на ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ â€žHEAD“ към указаното подаване"
@@ -10981,9 +11015,9 @@ msgstr ""
"\n"
" checkout.defaultRemote=origin"
-#: builtin/checkout.c:1691 builtin/checkout.c:1693 builtin/checkout.c:1733
-#: builtin/checkout.c:1735 builtin/clone.c:121 builtin/remote.c:169
-#: builtin/remote.c:171 builtin/worktree.c:500 builtin/worktree.c:502
+#: builtin/checkout.c:1691 builtin/checkout.c:1693 builtin/checkout.c:1742
+#: builtin/checkout.c:1744 builtin/clone.c:120 builtin/remote.c:169
+#: builtin/remote.c:171 builtin/worktree.c:499 builtin/worktree.c:501
msgid "branch"
msgstr "клон"
@@ -11009,41 +11043,41 @@ msgstr ""
msgid "use overlay mode (default)"
msgstr "използване на припокриващ режим (Ñтандартно)"
-#: builtin/checkout.c:1734
+#: builtin/checkout.c:1743
msgid "create and switch to a new branch"
msgstr "Ñъздаване и преминаване към нов клон"
-#: builtin/checkout.c:1736
+#: builtin/checkout.c:1745
msgid "create/reset and switch to a branch"
msgstr "Ñъздаване/занулÑване на клон и преминаване към него"
-#: builtin/checkout.c:1738
+#: builtin/checkout.c:1747
msgid "second guess 'git switch <no-such-branch>'"
msgstr ""
"опит за отгатване на име на клон Ñлед неуÑпешен опит Ñ â€žgit switch "
"ÐЕСЪЩЕСТВУВÐЩ_КЛОГ"
-#: builtin/checkout.c:1740
+#: builtin/checkout.c:1749
msgid "throw away local modifications"
msgstr "занулÑване на локалните промени"
-#: builtin/checkout.c:1772
+#: builtin/checkout.c:1781
msgid "which tree-ish to checkout from"
msgstr "към кой указател към дърво да Ñе премине"
-#: builtin/checkout.c:1774
+#: builtin/checkout.c:1783
msgid "restore the index"
msgstr "възÑтановÑване на индекÑа"
-#: builtin/checkout.c:1776
+#: builtin/checkout.c:1785
msgid "restore the working tree (default)"
msgstr "възÑтановÑване на работното дърво (Ñтандартно)"
-#: builtin/checkout.c:1778
+#: builtin/checkout.c:1787
msgid "ignore unmerged entries"
msgstr "пренебрегване на неÑлетите елементи"
-#: builtin/checkout.c:1779
+#: builtin/checkout.c:1788
msgid "use overlay mode"
msgstr "използване на припокриващ режим"
@@ -11082,7 +11116,7 @@ msgstr "файлът „%s“ не може да бъде изтрит"
msgid "could not lstat %s\n"
msgstr "не може да Ñе получи Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ñ‡Ñ€ÐµÐ· „lstat“ за „%s“\n"
-#: builtin/clean.c:300 git-add--interactive.perl:593
+#: builtin/clean.c:301 git-add--interactive.perl:593
#, c-format
msgid ""
"Prompt help:\n"
@@ -11095,7 +11129,7 @@ msgstr ""
"ПРЕФИКС — избор на единÑтвен обект по този уникален префикÑ\n"
" — (празно) нищо да не Ñе избира\n"
-#: builtin/clean.c:304 git-add--interactive.perl:602
+#: builtin/clean.c:305 git-add--interactive.perl:602
#, c-format
msgid ""
"Prompt help:\n"
@@ -11116,39 +11150,39 @@ msgstr ""
"* — избиране на вÑички обекти\n"
" — (празно) завършване на избирането\n"
-#: builtin/clean.c:520 git-add--interactive.perl:568
+#: builtin/clean.c:521 git-add--interactive.perl:568
#: git-add--interactive.perl:573
#, c-format, perl-format
msgid "Huh (%s)?\n"
msgstr "Ðеправилен избор (%s).\n"
-#: builtin/clean.c:662
+#: builtin/clean.c:663
#, c-format
msgid "Input ignore patterns>> "
msgstr "Шаблони за игнорирани елементи≫ "
-#: builtin/clean.c:699
+#: builtin/clean.c:700
#, c-format
msgid "WARNING: Cannot find items matched by: %s"
msgstr "ПРЕДУПРЕЖДЕÐИЕ: Ðикой обект не напаÑва на „%s“"
-#: builtin/clean.c:720
+#: builtin/clean.c:721
msgid "Select items to delete"
msgstr "Избиране на обекти за изтриване"
#. TRANSLATORS: Make sure to keep [y/N] as is
-#: builtin/clean.c:761
+#: builtin/clean.c:762
#, c-format
msgid "Remove %s [y/N]? "
msgstr "Да Ñе изтрие ли „%s“? „y“ — да, „N“ — ÐЕ"
#
-#: builtin/clean.c:786 git-add--interactive.perl:1763
+#: builtin/clean.c:787 git-add--interactive.perl:1763
#, c-format
msgid "Bye.\n"
msgstr "Изход.\n"
-#: builtin/clean.c:794
+#: builtin/clean.c:795
msgid ""
"clean - start cleaning\n"
"filter by pattern - exclude items from deletion\n"
@@ -11166,64 +11200,64 @@ msgstr ""
"help — този край\n"
"? — подÑказка за шаблоните"
-#: builtin/clean.c:821 git-add--interactive.perl:1849
+#: builtin/clean.c:822 git-add--interactive.perl:1849
msgid "*** Commands ***"
msgstr "â—â—◠Команди â—â—â—"
-#: builtin/clean.c:822 git-add--interactive.perl:1846
+#: builtin/clean.c:823 git-add--interactive.perl:1846
msgid "What now"
msgstr "Избор на Ñледващо дейÑтвие"
-#: builtin/clean.c:830
+#: builtin/clean.c:831
msgid "Would remove the following item:"
msgid_plural "Would remove the following items:"
msgstr[0] "СледниÑÑ‚ обект ще бъде изтрит:"
msgstr[1] "Следните обекти ще бъдат изтрити:"
-#: builtin/clean.c:846
+#: builtin/clean.c:847
msgid "No more files to clean, exiting."
msgstr "Файловете за изчиÑтване Ñвършиха. Изход от програмата."
-#: builtin/clean.c:908
+#: builtin/clean.c:909
msgid "do not print names of files removed"
msgstr "без извеждане на имената на файловете, които ще бъдат изтрити"
-#: builtin/clean.c:910
+#: builtin/clean.c:911
msgid "force"
msgstr "принудително изтриване"
-#: builtin/clean.c:911
+#: builtin/clean.c:912
msgid "interactive cleaning"
msgstr "интерактивно изтриване"
-#: builtin/clean.c:913
+#: builtin/clean.c:914
msgid "remove whole directories"
msgstr "изтриване на цели директории"
-#: builtin/clean.c:914 builtin/describe.c:546 builtin/describe.c:548
-#: builtin/grep.c:899 builtin/log.c:176 builtin/log.c:178
-#: builtin/ls-files.c:557 builtin/name-rev.c:413 builtin/name-rev.c:415
+#: builtin/clean.c:915 builtin/describe.c:548 builtin/describe.c:550
+#: builtin/grep.c:901 builtin/log.c:176 builtin/log.c:178
+#: builtin/ls-files.c:557 builtin/name-rev.c:417 builtin/name-rev.c:419
#: builtin/show-ref.c:179
msgid "pattern"
msgstr "ШÐБЛОÐ"
-#: builtin/clean.c:915
+#: builtin/clean.c:916
msgid "add <pattern> to ignore rules"
msgstr "добавÑне на ШÐБЛОРот файлове, които да не Ñе триÑÑ‚"
-#: builtin/clean.c:916
+#: builtin/clean.c:917
msgid "remove ignored files, too"
msgstr "изтриване и на игнорираните файлове"
-#: builtin/clean.c:918
+#: builtin/clean.c:919
msgid "remove only ignored files"
msgstr "изтриване Ñамо на игнорирани файлове"
-#: builtin/clean.c:936
+#: builtin/clean.c:937
msgid "-x and -X cannot be used together"
msgstr "опциите „-x“ и „-X“ Ñа неÑъвмеÑтими"
-#: builtin/clean.c:940
+#: builtin/clean.c:941
msgid ""
"clean.requireForce set to true and neither -i, -n, nor -f given; refusing to "
"clean"
@@ -11231,7 +11265,7 @@ msgstr ""
"ÐаÑтройката „clean.requireForce“ е зададена като иÑтина, което изиÑква нÑÐºÐ¾Ñ "
"от опциите „-i“, „-n“ или „-f“. ÐÑма да Ñе извърши изчиÑтване"
-#: builtin/clean.c:943
+#: builtin/clean.c:944
msgid ""
"clean.requireForce defaults to true and neither -i, -n, nor -f given; "
"refusing to clean"
@@ -11240,164 +11274,164 @@ msgstr ""
"което изиÑква нÑÐºÐ¾Ñ Ð¾Ñ‚ опциите „-i“, „-n“ или „-f“. ÐÑма да Ñе извърши "
"изчиÑтване"
-#: builtin/clone.c:46
+#: builtin/clone.c:45
msgid "git clone [<options>] [--] <repo> [<dir>]"
msgstr "git clone [ОПЦИЯ…] [--] ХРÐÐИЛИЩЕ [ДИРЕКТОРИЯ]"
-#: builtin/clone.c:93
+#: builtin/clone.c:92
msgid "don't create a checkout"
msgstr "без Ñъздаване на работно дърво"
-#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:489
+#: builtin/clone.c:93 builtin/clone.c:95 builtin/init-db.c:489
msgid "create a bare repository"
msgstr "Ñъздаване на голо хранилище"
-#: builtin/clone.c:98
+#: builtin/clone.c:97
msgid "create a mirror repository (implies bare)"
msgstr ""
"Ñъздаване на хранилище-огледало (включва опциÑта „--bare“ за голо хранилище)"
-#: builtin/clone.c:100
+#: builtin/clone.c:99
msgid "to clone from a local repository"
msgstr "клониране от локално хранилище"
-#: builtin/clone.c:102
+#: builtin/clone.c:101
msgid "don't use local hardlinks, always copy"
msgstr "без твърди връзки, файловете винаги да Ñе копират"
-#: builtin/clone.c:104
+#: builtin/clone.c:103
msgid "setup as shared repository"
msgstr "наÑтройване за Ñподелено хранилище"
-#: builtin/clone.c:107
+#: builtin/clone.c:106
msgid "pathspec"
msgstr "път"
-#: builtin/clone.c:107
+#: builtin/clone.c:106
msgid "initialize submodules in the clone"
msgstr "инициализиране на подмодулите при това клониране"
-#: builtin/clone.c:110
+#: builtin/clone.c:109
msgid "number of submodules cloned in parallel"
msgstr "брой подмодули, клонирани паралелно"
-#: builtin/clone.c:111 builtin/init-db.c:486
+#: builtin/clone.c:110 builtin/init-db.c:486
msgid "template-directory"
msgstr "Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¸"
-#: builtin/clone.c:112 builtin/init-db.c:487
+#: builtin/clone.c:111 builtin/init-db.c:487
msgid "directory from which templates will be used"
msgstr "директориÑ, коÑто Ñъдържа шаблоните, които да Ñе ползват"
-#: builtin/clone.c:114 builtin/clone.c:116 builtin/submodule--helper.c:1380
+#: builtin/clone.c:113 builtin/clone.c:115 builtin/submodule--helper.c:1380
#: builtin/submodule--helper.c:1860
msgid "reference repository"
msgstr "еталонно хранилище"
-#: builtin/clone.c:118 builtin/submodule--helper.c:1382
+#: builtin/clone.c:117 builtin/submodule--helper.c:1382
#: builtin/submodule--helper.c:1862
msgid "use --reference only while cloning"
msgstr "опциÑта „--reference“ може да Ñе използва Ñамо при клониране"
-#: builtin/clone.c:119 builtin/column.c:27 builtin/merge-file.c:46
-#: builtin/pack-objects.c:3314 builtin/repack.c:319
+#: builtin/clone.c:118 builtin/column.c:27 builtin/merge-file.c:46
+#: builtin/pack-objects.c:3294 builtin/repack.c:320
msgid "name"
msgstr "ИМЕ"
-#: builtin/clone.c:120
+#: builtin/clone.c:119
msgid "use <name> instead of 'origin' to track upstream"
msgstr "използване на това ИМЕ вмеÑто „origin“ при проÑледÑване на клони"
-#: builtin/clone.c:122
+#: builtin/clone.c:121
msgid "checkout <branch> instead of the remote's HEAD"
msgstr "изтеглÑне на този КЛОÐ, а не ÑочениÑÑ‚ от Ð¾Ñ‚Ð´Ð°Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ» „HEAD“"
-#: builtin/clone.c:124
+#: builtin/clone.c:123
msgid "path to git-upload-pack on the remote"
msgstr "път към командата „git-upload-pack“ на отдалеченото хранилище"
-#: builtin/clone.c:125 builtin/fetch.c:152 builtin/grep.c:838
-#: builtin/pull.c:226
+#: builtin/clone.c:124 builtin/fetch.c:167 builtin/grep.c:840
+#: builtin/pull.c:227
msgid "depth"
msgstr "ДЪЛБОЧИÐÐ"
-#: builtin/clone.c:126
+#: builtin/clone.c:125
msgid "create a shallow clone of that depth"
msgstr "плитко клониране до тази ДЪЛБОЧИÐÐ"
-#: builtin/clone.c:127 builtin/fetch.c:154 builtin/pack-objects.c:3303
+#: builtin/clone.c:126 builtin/fetch.c:169 builtin/pack-objects.c:3283
msgid "time"
msgstr "ВРЕМЕ"
-#: builtin/clone.c:128
+#: builtin/clone.c:127
msgid "create a shallow clone since a specific time"
msgstr "плитко клониране до момент във времето"
-#: builtin/clone.c:129 builtin/fetch.c:156 builtin/fetch.c:179
-#: builtin/rebase.c:1395
+#: builtin/clone.c:128 builtin/fetch.c:171 builtin/fetch.c:194
+#: builtin/rebase.c:1417
msgid "revision"
msgstr "ВЕРСИЯ"
-#: builtin/clone.c:130 builtin/fetch.c:157
+#: builtin/clone.c:129 builtin/fetch.c:172
msgid "deepen history of shallow clone, excluding rev"
msgstr "задълбочаване на иÑториÑта на плитко хранилище до изключващ указател"
-#: builtin/clone.c:132
+#: builtin/clone.c:131
msgid "clone only one branch, HEAD or --branch"
msgstr ""
"клониране Ñамо на един клон — или ÑÐ¾Ñ‡ÐµÐ½Ð¸Ñ Ð¾Ñ‚ Ð¾Ñ‚Ð´Ð°Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ â€žHEAD“, или изрично "
"Ð·Ð°Ð´Ð°Ð´ÐµÐ½Ð¸Ñ Ñ â€ž--branch“"
-#: builtin/clone.c:134
+#: builtin/clone.c:133
msgid "don't clone any tags, and make later fetches not to follow them"
msgstr ""
"без клониране на етикети, като поÑледващите доÑтавÑÐ½Ð¸Ñ Ð½Ñма да ги ÑледÑÑ‚"
-#: builtin/clone.c:136
+#: builtin/clone.c:135
msgid "any cloned submodules will be shallow"
msgstr "вÑички клонирани подмодули ще Ñа плитки"
-#: builtin/clone.c:137 builtin/init-db.c:495
+#: builtin/clone.c:136 builtin/init-db.c:495
msgid "gitdir"
msgstr "СЛУЖЕБÐÐ_ДИРЕКТОРИЯ"
-#: builtin/clone.c:138 builtin/init-db.c:496
+#: builtin/clone.c:137 builtin/init-db.c:496
msgid "separate git dir from working tree"
msgstr "отделна СЛУЖЕБÐÐ_ДИРЕКТОРИЯ за git извън работното дърво"
-#: builtin/clone.c:139
+#: builtin/clone.c:138
msgid "key=value"
msgstr "КЛЮЧ=СТОЙÐОСТ"
-#: builtin/clone.c:140
+#: builtin/clone.c:139
msgid "set config inside the new repository"
msgstr "задаване на наÑтройките на новото хранилище"
-#: builtin/clone.c:142 builtin/fetch.c:174 builtin/ls-remote.c:76
-#: builtin/push.c:585 builtin/send-pack.c:172
+#: builtin/clone.c:141 builtin/fetch.c:189 builtin/ls-remote.c:76
+#: builtin/push.c:572 builtin/send-pack.c:172
msgid "server-specific"
msgstr "Ñпецифични за Ñървъра"
-#: builtin/clone.c:142 builtin/fetch.c:174 builtin/ls-remote.c:76
-#: builtin/push.c:585 builtin/send-pack.c:173
+#: builtin/clone.c:141 builtin/fetch.c:189 builtin/ls-remote.c:76
+#: builtin/push.c:572 builtin/send-pack.c:173
msgid "option to transmit"
msgstr "Ð¾Ð¿Ñ†Ð¸Ñ Ð·Ð° преноÑ"
-#: builtin/clone.c:143 builtin/fetch.c:175 builtin/pull.c:239
-#: builtin/push.c:586
+#: builtin/clone.c:142 builtin/fetch.c:190 builtin/pull.c:240
+#: builtin/push.c:573
msgid "use IPv4 addresses only"
msgstr "Ñамо адреÑи IPv4"
-#: builtin/clone.c:145 builtin/fetch.c:177 builtin/pull.c:242
-#: builtin/push.c:588
+#: builtin/clone.c:144 builtin/fetch.c:192 builtin/pull.c:243
+#: builtin/push.c:575
msgid "use IPv6 addresses only"
msgstr "Ñамо адреÑи IPv6"
-#: builtin/clone.c:149
+#: builtin/clone.c:148
msgid "any cloned submodules will use their remote-tracking branch"
msgstr "вÑички клонирани подмодули ще ползват ÑледÑщите Ñи клони"
-#: builtin/clone.c:285
+#: builtin/clone.c:284
msgid ""
"No directory name could be guessed.\n"
"Please specify a directory on the command line"
@@ -11405,43 +11439,43 @@ msgstr ""
"Името на директориÑта не може да бъде отгатнато.\n"
"Задайте директориÑта изрично на ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¸Ñ Ñ€ÐµÐ´"
-#: builtin/clone.c:338
+#: builtin/clone.c:337
#, c-format
msgid "info: Could not add alternate for '%s': %s\n"
msgstr ""
"ПРЕДУПРЕЖДЕÐИЕ: не може да Ñе добави алтернативен източник на „%s“: %s\n"
-#: builtin/clone.c:411
+#: builtin/clone.c:410
#, c-format
msgid "%s exists and is not a directory"
msgstr "„%s“ ÑъщеÑтвува и не е директориÑ"
-#: builtin/clone.c:428
+#: builtin/clone.c:427
#, c-format
msgid "failed to start iterator over '%s'"
msgstr "неуÑпешно итериране по „%s“"
-#: builtin/clone.c:458
+#: builtin/clone.c:457
#, c-format
msgid "failed to create link '%s'"
msgstr "връзката „%s“ не може да бъде Ñъздадена"
-#: builtin/clone.c:462
+#: builtin/clone.c:461
#, c-format
msgid "failed to copy file to '%s'"
msgstr "файлът не може да бъде копиран като „%s“"
-#: builtin/clone.c:467
+#: builtin/clone.c:466
#, c-format
msgid "failed to iterate over '%s'"
msgstr "неуÑпешно итериране по „%s“"
-#: builtin/clone.c:492
+#: builtin/clone.c:491
#, c-format
msgid "done.\n"
msgstr "дейÑтвието завърши.\n"
-#: builtin/clone.c:506
+#: builtin/clone.c:505
msgid ""
"Clone succeeded, but checkout failed.\n"
"You can inspect what was checked out with 'git status'\n"
@@ -11454,99 +11488,99 @@ msgstr ""
"\n"
" git restore --source=HEAD :/\n"
-#: builtin/clone.c:583
+#: builtin/clone.c:582
#, c-format
msgid "Could not find remote branch %s to clone."
msgstr ""
"Клонът „%s“ от отдалеченото хранилище, което клонирате,\n"
"и който Ñледва да бъде изтеглен, не ÑъщеÑтвува."
-#: builtin/clone.c:702
+#: builtin/clone.c:701
#, c-format
msgid "unable to update %s"
msgstr "обектът „%s“ не може да бъде обновен"
-#: builtin/clone.c:752
+#: builtin/clone.c:751
msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
msgstr ""
"указателÑÑ‚ „HEAD“ от отдалеченото хранилище Ñочи към нещо,\n"
"което не ÑъщеÑтвува. Ðе може да Ñе изтегли определен клон.\n"
-#: builtin/clone.c:783
+#: builtin/clone.c:782
msgid "unable to checkout working tree"
msgstr "работното дърво не може да бъде подготвено"
-#: builtin/clone.c:833
+#: builtin/clone.c:832
msgid "unable to write parameters to config file"
msgstr "наÑтройките не могат да бъдат запиÑани в ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»"
-#: builtin/clone.c:896
+#: builtin/clone.c:895
msgid "cannot repack to clean up"
msgstr "не може да Ñе извърши пакетиране за изчиÑтване на файловете"
-#: builtin/clone.c:898
+#: builtin/clone.c:897
msgid "cannot unlink temporary alternates file"
msgstr "временниÑÑ‚ файл за алтернативни обекти не може да бъде изтрит"
-#: builtin/clone.c:938 builtin/receive-pack.c:1950
+#: builtin/clone.c:937 builtin/receive-pack.c:1948
msgid "Too many arguments."
msgstr "Прекалено много аргументи."
-#: builtin/clone.c:942
+#: builtin/clone.c:941
msgid "You must specify a repository to clone."
msgstr "ТрÑбва да укажете кое хранилище иÑкате да клонирате."
-#: builtin/clone.c:955
+#: builtin/clone.c:954
#, c-format
msgid "--bare and --origin %s options are incompatible."
msgstr "опциите „--bare“ и „--origin %s“ Ñа неÑъвмеÑтими."
-#: builtin/clone.c:958
+#: builtin/clone.c:957
msgid "--bare and --separate-git-dir are incompatible."
msgstr "опциите „--bare“ и „--separate-git-dir“ Ñа неÑъвмеÑтими."
-#: builtin/clone.c:971
+#: builtin/clone.c:970
#, c-format
msgid "repository '%s' does not exist"
msgstr "не ÑъщеÑтвува хранилище „%s“"
-#: builtin/clone.c:977 builtin/fetch.c:1660
+#: builtin/clone.c:976 builtin/fetch.c:1790
#, c-format
msgid "depth %s is not a positive number"
msgstr "дълбочината Ñ‚Ñ€Ñбва да е положително цÑло чиÑло, а не „%s“"
-#: builtin/clone.c:987
+#: builtin/clone.c:986
#, c-format
msgid "destination path '%s' already exists and is not an empty directory."
msgstr "целевиÑÑ‚ път „%s“ ÑъщеÑтвува и не е празна директориÑ."
-#: builtin/clone.c:997
+#: builtin/clone.c:996
#, c-format
msgid "working tree '%s' already exists."
msgstr "в „%s“ вече ÑъщеÑтвува работно дърво."
-#: builtin/clone.c:1012 builtin/clone.c:1033 builtin/difftool.c:264
-#: builtin/worktree.c:303 builtin/worktree.c:335
+#: builtin/clone.c:1011 builtin/clone.c:1032 builtin/difftool.c:271
+#: builtin/log.c:1785 builtin/worktree.c:302 builtin/worktree.c:334
#, c-format
msgid "could not create leading directories of '%s'"
msgstr "родителÑките директории на „%s“ не могат да бъдат Ñъздадени"
-#: builtin/clone.c:1017
+#: builtin/clone.c:1016
#, c-format
msgid "could not create work tree dir '%s'"
msgstr "работното дърво в „%s“ не може да бъде Ñъздадено."
-#: builtin/clone.c:1037
+#: builtin/clone.c:1036
#, c-format
msgid "Cloning into bare repository '%s'...\n"
msgstr "Клониране и Ñъздаване на голо хранилище в „%s“…\n"
-#: builtin/clone.c:1039
+#: builtin/clone.c:1038
#, c-format
msgid "Cloning into '%s'...\n"
msgstr "Клониране и Ñъздаване на хранилище в „%s“…\n"
-#: builtin/clone.c:1063
+#: builtin/clone.c:1062
msgid ""
"clone --recursive is not compatible with both --reference and --reference-if-"
"able"
@@ -11554,44 +11588,44 @@ msgstr ""
"ОпциÑта „--recursive“ е неÑъвмеÑтима Ñ Ð¾Ð¿Ñ†Ð¸Ð¸Ñ‚Ðµ „--reference“ и „--reference-"
"if-able“"
-#: builtin/clone.c:1124
+#: builtin/clone.c:1123
msgid "--depth is ignored in local clones; use file:// instead."
msgstr ""
"При локално клониране опциÑта „--depth“ Ñе преÑкача. Ползвайте Ñхемата "
"„file://“."
-#: builtin/clone.c:1126
+#: builtin/clone.c:1125
msgid "--shallow-since is ignored in local clones; use file:// instead."
msgstr ""
"При локално клониране опциÑта „--shallow-since“ Ñе преÑкача. Ползвайте "
"Ñхемата „file://“."
-#: builtin/clone.c:1128
+#: builtin/clone.c:1127
msgid "--shallow-exclude is ignored in local clones; use file:// instead."
msgstr ""
"При локално клониране опциÑта „--shallow-exclude“ Ñе преÑкача. Ползвайте "
"Ñхемата „file://“."
-#: builtin/clone.c:1130
+#: builtin/clone.c:1129
msgid "--filter is ignored in local clones; use file:// instead."
msgstr ""
"При локално клониране опциÑта „--filter“ Ñе преÑкача. Ползвайте Ñхемата "
"„file://“."
-#: builtin/clone.c:1133
+#: builtin/clone.c:1132
msgid "source repository is shallow, ignoring --local"
msgstr "клонираното хранилище е плитко, затова опциÑта „--local“ Ñе преÑкача"
-#: builtin/clone.c:1138
+#: builtin/clone.c:1137
msgid "--local is ignored"
msgstr "опциÑта „--local“ Ñе преÑкача"
-#: builtin/clone.c:1215 builtin/clone.c:1223
+#: builtin/clone.c:1212 builtin/clone.c:1220
#, c-format
msgid "Remote branch %s not found in upstream %s"
msgstr "ОтдалечениÑÑ‚ клон „%s“ липÑва в клонираното хранилище „%s“"
-#: builtin/clone.c:1226
+#: builtin/clone.c:1223
msgid "You appear to have cloned an empty repository."
msgstr "Изглежда клонирахте празно хранилище."
@@ -11669,7 +11703,7 @@ msgid "id of a parent commit object"
msgstr "ИДЕÐТИФИКÐТОР на обекта за подаването-родител"
#: builtin/commit-tree.c:114 builtin/commit.c:1500 builtin/merge.c:270
-#: builtin/notes.c:409 builtin/notes.c:575 builtin/stash.c:1460
+#: builtin/notes.c:409 builtin/notes.c:575 builtin/stash.c:1469
#: builtin/tag.c:412
msgid "message"
msgstr "СЪОБЩЕÐИЕ"
@@ -11683,7 +11717,7 @@ msgid "read commit log message from file"
msgstr "изчитане на Ñъобщението за подаване от ФÐЙЛ"
#: builtin/commit-tree.c:121 builtin/commit.c:1512 builtin/merge.c:287
-#: builtin/pull.c:194 builtin/revert.c:118
+#: builtin/pull.c:195 builtin/revert.c:118
msgid "GPG sign commit"
msgstr "подпиÑване на подаването Ñ GPG"
@@ -12021,8 +12055,8 @@ msgstr "изчиÑлÑване на точните ÑтойноÑти напре
msgid "version"
msgstr "верÑиÑ"
-#: builtin/commit.c:1347 builtin/commit.c:1529 builtin/push.c:561
-#: builtin/worktree.c:651
+#: builtin/commit.c:1347 builtin/commit.c:1529 builtin/push.c:548
+#: builtin/worktree.c:650
msgid "machine-readable output"
msgstr "формат на изхода за четене от програма"
@@ -12035,8 +12069,8 @@ msgid "terminate entries with NUL"
msgstr "разделÑне на елементите Ñ Ð½ÑƒÐ»ÐµÐ²Ð¸Ñ Ð·Ð½Ð°Ðº „NUL“"
#: builtin/commit.c:1355 builtin/commit.c:1359 builtin/commit.c:1537
-#: builtin/fast-export.c:1125 builtin/fast-export.c:1128
-#: builtin/fast-export.c:1131 builtin/rebase.c:1471 parse-options.h:332
+#: builtin/fast-export.c:1153 builtin/fast-export.c:1156
+#: builtin/fast-export.c:1159 builtin/rebase.c:1495 parse-options.h:332
msgid "mode"
msgstr "РЕЖИМ"
@@ -12056,7 +12090,7 @@ msgstr ""
"„traditional“ (традиционен), „matching“ (напаÑващи), „no“ (без игнорираните "
"файлове). СтандартниÑÑ‚ РЕЖИМ е: „traditional“."
-#: builtin/commit.c:1362 parse-options.h:179
+#: builtin/commit.c:1362 parse-options.h:188
msgid "when"
msgstr "КОГÐ"
@@ -12109,7 +12143,7 @@ msgstr "ÐВТОР"
msgid "override author for commit"
msgstr "задаване на ÐВТОР за подаването"
-#: builtin/commit.c:1499 builtin/gc.c:539
+#: builtin/commit.c:1499 builtin/gc.c:538
msgid "date"
msgstr "ДÐТÐ"
@@ -12147,8 +12181,8 @@ msgid "the commit is authored by me now (used with -C/-c/--amend)"
msgstr ""
"ÑмÑна на автора да Ñъвпада Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ñ‰Ð¸Ñ (използва Ñе Ñ â€ž-C“/„-c“/„--amend“)"
-#: builtin/commit.c:1506 builtin/log.c:1564 builtin/merge.c:289
-#: builtin/pull.c:163 builtin/revert.c:110
+#: builtin/commit.c:1506 builtin/log.c:1565 builtin/merge.c:289
+#: builtin/pull.c:164 builtin/revert.c:110
msgid "add Signed-off-by:"
msgstr "добавÑне на поле за Ð¿Ð¾Ð´Ð¿Ð¸Ñ â€” „Signed-off-by:“"
@@ -12259,71 +12293,74 @@ msgid "git commit-graph read [--object-dir <objdir>]"
msgstr "git commit-graph read [--object-dir ДИР_ОБЕКТИ]"
#: builtin/commit-graph.c:13 builtin/commit-graph.c:19
-msgid "git commit-graph verify [--object-dir <objdir>] [--shallow]"
-msgstr "git commit-graph verify [--object-dir ДИР_ОБЕКТИ] [--shallow]"
+msgid ""
+"git commit-graph verify [--object-dir <objdir>] [--shallow] [--[no-]progress]"
+msgstr ""
+"git commit-graph verify [--object-dir ДИР_ОБЕКТИ] [--shallow] [--"
+"[no-]progress]"
#: builtin/commit-graph.c:14 builtin/commit-graph.c:29
msgid ""
"git commit-graph write [--object-dir <objdir>] [--append|--split] [--"
-"reachable|--stdin-packs|--stdin-commits] <split options>"
+"reachable|--stdin-packs|--stdin-commits] [--[no-]progress] <split options>"
msgstr ""
"git commit-graph write [--object-dir ДИР_ОБЕКТИ] [--append|--split] [--"
-"reachable|--stdin-packs|--stdin-commits] ОПЦИИ_ЗÐ_РÐЗДЕЛЯÐЕ"
+"reachable|--stdin-packs|--stdin-commits] [--[no-]progress] ОПЦИИ_ЗÐ_РÐЗДЕЛЯÐЕ"
-#: builtin/commit-graph.c:54 builtin/commit-graph.c:100
-#: builtin/commit-graph.c:161 builtin/commit-graph.c:237 builtin/fetch.c:163
-#: builtin/log.c:1584
+#: builtin/commit-graph.c:55 builtin/commit-graph.c:107
+#: builtin/commit-graph.c:170 builtin/commit-graph.c:254 builtin/fetch.c:178
+#: builtin/log.c:1585
msgid "dir"
msgstr "директориÑ"
-#: builtin/commit-graph.c:55 builtin/commit-graph.c:101
-#: builtin/commit-graph.c:162 builtin/commit-graph.c:238
+#: builtin/commit-graph.c:56 builtin/commit-graph.c:108
+#: builtin/commit-graph.c:171 builtin/commit-graph.c:255
msgid "The object directory to store the graph"
msgstr "ДИРекториÑта_Ñ_ОБЕКТИ за запазване на гра̀фа"
-#: builtin/commit-graph.c:57
+#: builtin/commit-graph.c:58
msgid "if the commit-graph is split, only verify the tip file"
msgstr ""
"ако гра̀фа Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñта е раздробен, да Ñе проверÑва Ñамо файлът на върха"
-#: builtin/commit-graph.c:73 builtin/commit-graph.c:116
+#: builtin/commit-graph.c:80 builtin/commit-graph.c:125
#, c-format
msgid "Could not open commit-graph '%s'"
msgstr "Графът Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñта не може да Ñе отвори: „%s“"
-#: builtin/commit-graph.c:164
+#: builtin/commit-graph.c:173
msgid "start walk at all refs"
msgstr "обхождането да започне от вÑички указатели"
-#: builtin/commit-graph.c:166
+#: builtin/commit-graph.c:175
msgid "scan pack-indexes listed by stdin for commits"
msgstr ""
"проверка на подаваниÑта за индекÑите на пакетите изброени на ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¸Ñ Ñ€ÐµÐ´"
-#: builtin/commit-graph.c:168
+#: builtin/commit-graph.c:177
msgid "start walk at commits listed by stdin"
msgstr "започване на обхождането при подаваниÑта подадени на ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð²Ñ…Ð¾Ð´"
-#: builtin/commit-graph.c:170
+#: builtin/commit-graph.c:179
msgid "include all commits already in the commit-graph file"
msgstr ""
"включване на вÑички подаваниÑ, които вече Ñа във файла Ñ Ð³Ñ€Ð°Ì€Ñ„Ð° на подаваниÑта"
-#: builtin/commit-graph.c:172
+#: builtin/commit-graph.c:182
msgid "allow writing an incremental commit-graph file"
msgstr "позволÑване на Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° нараÑтващ файл Ñ Ð³Ñ€Ð°Ì€Ñ„Ð° на подаваниÑта"
-#: builtin/commit-graph.c:174 builtin/commit-graph.c:178
+#: builtin/commit-graph.c:184 builtin/commit-graph.c:188
msgid "maximum number of commits in a non-base split commit-graph"
msgstr "макÑимален брой Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ Ð² небазово ниво на раздробен граф"
-#: builtin/commit-graph.c:176
+#: builtin/commit-graph.c:186
msgid "maximum ratio between two levels of a split commit-graph"
msgstr ""
"макÑимално отношение на Ð±Ñ€Ð¾Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ Ð² две поÑледователни нива в раздробен "
"граф"
-#: builtin/commit-graph.c:191
+#: builtin/commit-graph.c:204
msgid "use at most one of --reachable, --stdin-commits, or --stdin-packs"
msgstr ""
"опциите „--reachable“, „--stdin-commits“ и „--stdin-packs“ Ñа неÑъвмеÑтими"
@@ -12649,57 +12686,57 @@ msgstr "git count-objects [-v] [-H | --human-readable]"
msgid "print sizes in human readable format"
msgstr "извеждане на размерите на обектите във формат леÑно четим от хора"
-#: builtin/describe.c:27
+#: builtin/describe.c:26
msgid "git describe [<options>] [<commit-ish>...]"
msgstr "git describe [ОПЦИЯ…] [УКÐЗÐТЕЛ_КЪМ_ПОДÐÐ’ÐÐЕ…]"
-#: builtin/describe.c:28
+#: builtin/describe.c:27
msgid "git describe [<options>] --dirty"
msgstr "git describe [ОПЦИЯ…] --dirty"
-#: builtin/describe.c:63
+#: builtin/describe.c:62
msgid "head"
msgstr "оÑновно"
-#: builtin/describe.c:63
+#: builtin/describe.c:62
msgid "lightweight"
msgstr "кратко"
-#: builtin/describe.c:63
+#: builtin/describe.c:62
msgid "annotated"
msgstr "анотирано"
-#: builtin/describe.c:273
+#: builtin/describe.c:275
#, c-format
msgid "annotated tag %s not available"
msgstr "не ÑъщеÑтвува анотиран етикет „%s“"
-#: builtin/describe.c:277
+#: builtin/describe.c:279
#, c-format
msgid "annotated tag %s has no embedded name"
msgstr "в Ð°Ð½Ð¾Ñ‚Ð¸Ñ€Ð°Ð½Ð¸Ñ ÐµÑ‚Ð¸ÐºÐµÑ‚ „%s“ липÑва вградено име"
-#: builtin/describe.c:279
+#: builtin/describe.c:281
#, c-format
msgid "tag '%s' is really '%s' here"
msgstr "етикетът „%s“ тук е вÑъщноÑÑ‚ „%s“"
-#: builtin/describe.c:323
+#: builtin/describe.c:325
#, c-format
msgid "no tag exactly matches '%s'"
msgstr "никой етикет не напаÑва точно „%s“"
-#: builtin/describe.c:325
+#: builtin/describe.c:327
#, c-format
msgid "No exact match on refs or tags, searching to describe\n"
msgstr "ÐÐ¸ÐºÐ¾Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð¸ етикет не напаÑват точно. ТърÑи Ñе по опиÑание\n"
-#: builtin/describe.c:379
+#: builtin/describe.c:381
#, c-format
msgid "finished search at %s\n"
msgstr "Ñ‚ÑŠÑ€Ñенето приключи при „%s“\n"
-#: builtin/describe.c:405
+#: builtin/describe.c:407
#, c-format
msgid ""
"No annotated tags can describe '%s'.\n"
@@ -12708,7 +12745,7 @@ msgstr ""
"Ðикой анотиран етикет не опиÑва „%s“.\n"
"СъщеÑтвуват и неанотирани етикети. Пробвайте Ñ Ð¾Ð¿Ñ†Ð¸Ñта „--tags“."
-#: builtin/describe.c:409
+#: builtin/describe.c:411
#, c-format
msgid ""
"No tags can describe '%s'.\n"
@@ -12717,12 +12754,12 @@ msgstr ""
"Ðикой етикет не опиÑва „%s“.\n"
"Пробвайте Ñ Ð¾Ð¿Ñ†Ð¸Ñта „--always“ или Ñъздайте етикети."
-#: builtin/describe.c:439
+#: builtin/describe.c:441
#, c-format
msgid "traversed %lu commits\n"
msgstr "претърÑени Ñа %lu подаваниÑ\n"
-#: builtin/describe.c:442
+#: builtin/describe.c:444
#, c-format
msgid ""
"more than %i tags found; listed %i most recent\n"
@@ -12731,93 +12768,93 @@ msgstr ""
"открити Ñа над %i етикета, изведени Ñа поÑледните %i,\n"
"Ñ‚ÑŠÑ€Ñенето бе прекратено при „%s“.\n"
-#: builtin/describe.c:510
+#: builtin/describe.c:512
#, c-format
msgid "describe %s\n"
msgstr "опиÑание на „%s“\n"
-#: builtin/describe.c:513
+#: builtin/describe.c:515
#, c-format
msgid "Not a valid object name %s"
msgstr "Ðеправилно име на обект „%s“"
-#: builtin/describe.c:521
+#: builtin/describe.c:523
#, c-format
msgid "%s is neither a commit nor blob"
msgstr "„%s“ не е нито подаване, нито обект-BLOB"
-#: builtin/describe.c:535
+#: builtin/describe.c:537
msgid "find the tag that comes after the commit"
msgstr "откриване на етикета, който Ñледва подаване"
-#: builtin/describe.c:536
+#: builtin/describe.c:538
msgid "debug search strategy on stderr"
msgstr ""
"извеждане на Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° траÑиране на ÑтратегиÑта за Ñ‚ÑŠÑ€Ñене на "
"Ñтандартната грешка"
-#: builtin/describe.c:537
+#: builtin/describe.c:539
msgid "use any ref"
msgstr "използване на произволен указател"
-#: builtin/describe.c:538
+#: builtin/describe.c:540
msgid "use any tag, even unannotated"
msgstr "използване на вÑеки етикет — включително и неанотираните"
-#: builtin/describe.c:539
+#: builtin/describe.c:541
msgid "always use long format"
msgstr "винаги да Ñе ползва дългиÑÑ‚ формат"
-#: builtin/describe.c:540
+#: builtin/describe.c:542
msgid "only follow first parent"
msgstr "проÑледÑване Ñамо на Ð¿ÑŠÑ€Ð²Ð¸Ñ Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»"
-#: builtin/describe.c:543
+#: builtin/describe.c:545
msgid "only output exact matches"
msgstr "извеждане Ñамо на точните ÑъвпадениÑ"
-#: builtin/describe.c:545
+#: builtin/describe.c:547
msgid "consider <n> most recent tags (default: 10)"
msgstr "да Ñе Ñ‚ÑŠÑ€Ñи Ñамо в този БРОЙ поÑледни етикети (Ñтандартно: 10)"
-#: builtin/describe.c:547
+#: builtin/describe.c:549
msgid "only consider tags matching <pattern>"
msgstr "да Ñе Ñ‚ÑŠÑ€Ñи Ñамо измежду етикетите напаÑващи този ШÐБЛОÐ"
-#: builtin/describe.c:549
+#: builtin/describe.c:551
msgid "do not consider tags matching <pattern>"
msgstr "да не Ñе Ñ‚ÑŠÑ€Ñи измежду етикетите напаÑващи този ШÐБЛОÐ"
-#: builtin/describe.c:551 builtin/name-rev.c:422
+#: builtin/describe.c:553 builtin/name-rev.c:426
msgid "show abbreviated commit object as fallback"
msgstr "извеждане на Ñъкратено име на обект като резервен вариант"
-#: builtin/describe.c:552 builtin/describe.c:555
+#: builtin/describe.c:554 builtin/describe.c:557
msgid "mark"
msgstr "ÐœÐРКЕР"
-#: builtin/describe.c:553
+#: builtin/describe.c:555
msgid "append <mark> on dirty working tree (default: \"-dirty\")"
msgstr "добавÑне на такъв ÐœÐРКЕР на работното дърво (Ñтандартно е „-dirty“)"
-#: builtin/describe.c:556
+#: builtin/describe.c:558
msgid "append <mark> on broken working tree (default: \"-broken\")"
msgstr ""
"добавÑне на такъв ÐœÐРКЕР на Ñчупеното работно дърво (Ñтандартно е „-broken“)"
-#: builtin/describe.c:574
+#: builtin/describe.c:576
msgid "--long is incompatible with --abbrev=0"
msgstr "Опциите „--long“ и „--abbrev=0“ Ñа неÑъвмеÑтими"
-#: builtin/describe.c:603
+#: builtin/describe.c:605
msgid "No names found, cannot describe anything."
msgstr "Ðе Ñа открити имена — нищо не може да бъде опиÑано."
-#: builtin/describe.c:654
+#: builtin/describe.c:656
msgid "--dirty is incompatible with commit-ishes"
msgstr "опциÑта „--dirty“ е неÑъвмеÑтима Ñ ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ» към подаване"
-#: builtin/describe.c:656
+#: builtin/describe.c:658
msgid "--broken is incompatible with commit-ishes"
msgstr "опциÑта „--broken“ е неÑъвмеÑтима Ñ ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ» към подаване"
@@ -12854,27 +12891,27 @@ msgstr "зададен е неподдържан обект „%s“."
msgid "git difftool [<options>] [<commit> [<commit>]] [--] [<path>...]"
msgstr "git difftool [ОПЦИЯ…] [ПОДÐÐ’ÐÐЕ [ПОДÐÐ’ÐÐЕ]] [[--] ПЪТ…]"
-#: builtin/difftool.c:253
+#: builtin/difftool.c:260
#, c-format
msgid "failed: %d"
msgstr "неуÑпешно дейÑтвие Ñ Ð¸Ð·Ñ…Ð¾Ð´ÐµÐ½ код: %d"
-#: builtin/difftool.c:295
+#: builtin/difftool.c:302
#, c-format
msgid "could not read symlink %s"
msgstr "Ñимволната връзка „%s“ не може да бъде прочетена"
-#: builtin/difftool.c:297
+#: builtin/difftool.c:304
#, c-format
msgid "could not read symlink file %s"
msgstr "файлът, Ñочен от Ñимволната връзка „%s“, не може да бъде прочетен"
-#: builtin/difftool.c:305
+#: builtin/difftool.c:312
#, c-format
msgid "could not read object %s for symlink %s"
msgstr "обектът „%s“ за Ñимволната връзка „%s“ не може да бъде прочетен"
-#: builtin/difftool.c:406
+#: builtin/difftool.c:413
msgid ""
"combined diff formats('-c' and '--cc') are not supported in\n"
"directory diff mode('-d' and '--dir-diff')."
@@ -12882,55 +12919,55 @@ msgstr ""
"комбинираните формати на разликите („-c“ и „--cc“) не Ñе поддържат\n"
"в режима за разлики върху директории („-d“ и „--dir-diff“)."
-#: builtin/difftool.c:626
+#: builtin/difftool.c:634
#, c-format
msgid "both files modified: '%s' and '%s'."
msgstr "и двата файла Ñа променени: „%s“ и „%s“."
-#: builtin/difftool.c:628
+#: builtin/difftool.c:636
msgid "working tree file has been left."
msgstr "работното дърво е изоÑтавено."
-#: builtin/difftool.c:639
+#: builtin/difftool.c:647
#, c-format
msgid "temporary files exist in '%s'."
msgstr "в „%s“ има временни файлове."
-#: builtin/difftool.c:640
+#: builtin/difftool.c:648
msgid "you may want to cleanup or recover these."
msgstr "възможно е да ги изчиÑтите или възÑтановите"
-#: builtin/difftool.c:689
+#: builtin/difftool.c:697
msgid "use `diff.guitool` instead of `diff.tool`"
msgstr "използвайте „diff.guitool“ вмеÑто „diff.tool“"
-#: builtin/difftool.c:691
+#: builtin/difftool.c:699
msgid "perform a full-directory diff"
msgstr "разлика по директории"
-#: builtin/difftool.c:693
+#: builtin/difftool.c:701
msgid "do not prompt before launching a diff tool"
msgstr "Ñтартиране на ПРОГРÐÐœÐта за разлики без предупреждение"
-#: builtin/difftool.c:698
+#: builtin/difftool.c:706
msgid "use symlinks in dir-diff mode"
msgstr "Ñледване на Ñимволните връзки при разлика по директории"
-#: builtin/difftool.c:699
+#: builtin/difftool.c:707
msgid "tool"
msgstr "ПРОГРÐÐœÐ"
-#: builtin/difftool.c:700
+#: builtin/difftool.c:708
msgid "use the specified diff tool"
msgstr "използване на указаната ПРОГРÐÐœÐ"
-#: builtin/difftool.c:702
+#: builtin/difftool.c:710
msgid "print a list of diff tools that may be used with `--tool`"
msgstr ""
"извеждане на ÑпиÑък Ñ Ð²Ñички ПРОГРÐМи, които може да Ñе ползват Ñ Ð¾Ð¿Ñ†Ð¸Ñта „--"
"tool“"
-#: builtin/difftool.c:705
+#: builtin/difftool.c:713
msgid ""
"make 'git-difftool' exit when an invoked diff tool returns a non - zero exit "
"code"
@@ -12938,31 +12975,31 @@ msgstr ""
"„git-difftool“ да Ñпре работа, когато Ñтартираната ПРОГРÐМРзавърши Ñ "
"ненулев код"
-#: builtin/difftool.c:708
+#: builtin/difftool.c:716
msgid "specify a custom command for viewing diffs"
msgstr "команда за разглеждане на разлики"
-#: builtin/difftool.c:709
+#: builtin/difftool.c:717
msgid "passed to `diff`"
msgstr "подава Ñе към „diff“"
-#: builtin/difftool.c:724
+#: builtin/difftool.c:732
msgid "difftool requires worktree or --no-index"
msgstr "„git-difftool“ изиÑква работно дърво или опциÑта „--no-index“"
-#: builtin/difftool.c:731
+#: builtin/difftool.c:739
msgid "--dir-diff is incompatible with --no-index"
msgstr "опциите „--dir-diff“ и „--no-index“ Ñа неÑъвмеÑтими"
-#: builtin/difftool.c:734
+#: builtin/difftool.c:742
msgid "--gui, --tool and --extcmd are mutually exclusive"
msgstr "опциите „--gui“, „--tool“ и „--extcmd“ Ñа неÑъвмеÑтими една Ñ Ð´Ñ€ÑƒÐ³Ð°"
-#: builtin/difftool.c:742
+#: builtin/difftool.c:750
msgid "no <tool> given for --tool=<tool>"
msgstr "не е зададена програма за „--tool=ПРОГРÐМГ"
-#: builtin/difftool.c:749
+#: builtin/difftool.c:757
msgid "no <cmd> given for --extcmd=<cmd>"
msgstr "не е зададена команда за „--extcmd=КОМÐÐДГ"
@@ -13002,160 +13039,185 @@ msgstr ""
msgid "git fast-export [rev-list-opts]"
msgstr "git fast-export [ОПЦИИ_ЗÐ_СПИСЪКÐ_С_ВЕРСИИ]"
-#: builtin/fast-export.c:1124
+#: builtin/fast-export.c:852
+msgid "Error: Cannot export nested tags unless --mark-tags is specified."
+msgstr ""
+"Грешка: непреките етикети не Ñе изнаÑÑÑ‚, оÑвен ако не зададете „--mark-tags“."
+
+#: builtin/fast-export.c:1152
msgid "show progress after <n> objects"
msgstr "Съобщение за напредъка на вÑеки такъв БРОЙ обекта"
-#: builtin/fast-export.c:1126
+#: builtin/fast-export.c:1154
msgid "select handling of signed tags"
msgstr "Как да Ñе обработват подпиÑаните етикети"
-#: builtin/fast-export.c:1129
+#: builtin/fast-export.c:1157
msgid "select handling of tags that tag filtered objects"
msgstr "Как да Ñе обработват етикетите на филтрираните обекти"
-#: builtin/fast-export.c:1132
+#: builtin/fast-export.c:1160
msgid "select handling of commit messages in an alternate encoding"
msgstr ""
"как да Ñе обработват ÑъобщениÑта за подаване, които Ñа в друго кодиране"
-#: builtin/fast-export.c:1135
+#: builtin/fast-export.c:1163
msgid "Dump marks to this file"
msgstr "Запазване на маркерите в този ФÐЙЛ"
-#: builtin/fast-export.c:1137
+#: builtin/fast-export.c:1165
msgid "Import marks from this file"
msgstr "ВнаÑÑне на маркерите от този ФÐЙЛ"
-#: builtin/fast-export.c:1139
+#: builtin/fast-export.c:1169
+msgid "Import marks from this file if it exists"
+msgstr "ВнаÑÑне на маркерите от този ФÐЙЛ, ако ÑъщеÑтвува"
+
+#: builtin/fast-export.c:1171
msgid "Fake a tagger when tags lack one"
msgstr "Да Ñе използва изкуÑтвено име на човек при липÑа на задаващ етикета"
-#: builtin/fast-export.c:1141
+#: builtin/fast-export.c:1173
msgid "Output full tree for each commit"
msgstr "Извеждане на цÑлото дърво за вÑÑко подаване"
-#: builtin/fast-export.c:1143
+#: builtin/fast-export.c:1175
msgid "Use the done feature to terminate the stream"
msgstr "Използване на маркер за завършване на потока"
-#: builtin/fast-export.c:1144
+#: builtin/fast-export.c:1176
msgid "Skip output of blob data"
msgstr "Без извеждане на Ñъдържанието на обектите-BLOB"
-#: builtin/fast-export.c:1145 builtin/log.c:1632
+#: builtin/fast-export.c:1177 builtin/log.c:1633
msgid "refspec"
msgstr "УКÐЗÐТЕЛ_ÐÐ_ВЕРСИЯ"
-#: builtin/fast-export.c:1146
+#: builtin/fast-export.c:1178
msgid "Apply refspec to exported refs"
msgstr "Прилагане на УКÐЗÐТЕЛÑ_ÐÐ_ВЕРСИЯ към изнеÑените указатели"
-#: builtin/fast-export.c:1147
+#: builtin/fast-export.c:1179
msgid "anonymize output"
msgstr "анонимизиране на извежданата информациÑ"
-#: builtin/fast-export.c:1149
+#: builtin/fast-export.c:1181
msgid "Reference parents which are not in fast-export stream by object id"
msgstr ""
"Указване на родителите, които не Ñа в потока на бързо изнаÑÑне, Ñ "
"идентификатор на обект"
-#: builtin/fast-export.c:1151
+#: builtin/fast-export.c:1183
msgid "Show original object ids of blobs/commits"
msgstr "Извеждане на първоначалните идентификатори на обектите BLOB/подавÑниÑ"
-#: builtin/fetch.c:30
+#: builtin/fast-export.c:1185
+msgid "Label tags with mark ids"
+msgstr "Задаване на идентификатори на маркери на етикетите"
+
+#: builtin/fast-export.c:1220
+msgid "Cannot pass both --import-marks and --import-marks-if-exists"
+msgstr "опциите „--import-marks“ и „--import-marks-if-exists“ Ñа неÑъвмеÑтими"
+
+#: builtin/fetch.c:34
msgid "git fetch [<options>] [<repository> [<refspec>...]]"
msgstr "git fetch [ОПЦИЯ…] [ХРÐÐИЛИЩЕ [УКÐЗÐТЕЛ…]]"
-#: builtin/fetch.c:31
+#: builtin/fetch.c:35
msgid "git fetch [<options>] <group>"
msgstr "git fetch [ОПЦИЯ…] ГРУПÐ"
-#: builtin/fetch.c:32
+#: builtin/fetch.c:36
msgid "git fetch --multiple [<options>] [(<repository> | <group>)...]"
msgstr "git fetch --multiple [ОПЦИЯ…] [(ХРÐÐИЛИЩЕ | ГРУПÐ)…]"
-#: builtin/fetch.c:33
+#: builtin/fetch.c:37
msgid "git fetch --all [<options>]"
msgstr "git fetch --all [ОПЦИЯ…]"
-#: builtin/fetch.c:125 builtin/pull.c:203
+#: builtin/fetch.c:115
+msgid "fetch.parallel cannot be negative"
+msgstr "опциÑта „fetch.parallel“ Ñ‚Ñ€Ñбва да е неотрицателна"
+
+#: builtin/fetch.c:138 builtin/pull.c:204
msgid "fetch from all remotes"
msgstr "доÑтавÑне от вÑички отдалечени хранилища"
-#: builtin/fetch.c:127 builtin/pull.c:206
+#: builtin/fetch.c:140 builtin/pull.c:248
+msgid "set upstream for git pull/fetch"
+msgstr "задаване на клон за Ñледене за издърпване/доÑтавÑне"
+
+#: builtin/fetch.c:142 builtin/pull.c:207
msgid "append to .git/FETCH_HEAD instead of overwriting"
msgstr "добавÑне към „.git/FETCH_HEAD“ вмеÑто замÑна"
-#: builtin/fetch.c:129 builtin/pull.c:209
+#: builtin/fetch.c:144 builtin/pull.c:210
msgid "path to upload pack on remote end"
msgstr "отдалечен път, където да Ñе качи пакетът"
-#: builtin/fetch.c:130
+#: builtin/fetch.c:145
msgid "force overwrite of local reference"
msgstr "принудително презапиÑване на локален указател"
-#: builtin/fetch.c:132
+#: builtin/fetch.c:147
msgid "fetch from multiple remotes"
msgstr "доÑтавÑне от множеÑтво отдалечени хранилища"
-#: builtin/fetch.c:134 builtin/pull.c:213
+#: builtin/fetch.c:149 builtin/pull.c:214
msgid "fetch all tags and associated objects"
msgstr "доÑтавÑне на вÑички етикети и принадлежащи обекти"
-#: builtin/fetch.c:136
+#: builtin/fetch.c:151
msgid "do not fetch all tags (--no-tags)"
msgstr "без доÑтавÑнето на вÑички етикети „--no-tags“"
-#: builtin/fetch.c:138
+#: builtin/fetch.c:153
msgid "number of submodules fetched in parallel"
msgstr "брой подмодули доÑтавени паралелно"
-#: builtin/fetch.c:140 builtin/pull.c:216
+#: builtin/fetch.c:155 builtin/pull.c:217
msgid "prune remote-tracking branches no longer on remote"
msgstr "окаÑÑ‚Ñ€Ñне на клоните ÑледÑщи вече неÑъщеÑтвуващи отдалечени клони"
-#: builtin/fetch.c:142
+#: builtin/fetch.c:157
msgid "prune local tags no longer on remote and clobber changed tags"
msgstr ""
"окаÑÑ‚Ñ€Ñне на локалните етикети, които вече не ÑъщеÑтвуват в отдалеченото "
"хранилище и презапиÑване на променените"
-#: builtin/fetch.c:143 builtin/fetch.c:166 builtin/pull.c:140
+#: builtin/fetch.c:158 builtin/fetch.c:181 builtin/pull.c:141
msgid "on-demand"
msgstr "ПРИ ÐУЖДÐ"
-#: builtin/fetch.c:144
+#: builtin/fetch.c:159
msgid "control recursive fetching of submodules"
msgstr "управление на рекурÑивното доÑтавÑне на подмодулите"
-#: builtin/fetch.c:148 builtin/pull.c:224
+#: builtin/fetch.c:163 builtin/pull.c:225
msgid "keep downloaded pack"
msgstr "запазване на изтеглените пакети Ñ Ð¾Ð±ÐµÐºÑ‚Ð¸"
-#: builtin/fetch.c:150
+#: builtin/fetch.c:165
msgid "allow updating of HEAD ref"
msgstr "позволÑване на обновÑването на ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ â€žHEAD“"
-#: builtin/fetch.c:153 builtin/fetch.c:159 builtin/pull.c:227
+#: builtin/fetch.c:168 builtin/fetch.c:174 builtin/pull.c:228
msgid "deepen history of shallow clone"
msgstr "задълбочаване на иÑториÑта на плитко хранилище"
-#: builtin/fetch.c:155
+#: builtin/fetch.c:170
msgid "deepen history of shallow repository based on time"
msgstr "задълбочаване на иÑториÑта на плитко хранилище до определено време"
-#: builtin/fetch.c:161 builtin/pull.c:230
+#: builtin/fetch.c:176 builtin/pull.c:231
msgid "convert to a complete repository"
msgstr "превръщане в пълно хранилище"
-#: builtin/fetch.c:164
+#: builtin/fetch.c:179
msgid "prepend this to submodule path output"
msgstr "добавÑне на това пред Ð¿ÑŠÑ‚Ñ Ð½Ð° подмодула"
-#: builtin/fetch.c:167
+#: builtin/fetch.c:182
msgid ""
"default for recursive fetching of submodules (lower priority than config "
"files)"
@@ -13163,90 +13225,90 @@ msgstr ""
"Ñтандартно рекурÑивно изтеглÑне на подмодулите (файловете Ñ Ð½Ð°Ñтройки Ñа Ñ "
"приоритет)"
-#: builtin/fetch.c:171 builtin/pull.c:233
+#: builtin/fetch.c:186 builtin/pull.c:234
msgid "accept refs that update .git/shallow"
msgstr "приемане на указатели, които обновÑват „.git/shallow“"
-#: builtin/fetch.c:172 builtin/pull.c:235
+#: builtin/fetch.c:187 builtin/pull.c:236
msgid "refmap"
msgstr "КÐРТÐ_С_УКÐЗÐТЕЛИ"
-#: builtin/fetch.c:173 builtin/pull.c:236
+#: builtin/fetch.c:188 builtin/pull.c:237
msgid "specify fetch refmap"
msgstr "указване на КÐРТÐта_С_УКÐЗÐТЕЛИ за доÑтавÑне"
-#: builtin/fetch.c:180
+#: builtin/fetch.c:195
msgid "report that we have only objects reachable from this object"
msgstr "докладване, че вÑички обекти могат Ñа доÑтижими при започване от този"
-#: builtin/fetch.c:183
+#: builtin/fetch.c:198
msgid "run 'gc --auto' after fetching"
msgstr "изпълнÑване на „gc --auto“ Ñлед доÑтавÑне"
-#: builtin/fetch.c:185 builtin/pull.c:245
+#: builtin/fetch.c:200 builtin/pull.c:246
msgid "check for forced-updates on all updated branches"
msgstr "проверка за принудителни обновÑÐ²Ð°Ð½Ð¸Ñ Ð½Ð° вÑички клони"
-#: builtin/fetch.c:491
+#: builtin/fetch.c:510
msgid "Couldn't find remote ref HEAD"
msgstr "УказателÑÑ‚ „HEAD“ в отдалеченото хранилище не може да бъде открит"
-#: builtin/fetch.c:630
+#: builtin/fetch.c:650
#, c-format
msgid "configuration fetch.output contains invalid value %s"
msgstr "наÑтройката „fetch.output“ е Ñ Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»Ð½Ð° ÑтойноÑÑ‚ „%s“"
-#: builtin/fetch.c:728
+#: builtin/fetch.c:748
#, c-format
msgid "object %s not found"
msgstr "обектът „%s“ липÑва"
-#: builtin/fetch.c:732
+#: builtin/fetch.c:752
msgid "[up to date]"
msgstr "[актуализиран]"
-#: builtin/fetch.c:745 builtin/fetch.c:761 builtin/fetch.c:833
+#: builtin/fetch.c:765 builtin/fetch.c:781 builtin/fetch.c:853
msgid "[rejected]"
msgstr "[отхвърлен]"
-#: builtin/fetch.c:746
+#: builtin/fetch.c:766
msgid "can't fetch in current branch"
msgstr "в Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ ÐºÐ»Ð¾Ð½ не може да Ñе доÑтавÑ"
-#: builtin/fetch.c:756
+#: builtin/fetch.c:776
msgid "[tag update]"
msgstr "[обновÑване на етикетите]"
-#: builtin/fetch.c:757 builtin/fetch.c:794 builtin/fetch.c:816
-#: builtin/fetch.c:828
+#: builtin/fetch.c:777 builtin/fetch.c:814 builtin/fetch.c:836
+#: builtin/fetch.c:848
msgid "unable to update local ref"
msgstr "локален указател не може да бъде обновен"
-#: builtin/fetch.c:761
+#: builtin/fetch.c:781
msgid "would clobber existing tag"
msgstr "ÑъщеÑтвуващ етикет ще бъде презапиÑан"
-#: builtin/fetch.c:783
+#: builtin/fetch.c:803
msgid "[new tag]"
msgstr "[нов етикет]"
-#: builtin/fetch.c:786
+#: builtin/fetch.c:806
msgid "[new branch]"
msgstr "[нов клон]"
-#: builtin/fetch.c:789
+#: builtin/fetch.c:809
msgid "[new ref]"
msgstr "[нов указател]"
-#: builtin/fetch.c:828
+#: builtin/fetch.c:848
msgid "forced update"
msgstr "принудително обновÑване"
-#: builtin/fetch.c:833
+#: builtin/fetch.c:853
msgid "non-fast-forward"
msgstr "ÑъщинÑко Ñливане"
-#: builtin/fetch.c:854
+#: builtin/fetch.c:874
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"
@@ -13257,7 +13319,7 @@ msgstr ""
"\n"
" git config fetch.showForcedUpdates true"
-#: builtin/fetch.c:858
+#: builtin/fetch.c:878
#, c-format
msgid ""
"It took %.2f seconds to check forced updates. You can use\n"
@@ -13271,24 +13333,24 @@ msgstr ""
"\n"
" git config fetch.showForcedUpdates false\n"
-#: builtin/fetch.c:888
+#: builtin/fetch.c:908
#, c-format
msgid "%s did not send all necessary objects\n"
msgstr "хранилището „%s“ не изпрати вÑички необходими обекти\n"
-#: builtin/fetch.c:909
+#: builtin/fetch.c:929
#, c-format
msgid "reject %s because shallow roots are not allowed to be updated"
msgstr ""
"отхвърлÑне на върха „%s“, защото плитките хранилища не могат да бъдат "
"обновÑвани"
-#: builtin/fetch.c:1000 builtin/fetch.c:1131
+#: builtin/fetch.c:1020 builtin/fetch.c:1157
#, c-format
msgid "From %.*s\n"
msgstr "От %.*s\n"
-#: builtin/fetch.c:1011
+#: builtin/fetch.c:1031
#, c-format
msgid ""
"some local refs could not be updated; try running\n"
@@ -13298,58 +13360,80 @@ msgstr ""
"„git remote prune %s“, за да премахнете оÑтарелите клони, които\n"
"предизвикват конфликта"
-#: builtin/fetch.c:1101
+#: builtin/fetch.c:1127
#, c-format
msgid " (%s will become dangling)"
msgstr " (обектът „%s“ ще Ñе окаже извън клон)"
-#: builtin/fetch.c:1102
+#: builtin/fetch.c:1128
#, c-format
msgid " (%s has become dangling)"
msgstr " (обектът „%s“ вече е извън клон)"
-#: builtin/fetch.c:1134
+#: builtin/fetch.c:1160
msgid "[deleted]"
msgstr "[изтрит]"
-#: builtin/fetch.c:1135 builtin/remote.c:1036
+#: builtin/fetch.c:1161 builtin/remote.c:1036
msgid "(none)"
msgstr "(нищо)"
-#: builtin/fetch.c:1158
+#: builtin/fetch.c:1184
#, c-format
msgid "Refusing to fetch into current branch %s of non-bare repository"
msgstr "Ðе може да доÑтавите в Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ ÐºÐ»Ð¾Ð½ „%s“ на хранилище, което не е голо"
-#: builtin/fetch.c:1177
+#: builtin/fetch.c:1203
#, c-format
msgid "Option \"%s\" value \"%s\" is not valid for %s"
msgstr "СтойноÑтта „%2$s“ за опциÑта „%1$s“ не е ÑъвмеÑтима Ñ â€ž%3$s“"
-#: builtin/fetch.c:1180
+#: builtin/fetch.c:1206
#, c-format
msgid "Option \"%s\" is ignored for %s\n"
msgstr "ОпциÑта „%s“ Ñе преÑкача при „%s“\n"
-#: builtin/fetch.c:1484
+#: builtin/fetch.c:1414
+msgid "multiple branch detected, incompatible with --set-upstream"
+msgstr ""
+"заÑечени Ñа множеÑтво клони, това е неÑъвмеÑтимо Ñ Ð¾Ð¿Ñ†Ð¸Ñта „--set-upstream“"
+
+#: builtin/fetch.c:1429
+msgid "not setting upstream for a remote remote-tracking branch"
+msgstr "не може да указвате клон за Ñледене на отдалечен етикет"
+
+#: builtin/fetch.c:1431
+msgid "not setting upstream for a remote tag"
+msgstr "не може да указвате клон за Ñледене на отдалечен етикет"
+
+#: builtin/fetch.c:1433
+msgid "unknown branch type"
+msgstr "непознат вид клон"
+
+#: builtin/fetch.c:1435
+msgid ""
+"no source branch found.\n"
+"you need to specify exactly one branch with the --set-upstream option."
+msgstr ""
+"не е открит клон за Ñледене.\n"
+"ТрÑбва изрично да зададете един клон Ñ Ð¾Ð¿Ñ†Ð¸Ñта „--set-upstream option“."
+
+#: builtin/fetch.c:1561 builtin/fetch.c:1623
#, c-format
msgid "Fetching %s\n"
msgstr "ДоÑтавÑне на „%s“\n"
-#: builtin/fetch.c:1486 builtin/remote.c:100
+#: builtin/fetch.c:1571 builtin/fetch.c:1625 builtin/remote.c:100
#, c-format
msgid "Could not fetch %s"
msgstr "„%s“ не може да Ñе доÑтави"
-#: builtin/fetch.c:1532
-msgid ""
-"--filter can only be used with the remote configured in extensions."
-"partialClone"
-msgstr ""
-"опциÑта „--filter“ може да Ñе ползва Ñамо Ñ Ð¾Ñ‚Ð´Ð°Ð»ÐµÑ‡ÐµÐ½Ð¾Ñ‚Ð¾ хранилище указано в "
-"наÑтройката „extensions.partialClone“"
+#: builtin/fetch.c:1583
+#, c-format
+msgid "could not fetch '%s' (exit code: %d)\n"
+msgstr "„%s“ не може да Ñе доÑтави (изходниÑÑ‚ код е: %d)\n"
-#: builtin/fetch.c:1556
+#: builtin/fetch.c:1685
msgid ""
"No remote repository specified. Please, specify either a URL or a\n"
"remote name from which new revisions should be fetched."
@@ -13357,45 +13441,45 @@ msgstr ""
"Ðе Ñте указали отдалечено хранилище. Задайте или адреÑ, или име\n"
"на отдалечено хранилище, откъдето да Ñе доÑтавÑÑ‚ новите верÑии."
-#: builtin/fetch.c:1593
+#: builtin/fetch.c:1722
msgid "You need to specify a tag name."
msgstr "ТрÑбва да укажете име на етикет."
-#: builtin/fetch.c:1644
+#: builtin/fetch.c:1774
msgid "Negative depth in --deepen is not supported"
msgstr "Отрицателна дълбочина като аргумент на „--deepen“ не Ñе поддържа"
-#: builtin/fetch.c:1646
+#: builtin/fetch.c:1776
msgid "--deepen and --depth are mutually exclusive"
-msgstr "Опциите „--deepen“ и „--depth“ Ñа неÑъвмеÑтими една Ñ Ð´Ñ€ÑƒÐ³Ð°"
+msgstr "опциите „--deepen“ и „--depth“ Ñа неÑъвмеÑтими"
-#: builtin/fetch.c:1651
+#: builtin/fetch.c:1781
msgid "--depth and --unshallow cannot be used together"
msgstr "опциите „--depth“ и „--unshallow“ Ñа неÑъвмеÑтими"
-#: builtin/fetch.c:1653
+#: builtin/fetch.c:1783
msgid "--unshallow on a complete repository does not make sense"
msgstr "не можете да използвате опциÑта „--unshallow“ върху пълно хранилище"
-#: builtin/fetch.c:1669
+#: builtin/fetch.c:1799
msgid "fetch --all does not take a repository argument"
msgstr "към „git fetch --all“ не можете да добавите аргумент — хранилище"
-#: builtin/fetch.c:1671
+#: builtin/fetch.c:1801
msgid "fetch --all does not make sense with refspecs"
msgstr ""
"към „git fetch --all“ не можете да добавите аргумент — указател на верÑиÑ"
-#: builtin/fetch.c:1680
+#: builtin/fetch.c:1810
#, c-format
msgid "No such remote or remote group: %s"
msgstr "ÐÑма нито отдалечено хранилище, нито група от хранилища на име „%s“"
-#: builtin/fetch.c:1687
+#: builtin/fetch.c:1817
msgid "Fetching a group and specifying refspecs does not make sense"
msgstr "Указването на група и указването на верÑÐ¸Ñ Ñа неÑъвмеÑтими"
-#: builtin/fetch.c:1703
+#: builtin/fetch.c:1835
msgid ""
"--filter can only be used with the remote configured in extensions."
"partialclone"
@@ -13735,7 +13819,7 @@ msgstr "„%s“: липÑващ обект"
msgid "invalid parameter: expected sha1, got '%s'"
msgstr "неправилен параметър: очаква Ñе SHA1, а бе получено: „%s“"
-#: builtin/gc.c:34
+#: builtin/gc.c:35
msgid "git gc [<options>]"
msgstr "git gc [ОПЦИЯ…]"
@@ -13749,17 +13833,17 @@ msgstr "ÐеуÑпешно изпълнение на „fstat“ върху „%
msgid "failed to parse '%s' value '%s'"
msgstr "ÑтойноÑтта на „%s“ — „%s“ не може да Ñе анализира"
-#: builtin/gc.c:476 builtin/init-db.c:55
+#: builtin/gc.c:475 builtin/init-db.c:55
#, c-format
msgid "cannot stat '%s'"
msgstr "не може да Ñе получи Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ñ‡Ñ€ÐµÐ· „stat“ за директориÑта „%s“"
-#: builtin/gc.c:485 builtin/notes.c:240 builtin/tag.c:529
+#: builtin/gc.c:484 builtin/notes.c:240 builtin/tag.c:529
#, c-format
msgid "cannot read '%s'"
msgstr "файлът „%s“ не може да бъде прочетен"
-#: builtin/gc.c:492
+#: builtin/gc.c:491
#, c-format
msgid ""
"The last gc run reported the following. Please correct the root cause\n"
@@ -13776,58 +13860,58 @@ msgstr ""
"\n"
"%s"
-#: builtin/gc.c:540
+#: builtin/gc.c:539
msgid "prune unreferenced objects"
msgstr "окаÑÑ‚Ñ€Ñне на обектите, към които нищо не Ñочи"
-#: builtin/gc.c:542
+#: builtin/gc.c:541
msgid "be more thorough (increased runtime)"
msgstr "изчерпателно Ñ‚ÑŠÑ€Ñене на боклука (за Ñметка на повече време работа)"
-#: builtin/gc.c:543
+#: builtin/gc.c:542
msgid "enable auto-gc mode"
msgstr "включване на автоматичното Ñъбиране на боклука (auto-gc)"
-#: builtin/gc.c:546
+#: builtin/gc.c:545
msgid "force running gc even if there may be another gc running"
msgstr ""
"изрично Ñтартиране на Ñъбирането на боклука, дори и ако вече работи друго "
"Ñъбиране"
-#: builtin/gc.c:549
+#: builtin/gc.c:548
msgid "repack all other packs except the largest pack"
msgstr "препакетиране на вÑичко без най-Ð³Ð¾Ð»ÐµÐ¼Ð¸Ñ Ð¿Ð°ÐºÐµÑ‚"
-#: builtin/gc.c:566
+#: builtin/gc.c:565
#, c-format
msgid "failed to parse gc.logexpiry value %s"
msgstr "неразпозната ÑтойноÑÑ‚ на „gc.logexpiry“ %s"
-#: builtin/gc.c:577
+#: builtin/gc.c:576
#, c-format
msgid "failed to parse prune expiry value %s"
msgstr "неразпозната ÑтойноÑÑ‚ на периода за окаÑÑ‚Ñ€Ñне: %s"
-#: builtin/gc.c:597
+#: builtin/gc.c:596
#, c-format
msgid "Auto packing the repository in background for optimum performance.\n"
msgstr ""
"Ðвтоматично пакетиране на заден фон на хранилището за по-добра "
"производителноÑÑ‚.\n"
-#: builtin/gc.c:599
+#: builtin/gc.c:598
#, c-format
msgid "Auto packing the repository for optimum performance.\n"
msgstr "Ðвтоматично пакетиране на хранилището за по-добра производителноÑÑ‚.\n"
-#: builtin/gc.c:600
+#: builtin/gc.c:599
#, c-format
msgid "See \"git help gc\" for manual housekeeping.\n"
msgstr ""
"Погледнете ръководÑтвото за повече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ ÐºÐ°Ðº да изпълните „git help "
"gc“.\n"
-#: builtin/gc.c:640
+#: builtin/gc.c:639
#, c-format
msgid ""
"gc is already running on machine '%s' pid %<PRIuMAX> (use --force if not)"
@@ -13836,7 +13920,7 @@ msgstr ""
"процеÑа: %<PRIuMAX> (ако Ñте Ñигурни, че това не е вÑрно, това използвайте\n"
"опциÑта „--force“)"
-#: builtin/gc.c:695
+#: builtin/gc.c:694
msgid ""
"There are too many unreachable loose objects; run 'git prune' to remove them."
msgstr ""
@@ -13862,271 +13946,271 @@ msgstr "зададен е неправилен брой нишки (%d) за %s"
#. grep.threads
#.
#: builtin/grep.c:287 builtin/index-pack.c:1534 builtin/index-pack.c:1727
-#: builtin/pack-objects.c:2728
+#: builtin/pack-objects.c:2708
#, c-format
msgid "no threads support, ignoring %s"
msgstr "липÑва поддръжка за нишки. „%s“ ще Ñе пренебрегне"
-#: builtin/grep.c:467 builtin/grep.c:591 builtin/grep.c:633
+#: builtin/grep.c:467 builtin/grep.c:592 builtin/grep.c:635
#, c-format
msgid "unable to read tree (%s)"
msgstr "дървото не може да бъде прочетено (%s)"
-#: builtin/grep.c:648
+#: builtin/grep.c:650
#, c-format
msgid "unable to grep from object of type %s"
msgstr "не може да Ñе изпълни „grep“ от обект от вида %s"
-#: builtin/grep.c:714
+#: builtin/grep.c:716
#, c-format
msgid "switch `%c' expects a numerical value"
msgstr "опциÑта „%c“ очаква чиÑло за аргумент"
-#: builtin/grep.c:813
+#: builtin/grep.c:815
msgid "search in index instead of in the work tree"
msgstr "Ñ‚ÑŠÑ€Ñене в индекÑа, а не в работното дърво"
-#: builtin/grep.c:815
+#: builtin/grep.c:817
msgid "find in contents not managed by git"
msgstr "Ñ‚ÑŠÑ€Ñене и във файловете, които не Ñа под управлението на git"
-#: builtin/grep.c:817
+#: builtin/grep.c:819
msgid "search in both tracked and untracked files"
msgstr "Ñ‚ÑŠÑ€Ñене и в Ñледените, и в неÑледените файлове"
-#: builtin/grep.c:819
+#: builtin/grep.c:821
msgid "ignore files specified via '.gitignore'"
msgstr "игнориране на файловете указани в „.gitignore“"
-#: builtin/grep.c:821
+#: builtin/grep.c:823
msgid "recursively search in each submodule"
msgstr "рекурÑивно Ñ‚ÑŠÑ€Ñене във вÑички подмодули"
-#: builtin/grep.c:824
+#: builtin/grep.c:826
msgid "show non-matching lines"
msgstr "извеждане на редовете, които не Ñъвпадат"
-#: builtin/grep.c:826
+#: builtin/grep.c:828
msgid "case insensitive matching"
msgstr "без значение на региÑтъра на буквите (главни/малки)"
-#: builtin/grep.c:828
+#: builtin/grep.c:830
msgid "match patterns only at word boundaries"
msgstr "напаÑване на шаблоните Ñамо по границите на думите"
-#: builtin/grep.c:830
+#: builtin/grep.c:832
msgid "process binary files as text"
msgstr "обработване на двоичните файлове като текÑтови"
-#: builtin/grep.c:832
+#: builtin/grep.c:834
msgid "don't match patterns in binary files"
msgstr "преÑкачане на двоичните файлове"
-#: builtin/grep.c:835
+#: builtin/grep.c:837
msgid "process binary files with textconv filters"
msgstr ""
"обработване на двоичните файлове чрез филтри за преобразуване към текÑÑ‚"
-#: builtin/grep.c:837
+#: builtin/grep.c:839
msgid "search in subdirectories (default)"
msgstr "Ñ‚ÑŠÑ€Ñене в поддиректориите (Ñтандартно)"
-#: builtin/grep.c:839
+#: builtin/grep.c:841
msgid "descend at most <depth> levels"
msgstr "навлизане макÑимално на тази ДЪЛБОЧИÐРв дървото"
-#: builtin/grep.c:843
+#: builtin/grep.c:845
msgid "use extended POSIX regular expressions"
msgstr "разширени регулÑрни изрази по POSIX"
-#: builtin/grep.c:846
+#: builtin/grep.c:848
msgid "use basic POSIX regular expressions (default)"
msgstr "оÑновни регулÑрни изрази по POSIX (Ñтандартно)"
-#: builtin/grep.c:849
+#: builtin/grep.c:851
msgid "interpret patterns as fixed strings"
msgstr "шаблоните Ñа доÑловни низове"
-#: builtin/grep.c:852
+#: builtin/grep.c:854
msgid "use Perl-compatible regular expressions"
msgstr "регулÑрни изрази на Perl"
-#: builtin/grep.c:855
+#: builtin/grep.c:857
msgid "show line numbers"
msgstr "извеждане на номерата на редовете"
-#: builtin/grep.c:856
+#: builtin/grep.c:858
msgid "show column number of first match"
msgstr "извеждане на номера на колоната на първото напаÑване"
-#: builtin/grep.c:857
+#: builtin/grep.c:859
msgid "don't show filenames"
msgstr "без извеждане на имената на файловете"
-#: builtin/grep.c:858
+#: builtin/grep.c:860
msgid "show filenames"
msgstr "извеждане на имената на файловете"
-#: builtin/grep.c:860
+#: builtin/grep.c:862
msgid "show filenames relative to top directory"
msgstr ""
"извеждане на отноÑителните имена на файловете ÑпрÑмо оÑновната Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° "
"хранилището"
-#: builtin/grep.c:862
+#: builtin/grep.c:864
msgid "show only filenames instead of matching lines"
msgstr "извеждане Ñамо на имената на файловете без напаÑващите редове"
-#: builtin/grep.c:864
+#: builtin/grep.c:866
msgid "synonym for --files-with-matches"
msgstr "пÑевдоним на „--files-with-matches“"
-#: builtin/grep.c:867
+#: builtin/grep.c:869
msgid "show only the names of files without match"
msgstr ""
"извеждане Ñамо на имената на файловете, които не Ñъдържат ред, напаÑващ на "
"шаблона"
-#: builtin/grep.c:869
+#: builtin/grep.c:871
msgid "print NUL after filenames"
msgstr "извеждане на Ð½ÑƒÐ»ÐµÐ²Ð¸Ñ Ð·Ð½Ð°Ðº „NUL“ Ñлед вÑÑко име на файл"
-#: builtin/grep.c:872
+#: builtin/grep.c:874
msgid "show only matching parts of a line"
msgstr "извеждане Ñамо на чаÑтите на редовете, които Ñъвпадат"
-#: builtin/grep.c:874
+#: builtin/grep.c:876
msgid "show the number of matches instead of matching lines"
msgstr "извеждане на Ð±Ñ€Ð¾Ñ Ð½Ð° ÑъвпадениÑта вмеÑто напаÑващите редове"
-#: builtin/grep.c:875
+#: builtin/grep.c:877
msgid "highlight matches"
msgstr "оцветÑване на напаÑваниÑта"
-#: builtin/grep.c:877
+#: builtin/grep.c:879
msgid "print empty line between matches from different files"
msgstr "извеждане на празен ред между напаÑваниÑта от различни файлове"
-#: builtin/grep.c:879
+#: builtin/grep.c:881
msgid "show filename only once above matches from same file"
msgstr ""
"извеждане на името на файла Ñамо веднъж за вÑички напаÑÐ²Ð°Ð½Ð¸Ñ Ð¾Ñ‚ този файл"
-#: builtin/grep.c:882
+#: builtin/grep.c:884
msgid "show <n> context lines before and after matches"
msgstr "извеждане на такъв БРОЙ редове преди и Ñлед напаÑваниÑта"
-#: builtin/grep.c:885
+#: builtin/grep.c:887
msgid "show <n> context lines before matches"
msgstr "извеждане на такъв БРОЙ редове преди напаÑваниÑта"
-#: builtin/grep.c:887
+#: builtin/grep.c:889
msgid "show <n> context lines after matches"
msgstr "извеждане на такъв БРОЙ редове Ñлед напаÑваниÑта"
-#: builtin/grep.c:889
+#: builtin/grep.c:891
msgid "use <n> worker threads"
msgstr "използване на такъв БРОЙ работещи нишки"
-#: builtin/grep.c:890
+#: builtin/grep.c:892
msgid "shortcut for -C NUM"
msgstr "пÑевдоним на „-C БРОЙ“"
-#: builtin/grep.c:893
+#: builtin/grep.c:895
msgid "show a line with the function name before matches"
msgstr "извеждане на ред Ñ Ð¸Ð¼ÐµÑ‚Ð¾ на функциÑта, в коÑто е напаÑнат шаблона"
-#: builtin/grep.c:895
+#: builtin/grep.c:897
msgid "show the surrounding function"
msgstr "извеждане на обхващащата функциÑ"
-#: builtin/grep.c:898
+#: builtin/grep.c:900
msgid "read patterns from file"
msgstr "изчитане на шаблоните от ФÐЙЛ"
-#: builtin/grep.c:900
+#: builtin/grep.c:902
msgid "match <pattern>"
msgstr "напаÑване на ШÐБЛОÐ"
-#: builtin/grep.c:902
+#: builtin/grep.c:904
msgid "combine patterns specified with -e"
msgstr "комбиниране на шаблоните указани Ñ Ð¾Ð¿Ñ†Ð¸Ñта „-e“"
-#: builtin/grep.c:914
+#: builtin/grep.c:916
msgid "indicate hit with exit status without output"
msgstr ""
"без извеждане на ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð¸Ð·Ñ…Ð¾Ð´. ИзходниÑÑ‚ код указва наличието на "
"напаÑване"
-#: builtin/grep.c:916
+#: builtin/grep.c:918
msgid "show only matches from files that match all patterns"
msgstr ""
"извеждане на редове Ñамо от файловете, които напаÑват на вÑички шаблони"
-#: builtin/grep.c:918
+#: builtin/grep.c:920
msgid "show parse tree for grep expression"
msgstr "извеждане на дървото за анализ на регулÑÑ€Ð½Ð¸Ñ Ð¸Ð·Ñ€Ð°Ð·"
-#: builtin/grep.c:922
+#: builtin/grep.c:924
msgid "pager"
msgstr "програма за преглед по Ñтраници"
-#: builtin/grep.c:922
+#: builtin/grep.c:924
msgid "show matching files in the pager"
msgstr "извеждане на Ñъвпадащите файлове в програма за преглед по Ñтраници"
-#: builtin/grep.c:926
+#: builtin/grep.c:928
msgid "allow calling of grep(1) (ignored by this build)"
msgstr ""
"позволÑване на Ñтартирането на grep(1) (текущиÑÑ‚ компилат пренебрегва тази "
"опциÑ)"
-#: builtin/grep.c:990
+#: builtin/grep.c:992
msgid "no pattern given"
msgstr "не Ñте задали шаблон"
-#: builtin/grep.c:1026
+#: builtin/grep.c:1028
msgid "--no-index or --untracked cannot be used with revs"
msgstr "опциите „--cached“ и „--untracked“ Ñа неÑъвмеÑтими Ñ Ð²ÐµÑ€Ñии."
-#: builtin/grep.c:1034
+#: builtin/grep.c:1036
#, c-format
msgid "unable to resolve revision: %s"
msgstr "верÑиÑта „%s“ не може бъде открита"
-#: builtin/grep.c:1065
+#: builtin/grep.c:1067
msgid "invalid option combination, ignoring --threads"
msgstr "неправилна ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ Ð¾Ñ‚ опции, „--threads“ ще Ñе пренебрегне"
-#: builtin/grep.c:1068 builtin/pack-objects.c:3416
+#: builtin/grep.c:1070 builtin/pack-objects.c:3400
msgid "no threads support, ignoring --threads"
msgstr "липÑва поддръжка за нишки. „--threads“ ще Ñе пренебрегне"
-#: builtin/grep.c:1071 builtin/index-pack.c:1531 builtin/pack-objects.c:2725
+#: builtin/grep.c:1073 builtin/index-pack.c:1531 builtin/pack-objects.c:2705
#, c-format
msgid "invalid number of threads specified (%d)"
msgstr "зададен е неправилен брой нишки: %d"
-#: builtin/grep.c:1094
+#: builtin/grep.c:1096
msgid "--open-files-in-pager only works on the worktree"
msgstr ""
"опциÑта „--open-files-in-pager“ е ÑъвмеÑтима Ñамо Ñ Ñ‚ÑŠÑ€Ñене в работното дърво"
-#: builtin/grep.c:1117
+#: builtin/grep.c:1119
msgid "option not supported with --recurse-submodules"
msgstr "опциÑта е неÑъвмеÑтима Ñ â€ž--recurse-submodules“"
-#: builtin/grep.c:1123
+#: builtin/grep.c:1125
msgid "--cached or --untracked cannot be used with --no-index"
msgstr "опциите „--cached“ и „--untracked“ Ñа неÑъвмеÑтими Ñ â€ž--no-index“"
-#: builtin/grep.c:1129
+#: builtin/grep.c:1131
msgid "--[no-]exclude-standard cannot be used for tracked contents"
msgstr ""
"опциите „--(no-)exclude-standard“ Ñа неÑъвмеÑтими Ñ Ñ‚ÑŠÑ€Ñене по Ñледени "
"файлове"
-#: builtin/grep.c:1137
+#: builtin/grep.c:1139
msgid "both --cached and trees are given"
msgstr "опциÑта „--cached“ е неÑъвмеÑтима ÑÑŠÑ Ð·Ð°Ð´Ð°Ð²Ð°Ð½Ðµ на дърво"
@@ -14446,7 +14530,7 @@ msgstr ""
msgid "Resolving deltas"
msgstr "Откриване на Ñъответните разлики"
-#: builtin/index-pack.c:1205 builtin/pack-objects.c:2497
+#: builtin/index-pack.c:1205 builtin/pack-objects.c:2481
#, c-format
msgid "unable to create thread: %s"
msgstr "не може да Ñе Ñъздаде нишка: %s"
@@ -14516,7 +14600,7 @@ msgstr "пакетниÑÑ‚ файл не може да бъде запазен"
msgid "cannot store index file"
msgstr "файлът за индекÑа не може да бъде Ñъхранен"
-#: builtin/index-pack.c:1525 builtin/pack-objects.c:2736
+#: builtin/index-pack.c:1525 builtin/pack-objects.c:2716
#, c-format
msgid "bad pack.indexversion=%<PRIu32>"
msgstr "зададена е неправилна верÑÐ¸Ñ Ð¿Ð°ÐºÐµÑ‚Ð¸Ñ€Ð°Ð½Ðµ: „pack.indexversion=%<PRIu32>“"
@@ -14804,74 +14888,74 @@ msgstr "Резултат: %d %s\n"
msgid "git show %s: bad file"
msgstr "git show %s: повреден файл"
-#: builtin/log.c:549 builtin/log.c:643
+#: builtin/log.c:549 builtin/log.c:644
#, c-format
msgid "could not read object %s"
msgstr "обектът не може да бъде прочетен: %s"
-#: builtin/log.c:668
+#: builtin/log.c:669
#, c-format
msgid "unknown type: %d"
msgstr "неизвеÑтен вид: %d"
-#: builtin/log.c:791
+#: builtin/log.c:792
msgid "format.headers without value"
msgstr "не е зададена ÑтойноÑÑ‚ на „format.headers“"
-#: builtin/log.c:908
+#: builtin/log.c:909
msgid "name of output directory is too long"
msgstr "прекалено дълго име на директориÑта за изходната информациÑ"
-#: builtin/log.c:924
+#: builtin/log.c:925
#, c-format
msgid "cannot open patch file %s"
msgstr "файлът-кръпка „%s“ не може да бъде отворен"
-#: builtin/log.c:941
+#: builtin/log.c:942
msgid "need exactly one range"
msgstr "Ñ‚Ñ€Ñбва да зададете точно един диапазон"
-#: builtin/log.c:951
+#: builtin/log.c:952
msgid "not a range"
msgstr "не е диапазон"
-#: builtin/log.c:1074
+#: builtin/log.c:1075
msgid "cover letter needs email format"
msgstr "придружаващото пиÑмо Ñ‚Ñ€Ñбва да е форматирано като е-пиÑмо"
-#: builtin/log.c:1080
+#: builtin/log.c:1081
msgid "failed to create cover-letter file"
msgstr "неуÑпешно Ñъздаване на придружаващо пиÑмо"
-#: builtin/log.c:1159
+#: builtin/log.c:1160
#, c-format
msgid "insane in-reply-to: %s"
msgstr "неправилен формат на заглавната чаÑÑ‚ за отговор „in-reply-to“: %s"
-#: builtin/log.c:1186
+#: builtin/log.c:1187
msgid "git format-patch [<options>] [<since> | <revision-range>]"
msgstr "git format-patch [ОПЦИЯ…] [ОТ | ДИÐПÐЗОÐ_ÐÐ_ВЕРСИИТЕ]"
-#: builtin/log.c:1244
+#: builtin/log.c:1245
msgid "two output directories?"
msgstr "може да укажете макÑимум една Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð·Ð° изход"
-#: builtin/log.c:1355 builtin/log.c:2099 builtin/log.c:2101 builtin/log.c:2113
+#: builtin/log.c:1356 builtin/log.c:2116 builtin/log.c:2118 builtin/log.c:2130
#, c-format
msgid "unknown commit %s"
msgstr "непознато подаване: „%s“"
-#: builtin/log.c:1365 builtin/replace.c:58 builtin/replace.c:207
+#: builtin/log.c:1366 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:1370
+#: builtin/log.c:1371
msgid "could not find exact merge base"
msgstr "точната база за Ñливане не може да бъде открита"
-#: builtin/log.c:1374
+#: builtin/log.c:1375
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"
@@ -14881,281 +14965,281 @@ msgstr ""
"зададете, използвайте „git branch --set-upstream-to“.\n"
"Можете ръчно да зададете базово подаване чрез „--base=<base-commit-id>“."
-#: builtin/log.c:1394
+#: builtin/log.c:1395
msgid "failed to find exact merge base"
msgstr "точната база при Ñливане не може да бъде открита"
-#: builtin/log.c:1405
+#: builtin/log.c:1406
msgid "base commit should be the ancestor of revision list"
msgstr "базовото подаване Ñ‚Ñ€Ñбва да е предшеÑтвеникът на ÑпиÑъка Ñ Ð²ÐµÑ€Ñиите"
-#: builtin/log.c:1409
+#: builtin/log.c:1410
msgid "base commit shouldn't be in revision list"
msgstr "базовото подаване не може да е в ÑпиÑъка Ñ Ð²ÐµÑ€Ñиите"
-#: builtin/log.c:1462
+#: builtin/log.c:1463
msgid "cannot get patch id"
msgstr "идентификаторът на кръпката не може да бъде получен"
-#: builtin/log.c:1514
+#: builtin/log.c:1515
msgid "failed to infer range-diff ranges"
msgstr "неуÑпешно определÑне на диапазоните за разлика"
-#: builtin/log.c:1559
+#: builtin/log.c:1560
msgid "use [PATCH n/m] even with a single patch"
msgstr "Ð½Ð¾Ð¼ÐµÑ€Ð°Ñ†Ð¸Ñ â€ž[PATCH n/m]“ дори и при единÑтвена кръпка"
-#: builtin/log.c:1562
+#: builtin/log.c:1563
msgid "use [PATCH] even with multiple patches"
msgstr "Ð½Ð¾Ð¼ÐµÑ€Ð°Ñ†Ð¸Ñ â€ž[PATCH]“ дори и при множеÑтво кръпки"
-#: builtin/log.c:1566
+#: builtin/log.c:1567
msgid "print patches to standard out"
msgstr "извеждане на кръпките на ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð¸Ð·Ñ…Ð¾Ð´"
-#: builtin/log.c:1568
+#: builtin/log.c:1569
msgid "generate a cover letter"
msgstr "Ñъздаване на придружаващо пиÑмо"
-#: builtin/log.c:1570
+#: builtin/log.c:1571
msgid "use simple number sequence for output file names"
msgstr "проÑта чиÑлова поÑледователноÑÑ‚ за имената на файловете-кръпки"
-#: builtin/log.c:1571
+#: builtin/log.c:1572
msgid "sfx"
msgstr "ЗÐÐЦИ"
-#: builtin/log.c:1572
+#: builtin/log.c:1573
msgid "use <sfx> instead of '.patch'"
msgstr "използване на тези ЗÐÐЦИ за ÑÑƒÑ„Ð¸ÐºÑ Ð²Ð¼ÐµÑто „.patch“"
-#: builtin/log.c:1574
+#: builtin/log.c:1575
msgid "start numbering patches at <n> instead of 1"
msgstr "номерирането на кръпките да започва от този БРОЙ, а не Ñ 1"
-#: builtin/log.c:1576
+#: builtin/log.c:1577
msgid "mark the series as Nth re-roll"
msgstr "отбелÑзване, че това е N-тата поредна Ñ€ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° поредицата от кръпки"
-#: builtin/log.c:1578
+#: builtin/log.c:1579
msgid "Use [RFC PATCH] instead of [PATCH]"
msgstr "Използване на „[RFC PATCH]“ вмеÑто „[PATCH]“"
-#: builtin/log.c:1581
+#: builtin/log.c:1582
msgid "Use [<prefix>] instead of [PATCH]"
msgstr "Използване на този „[ПРЕФИКС]“ вмеÑто „[PATCH]“"
-#: builtin/log.c:1584
+#: builtin/log.c:1585
msgid "store resulting files in <dir>"
msgstr "запазване на изходните файлове в тази ДИРЕКТОРИЯ"
-#: builtin/log.c:1587
+#: builtin/log.c:1588
msgid "don't strip/add [PATCH]"
msgstr "без добавÑне/махане на префикÑа „[PATCH]“"
-#: builtin/log.c:1590
+#: builtin/log.c:1591
msgid "don't output binary diffs"
msgstr "без извеждане на разлики между двоични файлове"
-#: builtin/log.c:1592
+#: builtin/log.c:1593
msgid "output all-zero hash in From header"
msgstr "в заглавната чаÑÑ‚ „From:“ (от) контролната Ñума да е Ñамо от нули"
-#: builtin/log.c:1594
+#: builtin/log.c:1595
msgid "don't include a patch matching a commit upstream"
msgstr "без кръпки, които приÑÑŠÑтват в ÑÐ»ÐµÐ´ÐµÐ½Ð¸Ñ ÐºÐ»Ð¾Ð½"
-#: builtin/log.c:1596
+#: builtin/log.c:1597
msgid "show patch format instead of default (patch + stat)"
msgstr ""
"извеждане във формат за кръпки, а на в ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ (кръпка и ÑтатиÑтика)"
-#: builtin/log.c:1598
+#: builtin/log.c:1599
msgid "Messaging"
msgstr "Опции при изпращане"
-#: builtin/log.c:1599
+#: builtin/log.c:1600
msgid "header"
msgstr "ЗÐГЛÐÐ’ÐÐ_ЧÐСТ"
-#: builtin/log.c:1600
+#: builtin/log.c:1601
msgid "add email header"
msgstr "добавÑне на тази ЗÐГЛÐÐ’ÐÐ_ЧÐСТ"
-#: builtin/log.c:1601 builtin/log.c:1603
+#: builtin/log.c:1602 builtin/log.c:1604
msgid "email"
msgstr "Е-ПОЩÐ"
-#: builtin/log.c:1601
+#: builtin/log.c:1602
msgid "add To: header"
msgstr "добавÑне на заглавна чаÑÑ‚ „To:“ (до)"
-#: builtin/log.c:1603
+#: builtin/log.c:1604
msgid "add Cc: header"
msgstr "добавÑне на заглавна чаÑÑ‚ „Cc:“ (и до)"
-#: builtin/log.c:1605
+#: builtin/log.c:1606
msgid "ident"
msgstr "ИДЕÐТИЧÐОСТ"
-#: builtin/log.c:1606
+#: builtin/log.c:1607
msgid "set From address to <ident> (or committer ident if absent)"
msgstr ""
"задаване на адреÑа в заглавната чаÑÑ‚ „From“ (от) да е тази ИДЕÐТИЧÐОСТ. Ðко "
"не е зададена такава, Ñе взима адреÑа на подаващиÑ"
-#: builtin/log.c:1608
+#: builtin/log.c:1609
msgid "message-id"
msgstr "ИДЕÐТИФИКÐТОР_ÐÐ_СЪОБЩЕÐИЕ"
-#: builtin/log.c:1609
+#: builtin/log.c:1610
msgid "make first mail a reply to <message-id>"
msgstr ""
"първото Ñъобщение да е в отговор на е-пиÑмото Ñ Ñ‚Ð¾Ð·Ð¸ "
"ИДЕÐТИФИКÐТОР_ÐÐ_СЪОБЩЕÐИЕ"
-#: builtin/log.c:1610 builtin/log.c:1613
+#: builtin/log.c:1611 builtin/log.c:1614
msgid "boundary"
msgstr "граница"
-#: builtin/log.c:1611
+#: builtin/log.c:1612
msgid "attach the patch"
msgstr "прикрепÑне на кръпката"
-#: builtin/log.c:1614
+#: builtin/log.c:1615
msgid "inline the patch"
msgstr "включване на кръпката в текÑта на пиÑмата"
-#: builtin/log.c:1618
+#: builtin/log.c:1619
msgid "enable message threading, styles: shallow, deep"
msgstr ""
"използване на нишки за ÑъобщениÑта. СТИЛът е „shallow“ (плитък) или "
"„deep“ (дълбок)"
-#: builtin/log.c:1620
+#: builtin/log.c:1621
msgid "signature"
msgstr "подпиÑ"
-#: builtin/log.c:1621
+#: builtin/log.c:1622
msgid "add a signature"
msgstr "добавÑне на поле за подпиÑ"
-#: builtin/log.c:1622
+#: builtin/log.c:1623
msgid "base-commit"
msgstr "БÐЗОВО_ПОДÐÐ’ÐÐЕ"
-#: builtin/log.c:1623
+#: builtin/log.c:1624
msgid "add prerequisite tree info to the patch series"
msgstr "добавÑне на необходимото БÐЗово дърво към поредицата от кръпки"
-#: builtin/log.c:1625
+#: builtin/log.c:1626
msgid "add a signature from a file"
msgstr "добавÑне на Ð¿Ð¾Ð´Ð¿Ð¸Ñ Ð¾Ñ‚ файл"
-#: builtin/log.c:1626
+#: builtin/log.c:1627
msgid "don't print the patch filenames"
msgstr "без извеждане на имената на кръпките"
-#: builtin/log.c:1628
+#: builtin/log.c:1629
msgid "show progress while generating patches"
msgstr "извеждане на напредъка във фазата на Ñъздаване на кръпките"
-#: builtin/log.c:1630
+#: builtin/log.c:1631
msgid "show changes against <rev> in cover letter or single patch"
msgstr ""
"показване на промените ÑпрÑмо ВЕРСиÑта в придружаващото пиÑмо или единÑтвена "
"кръпка"
-#: builtin/log.c:1633
+#: builtin/log.c:1634
msgid "show changes against <refspec> in cover letter or single patch"
msgstr ""
"показване на промените ÑпрÑмо ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ Ð½Ð° ВЕРСиÑта в придружаващото пиÑмо "
"или единÑтвена кръпка"
-#: builtin/log.c:1635
+#: builtin/log.c:1636
msgid "percentage by which creation is weighted"
msgstr "процент за претеглÑне при оценка на Ñъздаването"
-#: builtin/log.c:1710
+#: builtin/log.c:1711
#, c-format
msgid "invalid ident line: %s"
msgstr "грешна идентичноÑÑ‚: %s"
-#: builtin/log.c:1725
+#: builtin/log.c:1726
msgid "-n and -k are mutually exclusive"
msgstr "опциите „-n“ и „-k“ Ñа неÑъвмеÑтими"
-#: builtin/log.c:1727
+#: builtin/log.c:1728
msgid "--subject-prefix/--rfc and -k are mutually exclusive"
msgstr "опциите „--subject-prefix“/„-rfc“ и „-k“ Ñа неÑъвмеÑтими"
-#: builtin/log.c:1735
+#: builtin/log.c:1736
msgid "--name-only does not make sense"
msgstr "опциÑта „--name-only“ е неÑъвмеÑтима Ñ Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€Ð°Ð½ÐµÑ‚Ð¾ на кръпки"
-#: builtin/log.c:1737
+#: builtin/log.c:1738
msgid "--name-status does not make sense"
msgstr "опциÑта „--name-status“ е неÑъвмеÑтима Ñ Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€Ð°Ð½ÐµÑ‚Ð¾ на кръпки"
-#: builtin/log.c:1739
+#: builtin/log.c:1740
msgid "--check does not make sense"
msgstr "опциÑта „--check“ е неÑъвмеÑтима Ñ Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€Ð°Ð½ÐµÑ‚Ð¾ на кръпки"
-#: builtin/log.c:1771
+#: builtin/log.c:1773
msgid "standard output, or directory, which one?"
msgstr ""
"изходът може да или ÑтандартниÑÑ‚, или да е в директориÑ, но не и двете."
-#: builtin/log.c:1860
+#: builtin/log.c:1877
msgid "--interdiff requires --cover-letter or single patch"
msgstr ""
"опциÑта „--interdiff“ изиÑква Ð¾Ð¿Ñ†Ð¸Ñ â€ž--cover-letter“ или единÑтвена кръпка"
-#: builtin/log.c:1864
+#: builtin/log.c:1881
msgid "Interdiff:"
msgstr "Разлика в разликите:"
-#: builtin/log.c:1865
+#: builtin/log.c:1882
#, c-format
msgid "Interdiff against v%d:"
msgstr "Разлика в разликите ÑпрÑмо v%d:"
-#: builtin/log.c:1871
+#: builtin/log.c:1888
msgid "--creation-factor requires --range-diff"
msgstr "опциÑта „--creation-factor“ изиÑква Ð¾Ð¿Ñ†Ð¸Ñ â€ž--range-diff“"
-#: builtin/log.c:1875
+#: builtin/log.c:1892
msgid "--range-diff requires --cover-letter or single patch"
msgstr ""
"опциÑта „--range-diff“ изиÑква Ð¾Ð¿Ñ†Ð¸Ñ â€ž--cover-letter“ или единÑтвена кръпка"
-#: builtin/log.c:1883
+#: builtin/log.c:1900
msgid "Range-diff:"
msgstr "Диапазонна разлика:"
-#: builtin/log.c:1884
+#: builtin/log.c:1901
#, c-format
msgid "Range-diff against v%d:"
msgstr "Диапазонна разлика ÑпрÑмо v%d:"
-#: builtin/log.c:1895
+#: builtin/log.c:1912
#, c-format
msgid "unable to read signature file '%s'"
msgstr "файлът „%s“ Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñ Ð½Ðµ може да бъде прочетен"
-#: builtin/log.c:1931
+#: builtin/log.c:1948
msgid "Generating patches"
msgstr "Създаване на кръпки"
-#: builtin/log.c:1975
+#: builtin/log.c:1992
msgid "failed to create output files"
msgstr "неуÑпешно Ñъздаване на изходни файлове"
-#: builtin/log.c:2034
+#: builtin/log.c:2051
msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
msgstr "git cherry [-v] [ОТДÐЛЕЧЕÐ_КЛОР[ВРЪХ [ПРЕДЕЛ]]]"
-#: builtin/log.c:2088
+#: builtin/log.c:2105
#, c-format
msgid ""
"Could not find a tracked remote branch, please specify <upstream> manually.\n"
@@ -15283,7 +15367,7 @@ msgstr ""
msgid "do not print remote URL"
msgstr "без извеждане на адреÑите на отдалечените хранилища"
-#: builtin/ls-remote.c:60 builtin/ls-remote.c:62 builtin/rebase.c:1464
+#: builtin/ls-remote.c:60 builtin/ls-remote.c:62 builtin/rebase.c:1488
msgid "exec"
msgstr "КОМÐÐДÐ"
@@ -15394,33 +15478,33 @@ msgstr "Ðаличните Ñтратегии Ñа:"
msgid "Available custom strategies are:"
msgstr "Допълнителните Ñтратегии Ñа:"
-#: builtin/merge.c:244 builtin/pull.c:151
+#: builtin/merge.c:244 builtin/pull.c:152
msgid "do not show a diffstat at the end of the merge"
msgstr "без извеждане на ÑтатиÑтиката Ñлед завършване на Ñливане"
-#: builtin/merge.c:247 builtin/pull.c:154
+#: builtin/merge.c:247 builtin/pull.c:155
msgid "show a diffstat at the end of the merge"
msgstr "извеждане на ÑтатиÑтиката Ñлед завършване на Ñливане"
-#: builtin/merge.c:248 builtin/pull.c:157
+#: builtin/merge.c:248 builtin/pull.c:158
msgid "(synonym to --stat)"
msgstr "(пÑевдоним на „--stat“)"
-#: builtin/merge.c:250 builtin/pull.c:160
+#: builtin/merge.c:250 builtin/pull.c:161
msgid "add (at most <n>) entries from shortlog to merge commit message"
msgstr ""
"добавÑне (на макÑимум такъв БРОЙ) запиÑи от ÑÑŠÐºÑ€Ð°Ñ‚ÐµÐ½Ð¸Ñ Ð¶ÑƒÑ€Ð½Ð°Ð» в Ñъобщението "
"за подаване"
-#: builtin/merge.c:253 builtin/pull.c:166
+#: builtin/merge.c:253 builtin/pull.c:167
msgid "create a single commit instead of doing a merge"
msgstr "Ñъздаване на едно подаване вмеÑто извършване на Ñливане"
-#: builtin/merge.c:255 builtin/pull.c:169
+#: builtin/merge.c:255 builtin/pull.c:170
msgid "perform a commit if the merge succeeds (default)"
msgstr "извършване на подаване при уÑпешно Ñливане (Ñтандартно дейÑтвие)"
-#: builtin/merge.c:257 builtin/pull.c:172
+#: builtin/merge.c:257 builtin/pull.c:173
msgid "edit message before committing"
msgstr "редактиране на Ñъобщението преди подаване"
@@ -15428,28 +15512,28 @@ msgstr "редактиране на Ñъобщението преди подав
msgid "allow fast-forward (default)"
msgstr "позволÑване на превъртане (Ñтандартно дейÑтвие)"
-#: builtin/merge.c:261 builtin/pull.c:179
+#: builtin/merge.c:261 builtin/pull.c:180
msgid "abort if fast-forward is not possible"
msgstr "преуÑтановÑване, ако превъртането е невъзможно"
-#: builtin/merge.c:265 builtin/pull.c:182
+#: builtin/merge.c:265 builtin/pull.c:183
msgid "verify that the named commit has a valid GPG signature"
msgstr "проверка, че указаното подаване е Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»ÐµÐ½ Ð¿Ð¾Ð´Ð¿Ð¸Ñ Ð½Ð° GPG"
-#: builtin/merge.c:266 builtin/notes.c:787 builtin/pull.c:186
-#: builtin/rebase.c:492 builtin/rebase.c:1477 builtin/revert.c:114
+#: builtin/merge.c:266 builtin/notes.c:787 builtin/pull.c:187
+#: builtin/rebase.c:493 builtin/rebase.c:1501 builtin/revert.c:114
msgid "strategy"
msgstr "СТРÐТЕГИЯ"
-#: builtin/merge.c:267 builtin/pull.c:187
+#: builtin/merge.c:267 builtin/pull.c:188
msgid "merge strategy to use"
msgstr "СТРÐТЕГИЯ за Ñливане, коÑто да Ñе ползва"
-#: builtin/merge.c:268 builtin/pull.c:190
+#: builtin/merge.c:268 builtin/pull.c:191
msgid "option=value"
msgstr "ОПЦИЯ=СТОЙÐОСТ"
-#: builtin/merge.c:269 builtin/pull.c:191
+#: builtin/merge.c:269 builtin/pull.c:192
msgid "option for selected merge strategy"
msgstr "ОПЦИЯ за избраната ÑÑ‚Ñ€Ð°Ñ‚ÐµÐ³Ð¸Ñ Ð·Ð° Ñливане"
@@ -15469,14 +15553,15 @@ msgstr "преуÑтановÑване без промÑна на индекÑа
msgid "continue the current in-progress merge"
msgstr "продължаване на текущото Ñливане"
-#: builtin/merge.c:284 builtin/pull.c:198
+#: builtin/merge.c:284 builtin/pull.c:199
msgid "allow merging unrelated histories"
msgstr "позволÑване на Ñливане на незавиÑими иÑтории"
#: builtin/merge.c:290
-msgid "verify commit-msg hook"
+msgid "bypass pre-merge-commit and commit-msg hooks"
msgstr ""
-"проверка на куката при промÑна на Ñъобщението при подаване (commit-msg)"
+"без изпълнение на куките преди подаване и Ñливане и при промÑна на "
+"Ñъобщението за подаване (pre-merge-commit и commit-msg)"
#: builtin/merge.c:307
msgid "could not run stash."
@@ -15520,33 +15605,33 @@ msgstr "„%s“ не Ñочи към подаване"
msgid "Bad branch.%s.mergeoptions string: %s"
msgstr "Ðеправилен низ за наÑтройката „branch.%s.mergeoptions“: „%s“"
-#: builtin/merge.c:708
+#: builtin/merge.c:705
msgid "Not handling anything other than two heads merge."
msgstr "Поддържа Ñе Ñамо Ñливане на точно две иÑтории."
-#: builtin/merge.c:722
+#: builtin/merge.c:719
#, c-format
msgid "Unknown option for merge-recursive: -X%s"
msgstr "Ðепозната Ð¾Ð¿Ñ†Ð¸Ñ Ð·Ð° рекурÑивното Ñливане „merge-recursive“: „-X%s“"
-#: builtin/merge.c:737
+#: builtin/merge.c:734
#, c-format
msgid "unable to write %s"
msgstr "„%s“ не може да бъде запиÑан"
-#: builtin/merge.c:789
+#: builtin/merge.c:786
#, c-format
msgid "Could not read from '%s'"
msgstr "От „%s“ не може да Ñе чете"
-#: builtin/merge.c:798
+#: builtin/merge.c:795
#, c-format
msgid "Not committing merge; use 'git commit' to complete the merge.\n"
msgstr ""
"Сливането нÑма да бъде подадено. За завършването му и подаването му "
"използвайте командата „git commit“.\n"
-#: builtin/merge.c:804
+#: builtin/merge.c:801
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"
@@ -15555,11 +15640,11 @@ msgstr ""
"Ð’ Ñъобщението при подаване добавете Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° причината за\n"
"Ñливането, оÑобено ако Ñливате обновен отдалечен клон в тематичен клон.\n"
-#: builtin/merge.c:809
+#: builtin/merge.c:806
msgid "An empty message aborts the commit.\n"
msgstr "Празно Ñъобщение предотвратÑва подаването.\n"
-#: builtin/merge.c:812
+#: builtin/merge.c:809
#, c-format
msgid ""
"Lines starting with '%c' will be ignored, and an empty message aborts\n"
@@ -15568,76 +15653,76 @@ msgstr ""
"Редовете, които започват Ñ â€ž%c“, ще бъдат пропуÑнати, а празно\n"
"Ñъобщение преуÑтановÑва подаването.\n"
-#: builtin/merge.c:853
+#: builtin/merge.c:862
msgid "Empty commit message."
msgstr "Празно Ñъобщение при подаване."
-#: builtin/merge.c:872
+#: builtin/merge.c:877
#, c-format
msgid "Wonderful.\n"
msgstr "ПървиÑÑ‚ етап на Ñливането завърши.\n"
-#: builtin/merge.c:933
+#: builtin/merge.c:938
#, c-format
msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
msgstr ""
"ÐеуÑпешно автоматично Ñливане — коригирайте конфликтите и подайте "
"резултата.\n"
-#: builtin/merge.c:972
+#: builtin/merge.c:977
msgid "No current branch."
msgstr "ÐÑма текущ клон."
-#: builtin/merge.c:974
+#: builtin/merge.c:979
msgid "No remote for the current branch."
msgstr "ТекущиÑÑ‚ клон не Ñледи никой."
-#: builtin/merge.c:976
+#: builtin/merge.c:981
msgid "No default upstream defined for the current branch."
msgstr "ТекущиÑÑ‚ клон не Ñледи никой клон."
-#: builtin/merge.c:981
+#: builtin/merge.c:986
#, c-format
msgid "No remote-tracking branch for %s from %s"
msgstr "Ðикой клон не Ñледи клона „%s“ от хранилището „%s“"
-#: builtin/merge.c:1038
+#: builtin/merge.c:1043
#, c-format
msgid "Bad value '%s' in environment '%s'"
msgstr "Ðеправилна ÑтойноÑÑ‚ „%s“ в Ñредата „%s“"
-#: builtin/merge.c:1141
+#: builtin/merge.c:1146
#, c-format
msgid "not something we can merge in %s: %s"
msgstr "не може да Ñе Ñлее в „%s“: %s"
-#: builtin/merge.c:1175
+#: builtin/merge.c:1180
msgid "not something we can merge"
msgstr "не може да Ñе Ñлее"
-#: builtin/merge.c:1278
+#: builtin/merge.c:1283
msgid "--abort expects no arguments"
msgstr "опциÑта „--abort“ не приема аргументи"
-#: builtin/merge.c:1282
+#: builtin/merge.c:1287
msgid "There is no merge to abort (MERGE_HEAD missing)."
msgstr ""
"Ðе може да преуÑтановите Ñливане, защото в момента не Ñе извършва такова "
"(липÑва указател „MERGE_HEAD“)."
-#: builtin/merge.c:1291
+#: builtin/merge.c:1296
msgid "--quit expects no arguments"
msgstr "опциÑта „--quit“ не приема аргументи"
-#: builtin/merge.c:1304
+#: builtin/merge.c:1309
msgid "--continue expects no arguments"
msgstr "опциÑта „--continue“ не приема аргументи"
-#: builtin/merge.c:1308
+#: builtin/merge.c:1313
msgid "There is no merge in progress (MERGE_HEAD missing)."
msgstr "Ð’ момента не Ñе извършва Ñливане (липÑва указател „MERGE_HEAD“)."
-#: builtin/merge.c:1324
+#: builtin/merge.c:1329
msgid ""
"You have not concluded your merge (MERGE_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -15645,7 +15730,7 @@ msgstr ""
"Ðе Ñте завършили Ñливане. (УказателÑÑ‚ „MERGE_HEAD“ ÑъщеÑтвува).\n"
"Подайте промените Ñи, преди да започнете ново Ñливане."
-#: builtin/merge.c:1331
+#: builtin/merge.c:1336
msgid ""
"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -15653,103 +15738,103 @@ msgstr ""
"Ðе Ñте завършили отбиране на подаване (указателÑÑ‚ „CHERRY_PICK_HEAD“\n"
"ÑъщеÑтвува). Подайте промените Ñи, преди да започнете ново Ñливане."
-#: builtin/merge.c:1334
+#: builtin/merge.c:1339
msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
msgstr ""
"Ðе Ñте завършили отбиране на подаване (указателÑÑ‚ „CHERRY_PICK_HEAD“\n"
"ÑъщеÑтвува)."
-#: builtin/merge.c:1348
+#: builtin/merge.c:1353
msgid "You cannot combine --squash with --no-ff."
msgstr "ОпциÑта „--squash“ е неÑъвмеÑтима Ñ â€ž--no-ff“."
-#: builtin/merge.c:1350
+#: builtin/merge.c:1355
msgid "You cannot combine --squash with --commit."
msgstr "ОпциÑта „--squash“ е неÑъвмеÑтима Ñ â€ž--commit“."
-#: builtin/merge.c:1366
+#: builtin/merge.c:1371
msgid "No commit specified and merge.defaultToUpstream not set."
msgstr ""
"Ðе е указано подаване и наÑтройката „merge.defaultToUpstream“ не е зададена."
-#: builtin/merge.c:1383
+#: builtin/merge.c:1388
msgid "Squash commit into empty head not supported yet"
msgstr "Вкарване на подаване във връх без иÑÑ‚Ð¾Ñ€Ð¸Ñ Ð²Ñе още не Ñе поддържа"
-#: builtin/merge.c:1385
+#: builtin/merge.c:1390
msgid "Non-fast-forward commit does not make sense into an empty head"
msgstr ""
"Понеже върхът е без иÑториÑ, вÑички ÑÐ»Ð¸Ð²Ð°Ð½Ð¸Ñ Ñа превъртаниÑ, не може да Ñе "
"извърши ÑъщинÑко Ñливане изиÑквано от опциÑта „--no-ff“"
-#: builtin/merge.c:1390
+#: builtin/merge.c:1395
#, c-format
msgid "%s - not something we can merge"
msgstr "„%s“ — не е нещо, което може да Ñе Ñлее"
-#: builtin/merge.c:1392
+#: builtin/merge.c:1397
msgid "Can merge only exactly one commit into empty head"
msgstr "Можете да Ñлеете точно едно подаване във връх без иÑториÑ"
-#: builtin/merge.c:1471
+#: builtin/merge.c:1476
msgid "refusing to merge unrelated histories"
msgstr "незавиÑими иÑтории не може да Ñе ÑлеÑÑ‚"
-#: builtin/merge.c:1480
+#: builtin/merge.c:1485
msgid "Already up to date."
msgstr "Вече е обновено."
-#: builtin/merge.c:1490
+#: builtin/merge.c:1495
#, c-format
msgid "Updating %s..%s\n"
msgstr "ОбновÑване „%s..%s“\n"
-#: builtin/merge.c:1532
+#: builtin/merge.c:1537
#, c-format
msgid "Trying really trivial in-index merge...\n"
msgstr "Проба ÑÑŠÑ Ñливане в рамките на индекÑа…\n"
-#: builtin/merge.c:1539
+#: builtin/merge.c:1544
#, c-format
msgid "Nope.\n"
msgstr "ÐеуÑпешно Ñливане.\n"
-#: builtin/merge.c:1564
+#: builtin/merge.c:1569
msgid "Already up to date. Yeeah!"
msgstr "Вече е обновено!"
-#: builtin/merge.c:1570
+#: builtin/merge.c:1575
msgid "Not possible to fast-forward, aborting."
msgstr "Ðе може да Ñе извърши превъртане, преуÑтановÑване на дейÑтвието."
-#: builtin/merge.c:1593 builtin/merge.c:1658
+#: builtin/merge.c:1598 builtin/merge.c:1663
#, c-format
msgid "Rewinding the tree to pristine...\n"
msgstr "Привеждане на дървото към първоначалното…\n"
-#: builtin/merge.c:1597
+#: builtin/merge.c:1602
#, c-format
msgid "Trying merge strategy %s...\n"
msgstr "Пробване ÑÑŠÑ ÑтратегиÑта за Ñливане „%s“…\n"
-#: builtin/merge.c:1649
+#: builtin/merge.c:1654
#, c-format
msgid "No merge strategy handled the merge.\n"
msgstr "ÐÐ¸ÐºÐ¾Ñ ÑÑ‚Ñ€Ð°Ñ‚ÐµÐ³Ð¸Ñ Ð·Ð° Ñливане не може да извърши Ñливането.\n"
-#: builtin/merge.c:1651
+#: builtin/merge.c:1656
#, c-format
msgid "Merge with strategy %s failed.\n"
msgstr "ÐеуÑпешно Ñливане ÑÑŠÑ ÑÑ‚Ñ€Ð°Ñ‚ÐµÐ³Ð¸Ñ â€ž%s“.\n"
-#: builtin/merge.c:1660
+#: builtin/merge.c:1665
#, c-format
msgid "Using the %s to prepare resolving by hand.\n"
msgstr ""
"Ползва Ñе ÑтратегиÑта „%s“, коÑто ще подготви дървото за коригиране на "
"ръка.\n"
-#: builtin/merge.c:1672
+#: builtin/merge.c:1677
#, c-format
msgid "Automatic merge went well; stopped before committing as requested\n"
msgstr ""
@@ -15837,33 +15922,33 @@ msgstr "без Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ конфликти"
msgid "set labels for file1/orig-file/file2"
msgstr "задаване на етикети за ФÐЙЛ_1/ОРИГИÐÐЛ/ФÐЙЛ_2"
-#: builtin/merge-recursive.c:46
+#: builtin/merge-recursive.c:47
#, c-format
msgid "unknown option %s"
msgstr "непозната опциÑ: „%s“"
-#: builtin/merge-recursive.c:52
+#: builtin/merge-recursive.c:53
#, c-format
msgid "could not parse object '%s'"
msgstr "неуÑпешен анализ на обекта „%s“"
-#: builtin/merge-recursive.c:56
+#: builtin/merge-recursive.c:57
#, c-format
msgid "cannot handle more than %d base. Ignoring %s."
msgid_plural "cannot handle more than %d bases. Ignoring %s."
msgstr[0] "не Ñе поддържа повече от %d база. „%s“ Ñе преÑкача."
msgstr[1] "не Ñе поддържат повече от %d бази. „%s“ Ñе преÑкача."
-#: builtin/merge-recursive.c:64
+#: builtin/merge-recursive.c:65
msgid "not handling anything other than two heads merge."
msgstr "поддържа Ñе Ñамо Ñливане на точно две иÑтории."
-#: builtin/merge-recursive.c:70 builtin/merge-recursive.c:72
+#: builtin/merge-recursive.c:74 builtin/merge-recursive.c:76
#, c-format
msgid "could not resolve ref '%s'"
msgstr "указателÑÑ‚ „%s“ не може да бъде изтрит"
-#: builtin/merge-recursive.c:78
+#: builtin/merge-recursive.c:82
#, c-format
msgid "Merging %s with %s\n"
msgstr "Сливане на „%s“ Ñ â€ž%s“\n"
@@ -16008,54 +16093,54 @@ msgstr "%s, обект: „%s“, цел: „%s“"
msgid "Renaming %s to %s\n"
msgstr "Преименуване на „%s“ на „%s“\n"
-#: builtin/mv.c:277 builtin/remote.c:717 builtin/repack.c:510
+#: builtin/mv.c:277 builtin/remote.c:717 builtin/repack.c:511
#, c-format
msgid "renaming '%s' failed"
msgstr "неуÑпешно преименуване на „%s“"
-#: builtin/name-rev.c:352
+#: builtin/name-rev.c:356
msgid "git name-rev [<options>] <commit>..."
msgstr "git name-rev [ОПЦИЯ…] ПОДÐÐ’ÐÐЕ…"
-#: builtin/name-rev.c:353
+#: builtin/name-rev.c:357
msgid "git name-rev [<options>] --all"
msgstr "git name-rev [ОПЦИЯ…] --all"
-#: builtin/name-rev.c:354
+#: builtin/name-rev.c:358
msgid "git name-rev [<options>] --stdin"
msgstr "git name-rev [ОПЦИЯ…] --stdin"
-#: builtin/name-rev.c:411
+#: builtin/name-rev.c:415
msgid "print only names (no SHA-1)"
msgstr "извеждане Ñамо на имената (без Ñумите по SHA1)"
-#: builtin/name-rev.c:412
+#: builtin/name-rev.c:416
msgid "only use tags to name the commits"
msgstr "използване Ñамо на етикетите за именуване на подаваниÑта"
-#: builtin/name-rev.c:414
+#: builtin/name-rev.c:418
msgid "only use refs matching <pattern>"
msgstr "използване Ñамо на указателите напаÑващи на ШÐБЛОÐа"
-#: builtin/name-rev.c:416
+#: builtin/name-rev.c:420
msgid "ignore refs matching <pattern>"
msgstr "игнориране на указателите напаÑващи на ШÐБЛОÐа"
-#: builtin/name-rev.c:418
+#: builtin/name-rev.c:422
msgid "list all commits reachable from all refs"
msgstr ""
"извеждане на вÑички подаваниÑ, които могат да бъдат доÑтигнати от вÑички "
"указатели"
-#: builtin/name-rev.c:419
+#: builtin/name-rev.c:423
msgid "read from stdin"
msgstr "четене от ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð²Ñ…Ð¾Ð´"
-#: builtin/name-rev.c:420
+#: builtin/name-rev.c:424
msgid "allow to print `undefined` names (default)"
msgstr "да Ñе извеждат и недефинираните имена (Ñтандартна ÑтойноÑÑ‚ на опциÑта)"
-#: builtin/name-rev.c:426
+#: builtin/name-rev.c:430
msgid "dereference tags in the input (internal use)"
msgstr "извеждане на идентификаторите на обекти-етикети (за вътрешни нужди)"
@@ -16461,7 +16546,7 @@ msgstr "опитът за изтриването на неÑъщеÑтвуващ
msgid "read object names from the standard input"
msgstr "изчитане на имената на обектите от ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð²Ñ…Ð¾Ð´"
-#: builtin/notes.c:954 builtin/prune.c:130 builtin/worktree.c:165
+#: builtin/notes.c:954 builtin/prune.c:130 builtin/worktree.c:164
msgid "do not remove, show only"
msgstr "Ñамо извеждане без дейÑтвително окаÑÑ‚Ñ€Ñне"
@@ -16477,7 +16562,7 @@ msgstr "УКÐЗÐТЕЛ_ЗÐ_БЕЛЕЖКÐ"
msgid "use notes from <notes-ref>"
msgstr "да Ñе използва бележката Ñочена от този УКÐЗÐТЕЛ_ЗÐ_БЕЛЕЖКÐ"
-#: builtin/notes.c:1034 builtin/stash.c:1598
+#: builtin/notes.c:1034 builtin/stash.c:1607
#, c-format
msgid "unknown subcommand: %s"
msgstr "непозната подкоманда: %s"
@@ -16553,72 +16638,72 @@ msgstr "не може да бъде получена Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ñ‡Ñ€Ðµ
msgid "wrote %<PRIu32> objects while expecting %<PRIu32>"
msgstr "бÑха запиÑани %<PRIu32> обекти, а Ñе очакваха %<PRIu32>"
-#: builtin/pack-objects.c:1166
+#: builtin/pack-objects.c:1164
msgid "disabling bitmap writing, as some objects are not being packed"
msgstr ""
"изключване на запиÑването на битовата маÑка, защото нÑкои обекти нÑма да Ñе "
"пакетират"
-#: builtin/pack-objects.c:1597
+#: builtin/pack-objects.c:1592
#, c-format
msgid "delta base offset overflow in pack for %s"
msgstr "прекалено далечно начало на отмеÑтването за обектите-разлика за „%s“"
-#: builtin/pack-objects.c:1606
+#: builtin/pack-objects.c:1601
#, c-format
msgid "delta base offset out of bound for %s"
msgstr "недоÑтижимо начало на отмеÑтването за обектите-разлика за „%s“"
-#: builtin/pack-objects.c:1875
+#: builtin/pack-objects.c:1870
msgid "Counting objects"
msgstr "ПреброÑване на обектите"
-#: builtin/pack-objects.c:2005
+#: builtin/pack-objects.c:2000
#, c-format
msgid "unable to get size of %s"
msgstr "размерът на „%s“ не може да бъде получен"
-#: builtin/pack-objects.c:2020
+#: builtin/pack-objects.c:2015
#, c-format
msgid "unable to parse object header of %s"
msgstr "заглавната чаÑÑ‚ на „%s“ не може да бъде анализирана"
-#: builtin/pack-objects.c:2090 builtin/pack-objects.c:2106
-#: builtin/pack-objects.c:2116
+#: builtin/pack-objects.c:2085 builtin/pack-objects.c:2101
+#: builtin/pack-objects.c:2111
#, c-format
msgid "object %s cannot be read"
msgstr "обектът „%s“ не може да Ñе прочете"
-#: builtin/pack-objects.c:2093 builtin/pack-objects.c:2120
+#: builtin/pack-objects.c:2088 builtin/pack-objects.c:2115
#, c-format
msgid "object %s inconsistent object length (%<PRIuMAX> vs %<PRIuMAX>)"
msgstr "обектът „%s“ е Ñ Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»Ð½Ð° дължина (%<PRIuMAX>, а не %<PRIuMAX>)"
-#: builtin/pack-objects.c:2130
+#: builtin/pack-objects.c:2125
msgid "suboptimal pack - out of memory"
msgstr "неоптимизиран пакет — паметта Ñвърши"
-#: builtin/pack-objects.c:2456
+#: builtin/pack-objects.c:2440
#, c-format
msgid "Delta compression using up to %d threads"
msgstr "Делта компреÑиÑта ще използва до %d нишки"
-#: builtin/pack-objects.c:2588
+#: builtin/pack-objects.c:2572
#, c-format
msgid "unable to pack objects reachable from tag %s"
msgstr ""
"обектите, които могат да бъдат доÑтигнати от етикета „%s“, не може да бъдат "
"пакетирани"
-#: builtin/pack-objects.c:2675
+#: builtin/pack-objects.c:2659
msgid "Compressing objects"
msgstr "КомпреÑиране на обектите"
-#: builtin/pack-objects.c:2681
+#: builtin/pack-objects.c:2665
msgid "inconsistency with delta count"
msgstr "неправилен брой разлики"
-#: builtin/pack-objects.c:2762
+#: builtin/pack-objects.c:2742
#, c-format
msgid ""
"expected edge object ID, got garbage:\n"
@@ -16627,7 +16712,7 @@ msgstr ""
"очаква Ñе идентификатор на краен обект, а не:\n"
" %s"
-#: builtin/pack-objects.c:2768
+#: builtin/pack-objects.c:2748
#, c-format
msgid ""
"expected object ID, got garbage:\n"
@@ -16636,262 +16721,262 @@ msgstr ""
"очаква Ñе идентификатор на обект, а не:\n"
" %s"
-#: builtin/pack-objects.c:2866
+#: builtin/pack-objects.c:2846
msgid "invalid value for --missing"
msgstr "неправилна ÑтойноÑÑ‚ за „--missing“"
-#: builtin/pack-objects.c:2925 builtin/pack-objects.c:3033
+#: builtin/pack-objects.c:2905 builtin/pack-objects.c:3013
msgid "cannot open pack index"
msgstr "индекÑÑŠÑ‚ на Ð¿Ð°ÐºÐµÑ‚Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» не може да бъде отворен"
-#: builtin/pack-objects.c:2956
+#: builtin/pack-objects.c:2936
#, c-format
msgid "loose object at %s could not be examined"
msgstr "непакетираниÑÑ‚ обект в „%s“ не може да бъде анализиран"
-#: builtin/pack-objects.c:3041
+#: builtin/pack-objects.c:3021
msgid "unable to force loose object"
msgstr "оÑтаването на обекта непакетиран не може да бъде наложено"
-#: builtin/pack-objects.c:3133
+#: builtin/pack-objects.c:3113
#, c-format
msgid "not a rev '%s'"
msgstr "„%s“ не е верÑиÑ"
-#: builtin/pack-objects.c:3136
+#: builtin/pack-objects.c:3116
#, c-format
msgid "bad revision '%s'"
msgstr "неправилна верÑÐ¸Ñ â€ž%s“"
-#: builtin/pack-objects.c:3161
+#: builtin/pack-objects.c:3141
msgid "unable to add recent objects"
msgstr "Ñкорошните обекти не могат да бъдат добавени"
-#: builtin/pack-objects.c:3214
+#: builtin/pack-objects.c:3194
#, c-format
msgid "unsupported index version %s"
msgstr "неподдържана верÑÐ¸Ñ Ð½Ð° индекÑа „%s“"
-#: builtin/pack-objects.c:3218
+#: builtin/pack-objects.c:3198
#, c-format
msgid "bad index version '%s'"
msgstr "неправилна верÑÐ¸Ñ Ð½Ð° индекÑа „%s“"
-#: builtin/pack-objects.c:3248
+#: builtin/pack-objects.c:3228
msgid "do not show progress meter"
msgstr "без извеждане на напредъка"
-#: builtin/pack-objects.c:3250
+#: builtin/pack-objects.c:3230
msgid "show progress meter"
msgstr "извеждане на напредъка"
-#: builtin/pack-objects.c:3252
+#: builtin/pack-objects.c:3232
msgid "show progress meter during object writing phase"
msgstr "извеждане на напредъка във фазата на запазване на обектите"
-#: builtin/pack-objects.c:3255
+#: builtin/pack-objects.c:3235
msgid "similar to --all-progress when progress meter is shown"
msgstr ""
"Ñъщото дейÑтвие като опциÑта „--all-progress“ при извеждането на напредъка"
-#: builtin/pack-objects.c:3256
+#: builtin/pack-objects.c:3236
msgid "<version>[,<offset>]"
msgstr "ВЕРСИЯ[,ОТМЕСТВÐÐЕ]"
-#: builtin/pack-objects.c:3257
+#: builtin/pack-objects.c:3237
msgid "write the pack index file in the specified idx format version"
msgstr ""
"запазване на индекÑа на пакетните файлове във форма̀та Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð°Ñ‚Ð° верÑиÑ"
-#: builtin/pack-objects.c:3260
+#: builtin/pack-objects.c:3240
msgid "maximum size of each output pack file"
msgstr "макÑимален размер на вÑеки пакетен файл"
-#: builtin/pack-objects.c:3262
+#: builtin/pack-objects.c:3242
msgid "ignore borrowed objects from alternate object store"
msgstr "игнориране на обектите заети от други хранилища на обекти"
-#: builtin/pack-objects.c:3264
+#: builtin/pack-objects.c:3244
msgid "ignore packed objects"
msgstr "игнориране на пакетираните обекти"
-#: builtin/pack-objects.c:3266
+#: builtin/pack-objects.c:3246
msgid "limit pack window by objects"
msgstr "ограничаване на прозореца за пакетиране по брой обекти"
-#: builtin/pack-objects.c:3268
+#: builtin/pack-objects.c:3248
msgid "limit pack window by memory in addition to object limit"
msgstr ""
"ограничаване на прозореца за пакетиране и по памет оÑвен по брой обекти"
-#: builtin/pack-objects.c:3270
+#: builtin/pack-objects.c:3250
msgid "maximum length of delta chain allowed in the resulting pack"
msgstr ""
"макÑимална дължина на веригата от разлики, коÑто е позволена в Ð¿Ð°ÐºÐµÑ‚Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»"
-#: builtin/pack-objects.c:3272
+#: builtin/pack-objects.c:3252
msgid "reuse existing deltas"
msgstr "преизползване на ÑъщеÑтвуващите разлики"
-#: builtin/pack-objects.c:3274
+#: builtin/pack-objects.c:3254
msgid "reuse existing objects"
msgstr "преизползване на ÑъщеÑтвуващите обекти"
-#: builtin/pack-objects.c:3276
+#: builtin/pack-objects.c:3256
msgid "use OFS_DELTA objects"
msgstr "използване на обекти „OFS_DELTA“"
-#: builtin/pack-objects.c:3278
+#: builtin/pack-objects.c:3258
msgid "use threads when searching for best delta matches"
msgstr ""
"Ñтартиране на нишки за претърÑване на най-добрите ÑÑŠÐ²Ð¿Ð°Ð´ÐµÐ½Ð¸Ñ Ð½Ð° разликите"
-#: builtin/pack-objects.c:3280
+#: builtin/pack-objects.c:3260
msgid "do not create an empty pack output"
msgstr "без Ñъздаване на празен пакетен файл"
-#: builtin/pack-objects.c:3282
+#: builtin/pack-objects.c:3262
msgid "read revision arguments from standard input"
msgstr "изчитане на верÑиите от ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð²Ñ…Ð¾Ð´"
-#: builtin/pack-objects.c:3284
+#: builtin/pack-objects.c:3264
msgid "limit the objects to those that are not yet packed"
msgstr "ограничаване до вÑе още непакетираните обекти"
-#: builtin/pack-objects.c:3287
+#: builtin/pack-objects.c:3267
msgid "include objects reachable from any reference"
msgstr ""
"включване на вÑички обекти, които могат да Ñе доÑтигнат от произволен "
"указател"
-#: builtin/pack-objects.c:3290
+#: builtin/pack-objects.c:3270
msgid "include objects referred by reflog entries"
msgstr "включване и на обектите Ñочени от запиÑите в журнала на указателите"
-#: builtin/pack-objects.c:3293
+#: builtin/pack-objects.c:3273
msgid "include objects referred to by the index"
msgstr "включване и на обектите Ñочени от индекÑа"
-#: builtin/pack-objects.c:3296
+#: builtin/pack-objects.c:3276
msgid "output pack to stdout"
msgstr "извеждане на пакета на ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð¸Ð·Ñ…Ð¾Ð´"
-#: builtin/pack-objects.c:3298
+#: builtin/pack-objects.c:3278
msgid "include tag objects that refer to objects to be packed"
msgstr ""
"включване и на обектите-етикети, които Ñочат към обектите, които ще бъдат "
"пакетирани"
-#: builtin/pack-objects.c:3300
+#: builtin/pack-objects.c:3280
msgid "keep unreachable objects"
msgstr "запазване на недоÑтижимите обекти"
-#: builtin/pack-objects.c:3302
+#: builtin/pack-objects.c:3282
msgid "pack loose unreachable objects"
msgstr "пакетиране и на недоÑтижимите обекти"
-#: builtin/pack-objects.c:3304
+#: builtin/pack-objects.c:3284
msgid "unpack unreachable objects newer than <time>"
msgstr "разпакетиране на недоÑтижимите обекти, които Ñа по-нови от това ВРЕМЕ"
-#: builtin/pack-objects.c:3307
+#: builtin/pack-objects.c:3287
msgid "use the sparse reachability algorithm"
msgstr "използване на алгоритъм за чаÑтична доÑтижимоÑÑ‚"
-#: builtin/pack-objects.c:3309
+#: builtin/pack-objects.c:3289
msgid "create thin packs"
msgstr "Ñъздаване на Ñъкратени пакети"
-#: builtin/pack-objects.c:3311
+#: builtin/pack-objects.c:3291
msgid "create packs suitable for shallow fetches"
msgstr "пакетиране подходÑщо за плитко доÑтавÑне"
-#: builtin/pack-objects.c:3313
+#: builtin/pack-objects.c:3293
msgid "ignore packs that have companion .keep file"
msgstr "игнориране на пакетите, които Ñа придружени от файл „.keep“"
-#: builtin/pack-objects.c:3315
+#: builtin/pack-objects.c:3295
msgid "ignore this pack"
msgstr "пропуÑкане на този пакет"
-#: builtin/pack-objects.c:3317
+#: builtin/pack-objects.c:3297
msgid "pack compression level"
msgstr "ниво на компреÑиране при пакетиране"
-#: builtin/pack-objects.c:3319
+#: builtin/pack-objects.c:3299
msgid "do not hide commits by grafts"
msgstr ""
"извеждане на вÑички родители — дори и тези, които нормално Ñа Ñкрити при "
"приÑажданиÑта"
-#: builtin/pack-objects.c:3321
+#: builtin/pack-objects.c:3301
msgid "use a bitmap index if available to speed up counting objects"
msgstr ""
"използване на ÑъщеÑтвуващи индекÑи на база битови маÑки за уÑкорÑване на "
"преброÑването на обектите"
-#: builtin/pack-objects.c:3323
+#: builtin/pack-objects.c:3303
msgid "write a bitmap index together with the pack index"
msgstr ""
"запазване и на Ð¸Ð½Ð´ÐµÐºÑ Ð½Ð° база побитова маÑка, заедно Ñ Ð¸Ð½Ð´ÐµÐºÑа за пакета"
-#: builtin/pack-objects.c:3327
+#: builtin/pack-objects.c:3307
msgid "write a bitmap index if possible"
msgstr "запиÑване на индекÑи на база битови маÑки при възможноÑÑ‚"
-#: builtin/pack-objects.c:3331
+#: builtin/pack-objects.c:3311
msgid "handling for missing objects"
msgstr "как да Ñе обработват липÑващите обекти"
-#: builtin/pack-objects.c:3334
+#: builtin/pack-objects.c:3314
msgid "do not pack objects in promisor packfiles"
msgstr "без пакетиране на обекти в гарантиращи пакети"
-#: builtin/pack-objects.c:3336
+#: builtin/pack-objects.c:3316
msgid "respect islands during delta compression"
msgstr "без промÑна на групите при делта компреÑиÑ"
-#: builtin/pack-objects.c:3361
+#: builtin/pack-objects.c:3345
#, c-format
msgid "delta chain depth %d is too deep, forcing %d"
msgstr "веригата Ñ Ñ€Ð°Ð·Ð»Ð¸ÐºÐ¸ е прекалено дълбока — %d, ще Ñе ползва %d"
-#: builtin/pack-objects.c:3366
+#: builtin/pack-objects.c:3350
#, c-format
msgid "pack.deltaCacheLimit is too high, forcing %d"
msgstr ""
"СтойноÑтта на наÑтройката „pack.deltaCacheLimit“ е прекалено голÑма. Ще Ñе "
"ползва %d"
-#: builtin/pack-objects.c:3420
+#: builtin/pack-objects.c:3404
msgid "--max-pack-size cannot be used to build a pack for transfer"
msgstr ""
"опциÑта „--max-pack-size“ не може да Ñе използва за Ñъздаване на пакетни "
"файлове за преноÑ"
-#: builtin/pack-objects.c:3422
+#: builtin/pack-objects.c:3406
msgid "minimum pack size limit is 1 MiB"
msgstr "минималниÑÑ‚ размер на пакетите е 1 MiB"
-#: builtin/pack-objects.c:3427
+#: builtin/pack-objects.c:3411
msgid "--thin cannot be used to build an indexable pack"
msgstr ""
"опциÑта „--thin“не може да Ñе използва за Ñъздаване на пакетни файлове Ñ "
"индекÑ"
-#: builtin/pack-objects.c:3430
+#: builtin/pack-objects.c:3414
msgid "--keep-unreachable and --unpack-unreachable are incompatible"
msgstr "опциите „--keep-unreachable“ и „--unpack-unreachable“ Ñа неÑъвмеÑтими"
-#: builtin/pack-objects.c:3436
+#: builtin/pack-objects.c:3420
msgid "cannot use --filter without --stdout"
msgstr "опциÑта „-filter“ изиÑква „-stdout“"
-#: builtin/pack-objects.c:3497
+#: builtin/pack-objects.c:3481
msgid "Enumerating objects"
msgstr "ИзброÑване на обектите"
-#: builtin/pack-objects.c:3527
+#: builtin/pack-objects.c:3511
#, c-format
msgid "Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>)"
msgstr ""
@@ -16947,44 +17032,44 @@ msgstr "Ðеправилна ÑтойноÑÑ‚ за „%s“: „%s“"
msgid "git pull [<options>] [<repository> [<refspec>...]]"
msgstr "git push [ОПЦИЯ…] [ХРÐÐИЛИЩЕ [УКÐЗÐТЕЛ_ÐÐ_ВЕРСИЯ…]]"
-#: builtin/pull.c:141
+#: builtin/pull.c:142
msgid "control for recursive fetching of submodules"
msgstr "управление на рекурÑивното доÑтавÑне на подмодулите"
-#: builtin/pull.c:145
+#: builtin/pull.c:146
msgid "Options related to merging"
msgstr "Опции при Ñливане"
-#: builtin/pull.c:148
+#: builtin/pull.c:149
msgid "incorporate changes by rebasing rather than merging"
msgstr "внаÑÑне на промените чрез пребазиране, а не чрез Ñливане"
-#: builtin/pull.c:176 builtin/rebase.c:447 builtin/revert.c:126
+#: builtin/pull.c:177 builtin/rebase.c:448 builtin/revert.c:126
msgid "allow fast-forward"
msgstr "позволÑване на превъртаниÑ"
-#: builtin/pull.c:185
+#: builtin/pull.c:186
msgid "automatically stash/stash pop before and after rebase"
msgstr "автоматично Ñкатаване/прилагане на Ñкатаното преди и Ñлед пребазиране"
-#: builtin/pull.c:201
+#: builtin/pull.c:202
msgid "Options related to fetching"
msgstr "Опции при доÑтавÑне"
-#: builtin/pull.c:211
+#: builtin/pull.c:212
msgid "force overwrite of local branch"
msgstr "принудително презапиÑване на Ð»Ð¾ÐºÐ°Ð»Ð½Ð¸Ñ ÐºÐ»Ð¾Ð½"
-#: builtin/pull.c:219
+#: builtin/pull.c:220
msgid "number of submodules pulled in parallel"
msgstr "брой подмодули издърпани паралелно"
-#: builtin/pull.c:316
+#: builtin/pull.c:320
#, c-format
msgid "Invalid value for pull.ff: %s"
msgstr "Ðеправилна ÑтойноÑÑ‚ за „pull.ff“: „%s“"
-#: builtin/pull.c:433
+#: builtin/pull.c:437
msgid ""
"There is no candidate for rebasing against among the refs that you just "
"fetched."
@@ -16992,14 +17077,14 @@ msgstr ""
"Между указателите, които току що доÑтавихте, нÑма подходÑщ кандидат, върху "
"който да пребазирате."
-#: builtin/pull.c:435
+#: builtin/pull.c:439
msgid ""
"There are no candidates for merging among the refs that you just fetched."
msgstr ""
"Между указателите, които току що доÑтавихте, нÑма подходÑщ кандидат, който "
"да Ñлеете."
-#: builtin/pull.c:436
+#: builtin/pull.c:440
msgid ""
"Generally this means that you provided a wildcard refspec which had no\n"
"matches on the remote end."
@@ -17007,7 +17092,7 @@ msgstr ""
"Ðай вероÑтно Ñте подали шаблон за указатели, който не е напаÑнал Ñ Ð½Ð¸Ñ‰Ð¾ в "
"отдалеченото хранилище."
-#: builtin/pull.c:439
+#: builtin/pull.c:443
#, c-format
msgid ""
"You asked to pull from the remote '%s', but did not specify\n"
@@ -17018,44 +17103,44 @@ msgstr ""
"Понеже това не е хранилището по подразбиране на Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ ÐºÐ»Ð¾Ð½, Ñ‚Ñ€Ñбва\n"
"да укажете Ð¾Ñ‚Ð´Ð°Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ ÐºÐ»Ð¾Ð½ на ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¸Ñ Ñ€ÐµÐ´."
-#: builtin/pull.c:444 builtin/rebase.c:1326 git-parse-remote.sh:73
+#: builtin/pull.c:448 builtin/rebase.c:1347 git-parse-remote.sh:73
msgid "You are not currently on a branch."
msgstr "Извън вÑички клони."
-#: builtin/pull.c:446 builtin/pull.c:461 git-parse-remote.sh:79
+#: builtin/pull.c:450 builtin/pull.c:465 git-parse-remote.sh:79
msgid "Please specify which branch you want to rebase against."
msgstr "Укажете върху кой клон иÑкате да пребазирате."
-#: builtin/pull.c:448 builtin/pull.c:463 git-parse-remote.sh:82
+#: builtin/pull.c:452 builtin/pull.c:467 git-parse-remote.sh:82
msgid "Please specify which branch you want to merge with."
msgstr "Укажете кой клон иÑкате да Ñлеете."
-#: builtin/pull.c:449 builtin/pull.c:464
+#: builtin/pull.c:453 builtin/pull.c:468
msgid "See git-pull(1) for details."
msgstr "За повече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ð³Ð»ÐµÐ´Ð½ÐµÑ‚Ðµ ръководÑтвото „git-pull(1)“"
-#: builtin/pull.c:451 builtin/pull.c:457 builtin/pull.c:466
-#: builtin/rebase.c:1332 git-parse-remote.sh:64
+#: builtin/pull.c:455 builtin/pull.c:461 builtin/pull.c:470
+#: builtin/rebase.c:1353 git-parse-remote.sh:64
msgid "<remote>"
msgstr "ОТДÐЛЕЧЕÐО_ХРÐÐИЛИЩЕ"
-#: builtin/pull.c:451 builtin/pull.c:466 builtin/pull.c:471
+#: builtin/pull.c:455 builtin/pull.c:470 builtin/pull.c:475
#: git-parse-remote.sh:65
msgid "<branch>"
msgstr "КЛОÐ"
-#: builtin/pull.c:459 builtin/rebase.c:1324 git-parse-remote.sh:75
+#: builtin/pull.c:463 builtin/rebase.c:1345 git-parse-remote.sh:75
msgid "There is no tracking information for the current branch."
msgstr "ТекущиÑÑ‚ клон не Ñледи никой."
-#: builtin/pull.c:468 git-parse-remote.sh:95
+#: builtin/pull.c:472 git-parse-remote.sh:95
msgid ""
"If you wish to set tracking information for this branch you can do so with:"
msgstr ""
"Ðко иÑкате да зададете Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° Ñледен клон, можете да направите това Ñ "
"командата:"
-#: builtin/pull.c:473
+#: builtin/pull.c:477
#, c-format
msgid ""
"Your configuration specifies to merge with the ref '%s'\n"
@@ -17064,32 +17149,32 @@ msgstr ""
"За Ñливане е указан отдалечениÑÑ‚ указател „%s“,\n"
"но такъв не е доÑтавен."
-#: builtin/pull.c:581
+#: builtin/pull.c:587
#, c-format
msgid "unable to access commit %s"
msgstr "недоÑтъпно подаване: %s"
-#: builtin/pull.c:861
+#: builtin/pull.c:867
msgid "ignoring --verify-signatures for rebase"
msgstr "без „--verify-signatures“ при пребазиране"
-#: builtin/pull.c:916
+#: builtin/pull.c:922
msgid "--[no-]autostash option is only valid with --rebase."
msgstr "опциÑта „--[no-]autostash“ изиÑква „--rebase“"
-#: builtin/pull.c:924
+#: builtin/pull.c:930
msgid "Updating an unborn branch with changes added to the index."
msgstr "ОбновÑване на вÑе още неÑъздаден клон Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð¸Ñ‚Ðµ от индекÑа"
-#: builtin/pull.c:928
+#: builtin/pull.c:934
msgid "pull with rebase"
msgstr "издърпване Ñ Ð¿Ñ€ÐµÐ±Ð°Ð·Ð¸Ñ€Ð°Ð½Ðµ"
-#: builtin/pull.c:929
+#: builtin/pull.c:935
msgid "please commit or stash them."
msgstr "Ñ‚Ñ€Ñбва да подадете или Ñкатаете промените."
-#: builtin/pull.c:954
+#: builtin/pull.c:960
#, c-format
msgid ""
"fetch updated the current branch head.\n"
@@ -17099,7 +17184,7 @@ msgstr ""
"доÑтавÑнето обнови върха на Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ ÐºÐ»Ð¾Ð½. Работното\n"
"ви копие бе превъртÑно от подаване „%s“."
-#: builtin/pull.c:960
+#: builtin/pull.c:966
#, c-format
msgid ""
"Cannot fast-forward your working tree.\n"
@@ -17116,15 +17201,15 @@ msgstr ""
" git reset --hard\n"
"за връщане към нормално ÑÑŠÑтоÑние."
-#: builtin/pull.c:975
+#: builtin/pull.c:981
msgid "Cannot merge multiple branches into empty head."
msgstr "Ðе може да Ñливате множеÑтво клони в празен върхов указател."
-#: builtin/pull.c:979
+#: builtin/pull.c:985
msgid "Cannot rebase onto multiple branches."
msgstr "Ðе може да пребазирате върху повече от един клон."
-#: builtin/pull.c:986
+#: builtin/pull.c:992
msgid "cannot rebase with locally recorded submodule modifications"
msgstr ""
"пребазирането е невъзможно заради локално запиÑаните промени по подмодулите"
@@ -17298,139 +17383,139 @@ msgstr ""
msgid "Pushing to %s\n"
msgstr "ИзтлаÑкване към „%s“\n"
-#: builtin/push.c:364
+#: builtin/push.c:366
#, c-format
msgid "failed to push some refs to '%s'"
msgstr "чаÑÑ‚ от указателите не бÑха изтлаÑкани към „%s“"
-#: builtin/push.c:398
-#, c-format
-msgid "bad repository '%s'"
-msgstr "неправилно указано хранилище „%s“"
-
-#: builtin/push.c:399
-msgid ""
-"No configured push destination.\n"
-"Either specify the URL from the command-line or configure a remote "
-"repository using\n"
-"\n"
-" git remote add <name> <url>\n"
-"\n"
-"and then push using the remote name\n"
-"\n"
-" git push <name>\n"
-msgstr ""
-"Ðе е указано хранилище, към което да Ñе изтлаÑква.\n"
-"Или укажете адреÑа на ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¸Ñ Ñ€ÐµÐ´, или наÑтройте отдалечено хранилище Ñ "
-"командата:\n"
-"\n"
-" git remote add ИМЕ ÐДРЕС\n"
-"\n"
-"и Ñлед това изтлаÑкайте, като укажете името на отдалеченото хранилище:\n"
-"\n"
-" git push ИМЕ\n"
-
-#: builtin/push.c:554
+#: builtin/push.c:541
msgid "repository"
msgstr "хранилище"
-#: builtin/push.c:555 builtin/send-pack.c:164
+#: builtin/push.c:542 builtin/send-pack.c:164
msgid "push all refs"
msgstr "изтлаÑкване на вÑички указатели"
-#: builtin/push.c:556 builtin/send-pack.c:166
+#: builtin/push.c:543 builtin/send-pack.c:166
msgid "mirror all refs"
msgstr "огледално копие на вÑички указатели"
-#: builtin/push.c:558
+#: builtin/push.c:545
msgid "delete refs"
msgstr "изтриване на указателите"
-#: builtin/push.c:559
+#: builtin/push.c:546
msgid "push tags (can't be used with --all or --mirror)"
msgstr "изтлаÑкване на етикетите (неÑъвмеÑтимо Ñ Ð¾Ð¿Ñ†Ð¸Ð¸Ñ‚Ðµ „--all“ и „--mirror“)"
-#: builtin/push.c:562 builtin/send-pack.c:167
+#: builtin/push.c:549 builtin/send-pack.c:167
msgid "force updates"
msgstr "принудително обновÑване"
-#: builtin/push.c:564 builtin/send-pack.c:181
+#: builtin/push.c:551 builtin/send-pack.c:181
msgid "<refname>:<expect>"
msgstr "УКÐЗÐТЕЛ:ОЧÐКВÐÐÐ_СТОЙÐОСТ"
-#: builtin/push.c:565 builtin/send-pack.c:182
+#: builtin/push.c:552 builtin/send-pack.c:182
msgid "require old value of ref to be at this value"
msgstr "УКÐЗÐТЕЛÑÑ‚ Ñ‚Ñ€Ñбва първоначално да е Ñ Ñ‚Ð°Ð·Ð¸ ОЧÐКВÐÐÐ_СТОЙÐОСТ"
-#: builtin/push.c:568
+#: builtin/push.c:555
msgid "control recursive pushing of submodules"
msgstr "управление на рекурÑивното изтлаÑкване на подмодулите"
-#: builtin/push.c:570 builtin/send-pack.c:175
+#: builtin/push.c:557 builtin/send-pack.c:175
msgid "use thin pack"
msgstr "използване на Ñъкратени пакети"
-#: builtin/push.c:571 builtin/push.c:572 builtin/send-pack.c:161
+#: builtin/push.c:558 builtin/push.c:559 builtin/send-pack.c:161
#: builtin/send-pack.c:162
msgid "receive pack program"
msgstr "програма за получаването на пакети"
-#: builtin/push.c:573
+#: builtin/push.c:560
msgid "set upstream for git pull/status"
msgstr "задаване на отдалеченото хранилище за командите „git pull/status“"
-#: builtin/push.c:576
+#: builtin/push.c:563
msgid "prune locally removed refs"
msgstr "окаÑÑ‚Ñ€Ñне на указателите, които Ñа премахнати от локалното хранилище"
-#: builtin/push.c:578
+#: builtin/push.c:565
msgid "bypass pre-push hook"
msgstr "без изпълнение на куката преди изтлаÑкване (pre-push)"
-#: builtin/push.c:579
+#: builtin/push.c:566
msgid "push missing but relevant tags"
msgstr ""
"изтлаÑкване на липÑващите в отдалеченото хранилище, но Ñвързани Ñ Ñ‚ÐµÐºÑƒÑ‰Ð¾Ñ‚Ð¾ "
"изтлаÑкване, етикети"
-#: builtin/push.c:582 builtin/send-pack.c:169
+#: builtin/push.c:569 builtin/send-pack.c:169
msgid "GPG sign the push"
msgstr "подпиÑване на изтлаÑкването Ñ GPG"
-#: builtin/push.c:584 builtin/send-pack.c:176
+#: builtin/push.c:571 builtin/send-pack.c:176
msgid "request atomic transaction on remote side"
msgstr "изиÑкване на атомарни операции от отÑрещната Ñтрана"
-#: builtin/push.c:602
+#: builtin/push.c:589
msgid "--delete is incompatible with --all, --mirror and --tags"
msgstr ""
"опциÑта „--delete“ е неÑъвмеÑтима Ñ Ð¾Ð¿Ñ†Ð¸Ð¸Ñ‚Ðµ „--all“, „--mirror“ и „--tags“"
-#: builtin/push.c:604
+#: builtin/push.c:591
msgid "--delete doesn't make sense without any refs"
msgstr "опциÑта „--delete“ изиÑква поне един указател на верÑиÑ"
-#: builtin/push.c:607
+#: builtin/push.c:611
+#, c-format
+msgid "bad repository '%s'"
+msgstr "неправилно указано хранилище „%s“"
+
+#: builtin/push.c:612
+msgid ""
+"No configured push destination.\n"
+"Either specify the URL from the command-line or configure a remote "
+"repository using\n"
+"\n"
+" git remote add <name> <url>\n"
+"\n"
+"and then push using the remote name\n"
+"\n"
+" git push <name>\n"
+msgstr ""
+"Ðе е указано хранилище, към което да Ñе изтлаÑква.\n"
+"Или укажете адреÑа на ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¸Ñ Ñ€ÐµÐ´, или наÑтройте отдалечено хранилище Ñ "
+"командата:\n"
+"\n"
+" git remote add ИМЕ ÐДРЕС\n"
+"\n"
+"и Ñлед това изтлаÑкайте, като укажете името на отдалеченото хранилище:\n"
+"\n"
+" git push ИМЕ\n"
+
+#: builtin/push.c:627
msgid "--all and --tags are incompatible"
msgstr "опциите „--all“ и „--tags“ Ñа неÑъвмеÑтими"
-#: builtin/push.c:609
+#: builtin/push.c:629
msgid "--all can't be combined with refspecs"
msgstr "опциÑта „--all“ е неÑъвмеÑтима Ñ ÑƒÐºÐ°Ð·Ð²Ð°Ð½ÐµÑ‚Ð¾ на верÑиÑ"
-#: builtin/push.c:613
+#: builtin/push.c:633
msgid "--mirror and --tags are incompatible"
msgstr "опциите „--mirror“ и „--tags“ Ñа неÑъвмеÑтими"
-#: builtin/push.c:615
+#: builtin/push.c:635
msgid "--mirror can't be combined with refspecs"
msgstr "опциÑта „--mirror“ е неÑъвмеÑтима Ñ ÑƒÐºÐ°Ð·Ð²Ð°Ð½ÐµÑ‚Ð¾ на верÑиÑ"
-#: builtin/push.c:618
+#: builtin/push.c:638
msgid "--all and --mirror are incompatible"
msgstr "опциите „--all“ и „--mirror“ Ñа неÑъвмеÑтими"
-#: builtin/push.c:637
+#: builtin/push.c:642
msgid "push options must not have new line characters"
msgstr "опциите за изтлаÑкване не Ñ‚Ñ€Ñбва да Ñъдържат знак за нов ред"
@@ -17548,11 +17633,11 @@ msgstr "без информационни ÑъобщениÑ"
#: builtin/rebase.c:32
msgid ""
-"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] [<upstream>] "
-"[<branch>]"
+"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase> | --keep-base] "
+"[<upstream> [<branch>]]"
msgstr ""
-"git rebase [-i] [ОПЦИЯ…] [--exec КОМÐÐДÐ] [--onto ÐОВÐ_БÐЗÐ] [КЛОÐ_ИЗТОЧÐИК] "
-"[КЛОÐ]"
+"git rebase [-i] [ОПЦИЯ…] [--exec КОМÐÐДÐ] [--onto ÐОВÐ_БÐЗР| --keep-base] "
+"[КЛОÐ_ИЗТОЧÐИК [КЛОÐ]]"
#: builtin/rebase.c:34
msgid ""
@@ -17591,193 +17676,193 @@ msgstr "невъзможно задаване на интерактивна ра
msgid "could not generate todo list"
msgstr "файлът Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸Ñ‚Ðµ не може да Ñе генерира"
-#: builtin/rebase.c:382
+#: builtin/rebase.c:383
msgid "a base commit must be provided with --upstream or --onto"
msgstr "опциите „--upstream“ и „--onto“ изиÑкват базово подаване"
-#: builtin/rebase.c:437
+#: builtin/rebase.c:438
msgid "git rebase--interactive [<options>]"
msgstr "git rebase--interactive [ОПЦИЯ…]"
-#: builtin/rebase.c:449
+#: builtin/rebase.c:450
msgid "keep empty commits"
msgstr "запазване на празните подаваниÑ"
-#: builtin/rebase.c:451 builtin/revert.c:128
+#: builtin/rebase.c:452 builtin/revert.c:128
msgid "allow commits with empty messages"
msgstr "позволÑване на празни ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ подаване"
-#: builtin/rebase.c:452
+#: builtin/rebase.c:453
msgid "rebase merge commits"
msgstr "пребазиране на подаваниÑта ÑÑŠÑ ÑливаниÑ"
-#: builtin/rebase.c:454
+#: builtin/rebase.c:455
msgid "keep original branch points of cousins"
msgstr ""
"запазване на първоначалните точки на разклонÑване на ÑеÑтринÑките клони"
-#: builtin/rebase.c:456
+#: builtin/rebase.c:457
msgid "move commits that begin with squash!/fixup!"
msgstr "премеÑтване на подаваниÑта, които започват ÑÑŠÑ â€žsquash!“/“fixup!“"
-#: builtin/rebase.c:457
+#: builtin/rebase.c:458
msgid "sign commits"
msgstr "подпиÑване на подаваниÑта"
-#: builtin/rebase.c:459 builtin/rebase.c:1403
+#: builtin/rebase.c:460 builtin/rebase.c:1427
msgid "display a diffstat of what changed upstream"
msgstr "извеждане на ÑтатиÑтика Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð¸Ñ‚Ðµ в ÑÐ»ÐµÐ´ÐµÐ½Ð¸Ñ ÐºÐ»Ð¾Ð½"
-#: builtin/rebase.c:461
+#: builtin/rebase.c:462
msgid "continue rebase"
msgstr "продължаване на пребазирането"
-#: builtin/rebase.c:463
+#: builtin/rebase.c:464
msgid "skip commit"
msgstr "преÑкачане на подаване"
-#: builtin/rebase.c:464
+#: builtin/rebase.c:465
msgid "edit the todo list"
msgstr "редактиране на ÑпиÑъка Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ за изпълнение"
-#: builtin/rebase.c:466
+#: builtin/rebase.c:467
msgid "show the current patch"
msgstr "извеждане на текущата кръпка"
-#: builtin/rebase.c:469
+#: builtin/rebase.c:470
msgid "shorten commit ids in the todo list"
msgstr "Ñъкратени идентификатори в ÑпиÑъка за изпълнение"
-#: builtin/rebase.c:471
+#: builtin/rebase.c:472
msgid "expand commit ids in the todo list"
msgstr "пълни идентификатори в ÑпиÑъка за изпълнение"
-#: builtin/rebase.c:473
+#: builtin/rebase.c:474
msgid "check the todo list"
msgstr "проверка на ÑпиÑъка за изпълнение"
-#: builtin/rebase.c:475
+#: builtin/rebase.c:476
msgid "rearrange fixup/squash lines"
msgstr ""
"преподреждане на редовете за вкарване на подаваниÑта подаваниÑта в "
"предходните им ÑÑŠÑ Ð¸ без Ñмени на Ñъобщението"
-#: builtin/rebase.c:477
+#: builtin/rebase.c:478
msgid "insert exec commands in todo list"
msgstr "вмъкване на командите за изпълнение в ÑпиÑъка за изпълнение"
-#: builtin/rebase.c:478
+#: builtin/rebase.c:479
msgid "onto"
msgstr "върху"
-#: builtin/rebase.c:481
+#: builtin/rebase.c:482
msgid "restrict-revision"
msgstr "ограничена верÑиÑ"
-#: builtin/rebase.c:481
+#: builtin/rebase.c:482
msgid "restrict revision"
msgstr "ограничена верÑиÑ"
-#: builtin/rebase.c:483
+#: builtin/rebase.c:484
msgid "squash-onto"
msgstr "подаване, в което другите да Ñе вкарат"
-#: builtin/rebase.c:484
+#: builtin/rebase.c:485
msgid "squash onto"
msgstr "подаване, в което другите да Ñе вкарат"
-#: builtin/rebase.c:486
+#: builtin/rebase.c:487
msgid "the upstream commit"
msgstr "подаване на източника"
-#: builtin/rebase.c:488
+#: builtin/rebase.c:489
msgid "head-name"
msgstr "име на върха"
-#: builtin/rebase.c:488
+#: builtin/rebase.c:489
msgid "head name"
msgstr "име на върха"
-#: builtin/rebase.c:493
+#: builtin/rebase.c:494
msgid "rebase strategy"
msgstr "ÑÑ‚Ñ€Ð°Ñ‚ÐµÐ³Ð¸Ñ Ð½Ð° пребазиране"
-#: builtin/rebase.c:494
+#: builtin/rebase.c:495
msgid "strategy-opts"
msgstr "опции на ÑтратегиÑта"
-#: builtin/rebase.c:495
+#: builtin/rebase.c:496
msgid "strategy options"
msgstr "опции на ÑтратегиÑта"
-#: builtin/rebase.c:496
+#: builtin/rebase.c:497
msgid "switch-to"
msgstr "преминаване към"
-#: builtin/rebase.c:497
+#: builtin/rebase.c:498
msgid "the branch or commit to checkout"
msgstr "клонът, към който да Ñе премине"
-#: builtin/rebase.c:498
+#: builtin/rebase.c:499
msgid "onto-name"
msgstr "име на база"
-#: builtin/rebase.c:498
+#: builtin/rebase.c:499
msgid "onto name"
msgstr "име на база"
-#: builtin/rebase.c:499
+#: builtin/rebase.c:500
msgid "cmd"
msgstr "команда"
-#: builtin/rebase.c:499
+#: builtin/rebase.c:500
msgid "the command to run"
msgstr "команда за изпълнение"
-#: builtin/rebase.c:502 builtin/rebase.c:1486
+#: builtin/rebase.c:503 builtin/rebase.c:1510
msgid "automatically re-schedule any `exec` that fails"
msgstr ""
"автоматично подаване за повторно изпълнение на командите завършили Ñ Ð½ÐµÑƒÑпех"
-#: builtin/rebase.c:518
+#: builtin/rebase.c:519
msgid "--[no-]rebase-cousins has no effect without --rebase-merges"
msgstr "опциите „--[no-]rebase-cousins“ изиÑкват опциÑта „--rebase-merges“"
-#: builtin/rebase.c:534
+#: builtin/rebase.c:535
#, c-format
msgid "%s requires an interactive rebase"
msgstr "„%s“ изиÑква интерактивно пребазиране"
-#: builtin/rebase.c:586
+#: builtin/rebase.c:587
#, c-format
msgid "could not get 'onto': '%s'"
msgstr "не може да Ñе премине към новата база, зададена Ñ â€žonto“: „%s“"
-#: builtin/rebase.c:601
+#: builtin/rebase.c:602
#, c-format
msgid "invalid orig-head: '%s'"
msgstr "неправилен указател към първоначален връх „orig-head“: „%s“"
-#: builtin/rebase.c:626
+#: builtin/rebase.c:627
#, c-format
msgid "ignoring invalid allow_rerere_autoupdate: '%s'"
msgstr "неправилната ÑтойноÑÑ‚ на „allow_rerere_autoupdate“ Ñе преÑкача: „%s“"
-#: builtin/rebase.c:702
+#: builtin/rebase.c:703
#, c-format
msgid "Could not read '%s'"
msgstr "ПътÑÑ‚ „%s“ не може да бъде прочетен"
-#: builtin/rebase.c:720
+#: builtin/rebase.c:721
#, c-format
msgid "Cannot store %s"
msgstr "„%s“ не може да бъде запазен"
-#: builtin/rebase.c:827
+#: builtin/rebase.c:828
msgid "could not determine HEAD revision"
msgstr "не може да Ñе определи към какво да Ñочи указателÑÑ‚ „HEAD“"
-#: builtin/rebase.c:950 git-rebase--preserve-merges.sh:81
+#: builtin/rebase.c:951 git-rebase--preserve-merges.sh:81
msgid ""
"Resolve all conflicts manually, mark them as resolved with\n"
"\"git add/rm <conflicted_files>\", then run \"git rebase --continue\".\n"
@@ -17791,7 +17876,7 @@ msgstr ""
"За да откажете пребазирането и да Ñе върнете към първоначалното ÑÑŠÑтоÑние,\n"
"изпълнете „git rebase --abort“."
-#: builtin/rebase.c:1031
+#: builtin/rebase.c:1032
#, c-format
msgid ""
"\n"
@@ -17809,7 +17894,7 @@ msgstr ""
"\n"
"Ð’ резултат те не могат да Ñе пребазират."
-#: builtin/rebase.c:1318
+#: builtin/rebase.c:1339
#, c-format
msgid ""
"%s\n"
@@ -17826,7 +17911,7 @@ msgstr ""
" git rebase КЛОÐ\n"
"\n"
-#: builtin/rebase.c:1334
+#: builtin/rebase.c:1355
#, c-format
msgid ""
"If you wish to set tracking information for this branch you can do so with:\n"
@@ -17839,135 +17924,139 @@ msgstr ""
"\n"
" git branch --set-upstream-to=%s/КЛОР%s\n"
-#: builtin/rebase.c:1364
+#: builtin/rebase.c:1385
msgid "exec commands cannot contain newlines"
msgstr "командите за изпълнение не може да Ñъдържат нови редове"
-#: builtin/rebase.c:1368
+#: builtin/rebase.c:1389
msgid "empty exec command"
msgstr "празна команда за изпълнение"
-#: builtin/rebase.c:1396
+#: builtin/rebase.c:1418
msgid "rebase onto given branch instead of upstream"
msgstr "пребазиране върху зададениÑ, а не ÑÐ»ÐµÐ´ÐµÐ½Ð¸Ñ ÐºÐ»Ð¾Ð½"
-#: builtin/rebase.c:1398
+#: builtin/rebase.c:1420
+msgid "use the merge-base of upstream and branch as the current base"
+msgstr "за текуща база да Ñе ползва базата за Ñливане на клона и Ñледеното"
+
+#: builtin/rebase.c:1422
msgid "allow pre-rebase hook to run"
msgstr "позволÑване на куката преди пребазиране да Ñе изпълни"
-#: builtin/rebase.c:1400
+#: builtin/rebase.c:1424
msgid "be quiet. implies --no-stat"
msgstr "без извеждане на информациÑ. Включва опциÑта „--no-stat“"
-#: builtin/rebase.c:1406
+#: builtin/rebase.c:1430
msgid "do not show diffstat of what changed upstream"
msgstr "без извеждане на ÑтатиÑтика Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð¸Ñ‚Ðµ в ÑÐ»ÐµÐ´ÐµÐ½Ð¸Ñ ÐºÐ»Ð¾Ð½"
-#: builtin/rebase.c:1409
+#: builtin/rebase.c:1433
msgid "add a Signed-off-by: line to each commit"
msgstr ""
"добавÑне на ред за Ð¿Ð¾Ð´Ð¿Ð¸Ñ â€žSigned-off-by“ в Ñъобщението на вÑÑко подаване"
-#: builtin/rebase.c:1411 builtin/rebase.c:1415 builtin/rebase.c:1417
+#: builtin/rebase.c:1435 builtin/rebase.c:1439 builtin/rebase.c:1441
msgid "passed to 'git am'"
msgstr "подава Ñе на командата „git am“"
-#: builtin/rebase.c:1419 builtin/rebase.c:1421
+#: builtin/rebase.c:1443 builtin/rebase.c:1445
msgid "passed to 'git apply'"
msgstr "подава Ñе на командата „git apply“"
-#: builtin/rebase.c:1423 builtin/rebase.c:1426
+#: builtin/rebase.c:1447 builtin/rebase.c:1450
msgid "cherry-pick all commits, even if unchanged"
msgstr "отбиране на вÑички Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ Ð´Ð¾Ñ€Ð¸ да нÑма промени"
-#: builtin/rebase.c:1428
+#: builtin/rebase.c:1452
msgid "continue"
msgstr "продължаване"
-#: builtin/rebase.c:1431
+#: builtin/rebase.c:1455
msgid "skip current patch and continue"
msgstr "преÑкачане на текущата кръпка и продължаване"
-#: builtin/rebase.c:1433
+#: builtin/rebase.c:1457
msgid "abort and check out the original branch"
msgstr "преуÑтановÑване и възÑтановÑване на Ð¿ÑŠÑ€Ð²Ð¾Ð½Ð°Ñ‡Ð°Ð»Ð½Ð¸Ñ ÐºÐ»Ð¾Ð½"
-#: builtin/rebase.c:1436
+#: builtin/rebase.c:1460
msgid "abort but keep HEAD where it is"
msgstr "преуÑтановÑване без промÑна към какво Ñочи „HEAD“"
-#: builtin/rebase.c:1437
+#: builtin/rebase.c:1461
msgid "edit the todo list during an interactive rebase"
msgstr "редактиране на файла Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ при интерактивно пребазиране"
-#: builtin/rebase.c:1440
+#: builtin/rebase.c:1464
msgid "show the patch file being applied or merged"
msgstr "показване на кръпката, коÑто Ñе прилага или Ñлива"
-#: builtin/rebase.c:1443
+#: builtin/rebase.c:1467
msgid "use merging strategies to rebase"
msgstr "при пребазиране да Ñе ползва ÑÑ‚Ñ€Ð°Ñ‚ÐµÐ³Ð¸Ñ Ð·Ð° Ñливане"
-#: builtin/rebase.c:1447
+#: builtin/rebase.c:1471
msgid "let the user edit the list of commits to rebase"
msgstr ""
"позволÑване на Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ñ Ð´Ð° редактира ÑпиÑъка Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ Ð·Ð° пребазиране"
-#: builtin/rebase.c:1451
+#: builtin/rebase.c:1475
msgid "(DEPRECATED) try to recreate merges instead of ignoring them"
msgstr "(оÑтарÑло) преÑъздаване на ÑливаниÑта вмеÑто да Ñе преÑкачат"
-#: builtin/rebase.c:1455
+#: builtin/rebase.c:1479
msgid "preserve empty commits during rebase"
msgstr "запазване на празните Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸ пребазиране"
-#: builtin/rebase.c:1457
+#: builtin/rebase.c:1481
msgid "move commits that begin with squash!/fixup! under -i"
msgstr ""
"премеÑтване на подаваниÑта, които започват ÑÑŠÑ â€žsquash!“/“fixup!“ при „-i“"
-#: builtin/rebase.c:1463
+#: builtin/rebase.c:1487
msgid "automatically stash/stash pop before and after"
msgstr "автоматично Ñкатаване/прилагане на Ñкатаното преди и Ñлед пребазиране"
-#: builtin/rebase.c:1465
+#: builtin/rebase.c:1489
msgid "add exec lines after each commit of the editable list"
msgstr ""
"добавÑне на редове Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ за изпълнение Ñлед вÑÑко подаване в "
"Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð°Ð½Ð¸Ñ ÑпиÑък"
-#: builtin/rebase.c:1469
+#: builtin/rebase.c:1493
msgid "allow rebasing commits with empty messages"
msgstr "позволÑване на пребазиране на Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ñ€Ð°Ð·Ð½Ð¸ ÑъобщениÑ"
-#: builtin/rebase.c:1472
+#: builtin/rebase.c:1496
msgid "try to rebase merges instead of skipping them"
msgstr "опит за пребазиране на ÑливаниÑта вмеÑто те да Ñе преÑкачат"
-#: builtin/rebase.c:1475
+#: builtin/rebase.c:1499
msgid "use 'merge-base --fork-point' to refine upstream"
msgstr ""
"за доуточнÑването на ÑÐ»ÐµÐ´ÐµÐ½Ð¸Ñ ÐºÐ»Ð¾Ð½, използвайте:\n"
"\n"
" git merge-base --fork-point"
-#: builtin/rebase.c:1477
+#: builtin/rebase.c:1501
msgid "use the given merge strategy"
msgstr "използване на зададената ÑтратегиÑта на Ñливане"
-#: builtin/rebase.c:1479 builtin/revert.c:115
+#: builtin/rebase.c:1503 builtin/revert.c:115
msgid "option"
msgstr "опциÑ"
-#: builtin/rebase.c:1480
+#: builtin/rebase.c:1504
msgid "pass the argument through to the merge strategy"
msgstr "аргументът да Ñе подаде на ÑтратегиÑта за Ñливане"
-#: builtin/rebase.c:1483
+#: builtin/rebase.c:1507
msgid "rebase all reachable commits up to the root(s)"
msgstr "пребазиране на вÑички доÑтижими Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ Ð´Ð¾ началното им подаване"
-#: builtin/rebase.c:1500
+#: builtin/rebase.c:1524
msgid ""
"the rebase.useBuiltin support has been removed!\n"
"See its entry in 'git help config' for details."
@@ -17975,33 +18064,41 @@ msgstr ""
"поддръжката на „rebase.useBuiltin“ е премахната.\n"
"За повече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð²Ð¸Ð¶Ñ‚Ðµ „git help config“."
-#: builtin/rebase.c:1506
+#: builtin/rebase.c:1530
msgid "It looks like 'git am' is in progress. Cannot rebase."
msgstr ""
"Изглежда, че Ñега Ñе прилагат кръпки чрез командата „git-am“. Ðе може да "
"пребазирате в момента."
-#: builtin/rebase.c:1547
+#: builtin/rebase.c:1571
msgid ""
"git rebase --preserve-merges is deprecated. Use --rebase-merges instead."
msgstr ""
"ОпциÑта „--preserve-merges“ е оÑтарÑла. Ползвайте „--rebase-merges“ вмеÑто "
"неÑ."
-#: builtin/rebase.c:1551
+#: builtin/rebase.c:1576
+msgid "cannot combine '--keep-base' with '--onto'"
+msgstr "опциите „--keep-base“ и „--onto“ Ñа неÑъвмеÑтими"
+
+#: builtin/rebase.c:1578
+msgid "cannot combine '--keep-base' with '--root'"
+msgstr "опциите „--keep-base“ и „--root“ Ñа неÑъвмеÑтими"
+
+#: builtin/rebase.c:1582
msgid "No rebase in progress?"
msgstr "Изглежда в момента не тече пребазиране"
-#: builtin/rebase.c:1555
+#: builtin/rebase.c:1586
msgid "The --edit-todo action can only be used during interactive rebase."
msgstr ""
"ОпциÑта „--edit-todo“ е доÑтъпна Ñамо по време на интерактивно пребазиране."
-#: builtin/rebase.c:1578
+#: builtin/rebase.c:1609
msgid "Cannot read HEAD"
msgstr "УказателÑÑ‚ „HEAD“ не може да бъде прочетен"
-#: builtin/rebase.c:1590
+#: builtin/rebase.c:1621
msgid ""
"You must edit all merge conflicts and then\n"
"mark them as resolved using git add"
@@ -18009,16 +18106,16 @@ msgstr ""
"ТрÑбва да редактирате вÑички конфликти при Ñливането. След това\n"
"отбележете коригирането им чрез командата „git add“"
-#: builtin/rebase.c:1609
+#: builtin/rebase.c:1640
msgid "could not discard worktree changes"
msgstr "промените в работното дърво не могат да бъдат занулени"
-#: builtin/rebase.c:1628
+#: builtin/rebase.c:1659
#, c-format
msgid "could not move back to %s"
msgstr "връщането към „%s“ е невъзможно"
-#: builtin/rebase.c:1673
+#: builtin/rebase.c:1704
#, c-format
msgid ""
"It seems that there is already a %s directory, and\n"
@@ -18039,171 +18136,163 @@ msgstr ""
"за\n"
"да не загубите Ñлучайно промени.\n"
-#: builtin/rebase.c:1694
+#: builtin/rebase.c:1725
msgid "switch `C' expects a numerical value"
msgstr "опциÑта „C“ очаква чиÑло за аргумент"
-#: builtin/rebase.c:1735
+#: builtin/rebase.c:1766
#, c-format
msgid "Unknown mode: %s"
msgstr "ÐеизвеÑтна ÑтратегиÑ: „%s“"
-#: builtin/rebase.c:1757
+#: builtin/rebase.c:1788
msgid "--strategy requires --merge or --interactive"
msgstr ""
"опциÑта „--strategy“ изиÑква нÑÐºÐ¾Ñ Ð¾Ñ‚ опциите „--merge“ или „--interactive“"
-#: builtin/rebase.c:1797
+#: builtin/rebase.c:1828
msgid "--reschedule-failed-exec requires --exec or --interactive"
msgstr ""
"опциÑта „--reschedule-failed-exec“ изиÑква нÑÐºÐ¾Ñ Ð¾Ñ‚ опциите „--exec“ или „--"
"interactive“"
-#: builtin/rebase.c:1809
+#: builtin/rebase.c:1840
msgid "cannot combine am options with either interactive or merge options"
msgstr ""
"опциите за „am“ Ñа неÑъвмеÑтими Ñ Ð¾Ð¿Ñ†Ð¸Ð¸Ñ‚Ðµ за Ñливане или за интерактивна "
"работа"
-#: builtin/rebase.c:1828
+#: builtin/rebase.c:1859
msgid "cannot combine '--preserve-merges' with '--rebase-merges'"
msgstr "опциите „--preserve-merges“ и „--rebase-merges“ Ñа неÑъвмеÑтими"
-#: builtin/rebase.c:1832
+#: builtin/rebase.c:1863
msgid ""
"error: cannot combine '--preserve-merges' with '--reschedule-failed-exec'"
msgstr ""
"ГРЕШКÐ: опциите „--preserve-merges“ и „--reschedule-failed-exec“ Ñа "
"неÑъвмеÑтими"
-#: builtin/rebase.c:1838
-msgid "cannot combine '--rebase-merges' with '--strategy-option'"
-msgstr "опциите „--rebase-merges“ и „--strategy-option“ Ñа неÑъвмеÑтими"
-
-#: builtin/rebase.c:1841
-msgid "cannot combine '--rebase-merges' with '--strategy'"
-msgstr "опциите „--rebase-merges“ и „--strategy“ Ñа неÑъвмеÑтими"
-
-#: builtin/rebase.c:1865
+#: builtin/rebase.c:1887
#, c-format
msgid "invalid upstream '%s'"
msgstr "неправилен Ñледен клон: „%s“"
-#: builtin/rebase.c:1871
+#: builtin/rebase.c:1893
msgid "Could not create new root commit"
msgstr "Ðе може да Ñе Ñъздаде ново начално подаване"
-#: builtin/rebase.c:1889
+#: builtin/rebase.c:1919
+#, c-format
+msgid "'%s': need exactly one merge base with branch"
+msgstr "„%s“: изиÑква Ñе точно една база за Ñливане Ñ ÐºÐ»Ð¾Ð½Ð°"
+
+#: builtin/rebase.c:1922
#, c-format
msgid "'%s': need exactly one merge base"
msgstr "„%s“: изиÑква Ñе точно една база за пребазиране"
-#: builtin/rebase.c:1896
+#: builtin/rebase.c:1930
#, c-format
msgid "Does not point to a valid commit '%s'"
msgstr "УказателÑÑ‚ „%s“ не Ñочи към подаване"
-#: builtin/rebase.c:1921
+#: builtin/rebase.c:1955
#, c-format
msgid "fatal: no such branch/commit '%s'"
msgstr "ФÐТÐЛÐРГРЕШКÐ: не ÑъщеÑтвува клон „%s“"
-#: builtin/rebase.c:1929 builtin/submodule--helper.c:38
+#: builtin/rebase.c:1963 builtin/submodule--helper.c:38
#: builtin/submodule--helper.c:1934
#, c-format
msgid "No such ref: %s"
msgstr "Такъв указател нÑма: %s"
-#: builtin/rebase.c:1940
+#: builtin/rebase.c:1974
msgid "Could not resolve HEAD to a revision"
msgstr "Подаването, Ñочено от ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ â€žHEAD“, не може да бъде открито"
-#: builtin/rebase.c:1981
+#: builtin/rebase.c:2012
msgid "Cannot autostash"
msgstr "Ðе може да Ñе Ñкатае автоматично"
-#: builtin/rebase.c:1984
+#: builtin/rebase.c:2015
#, c-format
msgid "Unexpected stash response: '%s'"
msgstr "Ðеочакван резултат при Ñкатаване: „%s“"
-#: builtin/rebase.c:1990
+#: builtin/rebase.c:2021
#, c-format
msgid "Could not create directory for '%s'"
msgstr "ДиректориÑта за „%s“ не може да бъде Ñъздадена"
-#: builtin/rebase.c:1993
+#: builtin/rebase.c:2024
#, c-format
msgid "Created autostash: %s\n"
msgstr "Ðвтоматично Ñкатано: „%s“\n"
-#: builtin/rebase.c:1996
+#: builtin/rebase.c:2027
msgid "could not reset --hard"
msgstr "неуÑпешно изпълнение на „git reset --hard“"
-#: builtin/rebase.c:1997 builtin/reset.c:114
-#, c-format
-msgid "HEAD is now at %s"
-msgstr "УказателÑÑ‚ „HEAD“ Ñочи към „%s“"
-
-#: builtin/rebase.c:2013
+#: builtin/rebase.c:2036
msgid "Please commit or stash them."
msgstr "Промените Ñ‚Ñ€Ñбва или да Ñе подадат, или да Ñе ÑкатаÑÑ‚."
-#: builtin/rebase.c:2040
+#: builtin/rebase.c:2063
#, c-format
msgid "could not parse '%s'"
msgstr "„%s“ не може да Ñе анализира"
-#: builtin/rebase.c:2053
+#: builtin/rebase.c:2076
#, c-format
msgid "could not switch to %s"
msgstr "не може да Ñе премине към „%s“"
-#: builtin/rebase.c:2064
+#: builtin/rebase.c:2087
msgid "HEAD is up to date."
msgstr "УказателÑÑ‚ „HEAD“ е напълно актуален."
-#: builtin/rebase.c:2066
+#: builtin/rebase.c:2089
#, c-format
msgid "Current branch %s is up to date.\n"
msgstr "ТекущиÑÑ‚ клон „%s“ е напълно актуален.\n"
-#: builtin/rebase.c:2074
+#: builtin/rebase.c:2097
msgid "HEAD is up to date, rebase forced."
msgstr "УказателÑÑ‚ „HEAD“ е напълно актуален — принудително пребазиране"
-#: builtin/rebase.c:2076
+#: builtin/rebase.c:2099
#, c-format
msgid "Current branch %s is up to date, rebase forced.\n"
msgstr "ТекущиÑÑ‚ клон „%s“ е напълно актуален — принудително пребазиране\n"
-#: builtin/rebase.c:2084
+#: builtin/rebase.c:2107
msgid "The pre-rebase hook refused to rebase."
msgstr "Куката за изпълнение преди пребазиране отхвърли пребазирането."
-#: builtin/rebase.c:2091
+#: builtin/rebase.c:2114
#, c-format
msgid "Changes to %s:\n"
msgstr "Промените в „%s“:\n"
-#: builtin/rebase.c:2094
+#: builtin/rebase.c:2117
#, c-format
msgid "Changes from %s to %s:\n"
msgstr "Промените от „%s“ към „%s“:\n"
-#: builtin/rebase.c:2119
+#: builtin/rebase.c:2142
#, c-format
msgid "First, rewinding head to replay your work on top of it...\n"
msgstr ""
"Първо, указателÑÑ‚ „HEAD“ започва да Ñочи към базата, върху коÑто "
"пребазирате…\n"
-#: builtin/rebase.c:2128
+#: builtin/rebase.c:2151
msgid "Could not detach HEAD"
msgstr "УказателÑÑ‚ „HEAD“ не може да Ñе отделÑ"
-#: builtin/rebase.c:2137
+#: builtin/rebase.c:2160
#, c-format
msgid "Fast-forwarded %s to %s.\n"
msgstr "Превъртане на „%s“ към „%s“.\n"
@@ -18212,7 +18301,7 @@ msgstr "Превъртане на „%s“ към „%s“.\n"
msgid "git receive-pack <git-dir>"
msgstr "git receive-pack ДИРЕКТОРИЯ_ÐÐ_GIT"
-#: builtin/receive-pack.c:832
+#: builtin/receive-pack.c:830
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"
@@ -18245,7 +18334,7 @@ msgstr ""
"За да заглушите това Ñъобщение, като запазите Ñтандартното поведение,\n"
"задайте наÑтройката „receive.denyCurrentBranch“ да е „refuse“ (отказ)."
-#: builtin/receive-pack.c:852
+#: builtin/receive-pack.c:850
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"
@@ -18266,11 +18355,11 @@ msgstr ""
"За да заглушите това Ñъобщение, задайте наÑтройката\n"
"„receive.denyDeleteCurrent“ да е „refuse“ (отказ)."
-#: builtin/receive-pack.c:1938
+#: builtin/receive-pack.c:1936
msgid "quiet"
msgstr "без извеждане на информациÑ"
-#: builtin/receive-pack.c:1952
+#: builtin/receive-pack.c:1950
msgid "You must specify a directory."
msgstr "ТрÑбва да укажете директориÑ."
@@ -18851,11 +18940,11 @@ msgstr "повече подробноÑти. ПоÑÑ‚Ð°Ð²Ñ Ñе пред поÐ
msgid "Unknown subcommand: %s"
msgstr "Ðепозната подкоманда: %s"
-#: builtin/repack.c:22
+#: builtin/repack.c:23
msgid "git repack [<options>]"
msgstr "git repack [ОПЦИЯ…]"
-#: builtin/repack.c:27
+#: builtin/repack.c:28
msgid ""
"Incremental repacks are incompatible with bitmap indexes. Use\n"
"--no-write-bitmap-index or disable the pack.writebitmaps configuration."
@@ -18864,126 +18953,126 @@ msgstr ""
"Ползвайте опциÑта --no-write-bitmap-index или изключете наÑтройката\n"
"„pack.writebitmaps“."
-#: builtin/repack.c:190
+#: builtin/repack.c:191
msgid "could not start pack-objects to repack promisor objects"
msgstr ""
"командата „pack-objects“ не може да Ñе Ñтартира за препакетирането на "
"гарантиращите обекти"
-#: builtin/repack.c:229 builtin/repack.c:408
+#: builtin/repack.c:230 builtin/repack.c:409
msgid "repack: Expecting full hex object ID lines only from pack-objects."
msgstr ""
"repack: от „pack-objects“ Ñе очакват редове Ñамо Ñ Ð¿ÑŠÐ»Ð½Ð¸ шеÑтнайÑетични "
"указатели."
-#: builtin/repack.c:246
+#: builtin/repack.c:247
msgid "could not finish pack-objects to repack promisor objects"
msgstr ""
"командата „pack-objects“ не може да завърши за препакетирането на "
"гарантиращите обекти"
-#: builtin/repack.c:284
+#: builtin/repack.c:285
msgid "pack everything in a single pack"
msgstr "пакетиране на вÑичко в пакет"
-#: builtin/repack.c:286
+#: builtin/repack.c:287
msgid "same as -a, and turn unreachable objects loose"
msgstr ""
"Ñъщото като опциÑта „-a“. Допълнително — недоÑтижимите обекти да Ñтанат "
"непакетирани"
-#: builtin/repack.c:289
+#: builtin/repack.c:290
msgid "remove redundant packs, and run git-prune-packed"
msgstr ""
"премахване на ненужните пакетирани файлове и изпълнение на командата „git-"
"prune-packed“"
-#: builtin/repack.c:291
+#: builtin/repack.c:292
msgid "pass --no-reuse-delta to git-pack-objects"
msgstr "подаване на опциÑта „--no-reuse-delta“ на командата „git-pack-objects“"
-#: builtin/repack.c:293
+#: builtin/repack.c:294
msgid "pass --no-reuse-object to git-pack-objects"
msgstr ""
"подаване на опциÑта „--no-reuse-object“ на командата „git-pack-objects“"
-#: builtin/repack.c:295
+#: builtin/repack.c:296
msgid "do not run git-update-server-info"
msgstr "без изпълнение на командата „git-update-server-info“"
-#: builtin/repack.c:298
+#: builtin/repack.c:299
msgid "pass --local to git-pack-objects"
msgstr "подаване на опциÑта „--local“ на командата „git-pack-objects“"
-#: builtin/repack.c:300
+#: builtin/repack.c:301
msgid "write bitmap index"
msgstr "Ñъздаване и запиÑване на индекÑи на база битови маÑки"
-#: builtin/repack.c:302
+#: builtin/repack.c:303
msgid "pass --delta-islands to git-pack-objects"
msgstr "подаване на опциÑта „--delta-islands“ на командата „git-pack-objects“"
-#: builtin/repack.c:303
+#: builtin/repack.c:304
msgid "approxidate"
msgstr "евриÑтична дата"
-#: builtin/repack.c:304
+#: builtin/repack.c:305
msgid "with -A, do not loosen objects older than this"
msgstr ""
"при комбинирането Ñ Ð¾Ð¿Ñ†Ð¸Ñта „-A“ — без разпакетиране на обектите по Ñтари от "
"това"
-#: builtin/repack.c:306
+#: builtin/repack.c:307
msgid "with -a, repack unreachable objects"
msgstr "Ñ â€ž-a“ — препакетиране на недоÑтижимите обекти"
-#: builtin/repack.c:308
+#: builtin/repack.c:309
msgid "size of the window used for delta compression"
msgstr "размер на прозореца за делта компреÑиÑта"
-#: builtin/repack.c:309 builtin/repack.c:315
+#: builtin/repack.c:310 builtin/repack.c:316
msgid "bytes"
msgstr "байтове"
-#: builtin/repack.c:310
+#: builtin/repack.c:311
msgid "same as the above, but limit memory size instead of entries count"
msgstr ""
"Ñъщото като горната опциÑ, но ограничението да е по размер на паметта, а не "
"по Ð±Ñ€Ð¾Ñ Ð½Ð° обектите"
-#: builtin/repack.c:312
+#: builtin/repack.c:313
msgid "limits the maximum delta depth"
msgstr "ограничаване на макÑималната дълбочина на делтата"
-#: builtin/repack.c:314
+#: builtin/repack.c:315
msgid "limits the maximum number of threads"
msgstr "ограничаване на макÑÐ¸Ð¼Ð°Ð»Ð½Ð¸Ñ Ð±Ñ€Ð¾Ð¹ нишки"
-#: builtin/repack.c:316
+#: builtin/repack.c:317
msgid "maximum size of each packfile"
msgstr "макÑимален размер на вÑеки пакет"
-#: builtin/repack.c:318
+#: builtin/repack.c:319
msgid "repack objects in packs marked with .keep"
msgstr "препакетиране на обектите в пакети белÑзани Ñ â€ž.keep“"
-#: builtin/repack.c:320
+#: builtin/repack.c:321
msgid "do not repack this pack"
msgstr "без препакетиране на този пакет"
-#: builtin/repack.c:330
+#: builtin/repack.c:331
msgid "cannot delete packs in a precious-objects repo"
msgstr "пакетите в хранилище Ñ Ð²Ð°Ð¶Ð½Ð¸ обекти не може да Ñе триÑÑ‚"
-#: builtin/repack.c:334
+#: builtin/repack.c:335
msgid "--keep-unreachable and -A are incompatible"
msgstr "Опциите „--keep-unreachable“ и „-A“ Ñа неÑъвмеÑтими"
-#: builtin/repack.c:417
+#: builtin/repack.c:418
msgid "Nothing new to pack."
msgstr "Ðищо ново за пакетиране"
-#: builtin/repack.c:478
+#: builtin/repack.c:479
#, c-format
msgid ""
"WARNING: Some packs in use have been renamed by\n"
@@ -19001,7 +19090,7 @@ msgstr ""
"ПРЕДУПРЕЖДЕÐИЕ: ѝ — за връщането на първоначалните имена.\n"
"ПРЕДУПРЕЖДЕÐИЕ: Преименувайте файловете в „%s“ ръчно:\n"
-#: builtin/repack.c:526
+#: builtin/repack.c:527
#, c-format
msgid "failed to remove '%s'"
msgstr "директориÑта „%s“ не може да бъде изтрита"
@@ -19109,8 +19198,8 @@ msgstr "„fstat“ не може да Ñе изпълни върху „%s“"
msgid "unable to write object to database"
msgstr "обектът не може да бъде запиÑан в базата от данни"
-#: builtin/replace.c:322 builtin/replace.c:377 builtin/replace.c:422
-#: builtin/replace.c:452
+#: builtin/replace.c:322 builtin/replace.c:378 builtin/replace.c:423
+#: builtin/replace.c:453
#, c-format
msgid "not a valid object name: '%s'"
msgstr "неправилно име на обект: „%s“"
@@ -19129,22 +19218,22 @@ msgstr "неуÑпешно редактиране на файла Ñ Ð¾Ð±ÐµÐºÑ‚Ð
msgid "new object is the same as the old one: '%s'"
msgstr "новиÑÑ‚ и ÑтариÑÑ‚ обект Ñа един и Ñъщ: „%s“"
-#: builtin/replace.c:383
+#: builtin/replace.c:384
#, c-format
msgid "could not parse %s as a commit"
msgstr "„%s“ не може да Ñе анализира като подаване"
-#: builtin/replace.c:414
+#: builtin/replace.c:415
#, c-format
msgid "bad mergetag in commit '%s'"
msgstr "етикетът при Ñливане в подаването „%s“ e неправилен"
-#: builtin/replace.c:416
+#: builtin/replace.c:417
#, c-format
msgid "malformed mergetag in commit '%s'"
msgstr "етикетът при Ñливане в подаването „%s“ e неправилен"
-#: builtin/replace.c:428
+#: builtin/replace.c:429
#, c-format
msgid ""
"original commit '%s' contains mergetag '%s' that is discarded; use --edit "
@@ -19153,31 +19242,31 @@ msgstr ""
"Първоначалното подаване „%s“ Ñъдържа етикета при Ñливане „%s“, който е "
"изхвърлен, затова използвайте опциÑта „--edit“, а не „--graft“."
-#: builtin/replace.c:467
+#: builtin/replace.c:468
#, c-format
msgid "the original commit '%s' has a gpg signature"
msgstr "първоначалното подаване „%s“ е Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñ Ð½Ð° GPG"
-#: builtin/replace.c:468
+#: builtin/replace.c:469
msgid "the signature will be removed in the replacement commit!"
msgstr "ПодпиÑÑŠÑ‚ ще бъде премахнат в заменÑщото подаване!"
-#: builtin/replace.c:478
+#: builtin/replace.c:479
#, c-format
msgid "could not write replacement commit for: '%s'"
msgstr "заменÑщото подаване за „%s“ не може да бъде запиÑано"
-#: builtin/replace.c:486
+#: builtin/replace.c:487
#, c-format
msgid "graft for '%s' unnecessary"
msgstr "приÑадката за „%s“ е излишна"
-#: builtin/replace.c:490
+#: builtin/replace.c:491
#, c-format
msgid "new commit is the same as the old one: '%s'"
msgstr "новото и Ñтарото подаване Ñа едно и Ñъщо: „%s“"
-#: builtin/replace.c:525
+#: builtin/replace.c:526
#, c-format
msgid ""
"could not convert the following graft(s):\n"
@@ -19186,71 +19275,71 @@ msgstr ""
"Ñледните приÑадки не могат да Ñе преобразуват:\n"
"%s"
-#: builtin/replace.c:546
+#: builtin/replace.c:547
msgid "list replace refs"
msgstr "извеждане на ÑпиÑъка Ñ ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ð¸Ñ‚Ðµ за замÑна"
-#: builtin/replace.c:547
+#: builtin/replace.c:548
msgid "delete replace refs"
msgstr "изтриване на указателите за замÑна"
-#: builtin/replace.c:548
+#: builtin/replace.c:549
msgid "edit existing object"
msgstr "редактиране на ÑъщеÑтвуващ обект"
-#: builtin/replace.c:549
+#: builtin/replace.c:550
msgid "change a commit's parents"
msgstr "ÑмÑна на родителите на подаване"
-#: builtin/replace.c:550
+#: builtin/replace.c:551
msgid "convert existing graft file"
msgstr "преобразуване на файла за приÑадките"
-#: builtin/replace.c:551
+#: builtin/replace.c:552
msgid "replace the ref if it exists"
msgstr "замÑна на указателÑ, ако ÑъщеÑтвува"
-#: builtin/replace.c:553
+#: builtin/replace.c:554
msgid "do not pretty-print contents for --edit"
msgstr "без форматирано извеждане на Ñъдържанието — за опциÑта „--edit“"
-#: builtin/replace.c:554
+#: builtin/replace.c:555
msgid "use this format"
msgstr "използване на този ФОРМÐТ"
-#: builtin/replace.c:567
+#: builtin/replace.c:568
msgid "--format cannot be used when not listing"
msgstr "опциÑта „--format“ изиÑква извеждане на ÑпиÑък"
-#: builtin/replace.c:575
+#: builtin/replace.c:576
msgid "-f only makes sense when writing a replacement"
msgstr "опциÑта „-f“ изиÑква запазването на замеÑтител"
-#: builtin/replace.c:579
+#: builtin/replace.c:580
msgid "--raw only makes sense with --edit"
msgstr "опциÑта „--raw“ изиÑква „--edit“"
-#: builtin/replace.c:585
+#: builtin/replace.c:586
msgid "-d needs at least one argument"
msgstr "опциÑта „-d“ изиÑква поне един аргумент"
-#: builtin/replace.c:591
+#: builtin/replace.c:592
msgid "bad number of arguments"
msgstr "неправилен брой аргументи"
-#: builtin/replace.c:597
+#: builtin/replace.c:598
msgid "-e needs exactly one argument"
msgstr "опциÑта „-e“ изиÑква поне един аргумент"
-#: builtin/replace.c:603
+#: builtin/replace.c:604
msgid "-g needs at least one argument"
msgstr "опциÑта „-g“ изиÑква поне един аргумент"
-#: builtin/replace.c:609
+#: builtin/replace.c:610
msgid "--convert-graft-file takes no argument"
msgstr "опциÑта „--convert-graft-file“ не приема аргументи"
-#: builtin/replace.c:615
+#: builtin/replace.c:616
msgid "only one pattern can be given with -l"
msgstr "опциÑта „-l“ приема точно един шаблон"
@@ -19318,13 +19407,18 @@ msgstr "Дървото, Ñочено от ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ â€žHEAD“, не м
msgid "Failed to find tree of %s."
msgstr "Дървото, Ñочено от „%s“, не може да бъде открито."
+#: builtin/reset.c:114
+#, c-format
+msgid "HEAD is now at %s"
+msgstr "УказателÑÑ‚ „HEAD“ Ñочи към „%s“"
+
#: builtin/reset.c:193
#, c-format
msgid "Cannot do a %s reset in the middle of a merge."
msgstr "Ðе може да Ñе извърши %s занулÑване по време на Ñливане."
-#: builtin/reset.c:293 builtin/stash.c:514 builtin/stash.c:589
-#: builtin/stash.c:613
+#: builtin/reset.c:293 builtin/stash.c:520 builtin/stash.c:595
+#: builtin/stash.c:619
msgid "be quiet, only report errors"
msgstr "по-малко подробноÑти, да Ñе извеждат Ñамо грешките"
@@ -19410,24 +19504,19 @@ msgstr "ИндекÑÑŠÑ‚ не може да бъде занулен към веÑ
msgid "Could not write new index file."
msgstr "ÐовиÑÑ‚ Ð¸Ð½Ð´ÐµÐºÑ Ð½Ðµ може да бъде запиÑан."
-#: builtin/rev-list.c:412
+#: builtin/rev-list.c:411
msgid "cannot combine --exclude-promisor-objects and --missing"
msgstr "опциите „--exclude-promisor-objects“ и „--missing“ и Ñа неÑъвмеÑтими"
-#: builtin/rev-list.c:473
+#: builtin/rev-list.c:472
msgid "object filtering requires --objects"
msgstr "филтрирането на обекти изиÑква опциÑта „--objects“"
-#: builtin/rev-list.c:476
-#, c-format
-msgid "invalid sparse value '%s'"
-msgstr "неправилна чаÑтична ÑтойноÑÑ‚: %s"
-
-#: builtin/rev-list.c:527
+#: builtin/rev-list.c:522
msgid "rev-list does not support display of notes"
msgstr "командата „rev-list“ не поддържа извеждането на бележки"
-#: builtin/rev-list.c:530
+#: builtin/rev-list.c:525
msgid "cannot combine --use-bitmap-index with object filtering"
msgstr "опциÑта „--use-bitmap-index“ е неÑъвмеÑтима Ñ Ñ„Ð¸Ð»Ñ‚Ñ€Ð¸Ñ€Ð°Ð½Ðµ на обектите"
@@ -19982,134 +20071,134 @@ msgstr ""
msgid "could not save index tree"
msgstr "дървото Ñочено от индекÑа не може да бъде запазено"
-#: builtin/stash.c:434
+#: builtin/stash.c:436
msgid "could not restore untracked files from stash"
msgstr "неÑледени файлове не могат да Ñе възÑтановÑÑ‚ от Ñкатаното"
-#: builtin/stash.c:448
+#: builtin/stash.c:450
#, c-format
msgid "Merging %s with %s"
msgstr "Сливане на „%s“ Ñ â€ž%s“"
-#: builtin/stash.c:458 git-legacy-stash.sh:680
+#: builtin/stash.c:460 git-legacy-stash.sh:680
msgid "Index was not unstashed."
msgstr "ИндекÑÑŠÑ‚ не е изваден от Ñкатаното."
-#: builtin/stash.c:516 builtin/stash.c:615
+#: builtin/stash.c:522 builtin/stash.c:621
msgid "attempt to recreate the index"
msgstr "опит за повторно Ñъздаване на индекÑа"
-#: builtin/stash.c:549
+#: builtin/stash.c:555
#, c-format
msgid "Dropped %s (%s)"
msgstr "Изтрито: „%s“ (%s)"
-#: builtin/stash.c:552
+#: builtin/stash.c:558
#, c-format
msgid "%s: Could not drop stash entry"
msgstr "Скатаното „%s“ не може да бъде изтрито"
-#: builtin/stash.c:577
+#: builtin/stash.c:583
#, c-format
msgid "'%s' is not a stash reference"
msgstr "„%s“ не е указател към нещо Ñкатано"
-#: builtin/stash.c:627 git-legacy-stash.sh:694
+#: builtin/stash.c:633 git-legacy-stash.sh:694
msgid "The stash entry is kept in case you need it again."
msgstr "Скатаното е запазено в Ñлучай, че ви потрÑбва отново."
-#: builtin/stash.c:650 git-legacy-stash.sh:712
+#: builtin/stash.c:656 git-legacy-stash.sh:712
msgid "No branch name specified"
msgstr "Ðе е указано име на клон"
-#: builtin/stash.c:790 builtin/stash.c:827
+#: builtin/stash.c:796 builtin/stash.c:833
#, c-format
msgid "Cannot update %s with %s"
msgstr "УказателÑÑ‚ „%s“ не може да бъде обновен да Ñочи към „%s“"
-#: builtin/stash.c:808 builtin/stash.c:1461 builtin/stash.c:1497
+#: builtin/stash.c:814 builtin/stash.c:1470 builtin/stash.c:1506
msgid "stash message"
msgstr "Ñъобщение при Ñкатаване"
-#: builtin/stash.c:818
+#: builtin/stash.c:824
msgid "\"git stash store\" requires one <commit> argument"
msgstr "командата „git stash store“ изиÑква точно един аргумент-ПОДÐÐ’ÐÐЕ"
-#: builtin/stash.c:1040 git-legacy-stash.sh:217
+#: builtin/stash.c:1046 git-legacy-stash.sh:217
msgid "No changes selected"
msgstr "Ðе Ñа избрани никакви промени"
-#: builtin/stash.c:1136 git-legacy-stash.sh:150
+#: builtin/stash.c:1145 git-legacy-stash.sh:150
msgid "You do not have the initial commit yet"
msgstr "Ð’Ñе още липÑва първоначално подаване"
-#: builtin/stash.c:1163 git-legacy-stash.sh:165
+#: builtin/stash.c:1172 git-legacy-stash.sh:165
msgid "Cannot save the current index state"
msgstr "СъÑтоÑнието на Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑ Ð½Ðµ може да бъде запазено"
-#: builtin/stash.c:1172 git-legacy-stash.sh:180
+#: builtin/stash.c:1181 git-legacy-stash.sh:180
msgid "Cannot save the untracked files"
msgstr "ÐеÑледените файлове не могат да Ñе запазÑÑ‚"
-#: builtin/stash.c:1183 builtin/stash.c:1192 git-legacy-stash.sh:200
+#: builtin/stash.c:1192 builtin/stash.c:1201 git-legacy-stash.sh:200
#: git-legacy-stash.sh:213
msgid "Cannot save the current worktree state"
msgstr "СъÑтоÑнието на работното дърво не може да бъде запазено"
-#: builtin/stash.c:1220 git-legacy-stash.sh:233
+#: builtin/stash.c:1229 git-legacy-stash.sh:233
msgid "Cannot record working tree state"
msgstr "СъÑтоÑнието на работното дърво не може да бъде запазено"
-#: builtin/stash.c:1269 git-legacy-stash.sh:337
+#: builtin/stash.c:1278 git-legacy-stash.sh:337
msgid "Can't use --patch and --include-untracked or --all at the same time"
msgstr "ОпциÑта „--patch“ е неÑъвмеÑтима Ñ â€ž--include-untracked“ и „--all“"
-#: builtin/stash.c:1285
+#: builtin/stash.c:1294
msgid "Did you forget to 'git add'?"
msgstr "Пробвайте да използвате „git add“"
-#: builtin/stash.c:1300 git-legacy-stash.sh:345
+#: builtin/stash.c:1309 git-legacy-stash.sh:345
msgid "No local changes to save"
msgstr "ÐÑма никакви локални промени за Ñкатаване"
-#: builtin/stash.c:1307 git-legacy-stash.sh:350
+#: builtin/stash.c:1316 git-legacy-stash.sh:350
msgid "Cannot initialize stash"
msgstr "Скатаването не може да Ñтартира"
-#: builtin/stash.c:1322 git-legacy-stash.sh:354
+#: builtin/stash.c:1331 git-legacy-stash.sh:354
msgid "Cannot save the current status"
msgstr "Текущото ÑÑŠÑтоÑние не може да бъде запазено"
-#: builtin/stash.c:1327
+#: builtin/stash.c:1336
#, c-format
msgid "Saved working directory and index state %s"
msgstr "СъÑтоÑнието на работната Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð¸ индекÑа e запазено: „%s“"
-#: builtin/stash.c:1417 git-legacy-stash.sh:384
+#: builtin/stash.c:1426 git-legacy-stash.sh:384
msgid "Cannot remove worktree changes"
msgstr "Промените в работното дърво не могат да бъдат занулени"
-#: builtin/stash.c:1452 builtin/stash.c:1488
+#: builtin/stash.c:1461 builtin/stash.c:1497
msgid "keep index"
msgstr "запазване на индекÑа"
-#: builtin/stash.c:1454 builtin/stash.c:1490
+#: builtin/stash.c:1463 builtin/stash.c:1499
msgid "stash in patch mode"
msgstr "Ñкатаване в режим за кръпки"
-#: builtin/stash.c:1455 builtin/stash.c:1491
+#: builtin/stash.c:1464 builtin/stash.c:1500
msgid "quiet mode"
msgstr "без извеждане на информациÑ"
-#: builtin/stash.c:1457 builtin/stash.c:1493
+#: builtin/stash.c:1466 builtin/stash.c:1502
msgid "include untracked files in stash"
msgstr "Ñкатаване и на неÑледените файлове"
-#: builtin/stash.c:1459 builtin/stash.c:1495
+#: builtin/stash.c:1468 builtin/stash.c:1504
msgid "include ignore files"
msgstr "Ñкатаване и на игнорираните файлове"
-#: builtin/stash.c:1555
+#: builtin/stash.c:1564
#, c-format
msgid "could not exec %s"
msgstr "„%s“ не може да Ñе изпълни"
@@ -20485,8 +20574,8 @@ msgid "don't print cloning progress"
msgstr "без извеждане на напредъка на клонирането"
#: builtin/submodule--helper.c:1877
-msgid "git submodule--helper update_clone [--prefix=<path>] [<path>...]"
-msgstr "git submodule--helper update_clone [--prefix=ПЪТ] [ПЪТ…]"
+msgid "git submodule--helper update-clone [--prefix=<path>] [<path>...]"
+msgstr "git submodule--helper update-clone [--prefix=ПЪТ] [ПЪТ…]"
#: builtin/submodule--helper.c:1890
msgid "bad value for update parameter"
@@ -20539,7 +20628,7 @@ msgstr "git submodule--helper config --check-writeable"
msgid "please make sure that the .gitmodules file is in the working tree"
msgstr "файлът „.gitmodules“ Ñ‚Ñ€Ñбва да е в работното дърво"
-#: builtin/submodule--helper.c:2235 git.c:434 git.c:684
+#: builtin/submodule--helper.c:2235 git.c:433 git.c:683
#, c-format
msgid "%s doesn't support --super-prefix"
msgstr "„%s“ не поддържа опциÑта „--super-prefix“"
@@ -20871,149 +20960,149 @@ msgstr " Добре"
msgid "git update-index [<options>] [--] [<file>...]"
msgstr "git update-index [ОПЦИЯ…] [--] [ФÐЙЛ…]"
-#: builtin/update-index.c:971
+#: builtin/update-index.c:972
msgid "continue refresh even when index needs update"
msgstr ""
"продължаване Ñ Ð¾Ð±Ð½Ð¾Ð²Ñването, дори когато индекÑÑŠÑ‚ Ñ‚Ñ€Ñбва да бъде обновен"
-#: builtin/update-index.c:974
+#: builtin/update-index.c:975
msgid "refresh: ignore submodules"
msgstr "подмодулите да Ñе игнорират при обновÑването"
-#: builtin/update-index.c:977
+#: builtin/update-index.c:978
msgid "do not ignore new files"
msgstr "новите файлове да не Ñе игнорират"
-#: builtin/update-index.c:979
+#: builtin/update-index.c:980
msgid "let files replace directories and vice-versa"
msgstr "файлове да могат да заменÑÑ‚ директории и обратно"
-#: builtin/update-index.c:981
+#: builtin/update-index.c:982
msgid "notice files missing from worktree"
msgstr "предупреждаване при липÑващи в работното дърво файлове"
-#: builtin/update-index.c:983
+#: builtin/update-index.c:984
msgid "refresh even if index contains unmerged entries"
msgstr "обновÑване дори и индекÑÑŠÑ‚ да Ñъдържа неÑлети обекти"
-#: builtin/update-index.c:986
+#: builtin/update-index.c:987
msgid "refresh stat information"
msgstr "обновÑване на информациÑта от функциÑта „stat“"
-#: builtin/update-index.c:990
+#: builtin/update-index.c:991
msgid "like --refresh, but ignore assume-unchanged setting"
msgstr ""
"като опциÑта „--refresh“, но да Ñе проверÑÑ‚ и обектите, които Ñа били приети "
"за непроменени"
-#: builtin/update-index.c:994
+#: builtin/update-index.c:995
msgid "<mode>,<object>,<path>"
msgstr "РЕЖИМ,ОБЕКТ,ПЪТ"
-#: builtin/update-index.c:995
+#: builtin/update-index.c:996
msgid "add the specified entry to the index"
msgstr "добавÑне на изброените обекти към индекÑа"
-#: builtin/update-index.c:1005
+#: builtin/update-index.c:1006
msgid "mark files as \"not changing\""
msgstr "задаване на флаг, че файлът не Ñе променÑ"
-#: builtin/update-index.c:1008
+#: builtin/update-index.c:1009
msgid "clear assumed-unchanged bit"
msgstr "изчиÑтване на флага, че файлът не Ñе променÑ"
-#: builtin/update-index.c:1011
+#: builtin/update-index.c:1012
msgid "mark files as \"index-only\""
msgstr "задаване на флаг, че файловете Ñа Ñамо за индекÑа"
-#: builtin/update-index.c:1014
+#: builtin/update-index.c:1015
msgid "clear skip-worktree bit"
msgstr "изчиÑтване на флага, че файловете Ñа Ñамо за индекÑа"
-#: builtin/update-index.c:1017
+#: builtin/update-index.c:1018
msgid "add to index only; do not add content to object database"
msgstr "добавÑне Ñамо към индекÑа без добавÑне към базата от данни за обектите"
-#: builtin/update-index.c:1019
+#: builtin/update-index.c:1020
msgid "remove named paths even if present in worktree"
msgstr "изтриване на указаните пътища, дори и да ÑъщеÑтвуват в работното дърво"
-#: builtin/update-index.c:1021
+#: builtin/update-index.c:1022
msgid "with --stdin: input lines are terminated by null bytes"
msgstr ""
"при комбиниране Ñ Ð¾Ð¿Ñ†Ð¸Ñта „--stdin“ — входните редове Ñа разделени Ñ Ð½ÑƒÐ»ÐµÐ²Ð¸Ñ "
"байт"
-#: builtin/update-index.c:1023
+#: builtin/update-index.c:1024
msgid "read list of paths to be updated from standard input"
msgstr "изчитане на ÑпиÑъка Ñ Ð¿ÑŠÑ‚Ð¸Ñ‰Ð° за обновÑване от ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð²Ñ…Ð¾Ð´"
-#: builtin/update-index.c:1027
+#: builtin/update-index.c:1028
msgid "add entries from standard input to the index"
msgstr "добавÑне на елементите от ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð²Ñ…Ð¾Ð´ към индекÑа"
-#: builtin/update-index.c:1031
+#: builtin/update-index.c:1032
msgid "repopulate stages #2 and #3 for the listed paths"
msgstr ""
"възÑтановÑване на ÑÑŠÑтоÑнието преди Ñливане или нужда от обновÑване за "
"изброените пътища"
-#: builtin/update-index.c:1035
+#: builtin/update-index.c:1036
msgid "only update entries that differ from HEAD"
msgstr "добавÑне Ñамо на Ñъдържанието, което Ñе различава от това в „HEAD“"
-#: builtin/update-index.c:1039
+#: builtin/update-index.c:1040
msgid "ignore files missing from worktree"
msgstr "игнориране на файловете, които липÑват в работното дърво"
-#: builtin/update-index.c:1042
+#: builtin/update-index.c:1043
msgid "report actions to standard output"
msgstr "извеждане на дейÑтвиÑта на ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð¸Ð·Ñ…Ð¾Ð´"
-#: builtin/update-index.c:1044
+#: builtin/update-index.c:1045
msgid "(for porcelains) forget saved unresolved conflicts"
msgstr ""
"забравÑне на запиÑаната Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° неразрешени конфликти — за командите "
"от потребителÑко ниво"
-#: builtin/update-index.c:1048
+#: builtin/update-index.c:1049
msgid "write index in this format"
msgstr "запиÑване на индекÑа в този формат"
-#: builtin/update-index.c:1050
+#: builtin/update-index.c:1051
msgid "enable or disable split index"
msgstr "включване или изключване на разделÑнето на индекÑа"
-#: builtin/update-index.c:1052
+#: builtin/update-index.c:1053
msgid "enable/disable untracked cache"
msgstr "включване/изключване на кеша за неÑледените файлове"
-#: builtin/update-index.c:1054
+#: builtin/update-index.c:1055
msgid "test if the filesystem supports untracked cache"
msgstr "проверка дали файловата ÑиÑтема поддържа кеш за неÑледени файлове"
-#: builtin/update-index.c:1056
+#: builtin/update-index.c:1057
msgid "enable untracked cache without testing the filesystem"
msgstr ""
"включване на кеша за неÑледените файлове без проверка на файловата ÑиÑтема"
-#: builtin/update-index.c:1058
+#: builtin/update-index.c:1059
msgid "write out the index even if is not flagged as changed"
msgstr "Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° индекÑа, дори да не е отбелÑзан като променен"
-#: builtin/update-index.c:1060
+#: builtin/update-index.c:1061
msgid "enable or disable file system monitor"
msgstr "включване или изключване на наблюдението на файловата ÑиÑтема"
-#: builtin/update-index.c:1062
+#: builtin/update-index.c:1063
msgid "mark files as fsmonitor valid"
msgstr "отбелÑзване на файловете, че могат да Ñе ÑледÑÑ‚ чрез файловата ÑиÑтема"
-#: builtin/update-index.c:1065
+#: builtin/update-index.c:1066
msgid "clear fsmonitor valid bit"
msgstr "изчиÑтване на флага за Ñледенето чрез файловата ÑиÑтема"
-#: builtin/update-index.c:1168
+#: builtin/update-index.c:1169
msgid ""
"core.splitIndex is set to false; remove or change it, if you really want to "
"enable split index"
@@ -21021,7 +21110,7 @@ msgstr ""
"ÐаÑтройката „core.splitIndex“ е зададена на „false“ (лъжа). Сменете Ñ Ð¸Ð»Ð¸ Ñ "
"изтрийте, за да включите разделÑнето на индекÑа"
-#: builtin/update-index.c:1177
+#: builtin/update-index.c:1178
msgid ""
"core.splitIndex is set to true; remove or change it, if you really want to "
"disable split index"
@@ -21029,7 +21118,7 @@ msgstr ""
"ÐаÑтройката „core.splitIndex“ е зададена на „true“ (иÑтина). Сменете Ñ Ð¸Ð»Ð¸ "
"Ñ Ð¸Ð·Ñ‚Ñ€Ð¸Ð¹Ñ‚Ðµ, за да изключите разделÑнето на индекÑа."
-#: builtin/update-index.c:1188
+#: builtin/update-index.c:1190
msgid ""
"core.untrackedCache is set to true; remove or change it, if you really want "
"to disable the untracked cache"
@@ -21037,11 +21126,11 @@ msgstr ""
"ÐаÑтройката „core.untrackedCache“ е зададена на „true“ (иÑтина). Сменете Ñ "
"или Ñ Ð¸Ð·Ñ‚Ñ€Ð¸Ð¹Ñ‚Ðµ, за да изключите кеша за неÑледените файлове"
-#: builtin/update-index.c:1192
+#: builtin/update-index.c:1194
msgid "Untracked cache disabled"
msgstr "Кешът за неÑледените файлове е изключен"
-#: builtin/update-index.c:1200
+#: builtin/update-index.c:1202
msgid ""
"core.untrackedCache is set to false; remove or change it, if you really want "
"to enable the untracked cache"
@@ -21049,29 +21138,29 @@ msgstr ""
"ÐаÑтройката „core.untrackedCache“ е зададена на „false“ (лъжа). Сменете Ñ "
"или Ñ Ð¸Ð·Ñ‚Ñ€Ð¸Ð¹Ñ‚Ðµ, за да включите кеша за неÑледените файлове"
-#: builtin/update-index.c:1204
+#: builtin/update-index.c:1206
#, c-format
msgid "Untracked cache enabled for '%s'"
msgstr "Кешът за неÑледените файлове е включен за „%s“"
-#: builtin/update-index.c:1212
+#: builtin/update-index.c:1214
msgid "core.fsmonitor is unset; set it if you really want to enable fsmonitor"
msgstr ""
"ÐаÑтройката „core.fsmonitor“ не е зададена. Задайте Ñ, за да включите "
"Ñледенето чрез файловата ÑиÑтема."
-#: builtin/update-index.c:1216
+#: builtin/update-index.c:1218
msgid "fsmonitor enabled"
msgstr "Ñледенето чрез файловата ÑиÑтема е включено"
-#: builtin/update-index.c:1219
+#: builtin/update-index.c:1221
msgid ""
"core.fsmonitor is set; remove it if you really want to disable fsmonitor"
msgstr ""
"ÐаÑтройката „core.fsmonitor“ е зададена. Изтрийте Ñ, за да изключите "
"Ñледенето чрез файловата ÑиÑтема."
-#: builtin/update-index.c:1223
+#: builtin/update-index.c:1225
msgid "fsmonitor disabled"
msgstr "Ñледенето чрез файловата ÑиÑтема е изключено"
@@ -21166,56 +21255,56 @@ msgstr "git verify-tag [-v | --verbose] [--format=ФОРМÐТ] ЕТИКЕТ…"
msgid "print tag contents"
msgstr "извеждане на Ñъдържанието на ЕТИКЕТи"
-#: builtin/worktree.c:18
+#: builtin/worktree.c:17
msgid "git worktree add [<options>] <path> [<commit-ish>]"
msgstr "git worktree add [ОПЦИЯ…] ПЪТ [УКÐЗÐТЕЛ_КЪМ_ПОДÐÐ’ÐÐЕ]"
-#: builtin/worktree.c:19
+#: builtin/worktree.c:18
msgid "git worktree list [<options>]"
msgstr "git worktree list [ОПЦИЯ…]"
-#: builtin/worktree.c:20
+#: builtin/worktree.c:19
msgid "git worktree lock [<options>] <path>"
msgstr "git worktree lock [ОПЦИЯ…] [ПЪТ]"
-#: builtin/worktree.c:21
+#: builtin/worktree.c:20
msgid "git worktree move <worktree> <new-path>"
msgstr "git worktree move [ДЪРВО] [ÐОВ_ПЪТ]"
-#: builtin/worktree.c:22
+#: builtin/worktree.c:21
msgid "git worktree prune [<options>]"
msgstr "git worktree prune [ОПЦИЯ…]"
-#: builtin/worktree.c:23
+#: builtin/worktree.c:22
msgid "git worktree remove [<options>] <worktree>"
msgstr "git worktree remove [ОПЦИЯ…] [ДЪРВО]"
-#: builtin/worktree.c:24
+#: builtin/worktree.c:23
msgid "git worktree unlock <path>"
msgstr "git worktree unlock [ПЪТ]"
-#: builtin/worktree.c:61 builtin/worktree.c:899
+#: builtin/worktree.c:60 builtin/worktree.c:898
#, c-format
msgid "failed to delete '%s'"
msgstr "неуÑпешно изтриване на „%s“"
-#: builtin/worktree.c:80
+#: builtin/worktree.c:79
#, c-format
msgid "Removing worktrees/%s: not a valid directory"
msgstr "Изтриване на „worktrees/%s“: не е правилна поддиректориÑ"
-#: builtin/worktree.c:86
+#: builtin/worktree.c:85
#, c-format
msgid "Removing worktrees/%s: gitdir file does not exist"
msgstr "Изтриване на „worktrees/%s“: файлът „gitdir“ не ÑъщеÑтвува"
-#: builtin/worktree.c:91 builtin/worktree.c:100
+#: builtin/worktree.c:90 builtin/worktree.c:99
#, c-format
msgid "Removing worktrees/%s: unable to read gitdir file (%s)"
msgstr ""
"Изтриване на „worktrees/%s“: файлът „gitdir“ (%s) не може да бъде прочетен"
-#: builtin/worktree.c:110
+#: builtin/worktree.c:109
#, c-format
msgid ""
"Removing worktrees/%s: short read (expected %<PRIuMAX> bytes, read "
@@ -21224,37 +21313,37 @@ msgstr ""
"Изтриване на „worktrees/%s“: изчитането върна по-малко байтове от очакваното "
"(очаквани: %<PRIuMAX> байта, получени: %<PRIuMAX>)"
-#: builtin/worktree.c:118
+#: builtin/worktree.c:117
#, c-format
msgid "Removing worktrees/%s: invalid gitdir file"
msgstr "Изтриване на „worktrees/%s“: неправилен файл „gitdir“"
-#: builtin/worktree.c:127
+#: builtin/worktree.c:126
#, c-format
msgid "Removing worktrees/%s: gitdir file points to non-existent location"
msgstr ""
"Изтриване на „worktrees/%s“: файлът „gitdir“ Ñочи неÑъщеÑтвуващо "
"меÑтоположение"
-#: builtin/worktree.c:166
+#: builtin/worktree.c:165
msgid "report pruned working trees"
msgstr "докладване на окаÑтрените работни дървета"
-#: builtin/worktree.c:168
+#: builtin/worktree.c:167
msgid "expire working trees older than <time>"
msgstr "обÑвÑване на работните ÐºÐ¾Ð¿Ð¸Ñ Ð¿Ð¾-Ñтари от това ВРЕМЕ за оÑтарели"
-#: builtin/worktree.c:235
+#: builtin/worktree.c:234
#, c-format
msgid "'%s' already exists"
msgstr "„%s“ вече ÑъщеÑтвува"
-#: builtin/worktree.c:252
+#: builtin/worktree.c:251
#, c-format
msgid "unable to re-add worktree '%s'"
msgstr "дървото „%s“ не може да бъде добавено наново"
-#: builtin/worktree.c:257
+#: builtin/worktree.c:256
#, c-format
msgid ""
"'%s' is a missing but locked worktree;\n"
@@ -21264,7 +21353,7 @@ msgstr ""
"За изрично задаване ползвайте „add -f“, а за изчиÑтване — „prune“ или "
"„remove“"
-#: builtin/worktree.c:259
+#: builtin/worktree.c:258
#, c-format
msgid ""
"'%s' is a missing but already registered worktree;\n"
@@ -21274,125 +21363,125 @@ msgstr ""
"За изрично задаване ползвайте „add -f“, а за изчиÑтване — „prune“ или "
"„remove“"
-#: builtin/worktree.c:309
+#: builtin/worktree.c:308
#, c-format
msgid "could not create directory of '%s'"
msgstr "директориÑта „%s“ не може да бъде Ñъздадена"
-#: builtin/worktree.c:440 builtin/worktree.c:446
+#: builtin/worktree.c:439 builtin/worktree.c:445
#, c-format
msgid "Preparing worktree (new branch '%s')"
msgstr "ПриготвÑне на работното дърво (нов клон „%s“)"
-#: builtin/worktree.c:442
+#: builtin/worktree.c:441
#, c-format
msgid "Preparing worktree (resetting branch '%s'; was at %s)"
msgstr ""
"ПриготвÑне на работното дърво (занулÑване на клона „%s“, който Ñочеше към "
"„%s“)"
-#: builtin/worktree.c:451
+#: builtin/worktree.c:450
#, c-format
msgid "Preparing worktree (checking out '%s')"
msgstr "ПриготвÑне на работното дърво (изтеглÑне на „%s“)"
-#: builtin/worktree.c:457
+#: builtin/worktree.c:456
#, c-format
msgid "Preparing worktree (detached HEAD %s)"
msgstr "ПодготвÑне на работно дърво (указателÑÑ‚ „HEAD“ не Ñвързан: %s)"
-#: builtin/worktree.c:498
+#: builtin/worktree.c:497
msgid "checkout <branch> even if already checked out in other worktree"
msgstr "ИзтеглÑне КЛОÐа, дори и да е изтеглен в друго работно дърво"
-#: builtin/worktree.c:501
+#: builtin/worktree.c:500
msgid "create a new branch"
msgstr "Ñъздаване на нов клон"
-#: builtin/worktree.c:503
+#: builtin/worktree.c:502
msgid "create or reset a branch"
msgstr "Ñъздаване или занулÑване на клони"
-#: builtin/worktree.c:505
+#: builtin/worktree.c:504
msgid "populate the new working tree"
msgstr "подготвÑне на новото работно дърво"
-#: builtin/worktree.c:506
+#: builtin/worktree.c:505
msgid "keep the new working tree locked"
msgstr "новото работно дърво да оÑтане заключено"
-#: builtin/worktree.c:509
+#: builtin/worktree.c:508
msgid "set up tracking mode (see git-branch(1))"
msgstr "задаване на режима на Ñледене (виж git-branch(1))"
-#: builtin/worktree.c:512
+#: builtin/worktree.c:511
msgid "try to match the new branch name with a remote-tracking branch"
msgstr "опит за напаÑване на името на Ð½Ð¾Ð²Ð¸Ñ ÐºÐ»Ð¾Ð½ Ñ Ñ‚Ð¾Ð²Ð° на ÑледÑщ клон"
-#: builtin/worktree.c:520
+#: builtin/worktree.c:519
msgid "-b, -B, and --detach are mutually exclusive"
msgstr "Опциите „-b“, „-B“ и „--detach“ Ñа неÑъвмеÑтими една Ñ Ð´Ñ€ÑƒÐ³Ð°"
-#: builtin/worktree.c:581
+#: builtin/worktree.c:580
msgid "--[no-]track can only be used if a new branch is created"
msgstr "„--[no-]track“ може да Ñе използва Ñамо при Ñъздаването на нов клон"
-#: builtin/worktree.c:681
+#: builtin/worktree.c:680
msgid "reason for locking"
msgstr "причина за заключване"
-#: builtin/worktree.c:693 builtin/worktree.c:726 builtin/worktree.c:800
-#: builtin/worktree.c:927
+#: builtin/worktree.c:692 builtin/worktree.c:725 builtin/worktree.c:799
+#: builtin/worktree.c:926
#, c-format
msgid "'%s' is not a working tree"
msgstr "„%s“ не е работно дърво"
-#: builtin/worktree.c:695 builtin/worktree.c:728
+#: builtin/worktree.c:694 builtin/worktree.c:727
msgid "The main working tree cannot be locked or unlocked"
msgstr "ОÑновното дърво не може да Ñе отключи или заключи"
-#: builtin/worktree.c:700
+#: builtin/worktree.c:699
#, c-format
msgid "'%s' is already locked, reason: %s"
msgstr "„%s“ вече е заключено, защото „%s“"
-#: builtin/worktree.c:702
+#: builtin/worktree.c:701
#, c-format
msgid "'%s' is already locked"
msgstr "„%s“ вече е заключено"
-#: builtin/worktree.c:730
+#: builtin/worktree.c:729
#, c-format
msgid "'%s' is not locked"
msgstr "„%s“ не е заключено"
-#: builtin/worktree.c:771
+#: builtin/worktree.c:770
msgid "working trees containing submodules cannot be moved or removed"
msgstr ""
"не може да меÑтите или изтривате работни дървета, в които има подмодули"
-#: builtin/worktree.c:779
+#: builtin/worktree.c:778
msgid "force move even if worktree is dirty or locked"
msgstr ""
"принудително премеÑтване, дори работното дърво да не е чиÑто или да е "
"заключено"
-#: builtin/worktree.c:802 builtin/worktree.c:929
+#: builtin/worktree.c:801 builtin/worktree.c:928
#, c-format
msgid "'%s' is a main working tree"
msgstr "„%s“ е оÑновно работно дърво"
-#: builtin/worktree.c:807
+#: builtin/worktree.c:806
#, c-format
msgid "could not figure out destination name from '%s'"
msgstr "името на целта не може да Ñе определи от „%s“"
-#: builtin/worktree.c:813
+#: builtin/worktree.c:812
#, c-format
msgid "target '%s' already exists"
msgstr "целта „%s“ вече ÑъщеÑтвува"
-#: builtin/worktree.c:821
+#: builtin/worktree.c:820
#, c-format
msgid ""
"cannot move a locked working tree, lock reason: %s\n"
@@ -21401,7 +21490,7 @@ msgstr ""
"не може да премеÑтите заключено работно дърво, причина за заключването: %s\n"
"или го отключете, или го премеÑтете принудително Ñ â€žmove -f -f“"
-#: builtin/worktree.c:823
+#: builtin/worktree.c:822
msgid ""
"cannot move a locked working tree;\n"
"use 'move -f -f' to override or unlock first"
@@ -21409,41 +21498,41 @@ msgstr ""
"не може да премеÑтите заключено работно дърво:\n"
"или го отключете, или го премеÑтете принудително Ñ â€žmove -f -f“"
-#: builtin/worktree.c:826
+#: builtin/worktree.c:825
#, c-format
msgid "validation failed, cannot move working tree: %s"
msgstr ""
"проверките Ñа неуÑпешни, работното дърво не може да бъде премеÑтено: %s"
-#: builtin/worktree.c:831
+#: builtin/worktree.c:830
#, c-format
msgid "failed to move '%s' to '%s'"
msgstr "„%s“ не може да Ñе премеÑти в „%s“"
-#: builtin/worktree.c:879
+#: builtin/worktree.c:878
#, c-format
msgid "failed to run 'git status' on '%s'"
msgstr "не може да изпълни „git status“ върху „%s“"
-#: builtin/worktree.c:883
+#: builtin/worktree.c:882
#, c-format
-msgid "'%s' is dirty, use --force to delete it"
+msgid "'%s' contains modified or untracked files, use --force to delete it"
msgstr ""
-"работното дърво „%s“ не е чиÑто, за принудително изтриване е необходима "
-"опциÑта „--force“ "
+"„%s“ Ñъдържа провенени или нови файлове, за принудително изтриване е "
+"необходима опциÑта „--force“"
-#: builtin/worktree.c:888
+#: builtin/worktree.c:887
#, c-format
msgid "failed to run 'git status' on '%s', code %d"
msgstr ""
"командата „git status“ не може да Ñе изпълни за „%s“, код за грешка: %d"
-#: builtin/worktree.c:911
+#: builtin/worktree.c:910
msgid "force removal even if worktree is dirty or locked"
msgstr ""
"принудително изтриване, дори работното дърво да не е чиÑто или да е заключено"
-#: builtin/worktree.c:934
+#: builtin/worktree.c:933
#, c-format
msgid ""
"cannot remove a locked working tree, lock reason: %s\n"
@@ -21452,7 +21541,7 @@ msgstr ""
"не може да изтриете заключено работно дърво, причина за заключването: %s\n"
"или го отключете, или го изтрийте принудително Ñ â€žremove -f -f“"
-#: builtin/worktree.c:936
+#: builtin/worktree.c:935
msgid ""
"cannot remove a locked working tree;\n"
"use 'remove -f -f' to override or unlock first"
@@ -21460,7 +21549,7 @@ msgstr ""
"не може да изтриете заключено работно дърво:\n"
"или го отключете, или го изтрийте принудително Ñ â€žremove -f -f“"
-#: builtin/worktree.c:939
+#: builtin/worktree.c:938
#, c-format
msgid "validation failed, cannot remove working tree: %s"
msgstr "проверките Ñа неуÑпешни, работното дърво не може да бъде изтрито: %s"
@@ -21481,6 +21570,16 @@ msgstr "Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° обект-дърво за поддиректориÑÑ‚Ð
msgid "only useful for debugging"
msgstr "Ñамо за изчиÑтване на грешки"
+#: fast-import.c:3118
+#, c-format
+msgid "Expected 'mark' command, got %s"
+msgstr "очаква Ñе команда „mark“, а бе получена: „%s“"
+
+#: fast-import.c:3123
+#, c-format
+msgid "Expected 'to' command, got %s"
+msgstr "очаква Ñе команда „to“, а бе получена: „%s“"
+
#: credential-cache--daemon.c:223
#, c-format
msgid ""
@@ -21598,39 +21697,39 @@ msgstr ""
"пÑевдонимът „%s“ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð»Ð¸Ð²Ð¸ на Ñредата.\n"
"За това може да ползвате „!git“ в пÑевдонима"
-#: git.c:377
+#: git.c:376
#, c-format
msgid "empty alias for %s"
msgstr "празен пÑевдоним за „%s“"
-#: git.c:380
+#: git.c:379
#, c-format
msgid "recursive alias: %s"
msgstr "зациклен пÑевдоним: „%s“"
-#: git.c:460
+#: git.c:459
msgid "write failure on standard output"
msgstr "грешка при Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð¸Ð·Ñ…Ð¾Ð´"
-#: git.c:462
+#: git.c:461
msgid "unknown write failure on standard output"
msgstr "неизвеÑтна грешка при Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð¸Ð·Ñ…Ð¾Ð´"
-#: git.c:464
+#: git.c:463
msgid "close failed on standard output"
msgstr "грешка при затварÑне на ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð¸Ð·Ñ…Ð¾Ð´"
-#: git.c:793
+#: git.c:792
#, c-format
msgid "alias loop detected: expansion of '%s' does not terminate:%s"
msgstr "зациклÑне в пÑевдонимите: замеÑтваниÑта на „%s“ не приключват:%s"
-#: git.c:843
+#: git.c:842
#, c-format
msgid "cannot handle %s as a builtin"
msgstr "„%s“ не може да Ñе обработи като вградена команда"
-#: git.c:856
+#: git.c:855
#, c-format
msgid ""
"usage: %s\n"
@@ -21639,14 +21738,14 @@ msgstr ""
"употреба: %s\n"
"\n"
-#: git.c:876
+#: git.c:875
#, c-format
msgid "expansion of alias '%s' failed; '%s' is not a git command\n"
msgstr ""
"неуÑпешно замеÑтване на пÑевдонима „%s“ — резултатът „%s“ не е команда на "
"git\n"
-#: git.c:888
+#: git.c:887
#, c-format
msgid "failed to run command '%s': %s\n"
msgstr "командата „%s“ не може да Ñе изпълни: %s\n"
@@ -21665,34 +21764,34 @@ msgstr "Управлението на делегирането не Ñе подÐ
msgid "Public key pinning not supported with cURL < 7.44.0"
msgstr "Задаването на поÑтоÑнен публичен ключ не Ñе поддържа от cURL < 7.44.0"
-#: http.c:876
+#: http.c:878
msgid "CURLSSLOPT_NO_REVOKE not supported with cURL < 7.44.0"
msgstr "„CURLSSLOPT_NO_REVOKE“ не Ñе поддържа от cURL < 7.44.0"
-#: http.c:949
+#: http.c:951
msgid "Protocol restrictions not supported with cURL < 7.19.4"
msgstr "Ограничаването на протоколите не Ñе поддържа от cURL < 7.44.0"
-#: http.c:1085
+#: http.c:1088
#, c-format
msgid "Unsupported SSL backend '%s'. Supported SSL backends:"
msgstr "Ðеподдържана Ñ€ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð½Ð° SSL „%s“. Поддържат Ñе:"
-#: http.c:1092
+#: http.c:1095
#, c-format
msgid "Could not set SSL backend to '%s': cURL was built without SSL backends"
msgstr ""
"РеализациÑта на SSL не може да Ñе зададе да е „%s“: cURL е компилиран без "
"поддръжка на SSL"
-#: http.c:1096
+#: http.c:1099
#, c-format
msgid "Could not set SSL backend to '%s': already set"
msgstr ""
"РеализациÑта на SSL не може да Ñе зададе да е „%s“, защото вече е зададена "
"друга"
-#: http.c:1965
+#: http.c:1968
#, c-format
msgid ""
"unable to update url base from redirection:\n"
@@ -21703,137 +21802,137 @@ msgstr ""
" ◠заÑвен адреÑ: %s\n"
" ◠пренаÑочване: %s"
-#: remote-curl.c:157
+#: remote-curl.c:166
#, c-format
msgid "invalid quoting in push-option value: '%s'"
msgstr ""
"неправилно екраниране или цитиране в ÑтойноÑтта към Ð¾Ð¿Ñ†Ð¸Ñ Ð·Ð° изтлаÑкване: "
"„%s“"
-#: remote-curl.c:254
+#: remote-curl.c:263
#, c-format
msgid "%sinfo/refs not valid: is this a git repository?"
msgstr "„%sinfo/refs“ е неизползваемо, проверете дали е хранилище на git"
-#: remote-curl.c:355
+#: remote-curl.c:364
msgid "invalid server response; expected service, got flush packet"
msgstr ""
"неправилен отговор от Ñървъра: очакваше Ñе уÑлуга, а бе получен изчиÑтващ "
"пакет „flush“"
-#: remote-curl.c:386
+#: remote-curl.c:395
#, c-format
msgid "invalid server response; got '%s'"
msgstr "неправилен отговор от Ñървъра, бе получено: „%s“"
-#: remote-curl.c:446
+#: remote-curl.c:455
#, c-format
msgid "repository '%s' not found"
msgstr "хранилището „%s“ липÑва"
-#: remote-curl.c:450
+#: remote-curl.c:459
#, c-format
msgid "Authentication failed for '%s'"
msgstr "ÐеуÑпешна Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ ÐºÑŠÐ¼ „%s“"
-#: remote-curl.c:454
+#: remote-curl.c:463
#, c-format
msgid "unable to access '%s': %s"
msgstr "нÑма доÑтъп до „%s“: %s"
-#: remote-curl.c:460
+#: remote-curl.c:469
#, c-format
msgid "redirecting to %s"
msgstr "пренаÑочване към „%s“"
-#: remote-curl.c:584
+#: remote-curl.c:593
msgid "shouldn't have EOF when not gentle on EOF"
msgstr "получен е EOF, в режим без поддръжка за това"
-#: remote-curl.c:664
+#: remote-curl.c:673
msgid "unable to rewind rpc post data - try increasing http.postBuffer"
msgstr ""
"данните за POST не могат да Ñе прочетат наново, пробвайте да увеличите "
"наÑтройката „http.postBuffer“"
-#: remote-curl.c:724
+#: remote-curl.c:733
#, c-format
msgid "RPC failed; %s"
msgstr "ÐеуÑпешно отдалечено извикване. %s"
-#: remote-curl.c:764
+#: remote-curl.c:773
msgid "cannot handle pushes this big"
msgstr "толкова големи изтлаÑÐºÐ²Ð°Ð½Ð¸Ñ Ð½Ðµ може да Ñе изпълнÑÑ‚"
-#: remote-curl.c:879
+#: remote-curl.c:888
#, c-format
msgid "cannot deflate request; zlib deflate error %d"
msgstr ""
"заÑвката не може да бъде декомпреÑирана, грешка от „zlib“ при "
"декомпреÑиране: %d"
-#: remote-curl.c:883
+#: remote-curl.c:892
#, c-format
msgid "cannot deflate request; zlib end error %d"
msgstr ""
"заÑвката не може да бъде декомпреÑирана; грешка от „zlib“ при завършване: %d<"
-#: remote-curl.c:1014
+#: remote-curl.c:1023
msgid "dumb http transport does not support shallow capabilities"
msgstr "опроÑтениÑÑ‚ транÑпорт по http не поддържа плитки клиенти"
-#: remote-curl.c:1028
+#: remote-curl.c:1037
msgid "fetch failed."
msgstr "неуÑпешно доÑтавÑне."
-#: remote-curl.c:1076
+#: remote-curl.c:1085
msgid "cannot fetch by sha1 over smart http"
msgstr "умниÑÑ‚ вариант на http не може да доÑÑ‚Ð°Ð²Ñ Ð¿Ð¾ SHA1"
-#: remote-curl.c:1120 remote-curl.c:1126
+#: remote-curl.c:1129 remote-curl.c:1135
#, c-format
msgid "protocol error: expected sha/ref, got '%s'"
msgstr "протоколна грешка: очаква Ñе SHA1 или указател, а бе получено: „%s“"
-#: remote-curl.c:1138 remote-curl.c:1252
+#: remote-curl.c:1147 remote-curl.c:1261
#, c-format
msgid "http transport does not support %s"
msgstr "транÑпортът по http не поддържа „%s“"
-#: remote-curl.c:1174
+#: remote-curl.c:1183
msgid "git-http-push failed"
msgstr "неуÑпешно изпълнение на „git-http-push“"
-#: remote-curl.c:1360
+#: remote-curl.c:1367
msgid "remote-curl: usage: git remote-curl <remote> [<url>]"
msgstr "remote-curl: употреба: git remote-curl ХРÐÐИЛИЩЕ [ÐДРЕС]"
-#: remote-curl.c:1392
+#: remote-curl.c:1399
msgid "remote-curl: error reading command stream from git"
msgstr "remote-curl: грешка при изчитането на потока команди от git"
-#: remote-curl.c:1399
+#: remote-curl.c:1406
msgid "remote-curl: fetch attempted without a local repo"
msgstr "remote-curl: опит за доÑтавÑне без локално хранилище"
-#: remote-curl.c:1439
+#: remote-curl.c:1446
#, c-format
msgid "remote-curl: unknown command '%s' from git"
msgstr "remote-curl: непозната команда „%s“ от git"
-#: list-objects-filter-options.h:61
+#: list-objects-filter-options.h:85
msgid "args"
msgstr "ÐРГУМЕÐТИ"
-#: list-objects-filter-options.h:62
+#: list-objects-filter-options.h:86
msgid "object filtering"
msgstr "филтриране по вид на обекта"
-#: parse-options.h:170
+#: parse-options.h:179
msgid "expiry-date"
msgstr "период на валидноÑÑ‚/запазване"
-#: parse-options.h:184
+#: parse-options.h:193
msgid "no-op (backward compatibility)"
msgstr "нулева Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ (за ÑъвмеÑтимоÑÑ‚ Ñ Ð¿Ñ€ÐµÐ´Ð¸ÑˆÐ½Ð¸ верÑии)"
diff --git a/po/ca.po b/po/ca.po
index 73a0824..3c878ce 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -1332,7 +1332,7 @@ msgstr "no s'ha pogut obrir «%s»"
#: bundle.c:143
msgid "Repository lacks these prerequisite commits:"
-msgstr "Al dipòsit li manquen aquestes comissions prerequisits:"
+msgstr "Al dipòsit li manquen aquestes comissions prerequerides:"
#: bundle.c:146
msgid "need a repository to verify a bundle"
@@ -2552,7 +2552,7 @@ msgid ""
"option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and "
"\"histogram\""
msgstr ""
-"l'opció diff-algorithm accepta «myers», «minimalminimal», \"patience\" and "
+"l'opció diff-algorithm accepta «myers», «minimal», «patience» i "
"«histogram»"
#: diff.c:5033 diff.c:5053
@@ -4582,7 +4582,7 @@ msgstr "no es pot crear un blob buit a la base de dades d'objectes"
#: read-cache.c:718
#, c-format
msgid "%s: can only add regular files, symbolic links or git-directories"
-msgstr "%s: només pot afegir fitxers normals, enllaços simbolics o directoris git"
+msgstr "%s: només pot afegir fitxers normals, enllaços simbòlics o directoris git"
#: read-cache.c:723
#, fuzzy, c-format
@@ -7817,9 +7817,8 @@ msgid "Aborting\n"
msgstr "S'està avortant\n"
#: unpack-trees.c:318
-#, fuzzy
msgid "Updating files"
-msgstr "S'està actualitzant %s"
+msgstr "S'estan actualitzant els fitxers"
#: unpack-trees.c:350
msgid ""
@@ -8307,7 +8306,7 @@ msgstr "Comissió inicial"
#: wt-status.c:1727
msgid "No commits yet"
-msgstr "No s'ha fet cap comissió encara."
+msgstr "No s'ha fet cap comissió encara"
#: wt-status.c:1741
msgid "Untracked files"
@@ -10215,11 +10214,11 @@ msgstr[0] "actualitzat %d camí\n"
msgstr[1] "actualitzats %d camins\n"
#: builtin/checkout.c:386
-#, fuzzy, c-format
+#, c-format
msgid "Updated %d path from the index"
msgid_plural "Updated %d paths from the index"
-msgstr[0] "S'ha produït un error en llegir l'índex"
-msgstr[1] "S'ha produït un error en llegir l'índex"
+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:409 builtin/checkout.c:412 builtin/checkout.c:415
#: builtin/checkout.c:419
@@ -15848,7 +15847,7 @@ msgid ""
"existing notes"
msgstr ""
"No es poden afegir les notes. S'han trobat notes existents de l'objecte %s. "
-"Useu '-f' per a sobreescriure les notes existents."
+"Useu '-f' per a sobreescriure les notes existents"
#: builtin/notes.c:463 builtin/notes.c:544
#, c-format
@@ -19570,7 +19569,7 @@ msgstr "No es pot registrar l'estat de l'arbre de treball"
#: builtin/stash.c:1269 git-legacy-stash.sh:337
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."
+msgstr "No es poden usar --patch i --include-untracked o --all a la vegada"
#: builtin/stash.c:1285
#, fuzzy
@@ -19698,7 +19697,7 @@ msgstr "Omet la sortida en entrar l'ordre de cada submòdul"
#: builtin/submodule--helper.c:565 builtin/submodule--helper.c:1050
msgid "Recurse into nested submodules"
-msgstr "Inclou recursivament els submòduls imbrincats"
+msgstr "Inclou recursivament els submòduls imbricats"
#: builtin/submodule--helper.c:570
#, fuzzy
@@ -21487,7 +21486,7 @@ msgstr "Dóna un nom llegible per humans basant-se en les referències disponibl
#: command-list.h:86
msgid "Show changes between commits, commit and working tree, etc"
msgstr ""
-"Mostra els canvis entre comissions, la comissió i l'arbre de treball, etc."
+"Mostra els canvis entre comissions, la comissió i l'arbre de treball, etc"
#: command-list.h:87
msgid "Compares files in the working tree and the index"
@@ -21800,7 +21799,7 @@ msgstr "Elimina fitxers de l'arbre de treball i de l'índex"
#: command-list.h:161
msgid "Send a collection of patches as emails"
-msgstr "Envia una col·leció de pedaços com a correus electrònics"
+msgstr "Envia una col·lecció de pedaços com a correus electrònics"
#: command-list.h:162
msgid "Push objects over Git protocol to another repository"
@@ -22321,11 +22320,12 @@ msgstr ""
"camí de submòdul '$sm_path'"
#: git-submodule.sh:606
-#, fuzzy, sh-format
+#, sh-format
msgid ""
"Unable to fetch in submodule path '$displaypath'; trying to directly fetch "
"$sha1:"
-msgstr "No s'ha pogut obtenir en el camí de submòdul '$displaypath'"
+msgstr "No s'ha pogut obtenir en el camí de submòdul «$displaypath»; s'està intentant "
+"obtenir directament $sha1:"
#: git-submodule.sh:612
#, sh-format
@@ -22333,58 +22333,58 @@ msgid ""
"Fetched in submodule path '$displaypath', but it did not contain $sha1. "
"Direct fetching of that commit failed."
msgstr ""
-"S'ha obtingut en el camí de submòdul '$displaypath', però no contenia $sha1. "
+"S'ha obtingut en el camí de submòdul «$displaypath», però no contenia $sha1. "
"L'obtenció directa d'aquella comissió ha fallat."
#: git-submodule.sh:619
#, sh-format
msgid "Unable to checkout '$sha1' in submodule path '$displaypath'"
-msgstr "No s'ha pogut agafar '$sha1' en el camí de submòdul '$displaypath'"
+msgstr "No s'ha pogut agafar «$sha1» en el camí de submòdul «$displaypath»"
#: git-submodule.sh:620
#, sh-format
msgid "Submodule path '$displaypath': checked out '$sha1'"
-msgstr "Camí de submòdul '$displaypath': s'ha agafat '$sha1'"
+msgstr "Camí de submòdul «$displaypath»: s'ha agafat «$sha1»"
#: git-submodule.sh:624
#, sh-format
msgid "Unable to rebase '$sha1' in submodule path '$displaypath'"
msgstr ""
-"No s'ha pogut fer «rebase» '$sha1' en el camí de submòdul '$displaypath'"
+"No s'ha pogut fer «rebase» «$sha1»' en el camí de submòdul «$displaypath»"
#: git-submodule.sh:625
#, sh-format
msgid "Submodule path '$displaypath': rebased into '$sha1'"
-msgstr "Camí de submòdul '$displaypath': s'ha fet «rebase» en '$sha1'"
+msgstr "Camí de submòdul «$displaypath»: s'ha fet «rebase» en «$sha1»"
#: git-submodule.sh:630
#, sh-format
msgid "Unable to merge '$sha1' in submodule path '$displaypath'"
-msgstr "No s'ha pogut fusionar '$sha1' en el camí de submòdul '$displaypath'"
+msgstr "No s'ha pogut fusionar «$sha1» en el camí de submòdul «$displaypath»"
#: git-submodule.sh:631
#, sh-format
msgid "Submodule path '$displaypath': merged in '$sha1'"
-msgstr "Camí de submòdul '$displaypath': s'ha fusionat en '$sha1'"
+msgstr "Camí de submòdul «$displaypath»: s'ha fusionat en «$sha1»"
#: git-submodule.sh:636
#, sh-format
msgid "Execution of '$command $sha1' failed in submodule path '$displaypath'"
msgstr ""
-"L'execució de '$command $sha1' ha fallat en el camí de submòdul "
-"'$displaypath'"
+"L'execució de «$command $sha1» ha fallat en el camí de submòdul "
+"«$displaypath»"
#: git-submodule.sh:637
#, sh-format
msgid "Submodule path '$displaypath': '$command $sha1'"
-msgstr "Camí de submòdul '$displaypath': '$command $sha1'"
+msgstr "Camí de submòdul «$displaypath»: «$command $sha1»"
#: git-submodule.sh:668
#, sh-format
msgid "Failed to recurse into submodule path '$displaypath'"
msgstr ""
"S'ha produït un error en recorre recursivament dins del camí de submòdul "
-"'$displaypath'"
+"«$displaypath»"
#: git-submodule.sh:830
msgid "The --cached option cannot be used with the --files option"
@@ -22421,7 +22421,7 @@ msgid "Applied autostash."
msgstr "S'ha aplicat el magatzem automàtic."
#: git-rebase--preserve-merges.sh:112
-#, fuzzy, sh-format
+#, sh-format
msgid "Cannot store $stash_sha1"
msgstr "No es pot emmagatzemar $stash_sha1"
@@ -22719,8 +22719,8 @@ msgstr "No s'ha pogut marcar com a interactiu"
#, sh-format
msgid "Rebase $shortrevisions onto $shortonto ($todocount command)"
msgid_plural "Rebase $shortrevisions onto $shortonto ($todocount commands)"
-msgstr[0] "Rebasa $shortrevisions sobre $shortonto ($todocount ordre)"
-msgstr[1] "Rebasa $shortrevisions sobre $shortonto ($todocount ordres)"
+msgstr[0] "Fes «rebase» $shortrevisions sobre $shortonto ($todocount ordre)"
+msgstr[1] "Fes «rebase» $shortrevisions sobre $shortonto ($todocount ordres)"
#: git-rebase--preserve-merges.sh:997 git-rebase--preserve-merges.sh:1002
msgid "Could not init rewritten commits"
diff --git a/po/de.po b/po/de.po
index 6d80cfb..066326a 100644
--- a/po/de.po
+++ b/po/de.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Git\n"
"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2019-08-10 20:12+0800\n"
+"POT-Creation-Date: 2019-10-28 13:19+0800\n"
"PO-Revision-Date: 2016-11-28 18:10+0100\n"
"Last-Translator: Matthias Rüster <matthias.ruester@gmail.com>\n"
"Language-Team: Matthias Rüster <matthias.ruester@gmail.com>\n"
@@ -67,7 +67,7 @@ msgstr ""
msgid "Exiting because of an unresolved conflict."
msgstr "Beende wegen unaufgelöstem Konflikt."
-#: advice.c:193 builtin/merge.c:1327
+#: advice.c:193 builtin/merge.c:1332
msgid "You have not concluded your merge (MERGE_HEAD exists)."
msgstr "Sie haben Ihren Merge nicht abgeschlossen (MERGE_HEAD existiert)."
@@ -212,17 +212,7 @@ msgstr "Ungültiger Modus in Zeile %d: %s"
msgid "inconsistent header lines %d and %d"
msgstr "Inkonsistente Kopfzeilen %d und %d."
-#: apply.c:1460
-#, c-format
-msgid "recount: unexpected line: %.*s"
-msgstr "recount: unerwartete Zeile: %.*s"
-
-#: apply.c:1529
-#, c-format
-msgid "patch fragment without header at line %d: %.*s"
-msgstr "Patch-Fragment ohne Kopfbereich bei Zeile %d: %.*s"
-
-#: apply.c:1551
+#: apply.c:1372
#, c-format
msgid ""
"git diff header lacks filename information when removing %d leading pathname "
@@ -237,72 +227,82 @@ msgstr[1] ""
"Dem Kopfbereich von \"git diff\" fehlen Informationen zum Dateinamen, wenn "
"%d vorangestellte Teile des Pfades entfernt werden (Zeile %d)"
-#: apply.c:1564
+#: apply.c:1385
#, 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:1752
+#: apply.c:1481
+#, c-format
+msgid "recount: unexpected line: %.*s"
+msgstr "recount: unerwartete Zeile: %.*s"
+
+#: apply.c:1550
+#, c-format
+msgid "patch fragment without header at line %d: %.*s"
+msgstr "Patch-Fragment ohne Kopfbereich bei Zeile %d: %.*s"
+
+#: apply.c:1753
msgid "new file depends on old contents"
msgstr "neue Datei hängt von alten Inhalten ab"
-#: apply.c:1754
+#: apply.c:1755
msgid "deleted file still has contents"
msgstr "entfernte Datei hat noch Inhalte"
-#: apply.c:1788
+#: apply.c:1789
#, c-format
msgid "corrupt patch at line %d"
msgstr "fehlerhafter Patch bei Zeile %d"
-#: apply.c:1825
+#: apply.c:1826
#, 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:1828
#, c-format
msgid "deleted file %s still has contents"
msgstr "entfernte Datei %s hat noch Inhalte"
-#: apply.c:1830
+#: apply.c:1831
#, c-format
msgid "** warning: file %s becomes empty but is not deleted"
msgstr "** Warnung: Datei %s wird leer, aber nicht entfernt."
-#: apply.c:1977
+#: apply.c:1978
#, c-format
msgid "corrupt binary patch at line %d: %.*s"
msgstr "fehlerhafter Binär-Patch bei Zeile %d: %.*s"
-#: apply.c:2014
+#: apply.c:2015
#, c-format
msgid "unrecognized binary patch at line %d"
msgstr "nicht erkannter Binär-Patch bei Zeile %d"
-#: apply.c:2176
+#: apply.c:2177
#, c-format
msgid "patch with only garbage at line %d"
msgstr "Patch mit nutzlosen Informationen bei Zeile %d"
-#: apply.c:2262
+#: apply.c:2263
#, c-format
msgid "unable to read symlink %s"
msgstr "konnte symbolische Verknüpfung %s nicht lesen"
-#: apply.c:2266
+#: apply.c:2267
#, c-format
msgid "unable to open or read %s"
msgstr "konnte %s nicht öffnen oder lesen"
-#: apply.c:2925
+#: apply.c:2926
#, c-format
msgid "invalid start of line: '%c'"
msgstr "Ungültiger Zeilenanfang: '%c'"
-#: apply.c:3046
+#: apply.c:3047
#, c-format
msgid "Hunk #%d succeeded at %d (offset %d line)."
msgid_plural "Hunk #%d succeeded at %d (offset %d lines)."
@@ -310,12 +310,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:3058
+#: apply.c:3059
#, 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:3064
+#: apply.c:3065
#, c-format
msgid ""
"while searching for:\n"
@@ -324,25 +324,25 @@ msgstr ""
"bei der Suche nach:\n"
"%.*s"
-#: apply.c:3086
+#: apply.c:3087
#, c-format
msgid "missing binary patch data for '%s'"
msgstr "keine Daten in Binär-Patch für '%s'"
-#: apply.c:3094
+#: apply.c:3095
#, 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:3141
+#: apply.c:3142
#, 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:3151
+#: apply.c:3152
#, c-format
msgid ""
"the patch applies to '%s' (%s), which does not match the current contents."
@@ -350,441 +350,441 @@ msgstr ""
"der Patch wird angewendet auf '%s' (%s), was nicht den aktuellen Inhalten\n"
"entspricht"
-#: apply.c:3159
+#: apply.c:3160
#, 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:3177
+#: apply.c:3178
#, 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:3190
+#: apply.c:3191
#, c-format
msgid "binary patch does not apply to '%s'"
msgstr "Konnte Binär-Patch nicht auf '%s' anwenden"
-#: apply.c:3196
+#: apply.c:3197
#, 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:3217
+#: apply.c:3218
#, c-format
msgid "patch failed: %s:%ld"
msgstr "Anwendung des Patches fehlgeschlagen: %s:%ld"
-#: apply.c:3340
+#: apply.c:3341
#, c-format
msgid "cannot checkout %s"
msgstr "kann %s nicht auschecken"
-#: apply.c:3392 apply.c:3403 apply.c:3449 midx.c:62 setup.c:279
+#: apply.c:3393 apply.c:3404 apply.c:3450 midx.c:61 setup.c:280
#, c-format
msgid "failed to read %s"
msgstr "Fehler beim Lesen von %s"
-#: apply.c:3400
+#: apply.c:3401
#, c-format
msgid "reading from '%s' beyond a symbolic link"
msgstr "'%s' ist hinter einer symbolischen Verknüpfung"
-#: apply.c:3429 apply.c:3672
+#: apply.c:3430 apply.c:3673
#, c-format
msgid "path %s has been renamed/deleted"
msgstr "Pfad %s wurde umbenannt/gelöscht"
-#: apply.c:3515 apply.c:3687
+#: apply.c:3516 apply.c:3688
#, c-format
msgid "%s: does not exist in index"
msgstr "%s ist nicht im Index"
-#: apply.c:3524 apply.c:3695
+#: apply.c:3525 apply.c:3696
#, c-format
msgid "%s: does not match index"
msgstr "%s entspricht nicht der Version im Index"
-#: apply.c:3559
+#: apply.c:3560
msgid "repository lacks the necessary blob to fall back on 3-way merge."
msgstr ""
"Dem Repository fehlt der notwendige Blob, um auf einen 3-Wege-Merge\n"
"zurückzufallen."
-#: apply.c:3562
+#: apply.c:3563
#, c-format
msgid "Falling back to three-way merge...\n"
msgstr "Falle zurück auf 3-Wege-Merge ...\n"
-#: apply.c:3578 apply.c:3582
+#: apply.c:3579 apply.c:3583
#, c-format
msgid "cannot read the current contents of '%s'"
msgstr "kann aktuelle Inhalte von '%s' nicht lesen"
-#: apply.c:3594
+#: apply.c:3595
#, c-format
msgid "Failed to fall back on three-way merge...\n"
msgstr "Fehler beim Zurückfallen auf 3-Wege-Merge...\n"
-#: apply.c:3608
+#: apply.c:3609
#, c-format
msgid "Applied patch to '%s' with conflicts.\n"
msgstr "Patch auf '%s' mit Konflikten angewendet.\n"
-#: apply.c:3613
+#: apply.c:3614
#, c-format
msgid "Applied patch to '%s' cleanly.\n"
msgstr "Patch auf '%s' sauber angewendet.\n"
-#: apply.c:3639
+#: apply.c:3640
msgid "removal patch leaves file contents"
msgstr "Lösch-Patch hinterlässt Dateiinhalte"
-#: apply.c:3712
+#: apply.c:3713
#, c-format
msgid "%s: wrong type"
msgstr "%s: falscher Typ"
-#: apply.c:3714
+#: apply.c:3715
#, c-format
msgid "%s has type %o, expected %o"
msgstr "%s ist vom Typ %o, erwartete %o"
-#: apply.c:3865 apply.c:3867 read-cache.c:830 read-cache.c:856
+#: apply.c:3866 apply.c:3868 read-cache.c:830 read-cache.c:856
#: read-cache.c:1309
#, c-format
msgid "invalid path '%s'"
msgstr "Ungültiger Pfad '%s'"
-#: apply.c:3923
+#: apply.c:3924
#, c-format
msgid "%s: already exists in index"
msgstr "%s ist bereits bereitgestellt"
-#: apply.c:3926
+#: apply.c:3927
#, c-format
msgid "%s: already exists in working directory"
msgstr "%s existiert bereits im Arbeitsverzeichnis"
-#: apply.c:3946
+#: apply.c:3947
#, 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:3951
+#: apply.c:3952
#, 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:3971
+#: apply.c:3972
#, c-format
msgid "affected file '%s' is beyond a symbolic link"
msgstr "betroffene Datei '%s' ist hinter einer symbolischen Verknüpfung"
-#: apply.c:3975
+#: apply.c:3976
#, c-format
msgid "%s: patch does not apply"
msgstr "%s: Patch konnte nicht angewendet werden"
-#: apply.c:3990
+#: apply.c:3991
#, c-format
msgid "Checking patch %s..."
msgstr "Prüfe Patch %s ..."
-#: apply.c:4082
+#: apply.c:4083
#, 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:4089
+#: apply.c:4090
#, 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:4092
+#: apply.c:4093
#, c-format
msgid "sha1 information is lacking or useless (%s)."
msgstr "SHA-1 Information fehlt oder ist unbrauchbar (%s)."
-#: apply.c:4097 builtin/checkout.c:278 builtin/reset.c:143
+#: apply.c:4098 builtin/checkout.c:279 builtin/reset.c:143
#, c-format
msgid "make_cache_entry failed for path '%s'"
msgstr "make_cache_entry für Pfad '%s' fehlgeschlagen"
-#: apply.c:4101
+#: apply.c:4102
#, c-format
msgid "could not add %s to temporary index"
msgstr "konnte %s nicht zum temporären Index hinzufügen"
-#: apply.c:4111
+#: apply.c:4112
#, c-format
msgid "could not write temporary index to %s"
msgstr "konnte temporären Index nicht nach %s schreiben"
-#: apply.c:4249
+#: apply.c:4250
#, c-format
msgid "unable to remove %s from index"
msgstr "konnte %s nicht aus dem Index entfernen"
-#: apply.c:4283
+#: apply.c:4284
#, c-format
msgid "corrupt patch for submodule %s"
msgstr "fehlerhafter Patch für Submodul %s"
-#: apply.c:4289
+#: apply.c:4290
#, c-format
msgid "unable to stat newly created file '%s'"
msgstr "konnte neu erstellte Datei '%s' nicht lesen"
-#: apply.c:4297
+#: apply.c:4298
#, 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:4303 apply.c:4448
+#: apply.c:4304 apply.c:4449
#, c-format
msgid "unable to add cache entry for %s"
msgstr "kann für %s keinen Eintrag in den Zwischenspeicher hinzufügen"
-#: apply.c:4346
+#: apply.c:4347
#, c-format
msgid "failed to write to '%s'"
msgstr "Fehler beim Schreiben nach '%s'"
-#: apply.c:4350
+#: apply.c:4351
#, c-format
msgid "closing file '%s'"
msgstr "schließe Datei '%s'"
-#: apply.c:4420
+#: apply.c:4421
#, c-format
msgid "unable to write file '%s' mode %o"
msgstr "konnte Datei '%s' mit Modus %o nicht schreiben"
-#: apply.c:4518
+#: apply.c:4519
#, c-format
msgid "Applied patch %s cleanly."
msgstr "Patch %s sauber angewendet"
-#: apply.c:4526
+#: apply.c:4527
msgid "internal error"
msgstr "interner Fehler"
-#: apply.c:4529
+#: apply.c:4530
#, 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:4540
+#: apply.c:4541
#, c-format
msgid "truncating .rej filename to %.*s.rej"
msgstr "Verkürze Name von .rej Datei zu %.*s.rej"
-#: apply.c:4548 builtin/fetch.c:878 builtin/fetch.c:1168
+#: apply.c:4549 builtin/fetch.c:898 builtin/fetch.c:1194
#, c-format
msgid "cannot open %s"
msgstr "kann '%s' nicht öffnen"
-#: apply.c:4562
+#: apply.c:4563
#, c-format
msgid "Hunk #%d applied cleanly."
msgstr "Patch-Bereich #%d sauber angewendet."
-#: apply.c:4566
+#: apply.c:4567
#, c-format
msgid "Rejected hunk #%d."
msgstr "Patch-Block #%d zurückgewiesen."
-#: apply.c:4676
+#: apply.c:4686
#, c-format
msgid "Skipped patch '%s'."
msgstr "Patch '%s' ausgelassen."
-#: apply.c:4684
+#: apply.c:4694
msgid "unrecognized input"
msgstr "nicht erkannte Eingabe"
-#: apply.c:4704
+#: apply.c:4714
msgid "unable to read index file"
msgstr "Konnte Index-Datei nicht lesen"
-#: apply.c:4859
+#: apply.c:4871
#, c-format
msgid "can't open patch '%s': %s"
msgstr "kann Patch '%s' nicht öffnen: %s"
-#: apply.c:4886
+#: apply.c:4898
#, 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:4892 apply.c:4907
+#: apply.c:4904 apply.c:4919
#, 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:4900
+#: apply.c:4912
#, 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:4916 builtin/add.c:540 builtin/mv.c:301 builtin/rm.c:390
+#: apply.c:4928 builtin/add.c:540 builtin/mv.c:301 builtin/rm.c:390
msgid "Unable to write new index file"
msgstr "Konnte neue Index-Datei nicht schreiben."
-#: apply.c:4943 apply.c:4946 builtin/am.c:2208 builtin/am.c:2211
-#: builtin/clone.c:123 builtin/fetch.c:128 builtin/merge.c:273
-#: builtin/pull.c:208 builtin/submodule--helper.c:407
+#: apply.c:4955 apply.c:4958 builtin/am.c:2197 builtin/am.c:2200
+#: builtin/clone.c:122 builtin/fetch.c:143 builtin/merge.c:273
+#: builtin/pull.c:209 builtin/submodule--helper.c:407
#: builtin/submodule--helper.c:1367 builtin/submodule--helper.c:1370
#: builtin/submodule--helper.c:1850 builtin/submodule--helper.c:1853
#: builtin/submodule--helper.c:2092 git-add--interactive.perl:211
msgid "path"
msgstr "Pfad"
-#: apply.c:4944
+#: apply.c:4956
msgid "don't apply changes matching the given path"
msgstr "keine Änderungen im angegebenen Pfad anwenden"
-#: apply.c:4947
+#: apply.c:4959
msgid "apply changes matching the given path"
msgstr "Änderungen nur im angegebenen Pfad anwenden"
-#: apply.c:4949 builtin/am.c:2217
+#: apply.c:4961 builtin/am.c:2206
msgid "num"
msgstr "Anzahl"
-#: apply.c:4950
+#: apply.c:4962
msgid "remove <num> leading slashes from traditional diff paths"
msgstr ""
"<Anzahl> vorangestellte Schrägstriche von herkömmlichen Differenzpfaden "
"entfernen"
-#: apply.c:4953
+#: apply.c:4965
msgid "ignore additions made by the patch"
msgstr "hinzugefügte Zeilen des Patches ignorieren"
-#: apply.c:4955
+#: apply.c:4967
msgid "instead of applying the patch, output diffstat for the input"
msgstr ""
"anstatt der Anwendung des Patches, den \"diffstat\" für die Eingabe "
"ausgegeben"
-#: apply.c:4959
+#: apply.c:4971
msgid "show number of added and deleted lines in decimal notation"
msgstr ""
"die Anzahl von hinzugefügten/entfernten Zeilen in Dezimalnotation anzeigen"
-#: apply.c:4961
+#: apply.c:4973
msgid "instead of applying the patch, output a summary for the input"
msgstr ""
"anstatt der Anwendung des Patches, eine Zusammenfassung für die Eingabe "
"ausgeben"
-#: apply.c:4963
+#: apply.c:4975
msgid "instead of applying the patch, see if the patch is applicable"
msgstr ""
"anstatt der Anwendung des Patches, zeige ob Patch angewendet werden kann"
-#: apply.c:4965
+#: apply.c:4977
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:4967
+#: apply.c:4979
msgid "mark new files with `git add --intent-to-add`"
msgstr "neue Dateien mit `git add --intent-to-add` markieren"
-#: apply.c:4969
+#: apply.c:4981
msgid "apply a patch without touching the working tree"
msgstr "Patch anwenden, ohne Änderungen im Arbeitsverzeichnis vorzunehmen"
-#: apply.c:4971
+#: apply.c:4983
msgid "accept a patch that touches outside the working area"
msgstr ""
"Patch anwenden, der Änderungen außerhalb des Arbeitsverzeichnisses vornimmt"
-#: apply.c:4974
+#: apply.c:4986
msgid "also apply the patch (use with --stat/--summary/--check)"
msgstr "Patch anwenden (Benutzung mit --stat/--summary/--check)"
-#: apply.c:4976
+#: apply.c:4988
msgid "attempt three-way merge if a patch does not apply"
msgstr "versuche 3-Wege-Merge, wenn der Patch nicht angewendet werden konnte"
-#: apply.c:4978
+#: apply.c:4990
msgid "build a temporary index based on embedded index information"
msgstr ""
"einen temporären Index, basierend auf den integrierten Index-Informationen, "
"erstellen"
-#: apply.c:4981 builtin/checkout-index.c:173 builtin/ls-files.c:524
+#: apply.c:4993 builtin/checkout-index.c:173 builtin/ls-files.c:524
msgid "paths are separated with NUL character"
msgstr "Pfade sind getrennt durch NUL Zeichen"
-#: apply.c:4983
+#: apply.c:4995
msgid "ensure at least <n> lines of context match"
msgstr ""
"sicher stellen, dass mindestens <n> Zeilen des Kontextes übereinstimmen"
-#: apply.c:4984 builtin/am.c:2196 builtin/interpret-trailers.c:98
+#: apply.c:4996 builtin/am.c:2185 builtin/interpret-trailers.c:98
#: builtin/interpret-trailers.c:100 builtin/interpret-trailers.c:102
-#: builtin/pack-objects.c:3330 builtin/rebase.c:1421
+#: builtin/pack-objects.c:3310 builtin/rebase.c:1445
msgid "action"
msgstr "Aktion"
-#: apply.c:4985
+#: apply.c:4997
msgid "detect new or modified lines that have whitespace errors"
msgstr "neue oder geänderte Zeilen, die Whitespace-Fehler haben, ermitteln"
-#: apply.c:4988 apply.c:4991
+#: apply.c:5000 apply.c:5003
msgid "ignore changes in whitespace when finding context"
msgstr "Änderungen im Whitespace bei der Suche des Kontextes ignorieren"
-#: apply.c:4994
+#: apply.c:5006
msgid "apply the patch in reverse"
msgstr "den Patch in umgekehrter Reihenfolge anwenden"
-#: apply.c:4996
+#: apply.c:5008
msgid "don't expect at least one line of context"
msgstr "keinen Kontext erwarten"
-#: apply.c:4998
+#: apply.c:5010
msgid "leave the rejected hunks in corresponding *.rej files"
msgstr ""
"zurückgewiesene Patch-Blöcke in entsprechenden *.rej Dateien hinterlassen"
-#: apply.c:5000
+#: apply.c:5012
msgid "allow overlapping hunks"
msgstr "sich überlappende Patch-Blöcke erlauben"
-#: apply.c:5001 builtin/add.c:291 builtin/check-ignore.c:22
+#: apply.c:5013 builtin/add.c:291 builtin/check-ignore.c:22
#: builtin/commit.c:1337 builtin/count-objects.c:98 builtin/fsck.c:786
-#: builtin/log.c:2068 builtin/mv.c:123 builtin/read-tree.c:128
+#: builtin/log.c:2085 builtin/mv.c:123 builtin/read-tree.c:128
msgid "be verbose"
msgstr "erweiterte Ausgaben"
-#: apply.c:5003
+#: apply.c:5015
msgid "tolerate incorrectly detected missing new-line at the end of file"
msgstr "fehlerhaft erkannten fehlenden Zeilenumbruch am Dateiende tolerieren"
-#: apply.c:5006
+#: apply.c:5018
msgid "do not trust the line counts in the hunk headers"
msgstr "den Zeilennummern im Kopf des Patch-Blocks nicht vertrauen"
-#: apply.c:5008 builtin/am.c:2205
+#: apply.c:5020 builtin/am.c:2194
msgid "root"
msgstr "Wurzelverzeichnis"
-#: apply.c:5009
+#: apply.c:5021
msgid "prepend <root> to all filenames"
msgstr "<Wurzelverzeichnis> vor alle Dateinamen stellen"
@@ -839,7 +839,7 @@ msgstr "Format"
msgid "archive format"
msgstr "Archivformat"
-#: archive.c:458 builtin/log.c:1580
+#: archive.c:458 builtin/log.c:1581
msgid "prefix"
msgstr "Präfix"
@@ -847,11 +847,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:460 builtin/blame.c:862 builtin/blame.c:874 builtin/blame.c:875
-#: builtin/commit-tree.c:117 builtin/config.c:129 builtin/fast-export.c:1134
-#: builtin/fast-export.c:1136 builtin/grep.c:897 builtin/hash-object.c:105
-#: builtin/ls-files.c:560 builtin/ls-files.c:563 builtin/notes.c:412
-#: builtin/notes.c:578 builtin/read-tree.c:123 parse-options.h:177
+#: archive.c:460 builtin/blame.c:861 builtin/blame.c:873 builtin/blame.c:874
+#: builtin/commit-tree.c:117 builtin/config.c:129 builtin/fast-export.c:1162
+#: builtin/fast-export.c:1164 builtin/fast-export.c:1168 builtin/grep.c:899
+#: builtin/hash-object.c:105 builtin/ls-files.c:560 builtin/ls-files.c:563
+#: builtin/notes.c:412 builtin/notes.c:578 builtin/read-tree.c:123
+#: parse-options.h:186
msgid "file"
msgstr "Datei"
@@ -883,7 +884,7 @@ msgstr "besser komprimieren"
msgid "list supported archive formats"
msgstr "unterstützte Archivformate auflisten"
-#: archive.c:479 builtin/archive.c:91 builtin/clone.c:113 builtin/clone.c:116
+#: archive.c:479 builtin/archive.c:91 builtin/clone.c:112 builtin/clone.c:115
#: builtin/submodule--helper.c:1379 builtin/submodule--helper.c:1859
msgid "repo"
msgstr "Repository"
@@ -892,7 +893,7 @@ msgstr "Repository"
msgid "retrieve the archive from remote repository <repo>"
msgstr "Archiv vom Remote-Repository <Repository> abrufen"
-#: archive.c:481 builtin/archive.c:93 builtin/difftool.c:707
+#: archive.c:481 builtin/archive.c:93 builtin/difftool.c:715
#: builtin/notes.c:498
msgid "command"
msgstr "Programm"
@@ -928,26 +929,26 @@ msgstr "Argument für Format '%s' nicht unterstützt: -%d"
msgid "cannot stream blob %s"
msgstr "Kann Blob %s nicht streamen."
-#: archive-tar.c:260 archive-zip.c:363
+#: archive-tar.c:266 archive-zip.c:363
#, c-format
msgid "unsupported file mode: 0%o (SHA1: %s)"
msgstr "Nicht unterstützter Dateimodus: 0%o (SHA1: %s)"
-#: archive-tar.c:287 archive-zip.c:353
+#: archive-tar.c:293 archive-zip.c:353
#, c-format
msgid "cannot read %s"
msgstr "Kann %s nicht lesen."
-#: archive-tar.c:459
+#: archive-tar.c:465
#, c-format
msgid "unable to start '%s' filter"
msgstr "Konnte '%s' Filter nicht starten."
-#: archive-tar.c:462
+#: archive-tar.c:468
msgid "unable to redirect descriptor"
msgstr "Konnte Descriptor nicht umleiten."
-#: archive-tar.c:469
+#: archive-tar.c:475
#, c-format
msgid "'%s' filter reported error"
msgstr "'%s' Filter meldete Fehler."
@@ -972,17 +973,17 @@ msgstr "Fehler beim Komprimieren (%d)"
msgid "timestamp too large for this system: %<PRIuMAX>"
msgstr "Timestamp zu groß für dieses System: %<PRIuMAX>"
-#: attr.c:211
+#: attr.c:213
#, c-format
msgid "%.*s is not a valid attribute name"
msgstr "%.*s ist kein gültiger Attributname"
-#: attr.c:368
+#: attr.c:370
#, c-format
msgid "%s not allowed: %s:%d"
msgstr "%s nicht erlaubt: %s:%d"
-#: attr.c:408
+#: attr.c:410
msgid ""
"Negative patterns are ignored in git attributes\n"
"Use '\\!' for literal leading exclamation."
@@ -1110,43 +1111,43 @@ 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"
-#: blame.c:2697
+#: blame.c:2700
msgid "--contents and --reverse do not blend well."
msgstr "--contents und --reverse funktionieren gemeinsam nicht."
-#: blame.c:2711
+#: blame.c:2714
msgid "cannot use --contents with final commit object name"
msgstr ""
"kann --contents nicht mit endgültigem Namen des Commit-Objektes benutzen"
-#: blame.c:2732
+#: blame.c:2735
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:2741 bundle.c:167 ref-filter.c:2196 remote.c:1938 sequencer.c:2033
-#: sequencer.c:4348 builtin/commit.c:1020 builtin/log.c:387 builtin/log.c:963
-#: builtin/log.c:1451 builtin/log.c:1827 builtin/log.c:2117 builtin/merge.c:411
-#: builtin/pack-objects.c:3148 builtin/pack-objects.c:3163
+#: blame.c:2744 bundle.c:167 ref-filter.c:2203 remote.c:1941 sequencer.c:1971
+#: sequencer.c:4305 builtin/commit.c:1020 builtin/log.c:387 builtin/log.c:964
+#: builtin/log.c:1452 builtin/log.c:1844 builtin/log.c:2134 builtin/merge.c:411
+#: builtin/pack-objects.c:3128 builtin/pack-objects.c:3143
#: builtin/shortlog.c:192
msgid "revision walk setup failed"
msgstr "Einrichtung des Revisionsgangs fehlgeschlagen"
-#: blame.c:2759
+#: blame.c:2762
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:2770
+#: blame.c:2773
#, c-format
msgid "no such path %s in %s"
msgstr "Pfad %s nicht in %s"
-#: blame.c:2781
+#: blame.c:2784
#, c-format
msgid "cannot read blob %s for path %s"
msgstr "kann Blob %s für Pfad '%s' nicht lesen"
@@ -1303,7 +1304,7 @@ msgstr "'%s' sieht nicht wie eine v2 Paketdatei aus"
msgid "unrecognized header: %s%s (%d)"
msgstr "nicht erkannter Kopfbereich: %s%s (%d)"
-#: bundle.c:90 rerere.c:480 rerere.c:690 sequencer.c:2283 sequencer.c:3024
+#: bundle.c:90 rerere.c:480 rerere.c:690 sequencer.c:2221 sequencer.c:2962
#: builtin/commit.c:791
#, c-format
msgid "could not open '%s'"
@@ -1356,7 +1357,7 @@ msgstr "\"rev-list\" abgebrochen"
msgid "ref '%s' is excluded by the rev-list options"
msgstr "Referenz '%s' wird durch \"rev-list\" Optionen ausgeschlossen"
-#: bundle.c:460 builtin/log.c:202 builtin/log.c:1732 builtin/shortlog.c:306
+#: bundle.c:460 builtin/log.c:202 builtin/log.c:1733 builtin/shortlog.c:306
#, c-format
msgid "unrecognized argument: %s"
msgstr "nicht erkanntes Argument: %s"
@@ -1379,8 +1380,8 @@ msgstr "Erstellung der Paketindexdatei abgebrochen"
msgid "invalid color value: %.*s"
msgstr "Ungültiger Farbwert: %.*s"
-#: commit.c:50 sequencer.c:2727 builtin/am.c:355 builtin/am.c:399
-#: builtin/am.c:1378 builtin/am.c:2020 builtin/replace.c:455
+#: commit.c:50 sequencer.c:2665 builtin/am.c:354 builtin/am.c:398
+#: builtin/am.c:1366 builtin/am.c:2009 builtin/replace.c:456
#, c-format
msgid "could not parse %s"
msgstr "konnte %s nicht parsen"
@@ -1411,28 +1412,28 @@ msgstr ""
"Sie können diese Meldung unterdrücken, indem Sie\n"
"\"git config advice.graftFileDeprecated false\" ausführen."
-#: commit.c:1127
+#: commit.c:1128
#, 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:1130
+#: commit.c:1131
#, 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:1133
+#: commit.c:1134
#, c-format
msgid "Commit %s does not have a GPG signature."
msgstr "Commit %s hat keine GPG-Signatur."
-#: commit.c:1136
+#: commit.c:1137
#, 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:1390
+#: commit.c:1391
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"
@@ -1496,180 +1497,195 @@ msgstr "Ungültige Commit-Graph Verkettung: Zeile '%s' ist kein Hash"
msgid "unable to find all commit-graph files"
msgstr "Konnte nicht alle Commit-Graph-Dateien finden."
-#: commit-graph.c:554 commit-graph.c:614
+#: commit-graph.c:561 commit-graph.c:621
msgid "invalid commit position. commit-graph is likely corrupt"
msgstr "Ungültige Commit-Position. Commit-Graph ist wahrscheinlich beschädigt."
-#: commit-graph.c:575
+#: commit-graph.c:582
#, c-format
msgid "could not find commit %s"
msgstr "Konnte Commit %s nicht finden."
-#: commit-graph.c:1002 builtin/pack-objects.c:2657
+#: commit-graph.c:855 builtin/am.c:1287
+#, c-format
+msgid "unable to parse commit %s"
+msgstr "Konnte Commit '%s' nicht parsen."
+
+#: commit-graph.c:859
+#, c-format
+msgid "unable to get tree for %s"
+msgstr "Konnte Verzeichnis für %s nicht bestimmen."
+
+#: commit-graph.c:1017 builtin/pack-objects.c:2641
#, c-format
msgid "unable to get type of object %s"
msgstr "Konnte Art von Objekt '%s' nicht bestimmen."
-#: commit-graph.c:1034
+#: commit-graph.c:1049
msgid "Loading known commits in commit graph"
msgstr "Lade bekannte Commits in Commit-Graph"
-#: commit-graph.c:1051
+#: commit-graph.c:1066
msgid "Expanding reachable commits in commit graph"
msgstr "Erweitere erreichbare Commits in Commit-Graph"
-#: commit-graph.c:1070
+#: commit-graph.c:1085
msgid "Clearing commit marks in commit graph"
msgstr "Lösche Commit-Markierungen in Commit-Graph"
-#: commit-graph.c:1089
+#: commit-graph.c:1104
msgid "Computing commit graph generation numbers"
msgstr "Commit-Graph Generierungsnummern berechnen"
-#: commit-graph.c:1163
+#: commit-graph.c:1179
#, c-format
msgid "Finding commits for commit graph in %d pack"
msgid_plural "Finding commits for commit graph in %d packs"
msgstr[0] "Suche Commits für Commit-Graph in %d Paket"
msgstr[1] "Suche Commits für Commit-Graph in %d Paketen"
-#: commit-graph.c:1176
+#: commit-graph.c:1192
#, c-format
msgid "error adding pack %s"
msgstr "Fehler beim Hinzufügen von Paket %s."
-#: commit-graph.c:1180
+#: commit-graph.c:1196
#, c-format
msgid "error opening index for %s"
msgstr "Fehler beim Öffnen des Index für %s."
-#: commit-graph.c:1204
+#: commit-graph.c:1220
#, c-format
msgid "Finding commits for commit graph from %d ref"
msgid_plural "Finding commits for commit graph from %d refs"
msgstr[0] "Suche Commits für Commit-Graph in %d Referenz"
msgstr[1] "Suche Commits für Commit-Graph in %d Referenzen"
-#: commit-graph.c:1238
+#: commit-graph.c:1240
+#, c-format
+msgid "invalid commit object id: %s"
+msgstr "ungültige Commit-Objekt-ID: %s"
+
+#: commit-graph.c:1255
msgid "Finding commits for commit graph among packed objects"
msgstr "Suche Commits für Commit-Graph in gepackten Objekten"
-#: commit-graph.c:1253
+#: commit-graph.c:1270
msgid "Counting distinct commits in commit graph"
msgstr "Zähle Commits in Commit-Graph"
-#: commit-graph.c:1284
+#: commit-graph.c:1300
msgid "Finding extra edges in commit graph"
msgstr "Suche zusätzliche Ränder in Commit-Graph"
-#: commit-graph.c:1332
+#: commit-graph.c:1346
msgid "failed to write correct number of base graph ids"
msgstr "Fehler beim Schreiben der korrekten Anzahl von Basis-Graph-IDs."
-#: commit-graph.c:1365 midx.c:811
+#: commit-graph.c:1379 midx.c:810
#, c-format
msgid "unable to create leading directories of %s"
msgstr "Konnte führende Verzeichnisse von '%s' nicht erstellen."
-#: commit-graph.c:1377 builtin/index-pack.c:306 builtin/repack.c:240
+#: commit-graph.c:1391 builtin/index-pack.c:306 builtin/repack.c:241
#, c-format
msgid "unable to create '%s'"
msgstr "konnte '%s' nicht erstellen"
-#: commit-graph.c:1437
+#: commit-graph.c:1451
#, 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:1478
+#: commit-graph.c:1492
msgid "unable to open commit-graph chain file"
msgstr "Konnte Commit-Graph Chain-Datei nicht öffnen."
-#: commit-graph.c:1490
+#: commit-graph.c:1504
msgid "failed to rename base commit-graph file"
msgstr "Konnte Basis-Commit-Graph-Datei nicht umbenennen."
-#: commit-graph.c:1510
+#: commit-graph.c:1524
msgid "failed to rename temporary commit-graph file"
msgstr "Konnte temporäre Commit-Graph-Datei nicht umbenennen."
-#: commit-graph.c:1621
+#: commit-graph.c:1635
msgid "Scanning merged commits"
msgstr "Durchsuche zusammengeführte Commits"
-#: commit-graph.c:1632
+#: commit-graph.c:1646
#, c-format
msgid "unexpected duplicate commit id %s"
msgstr "Unerwartete doppelte Commit-ID %s"
-#: commit-graph.c:1657
+#: commit-graph.c:1670
msgid "Merging commit-graph"
msgstr "Zusammenführen von Commit-Graph"
-#: commit-graph.c:1844
+#: commit-graph.c:1860
#, c-format
msgid "the commit graph format cannot write %d commits"
msgstr "Das Commit-Graph Format kann nicht %d Commits schreiben."
-#: commit-graph.c:1855
+#: commit-graph.c:1871
msgid "too many commits to write graph"
msgstr "Zu viele Commits zum Schreiben des Graphen."
-#: commit-graph.c:1945
+#: commit-graph.c:1961
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:1955
+#: commit-graph.c:1971
#, 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:1965 commit-graph.c:1980
+#: commit-graph.c:1981 commit-graph.c:1996
#, 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:1972
+#: commit-graph.c:1988
#, c-format
msgid "failed to parse commit %s from commit-graph"
msgstr "Konnte Commit %s von Commit-Graph nicht parsen."
-#: commit-graph.c:1989
+#: commit-graph.c:2006
msgid "Verifying commits in commit graph"
msgstr "Commit in Commit-Graph überprüfen"
-#: commit-graph.c:2002
+#: commit-graph.c:2020
#, 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:2009
+#: commit-graph.c:2027
#, 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:2019
+#: commit-graph.c:2037
#, 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:2028
+#: commit-graph.c:2046
#, 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:2041
+#: commit-graph.c:2059
#, 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:2046
+#: commit-graph.c:2064
#, c-format
msgid ""
"commit-graph has generation number zero for commit %s, but non-zero elsewhere"
@@ -1677,7 +1693,7 @@ msgstr ""
"Commit-Graph hat Generationsnummer null für Commit %s, aber sonst ungleich "
"null"
-#: commit-graph.c:2050
+#: commit-graph.c:2068
#, c-format
msgid ""
"commit-graph has non-zero generation number for commit %s, but zero elsewhere"
@@ -1685,12 +1701,12 @@ msgstr ""
"Commit-Graph hat Generationsnummer ungleich null für Commit %s, aber sonst "
"null"
-#: commit-graph.c:2065
+#: commit-graph.c:2083
#, c-format
msgid "commit-graph generation for commit %s is %u != %u"
msgstr "Commit-Graph Erstellung für Commit %s ist %u != %u"
-#: commit-graph.c:2071
+#: commit-graph.c:2089
#, c-format
msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>"
msgstr ""
@@ -1742,7 +1758,7 @@ msgstr "Schlüssel enthält keine Sektion: %s"
msgid "key does not contain variable name: %s"
msgstr "Schlüssel enthält keinen Variablennamen: %s"
-#: config.c:406 sequencer.c:2463
+#: config.c:406 sequencer.c:2401
#, c-format
msgid "invalid key: %s"
msgstr "Ungültiger Schlüssel: %s"
@@ -1871,157 +1887,151 @@ msgstr "core.commentChar sollte nur ein Zeichen sein"
msgid "invalid mode for object creation: %s"
msgstr "Ungültiger Modus für Objekterstellung: %s"
-#: config.c:1430
+#: config.c:1425
#, c-format
msgid "malformed value for %s"
msgstr "Ungültiger Wert für %s."
-#: config.c:1456
+#: config.c:1451
#, c-format
msgid "malformed value for %s: %s"
msgstr "Ungültiger Wert für %s: %s"
-#: config.c:1457
+#: config.c:1452
msgid "must be one of nothing, matching, simple, upstream or current"
msgstr ""
"Muss einer von diesen sein: nothing, matching, simple, upstream, current"
-#: config.c:1518 builtin/pack-objects.c:3410
+#: config.c:1513 builtin/pack-objects.c:3394
#, c-format
msgid "bad pack compression level %d"
msgstr "ungültiger Komprimierungsgrad (%d) für Paketierung"
-#: config.c:1639
+#: config.c:1634
#, c-format
msgid "unable to load config blob object '%s'"
msgstr "Konnte Blob-Objekt '%s' für Konfiguration nicht laden."
-#: config.c:1642
+#: config.c:1637
#, c-format
msgid "reference '%s' does not point to a blob"
msgstr "Referenz '%s' zeigt auf keinen Blob."
-#: config.c:1659
+#: config.c:1654
#, c-format
msgid "unable to resolve config blob '%s'"
msgstr "Konnte Blob '%s' für Konfiguration nicht auflösen."
-#: config.c:1689
+#: config.c:1684
#, c-format
msgid "failed to parse %s"
msgstr "Fehler beim Parsen von %s."
-#: config.c:1745
+#: config.c:1740
msgid "unable to parse command-line config"
msgstr ""
"Konnte die über die Befehlszeile angegebene Konfiguration nicht parsen."
-#: config.c:2094
+#: config.c:2091
msgid "unknown error occurred while reading the configuration files"
msgstr ""
"Es trat ein unbekannter Fehler beim Lesen der Konfigurationsdateien auf."
-#: config.c:2264
+#: config.c:2261
#, c-format
msgid "Invalid %s: '%s'"
msgstr "Ungültiger %s: '%s'"
-#: config.c:2307
-#, c-format
-msgid "unknown core.untrackedCache value '%s'; using 'keep' default value"
-msgstr ""
-"Unbekannter Wert '%s' in core.untrackedCache; benutze Standardwert 'keep'"
-
-#: config.c:2333
+#: config.c:2306
#, 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:2379
+#: config.c:2352
#, 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:2381
+#: config.c:2354
#, 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:2462
+#: config.c:2435
#, c-format
msgid "invalid section name '%s'"
msgstr "Ungültiger Sektionsname '%s'"
-#: config.c:2494
+#: config.c:2467
#, c-format
msgid "%s has multiple values"
msgstr "%s hat mehrere Werte"
-#: config.c:2523
+#: config.c:2496
#, c-format
msgid "failed to write new configuration file %s"
msgstr "Konnte neue Konfigurationsdatei '%s' nicht schreiben."
-#: config.c:2775 config.c:3099
+#: config.c:2748 config.c:3072
#, c-format
msgid "could not lock config file %s"
msgstr "Konnte Konfigurationsdatei '%s' nicht sperren."
-#: config.c:2786
+#: config.c:2759
#, c-format
msgid "opening %s"
msgstr "Öffne %s"
-#: config.c:2821 builtin/config.c:328
+#: config.c:2794 builtin/config.c:328
#, c-format
msgid "invalid pattern: %s"
msgstr "Ungültiges Muster: %s"
-#: config.c:2846
+#: config.c:2819
#, c-format
msgid "invalid config file %s"
msgstr "Ungültige Konfigurationsdatei %s"
-#: config.c:2859 config.c:3112
+#: config.c:2832 config.c:3085
#, c-format
msgid "fstat on %s failed"
msgstr "fstat auf %s fehlgeschlagen"
-#: config.c:2870
+#: config.c:2843
#, c-format
msgid "unable to mmap '%s'"
msgstr "mmap für '%s' fehlgeschlagen"
-#: config.c:2879 config.c:3117
+#: config.c:2852 config.c:3090
#, c-format
msgid "chmod on %s failed"
msgstr "chmod auf %s fehlgeschlagen"
-#: config.c:2964 config.c:3214
+#: config.c:2937 config.c:3187
#, c-format
msgid "could not write config file %s"
msgstr "Konnte Konfigurationsdatei %s nicht schreiben."
-#: config.c:2998
+#: config.c:2971
#, c-format
msgid "could not set '%s' to '%s'"
msgstr "Konnte '%s' nicht zu '%s' setzen."
-#: config.c:3000 builtin/remote.c:782
+#: config.c:2973 builtin/remote.c:782
#, c-format
msgid "could not unset '%s'"
msgstr "Konnte '%s' nicht aufheben."
-#: config.c:3090
+#: config.c:3063
#, c-format
msgid "invalid section name: %s"
msgstr "Ungültiger Sektionsname: %s"
-#: config.c:3257
+#: config.c:3230
#, c-format
msgid "missing value for '%s'"
msgstr "Fehlender Wert für '%s'"
@@ -2148,7 +2158,7 @@ msgstr "Fehler bei der Suche nach %s (%s)"
msgid "unknown port %s"
msgstr "Unbekannter Port %s"
-#: connect.c:845 connect.c:1171
+#: connect.c:845 connect.c:1175
#, c-format
msgid "strange hostname '%s' blocked"
msgstr "Merkwürdigen Hostnamen '%s' blockiert."
@@ -2163,59 +2173,59 @@ msgstr "Merkwürdigen Port '%s' blockiert."
msgid "cannot start proxy %s"
msgstr "Kann Proxy %s nicht starten."
-#: connect.c:924
+#: connect.c:928
msgid "no path specified; see 'git help pull' for valid url syntax"
msgstr ""
"Kein Pfad angegeben; siehe 'git help pull' für eine gültige URL-Syntax."
-#: connect.c:1119
+#: connect.c:1123
msgid "ssh variant 'simple' does not support -4"
msgstr "SSH-Variante 'simple' unterstützt kein -4."
-#: connect.c:1131
+#: connect.c:1135
msgid "ssh variant 'simple' does not support -6"
msgstr "SSH-Variante 'simple' unterstützt kein -6."
-#: connect.c:1148
+#: connect.c:1152
msgid "ssh variant 'simple' does not support setting port"
msgstr "SSH-Variante 'simple' unterstützt nicht das Setzen eines Ports."
-#: connect.c:1260
+#: connect.c:1264
#, c-format
msgid "strange pathname '%s' blocked"
msgstr "Merkwürdigen Pfadnamen '%s' blockiert."
-#: connect.c:1307
+#: connect.c:1311
msgid "unable to fork"
msgstr "Kann Prozess nicht starten."
-#: connected.c:86 builtin/fsck.c:221 builtin/prune.c:43
+#: connected.c:88 builtin/fsck.c:221 builtin/prune.c:43
msgid "Checking connectivity"
msgstr "Prüfe Konnektivität"
-#: connected.c:98
+#: connected.c:100
msgid "Could not run 'git rev-list'"
msgstr "Konnte 'git rev-list' nicht ausführen"
-#: connected.c:118
+#: connected.c:120
msgid "failed write to rev-list"
msgstr "Fehler beim Schreiben nach rev-list"
-#: connected.c:125
+#: connected.c:127
msgid "failed to close rev-list's stdin"
msgstr "Fehler beim Schließen von rev-list's Standard-Eingabe"
-#: convert.c:193
+#: convert.c:194
#, c-format
msgid "illegal crlf_action %d"
msgstr "Unerlaubte crlf_action %d"
-#: convert.c:206
+#: convert.c:207
#, c-format
msgid "CRLF would be replaced by LF in %s"
msgstr "CRLF würde in %s durch LF ersetzt werden."
-#: convert.c:208
+#: convert.c:209
#, c-format
msgid ""
"CRLF will be replaced by LF in %s.\n"
@@ -2225,12 +2235,12 @@ msgstr ""
"Die Datei wird ihre ursprünglichen Zeilenenden im Arbeitsverzeichnis "
"behalten."
-#: convert.c:216
+#: convert.c:217
#, c-format
msgid "LF would be replaced by CRLF in %s"
msgstr "LF würde in %s durch CRLF ersetzt werden."
-#: convert.c:218
+#: convert.c:219
#, c-format
msgid ""
"LF will be replaced by CRLF in %s.\n"
@@ -2240,12 +2250,12 @@ msgstr ""
"Die Datei wird ihre ursprünglichen Zeilenenden im Arbeitsverzeichnis "
"behalten."
-#: convert.c:279
+#: convert.c:280
#, c-format
msgid "BOM is prohibited in '%s' if encoded as %s"
msgstr "BOM ist in '%s' unzulässig, wenn als %s codiert."
-#: convert.c:286
+#: convert.c:287
#, c-format
msgid ""
"The file '%s' contains a byte order mark (BOM). Please use UTF-%s as working-"
@@ -2254,12 +2264,12 @@ msgstr ""
"Die Datei '%s' enthält ein Byte-Order-Mark (BOM). Bitte benutzen Sie UTF-%s\n"
"als Codierung im Arbeitsverzeichnis."
-#: convert.c:304
+#: convert.c:305
#, c-format
msgid "BOM is required in '%s' if encoded as %s"
msgstr "BOM ist erforderlich in '%s', wenn als %s codiert."
-#: convert.c:306
+#: convert.c:307
#, c-format
msgid ""
"The file '%s' is missing a byte order mark (BOM). Please use UTF-%sBE or UTF-"
@@ -2269,50 +2279,50 @@ msgstr ""
"oder UTF-%sLE (abhängig von der Byte-Reihenfolge) als Codierung im\n"
"Arbeitsverzeichnis."
-#: convert.c:424 convert.c:495
+#: convert.c:425 convert.c:496
#, c-format
msgid "failed to encode '%s' from %s to %s"
msgstr "Fehler beim Codieren von '%s' von %s nach %s."
-#: convert.c:467
+#: convert.c:468
#, c-format
msgid "encoding '%s' from %s to %s and back is not the same"
msgstr "Die Codierung '%s' von %s nach %s und zurück ist nicht dasselbe."
-#: convert.c:673
+#: convert.c:674
#, c-format
msgid "cannot fork to run external filter '%s'"
msgstr "Kann externen Filter '%s' nicht starten."
-#: convert.c:693
+#: convert.c:694
#, c-format
msgid "cannot feed the input to external filter '%s'"
msgstr "Kann Eingaben nicht an externen Filter '%s' übergeben."
-#: convert.c:700
+#: convert.c:701
#, c-format
msgid "external filter '%s' failed %d"
msgstr "Externer Filter '%s' fehlgeschlagen %d"
-#: convert.c:735 convert.c:738
+#: convert.c:736 convert.c:739
#, c-format
msgid "read from external filter '%s' failed"
msgstr "Lesen von externem Filter '%s' fehlgeschlagen."
-#: convert.c:741 convert.c:796
+#: convert.c:742 convert.c:797
#, c-format
msgid "external filter '%s' failed"
msgstr "Externer Filter '%s' fehlgeschlagen."
-#: convert.c:844
+#: convert.c:845
msgid "unexpected filter type"
msgstr "Unerwartete Filterart."
-#: convert.c:855
+#: convert.c:856
msgid "path name too long for external filter"
msgstr "Pfadname zu lang für externen Filter."
-#: convert.c:929
+#: convert.c:930
#, c-format
msgid ""
"external filter '%s' is not available anymore although not all paths have "
@@ -2320,67 +2330,67 @@ msgid ""
msgstr ""
"Externer Filter '%s' nicht mehr verfügbar. Nicht alle Pfade wurden gefiltert."
-#: convert.c:1228
+#: convert.c:1229
msgid "true/false are no valid working-tree-encodings"
msgstr "true/false sind keine gültigen Codierungen im Arbeitsverzeichnis."
-#: convert.c:1398 convert.c:1432
+#: convert.c:1417 convert.c:1451
#, c-format
msgid "%s: clean filter '%s' failed"
msgstr "%s: clean-Filter '%s' fehlgeschlagen."
-#: convert.c:1476
+#: convert.c:1495
#, c-format
msgid "%s: smudge filter %s failed"
msgstr "%s: smudge-Filter '%s' fehlgeschlagen."
-#: date.c:137
+#: date.c:138
msgid "in the future"
msgstr "in der Zukunft"
-#: date.c:143
+#: date.c:144
#, c-format
msgid "%<PRIuMAX> second ago"
msgid_plural "%<PRIuMAX> seconds ago"
msgstr[0] "vor %<PRIuMAX> Sekunde"
msgstr[1] "vor %<PRIuMAX> Sekunden"
-#: date.c:150
+#: date.c:151
#, c-format
msgid "%<PRIuMAX> minute ago"
msgid_plural "%<PRIuMAX> minutes ago"
msgstr[0] "vor %<PRIuMAX> Minute"
msgstr[1] "vor %<PRIuMAX> Minuten"
-#: date.c:157
+#: date.c:158
#, c-format
msgid "%<PRIuMAX> hour ago"
msgid_plural "%<PRIuMAX> hours ago"
msgstr[0] "vor %<PRIuMAX> Stunde"
msgstr[1] "vor %<PRIuMAX> Stunden"
-#: date.c:164
+#: date.c:165
#, c-format
msgid "%<PRIuMAX> day ago"
msgid_plural "%<PRIuMAX> days ago"
msgstr[0] "vor %<PRIuMAX> Tag"
msgstr[1] "vor %<PRIuMAX> Tagen"
-#: date.c:170
+#: date.c:171
#, c-format
msgid "%<PRIuMAX> week ago"
msgid_plural "%<PRIuMAX> weeks ago"
msgstr[0] "vor %<PRIuMAX> Woche"
msgstr[1] "vor %<PRIuMAX> Wochen"
-#: date.c:177
+#: date.c:178
#, c-format
msgid "%<PRIuMAX> month ago"
msgid_plural "%<PRIuMAX> months ago"
msgstr[0] "vor %<PRIuMAX> Monat"
msgstr[1] "vor %<PRIuMAX> Monaten"
-#: date.c:188
+#: date.c:189
#, c-format
msgid "%<PRIuMAX> year"
msgid_plural "%<PRIuMAX> years"
@@ -2388,14 +2398,14 @@ msgstr[0] "vor %<PRIuMAX> Jahr"
msgstr[1] "vor %<PRIuMAX> Jahren"
#. TRANSLATORS: "%s" is "<n> years"
-#: date.c:191
+#: date.c:192
#, 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:196 date.c:201
+#: date.c:197 date.c:202
#, c-format
msgid "%<PRIuMAX> year ago"
msgid_plural "%<PRIuMAX> years ago"
@@ -2434,7 +2444,7 @@ msgstr "%d Delta-Islands markiert, fertig.\n"
msgid "failed to read orderfile '%s'"
msgstr "Fehler beim Lesen der Reihenfolgedatei '%s'."
-#: diffcore-rename.c:544
+#: diffcore-rename.c:543
msgid "Performing inexact rename detection"
msgstr "Führe Erkennung für ungenaue Umbenennung aus"
@@ -2500,36 +2510,36 @@ msgstr ""
"Fehler in 'diff.dirstat' Konfigurationsvariable gefunden:\n"
"%s"
-#: diff.c:4215
+#: diff.c:4218
#, c-format
msgid "external diff died, stopping at %s"
msgstr "externes Diff-Programm unerwartet beendet, angehalten bei %s"
-#: diff.c:4560
+#: diff.c:4563
msgid "--name-only, --name-status, --check and -s are mutually exclusive"
msgstr ""
"--name-only, --name-status, --check und -s schließen sich gegenseitig aus"
-#: diff.c:4563
+#: diff.c:4566
msgid "-G, -S and --find-object are mutually exclusive"
msgstr "-G, -S und --find-object schließen sich gegenseitig aus"
-#: diff.c:4641
+#: diff.c:4644
msgid "--follow requires exactly one pathspec"
msgstr "--follow erfordert genau eine Pfadspezifikation"
-#: diff.c:4689
+#: diff.c:4692
#, c-format
msgid "invalid --stat value: %s"
msgstr "Ungültiger --stat Wert: %s"
-#: diff.c:4694 diff.c:4699 diff.c:4704 diff.c:4709 diff.c:5222
+#: diff.c:4697 diff.c:4702 diff.c:4707 diff.c:4712 diff.c:5225
#: parse-options.c:199 parse-options.c:203
#, c-format
msgid "%s expects a numerical value"
msgstr "%s erwartet einen numerischen Wert."
-#: diff.c:4726
+#: diff.c:4729
#, c-format
msgid ""
"Failed to parse --dirstat/-X option parameter:\n"
@@ -2538,42 +2548,42 @@ msgstr ""
"Fehler beim Parsen des --dirstat/-X Optionsparameters:\n"
"%s"
-#: diff.c:4811
+#: diff.c:4814
#, c-format
msgid "unknown change class '%c' in --diff-filter=%s"
msgstr "Unbekannte Änderungsklasse '%c' in --diff-filter=%s"
-#: diff.c:4835
+#: diff.c:4838
#, c-format
msgid "unknown value after ws-error-highlight=%.*s"
msgstr "Unbekannter Wert nach ws-error-highlight=%.*s"
-#: diff.c:4849
+#: diff.c:4852
#, c-format
msgid "unable to resolve '%s'"
msgstr "konnte '%s' nicht auflösen"
-#: diff.c:4899 diff.c:4905
+#: diff.c:4902 diff.c:4908
#, c-format
msgid "%s expects <n>/<m> form"
msgstr "%s erwartet die Form <n>/<m>"
-#: diff.c:4917
+#: diff.c:4920
#, c-format
msgid "%s expects a character, got '%s'"
msgstr "%s erwartet ein Zeichen, '%s' bekommen"
-#: diff.c:4938
+#: diff.c:4941
#, c-format
msgid "bad --color-moved argument: %s"
msgstr "Ungültiges --color-moved Argument: %s"
-#: diff.c:4957
+#: diff.c:4960
#, c-format
msgid "invalid mode '%s' in --color-moved-ws"
msgstr "Ungültiger Modus '%s' in --color-moved-ws"
-#: diff.c:4997
+#: diff.c:5000
msgid ""
"option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and "
"\"histogram\""
@@ -2581,152 +2591,152 @@ msgstr ""
"Option diff-algorithm akzeptiert: \"myers\", \"minimal\", \"patience\" and "
"\"histogram\""
-#: diff.c:5033 diff.c:5053
+#: diff.c:5036 diff.c:5056
#, c-format
msgid "invalid argument to %s"
msgstr "Ungültiges Argument für %s"
-#: diff.c:5191
+#: diff.c:5194
#, c-format
msgid "failed to parse --submodule option parameter: '%s'"
msgstr "Fehler beim Parsen des --submodule Optionsparameters: '%s'"
-#: diff.c:5247
+#: diff.c:5250
#, c-format
msgid "bad --word-diff argument: %s"
msgstr "Ungültiges --word-diff Argument: %s"
-#: diff.c:5270
+#: diff.c:5273
msgid "Diff output format options"
msgstr "Diff-Optionen zu Ausgabeformaten"
-#: diff.c:5272 diff.c:5278
+#: diff.c:5275 diff.c:5281
msgid "generate patch"
msgstr "Erzeuge Patch"
-#: diff.c:5275 builtin/log.c:172
+#: diff.c:5278 builtin/log.c:172
msgid "suppress diff output"
msgstr "Ausgabe der Unterschiede unterdrücken"
-#: diff.c:5280 diff.c:5394 diff.c:5401
+#: diff.c:5283 diff.c:5397 diff.c:5404
msgid "<n>"
msgstr "<n>"
-#: diff.c:5281 diff.c:5284
+#: diff.c:5284 diff.c:5287
msgid "generate diffs with <n> lines context"
msgstr "Erstelle Unterschiede mit <n> Zeilen des Kontextes"
-#: diff.c:5286
+#: diff.c:5289
msgid "generate the diff in raw format"
msgstr "Erstelle Unterschiede im Rohformat"
-#: diff.c:5289
+#: diff.c:5292
msgid "synonym for '-p --raw'"
msgstr "Synonym für '-p --raw'"
-#: diff.c:5293
+#: diff.c:5296
msgid "synonym for '-p --stat'"
msgstr "Synonym für '-p --stat'"
-#: diff.c:5297
+#: diff.c:5300
msgid "machine friendly --stat"
msgstr "maschinenlesbare Ausgabe von --stat"
-#: diff.c:5300
+#: diff.c:5303
msgid "output only the last line of --stat"
msgstr "nur die letzte Zeile von --stat ausgeben"
-#: diff.c:5302 diff.c:5310
+#: diff.c:5305 diff.c:5313
msgid "<param1,param2>..."
msgstr "<Parameter1,Parameter2>..."
-#: diff.c:5303
+#: diff.c:5306
msgid ""
"output the distribution of relative amount of changes for each sub-directory"
msgstr ""
"Gebe die Verteilung des relativen Umfangs der Änderungen für jedes "
"Unterverzeichnis aus"
-#: diff.c:5307
+#: diff.c:5310
msgid "synonym for --dirstat=cumulative"
msgstr "Synonym für --dirstat=cumulative"
-#: diff.c:5311
+#: diff.c:5314
msgid "synonym for --dirstat=files,param1,param2..."
msgstr "Synonym für --dirstat=files,Parameter1,Parameter2..."
-#: diff.c:5315
+#: diff.c:5318
msgid "warn if changes introduce conflict markers or whitespace errors"
msgstr ""
"Warnen, wenn Änderungen Konfliktmarker oder Whitespace-Fehler einbringen"
-#: diff.c:5318
+#: diff.c:5321
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:5321
+#: diff.c:5324
msgid "show only names of changed files"
msgstr "nur Dateinamen der geänderten Dateien anzeigen"
-#: diff.c:5324
+#: diff.c:5327
msgid "show only names and status of changed files"
msgstr "nur Dateinamen und Status der geänderten Dateien anzeigen"
-#: diff.c:5326
+#: diff.c:5329
msgid "<width>[,<name-width>[,<count>]]"
msgstr "<Breite>[,<Namens-Breite>[,<Anzahl>]]"
-#: diff.c:5327
+#: diff.c:5330
msgid "generate diffstat"
msgstr "Generiere Zusammenfassung der Unterschiede"
-#: diff.c:5329 diff.c:5332 diff.c:5335
+#: diff.c:5332 diff.c:5335 diff.c:5338
msgid "<width>"
msgstr "<Breite>"
-#: diff.c:5330
+#: diff.c:5333
msgid "generate diffstat with a given width"
msgstr "Erzeuge Zusammenfassung der Unterschiede mit gegebener Breite"
-#: diff.c:5333
+#: diff.c:5336
msgid "generate diffstat with a given name width"
msgstr "Erzeuge Zusammenfassung der Unterschiede mit gegebener Namens-Breite"
-#: diff.c:5336
+#: diff.c:5339
msgid "generate diffstat with a given graph width"
msgstr "Erzeuge Zusammenfassung der Unterschiede mit gegebener Graph-Breite"
-#: diff.c:5338
+#: diff.c:5341
msgid "<count>"
msgstr "<Anzahl>"
-#: diff.c:5339
+#: diff.c:5342
msgid "generate diffstat with limited lines"
msgstr "Erzeuge Zusammenfassung der Unterschiede mit begrenzten Zeilen"
-#: diff.c:5342
+#: diff.c:5345
msgid "generate compact summary in diffstat"
msgstr "Erzeuge kompakte Zusammenstellung in Zusammenfassung der Unterschiede"
-#: diff.c:5345
+#: diff.c:5348
msgid "output a binary diff that can be applied"
msgstr "Gebe eine binäre Differenz aus, dass angewendet werden kann"
-#: diff.c:5348
+#: diff.c:5351
msgid "show full pre- and post-image object names on the \"index\" lines"
msgstr "Zeige vollständige Objekt-Namen in den \"index\"-Zeilen"
-#: diff.c:5350
+#: diff.c:5353
msgid "show colored diff"
msgstr "Zeige farbige Unterschiede"
-#: diff.c:5351
+#: diff.c:5354
msgid "<kind>"
msgstr "<Art>"
-#: diff.c:5352
+#: diff.c:5355
msgid ""
"highlight whitespace errors in the 'context', 'old' or 'new' lines in the "
"diff"
@@ -2734,7 +2744,7 @@ msgstr ""
"Hebe Whitespace-Fehler in den Zeilen 'context', 'old' oder 'new' bei den "
"Unterschieden hervor"
-#: diff.c:5355
+#: diff.c:5358
msgid ""
"do not munge pathnames and use NULs as output field terminators in --raw or "
"--numstat"
@@ -2742,91 +2752,91 @@ msgstr ""
"Verschleiere nicht die Pfadnamen und nutze NUL-Zeichen als Schlusszeichen in "
"Ausgabefeldern bei --raw oder --numstat"
-#: diff.c:5358 diff.c:5361 diff.c:5364 diff.c:5470
+#: diff.c:5361 diff.c:5364 diff.c:5367 diff.c:5473
msgid "<prefix>"
msgstr "<Präfix>"
-#: diff.c:5359
+#: diff.c:5362
msgid "show the given source prefix instead of \"a/\""
msgstr "Zeige den gegebenen Quell-Präfix statt \"a/\""
-#: diff.c:5362
+#: diff.c:5365
msgid "show the given destination prefix instead of \"b/\""
msgstr "Zeige den gegebenen Ziel-Präfix statt \"b/\""
-#: diff.c:5365
+#: diff.c:5368
msgid "prepend an additional prefix to every line of output"
msgstr "Stelle einen zusätzlichen Präfix bei jeder Ausgabezeile voran"
-#: diff.c:5368
+#: diff.c:5371
msgid "do not show any source or destination prefix"
msgstr "Zeige keine Quell- oder Ziel-Präfixe an"
-#: diff.c:5371
+#: diff.c:5374
msgid "show context between diff hunks up to the specified number of lines"
msgstr ""
"Zeige Kontext zwischen Unterschied-Blöcken bis zur angegebenen Anzahl von "
"Zeilen."
-#: diff.c:5375 diff.c:5380 diff.c:5385
+#: diff.c:5378 diff.c:5383 diff.c:5388
msgid "<char>"
msgstr "<Zeichen>"
-#: diff.c:5376
+#: diff.c:5379
msgid "specify the character to indicate a new line instead of '+'"
msgstr "Das Zeichen festlegen, das eine neue Zeile kennzeichnet (statt '+')"
-#: diff.c:5381
+#: diff.c:5384
msgid "specify the character to indicate an old line instead of '-'"
msgstr "Das Zeichen festlegen, das eine alte Zeile kennzeichnet (statt '-')"
-#: diff.c:5386
+#: diff.c:5389
msgid "specify the character to indicate a context instead of ' '"
msgstr "Das Zeichen festlegen, das den Kontext kennzeichnet (statt ' ')"
-#: diff.c:5389
+#: diff.c:5392
msgid "Diff rename options"
msgstr "Diff-Optionen zur Umbenennung"
-#: diff.c:5390
+#: diff.c:5393
msgid "<n>[/<m>]"
msgstr "<n>[/<m>]"
-#: diff.c:5391
+#: diff.c:5394
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:5395
+#: diff.c:5398
msgid "detect renames"
msgstr "Umbenennungen erkennen"
-#: diff.c:5399
+#: diff.c:5402
msgid "omit the preimage for deletes"
msgstr "Preimage für Löschungen weglassen."
-#: diff.c:5402
+#: diff.c:5405
msgid "detect copies"
msgstr "Kopien erkennen"
-#: diff.c:5406
+#: diff.c:5409
msgid "use unmodified files as source to find copies"
msgstr "Nutze ungeänderte Dateien als Quelle zum Finden von Kopien"
-#: diff.c:5408
+#: diff.c:5411
msgid "disable rename detection"
msgstr "Erkennung von Umbenennungen deaktivieren"
-#: diff.c:5411
+#: diff.c:5414
msgid "use empty blobs as rename source"
msgstr "Nutze leere Blobs als Quelle von Umbennungen"
-#: diff.c:5413
+#: diff.c:5416
msgid "continue listing the history of a file beyond renames"
msgstr "Fortführen der Auflistung der Historie einer Datei nach Umbennung"
-#: diff.c:5416
+#: diff.c:5419
msgid ""
"prevent rename/copy detection if the number of rename/copy targets exceeds "
"given limit"
@@ -2834,159 +2844,159 @@ msgstr ""
"Verhindere die Erkennung von Umbennungen und Kopien, wenn die Anzahl der "
"Ziele für Umbennungen und Kopien das gegebene Limit überschreitet"
-#: diff.c:5418
+#: diff.c:5421
msgid "Diff algorithm options"
msgstr "Diff Algorithmus-Optionen"
-#: diff.c:5420
+#: diff.c:5423
msgid "produce the smallest possible diff"
msgstr "Erzeuge die kleinstmöglichen Änderungen"
-#: diff.c:5423
+#: diff.c:5426
msgid "ignore whitespace when comparing lines"
msgstr "Whitespace-Änderungen beim Vergleich von Zeilen ignorieren"
-#: diff.c:5426
+#: diff.c:5429
msgid "ignore changes in amount of whitespace"
msgstr "Änderungen bei der Anzahl von Whitespace ignorieren"
-#: diff.c:5429
+#: diff.c:5432
msgid "ignore changes in whitespace at EOL"
msgstr "Whitespace-Änderungen am Zeilenende ignorieren"
-#: diff.c:5432
+#: diff.c:5435
msgid "ignore carrier-return at the end of line"
msgstr "Ignoriere den Zeilenumbruch am Ende der Zeile"
-#: diff.c:5435
+#: diff.c:5438
msgid "ignore changes whose lines are all blank"
msgstr "Ignoriere Änderungen in leeren Zeilen"
-#: diff.c:5438
+#: diff.c:5441
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:5441
+#: diff.c:5444
msgid "generate diff using the \"patience diff\" algorithm"
msgstr "Erzeuge Änderungen durch Nutzung des Algorithmus \"Patience Diff\""
-#: diff.c:5445
+#: diff.c:5448
msgid "generate diff using the \"histogram diff\" algorithm"
msgstr "Erzeuge Änderungen durch Nutzung des Algorithmus \"Histogram Diff\""
-#: diff.c:5447
+#: diff.c:5450
msgid "<algorithm>"
msgstr "<Algorithmus>"
-#: diff.c:5448
+#: diff.c:5451
msgid "choose a diff algorithm"
msgstr "Ein Algorithmus für Änderungen wählen"
-#: diff.c:5450
+#: diff.c:5453
msgid "<text>"
msgstr "<Text>"
-#: diff.c:5451
+#: diff.c:5454
msgid "generate diff using the \"anchored diff\" algorithm"
msgstr "Erzeuge Änderungen durch Nutzung des Algorithmus \"Anchored Diff\""
-#: diff.c:5453 diff.c:5462 diff.c:5465
+#: diff.c:5456 diff.c:5465 diff.c:5468
msgid "<mode>"
msgstr "<Modus>"
-#: diff.c:5454
+#: diff.c:5457
msgid "show word diff, using <mode> to delimit changed words"
msgstr "Zeige Wort-Änderungen, nutze <Modus>, um Wörter abzugrenzen"
-#: diff.c:5456 diff.c:5459 diff.c:5504
+#: diff.c:5459 diff.c:5462 diff.c:5507
msgid "<regex>"
msgstr "<Regex>"
-#: diff.c:5457
+#: diff.c:5460
msgid "use <regex> to decide what a word is"
msgstr "Nutze <Regex>, um zu entscheiden, was ein Wort ist"
-#: diff.c:5460
+#: diff.c:5463
msgid "equivalent to --word-diff=color --word-diff-regex=<regex>"
msgstr "Entsprechend wie --word-diff=color --word-diff-regex=<Regex>"
-#: diff.c:5463
+#: diff.c:5466
msgid "moved lines of code are colored differently"
msgstr "Verschobene Codezeilen sind andersfarbig"
-#: diff.c:5466
+#: diff.c:5469
msgid "how white spaces are ignored in --color-moved"
msgstr "Wie Whitespaces in --color-moved ignoriert werden"
-#: diff.c:5469
+#: diff.c:5472
msgid "Other diff options"
msgstr "Andere Diff-Optionen"
-#: diff.c:5471
+#: diff.c:5474
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:5475
+#: diff.c:5478
msgid "treat all files as text"
msgstr "alle Dateien als Text behandeln"
-#: diff.c:5477
+#: diff.c:5480
msgid "swap two inputs, reverse the diff"
msgstr "Vertausche die beiden Eingaben und drehe die Änderungen um"
-#: diff.c:5479
+#: diff.c:5482
msgid "exit with 1 if there were differences, 0 otherwise"
msgstr ""
"Beende mit Exit-Status 1, wenn Änderungen vorhanden sind, andernfalls mit 0"
-#: diff.c:5481
+#: diff.c:5484
msgid "disable all output of the program"
msgstr "Keine Ausgaben vom Programm"
-#: diff.c:5483
+#: diff.c:5486
msgid "allow an external diff helper to be executed"
msgstr "Erlaube die Ausführung eines externes Programms für Änderungen"
-#: diff.c:5485
+#: diff.c:5488
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:5487
+#: diff.c:5490
msgid "<when>"
msgstr "<wann>"
-#: diff.c:5488
+#: diff.c:5491
msgid "ignore changes to submodules in the diff generation"
msgstr ""
"Änderungen in Submodulen während der Erstellung der Unterschiede ignorieren"
-#: diff.c:5491
+#: diff.c:5494
msgid "<format>"
msgstr "<Format>"
-#: diff.c:5492
+#: diff.c:5495
msgid "specify how differences in submodules are shown"
msgstr "Angeben, wie Unterschiede in Submodulen gezeigt werden"
-#: diff.c:5496
+#: diff.c:5499
msgid "hide 'git add -N' entries from the index"
msgstr "verstecke 'git add -N' Einträge vom Index"
-#: diff.c:5499
+#: diff.c:5502
msgid "treat 'git add -N' entries as real in the index"
msgstr "Behandle 'git add -N' Einträge im Index als echt"
-#: diff.c:5501
+#: diff.c:5504
msgid "<string>"
msgstr "<Zeichenkette>"
-#: diff.c:5502
+#: diff.c:5505
msgid ""
"look for differences that change the number of occurrences of the specified "
"string"
@@ -2994,7 +3004,7 @@ msgstr ""
"Suche nach Unterschieden, welche die Anzahl des Vorkommens der angegebenen "
"Zeichenkette verändern"
-#: diff.c:5505
+#: diff.c:5508
msgid ""
"look for differences that change the number of occurrences of the specified "
"regex"
@@ -3002,25 +3012,25 @@ msgstr ""
"Suche nach Unterschieden, welche die Anzahl des Vorkommens des angegebenen "
"regulären Ausdrucks verändern"
-#: diff.c:5508
+#: diff.c:5511
msgid "show all changes in the changeset with -S or -G"
msgstr "zeige alle Änderungen im Changeset mit -S oder -G"
-#: diff.c:5511
+#: diff.c:5514
msgid "treat <string> in -S as extended POSIX regular expression"
msgstr ""
"behandle <Zeichenkette> bei -S als erweiterten POSIX regulären Ausdruck"
-#: diff.c:5514
+#: diff.c:5517
msgid "control the order in which files appear in the output"
msgstr ""
"kontrolliere die Reihenfolge, in der die Dateien in der Ausgabe erscheinen"
-#: diff.c:5515
+#: diff.c:5518
msgid "<object-id>"
msgstr "<Objekt-ID>"
-#: diff.c:5516
+#: diff.c:5519
msgid ""
"look for differences that change the number of occurrences of the specified "
"object"
@@ -3028,33 +3038,33 @@ msgstr ""
"Suche nach Unterschieden, welche die Anzahl des Vorkommens des angegebenen "
"Objektes verändern"
-#: diff.c:5518
+#: diff.c:5521
msgid "[(A|C|D|M|R|T|U|X|B)...[*]]"
msgstr "[(A|C|D|M|R|T|U|X|B)...[*]]"
-#: diff.c:5519
+#: diff.c:5522
msgid "select files by diff type"
msgstr "Wähle Dateien anhand der Art der Änderung"
-#: diff.c:5521
+#: diff.c:5524
msgid "<file>"
msgstr "<Datei>"
-#: diff.c:5522
+#: diff.c:5525
msgid "Output to a specific file"
msgstr "Ausgabe zu einer bestimmten Datei"
-#: diff.c:6177
+#: diff.c:6180
msgid "inexact rename detection was skipped due to too many files."
msgstr ""
"Ungenaue Erkennung für Umbenennungen wurde aufgrund zu vieler Dateien\n"
"übersprungen."
-#: diff.c:6180
+#: diff.c:6183
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:6183
+#: diff.c:6186
#, c-format
msgid ""
"you may want to set your %s variable to at least %d and retry the command."
@@ -3062,43 +3072,43 @@ msgstr ""
"Sie könnten die Variable %s auf mindestens %d setzen und den Befehl\n"
"erneut versuchen."
-#: dir.c:537
+#: dir.c:549
#, c-format
msgid "pathspec '%s' did not match any file(s) known to git"
msgstr ""
"Pfadspezifikation '%s' stimmt mit keinen git-bekannten Dateien überein."
-#: dir.c:926
+#: dir.c:938
#, c-format
msgid "cannot use %s as an exclude file"
msgstr "Kann %s nicht als exclude-Filter benutzen."
-#: dir.c:1843
+#: dir.c:1877
#, c-format
msgid "could not open directory '%s'"
msgstr "Konnte Verzeichnis '%s' nicht öffnen."
-#: dir.c:2085
+#: dir.c:2128
msgid "failed to get kernel name and information"
msgstr "Fehler beim Sammeln von Namen und Informationen zum Kernel"
-#: dir.c:2209
+#: dir.c:2252
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:3013
+#: dir.c:3056
#, c-format
msgid "index file corrupt in repo %s"
msgstr "Index-Datei in Repository %s beschädigt."
-#: dir.c:3058 dir.c:3063
+#: dir.c:3101 dir.c:3106
#, c-format
msgid "could not create directories for %s"
msgstr "Konnte Verzeichnisse für '%s' nicht erstellen."
-#: dir.c:3092
+#: dir.c:3135
#, c-format
msgid "could not migrate git directory from '%s' to '%s'"
msgstr "Konnte Git-Verzeichnis nicht von '%s' nach '%s' migrieren."
@@ -3117,12 +3127,12 @@ msgstr "Filtere Inhalt"
msgid "could not stat file '%s'"
msgstr "Konnte Datei '%s' nicht lesen."
-#: environment.c:150
+#: environment.c:148
#, c-format
msgid "bad git namespace path \"%s\""
msgstr "Ungültiger Git-Namespace-Pfad \"%s\""
-#: environment.c:332
+#: environment.c:330
#, c-format
msgid "could not set GIT_DIR to '%s'"
msgstr "Konnte GIT_DIR nicht zu '%s' setzen."
@@ -3132,158 +3142,154 @@ msgstr "Konnte GIT_DIR nicht zu '%s' setzen."
msgid "too many args to run %s"
msgstr "Zu viele Argumente angegeben, um %s auszuführen."
-#: fetch-object.c:17
-msgid "Remote with no URL"
-msgstr "Remote-Repository ohne URL"
-
-#: fetch-pack.c:151
+#: fetch-pack.c:150
msgid "git fetch-pack: expected shallow list"
msgstr "git fetch-pack: erwartete shallow-Liste"
-#: fetch-pack.c:154
+#: fetch-pack.c:153
msgid "git fetch-pack: expected a flush packet after shallow list"
msgstr "git fetch-pack: erwartete ein Flush-Paket nach der shallow-Liste"
-#: fetch-pack.c:165
+#: fetch-pack.c:164
msgid "git fetch-pack: expected ACK/NAK, got a flush packet"
msgstr "git fetch-pack: ACK/NAK erwartet, Flush-Paket bekommen"
-#: fetch-pack.c:185
+#: fetch-pack.c:184
#, c-format
msgid "git fetch-pack: expected ACK/NAK, got '%s'"
msgstr "git fetch-pack: ACK/NAK erwartet, '%s' bekommen"
-#: fetch-pack.c:196
+#: fetch-pack.c:195
msgid "unable to write to remote"
msgstr "konnte nicht zum Remote schreiben"
-#: fetch-pack.c:258
+#: fetch-pack.c:257
msgid "--stateless-rpc requires multi_ack_detailed"
msgstr "--stateless-rpc benötigt multi_ack_detailed"
-#: fetch-pack.c:360 fetch-pack.c:1284
+#: fetch-pack.c:356 fetch-pack.c:1280
#, c-format
msgid "invalid shallow line: %s"
msgstr "Ungültige shallow-Zeile: %s"
-#: fetch-pack.c:366 fetch-pack.c:1290
+#: fetch-pack.c:362 fetch-pack.c:1286
#, c-format
msgid "invalid unshallow line: %s"
msgstr "Ungültige unshallow-Zeile: %s"
-#: fetch-pack.c:368 fetch-pack.c:1292
+#: fetch-pack.c:364 fetch-pack.c:1288
#, c-format
msgid "object not found: %s"
msgstr "Objekt nicht gefunden: %s"
-#: fetch-pack.c:371 fetch-pack.c:1295
+#: fetch-pack.c:367 fetch-pack.c:1291
#, c-format
msgid "error in object: %s"
msgstr "Fehler in Objekt: %s"
-#: fetch-pack.c:373 fetch-pack.c:1297
+#: fetch-pack.c:369 fetch-pack.c:1293
#, c-format
msgid "no shallow found: %s"
msgstr "Kein shallow-Objekt gefunden: %s"
-#: fetch-pack.c:376 fetch-pack.c:1301
+#: fetch-pack.c:372 fetch-pack.c:1297
#, c-format
msgid "expected shallow/unshallow, got %s"
msgstr "shallow/unshallow erwartet, %s bekommen"
-#: fetch-pack.c:417
+#: fetch-pack.c:414
#, c-format
msgid "got %s %d %s"
msgstr "%s %d %s bekommen"
-#: fetch-pack.c:434
+#: fetch-pack.c:431
#, c-format
msgid "invalid commit %s"
msgstr "Ungültiger Commit %s"
-#: fetch-pack.c:465
+#: fetch-pack.c:462
msgid "giving up"
msgstr "Gebe auf"
-#: fetch-pack.c:477 progress.c:277
+#: fetch-pack.c:475 progress.c:312
msgid "done"
msgstr "Fertig"
-#: fetch-pack.c:489
+#: fetch-pack.c:487
#, c-format
msgid "got %s (%d) %s"
msgstr "%s (%d) %s bekommen"
-#: fetch-pack.c:535
+#: fetch-pack.c:533
#, c-format
msgid "Marking %s as complete"
msgstr "Markiere %s als vollständig"
-#: fetch-pack.c:744
+#: fetch-pack.c:742
#, c-format
msgid "already have %s (%s)"
msgstr "habe %s (%s) bereits"
-#: fetch-pack.c:783
+#: fetch-pack.c:781
msgid "fetch-pack: unable to fork off sideband demultiplexer"
msgstr "fetch-pack: Fehler beim Starten des sideband demultiplexer"
-#: fetch-pack.c:791
+#: fetch-pack.c:789
msgid "protocol error: bad pack header"
msgstr "Protokollfehler: ungültiger Pack-Header"
-#: fetch-pack.c:859
+#: fetch-pack.c:857
#, c-format
msgid "fetch-pack: unable to fork off %s"
msgstr "fetch-pack: konnte %s nicht starten"
-#: fetch-pack.c:875
+#: fetch-pack.c:873
#, c-format
msgid "%s failed"
msgstr "%s fehlgeschlagen"
-#: fetch-pack.c:877
+#: fetch-pack.c:875
msgid "error in sideband demultiplexer"
msgstr "Fehler in sideband demultiplexer"
-#: fetch-pack.c:908
+#: fetch-pack.c:907
#, c-format
msgid "Server version is %.*s"
msgstr "Server-Version ist %.*s"
-#: fetch-pack.c:913 fetch-pack.c:919 fetch-pack.c:922 fetch-pack.c:928
-#: fetch-pack.c:932 fetch-pack.c:936 fetch-pack.c:940 fetch-pack.c:944
-#: fetch-pack.c:948 fetch-pack.c:952 fetch-pack.c:956 fetch-pack.c:960
-#: fetch-pack.c:966 fetch-pack.c:972 fetch-pack.c:977 fetch-pack.c:982
+#: fetch-pack.c:912 fetch-pack.c:918 fetch-pack.c:921 fetch-pack.c:927
+#: fetch-pack.c:931 fetch-pack.c:935 fetch-pack.c:939 fetch-pack.c:943
+#: fetch-pack.c:947 fetch-pack.c:951 fetch-pack.c:955 fetch-pack.c:959
+#: fetch-pack.c:965 fetch-pack.c:971 fetch-pack.c:976 fetch-pack.c:981
#, c-format
msgid "Server supports %s"
msgstr "Server unterstützt %s"
-#: fetch-pack.c:915
+#: fetch-pack.c:914
msgid "Server does not support shallow clients"
msgstr "Server unterstützt keine shallow-Clients"
-#: fetch-pack.c:975
+#: fetch-pack.c:974
msgid "Server does not support --shallow-since"
msgstr "Server unterstützt kein --shallow-since"
-#: fetch-pack.c:980
+#: fetch-pack.c:979
msgid "Server does not support --shallow-exclude"
msgstr "Server unterstützt kein --shallow-exclude"
-#: fetch-pack.c:984
+#: fetch-pack.c:983
msgid "Server does not support --deepen"
msgstr "Server unterstützt kein --deepen"
-#: fetch-pack.c:1001
+#: fetch-pack.c:1000
msgid "no common commits"
msgstr "keine gemeinsamen Commits"
-#: fetch-pack.c:1013 fetch-pack.c:1462
+#: fetch-pack.c:1012 fetch-pack.c:1468
msgid "git fetch-pack: fetch failed."
msgstr "git fetch-pack: Abholen fehlgeschlagen."
-#: fetch-pack.c:1151
+#: fetch-pack.c:1150
msgid "Server does not support shallow requests"
msgstr "Server unterstützt keine shallow-Anfragen."
@@ -3291,72 +3297,72 @@ msgstr "Server unterstützt keine shallow-Anfragen."
msgid "Server supports filter"
msgstr "Server unterstützt Filter"
-#: fetch-pack.c:1184
+#: fetch-pack.c:1180
msgid "unable to write request to remote"
msgstr "konnte Anfrage nicht zum Remote schreiben"
-#: fetch-pack.c:1202
+#: fetch-pack.c:1198
#, c-format
msgid "error reading section header '%s'"
msgstr "Fehler beim Lesen von Sektionskopf '%s'."
-#: fetch-pack.c:1208
+#: fetch-pack.c:1204
#, c-format
msgid "expected '%s', received '%s'"
msgstr "'%s' erwartet, '%s' empfangen"
-#: fetch-pack.c:1247
+#: fetch-pack.c:1243
#, c-format
msgid "unexpected acknowledgment line: '%s'"
msgstr "Unerwartete Acknowledgment-Zeile: '%s'"
-#: fetch-pack.c:1252
+#: fetch-pack.c:1248
#, c-format
msgid "error processing acks: %d"
msgstr "Fehler beim Verarbeiten von ACKS: %d"
-#: fetch-pack.c:1262
+#: fetch-pack.c:1258
msgid "expected packfile to be sent after 'ready'"
msgstr "Erwartete Versand einer Packdatei nach 'ready'."
-#: fetch-pack.c:1264
+#: fetch-pack.c:1260
msgid "expected no other sections to be sent after no 'ready'"
msgstr "Erwartete keinen Versand einer anderen Sektion ohne 'ready'."
-#: fetch-pack.c:1306
+#: fetch-pack.c:1302
#, c-format
msgid "error processing shallow info: %d"
msgstr "Fehler beim Verarbeiten von Shallow-Informationen: %d"
-#: fetch-pack.c:1353
+#: fetch-pack.c:1349
#, c-format
msgid "expected wanted-ref, got '%s'"
msgstr "wanted-ref erwartet, '%s' bekommen"
-#: fetch-pack.c:1358
+#: fetch-pack.c:1354
#, c-format
msgid "unexpected wanted-ref: '%s'"
msgstr "Unerwartetes wanted-ref: '%s'"
-#: fetch-pack.c:1363
+#: fetch-pack.c:1359
#, c-format
msgid "error processing wanted refs: %d"
msgstr "Fehler beim Verarbeiten von wanted-refs: %d"
-#: fetch-pack.c:1689
+#: fetch-pack.c:1693
msgid "no matching remote head"
msgstr "kein übereinstimmender Remote-Branch"
-#: fetch-pack.c:1712 builtin/clone.c:686
+#: fetch-pack.c:1716 builtin/clone.c:685
msgid "remote did not send all necessary objects"
msgstr "Remote-Repository hat nicht alle erforderlichen Objekte gesendet."
-#: fetch-pack.c:1739
+#: fetch-pack.c:1743
#, c-format
msgid "no such remote ref %s"
msgstr "keine solche Remote-Referenz %s"
-#: fetch-pack.c:1742
+#: fetch-pack.c:1746
#, c-format
msgid "Server does not allow request for unadvertised object %s"
msgstr "Der Server lehnt Anfrage nach nicht angebotenem Objekt %s ab."
@@ -3379,18 +3385,26 @@ msgstr "Fehler beim Schreiben der losgelösten Signatur nach '%s'"
msgid "ignore invalid color '%.*s' in log.graphColors"
msgstr "Ignoriere ungültige Farbe '%.*s' in log.graphColors"
-#: grep.c:2117
+#: grep.c:668
+msgid ""
+"given pattern contains NULL byte (via -f <file>). This is only supported "
+"with -P under PCRE v2"
+msgstr ""
+"Angegebenes Muster enthält NULL Byte (über -f <Datei>). Das wird nur mit -P"
+"unter PCRE v2 unterstützt."
+
+#: grep.c:2124
#, c-format
msgid "'%s': unable to read %s"
msgstr "'%s': konnte %s nicht lesen"
-#: grep.c:2134 setup.c:164 builtin/clone.c:409 builtin/diff.c:82
+#: grep.c:2141 setup.c:165 builtin/clone.c:408 builtin/diff.c:82
#: builtin/rm.c:135
#, c-format
msgid "failed to stat '%s'"
msgstr "Konnte '%s' nicht lesen"
-#: grep.c:2145
+#: grep.c:2152
#, c-format
msgid "'%s': short read"
msgstr "'%s': read() zu kurz"
@@ -3535,12 +3549,12 @@ msgstr[1] ""
msgid "git version [<options>]"
msgstr "git version [<Optionen>]"
-#: help.c:782
+#: help.c:783
#, c-format
msgid "%s: %s - %s"
msgstr "%s: %s - %s"
-#: help.c:786
+#: help.c:787
msgid ""
"\n"
"Did you mean this?"
@@ -3613,42 +3627,57 @@ msgstr "Name besteht nur aus nicht erlaubten Zeichen: %s"
msgid "invalid date format: %s"
msgstr "Ungültiges Datumsformat: %s"
-#: list-objects.c:129
+#: list-objects.c:127
#, 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:142
+#: list-objects.c:140
#, 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:378
+#: list-objects.c:375
#, c-format
msgid "unable to load root tree for commit %s"
msgstr "Konnte Root-Tree-Objekt für Commit %s nicht laden."
-#: list-objects-filter-options.c:36
-msgid "multiple filter-specs cannot be combined"
-msgstr "Mehrere filter-specs können nicht kombiniert werden."
+#: list-objects-filter.c:492
+#, c-format
+msgid "unable to access sparse blob in '%s'"
+msgstr "konnte nicht auf partiellen Blob '%s' zugreifen"
+
+#: list-objects-filter.c:495
+#, c-format
+msgid "unable to parse sparse filter data in %s"
+msgstr "Konnte partielle Filter-Daten in %s nicht parsen."
#: list-objects-filter-options.c:58
msgid "expected 'tree:<depth>'"
msgstr "'tree:<Tiefe>' erwartet"
-#: list-objects-filter-options.c:84
+#: list-objects-filter-options.c:73
msgid "sparse:path filters support has been dropped"
msgstr "Keine Unterstützung für sparse:path Filter mehr"
-#: list-objects-filter-options.c:94
+#: list-objects-filter-options.c:86
#, c-format
msgid "invalid filter-spec '%s'"
msgstr "Ungültige filter-spec '%s'"
-#: list-objects-filter-options.c:158
-msgid "cannot change partial clone promisor remote"
-msgstr "Kann Remote-Repository für partielles Klonen nicht ändern."
+#: list-objects-filter-options.c:102
+#, 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:144
+msgid "expected something after combine:"
+msgstr "erwartete etwas nach 'combine:'"
+
+#: list-objects-filter-options.c:226
+msgid "multiple filter-specs cannot be combined"
+msgstr "Mehrere filter-specs können nicht kombiniert werden."
#: lockfile.c:151
#, c-format
@@ -3679,118 +3708,114 @@ msgstr "Konnte '%s.lock' nicht erstellen: %s"
msgid "failed to read the cache"
msgstr "Lesen des Zwischenspeichers fehlgeschlagen"
-#: merge.c:107 rerere.c:720 builtin/am.c:1885 builtin/am.c:1919
-#: builtin/checkout.c:536 builtin/checkout.c:796 builtin/clone.c:786
+#: merge.c:107 rerere.c:720 builtin/am.c:1874 builtin/am.c:1908
+#: builtin/checkout.c:537 builtin/checkout.c:796 builtin/clone.c:785
#: builtin/stash.c:264
msgid "unable to write new index file"
msgstr "Konnte neue Index-Datei nicht schreiben."
-#: merge-recursive.c:322
+#: merge-recursive.c:367
msgid "(bad commit)\n"
msgstr "(ungültiger Commit)\n"
-#: merge-recursive.c:345
+#: merge-recursive.c:390
#, c-format
msgid "add_cacheinfo failed for path '%s'; merge aborting."
msgstr "add_cacheinfo für Pfad '%s' fehlgeschlagen; Merge wird abgebrochen."
-#: merge-recursive.c:354
+#: merge-recursive.c:399
#, c-format
msgid "add_cacheinfo failed to refresh for path '%s'; merge aborting."
msgstr ""
"add_cacheinfo zur Aktualisierung für Pfad '%s' fehlgeschlagen;\n"
"Merge wird abgebrochen."
-#: merge-recursive.c:437
-msgid "error building trees"
-msgstr "Fehler beim Erstellen der \"Tree\"-Objekte"
-
-#: merge-recursive.c:863
+#: merge-recursive.c:885
#, c-format
msgid "failed to create path '%s'%s"
msgstr "Fehler beim Erstellen des Pfades '%s'%s"
-#: merge-recursive.c:874
+#: merge-recursive.c:896
#, c-format
msgid "Removing %s to make room for subdirectory\n"
msgstr "Entferne %s, um Platz für Unterverzeichnis zu schaffen\n"
-#: merge-recursive.c:888 merge-recursive.c:907
+#: merge-recursive.c:910 merge-recursive.c:929
msgid ": perhaps a D/F conflict?"
msgstr ": vielleicht ein Verzeichnis/Datei-Konflikt?"
-#: merge-recursive.c:897
+#: merge-recursive.c:919
#, c-format
msgid "refusing to lose untracked file at '%s'"
msgstr "verweigere, da unversionierte Dateien in '%s' verloren gehen würden"
-#: merge-recursive.c:938 builtin/cat-file.c:40
+#: merge-recursive.c:960 builtin/cat-file.c:41
#, c-format
msgid "cannot read object %s '%s'"
msgstr "kann Objekt %s '%s' nicht lesen"
-#: merge-recursive.c:941
+#: merge-recursive.c:965
#, c-format
msgid "blob expected for %s '%s'"
msgstr "Blob erwartet für %s '%s'"
-#: merge-recursive.c:965
+#: merge-recursive.c:990
#, c-format
msgid "failed to open '%s': %s"
msgstr "Fehler beim Öffnen von '%s': %s"
-#: merge-recursive.c:976
+#: merge-recursive.c:1001
#, c-format
msgid "failed to symlink '%s': %s"
msgstr "Fehler beim Erstellen einer symbolischen Verknüpfung für '%s': %s"
-#: merge-recursive.c:981
+#: merge-recursive.c:1006
#, c-format
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:1177
+#: merge-recursive.c:1199
#, c-format
msgid "Failed to merge submodule %s (not checked out)"
msgstr "Fehler beim Merge von Submodul %s (nicht ausgecheckt)."
-#: merge-recursive.c:1184
+#: merge-recursive.c:1206
#, c-format
msgid "Failed to merge submodule %s (commits not present)"
msgstr "Fehler beim Merge von Submodul %s (Commits nicht vorhanden)."
-#: merge-recursive.c:1191
+#: merge-recursive.c:1213
#, 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-recursive.c:1199 merge-recursive.c:1211
+#: merge-recursive.c:1221 merge-recursive.c:1233
#, c-format
msgid "Fast-forwarding submodule %s to the following commit:"
msgstr "Spule Submodul %s zu dem folgenden Commit vor:"
-#: merge-recursive.c:1202 merge-recursive.c:1214
+#: merge-recursive.c:1224 merge-recursive.c:1236
#, c-format
msgid "Fast-forwarding submodule %s"
msgstr "Spule Submodul %s vor"
-#: merge-recursive.c:1237
+#: merge-recursive.c:1259
#, 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:1241
+#: merge-recursive.c:1263
#, c-format
msgid "Failed to merge submodule %s (not fast-forward)"
msgstr "Fehler beim Merge von Submodul %s (kein Vorspulen)"
-#: merge-recursive.c:1242
+#: merge-recursive.c:1264
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:1245
+#: merge-recursive.c:1267
#, c-format
msgid ""
"If this is correct simply add it to the index for example\n"
@@ -3807,33 +3832,33 @@ msgstr ""
"\n"
"hinzu, um diesen Vorschlag zu akzeptieren.\n"
-#: merge-recursive.c:1254
+#: merge-recursive.c:1276
#, c-format
msgid "Failed to merge submodule %s (multiple merges found)"
msgstr "Fehler beim Merge von Submodul %s (mehrere Merges gefunden)"
-#: merge-recursive.c:1327
+#: merge-recursive.c:1349
msgid "Failed to execute internal merge"
msgstr "Fehler bei Ausführung des internen Merges"
-#: merge-recursive.c:1332
+#: merge-recursive.c:1354
#, c-format
msgid "Unable to add %s to database"
msgstr "Konnte %s nicht zur Datenbank hinzufügen"
-#: merge-recursive.c:1364
+#: merge-recursive.c:1386
#, c-format
msgid "Auto-merging %s"
msgstr "automatischer Merge von %s"
-#: merge-recursive.c:1387
+#: merge-recursive.c:1410
#, 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:1459
+#: merge-recursive.c:1482
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -3842,7 +3867,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:1464
+#: merge-recursive.c:1487
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -3851,7 +3876,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:1471
+#: merge-recursive.c:1494
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -3860,7 +3885,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:1476
+#: merge-recursive.c:1499
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -3869,46 +3894,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:1511
+#: merge-recursive.c:1534
msgid "rename"
msgstr "umbenennen"
-#: merge-recursive.c:1511
+#: merge-recursive.c:1534
msgid "renamed"
msgstr "umbenannt"
-#: merge-recursive.c:1591 merge-recursive.c:2450 merge-recursive.c:3094
+#: merge-recursive.c:1614 merge-recursive.c:2472 merge-recursive.c:3117
#, c-format
msgid "Refusing to lose dirty file at %s"
msgstr "Verweigere geänderte Datei bei %s zu verlieren."
-#: merge-recursive.c:1601
+#: merge-recursive.c:1624
#, 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:1659
+#: merge-recursive.c:1682
#, 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:1690
+#: merge-recursive.c:1713
#, 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:1695
+#: merge-recursive.c:1718
#, 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:1714
+#: merge-recursive.c:1737
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
@@ -3917,18 +3942,18 @@ msgstr ""
"KONFLIKT (umbenennen/umbenennen): Benenne um \"%s\"->\"%s\" in Branch \"%s\" "
"und \"%s\"->\"%s\" in Branch \"%s\"%s"
-#: merge-recursive.c:1719
+#: merge-recursive.c:1742
msgid " (left unresolved)"
msgstr " (bleibt unaufgelöst)"
-#: merge-recursive.c:1828
+#: merge-recursive.c:1851
#, 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:2035
+#: merge-recursive.c:2056
#, c-format
msgid ""
"CONFLICT (directory rename split): Unclear where to place %s because "
@@ -3941,7 +3966,7 @@ msgstr ""
"wobei\n"
"keines dieser Ziele die Mehrheit der Dateien erhielt."
-#: merge-recursive.c:2067
+#: merge-recursive.c:2088
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Existing file/dir at %s in the way of "
@@ -3952,7 +3977,7 @@ msgstr ""
"Weg von impliziter Verzeichnisumbenennung, die versucht, einen oder mehrere\n"
"Pfade dahin zu setzen: %s."
-#: merge-recursive.c:2077
+#: merge-recursive.c:2098
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Cannot map more than one path to %s; "
@@ -3963,7 +3988,7 @@ msgstr ""
"%s mappen; implizite Verzeichnisumbenennungen versuchten diese Pfade dahin\n"
"zu setzen: %s"
-#: merge-recursive.c:2169
+#: merge-recursive.c:2190
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename directory %s->%s in %s. Rename directory %s-"
@@ -3972,7 +3997,7 @@ msgstr ""
"KONFLIKT (umbenennen/umbenennen): Benenne Verzeichnis um %s->%s in %s.\n"
"Benenne Verzeichnis um %s->%s in %s"
-#: merge-recursive.c:2413
+#: merge-recursive.c:2435
#, c-format
msgid ""
"WARNING: Avoiding applying %s -> %s rename to %s, because %s itself was "
@@ -3981,52 +4006,52 @@ msgstr ""
"WARNUNG: Vermeide Umbenennung %s -> %s von %s, weil %s selbst umbenannt "
"wurde."
-#: merge-recursive.c:2938
+#: merge-recursive.c:2961
#, c-format
msgid "cannot read object %s"
msgstr "kann Objekt %s nicht lesen"
-#: merge-recursive.c:2941
+#: merge-recursive.c:2964
#, c-format
msgid "object %s is not a blob"
msgstr "Objekt %s ist kein Blob"
-#: merge-recursive.c:3005
+#: merge-recursive.c:3028
msgid "modify"
msgstr "ändern"
-#: merge-recursive.c:3005
+#: merge-recursive.c:3028
msgid "modified"
msgstr "geändert"
-#: merge-recursive.c:3017
+#: merge-recursive.c:3040
msgid "content"
msgstr "Inhalt"
-#: merge-recursive.c:3021
+#: merge-recursive.c:3044
msgid "add/add"
msgstr "hinzufügen/hinzufügen"
-#: merge-recursive.c:3044
+#: merge-recursive.c:3067
#, c-format
msgid "Skipped %s (merged same as existing)"
msgstr "%s ausgelassen (Ergebnis des Merges existiert bereits)"
-#: merge-recursive.c:3066 git-submodule.sh:937
+#: merge-recursive.c:3089 git-submodule.sh:937
msgid "submodule"
msgstr "Submodul"
-#: merge-recursive.c:3067
+#: merge-recursive.c:3090
#, c-format
msgid "CONFLICT (%s): Merge conflict in %s"
msgstr "KONFLIKT (%s): Merge-Konflikt in %s"
-#: merge-recursive.c:3097
+#: merge-recursive.c:3120
#, c-format
msgid "Adding as %s instead"
msgstr "Füge stattdessen als %s hinzu"
-#: merge-recursive.c:3179
+#: merge-recursive.c:3203
#, c-format
msgid ""
"Path updated: %s added in %s inside a directory that was renamed in %s; "
@@ -4035,7 +4060,7 @@ msgstr ""
"Pfad aktualisiert: %s hinzugefügt in %s innerhalb eines Verzeichnisses, das "
"umbenannt wurde in %s; Verschiebe es nach %s."
-#: merge-recursive.c:3182
+#: merge-recursive.c:3206
#, c-format
msgid ""
"CONFLICT (file location): %s added in %s inside a directory that was renamed "
@@ -4044,7 +4069,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-recursive.c:3186
+#: merge-recursive.c:3210
#, c-format
msgid ""
"Path updated: %s renamed to %s in %s, inside a directory that was renamed in "
@@ -4053,7 +4078,7 @@ msgstr ""
"Pfad aktualisiert: %s umbenannt nach %s in %s, innerhalb eines "
"Verzeichnisses, das umbenannt wurde in %s; Verschiebe es nach %s."
-#: merge-recursive.c:3189
+#: merge-recursive.c:3213
#, c-format
msgid ""
"CONFLICT (file location): %s renamed to %s in %s, inside a directory that "
@@ -4063,173 +4088,173 @@ msgstr ""
"Verzeichnisses, das umbenannt wurde in %s, es sollte vielleicht nach %s "
"verschoben werden."
-#: merge-recursive.c:3303
+#: merge-recursive.c:3327
#, c-format
msgid "Removing %s"
msgstr "Entferne %s"
-#: merge-recursive.c:3326
+#: merge-recursive.c:3350
msgid "file/directory"
msgstr "Datei/Verzeichnis"
-#: merge-recursive.c:3331
+#: merge-recursive.c:3355
msgid "directory/file"
msgstr "Verzeichnis/Datei"
-#: merge-recursive.c:3338
+#: merge-recursive.c:3362
#, 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:3347
+#: merge-recursive.c:3371
#, c-format
msgid "Adding %s"
msgstr "Füge %s hinzu"
-#: merge-recursive.c:3356
+#: merge-recursive.c:3380
#, c-format
msgid "CONFLICT (add/add): Merge conflict in %s"
msgstr "KONFLIKT (hinzufügen/hinzufügen): Merge-Konflikt in %s"
-#: merge-recursive.c:3394
-#, c-format
-msgid ""
-"Your local changes to the following files would be overwritten by merge:\n"
-" %s"
-msgstr ""
-"Ihre lokalen Änderungen in den folgenden Dateien würden durch den Merge\n"
-"überschrieben werden:\n"
-" %s"
-
-#: merge-recursive.c:3405
+#: merge-recursive.c:3424
msgid "Already up to date!"
msgstr "Bereits aktuell!"
-#: merge-recursive.c:3414
+#: merge-recursive.c:3433
#, c-format
msgid "merging of trees %s and %s failed"
msgstr "Zusammenführen der \"Tree\"-Objekte %s und %s fehlgeschlagen"
-#: merge-recursive.c:3513
+#: merge-recursive.c:3537
msgid "Merging:"
msgstr "Merge:"
-#: merge-recursive.c:3526
+#: merge-recursive.c:3550
#, 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:3565
+#: merge-recursive.c:3600
msgid "merge returned no commit"
msgstr "Merge hat keinen Commit zurückgegeben"
-#: merge-recursive.c:3631
+#: merge-recursive.c:3659
+#, c-format
+msgid ""
+"Your local changes to the following files would be overwritten by merge:\n"
+" %s"
+msgstr ""
+"Ihre lokalen Änderungen in den folgenden Dateien würden durch den Merge\n"
+"überschrieben werden:\n"
+" %s"
+
+#: merge-recursive.c:3756
#, c-format
msgid "Could not parse object '%s'"
msgstr "Konnte Objekt '%s' nicht parsen."
-#: merge-recursive.c:3647 builtin/merge.c:698 builtin/merge.c:869
+#: merge-recursive.c:3774 builtin/merge.c:694 builtin/merge.c:874
msgid "Unable to write index."
msgstr "Konnte Index nicht schreiben."
-#: midx.c:69
+#: midx.c:68
#, c-format
msgid "multi-pack-index file %s is too small"
msgstr "multi-pack-index-Datei %s ist zu klein."
-#: midx.c:85
+#: midx.c:84
#, 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."
-#: midx.c:90
+#: midx.c:89
#, c-format
msgid "multi-pack-index version %d not recognized"
msgstr "multi-pack-index-Version %d nicht erkannt."
-#: midx.c:95
+#: midx.c:94
#, c-format
msgid "hash version %u does not match"
msgstr "Hash-Version %u stimmt nicht überein."
-#: midx.c:109
+#: midx.c:108
msgid "invalid chunk offset (too large)"
msgstr "Ungültiger Chunk-Offset (zu groß)"
-#: midx.c:133
+#: midx.c:132
msgid "terminating multi-pack-index chunk id appears earlier than expected"
msgstr "Abschließende multi-pack-index Chunk-Id erscheint eher als erwartet."
-#: midx.c:146
+#: midx.c:145
msgid "multi-pack-index missing required pack-name chunk"
msgstr "multi-pack-index fehlt erforderlicher pack-name Chunk."
-#: midx.c:148
+#: midx.c:147
msgid "multi-pack-index missing required OID fanout chunk"
msgstr "multi-pack-index fehlt erforderlicher OID fanout Chunk."
-#: midx.c:150
+#: midx.c:149
msgid "multi-pack-index missing required OID lookup chunk"
msgstr "multi-pack-index fehlt erforderlicher OID lookup Chunk."
-#: midx.c:152
+#: midx.c:151
msgid "multi-pack-index missing required object offsets chunk"
msgstr "multi-pack-index fehlt erforderlicher object offset Chunk."
-#: midx.c:166
+#: midx.c:165
#, 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'"
-#: midx.c:211
+#: midx.c:210
#, c-format
msgid "bad pack-int-id: %u (%u total packs)"
msgstr "Ungültige pack-int-id: %u (%u Pakete insgesamt)"
-#: midx.c:261
+#: midx.c:260
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."
-#: midx.c:289
+#: midx.c:288
msgid "error preparing packfile from multi-pack-index"
msgstr "Fehler bei Vorbereitung der Packdatei aus multi-pack-index."
-#: midx.c:470
+#: midx.c:469
#, c-format
msgid "failed to add packfile '%s'"
msgstr "Fehler beim Hinzufügen von Packdatei '%s'."
-#: midx.c:476
+#: midx.c:475
#, c-format
msgid "failed to open pack-index '%s'"
msgstr "Fehler beim Öffnen von pack-index '%s'"
-#: midx.c:536
+#: midx.c:535
#, c-format
msgid "failed to locate object %d in packfile"
msgstr "Fehler beim Lokalisieren von Objekt %d in Packdatei."
-#: midx.c:865
+#: midx.c:864
#, c-format
msgid "did not see pack-file %s to drop"
msgstr "Pack-Datei %s zum Weglassen nicht gefunden"
-#: midx.c:1036
+#: midx.c:1035
#, c-format
msgid "failed to clear multi-pack-index at %s"
msgstr "Fehler beim Löschen des multi-pack-index bei %s"
-#: midx.c:1091
+#: midx.c:1090
msgid "Looking for referenced packfiles"
msgstr "Suche nach referenzierten Pack-Dateien"
-#: midx.c:1106
+#: midx.c:1105
#, c-format
msgid ""
"oid fanout out of order: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
@@ -4237,57 +4262,57 @@ msgstr ""
"Ungültige oid fanout Reihenfolge: fanout[%d] = %<PRIx32> > %<PRIx32> = "
"fanout[%d]"
-#: midx.c:1110
+#: midx.c:1109
msgid "Verifying OID order in MIDX"
msgstr "Verifiziere OID-Reihenfolge in MIDX"
-#: midx.c:1119
+#: midx.c:1118
#, 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:1138
+#: midx.c:1137
msgid "Sorting objects by packfile"
msgstr "Sortiere Objekte nach Pack-Datei"
-#: midx.c:1144
+#: midx.c:1143
msgid "Verifying object offsets"
msgstr "Überprüfe Objekt-Offsets"
-#: midx.c:1160
+#: midx.c:1159
#, 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:1166
+#: midx.c:1165
#, c-format
msgid "failed to load pack-index for packfile %s"
msgstr "Fehler beim Laden des Pack-Index für Packdatei %s"
-#: midx.c:1175
+#: midx.c:1174
#, 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:1350
+#: midx.c:1349
msgid "could not start pack-objects"
msgstr "Konnte 'pack-objects' nicht ausführen"
-#: midx.c:1369
+#: midx.c:1368
msgid "could not finish pack-objects"
msgstr "Konnte 'pack-objects' nicht beenden"
-#: name-hash.c:532
+#: name-hash.c:537
#, c-format
msgid "unable to create lazy_dir thread: %s"
msgstr "Kann lazy_dir Thread nicht erzeugen: %s"
-#: name-hash.c:554
+#: name-hash.c:559
#, c-format
msgid "unable to create lazy_name thread: %s"
msgstr "Kann lazy_name Thread nicht erzeugen: %s"
-#: name-hash.c:560
+#: name-hash.c:565
#, c-format
msgid "unable to join lazy_name thread: %s"
msgstr "Kann lazy_name Thread nicht beitreten: %s"
@@ -4337,41 +4362,41 @@ msgstr ""
msgid "Bad %s value: '%s'"
msgstr "Ungültiger %s Wert: '%s'"
-#: object.c:54
+#: object.c:53
#, c-format
msgid "invalid object type \"%s\""
msgstr "Ungültiger Objekttyp \"%s\""
-#: object.c:174
+#: object.c:173
#, c-format
msgid "object %s is a %s, not a %s"
msgstr "Objekt %s ist ein %s, kein %s"
-#: object.c:234
+#: object.c:233
#, c-format
msgid "object %s has unknown type id %d"
msgstr "Objekt %s hat eine unbekannte Typ-Identifikation %d"
-#: object.c:247
+#: object.c:246
#, c-format
msgid "unable to parse object: %s"
msgstr "Konnte Objekt '%s' nicht parsen."
-#: object.c:267 object.c:278
+#: object.c:266 object.c:277
#, c-format
msgid "hash mismatch %s"
msgstr "Hash stimmt nicht mit %s überein."
-#: packfile.c:648
+#: packfile.c:641
msgid "offset before end of packfile (broken .idx?)"
msgstr "Offset vor Ende der Packdatei (fehlerhafte Indexdatei?)"
-#: packfile.c:1899
+#: packfile.c:1887
#, c-format
msgid "offset before start of pack index for %s (corrupt index?)"
msgstr "Offset vor Beginn des Pack-Index für %s (beschädigter Index?)"
-#: packfile.c:1903
+#: packfile.c:1891
#, c-format
msgid "offset beyond end of pack index for %s (truncated index?)"
msgstr "Offset hinter Ende des Pack-Index für %s (abgeschnittener Index?)"
@@ -4418,26 +4443,26 @@ msgstr "Mehrdeutige Option: %s (kann --%s%s oder --%s%s sein)"
msgid "did you mean `--%s` (with two dashes ?)"
msgstr "Meinten Sie `--%s` (mit zwei Strichen?)"
-#: parse-options.c:859
+#: parse-options.c:860
#, c-format
msgid "unknown option `%s'"
msgstr "Unbekannte Option: `%s'"
-#: parse-options.c:861
+#: parse-options.c:862
#, c-format
msgid "unknown switch `%c'"
msgstr "Unbekannter Schalter `%c'"
-#: parse-options.c:863
+#: parse-options.c:864
#, c-format
msgid "unknown non-ascii option in string: `%s'"
msgstr "Unbekannte nicht-Ascii Option in String: `%s'"
-#: parse-options.c:887
+#: parse-options.c:888
msgid "..."
msgstr "..."
-#: parse-options.c:906
+#: parse-options.c:907
#, c-format
msgid "usage: %s"
msgstr "Verwendung: %s"
@@ -4445,21 +4470,21 @@ msgstr "Verwendung: %s"
#. TRANSLATORS: the colon here should align with the
#. one in "usage: %s" translation.
#.
-#: parse-options.c:912
+#: parse-options.c:913
#, c-format
msgid " or: %s"
msgstr " oder: %s"
-#: parse-options.c:915
+#: parse-options.c:916
#, c-format
msgid " %s"
msgstr " %s"
-#: parse-options.c:954
+#: parse-options.c:955
msgid "-NUM"
msgstr "-NUM"
-#: parse-options.c:968
+#: parse-options.c:969
#, c-format
msgid "alias of --%s"
msgstr "Alias für --%s"
@@ -4630,29 +4655,38 @@ msgstr "Kann Thread für lstat nicht erzeugen: %s"
msgid "unable to parse --pretty format"
msgstr "Konnte --pretty Format nicht parsen."
-#: range-diff.c:70
+#: promisor-remote.c:25
+msgid "Remote with no URL"
+msgstr "Remote-Repository ohne URL"
+
+#: promisor-remote.c:61
+#, c-format
+msgid "promisor remote name cannot begin with '/': %s"
+msgstr "Promisor-Remote-Name kann nicht mit '/' beginnen: %s"
+
+#: range-diff.c:71
msgid "could not start `log`"
msgstr "Konnte `log` nicht starten."
-#: range-diff.c:72
+#: range-diff.c:73
msgid "could not read `log` output"
msgstr "Konnte Ausgabe von `log` nicht lesen."
-#: range-diff.c:91 sequencer.c:5021
+#: range-diff.c:92 sequencer.c:4985
#, c-format
msgid "could not parse commit '%s'"
msgstr "Konnte Commit '%s' nicht parsen."
-#: range-diff.c:117
+#: range-diff.c:118
#, c-format
msgid "could not parse git header '%.*s'"
msgstr "Konnte Git-Header '%.*s' nicht parsen."
-#: range-diff.c:274
+#: range-diff.c:275
msgid "failed to generate diff"
msgstr "Fehler beim Generieren des Diffs."
-#: range-diff.c:506 range-diff.c:508
+#: range-diff.c:507 range-diff.c:509
#, c-format
msgid "could not parse log for '%s'"
msgstr "Konnte Log für '%s' nicht parsen."
@@ -4699,11 +4733,11 @@ msgstr "Konnte '%s' nicht lesen."
msgid "'%s' appears as both a file and as a directory"
msgstr "'%s' scheint eine Datei und ein Verzeichnis zu sein."
-#: read-cache.c:1499
+#: read-cache.c:1520
msgid "Refresh index"
msgstr "Aktualisiere Index"
-#: read-cache.c:1613
+#: read-cache.c:1635
#, c-format
msgid ""
"index.version set, but the value is invalid.\n"
@@ -4712,7 +4746,7 @@ msgstr ""
"index.version gesetzt, aber Wert ungültig.\n"
"Verwende Version %i"
-#: read-cache.c:1623
+#: read-cache.c:1645
#, c-format
msgid ""
"GIT_INDEX_VERSION set, but the value is invalid.\n"
@@ -4721,138 +4755,138 @@ msgstr ""
"GIT_INDEX_VERSION gesetzt, aber Wert ungültig.\n"
"Verwende Version %i"
-#: read-cache.c:1679
+#: read-cache.c:1701
#, c-format
msgid "bad signature 0x%08x"
msgstr "Ungültige Signatur 0x%08x"
-#: read-cache.c:1682
+#: read-cache.c:1704
#, c-format
msgid "bad index version %d"
msgstr "Ungültige Index-Version %d"
-#: read-cache.c:1691
+#: read-cache.c:1713
msgid "bad index file sha1 signature"
msgstr "Ungültige SHA1-Signatur der Index-Datei."
-#: read-cache.c:1721
+#: read-cache.c:1743
#, 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:1723
+#: read-cache.c:1745
#, c-format
msgid "ignoring %.4s extension"
msgstr "Ignoriere Erweiterung %.4s"
-#: read-cache.c:1760
+#: read-cache.c:1782
#, c-format
msgid "unknown index entry format 0x%08x"
msgstr "Unbekanntes Format für Index-Eintrag 0x%08x"
-#: read-cache.c:1776
+#: read-cache.c:1798
#, 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:1833
+#: read-cache.c:1855
msgid "unordered stage entries in index"
msgstr "Ungeordnete Stage-Einträge im Index."
-#: read-cache.c:1836
+#: read-cache.c:1858
#, c-format
msgid "multiple stage entries for merged file '%s'"
msgstr "Mehrere Stage-Einträge für zusammengeführte Datei '%s'."
-#: read-cache.c:1839
+#: read-cache.c:1861
#, c-format
msgid "unordered stage entries for '%s'"
msgstr "Ungeordnete Stage-Einträge für '%s'."
-#: read-cache.c:1946 read-cache.c:2234 rerere.c:565 rerere.c:599 rerere.c:1111
-#: builtin/add.c:460 builtin/check-ignore.c:178 builtin/checkout.c:467
-#: builtin/checkout.c:651 builtin/clean.c:956 builtin/commit.c:347
+#: read-cache.c:1967 read-cache.c:2255 rerere.c:565 rerere.c:599 rerere.c:1111
+#: builtin/add.c:460 builtin/check-ignore.c:178 builtin/checkout.c:468
+#: builtin/checkout.c:652 builtin/clean.c:967 builtin/commit.c:347
#: builtin/diff-tree.c:120 builtin/grep.c:499 builtin/mv.c:145
#: builtin/reset.c:245 builtin/rm.c:271 builtin/submodule--helper.c:330
msgid "index file corrupt"
msgstr "Index-Datei beschädigt"
-#: read-cache.c:2087
+#: read-cache.c:2108
#, 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:2100
+#: read-cache.c:2121
#, 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:2133
+#: read-cache.c:2154
#, c-format
msgid "%s: index file open failed"
msgstr "%s: Öffnen der Index-Datei fehlgeschlagen."
-#: read-cache.c:2137
+#: read-cache.c:2158
#, c-format
msgid "%s: cannot stat the open index"
msgstr "%s: Kann geöffneten Index nicht lesen."
-#: read-cache.c:2141
+#: read-cache.c:2162
#, c-format
msgid "%s: index file smaller than expected"
msgstr "%s: Index-Datei ist kleiner als erwartet."
-#: read-cache.c:2145
+#: read-cache.c:2166
#, c-format
msgid "%s: unable to map index file"
msgstr "%s: Konnte Index-Datei nicht einlesen."
-#: read-cache.c:2187
+#: read-cache.c:2208
#, 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:2214
+#: read-cache.c:2235
#, 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:2246
+#: read-cache.c:2267
#, c-format
msgid "could not freshen shared index '%s'"
msgstr "Konnte geteilten Index '%s' nicht aktualisieren."
-#: read-cache.c:2293
+#: read-cache.c:2314
#, c-format
msgid "broken index, expect %s in %s, got %s"
msgstr "Fehlerhafter Index. Erwartete %s in %s, erhielt %s."
-#: read-cache.c:2989 wrapper.c:658 builtin/merge.c:1114
+#: read-cache.c:3010 wrapper.c:622 builtin/merge.c:1119
#, c-format
msgid "could not close '%s'"
msgstr "Konnte '%s' nicht schließen."
-#: read-cache.c:3092 sequencer.c:2358 sequencer.c:3928
+#: read-cache.c:3113 sequencer.c:2296 sequencer.c:3917
#, c-format
msgid "could not stat '%s'"
msgstr "Konnte '%s' nicht lesen."
-#: read-cache.c:3105
+#: read-cache.c:3126
#, c-format
msgid "unable to open git dir: %s"
msgstr "konnte Git-Verzeichnis nicht öffnen: %s"
-#: read-cache.c:3117
+#: read-cache.c:3138
#, c-format
msgid "unable to unlink: %s"
msgstr "Konnte '%s' nicht entfernen."
-#: read-cache.c:3142
+#: read-cache.c:3163
#, c-format
msgid "cannot fix permission bits on '%s'"
msgstr "Konnte Zugriffsberechtigung auf '%s' nicht setzen."
-#: read-cache.c:3291
+#: read-cache.c:3312
#, c-format
msgid "%s: cannot drop to stage #0"
msgstr "%s: Kann nicht auf Stufe #0 wechseln."
@@ -4962,8 +4996,8 @@ msgstr ""
msgid "Note that empty commits are commented out"
msgstr "Leere Commits sind auskommentiert."
-#: rebase-interactive.c:105 rerere.c:485 rerere.c:692 sequencer.c:3447
-#: sequencer.c:3473 sequencer.c:5120 builtin/fsck.c:356 builtin/rebase.c:235
+#: rebase-interactive.c:105 rerere.c:485 rerere.c:692 sequencer.c:3388
+#: sequencer.c:3414 sequencer.c:5084 builtin/fsck.c:356 builtin/rebase.c:235
#, c-format
msgid "could not write '%s'"
msgstr "Konnte '%s' nicht schreiben."
@@ -5009,7 +5043,7 @@ msgstr "%s zeigt auf kein gültiges Objekt!"
msgid "ignoring dangling symref %s"
msgstr "Ignoriere unreferenzierte symbolische Referenz %s"
-#: refs.c:669 ref-filter.c:2092
+#: refs.c:669 ref-filter.c:2098
#, c-format
msgid "ignoring broken ref %s"
msgstr "Ignoriere fehlerhafte Referenz %s"
@@ -5034,14 +5068,14 @@ msgstr "Referenz '%s' existiert bereits."
msgid "unexpected object ID when writing '%s'"
msgstr "Unerwartete Objekt-ID beim Schreiben von '%s'."
-#: refs.c:833 sequencer.c:403 sequencer.c:2709 sequencer.c:2913
-#: sequencer.c:2927 sequencer.c:3184 sequencer.c:5037 wrapper.c:656
+#: refs.c:833 sequencer.c:403 sequencer.c:2647 sequencer.c:2851
+#: sequencer.c:2865 sequencer.c:3122 sequencer.c:5001 wrapper.c:620
#, c-format
msgid "could not write to '%s'"
msgstr "Konnte nicht nach '%s' schreiben."
-#: refs.c:860 wrapper.c:225 wrapper.c:395 builtin/am.c:715
-#: builtin/rebase.c:1003
+#: refs.c:860 wrapper.c:188 wrapper.c:358 builtin/am.c:714
+#: builtin/rebase.c:1004
#, c-format
msgid "could not open '%s' for writing"
msgstr "Konnte '%s' nicht zum Schreiben öffnen."
@@ -5076,23 +5110,23 @@ msgstr "Verweigere Aktualisierung einer Referenz mit fehlerhaftem Namen '%s'."
msgid "update_ref failed for ref '%s': %s"
msgstr "update_ref für Referenz '%s' fehlgeschlagen: %s"
-#: refs.c:2012
+#: refs.c:2023
#, c-format
msgid "multiple updates for ref '%s' not allowed"
msgstr "Mehrere Aktualisierungen für Referenz '%s' nicht erlaubt."
-#: refs.c:2044
+#: refs.c:2055
msgid "ref updates forbidden inside quarantine environment"
msgstr ""
"Aktualisierungen von Referenzen ist innerhalb der Quarantäne-Umgebung "
"verboten."
-#: refs.c:2140 refs.c:2170
+#: refs.c:2151 refs.c:2181
#, c-format
msgid "'%s' exists; cannot create '%s'"
msgstr "'%s' existiert; kann '%s' nicht erstellen"
-#: refs.c:2146 refs.c:2181
+#: refs.c:2157 refs.c:2192
#, c-format
msgid "cannot process '%s' and '%s' at the same time"
msgstr "Kann '%s' und '%s' nicht zur selben Zeit verarbeiten."
@@ -5102,13 +5136,13 @@ msgstr "Kann '%s' und '%s' nicht zur selben Zeit verarbeiten."
msgid "could not remove reference %s"
msgstr "Konnte Referenz %s nicht löschen"
-#: refs/files-backend.c:1248 refs/packed-backend.c:1532
-#: refs/packed-backend.c:1542
+#: refs/files-backend.c:1248 refs/packed-backend.c:1541
+#: refs/packed-backend.c:1551
#, c-format
msgid "could not delete reference %s: %s"
msgstr "Konnte Referenz %s nicht entfernen: %s"
-#: refs/files-backend.c:1251 refs/packed-backend.c:1545
+#: refs/files-backend.c:1251 refs/packed-backend.c:1554
#, c-format
msgid "could not delete references: %s"
msgstr "Konnte Referenzen nicht entfernen: %s"
@@ -5118,7 +5152,7 @@ msgstr "Konnte Referenzen nicht entfernen: %s"
msgid "invalid refspec '%s'"
msgstr "Ungültige Refspec '%s'"
-#: ref-filter.c:42 wt-status.c:1934
+#: ref-filter.c:42 wt-status.c:1938
msgid "gone"
msgstr "entfernt"
@@ -5137,283 +5171,283 @@ msgstr "%d hinterher"
msgid "ahead %d, behind %d"
msgstr "%d voraus, %d hinterher"
-#: ref-filter.c:162
+#: ref-filter.c:165
#, c-format
msgid "expected format: %%(color:<color>)"
msgstr "Erwartetes Format: %%(color:<Farbe>)"
-#: ref-filter.c:164
+#: ref-filter.c:167
#, c-format
msgid "unrecognized color: %%(color:%s)"
msgstr "nicht erkannte Farbe: %%(color:%s)"
-#: ref-filter.c:186
+#: ref-filter.c:189
#, c-format
msgid "Integer value expected refname:lstrip=%s"
msgstr "Positiver Wert erwartet refname:lstrip=%s"
-#: ref-filter.c:190
+#: ref-filter.c:193
#, c-format
msgid "Integer value expected refname:rstrip=%s"
msgstr "Positiver Wert erwartet refname:rstrip=%s"
-#: ref-filter.c:192
+#: ref-filter.c:195
#, c-format
msgid "unrecognized %%(%s) argument: %s"
msgstr "nicht erkanntes %%(%s) Argument: %s"
-#: ref-filter.c:247
+#: ref-filter.c:250
#, c-format
msgid "%%(objecttype) does not take arguments"
msgstr "%%(objecttype) akzeptiert keine Argumente"
-#: ref-filter.c:269
+#: ref-filter.c:272
#, c-format
msgid "unrecognized %%(objectsize) argument: %s"
msgstr "nicht erkanntes %%(objectsize) Argument: %s"
-#: ref-filter.c:277
+#: ref-filter.c:280
#, c-format
msgid "%%(deltabase) does not take arguments"
msgstr "%%(deltabase) akzeptiert keine Argumente"
-#: ref-filter.c:289
+#: ref-filter.c:292
#, c-format
msgid "%%(body) does not take arguments"
msgstr "%%(body) akzeptiert keine Argumente"
-#: ref-filter.c:298
+#: ref-filter.c:301
#, c-format
msgid "%%(subject) does not take arguments"
msgstr "%%(subject) akzeptiert keine Argumente"
-#: ref-filter.c:320
+#: ref-filter.c:323
#, c-format
msgid "unknown %%(trailers) argument: %s"
msgstr "unbekanntes %%(trailers) Argument: %s"
-#: ref-filter.c:349
+#: ref-filter.c:352
#, c-format
msgid "positive value expected contents:lines=%s"
msgstr "Positiver Wert erwartet contents:lines=%s"
-#: ref-filter.c:351
+#: ref-filter.c:354
#, c-format
msgid "unrecognized %%(contents) argument: %s"
msgstr "nicht erkanntes %%(contents) Argument: %s"
-#: ref-filter.c:366
+#: ref-filter.c:369
#, c-format
msgid "positive value expected objectname:short=%s"
msgstr "Positiver Wert erwartet objectname:short=%s"
-#: ref-filter.c:370
+#: ref-filter.c:373
#, c-format
msgid "unrecognized %%(objectname) argument: %s"
msgstr "nicht erkanntes %%(objectname) Argument: %s"
-#: ref-filter.c:400
+#: ref-filter.c:403
#, c-format
msgid "expected format: %%(align:<width>,<position>)"
msgstr "Erwartetes Format: %%(align:<Breite>,<Position>)"
-#: ref-filter.c:412
+#: ref-filter.c:415
#, c-format
msgid "unrecognized position:%s"
msgstr "nicht erkannte Position:%s"
-#: ref-filter.c:419
+#: ref-filter.c:422
#, c-format
msgid "unrecognized width:%s"
msgstr "nicht erkannte Breite:%s"
-#: ref-filter.c:428
+#: ref-filter.c:431
#, c-format
msgid "unrecognized %%(align) argument: %s"
msgstr "nicht erkanntes %%(align) Argument: %s"
-#: ref-filter.c:436
+#: ref-filter.c:439
#, c-format
msgid "positive width expected with the %%(align) atom"
msgstr "Positive Breitenangabe für %%(align) erwartet"
-#: ref-filter.c:454
+#: ref-filter.c:457
#, c-format
msgid "unrecognized %%(if) argument: %s"
msgstr "nicht erkanntes %%(if) Argument: %s"
-#: ref-filter.c:556
+#: ref-filter.c:559
#, c-format
msgid "malformed field name: %.*s"
msgstr "Fehlerhafter Feldname: %.*s"
-#: ref-filter.c:583
+#: ref-filter.c:586
#, c-format
msgid "unknown field name: %.*s"
msgstr "Unbekannter Feldname: %.*s"
-#: ref-filter.c:587
+#: ref-filter.c:590
#, c-format
msgid ""
"not a git repository, but the field '%.*s' requires access to object data"
msgstr ""
"Kein Git-Repository, aber das Feld '%.*s' erfordert Zugriff auf Objektdaten."
-#: ref-filter.c:711
+#: ref-filter.c:714
#, c-format
msgid "format: %%(if) atom used without a %%(then) atom"
msgstr "format: %%(if) Atom ohne ein %%(then) Atom verwendet"
-#: ref-filter.c:774
+#: ref-filter.c:777
#, c-format
msgid "format: %%(then) atom used without an %%(if) atom"
msgstr "format: %%(then) Atom ohne ein %%(if) Atom verwendet"
-#: ref-filter.c:776
+#: ref-filter.c:779
#, c-format
msgid "format: %%(then) atom used more than once"
msgstr "format: %%(then) Atom mehr als einmal verwendet"
-#: ref-filter.c:778
+#: ref-filter.c:781
#, c-format
msgid "format: %%(then) atom used after %%(else)"
msgstr "format: %%(then) Atom nach %%(else) verwendet"
-#: ref-filter.c:806
+#: ref-filter.c:809
#, c-format
msgid "format: %%(else) atom used without an %%(if) atom"
msgstr "format: %%(else) Atom ohne ein %%(if) Atom verwendet"
-#: ref-filter.c:808
+#: ref-filter.c:811
#, c-format
msgid "format: %%(else) atom used without a %%(then) atom"
msgstr "Format: %%(else) Atom ohne ein %%(then) Atom verwendet"
-#: ref-filter.c:810
+#: ref-filter.c:813
#, c-format
msgid "format: %%(else) atom used more than once"
msgstr "Format: %%(end) Atom mehr als einmal verwendet"
-#: ref-filter.c:825
+#: ref-filter.c:828
#, c-format
msgid "format: %%(end) atom used without corresponding atom"
msgstr "Format: %%(end) Atom ohne zugehöriges Atom verwendet"
-#: ref-filter.c:882
+#: ref-filter.c:885
#, c-format
msgid "malformed format string %s"
msgstr "Fehlerhafter Formatierungsstring %s"
-#: ref-filter.c:1485
+#: ref-filter.c:1488
#, c-format
msgid "no branch, rebasing %s"
msgstr "kein Branch, Rebase von %s"
-#: ref-filter.c:1488
+#: ref-filter.c:1491
#, c-format
msgid "no branch, rebasing detached HEAD %s"
msgstr "kein Branch, Rebase von losgelöstem HEAD %s"
-#: ref-filter.c:1491
+#: ref-filter.c:1494
#, c-format
msgid "no branch, bisect started on %s"
msgstr "kein Branch, binäre Suche begonnen bei %s"
-#: ref-filter.c:1501
+#: ref-filter.c:1504
msgid "no branch"
msgstr "kein Branch"
-#: ref-filter.c:1537 ref-filter.c:1743
+#: ref-filter.c:1540 ref-filter.c:1749
#, c-format
msgid "missing object %s for %s"
msgstr "Objekt %s fehlt für %s"
-#: ref-filter.c:1547
+#: ref-filter.c:1550
#, c-format
msgid "parse_object_buffer failed on %s for %s"
msgstr "parse_object_buffer bei %s für %s fehlgeschlagen"
-#: ref-filter.c:1998
+#: ref-filter.c:2004
#, c-format
msgid "malformed object at '%s'"
msgstr "fehlerhaftes Objekt bei '%s'"
-#: ref-filter.c:2087
+#: ref-filter.c:2093
#, c-format
msgid "ignoring ref with broken name %s"
msgstr "Ignoriere Referenz mit fehlerhaftem Namen %s"
-#: ref-filter.c:2382
+#: ref-filter.c:2389
#, c-format
msgid "format: %%(end) atom missing"
msgstr "Format: %%(end) Atom fehlt"
-#: ref-filter.c:2482
+#: ref-filter.c:2489
#, c-format
msgid "option `%s' is incompatible with --merged"
msgstr "Die Option `%s' ist inkompatibel mit --merged."
-#: ref-filter.c:2485
+#: ref-filter.c:2492
#, c-format
msgid "option `%s' is incompatible with --no-merged"
msgstr "Die Option `%s' ist inkompatibel mit --no-merged."
-#: ref-filter.c:2495
+#: ref-filter.c:2502
#, c-format
msgid "malformed object name %s"
msgstr "Missgebildeter Objektname %s"
-#: ref-filter.c:2500
+#: ref-filter.c:2507
#, c-format
msgid "option `%s' must point to a commit"
msgstr "Die Option `%s' muss auf einen Commit zeigen."
-#: remote.c:363
+#: remote.c:366
#, c-format
msgid "config remote shorthand cannot begin with '/': %s"
msgstr ""
"Kürzel für Remote-Repository in der Konfiguration kann nicht mit '/' "
"beginnen: %s"
-#: remote.c:410
+#: remote.c:413
msgid "more than one receivepack given, using the first"
msgstr "Mehr als ein receivepack-Befehl angegeben, benutze den ersten."
-#: remote.c:418
+#: remote.c:421
msgid "more than one uploadpack given, using the first"
msgstr "Mehr als ein uploadpack-Befehl angegeben, benutze den ersten."
-#: remote.c:608
+#: remote.c:611
#, 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:612
+#: remote.c:615
#, c-format
msgid "%s usually tracks %s, not %s"
msgstr "%s folgt üblicherweise %s, nicht %s"
-#: remote.c:616
+#: remote.c:619
#, c-format
msgid "%s tracks both %s and %s"
msgstr "%s folgt sowohl %s als auch %s"
-#: remote.c:684
+#: remote.c:687
#, c-format
msgid "key '%s' of pattern had no '*'"
msgstr "Schlüssel '%s' des Musters hatte kein '*'."
-#: remote.c:694
+#: remote.c:697
#, c-format
msgid "value '%s' of pattern has no '*'"
msgstr "Wert '%s' des Musters hat kein '*'."
-#: remote.c:1000
+#: remote.c:1003
#, c-format
msgid "src refspec %s does not match any"
msgstr "Src-Refspec %s entspricht keiner Referenz."
-#: remote.c:1005
+#: remote.c:1008
#, c-format
msgid "src refspec %s matches more than one"
msgstr "Src-Refspec %s entspricht mehr als einer Referenz."
@@ -5422,7 +5456,7 @@ msgstr "Src-Refspec %s entspricht mehr als einer Referenz."
#. <remote> <src>:<dst>" push, and "being pushed ('%s')" is
#. the <src>.
#.
-#: remote.c:1020
+#: remote.c:1023
#, c-format
msgid ""
"The destination you provided is not a full refname (i.e.,\n"
@@ -5449,7 +5483,7 @@ msgstr ""
"Keines hat funktioniert, sodass wir aufgegeben haben. Sie müssen die\n"
"Referenz mit vollqualifizierten Namen angeben."
-#: remote.c:1040
+#: remote.c:1043
#, c-format
msgid ""
"The <src> part of the refspec is a commit object.\n"
@@ -5460,7 +5494,7 @@ msgstr ""
"Meinten Sie, einen neuen Branch mittels Push nach\n"
"'%s:refs/heads/%s' zu erstellen?"
-#: remote.c:1045
+#: remote.c:1048
#, c-format
msgid ""
"The <src> part of the refspec is a tag object.\n"
@@ -5471,7 +5505,7 @@ msgstr ""
"Meinten Sie, einen neuen Tag mittels Push nach\n"
"'%s:refs/tags/%s' zu erstellen?"
-#: remote.c:1050
+#: remote.c:1053
#, c-format
msgid ""
"The <src> part of the refspec is a tree object.\n"
@@ -5482,7 +5516,7 @@ msgstr ""
"Meinten Sie, einen Tag für ein neues Tree-Objekt\n"
"mittels Push nach '%s:refs/tags/'%s' zu erstellen?"
-#: remote.c:1055
+#: remote.c:1058
#, c-format
msgid ""
"The <src> part of the refspec is a blob object.\n"
@@ -5493,117 +5527,117 @@ msgstr ""
"Meinten Sie, einen Tag für ein neues Blob-Objekt\n"
"mittels Push nach '%s:refs/tags/%s' zu erstellen?"
-#: remote.c:1091
+#: remote.c:1094
#, c-format
msgid "%s cannot be resolved to branch"
msgstr "%s kann nicht zu Branch aufgelöst werden."
-#: remote.c:1102
+#: remote.c:1105
#, c-format
msgid "unable to delete '%s': remote ref does not exist"
msgstr "Konnte '%s' nicht löschen: Remote-Referenz existiert nicht."
-#: remote.c:1114
+#: remote.c:1117
#, c-format
msgid "dst refspec %s matches more than one"
msgstr "Dst-Refspec %s entspricht mehr als einer Referenz."
-#: remote.c:1121
+#: remote.c:1124
#, 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:1624 remote.c:1725
+#: remote.c:1627 remote.c:1728
msgid "HEAD does not point to a branch"
msgstr "HEAD zeigt auf keinen Branch"
-#: remote.c:1633
+#: remote.c:1636
#, c-format
msgid "no such branch: '%s'"
msgstr "Kein solcher Branch: '%s'"
-#: remote.c:1636
+#: remote.c:1639
#, c-format
msgid "no upstream configured for branch '%s'"
msgstr "Kein Upstream-Branch für Branch '%s' konfiguriert."
-#: remote.c:1642
+#: remote.c:1645
#, 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:1657
+#: remote.c:1660
#, 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:1669
+#: remote.c:1672
#, c-format
msgid "branch '%s' has no remote for pushing"
msgstr "Branch '%s' hat keinen Upstream-Branch gesetzt"
-#: remote.c:1679
+#: remote.c:1682
#, c-format
msgid "push refspecs for '%s' do not include '%s'"
msgstr "Push-Refspecs für '%s' beinhalten nicht '%s'"
-#: remote.c:1692
+#: remote.c:1695
msgid "push has no destination (push.default is 'nothing')"
msgstr "kein Ziel für \"push\" (push.default ist 'nothing')"
-#: remote.c:1714
+#: remote.c:1717
msgid "cannot resolve 'simple' push to a single destination"
msgstr "kann einzelnes Ziel für \"push\" im Modus 'simple' nicht auflösen"
-#: remote.c:1840
+#: remote.c:1843
#, c-format
msgid "couldn't find remote ref %s"
msgstr "Konnte Remote-Referenz %s nicht finden."
-#: remote.c:1853
+#: remote.c:1856
#, c-format
msgid "* Ignoring funny ref '%s' locally"
msgstr "* Ignoriere sonderbare Referenz '%s' lokal"
-#: remote.c:2016
+#: remote.c:2019
#, 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:2020
+#: remote.c:2023
msgid " (use \"git branch --unset-upstream\" to fixup)\n"
msgstr " (benutzen Sie \"git branch --unset-upstream\" zum Beheben)\n"
-#: remote.c:2023
+#: remote.c:2026
#, c-format
msgid "Your branch is up to date with '%s'.\n"
msgstr "Ihr Branch ist auf demselben Stand wie '%s'.\n"
-#: remote.c:2027
+#: remote.c:2030
#, c-format
msgid "Your branch and '%s' refer to different commits.\n"
msgstr "Ihr Branch und '%s' zeigen auf unterschiedliche Commits.\n"
-#: remote.c:2030
+#: remote.c:2033
#, c-format
msgid " (use \"%s\" for details)\n"
msgstr " (benutzen Sie \"%s\" für Details)\n"
-#: remote.c:2034
+#: remote.c:2037
#, 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:2040
+#: remote.c:2043
msgid " (use \"git push\" to publish your local commits)\n"
msgstr " (benutzen Sie \"git push\", um lokale Commits zu publizieren)\n"
-#: remote.c:2043
+#: remote.c:2046
#, c-format
msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
msgid_plural ""
@@ -5613,12 +5647,12 @@ msgstr[0] ""
msgstr[1] ""
"Ihr Branch ist %2$d Commits hinter '%1$s', und kann vorgespult werden.\n"
-#: remote.c:2051
+#: remote.c:2054
msgid " (use \"git pull\" to update your local branch)\n"
msgstr ""
" (benutzen Sie \"git pull\", um Ihren lokalen Branch zu aktualisieren)\n"
-#: remote.c:2054
+#: remote.c:2057
#, c-format
msgid ""
"Your branch and '%s' have diverged,\n"
@@ -5633,13 +5667,13 @@ msgstr[1] ""
"Ihr Branch und '%s' sind divergiert,\n"
"und haben jeweils %d und %d unterschiedliche Commits.\n"
-#: remote.c:2064
+#: remote.c:2067
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:2247
+#: remote.c:2250
#, c-format
msgid "cannot parse expected object name '%s'"
msgstr "Kann erwarteten Objektnamen '%s' nicht parsen."
@@ -5717,7 +5751,7 @@ msgstr "Kann '%s' nicht löschen."
msgid "Recorded preimage for '%s'"
msgstr "Preimage für '%s' aufgezeichnet."
-#: rerere.c:881 submodule.c:2023 builtin/log.c:1773
+#: rerere.c:881 submodule.c:2023 builtin/log.c:1790
#: builtin/submodule--helper.c:1418 builtin/submodule--helper.c:1428
#, c-format
msgid "could not create directory '%s'"
@@ -5752,20 +5786,20 @@ msgstr "Aufgezeichnete Konfliktauflösung für '%s' gelöscht.\n"
msgid "unable to open rr-cache directory"
msgstr "Konnte rr-cache Verzeichnis nicht öffnen."
-#: revision.c:2507
+#: revision.c:2509
msgid "your current branch appears to be broken"
msgstr "Ihr aktueller Branch scheint fehlerhaft zu sein."
-#: revision.c:2510
+#: revision.c:2512
#, c-format
msgid "your current branch '%s' does not have any commits yet"
msgstr "Ihr aktueller Branch '%s' hat noch keine Commits."
-#: revision.c:2710
+#: revision.c:2720
msgid "--first-parent is incompatible with --bisect"
msgstr "Die Optionen --first-parent und --bisect sind inkompatibel."
-#: revision.c:2714
+#: revision.c:2724
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"
@@ -5788,30 +5822,30 @@ msgstr ""
"Sie können diese Warnung mit `git config advice.ignoredHook false` "
"deaktivieren."
-#: send-pack.c:141
+#: send-pack.c:142
msgid "unexpected flush packet while reading remote unpack status"
msgstr "Unerwartetes Flush-Paket beim Lesen des Remote-Unpack-Status."
-#: send-pack.c:143
+#: send-pack.c:144
#, c-format
msgid "unable to parse remote unpack status: %s"
msgstr "Konnte Status des Entpackens der Gegenseite nicht parsen: %s"
-#: send-pack.c:145
+#: send-pack.c:146
#, c-format
msgid "remote unpack failed: %s"
msgstr "Entpacken auf der Gegenseite fehlgeschlagen: %s"
-#: send-pack.c:306
+#: send-pack.c:307
msgid "failed to sign the push certificate"
msgstr "Fehler beim Signieren des \"push\"-Zertifikates"
-#: send-pack.c:420
+#: send-pack.c:421
msgid "the receiving end does not support --signed push"
msgstr ""
"die Gegenseite unterstützt keinen signierten Versand (\"--signed push\")"
-#: send-pack.c:422
+#: send-pack.c:423
msgid ""
"not sending a push certificate since the receiving end does not support --"
"signed push"
@@ -5819,11 +5853,11 @@ msgstr ""
"kein Versand des \"push\"-Zertifikates, da die Gegenseite keinen signierten\n"
"Versand (\"--signed push\") unterstützt"
-#: send-pack.c:434
+#: send-pack.c:435
msgid "the receiving end does not support --atomic push"
msgstr "die Gegenseite unterstützt keinen atomaren Versand (\"--atomic push\")"
-#: send-pack.c:439
+#: send-pack.c:440
msgid "the receiving end does not support push options"
msgstr "die Gegenseite unterstützt keine Push-Optionen"
@@ -5837,7 +5871,7 @@ msgstr "Ungültiger \"cleanup\"-Modus '%s' für Commit-Beschreibungen."
msgid "could not delete '%s'"
msgstr "Konnte '%s' nicht löschen."
-#: sequencer.c:311 builtin/rebase.c:759 builtin/rebase.c:1645 builtin/rm.c:369
+#: sequencer.c:311 builtin/rebase.c:760 builtin/rebase.c:1676 builtin/rm.c:369
#, c-format
msgid "could not remove '%s'"
msgstr "Konnte '%s' nicht löschen"
@@ -5877,7 +5911,7 @@ msgstr ""
"mit 'git add <Pfade>' oder 'git rm <Pfade>' und tragen Sie das Ergebnis mit\n"
"'git commit' ein"
-#: sequencer.c:401 sequencer.c:2909
+#: sequencer.c:401 sequencer.c:2847
#, c-format
msgid "could not lock '%s'"
msgstr "Konnte '%s' nicht sperren"
@@ -5887,15 +5921,15 @@ msgstr "Konnte '%s' nicht sperren"
msgid "could not write eol to '%s'"
msgstr "Konnte EOL nicht nach '%s' schreiben."
-#: sequencer.c:413 sequencer.c:2714 sequencer.c:2915 sequencer.c:2929
-#: sequencer.c:3192
+#: sequencer.c:413 sequencer.c:2652 sequencer.c:2853 sequencer.c:2867
+#: sequencer.c:3130
#, c-format
msgid "failed to finalize '%s'"
msgstr "Fehler beim Fertigstellen von '%s'."
-#: sequencer.c:436 sequencer.c:981 sequencer.c:1655 sequencer.c:2734
-#: sequencer.c:3174 sequencer.c:3283 builtin/am.c:245 builtin/commit.c:763
-#: builtin/merge.c:1112 builtin/rebase.c:567
+#: sequencer.c:436 sequencer.c:1585 sequencer.c:2672 sequencer.c:3112
+#: sequencer.c:3221 builtin/am.c:244 builtin/commit.c:763 builtin/merge.c:1117
+#: builtin/rebase.c:568
#, c-format
msgid "could not read '%s'"
msgstr "Konnte '%s' nicht lesen"
@@ -5923,70 +5957,65 @@ msgstr "Ungültiger \"cleanup\" Modus %s"
#. TRANSLATORS: %s will be "revert", "cherry-pick" or
#. "rebase -i".
#.
-#: sequencer.c:632
+#: sequencer.c:631
#, c-format
msgid "%s: Unable to write new index file"
msgstr "%s: Konnte neue Index-Datei nicht schreiben"
-#: sequencer.c:649
+#: sequencer.c:648
msgid "unable to update cache tree"
msgstr "Konnte Cache-Verzeichnis nicht aktualisieren."
-#: sequencer.c:663
+#: sequencer.c:662
msgid "could not resolve HEAD commit"
msgstr "Konnte HEAD-Commit nicht auflösen."
-#: sequencer.c:743
+#: sequencer.c:742
#, c-format
msgid "no key present in '%.*s'"
msgstr "Kein Schlüssel in '%.*s' vorhanden."
-#: sequencer.c:754
+#: sequencer.c:753
#, c-format
msgid "unable to dequote value of '%s'"
msgstr "Konnte Anführungszeichen von '%s' nicht entfernen."
-#: sequencer.c:791 wrapper.c:227 wrapper.c:397 builtin/am.c:706
-#: builtin/am.c:798 builtin/merge.c:1109 builtin/rebase.c:1045
+#: sequencer.c:790 wrapper.c:190 wrapper.c:360 builtin/am.c:705
+#: builtin/am.c:797 builtin/merge.c:1114 builtin/rebase.c:1046
#, c-format
msgid "could not open '%s' for reading"
msgstr "Konnte '%s' nicht zum Lesen öffnen."
-#: sequencer.c:801
+#: sequencer.c:800
msgid "'GIT_AUTHOR_NAME' already given"
msgstr "'GIT_AUTHOR_NAME' bereits angegeben."
-#: sequencer.c:806
+#: sequencer.c:805
msgid "'GIT_AUTHOR_EMAIL' already given"
msgstr "'GIT_AUTHOR_EMAIL' bereits angegeben."
-#: sequencer.c:811
+#: sequencer.c:810
msgid "'GIT_AUTHOR_DATE' already given"
msgstr "'GIT_AUTHOR_DATE' bereits angegeben."
-#: sequencer.c:815
+#: sequencer.c:814
#, c-format
msgid "unknown variable '%s'"
msgstr "Unbekannte Variable '%s'"
-#: sequencer.c:820
+#: sequencer.c:819
msgid "missing 'GIT_AUTHOR_NAME'"
msgstr "'GIT_AUTHOR_NAME' fehlt."
-#: sequencer.c:822
+#: sequencer.c:821
msgid "missing 'GIT_AUTHOR_EMAIL'"
msgstr "'GIT_AUTHOR_EMAIL' fehlt."
-#: sequencer.c:824
+#: sequencer.c:823
msgid "missing 'GIT_AUTHOR_DATE'"
msgstr "'GIT_AUTHOR_DATE' fehlt."
-#: sequencer.c:884
-#, c-format
-msgid "invalid date format '%s' in '%s'"
-msgstr "Ungültiges Datumsformat '%s' in '%s'"
-
-#: sequencer.c:901
+#: sequencer.c:872
#, c-format
msgid ""
"you have staged changes in your working tree\n"
@@ -6017,15 +6046,11 @@ msgstr ""
"\n"
" git rebase --continue\n"
-#: sequencer.c:995
-msgid "writing root commit"
-msgstr "Root-Commit schreiben"
-
-#: sequencer.c:1216
+#: sequencer.c:1146
msgid "'prepare-commit-msg' hook failed"
msgstr "'prepare-commit-msg' Hook fehlgeschlagen."
-#: sequencer.c:1223
+#: sequencer.c:1153
msgid ""
"Your name and email address were configured automatically based\n"
"on your username and hostname. Please check that they are accurate.\n"
@@ -6053,7 +6078,7 @@ msgstr ""
"\n"
" git commit --amend --reset-author\n"
-#: sequencer.c:1236
+#: sequencer.c:1166
msgid ""
"Your name and email address were configured automatically based\n"
"on your username and hostname. Please check that they are accurate.\n"
@@ -6079,327 +6104,327 @@ msgstr ""
"\n"
" git commit --amend --reset-author\n"
-#: sequencer.c:1278
+#: sequencer.c:1208
msgid "couldn't look up newly created commit"
msgstr "Konnte neu erstellten Commit nicht nachschlagen."
-#: sequencer.c:1280
+#: sequencer.c:1210
msgid "could not parse newly created commit"
msgstr "Konnte neu erstellten Commit nicht analysieren."
-#: sequencer.c:1326
+#: sequencer.c:1256
msgid "unable to resolve HEAD after creating commit"
msgstr "Konnte HEAD nicht auflösen, nachdem der Commit erstellt wurde."
-#: sequencer.c:1328
+#: sequencer.c:1258
msgid "detached HEAD"
msgstr "losgelöster HEAD"
-#: sequencer.c:1332
+#: sequencer.c:1262
msgid " (root-commit)"
msgstr " (Root-Commit)"
-#: sequencer.c:1353
+#: sequencer.c:1283
msgid "could not parse HEAD"
msgstr "Konnte HEAD nicht parsen."
-#: sequencer.c:1355
+#: sequencer.c:1285
#, c-format
msgid "HEAD %s is not a commit!"
msgstr "HEAD %s ist kein Commit!"
-#: sequencer.c:1359 builtin/commit.c:1571
+#: sequencer.c:1289 builtin/commit.c:1571
msgid "could not parse HEAD commit"
msgstr "Konnte Commit von HEAD nicht analysieren."
-#: sequencer.c:1411 sequencer.c:2004
+#: sequencer.c:1341 sequencer.c:1933
msgid "unable to parse commit author"
msgstr "Konnte Commit-Autor nicht parsen."
-#: sequencer.c:1421 builtin/am.c:1573 builtin/merge.c:684
+#: sequencer.c:1352 builtin/am.c:1561 builtin/merge.c:684
msgid "git write-tree failed to write a tree"
msgstr "\"git write-tree\" schlug beim Schreiben eines \"Tree\"-Objektes fehl"
-#: sequencer.c:1438 sequencer.c:1499
+#: sequencer.c:1369 sequencer.c:1429
#, c-format
msgid "unable to read commit message from '%s'"
msgstr "Konnte Commit-Beschreibung von '%s' nicht lesen."
-#: sequencer.c:1465 builtin/am.c:1595 builtin/commit.c:1670 builtin/merge.c:878
-#: builtin/merge.c:903
+#: sequencer.c:1396 builtin/am.c:1583 builtin/commit.c:1670 builtin/merge.c:883
+#: builtin/merge.c:908
msgid "failed to write commit object"
msgstr "Fehler beim Schreiben des Commit-Objektes."
-#: sequencer.c:1526
+#: sequencer.c:1456
#, c-format
msgid "could not parse commit %s"
msgstr "Konnte Commit %s nicht parsen."
-#: sequencer.c:1531
+#: sequencer.c:1461
#, c-format
msgid "could not parse parent commit %s"
msgstr "Konnte Eltern-Commit %s nicht parsen."
-#: sequencer.c:1605 sequencer.c:1715
+#: sequencer.c:1535 sequencer.c:1645
#, c-format
msgid "unknown command: %d"
msgstr "Unbekannter Befehl: %d"
-#: sequencer.c:1662 sequencer.c:1687
+#: sequencer.c:1592 sequencer.c:1617
#, c-format
msgid "This is a combination of %d commits."
msgstr "Das ist eine Kombination aus %d Commits."
-#: sequencer.c:1672
+#: sequencer.c:1602
msgid "need a HEAD to fixup"
msgstr "benötige HEAD für fixup"
-#: sequencer.c:1674 sequencer.c:3219
+#: sequencer.c:1604 sequencer.c:3157
msgid "could not read HEAD"
msgstr "Konnte HEAD nicht lesen"
-#: sequencer.c:1676
+#: sequencer.c:1606
msgid "could not read HEAD's commit message"
msgstr "Konnte Commit-Beschreibung von HEAD nicht lesen"
-#: sequencer.c:1682
+#: sequencer.c:1612
#, c-format
msgid "cannot write '%s'"
msgstr "kann '%s' nicht schreiben"
-#: sequencer.c:1689 git-rebase--preserve-merges.sh:496
+#: sequencer.c:1619 git-rebase--preserve-merges.sh:496
msgid "This is the 1st commit message:"
msgstr "Das ist die erste Commit-Beschreibung:"
-#: sequencer.c:1697
+#: sequencer.c:1627
#, c-format
msgid "could not read commit message of %s"
msgstr "Konnte Commit-Beschreibung von %s nicht lesen."
-#: sequencer.c:1704
+#: sequencer.c:1634
#, c-format
msgid "This is the commit message #%d:"
msgstr "Das ist Commit-Beschreibung #%d:"
-#: sequencer.c:1710
+#: sequencer.c:1640
#, c-format
msgid "The commit message #%d will be skipped:"
msgstr "Die Commit-Beschreibung #%d wird ausgelassen:"
-#: sequencer.c:1798
+#: sequencer.c:1728
msgid "your index file is unmerged."
msgstr "Ihre Index-Datei ist nicht zusammengeführt."
-#: sequencer.c:1805
+#: sequencer.c:1735
msgid "cannot fixup root commit"
msgstr "kann fixup nicht auf Root-Commit anwenden"
-#: sequencer.c:1824
+#: sequencer.c:1754
#, 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:1832 sequencer.c:1840
+#: sequencer.c:1762 sequencer.c:1770
#, c-format
msgid "commit %s does not have parent %d"
msgstr "Commit %s hat keinen Eltern-Commit %d"
-#: sequencer.c:1846
+#: sequencer.c:1776
#, 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:1865
+#: sequencer.c:1795
#, c-format
msgid "%s: cannot parse parent commit %s"
msgstr "%s: kann Eltern-Commit %s nicht parsen"
-#: sequencer.c:1930
+#: sequencer.c:1860
#, c-format
msgid "could not rename '%s' to '%s'"
msgstr "Konnte '%s' nicht zu '%s' umbenennen."
-#: sequencer.c:1985
+#: sequencer.c:1915
#, c-format
msgid "could not revert %s... %s"
msgstr "Konnte \"revert\" nicht auf %s... (%s) ausführen"
-#: sequencer.c:1986
+#: sequencer.c:1916
#, c-format
msgid "could not apply %s... %s"
msgstr "Konnte %s... (%s) nicht anwenden"
-#: sequencer.c:2045
+#: sequencer.c:1983
#, c-format
msgid "git %s: failed to read the index"
msgstr "git %s: Fehler beim Lesen des Index"
-#: sequencer.c:2052
+#: sequencer.c:1990
#, c-format
msgid "git %s: failed to refresh the index"
msgstr "git %s: Fehler beim Aktualisieren des Index"
-#: sequencer.c:2128
+#: sequencer.c:2066
#, c-format
msgid "%s does not accept arguments: '%s'"
msgstr "%s akzeptiert keine Argumente: '%s'"
-#: sequencer.c:2137
+#: sequencer.c:2075
#, c-format
msgid "missing arguments for %s"
msgstr "Fehlende Argumente für %s."
-#: sequencer.c:2174
+#: sequencer.c:2112
#, c-format
msgid "could not parse '%.*s'"
msgstr "Konnte '%.*s' nicht parsen."
-#: sequencer.c:2228
+#: sequencer.c:2166
#, c-format
msgid "invalid line %d: %.*s"
msgstr "Ungültige Zeile %d: %.*s"
-#: sequencer.c:2239
+#: sequencer.c:2177
#, c-format
msgid "cannot '%s' without a previous commit"
msgstr "Kann '%s' nicht ohne vorherigen Commit ausführen"
-#: sequencer.c:2287 builtin/rebase.c:153 builtin/rebase.c:178
+#: sequencer.c:2225 builtin/rebase.c:153 builtin/rebase.c:178
#: builtin/rebase.c:204 builtin/rebase.c:229
#, c-format
msgid "could not read '%s'."
msgstr "Konnte '%s' nicht lesen."
-#: sequencer.c:2323
+#: sequencer.c:2261
msgid "cancelling a cherry picking in progress"
msgstr "Abbrechen eines laufenden \"cherry-pick\""
-#: sequencer.c:2330
+#: sequencer.c:2268
msgid "cancelling a revert in progress"
msgstr "Abbrechen eines laufenden \"revert\""
-#: sequencer.c:2364
+#: sequencer.c:2302
msgid "please fix this using 'git rebase --edit-todo'."
msgstr ""
"Bitte beheben Sie dieses, indem Sie 'git rebase --edit-todo' ausführen."
-#: sequencer.c:2366
+#: sequencer.c:2304
#, c-format
msgid "unusable instruction sheet: '%s'"
msgstr "Unbenutzbares Instruktionsblatt: '%s'"
-#: sequencer.c:2371
+#: sequencer.c:2309
msgid "no commits parsed."
msgstr "Keine Commits geparst."
-#: sequencer.c:2382
+#: sequencer.c:2320
msgid "cannot cherry-pick during a revert."
msgstr "Kann Cherry-Pick nicht während eines Reverts ausführen."
-#: sequencer.c:2384
+#: sequencer.c:2322
msgid "cannot revert during a cherry-pick."
msgstr "Kann Revert nicht während eines Cherry-Picks ausführen."
-#: sequencer.c:2466
+#: sequencer.c:2404
#, c-format
msgid "invalid value for %s: %s"
msgstr "Ungültiger Wert für %s: %s"
-#: sequencer.c:2553
+#: sequencer.c:2491
msgid "unusable squash-onto"
msgstr "Unbenutzbares squash-onto."
-#: sequencer.c:2569
+#: sequencer.c:2507
#, c-format
msgid "malformed options sheet: '%s'"
msgstr "Fehlerhaftes Optionsblatt: '%s'"
-#: sequencer.c:2652 sequencer.c:4351
+#: sequencer.c:2590 sequencer.c:4308
msgid "empty commit set passed"
msgstr "leere Menge von Commits übergeben"
-#: sequencer.c:2668
+#: sequencer.c:2606
msgid "revert is already in progress"
msgstr "\"revert\" ist bereits im Gange"
-#: sequencer.c:2670
+#: sequencer.c:2608
#, c-format
msgid "try \"git revert (--continue | %s--abort | --quit)\""
msgstr "Versuchen Sie \"git revert (--continue | %s--abort | --quit)\""
-#: sequencer.c:2673
+#: sequencer.c:2611
msgid "cherry-pick is already in progress"
msgstr "\"cherry-pick\" wird bereits durchgeführt"
-#: sequencer.c:2675
+#: sequencer.c:2613
#, c-format
msgid "try \"git cherry-pick (--continue | %s--abort | --quit)\""
msgstr "Versuchen Sie \"git cherry-pick (--continue | %s--abort | --quit)\""
-#: sequencer.c:2689
+#: sequencer.c:2627
#, c-format
msgid "could not create sequencer directory '%s'"
msgstr "Konnte \"sequencer\"-Verzeichnis '%s' nicht erstellen."
-#: sequencer.c:2704
+#: sequencer.c:2642
msgid "could not lock HEAD"
msgstr "Konnte HEAD nicht sperren"
-#: sequencer.c:2764 sequencer.c:4103
+#: sequencer.c:2702 sequencer.c:4057
msgid "no cherry-pick or revert in progress"
msgstr "kein \"cherry-pick\" oder \"revert\" im Gange"
-#: sequencer.c:2766 sequencer.c:2777
+#: sequencer.c:2704 sequencer.c:2715
msgid "cannot resolve HEAD"
msgstr "kann HEAD nicht auflösen"
-#: sequencer.c:2768 sequencer.c:2812
+#: sequencer.c:2706 sequencer.c:2750
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:2798 builtin/grep.c:734
+#: sequencer.c:2736 builtin/grep.c:736
#, c-format
msgid "cannot open '%s'"
msgstr "kann '%s' nicht öffnen"
-#: sequencer.c:2800
+#: sequencer.c:2738
#, c-format
msgid "cannot read '%s': %s"
msgstr "Kann '%s' nicht lesen: %s"
-#: sequencer.c:2801
+#: sequencer.c:2739
msgid "unexpected end of file"
msgstr "Unerwartetes Dateiende"
-#: sequencer.c:2807
+#: sequencer.c:2745
#, 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:2818
+#: sequencer.c:2756
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:2859
+#: sequencer.c:2797
msgid "no revert in progress"
msgstr "Kein Revert im Gange"
-#: sequencer.c:2867
+#: sequencer.c:2805
msgid "no cherry-pick in progress"
msgstr "kein \"cherry-pick\" im Gange"
-#: sequencer.c:2877
+#: sequencer.c:2815
msgid "failed to skip the commit"
msgstr "Ãœberspringen des Commits fehlgeschlagen"
-#: sequencer.c:2884
+#: sequencer.c:2822
msgid "there is nothing to skip"
msgstr "Nichts zum Ãœberspringen vorhanden"
-#: sequencer.c:2887
+#: sequencer.c:2825
#, c-format
msgid ""
"have you committed already?\n"
@@ -6408,21 +6433,21 @@ msgstr ""
"Haben Sie bereits committet?\n"
"Versuchen Sie \"git %s --continue\""
-#: sequencer.c:3011 sequencer.c:4015
+#: sequencer.c:2949 sequencer.c:3969
#, c-format
msgid "could not update %s"
msgstr "Konnte %s nicht aktualisieren."
-#: sequencer.c:3049 sequencer.c:3995
+#: sequencer.c:2987 sequencer.c:3949
msgid "cannot read HEAD"
msgstr "Kann HEAD nicht lesen"
-#: sequencer.c:3066
+#: sequencer.c:3004
#, c-format
msgid "unable to copy '%s' to '%s'"
msgstr "Konnte '%s' nicht nach '%s' kopieren."
-#: sequencer.c:3074
+#: sequencer.c:3012
#, c-format
msgid ""
"You can amend the commit now, with\n"
@@ -6441,27 +6466,27 @@ msgstr ""
"\n"
" git rebase --continue\n"
-#: sequencer.c:3084
+#: sequencer.c:3022
#, c-format
msgid "Could not apply %s... %.*s"
msgstr "Konnte %s... (%.*s) nicht anwenden"
-#: sequencer.c:3091
+#: sequencer.c:3029
#, c-format
msgid "Could not merge %.*s"
msgstr "Konnte \"%.*s\" nicht zusammenführen."
-#: sequencer.c:3105 sequencer.c:3109 builtin/difftool.c:633
+#: sequencer.c:3043 sequencer.c:3047 builtin/difftool.c:641
#, c-format
msgid "could not copy '%s' to '%s'"
msgstr "Konnte '%s' nicht nach '%s' kopieren."
-#: sequencer.c:3131 sequencer.c:3558 builtin/rebase.c:849 builtin/rebase.c:1582
-#: builtin/rebase.c:1953 builtin/rebase.c:2008
+#: sequencer.c:3069 sequencer.c:3506 builtin/rebase.c:850 builtin/rebase.c:1613
+#: builtin/rebase.c:1987 builtin/rebase.c:2031
msgid "could not read index"
msgstr "Konnte den Index nicht lesen."
-#: sequencer.c:3136
+#: sequencer.c:3074
#, c-format
msgid ""
"execution failed: %s\n"
@@ -6477,11 +6502,11 @@ msgstr ""
"\n"
"ausführen.\n"
-#: sequencer.c:3142
+#: sequencer.c:3080
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:3148
+#: sequencer.c:3086
#, c-format
msgid ""
"execution succeeded: %s\n"
@@ -6499,77 +6524,77 @@ msgstr ""
" git rebase --continue\n"
"\n"
-#: sequencer.c:3209
+#: sequencer.c:3147
#, c-format
msgid "illegal label name: '%.*s'"
msgstr "Unerlaubter Beschriftungsname: '%.*s'"
-#: sequencer.c:3263
+#: sequencer.c:3201
msgid "writing fake root commit"
msgstr "unechten Root-Commit schreiben"
-#: sequencer.c:3268
+#: sequencer.c:3206
msgid "writing squash-onto"
msgstr "squash-onto schreiben"
-#: sequencer.c:3306 builtin/rebase.c:854 builtin/rebase.c:860
+#: sequencer.c:3244 builtin/rebase.c:855 builtin/rebase.c:861
#, c-format
msgid "failed to find tree of %s"
msgstr "Fehler beim Finden des \"Tree\"-Objektes von %s."
-#: sequencer.c:3324 builtin/rebase.c:873
+#: sequencer.c:3262 builtin/rebase.c:874
msgid "could not write index"
msgstr "Konnte Index nicht schreiben."
-#: sequencer.c:3351
+#: sequencer.c:3289
#, c-format
msgid "could not resolve '%s'"
msgstr "Konnte '%s' nicht auflösen."
-#: sequencer.c:3379
+#: sequencer.c:3320
msgid "cannot merge without a current revision"
msgstr "Kann nicht ohne einen aktuellen Commit mergen."
-#: sequencer.c:3401
+#: sequencer.c:3342
#, c-format
msgid "unable to parse '%.*s'"
msgstr "Konnte '%.*s' nicht parsen."
-#: sequencer.c:3410
+#: sequencer.c:3351
#, c-format
msgid "nothing to merge: '%.*s'"
msgstr "Nichts zum Zusammenführen: '%.*s'"
-#: sequencer.c:3422
+#: sequencer.c:3363
msgid "octopus merge cannot be executed on top of a [new root]"
msgstr ""
"Octupus-Merge kann nicht auf Basis von [neuem Root-Commit] ausgeführt werden."
-#: sequencer.c:3437
+#: sequencer.c:3378
#, c-format
msgid "could not get commit message of '%s'"
msgstr "Konnte keine Commit-Beschreibung von '%s' bekommen."
-#: sequencer.c:3590
+#: sequencer.c:3538
#, c-format
msgid "could not even attempt to merge '%.*s'"
msgstr "Konnte nicht einmal versuchen '%.*s' zu mergen."
-#: sequencer.c:3606
+#: sequencer.c:3554
msgid "merge: Unable to write new index file"
msgstr "merge: Konnte neue Index-Datei nicht schreiben."
-#: sequencer.c:3675 builtin/rebase.c:711
+#: sequencer.c:3623 builtin/rebase.c:712
#, c-format
msgid "Applied autostash.\n"
msgstr "Automatischen Stash angewendet.\n"
-#: sequencer.c:3687
+#: sequencer.c:3635
#, c-format
msgid "cannot store %s"
msgstr "kann %s nicht speichern"
-#: sequencer.c:3690 builtin/rebase.c:727 git-rebase--preserve-merges.sh:113
+#: sequencer.c:3638 builtin/rebase.c:728 git-rebase--preserve-merges.sh:113
#, c-format
msgid ""
"Applying autostash resulted in conflicts.\n"
@@ -6580,31 +6605,31 @@ msgstr ""
"Ihre Änderungen sind im Stash sicher.\n"
"Sie können jederzeit \"git stash pop\" oder \"git stash drop\" ausführen.\n"
-#: sequencer.c:3751
+#: sequencer.c:3699
#, c-format
msgid "could not checkout %s"
msgstr "Konnte %s nicht auschecken."
-#: sequencer.c:3765
+#: sequencer.c:3713
#, c-format
msgid "%s: not a valid OID"
msgstr "%s: keine gültige OID"
-#: sequencer.c:3770 git-rebase--preserve-merges.sh:779
+#: sequencer.c:3718 git-rebase--preserve-merges.sh:779
msgid "could not detach HEAD"
msgstr "Konnte HEAD nicht loslösen"
-#: sequencer.c:3785
+#: sequencer.c:3733
#, c-format
msgid "Stopped at HEAD\n"
msgstr "Angehalten bei HEAD\n"
-#: sequencer.c:3787
+#: sequencer.c:3735
#, c-format
msgid "Stopped at %s\n"
msgstr "Angehalten bei %s\n"
-#: sequencer.c:3795
+#: sequencer.c:3743
#, c-format
msgid ""
"Could not execute the todo command\n"
@@ -6626,50 +6651,50 @@ msgstr ""
" git rebase --edit-todo\n"
" git rebase --continue\n"
-#: sequencer.c:3877
+#: sequencer.c:3827
#, c-format
msgid "Stopped at %s... %.*s\n"
msgstr "Angehalten bei %s... %.*s\n"
-#: sequencer.c:3958
+#: sequencer.c:3898
#, c-format
msgid "unknown command %d"
msgstr "Unbekannter Befehl %d"
-#: sequencer.c:4003
+#: sequencer.c:3957
msgid "could not read orig-head"
msgstr "Konnte orig-head nicht lesen."
-#: sequencer.c:4008
+#: sequencer.c:3962
msgid "could not read 'onto'"
msgstr "Konnte 'onto' nicht lesen."
-#: sequencer.c:4022
+#: sequencer.c:3976
#, c-format
msgid "could not update HEAD to %s"
msgstr "Konnte HEAD nicht auf %s aktualisieren."
-#: sequencer.c:4115
+#: sequencer.c:4069
msgid "cannot rebase: You have unstaged changes."
msgstr ""
"Rebase nicht möglich: Sie haben Änderungen, die nicht zum Commit\n"
"vorgemerkt sind."
-#: sequencer.c:4124
+#: sequencer.c:4078
msgid "cannot amend non-existing commit"
msgstr "Kann nicht existierenden Commit nicht nachbessern."
-#: sequencer.c:4126
+#: sequencer.c:4080
#, c-format
msgid "invalid file: '%s'"
msgstr "Ungültige Datei: '%s'"
-#: sequencer.c:4128
+#: sequencer.c:4082
#, c-format
msgid "invalid contents: '%s'"
msgstr "Ungültige Inhalte: '%s'"
-#: sequencer.c:4131
+#: sequencer.c:4085
msgid ""
"\n"
"You have uncommitted changes in your working tree. Please, commit them\n"
@@ -6680,42 +6705,42 @@ msgstr ""
"committen Sie diese zuerst und führen Sie dann 'git rebase --continue'\n"
"erneut aus."
-#: sequencer.c:4167 sequencer.c:4205
+#: sequencer.c:4121 sequencer.c:4159
#, c-format
msgid "could not write file: '%s'"
msgstr "Konnte Datei nicht schreiben: '%s'"
-#: sequencer.c:4220
+#: sequencer.c:4174
msgid "could not remove CHERRY_PICK_HEAD"
msgstr "Konnte CHERRY_PICK_HEAD nicht löschen."
-#: sequencer.c:4227
+#: sequencer.c:4181
msgid "could not commit staged changes."
msgstr "Konnte Änderungen aus der Staging-Area nicht committen."
-#: sequencer.c:4328
+#: sequencer.c:4285
#, c-format
msgid "%s: can't cherry-pick a %s"
msgstr "%s: %s kann nicht in \"cherry-pick\" benutzt werden"
-#: sequencer.c:4332
+#: sequencer.c:4289
#, c-format
msgid "%s: bad revision"
msgstr "%s: ungültiger Commit"
-#: sequencer.c:4367
+#: sequencer.c:4324
msgid "can't revert as initial commit"
msgstr "Kann nicht als allerersten Commit einen Revert ausführen."
-#: sequencer.c:4810
+#: sequencer.c:4774
msgid "make_script: unhandled options"
msgstr "make_script: unbehandelte Optionen"
-#: sequencer.c:4813
+#: sequencer.c:4777
msgid "make_script: error preparing revisions"
msgstr "make_script: Fehler beim Vorbereiten der Commits"
-#: sequencer.c:4971
+#: sequencer.c:4935
msgid ""
"You can fix this with 'git rebase --edit-todo' and then run 'git rebase --"
"continue'.\n"
@@ -6725,24 +6750,24 @@ msgstr ""
"'git rebase --continue' aus.\n"
"Oder Sie können den Rebase mit 'git rebase --abort' abbrechen.\n"
-#: sequencer.c:5083 sequencer.c:5100
+#: sequencer.c:5047 sequencer.c:5064
msgid "nothing to do"
msgstr "Nichts zu tun."
-#: sequencer.c:5114
+#: sequencer.c:5078
msgid "could not skip unnecessary pick commands"
msgstr "Konnte unnötige \"pick\"-Befehle nicht auslassen."
-#: sequencer.c:5197
+#: sequencer.c:5166
msgid "the script was already rearranged."
msgstr "Das Script wurde bereits umgeordnet."
-#: setup.c:123
+#: setup.c:124
#, c-format
msgid "'%s' is outside repository"
msgstr "'%s' liegt außerhalb des Repositories."
-#: setup.c:173
+#: setup.c:174
#, c-format
msgid ""
"%s: no such path in the working tree.\n"
@@ -6752,7 +6777,7 @@ msgstr ""
"Benutzen Sie 'git <Befehl> -- <Pfad>...' zur Angabe von Pfaden, die lokal\n"
"nicht existieren."
-#: setup.c:186
+#: setup.c:187
#, c-format
msgid ""
"ambiguous argument '%s': unknown revision or path not in the working tree.\n"
@@ -6764,13 +6789,13 @@ msgstr ""
"Benutzen Sie '--', um Pfade und Commits zu trennen, ähnlich wie:\n"
"'git <Befehl> [<Commit>...] -- [<Datei>...]'"
-#: setup.c:235
+#: setup.c:236
#, 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:254
+#: setup.c:255
#, c-format
msgid ""
"ambiguous argument '%s': both revision and filename\n"
@@ -6781,93 +6806,93 @@ msgstr ""
"Benutzen Sie '--', um Pfade und Commits zu trennen, ähnlich wie:\n"
"'git <Befehl> [<Commit>...] -- [<Datei>...]'"
-#: setup.c:390
+#: setup.c:391
msgid "unable to set up work tree using invalid config"
msgstr ""
"Konnte Arbeitsverzeichnis mit ungültiger Konfiguration nicht einrichten."
-#: setup.c:394
+#: setup.c:395
msgid "this operation must be run in a work tree"
msgstr "Diese Operation muss in einem Arbeitsverzeichnis ausgeführt werden."
-#: setup.c:540
+#: setup.c:541
#, c-format
msgid "Expected git repo version <= %d, found %d"
msgstr "Erwartete Git-Repository-Version <= %d, %d gefunden"
-#: setup.c:548
+#: setup.c:549
msgid "unknown repository extensions found:"
msgstr "Unbekannte Repository-Erweiterungen gefunden:"
-#: setup.c:567
+#: setup.c:568
#, c-format
msgid "error opening '%s'"
msgstr "Fehler beim Öffnen von '%s'."
-#: setup.c:569
+#: setup.c:570
#, c-format
msgid "too large to be a .git file: '%s'"
msgstr "Zu groß, um eine .git-Datei zu sein: '%s'"
-#: setup.c:571
+#: setup.c:572
#, c-format
msgid "error reading %s"
msgstr "Fehler beim Lesen von '%s'."
-#: setup.c:573
+#: setup.c:574
#, c-format
msgid "invalid gitfile format: %s"
msgstr "Ungültiges gitfile-Format: %s"
-#: setup.c:575
+#: setup.c:576
#, c-format
msgid "no path in gitfile: %s"
msgstr "Kein Pfad in gitfile: %s"
-#: setup.c:577
+#: setup.c:578
#, c-format
msgid "not a git repository: %s"
msgstr "Kein Git-Repository: %s"
-#: setup.c:676
+#: setup.c:677
#, c-format
msgid "'$%s' too big"
msgstr "'$%s' zu groß"
-#: setup.c:690
+#: setup.c:691
#, c-format
msgid "not a git repository: '%s'"
msgstr "Kein Git-Repository: '%s'"
-#: setup.c:719 setup.c:721 setup.c:752
+#: setup.c:720 setup.c:722 setup.c:753
#, c-format
msgid "cannot chdir to '%s'"
msgstr "Kann nicht in Verzeichnis '%s' wechseln."
-#: setup.c:724 setup.c:780 setup.c:790 setup.c:829 setup.c:837
+#: setup.c:725 setup.c:781 setup.c:791 setup.c:830 setup.c:838
msgid "cannot come back to cwd"
msgstr "Kann nicht zum aktuellen Arbeitsverzeichnis zurückwechseln."
-#: setup.c:851
+#: setup.c:852
#, c-format
msgid "failed to stat '%*s%s%s'"
msgstr "Konnte '%*s%s%s' nicht lesen."
-#: setup.c:1083
+#: setup.c:1090
msgid "Unable to read current working directory"
msgstr "Konnte aktuelles Arbeitsverzeichnis nicht lesen."
-#: setup.c:1092 setup.c:1098
+#: setup.c:1099 setup.c:1105
#, c-format
msgid "cannot change to '%s'"
msgstr "Kann nicht nach '%s' wechseln."
-#: setup.c:1103
+#: setup.c:1110
#, 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:1109
+#: setup.c:1116
#, c-format
msgid ""
"not a git repository (or any parent up to mount point %s)\n"
@@ -6877,7 +6902,7 @@ msgstr ""
"%s)\n"
"Stoppe bei Dateisystemgrenze (GIT_DISCOVERY_ACROSS_FILESYSTEM nicht gesetzt)."
-#: setup.c:1220
+#: setup.c:1227
#, c-format
msgid ""
"problem with core.sharedRepository filemode value (0%.3o).\n"
@@ -6886,290 +6911,290 @@ 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:1264
+#: setup.c:1271
msgid "open /dev/null or dup failed"
msgstr "Öffnen von /dev/null oder dup fehlgeschlagen."
-#: setup.c:1279
+#: setup.c:1286
msgid "fork failed"
msgstr "fork fehlgeschlagen"
-#: setup.c:1284
+#: setup.c:1291
msgid "setsid failed"
msgstr "setsid fehlgeschlagen"
-#: sha1-file.c:453
+#: sha1-file.c:452
#, 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"
-#: sha1-file.c:504
+#: sha1-file.c:503
#, c-format
msgid "unable to normalize alternate object path: %s"
msgstr "Konnte alternativen Objektpfad '%s' nicht normalisieren."
-#: sha1-file.c:576
+#: sha1-file.c:575
#, c-format
msgid "%s: ignoring alternate object stores, nesting too deep"
msgstr "%s: ignoriere alternative Objektspeicher - Verschachtelung zu tief"
-#: sha1-file.c:583
+#: sha1-file.c:582
#, c-format
msgid "unable to normalize object directory: %s"
msgstr "Konnte Objektverzeichnis '%s' nicht normalisieren."
-#: sha1-file.c:626
+#: sha1-file.c:625
msgid "unable to fdopen alternates lockfile"
msgstr "Konnte fdopen nicht auf Lock-Datei für \"alternates\" aufrufen."
-#: sha1-file.c:644
+#: sha1-file.c:643
msgid "unable to read alternates file"
msgstr "Konnte \"alternates\"-Datei nicht lesen."
-#: sha1-file.c:651
+#: sha1-file.c:650
msgid "unable to move new alternates file into place"
msgstr "Konnte neue \"alternates\"-Datei nicht übernehmen."
-#: sha1-file.c:686
+#: sha1-file.c:685
#, c-format
msgid "path '%s' does not exist"
msgstr "Pfad '%s' existiert nicht"
-#: sha1-file.c:712
+#: sha1-file.c:711
#, 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."
-#: sha1-file.c:718
+#: sha1-file.c:717
#, c-format
msgid "reference repository '%s' is not a local repository."
msgstr "Referenziertes Repository '%s' ist kein lokales Repository."
-#: sha1-file.c:724
+#: sha1-file.c:723
#, c-format
msgid "reference repository '%s' is shallow"
msgstr ""
"Referenziertes Repository '%s' hat eine unvollständige Historie (shallow)."
-#: sha1-file.c:732
+#: sha1-file.c:731
#, c-format
msgid "reference repository '%s' is grafted"
msgstr ""
"Referenziertes Repository '%s' ist mit künstlichen Vorgängern (\"grafts\") "
"eingehängt."
-#: sha1-file.c:792
+#: sha1-file.c:791
#, c-format
msgid "invalid line while parsing alternate refs: %s"
msgstr "Ungültige Zeile beim Parsen alternativer Referenzen: %s"
-#: sha1-file.c:944
+#: sha1-file.c:943
#, c-format
msgid "attempting to mmap %<PRIuMAX> over limit %<PRIuMAX>"
msgstr "Versuche mmap %<PRIuMAX> über Limit %<PRIuMAX>."
-#: sha1-file.c:969
+#: sha1-file.c:964
msgid "mmap failed"
msgstr "mmap fehlgeschlagen"
-#: sha1-file.c:1133
+#: sha1-file.c:1128
#, c-format
msgid "object file %s is empty"
msgstr "Objektdatei %s ist leer."
-#: sha1-file.c:1257 sha1-file.c:2396
+#: sha1-file.c:1252 sha1-file.c:2392
#, c-format
msgid "corrupt loose object '%s'"
msgstr "Fehlerhaftes loses Objekt '%s'."
-#: sha1-file.c:1259 sha1-file.c:2400
+#: sha1-file.c:1254 sha1-file.c:2396
#, c-format
msgid "garbage at end of loose object '%s'"
msgstr "Nutzlose Daten am Ende von losem Objekt '%s'."
-#: sha1-file.c:1301
+#: sha1-file.c:1296
msgid "invalid object type"
msgstr "ungültiger Objekt-Typ"
-#: sha1-file.c:1385
+#: sha1-file.c:1380
#, c-format
msgid "unable to unpack %s header with --allow-unknown-type"
msgstr "Konnte %s Kopfbereich nicht mit --allow-unknown-type entpacken."
-#: sha1-file.c:1388
+#: sha1-file.c:1383
#, c-format
msgid "unable to unpack %s header"
msgstr "Konnte %s Kopfbereich nicht entpacken."
-#: sha1-file.c:1394
+#: sha1-file.c:1389
#, c-format
msgid "unable to parse %s header with --allow-unknown-type"
msgstr "Konnte %s Kopfbereich mit --allow-unknown-type nicht parsen."
-#: sha1-file.c:1397
+#: sha1-file.c:1392
#, c-format
msgid "unable to parse %s header"
msgstr "Konnte %s Kopfbereich nicht parsen."
-#: sha1-file.c:1588
+#: sha1-file.c:1584
#, c-format
msgid "failed to read object %s"
msgstr "Konnte Objekt %s nicht lesen."
-#: sha1-file.c:1592
+#: sha1-file.c:1588
#, c-format
msgid "replacement %s not found for %s"
msgstr "Ersetzung %s für %s nicht gefunden."
-#: sha1-file.c:1596
+#: sha1-file.c:1592
#, c-format
msgid "loose object %s (stored in %s) is corrupt"
msgstr "Loses Objekt %s (gespeichert in %s) ist beschädigt."
-#: sha1-file.c:1600
+#: sha1-file.c:1596
#, c-format
msgid "packed object %s (stored in %s) is corrupt"
msgstr "Gepacktes Objekt %s (gespeichert in %s) ist beschädigt."
-#: sha1-file.c:1703
+#: sha1-file.c:1699
#, c-format
msgid "unable to write file %s"
msgstr "Konnte Datei %s nicht schreiben."
-#: sha1-file.c:1710
+#: sha1-file.c:1706
#, c-format
msgid "unable to set permission to '%s'"
msgstr "Konnte Zugriffsberechtigung auf '%s' nicht setzen."
-#: sha1-file.c:1717
+#: sha1-file.c:1713
msgid "file write error"
msgstr "Fehler beim Schreiben einer Datei."
-#: sha1-file.c:1736
+#: sha1-file.c:1732
msgid "error when closing loose object file"
msgstr "Fehler beim Schließen der Datei für lose Objekte."
-#: sha1-file.c:1801
+#: sha1-file.c:1797
#, 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"
-#: sha1-file.c:1803
+#: sha1-file.c:1799
msgid "unable to create temporary file"
msgstr "Konnte temporäre Datei nicht erstellen."
-#: sha1-file.c:1827
+#: sha1-file.c:1823
msgid "unable to write loose object file"
msgstr "Fehler beim Schreiben der Datei für lose Objekte."
-#: sha1-file.c:1833
+#: sha1-file.c:1829
#, c-format
msgid "unable to deflate new object %s (%d)"
msgstr "Konnte neues Objekt %s (%d) nicht komprimieren."
-#: sha1-file.c:1837
+#: sha1-file.c:1833
#, c-format
msgid "deflateEnd on object %s failed (%d)"
msgstr "deflateEnd auf Objekt %s fehlgeschlagen (%d)"
-#: sha1-file.c:1841
+#: sha1-file.c:1837
#, c-format
msgid "confused by unstable object source data for %s"
msgstr "Fehler wegen instabilen Objektquelldaten für %s"
-#: sha1-file.c:1851 builtin/pack-objects.c:925
+#: sha1-file.c:1847 builtin/pack-objects.c:925
#, c-format
msgid "failed utime() on %s"
msgstr "Fehler beim Aufruf von utime() auf '%s'."
-#: sha1-file.c:1926
+#: sha1-file.c:1922
#, c-format
msgid "cannot read object for %s"
msgstr "Kann Objekt für %s nicht lesen."
-#: sha1-file.c:1966
+#: sha1-file.c:1962
msgid "corrupt commit"
msgstr "fehlerhafter Commit"
-#: sha1-file.c:1974
+#: sha1-file.c:1970
msgid "corrupt tag"
msgstr "fehlerhaftes Tag"
-#: sha1-file.c:2073
+#: sha1-file.c:2069
#, c-format
msgid "read error while indexing %s"
msgstr "Lesefehler beim Indizieren von '%s'."
-#: sha1-file.c:2076
+#: sha1-file.c:2072
#, c-format
msgid "short read while indexing %s"
msgstr "read() zu kurz beim Indizieren von '%s'."
-#: sha1-file.c:2149 sha1-file.c:2158
+#: sha1-file.c:2145 sha1-file.c:2154
#, c-format
msgid "%s: failed to insert into database"
msgstr "%s: Fehler beim Einfügen in die Datenbank"
-#: sha1-file.c:2164
+#: sha1-file.c:2160
#, c-format
msgid "%s: unsupported file type"
msgstr "%s: nicht unterstützte Dateiart"
-#: sha1-file.c:2188
+#: sha1-file.c:2184
#, c-format
msgid "%s is not a valid object"
msgstr "%s ist kein gültiges Objekt"
-#: sha1-file.c:2190
+#: sha1-file.c:2186
#, c-format
msgid "%s is not a valid '%s' object"
msgstr "%s ist kein gültiges '%s' Objekt"
-#: sha1-file.c:2217 builtin/index-pack.c:155
+#: sha1-file.c:2213 builtin/index-pack.c:155
#, c-format
msgid "unable to open %s"
msgstr "kann %s nicht öffnen"
-#: sha1-file.c:2407 sha1-file.c:2459
+#: sha1-file.c:2403 sha1-file.c:2455
#, c-format
msgid "hash mismatch for %s (expected %s)"
msgstr "Hash für %s stimmt nicht überein (%s erwartet)."
-#: sha1-file.c:2431
+#: sha1-file.c:2427
#, c-format
msgid "unable to mmap %s"
msgstr "Konnte mmap nicht auf %s ausführen."
-#: sha1-file.c:2436
+#: sha1-file.c:2432
#, c-format
msgid "unable to unpack header of %s"
msgstr "Konnte Kopfbereich von %s nicht entpacken."
-#: sha1-file.c:2442
+#: sha1-file.c:2438
#, c-format
msgid "unable to parse header of %s"
msgstr "Konnte Kopfbereich von %s nicht parsen."
-#: sha1-file.c:2453
+#: sha1-file.c:2449
#, c-format
msgid "unable to unpack contents of %s"
msgstr "Konnte Inhalt von %s nicht entpacken."
-#: sha1-name.c:490
+#: sha1-name.c:487
#, c-format
msgid "short SHA1 %s is ambiguous"
msgstr "Kurzer SHA-1 %s ist mehrdeutig."
-#: sha1-name.c:501
+#: sha1-name.c:498
msgid "The candidates are:"
msgstr "Die Kandidaten sind:"
-#: sha1-name.c:800
+#: sha1-name.c:797
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"
@@ -7195,43 +7220,43 @@ msgstr ""
"ausführen."
#. TRANSLATORS: IEC 80000-13:2008 gibibyte
-#: strbuf.c:821
+#: strbuf.c:822
#, c-format
msgid "%u.%2.2u GiB"
msgstr "%u.%2.2u GiB"
#. TRANSLATORS: IEC 80000-13:2008 gibibyte/second
-#: strbuf.c:823
+#: strbuf.c:824
#, c-format
msgid "%u.%2.2u GiB/s"
msgstr "%u.%2.2u GiB/s"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte
-#: strbuf.c:831
+#: strbuf.c:832
#, c-format
msgid "%u.%2.2u MiB"
msgstr "%u.%2.2u MiB"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte/second
-#: strbuf.c:833
+#: strbuf.c:834
#, c-format
msgid "%u.%2.2u MiB/s"
msgstr "%u.%2.2u MiB/s"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte
-#: strbuf.c:840
+#: strbuf.c:841
#, c-format
msgid "%u.%2.2u KiB"
msgstr "%u.%2.2u KiB"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte/second
-#: strbuf.c:842
+#: strbuf.c:843
#, c-format
msgid "%u.%2.2u KiB/s"
msgstr "%u.%2.2u KiB/s"
#. TRANSLATORS: IEC 80000-13:2008 byte
-#: strbuf.c:848
+#: strbuf.c:849
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -7239,7 +7264,7 @@ msgstr[0] "%u Byte"
msgstr[1] "%u Bytes"
#. TRANSLATORS: IEC 80000-13:2008 byte/second
-#: strbuf.c:850
+#: strbuf.c:851
#, c-format
msgid "%u byte/s"
msgid_plural "%u bytes/s"
@@ -7358,28 +7383,28 @@ msgstr "Konnte 'ls-files' nicht in .. starten"
msgid "ls-tree returned unexpected return code %d"
msgstr "ls-tree mit unerwartetem Rückgabewert %d beendet"
-#: submodule-config.c:232
+#: submodule-config.c:236
#, c-format
msgid "ignoring suspicious submodule name: %s"
msgstr "Ignoriere verdächtigen Submodulnamen: %s"
-#: submodule-config.c:299
+#: submodule-config.c:303
msgid "negative values not allowed for submodule.fetchjobs"
msgstr "Negative Werte für submodule.fetchjobs nicht erlaubt."
-#: submodule-config.c:397
+#: submodule-config.c:401
#, 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:486
+#: submodule-config.c:490
#, c-format
msgid "invalid value for %s"
msgstr "Ungültiger Wert für %s"
-#: submodule-config.c:755
+#: submodule-config.c:761
#, c-format
msgid "Could not update .gitmodules entry %s"
msgstr "Konnte Eintrag '%s' in .gitmodules nicht aktualisieren"
@@ -7414,7 +7439,7 @@ msgstr "Konnte Eingabe-Datei '%s' nicht lesen"
msgid "could not read from stdin"
msgstr "konnte nicht von der Standard-Eingabe lesen"
-#: trailer.c:1011 wrapper.c:701
+#: trailer.c:1011 wrapper.c:665
#, c-format
msgid "could not stat %s"
msgstr "Konnte '%s' nicht lesen"
@@ -7443,47 +7468,47 @@ msgstr "konnte temporäre Datei nicht zu %s umbenennen"
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:142
+#: transport.c:145
#, c-format
msgid "could not read bundle '%s'"
msgstr "Konnte Paket '%s' nicht lesen."
-#: transport.c:208
+#: transport.c:214
#, c-format
msgid "transport: invalid depth option '%s'"
msgstr "transport: ungültige --depth Option '%s'"
-#: transport.c:259
+#: transport.c:266
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:260
+#: transport.c:267
msgid "server options require protocol version 2 or later"
msgstr "Server-Optionen benötigen Protokoll-Version 2 oder höher"
-#: transport.c:625
+#: transport.c:632
msgid "could not parse transport.color.* config"
msgstr "Konnte transport.color.* Konfiguration nicht parsen."
-#: transport.c:698
+#: transport.c:705
msgid "support for protocol v2 not implemented yet"
msgstr "Unterstützung für Protokoll v2 noch nicht implementiert."
-#: transport.c:825
+#: transport.c:831
#, c-format
msgid "unknown value for config '%s': %s"
msgstr "Unbekannter Wert für Konfiguration '%s': %s"
-#: transport.c:891
+#: transport.c:897
#, c-format
msgid "transport '%s' not allowed"
msgstr "Ãœbertragungsart '%s' nicht erlaubt."
-#: transport.c:945
+#: transport.c:949
msgid "git-over-rsync is no longer supported"
msgstr "git-over-rsync wird nicht länger unterstützt."
-#: transport.c:1040
+#: transport.c:1044
#, c-format
msgid ""
"The following submodule paths contain changes that can\n"
@@ -7492,7 +7517,7 @@ msgstr ""
"Die folgenden Submodul-Pfade enthalten Änderungen, die in keinem\n"
"Remote-Repository gefunden wurden:\n"
-#: transport.c:1044
+#: transport.c:1048
#, c-format
msgid ""
"\n"
@@ -7519,34 +7544,34 @@ msgstr ""
"zum Versenden zu einem Remote-Repository.\n"
"\n"
-#: transport.c:1052
+#: transport.c:1056
msgid "Aborting."
msgstr "Abbruch."
-#: transport.c:1193
+#: transport.c:1201
msgid "failed to push all needed submodules"
msgstr "Fehler beim Versand aller erforderlichen Submodule."
-#: transport.c:1340 transport-helper.c:645
+#: transport.c:1345 transport-helper.c:655
msgid "operation not supported by protocol"
msgstr "Die Operation wird von dem Protokoll nicht unterstützt."
-#: transport-helper.c:51 transport-helper.c:80
+#: transport-helper.c:61 transport-helper.c:90
msgid "full write to remote helper failed"
msgstr "Vollständiges Schreiben zu Remote-Helper fehlgeschlagen."
-#: transport-helper.c:134
+#: transport-helper.c:144
#, c-format
msgid "unable to find remote helper for '%s'"
msgstr "Konnte Remote-Helper für '%s' nicht finden."
-#: transport-helper.c:150 transport-helper.c:559
+#: transport-helper.c:160 transport-helper.c:569
msgid "can't dup helper output fd"
msgstr ""
"Konnte dup() auf Dateideskriptor für Ausgaben des Remote-Helpers nicht "
"ausführen."
-#: transport-helper.c:201
+#: transport-helper.c:211
#, c-format
msgid ""
"unknown mandatory capability %s; this remote helper probably needs newer "
@@ -7555,100 +7580,105 @@ msgstr ""
"Unbekannte erforderliche Fähigkeit %s; dieser Remote-Helper benötigt\n"
"wahrscheinlich eine neuere Version von Git."
-#: transport-helper.c:207
+#: transport-helper.c:217
msgid "this remote helper should implement refspec capability"
msgstr "Dieser Remote-Helper sollte die \"refspec\"-Fähigkeit implementieren."
-#: transport-helper.c:274 transport-helper.c:414
+#: transport-helper.c:284 transport-helper.c:424
#, c-format
msgid "%s unexpectedly said: '%s'"
msgstr "unerwartete Ausgabe von %s: '%s'"
-#: transport-helper.c:403
+#: transport-helper.c:413
#, c-format
msgid "%s also locked %s"
msgstr "%s sperrte auch %s"
-#: transport-helper.c:481
+#: transport-helper.c:491
msgid "couldn't run fast-import"
msgstr "Konnte \"fast-import\" nicht ausführen."
-#: transport-helper.c:504
+#: transport-helper.c:514
msgid "error while running fast-import"
msgstr "Fehler beim Ausführen von 'fast-import'."
-#: transport-helper.c:533 transport-helper.c:1105
+#: transport-helper.c:543 transport-helper.c:1132
#, c-format
msgid "could not read ref %s"
msgstr "Konnte Referenz %s nicht lesen."
-#: transport-helper.c:578
+#: transport-helper.c:588
#, c-format
msgid "unknown response to connect: %s"
msgstr "Unbekannte Antwort auf 'connect': %s"
-#: transport-helper.c:600
+#: transport-helper.c:610
msgid "setting remote service path not supported by protocol"
msgstr ""
"Setzen des Remote-Service Pfads wird von dem Protokoll nicht unterstützt."
-#: transport-helper.c:602
+#: transport-helper.c:612
msgid "invalid remote service path"
msgstr "Ungültiger Remote-Service Pfad."
-#: transport-helper.c:648
+#: transport-helper.c:658
#, c-format
msgid "can't connect to subservice %s"
msgstr "Kann keine Verbindung zu Subservice %s herstellen."
-#: transport-helper.c:720
+#: transport-helper.c:734
#, c-format
msgid "expected ok/error, helper said '%s'"
msgstr "Erwartete ok/error, Remote-Helper gab '%s' aus."
-#: transport-helper.c:773
+#: transport-helper.c:787
#, c-format
msgid "helper reported unexpected status of %s"
msgstr "Remote-Helper meldete unerwarteten Status von %s."
-#: transport-helper.c:834
+#: transport-helper.c:848
#, c-format
msgid "helper %s does not support dry-run"
msgstr "Remote-Helper %s unterstützt kein Trockenlauf."
-#: transport-helper.c:837
+#: transport-helper.c:851
#, c-format
msgid "helper %s does not support --signed"
msgstr "Remote-Helper %s unterstützt kein --signed."
-#: transport-helper.c:840
+#: transport-helper.c:854
#, c-format
msgid "helper %s does not support --signed=if-asked"
msgstr "Remote-Helper %s unterstützt kein --signed=if-asked."
-#: transport-helper.c:847
+#: transport-helper.c:859
+#, c-format
+msgid "helper %s does not support --atomic"
+msgstr "Remote-Helper %s unterstützt kein --atomic."
+
+#: transport-helper.c:865
#, c-format
msgid "helper %s does not support 'push-option'"
msgstr "Remote-Helper %s unterstützt nicht 'push-option'."
-#: transport-helper.c:945
+#: transport-helper.c:963
msgid "remote-helper doesn't support push; refspec needed"
msgstr "Remote-Helper unterstützt kein Push; Refspec benötigt"
-#: transport-helper.c:950
+#: transport-helper.c:968
#, c-format
msgid "helper %s does not support 'force'"
msgstr "Remote-Helper %s unterstützt kein 'force'."
-#: transport-helper.c:997
+#: transport-helper.c:1015
msgid "couldn't run fast-export"
msgstr "Konnte \"fast-export\" nicht ausführen."
-#: transport-helper.c:1002
+#: transport-helper.c:1020
msgid "error while running fast-export"
msgstr "Fehler beim Ausführen von \"fast-export\"."
-#: transport-helper.c:1027
+#: transport-helper.c:1045
#, c-format
msgid ""
"No refs in common and none specified; doing nothing.\n"
@@ -7657,47 +7687,47 @@ msgstr ""
"Keine gemeinsamen Referenzen und nichts spezifiziert; keine Ausführung.\n"
"Vielleicht sollten Sie einen Branch wie 'master' angeben.\n"
-#: transport-helper.c:1091
+#: transport-helper.c:1118
#, c-format
msgid "malformed response in ref list: %s"
msgstr "Ungültige Antwort in Referenzliste: %s"
-#: transport-helper.c:1244
+#: transport-helper.c:1270
#, c-format
msgid "read(%s) failed"
msgstr "Lesen von %s fehlgeschlagen."
-#: transport-helper.c:1271
+#: transport-helper.c:1297
#, c-format
msgid "write(%s) failed"
msgstr "Schreiben von %s fehlgeschlagen."
-#: transport-helper.c:1320
+#: transport-helper.c:1346
#, c-format
msgid "%s thread failed"
msgstr "Thread %s fehlgeschlagen."
-#: transport-helper.c:1324
+#: transport-helper.c:1350
#, c-format
msgid "%s thread failed to join: %s"
msgstr "Fehler beim Beitreten zu Thread %s: %s"
-#: transport-helper.c:1343 transport-helper.c:1347
+#: transport-helper.c:1369 transport-helper.c:1373
#, c-format
msgid "can't start thread for copying data: %s"
msgstr "Kann Thread zum Kopieren von Daten nicht starten: %s"
-#: transport-helper.c:1384
+#: transport-helper.c:1410
#, c-format
msgid "%s process failed to wait"
msgstr "Fehler beim Warten von Prozess %s."
-#: transport-helper.c:1388
+#: transport-helper.c:1414
#, c-format
msgid "%s process failed"
msgstr "Prozess %s fehlgeschlagen"
-#: transport-helper.c:1406 transport-helper.c:1415
+#: transport-helper.c:1432 transport-helper.c:1441
msgid "can't start thread for copying data"
msgstr "Kann Thread zum Kopieren von Daten nicht starten."
@@ -7717,7 +7747,7 @@ msgstr "leerer Dateiname in Tree-Eintrag"
msgid "too-short tree file"
msgstr "zu kurze Tree-Datei"
-#: unpack-trees.c:111
+#: unpack-trees.c:110
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by checkout:\n"
@@ -7728,7 +7758,7 @@ msgstr ""
"%%sBitte committen oder stashen Sie Ihre Änderungen, bevor Sie Branches\n"
"wechseln."
-#: unpack-trees.c:113
+#: unpack-trees.c:112
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by checkout:\n"
@@ -7738,7 +7768,7 @@ msgstr ""
"überschrieben werden:\n"
"%%s"
-#: unpack-trees.c:116
+#: unpack-trees.c:115
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by merge:\n"
@@ -7748,7 +7778,7 @@ msgstr ""
"überschrieben werden:\n"
"%%sBitte committen oder stashen Sie Ihre Änderungen, bevor Sie mergen."
-#: unpack-trees.c:118
+#: unpack-trees.c:117
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by merge:\n"
@@ -7758,7 +7788,7 @@ msgstr ""
"überschrieben werden:\n"
"%%s"
-#: unpack-trees.c:121
+#: unpack-trees.c:120
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by %s:\n"
@@ -7768,7 +7798,7 @@ msgstr ""
"überschrieben werden:\n"
"%%sBitte committen oder stashen Sie Ihre Änderungen, bevor Sie %s ausführen."
-#: unpack-trees.c:123
+#: unpack-trees.c:122
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by %s:\n"
@@ -7777,7 +7807,7 @@ msgstr ""
"Ihre lokalen Änderungen würden durch %s überschrieben werden.\n"
"%%s"
-#: unpack-trees.c:128
+#: unpack-trees.c:127
#, c-format
msgid ""
"Updating the following directories would lose untracked files in them:\n"
@@ -7787,7 +7817,7 @@ msgstr ""
"Dateien in diesen Verzeichnissen verloren gehen:\n"
"%s"
-#: unpack-trees.c:132
+#: unpack-trees.c:131
#, c-format
msgid ""
"The following untracked working tree files would be removed by checkout:\n"
@@ -7797,7 +7827,7 @@ msgstr ""
"den Checkout entfernt werden:\n"
"%%sBitte verschieben oder entfernen Sie diese, bevor Sie Branches wechseln."
-#: unpack-trees.c:134
+#: unpack-trees.c:133
#, c-format
msgid ""
"The following untracked working tree files would be removed by checkout:\n"
@@ -7808,7 +7838,7 @@ msgstr ""
"Checkout entfernt werden:\n"
"%%s"
-#: unpack-trees.c:137
+#: unpack-trees.c:136
#, c-format
msgid ""
"The following untracked working tree files would be removed by merge:\n"
@@ -7818,7 +7848,7 @@ msgstr ""
"den Merge entfernt werden:\n"
"%%sBitte verschieben oder entfernen Sie diese, bevor sie mergen."
-#: unpack-trees.c:139
+#: unpack-trees.c:138
#, c-format
msgid ""
"The following untracked working tree files would be removed by merge:\n"
@@ -7829,7 +7859,7 @@ msgstr ""
"Merge entfernt werden:\n"
"%%s"
-#: unpack-trees.c:142
+#: unpack-trees.c:141
#, c-format
msgid ""
"The following untracked working tree files would be removed by %s:\n"
@@ -7839,7 +7869,7 @@ msgstr ""
"den %s entfernt werden:\n"
"%%sBitte verschieben oder entfernen Sie diese, bevor sie %s ausführen."
-#: unpack-trees.c:144
+#: unpack-trees.c:143
#, c-format
msgid ""
"The following untracked working tree files would be removed by %s:\n"
@@ -7849,7 +7879,7 @@ msgstr ""
"den %s entfernt werden:\n"
"%%s"
-#: unpack-trees.c:150
+#: unpack-trees.c:149
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by "
@@ -7860,7 +7890,7 @@ msgstr ""
"den Checkout überschrieben werden:\n"
"%%sBitte verschieben oder entfernen Sie diese, bevor Sie Branches wechseln."
-#: unpack-trees.c:152
+#: unpack-trees.c:151
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by "
@@ -7872,7 +7902,7 @@ msgstr ""
"Checkout überschrieben werden:\n"
"%%s"
-#: unpack-trees.c:155
+#: unpack-trees.c:154
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by merge:\n"
@@ -7882,7 +7912,7 @@ msgstr ""
"den Merge überschrieben werden:\n"
"%%sBitte verschieben oder entfernen Sie diese, bevor Sie mergen."
-#: unpack-trees.c:157
+#: unpack-trees.c:156
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by merge:\n"
@@ -7892,7 +7922,7 @@ msgstr ""
"den Merge überschrieben werden:\n"
"%%s"
-#: unpack-trees.c:160
+#: unpack-trees.c:159
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by %s:\n"
@@ -7902,7 +7932,7 @@ msgstr ""
"den %s überschrieben werden:\n"
"%%sBitte verschieben oder entfernen Sie diese, bevor sie %s ausführen."
-#: unpack-trees.c:162
+#: unpack-trees.c:161
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by %s:\n"
@@ -7913,12 +7943,12 @@ msgstr ""
"%s überschrieben werden:\n"
"%%s"
-#: unpack-trees.c:170
+#: unpack-trees.c:169
#, c-format
msgid "Entry '%s' overlaps with '%s'. Cannot bind."
msgstr "Eintrag '%s' überschneidet sich mit '%s'. Kann nicht verbinden."
-#: unpack-trees.c:173
+#: unpack-trees.c:172
#, c-format
msgid ""
"Cannot update sparse checkout: the following entries are not up to date:\n"
@@ -7928,7 +7958,7 @@ msgstr ""
"sind nicht aktuell:\n"
"%s"
-#: unpack-trees.c:175
+#: unpack-trees.c:174
#, c-format
msgid ""
"The following working tree files would be overwritten by sparse checkout "
@@ -7939,7 +7969,7 @@ msgstr ""
"über einen partiellen Checkout überschrieben werden:\n"
"%s"
-#: unpack-trees.c:177
+#: unpack-trees.c:176
#, c-format
msgid ""
"The following working tree files would be removed by sparse checkout "
@@ -7950,7 +7980,7 @@ msgstr ""
"über einen partiellen Checkout entfernt werden:\n"
"%s"
-#: unpack-trees.c:179
+#: unpack-trees.c:178
#, c-format
msgid ""
"Cannot update submodule:\n"
@@ -7959,16 +7989,16 @@ msgstr ""
"Kann Submodul nicht aktualisieren:\n"
"%s"
-#: unpack-trees.c:256
+#: unpack-trees.c:255
#, c-format
msgid "Aborting\n"
msgstr "Abbruch\n"
-#: unpack-trees.c:318
+#: unpack-trees.c:317
msgid "Updating files"
msgstr "Aktualisiere Dateien"
-#: unpack-trees.c:350
+#: unpack-trees.c:349
msgid ""
"the following paths have collided (e.g. case-sensitive paths\n"
"on a case-insensitive filesystem) and only one from the same\n"
@@ -8007,7 +8037,7 @@ msgstr "ungültige Portnummer"
msgid "invalid '..' path segment"
msgstr "ungültiges '..' Pfadsegment"
-#: worktree.c:258 builtin/am.c:2095
+#: worktree.c:258 builtin/am.c:2084
#, c-format
msgid "failed to read '%s'"
msgstr "Fehler beim Lesen von '%s'"
@@ -8037,17 +8067,17 @@ msgstr "'%s' ist keine .git-Datei, Fehlercode %d"
msgid "'%s' does not point back to '%s'"
msgstr "'%s' zeigt nicht zurück auf '%s'"
-#: wrapper.c:223 wrapper.c:393
+#: wrapper.c:186 wrapper.c:356
#, c-format
msgid "could not open '%s' for reading and writing"
msgstr "Konnte '%s' nicht zum Lesen und Schreiben öffnen."
-#: wrapper.c:424 wrapper.c:624
+#: wrapper.c:387 wrapper.c:588
#, c-format
msgid "unable to access '%s'"
msgstr "konnte nicht auf '%s' zugreifen"
-#: wrapper.c:632
+#: wrapper.c:596
msgid "unable to get current working directory"
msgstr "Konnte aktuelles Arbeitsverzeichnis nicht bekommen."
@@ -8411,87 +8441,96 @@ msgstr ""
" (alle Konflikte behoben: führen Sie \"git cherry-pick --continue\" aus)"
#: wt-status.c:1437
+msgid " (use \"git cherry-pick --skip\" to skip this patch)"
+msgstr ""
+" (benutzen Sie \"git cherry-pick --skip\", um diesen Patch auszulassen)"
+
+#: wt-status.c:1439
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:1447
+#: wt-status.c:1449
msgid "Revert currently in progress."
msgstr "Revert zurzeit im Gange."
-#: wt-status.c:1450
+#: wt-status.c:1452
#, c-format
msgid "You are currently reverting commit %s."
msgstr "Sie sind gerade beim Revert von Commit '%s'."
-#: wt-status.c:1456
+#: wt-status.c:1458
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:1459
+#: wt-status.c:1461
msgid " (run \"git revert --continue\" to continue)"
msgstr " (Führen Sie \"git revert --continue\", um weiterzumachen)"
-#: wt-status.c:1462
+#: wt-status.c:1464
msgid " (all conflicts fixed: run \"git revert --continue\")"
msgstr " (alle Konflikte behoben: führen Sie \"git revert --continue\" aus)"
-#: wt-status.c:1464
+#: wt-status.c:1466
+msgid " (use \"git revert --skip\" to skip this patch)"
+msgstr " (benutzen Sie \"git revert --skip\", um diesen Patch auszulassen)"
+
+#: wt-status.c:1468
msgid " (use \"git revert --abort\" to cancel the revert operation)"
msgstr ""
" (benutzen Sie \"git revert --abort\", um die Revert-Operation abzubrechen)"
-#: wt-status.c:1474
+#: wt-status.c:1478
#, 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:1478
+#: wt-status.c:1482
msgid "You are currently bisecting."
msgstr "Sie sind gerade bei einer binären Suche."
-#: wt-status.c:1481
+#: wt-status.c:1485
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:1690
+#: wt-status.c:1694
msgid "On branch "
msgstr "Auf Branch "
-#: wt-status.c:1697
+#: wt-status.c:1701
msgid "interactive rebase in progress; onto "
msgstr "interaktives Rebase im Gange; auf "
-#: wt-status.c:1699
+#: wt-status.c:1703
msgid "rebase in progress; onto "
msgstr "Rebase im Gange; auf "
-#: wt-status.c:1709
+#: wt-status.c:1713
msgid "Not currently on any branch."
msgstr "Im Moment auf keinem Branch."
-#: wt-status.c:1726
+#: wt-status.c:1730
msgid "Initial commit"
msgstr "Initialer Commit"
-#: wt-status.c:1727
+#: wt-status.c:1731
msgid "No commits yet"
msgstr "Noch keine Commits"
-#: wt-status.c:1741
+#: wt-status.c:1745
msgid "Untracked files"
msgstr "Unversionierte Dateien"
-#: wt-status.c:1743
+#: wt-status.c:1747
msgid "Ignored files"
msgstr "Ignorierte Dateien"
-#: wt-status.c:1747
+#: wt-status.c:1751
#, c-format
msgid ""
"It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
@@ -8502,32 +8541,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:1753
+#: wt-status.c:1757
#, c-format
msgid "Untracked files not listed%s"
msgstr "Unversionierte Dateien nicht aufgelistet%s"
-#: wt-status.c:1755
+#: wt-status.c:1759
msgid " (use -u option to show untracked files)"
msgstr " (benutzen Sie die Option -u, um unversionierte Dateien anzuzeigen)"
-#: wt-status.c:1761
+#: wt-status.c:1765
msgid "No changes"
msgstr "Keine Änderungen"
-#: wt-status.c:1766
+#: wt-status.c:1770
#, 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:1769
+#: wt-status.c:1773
#, c-format
msgid "no changes added to commit\n"
msgstr "keine Änderungen zum Commit vorgemerkt\n"
-#: wt-status.c:1772
+#: wt-status.c:1776
#, c-format
msgid ""
"nothing added to commit but untracked files present (use \"git add\" to "
@@ -8536,72 +8575,77 @@ msgstr ""
"nichts zum Commit vorgemerkt, aber es gibt unversionierte Dateien\n"
"(benutzen Sie \"git add\" zum Versionieren)\n"
-#: wt-status.c:1775
+#: wt-status.c:1779
#, 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:1778
+#: wt-status.c:1782
#, 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:1781 wt-status.c:1786
+#: wt-status.c:1785 wt-status.c:1790
#, c-format
msgid "nothing to commit\n"
msgstr "nichts zu committen\n"
-#: wt-status.c:1784
+#: wt-status.c:1788
#, 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:1788
+#: wt-status.c:1792
#, c-format
msgid "nothing to commit, working tree clean\n"
msgstr "nichts zu committen, Arbeitsverzeichnis unverändert\n"
-#: wt-status.c:1901
+#: wt-status.c:1905
msgid "No commits yet on "
msgstr "Noch keine Commits in "
-#: wt-status.c:1905
+#: wt-status.c:1909
msgid "HEAD (no branch)"
msgstr "HEAD (kein Branch)"
-#: wt-status.c:1936
+#: wt-status.c:1940
msgid "different"
msgstr "unterschiedlich"
-#: wt-status.c:1938 wt-status.c:1946
+#: wt-status.c:1942 wt-status.c:1950
msgid "behind "
msgstr "hinterher "
-#: wt-status.c:1941 wt-status.c:1944
+#: wt-status.c:1945 wt-status.c:1948
msgid "ahead "
msgstr "voraus "
#. TRANSLATORS: the action is e.g. "pull with rebase"
-#: wt-status.c:2466
+#: wt-status.c:2470
#, 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:2472
+#: wt-status.c:2476
msgid "additionally, your index contains uncommitted changes."
msgstr "Zusätzlich enthält die Staging-Area nicht committete Änderungen."
-#: wt-status.c:2474
+#: wt-status.c:2478
#, c-format
msgid "cannot %s: Your index contains uncommitted changes."
msgstr ""
"%s nicht möglich: Die Staging-Area enthält nicht committete Änderungen."
+#: compat/precompose_utf8.c:58 builtin/clone.c:452
+#, c-format
+msgid "failed to unlink '%s'"
+msgstr "Konnte '%s' nicht entfernen."
+
#: builtin/add.c:25
msgid "git add [<options>] [--] <pathspec>..."
msgstr "git add [<Optionen>] [--] <Pfadspezifikation>..."
@@ -8625,7 +8669,7 @@ msgid "Unstaged changes after refreshing the index:"
msgstr ""
"Nicht zum Commit vorgemerkte Änderungen nach Aktualisierung der Staging-Area:"
-#: builtin/add.c:234 builtin/rev-parse.c:896
+#: builtin/add.c:234 builtin/rev-parse.c:897
msgid "Could not read the index"
msgstr "Konnte den Index nicht lesen"
@@ -8662,8 +8706,8 @@ msgstr ""
"Die folgenden Pfade werden durch eine Ihrer \".gitignore\" Dateien "
"ignoriert:\n"
-#: builtin/add.c:290 builtin/clean.c:909 builtin/fetch.c:147 builtin/mv.c:124
-#: builtin/prune-packed.c:56 builtin/pull.c:222 builtin/push.c:560
+#: builtin/add.c:290 builtin/clean.c:910 builtin/fetch.c:162 builtin/mv.c:124
+#: builtin/prune-packed.c:56 builtin/pull.c:223 builtin/push.c:547
#: builtin/remote.c:1345 builtin/rm.c:241 builtin/send-pack.c:165
msgid "dry run"
msgstr "Probelauf"
@@ -8721,7 +8765,7 @@ msgstr ""
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:309 builtin/update-index.c:1001
+#: builtin/add.c:309 builtin/update-index.c:1002
msgid "override the executable bit of the listed files"
msgstr "das \"ausführbar\"-Bit der aufgelisteten Dateien überschreiben"
@@ -8801,120 +8845,116 @@ msgstr "Nichts spezifiziert, nichts hinzugefügt.\n"
msgid "Maybe you wanted to say 'git add .'?\n"
msgstr "Meinten Sie vielleicht 'git add .'?\n"
-#: builtin/am.c:348
+#: builtin/am.c:347
msgid "could not parse author script"
msgstr "konnte Autor-Skript nicht parsen"
-#: builtin/am.c:432
+#: builtin/am.c:431
#, c-format
msgid "'%s' was deleted by the applypatch-msg hook"
msgstr "'%s' wurde durch den applypatch-msg Hook entfernt"
-#: builtin/am.c:474
+#: builtin/am.c:473
#, c-format
msgid "Malformed input line: '%s'."
msgstr "Fehlerhafte Eingabezeile: '%s'."
-#: builtin/am.c:512
+#: builtin/am.c:511
#, c-format
msgid "Failed to copy notes from '%s' to '%s'"
msgstr "Fehler beim Kopieren der Notizen von '%s' nach '%s'"
-#: builtin/am.c:538
+#: builtin/am.c:537
msgid "fseek failed"
msgstr "\"fseek\" fehlgeschlagen"
-#: builtin/am.c:726
+#: builtin/am.c:725
#, c-format
msgid "could not parse patch '%s'"
msgstr "konnte Patch '%s' nicht parsen"
-#: builtin/am.c:791
+#: builtin/am.c:790
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:839
+#: builtin/am.c:838
msgid "invalid timestamp"
msgstr "ungültiger Zeitstempel"
-#: builtin/am.c:844 builtin/am.c:856
+#: builtin/am.c:843 builtin/am.c:855
msgid "invalid Date line"
msgstr "Ungültige \"Date\"-Zeile"
-#: builtin/am.c:851
+#: builtin/am.c:850
msgid "invalid timezone offset"
msgstr "Ungültiger Offset in der Zeitzone"
-#: builtin/am.c:944
+#: builtin/am.c:943
msgid "Patch format detection failed."
msgstr "Patch-Formaterkennung fehlgeschlagen."
-#: builtin/am.c:949 builtin/clone.c:407
+#: builtin/am.c:948 builtin/clone.c:406
#, c-format
msgid "failed to create directory '%s'"
msgstr "Fehler beim Erstellen von Verzeichnis '%s'"
-#: builtin/am.c:954
+#: builtin/am.c:953
msgid "Failed to split patches."
msgstr "Fehler beim Aufteilen der Patches."
-#: builtin/am.c:1084 builtin/commit.c:374
-msgid "unable to write index file"
-msgstr "Konnte Index-Datei nicht schreiben."
-
-#: builtin/am.c:1098
+#: builtin/am.c:1084
#, 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:1099
+#: builtin/am.c:1085
#, 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:1100
+#: builtin/am.c:1086
#, 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:1183
+#: builtin/am.c:1169
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:1211
+#: builtin/am.c:1197
msgid "Patch is empty."
msgstr "Patch ist leer."
-#: builtin/am.c:1277
+#: builtin/am.c:1262
#, c-format
-msgid "invalid ident line: %.*s"
-msgstr "Ungültige Identifikationszeile: %.*s"
+msgid "missing author line in commit %s"
+msgstr "Autor-Zeile fehlt in Commit %s"
-#: builtin/am.c:1299
+#: builtin/am.c:1265
#, c-format
-msgid "unable to parse commit %s"
-msgstr "Konnte Commit '%s' nicht parsen."
+msgid "invalid ident line: %.*s"
+msgstr "Ungültige Identifikationszeile: %.*s"
-#: builtin/am.c:1496
+#: builtin/am.c:1484
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:1498
+#: builtin/am.c:1486
msgid "Using index info to reconstruct a base tree..."
msgstr ""
"Verwende Informationen aus der Staging-Area, um ein Basisverzeichnis "
"nachzustellen ..."
-#: builtin/am.c:1517
+#: builtin/am.c:1505
msgid ""
"Did you hand edit your patch?\n"
"It does not apply to blobs recorded in its index."
@@ -8922,24 +8962,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:1523
+#: builtin/am.c:1511
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:1549
+#: builtin/am.c:1537
msgid "Failed to merge in the changes."
msgstr "Merge der Änderungen fehlgeschlagen."
-#: builtin/am.c:1581
+#: builtin/am.c:1569
msgid "applying to an empty history"
msgstr "auf leere Historie anwenden"
-#: builtin/am.c:1628 builtin/am.c:1632
+#: builtin/am.c:1616 builtin/am.c:1620
#, c-format
msgid "cannot resume: %s does not exist."
msgstr "Kann nicht fortsetzen: %s existiert nicht"
-#: builtin/am.c:1650
+#: builtin/am.c:1638
msgid "Commit Body is:"
msgstr "Commit-Beschreibung ist:"
@@ -8947,37 +8987,41 @@ msgstr "Commit-Beschreibung ist:"
#. in your translation. The program will only accept English
#. input at this point.
#.
-#: builtin/am.c:1660
+#: builtin/am.c:1648
#, 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:1710
+#: builtin/am.c:1695 builtin/commit.c:374
+msgid "unable to write index file"
+msgstr "Konnte Index-Datei nicht schreiben."
+
+#: builtin/am.c:1699
#, c-format
msgid "Dirty index: cannot apply patches (dirty: %s)"
msgstr "Geänderter Index: kann Patches nicht anwenden (geändert: %s)"
-#: builtin/am.c:1750 builtin/am.c:1818
+#: builtin/am.c:1739 builtin/am.c:1807
#, c-format
msgid "Applying: %.*s"
msgstr "Wende an: %.*s"
-#: builtin/am.c:1767
+#: builtin/am.c:1756
msgid "No changes -- Patch already applied."
msgstr "Keine Änderungen -- Patches bereits angewendet."
-#: builtin/am.c:1773
+#: builtin/am.c:1762
#, c-format
msgid "Patch failed at %s %.*s"
msgstr "Anwendung des Patches fehlgeschlagen bei %s %.*s"
-#: builtin/am.c:1777
+#: builtin/am.c:1766
msgid "Use 'git am --show-current-patch' to see the failed patch"
msgstr ""
"Benutzen Sie 'git am --show-current-patch', um den\n"
"fehlgeschlagenen Patch zu sehen."
-#: builtin/am.c:1821
+#: builtin/am.c:1810
msgid ""
"No changes - did you forget to use 'git add'?\n"
"If there is nothing left to stage, chances are that something else\n"
@@ -8988,7 +9032,7 @@ msgstr ""
"diese bereits anderweitig eingefügt worden sein; Sie könnten diesen Patch\n"
"auslassen."
-#: builtin/am.c:1828
+#: builtin/am.c:1817
msgid ""
"You still have unmerged paths in your index.\n"
"You should 'git add' each file with resolved conflicts to mark them as "
@@ -9001,17 +9045,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:1935 builtin/am.c:1939 builtin/am.c:1951 builtin/reset.c:329
+#: builtin/am.c:1924 builtin/am.c:1928 builtin/am.c:1940 builtin/reset.c:329
#: builtin/reset.c:337
#, c-format
msgid "Could not parse object '%s'."
msgstr "Konnte Objekt '%s' nicht parsen."
-#: builtin/am.c:1987
+#: builtin/am.c:1976
msgid "failed to clean index"
msgstr "Fehler beim Bereinigen des Index"
-#: builtin/am.c:2031
+#: builtin/am.c:2020
msgid ""
"You seem to have moved HEAD since the last 'am' failure.\n"
"Not rewinding to ORIG_HEAD"
@@ -9019,144 +9063,144 @@ msgstr ""
"Sie scheinen seit dem letzten gescheiterten 'am' HEAD geändert zu haben.\n"
"Keine Zurücksetzung zu ORIG_HEAD."
-#: builtin/am.c:2128
+#: builtin/am.c:2117
#, c-format
msgid "Invalid value for --patch-format: %s"
msgstr "Ungültiger Wert für --patch-format: %s"
-#: builtin/am.c:2164
+#: builtin/am.c:2153
msgid "git am [<options>] [(<mbox> | <Maildir>)...]"
msgstr "git am [<Optionen>] [(<mbox> | <E-Mail-Verzeichnis>)...]"
-#: builtin/am.c:2165
+#: builtin/am.c:2154
msgid "git am [<options>] (--continue | --skip | --abort)"
msgstr "git am [<Optionen>] (--continue | --skip | --abort)"
-#: builtin/am.c:2171
+#: builtin/am.c:2160
msgid "run interactively"
msgstr "interaktiv ausführen"
-#: builtin/am.c:2173
+#: builtin/am.c:2162
msgid "historical option -- no-op"
msgstr "historische Option -- kein Effekt"
-#: builtin/am.c:2175
+#: builtin/am.c:2164
msgid "allow fall back on 3way merging if needed"
msgstr "erlaube, falls notwendig, das Zurückfallen auf einen 3-Wege-Merge"
-#: builtin/am.c:2176 builtin/init-db.c:494 builtin/prune-packed.c:58
-#: builtin/repack.c:296 builtin/stash.c:806
+#: builtin/am.c:2165 builtin/init-db.c:494 builtin/prune-packed.c:58
+#: builtin/repack.c:297 builtin/stash.c:812
msgid "be quiet"
msgstr "weniger Ausgaben"
-#: builtin/am.c:2178
+#: builtin/am.c:2167
msgid "add a Signed-off-by line to the commit message"
msgstr "der Commit-Beschreibung eine Signed-off-by Zeile hinzufügen"
-#: builtin/am.c:2181
+#: builtin/am.c:2170
msgid "recode into utf8 (default)"
msgstr "nach UTF-8 umkodieren (Standard)"
-#: builtin/am.c:2183
+#: builtin/am.c:2172
msgid "pass -k flag to git-mailinfo"
msgstr "-k an git-mailinfo übergeben"
-#: builtin/am.c:2185
+#: builtin/am.c:2174
msgid "pass -b flag to git-mailinfo"
msgstr "-b an git-mailinfo übergeben"
-#: builtin/am.c:2187
+#: builtin/am.c:2176
msgid "pass -m flag to git-mailinfo"
msgstr "-m an git-mailinfo übergeben"
-#: builtin/am.c:2189
+#: builtin/am.c:2178
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:2192
+#: builtin/am.c:2181
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:2195
+#: builtin/am.c:2184
msgid "strip everything before a scissors line"
msgstr "alles vor einer Scheren-Zeile entfernen"
-#: builtin/am.c:2197 builtin/am.c:2200 builtin/am.c:2203 builtin/am.c:2206
-#: builtin/am.c:2209 builtin/am.c:2212 builtin/am.c:2215 builtin/am.c:2218
-#: builtin/am.c:2224
+#: builtin/am.c:2186 builtin/am.c:2189 builtin/am.c:2192 builtin/am.c:2195
+#: builtin/am.c:2198 builtin/am.c:2201 builtin/am.c:2204 builtin/am.c:2207
+#: builtin/am.c:2213
msgid "pass it through git-apply"
msgstr "an git-apply übergeben"
-#: builtin/am.c:2214 builtin/commit.c:1368 builtin/fmt-merge-msg.c:671
-#: builtin/fmt-merge-msg.c:674 builtin/grep.c:881 builtin/merge.c:249
-#: builtin/pull.c:159 builtin/pull.c:218 builtin/rebase.c:1418
-#: builtin/repack.c:307 builtin/repack.c:311 builtin/repack.c:313
+#: builtin/am.c:2203 builtin/commit.c:1368 builtin/fmt-merge-msg.c:671
+#: builtin/fmt-merge-msg.c:674 builtin/grep.c:883 builtin/merge.c:249
+#: builtin/pull.c:160 builtin/pull.c:219 builtin/rebase.c:1442
+#: builtin/repack.c:308 builtin/repack.c:312 builtin/repack.c:314
#: builtin/show-branch.c:650 builtin/show-ref.c:172 builtin/tag.c:403
-#: parse-options.h:141 parse-options.h:162 parse-options.h:312
+#: parse-options.h:150 parse-options.h:171 parse-options.h:312
msgid "n"
msgstr "Anzahl"
-#: builtin/am.c:2220 builtin/branch.c:661 builtin/for-each-ref.c:38
-#: builtin/replace.c:554 builtin/tag.c:437 builtin/verify-tag.c:38
+#: builtin/am.c:2209 builtin/branch.c:661 builtin/for-each-ref.c:38
+#: builtin/replace.c:555 builtin/tag.c:437 builtin/verify-tag.c:38
msgid "format"
msgstr "Format"
-#: builtin/am.c:2221
+#: builtin/am.c:2210
msgid "format the patch(es) are in"
msgstr "Patch-Format"
-#: builtin/am.c:2227
+#: builtin/am.c:2216
msgid "override error message when patch failure occurs"
msgstr "Meldung bei fehlerhafter Patch-Anwendung überschreiben"
-#: builtin/am.c:2229
+#: builtin/am.c:2218
msgid "continue applying patches after resolving a conflict"
msgstr "Anwendung der Patches nach Auflösung eines Konfliktes fortsetzen"
-#: builtin/am.c:2232
+#: builtin/am.c:2221
msgid "synonyms for --continue"
msgstr "Synonyme für --continue"
-#: builtin/am.c:2235
+#: builtin/am.c:2224
msgid "skip the current patch"
msgstr "den aktuellen Patch auslassen"
-#: builtin/am.c:2238
+#: builtin/am.c:2227
msgid "restore the original branch and abort the patching operation."
msgstr ""
"ursprünglichen Branch wiederherstellen und Anwendung der Patches abbrechen"
-#: builtin/am.c:2241
+#: builtin/am.c:2230
msgid "abort the patching operation but keep HEAD where it is."
msgstr "Patch-Operation abbrechen, aber HEAD an aktueller Stelle belassen"
-#: builtin/am.c:2244
+#: builtin/am.c:2233
msgid "show the patch being applied."
msgstr "den Patch, der gerade angewendet wird, anzeigen"
-#: builtin/am.c:2248
+#: builtin/am.c:2237
msgid "lie about committer date"
msgstr "Autor-Datum als Commit-Datum verwenden"
-#: builtin/am.c:2250
+#: builtin/am.c:2239
msgid "use current timestamp for author date"
msgstr "aktuellen Zeitstempel als Autor-Datum verwenden"
-#: builtin/am.c:2252 builtin/commit-tree.c:120 builtin/commit.c:1511
-#: builtin/merge.c:286 builtin/pull.c:193 builtin/rebase.c:489
-#: builtin/rebase.c:1459 builtin/revert.c:117 builtin/tag.c:418
+#: builtin/am.c:2241 builtin/commit-tree.c:120 builtin/commit.c:1511
+#: builtin/merge.c:286 builtin/pull.c:194 builtin/rebase.c:490
+#: builtin/rebase.c:1483 builtin/revert.c:117 builtin/tag.c:418
msgid "key-id"
msgstr "GPG-Schlüsselkennung"
-#: builtin/am.c:2253 builtin/rebase.c:490 builtin/rebase.c:1460
+#: builtin/am.c:2242 builtin/rebase.c:491 builtin/rebase.c:1484
msgid "GPG-sign commits"
msgstr "Commits mit GPG signieren"
-#: builtin/am.c:2256
+#: builtin/am.c:2245
msgid "(internal use for git-rebase)"
msgstr "(intern für git-rebase verwendet)"
-#: builtin/am.c:2274
+#: builtin/am.c:2263
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."
@@ -9164,16 +9208,16 @@ msgstr ""
"Die -b/--binary Option hat seit Langem keinen Effekt und wird\n"
"entfernt. Bitte verwenden Sie diese nicht mehr."
-#: builtin/am.c:2281
+#: builtin/am.c:2270
msgid "failed to read the index"
msgstr "Fehler beim Lesen des Index"
-#: builtin/am.c:2296
+#: builtin/am.c:2285
#, 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:2320
+#: builtin/am.c:2309
#, c-format
msgid ""
"Stray %s directory found.\n"
@@ -9182,11 +9226,11 @@ msgstr ""
"Stray %s Verzeichnis gefunden.\n"
"Benutzen Sie \"git am --abort\", um es zu entfernen."
-#: builtin/am.c:2326
+#: builtin/am.c:2315
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:2336
+#: builtin/am.c:2325
msgid "interactive mode requires patches on the command line"
msgstr "Interaktiver Modus benötigt Patches über die Kommandozeile"
@@ -9505,159 +9549,159 @@ msgstr "--bisect-next-check benötigt 2 oder 3 Argumente."
msgid "--bisect-terms requires 0 or 1 argument"
msgstr "--bisect-terms benötigt 0 oder 1 Argument."
-#: builtin/blame.c:32
+#: builtin/blame.c:31
msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>"
msgstr "git blame [<Optionen>] [<rev-opts>] [<Commit>] [--] <Datei>"
-#: builtin/blame.c:37
+#: builtin/blame.c:36
msgid "<rev-opts> are documented in git-rev-list(1)"
msgstr "<rev-opts> sind dokumentiert in git-rev-list(1)"
-#: builtin/blame.c:410
+#: builtin/blame.c:409
#, c-format
msgid "expecting a color: %s"
msgstr "Erwarte eine Farbe: %s"
-#: builtin/blame.c:417
+#: builtin/blame.c:416
msgid "must end with a color"
msgstr "Muss mit einer Farbe enden."
-#: builtin/blame.c:730
+#: builtin/blame.c:729
#, c-format
msgid "invalid color '%s' in color.blame.repeatedLines"
msgstr "Ungültige Farbe '%s' in color.blame.repeatedLines."
-#: builtin/blame.c:748
+#: builtin/blame.c:747
msgid "invalid value for blame.coloring"
msgstr "Ungültiger Wert für blame.coloring."
-#: builtin/blame.c:823
+#: builtin/blame.c:822
#, c-format
msgid "cannot find revision %s to ignore"
msgstr "Konnte Commit %s zum Ignorieren nicht finden"
-#: builtin/blame.c:845
+#: builtin/blame.c:844
msgid "Show blame entries as we find them, incrementally"
msgstr "\"blame\"-Einträge schrittweise anzeigen, während wir sie generieren"
-#: builtin/blame.c:846
+#: builtin/blame.c:845
msgid "Show blank SHA-1 for boundary commits (Default: off)"
msgstr "leere SHA-1 für Grenz-Commits anzeigen (Standard: aus)"
-#: builtin/blame.c:847
+#: builtin/blame.c:846
msgid "Do not treat root commits as boundaries (Default: off)"
msgstr "Root-Commits nicht als Grenzen behandeln (Standard: aus)"
-#: builtin/blame.c:848
+#: builtin/blame.c:847
msgid "Show work cost statistics"
msgstr "Statistiken zum Arbeitsaufwand anzeigen"
-#: builtin/blame.c:849
+#: builtin/blame.c:848
msgid "Force progress reporting"
msgstr "Fortschrittsanzeige erzwingen"
-#: builtin/blame.c:850
+#: builtin/blame.c:849
msgid "Show output score for blame entries"
msgstr "Ausgabebewertung für \"blame\"-Einträge anzeigen"
-#: builtin/blame.c:851
+#: builtin/blame.c:850
msgid "Show original filename (Default: auto)"
msgstr "ursprünglichen Dateinamen anzeigen (Standard: auto)"
-#: builtin/blame.c:852
+#: builtin/blame.c:851
msgid "Show original linenumber (Default: off)"
msgstr "ursprüngliche Zeilennummer anzeigen (Standard: aus)"
-#: builtin/blame.c:853
+#: builtin/blame.c:852
msgid "Show in a format designed for machine consumption"
msgstr "Anzeige in einem Format für maschinelle Auswertung"
-#: builtin/blame.c:854
+#: builtin/blame.c:853
msgid "Show porcelain format with per-line commit information"
msgstr ""
"Anzeige in Format für Fremdprogramme mit Commit-Informationen pro Zeile"
-#: builtin/blame.c:855
+#: builtin/blame.c:854
msgid "Use the same output mode as git-annotate (Default: off)"
msgstr ""
"Den gleichen Ausgabemodus benutzen wie \"git-annotate\" (Standard: aus)"
-#: builtin/blame.c:856
+#: builtin/blame.c:855
msgid "Show raw timestamp (Default: off)"
msgstr "Unbearbeiteten Zeitstempel anzeigen (Standard: aus)"
-#: builtin/blame.c:857
+#: builtin/blame.c:856
msgid "Show long commit SHA1 (Default: off)"
msgstr "Langen Commit-SHA1 anzeigen (Standard: aus)"
-#: builtin/blame.c:858
+#: builtin/blame.c:857
msgid "Suppress author name and timestamp (Default: off)"
msgstr "Den Namen des Autors und den Zeitstempel unterdrücken (Standard: aus)"
-#: builtin/blame.c:859
+#: builtin/blame.c:858
msgid "Show author email instead of name (Default: off)"
msgstr ""
"Anstatt des Namens die E-Mail-Adresse des Autors anzeigen (Standard: aus)"
-#: builtin/blame.c:860
+#: builtin/blame.c:859
msgid "Ignore whitespace differences"
msgstr "Unterschiede im Whitespace ignorieren"
-#: builtin/blame.c:861 builtin/log.c:1629
+#: builtin/blame.c:860 builtin/log.c:1630
msgid "rev"
msgstr "Commit"
-#: builtin/blame.c:861
+#: builtin/blame.c:860
msgid "Ignore <rev> when blaming"
msgstr "Ignoriere <rev> beim Ausführen von 'blame'"
-#: builtin/blame.c:862
+#: builtin/blame.c:861
msgid "Ignore revisions from <file>"
msgstr "Ignoriere Commits aus <Datei>"
-#: builtin/blame.c:863
+#: builtin/blame.c:862
msgid "color redundant metadata from previous line differently"
msgstr "redundante Metadaten der vorherigen Zeile unterschiedlich einfärben"
-#: builtin/blame.c:864
+#: builtin/blame.c:863
msgid "color lines by age"
msgstr "Zeilen nach Alter einfärben"
-#: builtin/blame.c:871
+#: builtin/blame.c:870
msgid "Use an experimental heuristic to improve diffs"
msgstr ""
"eine experimentelle Heuristik zur Verbesserung der Darstellung\n"
"von Unterschieden verwenden"
-#: builtin/blame.c:873
+#: builtin/blame.c:872
msgid "Spend extra cycles to find better match"
msgstr "Länger arbeiten, um bessere Übereinstimmungen zu finden"
-#: builtin/blame.c:874
+#: builtin/blame.c:873
msgid "Use revisions from <file> instead of calling git-rev-list"
msgstr "Commits von <Datei> benutzen, anstatt \"git-rev-list\" aufzurufen"
-#: builtin/blame.c:875
+#: builtin/blame.c:874
msgid "Use <file>'s contents as the final image"
msgstr "Inhalte der <Datei>en als endgültiges Abbild benutzen"
-#: builtin/blame.c:876 builtin/blame.c:877
+#: builtin/blame.c:875 builtin/blame.c:876
msgid "score"
msgstr "Bewertung"
-#: builtin/blame.c:876
+#: builtin/blame.c:875
msgid "Find line copies within and across files"
msgstr "kopierte Zeilen innerhalb oder zwischen Dateien finden"
-#: builtin/blame.c:877
+#: builtin/blame.c:876
msgid "Find line movements within and across files"
msgstr "verschobene Zeilen innerhalb oder zwischen Dateien finden"
-#: builtin/blame.c:878
+#: builtin/blame.c:877
msgid "n,m"
msgstr "n,m"
-#: builtin/blame.c:878
+#: builtin/blame.c:877
msgid "Process only line range n,m, counting from 1"
msgstr "nur Zeilen im Bereich n,m verarbeiten, gezählt von 1"
@@ -9903,7 +9947,7 @@ msgstr "Modus zum Folgen von Branches einstellen (siehe git-pull(1))"
msgid "do not use"
msgstr "nicht verwenden"
-#: builtin/branch.c:626 builtin/rebase.c:485
+#: builtin/branch.c:626 builtin/rebase.c:486
msgid "upstream"
msgstr "Upstream"
@@ -10015,7 +10059,7 @@ msgstr "Sortierung und Filterung sind unabhängig von Groß- und Kleinschreibung
msgid "format to use for the output"
msgstr "für die Ausgabe zu verwendendes Format"
-#: builtin/branch.c:684 builtin/clone.c:761
+#: builtin/branch.c:684 builtin/clone.c:760
msgid "HEAD not found below refs/heads!"
msgstr "HEAD wurde nicht unter \"refs/heads\" gefunden!"
@@ -10122,7 +10166,7 @@ msgstr "Um ein Paket zu erstellen wird ein Repository benötigt."
msgid "Need a repository to unbundle."
msgstr "Zum Entpacken wird ein Repository benötigt."
-#: builtin/cat-file.c:594
+#: builtin/cat-file.c:595
msgid ""
"git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -"
"p | <type> | --textconv | --filters) [--path=<path>] <object>"
@@ -10130,7 +10174,7 @@ msgstr ""
"git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -"
"p | <Art> | --textconv | --filters) [--path=<Pfad>] <Objekt>"
-#: builtin/cat-file.c:595
+#: builtin/cat-file.c:596
msgid ""
"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --"
"filters]"
@@ -10138,76 +10182,76 @@ msgstr ""
"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --"
"filters]"
-#: builtin/cat-file.c:616
+#: builtin/cat-file.c:617
msgid "only one batch option may be specified"
msgstr "Nur eine Batch-Option erlaubt."
-#: builtin/cat-file.c:634
+#: builtin/cat-file.c:635
msgid "<type> can be one of: blob, tree, commit, tag"
msgstr "<Art> kann sein: blob, tree, commit, tag"
-#: builtin/cat-file.c:635
+#: builtin/cat-file.c:636
msgid "show object type"
msgstr "Objektart anzeigen"
-#: builtin/cat-file.c:636
+#: builtin/cat-file.c:637
msgid "show object size"
msgstr "Objektgröße anzeigen"
-#: builtin/cat-file.c:638
+#: builtin/cat-file.c:639
msgid "exit with zero when there's no error"
msgstr "mit Rückgabewert 0 beenden, wenn kein Fehler aufgetreten ist"
-#: builtin/cat-file.c:639
+#: builtin/cat-file.c:640
msgid "pretty-print object's content"
msgstr "ansprechende Anzeige des Objektinhaltes"
-#: builtin/cat-file.c:641
+#: builtin/cat-file.c:642
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:643
+#: builtin/cat-file.c:644
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:644 git-submodule.sh:936
+#: builtin/cat-file.c:645 git-submodule.sh:936
msgid "blob"
msgstr "Blob"
-#: builtin/cat-file.c:645
+#: builtin/cat-file.c:646
msgid "use a specific path for --textconv/--filters"
msgstr "einen bestimmten Pfad für --textconv/--filters verwenden"
-#: builtin/cat-file.c:647
+#: builtin/cat-file.c:648
msgid "allow -s and -t to work with broken/corrupt objects"
msgstr "-s und -t mit beschädigten Objekten erlauben"
-#: builtin/cat-file.c:648
+#: builtin/cat-file.c:649
msgid "buffer --batch output"
msgstr "Ausgabe von --batch puffern"
-#: builtin/cat-file.c:650
+#: builtin/cat-file.c:651
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:654
+#: builtin/cat-file.c:655
msgid "show info about objects fed from the standard input"
msgstr ""
"Anzeige von Informationen über Objekte, gelesen von der Standard-Eingabe"
-#: builtin/cat-file.c:658
+#: builtin/cat-file.c:659
msgid "follow in-tree symlinks (used with --batch or --batch-check)"
msgstr ""
"symbolischen Verknüpfungen innerhalb des Repositories folgen (verwendet mit "
"--batch oder --batch-check)"
-#: builtin/cat-file.c:660
+#: builtin/cat-file.c:661
msgid "show all objects with --batch or --batch-check"
msgstr "alle Objekte mit --batch oder --batch-check anzeigen"
-#: builtin/cat-file.c:662
+#: builtin/cat-file.c:663
msgid "do not order --batch-all-objects output"
msgstr "Ausgabe von --batch-all-objects nicht ordnen"
@@ -10235,8 +10279,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:1433 builtin/gc.c:538
-#: builtin/worktree.c:507
+#: builtin/check-ignore.c:21 builtin/checkout.c:1433 builtin/gc.c:537
+#: builtin/worktree.c:506
msgid "suppress progress reporting"
msgstr "Fortschrittsanzeige unterdrücken"
@@ -10331,7 +10375,7 @@ msgstr "den Inhalt in temporäre Dateien schreiben"
#: builtin/checkout-index.c:178 builtin/column.c:31
#: builtin/submodule--helper.c:1373 builtin/submodule--helper.c:1376
#: builtin/submodule--helper.c:1384 builtin/submodule--helper.c:1857
-#: builtin/worktree.c:680
+#: builtin/worktree.c:679
msgid "string"
msgstr "Zeichenkette"
@@ -10360,99 +10404,99 @@ msgstr "git switch [<Optionen>] [<Branch>]"
msgid "git restore [<options>] [--source=<branch>] <file>..."
msgstr "git restore [<Optionen>] [--source=<Branch>] <Datei>..."
-#: builtin/checkout.c:172 builtin/checkout.c:211
+#: builtin/checkout.c:173 builtin/checkout.c:212
#, c-format
msgid "path '%s' does not have our version"
msgstr "Pfad '%s' hat nicht unsere Version."
-#: builtin/checkout.c:174 builtin/checkout.c:213
+#: builtin/checkout.c:175 builtin/checkout.c:214
#, c-format
msgid "path '%s' does not have their version"
msgstr "Pfad '%s' hat nicht deren Version."
-#: builtin/checkout.c:190
+#: builtin/checkout.c:191
#, c-format
msgid "path '%s' does not have all necessary versions"
msgstr "Pfad '%s' hat nicht alle notwendigen Versionen."
-#: builtin/checkout.c:240
+#: builtin/checkout.c:241
#, c-format
msgid "path '%s' does not have necessary versions"
msgstr "Pfad '%s' hat nicht die notwendigen Versionen."
-#: builtin/checkout.c:258
+#: builtin/checkout.c:259
#, c-format
msgid "path '%s': cannot merge"
msgstr "Pfad '%s': kann nicht zusammenführen"
-#: builtin/checkout.c:274
+#: builtin/checkout.c:275
#, c-format
msgid "Unable to add merge result for '%s'"
msgstr "Konnte Merge-Ergebnis von '%s' nicht hinzufügen."
-#: builtin/checkout.c:374
+#: builtin/checkout.c:375
#, 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:379
+#: builtin/checkout.c:380
#, 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:386
+#: builtin/checkout.c:387
#, 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:409 builtin/checkout.c:412 builtin/checkout.c:415
-#: builtin/checkout.c:419
+#: builtin/checkout.c:410 builtin/checkout.c:413 builtin/checkout.c:416
+#: builtin/checkout.c:420
#, c-format
msgid "'%s' cannot be used with updating paths"
msgstr "'%s' kann nicht mit der Aktualisierung von Pfaden verwendet werden"
-#: builtin/checkout.c:422 builtin/checkout.c:425
+#: builtin/checkout.c:423 builtin/checkout.c:426
#, c-format
msgid "'%s' cannot be used with %s"
msgstr "'%s' kann nicht mit '%s' verwendet werden"
-#: builtin/checkout.c:429
+#: builtin/checkout.c:430
#, 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:433
+#: builtin/checkout.c:434
#, c-format
msgid "neither '%s' or '%s' is specified"
msgstr "Weder '%s' noch '%s' ist angegeben"
-#: builtin/checkout.c:437
+#: builtin/checkout.c:438
#, 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:442 builtin/checkout.c:447
+#: builtin/checkout.c:443 builtin/checkout.c:448
#, c-format
msgid "'%s' or '%s' cannot be used with %s"
msgstr "'%s' oder '%s' kann nicht mit %s verwendet werden"
-#: builtin/checkout.c:506 builtin/checkout.c:513
+#: builtin/checkout.c:507 builtin/checkout.c:514
#, c-format
msgid "path '%s' is unmerged"
msgstr "Pfad '%s' ist nicht zusammengeführt."
-#: builtin/checkout.c:679
+#: builtin/checkout.c:680
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:729
+#: builtin/checkout.c:730
#, c-format
msgid ""
"cannot continue with staged changes in the following files:\n"
@@ -10461,13 +10505,6 @@ msgstr ""
"Kann nicht mit vorgemerkten Änderungen in folgenden Dateien fortsetzen:\n"
"%s"
-#: builtin/checkout.c:736
-#, c-format
-msgid "staged changes in the following files may be lost: %s"
-msgstr ""
-"Zum Commit vorgemerkte Änderungen in den folgenden Dateien gehen eventuell "
-"verloren: %s"
-
#: builtin/checkout.c:833
#, c-format
msgid "Can not do reflog for '%s': %s\n"
@@ -10477,7 +10514,7 @@ msgstr "Kann \"reflog\" für '%s' nicht durchführen: %s\n"
msgid "HEAD is now at"
msgstr "HEAD ist jetzt bei"
-#: builtin/checkout.c:879 builtin/clone.c:714
+#: builtin/checkout.c:879 builtin/clone.c:713
msgid "unable to update HEAD"
msgstr "Konnte HEAD nicht aktualisieren."
@@ -10592,7 +10629,7 @@ msgstr ""
"Bitte benutzen Sie -- (und optional --no-guess), um diese\n"
"eindeutig voneinander zu unterscheiden."
-#: builtin/checkout.c:1243 builtin/worktree.c:291 builtin/worktree.c:456
+#: builtin/checkout.c:1243 builtin/worktree.c:290 builtin/worktree.c:455
#, c-format
msgid "invalid reference: %s"
msgstr "Ungültige Referenz: %s"
@@ -10699,9 +10736,9 @@ msgstr "Kann Branch nicht zu Nicht-Commit '%s' wechseln"
msgid "missing branch or commit argument"
msgstr "Branch- oder Commit-Argument fehlt"
-#: builtin/checkout.c:1437 builtin/clone.c:91 builtin/fetch.c:151
-#: builtin/merge.c:285 builtin/pull.c:137 builtin/push.c:575
-#: builtin/send-pack.c:174
+#: builtin/checkout.c:1437 builtin/clone.c:90 builtin/commit-graph.c:59
+#: builtin/commit-graph.c:180 builtin/fetch.c:166 builtin/merge.c:285
+#: builtin/pull.c:138 builtin/push.c:562 builtin/send-pack.c:174
msgid "force progress reporting"
msgstr "Fortschrittsanzeige erzwingen"
@@ -10709,7 +10746,7 @@ msgstr "Fortschrittsanzeige erzwingen"
msgid "perform a 3-way merge with the new branch"
msgstr "einen 3-Wege-Merge mit dem neuen Branch ausführen"
-#: builtin/checkout.c:1439 builtin/log.c:1617 parse-options.h:318
+#: builtin/checkout.c:1439 builtin/log.c:1618 parse-options.h:318
msgid "style"
msgstr "Stil"
@@ -10717,7 +10754,7 @@ msgstr "Stil"
msgid "conflict style (merge or diff3)"
msgstr "Konfliktstil (merge oder diff3)"
-#: builtin/checkout.c:1452 builtin/worktree.c:504
+#: builtin/checkout.c:1452 builtin/worktree.c:503
msgid "detach HEAD at named commit"
msgstr "HEAD bei benanntem Commit loslösen"
@@ -10839,9 +10876,9 @@ msgstr ""
"bevorzugen möchten, z.B. 'origin', könnten Sie die Einstellung\n"
"checkout.defaultRemote=origin in Ihrer Konfiguration setzen."
-#: builtin/checkout.c:1691 builtin/checkout.c:1693 builtin/checkout.c:1733
-#: builtin/checkout.c:1735 builtin/clone.c:121 builtin/remote.c:169
-#: builtin/remote.c:171 builtin/worktree.c:500 builtin/worktree.c:502
+#: builtin/checkout.c:1691 builtin/checkout.c:1693 builtin/checkout.c:1742
+#: builtin/checkout.c:1744 builtin/clone.c:120 builtin/remote.c:169
+#: builtin/remote.c:171 builtin/worktree.c:499 builtin/worktree.c:501
msgid "branch"
msgstr "Branch"
@@ -10859,46 +10896,45 @@ msgstr "das Reflog für den neuen Branch erzeugen"
#: builtin/checkout.c:1697
msgid "second guess 'git checkout <no-such-branch>' (default)"
-msgstr ""
-"Zweite Vermutung 'git checkout <kein-solcher-Branch>' (Standard)"
+msgstr "Zweite Vermutung 'git checkout <kein-solcher-Branch>' (Standard)"
#: builtin/checkout.c:1698
msgid "use overlay mode (default)"
msgstr "benutze Overlay-Modus (Standard)"
-#: builtin/checkout.c:1734
+#: builtin/checkout.c:1743
msgid "create and switch to a new branch"
msgstr "einen neuen Branch erzeugen und dahin wechseln"
-#: builtin/checkout.c:1736
+#: builtin/checkout.c:1745
msgid "create/reset and switch to a branch"
msgstr "einen Branch erstellen/umsetzen und dahin wechseln"
-#: builtin/checkout.c:1738
+#: builtin/checkout.c:1747
msgid "second guess 'git switch <no-such-branch>'"
msgstr "Zweite Vermutung 'git switch <kein-solcher-Branch>'"
-#: builtin/checkout.c:1740
+#: builtin/checkout.c:1749
msgid "throw away local modifications"
msgstr "lokale Änderungen verwerfen"
-#: builtin/checkout.c:1772
+#: builtin/checkout.c:1781
msgid "which tree-ish to checkout from"
msgstr "Von welcher Commit-Referenz ausgecheckt werden soll"
-#: builtin/checkout.c:1774
+#: builtin/checkout.c:1783
msgid "restore the index"
msgstr "Index wiederherstellen"
-#: builtin/checkout.c:1776
+#: builtin/checkout.c:1785
msgid "restore the working tree (default)"
msgstr "das Arbeitsverzeichnis wiederherstellen (Standard)"
-#: builtin/checkout.c:1778
+#: builtin/checkout.c:1787
msgid "ignore unmerged entries"
msgstr "ignoriere nicht zusammengeführte Einträge"
-#: builtin/checkout.c:1779
+#: builtin/checkout.c:1788
msgid "use overlay mode"
msgstr "benutze Overlay-Modus"
@@ -10938,7 +10974,7 @@ msgstr "Fehler beim Löschen von %s"
msgid "could not lstat %s\n"
msgstr "Konnte 'lstat' nicht für %s ausführen\n"
-#: builtin/clean.c:300 git-add--interactive.perl:593
+#: builtin/clean.c:301 git-add--interactive.perl:593
#, c-format
msgid ""
"Prompt help:\n"
@@ -10951,7 +10987,7 @@ msgstr ""
"foo - Element anhand eines eindeutigen Präfix auswählen\n"
" - (leer) nichts auswählen\n"
-#: builtin/clean.c:304 git-add--interactive.perl:602
+#: builtin/clean.c:305 git-add--interactive.perl:602
#, c-format
msgid ""
"Prompt help:\n"
@@ -10972,38 +11008,38 @@ msgstr ""
"* - alle Elemente auswählen\n"
" - (leer) Auswahl beenden\n"
-#: builtin/clean.c:520 git-add--interactive.perl:568
+#: builtin/clean.c:521 git-add--interactive.perl:568
#: git-add--interactive.perl:573
#, c-format, perl-format
msgid "Huh (%s)?\n"
msgstr "Wie bitte (%s)?\n"
-#: builtin/clean.c:662
+#: builtin/clean.c:663
#, c-format
msgid "Input ignore patterns>> "
msgstr "Ignorier-Muster eingeben>> "
-#: builtin/clean.c:699
+#: builtin/clean.c:700
#, c-format
msgid "WARNING: Cannot find items matched by: %s"
msgstr "WARNUNG: Kann keine Einträge finden die Muster entsprechen: %s"
-#: builtin/clean.c:720
+#: builtin/clean.c:721
msgid "Select items to delete"
msgstr "Wählen Sie Einträge zum Löschen"
#. TRANSLATORS: Make sure to keep [y/N] as is
-#: builtin/clean.c:761
+#: builtin/clean.c:762
#, c-format
msgid "Remove %s [y/N]? "
msgstr "'%s' löschen [y/N]? "
-#: builtin/clean.c:786 git-add--interactive.perl:1763
+#: builtin/clean.c:787 git-add--interactive.perl:1763
#, c-format
msgid "Bye.\n"
msgstr "Tschüss.\n"
-#: builtin/clean.c:794
+#: builtin/clean.c:795
msgid ""
"clean - start cleaning\n"
"filter by pattern - exclude items from deletion\n"
@@ -11021,64 +11057,64 @@ msgstr ""
"help - diese Meldung anzeigen\n"
"? - Hilfe zur Auswahl mittels Eingabe anzeigen"
-#: builtin/clean.c:821 git-add--interactive.perl:1849
+#: builtin/clean.c:822 git-add--interactive.perl:1849
msgid "*** Commands ***"
msgstr "*** Befehle ***"
-#: builtin/clean.c:822 git-add--interactive.perl:1846
+#: builtin/clean.c:823 git-add--interactive.perl:1846
msgid "What now"
msgstr "Was nun"
-#: builtin/clean.c:830
+#: builtin/clean.c:831
msgid "Would remove the following item:"
msgid_plural "Would remove the following items:"
msgstr[0] "Würde das folgende Element entfernen:"
msgstr[1] "Würde die folgenden Elemente entfernen:"
-#: builtin/clean.c:846
+#: builtin/clean.c:847
msgid "No more files to clean, exiting."
msgstr "Keine Dateien mehr zum Löschen, beende."
-#: builtin/clean.c:908
+#: builtin/clean.c:909
msgid "do not print names of files removed"
msgstr "keine Namen von gelöschten Dateien ausgeben"
-#: builtin/clean.c:910
+#: builtin/clean.c:911
msgid "force"
msgstr "Aktion erzwingen"
-#: builtin/clean.c:911
+#: builtin/clean.c:912
msgid "interactive cleaning"
msgstr "interaktives Clean"
-#: builtin/clean.c:913
+#: builtin/clean.c:914
msgid "remove whole directories"
msgstr "ganze Verzeichnisse löschen"
-#: builtin/clean.c:914 builtin/describe.c:546 builtin/describe.c:548
-#: builtin/grep.c:899 builtin/log.c:176 builtin/log.c:178
-#: builtin/ls-files.c:557 builtin/name-rev.c:413 builtin/name-rev.c:415
+#: builtin/clean.c:915 builtin/describe.c:548 builtin/describe.c:550
+#: builtin/grep.c:901 builtin/log.c:176 builtin/log.c:178
+#: builtin/ls-files.c:557 builtin/name-rev.c:417 builtin/name-rev.c:419
#: builtin/show-ref.c:179
msgid "pattern"
msgstr "Muster"
-#: builtin/clean.c:915
+#: builtin/clean.c:916
msgid "add <pattern> to ignore rules"
msgstr "<Muster> zu den Regeln für ignorierte Pfade hinzufügen"
-#: builtin/clean.c:916
+#: builtin/clean.c:917
msgid "remove ignored files, too"
msgstr "auch ignorierte Dateien löschen"
-#: builtin/clean.c:918
+#: builtin/clean.c:919
msgid "remove only ignored files"
msgstr "nur ignorierte Dateien löschen"
-#: builtin/clean.c:936
+#: builtin/clean.c:937
msgid "-x and -X cannot be used together"
msgstr "Die Optionen -x und -X können nicht gemeinsam verwendet werden."
-#: builtin/clean.c:940
+#: builtin/clean.c:941
msgid ""
"clean.requireForce set to true and neither -i, -n, nor -f given; refusing to "
"clean"
@@ -11086,7 +11122,7 @@ msgstr ""
"clean.requireForce auf \"true\" gesetzt und weder -i, -n noch -f gegeben; "
"\"clean\" verweigert"
-#: builtin/clean.c:943
+#: builtin/clean.c:944
msgid ""
"clean.requireForce defaults to true and neither -i, -n, nor -f given; "
"refusing to clean"
@@ -11094,166 +11130,166 @@ msgstr ""
"clean.requireForce standardmäßig auf \"true\" gesetzt und weder -i, -n noch -"
"f gegeben; \"clean\" verweigert"
-#: builtin/clone.c:46
+#: builtin/clone.c:45
msgid "git clone [<options>] [--] <repo> [<dir>]"
msgstr "git clone [<Optionen>] [--] <Repository> [<Verzeichnis>]"
-#: builtin/clone.c:93
+#: builtin/clone.c:92
msgid "don't create a checkout"
msgstr "kein Auschecken"
-#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:489
+#: builtin/clone.c:93 builtin/clone.c:95 builtin/init-db.c:489
msgid "create a bare repository"
msgstr "ein Bare-Repository erstellen"
-#: builtin/clone.c:98
+#: builtin/clone.c:97
msgid "create a mirror repository (implies bare)"
msgstr "ein Spiegelarchiv erstellen (impliziert --bare)"
-#: builtin/clone.c:100
+#: builtin/clone.c:99
msgid "to clone from a local repository"
msgstr "von einem lokalen Repository klonen"
-#: builtin/clone.c:102
+#: builtin/clone.c:101
msgid "don't use local hardlinks, always copy"
msgstr "lokal keine harten Verweise verwenden, immer Kopien"
-#: builtin/clone.c:104
+#: builtin/clone.c:103
msgid "setup as shared repository"
msgstr "als verteiltes Repository einrichten"
-#: builtin/clone.c:107
+#: builtin/clone.c:106
msgid "pathspec"
msgstr "Pfadspezifikation"
-#: builtin/clone.c:107
+#: builtin/clone.c:106
msgid "initialize submodules in the clone"
msgstr "Submodule im Klon initialisieren"
-#: builtin/clone.c:110
+#: builtin/clone.c:109
msgid "number of submodules cloned in parallel"
msgstr "Anzahl der parallel zu klonenden Submodule"
-#: builtin/clone.c:111 builtin/init-db.c:486
+#: builtin/clone.c:110 builtin/init-db.c:486
msgid "template-directory"
msgstr "Vorlagenverzeichnis"
-#: builtin/clone.c:112 builtin/init-db.c:487
+#: builtin/clone.c:111 builtin/init-db.c:487
msgid "directory from which templates will be used"
msgstr "Verzeichnis, von welchem die Vorlagen verwendet werden"
-#: builtin/clone.c:114 builtin/clone.c:116 builtin/submodule--helper.c:1380
+#: builtin/clone.c:113 builtin/clone.c:115 builtin/submodule--helper.c:1380
#: builtin/submodule--helper.c:1860
msgid "reference repository"
msgstr "Repository referenzieren"
-#: builtin/clone.c:118 builtin/submodule--helper.c:1382
+#: builtin/clone.c:117 builtin/submodule--helper.c:1382
#: builtin/submodule--helper.c:1862
msgid "use --reference only while cloning"
msgstr "--reference nur während des Klonens benutzen"
-#: builtin/clone.c:119 builtin/column.c:27 builtin/merge-file.c:46
-#: builtin/pack-objects.c:3314 builtin/repack.c:319
+#: builtin/clone.c:118 builtin/column.c:27 builtin/merge-file.c:46
+#: builtin/pack-objects.c:3294 builtin/repack.c:320
msgid "name"
msgstr "Name"
-#: builtin/clone.c:120
+#: builtin/clone.c:119
msgid "use <name> instead of 'origin' to track upstream"
msgstr "<Name> statt 'origin' für Upstream-Repository verwenden"
-#: builtin/clone.c:122
+#: builtin/clone.c:121
msgid "checkout <branch> instead of the remote's HEAD"
msgstr "<Branch> auschecken, anstatt HEAD des Remote-Repositories"
-#: builtin/clone.c:124
+#: builtin/clone.c:123
msgid "path to git-upload-pack on the remote"
msgstr "Pfad zu \"git-upload-pack\" auf der Gegenseite"
-#: builtin/clone.c:125 builtin/fetch.c:152 builtin/grep.c:838
-#: builtin/pull.c:226
+#: builtin/clone.c:124 builtin/fetch.c:167 builtin/grep.c:840
+#: builtin/pull.c:227
msgid "depth"
msgstr "Tiefe"
-#: builtin/clone.c:126
+#: builtin/clone.c:125
msgid "create a shallow clone of that depth"
msgstr ""
"einen Klon mit unvollständiger Historie (shallow) in dieser Tiefe erstellen"
-#: builtin/clone.c:127 builtin/fetch.c:154 builtin/pack-objects.c:3303
+#: builtin/clone.c:126 builtin/fetch.c:169 builtin/pack-objects.c:3283
msgid "time"
msgstr "Zeit"
-#: builtin/clone.c:128
+#: builtin/clone.c:127
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:129 builtin/fetch.c:156 builtin/fetch.c:179
-#: builtin/rebase.c:1395
+#: builtin/clone.c:128 builtin/fetch.c:171 builtin/fetch.c:194
+#: builtin/rebase.c:1417
msgid "revision"
msgstr "Commit"
-#: builtin/clone.c:130 builtin/fetch.c:157
+#: builtin/clone.c:129 builtin/fetch.c:172
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:132
+#: builtin/clone.c:131
msgid "clone only one branch, HEAD or --branch"
msgstr "nur einen Branch klonen, HEAD oder --branch"
-#: builtin/clone.c:134
+#: builtin/clone.c:133
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:136
+#: builtin/clone.c:135
msgid "any cloned submodules will be shallow"
msgstr "jedes geklonte Submodul mit unvollständiger Historie (shallow)"
-#: builtin/clone.c:137 builtin/init-db.c:495
+#: builtin/clone.c:136 builtin/init-db.c:495
msgid "gitdir"
msgstr ".git-Verzeichnis"
-#: builtin/clone.c:138 builtin/init-db.c:496
+#: builtin/clone.c:137 builtin/init-db.c:496
msgid "separate git dir from working tree"
msgstr "Git-Verzeichnis vom Arbeitsverzeichnis separieren"
-#: builtin/clone.c:139
+#: builtin/clone.c:138
msgid "key=value"
msgstr "Schlüssel=Wert"
-#: builtin/clone.c:140
+#: builtin/clone.c:139
msgid "set config inside the new repository"
msgstr "Konfiguration innerhalb des neuen Repositories setzen"
-#: builtin/clone.c:142 builtin/fetch.c:174 builtin/ls-remote.c:76
-#: builtin/push.c:585 builtin/send-pack.c:172
+#: builtin/clone.c:141 builtin/fetch.c:189 builtin/ls-remote.c:76
+#: builtin/push.c:572 builtin/send-pack.c:172
msgid "server-specific"
msgstr "serverspezifisch"
-#: builtin/clone.c:142 builtin/fetch.c:174 builtin/ls-remote.c:76
-#: builtin/push.c:585 builtin/send-pack.c:173
+#: builtin/clone.c:141 builtin/fetch.c:189 builtin/ls-remote.c:76
+#: builtin/push.c:572 builtin/send-pack.c:173
msgid "option to transmit"
msgstr "Option übertragen"
-#: builtin/clone.c:143 builtin/fetch.c:175 builtin/pull.c:239
-#: builtin/push.c:586
+#: builtin/clone.c:142 builtin/fetch.c:190 builtin/pull.c:240
+#: builtin/push.c:573
msgid "use IPv4 addresses only"
msgstr "nur IPv4-Adressen benutzen"
-#: builtin/clone.c:145 builtin/fetch.c:177 builtin/pull.c:242
-#: builtin/push.c:588
+#: builtin/clone.c:144 builtin/fetch.c:192 builtin/pull.c:243
+#: builtin/push.c:575
msgid "use IPv6 addresses only"
msgstr "nur IPv6-Adressen benutzen"
-#: builtin/clone.c:149
+#: builtin/clone.c:148
msgid "any cloned submodules will use their remote-tracking branch"
msgstr "jedes geklonte Submodul nutzt seinen Remote-Tracking-Branch"
-#: builtin/clone.c:285
+#: builtin/clone.c:284
msgid ""
"No directory name could be guessed.\n"
"Please specify a directory on the command line"
@@ -11261,47 +11297,42 @@ msgstr ""
"Konnte keinen Verzeichnisnamen erraten.\n"
"Bitte geben Sie ein Verzeichnis auf der Befehlszeile an."
-#: builtin/clone.c:338
+#: builtin/clone.c:337
#, 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:411
+#: builtin/clone.c:410
#, c-format
msgid "%s exists and is not a directory"
msgstr "%s existiert und ist kein Verzeichnis"
-#: builtin/clone.c:428
+#: builtin/clone.c:427
#, c-format
msgid "failed to start iterator over '%s'"
msgstr "Fehler beim Starten der Iteration über '%s'"
-#: builtin/clone.c:453
-#, c-format
-msgid "failed to unlink '%s'"
-msgstr "Konnte '%s' nicht entfernen."
-
-#: builtin/clone.c:458
+#: builtin/clone.c:457
#, c-format
msgid "failed to create link '%s'"
msgstr "Konnte Verweis '%s' nicht erstellen"
-#: builtin/clone.c:462
+#: builtin/clone.c:461
#, c-format
msgid "failed to copy file to '%s'"
msgstr "Konnte Datei nicht nach '%s' kopieren"
-#: builtin/clone.c:467
+#: builtin/clone.c:466
#, c-format
msgid "failed to iterate over '%s'"
msgstr "Fehler beim Iterieren über '%s'"
-#: builtin/clone.c:492
+#: builtin/clone.c:491
#, c-format
msgid "done.\n"
msgstr "Fertig.\n"
-#: builtin/clone.c:506
+#: builtin/clone.c:505
msgid ""
"Clone succeeded, but checkout failed.\n"
"You can inspect what was checked out with 'git status'\n"
@@ -11311,97 +11342,97 @@ 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:583
+#: builtin/clone.c:582
#, c-format
msgid "Could not find remote branch %s to clone."
msgstr "Konnte zu klonenden Remote-Branch %s nicht finden."
-#: builtin/clone.c:702
+#: builtin/clone.c:701
#, c-format
msgid "unable to update %s"
msgstr "kann %s nicht aktualisieren"
-#: builtin/clone.c:752
+#: builtin/clone.c:751
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:783
+#: builtin/clone.c:782
msgid "unable to checkout working tree"
msgstr "Arbeitsverzeichnis konnte nicht ausgecheckt werden"
-#: builtin/clone.c:833
+#: builtin/clone.c:832
msgid "unable to write parameters to config file"
msgstr "konnte Parameter nicht in Konfigurationsdatei schreiben"
-#: builtin/clone.c:896
+#: builtin/clone.c:895
msgid "cannot repack to clean up"
msgstr "Kann \"repack\" zum Aufräumen nicht aufrufen"
-#: builtin/clone.c:898
+#: builtin/clone.c:897
msgid "cannot unlink temporary alternates file"
msgstr "Kann temporäre \"alternates\"-Datei nicht entfernen"
-#: builtin/clone.c:938 builtin/receive-pack.c:1950
+#: builtin/clone.c:937 builtin/receive-pack.c:1948
msgid "Too many arguments."
msgstr "Zu viele Argumente."
-#: builtin/clone.c:942
+#: builtin/clone.c:941
msgid "You must specify a repository to clone."
msgstr "Sie müssen ein Repository zum Klonen angeben."
-#: builtin/clone.c:955
+#: builtin/clone.c:954
#, c-format
msgid "--bare and --origin %s options are incompatible."
msgstr "Die Optionen --bare und --origin %s sind inkompatibel."
-#: builtin/clone.c:958
+#: builtin/clone.c:957
msgid "--bare and --separate-git-dir are incompatible."
msgstr "Die Optionen --bare und --separate-git-dir sind inkompatibel."
-#: builtin/clone.c:971
+#: builtin/clone.c:970
#, c-format
msgid "repository '%s' does not exist"
msgstr "Repository '%s' existiert nicht."
-#: builtin/clone.c:977 builtin/fetch.c:1660
+#: builtin/clone.c:976 builtin/fetch.c:1790
#, c-format
msgid "depth %s is not a positive number"
msgstr "Tiefe %s ist keine positive Zahl"
-#: builtin/clone.c:987
+#: builtin/clone.c:986
#, 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:997
+#: builtin/clone.c:996
#, c-format
msgid "working tree '%s' already exists."
msgstr "Arbeitsverzeichnis '%s' existiert bereits."
-#: builtin/clone.c:1012 builtin/clone.c:1033 builtin/difftool.c:264
-#: builtin/worktree.c:303 builtin/worktree.c:335
+#: builtin/clone.c:1011 builtin/clone.c:1032 builtin/difftool.c:271
+#: builtin/log.c:1785 builtin/worktree.c:302 builtin/worktree.c:334
#, c-format
msgid "could not create leading directories of '%s'"
msgstr "Konnte führende Verzeichnisse von '%s' nicht erstellen."
-#: builtin/clone.c:1017
+#: builtin/clone.c:1016
#, c-format
msgid "could not create work tree dir '%s'"
msgstr "Konnte Arbeitsverzeichnis '%s' nicht erstellen"
-#: builtin/clone.c:1037
+#: builtin/clone.c:1036
#, c-format
msgid "Cloning into bare repository '%s'...\n"
msgstr "Klone in Bare-Repository '%s' ...\n"
-#: builtin/clone.c:1039
+#: builtin/clone.c:1038
#, c-format
msgid "Cloning into '%s'...\n"
msgstr "Klone nach '%s' ...\n"
-#: builtin/clone.c:1063
+#: builtin/clone.c:1062
msgid ""
"clone --recursive is not compatible with both --reference and --reference-if-"
"able"
@@ -11409,45 +11440,45 @@ msgstr ""
"'clone --recursive' ist nicht kompatibel mit --reference und --reference-if-"
"able"
-#: builtin/clone.c:1124
+#: builtin/clone.c:1123
msgid "--depth is ignored in local clones; use file:// instead."
msgstr ""
"Die Option --depth wird in lokalen Klonen ignoriert; benutzen Sie "
"stattdessen file://"
-#: builtin/clone.c:1126
+#: builtin/clone.c:1125
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:1128
+#: builtin/clone.c:1127
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:1130
+#: builtin/clone.c:1129
msgid "--filter is ignored in local clones; use file:// instead."
msgstr ""
"--filter wird in lokalen Klonen ignoriert; benutzen Sie stattdessen file://"
-#: builtin/clone.c:1133
+#: builtin/clone.c:1132
msgid "source repository is shallow, ignoring --local"
msgstr ""
"Quelle ist ein Repository mit unvollständiger Historie (shallow),\n"
"ignoriere --local"
-#: builtin/clone.c:1138
+#: builtin/clone.c:1137
msgid "--local is ignored"
msgstr "--local wird ignoriert"
-#: builtin/clone.c:1215 builtin/clone.c:1223
+#: builtin/clone.c:1212 builtin/clone.c:1220
#, c-format
msgid "Remote branch %s not found in upstream %s"
msgstr "Remote-Branch %s nicht im Upstream-Repository %s gefunden"
-#: builtin/clone.c:1226
+#: builtin/clone.c:1223
msgid "You appear to have cloned an empty repository."
msgstr "Sie scheinen ein leeres Repository geklont zu haben."
@@ -11525,7 +11556,7 @@ msgid "id of a parent commit object"
msgstr "ID eines Eltern-Commit-Objektes."
#: builtin/commit-tree.c:114 builtin/commit.c:1500 builtin/merge.c:270
-#: builtin/notes.c:409 builtin/notes.c:575 builtin/stash.c:1460
+#: builtin/notes.c:409 builtin/notes.c:575 builtin/stash.c:1469
#: builtin/tag.c:412
msgid "message"
msgstr "Beschreibung"
@@ -11539,7 +11570,7 @@ msgid "read commit log message from file"
msgstr "Commit-Beschreibung von Datei lesen"
#: builtin/commit-tree.c:121 builtin/commit.c:1512 builtin/merge.c:287
-#: builtin/pull.c:194 builtin/revert.c:118
+#: builtin/pull.c:195 builtin/revert.c:118
msgid "GPG sign commit"
msgstr "Commit mit GPG signieren"
@@ -11880,8 +11911,8 @@ msgstr "voraus/hinterher-Werte berechnen"
msgid "version"
msgstr "Version"
-#: builtin/commit.c:1347 builtin/commit.c:1529 builtin/push.c:561
-#: builtin/worktree.c:651
+#: builtin/commit.c:1347 builtin/commit.c:1529 builtin/push.c:548
+#: builtin/worktree.c:650
msgid "machine-readable output"
msgstr "maschinenlesbare Ausgabe"
@@ -11894,8 +11925,8 @@ msgid "terminate entries with NUL"
msgstr "Einträge mit NUL-Zeichen abschließen"
#: builtin/commit.c:1355 builtin/commit.c:1359 builtin/commit.c:1537
-#: builtin/fast-export.c:1125 builtin/fast-export.c:1128
-#: builtin/fast-export.c:1131 builtin/rebase.c:1471 parse-options.h:332
+#: builtin/fast-export.c:1153 builtin/fast-export.c:1156
+#: builtin/fast-export.c:1159 builtin/rebase.c:1495 parse-options.h:332
msgid "mode"
msgstr "Modus"
@@ -11913,7 +11944,7 @@ msgstr ""
"ignorierte Dateien anzeigen, optionale Modi: traditional, matching, no. "
"(Standard: traditional)"
-#: builtin/commit.c:1362 parse-options.h:179
+#: builtin/commit.c:1362 parse-options.h:188
msgid "when"
msgstr "wann"
@@ -11966,7 +11997,7 @@ msgstr "Autor"
msgid "override author for commit"
msgstr "Autor eines Commits überschreiben"
-#: builtin/commit.c:1499 builtin/gc.c:539
+#: builtin/commit.c:1499 builtin/gc.c:538
msgid "date"
msgstr "Datum"
@@ -12003,8 +12034,8 @@ msgstr ""
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:1506 builtin/log.c:1564 builtin/merge.c:289
-#: builtin/pull.c:163 builtin/revert.c:110
+#: builtin/commit.c:1506 builtin/log.c:1565 builtin/merge.c:289
+#: builtin/pull.c:164 builtin/revert.c:110
msgid "add Signed-off-by:"
msgstr "'Signed-off-by:'-Zeile hinzufügen"
@@ -12112,71 +12143,75 @@ msgid "git commit-graph read [--object-dir <objdir>]"
msgstr "git commit-graph read [--object-dir <Objektverzeichnis>]"
#: builtin/commit-graph.c:13 builtin/commit-graph.c:19
-msgid "git commit-graph verify [--object-dir <objdir>] [--shallow]"
-msgstr "git commit-graph verify [--object-dir <Objektverzeichnis>] [--shallow]"
+msgid ""
+"git commit-graph verify [--object-dir <objdir>] [--shallow] [--[no-]progress]"
+msgstr ""
+"git commit-graph verify [--object-dir <Objektverzeichnis>] [--shallow] [--"
+"[no-]progress]"
#: builtin/commit-graph.c:14 builtin/commit-graph.c:29
msgid ""
"git commit-graph write [--object-dir <objdir>] [--append|--split] [--"
-"reachable|--stdin-packs|--stdin-commits] <split options>"
+"reachable|--stdin-packs|--stdin-commits] [--[no-]progress] <split options>"
msgstr ""
"git commit-graph write [--object-dir <Objektverzeichnis>] [--append|split] "
-"[--reachable|--stdin-packs|--stdin-commits] <Split-Optionen>"
+"[--reachable|--stdin-packs|--stdin-commits] [--[no-]progress] <Split-"
+"Optionen>"
-#: builtin/commit-graph.c:54 builtin/commit-graph.c:100
-#: builtin/commit-graph.c:161 builtin/commit-graph.c:237 builtin/fetch.c:163
-#: builtin/log.c:1584
+#: builtin/commit-graph.c:55 builtin/commit-graph.c:107
+#: builtin/commit-graph.c:170 builtin/commit-graph.c:254 builtin/fetch.c:178
+#: builtin/log.c:1585
msgid "dir"
msgstr "Verzeichnis"
-#: builtin/commit-graph.c:55 builtin/commit-graph.c:101
-#: builtin/commit-graph.c:162 builtin/commit-graph.c:238
+#: builtin/commit-graph.c:56 builtin/commit-graph.c:108
+#: builtin/commit-graph.c:171 builtin/commit-graph.c:255
msgid "The object directory to store the graph"
msgstr "Das Objektverzeichnis zum Speichern des Graphen."
-#: builtin/commit-graph.c:57
+#: builtin/commit-graph.c:58
msgid "if the commit-graph is split, only verify the tip file"
msgstr ""
"Wenn der Commit-Graph aufgeteilt ist, nur die Datei an der Spitze überprüfen"
-#: builtin/commit-graph.c:73 builtin/commit-graph.c:116
+#: builtin/commit-graph.c:80 builtin/commit-graph.c:125
#, c-format
msgid "Could not open commit-graph '%s'"
msgstr "Konnte Commit-Graph '%s' nicht öffnen."
-#: builtin/commit-graph.c:164
+#: builtin/commit-graph.c:173
msgid "start walk at all refs"
msgstr "Durchlauf auf allen Referenzen beginnen"
-#: builtin/commit-graph.c:166
+#: builtin/commit-graph.c:175
msgid "scan pack-indexes listed by stdin for commits"
msgstr "durch Standard-Eingabe gelistete Pack-Indexe nach Commits scannen"
-#: builtin/commit-graph.c:168
+#: builtin/commit-graph.c:177
msgid "start walk at commits listed by stdin"
msgstr "Lauf bei Commits beginnen, die über die Standard-Eingabe gelistet sind"
-#: builtin/commit-graph.c:170
+#: builtin/commit-graph.c:179
msgid "include all commits already in the commit-graph file"
msgstr ""
"alle Commits einschließen, die sich bereits in der Commit-Graph-Datei "
"befinden"
-#: builtin/commit-graph.c:172
+#: builtin/commit-graph.c:182
msgid "allow writing an incremental commit-graph file"
msgstr "Erlaube das Schreiben einer inkrementellen Commit-Graph-Datei"
-#: builtin/commit-graph.c:174 builtin/commit-graph.c:178
+#: builtin/commit-graph.c:184 builtin/commit-graph.c:188
msgid "maximum number of commits in a non-base split commit-graph"
msgstr ""
"Maximale Anzahl von Commits in einem aufgeteilten Commit-Graph ohne Basis"
-#: builtin/commit-graph.c:176
+#: builtin/commit-graph.c:186
msgid "maximum ratio between two levels of a split commit-graph"
msgstr ""
"Maximales Verhältnis zwischen zwei Ebenen eines aufgeteilten Commit-Graph"
-#: builtin/commit-graph.c:191
+#: builtin/commit-graph.c:204
msgid "use at most one of --reachable, --stdin-commits, or --stdin-packs"
msgstr ""
"Benutzen Sie mindestens eins von --reachable, --stdin-commits, oder --stdin-"
@@ -12497,59 +12532,59 @@ msgstr "git count-objects [-v] [-H | --human-readable]"
msgid "print sizes in human readable format"
msgstr "gibt Größenangaben in menschenlesbaren Format aus"
-#: builtin/describe.c:27
+#: builtin/describe.c:26
msgid "git describe [<options>] [<commit-ish>...]"
msgstr "git describe [<Optionen>] [<Commit-Angabe>...]"
-#: builtin/describe.c:28
+#: builtin/describe.c:27
msgid "git describe [<options>] --dirty"
msgstr "git describe [<Optionen>] --dirty"
-#: builtin/describe.c:63
+#: builtin/describe.c:62
msgid "head"
msgstr "Branch"
-#: builtin/describe.c:63
+#: builtin/describe.c:62
msgid "lightweight"
msgstr "nicht-annotiert"
-#: builtin/describe.c:63
+#: builtin/describe.c:62
msgid "annotated"
msgstr "annotiert"
-#: builtin/describe.c:273
+#: builtin/describe.c:275
#, c-format
msgid "annotated tag %s not available"
msgstr "annotiertes Tag %s ist nicht verfügbar"
-#: builtin/describe.c:277
+#: builtin/describe.c:279
#, c-format
msgid "annotated tag %s has no embedded name"
msgstr "annotiertes Tag %s hat keinen eingebetteten Namen"
-#: builtin/describe.c:279
+#: builtin/describe.c:281
#, c-format
msgid "tag '%s' is really '%s' here"
msgstr "Tag '%s' ist eigentlich '%s' hier"
-#: builtin/describe.c:323
+#: builtin/describe.c:325
#, c-format
msgid "no tag exactly matches '%s'"
msgstr "kein Tag entspricht exakt '%s'"
-#: builtin/describe.c:325
+#: builtin/describe.c:327
#, c-format
msgid "No exact match on refs or tags, searching to describe\n"
msgstr ""
"Keine exakte Ãœbereinstimmung bei Referenzen oder Tags, Suche zum "
"Beschreiben\n"
-#: builtin/describe.c:379
+#: builtin/describe.c:381
#, c-format
msgid "finished search at %s\n"
msgstr "beendete Suche bei %s\n"
-#: builtin/describe.c:405
+#: builtin/describe.c:407
#, c-format
msgid ""
"No annotated tags can describe '%s'.\n"
@@ -12558,7 +12593,7 @@ msgstr ""
"Keine annotierten Tags können '%s' beschreiben.\n"
"Jedoch gab es nicht-annotierte Tags: versuchen Sie --tags."
-#: builtin/describe.c:409
+#: builtin/describe.c:411
#, c-format
msgid ""
"No tags can describe '%s'.\n"
@@ -12567,12 +12602,12 @@ msgstr ""
"Keine Tags können '%s' beschreiben.\n"
"Versuchen Sie --always oder erstellen Sie einige Tags."
-#: builtin/describe.c:439
+#: builtin/describe.c:441
#, c-format
msgid "traversed %lu commits\n"
msgstr "%lu Commits durchlaufen\n"
-#: builtin/describe.c:442
+#: builtin/describe.c:444
#, c-format
msgid ""
"more than %i tags found; listed %i most recent\n"
@@ -12581,94 +12616,93 @@ msgstr ""
"mehr als %i Tags gefunden; führe die ersten %i auf\n"
"Suche bei %s aufgegeben\n"
-#: builtin/describe.c:510
+#: builtin/describe.c:512
#, c-format
msgid "describe %s\n"
msgstr "Beschreibe %s\n"
-#: builtin/describe.c:513
+#: builtin/describe.c:515
#, c-format
msgid "Not a valid object name %s"
msgstr "%s ist kein gültiger Objekt-Name"
-#: builtin/describe.c:521
+#: builtin/describe.c:523
#, c-format
msgid "%s is neither a commit nor blob"
msgstr "%s ist weder ein Commit, noch ein Blob."
-#: builtin/describe.c:535
+#: builtin/describe.c:537
msgid "find the tag that comes after the commit"
msgstr "das Tag finden, das nach dem Commit kommt"
-#: builtin/describe.c:536
+#: builtin/describe.c:538
msgid "debug search strategy on stderr"
msgstr "die Suchstrategie in der Standard-Fehlerausgabe protokollieren"
-#: builtin/describe.c:537
+#: builtin/describe.c:539
msgid "use any ref"
msgstr "alle Referenzen verwenden"
-#: builtin/describe.c:538
+#: builtin/describe.c:540
msgid "use any tag, even unannotated"
msgstr "jedes Tag verwenden, auch nicht-annotierte"
-#: builtin/describe.c:539
+#: builtin/describe.c:541
msgid "always use long format"
msgstr "immer langes Format verwenden"
-#: builtin/describe.c:540
+#: builtin/describe.c:542
msgid "only follow first parent"
msgstr "nur erstem Elternteil folgen"
-#: builtin/describe.c:543
+#: builtin/describe.c:545
msgid "only output exact matches"
msgstr "nur exakte Ãœbereinstimmungen ausgeben"
-#: builtin/describe.c:545
+#: builtin/describe.c:547
msgid "consider <n> most recent tags (default: 10)"
msgstr "die jüngsten <n> Tags betrachten (Standard: 10)"
-#: builtin/describe.c:547
+#: builtin/describe.c:549
msgid "only consider tags matching <pattern>"
msgstr "nur Tags, die <Muster> entsprechen, betrachten"
-#: builtin/describe.c:549
+#: builtin/describe.c:551
msgid "do not consider tags matching <pattern>"
msgstr "keine Tags betrachten, die <Muster> entsprechen"
-#: builtin/describe.c:551 builtin/name-rev.c:422
+#: builtin/describe.c:553 builtin/name-rev.c:426
msgid "show abbreviated commit object as fallback"
msgstr "gekürztes Commit-Objekt anzeigen, wenn sonst nichts zutrifft"
-#: builtin/describe.c:552 builtin/describe.c:555
+#: builtin/describe.c:554 builtin/describe.c:557
msgid "mark"
-msgstr "Kennzeichen"
+msgstr "Markierung"
-#: builtin/describe.c:553
+#: builtin/describe.c:555
msgid "append <mark> on dirty working tree (default: \"-dirty\")"
msgstr ""
-"<Kennzeichen> bei geändertem Arbeitsverzeichnis anhängen (Standard: \"-dirty"
+"<Markierung> bei geändertem Arbeitsverzeichnis anhängen (Standard: \"-dirty"
"\")"
-#: builtin/describe.c:556
+#: builtin/describe.c:558
msgid "append <mark> on broken working tree (default: \"-broken\")"
msgstr ""
-"<Kennzeichen> bei defektem Arbeitsverzeichnis anhängen (Standard: \"-broken"
-"\")"
+"<Markierung> bei defektem Arbeitsverzeichnis anhängen (Standard: \"-broken\")"
-#: builtin/describe.c:574
+#: builtin/describe.c:576
msgid "--long is incompatible with --abbrev=0"
msgstr "Die Optionen --long und --abbrev=0 sind inkompatibel."
-#: builtin/describe.c:603
+#: builtin/describe.c:605
msgid "No names found, cannot describe anything."
msgstr "Keine Namen gefunden, kann nichts beschreiben."
-#: builtin/describe.c:654
+#: builtin/describe.c:656
msgid "--dirty is incompatible with commit-ishes"
msgstr "Die Option --dirty kann nicht mit Commits verwendet werden."
-#: builtin/describe.c:656
+#: builtin/describe.c:658
msgid "--broken is incompatible with commit-ishes"
msgstr "Die Option --broken kann nicht mit Commits verwendet werden."
@@ -12705,27 +12739,27 @@ msgstr "unbehandeltes Objekt '%s' angegeben"
msgid "git difftool [<options>] [<commit> [<commit>]] [--] [<path>...]"
msgstr "git difftool [<Optionen>] [<Commit> [<Commit>]] [--] [<Pfad>...]"
-#: builtin/difftool.c:253
+#: builtin/difftool.c:260
#, c-format
msgid "failed: %d"
msgstr "fehlgeschlagen: %d"
-#: builtin/difftool.c:295
+#: builtin/difftool.c:302
#, c-format
msgid "could not read symlink %s"
msgstr "konnte symbolische Verknüpfung %s nicht lesen"
-#: builtin/difftool.c:297
+#: builtin/difftool.c:304
#, c-format
msgid "could not read symlink file %s"
msgstr "Konnte Datei von symbolischer Verknüpfung '%s' nicht lesen."
-#: builtin/difftool.c:305
+#: builtin/difftool.c:312
#, c-format
msgid "could not read object %s for symlink %s"
msgstr "Konnte Objekt '%s' für symbolische Verknüpfung '%s' nicht lesen."
-#: builtin/difftool.c:406
+#: builtin/difftool.c:413
msgid ""
"combined diff formats('-c' and '--cc') are not supported in\n"
"directory diff mode('-d' and '--dir-diff')."
@@ -12733,54 +12767,54 @@ msgstr ""
"Kombinierte Diff-Formate('-c' und '--cc') werden im Verzeichnis-\n"
"Diff-Modus('-d' und '--dir-diff') nicht unterstützt."
-#: builtin/difftool.c:626
+#: builtin/difftool.c:634
#, c-format
msgid "both files modified: '%s' and '%s'."
msgstr "beide Dateien geändert: '%s' und '%s'."
-#: builtin/difftool.c:628
+#: builtin/difftool.c:636
msgid "working tree file has been left."
msgstr "Datei im Arbeitsverzeichnis belassen."
-#: builtin/difftool.c:639
+#: builtin/difftool.c:647
#, c-format
msgid "temporary files exist in '%s'."
msgstr "Es existieren temporäre Dateien in '%s'."
-#: builtin/difftool.c:640
+#: builtin/difftool.c:648
msgid "you may want to cleanup or recover these."
msgstr "Sie könnten diese aufräumen oder wiederherstellen."
-#: builtin/difftool.c:689
+#: builtin/difftool.c:697
msgid "use `diff.guitool` instead of `diff.tool`"
msgstr "`diff.guitool` anstatt `diff.tool` benutzen"
-#: builtin/difftool.c:691
+#: builtin/difftool.c:699
msgid "perform a full-directory diff"
msgstr "Diff über ganzes Verzeichnis ausführen"
-#: builtin/difftool.c:693
+#: builtin/difftool.c:701
msgid "do not prompt before launching a diff tool"
msgstr "keine Eingabeaufforderung vor Ausführung eines Diff-Tools"
-#: builtin/difftool.c:698
+#: builtin/difftool.c:706
msgid "use symlinks in dir-diff mode"
msgstr "symbolische Verknüpfungen im dir-diff Modus verwenden"
-#: builtin/difftool.c:699
+#: builtin/difftool.c:707
msgid "tool"
msgstr "Tool"
-#: builtin/difftool.c:700
+#: builtin/difftool.c:708
msgid "use the specified diff tool"
msgstr "das angegebene Diff-Tool benutzen"
-#: builtin/difftool.c:702
+#: builtin/difftool.c:710
msgid "print a list of diff tools that may be used with `--tool`"
msgstr ""
"eine Liste mit Diff-Tools darstellen, die mit `--tool` benutzt werden können"
-#: builtin/difftool.c:705
+#: builtin/difftool.c:713
msgid ""
"make 'git-difftool' exit when an invoked diff tool returns a non - zero exit "
"code"
@@ -12789,31 +12823,31 @@ msgstr ""
"Rückkehrwert\n"
"verschieden 0 ausgeführt wurde"
-#: builtin/difftool.c:708
+#: builtin/difftool.c:716
msgid "specify a custom command for viewing diffs"
msgstr "eigenen Befehl zur Anzeige von Unterschieden angeben"
-#: builtin/difftool.c:709
+#: builtin/difftool.c:717
msgid "passed to `diff`"
msgstr "an 'diff' übergeben"
-#: builtin/difftool.c:724
+#: builtin/difftool.c:732
msgid "difftool requires worktree or --no-index"
msgstr "difftool benötigt Arbeitsverzeichnis oder --no-index"
-#: builtin/difftool.c:731
+#: builtin/difftool.c:739
msgid "--dir-diff is incompatible with --no-index"
msgstr "--dir-diff kann nicht mit --no-index verwendet werden"
-#: builtin/difftool.c:734
+#: builtin/difftool.c:742
msgid "--gui, --tool and --extcmd are mutually exclusive"
msgstr "--gui, --tool und --extcmd schließen sich gegenseitig aus"
-#: builtin/difftool.c:742
+#: builtin/difftool.c:750
msgid "no <tool> given for --tool=<tool>"
msgstr "kein <Tool> für --tool=<Tool> angegeben"
-#: builtin/difftool.c:749
+#: builtin/difftool.c:757
msgid "no <cmd> given for --extcmd=<cmd>"
msgstr "kein <Programm> für --extcmd=<Programm> angegeben"
@@ -12853,166 +12887,194 @@ msgstr ""
msgid "git fast-export [rev-list-opts]"
msgstr "git fast-export [rev-list-opts]"
-#: builtin/fast-export.c:1124
+#: builtin/fast-export.c:852
+msgid "Error: Cannot export nested tags unless --mark-tags is specified."
+msgstr ""
+"Fehler: Verschachtelte Tags können nicht exportiert werden, außer --mark-"
+"tags wurde angegeben."
+
+#: builtin/fast-export.c:1152
msgid "show progress after <n> objects"
msgstr "Fortschritt nach <n> Objekten anzeigen"
-#: builtin/fast-export.c:1126
+#: builtin/fast-export.c:1154
msgid "select handling of signed tags"
msgstr "Behandlung von signierten Tags wählen"
-#: builtin/fast-export.c:1129
+#: builtin/fast-export.c:1157
msgid "select handling of tags that tag filtered objects"
msgstr "Behandlung von Tags wählen, die gefilterte Objekte markieren"
-#: builtin/fast-export.c:1132
+#: builtin/fast-export.c:1160
msgid "select handling of commit messages in an alternate encoding"
msgstr ""
"Auswählen der Behandlung von Commit-Beschreibungen bei wechselndem Encoding"
-#: builtin/fast-export.c:1135
+#: builtin/fast-export.c:1163
msgid "Dump marks to this file"
-msgstr "Kennzeichen in diese Datei schreiben"
+msgstr "Markierungen in diese Datei schreiben"
-#: builtin/fast-export.c:1137
+#: builtin/fast-export.c:1165
msgid "Import marks from this file"
-msgstr "Kennzeichen von dieser Datei importieren"
+msgstr "Markierungen von dieser Datei importieren"
+
+#: builtin/fast-export.c:1169
+msgid "Import marks from this file if it exists"
+msgstr "Markierungen von dieser Datei importieren, wenn diese existiert"
-#: builtin/fast-export.c:1139
+#: builtin/fast-export.c:1171
msgid "Fake a tagger when tags lack one"
msgstr "künstlich einen Tag-Ersteller erzeugen, wenn das Tag keinen hat"
-#: builtin/fast-export.c:1141
+#: builtin/fast-export.c:1173
msgid "Output full tree for each commit"
msgstr "für jeden Commit das gesamte Verzeichnis ausgeben"
-#: builtin/fast-export.c:1143
+#: builtin/fast-export.c:1175
msgid "Use the done feature to terminate the stream"
msgstr "die \"done\"-Funktion benutzen, um den Datenstrom abzuschließen"
-#: builtin/fast-export.c:1144
+#: builtin/fast-export.c:1176
msgid "Skip output of blob data"
msgstr "Ausgabe von Blob-Daten überspringen"
-#: builtin/fast-export.c:1145 builtin/log.c:1632
+#: builtin/fast-export.c:1177 builtin/log.c:1633
msgid "refspec"
msgstr "Refspec"
-#: builtin/fast-export.c:1146
+#: builtin/fast-export.c:1178
msgid "Apply refspec to exported refs"
msgstr "Refspec auf exportierte Referenzen anwenden"
-#: builtin/fast-export.c:1147
+#: builtin/fast-export.c:1179
msgid "anonymize output"
msgstr "Ausgabe anonymisieren"
-#: builtin/fast-export.c:1149
+#: builtin/fast-export.c:1181
msgid "Reference parents which are not in fast-export stream by object id"
msgstr ""
"Eltern, die nicht im Fast-Export-Stream sind, anhand ihrer Objekt-ID "
"referenzieren"
-#: builtin/fast-export.c:1151
+#: builtin/fast-export.c:1183
msgid "Show original object ids of blobs/commits"
msgstr "originale Objekt-IDs von Blobs/Commits anzeigen"
-#: builtin/fetch.c:30
+#: builtin/fast-export.c:1185
+msgid "Label tags with mark ids"
+msgstr "Tags mit Markierungs-IDs beschriften"
+
+#: builtin/fast-export.c:1220
+msgid "Cannot pass both --import-marks and --import-marks-if-exists"
+msgstr ""
+"--import-marks und --import-marks-if-exists können nicht zusammen "
+"weitergegeben werden"
+
+#: builtin/fetch.c:34
msgid "git fetch [<options>] [<repository> [<refspec>...]]"
msgstr "git fetch [<Optionen>] [<Repository> [<Refspec>...]]"
-#: builtin/fetch.c:31
+#: builtin/fetch.c:35
msgid "git fetch [<options>] <group>"
msgstr "git fetch [<Optionen>] <Gruppe>"
-#: builtin/fetch.c:32
+#: builtin/fetch.c:36
msgid "git fetch --multiple [<options>] [(<repository> | <group>)...]"
msgstr "git fetch --multiple [<Optionen>] [(<Repository> | <Gruppe>)...]"
-#: builtin/fetch.c:33
+#: builtin/fetch.c:37
msgid "git fetch --all [<options>]"
msgstr "git fetch --all [<Optionen>]"
-#: builtin/fetch.c:125 builtin/pull.c:203
+#: builtin/fetch.c:115
+msgid "fetch.parallel cannot be negative"
+msgstr "fetch.parallel kann nicht negativ sein"
+
+#: builtin/fetch.c:138 builtin/pull.c:204
msgid "fetch from all remotes"
msgstr "fordert von allen Remote-Repositories an"
-#: builtin/fetch.c:127 builtin/pull.c:206
+#: builtin/fetch.c:140 builtin/pull.c:248
+msgid "set upstream for git pull/fetch"
+msgstr "Upstream für \"git pull/fetch\" setzen"
+
+#: builtin/fetch.c:142 builtin/pull.c:207
msgid "append to .git/FETCH_HEAD instead of overwriting"
msgstr "an .git/FETCH_HEAD anhängen, anstatt zu überschreiben"
-#: builtin/fetch.c:129 builtin/pull.c:209
+#: builtin/fetch.c:144 builtin/pull.c:210
msgid "path to upload pack on remote end"
msgstr "Pfad des Programms zum Hochladen von Paketen auf der Gegenseite"
-#: builtin/fetch.c:130
+#: builtin/fetch.c:145
msgid "force overwrite of local reference"
msgstr "das Ãœberschreiben einer lokalen Referenz erzwingen"
-#: builtin/fetch.c:132
+#: builtin/fetch.c:147
msgid "fetch from multiple remotes"
msgstr "von mehreren Remote-Repositories anfordern"
-#: builtin/fetch.c:134 builtin/pull.c:213
+#: builtin/fetch.c:149 builtin/pull.c:214
msgid "fetch all tags and associated objects"
msgstr "alle Tags und verbundene Objekte anfordern"
-#: builtin/fetch.c:136
+#: builtin/fetch.c:151
msgid "do not fetch all tags (--no-tags)"
msgstr "nicht alle Tags anfordern (--no-tags)"
-#: builtin/fetch.c:138
+#: builtin/fetch.c:153
msgid "number of submodules fetched in parallel"
msgstr "Anzahl der parallel anzufordernden Submodule"
-#: builtin/fetch.c:140 builtin/pull.c:216
+#: builtin/fetch.c:155 builtin/pull.c:217
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:142
+#: builtin/fetch.c:157
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:143 builtin/fetch.c:166 builtin/pull.c:140
+#: builtin/fetch.c:158 builtin/fetch.c:181 builtin/pull.c:141
msgid "on-demand"
msgstr "bei-Bedarf"
-#: builtin/fetch.c:144
+#: builtin/fetch.c:159
msgid "control recursive fetching of submodules"
msgstr "rekursive Anforderungen von Submodulen kontrollieren"
-#: builtin/fetch.c:148 builtin/pull.c:224
+#: builtin/fetch.c:163 builtin/pull.c:225
msgid "keep downloaded pack"
msgstr "heruntergeladenes Paket behalten"
-#: builtin/fetch.c:150
+#: builtin/fetch.c:165
msgid "allow updating of HEAD ref"
msgstr "Aktualisierung der \"HEAD\"-Referenz erlauben"
-#: builtin/fetch.c:153 builtin/fetch.c:159 builtin/pull.c:227
+#: builtin/fetch.c:168 builtin/fetch.c:174 builtin/pull.c:228
msgid "deepen history of shallow clone"
msgstr ""
"die Historie eines Klons mit unvollständiger Historie (shallow) vertiefen"
-#: builtin/fetch.c:155
+#: builtin/fetch.c:170
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:161 builtin/pull.c:230
+#: builtin/fetch.c:176 builtin/pull.c:231
msgid "convert to a complete repository"
msgstr "zu einem vollständigen Repository konvertieren"
-#: builtin/fetch.c:164
+#: builtin/fetch.c:179
msgid "prepend this to submodule path output"
msgstr "dies an die Ausgabe der Submodul-Pfade voranstellen"
-#: builtin/fetch.c:167
+#: builtin/fetch.c:182
msgid ""
"default for recursive fetching of submodules (lower priority than config "
"files)"
@@ -13020,92 +13082,92 @@ msgstr ""
"Standard für die rekursive Anforderung von Submodulen (geringere Priorität\n"
"als Konfigurationsdateien)"
-#: builtin/fetch.c:171 builtin/pull.c:233
+#: builtin/fetch.c:186 builtin/pull.c:234
msgid "accept refs that update .git/shallow"
msgstr "Referenzen, die .git/shallow aktualisieren, akzeptieren"
-#: builtin/fetch.c:172 builtin/pull.c:235
+#: builtin/fetch.c:187 builtin/pull.c:236
msgid "refmap"
msgstr "Refmap"
-#: builtin/fetch.c:173 builtin/pull.c:236
+#: builtin/fetch.c:188 builtin/pull.c:237
msgid "specify fetch refmap"
msgstr "Refmap für 'fetch' angeben"
-#: builtin/fetch.c:180
+#: builtin/fetch.c:195
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:183
+#: builtin/fetch.c:198
msgid "run 'gc --auto' after fetching"
msgstr "Führe 'gc --auto' nach \"fetch\" aus"
-#: builtin/fetch.c:185 builtin/pull.c:245
+#: builtin/fetch.c:200 builtin/pull.c:246
msgid "check for forced-updates on all updated branches"
msgstr "Prüfe auf erzwungene Aktualisierungen in allen aktualisierten Branches"
-#: builtin/fetch.c:491
+#: builtin/fetch.c:510
msgid "Couldn't find remote ref HEAD"
msgstr "Konnte Remote-Referenz von HEAD nicht finden."
-#: builtin/fetch.c:630
+#: builtin/fetch.c:650
#, c-format
msgid "configuration fetch.output contains invalid value %s"
msgstr "Konfiguration fetch.output enthält ungültigen Wert %s"
-#: builtin/fetch.c:728
+#: builtin/fetch.c:748
#, c-format
msgid "object %s not found"
msgstr "Objekt %s nicht gefunden"
-#: builtin/fetch.c:732
+#: builtin/fetch.c:752
msgid "[up to date]"
msgstr "[aktuell]"
-#: builtin/fetch.c:745 builtin/fetch.c:761 builtin/fetch.c:833
+#: builtin/fetch.c:765 builtin/fetch.c:781 builtin/fetch.c:853
msgid "[rejected]"
msgstr "[zurückgewiesen]"
-#: builtin/fetch.c:746
+#: builtin/fetch.c:766
msgid "can't fetch in current branch"
msgstr "kann \"fetch\" im aktuellen Branch nicht ausführen"
-#: builtin/fetch.c:756
+#: builtin/fetch.c:776
msgid "[tag update]"
msgstr "[Tag Aktualisierung]"
-#: builtin/fetch.c:757 builtin/fetch.c:794 builtin/fetch.c:816
-#: builtin/fetch.c:828
+#: builtin/fetch.c:777 builtin/fetch.c:814 builtin/fetch.c:836
+#: builtin/fetch.c:848
msgid "unable to update local ref"
msgstr "kann lokale Referenz nicht aktualisieren"
-#: builtin/fetch.c:761
+#: builtin/fetch.c:781
msgid "would clobber existing tag"
msgstr "würde bestehende Tags verändern"
-#: builtin/fetch.c:783
+#: builtin/fetch.c:803
msgid "[new tag]"
msgstr "[neues Tag]"
-#: builtin/fetch.c:786
+#: builtin/fetch.c:806
msgid "[new branch]"
msgstr "[neuer Branch]"
-#: builtin/fetch.c:789
+#: builtin/fetch.c:809
msgid "[new ref]"
msgstr "[neue Referenz]"
-#: builtin/fetch.c:828
+#: builtin/fetch.c:848
msgid "forced update"
msgstr "Aktualisierung erzwungen"
-#: builtin/fetch.c:833
+#: builtin/fetch.c:853
msgid "non-fast-forward"
msgstr "kein Vorspulen"
-#: builtin/fetch.c:854
+#: builtin/fetch.c:874
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"
@@ -13116,7 +13178,7 @@ msgstr ""
"aktivieren, nutzen Sie die Option '--show-forced-updated' oder führen\n"
"Sie 'git config fetch.showForcedUpdates true' aus."
-#: builtin/fetch.c:858
+#: builtin/fetch.c:878
#, c-format
msgid ""
"It took %.2f seconds to check forced updates. You can use\n"
@@ -13129,12 +13191,12 @@ msgstr ""
"'git config fetch.showForcedUpdates false' ausführen, um diese Überprüfung\n"
"zu umgehen.\n"
-#: builtin/fetch.c:888
+#: builtin/fetch.c:908
#, c-format
msgid "%s did not send all necessary objects\n"
msgstr "%s hat nicht alle erforderlichen Objekte gesendet\n"
-#: builtin/fetch.c:909
+#: builtin/fetch.c:929
#, c-format
msgid "reject %s because shallow roots are not allowed to be updated"
msgstr ""
@@ -13142,12 +13204,12 @@ msgstr ""
"unvollständiger\n"
"Historie (shallow) nicht aktualisiert werden dürfen."
-#: builtin/fetch.c:1000 builtin/fetch.c:1131
+#: builtin/fetch.c:1020 builtin/fetch.c:1157
#, c-format
msgid "From %.*s\n"
msgstr "Von %.*s\n"
-#: builtin/fetch.c:1011
+#: builtin/fetch.c:1031
#, c-format
msgid ""
"some local refs could not be updated; try running\n"
@@ -13156,60 +13218,81 @@ 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:1101
+#: builtin/fetch.c:1127
#, c-format
msgid " (%s will become dangling)"
msgstr " (%s wird unreferenziert)"
-#: builtin/fetch.c:1102
+#: builtin/fetch.c:1128
#, c-format
msgid " (%s has become dangling)"
msgstr " (%s wurde unreferenziert)"
-#: builtin/fetch.c:1134
+#: builtin/fetch.c:1160
msgid "[deleted]"
msgstr "[gelöscht]"
-#: builtin/fetch.c:1135 builtin/remote.c:1036
+#: builtin/fetch.c:1161 builtin/remote.c:1036
msgid "(none)"
msgstr "(nichts)"
-#: builtin/fetch.c:1158
+#: builtin/fetch.c:1184
#, c-format
msgid "Refusing to fetch into current branch %s of non-bare repository"
msgstr ""
"Der \"fetch\" in den aktuellen Branch %s von einem Nicht-Bare-Repository "
"wurde verweigert."
-#: builtin/fetch.c:1177
+#: builtin/fetch.c:1203
#, 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:1180
+#: builtin/fetch.c:1206
#, c-format
msgid "Option \"%s\" is ignored for %s\n"
msgstr "Option \"%s\" wird ignoriert für %s\n"
-#: builtin/fetch.c:1484
+#: builtin/fetch.c:1414
+msgid "multiple branch detected, incompatible with --set-upstream"
+msgstr "mehrere Branches erkannt, inkompatibel mit --set-upstream"
+
+#: builtin/fetch.c:1429
+msgid "not setting upstream for a remote remote-tracking branch"
+msgstr "Setze keinen Upstream für einen entfernten Remote-Tracking-Branch."
+
+#: builtin/fetch.c:1431
+msgid "not setting upstream for a remote tag"
+msgstr "Setze keinen Upstream für einen Tag eines Remote-Repositories."
+
+#: builtin/fetch.c:1433
+msgid "unknown branch type"
+msgstr "Unbekannter Branch-Typ"
+
+#: builtin/fetch.c:1435
+msgid ""
+"no source branch found.\n"
+"you need to specify exactly one branch with the --set-upstream option."
+msgstr ""
+"Keinen Quell-Branch gefunden.\n"
+"Sie müssen bei der Option --set-upstream genau einen Branch angeben."
+
+#: builtin/fetch.c:1561 builtin/fetch.c:1623
#, c-format
msgid "Fetching %s\n"
msgstr "Fordere an von %s\n"
-#: builtin/fetch.c:1486 builtin/remote.c:100
+#: builtin/fetch.c:1571 builtin/fetch.c:1625 builtin/remote.c:100
#, c-format
msgid "Could not fetch %s"
msgstr "Konnte nicht von %s anfordern"
-#: builtin/fetch.c:1532
-msgid ""
-"--filter can only be used with the remote configured in extensions."
-"partialClone"
-msgstr ""
-"--filter kann nur mit den Remote-Repositories verwendet werden,\n"
-"die in core.partialClone konfiguriert sind."
+#: builtin/fetch.c:1583
+#, c-format
+msgid "could not fetch '%s' (exit code: %d)\n"
+msgstr "Konnte '%s' nicht anfordern (Exit-Code: %d)\n"
-#: builtin/fetch.c:1556
+#: builtin/fetch.c:1685
msgid ""
"No remote repository specified. Please, specify either a URL or a\n"
"remote name from which new revisions should be fetched."
@@ -13218,49 +13301,49 @@ msgstr ""
"oder den Namen des Remote-Repositories an, von welchem neue\n"
"Commits angefordert werden sollen."
-#: builtin/fetch.c:1593
+#: builtin/fetch.c:1722
msgid "You need to specify a tag name."
msgstr "Sie müssen den Namen des Tags angeben."
-#: builtin/fetch.c:1644
+#: builtin/fetch.c:1774
msgid "Negative depth in --deepen is not supported"
msgstr "Negative Tiefe wird von --deepen nicht unterstützt."
-#: builtin/fetch.c:1646
+#: builtin/fetch.c:1776
msgid "--deepen and --depth are mutually exclusive"
msgstr "--deepen und --depth schließen sich gegenseitig aus"
-#: builtin/fetch.c:1651
+#: builtin/fetch.c:1781
msgid "--depth and --unshallow cannot be used together"
msgstr ""
"Die Optionen --depth und --unshallow können nicht gemeinsam verwendet werden."
-#: builtin/fetch.c:1653
+#: builtin/fetch.c:1783
msgid "--unshallow on a complete repository does not make sense"
msgstr ""
"Die Option --unshallow kann nicht in einem Repository mit vollständiger "
"Historie verwendet werden."
-#: builtin/fetch.c:1669
+#: builtin/fetch.c:1799
msgid "fetch --all does not take a repository argument"
msgstr "fetch --all akzeptiert kein Repository als Argument"
-#: builtin/fetch.c:1671
+#: builtin/fetch.c:1801
msgid "fetch --all does not make sense with refspecs"
msgstr "fetch --all kann nicht mit Refspecs verwendet werden."
-#: builtin/fetch.c:1680
+#: builtin/fetch.c:1810
#, c-format
msgid "No such remote or remote group: %s"
msgstr "Kein Remote-Repository (einzeln oder Gruppe): %s"
-#: builtin/fetch.c:1687
+#: builtin/fetch.c:1817
msgid "Fetching a group and specifying refspecs does not make sense"
msgstr ""
"Das Abholen einer Gruppe von Remote-Repositories kann nicht mit der Angabe\n"
"von Refspecs verwendet werden."
-#: builtin/fetch.c:1703
+#: builtin/fetch.c:1835
msgid ""
"--filter can only be used with the remote configured in extensions."
"partialclone"
@@ -13598,7 +13681,7 @@ msgstr "%s: Objekt nicht vorhanden"
msgid "invalid parameter: expected sha1, got '%s'"
msgstr "Ungültiger Parameter: SHA-1 erwartet, '%s' bekommen"
-#: builtin/gc.c:34
+#: builtin/gc.c:35
msgid "git gc [<options>]"
msgstr "git gc [<Optionen>]"
@@ -13612,17 +13695,17 @@ msgstr "Konnte '%s' nicht lesen: %s"
msgid "failed to parse '%s' value '%s'"
msgstr "Fehler beim Parsen von '%s' mit dem Wert '%s'"
-#: builtin/gc.c:476 builtin/init-db.c:55
+#: builtin/gc.c:475 builtin/init-db.c:55
#, c-format
msgid "cannot stat '%s'"
msgstr "Kann '%s' nicht lesen"
-#: builtin/gc.c:485 builtin/notes.c:240 builtin/tag.c:529
+#: builtin/gc.c:484 builtin/notes.c:240 builtin/tag.c:529
#, c-format
msgid "cannot read '%s'"
msgstr "kann '%s' nicht lesen"
-#: builtin/gc.c:492
+#: builtin/gc.c:491
#, c-format
msgid ""
"The last gc run reported the following. Please correct the root cause\n"
@@ -13638,58 +13721,58 @@ msgstr ""
"\n"
"%s"
-#: builtin/gc.c:540
+#: builtin/gc.c:539
msgid "prune unreferenced objects"
msgstr "unreferenzierte Objekte entfernen"
-#: builtin/gc.c:542
+#: builtin/gc.c:541
msgid "be more thorough (increased runtime)"
msgstr "mehr Gründlichkeit (erhöht Laufzeit)"
-#: builtin/gc.c:543
+#: builtin/gc.c:542
msgid "enable auto-gc mode"
msgstr "\"auto-gc\" Modus aktivieren"
-#: builtin/gc.c:546
+#: builtin/gc.c:545
msgid "force running gc even if there may be another gc running"
msgstr ""
"Ausführung von \"git gc\" erzwingen, selbst wenn ein anderes\n"
"\"git gc\" bereits ausgeführt wird"
-#: builtin/gc.c:549
+#: builtin/gc.c:548
msgid "repack all other packs except the largest pack"
msgstr "alle anderen Pakete, außer das größte Paket, neu packen"
-#: builtin/gc.c:566
+#: builtin/gc.c:565
#, c-format
msgid "failed to parse gc.logexpiry value %s"
msgstr "Fehler beim Parsen des Wertes '%s' von gc.logexpiry."
-#: builtin/gc.c:577
+#: builtin/gc.c:576
#, c-format
msgid "failed to parse prune expiry value %s"
msgstr "Fehler beim Parsen des \"prune expiry\" Wertes %s"
-#: builtin/gc.c:597
+#: builtin/gc.c:596
#, c-format
msgid "Auto packing the repository in background for optimum performance.\n"
msgstr ""
"Die Datenbank des Repositories wird für eine optimale Performance im\n"
"Hintergrund komprimiert.\n"
-#: builtin/gc.c:599
+#: builtin/gc.c:598
#, c-format
msgid "Auto packing the repository for optimum performance.\n"
msgstr ""
"Die Datenbank des Projektarchivs wird für eine optimale Performance "
"komprimiert.\n"
-#: builtin/gc.c:600
+#: builtin/gc.c:599
#, c-format
msgid "See \"git help gc\" for manual housekeeping.\n"
msgstr "Siehe \"git help gc\" für manuelles Aufräumen.\n"
-#: builtin/gc.c:640
+#: builtin/gc.c:639
#, c-format
msgid ""
"gc is already running on machine '%s' pid %<PRIuMAX> (use --force if not)"
@@ -13697,7 +13780,7 @@ msgstr ""
"\"git gc\" wird bereits auf Maschine '%s' pid %<PRIuMAX> ausgeführt\n"
"(benutzen Sie --force falls nicht)"
-#: builtin/gc.c:695
+#: builtin/gc.c:694
msgid ""
"There are too many unreachable loose objects; run 'git prune' to remove them."
msgstr ""
@@ -13723,265 +13806,265 @@ msgstr "ungültige Anzahl von Threads (%d) für %s angegeben"
#. grep.threads
#.
#: builtin/grep.c:287 builtin/index-pack.c:1534 builtin/index-pack.c:1727
-#: builtin/pack-objects.c:2728
+#: builtin/pack-objects.c:2708
#, c-format
msgid "no threads support, ignoring %s"
msgstr "keine Unterstützung von Threads, '%s' wird ignoriert"
-#: builtin/grep.c:467 builtin/grep.c:591 builtin/grep.c:633
+#: builtin/grep.c:467 builtin/grep.c:592 builtin/grep.c:635
#, c-format
msgid "unable to read tree (%s)"
msgstr "konnte \"Tree\"-Objekt (%s) nicht lesen"
-#: builtin/grep.c:648
+#: builtin/grep.c:650
#, 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:714
+#: builtin/grep.c:716
#, c-format
msgid "switch `%c' expects a numerical value"
msgstr "Schalter '%c' erwartet einen numerischen Wert"
-#: builtin/grep.c:813
+#: builtin/grep.c:815
msgid "search in index instead of in the work tree"
msgstr "im Index anstatt im Arbeitsverzeichnis suchen"
-#: builtin/grep.c:815
+#: builtin/grep.c:817
msgid "find in contents not managed by git"
msgstr "auch in Inhalten finden, die nicht von Git verwaltet werden"
-#: builtin/grep.c:817
+#: builtin/grep.c:819
msgid "search in both tracked and untracked files"
msgstr "in versionierten und unversionierten Dateien suchen"
-#: builtin/grep.c:819
+#: builtin/grep.c:821
msgid "ignore files specified via '.gitignore'"
msgstr "Dateien, die über '.gitignore' angegeben sind, ignorieren"
-#: builtin/grep.c:821
+#: builtin/grep.c:823
msgid "recursively search in each submodule"
msgstr "rekursive Suche in jedem Submodul"
-#: builtin/grep.c:824
+#: builtin/grep.c:826
msgid "show non-matching lines"
msgstr "Zeilen ohne Ãœbereinstimmungen anzeigen"
-#: builtin/grep.c:826
+#: builtin/grep.c:828
msgid "case insensitive matching"
msgstr "Übereinstimmungen unabhängig von Groß- und Kleinschreibung finden"
-#: builtin/grep.c:828
+#: builtin/grep.c:830
msgid "match patterns only at word boundaries"
msgstr "nur ganze Wörter suchen"
-#: builtin/grep.c:830
+#: builtin/grep.c:832
msgid "process binary files as text"
msgstr "binäre Dateien als Text verarbeiten"
-#: builtin/grep.c:832
+#: builtin/grep.c:834
msgid "don't match patterns in binary files"
msgstr "keine Muster in Binärdateien finden"
-#: builtin/grep.c:835
+#: builtin/grep.c:837
msgid "process binary files with textconv filters"
msgstr "binäre Dateien mit \"textconv\"-Filtern verarbeiten"
-#: builtin/grep.c:837
+#: builtin/grep.c:839
msgid "search in subdirectories (default)"
msgstr "in Unterverzeichnissen suchen (Standard)"
-#: builtin/grep.c:839
+#: builtin/grep.c:841
msgid "descend at most <depth> levels"
msgstr "höchstens <Tiefe> Ebenen durchlaufen"
-#: builtin/grep.c:843
+#: builtin/grep.c:845
msgid "use extended POSIX regular expressions"
msgstr "erweiterte reguläre Ausdrücke aus POSIX verwenden"
-#: builtin/grep.c:846
+#: builtin/grep.c:848
msgid "use basic POSIX regular expressions (default)"
msgstr "grundlegende reguläre Ausdrücke aus POSIX verwenden (Standard)"
-#: builtin/grep.c:849
+#: builtin/grep.c:851
msgid "interpret patterns as fixed strings"
msgstr "Muster als feste Zeichenketten interpretieren"
-#: builtin/grep.c:852
+#: builtin/grep.c:854
msgid "use Perl-compatible regular expressions"
msgstr "Perl-kompatible reguläre Ausdrücke verwenden"
-#: builtin/grep.c:855
+#: builtin/grep.c:857
msgid "show line numbers"
msgstr "Zeilennummern anzeigen"
-#: builtin/grep.c:856
+#: builtin/grep.c:858
msgid "show column number of first match"
msgstr "Nummer der Spalte des ersten Treffers anzeigen"
-#: builtin/grep.c:857
+#: builtin/grep.c:859
msgid "don't show filenames"
msgstr "keine Dateinamen anzeigen"
-#: builtin/grep.c:858
+#: builtin/grep.c:860
msgid "show filenames"
msgstr "Dateinamen anzeigen"
-#: builtin/grep.c:860
+#: builtin/grep.c:862
msgid "show filenames relative to top directory"
msgstr "Dateinamen relativ zum Projektverzeichnis anzeigen"
-#: builtin/grep.c:862
+#: builtin/grep.c:864
msgid "show only filenames instead of matching lines"
msgstr "nur Dateinamen anzeigen anstatt übereinstimmende Zeilen"
-#: builtin/grep.c:864
+#: builtin/grep.c:866
msgid "synonym for --files-with-matches"
msgstr "Synonym für --files-with-matches"
-#: builtin/grep.c:867
+#: builtin/grep.c:869
msgid "show only the names of files without match"
msgstr "nur die Dateinamen ohne Ãœbereinstimmungen anzeigen"
-#: builtin/grep.c:869
+#: builtin/grep.c:871
msgid "print NUL after filenames"
msgstr "NUL-Zeichen nach Dateinamen ausgeben"
-#: builtin/grep.c:872
+#: builtin/grep.c:874
msgid "show only matching parts of a line"
msgstr "nur übereinstimmende Teile der Zeile anzeigen"
-#: builtin/grep.c:874
+#: builtin/grep.c:876
msgid "show the number of matches instead of matching lines"
msgstr "anstatt der Zeilen, die Anzahl der übereinstimmenden Zeilen anzeigen"
-#: builtin/grep.c:875
+#: builtin/grep.c:877
msgid "highlight matches"
msgstr "Ãœbereinstimmungen hervorheben"
-#: builtin/grep.c:877
+#: builtin/grep.c:879
msgid "print empty line between matches from different files"
msgstr ""
"eine Leerzeile zwischen Ãœbereinstimmungen in verschiedenen Dateien ausgeben"
-#: builtin/grep.c:879
+#: builtin/grep.c:881
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:882
+#: builtin/grep.c:884
msgid "show <n> context lines before and after matches"
msgstr "<n> Zeilen vor und nach den Ãœbereinstimmungen anzeigen"
-#: builtin/grep.c:885
+#: builtin/grep.c:887
msgid "show <n> context lines before matches"
msgstr "<n> Zeilen vor den Ãœbereinstimmungen anzeigen"
-#: builtin/grep.c:887
+#: builtin/grep.c:889
msgid "show <n> context lines after matches"
msgstr "<n> Zeilen nach den Ãœbereinstimmungen anzeigen"
-#: builtin/grep.c:889
+#: builtin/grep.c:891
msgid "use <n> worker threads"
msgstr "<n> Threads benutzen"
-#: builtin/grep.c:890
+#: builtin/grep.c:892
msgid "shortcut for -C NUM"
msgstr "Kurzform für -C NUM"
-#: builtin/grep.c:893
+#: builtin/grep.c:895
msgid "show a line with the function name before matches"
msgstr "eine Zeile mit dem Funktionsnamen vor Ãœbereinstimmungen anzeigen"
-#: builtin/grep.c:895
+#: builtin/grep.c:897
msgid "show the surrounding function"
msgstr "die umgebende Funktion anzeigen"
-#: builtin/grep.c:898
+#: builtin/grep.c:900
msgid "read patterns from file"
msgstr "Muster von einer Datei lesen"
-#: builtin/grep.c:900
+#: builtin/grep.c:902
msgid "match <pattern>"
msgstr "<Muster> finden"
-#: builtin/grep.c:902
+#: builtin/grep.c:904
msgid "combine patterns specified with -e"
msgstr "Muster kombinieren, die mit -e angegeben wurden"
-#: builtin/grep.c:914
+#: builtin/grep.c:916
msgid "indicate hit with exit status without output"
msgstr "Ãœbereinstimmungen nur durch Beendigungsstatus anzeigen"
-#: builtin/grep.c:916
+#: builtin/grep.c:918
msgid "show only matches from files that match all patterns"
msgstr ""
"nur Ãœbereinstimmungen von Dateien anzeigen, die allen Mustern entsprechen"
-#: builtin/grep.c:918
+#: builtin/grep.c:920
msgid "show parse tree for grep expression"
msgstr "geparstes Verzeichnis für \"grep\"-Ausdruck anzeigen"
-#: builtin/grep.c:922
+#: builtin/grep.c:924
msgid "pager"
msgstr "Anzeigeprogramm"
-#: builtin/grep.c:922
+#: builtin/grep.c:924
msgid "show matching files in the pager"
msgstr "Dateien mit Ãœbereinstimmungen im Anzeigeprogramm anzeigen"
-#: builtin/grep.c:926
+#: builtin/grep.c:928
msgid "allow calling of grep(1) (ignored by this build)"
msgstr "den Aufruf von grep(1) erlauben (von dieser Programmversion ignoriert)"
-#: builtin/grep.c:990
+#: builtin/grep.c:992
msgid "no pattern given"
msgstr "Kein Muster angegeben."
-#: builtin/grep.c:1026
+#: builtin/grep.c:1028
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:1034
+#: builtin/grep.c:1036
#, c-format
msgid "unable to resolve revision: %s"
msgstr "Konnte Commit nicht auflösen: %s"
-#: builtin/grep.c:1065
+#: builtin/grep.c:1067
msgid "invalid option combination, ignoring --threads"
msgstr "Ungültige Kombination von Optionen, --threads wird ignoriert."
-#: builtin/grep.c:1068 builtin/pack-objects.c:3416
+#: builtin/grep.c:1070 builtin/pack-objects.c:3400
msgid "no threads support, ignoring --threads"
msgstr "Keine Unterstützung für Threads, --threads wird ignoriert."
-#: builtin/grep.c:1071 builtin/index-pack.c:1531 builtin/pack-objects.c:2725
+#: builtin/grep.c:1073 builtin/index-pack.c:1531 builtin/pack-objects.c:2705
#, c-format
msgid "invalid number of threads specified (%d)"
msgstr "ungültige Anzahl von Threads angegeben (%d)"
-#: builtin/grep.c:1094
+#: builtin/grep.c:1096
msgid "--open-files-in-pager only works on the worktree"
msgstr ""
"Die Option --open-files-in-pager kann nur innerhalb des "
"Arbeitsverzeichnisses verwendet werden."
-#: builtin/grep.c:1117
+#: builtin/grep.c:1119
msgid "option not supported with --recurse-submodules"
msgstr "Die Option wird mit --recurse-submodules nicht unterstützt."
-#: builtin/grep.c:1123
+#: builtin/grep.c:1125
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:1129
+#: builtin/grep.c:1131
msgid "--[no-]exclude-standard cannot be used for tracked contents"
msgstr ""
"--[no-]exclude-standard kann nicht mit versionierten Inhalten verwendet "
"werden."
-#: builtin/grep.c:1137
+#: builtin/grep.c:1139
msgid "both --cached and trees are given"
msgstr "--cached und \"Tree\"-Objekte angegeben"
@@ -14296,7 +14379,7 @@ msgstr "Fehler beim Ausführen von \"parse_pack_objects()\""
msgid "Resolving deltas"
msgstr "Löse Unterschiede auf"
-#: builtin/index-pack.c:1205 builtin/pack-objects.c:2497
+#: builtin/index-pack.c:1205 builtin/pack-objects.c:2481
#, c-format
msgid "unable to create thread: %s"
msgstr "kann Thread nicht erzeugen: %s"
@@ -14361,7 +14444,7 @@ msgstr "Kann Paketdatei nicht speichern"
msgid "cannot store index file"
msgstr "Kann Indexdatei nicht speichern"
-#: builtin/index-pack.c:1525 builtin/pack-objects.c:2736
+#: builtin/index-pack.c:1525 builtin/pack-objects.c:2716
#, c-format
msgid "bad pack.indexversion=%<PRIu32>"
msgstr "\"pack.indexversion=%<PRIu32>\" ist ungültig"
@@ -14644,74 +14727,74 @@ msgstr "letzte Ausgabe: %d %s\n"
msgid "git show %s: bad file"
msgstr "git show %s: ungültige Datei"
-#: builtin/log.c:549 builtin/log.c:643
+#: builtin/log.c:549 builtin/log.c:644
#, c-format
msgid "could not read object %s"
msgstr "Konnte Objekt %s nicht lesen."
-#: builtin/log.c:668
+#: builtin/log.c:669
#, c-format
msgid "unknown type: %d"
msgstr "Unbekannter Typ: %d"
-#: builtin/log.c:791
+#: builtin/log.c:792
msgid "format.headers without value"
msgstr "format.headers ohne Wert"
-#: builtin/log.c:908
+#: builtin/log.c:909
msgid "name of output directory is too long"
msgstr "Name des Ausgabeverzeichnisses ist zu lang."
-#: builtin/log.c:924
+#: builtin/log.c:925
#, c-format
msgid "cannot open patch file %s"
msgstr "Kann Patch-Datei %s nicht öffnen"
-#: builtin/log.c:941
+#: builtin/log.c:942
msgid "need exactly one range"
msgstr "Brauche genau einen Commit-Bereich."
-#: builtin/log.c:951
+#: builtin/log.c:952
msgid "not a range"
msgstr "Kein Commit-Bereich."
-#: builtin/log.c:1074
+#: builtin/log.c:1075
msgid "cover letter needs email format"
msgstr "Anschreiben benötigt E-Mail-Format"
-#: builtin/log.c:1080
+#: builtin/log.c:1081
msgid "failed to create cover-letter file"
msgstr "Fehler beim Erstellen der Datei für das Anschreiben."
-#: builtin/log.c:1159
+#: builtin/log.c:1160
#, c-format
msgid "insane in-reply-to: %s"
msgstr "ungültiges in-reply-to: %s"
-#: builtin/log.c:1186
+#: builtin/log.c:1187
msgid "git format-patch [<options>] [<since> | <revision-range>]"
msgstr "git format-patch [<Optionen>] [<seit> | <Commitbereich>]"
-#: builtin/log.c:1244
+#: builtin/log.c:1245
msgid "two output directories?"
msgstr "Zwei Ausgabeverzeichnisse?"
-#: builtin/log.c:1355 builtin/log.c:2099 builtin/log.c:2101 builtin/log.c:2113
+#: builtin/log.c:1356 builtin/log.c:2116 builtin/log.c:2118 builtin/log.c:2130
#, c-format
msgid "unknown commit %s"
msgstr "Unbekannter Commit %s"
-#: builtin/log.c:1365 builtin/replace.c:58 builtin/replace.c:207
+#: builtin/log.c:1366 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:1370
+#: builtin/log.c:1371
msgid "could not find exact merge base"
msgstr "Konnte keine exakte Merge-Basis finden."
-#: builtin/log.c:1374
+#: builtin/log.c:1375
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"
@@ -14722,272 +14805,272 @@ 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:1394
+#: builtin/log.c:1395
msgid "failed to find exact merge base"
msgstr "Fehler beim Finden einer exakten Merge-Basis."
-#: builtin/log.c:1405
+#: builtin/log.c:1406
msgid "base commit should be the ancestor of revision list"
msgstr "Basis-Commit sollte der Vorgänger der Revisionsliste sein."
-#: builtin/log.c:1409
+#: builtin/log.c:1410
msgid "base commit shouldn't be in revision list"
msgstr "Basis-Commit sollte nicht in der Revisionsliste enthalten sein."
-#: builtin/log.c:1462
+#: builtin/log.c:1463
msgid "cannot get patch id"
msgstr "kann Patch-Id nicht lesen"
-#: builtin/log.c:1514
+#: builtin/log.c:1515
msgid "failed to infer range-diff ranges"
msgstr "Fehler beim Ableiten des range-diff-Bereichs."
-#: builtin/log.c:1559
+#: builtin/log.c:1560
msgid "use [PATCH n/m] even with a single patch"
msgstr "[PATCH n/m] auch mit einzelnem Patch verwenden"
-#: builtin/log.c:1562
+#: builtin/log.c:1563
msgid "use [PATCH] even with multiple patches"
msgstr "[PATCH] auch mit mehreren Patches verwenden"
-#: builtin/log.c:1566
+#: builtin/log.c:1567
msgid "print patches to standard out"
msgstr "Ausgabe der Patches in Standard-Ausgabe"
-#: builtin/log.c:1568
+#: builtin/log.c:1569
msgid "generate a cover letter"
msgstr "ein Deckblatt erzeugen"
-#: builtin/log.c:1570
+#: builtin/log.c:1571
msgid "use simple number sequence for output file names"
msgstr "einfache Nummernfolge für die Namen der Ausgabedateien verwenden"
-#: builtin/log.c:1571
+#: builtin/log.c:1572
msgid "sfx"
msgstr "Dateiendung"
-#: builtin/log.c:1572
+#: builtin/log.c:1573
msgid "use <sfx> instead of '.patch'"
msgstr "<Dateiendung> anstatt '.patch' verwenden"
-#: builtin/log.c:1574
+#: builtin/log.c:1575
msgid "start numbering patches at <n> instead of 1"
msgstr "die Nummerierung der Patches bei <n> anstatt bei 1 beginnen"
-#: builtin/log.c:1576
+#: builtin/log.c:1577
msgid "mark the series as Nth re-roll"
msgstr "die Serie als n-te Fassung kennzeichnen"
-#: builtin/log.c:1578
+#: builtin/log.c:1579
msgid "Use [RFC PATCH] instead of [PATCH]"
msgstr "[RFC PATCH] anstatt [PATCH] verwenden"
-#: builtin/log.c:1581
+#: builtin/log.c:1582
msgid "Use [<prefix>] instead of [PATCH]"
msgstr "[<Präfix>] anstatt [PATCH] verwenden"
-#: builtin/log.c:1584
+#: builtin/log.c:1585
msgid "store resulting files in <dir>"
msgstr "erzeugte Dateien in <Verzeichnis> speichern"
-#: builtin/log.c:1587
+#: builtin/log.c:1588
msgid "don't strip/add [PATCH]"
msgstr "[PATCH] nicht entfernen/hinzufügen"
-#: builtin/log.c:1590
+#: builtin/log.c:1591
msgid "don't output binary diffs"
msgstr "keine binären Unterschiede ausgeben"
-#: builtin/log.c:1592
+#: builtin/log.c:1593
msgid "output all-zero hash in From header"
msgstr "Hash mit Nullen in \"From\"-Header ausgeben"
-#: builtin/log.c:1594
+#: builtin/log.c:1595
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:1596
+#: builtin/log.c:1597
msgid "show patch format instead of default (patch + stat)"
msgstr "Patchformat anstatt des Standards anzeigen (Patch + Zusammenfassung)"
-#: builtin/log.c:1598
+#: builtin/log.c:1599
msgid "Messaging"
msgstr "E-Mail-Einstellungen"
-#: builtin/log.c:1599
+#: builtin/log.c:1600
msgid "header"
msgstr "Header"
-#: builtin/log.c:1600
+#: builtin/log.c:1601
msgid "add email header"
msgstr "E-Mail-Header hinzufügen"
-#: builtin/log.c:1601 builtin/log.c:1603
+#: builtin/log.c:1602 builtin/log.c:1604
msgid "email"
msgstr "E-Mail"
-#: builtin/log.c:1601
+#: builtin/log.c:1602
msgid "add To: header"
msgstr "\"To:\"-Header hinzufügen"
-#: builtin/log.c:1603
+#: builtin/log.c:1604
msgid "add Cc: header"
msgstr "\"Cc:\"-Header hinzufügen"
-#: builtin/log.c:1605
+#: builtin/log.c:1606
msgid "ident"
msgstr "Ident"
-#: builtin/log.c:1606
+#: builtin/log.c:1607
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:1608
+#: builtin/log.c:1609
msgid "message-id"
msgstr "message-id"
-#: builtin/log.c:1609
+#: builtin/log.c:1610
msgid "make first mail a reply to <message-id>"
msgstr "aus erster E-Mail eine Antwort zu <message-id> machen"
-#: builtin/log.c:1610 builtin/log.c:1613
+#: builtin/log.c:1611 builtin/log.c:1614
msgid "boundary"
msgstr "Grenze"
-#: builtin/log.c:1611
+#: builtin/log.c:1612
msgid "attach the patch"
msgstr "den Patch anhängen"
-#: builtin/log.c:1614
+#: builtin/log.c:1615
msgid "inline the patch"
msgstr "den Patch direkt in die Nachricht einfügen"
-#: builtin/log.c:1618
+#: builtin/log.c:1619
msgid "enable message threading, styles: shallow, deep"
msgstr "Nachrichtenverkettung aktivieren, Stile: shallow, deep"
-#: builtin/log.c:1620
+#: builtin/log.c:1621
msgid "signature"
msgstr "Signatur"
-#: builtin/log.c:1621
+#: builtin/log.c:1622
msgid "add a signature"
msgstr "eine Signatur hinzufügen"
-#: builtin/log.c:1622
+#: builtin/log.c:1623
msgid "base-commit"
msgstr "Basis-Commit"
-#: builtin/log.c:1623
+#: builtin/log.c:1624
msgid "add prerequisite tree info to the patch series"
msgstr "erforderliche Revisions-Informationen der Patch-Serie hinzufügen"
-#: builtin/log.c:1625
+#: builtin/log.c:1626
msgid "add a signature from a file"
msgstr "eine Signatur aus einer Datei hinzufügen"
-#: builtin/log.c:1626
+#: builtin/log.c:1627
msgid "don't print the patch filenames"
msgstr "keine Dateinamen der Patches anzeigen"
-#: builtin/log.c:1628
+#: builtin/log.c:1629
msgid "show progress while generating patches"
msgstr "Forschrittsanzeige während der Erzeugung der Patches"
-#: builtin/log.c:1630
+#: builtin/log.c:1631
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:1633
+#: builtin/log.c:1634
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:1635
+#: builtin/log.c:1636
msgid "percentage by which creation is weighted"
msgstr "Prozentsatz mit welchem Erzeugung gewichtet wird"
-#: builtin/log.c:1710
+#: builtin/log.c:1711
#, c-format
msgid "invalid ident line: %s"
msgstr "Ungültige Identifikationszeile: %s"
-#: builtin/log.c:1725
+#: builtin/log.c:1726
msgid "-n and -k are mutually exclusive"
msgstr "-n und -k schließen sich gegenseitig aus."
-#: builtin/log.c:1727
+#: builtin/log.c:1728
msgid "--subject-prefix/--rfc and -k are mutually exclusive"
msgstr "--subject-prefix/--rfc und -k schließen sich gegenseitig aus."
-#: builtin/log.c:1735
+#: builtin/log.c:1736
msgid "--name-only does not make sense"
msgstr "Die Option --name-only kann nicht verwendet werden."
-#: builtin/log.c:1737
+#: builtin/log.c:1738
msgid "--name-status does not make sense"
msgstr "Die Option --name-status kann nicht verwendet werden."
-#: builtin/log.c:1739
+#: builtin/log.c:1740
msgid "--check does not make sense"
msgstr "Die Option --check kann nicht verwendet werden."
-#: builtin/log.c:1771
+#: builtin/log.c:1773
msgid "standard output, or directory, which one?"
msgstr "Standard-Ausgabe oder Verzeichnis, welches von beidem?"
-#: builtin/log.c:1860
+#: builtin/log.c:1877
msgid "--interdiff requires --cover-letter or single patch"
msgstr "--interdiff erfordert --cover-letter oder einzelnen Patch."
-#: builtin/log.c:1864
+#: builtin/log.c:1881
msgid "Interdiff:"
msgstr "Interdiff:"
-#: builtin/log.c:1865
+#: builtin/log.c:1882
#, c-format
msgid "Interdiff against v%d:"
msgstr "Interdiff gegen v%d:"
-#: builtin/log.c:1871
+#: builtin/log.c:1888
msgid "--creation-factor requires --range-diff"
msgstr "--creation-factor erfordert --range-diff"
-#: builtin/log.c:1875
+#: builtin/log.c:1892
msgid "--range-diff requires --cover-letter or single patch"
msgstr "--range-diff erfordert --cover-letter oder einzelnen Patch."
-#: builtin/log.c:1883
+#: builtin/log.c:1900
msgid "Range-diff:"
msgstr "Range-Diff:"
-#: builtin/log.c:1884
+#: builtin/log.c:1901
#, c-format
msgid "Range-diff against v%d:"
msgstr "Range-Diff gegen v%d:"
-#: builtin/log.c:1895
+#: builtin/log.c:1912
#, c-format
msgid "unable to read signature file '%s'"
msgstr "Konnte Signatur-Datei '%s' nicht lesen"
-#: builtin/log.c:1931
+#: builtin/log.c:1948
msgid "Generating patches"
msgstr "Erzeuge Patches"
-#: builtin/log.c:1975
+#: builtin/log.c:1992
msgid "failed to create output files"
msgstr "Fehler beim Erstellen der Ausgabedateien."
-#: builtin/log.c:2034
+#: builtin/log.c:2051
msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
msgstr "git cherry [-v] [<Upstream> [<Branch> [<Limit>]]]"
-#: builtin/log.c:2088
+#: builtin/log.c:2105
#, c-format
msgid ""
"Could not find a tracked remote branch, please specify <upstream> manually.\n"
@@ -15118,7 +15201,7 @@ msgstr ""
msgid "do not print remote URL"
msgstr "URL des Remote-Repositories nicht ausgeben"
-#: builtin/ls-remote.c:60 builtin/ls-remote.c:62 builtin/rebase.c:1464
+#: builtin/ls-remote.c:60 builtin/ls-remote.c:62 builtin/rebase.c:1488
msgid "exec"
msgstr "Programm"
@@ -15231,33 +15314,33 @@ msgstr "Verfügbare Strategien sind:"
msgid "Available custom strategies are:"
msgstr "Verfügbare benutzerdefinierte Strategien sind:"
-#: builtin/merge.c:244 builtin/pull.c:151
+#: builtin/merge.c:244 builtin/pull.c:152
msgid "do not show a diffstat at the end of the merge"
msgstr "keine Zusammenfassung der Unterschiede am Schluss des Merges anzeigen"
-#: builtin/merge.c:247 builtin/pull.c:154
+#: builtin/merge.c:247 builtin/pull.c:155
msgid "show a diffstat at the end of the merge"
msgstr "eine Zusammenfassung der Unterschiede am Schluss des Merges anzeigen"
-#: builtin/merge.c:248 builtin/pull.c:157
+#: builtin/merge.c:248 builtin/pull.c:158
msgid "(synonym to --stat)"
msgstr "(Synonym für --stat)"
-#: builtin/merge.c:250 builtin/pull.c:160
+#: builtin/merge.c:250 builtin/pull.c:161
msgid "add (at most <n>) entries from shortlog to merge commit message"
msgstr ""
"(höchstens <n>) Einträge von \"shortlog\" zur Beschreibung des Merge-Commits "
"hinzufügen"
-#: builtin/merge.c:253 builtin/pull.c:166
+#: builtin/merge.c:253 builtin/pull.c:167
msgid "create a single commit instead of doing a merge"
msgstr "einen einzelnen Commit anstatt eines Merges erzeugen"
-#: builtin/merge.c:255 builtin/pull.c:169
+#: builtin/merge.c:255 builtin/pull.c:170
msgid "perform a commit if the merge succeeds (default)"
msgstr "einen Commit durchführen, wenn der Merge erfolgreich war (Standard)"
-#: builtin/merge.c:257 builtin/pull.c:172
+#: builtin/merge.c:257 builtin/pull.c:173
msgid "edit message before committing"
msgstr "Bearbeitung der Beschreibung vor dem Commit"
@@ -15265,28 +15348,28 @@ msgstr "Bearbeitung der Beschreibung vor dem Commit"
msgid "allow fast-forward (default)"
msgstr "Vorspulen erlauben (Standard)"
-#: builtin/merge.c:261 builtin/pull.c:179
+#: builtin/merge.c:261 builtin/pull.c:180
msgid "abort if fast-forward is not possible"
msgstr "abbrechen, wenn kein Vorspulen möglich ist"
-#: builtin/merge.c:265 builtin/pull.c:182
+#: builtin/merge.c:265 builtin/pull.c:183
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:266 builtin/notes.c:787 builtin/pull.c:186
-#: builtin/rebase.c:492 builtin/rebase.c:1477 builtin/revert.c:114
+#: builtin/merge.c:266 builtin/notes.c:787 builtin/pull.c:187
+#: builtin/rebase.c:493 builtin/rebase.c:1501 builtin/revert.c:114
msgid "strategy"
msgstr "Strategie"
-#: builtin/merge.c:267 builtin/pull.c:187
+#: builtin/merge.c:267 builtin/pull.c:188
msgid "merge strategy to use"
msgstr "zu verwendende Merge-Strategie"
-#: builtin/merge.c:268 builtin/pull.c:190
+#: builtin/merge.c:268 builtin/pull.c:191
msgid "option=value"
msgstr "Option=Wert"
-#: builtin/merge.c:269 builtin/pull.c:191
+#: builtin/merge.c:269 builtin/pull.c:192
msgid "option for selected merge strategy"
msgstr "Option für ausgewählte Merge-Strategie"
@@ -15307,13 +15390,13 @@ msgstr "--abort, aber Index und Arbeitsverzeichnis unverändert lassen"
msgid "continue the current in-progress merge"
msgstr "den sich im Gange befindlichen Merge fortsetzen"
-#: builtin/merge.c:284 builtin/pull.c:198
+#: builtin/merge.c:284 builtin/pull.c:199
msgid "allow merging unrelated histories"
msgstr "erlaube das Zusammenführen von nicht zusammenhängenden Historien"
#: builtin/merge.c:290
-msgid "verify commit-msg hook"
-msgstr "commit-msg Hook überprüfen"
+msgid "bypass pre-merge-commit and commit-msg hooks"
+msgstr "Hooks pre-merge-commit und commit-msg umgehen"
#: builtin/merge.c:307
msgid "could not run stash."
@@ -15356,33 +15439,33 @@ msgstr "'%s' zeigt auf keinen Commit"
msgid "Bad branch.%s.mergeoptions string: %s"
msgstr "Ungültiger branch.%s.mergeoptions String: %s"
-#: builtin/merge.c:708
+#: builtin/merge.c:705
msgid "Not handling anything other than two heads merge."
msgstr "Es wird nur der Merge von zwei Branches behandelt."
-#: builtin/merge.c:722
+#: builtin/merge.c:719
#, c-format
msgid "Unknown option for merge-recursive: -X%s"
msgstr "Unbekannte Option für merge-recursive: -X%s"
-#: builtin/merge.c:737
+#: builtin/merge.c:734
#, c-format
msgid "unable to write %s"
msgstr "konnte %s nicht schreiben"
-#: builtin/merge.c:789
+#: builtin/merge.c:786
#, c-format
msgid "Could not read from '%s'"
msgstr "konnte nicht von '%s' lesen"
-#: builtin/merge.c:798
+#: builtin/merge.c:795
#, c-format
msgid "Not committing merge; use 'git commit' to complete the merge.\n"
msgstr ""
"Merge wurde nicht committet; benutzen Sie 'git commit', um den Merge "
"abzuschließen.\n"
-#: builtin/merge.c:804
+#: builtin/merge.c:801
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"
@@ -15393,11 +15476,11 @@ msgstr ""
"Upstream-Branch mit einem Thema-Branch zusammenführt.\n"
"\n"
-#: builtin/merge.c:809
+#: builtin/merge.c:806
msgid "An empty message aborts the commit.\n"
msgstr "Eine leere Commit-Beschreibung bricht den Commit ab.\n"
-#: builtin/merge.c:812
+#: builtin/merge.c:809
#, c-format
msgid ""
"Lines starting with '%c' will be ignored, and an empty message aborts\n"
@@ -15406,75 +15489,75 @@ msgstr ""
"Zeilen, die mit '%c' beginnen, werden ignoriert,\n"
"und eine leere Beschreibung bricht den Commit ab.\n"
-#: builtin/merge.c:853
+#: builtin/merge.c:862
msgid "Empty commit message."
msgstr "Leere Commit-Beschreibung"
-#: builtin/merge.c:872
+#: builtin/merge.c:877
#, c-format
msgid "Wonderful.\n"
msgstr "Wunderbar.\n"
-#: builtin/merge.c:933
+#: builtin/merge.c:938
#, 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:972
+#: builtin/merge.c:977
msgid "No current branch."
msgstr "Sie befinden sich auf keinem Branch."
-#: builtin/merge.c:974
+#: builtin/merge.c:979
msgid "No remote for the current branch."
msgstr "Kein Remote-Repository für den aktuellen Branch."
-#: builtin/merge.c:976
+#: builtin/merge.c:981
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:981
+#: builtin/merge.c:986
#, c-format
msgid "No remote-tracking branch for %s from %s"
msgstr "Kein Remote-Tracking-Branch für %s von %s"
-#: builtin/merge.c:1038
+#: builtin/merge.c:1043
#, c-format
msgid "Bad value '%s' in environment '%s'"
msgstr "Fehlerhafter Wert '%s' in Umgebungsvariable '%s'"
-#: builtin/merge.c:1141
+#: builtin/merge.c:1146
#, 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:1175
+#: builtin/merge.c:1180
msgid "not something we can merge"
msgstr "nichts was wir zusammenführen können"
-#: builtin/merge.c:1278
+#: builtin/merge.c:1283
msgid "--abort expects no arguments"
msgstr "--abort akzeptiert keine Argumente"
-#: builtin/merge.c:1282
+#: builtin/merge.c:1287
msgid "There is no merge to abort (MERGE_HEAD missing)."
msgstr "Es gibt keinen Merge abzubrechen (MERGE_HEAD fehlt)"
-#: builtin/merge.c:1291
+#: builtin/merge.c:1296
msgid "--quit expects no arguments"
msgstr "--quit erwartet keine Argumente"
-#: builtin/merge.c:1304
+#: builtin/merge.c:1309
msgid "--continue expects no arguments"
msgstr "--continue erwartet keine Argumente"
-#: builtin/merge.c:1308
+#: builtin/merge.c:1313
msgid "There is no merge in progress (MERGE_HEAD missing)."
msgstr "Es ist kein Merge im Gange (MERGE_HEAD fehlt)."
-#: builtin/merge.c:1324
+#: builtin/merge.c:1329
msgid ""
"You have not concluded your merge (MERGE_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -15482,7 +15565,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:1331
+#: builtin/merge.c:1336
msgid ""
"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -15490,100 +15573,100 @@ 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:1334
+#: builtin/merge.c:1339
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:1348
+#: builtin/merge.c:1353
msgid "You cannot combine --squash with --no-ff."
msgstr "Sie können --squash nicht mit --no-ff kombinieren."
-#: builtin/merge.c:1350
+#: builtin/merge.c:1355
msgid "You cannot combine --squash with --commit."
msgstr "Sie können --squash nicht mit --commit kombinieren."
-#: builtin/merge.c:1366
+#: builtin/merge.c:1371
msgid "No commit specified and merge.defaultToUpstream not set."
msgstr "Kein Commit angegeben und merge.defaultToUpstream ist nicht gesetzt."
-#: builtin/merge.c:1383
+#: builtin/merge.c:1388
msgid "Squash commit into empty head not supported yet"
msgstr ""
"Bin auf einem Commit, der noch geboren wird; kann \"squash\" nicht ausführen."
-#: builtin/merge.c:1385
+#: builtin/merge.c:1390
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:1390
+#: builtin/merge.c:1395
#, c-format
msgid "%s - not something we can merge"
msgstr "%s - nichts was wir zusammenführen können"
-#: builtin/merge.c:1392
+#: builtin/merge.c:1397
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:1471
+#: builtin/merge.c:1476
msgid "refusing to merge unrelated histories"
msgstr "Verweigere den Merge von nicht zusammenhängenden Historien."
-#: builtin/merge.c:1480
+#: builtin/merge.c:1485
msgid "Already up to date."
msgstr "Bereits aktuell."
-#: builtin/merge.c:1490
+#: builtin/merge.c:1495
#, c-format
msgid "Updating %s..%s\n"
msgstr "Aktualisiere %s..%s\n"
-#: builtin/merge.c:1532
+#: builtin/merge.c:1537
#, c-format
msgid "Trying really trivial in-index merge...\n"
msgstr "Probiere wirklich trivialen \"in-index\"-Merge ...\n"
-#: builtin/merge.c:1539
+#: builtin/merge.c:1544
#, c-format
msgid "Nope.\n"
msgstr "Nein.\n"
-#: builtin/merge.c:1564
+#: builtin/merge.c:1569
msgid "Already up to date. Yeeah!"
msgstr "Bereits aktuell."
-#: builtin/merge.c:1570
+#: builtin/merge.c:1575
msgid "Not possible to fast-forward, aborting."
msgstr "Vorspulen nicht möglich, breche ab."
-#: builtin/merge.c:1593 builtin/merge.c:1658
+#: builtin/merge.c:1598 builtin/merge.c:1663
#, c-format
msgid "Rewinding the tree to pristine...\n"
msgstr "Rücklauf des Verzeichnisses bis zum Ursprung ...\n"
-#: builtin/merge.c:1597
+#: builtin/merge.c:1602
#, c-format
msgid "Trying merge strategy %s...\n"
msgstr "Probiere Merge-Strategie %s ...\n"
-#: builtin/merge.c:1649
+#: builtin/merge.c:1654
#, c-format
msgid "No merge strategy handled the merge.\n"
msgstr "Keine Merge-Strategie behandelt diesen Merge.\n"
-#: builtin/merge.c:1651
+#: builtin/merge.c:1656
#, c-format
msgid "Merge with strategy %s failed.\n"
msgstr "Merge mit Strategie %s fehlgeschlagen.\n"
-#: builtin/merge.c:1660
+#: builtin/merge.c:1665
#, c-format
msgid "Using the %s to prepare resolving by hand.\n"
msgstr "Benutzen Sie \"%s\", um die Auflösung per Hand vorzubereiten.\n"
-#: builtin/merge.c:1672
+#: builtin/merge.c:1677
#, c-format
msgid "Automatic merge went well; stopped before committing as requested\n"
msgstr ""
@@ -15669,33 +15752,33 @@ msgstr "keine Warnung bei Konflikten"
msgid "set labels for file1/orig-file/file2"
msgstr "Beschriftung für Datei1/orig-Datei/Datei2 setzen"
-#: builtin/merge-recursive.c:46
+#: builtin/merge-recursive.c:47
#, c-format
msgid "unknown option %s"
msgstr "unbekannte Option: %s"
-#: builtin/merge-recursive.c:52
+#: builtin/merge-recursive.c:53
#, c-format
msgid "could not parse object '%s'"
msgstr "Konnte Objekt '%s' nicht parsen."
-#: builtin/merge-recursive.c:56
+#: builtin/merge-recursive.c:57
#, c-format
msgid "cannot handle more than %d base. Ignoring %s."
msgid_plural "cannot handle more than %d bases. Ignoring %s."
msgstr[0] "kann nicht mit mehr als %d Merge-Basis umgehen. Ignoriere %s."
msgstr[1] "kann nicht mit mehr als %d Merge-Basen umgehen. Ignoriere %s."
-#: builtin/merge-recursive.c:64
+#: builtin/merge-recursive.c:65
msgid "not handling anything other than two heads merge."
msgstr "Es wird nur der Merge von zwei Branches behandelt."
-#: builtin/merge-recursive.c:70 builtin/merge-recursive.c:72
+#: builtin/merge-recursive.c:74 builtin/merge-recursive.c:76
#, c-format
msgid "could not resolve ref '%s'"
msgstr "Konnte Referenz '%s' nicht auflösen"
-#: builtin/merge-recursive.c:78
+#: builtin/merge-recursive.c:82
#, c-format
msgid "Merging %s with %s\n"
msgstr "Führe %s mit %s zusammen\n"
@@ -15840,52 +15923,52 @@ msgstr "%s, Quelle=%s, Ziel=%s"
msgid "Renaming %s to %s\n"
msgstr "Benenne %s nach %s um\n"
-#: builtin/mv.c:277 builtin/remote.c:717 builtin/repack.c:510
+#: builtin/mv.c:277 builtin/remote.c:717 builtin/repack.c:511
#, c-format
msgid "renaming '%s' failed"
msgstr "Umbenennung von '%s' fehlgeschlagen"
-#: builtin/name-rev.c:352
+#: builtin/name-rev.c:356
msgid "git name-rev [<options>] <commit>..."
msgstr "git name-rev [<Optionen>] <Commit>..."
-#: builtin/name-rev.c:353
+#: builtin/name-rev.c:357
msgid "git name-rev [<options>] --all"
msgstr "git name-rev [<Optionen>] --all"
-#: builtin/name-rev.c:354
+#: builtin/name-rev.c:358
msgid "git name-rev [<options>] --stdin"
msgstr "git name-rev [<Optionen>] --stdin"
-#: builtin/name-rev.c:411
+#: builtin/name-rev.c:415
msgid "print only names (no SHA-1)"
msgstr "nur Namen anzeigen (keine SHA-1)"
-#: builtin/name-rev.c:412
+#: builtin/name-rev.c:416
msgid "only use tags to name the commits"
msgstr "nur Tags verwenden, um die Commits zu benennen"
-#: builtin/name-rev.c:414
+#: builtin/name-rev.c:418
msgid "only use refs matching <pattern>"
msgstr "nur Referenzen verwenden, die <Muster> entsprechen"
-#: builtin/name-rev.c:416
+#: builtin/name-rev.c:420
msgid "ignore refs matching <pattern>"
msgstr "ignoriere Referenzen die <Muster> entsprechen"
-#: builtin/name-rev.c:418
+#: builtin/name-rev.c:422
msgid "list all commits reachable from all refs"
msgstr "alle Commits auflisten, die von allen Referenzen erreichbar sind"
-#: builtin/name-rev.c:419
+#: builtin/name-rev.c:423
msgid "read from stdin"
msgstr "von der Standard-Eingabe lesen"
-#: builtin/name-rev.c:420
+#: builtin/name-rev.c:424
msgid "allow to print `undefined` names (default)"
msgstr "Ausgabe von `undefinierten` Namen erlauben (Standard)"
-#: builtin/name-rev.c:426
+#: builtin/name-rev.c:430
msgid "dereference tags in the input (internal use)"
msgstr "Tags in der Eingabe dereferenzieren (interne Verwendung)"
@@ -16291,7 +16374,7 @@ msgstr "der Versuch, eine nicht existierende Notiz zu löschen, ist kein Fehler"
msgid "read object names from the standard input"
msgstr "Objektnamen von der Standard-Eingabe lesen"
-#: builtin/notes.c:954 builtin/prune.c:130 builtin/worktree.c:165
+#: builtin/notes.c:954 builtin/prune.c:130 builtin/worktree.c:164
msgid "do not remove, show only"
msgstr "nicht löschen, nur anzeigen"
@@ -16307,7 +16390,7 @@ msgstr "Notiz-Referenz"
msgid "use notes from <notes-ref>"
msgstr "Notizen von <Notiz-Referenz> verwenden"
-#: builtin/notes.c:1034 builtin/stash.c:1598
+#: builtin/notes.c:1034 builtin/stash.c:1607
#, c-format
msgid "unknown subcommand: %s"
msgstr "Unbekannter Unterbefehl: %s"
@@ -16384,71 +16467,71 @@ msgstr "Konnte '%s' nicht lesen"
msgid "wrote %<PRIu32> objects while expecting %<PRIu32>"
msgstr "Schrieb %<PRIu32> Objekte während %<PRIu32> erwartet waren."
-#: builtin/pack-objects.c:1166
+#: builtin/pack-objects.c:1164
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:1597
+#: builtin/pack-objects.c:1592
#, 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:1606
+#: builtin/pack-objects.c:1601
#, 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:1875
+#: builtin/pack-objects.c:1870
msgid "Counting objects"
msgstr "Zähle Objekte"
-#: builtin/pack-objects.c:2005
+#: builtin/pack-objects.c:2000
#, c-format
msgid "unable to get size of %s"
msgstr "Konnte Größe von %s nicht bestimmen."
-#: builtin/pack-objects.c:2020
+#: builtin/pack-objects.c:2015
#, c-format
msgid "unable to parse object header of %s"
msgstr "Konnte Kopfbereich von Objekt '%s' nicht parsen."
-#: builtin/pack-objects.c:2090 builtin/pack-objects.c:2106
-#: builtin/pack-objects.c:2116
+#: builtin/pack-objects.c:2085 builtin/pack-objects.c:2101
+#: builtin/pack-objects.c:2111
#, c-format
msgid "object %s cannot be read"
msgstr "Objekt %s kann nicht gelesen werden."
-#: builtin/pack-objects.c:2093 builtin/pack-objects.c:2120
+#: builtin/pack-objects.c:2088 builtin/pack-objects.c:2115
#, 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:2130
+#: builtin/pack-objects.c:2125
msgid "suboptimal pack - out of memory"
msgstr "ungünstiges Packet - Speicher voll"
-#: builtin/pack-objects.c:2456
+#: builtin/pack-objects.c:2440
#, c-format
msgid "Delta compression using up to %d threads"
msgstr "Delta-Kompression verwendet bis zu %d Threads."
-#: builtin/pack-objects.c:2588
+#: builtin/pack-objects.c:2572
#, 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:2675
+#: builtin/pack-objects.c:2659
msgid "Compressing objects"
msgstr "Komprimiere Objekte"
-#: builtin/pack-objects.c:2681
+#: builtin/pack-objects.c:2665
msgid "inconsistency with delta count"
msgstr "Inkonsistenz mit der Anzahl von Deltas"
-#: builtin/pack-objects.c:2762
+#: builtin/pack-objects.c:2742
#, c-format
msgid ""
"expected edge object ID, got garbage:\n"
@@ -16457,7 +16540,7 @@ msgstr ""
"Erwartete Randobjekt-ID, erhielt nutzlose Daten:\n"
" %s"
-#: builtin/pack-objects.c:2768
+#: builtin/pack-objects.c:2748
#, c-format
msgid ""
"expected object ID, got garbage:\n"
@@ -16466,256 +16549,256 @@ msgstr ""
"Erwartete Objekt-ID, erhielt nutzlose Daten:\n"
" %s"
-#: builtin/pack-objects.c:2866
+#: builtin/pack-objects.c:2846
msgid "invalid value for --missing"
msgstr "Ungültiger Wert für --missing."
-#: builtin/pack-objects.c:2925 builtin/pack-objects.c:3033
+#: builtin/pack-objects.c:2905 builtin/pack-objects.c:3013
msgid "cannot open pack index"
msgstr "Kann Paketindex nicht öffnen."
-#: builtin/pack-objects.c:2956
+#: builtin/pack-objects.c:2936
#, c-format
msgid "loose object at %s could not be examined"
msgstr "Loses Objekt bei %s konnte nicht untersucht werden."
-#: builtin/pack-objects.c:3041
+#: builtin/pack-objects.c:3021
msgid "unable to force loose object"
msgstr "Konnte loses Objekt nicht erzwingen."
-#: builtin/pack-objects.c:3133
+#: builtin/pack-objects.c:3113
#, c-format
msgid "not a rev '%s'"
msgstr "'%s' ist kein Commit."
-#: builtin/pack-objects.c:3136
+#: builtin/pack-objects.c:3116
#, c-format
msgid "bad revision '%s'"
msgstr "Ungültiger Commit '%s'."
-#: builtin/pack-objects.c:3161
+#: builtin/pack-objects.c:3141
msgid "unable to add recent objects"
msgstr "Konnte jüngste Objekte nicht hinzufügen."
-#: builtin/pack-objects.c:3214
+#: builtin/pack-objects.c:3194
#, c-format
msgid "unsupported index version %s"
msgstr "Nicht unterstützte Index-Version %s"
-#: builtin/pack-objects.c:3218
+#: builtin/pack-objects.c:3198
#, c-format
msgid "bad index version '%s'"
msgstr "Ungültige Index-Version '%s'"
-#: builtin/pack-objects.c:3248
+#: builtin/pack-objects.c:3228
msgid "do not show progress meter"
msgstr "keine Fortschrittsanzeige anzeigen"
-#: builtin/pack-objects.c:3250
+#: builtin/pack-objects.c:3230
msgid "show progress meter"
msgstr "Fortschrittsanzeige anzeigen"
-#: builtin/pack-objects.c:3252
+#: builtin/pack-objects.c:3232
msgid "show progress meter during object writing phase"
msgstr "Forschrittsanzeige während des Schreibens von Objekten anzeigen"
-#: builtin/pack-objects.c:3255
+#: builtin/pack-objects.c:3235
msgid "similar to --all-progress when progress meter is shown"
msgstr "ähnlich zu --all-progress wenn Fortschrittsanzeige darstellt wird"
-#: builtin/pack-objects.c:3256
+#: builtin/pack-objects.c:3236
msgid "<version>[,<offset>]"
msgstr "<Version>[,<Offset>]"
-#: builtin/pack-objects.c:3257
+#: builtin/pack-objects.c:3237
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:3260
+#: builtin/pack-objects.c:3240
msgid "maximum size of each output pack file"
msgstr "maximale Größe für jede ausgegebene Paketdatei"
-#: builtin/pack-objects.c:3262
+#: builtin/pack-objects.c:3242
msgid "ignore borrowed objects from alternate object store"
msgstr "geliehene Objekte von alternativem Objektspeicher ignorieren"
-#: builtin/pack-objects.c:3264
+#: builtin/pack-objects.c:3244
msgid "ignore packed objects"
msgstr "gepackte Objekte ignorieren"
-#: builtin/pack-objects.c:3266
+#: builtin/pack-objects.c:3246
msgid "limit pack window by objects"
msgstr "Paketfenster durch Objekte begrenzen"
-#: builtin/pack-objects.c:3268
+#: builtin/pack-objects.c:3248
msgid "limit pack window by memory in addition to object limit"
msgstr ""
"Paketfenster, zusätzlich zur Objektbegrenzung, durch Speicher begrenzen"
-#: builtin/pack-objects.c:3270
+#: builtin/pack-objects.c:3250
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:3272
+#: builtin/pack-objects.c:3252
msgid "reuse existing deltas"
msgstr "existierende Unterschiede wiederverwenden"
-#: builtin/pack-objects.c:3274
+#: builtin/pack-objects.c:3254
msgid "reuse existing objects"
msgstr "existierende Objekte wiederverwenden"
-#: builtin/pack-objects.c:3276
+#: builtin/pack-objects.c:3256
msgid "use OFS_DELTA objects"
msgstr "OFS_DELTA Objekte verwenden"
-#: builtin/pack-objects.c:3278
+#: builtin/pack-objects.c:3258
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:3280
+#: builtin/pack-objects.c:3260
msgid "do not create an empty pack output"
msgstr "keine leeren Pakete erzeugen"
-#: builtin/pack-objects.c:3282
+#: builtin/pack-objects.c:3262
msgid "read revision arguments from standard input"
msgstr "Argumente bezüglich Commits von der Standard-Eingabe lesen"
-#: builtin/pack-objects.c:3284
+#: builtin/pack-objects.c:3264
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:3287
+#: builtin/pack-objects.c:3267
msgid "include objects reachable from any reference"
msgstr "Objekte einschließen, die von jeder Referenz erreichbar sind"
-#: builtin/pack-objects.c:3290
+#: builtin/pack-objects.c:3270
msgid "include objects referred by reflog entries"
msgstr ""
"Objekte einschließen, die von Einträgen des Reflogs referenziert werden"
-#: builtin/pack-objects.c:3293
+#: builtin/pack-objects.c:3273
msgid "include objects referred to by the index"
msgstr "Objekte einschließen, die vom Index referenziert werden"
-#: builtin/pack-objects.c:3296
+#: builtin/pack-objects.c:3276
msgid "output pack to stdout"
msgstr "Paket in die Standard-Ausgabe schreiben"
-#: builtin/pack-objects.c:3298
+#: builtin/pack-objects.c:3278
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:3300
+#: builtin/pack-objects.c:3280
msgid "keep unreachable objects"
msgstr "nicht erreichbare Objekte behalten"
-#: builtin/pack-objects.c:3302
+#: builtin/pack-objects.c:3282
msgid "pack loose unreachable objects"
msgstr "nicht erreichbare lose Objekte packen"
-#: builtin/pack-objects.c:3304
+#: builtin/pack-objects.c:3284
msgid "unpack unreachable objects newer than <time>"
msgstr "nicht erreichbare Objekte entpacken, die neuer als <Zeit> sind"
-#: builtin/pack-objects.c:3307
+#: builtin/pack-objects.c:3287
msgid "use the sparse reachability algorithm"
msgstr "den \"sparse\" Algorithmus zur Bestimmung der Erreichbarkeit benutzen"
-#: builtin/pack-objects.c:3309
+#: builtin/pack-objects.c:3289
msgid "create thin packs"
msgstr "dünnere Pakete erzeugen"
-#: builtin/pack-objects.c:3311
+#: builtin/pack-objects.c:3291
msgid "create packs suitable for shallow fetches"
msgstr ""
"Pakete geeignet für Abholung mit unvollständiger Historie (shallow) erzeugen"
-#: builtin/pack-objects.c:3313
+#: builtin/pack-objects.c:3293
msgid "ignore packs that have companion .keep file"
msgstr "Pakete ignorieren, die .keep Dateien haben"
-#: builtin/pack-objects.c:3315
+#: builtin/pack-objects.c:3295
msgid "ignore this pack"
msgstr "dieses Paket ignorieren"
-#: builtin/pack-objects.c:3317
+#: builtin/pack-objects.c:3297
msgid "pack compression level"
msgstr "Komprimierungsgrad für Paketierung"
-#: builtin/pack-objects.c:3319
+#: builtin/pack-objects.c:3299
msgid "do not hide commits by grafts"
msgstr "keine künstlichen Vorgänger-Commits (\"grafts\") verbergen"
-#: builtin/pack-objects.c:3321
+#: builtin/pack-objects.c:3301
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:3323
+#: builtin/pack-objects.c:3303
msgid "write a bitmap index together with the pack index"
msgstr "Bitmap-Index zusammen mit Pack-Index schreiben"
-#: builtin/pack-objects.c:3327
+#: builtin/pack-objects.c:3307
msgid "write a bitmap index if possible"
msgstr "Bitmap-Index schreiben, wenn möglich"
-#: builtin/pack-objects.c:3331
+#: builtin/pack-objects.c:3311
msgid "handling for missing objects"
msgstr "Behandlung für fehlende Objekte"
-#: builtin/pack-objects.c:3334
+#: builtin/pack-objects.c:3314
msgid "do not pack objects in promisor packfiles"
msgstr ""
"keine Objekte aus Packdateien von partiell geklonten Remote-Repositories "
"packen"
-#: builtin/pack-objects.c:3336
+#: builtin/pack-objects.c:3316
msgid "respect islands during delta compression"
msgstr "Delta-Islands bei Delta-Kompression beachten"
-#: builtin/pack-objects.c:3361
+#: builtin/pack-objects.c:3345
#, 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:3366
+#: builtin/pack-objects.c:3350
#, c-format
msgid "pack.deltaCacheLimit is too high, forcing %d"
msgstr "pack.deltaCacheLimit ist zu hoch, erzwinge %d"
-#: builtin/pack-objects.c:3420
+#: builtin/pack-objects.c:3404
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:3422
+#: builtin/pack-objects.c:3406
msgid "minimum pack size limit is 1 MiB"
msgstr "Minimales Limit für die Paketgröße ist 1 MiB."
-#: builtin/pack-objects.c:3427
+#: builtin/pack-objects.c:3411
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:3430
+#: builtin/pack-objects.c:3414
msgid "--keep-unreachable and --unpack-unreachable are incompatible"
msgstr "--keep-unreachable und --unpack-unreachable sind inkompatibel"
-#: builtin/pack-objects.c:3436
+#: builtin/pack-objects.c:3420
msgid "cannot use --filter without --stdout"
msgstr "Kann --filter nicht ohne --stdout benutzen."
-#: builtin/pack-objects.c:3497
+#: builtin/pack-objects.c:3481
msgid "Enumerating objects"
msgstr "Objekte aufzählen"
-#: builtin/pack-objects.c:3527
+#: builtin/pack-objects.c:3511
#, c-format
msgid "Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>)"
msgstr ""
@@ -16773,44 +16856,44 @@ msgstr "Ungültiger Wert für %s: %s"
msgid "git pull [<options>] [<repository> [<refspec>...]]"
msgstr "git pull [<Optionen>] [<Repository> [<Refspec>...]]"
-#: builtin/pull.c:141
+#: builtin/pull.c:142
msgid "control for recursive fetching of submodules"
msgstr "rekursive Anforderungen von Submodulen kontrollieren"
-#: builtin/pull.c:145
+#: builtin/pull.c:146
msgid "Options related to merging"
msgstr "Optionen bezogen auf Merge"
-#: builtin/pull.c:148
+#: builtin/pull.c:149
msgid "incorporate changes by rebasing rather than merging"
msgstr "Integration von Änderungen durch Rebase statt Merge"
-#: builtin/pull.c:176 builtin/rebase.c:447 builtin/revert.c:126
+#: builtin/pull.c:177 builtin/rebase.c:448 builtin/revert.c:126
msgid "allow fast-forward"
msgstr "Vorspulen erlauben"
-#: builtin/pull.c:185
+#: builtin/pull.c:186
msgid "automatically stash/stash pop before and after rebase"
msgstr "automatischer Stash/Stash-Pop vor und nach eines Rebase"
-#: builtin/pull.c:201
+#: builtin/pull.c:202
msgid "Options related to fetching"
msgstr "Optionen bezogen auf Fetch"
-#: builtin/pull.c:211
+#: builtin/pull.c:212
msgid "force overwrite of local branch"
msgstr "das Ãœberschreiben von lokalen Branches erzwingen"
-#: builtin/pull.c:219
+#: builtin/pull.c:220
msgid "number of submodules pulled in parallel"
msgstr "Anzahl der parallel mit 'pull' zu verarbeitenden Submodule"
-#: builtin/pull.c:316
+#: builtin/pull.c:320
#, c-format
msgid "Invalid value for pull.ff: %s"
msgstr "Ungültiger Wert für pull.ff: %s"
-#: builtin/pull.c:433
+#: builtin/pull.c:437
msgid ""
"There is no candidate for rebasing against among the refs that you just "
"fetched."
@@ -16818,14 +16901,14 @@ msgstr ""
"Es gibt keinen Kandidaten für Rebase innerhalb der Referenzen, die eben "
"angefordert wurden."
-#: builtin/pull.c:435
+#: builtin/pull.c:439
msgid ""
"There are no candidates for merging among the refs that you just fetched."
msgstr ""
"Es gibt keine Kandidaten für Merge innerhalb der Referenzen, die eben "
"angefordert wurden."
-#: builtin/pull.c:436
+#: builtin/pull.c:440
msgid ""
"Generally this means that you provided a wildcard refspec which had no\n"
"matches on the remote end."
@@ -16833,7 +16916,7 @@ msgstr ""
"Im Allgemeinen bedeutet das, dass Sie einen Refspec mit Wildcards angegeben\n"
"haben, der auf der Gegenseite mit keinen Referenzen übereinstimmt."
-#: builtin/pull.c:439
+#: builtin/pull.c:443
#, c-format
msgid ""
"You asked to pull from the remote '%s', but did not specify\n"
@@ -16845,39 +16928,39 @@ msgstr ""
"Repository für den aktuellen Branch ist, müssen Sie einen Branch auf\n"
"der Befehlszeile angeben."
-#: builtin/pull.c:444 builtin/rebase.c:1326 git-parse-remote.sh:73
+#: builtin/pull.c:448 builtin/rebase.c:1347 git-parse-remote.sh:73
msgid "You are not currently on a branch."
msgstr "Im Moment auf keinem Branch."
-#: builtin/pull.c:446 builtin/pull.c:461 git-parse-remote.sh:79
+#: builtin/pull.c:450 builtin/pull.c:465 git-parse-remote.sh:79
msgid "Please specify which branch you want to rebase against."
msgstr ""
"Bitte geben Sie den Branch an, gegen welchen Sie \"rebase\" ausführen "
"möchten."
-#: builtin/pull.c:448 builtin/pull.c:463 git-parse-remote.sh:82
+#: builtin/pull.c:452 builtin/pull.c:467 git-parse-remote.sh:82
msgid "Please specify which branch you want to merge with."
msgstr "Bitte geben Sie den Branch an, welchen Sie zusammenführen möchten."
-#: builtin/pull.c:449 builtin/pull.c:464
+#: builtin/pull.c:453 builtin/pull.c:468
msgid "See git-pull(1) for details."
msgstr "Siehe git-pull(1) für weitere Details."
-#: builtin/pull.c:451 builtin/pull.c:457 builtin/pull.c:466
-#: builtin/rebase.c:1332 git-parse-remote.sh:64
+#: builtin/pull.c:455 builtin/pull.c:461 builtin/pull.c:470
+#: builtin/rebase.c:1353 git-parse-remote.sh:64
msgid "<remote>"
msgstr "<Remote-Repository>"
-#: builtin/pull.c:451 builtin/pull.c:466 builtin/pull.c:471
+#: builtin/pull.c:455 builtin/pull.c:470 builtin/pull.c:475
#: git-parse-remote.sh:65
msgid "<branch>"
msgstr "<Branch>"
-#: builtin/pull.c:459 builtin/rebase.c:1324 git-parse-remote.sh:75
+#: builtin/pull.c:463 builtin/rebase.c:1345 git-parse-remote.sh:75
msgid "There is no tracking information for the current branch."
msgstr "Es gibt keine Tracking-Informationen für den aktuellen Branch."
-#: builtin/pull.c:468 git-parse-remote.sh:95
+#: builtin/pull.c:472 git-parse-remote.sh:95
msgid ""
"If you wish to set tracking information for this branch you can do so with:"
msgstr ""
@@ -16885,7 +16968,7 @@ msgstr ""
"Sie\n"
"dies tun mit:"
-#: builtin/pull.c:473
+#: builtin/pull.c:477
#, c-format
msgid ""
"Your configuration specifies to merge with the ref '%s'\n"
@@ -16895,34 +16978,34 @@ msgstr ""
"des Remote-Repositories durchzuführen, aber diese Referenz\n"
"wurde nicht angefordert."
-#: builtin/pull.c:581
+#: builtin/pull.c:587
#, c-format
msgid "unable to access commit %s"
msgstr "Konnte nicht auf Commit '%s' zugreifen."
-#: builtin/pull.c:861
+#: builtin/pull.c:867
msgid "ignoring --verify-signatures for rebase"
msgstr "Ignoriere --verify-signatures für Rebase"
-#: builtin/pull.c:916
+#: builtin/pull.c:922
msgid "--[no-]autostash option is only valid with --rebase."
msgstr "--[no-]autostash ist nur mit --rebase zulässig."
-#: builtin/pull.c:924
+#: builtin/pull.c:930
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:928
+#: builtin/pull.c:934
msgid "pull with rebase"
msgstr "Pull mit Rebase"
-#: builtin/pull.c:929
+#: builtin/pull.c:935
msgid "please commit or stash them."
msgstr "Bitte committen Sie die Änderungen oder benutzen Sie \"stash\"."
-#: builtin/pull.c:954
+#: builtin/pull.c:960
#, c-format
msgid ""
"fetch updated the current branch head.\n"
@@ -16932,7 +17015,7 @@ msgstr ""
"\"fetch\" aktualisierte die Spitze des aktuellen Branches.\n"
"Spule Ihr Arbeitsverzeichnis von Commit %s vor."
-#: builtin/pull.c:960
+#: builtin/pull.c:966
#, c-format
msgid ""
"Cannot fast-forward your working tree.\n"
@@ -16949,15 +17032,15 @@ msgstr ""
"$ git reset --hard\n"
"zur Wiederherstellung aus."
-#: builtin/pull.c:975
+#: builtin/pull.c:981
msgid "Cannot merge multiple branches into empty head."
msgstr "Kann nicht mehrere Branches in einen leeren Branch zusammenführen."
-#: builtin/pull.c:979
+#: builtin/pull.c:985
msgid "Cannot rebase onto multiple branches."
msgstr "Kann Rebase nicht auf mehrere Branches ausführen."
-#: builtin/pull.c:986
+#: builtin/pull.c:992
msgid "cannot rebase with locally recorded submodule modifications"
msgstr ""
"Kann Rebase nicht mit lokal aufgezeichneten Änderungen in Submodulen "
@@ -17131,136 +17214,136 @@ msgstr ""
msgid "Pushing to %s\n"
msgstr "Versende nach %s\n"
-#: builtin/push.c:364
+#: builtin/push.c:366
#, c-format
msgid "failed to push some refs to '%s'"
msgstr "Fehler beim Versenden einiger Referenzen nach '%s'"
-#: builtin/push.c:398
-#, c-format
-msgid "bad repository '%s'"
-msgstr "ungültiges Repository '%s'"
-
-#: builtin/push.c:399
-msgid ""
-"No configured push destination.\n"
-"Either specify the URL from the command-line or configure a remote "
-"repository using\n"
-"\n"
-" git remote add <name> <url>\n"
-"\n"
-"and then push using the remote name\n"
-"\n"
-" git push <name>\n"
-msgstr ""
-"Kein Ziel für \"push\" konfiguriert.\n"
-"Entweder spezifizieren Sie die URL von der Befehlszeile oder konfigurieren "
-"ein Remote-Repository unter Benutzung von\n"
-"\n"
-" git remote add <Name> <URL>\n"
-"\n"
-"und führen \"push\" dann unter Benutzung dieses Namens aus\n"
-"\n"
-" git push <Name>\n"
-
-#: builtin/push.c:554
+#: builtin/push.c:541
msgid "repository"
msgstr "Repository"
-#: builtin/push.c:555 builtin/send-pack.c:164
+#: builtin/push.c:542 builtin/send-pack.c:164
msgid "push all refs"
msgstr "alle Referenzen versenden"
-#: builtin/push.c:556 builtin/send-pack.c:166
+#: builtin/push.c:543 builtin/send-pack.c:166
msgid "mirror all refs"
msgstr "alle Referenzen spiegeln"
-#: builtin/push.c:558
+#: builtin/push.c:545
msgid "delete refs"
msgstr "Referenzen löschen"
-#: builtin/push.c:559
+#: builtin/push.c:546
msgid "push tags (can't be used with --all or --mirror)"
msgstr "Tags versenden (kann nicht mit --all oder --mirror verwendet werden)"
-#: builtin/push.c:562 builtin/send-pack.c:167
+#: builtin/push.c:549 builtin/send-pack.c:167
msgid "force updates"
msgstr "Aktualisierung erzwingen"
-#: builtin/push.c:564 builtin/send-pack.c:181
+#: builtin/push.c:551 builtin/send-pack.c:181
msgid "<refname>:<expect>"
msgstr "<Referenzname>:<Erwartungswert>"
-#: builtin/push.c:565 builtin/send-pack.c:182
+#: builtin/push.c:552 builtin/send-pack.c:182
msgid "require old value of ref to be at this value"
msgstr "Referenz muss sich auf dem angegebenen Wert befinden"
-#: builtin/push.c:568
+#: builtin/push.c:555
msgid "control recursive pushing of submodules"
msgstr "rekursiven \"push\" von Submodulen steuern"
-#: builtin/push.c:570 builtin/send-pack.c:175
+#: builtin/push.c:557 builtin/send-pack.c:175
msgid "use thin pack"
msgstr "kleinere Pakete verwenden"
-#: builtin/push.c:571 builtin/push.c:572 builtin/send-pack.c:161
+#: builtin/push.c:558 builtin/push.c:559 builtin/send-pack.c:161
#: builtin/send-pack.c:162
msgid "receive pack program"
msgstr "'receive pack' Programm"
-#: builtin/push.c:573
+#: builtin/push.c:560
msgid "set upstream for git pull/status"
msgstr "Upstream für \"git pull/status\" setzen"
-#: builtin/push.c:576
+#: builtin/push.c:563
msgid "prune locally removed refs"
msgstr "lokal gelöschte Referenzen entfernen"
-#: builtin/push.c:578
+#: builtin/push.c:565
msgid "bypass pre-push hook"
msgstr "\"pre-push hook\" umgehen"
-#: builtin/push.c:579
+#: builtin/push.c:566
msgid "push missing but relevant tags"
msgstr "fehlende, aber relevante Tags versenden"
-#: builtin/push.c:582 builtin/send-pack.c:169
+#: builtin/push.c:569 builtin/send-pack.c:169
msgid "GPG sign the push"
msgstr "signiert \"push\" mit GPG"
-#: builtin/push.c:584 builtin/send-pack.c:176
+#: builtin/push.c:571 builtin/send-pack.c:176
msgid "request atomic transaction on remote side"
msgstr "Referenzen atomar versenden"
-#: builtin/push.c:602
+#: builtin/push.c:589
msgid "--delete is incompatible with --all, --mirror and --tags"
msgstr "Die Option --delete ist inkompatibel mit --all, --mirror und --tags."
-#: builtin/push.c:604
+#: builtin/push.c:591
msgid "--delete doesn't make sense without any refs"
msgstr "Die Option --delete kann nur mit Referenzen verwendet werden."
-#: builtin/push.c:607
+#: builtin/push.c:611
+#, c-format
+msgid "bad repository '%s'"
+msgstr "ungültiges Repository '%s'"
+
+#: builtin/push.c:612
+msgid ""
+"No configured push destination.\n"
+"Either specify the URL from the command-line or configure a remote "
+"repository using\n"
+"\n"
+" git remote add <name> <url>\n"
+"\n"
+"and then push using the remote name\n"
+"\n"
+" git push <name>\n"
+msgstr ""
+"Kein Ziel für \"push\" konfiguriert.\n"
+"Entweder spezifizieren Sie die URL von der Befehlszeile oder konfigurieren "
+"ein Remote-Repository unter Benutzung von\n"
+"\n"
+" git remote add <Name> <URL>\n"
+"\n"
+"und führen \"push\" dann unter Benutzung dieses Namens aus\n"
+"\n"
+" git push <Name>\n"
+
+#: builtin/push.c:627
msgid "--all and --tags are incompatible"
msgstr "Die Optionen --all und --tags sind inkompatibel."
-#: builtin/push.c:609
+#: builtin/push.c:629
msgid "--all can't be combined with refspecs"
msgstr "Die Option --all kann nicht mit Refspecs kombiniert werden."
-#: builtin/push.c:613
+#: builtin/push.c:633
msgid "--mirror and --tags are incompatible"
msgstr "Die Optionen --mirror und --tags sind inkompatibel."
-#: builtin/push.c:615
+#: builtin/push.c:635
msgid "--mirror can't be combined with refspecs"
msgstr "Die Option --mirror kann nicht mit Refspecs kombiniert werden."
-#: builtin/push.c:618
+#: builtin/push.c:638
msgid "--all and --mirror are incompatible"
msgstr "Die Optionen --all und --mirror sind inkompatibel."
-#: builtin/push.c:637
+#: builtin/push.c:642
msgid "push options must not have new line characters"
msgstr "Push-Optionen dürfen keine Zeilenvorschubzeichen haben"
@@ -17380,11 +17463,11 @@ msgstr "Rückmeldungen unterdrücken"
#: builtin/rebase.c:32
msgid ""
-"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] [<upstream>] "
-"[<branch>]"
+"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase> | --keep-base] "
+"[<upstream> [<branch>]]"
msgstr ""
-"git rebase [-i] [<Optionen>] [--exec <Programm>] [--onto <neue-Basis>] "
-"[<Upstream>] [<Branch>]"
+"git rebase [-i] [<Optionen>] [--exec <Programm>] [--onto <neue-Basis> | --"
+"keep-base] [<Upstream> [<Branch>]]"
#: builtin/rebase.c:34
msgid ""
@@ -17424,190 +17507,190 @@ msgstr "Markierung auf interaktiven Rebase fehlgeschlagen."
msgid "could not generate todo list"
msgstr "Konnte TODO-Liste nicht erzeugen."
-#: builtin/rebase.c:382
+#: builtin/rebase.c:383
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:437
+#: builtin/rebase.c:438
msgid "git rebase--interactive [<options>]"
msgstr "git rebase--interactive [<Optionen>]"
-#: builtin/rebase.c:449
+#: builtin/rebase.c:450
msgid "keep empty commits"
msgstr "leere Commits behalten"
-#: builtin/rebase.c:451 builtin/revert.c:128
+#: builtin/rebase.c:452 builtin/revert.c:128
msgid "allow commits with empty messages"
msgstr "Commits mit leerer Beschreibung erlauben"
-#: builtin/rebase.c:452
+#: builtin/rebase.c:453
msgid "rebase merge commits"
msgstr "Rebase auf Merge-Commits ausführen"
-#: builtin/rebase.c:454
+#: builtin/rebase.c:455
msgid "keep original branch points of cousins"
msgstr "originale Branch-Punkte der Cousins behalten"
-#: builtin/rebase.c:456
+#: builtin/rebase.c:457
msgid "move commits that begin with squash!/fixup!"
msgstr "Commits verschieben, die mit squash!/fixup! beginnen"
-#: builtin/rebase.c:457
+#: builtin/rebase.c:458
msgid "sign commits"
msgstr "Commits signieren"
-#: builtin/rebase.c:459 builtin/rebase.c:1403
+#: builtin/rebase.c:460 builtin/rebase.c:1427
msgid "display a diffstat of what changed upstream"
msgstr ""
"Zusammenfassung der Unterschiede gegenüber dem Upstream-Branch anzeigen"
-#: builtin/rebase.c:461
+#: builtin/rebase.c:462
msgid "continue rebase"
msgstr "Rebase fortsetzen"
-#: builtin/rebase.c:463
+#: builtin/rebase.c:464
msgid "skip commit"
msgstr "Commit auslassen"
-#: builtin/rebase.c:464
+#: builtin/rebase.c:465
msgid "edit the todo list"
msgstr "die TODO-Liste bearbeiten"
-#: builtin/rebase.c:466
+#: builtin/rebase.c:467
msgid "show the current patch"
msgstr "den aktuellen Patch anzeigen"
-#: builtin/rebase.c:469
+#: builtin/rebase.c:470
msgid "shorten commit ids in the todo list"
msgstr "Commit-IDs in der TODO-Liste verkürzen"
-#: builtin/rebase.c:471
+#: builtin/rebase.c:472
msgid "expand commit ids in the todo list"
msgstr "Commit-IDs in der TODO-Liste erweitern"
-#: builtin/rebase.c:473
+#: builtin/rebase.c:474
msgid "check the todo list"
msgstr "die TODO-Liste prüfen"
-#: builtin/rebase.c:475
+#: builtin/rebase.c:476
msgid "rearrange fixup/squash lines"
msgstr "fixup/squash-Zeilen umordnen"
-#: builtin/rebase.c:477
+#: builtin/rebase.c:478
msgid "insert exec commands in todo list"
msgstr "\"exec\"-Befehle in TODO-Liste einfügen"
-#: builtin/rebase.c:478
+#: builtin/rebase.c:479
msgid "onto"
msgstr "auf"
-#: builtin/rebase.c:481
+#: builtin/rebase.c:482
msgid "restrict-revision"
msgstr "Begrenzungscommit"
-#: builtin/rebase.c:481
+#: builtin/rebase.c:482
msgid "restrict revision"
msgstr "Begrenzungscommit"
-#: builtin/rebase.c:483
+#: builtin/rebase.c:484
msgid "squash-onto"
msgstr "squash-onto"
-#: builtin/rebase.c:484
+#: builtin/rebase.c:485
msgid "squash onto"
msgstr "squash onto"
-#: builtin/rebase.c:486
+#: builtin/rebase.c:487
msgid "the upstream commit"
msgstr "der Upstream-Commit"
-#: builtin/rebase.c:488
+#: builtin/rebase.c:489
msgid "head-name"
msgstr "head-Name"
-#: builtin/rebase.c:488
+#: builtin/rebase.c:489
msgid "head name"
msgstr "head-Name"
-#: builtin/rebase.c:493
+#: builtin/rebase.c:494
msgid "rebase strategy"
msgstr "Rebase-Strategie"
-#: builtin/rebase.c:494
+#: builtin/rebase.c:495
msgid "strategy-opts"
msgstr "Strategie-Optionen"
-#: builtin/rebase.c:495
+#: builtin/rebase.c:496
msgid "strategy options"
msgstr "Strategie-Optionen"
-#: builtin/rebase.c:496
+#: builtin/rebase.c:497
msgid "switch-to"
msgstr "wechseln zu"
-#: builtin/rebase.c:497
+#: builtin/rebase.c:498
msgid "the branch or commit to checkout"
msgstr "der Branch oder Commit zum Auschecken"
-#: builtin/rebase.c:498
+#: builtin/rebase.c:499
msgid "onto-name"
msgstr "onto-Name"
-#: builtin/rebase.c:498
+#: builtin/rebase.c:499
msgid "onto name"
msgstr "onto-Name"
-#: builtin/rebase.c:499
+#: builtin/rebase.c:500
msgid "cmd"
msgstr "Befehl"
-#: builtin/rebase.c:499
+#: builtin/rebase.c:500
msgid "the command to run"
msgstr "auszuführender Befehl"
-#: builtin/rebase.c:502 builtin/rebase.c:1486
+#: builtin/rebase.c:503 builtin/rebase.c:1510
msgid "automatically re-schedule any `exec` that fails"
msgstr "jeden fehlgeschlagenen `exec`-Befehl neu ansetzen"
-#: builtin/rebase.c:518
+#: builtin/rebase.c:519
msgid "--[no-]rebase-cousins has no effect without --rebase-merges"
msgstr "--[no-]rebase-cousins hat ohne --rebase-merges keine Auswirkung"
-#: builtin/rebase.c:534
+#: builtin/rebase.c:535
#, c-format
msgid "%s requires an interactive rebase"
msgstr "%s erfordert ein interaktives Rebase"
-#: builtin/rebase.c:586
+#: builtin/rebase.c:587
#, c-format
msgid "could not get 'onto': '%s'"
msgstr "Konnte 'onto' nicht bestimmen: '%s'"
-#: builtin/rebase.c:601
+#: builtin/rebase.c:602
#, c-format
msgid "invalid orig-head: '%s'"
msgstr "Ungültiges orig-head: '%s'"
-#: builtin/rebase.c:626
+#: builtin/rebase.c:627
#, c-format
msgid "ignoring invalid allow_rerere_autoupdate: '%s'"
msgstr "Ignoriere ungültiges allow_rerere_autoupdate: '%s'"
-#: builtin/rebase.c:702
+#: builtin/rebase.c:703
#, c-format
msgid "Could not read '%s'"
msgstr "Konnte '%s' nicht lesen."
-#: builtin/rebase.c:720
+#: builtin/rebase.c:721
#, c-format
msgid "Cannot store %s"
msgstr "Kann %s nicht speichern."
-#: builtin/rebase.c:827
+#: builtin/rebase.c:828
msgid "could not determine HEAD revision"
msgstr "Konnte HEAD-Commit nicht bestimmen."
-#: builtin/rebase.c:950 git-rebase--preserve-merges.sh:81
+#: builtin/rebase.c:951 git-rebase--preserve-merges.sh:81
msgid ""
"Resolve all conflicts manually, mark them as resolved with\n"
"\"git add/rm <conflicted_files>\", then run \"git rebase --continue\".\n"
@@ -17623,7 +17706,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:1031
+#: builtin/rebase.c:1032
#, c-format
msgid ""
"\n"
@@ -17643,7 +17726,7 @@ msgstr ""
"Infolge dessen kann Git auf diesen Revisionen Rebase nicht\n"
"ausführen."
-#: builtin/rebase.c:1318
+#: builtin/rebase.c:1339
#, c-format
msgid ""
"%s\n"
@@ -17661,7 +17744,7 @@ msgstr ""
" git rebase '<Branch>'\n"
"\n"
-#: builtin/rebase.c:1334
+#: builtin/rebase.c:1355
#, c-format
msgid ""
"If you wish to set tracking information for this branch you can do so with:\n"
@@ -17675,132 +17758,136 @@ msgstr ""
" git branch --set-upstream-to=%s/<Branch> %s\n"
"\n"
-#: builtin/rebase.c:1364
+#: builtin/rebase.c:1385
msgid "exec commands cannot contain newlines"
msgstr "\"exec\"-Befehle können keine neuen Zeilen enthalten"
-#: builtin/rebase.c:1368
+#: builtin/rebase.c:1389
msgid "empty exec command"
msgstr "Leerer \"exec\"-Befehl."
-#: builtin/rebase.c:1396
+#: builtin/rebase.c:1418
msgid "rebase onto given branch instead of upstream"
msgstr "Rebase auf angegebenen Branch anstelle des Upstream-Branches ausführen"
-#: builtin/rebase.c:1398
+#: builtin/rebase.c:1420
+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:1422
msgid "allow pre-rebase hook to run"
msgstr "Ausführung des pre-rebase-Hooks erlauben"
-#: builtin/rebase.c:1400
+#: builtin/rebase.c:1424
msgid "be quiet. implies --no-stat"
msgstr "weniger Ausgaben (impliziert --no-stat)"
-#: builtin/rebase.c:1406
+#: builtin/rebase.c:1430
msgid "do not show diffstat of what changed upstream"
msgstr ""
"Zusammenfassung der Unterschiede gegenüber dem Upstream-Branch verbergen"
-#: builtin/rebase.c:1409
+#: builtin/rebase.c:1433
msgid "add a Signed-off-by: line to each commit"
msgstr "eine \"Signed-off-by:\"-Zeile zu jedem Commit hinzufügen"
-#: builtin/rebase.c:1411 builtin/rebase.c:1415 builtin/rebase.c:1417
+#: builtin/rebase.c:1435 builtin/rebase.c:1439 builtin/rebase.c:1441
msgid "passed to 'git am'"
msgstr "an 'git am' übergeben"
-#: builtin/rebase.c:1419 builtin/rebase.c:1421
+#: builtin/rebase.c:1443 builtin/rebase.c:1445
msgid "passed to 'git apply'"
msgstr "an 'git apply' übergeben"
-#: builtin/rebase.c:1423 builtin/rebase.c:1426
+#: builtin/rebase.c:1447 builtin/rebase.c:1450
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:1428
+#: builtin/rebase.c:1452
msgid "continue"
msgstr "fortsetzen"
-#: builtin/rebase.c:1431
+#: builtin/rebase.c:1455
msgid "skip current patch and continue"
msgstr "den aktuellen Patch auslassen und fortfahren"
-#: builtin/rebase.c:1433
+#: builtin/rebase.c:1457
msgid "abort and check out the original branch"
msgstr "abbrechen und den ursprünglichen Branch auschecken"
-#: builtin/rebase.c:1436
+#: builtin/rebase.c:1460
msgid "abort but keep HEAD where it is"
msgstr "abbrechen, aber HEAD an aktueller Stelle belassen"
-#: builtin/rebase.c:1437
+#: builtin/rebase.c:1461
msgid "edit the todo list during an interactive rebase"
msgstr "TODO-Liste während eines interaktiven Rebase bearbeiten"
-#: builtin/rebase.c:1440
+#: builtin/rebase.c:1464
msgid "show the patch file being applied or merged"
msgstr "den Patch, der gerade angewendet oder zusammengeführt wird, anzeigen"
-#: builtin/rebase.c:1443
+#: builtin/rebase.c:1467
msgid "use merging strategies to rebase"
msgstr "Merge-Strategien beim Rebase verwenden"
-#: builtin/rebase.c:1447
+#: builtin/rebase.c:1471
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:1451
+#: builtin/rebase.c:1475
msgid "(DEPRECATED) try to recreate merges instead of ignoring them"
msgstr ""
"(VERALTET) Versuche, Merges wiederherzustellen anstatt sie zu ignorieren"
-#: builtin/rebase.c:1455
+#: builtin/rebase.c:1479
msgid "preserve empty commits during rebase"
msgstr "leere Commits während des Rebase erhalten"
-#: builtin/rebase.c:1457
+#: builtin/rebase.c:1481
msgid "move commits that begin with squash!/fixup! under -i"
msgstr "bei -i Commits verschieben, die mit squash!/fixup! beginnen"
-#: builtin/rebase.c:1463
+#: builtin/rebase.c:1487
msgid "automatically stash/stash pop before and after"
msgstr "automatischer Stash/Stash-Pop davor und danach"
-#: builtin/rebase.c:1465
+#: builtin/rebase.c:1489
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:1469
+#: builtin/rebase.c:1493
msgid "allow rebasing commits with empty messages"
msgstr "Rebase von Commits mit leerer Beschreibung erlauben"
-#: builtin/rebase.c:1472
+#: builtin/rebase.c:1496
msgid "try to rebase merges instead of skipping them"
msgstr ""
"versuchen, Rebase mit Merges auszuführen, anstatt diese zu überspringen"
-#: builtin/rebase.c:1475
+#: builtin/rebase.c:1499
msgid "use 'merge-base --fork-point' to refine upstream"
msgstr ""
"'git merge-base --fork-point' benutzen, um Upstream-Branch zu bestimmen"
-#: builtin/rebase.c:1477
+#: builtin/rebase.c:1501
msgid "use the given merge strategy"
msgstr "angegebene Merge-Strategie verwenden"
-#: builtin/rebase.c:1479 builtin/revert.c:115
+#: builtin/rebase.c:1503 builtin/revert.c:115
msgid "option"
msgstr "Option"
-#: builtin/rebase.c:1480
+#: builtin/rebase.c:1504
msgid "pass the argument through to the merge strategy"
msgstr "Argument zur Merge-Strategie durchreichen"
-#: builtin/rebase.c:1483
+#: builtin/rebase.c:1507
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:1500
+#: builtin/rebase.c:1524
msgid ""
"the rebase.useBuiltin support has been removed!\n"
"See its entry in 'git help config' for details."
@@ -17808,32 +17895,40 @@ msgstr ""
"Die Unterstützung für rebase.useBuiltin wurde entfernt!\n"
"Siehe dessen Eintrag in 'git help config' für Details."
-#: builtin/rebase.c:1506
+#: builtin/rebase.c:1530
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:1547
+#: builtin/rebase.c:1571
msgid ""
"git rebase --preserve-merges is deprecated. Use --rebase-merges instead."
msgstr ""
"'git rebase --preserve-merges' ist veraltet. Benutzen Sie stattdessen '--"
"rebase-merges'."
-#: builtin/rebase.c:1551
+#: builtin/rebase.c:1576
+msgid "cannot combine '--keep-base' with '--onto'"
+msgstr "'--keep-base' kann nicht mit '--onto' kombiniert werden"
+
+#: builtin/rebase.c:1578
+msgid "cannot combine '--keep-base' with '--root'"
+msgstr "'--keep-base' kann nicht mit '--root' kombiniert werden"
+
+#: builtin/rebase.c:1582
msgid "No rebase in progress?"
msgstr "Kein Rebase im Gange?"
-#: builtin/rebase.c:1555
+#: builtin/rebase.c:1586
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:1578
+#: builtin/rebase.c:1609
msgid "Cannot read HEAD"
msgstr "Kann HEAD nicht lesen"
-#: builtin/rebase.c:1590
+#: builtin/rebase.c:1621
msgid ""
"You must edit all merge conflicts and then\n"
"mark them as resolved using git add"
@@ -17841,16 +17936,16 @@ msgstr ""
"Sie müssen alle Merge-Konflikte editieren und diese dann\n"
"mittels \"git add\" als aufgelöst markieren"
-#: builtin/rebase.c:1609
+#: builtin/rebase.c:1640
msgid "could not discard worktree changes"
msgstr "Konnte Änderungen im Arbeitsverzeichnis nicht verwerfen."
-#: builtin/rebase.c:1628
+#: builtin/rebase.c:1659
#, c-format
msgid "could not move back to %s"
msgstr "Konnte nicht zu %s zurückgehen."
-#: builtin/rebase.c:1673
+#: builtin/rebase.c:1704
#, c-format
msgid ""
"It seems that there is already a %s directory, and\n"
@@ -17871,170 +17966,161 @@ msgstr ""
"und führen Sie diesen Befehl nochmal aus. Es wird angehalten, falls noch\n"
"etwas Schützenswertes vorhanden ist.\n"
-#: builtin/rebase.c:1694
+#: builtin/rebase.c:1725
msgid "switch `C' expects a numerical value"
msgstr "Schalter `C' erwartet einen numerischen Wert."
-#: builtin/rebase.c:1735
+#: builtin/rebase.c:1766
#, c-format
msgid "Unknown mode: %s"
msgstr "Unbekannter Modus: %s"
-#: builtin/rebase.c:1757
+#: builtin/rebase.c:1788
msgid "--strategy requires --merge or --interactive"
msgstr "--strategy erfordert --merge oder --interactive"
-#: builtin/rebase.c:1797
+#: builtin/rebase.c:1828
msgid "--reschedule-failed-exec requires --exec or --interactive"
msgstr "--reschedule-failed-exec erfordert --exec oder --interactive"
-#: builtin/rebase.c:1809
+#: builtin/rebase.c:1840
msgid "cannot combine am options with either interactive or merge options"
msgstr ""
"Optionen für \"am\" können nicht mit Optionen für \"interactive\" oder "
"\"merge\" kombiniert werden."
-#: builtin/rebase.c:1828
+#: builtin/rebase.c:1859
msgid "cannot combine '--preserve-merges' with '--rebase-merges'"
msgstr ""
"'--preserve-merges' kann nicht mit '--rebase-merges' kombiniert werden."
-#: builtin/rebase.c:1832
+#: builtin/rebase.c:1863
msgid ""
"error: cannot combine '--preserve-merges' with '--reschedule-failed-exec'"
msgstr ""
"Fehler: '--preserve-merges' kann nicht mit '--reschedule-failed-exec' "
"kombiniert werden."
-#: builtin/rebase.c:1838
-msgid "cannot combine '--rebase-merges' with '--strategy-option'"
-msgstr ""
-"'--rebase-merges' kann nicht mit '--strategy-option' kombiniert werden."
-
-#: builtin/rebase.c:1841
-msgid "cannot combine '--rebase-merges' with '--strategy'"
-msgstr "'--rebase-merges' kann nicht mit '--strategy' kombiniert werden."
-
-#: builtin/rebase.c:1865
+#: builtin/rebase.c:1887
#, c-format
msgid "invalid upstream '%s'"
msgstr "Ungültiger Upstream '%s'"
-#: builtin/rebase.c:1871
+#: builtin/rebase.c:1893
msgid "Could not create new root commit"
msgstr "Konnte neuen Root-Commit nicht erstellen."
-#: builtin/rebase.c:1889
+#: builtin/rebase.c:1919
+#, 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:1922
#, c-format
msgid "'%s': need exactly one merge base"
msgstr "'%s': benötige genau eine Merge-Basis"
-#: builtin/rebase.c:1896
+#: builtin/rebase.c:1930
#, c-format
msgid "Does not point to a valid commit '%s'"
msgstr "'%s' zeigt auf keinen gültigen Commit."
-#: builtin/rebase.c:1921
+#: builtin/rebase.c:1955
#, c-format
msgid "fatal: no such branch/commit '%s'"
msgstr "fatal: Branch/Commit '%s' nicht gefunden"
-#: builtin/rebase.c:1929 builtin/submodule--helper.c:38
+#: builtin/rebase.c:1963 builtin/submodule--helper.c:38
#: builtin/submodule--helper.c:1934
#, c-format
msgid "No such ref: %s"
msgstr "Referenz nicht gefunden: %s"
-#: builtin/rebase.c:1940
+#: builtin/rebase.c:1974
msgid "Could not resolve HEAD to a revision"
msgstr "Konnte HEAD zu keinem Commit auflösen."
-#: builtin/rebase.c:1981
+#: builtin/rebase.c:2012
msgid "Cannot autostash"
msgstr "Kann automatischen Stash nicht erzeugen."
-#: builtin/rebase.c:1984
+#: builtin/rebase.c:2015
#, c-format
msgid "Unexpected stash response: '%s'"
msgstr "Unerwartete 'stash'-Antwort: '%s'"
-#: builtin/rebase.c:1990
+#: builtin/rebase.c:2021
#, c-format
msgid "Could not create directory for '%s'"
msgstr "Konnte Verzeichnis für '%s' nicht erstellen."
-#: builtin/rebase.c:1993
+#: builtin/rebase.c:2024
#, c-format
msgid "Created autostash: %s\n"
msgstr "Automatischen Stash erzeugt: %s\n"
-#: builtin/rebase.c:1996
+#: builtin/rebase.c:2027
msgid "could not reset --hard"
msgstr "Konnte 'reset --hard' nicht ausführen."
-#: builtin/rebase.c:1997 builtin/reset.c:114
-#, c-format
-msgid "HEAD is now at %s"
-msgstr "HEAD ist jetzt bei %s"
-
-#: builtin/rebase.c:2013
+#: builtin/rebase.c:2036
msgid "Please commit or stash them."
msgstr "Bitte committen Sie die Änderungen oder benutzen Sie \"stash\"."
-#: builtin/rebase.c:2040
+#: builtin/rebase.c:2063
#, c-format
msgid "could not parse '%s'"
msgstr "Konnte '%s' nicht parsen."
-#: builtin/rebase.c:2053
+#: builtin/rebase.c:2076
#, c-format
msgid "could not switch to %s"
msgstr "Konnte nicht zu %s wechseln."
-#: builtin/rebase.c:2064
+#: builtin/rebase.c:2087
msgid "HEAD is up to date."
msgstr "HEAD ist aktuell."
-#: builtin/rebase.c:2066
+#: builtin/rebase.c:2089
#, c-format
msgid "Current branch %s is up to date.\n"
msgstr "Aktueller Branch %s ist auf dem neuesten Stand.\n"
-#: builtin/rebase.c:2074
+#: builtin/rebase.c:2097
msgid "HEAD is up to date, rebase forced."
msgstr "HEAD ist aktuell, Rebase erzwungen."
-#: builtin/rebase.c:2076
+#: builtin/rebase.c:2099
#, 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:2084
+#: builtin/rebase.c:2107
msgid "The pre-rebase hook refused to rebase."
msgstr "Der \"pre-rebase hook\" hat den Rebase zurückgewiesen."
-#: builtin/rebase.c:2091
+#: builtin/rebase.c:2114
#, c-format
msgid "Changes to %s:\n"
msgstr "Änderungen zu %s:\n"
-#: builtin/rebase.c:2094
+#: builtin/rebase.c:2117
#, c-format
msgid "Changes from %s to %s:\n"
msgstr "Änderungen von %s zu %s:\n"
-#: builtin/rebase.c:2119
+#: builtin/rebase.c:2142
#, 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:2128
+#: builtin/rebase.c:2151
msgid "Could not detach HEAD"
msgstr "Konnte HEAD nicht loslösen."
-#: builtin/rebase.c:2137
+#: builtin/rebase.c:2160
#, c-format
msgid "Fast-forwarded %s to %s.\n"
msgstr "Spule %s vor zu %s.\n"
@@ -18043,7 +18129,7 @@ msgstr "Spule %s vor zu %s.\n"
msgid "git receive-pack <git-dir>"
msgstr "git receive-pack <Git-Verzeichnis>"
-#: builtin/receive-pack.c:832
+#: builtin/receive-pack.c:830
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"
@@ -18075,7 +18161,7 @@ msgstr ""
"setzen Sie die Konfigurationsvariable 'receive.denyCurrentBranch' auf\n"
"'refuse'."
-#: builtin/receive-pack.c:852
+#: builtin/receive-pack.c:850
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"
@@ -18096,11 +18182,11 @@ msgstr ""
"\n"
"Um diese Meldung zu unterdrücken, setzen Sie die Variable auf 'refuse'."
-#: builtin/receive-pack.c:1938
+#: builtin/receive-pack.c:1936
msgid "quiet"
msgstr "weniger Ausgaben"
-#: builtin/receive-pack.c:1952
+#: builtin/receive-pack.c:1950
msgid "You must specify a directory."
msgstr "Sie müssen ein Repository angeben."
@@ -18683,11 +18769,11 @@ msgstr "erweiterte Ausgaben; muss vor einem Unterbefehl angegeben werden"
msgid "Unknown subcommand: %s"
msgstr "Unbekannter Unterbefehl: %s"
-#: builtin/repack.c:22
+#: builtin/repack.c:23
msgid "git repack [<options>]"
msgstr "git repack [<Optionen>]"
-#: builtin/repack.c:27
+#: builtin/repack.c:28
msgid ""
"Incremental repacks are incompatible with bitmap indexes. Use\n"
"--no-write-bitmap-index or disable the pack.writebitmaps configuration."
@@ -18696,119 +18782,119 @@ msgstr ""
"--no-write-bitmap-index oder deaktivieren Sie die pack.writebitmaps\n"
"Konfiguration."
-#: builtin/repack.c:190
+#: builtin/repack.c:191
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:229 builtin/repack.c:408
+#: builtin/repack.c:230 builtin/repack.c:409
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:246
+#: builtin/repack.c:247
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:284
+#: builtin/repack.c:285
msgid "pack everything in a single pack"
msgstr "alles in eine einzige Pack-Datei packen"
-#: builtin/repack.c:286
+#: builtin/repack.c:287
msgid "same as -a, and turn unreachable objects loose"
msgstr "genau wie -a, unerreichbare Objekte werden aber nicht gelöscht"
-#: builtin/repack.c:289
+#: builtin/repack.c:290
msgid "remove redundant packs, and run git-prune-packed"
msgstr "redundante Pakete entfernen und \"git-prune-packed\" ausführen"
-#: builtin/repack.c:291
+#: builtin/repack.c:292
msgid "pass --no-reuse-delta to git-pack-objects"
msgstr "--no-reuse-delta an git-pack-objects übergeben"
-#: builtin/repack.c:293
+#: builtin/repack.c:294
msgid "pass --no-reuse-object to git-pack-objects"
msgstr "--no-reuse-object an git-pack-objects übergeben"
-#: builtin/repack.c:295
+#: builtin/repack.c:296
msgid "do not run git-update-server-info"
msgstr "git-update-server-info nicht ausführen"
-#: builtin/repack.c:298
+#: builtin/repack.c:299
msgid "pass --local to git-pack-objects"
msgstr "--local an git-pack-objects übergeben"
-#: builtin/repack.c:300
+#: builtin/repack.c:301
msgid "write bitmap index"
msgstr "Bitmap-Index schreiben"
-#: builtin/repack.c:302
+#: builtin/repack.c:303
msgid "pass --delta-islands to git-pack-objects"
msgstr "--delta-islands an git-pack-objects übergeben"
-#: builtin/repack.c:303
+#: builtin/repack.c:304
msgid "approxidate"
msgstr "Datumsangabe"
-#: builtin/repack.c:304
+#: builtin/repack.c:305
msgid "with -A, do not loosen objects older than this"
msgstr "mit -A, keine Objekte älter als dieses Datum löschen"
-#: builtin/repack.c:306
+#: builtin/repack.c:307
msgid "with -a, repack unreachable objects"
msgstr "mit -a, nicht erreichbare Objekte neu packen"
-#: builtin/repack.c:308
+#: builtin/repack.c:309
msgid "size of the window used for delta compression"
msgstr "Größe des Fensters für die Delta-Kompression"
-#: builtin/repack.c:309 builtin/repack.c:315
+#: builtin/repack.c:310 builtin/repack.c:316
msgid "bytes"
msgstr "Bytes"
-#: builtin/repack.c:310
+#: builtin/repack.c:311
msgid "same as the above, but limit memory size instead of entries count"
msgstr ""
"gleiches wie oben, aber die Speichergröße anstatt der\n"
"Anzahl der Einträge limitieren"
-#: builtin/repack.c:312
+#: builtin/repack.c:313
msgid "limits the maximum delta depth"
msgstr "die maximale Delta-Tiefe limitieren"
-#: builtin/repack.c:314
+#: builtin/repack.c:315
msgid "limits the maximum number of threads"
msgstr "maximale Anzahl von Threads limitieren"
-#: builtin/repack.c:316
+#: builtin/repack.c:317
msgid "maximum size of each packfile"
msgstr "maximale Größe für jede Paketdatei"
-#: builtin/repack.c:318
+#: builtin/repack.c:319
msgid "repack objects in packs marked with .keep"
msgstr ""
"Objekte umpacken, die sich in mit .keep markierten Pack-Dateien befinden"
-#: builtin/repack.c:320
+#: builtin/repack.c:321
msgid "do not repack this pack"
msgstr "dieses Paket nicht neu packen"
-#: builtin/repack.c:330
+#: builtin/repack.c:331
msgid "cannot delete packs in a precious-objects repo"
msgstr "kann Pack-Dateien in precious-objects Repository nicht löschen"
-#: builtin/repack.c:334
+#: builtin/repack.c:335
msgid "--keep-unreachable and -A are incompatible"
msgstr "--keep-unreachable und -A sind inkompatibel"
-#: builtin/repack.c:417
+#: builtin/repack.c:418
msgid "Nothing new to pack."
msgstr "Nichts Neues zum Packen."
-#: builtin/repack.c:478
+#: builtin/repack.c:479
#, c-format
msgid ""
"WARNING: Some packs in use have been renamed by\n"
@@ -18827,7 +18913,7 @@ msgstr ""
"WARNUNG: ebenfalls fehl.\n"
"WARNUNG: Bitte benennen Sie diese manuell nach %s um:\n"
-#: builtin/repack.c:526
+#: builtin/repack.c:527
#, c-format
msgid "failed to remove '%s'"
msgstr "Fehler beim Löschen von '%s'"
@@ -18936,8 +19022,8 @@ msgstr "Kann fstat auf %s nicht ausführen."
msgid "unable to write object to database"
msgstr "Konnte Objekt nicht in Datenbank schreiben."
-#: builtin/replace.c:322 builtin/replace.c:377 builtin/replace.c:422
-#: builtin/replace.c:452
+#: builtin/replace.c:322 builtin/replace.c:378 builtin/replace.c:423
+#: builtin/replace.c:453
#, c-format
msgid "not a valid object name: '%s'"
msgstr "Kein gültiger Objektname: '%s'"
@@ -18956,22 +19042,22 @@ msgstr "Bearbeiten von Objektdatei fehlgeschlagen."
msgid "new object is the same as the old one: '%s'"
msgstr "Neues Objekt ist dasselbe wie das alte: '%s'"
-#: builtin/replace.c:383
+#: builtin/replace.c:384
#, c-format
msgid "could not parse %s as a commit"
msgstr "Konnte nicht %s als Commit parsen."
-#: builtin/replace.c:414
+#: builtin/replace.c:415
#, c-format
msgid "bad mergetag in commit '%s'"
msgstr "ungültiger Merge-Tag in Commit '%s'"
-#: builtin/replace.c:416
+#: builtin/replace.c:417
#, c-format
msgid "malformed mergetag in commit '%s'"
msgstr "fehlerhafter Merge-Tag in Commit '%s'"
-#: builtin/replace.c:428
+#: builtin/replace.c:429
#, c-format
msgid ""
"original commit '%s' contains mergetag '%s' that is discarded; use --edit "
@@ -18980,31 +19066,31 @@ msgstr ""
"Der ursprüngliche Commit '%s' enthält Merge-Tag '%s', der verworfen\n"
"wird; benutzen Sie --edit anstatt --graft"
-#: builtin/replace.c:467
+#: builtin/replace.c:468
#, c-format
msgid "the original commit '%s' has a gpg signature"
msgstr "Der originale Commit '%s' hat eine GPG-Signatur."
-#: builtin/replace.c:468
+#: builtin/replace.c:469
msgid "the signature will be removed in the replacement commit!"
msgstr "Die Signatur wird in dem Ersetzungs-Commit entfernt!"
-#: builtin/replace.c:478
+#: builtin/replace.c:479
#, c-format
msgid "could not write replacement commit for: '%s'"
msgstr "Konnte Ersetzungs-Commit für '%s' nicht schreiben"
-#: builtin/replace.c:486
+#: builtin/replace.c:487
#, c-format
msgid "graft for '%s' unnecessary"
msgstr "Künstlicher Vorgänger (\"graft\") für '%s' nicht notwendig."
-#: builtin/replace.c:490
+#: builtin/replace.c:491
#, c-format
msgid "new commit is the same as the old one: '%s'"
msgstr "Neuer Commit ist derselbe wie der alte: '%s'"
-#: builtin/replace.c:525
+#: builtin/replace.c:526
#, c-format
msgid ""
"could not convert the following graft(s):\n"
@@ -19013,71 +19099,71 @@ msgstr ""
"Konnte die folgenden künstlichen Vorgänger (\"grafts\") nicht konvertieren:\n"
"%s"
-#: builtin/replace.c:546
+#: builtin/replace.c:547
msgid "list replace refs"
msgstr "ersetzende Referenzen auflisten"
-#: builtin/replace.c:547
+#: builtin/replace.c:548
msgid "delete replace refs"
msgstr "ersetzende Referenzen löschen"
-#: builtin/replace.c:548
+#: builtin/replace.c:549
msgid "edit existing object"
msgstr "existierendes Objekt bearbeiten"
-#: builtin/replace.c:549
+#: builtin/replace.c:550
msgid "change a commit's parents"
msgstr "Eltern-Commits eines Commits ändern"
-#: builtin/replace.c:550
+#: builtin/replace.c:551
msgid "convert existing graft file"
msgstr "existierende Datei des künstlichen Vorgängers (\"graft\") konvertieren"
-#: builtin/replace.c:551
+#: builtin/replace.c:552
msgid "replace the ref if it exists"
msgstr "die Referenz ersetzen, wenn sie existiert"
-#: builtin/replace.c:553
+#: builtin/replace.c:554
msgid "do not pretty-print contents for --edit"
msgstr "keine ansprechende Anzeige des Objektinhaltes für --edit"
-#: builtin/replace.c:554
+#: builtin/replace.c:555
msgid "use this format"
msgstr "das angegebene Format benutzen"
-#: builtin/replace.c:567
+#: builtin/replace.c:568
msgid "--format cannot be used when not listing"
msgstr "--format kann nicht beim Auflisten verwendet werden."
-#: builtin/replace.c:575
+#: builtin/replace.c:576
msgid "-f only makes sense when writing a replacement"
msgstr "-f macht nur beim Schreiben einer Ersetzung Sinn."
-#: builtin/replace.c:579
+#: builtin/replace.c:580
msgid "--raw only makes sense with --edit"
msgstr "--raw macht nur mit --edit Sinn."
-#: builtin/replace.c:585
+#: builtin/replace.c:586
msgid "-d needs at least one argument"
msgstr "-d benötigt mindestens ein Argument."
-#: builtin/replace.c:591
+#: builtin/replace.c:592
msgid "bad number of arguments"
msgstr "Ungültige Anzahl von Argumenten."
-#: builtin/replace.c:597
+#: builtin/replace.c:598
msgid "-e needs exactly one argument"
msgstr "-e benötigt genau ein Argument."
-#: builtin/replace.c:603
+#: builtin/replace.c:604
msgid "-g needs at least one argument"
msgstr "-g benötigt mindestens ein Argument."
-#: builtin/replace.c:609
+#: builtin/replace.c:610
msgid "--convert-graft-file takes no argument"
msgstr "--convert-graft-file erwartet keine Argumente"
-#: builtin/replace.c:615
+#: builtin/replace.c:616
msgid "only one pattern can be given with -l"
msgstr "Mit -l kann nur ein Muster angegeben werden."
@@ -19145,13 +19231,18 @@ msgstr "Fehler beim Finden des \"Tree\"-Objektes von HEAD."
msgid "Failed to find tree of %s."
msgstr "Fehler beim Finden des \"Tree\"-Objektes von %s."
+#: builtin/reset.c:114
+#, c-format
+msgid "HEAD is now at %s"
+msgstr "HEAD ist jetzt bei %s"
+
#: builtin/reset.c:193
#, 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:293 builtin/stash.c:514 builtin/stash.c:589
-#: builtin/stash.c:613
+#: builtin/reset.c:293 builtin/stash.c:520 builtin/stash.c:595
+#: builtin/stash.c:619
msgid "be quiet, only report errors"
msgstr "weniger Ausgaben, nur Fehler melden"
@@ -19236,25 +19327,20 @@ msgstr "Konnte Index-Datei nicht zu Commit '%s' setzen."
msgid "Could not write new index file."
msgstr "Konnte neue Index-Datei nicht schreiben."
-#: builtin/rev-list.c:412
+#: builtin/rev-list.c:411
msgid "cannot combine --exclude-promisor-objects and --missing"
msgstr ""
"--exclude-promisor-objects und --missing können nicht kombiniert werden."
-#: builtin/rev-list.c:473
+#: builtin/rev-list.c:472
msgid "object filtering requires --objects"
msgstr "Das Filtern von Objekten erfordert --objects."
-#: builtin/rev-list.c:476
-#, c-format
-msgid "invalid sparse value '%s'"
-msgstr "Ungültiger \"sparse\"-Wert '%s'."
-
-#: builtin/rev-list.c:527
+#: builtin/rev-list.c:522
msgid "rev-list does not support display of notes"
msgstr "rev-list unterstützt keine Anzeige von Notizen"
-#: builtin/rev-list.c:530
+#: builtin/rev-list.c:525
msgid "cannot combine --use-bitmap-index with object filtering"
msgstr ""
"--use-bitmap-index kann nicht mit dem Filtern von Objekten kombiniert werden."
@@ -19805,137 +19891,137 @@ msgstr "Konflikte im Index. Versuchen Sie es ohne --index."
msgid "could not save index tree"
msgstr "Konnte Index-Verzeichnis nicht speichern"
-#: builtin/stash.c:434
+#: builtin/stash.c:436
msgid "could not restore untracked files from stash"
msgstr "Konnte unversionierte Dateien vom Stash nicht wiederherstellen."
-#: builtin/stash.c:448
+#: builtin/stash.c:450
#, c-format
msgid "Merging %s with %s"
msgstr "Führe %s mit %s zusammen"
-#: builtin/stash.c:458 git-legacy-stash.sh:680
+#: builtin/stash.c:460 git-legacy-stash.sh:680
msgid "Index was not unstashed."
msgstr "Index wurde nicht aus dem Stash zurückgeladen."
-#: builtin/stash.c:516 builtin/stash.c:615
+#: builtin/stash.c:522 builtin/stash.c:621
msgid "attempt to recreate the index"
msgstr "Versuche Index wiederherzustellen."
-#: builtin/stash.c:549
+#: builtin/stash.c:555
#, c-format
msgid "Dropped %s (%s)"
msgstr "%s (%s) gelöscht"
-#: builtin/stash.c:552
+#: builtin/stash.c:558
#, c-format
msgid "%s: Could not drop stash entry"
msgstr "%s: Konnte Stash-Eintrag nicht löschen"
-#: builtin/stash.c:577
+#: builtin/stash.c:583
#, c-format
msgid "'%s' is not a stash reference"
msgstr "'%s' ist keine Stash-Referenz"
-#: builtin/stash.c:627 git-legacy-stash.sh:694
+#: builtin/stash.c:633 git-legacy-stash.sh:694
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:650 git-legacy-stash.sh:712
+#: builtin/stash.c:656 git-legacy-stash.sh:712
msgid "No branch name specified"
msgstr "Kein Branchname spezifiziert"
-#: builtin/stash.c:790 builtin/stash.c:827
+#: builtin/stash.c:796 builtin/stash.c:833
#, c-format
msgid "Cannot update %s with %s"
msgstr "Kann nicht %s mit %s aktualisieren."
-#: builtin/stash.c:808 builtin/stash.c:1461 builtin/stash.c:1497
+#: builtin/stash.c:814 builtin/stash.c:1470 builtin/stash.c:1506
msgid "stash message"
msgstr "Stash-Beschreibung"
-#: builtin/stash.c:818
+#: builtin/stash.c:824
msgid "\"git stash store\" requires one <commit> argument"
msgstr "\"git stash store\" erwartet ein Argument <Commit>"
-#: builtin/stash.c:1040 git-legacy-stash.sh:217
+#: builtin/stash.c:1046 git-legacy-stash.sh:217
msgid "No changes selected"
msgstr "Keine Änderungen ausgewählt"
-#: builtin/stash.c:1136 git-legacy-stash.sh:150
+#: builtin/stash.c:1145 git-legacy-stash.sh:150
msgid "You do not have the initial commit yet"
msgstr "Sie haben bisher noch keinen initialen Commit"
-#: builtin/stash.c:1163 git-legacy-stash.sh:165
+#: builtin/stash.c:1172 git-legacy-stash.sh:165
msgid "Cannot save the current index state"
msgstr "Kann den aktuellen Zustand des Index nicht speichern"
-#: builtin/stash.c:1172 git-legacy-stash.sh:180
+#: builtin/stash.c:1181 git-legacy-stash.sh:180
msgid "Cannot save the untracked files"
msgstr "Kann die unversionierten Dateien nicht speichern"
-#: builtin/stash.c:1183 builtin/stash.c:1192 git-legacy-stash.sh:200
+#: builtin/stash.c:1192 builtin/stash.c:1201 git-legacy-stash.sh:200
#: git-legacy-stash.sh:213
msgid "Cannot save the current worktree state"
msgstr "Kann den aktuellen Zustand des Arbeitsverzeichnisses nicht speichern"
-#: builtin/stash.c:1220 git-legacy-stash.sh:233
+#: builtin/stash.c:1229 git-legacy-stash.sh:233
msgid "Cannot record working tree state"
msgstr "Kann Zustand des Arbeitsverzeichnisses nicht aufzeichnen"
-#: builtin/stash.c:1269 git-legacy-stash.sh:337
+#: builtin/stash.c:1278 git-legacy-stash.sh:337
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:1285
+#: builtin/stash.c:1294
msgid "Did you forget to 'git add'?"
msgstr "Haben Sie vielleicht 'git add' vergessen?"
-#: builtin/stash.c:1300 git-legacy-stash.sh:345
+#: builtin/stash.c:1309 git-legacy-stash.sh:345
msgid "No local changes to save"
msgstr "Keine lokalen Änderungen zum Speichern"
-#: builtin/stash.c:1307 git-legacy-stash.sh:350
+#: builtin/stash.c:1316 git-legacy-stash.sh:350
msgid "Cannot initialize stash"
msgstr "Kann \"stash\" nicht initialisieren"
-#: builtin/stash.c:1322 git-legacy-stash.sh:354
+#: builtin/stash.c:1331 git-legacy-stash.sh:354
msgid "Cannot save the current status"
msgstr "Kann den aktuellen Status nicht speichern"
-#: builtin/stash.c:1327
+#: builtin/stash.c:1336
#, c-format
msgid "Saved working directory and index state %s"
msgstr "Arbeitsverzeichnis und Index-Status %s gespeichert."
-#: builtin/stash.c:1417 git-legacy-stash.sh:384
+#: builtin/stash.c:1426 git-legacy-stash.sh:384
msgid "Cannot remove worktree changes"
msgstr "Kann Änderungen im Arbeitsverzeichnis nicht löschen"
-#: builtin/stash.c:1452 builtin/stash.c:1488
+#: builtin/stash.c:1461 builtin/stash.c:1497
msgid "keep index"
msgstr "behalte Index"
-#: builtin/stash.c:1454 builtin/stash.c:1490
+#: builtin/stash.c:1463 builtin/stash.c:1499
msgid "stash in patch mode"
msgstr "Stash in Patch-Modus"
-#: builtin/stash.c:1455 builtin/stash.c:1491
+#: builtin/stash.c:1464 builtin/stash.c:1500
msgid "quiet mode"
msgstr "weniger Ausgaben"
-#: builtin/stash.c:1457 builtin/stash.c:1493
+#: builtin/stash.c:1466 builtin/stash.c:1502
msgid "include untracked files in stash"
msgstr "unversionierte Dateien in Stash einbeziehen"
-#: builtin/stash.c:1459 builtin/stash.c:1495
+#: builtin/stash.c:1468 builtin/stash.c:1504
msgid "include ignore files"
msgstr "ignorierte Dateien einbeziehen"
-#: builtin/stash.c:1555
+#: builtin/stash.c:1564
#, c-format
msgid "could not exec %s"
msgstr "Konnte 'exec %s' nicht ausführen."
@@ -20322,8 +20408,8 @@ msgid "don't print cloning progress"
msgstr "keine Fortschrittsanzeige beim Klonen"
#: builtin/submodule--helper.c:1877
-msgid "git submodule--helper update_clone [--prefix=<path>] [<path>...]"
-msgstr "git submodule--helper update_clone [--prefix=<Pfad>] [<Pfad>...]"
+msgid "git submodule--helper update-clone [--prefix=<path>] [<path>...]"
+msgstr "git submodule--helper update-clone [--prefix=<Pfad>] [<Pfad>...]"
#: builtin/submodule--helper.c:1890
msgid "bad value for update parameter"
@@ -20378,7 +20464,7 @@ msgstr ""
"Bitte stellen Sie sicher, dass sich die Datei .gitmodules im "
"Arbeitsverzeichnis befindet."
-#: builtin/submodule--helper.c:2235 git.c:434 git.c:684
+#: builtin/submodule--helper.c:2235 git.c:433 git.c:683
#, c-format
msgid "%s doesn't support --super-prefix"
msgstr "%s unterstützt kein --super-prefix"
@@ -20711,147 +20797,147 @@ msgstr " OK"
msgid "git update-index [<options>] [--] [<file>...]"
msgstr "git update-index [<Optionen>] [--] [<Datei>...]"
-#: builtin/update-index.c:971
+#: builtin/update-index.c:972
msgid "continue refresh even when index needs update"
msgstr ""
"Aktualisierung fortsetzen, auch wenn der Index aktualisiert werden muss"
-#: builtin/update-index.c:974
+#: builtin/update-index.c:975
msgid "refresh: ignore submodules"
msgstr "Aktualisierung: ignoriert Submodule"
-#: builtin/update-index.c:977
+#: builtin/update-index.c:978
msgid "do not ignore new files"
msgstr "keine neuen Dateien ignorieren"
-#: builtin/update-index.c:979
+#: builtin/update-index.c:980
msgid "let files replace directories and vice-versa"
msgstr "Dateien Verzeichnisse ersetzen lassen, und umgedreht"
-#: builtin/update-index.c:981
+#: builtin/update-index.c:982
msgid "notice files missing from worktree"
msgstr "fehlende Dateien im Arbeitsverzeichnis beachten"
-#: builtin/update-index.c:983
+#: builtin/update-index.c:984
msgid "refresh even if index contains unmerged entries"
msgstr ""
"aktualisieren, auch wenn der Index nicht zusammengeführte Einträge beinhaltet"
-#: builtin/update-index.c:986
+#: builtin/update-index.c:987
msgid "refresh stat information"
msgstr "Dateiinformationen aktualisieren"
-#: builtin/update-index.c:990
+#: builtin/update-index.c:991
msgid "like --refresh, but ignore assume-unchanged setting"
msgstr "wie --refresh, ignoriert aber \"assume-unchanged\" Einstellung"
-#: builtin/update-index.c:994
+#: builtin/update-index.c:995
msgid "<mode>,<object>,<path>"
msgstr "<Modus>,<Objekt>,<Pfad>"
-#: builtin/update-index.c:995
+#: builtin/update-index.c:996
msgid "add the specified entry to the index"
msgstr "den angegebenen Eintrag zum Commit vormerken"
-#: builtin/update-index.c:1005
+#: builtin/update-index.c:1006
msgid "mark files as \"not changing\""
msgstr "diese Datei immer als unverändert betrachten"
-#: builtin/update-index.c:1008
+#: builtin/update-index.c:1009
msgid "clear assumed-unchanged bit"
msgstr "\"assumed-unchanged\"-Bit löschen"
-#: builtin/update-index.c:1011
+#: builtin/update-index.c:1012
msgid "mark files as \"index-only\""
msgstr "Dateien als \"index-only\" markieren"
-#: builtin/update-index.c:1014
+#: builtin/update-index.c:1015
msgid "clear skip-worktree bit"
msgstr "\"skip-worktree\"-Bit löschen"
-#: builtin/update-index.c:1017
+#: builtin/update-index.c:1018
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:1019
+#: builtin/update-index.c:1020
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:1021
+#: builtin/update-index.c:1022
msgid "with --stdin: input lines are terminated by null bytes"
msgstr "mit --stdin: eingegebene Zeilen sind durch NUL-Bytes abgeschlossen"
-#: builtin/update-index.c:1023
+#: builtin/update-index.c:1024
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:1027
+#: builtin/update-index.c:1028
msgid "add entries from standard input to the index"
msgstr "Einträge von der Standard-Eingabe zum Commit vormerken"
-#: builtin/update-index.c:1031
+#: builtin/update-index.c:1032
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:1035
+#: builtin/update-index.c:1036
msgid "only update entries that differ from HEAD"
msgstr "nur Einträge aktualisieren, die unterschiedlich zu HEAD sind"
-#: builtin/update-index.c:1039
+#: builtin/update-index.c:1040
msgid "ignore files missing from worktree"
msgstr "fehlende Dateien im Arbeitsverzeichnis ignorieren"
-#: builtin/update-index.c:1042
+#: builtin/update-index.c:1043
msgid "report actions to standard output"
msgstr "die Aktionen in der Standard-Ausgabe ausgeben"
-#: builtin/update-index.c:1044
+#: builtin/update-index.c:1045
msgid "(for porcelains) forget saved unresolved conflicts"
msgstr "(für Fremdprogramme) keine gespeicherten, nicht aufgelöste Konflikte"
-#: builtin/update-index.c:1048
+#: builtin/update-index.c:1049
msgid "write index in this format"
msgstr "Index-Datei in diesem Format schreiben"
-#: builtin/update-index.c:1050
+#: builtin/update-index.c:1051
msgid "enable or disable split index"
msgstr "Splitting des Index aktivieren oder deaktivieren"
-#: builtin/update-index.c:1052
+#: builtin/update-index.c:1053
msgid "enable/disable untracked cache"
msgstr "Cache für unversionierte Dateien aktivieren oder deaktivieren"
-#: builtin/update-index.c:1054
+#: builtin/update-index.c:1055
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:1056
+#: builtin/update-index.c:1057
msgid "enable untracked cache without testing the filesystem"
msgstr ""
"Cache für unversionierte Dateien ohne Prüfung des Dateisystems aktivieren"
-#: builtin/update-index.c:1058
+#: builtin/update-index.c:1059
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:1060
+#: builtin/update-index.c:1061
msgid "enable or disable file system monitor"
msgstr "Dateisystem-Monitor aktivieren oder deaktivieren"
-#: builtin/update-index.c:1062
+#: builtin/update-index.c:1063
msgid "mark files as fsmonitor valid"
msgstr "Dateien als \"fsmonitor valid\" markieren"
-#: builtin/update-index.c:1065
+#: builtin/update-index.c:1066
msgid "clear fsmonitor valid bit"
msgstr "\"fsmonitor valid\"-Bit löschen"
-#: builtin/update-index.c:1168
+#: builtin/update-index.c:1169
msgid ""
"core.splitIndex is set to false; remove or change it, if you really want to "
"enable split index"
@@ -20859,7 +20945,7 @@ msgstr ""
"core.splitIndex ist auf 'false' gesetzt. Entfernen oder ändern Sie dies,\n"
"wenn sie wirklich das Splitting des Index aktivieren möchten."
-#: builtin/update-index.c:1177
+#: builtin/update-index.c:1178
msgid ""
"core.splitIndex is set to true; remove or change it, if you really want to "
"disable split index"
@@ -20867,7 +20953,7 @@ msgstr ""
"core.splitIndex ist auf 'true' gesetzt. Entfernen oder ändern Sie dies,\n"
"wenn Sie wirklich das Splitting des Index deaktivieren möchten."
-#: builtin/update-index.c:1188
+#: builtin/update-index.c:1190
msgid ""
"core.untrackedCache is set to true; remove or change it, if you really want "
"to disable the untracked cache"
@@ -20875,11 +20961,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:1192
+#: builtin/update-index.c:1194
msgid "Untracked cache disabled"
msgstr "Cache für unversionierte Dateien deaktiviert"
-#: builtin/update-index.c:1200
+#: builtin/update-index.c:1202
msgid ""
"core.untrackedCache is set to false; remove or change it, if you really want "
"to enable the untracked cache"
@@ -20888,23 +20974,23 @@ msgstr ""
"dies,\n"
"wenn sie wirklich den Cache für unversionierte Dateien aktivieren möchten."
-#: builtin/update-index.c:1204
+#: builtin/update-index.c:1206
#, c-format
msgid "Untracked cache enabled for '%s'"
msgstr "Cache für unversionierte Dateien für '%s' aktiviert"
-#: builtin/update-index.c:1212
+#: builtin/update-index.c:1214
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:1216
+#: builtin/update-index.c:1218
msgid "fsmonitor enabled"
msgstr "Dateisystem-Monitor aktiviert"
-#: builtin/update-index.c:1219
+#: builtin/update-index.c:1221
msgid ""
"core.fsmonitor is set; remove it if you really want to disable fsmonitor"
msgstr ""
@@ -20912,7 +20998,7 @@ msgstr ""
"Monitor\n"
"wirklich deaktivieren möchten."
-#: builtin/update-index.c:1223
+#: builtin/update-index.c:1225
msgid "fsmonitor disabled"
msgstr "Dateisystem-Monitor deaktiviert"
@@ -21007,55 +21093,55 @@ msgstr "git verify-tag [-v | --verbose] [--format=<Format>] <Tag>..."
msgid "print tag contents"
msgstr "Tag-Inhalte ausgeben"
-#: builtin/worktree.c:18
+#: builtin/worktree.c:17
msgid "git worktree add [<options>] <path> [<commit-ish>]"
msgstr "git worktree add [<Optionen>] <Pfad> [<Commit-Angabe>]"
-#: builtin/worktree.c:19
+#: builtin/worktree.c:18
msgid "git worktree list [<options>]"
msgstr "git worktree list [<Optionen>]"
-#: builtin/worktree.c:20
+#: builtin/worktree.c:19
msgid "git worktree lock [<options>] <path>"
msgstr "git worktree lock [<Optionen>] <Pfad>"
-#: builtin/worktree.c:21
+#: builtin/worktree.c:20
msgid "git worktree move <worktree> <new-path>"
msgstr "git worktree move <Arbeitsverzeichnis> <neuer-Pfad>"
-#: builtin/worktree.c:22
+#: builtin/worktree.c:21
msgid "git worktree prune [<options>]"
msgstr "git worktree prune [<Optionen>]"
-#: builtin/worktree.c:23
+#: builtin/worktree.c:22
msgid "git worktree remove [<options>] <worktree>"
msgstr "git worktree remove [<Optionen>] <Arbeitsverzeichnis>"
-#: builtin/worktree.c:24
+#: builtin/worktree.c:23
msgid "git worktree unlock <path>"
msgstr "git worktree unlock <Pfad>"
-#: builtin/worktree.c:61 builtin/worktree.c:899
+#: builtin/worktree.c:60 builtin/worktree.c:898
#, c-format
msgid "failed to delete '%s'"
msgstr "Fehler beim Löschen von '%s'"
-#: builtin/worktree.c:80
+#: builtin/worktree.c:79
#, c-format
msgid "Removing worktrees/%s: not a valid directory"
msgstr "Lösche worktrees/%s: kein gültiges Verzeichnis"
-#: builtin/worktree.c:86
+#: builtin/worktree.c:85
#, c-format
msgid "Removing worktrees/%s: gitdir file does not exist"
msgstr "Lösche worktrees/%s: gitdir-Datei existiert nicht"
-#: builtin/worktree.c:91 builtin/worktree.c:100
+#: builtin/worktree.c:90 builtin/worktree.c:99
#, c-format
msgid "Removing worktrees/%s: unable to read gitdir file (%s)"
msgstr "Lösche worktrees/%s: konnte gitdir-Datei (%s) nicht lesen"
-#: builtin/worktree.c:110
+#: builtin/worktree.c:109
#, c-format
msgid ""
"Removing worktrees/%s: short read (expected %<PRIuMAX> bytes, read "
@@ -21064,35 +21150,35 @@ msgstr ""
"Lösche worktrees/%s: read() zu kurz (%<PRIuMAX> Bytes erwartet, %<PRIuMAX> "
"gelesen)"
-#: builtin/worktree.c:118
+#: builtin/worktree.c:117
#, c-format
msgid "Removing worktrees/%s: invalid gitdir file"
msgstr "Lösche worktrees/%s: ungültige gitdir-Datei"
-#: builtin/worktree.c:127
+#: builtin/worktree.c:126
#, c-format
msgid "Removing worktrees/%s: gitdir file points to non-existent location"
msgstr "Lösche worktrees/%s: gitdir-Datei verweist auf nicht existierenden Ort"
-#: builtin/worktree.c:166
+#: builtin/worktree.c:165
msgid "report pruned working trees"
msgstr "entfernte Arbeitsverzeichnisse ausgeben"
-#: builtin/worktree.c:168
+#: builtin/worktree.c:167
msgid "expire working trees older than <time>"
msgstr "Arbeitsverzeichnisse älter als <Zeit> verfallen lassen"
-#: builtin/worktree.c:235
+#: builtin/worktree.c:234
#, c-format
msgid "'%s' already exists"
msgstr "'%s' existiert bereits"
-#: builtin/worktree.c:252
+#: builtin/worktree.c:251
#, c-format
msgid "unable to re-add worktree '%s'"
msgstr "Konnte Arbeitsverzeichnis '%s' nicht neu hinzufügen."
-#: builtin/worktree.c:257
+#: builtin/worktree.c:256
#, c-format
msgid ""
"'%s' is a missing but locked worktree;\n"
@@ -21102,7 +21188,7 @@ msgstr ""
"Benutzen Sie 'add -f -f' zum Ãœberschrieben, oder 'unlock' und 'prune'\n"
"oder 'remove' zum Löschen."
-#: builtin/worktree.c:259
+#: builtin/worktree.c:258
#, c-format
msgid ""
"'%s' is a missing but already registered worktree;\n"
@@ -21112,129 +21198,129 @@ msgstr ""
"Benutzen Sie 'add -f' zum Ãœberschreiben, oder 'prune' oder 'remove' zum\n"
"Löschen."
-#: builtin/worktree.c:309
+#: builtin/worktree.c:308
#, c-format
msgid "could not create directory of '%s'"
msgstr "Konnte Verzeichnis '%s' nicht erstellen."
-#: builtin/worktree.c:440 builtin/worktree.c:446
+#: builtin/worktree.c:439 builtin/worktree.c:445
#, c-format
msgid "Preparing worktree (new branch '%s')"
msgstr "Bereite Arbeitsverzeichnis vor (neuer Branch '%s')"
-#: builtin/worktree.c:442
+#: builtin/worktree.c:441
#, 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:451
+#: builtin/worktree.c:450
#, c-format
msgid "Preparing worktree (checking out '%s')"
msgstr "Bereite Arbeitsverzeichnis vor (checke '%s' aus)"
-#: builtin/worktree.c:457
+#: builtin/worktree.c:456
#, c-format
msgid "Preparing worktree (detached HEAD %s)"
msgstr "Bereite Arbeitsverzeichnis vor (losgelöster HEAD %s)"
-#: builtin/worktree.c:498
+#: builtin/worktree.c:497
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:501
+#: builtin/worktree.c:500
msgid "create a new branch"
msgstr "neuen Branch erstellen"
-#: builtin/worktree.c:503
+#: builtin/worktree.c:502
msgid "create or reset a branch"
msgstr "Branch erstellen oder umsetzen"
-#: builtin/worktree.c:505
+#: builtin/worktree.c:504
msgid "populate the new working tree"
msgstr "das neue Arbeitsverzeichnis auschecken"
-#: builtin/worktree.c:506
+#: builtin/worktree.c:505
msgid "keep the new working tree locked"
msgstr "das neue Arbeitsverzeichnis gesperrt lassen"
-#: builtin/worktree.c:509
+#: builtin/worktree.c:508
msgid "set up tracking mode (see git-branch(1))"
msgstr "Modus zum Folgen von Branches einstellen (siehe git-branch(1))"
-#: builtin/worktree.c:512
+#: builtin/worktree.c:511
msgid "try to match the new branch name with a remote-tracking branch"
msgstr ""
"versuchen, eine Ãœbereinstimmung des Branch-Namens mit einem\n"
"Remote-Tracking-Branch herzustellen"
-#: builtin/worktree.c:520
+#: builtin/worktree.c:519
msgid "-b, -B, and --detach are mutually exclusive"
msgstr "-b, -B und --detach schließen sich gegenseitig aus"
-#: builtin/worktree.c:581
+#: builtin/worktree.c:580
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:681
+#: builtin/worktree.c:680
msgid "reason for locking"
msgstr "Sperrgrund"
-#: builtin/worktree.c:693 builtin/worktree.c:726 builtin/worktree.c:800
-#: builtin/worktree.c:927
+#: builtin/worktree.c:692 builtin/worktree.c:725 builtin/worktree.c:799
+#: builtin/worktree.c:926
#, c-format
msgid "'%s' is not a working tree"
msgstr "'%s' ist kein Arbeitsverzeichnis"
-#: builtin/worktree.c:695 builtin/worktree.c:728
+#: builtin/worktree.c:694 builtin/worktree.c:727
msgid "The main working tree cannot be locked or unlocked"
msgstr "Das Hauptarbeitsverzeichnis kann nicht gesperrt oder entsperrt werden."
-#: builtin/worktree.c:700
+#: builtin/worktree.c:699
#, c-format
msgid "'%s' is already locked, reason: %s"
msgstr "'%s' ist bereits gesperrt, Grund: %s"
-#: builtin/worktree.c:702
+#: builtin/worktree.c:701
#, c-format
msgid "'%s' is already locked"
msgstr "'%s' ist bereits gesperrt"
-#: builtin/worktree.c:730
+#: builtin/worktree.c:729
#, c-format
msgid "'%s' is not locked"
msgstr "'%s' ist nicht gesperrt"
-#: builtin/worktree.c:771
+#: builtin/worktree.c:770
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:779
+#: builtin/worktree.c:778
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:802 builtin/worktree.c:929
+#: builtin/worktree.c:801 builtin/worktree.c:928
#, c-format
msgid "'%s' is a main working tree"
msgstr "'%s' ist ein Hauptarbeitsverzeichnis"
-#: builtin/worktree.c:807
+#: builtin/worktree.c:806
#, c-format
msgid "could not figure out destination name from '%s'"
msgstr "Konnte Zielname aus '%s' nicht bestimmen."
-#: builtin/worktree.c:813
+#: builtin/worktree.c:812
#, c-format
msgid "target '%s' already exists"
msgstr "Ziel '%s' existiert bereits."
-#: builtin/worktree.c:821
+#: builtin/worktree.c:820
#, c-format
msgid ""
"cannot move a locked working tree, lock reason: %s\n"
@@ -21244,7 +21330,7 @@ msgstr ""
"Benutzen Sie 'move -f -f' zum Ãœberschreiben oder entsperren Sie zuerst\n"
"das Arbeitsverzeichnis."
-#: builtin/worktree.c:823
+#: builtin/worktree.c:822
msgid ""
"cannot move a locked working tree;\n"
"use 'move -f -f' to override or unlock first"
@@ -21253,38 +21339,40 @@ msgstr ""
"Benutzen Sie 'move -f -f' zum Ãœberschreiben oder entsperren Sie zuerst\n"
"das Arbeitsverzeichnis."
-#: builtin/worktree.c:826
+#: builtin/worktree.c:825
#, c-format
msgid "validation failed, cannot move working tree: %s"
msgstr "Validierung fehlgeschlagen, kann Arbeitszeichnis nicht verschieben: %s"
-#: builtin/worktree.c:831
+#: builtin/worktree.c:830
#, c-format
msgid "failed to move '%s' to '%s'"
msgstr "Fehler beim Verschieben von '%s' nach '%s'"
-#: builtin/worktree.c:879
+#: builtin/worktree.c:878
#, c-format
msgid "failed to run 'git status' on '%s'"
msgstr "Fehler beim Ausführen von 'git status' auf '%s'"
-#: builtin/worktree.c:883
+#: builtin/worktree.c:882
#, c-format
-msgid "'%s' is dirty, use --force to delete it"
-msgstr "'%s' ist verändert, benutzen Sie --force zum Löschen"
+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:888
+#: builtin/worktree.c:887
#, 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:911
+#: builtin/worktree.c:910
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:934
+#: builtin/worktree.c:933
#, c-format
msgid ""
"cannot remove a locked working tree, lock reason: %s\n"
@@ -21294,7 +21382,7 @@ msgstr ""
"Benutzen Sie 'remove -f -f' zum Ãœberschreiben oder entsperren Sie zuerst\n"
"das Arbeitsverzeichnis."
-#: builtin/worktree.c:936
+#: builtin/worktree.c:935
msgid ""
"cannot remove a locked working tree;\n"
"use 'remove -f -f' to override or unlock first"
@@ -21303,7 +21391,7 @@ msgstr ""
"Benutzen Sie 'remove -f -f' zum Ãœberschreiben oder entsperren Sie zuerst\n"
"das Arbeitsverzeichnis."
-#: builtin/worktree.c:939
+#: builtin/worktree.c:938
#, c-format
msgid "validation failed, cannot remove working tree: %s"
msgstr "Validierung fehlgeschlagen, kann Arbeitsverzeichnis nicht löschen: %s"
@@ -21324,6 +21412,16 @@ msgstr "das Tree-Objekt für ein Unterverzeichnis <Präfix> schreiben"
msgid "only useful for debugging"
msgstr "nur nützlich für Fehlersuche"
+#: fast-import.c:3118
+#, c-format
+msgid "Expected 'mark' command, got %s"
+msgstr "'mark' Befehl erwartet, '%s' bekommen"
+
+#: fast-import.c:3123
+#, c-format
+msgid "Expected 'to' command, got %s"
+msgstr "'to' Befehl erwartet, '%s' bekommen"
+
#: credential-cache--daemon.c:223
#, c-format
msgid ""
@@ -21439,39 +21537,39 @@ msgstr ""
"Alias '%s' ändert Umgebungsvariablen.\n"
"Sie können '!git' im Alias benutzen, um dies zu tun."
-#: git.c:377
+#: git.c:376
#, c-format
msgid "empty alias for %s"
msgstr "leerer Alias für %s"
-#: git.c:380
+#: git.c:379
#, c-format
msgid "recursive alias: %s"
msgstr "rekursiver Alias: %s"
-#: git.c:460
+#: git.c:459
msgid "write failure on standard output"
msgstr "Fehler beim Schreiben in die Standard-Ausgabe."
-#: git.c:462
+#: git.c:461
msgid "unknown write failure on standard output"
msgstr "Unbekannter Fehler beim Schreiben in die Standard-Ausgabe."
-#: git.c:464
+#: git.c:463
msgid "close failed on standard output"
msgstr "Fehler beim Schließen der Standard-Ausgabe."
-#: git.c:793
+#: git.c:792
#, 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:843
+#: git.c:842
#, c-format
msgid "cannot handle %s as a builtin"
msgstr "Kann %s nicht als eingebauten Befehl behandeln."
-#: git.c:856
+#: git.c:855
#, c-format
msgid ""
"usage: %s\n"
@@ -21480,12 +21578,12 @@ msgstr ""
"Verwendung: %s\n"
"\n"
-#: git.c:876
+#: git.c:875
#, 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:888
+#: git.c:887
#, c-format
msgid "failed to run command '%s': %s\n"
msgstr "Fehler beim Ausführen von Befehl '%s': %s\n"
@@ -21505,31 +21603,31 @@ msgstr ""
"Das Anheften des öffentlichen Schlüssels wird mit cURL < 7.44.0\n"
"nicht unterstützt."
-#: http.c:876
+#: http.c:878
msgid "CURLSSLOPT_NO_REVOKE not supported with cURL < 7.44.0"
msgstr "CURLSSLOPT_NO_REVOKE wird mit cURL < 7.44.0 nicht unterstützt."
-#: http.c:949
+#: http.c:951
msgid "Protocol restrictions not supported with cURL < 7.19.4"
msgstr "Protokollbeschränkungen werden mit cURL < 7.19.4 nicht unterstützt."
-#: http.c:1085
+#: http.c:1088
#, c-format
msgid "Unsupported SSL backend '%s'. Supported SSL backends:"
msgstr "Nicht unterstütztes SSL-Backend '%s'. Unterstützte SSL-Backends:"
-#: http.c:1092
+#: http.c:1095
#, c-format
msgid "Could not set SSL backend to '%s': cURL was built without SSL backends"
msgstr ""
"Konnte SSL-Backend nicht zu '%s' setzen: cURL wurde ohne SSL-Backends gebaut."
-#: http.c:1096
+#: http.c:1099
#, c-format
msgid "Could not set SSL backend to '%s': already set"
msgstr "Konnte SSL-Backend nicht zu '%s' setzen: bereits gesetzt"
-#: http.c:1965
+#: http.c:1968
#, c-format
msgid ""
"unable to update url base from redirection:\n"
@@ -21540,130 +21638,130 @@ msgstr ""
" gefragt nach: %s\n"
" umgeleitet: %s"
-#: remote-curl.c:157
+#: remote-curl.c:166
#, c-format
msgid "invalid quoting in push-option value: '%s'"
msgstr "Ungültiges Quoting beim \"push-option\"-Wert: '%s'"
-#: remote-curl.c:254
+#: remote-curl.c:263
#, 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:355
+#: remote-curl.c:364
msgid "invalid server response; expected service, got flush packet"
msgstr "Ungültige Antwort des Servers. Service erwartet, Flush-Paket bekommen"
-#: remote-curl.c:386
+#: remote-curl.c:395
#, c-format
msgid "invalid server response; got '%s'"
msgstr "Ungültige Serverantwort; '%s' bekommen"
-#: remote-curl.c:446
+#: remote-curl.c:455
#, c-format
msgid "repository '%s' not found"
msgstr "Repository '%s' nicht gefunden."
-#: remote-curl.c:450
+#: remote-curl.c:459
#, c-format
msgid "Authentication failed for '%s'"
msgstr "Authentifizierung fehlgeschlagen für '%s'"
-#: remote-curl.c:454
+#: remote-curl.c:463
#, c-format
msgid "unable to access '%s': %s"
msgstr "konnte nicht auf '%s' zugreifen: %s"
-#: remote-curl.c:460
+#: remote-curl.c:469
#, c-format
msgid "redirecting to %s"
msgstr "Leite nach %s um"
-#: remote-curl.c:584
+#: remote-curl.c:593
msgid "shouldn't have EOF when not gentle on EOF"
msgstr "sollte kein EOF haben, wenn nicht behutsam mit EOF"
-#: remote-curl.c:664
+#: remote-curl.c:673
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:724
+#: remote-curl.c:733
#, c-format
msgid "RPC failed; %s"
msgstr "RPC fehlgeschlagen; %s"
-#: remote-curl.c:764
+#: remote-curl.c:773
msgid "cannot handle pushes this big"
msgstr "Kann solche großen Übertragungen nicht verarbeiten."
-#: remote-curl.c:879
+#: remote-curl.c:888
#, c-format
msgid "cannot deflate request; zlib deflate error %d"
msgstr "Kann Request nicht komprimieren; \"zlib deflate\"-Fehler %d"
-#: remote-curl.c:883
+#: remote-curl.c:892
#, c-format
msgid "cannot deflate request; zlib end error %d"
msgstr "Kann Request nicht komprimieren; \"zlib end\"-Fehler %d"
-#: remote-curl.c:1014
+#: remote-curl.c:1023
msgid "dumb http transport does not support shallow capabilities"
msgstr "Dumb HTTP-Transport unterstützt keine shallow-Funktionen"
-#: remote-curl.c:1028
+#: remote-curl.c:1037
msgid "fetch failed."
msgstr "\"fetch\" fehlgeschlagen."
-#: remote-curl.c:1076
+#: remote-curl.c:1085
msgid "cannot fetch by sha1 over smart http"
msgstr "Kann SHA-1 nicht über Smart-HTTP anfordern"
-#: remote-curl.c:1120 remote-curl.c:1126
+#: remote-curl.c:1129 remote-curl.c:1135
#, c-format
msgid "protocol error: expected sha/ref, got '%s'"
msgstr "Protokollfehler: SHA-1/Referenz erwartet, '%s' bekommen"
-#: remote-curl.c:1138 remote-curl.c:1252
+#: remote-curl.c:1147 remote-curl.c:1261
#, c-format
msgid "http transport does not support %s"
msgstr "HTTP-Transport unterstützt nicht %s"
-#: remote-curl.c:1174
+#: remote-curl.c:1183
msgid "git-http-push failed"
msgstr "\"git-http-push\" fehlgeschlagen"
-#: remote-curl.c:1360
+#: remote-curl.c:1367
msgid "remote-curl: usage: git remote-curl <remote> [<url>]"
msgstr "remote-curl: Verwendung: git remote-curl <Remote-Repository> [<URL>]"
-#: remote-curl.c:1392
+#: remote-curl.c:1399
msgid "remote-curl: error reading command stream from git"
msgstr "remote-curl: Fehler beim Lesen des Kommando-Streams von Git"
-#: remote-curl.c:1399
+#: remote-curl.c:1406
msgid "remote-curl: fetch attempted without a local repo"
msgstr "remote-curl: \"fetch\" ohne lokales Repository versucht"
-#: remote-curl.c:1439
+#: remote-curl.c:1446
#, c-format
msgid "remote-curl: unknown command '%s' from git"
msgstr "remote-curl: Unbekannter Befehl '%s' von Git"
-#: list-objects-filter-options.h:61
+#: list-objects-filter-options.h:85
msgid "args"
msgstr "Argumente"
-#: list-objects-filter-options.h:62
+#: list-objects-filter-options.h:86
msgid "object filtering"
msgstr "Filtern nach Objekten"
-#: parse-options.h:170
+#: parse-options.h:179
msgid "expiry-date"
msgstr "Verfallsdatum"
-#: parse-options.h:184
+#: parse-options.h:193
msgid "no-op (backward compatibility)"
msgstr "Kein Effekt (Rückwärtskompatibilität)"
@@ -24162,6 +24260,44 @@ msgstr "Lasse %s mit Backup-Suffix '%s' aus.\n"
msgid "Do you really want to send %s? [y|N]: "
msgstr "Wollen Sie %s wirklich versenden? [y|N]: "
+#~ msgid "unknown core.untrackedCache value '%s'; using 'keep' default value"
+#~ msgstr ""
+#~ "Unbekannter Wert '%s' in core.untrackedCache; benutze Standardwert 'keep'"
+
+#~ msgid "cannot change partial clone promisor remote"
+#~ msgstr "Kann Remote-Repository für partielles Klonen nicht ändern."
+
+#~ msgid "error building trees"
+#~ msgstr "Fehler beim Erstellen der \"Tree\"-Objekte"
+
+#~ msgid "invalid date format '%s' in '%s'"
+#~ msgstr "Ungültiges Datumsformat '%s' in '%s'"
+
+#~ msgid "writing root commit"
+#~ msgstr "Root-Commit schreiben"
+
+#~ msgid "staged changes in the following files may be lost: %s"
+#~ msgstr ""
+#~ "Zum Commit vorgemerkte Änderungen in den folgenden Dateien gehen "
+#~ "eventuell verloren: %s"
+
+#~ msgid ""
+#~ "--filter can only be used with the remote configured in extensions."
+#~ "partialClone"
+#~ msgstr ""
+#~ "--filter kann nur mit den Remote-Repositories verwendet werden,\n"
+#~ "die in core.partialClone konfiguriert sind."
+
+#~ msgid "verify commit-msg hook"
+#~ msgstr "commit-msg Hook überprüfen"
+
+#~ msgid "cannot combine '--rebase-merges' with '--strategy-option'"
+#~ msgstr ""
+#~ "'--rebase-merges' kann nicht mit '--strategy-option' kombiniert werden."
+
+#~ msgid "invalid sparse value '%s'"
+#~ msgstr "Ungültiger \"sparse\"-Wert '%s'."
+
#~ msgid ""
#~ "Fetch normally indicates which branches had a forced update, but that "
#~ "check has been disabled."
diff --git a/po/es.po b/po/es.po
index 87c77ff..a0063f0 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Git\n"
"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2019-08-10 20:12+0800\n"
-"PO-Revision-Date: 2019-08-10 12:55-0500\n"
+"POT-Creation-Date: 2019-10-28 13:19+0800\n"
+"PO-Revision-Date: 2019-10-28 19:20-0500\n"
"Last-Translator: christopher.diaz.riv@gmail.com\n"
"Language-Team: CodeLabora <codelabora@gmail.com>\n"
"Language: es\n"
@@ -61,7 +61,7 @@ msgstr ""
msgid "Exiting because of an unresolved conflict."
msgstr "Saliendo porque existe un conflicto sin resolver."
-#: advice.c:193 builtin/merge.c:1327
+#: advice.c:193 builtin/merge.c:1332
msgid "You have not concluded your merge (MERGE_HEAD exists)."
msgstr "No has concluido tu fusión (MERGE_HEAD existe)."
@@ -206,17 +206,7 @@ msgstr "modo inválido en la línea %d: %s"
msgid "inconsistent header lines %d and %d"
msgstr "header inconsistente en las líneas %d y %d"
-#: apply.c:1460
-#, c-format
-msgid "recount: unexpected line: %.*s"
-msgstr "recount: línea inesperada: %.*s"
-
-#: apply.c:1529
-#, c-format
-msgid "patch fragment without header at line %d: %.*s"
-msgstr "fragmento de parche sin header en la línea %d: %.*s"
-
-#: apply.c:1551
+#: apply.c:1372
#, c-format
msgid ""
"git diff header lacks filename information when removing %d leading pathname "
@@ -231,83 +221,93 @@ msgstr[1] ""
"los headers de git diff carecen de información de los nombres de los "
"archivos %d cuando los eliminan de la ruta principal componentes (línea %d)"
-#: apply.c:1564
+#: apply.c:1385
#, c-format
msgid "git diff header lacks filename information (line %d)"
msgstr ""
"el header de git diff carece de información del nombre del archivo (línea %d)"
-#: apply.c:1752
+#: apply.c:1481
+#, c-format
+msgid "recount: unexpected line: %.*s"
+msgstr "recount: línea inesperada: %.*s"
+
+#: apply.c:1550
+#, c-format
+msgid "patch fragment without header at line %d: %.*s"
+msgstr "fragmento de parche sin header en la línea %d: %.*s"
+
+#: apply.c:1753
msgid "new file depends on old contents"
msgstr "el nuevo archivo depende de contenidos viejos"
-#: apply.c:1754
+#: apply.c:1755
msgid "deleted file still has contents"
msgstr "el archivo eliminado todavía tiene contenido"
-#: apply.c:1788
+#: apply.c:1789
#, c-format
msgid "corrupt patch at line %d"
msgstr "parche corrupto en la línea %d"
-#: apply.c:1825
+#: apply.c:1826
#, c-format
msgid "new file %s depends on old contents"
msgstr "nuevo archivo %s depende en contenidos viejos"
-#: apply.c:1827
+#: apply.c:1828
#, c-format
msgid "deleted file %s still has contents"
msgstr "el archivo borrado %s todavía tiene contenido"
-#: apply.c:1830
+#: apply.c:1831
#, c-format
msgid "** warning: file %s becomes empty but is not deleted"
msgstr "** peligro: el archivo %s está vacío pero no es borrado"
-#: apply.c:1977
+#: apply.c:1978
#, c-format
msgid "corrupt binary patch at line %d: %.*s"
msgstr "parche binario corrupto en la línea %d: %.*s"
-#: apply.c:2014
+#: apply.c:2015
#, c-format
msgid "unrecognized binary patch at line %d"
msgstr "parche binario no reconocido en la línea %d"
-#: apply.c:2176
+#: apply.c:2177
#, c-format
msgid "patch with only garbage at line %d"
msgstr "parche que solo contiene basura en la línea %d"
-#: apply.c:2262
+#: apply.c:2263
#, c-format
msgid "unable to read symlink %s"
msgstr "no es posible leer el enlace simbólico %s"
-#: apply.c:2266
+#: apply.c:2267
#, c-format
msgid "unable to open or read %s"
msgstr "no es posible abrir o leer %s"
-#: apply.c:2925
+#: apply.c:2926
#, c-format
msgid "invalid start of line: '%c'"
msgstr "comienzo inválido de línea: '%c'"
-#: apply.c:3046
+#: apply.c:3047
#, c-format
msgid "Hunk #%d succeeded at %d (offset %d line)."
msgid_plural "Hunk #%d succeeded at %d (offset %d lines)."
msgstr[0] "Hunk #%d tuvo éxito en %d (%d línea compensada)."
msgstr[1] "Hunk #%d tuvo éxito en %d (%d líneas compensadas)."
-#: apply.c:3058
+#: apply.c:3059
#, c-format
msgid "Context reduced to (%ld/%ld) to apply fragment at %d"
msgstr "Contexto reducido a (%ld/%ld) para aplicar el fragmento en %d"
-#: apply.c:3064
+#: apply.c:3065
#, c-format
msgid ""
"while searching for:\n"
@@ -316,23 +316,23 @@ msgstr ""
"mientras se busca:\n"
"%.*s"
-#: apply.c:3086
+#: apply.c:3087
#, c-format
msgid "missing binary patch data for '%s'"
msgstr "data perdida en parche binario para '%s'"
-#: apply.c:3094
+#: apply.c:3095
#, c-format
msgid "cannot reverse-apply a binary patch without the reverse hunk to '%s'"
msgstr ""
"no se puede revertir-aplicar un parche binario sin el hunk revertido a '%s'"
-#: apply.c:3141
+#: apply.c:3142
#, c-format
msgid "cannot apply binary patch to '%s' without full index line"
msgstr "no se puede aplicar el parche binario a '%s' sin un índice completo"
-#: apply.c:3151
+#: apply.c:3152
#, c-format
msgid ""
"the patch applies to '%s' (%s), which does not match the current contents."
@@ -340,289 +340,289 @@ msgstr ""
"el parche aplica a '%s' (%s), lo cual no concuerda con los contenidos "
"actuales."
-#: apply.c:3159
+#: apply.c:3160
#, c-format
msgid "the patch applies to an empty '%s' but it is not empty"
msgstr "el parche aplica a un '%s' vacío, pero este no lo esta"
-#: apply.c:3177
+#: apply.c:3178
#, c-format
msgid "the necessary postimage %s for '%s' cannot be read"
msgstr "la postimagen necesaria %s para '%s' no se puede leer"
-#: apply.c:3190
+#: apply.c:3191
#, c-format
msgid "binary patch does not apply to '%s'"
msgstr "el parche binario no aplica para '%s'"
-#: apply.c:3196
+#: apply.c:3197
#, c-format
msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)"
msgstr ""
"el parche binario para '%s' crea un resultado incorrecto (saliendo %s, se "
"obtuvo %s)"
-#: apply.c:3217
+#: apply.c:3218
#, c-format
msgid "patch failed: %s:%ld"
msgstr "el parche falló: %s:%ld"
-#: apply.c:3340
+#: apply.c:3341
#, c-format
msgid "cannot checkout %s"
msgstr "no se puede hacer checkout a %s"
-#: apply.c:3392 apply.c:3403 apply.c:3449 midx.c:62 setup.c:279
+#: apply.c:3393 apply.c:3404 apply.c:3450 midx.c:61 setup.c:280
#, c-format
msgid "failed to read %s"
msgstr "no se pudo leer %s"
-#: apply.c:3400
+#: apply.c:3401
#, c-format
msgid "reading from '%s' beyond a symbolic link"
msgstr "leyendo de '%s' tras un enlace simbólico"
-#: apply.c:3429 apply.c:3672
+#: apply.c:3430 apply.c:3673
#, c-format
msgid "path %s has been renamed/deleted"
msgstr "la ruta %s ha sido renombrada/suprimida"
-#: apply.c:3515 apply.c:3687
+#: apply.c:3516 apply.c:3688
#, c-format
msgid "%s: does not exist in index"
msgstr "%s: no existe en el índice"
-#: apply.c:3524 apply.c:3695
+#: apply.c:3525 apply.c:3696
#, c-format
msgid "%s: does not match index"
msgstr "%s: no concuerda con el índice"
-#: apply.c:3559
+#: apply.c:3560
msgid "repository lacks the necessary blob to fall back on 3-way merge."
msgstr ""
"el repositorio carece del blob necesario para regresar en un merge de tres-"
"vías."
-#: apply.c:3562
+#: apply.c:3563
#, c-format
msgid "Falling back to three-way merge...\n"
msgstr "Retrocediendo en un merge de tres-vías...\n"
-#: apply.c:3578 apply.c:3582
+#: apply.c:3579 apply.c:3583
#, c-format
msgid "cannot read the current contents of '%s'"
msgstr "no se pueden leer los contenidos actuales de '%s'"
-#: apply.c:3594
+#: apply.c:3595
#, c-format
msgid "Failed to fall back on three-way merge...\n"
msgstr "Falló el merge en retroceso de tres-vías...\n"
-#: apply.c:3608
+#: apply.c:3609
#, c-format
msgid "Applied patch to '%s' with conflicts.\n"
msgstr "Parche aplicado a '%s' con conflictos.\n"
-#: apply.c:3613
+#: apply.c:3614
#, c-format
msgid "Applied patch to '%s' cleanly.\n"
msgstr "Parche aplicado a '%s' limpiamente\n"
-#: apply.c:3639
+#: apply.c:3640
msgid "removal patch leaves file contents"
-msgstr "parche de remoción deja contenidos en el archivo"
+msgstr "parche de eliminación deja contenidos en el archivo"
-#: apply.c:3712
+#: apply.c:3713
#, c-format
msgid "%s: wrong type"
msgstr "%s: tipo incorrecto"
-#: apply.c:3714
+#: apply.c:3715
#, c-format
msgid "%s has type %o, expected %o"
msgstr "%s tiene tipo %o, se esperaba %o"
-#: apply.c:3865 apply.c:3867 read-cache.c:830 read-cache.c:856
+#: apply.c:3866 apply.c:3868 read-cache.c:830 read-cache.c:856
#: read-cache.c:1309
#, c-format
msgid "invalid path '%s'"
msgstr "ruta inválida '%s'"
-#: apply.c:3923
+#: apply.c:3924
#, c-format
msgid "%s: already exists in index"
msgstr "%s: ya existe en el índice"
-#: apply.c:3926
+#: apply.c:3927
#, c-format
msgid "%s: already exists in working directory"
msgstr "%s: ya existe en el directorio de trabajo"
-#: apply.c:3946
+#: apply.c:3947
#, c-format
msgid "new mode (%o) of %s does not match old mode (%o)"
msgstr "nuevo modo (%o) de %s no concuerda con el viejo modo (%o)"
-#: apply.c:3951
+#: apply.c:3952
#, c-format
msgid "new mode (%o) of %s does not match old mode (%o) of %s"
msgstr "nuevo modo (%o) de %s no concuerda con el viejo modo (%o) de %s"
-#: apply.c:3971
+#: apply.c:3972
#, c-format
msgid "affected file '%s' is beyond a symbolic link"
msgstr "archivo afectado '%s' está tras un enlace simbólico"
-#: apply.c:3975
+#: apply.c:3976
#, c-format
msgid "%s: patch does not apply"
msgstr "%s: el parche no aplica"
-#: apply.c:3990
+#: apply.c:3991
#, c-format
msgid "Checking patch %s..."
msgstr "Revisando el parche %s..."
-#: apply.c:4082
+#: apply.c:4083
#, c-format
msgid "sha1 information is lacking or useless for submodule %s"
msgstr "falta información del sha1 o es inútil para el submódulo %s"
-#: apply.c:4089
+#: apply.c:4090
#, c-format
msgid "mode change for %s, which is not in current HEAD"
msgstr "modo cambiado para %s, el cual no se encuentra en el HEAD actual"
-#: apply.c:4092
+#: apply.c:4093
#, c-format
msgid "sha1 information is lacking or useless (%s)."
msgstr "falta información sha1 o es inútil (%s)."
-#: apply.c:4097 builtin/checkout.c:278 builtin/reset.c:143
+#: apply.c:4098 builtin/checkout.c:279 builtin/reset.c:143
#, c-format
msgid "make_cache_entry failed for path '%s'"
msgstr "make_cache_entry falló para la ruta '%s'"
-#: apply.c:4101
+#: apply.c:4102
#, c-format
msgid "could not add %s to temporary index"
msgstr "no se pudo añadir %s al índice temporal"
-#: apply.c:4111
+#: apply.c:4112
#, c-format
msgid "could not write temporary index to %s"
msgstr "no se pudo escribir un índice temporal para %s"
-#: apply.c:4249
+#: apply.c:4250
#, c-format
msgid "unable to remove %s from index"
msgstr "no se puede eliminar %s del índice"
-#: apply.c:4283
+#: apply.c:4284
#, c-format
msgid "corrupt patch for submodule %s"
msgstr "parche corrupto para el submódulo %s"
-#: apply.c:4289
+#: apply.c:4290
#, c-format
msgid "unable to stat newly created file '%s'"
msgstr "no es posible establecer el archivo recién creado '%s'"
-#: apply.c:4297
+#: apply.c:4298
#, c-format
msgid "unable to create backing store for newly created file %s"
msgstr ""
"no es posible crear una copia de seguridad para el archivo recién creado %s"
-#: apply.c:4303 apply.c:4448
+#: apply.c:4304 apply.c:4449
#, c-format
msgid "unable to add cache entry for %s"
msgstr "no es posible agregar una entrada en el cache para %s"
-#: apply.c:4346
+#: apply.c:4347
#, c-format
msgid "failed to write to '%s'"
msgstr "falló escribir para '%s'"
-#: apply.c:4350
+#: apply.c:4351
#, c-format
msgid "closing file '%s'"
msgstr "cerrando archivo '%s'"
-#: apply.c:4420
+#: apply.c:4421
#, c-format
msgid "unable to write file '%s' mode %o"
msgstr "no es posible escribir el archivo '%s' modo %o"
-#: apply.c:4518
+#: apply.c:4519
#, c-format
msgid "Applied patch %s cleanly."
msgstr "Parche %s aplicado limpiamente."
-#: apply.c:4526
+#: apply.c:4527
msgid "internal error"
msgstr "error interno"
-#: apply.c:4529
+#: apply.c:4530
#, c-format
msgid "Applying patch %%s with %d reject..."
msgid_plural "Applying patch %%s with %d rejects..."
msgstr[0] "Aplicando parche %%s con %d rechazo..."
msgstr[1] "Aplicando parche %%s con %d rechazos..."
-#: apply.c:4540
+#: apply.c:4541
#, c-format
msgid "truncating .rej filename to %.*s.rej"
msgstr "truncando el nombre de archivo .rej a %.*s.rej"
-#: apply.c:4548 builtin/fetch.c:878 builtin/fetch.c:1168
+#: apply.c:4549 builtin/fetch.c:898 builtin/fetch.c:1194
#, c-format
msgid "cannot open %s"
msgstr "no se puede abrir %s"
-#: apply.c:4562
+#: apply.c:4563
#, c-format
msgid "Hunk #%d applied cleanly."
msgstr "Hunk #%d aplicado limpiamente."
-#: apply.c:4566
+#: apply.c:4567
#, c-format
msgid "Rejected hunk #%d."
msgstr "Hunk #%d rechazado."
-#: apply.c:4676
+#: apply.c:4686
#, c-format
msgid "Skipped patch '%s'."
msgstr "Parche '%s' saltado."
-#: apply.c:4684
+#: apply.c:4694
msgid "unrecognized input"
msgstr "input no reconocido"
-#: apply.c:4704
+#: apply.c:4714
msgid "unable to read index file"
msgstr "no es posible leer el archivo índice"
-#: apply.c:4859
+#: apply.c:4871
#, c-format
msgid "can't open patch '%s': %s"
msgstr "no se puede abrir el parche '%s': %s"
-#: apply.c:4886
+#: apply.c:4898
#, c-format
msgid "squelched %d whitespace error"
msgid_plural "squelched %d whitespace errors"
msgstr[0] "%d error de espacios en blanco aplastado"
msgstr[1] "%d errores de espacios en blanco aplastados"
-#: apply.c:4892 apply.c:4907
+#: apply.c:4904 apply.c:4919
#, c-format
msgid "%d line adds whitespace errors."
msgid_plural "%d lines add whitespace errors."
msgstr[0] "%d línea agrega errores de espacios en blanco."
msgstr[1] "%d líneas agregan errores de espacios en blanco."
-#: apply.c:4900
+#: apply.c:4912
#, c-format
msgid "%d line applied after fixing whitespace errors."
msgid_plural "%d lines applied after fixing whitespace errors."
@@ -631,146 +631,146 @@ msgstr[0] ""
msgstr[1] ""
"%d líneas aplicadas después de arreglar los errores de espacios en blanco."
-#: apply.c:4916 builtin/add.c:540 builtin/mv.c:301 builtin/rm.c:390
+#: apply.c:4928 builtin/add.c:540 builtin/mv.c:301 builtin/rm.c:390
msgid "Unable to write new index file"
msgstr "No es posible escribir el archivo índice"
-#: apply.c:4943 apply.c:4946 builtin/am.c:2208 builtin/am.c:2211
-#: builtin/clone.c:123 builtin/fetch.c:128 builtin/merge.c:273
-#: builtin/pull.c:208 builtin/submodule--helper.c:407
+#: apply.c:4955 apply.c:4958 builtin/am.c:2197 builtin/am.c:2200
+#: builtin/clone.c:122 builtin/fetch.c:143 builtin/merge.c:273
+#: builtin/pull.c:209 builtin/submodule--helper.c:407
#: builtin/submodule--helper.c:1367 builtin/submodule--helper.c:1370
#: builtin/submodule--helper.c:1850 builtin/submodule--helper.c:1853
#: builtin/submodule--helper.c:2092 git-add--interactive.perl:211
msgid "path"
msgstr "ruta"
-#: apply.c:4944
+#: apply.c:4956
msgid "don't apply changes matching the given path"
msgstr "no aplicar cambios que concuerden con la ruta suministrada"
-#: apply.c:4947
+#: apply.c:4959
msgid "apply changes matching the given path"
msgstr "aplicar cambios que concuerden con la ruta suministrada"
-#: apply.c:4949 builtin/am.c:2217
+#: apply.c:4961 builtin/am.c:2206
msgid "num"
msgstr "num"
-#: apply.c:4950
+#: apply.c:4962
msgid "remove <num> leading slashes from traditional diff paths"
msgstr "eliminar <num> slashes iniciales de las rutas diff tradicionales"
-#: apply.c:4953
+#: apply.c:4965
msgid "ignore additions made by the patch"
msgstr "ignorar adiciones hechas por el parche"
-#: apply.c:4955
+#: apply.c:4967
msgid "instead of applying the patch, output diffstat for the input"
msgstr "en lugar de aplicar el parche, mostrar diffstat para la entrada"
-#: apply.c:4959
+#: apply.c:4971
msgid "show number of added and deleted lines in decimal notation"
msgstr "mostrar el numero de líneas agregadas y eliminadas en notación decimal"
-#: apply.c:4961
+#: apply.c:4973
msgid "instead of applying the patch, output a summary for the input"
msgstr "en lugar de aplicar el parche, mostrar un resumen para la entrada"
-#: apply.c:4963
+#: apply.c:4975
msgid "instead of applying the patch, see if the patch is applicable"
msgstr "en lugar de aplicar el parche, ver si el parche es aplicable"
-#: apply.c:4965
+#: apply.c:4977
msgid "make sure the patch is applicable to the current index"
msgstr "asegurar que el parche es aplicable al índice actual"
-#: apply.c:4967
+#: apply.c:4979
msgid "mark new files with `git add --intent-to-add`"
msgstr "marca los nuevos archivos con `git add --intent-to-add`"
-#: apply.c:4969
+#: apply.c:4981
msgid "apply a patch without touching the working tree"
msgstr "aplicar un parche sin tocar el árbol de trabajo"
-#: apply.c:4971
+#: apply.c:4983
msgid "accept a patch that touches outside the working area"
msgstr "aceptar un parche que toca fuera del área de trabajo"
-#: apply.c:4974
+#: apply.c:4986
msgid "also apply the patch (use with --stat/--summary/--check)"
msgstr "también aplicar el parche ( usar con --stat/--summary/--check"
-#: apply.c:4976
+#: apply.c:4988
msgid "attempt three-way merge if a patch does not apply"
msgstr "intentar merge de tres-vías si el parche no aplica"
-#: apply.c:4978
+#: apply.c:4990
msgid "build a temporary index based on embedded index information"
msgstr ""
"construir un índice temporal basado en la información del índice incrustado"
-#: apply.c:4981 builtin/checkout-index.c:173 builtin/ls-files.c:524
+#: apply.c:4993 builtin/checkout-index.c:173 builtin/ls-files.c:524
msgid "paths are separated with NUL character"
msgstr "rutas están separadas con un carácter NULL"
-#: apply.c:4983
+#: apply.c:4995
msgid "ensure at least <n> lines of context match"
msgstr "asegure que por lo menos <n> líneas del contexto concuerden"
-#: apply.c:4984 builtin/am.c:2196 builtin/interpret-trailers.c:98
+#: apply.c:4996 builtin/am.c:2185 builtin/interpret-trailers.c:98
#: builtin/interpret-trailers.c:100 builtin/interpret-trailers.c:102
-#: builtin/pack-objects.c:3330 builtin/rebase.c:1421
+#: builtin/pack-objects.c:3310 builtin/rebase.c:1445
msgid "action"
msgstr "acción"
-#: apply.c:4985
+#: apply.c:4997
msgid "detect new or modified lines that have whitespace errors"
msgstr ""
"detectar líneas nuevas o modificadas que contienen errores de espacios en "
"blanco"
-#: apply.c:4988 apply.c:4991
+#: apply.c:5000 apply.c:5003
msgid "ignore changes in whitespace when finding context"
msgstr ""
"ignorar cambios en los espacios en blanco cuando se encuentra el contexto"
-#: apply.c:4994
+#: apply.c:5006
msgid "apply the patch in reverse"
msgstr "aplicar el parche en reversa"
-#: apply.c:4996
+#: apply.c:5008
msgid "don't expect at least one line of context"
msgstr "no espera al menos una línea del contexto"
-#: apply.c:4998
+#: apply.c:5010
msgid "leave the rejected hunks in corresponding *.rej files"
msgstr "dejar los hunks rechazados en los archivos *.rej correspontientes"
-#: apply.c:5000
+#: apply.c:5012
msgid "allow overlapping hunks"
msgstr "permitir solapamiento de hunks"
-#: apply.c:5001 builtin/add.c:291 builtin/check-ignore.c:22
+#: apply.c:5013 builtin/add.c:291 builtin/check-ignore.c:22
#: builtin/commit.c:1337 builtin/count-objects.c:98 builtin/fsck.c:786
-#: builtin/log.c:2068 builtin/mv.c:123 builtin/read-tree.c:128
+#: builtin/log.c:2085 builtin/mv.c:123 builtin/read-tree.c:128
msgid "be verbose"
msgstr "ser verboso"
-#: apply.c:5003
+#: apply.c:5015
msgid "tolerate incorrectly detected missing new-line at the end of file"
msgstr ""
"tolerar nuevas líneas faltantes detectadas incorrectamente al final del "
"archivo"
-#: apply.c:5006
+#: apply.c:5018
msgid "do not trust the line counts in the hunk headers"
msgstr "no confiar en el conteo de líneas en los headers del hunk"
-#: apply.c:5008 builtin/am.c:2205
+#: apply.c:5020 builtin/am.c:2194
msgid "root"
msgstr "raíz"
-#: apply.c:5009
+#: apply.c:5021
msgid "prepend <root> to all filenames"
msgstr "anteponer <root> a todos los nombres de archivos"
@@ -825,7 +825,7 @@ msgstr "fmt"
msgid "archive format"
msgstr "formato del archivo"
-#: archive.c:458 builtin/log.c:1580
+#: archive.c:458 builtin/log.c:1581
msgid "prefix"
msgstr "prefijo"
@@ -833,11 +833,12 @@ msgstr "prefijo"
msgid "prepend prefix to each pathname in the archive"
msgstr "anteponer prefijo a cada ruta en el archivo"
-#: archive.c:460 builtin/blame.c:862 builtin/blame.c:874 builtin/blame.c:875
-#: builtin/commit-tree.c:117 builtin/config.c:129 builtin/fast-export.c:1134
-#: builtin/fast-export.c:1136 builtin/grep.c:897 builtin/hash-object.c:105
-#: builtin/ls-files.c:560 builtin/ls-files.c:563 builtin/notes.c:412
-#: builtin/notes.c:578 builtin/read-tree.c:123 parse-options.h:177
+#: archive.c:460 builtin/blame.c:861 builtin/blame.c:873 builtin/blame.c:874
+#: builtin/commit-tree.c:117 builtin/config.c:129 builtin/fast-export.c:1162
+#: builtin/fast-export.c:1164 builtin/fast-export.c:1168 builtin/grep.c:899
+#: builtin/hash-object.c:105 builtin/ls-files.c:560 builtin/ls-files.c:563
+#: builtin/notes.c:412 builtin/notes.c:578 builtin/read-tree.c:123
+#: parse-options.h:186
msgid "file"
msgstr "carpeta"
@@ -869,7 +870,7 @@ msgstr "comprimir mejor"
msgid "list supported archive formats"
msgstr "listar los formatos de carpeta soportados"
-#: archive.c:479 builtin/archive.c:91 builtin/clone.c:113 builtin/clone.c:116
+#: archive.c:479 builtin/archive.c:91 builtin/clone.c:112 builtin/clone.c:115
#: builtin/submodule--helper.c:1379 builtin/submodule--helper.c:1859
msgid "repo"
msgstr "repo"
@@ -878,7 +879,7 @@ msgstr "repo"
msgid "retrieve the archive from remote repository <repo>"
msgstr "obtener la carpeta del repositorio remoto <repo>"
-#: archive.c:481 builtin/archive.c:93 builtin/difftool.c:707
+#: archive.c:481 builtin/archive.c:93 builtin/difftool.c:715
#: builtin/notes.c:498
msgid "command"
msgstr "comando"
@@ -914,26 +915,26 @@ msgstr "Argumento no soportado para formato '%s': -%d"
msgid "cannot stream blob %s"
msgstr "no se puede transmitir el blob %s"
-#: archive-tar.c:260 archive-zip.c:363
+#: archive-tar.c:266 archive-zip.c:363
#, c-format
msgid "unsupported file mode: 0%o (SHA1: %s)"
msgstr "modo de archivo no soportado: 0%o (SHA1: %s)"
-#: archive-tar.c:287 archive-zip.c:353
+#: archive-tar.c:293 archive-zip.c:353
#, c-format
msgid "cannot read %s"
msgstr "no se puede leer %s"
-#: archive-tar.c:459
+#: archive-tar.c:465
#, c-format
msgid "unable to start '%s' filter"
msgstr "no se puede comenzar filtro '%s'"
-#: archive-tar.c:462
+#: archive-tar.c:468
msgid "unable to redirect descriptor"
msgstr "incapaz de redirigir descriptor"
-#: archive-tar.c:469
+#: archive-tar.c:475
#, c-format
msgid "'%s' filter reported error"
msgstr "filtro '%s' reportó un error"
@@ -958,17 +959,17 @@ msgstr "error al desinflar (%d)"
msgid "timestamp too large for this system: %<PRIuMAX>"
msgstr "timestamp muy largo para este sistema: %<PRIuMAX>"
-#: attr.c:211
+#: attr.c:213
#, c-format
msgid "%.*s is not a valid attribute name"
msgstr "%.*s no es un nombre de atributo válido"
-#: attr.c:368
+#: attr.c:370
#, c-format
msgid "%s not allowed: %s:%d"
msgstr "%s no permitido: %s:%d"
-#: attr.c:408
+#: attr.c:410
msgid ""
"Negative patterns are ignored in git attributes\n"
"Use '\\!' for literal leading exclamation."
@@ -1027,7 +1028,7 @@ msgid ""
msgstr ""
"Algunas %s revisiones no son ancestros de la revisión %s.\n"
"git bisect no puede trabajar bien en este caso.\n"
-"Tal vez confundiste la revisión %s y %s?\n"
+"¿Tal vez confundiste la revisión %s y %s?\n"
#: bisect.c:789
#, c-format
@@ -1095,40 +1096,40 @@ msgid_plural "Bisecting: %d revisions left to test after this %s\n"
msgstr[0] "Biseccionando: falta %d revisión por probar después de esto %s\n"
msgstr[1] "Biseccionando: faltan %d revisiones por probar después de esto %s\n"
-#: blame.c:2697
+#: blame.c:2700
msgid "--contents and --reverse do not blend well."
msgstr "--contents y --reverse no se mezclan bien."
-#: blame.c:2711
+#: blame.c:2714
msgid "cannot use --contents with final commit object name"
msgstr "no se puede usar --contents con el nombre de objeto commit final"
-#: blame.c:2732
+#: blame.c:2735
msgid "--reverse and --first-parent together require specified latest commit"
msgstr ""
"--reverse y --first-parent juntos requieren especificar el último commit"
-#: blame.c:2741 bundle.c:167 ref-filter.c:2196 remote.c:1938 sequencer.c:2033
-#: sequencer.c:4348 builtin/commit.c:1020 builtin/log.c:387 builtin/log.c:963
-#: builtin/log.c:1451 builtin/log.c:1827 builtin/log.c:2117 builtin/merge.c:411
-#: builtin/pack-objects.c:3148 builtin/pack-objects.c:3163
+#: blame.c:2744 bundle.c:167 ref-filter.c:2203 remote.c:1941 sequencer.c:1971
+#: sequencer.c:4305 builtin/commit.c:1020 builtin/log.c:387 builtin/log.c:964
+#: builtin/log.c:1452 builtin/log.c:1844 builtin/log.c:2134 builtin/merge.c:411
+#: builtin/pack-objects.c:3128 builtin/pack-objects.c:3143
#: builtin/shortlog.c:192
msgid "revision walk setup failed"
msgstr "falló la configuración del camino de revisión"
-#: blame.c:2759
+#: blame.c:2762
msgid ""
"--reverse --first-parent together require range along first-parent chain"
msgstr ""
"--reverse --first-parent juntos requieren un rango a lo largo de la cadena "
"del primer padre"
-#: blame.c:2770
+#: blame.c:2773
#, c-format
msgid "no such path %s in %s"
msgstr "no hay una ruta %s en %s"
-#: blame.c:2781
+#: blame.c:2784
#, c-format
msgid "cannot read blob %s for path %s"
msgstr "no se puede leer el blob %s para la ruta %s"
@@ -1292,7 +1293,7 @@ msgstr "'%s' no se ve como un archivo bundle v2"
msgid "unrecognized header: %s%s (%d)"
msgstr "header no reconocido %s%s (%d)"
-#: bundle.c:90 rerere.c:480 rerere.c:690 sequencer.c:2283 sequencer.c:3024
+#: bundle.c:90 rerere.c:480 rerere.c:690 sequencer.c:2221 sequencer.c:2962
#: builtin/commit.c:791
#, c-format
msgid "could not open '%s'"
@@ -1345,7 +1346,7 @@ msgstr "rev-list murió"
msgid "ref '%s' is excluded by the rev-list options"
msgstr "referencia '%s' es excluida por las opciones de rev-list"
-#: bundle.c:460 builtin/log.c:202 builtin/log.c:1732 builtin/shortlog.c:306
+#: bundle.c:460 builtin/log.c:202 builtin/log.c:1733 builtin/shortlog.c:306
#, c-format
msgid "unrecognized argument: %s"
msgstr "argumento no reconocido: %s"
@@ -1368,8 +1369,8 @@ msgstr "index-pack murió"
msgid "invalid color value: %.*s"
msgstr "color inválido: %.*s"
-#: commit.c:50 sequencer.c:2727 builtin/am.c:355 builtin/am.c:399
-#: builtin/am.c:1378 builtin/am.c:2020 builtin/replace.c:455
+#: commit.c:50 sequencer.c:2665 builtin/am.c:354 builtin/am.c:398
+#: builtin/am.c:1366 builtin/am.c:2009 builtin/replace.c:456
#, c-format
msgid "could not parse %s"
msgstr "no se puede analizar %s"
@@ -1377,7 +1378,7 @@ msgstr "no se puede analizar %s"
#: commit.c:52
#, c-format
msgid "%s %s is not a commit!"
-msgstr "%s %s no es un commit!"
+msgstr "¡%s %s no es un commit!"
#: commit.c:192
msgid ""
@@ -1399,27 +1400,27 @@ msgstr ""
"Apapa este mensaje ejecutando\n"
"\"git config advice.graftFileDeprecated false\""
-#: commit.c:1127
+#: commit.c:1128
#, c-format
msgid "Commit %s has an untrusted GPG signature, allegedly by %s."
msgstr "Commit %s tiene una firma GPG no confiable, pretendidamente por %s."
-#: commit.c:1130
+#: commit.c:1131
#, c-format
msgid "Commit %s has a bad GPG signature allegedly by %s."
msgstr "Commit %s tiene una mala firma GPG pretendidamente por %s."
-#: commit.c:1133
+#: commit.c:1134
#, c-format
msgid "Commit %s does not have a GPG signature."
msgstr "Commit %s no tiene una firma GPG."
-#: commit.c:1136
+#: commit.c:1137
#, c-format
msgid "Commit %s has a good GPG signature by %s\n"
msgstr "El Commit %s tiene una buena firma GPG por %s\n"
-#: commit.c:1390
+#: commit.c:1391
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"
@@ -1482,199 +1483,214 @@ msgstr "cadena de commit-graph inválida: línea '%s' no es un hash"
msgid "unable to find all commit-graph files"
msgstr "no es posible encontrar los archivos commit-graph"
-#: commit-graph.c:554 commit-graph.c:614
+#: commit-graph.c:561 commit-graph.c:621
msgid "invalid commit position. commit-graph is likely corrupt"
msgstr "posición de commit inválida. commit-graph está probablemente corrupto"
-#: commit-graph.c:575
+#: commit-graph.c:582
#, c-format
msgid "could not find commit %s"
msgstr "no se pudo encontrar commit %s"
-#: commit-graph.c:1002 builtin/pack-objects.c:2657
+#: commit-graph.c:855 builtin/am.c:1287
+#, c-format
+msgid "unable to parse commit %s"
+msgstr "no es posible analizar el commit %s"
+
+#: commit-graph.c:859
+#, c-format
+msgid "unable to get tree for %s"
+msgstr "no se pudo obtener árbol para %s"
+
+#: commit-graph.c:1017 builtin/pack-objects.c:2641
#, c-format
msgid "unable to get type of object %s"
msgstr "incapaz de obtener el tipo de objeto: %s"
-#: commit-graph.c:1034
+#: commit-graph.c:1049
msgid "Loading known commits in commit graph"
msgstr "Cargando commits conocidos en commit graph"
-#: commit-graph.c:1051
+#: commit-graph.c:1066
msgid "Expanding reachable commits in commit graph"
msgstr "Expandiendo commits alcanzables en commit graph"
-#: commit-graph.c:1070
+#: commit-graph.c:1085
msgid "Clearing commit marks in commit graph"
msgstr "Limpiando marcas de commits en commit graph"
-#: commit-graph.c:1089
+#: commit-graph.c:1104
msgid "Computing commit graph generation numbers"
msgstr "Calculando números de generación de commit graph"
-#: commit-graph.c:1163
+#: commit-graph.c:1179
#, c-format
msgid "Finding commits for commit graph in %d pack"
msgid_plural "Finding commits for commit graph in %d packs"
msgstr[0] "Encontrando commits para commit graph en %d pack"
msgstr[1] "Encontrando commits para commit graph en %d packs"
-#: commit-graph.c:1176
+#: commit-graph.c:1192
#, c-format
msgid "error adding pack %s"
msgstr "error agregando pack %s"
-#: commit-graph.c:1180
+#: commit-graph.c:1196
#, c-format
msgid "error opening index for %s"
msgstr "error abriendo index para %s"
-#: commit-graph.c:1204
+#: commit-graph.c:1220
#, c-format
msgid "Finding commits for commit graph from %d ref"
msgid_plural "Finding commits for commit graph from %d refs"
msgstr[0] "Encontrando commits para commit graph de %d ref"
msgstr[1] "Encontrando commits para commit graph de %d refs"
-#: commit-graph.c:1238
+#: commit-graph.c:1240
+#, c-format
+msgid "invalid commit object id: %s"
+msgstr "id de objeto commit: %s inválido"
+
+#: commit-graph.c:1255
msgid "Finding commits for commit graph among packed objects"
msgstr "Encontrando commits para commit graph entre los objetos empaquetados"
-#: commit-graph.c:1253
+#: commit-graph.c:1270
msgid "Counting distinct commits in commit graph"
msgstr "Contando commits distintos en commit graph"
-#: commit-graph.c:1284
+#: commit-graph.c:1300
msgid "Finding extra edges in commit graph"
msgstr "Encontrando esquinas extra en commit graph"
-#: commit-graph.c:1332
+#: commit-graph.c:1346
msgid "failed to write correct number of base graph ids"
msgstr "falló al escribir el número correcto de ids de base graph"
-#: commit-graph.c:1365 midx.c:811
+#: commit-graph.c:1379 midx.c:810
#, c-format
msgid "unable to create leading directories of %s"
msgstr "no se pudo crear directorios principales para %s"
-#: commit-graph.c:1377 builtin/index-pack.c:306 builtin/repack.c:240
+#: commit-graph.c:1391 builtin/index-pack.c:306 builtin/repack.c:241
#, c-format
msgid "unable to create '%s'"
msgstr "no se puede crear '%s'"
-#: commit-graph.c:1437
+#: commit-graph.c:1451
#, c-format
msgid "Writing out commit graph in %d pass"
msgid_plural "Writing out commit graph in %d passes"
msgstr[0] "Escribiendo commit graph en %d paso"
msgstr[1] "Escribiendo commit graph en %d pasos"
-#: commit-graph.c:1478
+#: commit-graph.c:1492
msgid "unable to open commit-graph chain file"
msgstr "no se pudo abrir la cadena de archivos commit-graph"
-#: commit-graph.c:1490
+#: commit-graph.c:1504
msgid "failed to rename base commit-graph file"
msgstr "no se pudo renombrar el archivo base commit-graph"
-#: commit-graph.c:1510
+#: commit-graph.c:1524
msgid "failed to rename temporary commit-graph file"
msgstr "falló al renombrar el archivo temporal commit-graph"
-#: commit-graph.c:1621
+#: commit-graph.c:1635
msgid "Scanning merged commits"
msgstr "Escaneando commits fusionados"
-#: commit-graph.c:1632
+#: commit-graph.c:1646
#, c-format
msgid "unexpected duplicate commit id %s"
msgstr "id de commit duplicado inesperado %s"
-#: commit-graph.c:1657
+#: commit-graph.c:1670
msgid "Merging commit-graph"
msgstr "Fusionando commit-graph"
-#: commit-graph.c:1844
+#: commit-graph.c:1860
#, c-format
msgid "the commit graph format cannot write %d commits"
msgstr "el formato de gráficos de commit no pudede escribir %d commits"
-#: commit-graph.c:1855
+#: commit-graph.c:1871
msgid "too many commits to write graph"
msgstr "demasiados commits para escribir el gráfico"
-#: commit-graph.c:1945
+#: commit-graph.c:1961
msgid "the commit-graph file has incorrect checksum and is likely corrupt"
msgstr ""
"el archivo de commit-graph tiene checksums incorrectos y probablemente está "
"corrupto"
-#: commit-graph.c:1955
+#: commit-graph.c:1971
#, c-format
msgid "commit-graph has incorrect OID order: %s then %s"
msgstr "commit-graph tiene un orden de OID incorrecto: %s luego %s"
-#: commit-graph.c:1965 commit-graph.c:1980
+#: commit-graph.c:1981 commit-graph.c:1996
#, c-format
msgid "commit-graph has incorrect fanout value: fanout[%d] = %u != %u"
msgstr "commit-graph tiene un valor fanout incorrecto: fanout[%d] = %u != %u"
-#: commit-graph.c:1972
+#: commit-graph.c:1988
#, c-format
msgid "failed to parse commit %s from commit-graph"
msgstr "falló al analizar commit %s para commit-graph"
-#: commit-graph.c:1989
+#: commit-graph.c:2006
msgid "Verifying commits in commit graph"
msgstr "Verificando commits en commit graph"
-#: commit-graph.c:2002
+#: commit-graph.c:2020
#, c-format
msgid "failed to parse commit %s from object database for commit-graph"
msgstr ""
"falló al analizar el commit %s de la base de datos de objetos para commit-"
"graph"
-#: commit-graph.c:2009
+#: commit-graph.c:2027
#, c-format
msgid "root tree OID for commit %s in commit-graph is %s != %s"
msgstr "árbol raíz OID para commit %s en commit-graph es %s != %s"
-#: commit-graph.c:2019
+#: commit-graph.c:2037
#, c-format
msgid "commit-graph parent list for commit %s is too long"
msgstr "lista padre de commit-graph para commit %s es muy larga"
-#: commit-graph.c:2028
+#: commit-graph.c:2046
#, c-format
msgid "commit-graph parent for %s is %s != %s"
msgstr "padre de commit-graph para %s es %s != %s"
-#: commit-graph.c:2041
+#: commit-graph.c:2059
#, c-format
msgid "commit-graph parent list for commit %s terminates early"
msgstr "lista padre de commit-graph para commit %s termina antes"
-#: commit-graph.c:2046
+#: commit-graph.c:2064
#, c-format
msgid ""
"commit-graph has generation number zero for commit %s, but non-zero elsewhere"
msgstr ""
"commit-graph ha generado número cero para %s, pero no-cero para los demás"
-#: commit-graph.c:2050
+#: commit-graph.c:2068
#, c-format
msgid ""
"commit-graph has non-zero generation number for commit %s, but zero elsewhere"
msgstr ""
"commit-graph tiene generación no-cero para %s, pero cero para los demás"
-#: commit-graph.c:2065
+#: commit-graph.c:2083
#, c-format
msgid "commit-graph generation for commit %s is %u != %u"
msgstr "generación commit-graph para commit %s es %u != %u"
-#: commit-graph.c:2071
+#: commit-graph.c:2089
#, c-format
msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>"
msgstr ""
@@ -1723,7 +1739,7 @@ msgstr "llave no contiene una sección: %s"
msgid "key does not contain variable name: %s"
msgstr "llave no contiene el nombre de variable: %s"
-#: config.c:406 sequencer.c:2463
+#: config.c:406 sequencer.c:2401
#, c-format
msgid "invalid key: %s"
msgstr "llave inválida: %s"
@@ -1847,152 +1863,145 @@ msgstr "core.commentChar debería tener solo un caracter"
msgid "invalid mode for object creation: %s"
msgstr "modo inválido de creación de objetos: %s"
-#: config.c:1430
+#: config.c:1425
#, c-format
msgid "malformed value for %s"
msgstr "valor malformado para %s"
-#: config.c:1456
+#: config.c:1451
#, c-format
msgid "malformed value for %s: %s"
msgstr "valor malformado para %s: %s"
-#: config.c:1457
+#: config.c:1452
msgid "must be one of nothing, matching, simple, upstream or current"
msgstr "debe ser uno de nothing, matching, simple, upstream o current"
-#: config.c:1518 builtin/pack-objects.c:3410
+#: config.c:1513 builtin/pack-objects.c:3394
#, c-format
msgid "bad pack compression level %d"
msgstr "nivel de compresión de pack erróneo %d"
-#: config.c:1639
+#: config.c:1634
#, c-format
msgid "unable to load config blob object '%s'"
msgstr "incapaz de cargar configuración de objeto blob '%s'"
-#: config.c:1642
+#: config.c:1637
#, c-format
msgid "reference '%s' does not point to a blob"
msgstr "referencia '%s' no apunta a un blob"
-#: config.c:1659
+#: config.c:1654
#, c-format
msgid "unable to resolve config blob '%s'"
msgstr "no se posible resolver configuración de blob '%s'"
-#: config.c:1689
+#: config.c:1684
#, c-format
msgid "failed to parse %s"
msgstr "no se pudo analizar %s"
-#: config.c:1745
+#: config.c:1740
msgid "unable to parse command-line config"
msgstr "no es posible analizar la configuración de la línea de comando"
-#: config.c:2094
+#: config.c:2091
msgid "unknown error occurred while reading the configuration files"
msgstr ""
"error desconocido ocurrió mientras se leían los archivos de configuración"
-#: config.c:2264
+#: config.c:2261
#, c-format
msgid "Invalid %s: '%s'"
msgstr "Inválido %s: '%s'"
-#: config.c:2307
-#, c-format
-msgid "unknown core.untrackedCache value '%s'; using 'keep' default value"
-msgstr ""
-"valor core.untrackedCache '%s' desconocido; usando 'keep' como valor por "
-"defecto"
-
-#: config.c:2333
+#: config.c:2306
#, c-format
msgid "splitIndex.maxPercentChange value '%d' should be between 0 and 100"
msgstr "valor splitIndex.maxPercentChange '%d' debe estar entre 0 y 100"
-#: config.c:2379
+#: config.c:2352
#, c-format
msgid "unable to parse '%s' from command-line config"
msgstr "no es posible analizar '%s' de la configuración de la línea de comando"
-#: config.c:2381
+#: config.c:2354
#, c-format
msgid "bad config variable '%s' in file '%s' at line %d"
msgstr "mala variable de config '%s' en el archivo '%s' en la línea %d"
-#: config.c:2462
+#: config.c:2435
#, c-format
msgid "invalid section name '%s'"
msgstr "nombre de sección inválido '%s'"
-#: config.c:2494
+#: config.c:2467
#, c-format
msgid "%s has multiple values"
msgstr "%s tiene múltiples valores"
-#: config.c:2523
+#: config.c:2496
#, c-format
msgid "failed to write new configuration file %s"
msgstr "falló al escribir nuevo archivo de configuración %s"
-#: config.c:2775 config.c:3099
+#: config.c:2748 config.c:3072
#, c-format
msgid "could not lock config file %s"
msgstr "no se pudo bloquear archivo de configuración %s"
-#: config.c:2786
+#: config.c:2759
#, c-format
msgid "opening %s"
msgstr "abriendo %s"
-#: config.c:2821 builtin/config.c:328
+#: config.c:2794 builtin/config.c:328
#, c-format
msgid "invalid pattern: %s"
msgstr "patrón inválido: %s"
-#: config.c:2846
+#: config.c:2819
#, c-format
msgid "invalid config file %s"
msgstr "archivo de configuración inválido: %s"
-#: config.c:2859 config.c:3112
+#: config.c:2832 config.c:3085
#, c-format
msgid "fstat on %s failed"
msgstr "fstat en %s falló"
-#: config.c:2870
+#: config.c:2843
#, c-format
msgid "unable to mmap '%s'"
msgstr "no es posible hacer mmap '%s'"
-#: config.c:2879 config.c:3117
+#: config.c:2852 config.c:3090
#, c-format
msgid "chmod on %s failed"
msgstr "chmod en %s falló"
-#: config.c:2964 config.c:3214
+#: config.c:2937 config.c:3187
#, c-format
msgid "could not write config file %s"
msgstr "no se pudo escribir el archivo de configuración %s"
-#: config.c:2998
+#: config.c:2971
#, c-format
msgid "could not set '%s' to '%s'"
msgstr "no se pudo configurar '%s' a '%s'"
-#: config.c:3000 builtin/remote.c:782
+#: config.c:2973 builtin/remote.c:782
#, c-format
msgid "could not unset '%s'"
msgstr "no se pudo desactivar '%s'"
-#: config.c:3090
+#: config.c:3063
#, c-format
msgid "invalid section name: %s"
msgstr "sección de nombre inválida: %s"
-#: config.c:3257
+#: config.c:3230
#, c-format
msgid "missing value for '%s'"
msgstr "valor faltante para '%s'"
@@ -2116,7 +2125,7 @@ msgstr "no es posible revisar %s (%s)"
msgid "unknown port %s"
msgstr "puerto desconocido %s"
-#: connect.c:845 connect.c:1171
+#: connect.c:845 connect.c:1175
#, c-format
msgid "strange hostname '%s' blocked"
msgstr "hostname extraño '%s' bloqueado"
@@ -2131,59 +2140,59 @@ msgstr "puerto extraño '%s' bloqueado"
msgid "cannot start proxy %s"
msgstr "no se puede comenzar proxy %s"
-#: connect.c:924
+#: connect.c:928
msgid "no path specified; see 'git help pull' for valid url syntax"
msgstr ""
"no hay ruta especificada; vea 'git help pull' para sintaxis de url válidas"
-#: connect.c:1119
+#: connect.c:1123
msgid "ssh variant 'simple' does not support -4"
msgstr "variante 'simple' de ssh no soporta -4"
-#: connect.c:1131
+#: connect.c:1135
msgid "ssh variant 'simple' does not support -6"
msgstr "variante 'simple' de ssh no soporta -6"
-#: connect.c:1148
+#: connect.c:1152
msgid "ssh variant 'simple' does not support setting port"
msgstr "variante ssh 'simple' no soporta configurar puerto"
-#: connect.c:1260
+#: connect.c:1264
#, c-format
msgid "strange pathname '%s' blocked"
msgstr "ruta extraña '%s' bloqueada"
-#: connect.c:1307
+#: connect.c:1311
msgid "unable to fork"
msgstr "no es posible hacer fork"
-#: connected.c:86 builtin/fsck.c:221 builtin/prune.c:43
+#: connected.c:88 builtin/fsck.c:221 builtin/prune.c:43
msgid "Checking connectivity"
msgstr "Verificando conectividad"
-#: connected.c:98
+#: connected.c:100
msgid "Could not run 'git rev-list'"
msgstr "No se pudo correr 'git rev-list'"
-#: connected.c:118
+#: connected.c:120
msgid "failed write to rev-list"
msgstr "falló escribir a rev-list"
-#: connected.c:125
+#: connected.c:127
msgid "failed to close rev-list's stdin"
msgstr "falló al cerrar la entrada standard de rev-list"
-#: convert.c:193
+#: convert.c:194
#, c-format
msgid "illegal crlf_action %d"
msgstr "crlf_action %d ilegal"
-#: convert.c:206
+#: convert.c:207
#, c-format
msgid "CRLF would be replaced by LF in %s"
msgstr "CRLF será reemplazado por LF en %s"
-#: convert.c:208
+#: convert.c:209
#, c-format
msgid ""
"CRLF will be replaced by LF in %s.\n"
@@ -2192,12 +2201,12 @@ msgstr ""
"CRLF será remplazado por LF en %s.\n"
"El archivo tendrá sus finales de línea originales en tu directorio de trabajo"
-#: convert.c:216
+#: convert.c:217
#, c-format
msgid "LF would be replaced by CRLF in %s"
msgstr "LF será reemplazado por CRLF en %s"
-#: convert.c:218
+#: convert.c:219
#, c-format
msgid ""
"LF will be replaced by CRLF in %s.\n"
@@ -2206,12 +2215,12 @@ msgstr ""
"LF será reemplazado por CRLF en %s.\n"
"El archivo tendrá sus finales de línea originales en tu directorio de trabajo"
-#: convert.c:279
+#: convert.c:280
#, c-format
msgid "BOM is prohibited in '%s' if encoded as %s"
msgstr "BOM está prohibido en '%s' si es codificado como %s"
-#: convert.c:286
+#: convert.c:287
#, c-format
msgid ""
"The file '%s' contains a byte order mark (BOM). Please use UTF-%s as working-"
@@ -2220,12 +2229,12 @@ msgstr ""
"El archivo '%s' contiene una marca de byte (BOM). Por favor usa UTF-%s como "
"working-tree-encoding."
-#: convert.c:304
+#: convert.c:305
#, c-format
msgid "BOM is required in '%s' if encoded as %s"
msgstr "BOM es requerido en '%s' si es codificado como %s"
-#: convert.c:306
+#: convert.c:307
#, c-format
msgid ""
"The file '%s' is missing a byte order mark (BOM). Please use UTF-%sBE or UTF-"
@@ -2234,50 +2243,50 @@ msgstr ""
"Al archivo '%s' le falta una marca de byte (BOM). Por favor usa UTF-%sBE o "
"UTF-%sLE (dependiendo en el orden de byte) como working-tree-encoding."
-#: convert.c:424 convert.c:495
+#: convert.c:425 convert.c:496
#, c-format
msgid "failed to encode '%s' from %s to %s"
msgstr "falló al codificar '%s' de %s a %s"
-#: convert.c:467
+#: convert.c:468
#, c-format
msgid "encoding '%s' from %s to %s and back is not the same"
msgstr "codificación '%s' de %s a %s y de vuelta no son iguales"
-#: convert.c:673
+#: convert.c:674
#, c-format
msgid "cannot fork to run external filter '%s'"
msgstr "no se puede hacer fork para ejecutar filtros externos '%s'"
-#: convert.c:693
+#: convert.c:694
#, c-format
msgid "cannot feed the input to external filter '%s'"
msgstr "no se pueden alimentar de input a los filtros externos '%s'"
-#: convert.c:700
+#: convert.c:701
#, c-format
msgid "external filter '%s' failed %d"
msgstr "filtro externo '%s' falló %d"
-#: convert.c:735 convert.c:738
+#: convert.c:736 convert.c:739
#, c-format
msgid "read from external filter '%s' failed"
msgstr "lectura de filtro externo '%s' falló"
-#: convert.c:741 convert.c:796
+#: convert.c:742 convert.c:797
#, c-format
msgid "external filter '%s' failed"
msgstr "filtro externo '%s' falló"
-#: convert.c:844
+#: convert.c:845
msgid "unexpected filter type"
msgstr "tipo de filtro inesperado"
-#: convert.c:855
+#: convert.c:856
msgid "path name too long for external filter"
msgstr "nombre de ruta muy largo para filtro externo"
-#: convert.c:929
+#: convert.c:930
#, c-format
msgid ""
"external filter '%s' is not available anymore although not all paths have "
@@ -2286,67 +2295,67 @@ msgstr ""
"filtro externo '%s' ya no está disponible aunque no todas las rutas han sido "
"filtradas"
-#: convert.c:1228
+#: convert.c:1229
msgid "true/false are no valid working-tree-encodings"
msgstr "true/false no son working-tree-encodings válidos"
-#: convert.c:1398 convert.c:1432
+#: convert.c:1417 convert.c:1451
#, c-format
msgid "%s: clean filter '%s' failed"
msgstr "%s: falló al limpiar filtro '%s'"
-#: convert.c:1476
+#: convert.c:1495
#, c-format
msgid "%s: smudge filter %s failed"
msgstr "%s: filtro smudge %s falló"
-#: date.c:137
+#: date.c:138
msgid "in the future"
msgstr "en el futuro"
-#: date.c:143
+#: date.c:144
#, c-format
msgid "%<PRIuMAX> second ago"
msgid_plural "%<PRIuMAX> seconds ago"
msgstr[0] "hace %<PRIuMAX> segundo"
msgstr[1] "hace %<PRIuMAX> segundos"
-#: date.c:150
+#: date.c:151
#, c-format
msgid "%<PRIuMAX> minute ago"
msgid_plural "%<PRIuMAX> minutes ago"
msgstr[0] "hace %<PRIuMAX> minuto"
msgstr[1] "hace %<PRIuMAX> minutos"
-#: date.c:157
+#: date.c:158
#, c-format
msgid "%<PRIuMAX> hour ago"
msgid_plural "%<PRIuMAX> hours ago"
msgstr[0] "hace %<PRIuMAX> hora"
msgstr[1] "hace %<PRIuMAX> horas"
-#: date.c:164
+#: date.c:165
#, c-format
msgid "%<PRIuMAX> day ago"
msgid_plural "%<PRIuMAX> days ago"
msgstr[0] "hace %<PRIuMAX> día"
msgstr[1] "hace %<PRIuMAX> días"
-#: date.c:170
+#: date.c:171
#, c-format
msgid "%<PRIuMAX> week ago"
msgid_plural "%<PRIuMAX> weeks ago"
msgstr[0] "hace %<PRIuMAX> semana"
msgstr[1] "hace %<PRIuMAX> semanas"
-#: date.c:177
+#: date.c:178
#, c-format
msgid "%<PRIuMAX> month ago"
msgid_plural "%<PRIuMAX> months ago"
msgstr[0] "hace %<PRIuMAX> mes"
msgstr[1] "hace %<PRIuMAX> meses"
-#: date.c:188
+#: date.c:189
#, c-format
msgid "%<PRIuMAX> year"
msgid_plural "%<PRIuMAX> years"
@@ -2354,14 +2363,14 @@ msgstr[0] "%<PRIuMAX> año"
msgstr[1] "%<PRIuMAX> años"
#. TRANSLATORS: "%s" is "<n> years"
-#: date.c:191
+#: date.c:192
#, c-format
msgid "%s, %<PRIuMAX> month ago"
msgid_plural "%s, %<PRIuMAX> months ago"
msgstr[0] "%s, y %<PRIuMAX> mes atrás"
msgstr[1] "%s, y %<PRIuMAX> meses atrás"
-#: date.c:196 date.c:201
+#: date.c:197 date.c:202
#, c-format
msgid "%<PRIuMAX> year ago"
msgid_plural "%<PRIuMAX> years ago"
@@ -2397,7 +2406,7 @@ msgstr "%d islas marcadas, listo.\n"
msgid "failed to read orderfile '%s'"
msgstr "falló al leer orden de archivos '%s'"
-#: diffcore-rename.c:544
+#: diffcore-rename.c:543
msgid "Performing inexact rename detection"
msgstr "Realizando una detección de cambios de nombre inexacta"
@@ -2464,35 +2473,35 @@ msgstr ""
"Errores en la variable de config 'diff.dirstat' encontrados:\n"
"%s"
-#: diff.c:4215
+#: diff.c:4218
#, c-format
msgid "external diff died, stopping at %s"
msgstr "diff externo murió, deteniendo en %s"
-#: diff.c:4560
+#: diff.c:4563
msgid "--name-only, --name-status, --check and -s are mutually exclusive"
msgstr "--name-only, --name-status, --check y -s son mutuamente exclusivas"
-#: diff.c:4563
+#: diff.c:4566
msgid "-G, -S and --find-object are mutually exclusive"
msgstr "-G, -S y --find-object son mutuamente exclusivas"
-#: diff.c:4641
+#: diff.c:4644
msgid "--follow requires exactly one pathspec"
msgstr "--follow requiere exactamente un pathspec"
-#: diff.c:4689
+#: diff.c:4692
#, c-format
msgid "invalid --stat value: %s"
msgstr "valor --stat inválido: %s"
-#: diff.c:4694 diff.c:4699 diff.c:4704 diff.c:4709 diff.c:5222
+#: diff.c:4697 diff.c:4702 diff.c:4707 diff.c:4712 diff.c:5225
#: parse-options.c:199 parse-options.c:203
#, c-format
msgid "%s expects a numerical value"
msgstr "%s espera un valor numérico"
-#: diff.c:4726
+#: diff.c:4729
#, c-format
msgid ""
"Failed to parse --dirstat/-X option parameter:\n"
@@ -2501,42 +2510,42 @@ msgstr ""
"Falló al analizar parámetro de opción --dirstat/-X:\n"
"%s"
-#: diff.c:4811
+#: diff.c:4814
#, c-format
msgid "unknown change class '%c' in --diff-filter=%s"
msgstr "cambio de clase desconocido '%c' en --diff-filter=%s"
-#: diff.c:4835
+#: diff.c:4838
#, c-format
msgid "unknown value after ws-error-highlight=%.*s"
msgstr "valor desconocido luego de ws-error-highlight=%.*s"
-#: diff.c:4849
+#: diff.c:4852
#, c-format
msgid "unable to resolve '%s'"
msgstr "no se puede resolver '%s'"
-#: diff.c:4899 diff.c:4905
+#: diff.c:4902 diff.c:4908
#, c-format
msgid "%s expects <n>/<m> form"
msgstr "%s espera forma <n>/<m>"
-#: diff.c:4917
+#: diff.c:4920
#, c-format
msgid "%s expects a character, got '%s'"
msgstr "%s esperaba un char, se obtuvo '%s'"
-#: diff.c:4938
+#: diff.c:4941
#, c-format
msgid "bad --color-moved argument: %s"
msgstr "mal argumento --color-moved: %s"
-#: diff.c:4957
+#: diff.c:4960
#, c-format
msgid "invalid mode '%s' in --color-moved-ws"
msgstr "modo inválido '%s' en --color-moved-ws"
-#: diff.c:4997
+#: diff.c:5000
msgid ""
"option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and "
"\"histogram\""
@@ -2544,154 +2553,154 @@ msgstr ""
"opción diff-algorithm acepta \"myers\", \"minimal\", \"patience\" e "
"\"histogram\""
-#: diff.c:5033 diff.c:5053
+#: diff.c:5036 diff.c:5056
#, c-format
msgid "invalid argument to %s"
msgstr "argumento inválido para %s"
-#: diff.c:5191
+#: diff.c:5194
#, c-format
msgid "failed to parse --submodule option parameter: '%s'"
msgstr "falló al analizar parámetro de opción --submodule: '%s'"
-#: diff.c:5247
+#: diff.c:5250
#, c-format
msgid "bad --word-diff argument: %s"
msgstr "mal argumento --word-diff: %s"
-#: diff.c:5270
+#: diff.c:5273
msgid "Diff output format options"
msgstr "Opciones de formato de salida para diff"
-#: diff.c:5272 diff.c:5278
+#: diff.c:5275 diff.c:5281
msgid "generate patch"
msgstr "generar parche"
-#: diff.c:5275 builtin/log.c:172
+#: diff.c:5278 builtin/log.c:172
msgid "suppress diff output"
msgstr "suprimir salida de diff"
-#: diff.c:5280 diff.c:5394 diff.c:5401
+#: diff.c:5283 diff.c:5397 diff.c:5404
msgid "<n>"
msgstr "<n>"
-#: diff.c:5281 diff.c:5284
+#: diff.c:5284 diff.c:5287
msgid "generate diffs with <n> lines context"
msgstr "genera diffs con <n> líneas de contexto"
-#: diff.c:5286
+#: diff.c:5289
msgid "generate the diff in raw format"
msgstr "genera el diff en formato raw"
-#: diff.c:5289
+#: diff.c:5292
msgid "synonym for '-p --raw'"
msgstr "sinónimo para '-p --stat'"
-#: diff.c:5293
+#: diff.c:5296
msgid "synonym for '-p --stat'"
msgstr "sinónimo para '-p --stat'"
-#: diff.c:5297
+#: diff.c:5300
msgid "machine friendly --stat"
msgstr "--stat amigable para máquina"
-#: diff.c:5300
+#: diff.c:5303
msgid "output only the last line of --stat"
msgstr "mostrar solo la última línea para --stat"
-#: diff.c:5302 diff.c:5310
+#: diff.c:5305 diff.c:5313
msgid "<param1,param2>..."
msgstr "<param1,param2>..."
-#: diff.c:5303
+#: diff.c:5306
msgid ""
"output the distribution of relative amount of changes for each sub-directory"
msgstr ""
"muestra la distribución de cantidades de cambios relativa para cada "
"subdirectorio"
-#: diff.c:5307
+#: diff.c:5310
msgid "synonym for --dirstat=cumulative"
msgstr "sinónimo para --dirstat=cumulative"
-#: diff.c:5311
+#: diff.c:5314
msgid "synonym for --dirstat=files,param1,param2..."
msgstr "sinonimo para --dirstat=archivos,param1,param2..."
-#: diff.c:5315
+#: diff.c:5318
msgid "warn if changes introduce conflict markers or whitespace errors"
msgstr ""
"advierte si cambios introducen conflictos de markers o errores de espacios "
"en blanco"
-#: diff.c:5318
+#: diff.c:5321
msgid "condensed summary such as creations, renames and mode changes"
msgstr ""
"resumen condensado de creaciones, cambios de nombres y cambios de modos"
-#: diff.c:5321
+#: diff.c:5324
msgid "show only names of changed files"
msgstr "mostrar solo nombres de archivos cambiados"
-#: diff.c:5324
+#: diff.c:5327
msgid "show only names and status of changed files"
msgstr "mostrar solo nombres y estados de archivos cambiados"
-#: diff.c:5326
+#: diff.c:5329
msgid "<width>[,<name-width>[,<count>]]"
msgstr "<ancho>[,<nombre-ancho>[,<cantidad>]]"
-#: diff.c:5327
+#: diff.c:5330
msgid "generate diffstat"
msgstr "generar diffstat"
-#: diff.c:5329 diff.c:5332 diff.c:5335
+#: diff.c:5332 diff.c:5335 diff.c:5338
msgid "<width>"
msgstr "<ancho>"
-#: diff.c:5330
+#: diff.c:5333
msgid "generate diffstat with a given width"
msgstr "genera diffstat con un ancho dado"
-#: diff.c:5333
+#: diff.c:5336
msgid "generate diffstat with a given name width"
msgstr "genera diffstat con un nombre de ancho dado"
-#: diff.c:5336
+#: diff.c:5339
msgid "generate diffstat with a given graph width"
msgstr "genera diffstat con un ancho de graph dado"
-#: diff.c:5338
+#: diff.c:5341
msgid "<count>"
msgstr "<cantidad>"
-#: diff.c:5339
+#: diff.c:5342
msgid "generate diffstat with limited lines"
msgstr "genera diffstat con líneas limitadas"
-#: diff.c:5342
+#: diff.c:5345
msgid "generate compact summary in diffstat"
msgstr "genera un resumen compacto de diffstat"
-#: diff.c:5345
+#: diff.c:5348
msgid "output a binary diff that can be applied"
msgstr "muestra un diff binario que puede ser aplicado"
-#: diff.c:5348
+#: diff.c:5351
msgid "show full pre- and post-image object names on the \"index\" lines"
msgstr ""
"mostrar todo un pre- y post-image de nombres de objetos en las líneas \"index"
"\""
-#: diff.c:5350
+#: diff.c:5353
msgid "show colored diff"
msgstr "mostrar diff colorido"
-#: diff.c:5351
+#: diff.c:5354
msgid "<kind>"
msgstr "<tipo>"
-#: diff.c:5352
+#: diff.c:5355
msgid ""
"highlight whitespace errors in the 'context', 'old' or 'new' lines in the "
"diff"
@@ -2699,7 +2708,7 @@ msgstr ""
"resaltar errores de espacios en blanco en las líneas 'context', 'old' o "
"'new' del diff"
-#: diff.c:5355
+#: diff.c:5358
msgid ""
"do not munge pathnames and use NULs as output field terminators in --raw or "
"--numstat"
@@ -2707,89 +2716,89 @@ msgstr ""
"no consolidar los pathnames y usar NULs como terminadores de campos en --raw "
"o --numstat"
-#: diff.c:5358 diff.c:5361 diff.c:5364 diff.c:5470
+#: diff.c:5361 diff.c:5364 diff.c:5367 diff.c:5473
msgid "<prefix>"
msgstr "<prefijo>"
-#: diff.c:5359
+#: diff.c:5362
msgid "show the given source prefix instead of \"a/\""
msgstr "mostrar el prefijo de fuente dado en lugar de \"a/\""
-#: diff.c:5362
+#: diff.c:5365
msgid "show the given destination prefix instead of \"b/\""
msgstr "mostrar el prefijo de destino en lugar de \"b/\""
-#: diff.c:5365
+#: diff.c:5368
msgid "prepend an additional prefix to every line of output"
msgstr "anteponer un prefijo adicional a cada línea mostrada"
-#: diff.c:5368
+#: diff.c:5371
msgid "do not show any source or destination prefix"
msgstr "no mostrar ningún prefijo de fuente o destino"
-#: diff.c:5371
+#: diff.c:5374
msgid "show context between diff hunks up to the specified number of lines"
msgstr ""
"muestra el contexto entre hunks de diff hasta el número especificado de "
"líneas"
-#: diff.c:5375 diff.c:5380 diff.c:5385
+#: diff.c:5378 diff.c:5383 diff.c:5388
msgid "<char>"
msgstr "<char>"
-#: diff.c:5376
+#: diff.c:5379
msgid "specify the character to indicate a new line instead of '+'"
msgstr "especifica el char para indicar una nueva línea en lugar de '+'"
-#: diff.c:5381
+#: diff.c:5384
msgid "specify the character to indicate an old line instead of '-'"
msgstr "especifica el char para indicar una línea vieja en lugar de '-'"
-#: diff.c:5386
+#: diff.c:5389
msgid "specify the character to indicate a context instead of ' '"
msgstr "especifica el char para indicar un contexto en lugar de ' '"
-#: diff.c:5389
+#: diff.c:5392
msgid "Diff rename options"
msgstr "Opciones de diff rename"
-#: diff.c:5390
+#: diff.c:5393
msgid "<n>[/<m>]"
msgstr "<n>[/<m>]"
-#: diff.c:5391
+#: diff.c:5394
msgid "break complete rewrite changes into pairs of delete and create"
msgstr "descomponer los cambios de reescritura en pares de borrar y crear"
-#: diff.c:5395
+#: diff.c:5398
msgid "detect renames"
msgstr "detectar renombrados"
-#: diff.c:5399
+#: diff.c:5402
msgid "omit the preimage for deletes"
msgstr "omite la preimage para borrados"
-#: diff.c:5402
+#: diff.c:5405
msgid "detect copies"
msgstr "detectar copias"
-#: diff.c:5406
+#: diff.c:5409
msgid "use unmodified files as source to find copies"
msgstr "usa archivos no modificados como fuente para encontrar copias"
-#: diff.c:5408
+#: diff.c:5411
msgid "disable rename detection"
msgstr "deshabilita detección de renombres"
-#: diff.c:5411
+#: diff.c:5414
msgid "use empty blobs as rename source"
msgstr "usa blobs vacíos como fuente de renombre"
-#: diff.c:5413
+#: diff.c:5416
msgid "continue listing the history of a file beyond renames"
msgstr "continua listando el historial de un archivo más allá de renombres"
-#: diff.c:5416
+#: diff.c:5419
msgid ""
"prevent rename/copy detection if the number of rename/copy targets exceeds "
"given limit"
@@ -2797,155 +2806,155 @@ msgstr ""
"previene detección de renombre/copias si el número de objetivos para "
"renombres/copias excede el límite dado"
-#: diff.c:5418
+#: diff.c:5421
msgid "Diff algorithm options"
msgstr "Opciones de algoritmos de diff"
-#: diff.c:5420
+#: diff.c:5423
msgid "produce the smallest possible diff"
msgstr "produce el diff más pequeño posible"
-#: diff.c:5423
+#: diff.c:5426
msgid "ignore whitespace when comparing lines"
msgstr "ignorar espacios en blanco cuando comparando líneas"
-#: diff.c:5426
+#: diff.c:5429
msgid "ignore changes in amount of whitespace"
msgstr "ignorar cambios en la cantidad de líneas en blanco"
-#: diff.c:5429
+#: diff.c:5432
msgid "ignore changes in whitespace at EOL"
msgstr "ignorar cambios en espacios en blanco en EOL"
-#: diff.c:5432
+#: diff.c:5435
msgid "ignore carrier-return at the end of line"
msgstr "ignora carrier-return al final de la línea"
-#: diff.c:5435
+#: diff.c:5438
msgid "ignore changes whose lines are all blank"
msgstr "ignora cambios cuyas líneas son todas en blanco"
-#: diff.c:5438
+#: diff.c:5441
msgid "heuristic to shift diff hunk boundaries for easy reading"
msgstr "heurística para cambiar los límites de hunk para una fácil lectura"
-#: diff.c:5441
+#: diff.c:5444
msgid "generate diff using the \"patience diff\" algorithm"
msgstr "genera un diff usando algoritmo \"patience diff\""
-#: diff.c:5445
+#: diff.c:5448
msgid "generate diff using the \"histogram diff\" algorithm"
msgstr "genera un diff usando algoritmo \"histogram diff\""
-#: diff.c:5447
+#: diff.c:5450
msgid "<algorithm>"
msgstr "<algoritmo>"
-#: diff.c:5448
+#: diff.c:5451
msgid "choose a diff algorithm"
msgstr "escoge un algoritmo para diff"
-#: diff.c:5450
+#: diff.c:5453
msgid "<text>"
msgstr "<texto>"
-#: diff.c:5451
+#: diff.c:5454
msgid "generate diff using the \"anchored diff\" algorithm"
msgstr "genera un diff usando algoritmo \"anchored diff\""
-#: diff.c:5453 diff.c:5462 diff.c:5465
+#: diff.c:5456 diff.c:5465 diff.c:5468
msgid "<mode>"
msgstr "<modo>"
-#: diff.c:5454
+#: diff.c:5457
msgid "show word diff, using <mode> to delimit changed words"
msgstr ""
"muestra diff por palabras usando <modo> para delimitar las palabras cambiadas"
-#: diff.c:5456 diff.c:5459 diff.c:5504
+#: diff.c:5459 diff.c:5462 diff.c:5507
msgid "<regex>"
msgstr "<regex>"
-#: diff.c:5457
+#: diff.c:5460
msgid "use <regex> to decide what a word is"
msgstr "usa <regex> para decidir que palabra es"
-#: diff.c:5460
+#: diff.c:5463
msgid "equivalent to --word-diff=color --word-diff-regex=<regex>"
msgstr "equivalente a --word-diff=color --word-diff-regex=<regex>"
-#: diff.c:5463
+#: diff.c:5466
msgid "moved lines of code are colored differently"
msgstr "líneas movidas de código están coloreadas diferente"
-#: diff.c:5466
+#: diff.c:5469
msgid "how white spaces are ignored in --color-moved"
msgstr "como espacios en blanco son ignorados en --color-moved"
-#: diff.c:5469
+#: diff.c:5472
msgid "Other diff options"
msgstr "Otras opciones de diff"
-#: diff.c:5471
+#: diff.c:5474
msgid "when run from subdir, exclude changes outside and show relative paths"
msgstr ""
"cuando ejecutado desde un subdir, excluye cambios del exterior y muestra "
"paths relativos"
-#: diff.c:5475
+#: diff.c:5478
msgid "treat all files as text"
msgstr "tratar todos los archivos como texto"
-#: diff.c:5477
+#: diff.c:5480
msgid "swap two inputs, reverse the diff"
msgstr "cambia dos inputs, invierte el diff"
-#: diff.c:5479
+#: diff.c:5482
msgid "exit with 1 if there were differences, 0 otherwise"
msgstr "termina con 1 si hubieron diferencias, de lo contrario con 0"
-#: diff.c:5481
+#: diff.c:5484
msgid "disable all output of the program"
msgstr "deshabilita todo el output del programa"
-#: diff.c:5483
+#: diff.c:5486
msgid "allow an external diff helper to be executed"
msgstr "permite la ejecución de un diff helper externo"
-#: diff.c:5485
+#: diff.c:5488
msgid "run external text conversion filters when comparing binary files"
msgstr ""
"ejecuta filtros de conversión de texto externos cuando comparando binarios"
-#: diff.c:5487
+#: diff.c:5490
msgid "<when>"
msgstr "<cuando>"
-#: diff.c:5488
+#: diff.c:5491
msgid "ignore changes to submodules in the diff generation"
msgstr "ignorar cambios a submódulos en la generación de diff"
-#: diff.c:5491
+#: diff.c:5494
msgid "<format>"
msgstr "<formato>"
-#: diff.c:5492
+#: diff.c:5495
msgid "specify how differences in submodules are shown"
msgstr "especifica como son mostradas las diferencias en submódulos"
-#: diff.c:5496
+#: diff.c:5499
msgid "hide 'git add -N' entries from the index"
msgstr "ocultar entradas 'git add -N' del index"
-#: diff.c:5499
+#: diff.c:5502
msgid "treat 'git add -N' entries as real in the index"
msgstr "trata entradas 'git add -N' como reales en el index"
-#: diff.c:5501
+#: diff.c:5504
msgid "<string>"
msgstr "<string>"
-#: diff.c:5502
+#: diff.c:5505
msgid ""
"look for differences that change the number of occurrences of the specified "
"string"
@@ -2953,7 +2962,7 @@ msgstr ""
"busca por diferencias que cambien el número de ocurrencias para el string "
"especificado"
-#: diff.c:5505
+#: diff.c:5508
msgid ""
"look for differences that change the number of occurrences of the specified "
"regex"
@@ -2961,23 +2970,23 @@ msgstr ""
"busca por diferencias que cambien el número de ocurrencias para el regex "
"especificado"
-#: diff.c:5508
+#: diff.c:5511
msgid "show all changes in the changeset with -S or -G"
msgstr "mostrar todos los cambios en el changeset con -S o -G"
-#: diff.c:5511
+#: diff.c:5514
msgid "treat <string> in -S as extended POSIX regular expression"
msgstr "tratar <string> en -S como una expresión regular extendida de POSIX"
-#: diff.c:5514
+#: diff.c:5517
msgid "control the order in which files appear in the output"
msgstr "controlar el orden en el que los archivos aparecen en la salida"
-#: diff.c:5515
+#: diff.c:5518
msgid "<object-id>"
msgstr "<id-objeto>"
-#: diff.c:5516
+#: diff.c:5519
msgid ""
"look for differences that change the number of occurrences of the specified "
"object"
@@ -2985,33 +2994,33 @@ msgstr ""
"busca por diferencias que cambien el número de ocurrencias para el objeto "
"especificado"
-#: diff.c:5518
+#: diff.c:5521
msgid "[(A|C|D|M|R|T|U|X|B)...[*]]"
msgstr "[(A|C|D|M|R|T|U|X|B)...[*]]"
-#: diff.c:5519
+#: diff.c:5522
msgid "select files by diff type"
msgstr "selecciona archivos por tipo de diff"
-#: diff.c:5521
+#: diff.c:5524
msgid "<file>"
msgstr "<archivo>"
-#: diff.c:5522
+#: diff.c:5525
msgid "Output to a specific file"
msgstr "Output a un archivo específico"
-#: diff.c:6177
+#: diff.c:6180
msgid "inexact rename detection was skipped due to too many files."
msgstr ""
"detección de cambio de nombre inexacta fue saltada por haber muchos archivos."
-#: diff.c:6180
+#: diff.c:6183
msgid "only found copies from modified paths due to too many files."
msgstr ""
"solo se encontraron copias de rutas modificadas por haber muchos archivos."
-#: diff.c:6183
+#: diff.c:6186
#, c-format
msgid ""
"you may want to set your %s variable to at least %d and retry the command."
@@ -3019,41 +3028,41 @@ msgstr ""
"tal vez quieras configurar la variable %s para por lo menos %d y volver a "
"intentar el comando."
-#: dir.c:537
+#: dir.c:549
#, c-format
msgid "pathspec '%s' did not match any file(s) known to git"
msgstr ""
"ruta especificada '%s' no concordó con ningún archivo(s) conocido por git"
-#: dir.c:926
+#: dir.c:938
#, c-format
msgid "cannot use %s as an exclude file"
msgstr "no se puede usar %s como archivo de exclusión"
-#: dir.c:1843
+#: dir.c:1877
#, c-format
msgid "could not open directory '%s'"
msgstr "no se pudo abrir el directorio '%s'"
-#: dir.c:2085
+#: dir.c:2128
msgid "failed to get kernel name and information"
msgstr "falló al conseguir la información y nombre del kernel"
-#: dir.c:2209
+#: dir.c:2252
msgid "untracked cache is disabled on this system or location"
msgstr "untracked cache está desactivado en este sistema o ubicación"
-#: dir.c:3013
+#: dir.c:3056
#, c-format
msgid "index file corrupt in repo %s"
msgstr "archivo índice corrompido en repositorio %s"
-#: dir.c:3058 dir.c:3063
+#: dir.c:3101 dir.c:3106
#, c-format
msgid "could not create directories for %s"
msgstr "no se pudo crear directorios para %s"
-#: dir.c:3092
+#: dir.c:3135
#, c-format
msgid "could not migrate git directory from '%s' to '%s'"
msgstr "no se pudo migrar el directorio git de '%s' a '%s'"
@@ -3072,12 +3081,12 @@ msgstr "Filtrando contenido"
msgid "could not stat file '%s'"
msgstr "no se pudo establecer el archivo '%s'"
-#: environment.c:150
+#: environment.c:148
#, c-format
msgid "bad git namespace path \"%s\""
msgstr "ruta de namespace de git mala \"%s\""
-#: environment.c:332
+#: environment.c:330
#, c-format
msgid "could not set GIT_DIR to '%s'"
msgstr "no se pudo configurar GIT_DIR a '%s'"
@@ -3087,159 +3096,155 @@ msgstr "no se pudo configurar GIT_DIR a '%s'"
msgid "too many args to run %s"
msgstr "demasiados argumentos para correr %s"
-#: fetch-object.c:17
-msgid "Remote with no URL"
-msgstr "Remoto sin URL"
-
-#: fetch-pack.c:151
+#: fetch-pack.c:150
msgid "git fetch-pack: expected shallow list"
msgstr "git fetch-pack: lista poco profunda esperada"
-#: fetch-pack.c:154
+#: fetch-pack.c:153
msgid "git fetch-pack: expected a flush packet after shallow list"
msgstr ""
"git fetch-pack: se esperaba un flush packet luego de la lista superficial"
-#: fetch-pack.c:165
+#: fetch-pack.c:164
msgid "git fetch-pack: expected ACK/NAK, got a flush packet"
msgstr "git fetch-pack: se esperaba ACK/NAK, se obtuvo un flush packet"
-#: fetch-pack.c:185
+#: fetch-pack.c:184
#, c-format
msgid "git fetch-pack: expected ACK/NAK, got '%s'"
msgstr "git fetch-pack: se esperaba ACK/NAK, se obtuvo '%s'"
-#: fetch-pack.c:196
+#: fetch-pack.c:195
msgid "unable to write to remote"
msgstr "no se puede escribir al remoto"
-#: fetch-pack.c:258
+#: fetch-pack.c:257
msgid "--stateless-rpc requires multi_ack_detailed"
msgstr "--stateless-rpc requiere multi_ack_detailed"
-#: fetch-pack.c:360 fetch-pack.c:1284
+#: fetch-pack.c:356 fetch-pack.c:1280
#, c-format
msgid "invalid shallow line: %s"
msgstr "línea poco profunda inválida: %s"
-#: fetch-pack.c:366 fetch-pack.c:1290
+#: fetch-pack.c:362 fetch-pack.c:1286
#, c-format
msgid "invalid unshallow line: %s"
msgstr "línea superficial inválida: %s"
-#: fetch-pack.c:368 fetch-pack.c:1292
+#: fetch-pack.c:364 fetch-pack.c:1288
#, c-format
msgid "object not found: %s"
msgstr "objeto no encontrado: %s"
-#: fetch-pack.c:371 fetch-pack.c:1295
+#: fetch-pack.c:367 fetch-pack.c:1291
#, c-format
msgid "error in object: %s"
msgstr "error en objeto: %s"
-#: fetch-pack.c:373 fetch-pack.c:1297
+#: fetch-pack.c:369 fetch-pack.c:1293
#, c-format
msgid "no shallow found: %s"
msgstr "superficie no encontrada: %s"
-#: fetch-pack.c:376 fetch-pack.c:1301
+#: fetch-pack.c:372 fetch-pack.c:1297
#, c-format
msgid "expected shallow/unshallow, got %s"
msgstr "se esperaba shallow/unshallow, se obtuvo %s"
-#: fetch-pack.c:417
+#: fetch-pack.c:414
#, c-format
msgid "got %s %d %s"
msgstr "se obtuvo %s %d %s"
-#: fetch-pack.c:434
+#: fetch-pack.c:431
#, c-format
msgid "invalid commit %s"
msgstr "commit inválido %s"
-#: fetch-pack.c:465
+#: fetch-pack.c:462
msgid "giving up"
msgstr "rindiéndose"
-#: fetch-pack.c:477 progress.c:277
+#: fetch-pack.c:475 progress.c:312
msgid "done"
msgstr "listo"
-#: fetch-pack.c:489
+#: fetch-pack.c:487
#, c-format
msgid "got %s (%d) %s"
msgstr "se obtuvo %s (%d) %s"
-#: fetch-pack.c:535
+#: fetch-pack.c:533
#, c-format
msgid "Marking %s as complete"
msgstr "Marcando %s como completa"
-#: fetch-pack.c:744
+#: fetch-pack.c:742
#, c-format
msgid "already have %s (%s)"
msgstr "ya se tiene %s (%s)"
-#: fetch-pack.c:783
+#: fetch-pack.c:781
msgid "fetch-pack: unable to fork off sideband demultiplexer"
msgstr "fetch-pack: no se puede extraer un demultiplexor de banda lateral"
-#: fetch-pack.c:791
+#: fetch-pack.c:789
msgid "protocol error: bad pack header"
msgstr "error de protocolo: paquete de header erróneo"
-#: fetch-pack.c:859
+#: fetch-pack.c:857
#, c-format
msgid "fetch-pack: unable to fork off %s"
msgstr "fetch-pack: no se puede quitar %s"
-#: fetch-pack.c:875
+#: fetch-pack.c:873
#, c-format
msgid "%s failed"
msgstr "%s falló"
-#: fetch-pack.c:877
+#: fetch-pack.c:875
msgid "error in sideband demultiplexer"
msgstr "error en demultiplexor de banda lateral"
-#: fetch-pack.c:908
+#: fetch-pack.c:907
#, c-format
msgid "Server version is %.*s"
msgstr "Versión de servidor es %.*s"
-#: fetch-pack.c:913 fetch-pack.c:919 fetch-pack.c:922 fetch-pack.c:928
-#: fetch-pack.c:932 fetch-pack.c:936 fetch-pack.c:940 fetch-pack.c:944
-#: fetch-pack.c:948 fetch-pack.c:952 fetch-pack.c:956 fetch-pack.c:960
-#: fetch-pack.c:966 fetch-pack.c:972 fetch-pack.c:977 fetch-pack.c:982
+#: fetch-pack.c:912 fetch-pack.c:918 fetch-pack.c:921 fetch-pack.c:927
+#: fetch-pack.c:931 fetch-pack.c:935 fetch-pack.c:939 fetch-pack.c:943
+#: fetch-pack.c:947 fetch-pack.c:951 fetch-pack.c:955 fetch-pack.c:959
+#: fetch-pack.c:965 fetch-pack.c:971 fetch-pack.c:976 fetch-pack.c:981
#, c-format
msgid "Server supports %s"
msgstr "El servidor soporta %s"
-#: fetch-pack.c:915
+#: fetch-pack.c:914
msgid "Server does not support shallow clients"
msgstr "El servidor no soporta clientes superficiales"
-#: fetch-pack.c:975
+#: fetch-pack.c:974
msgid "Server does not support --shallow-since"
msgstr "El servidor no soporta --shalow-since"
-#: fetch-pack.c:980
+#: fetch-pack.c:979
msgid "Server does not support --shallow-exclude"
msgstr "El servidor no soporta --shalow-exclude"
-#: fetch-pack.c:984
+#: fetch-pack.c:983
msgid "Server does not support --deepen"
msgstr "El servidor no soporta --deepen"
-#: fetch-pack.c:1001
+#: fetch-pack.c:1000
msgid "no common commits"
msgstr "no hay commits comunes"
-#: fetch-pack.c:1013 fetch-pack.c:1462
+#: fetch-pack.c:1012 fetch-pack.c:1468
msgid "git fetch-pack: fetch failed."
msgstr "git fetch-pack: fetch falló."
-#: fetch-pack.c:1151
+#: fetch-pack.c:1150
msgid "Server does not support shallow requests"
msgstr "El servidor no soporta peticiones superficiales"
@@ -3247,72 +3252,72 @@ msgstr "El servidor no soporta peticiones superficiales"
msgid "Server supports filter"
msgstr "El servidor soporta filtro"
-#: fetch-pack.c:1184
+#: fetch-pack.c:1180
msgid "unable to write request to remote"
msgstr "no se puede escribir request al remoto"
-#: fetch-pack.c:1202
+#: fetch-pack.c:1198
#, c-format
msgid "error reading section header '%s'"
msgstr "error leyendo sección header '%s'"
-#: fetch-pack.c:1208
+#: fetch-pack.c:1204
#, c-format
msgid "expected '%s', received '%s'"
msgstr "se esperaba '%s', se recibió '%s'"
-#: fetch-pack.c:1247
+#: fetch-pack.c:1243
#, c-format
msgid "unexpected acknowledgment line: '%s'"
msgstr "línea de confirmación inesperada: '%s'"
-#: fetch-pack.c:1252
+#: fetch-pack.c:1248
#, c-format
msgid "error processing acks: %d"
msgstr "error procesando acks: %d"
-#: fetch-pack.c:1262
+#: fetch-pack.c:1258
msgid "expected packfile to be sent after 'ready'"
msgstr "espere que el packfile sea mandado luego del 'listo'"
-#: fetch-pack.c:1264
+#: fetch-pack.c:1260
msgid "expected no other sections to be sent after no 'ready'"
msgstr "espere que ninguna otra sección sea enviada luego del 'listo'"
-#: fetch-pack.c:1306
+#: fetch-pack.c:1302
#, c-format
msgid "error processing shallow info: %d"
msgstr "error procesando información superficial: %d"
-#: fetch-pack.c:1353
+#: fetch-pack.c:1349
#, c-format
msgid "expected wanted-ref, got '%s'"
msgstr "se esperaba wanted-ref, se obtuvo '%s'"
-#: fetch-pack.c:1358
+#: fetch-pack.c:1354
#, c-format
msgid "unexpected wanted-ref: '%s'"
msgstr "wanted-ref inesperado: '%s'"
-#: fetch-pack.c:1363
+#: fetch-pack.c:1359
#, c-format
msgid "error processing wanted refs: %d"
msgstr "error procesando refs deseadas: %d"
-#: fetch-pack.c:1689
+#: fetch-pack.c:1693
msgid "no matching remote head"
msgstr "no concuerda el head remoto"
-#: fetch-pack.c:1712 builtin/clone.c:686
+#: fetch-pack.c:1716 builtin/clone.c:685
msgid "remote did not send all necessary objects"
msgstr "remoto no mando todos los objetos necesarios"
-#: fetch-pack.c:1739
+#: fetch-pack.c:1743
#, c-format
msgid "no such remote ref %s"
msgstr "no existe ref remota %s"
-#: fetch-pack.c:1742
+#: fetch-pack.c:1746
#, c-format
msgid "Server does not allow request for unadvertised object %s"
msgstr "El servidor no permite solicitudes de objetos inadvertidos %s"
@@ -3335,18 +3340,26 @@ msgstr "falló al escribir la firma separada para '%s'"
msgid "ignore invalid color '%.*s' in log.graphColors"
msgstr "ignora color inválido '%.*s' en log.graphColors"
-#: grep.c:2117
+#: grep.c:668
+msgid ""
+"given pattern contains NULL byte (via -f <file>). This is only supported "
+"with -P under PCRE v2"
+msgstr ""
+"el patrón provisto contiene bytes NULL (via -f <archivo>). Esto solo es "
+"soportado con -P bajo PCRE v2"
+
+#: grep.c:2124
#, c-format
msgid "'%s': unable to read %s"
msgstr "'%s': no es posible leer %s"
-#: grep.c:2134 setup.c:164 builtin/clone.c:409 builtin/diff.c:82
+#: grep.c:2141 setup.c:165 builtin/clone.c:408 builtin/diff.c:82
#: builtin/rm.c:135
#, c-format
msgid "failed to stat '%s'"
msgstr "falló al marcar '%s'"
-#: grep.c:2145
+#: grep.c:2152
#, c-format
msgid "'%s': short read"
msgstr "'%s': lectura corta"
@@ -3444,7 +3457,7 @@ msgid ""
"able to execute it. Maybe git-%s is broken?"
msgstr ""
"'%s' parece ser un comando de git, pero no hemos\n"
-"podido ejecutarlo. Tal vez git-%s se ha roto?"
+"podido ejecutarlo. ¿Tal vez git-%s se ha roto?"
#: help.c:655
msgid "Uh oh. Your system reports no Git commands at all."
@@ -3488,12 +3501,12 @@ msgstr[1] ""
msgid "git version [<options>]"
msgstr "git versión [<opciones>]"
-#: help.c:782
+#: help.c:783
#, c-format
msgid "%s: %s - %s"
msgstr "%s: %s - %s"
-#: help.c:786
+#: help.c:787
msgid ""
"\n"
"Did you mean this?"
@@ -3566,41 +3579,56 @@ msgstr "el nombre consiste solo de caracteres no permitidos: %s"
msgid "invalid date format: %s"
msgstr "formato de fecha inválido: %s"
-#: list-objects.c:129
+#: list-objects.c:127
#, c-format
msgid "entry '%s' in tree %s has tree mode, but is not a tree"
msgstr "entrada '%s' en árbol %s tiene modo árbol, pero no es uno"
-#: list-objects.c:142
+#: list-objects.c:140
#, c-format
msgid "entry '%s' in tree %s has blob mode, but is not a blob"
msgstr "entrada '%s' en árbol %s tiene modo blob, pero no es uno"
-#: list-objects.c:378
+#: list-objects.c:375
#, c-format
msgid "unable to load root tree for commit %s"
msgstr "no se puede cargar árbol raíz para commit %s"
-#: list-objects-filter-options.c:36
-msgid "multiple filter-specs cannot be combined"
-msgstr "no se pueden combinar múltiples tipos de especificaciones de filtro"
+#: list-objects-filter.c:492
+#, c-format
+msgid "unable to access sparse blob in '%s'"
+msgstr "no es posible acceder al blob en '%s'"
+
+#: list-objects-filter.c:495
+#, c-format
+msgid "unable to parse sparse filter data in %s"
+msgstr "incapaz de analizar filtro de data en %s"
#: list-objects-filter-options.c:58
msgid "expected 'tree:<depth>'"
msgstr "se esperaba 'tree:<depth>'"
-#: list-objects-filter-options.c:84
+#: list-objects-filter-options.c:73
msgid "sparse:path filters support has been dropped"
msgstr "soporte para filtros sparse:path ha sido discontinuado"
-#: list-objects-filter-options.c:94
+#: list-objects-filter-options.c:86
#, c-format
msgid "invalid filter-spec '%s'"
msgstr "filtro -spec inválido '%s'"
-#: list-objects-filter-options.c:158
-msgid "cannot change partial clone promisor remote"
-msgstr "no se puede cambiar un clon parcial remoto promisor"
+#: list-objects-filter-options.c:102
+#, c-format
+msgid "must escape char in sub-filter-spec: '%c'"
+msgstr "tienes que escapar el caracter en sub-filter-spec: '%c'"
+
+#: list-objects-filter-options.c:144
+msgid "expected something after combine:"
+msgstr "se espera algo luego de combine:"
+
+#: list-objects-filter-options.c:226
+msgid "multiple filter-specs cannot be combined"
+msgstr "no se pueden combinar múltiples tipos de especificaciones de filtro"
#: lockfile.c:151
#, c-format
@@ -3631,115 +3659,111 @@ msgstr "No se pudo crear '%s.lock': %s"
msgid "failed to read the cache"
msgstr "falló al leer la cache"
-#: merge.c:107 rerere.c:720 builtin/am.c:1885 builtin/am.c:1919
-#: builtin/checkout.c:536 builtin/checkout.c:796 builtin/clone.c:786
+#: merge.c:107 rerere.c:720 builtin/am.c:1874 builtin/am.c:1908
+#: builtin/checkout.c:537 builtin/checkout.c:796 builtin/clone.c:785
#: builtin/stash.c:264
msgid "unable to write new index file"
msgstr "no es posible escribir el archivo índice"
-#: merge-recursive.c:322
+#: merge-recursive.c:367
msgid "(bad commit)\n"
msgstr "(commit erróneo)\n"
-#: merge-recursive.c:345
+#: merge-recursive.c:390
#, c-format
msgid "add_cacheinfo failed for path '%s'; merge aborting."
msgstr "add_cacheinfo falló para la ruta '%s'; abortando fusión."
-#: merge-recursive.c:354
+#: merge-recursive.c:399
#, c-format
msgid "add_cacheinfo failed to refresh for path '%s'; merge aborting."
msgstr "add_cacheinfo falló para refrescar la ruta '%s'; abortando fusión."
-#: merge-recursive.c:437
-msgid "error building trees"
-msgstr "error construyendo árboles"
-
-#: merge-recursive.c:863
+#: merge-recursive.c:885
#, c-format
msgid "failed to create path '%s'%s"
msgstr "falló al crear la ruta '%s'%s"
-#: merge-recursive.c:874
+#: merge-recursive.c:896
#, c-format
msgid "Removing %s to make room for subdirectory\n"
msgstr "Removiendo %s para hacer espacio para un subdirectorio\n"
-#: merge-recursive.c:888 merge-recursive.c:907
+#: merge-recursive.c:910 merge-recursive.c:929
msgid ": perhaps a D/F conflict?"
-msgstr ": tal vez un conflicto D/F?"
+msgstr ": ¿tal vez un conflicto D/F?"
-#: merge-recursive.c:897
+#: merge-recursive.c:919
#, c-format
msgid "refusing to lose untracked file at '%s'"
msgstr "rehusando perder el archivo rastreado en '%s'"
-#: merge-recursive.c:938 builtin/cat-file.c:40
+#: merge-recursive.c:960 builtin/cat-file.c:41
#, c-format
msgid "cannot read object %s '%s'"
msgstr "no se puede leer el objeto %s '%s'"
-#: merge-recursive.c:941
+#: merge-recursive.c:965
#, c-format
msgid "blob expected for %s '%s'"
msgstr "se esperaba blob para %s '%s'"
-#: merge-recursive.c:965
+#: merge-recursive.c:990
#, c-format
msgid "failed to open '%s': %s"
msgstr "falló al abrir '%s': %s"
-#: merge-recursive.c:976
+#: merge-recursive.c:1001
#, c-format
msgid "failed to symlink '%s': %s"
msgstr "falló al crear el enlace simbólico '%s': %s"
-#: merge-recursive.c:981
+#: merge-recursive.c:1006
#, c-format
msgid "do not know what to do with %06o %s '%s'"
msgstr "no se que hacer con %06o %s '%s'"
-#: merge-recursive.c:1177
+#: merge-recursive.c:1199
#, c-format
msgid "Failed to merge submodule %s (not checked out)"
msgstr "Falló al fusionar el submódulo %s (no revisado)"
-#: merge-recursive.c:1184
+#: merge-recursive.c:1206
#, c-format
msgid "Failed to merge submodule %s (commits not present)"
msgstr "Falló al fusionar el submódulo %s (commits no presentes)"
-#: merge-recursive.c:1191
+#: merge-recursive.c:1213
#, c-format
msgid "Failed to merge submodule %s (commits don't follow merge-base)"
msgstr "Falló el fusionar submódulo %s (commits no siguen la fusión base)"
-#: merge-recursive.c:1199 merge-recursive.c:1211
+#: merge-recursive.c:1221 merge-recursive.c:1233
#, c-format
msgid "Fast-forwarding submodule %s to the following commit:"
msgstr "Haciendo fast-forward a submódulo %s para el siguiente commit:"
-#: merge-recursive.c:1202 merge-recursive.c:1214
+#: merge-recursive.c:1224 merge-recursive.c:1236
#, c-format
msgid "Fast-forwarding submodule %s"
msgstr "Avance rápido en submódulo %s"
-#: merge-recursive.c:1237
+#: merge-recursive.c:1259
#, c-format
msgid "Failed to merge submodule %s (merge following commits not found)"
msgstr ""
"Falló al fusionar submódulo %s (los siguentes commits no fueron encontrados)"
-#: merge-recursive.c:1241
+#: merge-recursive.c:1263
#, c-format
msgid "Failed to merge submodule %s (not fast-forward)"
msgstr "Falló al fusionar el submódulo %s (no es posible avance rápido)"
-#: merge-recursive.c:1242
+#: merge-recursive.c:1264
msgid "Found a possible merge resolution for the submodule:\n"
msgstr "Se encontró una posible solución de fusión para el submódulo:\n"
-#: merge-recursive.c:1245
+#: merge-recursive.c:1267
#, c-format
msgid ""
"If this is correct simply add it to the index for example\n"
@@ -3756,33 +3780,33 @@ msgstr ""
"\n"
"el cual aceptará esta sugerencia.\n"
-#: merge-recursive.c:1254
+#: merge-recursive.c:1276
#, c-format
msgid "Failed to merge submodule %s (multiple merges found)"
msgstr "Falló al fusionar el submódulo %s (fusiones múltiples encontradas)"
-#: merge-recursive.c:1327
+#: merge-recursive.c:1349
msgid "Failed to execute internal merge"
msgstr "Falló al ejecutar la fusión interna"
-#: merge-recursive.c:1332
+#: merge-recursive.c:1354
#, c-format
msgid "Unable to add %s to database"
msgstr "No es posible agregar %s a la base de datos"
-#: merge-recursive.c:1364
+#: merge-recursive.c:1386
#, c-format
msgid "Auto-merging %s"
msgstr "Auto-fusionando %s"
-#: merge-recursive.c:1387
+#: merge-recursive.c:1410
#, c-format
msgid "Error: Refusing to lose untracked file at %s; writing to %s instead."
msgstr ""
"Error: Rehusando perder el archivo no rastreado en %s; escribiéndolo a %s en "
"cambio."
-#: merge-recursive.c:1459
+#: merge-recursive.c:1482
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -3791,7 +3815,7 @@ msgstr ""
"CONFLICTO (%s/borrar): %s borrado en %s y %s en %s. Falta versión %s de %s "
"en el árbol."
-#: merge-recursive.c:1464
+#: merge-recursive.c:1487
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -3800,7 +3824,7 @@ msgstr ""
"CONFLICTO (%s/borrar): %s borrado en %s y %s para %s en %s. Versión %s de %s "
"permanece en el árbol."
-#: merge-recursive.c:1471
+#: merge-recursive.c:1494
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -3809,7 +3833,7 @@ msgstr ""
"CONFLICTO (%s/eliminar): %s eliminado en %s y %s en %s. Versión %s de %s "
"dejada en el árbol, en %s."
-#: merge-recursive.c:1476
+#: merge-recursive.c:1499
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -3818,44 +3842,44 @@ msgstr ""
"CONFLICTO (%s/borrar): %s borrado en %s y %s para %s en %s. Versión %s de %s "
"permanece en el árbol en %s."
-#: merge-recursive.c:1511
+#: merge-recursive.c:1534
msgid "rename"
msgstr "renombrar"
-#: merge-recursive.c:1511
+#: merge-recursive.c:1534
msgid "renamed"
msgstr "renombrado"
-#: merge-recursive.c:1591 merge-recursive.c:2450 merge-recursive.c:3094
+#: merge-recursive.c:1614 merge-recursive.c:2472 merge-recursive.c:3117
#, c-format
msgid "Refusing to lose dirty file at %s"
msgstr "Rehusando perder el archivo sucio en %s"
-#: merge-recursive.c:1601
+#: merge-recursive.c:1624
#, c-format
msgid "Refusing to lose untracked file at %s, even though it's in the way."
msgstr ""
"Rehusando perder el archivo no rastreado en %s, incluso aunque se está "
"interponiendo."
-#: merge-recursive.c:1659
+#: merge-recursive.c:1682
#, c-format
msgid "CONFLICT (rename/add): Rename %s->%s in %s. Added %s in %s"
msgstr ""
"CONFLICTO (renombrar/agregar): Renombrar %s->%s en %s. %s agregado en %s"
-#: merge-recursive.c:1690
+#: merge-recursive.c:1713
#, c-format
msgid "%s is a directory in %s adding as %s instead"
msgstr "%s es un directorio en %s agregando como %s más bien"
-#: merge-recursive.c:1695
+#: merge-recursive.c:1718
#, c-format
msgid "Refusing to lose untracked file at %s; adding as %s instead"
msgstr ""
"Rehusando perder el archivo no rastreado en %s; agregándolo como %s en cambio"
-#: merge-recursive.c:1714
+#: merge-recursive.c:1737
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
@@ -3864,18 +3888,18 @@ msgstr ""
"CONFLICTO (renombrar/renombrar): Renombrar \"%s\"->\"%s\" en la rama \"%s\" "
"renombrar \"%s\"->\"%s\" en \"%s\"%s"
-#: merge-recursive.c:1719
+#: merge-recursive.c:1742
msgid " (left unresolved)"
msgstr " (dejado sin resolver)"
-#: merge-recursive.c:1828
+#: merge-recursive.c:1851
#, c-format
msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
msgstr ""
"CONFLICTO (renombrar/renombrar): Renombrar %s->%s en %s. Renombrar %s->%s en "
"%s"
-#: merge-recursive.c:2035
+#: merge-recursive.c:2056
#, c-format
msgid ""
"CONFLICT (directory rename split): Unclear where to place %s because "
@@ -3886,7 +3910,7 @@ msgstr ""
"colocar %s porque el directorio %s fue renombrado a otros múltiples "
"directorios, sin ningún que contenga la mayoría de archivos."
-#: merge-recursive.c:2067
+#: merge-recursive.c:2088
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Existing file/dir at %s in the way of "
@@ -3896,7 +3920,7 @@ msgstr ""
"existente en %s se interpone con el cambio de nombres implícito, poniendo "
"la(s) siguiente(s) ruta(s) aquí: %s."
-#: merge-recursive.c:2077
+#: merge-recursive.c:2098
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Cannot map more than one path to %s; "
@@ -3905,7 +3929,7 @@ msgstr ""
"CONFLICTO (cambio de nombre implícito): No se puede mapear más de una ruta "
"para %s; cambio de nombre implícito intentó poner estas rutas: %s"
-#: merge-recursive.c:2169
+#: merge-recursive.c:2190
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename directory %s->%s in %s. Rename directory %s-"
@@ -3914,7 +3938,7 @@ msgstr ""
"CONFLICTO (renombrar/renombrar): Renombrar directorio %s->%s en %s. "
"Renombrar directorio %s->%s en %s"
-#: merge-recursive.c:2413
+#: merge-recursive.c:2435
#, c-format
msgid ""
"WARNING: Avoiding applying %s -> %s rename to %s, because %s itself was "
@@ -3923,52 +3947,52 @@ msgstr ""
"PELIGRO: Evitando aplicar %s -> %s renombrado a %s, porque %s mismo fue "
"renombrado."
-#: merge-recursive.c:2938
+#: merge-recursive.c:2961
#, c-format
msgid "cannot read object %s"
msgstr "no se pudo leer el objeto %s"
-#: merge-recursive.c:2941
+#: merge-recursive.c:2964
#, c-format
msgid "object %s is not a blob"
msgstr "objeto %s no es un blob"
-#: merge-recursive.c:3005
+#: merge-recursive.c:3028
msgid "modify"
msgstr "modificar"
-#: merge-recursive.c:3005
+#: merge-recursive.c:3028
msgid "modified"
msgstr "modificado"
-#: merge-recursive.c:3017
+#: merge-recursive.c:3040
msgid "content"
msgstr "contenido"
-#: merge-recursive.c:3021
+#: merge-recursive.c:3044
msgid "add/add"
msgstr "agregar/agregar"
-#: merge-recursive.c:3044
+#: merge-recursive.c:3067
#, c-format
msgid "Skipped %s (merged same as existing)"
msgstr "Saltado %s (fusionado como existente)"
-#: merge-recursive.c:3066 git-submodule.sh:937
+#: merge-recursive.c:3089 git-submodule.sh:937
msgid "submodule"
msgstr "submódulo"
-#: merge-recursive.c:3067
+#: merge-recursive.c:3090
#, c-format
msgid "CONFLICT (%s): Merge conflict in %s"
msgstr "CONFLICTO (%s): Conflicto de fusión en %s"
-#: merge-recursive.c:3097
+#: merge-recursive.c:3120
#, c-format
msgid "Adding as %s instead"
msgstr "Agregando más bien como %s"
-#: merge-recursive.c:3179
+#: merge-recursive.c:3203
#, c-format
msgid ""
"Path updated: %s added in %s inside a directory that was renamed in %s; "
@@ -3977,7 +4001,7 @@ msgstr ""
"Path actualizado: %s agregado en %s dentro de un directorio que fue "
"renombrado en %s; moviéndolo a %s."
-#: merge-recursive.c:3182
+#: merge-recursive.c:3206
#, c-format
msgid ""
"CONFLICT (file location): %s added in %s inside a directory that was renamed "
@@ -3986,7 +4010,7 @@ msgstr ""
"CONFLICTO (ubicación de archivo): %s agregado en %s dentro de un directorio "
"que fue renombrado en %s, sugerimos que debería ser movido a %s."
-#: merge-recursive.c:3186
+#: merge-recursive.c:3210
#, c-format
msgid ""
"Path updated: %s renamed to %s in %s, inside a directory that was renamed in "
@@ -3995,7 +4019,7 @@ msgstr ""
"Path actualizado: %s renombrado a %s en %s, dentro de un directorio que fue "
"renombrado en %s; moviéndolo a %s."
-#: merge-recursive.c:3189
+#: merge-recursive.c:3213
#, c-format
msgid ""
"CONFLICT (file location): %s renamed to %s in %s, inside a directory that "
@@ -4005,230 +4029,230 @@ msgstr ""
"directorio que fue renombrado en %s, sugiriendo que tal vez debería ser "
"movido a %s."
-#: merge-recursive.c:3303
+#: merge-recursive.c:3327
#, c-format
msgid "Removing %s"
msgstr "Eliminando %s"
-#: merge-recursive.c:3326
+#: merge-recursive.c:3350
msgid "file/directory"
msgstr "archivo/directorio"
-#: merge-recursive.c:3331
+#: merge-recursive.c:3355
msgid "directory/file"
msgstr "directorio/archivo"
-#: merge-recursive.c:3338
+#: merge-recursive.c:3362
#, c-format
msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
msgstr ""
"CONFLICTO (%s): Hay un directorio con el nombre %s en %s. Agregando %s como "
"%s"
-#: merge-recursive.c:3347
+#: merge-recursive.c:3371
#, c-format
msgid "Adding %s"
msgstr "Agregando %s"
-#: merge-recursive.c:3356
+#: merge-recursive.c:3380
#, c-format
msgid "CONFLICT (add/add): Merge conflict in %s"
msgstr "CONFLICTO (add/add): Conflicto de merge en %s"
-#: merge-recursive.c:3394
-#, c-format
-msgid ""
-"Your local changes to the following files would be overwritten by merge:\n"
-" %s"
-msgstr ""
-"Los cambios locales de los siguientes archivos serán sobreescritos por "
-"merge:\n"
-" %s"
-
-#: merge-recursive.c:3405
+#: merge-recursive.c:3424
msgid "Already up to date!"
msgstr "¡Ya está actualizado!"
-#: merge-recursive.c:3414
+#: merge-recursive.c:3433
#, c-format
msgid "merging of trees %s and %s failed"
msgstr "falló la fusión de los árboles %s y %s"
-#: merge-recursive.c:3513
+#: merge-recursive.c:3537
msgid "Merging:"
msgstr "Fusionando:"
-#: merge-recursive.c:3526
+#: merge-recursive.c:3550
#, c-format
msgid "found %u common ancestor:"
msgid_plural "found %u common ancestors:"
msgstr[0] "se encontró %u ancestro común:"
msgstr[1] "se encontraron %u ancestros comunes:"
-#: merge-recursive.c:3565
+#: merge-recursive.c:3600
msgid "merge returned no commit"
msgstr "la fusión no devolvió ningún commit"
-#: merge-recursive.c:3631
+#: merge-recursive.c:3659
+#, c-format
+msgid ""
+"Your local changes to the following files would be overwritten by merge:\n"
+" %s"
+msgstr ""
+"Los cambios locales de los siguientes archivos serán sobreescritos por "
+"merge:\n"
+" %s"
+
+#: merge-recursive.c:3756
#, c-format
msgid "Could not parse object '%s'"
msgstr "No se pudo analizar el objeto '%s'"
-#: merge-recursive.c:3647 builtin/merge.c:698 builtin/merge.c:869
+#: merge-recursive.c:3774 builtin/merge.c:694 builtin/merge.c:874
msgid "Unable to write index."
msgstr "Incapaz de escribir el índice."
-#: midx.c:69
+#: midx.c:68
#, c-format
msgid "multi-pack-index file %s is too small"
msgstr "archivo multi-pack-index %s es muy pequeño"
-#: midx.c:85
+#: midx.c:84
#, c-format
msgid "multi-pack-index signature 0x%08x does not match signature 0x%08x"
msgstr "firma de multi-pack-index 0x%08x no concuerda con firma 0x%08x"
-#: midx.c:90
+#: midx.c:89
#, c-format
msgid "multi-pack-index version %d not recognized"
msgstr "versión %d de multi-pack-index no reconocida"
-#: midx.c:95
+#: midx.c:94
#, c-format
msgid "hash version %u does not match"
msgstr "versión de hash %u no concuerda"
-#: midx.c:109
+#: midx.c:108
msgid "invalid chunk offset (too large)"
msgstr "offset inválido del conjunto (muy grande)"
-#: midx.c:133
+#: midx.c:132
msgid "terminating multi-pack-index chunk id appears earlier than expected"
msgstr ""
"terminando multi-pack-index porque el id del conjunto aparece antes de lo "
"esperado"
-#: midx.c:146
+#: midx.c:145
msgid "multi-pack-index missing required pack-name chunk"
msgstr "multi-pack-index le falta el conjunto pack-name requerido"
-#: midx.c:148
+#: midx.c:147
msgid "multi-pack-index missing required OID fanout chunk"
msgstr "multi-pack-index le falta el conjunto OID fanout requerido"
-#: midx.c:150
+#: midx.c:149
msgid "multi-pack-index missing required OID lookup chunk"
msgstr "multi-pack-index le falta el conjunto OID fanout requerido"
-#: midx.c:152
+#: midx.c:151
msgid "multi-pack-index missing required object offsets chunk"
msgstr "multi-pack-index le falta el conjunto de offset del objeto requerido"
-#: midx.c:166
+#: midx.c:165
#, c-format
msgid "multi-pack-index pack names out of order: '%s' before '%s'"
msgstr "multi-pack-index nombres de paquete fuera de orden:'%s' antes '%s'"
-#: midx.c:211
+#: midx.c:210
#, c-format
msgid "bad pack-int-id: %u (%u total packs)"
msgstr "mal pack-int-id: %u (%u paquetes totales)"
-#: midx.c:261
+#: midx.c:260
msgid "multi-pack-index stores a 64-bit offset, but off_t is too small"
msgstr "multi-pack-index guarda un offset de 64-bit, pero off_t es muy pequeño"
-#: midx.c:289
+#: midx.c:288
msgid "error preparing packfile from multi-pack-index"
msgstr "error preparando packfile de multi-pack-index"
-#: midx.c:470
+#: midx.c:469
#, c-format
msgid "failed to add packfile '%s'"
msgstr "falló al agregar packfile '%s'"
-#: midx.c:476
+#: midx.c:475
#, c-format
msgid "failed to open pack-index '%s'"
msgstr "falló al abrir pack-index '%s'"
-#: midx.c:536
+#: midx.c:535
#, c-format
msgid "failed to locate object %d in packfile"
msgstr "falló al ubicar objeto %d en packfile"
-#: midx.c:865
+#: midx.c:864
#, c-format
msgid "did not see pack-file %s to drop"
msgstr "no se vió pack-file %s caer"
-#: midx.c:1036
+#: midx.c:1035
#, c-format
msgid "failed to clear multi-pack-index at %s"
msgstr "falló al limpiar multi-pack-index en %s"
-#: midx.c:1091
+#: midx.c:1090
msgid "Looking for referenced packfiles"
msgstr "Buscando por packfiles referidos"
-#: midx.c:1106
+#: midx.c:1105
#, c-format
msgid ""
"oid fanout out of order: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
msgstr ""
"oid fanout fuera de orden: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
-#: midx.c:1110
+#: midx.c:1109
msgid "Verifying OID order in MIDX"
msgstr "Verificando orden de OID en MIDX"
-#: midx.c:1119
+#: midx.c:1118
#, c-format
msgid "oid lookup out of order: oid[%d] = %s >= %s = oid[%d]"
msgstr "oid lookup fuera de orden: oid[%d] = %s >= %s = oid[%d]"
-#: midx.c:1138
+#: midx.c:1137
msgid "Sorting objects by packfile"
msgstr "Ordenando objetos por packfile"
-#: midx.c:1144
+#: midx.c:1143
msgid "Verifying object offsets"
msgstr "Verificando offsets de objetos"
-#: midx.c:1160
+#: midx.c:1159
#, c-format
msgid "failed to load pack entry for oid[%d] = %s"
msgstr "fallo al cargar entrada pack para oid[%d] = %s"
-#: midx.c:1166
+#: midx.c:1165
#, c-format
msgid "failed to load pack-index for packfile %s"
msgstr "falló al cargar el pack-index para packfile %s"
-#: midx.c:1175
+#: midx.c:1174
#, c-format
msgid "incorrect object offset for oid[%d] = %s: %<PRIx64> != %<PRIx64>"
msgstr "offset para objeto incorrecto oid[%d] = %s: %<PRIx64> != %<PRIx64>"
-#: midx.c:1350
+#: midx.c:1349
msgid "could not start pack-objects"
msgstr "no se pudo empezar los pack-objetcts"
-#: midx.c:1369
+#: midx.c:1368
msgid "could not finish pack-objects"
msgstr "no se pudo finalizar pack-objetcts"
-#: name-hash.c:532
+#: name-hash.c:537
#, c-format
msgid "unable to create lazy_dir thread: %s"
msgstr "no es posible crear hilo lazy_dir: %s"
-#: name-hash.c:554
+#: name-hash.c:559
#, c-format
msgid "unable to create lazy_name thread: %s"
msgstr "no es posible crear hilo lazy_name: %s"
-#: name-hash.c:560
+#: name-hash.c:565
#, c-format
msgid "unable to join lazy_name thread: %s"
msgstr "no es posible unir hilo lazy_name: %s"
@@ -4275,46 +4299,46 @@ msgstr "Rehusando reescribir notas en %s (fuera de refs/notes/)"
msgid "Bad %s value: '%s'"
msgstr "Valor erróneo para %s: '%s'"
-#: object.c:54
+#: object.c:53
#, c-format
msgid "invalid object type \"%s\""
msgstr "tipo de objeto \"%s\" inválido"
-#: object.c:174
+#: object.c:173
#, c-format
msgid "object %s is a %s, not a %s"
msgstr "objeto %s es un %s, no un %s"
-#: object.c:234
+#: object.c:233
#, c-format
msgid "object %s has unknown type id %d"
msgstr "el objeto %s tiene un id de tipo desconocido %d"
-#: object.c:247
+#: object.c:246
#, c-format
msgid "unable to parse object: %s"
msgstr "incapaz de analizar objeto: %s"
-#: object.c:267 object.c:278
+#: object.c:266 object.c:277
#, c-format
msgid "hash mismatch %s"
msgstr "hash no concuerda %s"
-#: packfile.c:648
+#: packfile.c:641
msgid "offset before end of packfile (broken .idx?)"
msgstr "offset antes del final del paquete (broken .idx?)"
-#: packfile.c:1899
+#: packfile.c:1887
#, c-format
msgid "offset before start of pack index for %s (corrupt index?)"
msgstr ""
-"offset antes del comienzo del índice del paquete para %s (índice corrupto?)"
+"offset antes del comienzo del índice del paquete para %s (¿índice corrupto?)"
-#: packfile.c:1903
+#: packfile.c:1891
#, c-format
msgid "offset beyond end of pack index for %s (truncated index?)"
msgstr ""
-"offset más allá del índice de fin de paquete para %s (índice truncado?)"
+"offset más allá del índice de fin de paquete para %s (¿índice truncado?)"
#: parse-options.c:38
#, c-format
@@ -4356,26 +4380,26 @@ msgstr "opción ambigua: %s (puede ser --%s%s o --%s%s)"
msgid "did you mean `--%s` (with two dashes ?)"
msgstr "¿quisiste decir `--%s` (con dos guiones)?"
-#: parse-options.c:859
+#: parse-options.c:860
#, c-format
msgid "unknown option `%s'"
msgstr "opción `%s' desconocida"
-#: parse-options.c:861
+#: parse-options.c:862
#, c-format
msgid "unknown switch `%c'"
msgstr "switch desconocido `%c'"
-#: parse-options.c:863
+#: parse-options.c:864
#, c-format
msgid "unknown non-ascii option in string: `%s'"
msgstr "opción desconocida en string no ascii: `%s'"
-#: parse-options.c:887
+#: parse-options.c:888
msgid "..."
msgstr "..."
-#: parse-options.c:906
+#: parse-options.c:907
#, c-format
msgid "usage: %s"
msgstr "uso: %s"
@@ -4383,21 +4407,21 @@ msgstr "uso: %s"
#. TRANSLATORS: the colon here should align with the
#. one in "usage: %s" translation.
#.
-#: parse-options.c:912
+#: parse-options.c:913
#, c-format
msgid " or: %s"
msgstr " o: %s"
-#: parse-options.c:915
+#: parse-options.c:916
#, c-format
msgid " %s"
msgstr " %s"
-#: parse-options.c:954
+#: parse-options.c:955
msgid "-NUM"
msgstr "-NUM"
-#: parse-options.c:968
+#: parse-options.c:969
#, c-format
msgid "alias of --%s"
msgstr "alias de --%s"
@@ -4566,29 +4590,38 @@ msgstr "no es posible crear lstat hilado: %s"
msgid "unable to parse --pretty format"
msgstr "incapaz de analizar el formato --pretty"
-#: range-diff.c:70
+#: promisor-remote.c:25
+msgid "Remote with no URL"
+msgstr "Remoto sin URL"
+
+#: promisor-remote.c:61
+#, c-format
+msgid "promisor remote name cannot begin with '/': %s"
+msgstr "nombre remoto promisor no puede comenzar con '/': %s"
+
+#: range-diff.c:71
msgid "could not start `log`"
msgstr "no se pudo comenzar `log`"
-#: range-diff.c:72
+#: range-diff.c:73
msgid "could not read `log` output"
msgstr "no se pudo leer output de `log`"
-#: range-diff.c:91 sequencer.c:5021
+#: range-diff.c:92 sequencer.c:4985
#, c-format
msgid "could not parse commit '%s'"
msgstr "no se pudo analizar commit '%s'"
-#: range-diff.c:117
+#: range-diff.c:118
#, c-format
msgid "could not parse git header '%.*s'"
msgstr "no se puede analizar git header '%.*s'"
-#: range-diff.c:274
+#: range-diff.c:275
msgid "failed to generate diff"
msgstr "falló al generar diff"
-#: range-diff.c:506 range-diff.c:508
+#: range-diff.c:507 range-diff.c:509
#, c-format
msgid "could not parse log for '%s'"
msgstr "no se pudo leer el log para '%s'"
@@ -4633,11 +4666,11 @@ msgstr "incapaz de correr stat en '%s'"
msgid "'%s' appears as both a file and as a directory"
msgstr "'%s' parece ser un directorio y un archivo a la vez"
-#: read-cache.c:1499
+#: read-cache.c:1520
msgid "Refresh index"
msgstr "Refrescar index"
-#: read-cache.c:1613
+#: read-cache.c:1635
#, c-format
msgid ""
"index.version set, but the value is invalid.\n"
@@ -4646,7 +4679,7 @@ msgstr ""
"index.version configurado, pero el valor no es válido.\n"
"Usando versión %i"
-#: read-cache.c:1623
+#: read-cache.c:1645
#, c-format
msgid ""
"GIT_INDEX_VERSION set, but the value is invalid.\n"
@@ -4655,138 +4688,138 @@ msgstr ""
"GIT_INDEX_VERSION configurado, pero el valor no es válido.\n"
"Usando versión %i"
-#: read-cache.c:1679
+#: read-cache.c:1701
#, c-format
msgid "bad signature 0x%08x"
msgstr "mala firma 0x%08x"
-#: read-cache.c:1682
+#: read-cache.c:1704
#, c-format
msgid "bad index version %d"
msgstr "mala versión del índice %d"
-#: read-cache.c:1691
+#: read-cache.c:1713
msgid "bad index file sha1 signature"
msgstr "mala firma sha1 del archivo index"
-#: read-cache.c:1721
+#: read-cache.c:1743
#, c-format
msgid "index uses %.4s extension, which we do not understand"
msgstr "index usa %.4s extensiones, cosa que no entendemos"
-#: read-cache.c:1723
+#: read-cache.c:1745
#, c-format
msgid "ignoring %.4s extension"
msgstr "ignorando extensión %.4s"
-#: read-cache.c:1760
+#: read-cache.c:1782
#, c-format
msgid "unknown index entry format 0x%08x"
msgstr "formato de index desconocido 0x%08x"
-#: read-cache.c:1776
+#: read-cache.c:1798
#, c-format
msgid "malformed name field in the index, near path '%s'"
msgstr "campo nombre malformado en el index, cerca a ruta '%s'"
-#: read-cache.c:1833
+#: read-cache.c:1855
msgid "unordered stage entries in index"
msgstr "entradas en stage desordenadas en index"
-#: read-cache.c:1836
+#: read-cache.c:1858
#, c-format
msgid "multiple stage entries for merged file '%s'"
msgstr "múltiples entradas extrañas para archivo fusionado '%s'"
-#: read-cache.c:1839
+#: read-cache.c:1861
#, c-format
msgid "unordered stage entries for '%s'"
msgstr "entradas de stage desordenadas para '%s'"
-#: read-cache.c:1946 read-cache.c:2234 rerere.c:565 rerere.c:599 rerere.c:1111
-#: builtin/add.c:460 builtin/check-ignore.c:178 builtin/checkout.c:467
-#: builtin/checkout.c:651 builtin/clean.c:956 builtin/commit.c:347
+#: read-cache.c:1967 read-cache.c:2255 rerere.c:565 rerere.c:599 rerere.c:1111
+#: builtin/add.c:460 builtin/check-ignore.c:178 builtin/checkout.c:468
+#: builtin/checkout.c:652 builtin/clean.c:967 builtin/commit.c:347
#: builtin/diff-tree.c:120 builtin/grep.c:499 builtin/mv.c:145
#: builtin/reset.c:245 builtin/rm.c:271 builtin/submodule--helper.c:330
msgid "index file corrupt"
msgstr "archivo índice corrompido"
-#: read-cache.c:2087
+#: read-cache.c:2108
#, c-format
msgid "unable to create load_cache_entries thread: %s"
msgstr "no es posible crear hilo load_cache_entries: %s"
-#: read-cache.c:2100
+#: read-cache.c:2121
#, c-format
msgid "unable to join load_cache_entries thread: %s"
msgstr "no es posible unir hilo load_cache_entires: %s"
-#: read-cache.c:2133
+#: read-cache.c:2154
#, c-format
msgid "%s: index file open failed"
msgstr "%s: falló al abrir el archivo index"
-#: read-cache.c:2137
+#: read-cache.c:2158
#, c-format
msgid "%s: cannot stat the open index"
msgstr "%s: no se puede hacer stat del index abierto"
-#: read-cache.c:2141
+#: read-cache.c:2162
#, c-format
msgid "%s: index file smaller than expected"
msgstr "%s: archivo index más pequeño de lo esperado"
-#: read-cache.c:2145
+#: read-cache.c:2166
#, c-format
msgid "%s: unable to map index file"
msgstr "%s: no se pudo mapear el archivo index"
-#: read-cache.c:2187
+#: read-cache.c:2208
#, c-format
msgid "unable to create load_index_extensions thread: %s"
msgstr "no es posible crear hilo load_index_extensions: %s"
-#: read-cache.c:2214
+#: read-cache.c:2235
#, c-format
msgid "unable to join load_index_extensions thread: %s"
msgstr "no es posible unir hilo load_index_extensions: %s"
-#: read-cache.c:2246
+#: read-cache.c:2267
#, c-format
msgid "could not freshen shared index '%s'"
msgstr "no se pudo refrescar el index compartido '%s'"
-#: read-cache.c:2293
+#: read-cache.c:2314
#, c-format
msgid "broken index, expect %s in %s, got %s"
msgstr "index roto, se esperaba %s en %s, se obtuvo %s"
-#: read-cache.c:2989 wrapper.c:658 builtin/merge.c:1114
+#: read-cache.c:3010 wrapper.c:622 builtin/merge.c:1119
#, c-format
msgid "could not close '%s'"
msgstr "no se pudo cerrar '%s'"
-#: read-cache.c:3092 sequencer.c:2358 sequencer.c:3928
+#: read-cache.c:3113 sequencer.c:2296 sequencer.c:3917
#, c-format
msgid "could not stat '%s'"
msgstr "no se pudo definir '%s'"
-#: read-cache.c:3105
+#: read-cache.c:3126
#, c-format
msgid "unable to open git dir: %s"
msgstr "no es posible abrir el directorio de git: %s"
-#: read-cache.c:3117
+#: read-cache.c:3138
#, c-format
msgid "unable to unlink: %s"
msgstr "no es posible eliminar el vinculo: %s"
-#: read-cache.c:3142
+#: read-cache.c:3163
#, c-format
msgid "cannot fix permission bits on '%s'"
msgstr "no se pudo arreglar bits de permisos en '%s'"
-#: read-cache.c:3291
+#: read-cache.c:3312
#, c-format
msgid "%s: cannot drop to stage #0"
msgstr "%s: no se puede eliminar a stage #0"
@@ -4861,7 +4894,7 @@ msgid ""
"If you remove a line here THAT COMMIT WILL BE LOST.\n"
msgstr ""
"\n"
-"Si remueves una línea aquí EL COMMIT SE PERDERÃ.\n"
+"Si eliminas una línea aquí EL COMMIT SE PERDERÃ.\n"
#: rebase-interactive.c:74 git-rebase--preserve-merges.sh:871
msgid ""
@@ -4891,8 +4924,8 @@ msgstr ""
msgid "Note that empty commits are commented out"
msgstr "Tenga en cuenta que los commits vacíos están comentados"
-#: rebase-interactive.c:105 rerere.c:485 rerere.c:692 sequencer.c:3447
-#: sequencer.c:3473 sequencer.c:5120 builtin/fsck.c:356 builtin/rebase.c:235
+#: rebase-interactive.c:105 rerere.c:485 rerere.c:692 sequencer.c:3388
+#: sequencer.c:3414 sequencer.c:5084 builtin/fsck.c:356 builtin/rebase.c:235
#, c-format
msgid "could not write '%s'"
msgstr "no se pudo escribir '%s'"
@@ -4932,14 +4965,14 @@ msgstr ""
#: refs.c:262
#, c-format
msgid "%s does not point to a valid object!"
-msgstr "%s no apunta a ningún objeto válido!"
+msgstr "¡%s no apunta a ningún objeto válido!"
#: refs.c:667
#, c-format
msgid "ignoring dangling symref %s"
msgstr "ignorando referencia rota %s"
-#: refs.c:669 ref-filter.c:2092
+#: refs.c:669 ref-filter.c:2098
#, c-format
msgid "ignoring broken ref %s"
msgstr "ignorando referencia rota %s"
@@ -4964,14 +4997,14 @@ msgstr "ref '%s' ya existe"
msgid "unexpected object ID when writing '%s'"
msgstr "ID de objecto inesperado cuando se escribía '%s'"
-#: refs.c:833 sequencer.c:403 sequencer.c:2709 sequencer.c:2913
-#: sequencer.c:2927 sequencer.c:3184 sequencer.c:5037 wrapper.c:656
+#: refs.c:833 sequencer.c:403 sequencer.c:2647 sequencer.c:2851
+#: sequencer.c:2865 sequencer.c:3122 sequencer.c:5001 wrapper.c:620
#, c-format
msgid "could not write to '%s'"
msgstr "no se pudo escribir en '%s'"
-#: refs.c:860 wrapper.c:225 wrapper.c:395 builtin/am.c:715
-#: builtin/rebase.c:1003
+#: refs.c:860 wrapper.c:188 wrapper.c:358 builtin/am.c:714
+#: builtin/rebase.c:1004
#, c-format
msgid "could not open '%s' for writing"
msgstr "no se pudo abrir '%s' para escritura"
@@ -5006,21 +5039,21 @@ msgstr "rehusando actualizar ref con mal nombre '%s'"
msgid "update_ref failed for ref '%s': %s"
msgstr "update_ref falló para ref '%s': %s"
-#: refs.c:2012
+#: refs.c:2023
#, c-format
msgid "multiple updates for ref '%s' not allowed"
msgstr "múltiples actualizaciones para ref '%s' no permitidas"
-#: refs.c:2044
+#: refs.c:2055
msgid "ref updates forbidden inside quarantine environment"
msgstr "actualizaciones de ref prohibidas dentro de ambiente de cuarentena"
-#: refs.c:2140 refs.c:2170
+#: refs.c:2151 refs.c:2181
#, c-format
msgid "'%s' exists; cannot create '%s'"
msgstr "'%s' existe; no se puede crear '%s'"
-#: refs.c:2146 refs.c:2181
+#: refs.c:2157 refs.c:2192
#, c-format
msgid "cannot process '%s' and '%s' at the same time"
msgstr "no se puede procesar '%s' y '%s' al mismo tiempo"
@@ -5030,13 +5063,13 @@ msgstr "no se puede procesar '%s' y '%s' al mismo tiempo"
msgid "could not remove reference %s"
msgstr "no se pudo eliminar la referencia %s"
-#: refs/files-backend.c:1248 refs/packed-backend.c:1532
-#: refs/packed-backend.c:1542
+#: refs/files-backend.c:1248 refs/packed-backend.c:1541
+#: refs/packed-backend.c:1551
#, c-format
msgid "could not delete reference %s: %s"
msgstr "no se pudo eliminar la referencia %s: %s"
-#: refs/files-backend.c:1251 refs/packed-backend.c:1545
+#: refs/files-backend.c:1251 refs/packed-backend.c:1554
#, c-format
msgid "could not delete references: %s"
msgstr "no se pudo eliminar la referencia: %s"
@@ -5046,7 +5079,7 @@ msgstr "no se pudo eliminar la referencia: %s"
msgid "invalid refspec '%s'"
msgstr "refspec inválido: '%s'"
-#: ref-filter.c:42 wt-status.c:1934
+#: ref-filter.c:42 wt-status.c:1938
msgid "gone"
msgstr "desaparecido"
@@ -5065,281 +5098,281 @@ msgstr "detrás %d"
msgid "ahead %d, behind %d"
msgstr "delante %d, detrás %d"
-#: ref-filter.c:162
+#: ref-filter.c:165
#, c-format
msgid "expected format: %%(color:<color>)"
msgstr "formato esperado: %%(color:<color>)"
-#: ref-filter.c:164
+#: ref-filter.c:167
#, c-format
msgid "unrecognized color: %%(color:%s)"
msgstr "color no reconocido: %%(color:%s)"
-#: ref-filter.c:186
+#: ref-filter.c:189
#, c-format
msgid "Integer value expected refname:lstrip=%s"
msgstr "Valor entero esperado refname:lstrip=%s"
-#: ref-filter.c:190
+#: ref-filter.c:193
#, c-format
msgid "Integer value expected refname:rstrip=%s"
msgstr "Valor entero esperado refname:rstrip=%s"
-#: ref-filter.c:192
+#: ref-filter.c:195
#, c-format
msgid "unrecognized %%(%s) argument: %s"
msgstr "argumento: %s no reconocido %%(%s)"
-#: ref-filter.c:247
+#: ref-filter.c:250
#, c-format
msgid "%%(objecttype) does not take arguments"
msgstr "%%(objecttype) no toma ningún argumento"
-#: ref-filter.c:269
+#: ref-filter.c:272
#, c-format
msgid "unrecognized %%(objectsize) argument: %s"
msgstr "%%(objectsize) no reconocido argumento: %s"
-#: ref-filter.c:277
+#: ref-filter.c:280
#, c-format
msgid "%%(deltabase) does not take arguments"
msgstr "%%(deltabase) no toma argumentos"
-#: ref-filter.c:289
+#: ref-filter.c:292
#, c-format
msgid "%%(body) does not take arguments"
msgstr "%%(body) no toma ningún argumento"
-#: ref-filter.c:298
+#: ref-filter.c:301
#, c-format
msgid "%%(subject) does not take arguments"
msgstr "%%(subject) no toma ningún argumento"
-#: ref-filter.c:320
+#: ref-filter.c:323
#, c-format
msgid "unknown %%(trailers) argument: %s"
msgstr "%%(trailers) desconocidos, argumento: %s"
-#: ref-filter.c:349
+#: ref-filter.c:352
#, c-format
msgid "positive value expected contents:lines=%s"
msgstr "valor positivo esperado contents:lines=%s"
-#: ref-filter.c:351
+#: ref-filter.c:354
#, c-format
msgid "unrecognized %%(contents) argument: %s"
msgstr "argumento %s no reconocido %%(contents)"
-#: ref-filter.c:366
+#: ref-filter.c:369
#, c-format
msgid "positive value expected objectname:short=%s"
msgstr "valor positivo esperado objectname:short=%s"
-#: ref-filter.c:370
+#: ref-filter.c:373
#, c-format
msgid "unrecognized %%(objectname) argument: %s"
msgstr "argumento: %s no reconocido %%(objectname)"
-#: ref-filter.c:400
+#: ref-filter.c:403
#, c-format
msgid "expected format: %%(align:<width>,<position>)"
msgstr "formato esperado: %%(align:<ancho>,<posición>)"
-#: ref-filter.c:412
+#: ref-filter.c:415
#, c-format
msgid "unrecognized position:%s"
msgstr "posición desconocida: %s"
-#: ref-filter.c:419
+#: ref-filter.c:422
#, c-format
msgid "unrecognized width:%s"
msgstr "ancho desconocido: %s"
-#: ref-filter.c:428
+#: ref-filter.c:431
#, c-format
msgid "unrecognized %%(align) argument: %s"
msgstr "argumento no reconocido para %%(align): %s"
-#: ref-filter.c:436
+#: ref-filter.c:439
#, c-format
msgid "positive width expected with the %%(align) atom"
msgstr "se esperaba un ancho positivo con el átomo %%(align)"
-#: ref-filter.c:454
+#: ref-filter.c:457
#, c-format
msgid "unrecognized %%(if) argument: %s"
msgstr "argumento: %s no reconocido %%(if)"
-#: ref-filter.c:556
+#: ref-filter.c:559
#, c-format
msgid "malformed field name: %.*s"
msgstr "nombre mal formado de campo: %.*s"
-#: ref-filter.c:583
+#: ref-filter.c:586
#, c-format
msgid "unknown field name: %.*s"
msgstr "nombre de campo desconocido: %.*s"
-#: ref-filter.c:587
+#: ref-filter.c:590
#, c-format
msgid ""
"not a git repository, but the field '%.*s' requires access to object data"
msgstr ""
"no es un repositorio git, pero el campo '%.*s' requiere acceso al objeto data"
-#: ref-filter.c:711
+#: ref-filter.c:714
#, c-format
msgid "format: %%(if) atom used without a %%(then) atom"
msgstr "formato: átomo %%(if) usado sin un átomo %%(then)"
-#: ref-filter.c:774
+#: ref-filter.c:777
#, c-format
msgid "format: %%(then) atom used without an %%(if) atom"
msgstr "formato: átomo %%(then) usado sin átomo %%(if)"
-#: ref-filter.c:776
+#: ref-filter.c:779
#, c-format
msgid "format: %%(then) atom used more than once"
msgstr "formato: átomo %%(then) usado más de una vez"
-#: ref-filter.c:778
+#: ref-filter.c:781
#, c-format
msgid "format: %%(then) atom used after %%(else)"
msgstr "formato: átomo %%(then) usado después de %%(else)"
-#: ref-filter.c:806
+#: ref-filter.c:809
#, c-format
msgid "format: %%(else) atom used without an %%(if) atom"
msgstr "formato: átomo %%(else) usado sin un átomo %%(if)"
-#: ref-filter.c:808
+#: ref-filter.c:811
#, c-format
msgid "format: %%(else) atom used without a %%(then) atom"
msgstr "formato: átomo %%(else) usado sin un átomo %%(then)"
-#: ref-filter.c:810
+#: ref-filter.c:813
#, c-format
msgid "format: %%(else) atom used more than once"
msgstr "formato: átomo %%(else) usado más de una vez"
-#: ref-filter.c:825
+#: ref-filter.c:828
#, c-format
msgid "format: %%(end) atom used without corresponding atom"
msgstr "formato: átomo %%(end) usado sin átomo correspondiente"
-#: ref-filter.c:882
+#: ref-filter.c:885
#, c-format
msgid "malformed format string %s"
msgstr "formato de cadena mal formado %s"
-#: ref-filter.c:1485
+#: ref-filter.c:1488
#, c-format
msgid "no branch, rebasing %s"
msgstr "no hay rama, rebasando %s"
-#: ref-filter.c:1488
+#: ref-filter.c:1491
#, c-format
msgid "no branch, rebasing detached HEAD %s"
msgstr "(o hay rama, rebasando con HEAD desacoplado %s"
-#: ref-filter.c:1491
+#: ref-filter.c:1494
#, c-format
msgid "no branch, bisect started on %s"
msgstr "no hay rama, comenzando biseccón en %s"
-#: ref-filter.c:1501
+#: ref-filter.c:1504
msgid "no branch"
msgstr "sin rama"
-#: ref-filter.c:1537 ref-filter.c:1743
+#: ref-filter.c:1540 ref-filter.c:1749
#, c-format
msgid "missing object %s for %s"
msgstr "falta objeto %s para %s"
-#: ref-filter.c:1547
+#: ref-filter.c:1550
#, c-format
msgid "parse_object_buffer failed on %s for %s"
msgstr "parse_object_buffer falló en %s para %s"
-#: ref-filter.c:1998
+#: ref-filter.c:2004
#, c-format
msgid "malformed object at '%s'"
msgstr "objeto mal formado en '%s'"
-#: ref-filter.c:2087
+#: ref-filter.c:2093
#, c-format
msgid "ignoring ref with broken name %s"
msgstr "ignorando referencia con nombre roto %s"
-#: ref-filter.c:2382
+#: ref-filter.c:2389
#, c-format
msgid "format: %%(end) atom missing"
msgstr "formato: falta átomo %%(end)"
-#: ref-filter.c:2482
+#: ref-filter.c:2489
#, c-format
msgid "option `%s' is incompatible with --merged"
msgstr "opción `%s' es incompatible con --merged"
-#: ref-filter.c:2485
+#: ref-filter.c:2492
#, c-format
msgid "option `%s' is incompatible with --no-merged"
msgstr "opción `%s' es incompatible con --no-merged"
-#: ref-filter.c:2495
+#: ref-filter.c:2502
#, c-format
msgid "malformed object name %s"
msgstr "nombre de objeto mal formado %s"
-#: ref-filter.c:2500
+#: ref-filter.c:2507
#, c-format
msgid "option `%s' must point to a commit"
msgstr "opción '%s' debe apuntar a un commit"
-#: remote.c:363
+#: remote.c:366
#, c-format
msgid "config remote shorthand cannot begin with '/': %s"
msgstr "config remote shorthand no puede comenzar con '/': %s"
-#: remote.c:410
+#: remote.c:413
msgid "more than one receivepack given, using the first"
msgstr "más de un receivepack dado, usando el primero"
-#: remote.c:418
+#: remote.c:421
msgid "more than one uploadpack given, using the first"
msgstr "más de un uploadpack dado, usando el primero"
-#: remote.c:608
+#: remote.c:611
#, c-format
msgid "Cannot fetch both %s and %s to %s"
msgstr "No se pueden traer ambos %s y %s a %s"
-#: remote.c:612
+#: remote.c:615
#, c-format
msgid "%s usually tracks %s, not %s"
msgstr "%s por lo general hace seguimiento a %s, no a %s"
-#: remote.c:616
+#: remote.c:619
#, c-format
msgid "%s tracks both %s and %s"
msgstr "%s hace seguimiento tanto a %s como a %s"
-#: remote.c:684
+#: remote.c:687
#, c-format
msgid "key '%s' of pattern had no '*'"
msgstr "llave '%s' de patrón no tuvo '*'"
-#: remote.c:694
+#: remote.c:697
#, c-format
msgid "value '%s' of pattern has no '*'"
msgstr "valor '%s' del patrón no tiene '*'"
-#: remote.c:1000
+#: remote.c:1003
#, c-format
msgid "src refspec %s does not match any"
msgstr "src refsoec %s: no concuerda con ninguno"
-#: remote.c:1005
+#: remote.c:1008
#, c-format
msgid "src refspec %s matches more than one"
msgstr "src refspec %s concuerda con más de uno"
@@ -5348,7 +5381,7 @@ msgstr "src refspec %s concuerda con más de uno"
#. <remote> <src>:<dst>" push, and "being pushed ('%s')" is
#. the <src>.
#.
-#: remote.c:1020
+#: remote.c:1023
#, c-format
msgid ""
"The destination you provided is not a full refname (i.e.,\n"
@@ -5372,7 +5405,7 @@ msgstr ""
"Ninguno funcionó así que nos dimos por vencidos. Tienes que especificar el "
"full ref."
-#: remote.c:1040
+#: remote.c:1043
#, c-format
msgid ""
"The <src> part of the refspec is a commit object.\n"
@@ -5383,7 +5416,7 @@ msgstr ""
"¿Quisiste crear un branch nuevo mediante un push a\n"
"'%s:refs/heads/%s'?"
-#: remote.c:1045
+#: remote.c:1048
#, c-format
msgid ""
"The <src> part of the refspec is a tag object.\n"
@@ -5394,7 +5427,7 @@ msgstr ""
"Did you mean to create a new tag by pushing to\n"
"'%s:refs/tags/%s'?"
-#: remote.c:1050
+#: remote.c:1053
#, c-format
msgid ""
"The <src> part of the refspec is a tree object.\n"
@@ -5405,7 +5438,7 @@ msgstr ""
"¿Quisiste crear un tag nuevo mediante un push a\n"
"'%s:refs/heads/%s'?"
-#: remote.c:1055
+#: remote.c:1058
#, c-format
msgid ""
"The <src> part of the refspec is a blob object.\n"
@@ -5416,115 +5449,115 @@ msgstr ""
"¿Quisiste crear un tag nuevo mediante un push a\n"
"'%s:refs/heads/%s'?"
-#: remote.c:1091
+#: remote.c:1094
#, c-format
msgid "%s cannot be resolved to branch"
msgstr "%s no puede ser resolver a un branch"
-#: remote.c:1102
+#: remote.c:1105
#, c-format
msgid "unable to delete '%s': remote ref does not exist"
msgstr "no es posible borrar '%s': ref remoto no existe"
-#: remote.c:1114
+#: remote.c:1117
#, c-format
msgid "dst refspec %s matches more than one"
msgstr "dst refspec %s concuerda con más de uno"
-#: remote.c:1121
+#: remote.c:1124
#, c-format
msgid "dst ref %s receives from more than one src"
msgstr "dst ref %s recibe de más de un src"
-#: remote.c:1624 remote.c:1725
+#: remote.c:1627 remote.c:1728
msgid "HEAD does not point to a branch"
msgstr "HEAD no apunta a ninguna rama"
-#: remote.c:1633
+#: remote.c:1636
#, c-format
msgid "no such branch: '%s'"
msgstr "no existe tal rama: '%s'"
-#: remote.c:1636
+#: remote.c:1639
#, c-format
msgid "no upstream configured for branch '%s'"
msgstr "no se ha configurado upstream para la rama '%s'"
-#: remote.c:1642
+#: remote.c:1645
#, c-format
msgid "upstream branch '%s' not stored as a remote-tracking branch"
msgstr "la rama '%s' de upstream no es guardad como rama de rastreo remoto"
-#: remote.c:1657
+#: remote.c:1660
#, c-format
msgid "push destination '%s' on remote '%s' has no local tracking branch"
msgstr ""
"destino de push '%s' en el remoto '%s' no tiene una rama de rastreo local"
-#: remote.c:1669
+#: remote.c:1672
#, c-format
msgid "branch '%s' has no remote for pushing"
msgstr "la rama '%s' no tiene remoto para enviar"
-#: remote.c:1679
+#: remote.c:1682
#, c-format
msgid "push refspecs for '%s' do not include '%s'"
msgstr "refspecs del push para '%s' no incluyen '%s'"
-#: remote.c:1692
+#: remote.c:1695
msgid "push has no destination (push.default is 'nothing')"
msgstr "push no tiene destino (push.default es 'nada')"
-#: remote.c:1714
+#: remote.c:1717
msgid "cannot resolve 'simple' push to a single destination"
msgstr "no se puede resolver push 'simple' para un destino único"
-#: remote.c:1840
+#: remote.c:1843
#, c-format
msgid "couldn't find remote ref %s"
msgstr "no se puedo encontrar ref remota %s"
-#: remote.c:1853
+#: remote.c:1856
#, c-format
msgid "* Ignoring funny ref '%s' locally"
msgstr "* Ignorando ref graciosa '%s' localmente"
-#: remote.c:2016
+#: remote.c:2019
#, c-format
msgid "Your branch is based on '%s', but the upstream is gone.\n"
msgstr "Tu rama está basada en '%s', pero upstream ha desaparecido.\n"
-#: remote.c:2020
+#: remote.c:2023
msgid " (use \"git branch --unset-upstream\" to fixup)\n"
msgstr " (usa \"git branch --unset-upstream\" para arreglar)\n"
-#: remote.c:2023
+#: remote.c:2026
#, c-format
msgid "Your branch is up to date with '%s'.\n"
msgstr "Tu rama está actualizada con '%s'.\n"
-#: remote.c:2027
+#: remote.c:2030
#, c-format
msgid "Your branch and '%s' refer to different commits.\n"
msgstr "Tu rama y '%s' refieren a commits diferentes.\n"
-#: remote.c:2030
+#: remote.c:2033
#, c-format
msgid " (use \"%s\" for details)\n"
msgstr " (usa \"%s\" para detalles)\n"
-#: remote.c:2034
+#: remote.c:2037
#, 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] "Tu rama está adelantada a '%s' por %d commit.\n"
msgstr[1] "Tu rama está adelantada a '%s' por %d commits.\n"
-#: remote.c:2040
+#: remote.c:2043
msgid " (use \"git push\" to publish your local commits)\n"
msgstr " (usa \"git push\" para publicar tus commits locales)\n"
-#: remote.c:2043
+#: remote.c:2046
#, c-format
msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
msgid_plural ""
@@ -5534,11 +5567,11 @@ msgstr[0] ""
msgstr[1] ""
"Tu rama está detrás de '%s' por %d commits, y puede ser avanzada rápido.\n"
-#: remote.c:2051
+#: remote.c:2054
msgid " (use \"git pull\" to update your local branch)\n"
msgstr " (usa \"git pull\" para actualizar tu rama local)\n"
-#: remote.c:2054
+#: remote.c:2057
#, c-format
msgid ""
"Your branch and '%s' have diverged,\n"
@@ -5553,11 +5586,11 @@ msgstr[1] ""
"Tu rama y '%s' han divergido,\n"
"y tienen %d y %d commits diferentes cada una respectivamente.\n"
-#: remote.c:2064
+#: remote.c:2067
msgid " (use \"git pull\" to merge the remote branch into yours)\n"
msgstr " (usa \"git pull\" para fusionar la rama remota en la tuya)\n"
-#: remote.c:2247
+#: remote.c:2250
#, c-format
msgid "cannot parse expected object name '%s'"
msgstr "no se puede leer el nombre de objeto '%s'"
@@ -5635,7 +5668,7 @@ msgstr "no se puede desvincular stray '%s'"
msgid "Recorded preimage for '%s'"
msgstr "Resolución precargada para '%s'"
-#: rerere.c:881 submodule.c:2023 builtin/log.c:1773
+#: rerere.c:881 submodule.c:2023 builtin/log.c:1790
#: builtin/submodule--helper.c:1418 builtin/submodule--helper.c:1428
#, c-format
msgid "could not create directory '%s'"
@@ -5670,20 +5703,20 @@ msgstr "Se olvidó resolución para '%s'\n"
msgid "unable to open rr-cache directory"
msgstr "no es posible abrir directorio rr-cache"
-#: revision.c:2507
+#: revision.c:2509
msgid "your current branch appears to be broken"
msgstr "tu rama actual parece estar rota"
-#: revision.c:2510
+#: revision.c:2512
#, c-format
msgid "your current branch '%s' does not have any commits yet"
msgstr "tu rama actual '%s' no tiene ningún commit todavía"
-#: revision.c:2710
+#: revision.c:2720
msgid "--first-parent is incompatible with --bisect"
msgstr "--first-parent es incompatible con --bisect"
-#: revision.c:2714
+#: revision.c:2724
msgid "-L does not yet support diff formats besides -p and -s"
msgstr "-L no soporta todavía formatos de diff fuera de -p y -s"
@@ -5706,30 +5739,30 @@ msgstr ""
"Puedes desactivar esta advertencias con `git config advice.ignoredHook "
"false`."
-#: send-pack.c:141
+#: send-pack.c:142
msgid "unexpected flush packet while reading remote unpack status"
msgstr ""
"flush packet inesperado mientras se leía estatus de desempaquetado remoto"
-#: send-pack.c:143
+#: send-pack.c:144
#, c-format
msgid "unable to parse remote unpack status: %s"
msgstr "no es posible analizar el estado de desempaquetado remoto: %s"
-#: send-pack.c:145
+#: send-pack.c:146
#, c-format
msgid "remote unpack failed: %s"
msgstr "desempaquetado remoto falló: %s"
-#: send-pack.c:306
+#: send-pack.c:307
msgid "failed to sign the push certificate"
msgstr "falló al firmar el certificado de push"
-#: send-pack.c:420
+#: send-pack.c:421
msgid "the receiving end does not support --signed push"
msgstr "el final receptor no soporta --signed push"
-#: send-pack.c:422
+#: send-pack.c:423
msgid ""
"not sending a push certificate since the receiving end does not support --"
"signed push"
@@ -5737,11 +5770,11 @@ msgstr ""
"no se manda un certificado de push ya que el destino no soporta push firmado "
"(--signed )"
-#: send-pack.c:434
+#: send-pack.c:435
msgid "the receiving end does not support --atomic push"
msgstr "el destino no soporta push atómicos (--atomic)"
-#: send-pack.c:439
+#: send-pack.c:440
msgid "the receiving end does not support push options"
msgstr "el destino no soporta opciones de push"
@@ -5755,7 +5788,7 @@ msgstr "mensaje de commit inválido, modo cleanup '%s'"
msgid "could not delete '%s'"
msgstr "no se pudo borrar '%s'"
-#: sequencer.c:311 builtin/rebase.c:759 builtin/rebase.c:1645 builtin/rm.c:369
+#: sequencer.c:311 builtin/rebase.c:760 builtin/rebase.c:1676 builtin/rm.c:369
#, c-format
msgid "could not remove '%s'"
msgstr "no se pudo eliminar'%s'"
@@ -5795,7 +5828,7 @@ msgstr ""
"con 'git add <rutas>' o 'git rm <rutas>'\n"
"y haz un commit del resultado con 'git commit'"
-#: sequencer.c:401 sequencer.c:2909
+#: sequencer.c:401 sequencer.c:2847
#, c-format
msgid "could not lock '%s'"
msgstr "no se pudo bloquear '%s'"
@@ -5805,15 +5838,15 @@ msgstr "no se pudo bloquear '%s'"
msgid "could not write eol to '%s'"
msgstr "no se pudo escribir EOL en '%s'"
-#: sequencer.c:413 sequencer.c:2714 sequencer.c:2915 sequencer.c:2929
-#: sequencer.c:3192
+#: sequencer.c:413 sequencer.c:2652 sequencer.c:2853 sequencer.c:2867
+#: sequencer.c:3130
#, c-format
msgid "failed to finalize '%s'"
msgstr "falló al finalizar '%s'"
-#: sequencer.c:436 sequencer.c:981 sequencer.c:1655 sequencer.c:2734
-#: sequencer.c:3174 sequencer.c:3283 builtin/am.c:245 builtin/commit.c:763
-#: builtin/merge.c:1112 builtin/rebase.c:567
+#: sequencer.c:436 sequencer.c:1585 sequencer.c:2672 sequencer.c:3112
+#: sequencer.c:3221 builtin/am.c:244 builtin/commit.c:763 builtin/merge.c:1117
+#: builtin/rebase.c:568
#, c-format
msgid "could not read '%s'"
msgstr "no se pudo leer '%s'"
@@ -5840,70 +5873,65 @@ msgstr "Modo cleanup inválido %s"
#. TRANSLATORS: %s will be "revert", "cherry-pick" or
#. "rebase -i".
#.
-#: sequencer.c:632
+#: sequencer.c:631
#, c-format
msgid "%s: Unable to write new index file"
msgstr "%s: Incapaz de escribir el nuevo archivo índice"
-#: sequencer.c:649
+#: sequencer.c:648
msgid "unable to update cache tree"
msgstr "no es posible actualizar el árbol de la caché"
-#: sequencer.c:663
+#: sequencer.c:662
msgid "could not resolve HEAD commit"
msgstr "no se pudo resolver el commit de HEAD"
-#: sequencer.c:743
+#: sequencer.c:742
#, c-format
msgid "no key present in '%.*s'"
msgstr "no hay llave presente en '%.*s'"
-#: sequencer.c:754
+#: sequencer.c:753
#, c-format
msgid "unable to dequote value of '%s'"
msgstr "no es posible dequote para '%s'"
-#: sequencer.c:791 wrapper.c:227 wrapper.c:397 builtin/am.c:706
-#: builtin/am.c:798 builtin/merge.c:1109 builtin/rebase.c:1045
+#: sequencer.c:790 wrapper.c:190 wrapper.c:360 builtin/am.c:705
+#: builtin/am.c:797 builtin/merge.c:1114 builtin/rebase.c:1046
#, c-format
msgid "could not open '%s' for reading"
msgstr "no se pudo abrir '%s' para lectura"
-#: sequencer.c:801
+#: sequencer.c:800
msgid "'GIT_AUTHOR_NAME' already given"
msgstr "'GIT_AUTHOR_NAME' ya proporcionado"
-#: sequencer.c:806
+#: sequencer.c:805
msgid "'GIT_AUTHOR_EMAIL' already given"
msgstr "'GIT_AUTHOR_EMAIL' ya proporcionado"
-#: sequencer.c:811
+#: sequencer.c:810
msgid "'GIT_AUTHOR_DATE' already given"
msgstr "'GIT_AUTHOR_DATE' ya proporcionado"
-#: sequencer.c:815
+#: sequencer.c:814
#, c-format
msgid "unknown variable '%s'"
msgstr "variable desconocida '%s'"
-#: sequencer.c:820
+#: sequencer.c:819
msgid "missing 'GIT_AUTHOR_NAME'"
msgstr "falta 'GIT_AUTHOR_NAME'"
-#: sequencer.c:822
+#: sequencer.c:821
msgid "missing 'GIT_AUTHOR_EMAIL'"
msgstr "falta 'GIT_AUTHOR_EMAIL'"
-#: sequencer.c:824
+#: sequencer.c:823
msgid "missing 'GIT_AUTHOR_DATE'"
msgstr "falta 'GIT_AUTHOR_DATE'"
-#: sequencer.c:884
-#, c-format
-msgid "invalid date format '%s' in '%s'"
-msgstr "formato de fecha inválido '%s' en '%s'"
-
-#: sequencer.c:901
+#: sequencer.c:872
#, c-format
msgid ""
"you have staged changes in your working tree\n"
@@ -5933,15 +5961,11 @@ msgstr ""
"\n"
" git rebase --continue\n"
-#: sequencer.c:995
-msgid "writing root commit"
-msgstr "escribiendo commit raíz"
-
-#: sequencer.c:1216
+#: sequencer.c:1146
msgid "'prepare-commit-msg' hook failed"
msgstr "hook 'prepare-commit-msg' falló"
-#: sequencer.c:1223
+#: sequencer.c:1153
msgid ""
"Your name and email address were configured automatically based\n"
"on your username and hostname. Please check that they are accurate.\n"
@@ -5968,7 +5992,7 @@ msgstr ""
"\n"
" git commit --amend --reset-author\n"
-#: sequencer.c:1236
+#: sequencer.c:1166
msgid ""
"Your name and email address were configured automatically based\n"
"on your username and hostname. Please check that they are accurate.\n"
@@ -5992,325 +6016,325 @@ msgstr ""
"\n"
" git commit --amend --reset-author\n"
-#: sequencer.c:1278
+#: sequencer.c:1208
msgid "couldn't look up newly created commit"
msgstr "no se pudo revisar el commit recién creado"
-#: sequencer.c:1280
+#: sequencer.c:1210
msgid "could not parse newly created commit"
msgstr "no se pudo analizar el commit recién creado"
-#: sequencer.c:1326
+#: sequencer.c:1256
msgid "unable to resolve HEAD after creating commit"
msgstr "no se pudo resolver HEAD tras crear el commit"
-#: sequencer.c:1328
+#: sequencer.c:1258
msgid "detached HEAD"
msgstr "HEAD desacoplado"
-#: sequencer.c:1332
+#: sequencer.c:1262
msgid " (root-commit)"
msgstr " (commit-raíz)"
-#: sequencer.c:1353
+#: sequencer.c:1283
msgid "could not parse HEAD"
msgstr "no se pudo analizar HEAD"
-#: sequencer.c:1355
+#: sequencer.c:1285
#, c-format
msgid "HEAD %s is not a commit!"
-msgstr "HEAD %s no es un commit!"
+msgstr "¡HEAD %s no es un commit!"
-#: sequencer.c:1359 builtin/commit.c:1571
+#: sequencer.c:1289 builtin/commit.c:1571
msgid "could not parse HEAD commit"
msgstr "no se pudo analizar el commit de HEAD"
-#: sequencer.c:1411 sequencer.c:2004
+#: sequencer.c:1341 sequencer.c:1933
msgid "unable to parse commit author"
msgstr "no es posible analizar el autor del commit"
-#: sequencer.c:1421 builtin/am.c:1573 builtin/merge.c:684
+#: sequencer.c:1352 builtin/am.c:1561 builtin/merge.c:684
msgid "git write-tree failed to write a tree"
msgstr "git write-tree falló al escribir el árbol"
-#: sequencer.c:1438 sequencer.c:1499
+#: sequencer.c:1369 sequencer.c:1429
#, c-format
msgid "unable to read commit message from '%s'"
msgstr "no se puede leer el mensaje del commit de '%s'"
-#: sequencer.c:1465 builtin/am.c:1595 builtin/commit.c:1670 builtin/merge.c:878
-#: builtin/merge.c:903
+#: sequencer.c:1396 builtin/am.c:1583 builtin/commit.c:1670 builtin/merge.c:883
+#: builtin/merge.c:908
msgid "failed to write commit object"
msgstr "falló al escribir el objeto commit"
-#: sequencer.c:1526
+#: sequencer.c:1456
#, c-format
msgid "could not parse commit %s"
msgstr "no se pudo analizar commit %s"
-#: sequencer.c:1531
+#: sequencer.c:1461
#, c-format
msgid "could not parse parent commit %s"
msgstr "no se pudo analizar el commit padre %s"
-#: sequencer.c:1605 sequencer.c:1715
+#: sequencer.c:1535 sequencer.c:1645
#, c-format
msgid "unknown command: %d"
msgstr "comando desconocido: %d"
-#: sequencer.c:1662 sequencer.c:1687
+#: sequencer.c:1592 sequencer.c:1617
#, c-format
msgid "This is a combination of %d commits."
msgstr "Esta es una combinación de %d commits."
-#: sequencer.c:1672
+#: sequencer.c:1602
msgid "need a HEAD to fixup"
msgstr "se necesita un HEAD para arreglar"
-#: sequencer.c:1674 sequencer.c:3219
+#: sequencer.c:1604 sequencer.c:3157
msgid "could not read HEAD"
msgstr "no se pudo leer HEAD"
-#: sequencer.c:1676
+#: sequencer.c:1606
msgid "could not read HEAD's commit message"
msgstr "no se pudo leer el mensaje de commit de HEAD"
-#: sequencer.c:1682
+#: sequencer.c:1612
#, c-format
msgid "cannot write '%s'"
msgstr "no se puede escribir '%s'"
-#: sequencer.c:1689 git-rebase--preserve-merges.sh:496
+#: sequencer.c:1619 git-rebase--preserve-merges.sh:496
msgid "This is the 1st commit message:"
msgstr "Este es el mensaje del 1er commit:"
-#: sequencer.c:1697
+#: sequencer.c:1627
#, c-format
msgid "could not read commit message of %s"
msgstr "no se puede leer el mensaje del commit de %s"
-#: sequencer.c:1704
+#: sequencer.c:1634
#, c-format
msgid "This is the commit message #%d:"
msgstr "Este es el mensaje del commit #%d:"
-#: sequencer.c:1710
+#: sequencer.c:1640
#, c-format
msgid "The commit message #%d will be skipped:"
msgstr "El mensaje del commit #%d será saltado:"
-#: sequencer.c:1798
+#: sequencer.c:1728
msgid "your index file is unmerged."
msgstr "tu archivo índice no está fusionado."
-#: sequencer.c:1805
+#: sequencer.c:1735
msgid "cannot fixup root commit"
msgstr "no se puede arreglar el commit raíz"
-#: sequencer.c:1824
+#: sequencer.c:1754
#, c-format
msgid "commit %s is a merge but no -m option was given."
msgstr "el commit %s es una fusión pero no se proporcionó la opción -m."
-#: sequencer.c:1832 sequencer.c:1840
+#: sequencer.c:1762 sequencer.c:1770
#, c-format
msgid "commit %s does not have parent %d"
msgstr "el commit %s no tiene un padre %d"
-#: sequencer.c:1846
+#: sequencer.c:1776
#, c-format
msgid "cannot get commit message for %s"
msgstr "no se puede obtener el mensaje de commit para %s"
#. TRANSLATORS: The first %s will be a "todo" command like
#. "revert" or "pick", the second %s a SHA1.
-#: sequencer.c:1865
+#: sequencer.c:1795
#, c-format
msgid "%s: cannot parse parent commit %s"
msgstr "%s: no se puede analizar el commit padre %s"
-#: sequencer.c:1930
+#: sequencer.c:1860
#, c-format
msgid "could not rename '%s' to '%s'"
msgstr "no se puede renombrar '%s' a '%s'"
-#: sequencer.c:1985
+#: sequencer.c:1915
#, c-format
msgid "could not revert %s... %s"
msgstr "no se pudo revertir %s... %s"
-#: sequencer.c:1986
+#: sequencer.c:1916
#, c-format
msgid "could not apply %s... %s"
msgstr "no se pudo aplicar %s... %s"
-#: sequencer.c:2045
+#: sequencer.c:1983
#, c-format
msgid "git %s: failed to read the index"
msgstr "git %s: falló al leer el índice"
-#: sequencer.c:2052
+#: sequencer.c:1990
#, c-format
msgid "git %s: failed to refresh the index"
msgstr "git %s: falló al refrescar el índice"
-#: sequencer.c:2128
+#: sequencer.c:2066
#, c-format
msgid "%s does not accept arguments: '%s'"
msgstr "%s no acepta los argumentos: '%s'"
-#: sequencer.c:2137
+#: sequencer.c:2075
#, c-format
msgid "missing arguments for %s"
msgstr "faltan argumentos para para %s"
-#: sequencer.c:2174
+#: sequencer.c:2112
#, c-format
msgid "could not parse '%.*s'"
msgstr "no se puede analizar '%.*s'"
-#: sequencer.c:2228
+#: sequencer.c:2166
#, c-format
msgid "invalid line %d: %.*s"
msgstr "línea inválida %d: %.*s"
-#: sequencer.c:2239
+#: sequencer.c:2177
#, c-format
msgid "cannot '%s' without a previous commit"
msgstr "no se puede '%s' sin un commit previo"
-#: sequencer.c:2287 builtin/rebase.c:153 builtin/rebase.c:178
+#: sequencer.c:2225 builtin/rebase.c:153 builtin/rebase.c:178
#: builtin/rebase.c:204 builtin/rebase.c:229
#, c-format
msgid "could not read '%s'."
msgstr "no se puede leer '%s'."
-#: sequencer.c:2323
+#: sequencer.c:2261
msgid "cancelling a cherry picking in progress"
msgstr "cancelando cherry-pick en progreso"
-#: sequencer.c:2330
+#: sequencer.c:2268
msgid "cancelling a revert in progress"
msgstr "cancelando revert en progreso"
-#: sequencer.c:2364
+#: sequencer.c:2302
msgid "please fix this using 'git rebase --edit-todo'."
msgstr "por favor arregle esto usando 'git rebase --edit-todo'."
-#: sequencer.c:2366
+#: sequencer.c:2304
#, c-format
msgid "unusable instruction sheet: '%s'"
msgstr "hoja de instrucciones inutilizable: '%s'"
-#: sequencer.c:2371
+#: sequencer.c:2309
msgid "no commits parsed."
msgstr "ningún commit analizado."
-#: sequencer.c:2382
+#: sequencer.c:2320
msgid "cannot cherry-pick during a revert."
msgstr "no se puede realizar cherry-pick durante un revert."
-#: sequencer.c:2384
+#: sequencer.c:2322
msgid "cannot revert during a cherry-pick."
msgstr "no se puede realizar un revert durante un cherry-pick."
-#: sequencer.c:2466
+#: sequencer.c:2404
#, c-format
msgid "invalid value for %s: %s"
msgstr "valor inválido para %s: %s"
-#: sequencer.c:2553
+#: sequencer.c:2491
msgid "unusable squash-onto"
msgstr "squash-onto inservible"
-#: sequencer.c:2569
+#: sequencer.c:2507
#, c-format
msgid "malformed options sheet: '%s'"
msgstr "hoja de opciones mal formada: '%s'"
-#: sequencer.c:2652 sequencer.c:4351
+#: sequencer.c:2590 sequencer.c:4308
msgid "empty commit set passed"
msgstr "conjunto de commits vacío entregado"
-#: sequencer.c:2668
+#: sequencer.c:2606
msgid "revert is already in progress"
msgstr "revert ya está en progreso"
-#: sequencer.c:2670
+#: sequencer.c:2608
#, c-format
msgid "try \"git revert (--continue | %s--abort | --quit)\""
msgstr "intenta \"git revert (--continue | --quit | %s --abort)\""
-#: sequencer.c:2673
+#: sequencer.c:2611
msgid "cherry-pick is already in progress"
msgstr "cherry-pick ya está en progreso"
-#: sequencer.c:2675
+#: sequencer.c:2613
#, c-format
msgid "try \"git cherry-pick (--continue | %s--abort | --quit)\""
msgstr "intenta \"git cherry-pick (--continue | --quit | %s --abort)\""
-#: sequencer.c:2689
+#: sequencer.c:2627
#, c-format
msgid "could not create sequencer directory '%s'"
msgstr "no se pudo crear un directorio secuenciador '%s'"
-#: sequencer.c:2704
+#: sequencer.c:2642
msgid "could not lock HEAD"
msgstr "no se pudo bloquear HEAD"
-#: sequencer.c:2764 sequencer.c:4103
+#: sequencer.c:2702 sequencer.c:4057
msgid "no cherry-pick or revert in progress"
msgstr "ningún cherry-pick o revert en progreso"
-#: sequencer.c:2766 sequencer.c:2777
+#: sequencer.c:2704 sequencer.c:2715
msgid "cannot resolve HEAD"
msgstr "no se puede resolver HEAD"
-#: sequencer.c:2768 sequencer.c:2812
+#: sequencer.c:2706 sequencer.c:2750
msgid "cannot abort from a branch yet to be born"
msgstr "no se puede abortar de una rama por nacer"
-#: sequencer.c:2798 builtin/grep.c:734
+#: sequencer.c:2736 builtin/grep.c:736
#, c-format
msgid "cannot open '%s'"
msgstr "no se puede abrir '%s'"
-#: sequencer.c:2800
+#: sequencer.c:2738
#, c-format
msgid "cannot read '%s': %s"
msgstr "no se puede leer '%s': %s"
-#: sequencer.c:2801
+#: sequencer.c:2739
msgid "unexpected end of file"
msgstr "final de archivo inesperado"
-#: sequencer.c:2807
+#: sequencer.c:2745
#, c-format
msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
msgstr "archivo HEAD de pre-cherry-pick guardado '%s' está corrupto"
-#: sequencer.c:2818
+#: sequencer.c:2756
msgid "You seem to have moved HEAD. Not rewinding, check your HEAD!"
-msgstr "Parece que se ha movido HEAD. No se hace rebobinado, revisa tu HEAD!"
+msgstr "Parece que se ha movido HEAD. No se hace rebobinado, ¡revisa tu HEAD!"
-#: sequencer.c:2859
+#: sequencer.c:2797
msgid "no revert in progress"
msgstr "no hay revert en progreso"
-#: sequencer.c:2867
+#: sequencer.c:2805
msgid "no cherry-pick in progress"
msgstr "ningún cherry-pick en progreso"
-#: sequencer.c:2877
+#: sequencer.c:2815
msgid "failed to skip the commit"
msgstr "falló al escribir el commit"
-#: sequencer.c:2884
+#: sequencer.c:2822
msgid "there is nothing to skip"
msgstr "no hay nada que saltar"
-#: sequencer.c:2887
+#: sequencer.c:2825
#, c-format
msgid ""
"have you committed already?\n"
@@ -6319,21 +6343,21 @@ msgstr ""
"¿ya has hecho el commit?\n"
"intenta \"git %s --continue\""
-#: sequencer.c:3011 sequencer.c:4015
+#: sequencer.c:2949 sequencer.c:3969
#, c-format
msgid "could not update %s"
msgstr "no se puede actualizar %s"
-#: sequencer.c:3049 sequencer.c:3995
+#: sequencer.c:2987 sequencer.c:3949
msgid "cannot read HEAD"
msgstr "no se puede leer HEAD"
-#: sequencer.c:3066
+#: sequencer.c:3004
#, c-format
msgid "unable to copy '%s' to '%s'"
msgstr "no se pudo copiar '%s' a '%s'"
-#: sequencer.c:3074
+#: sequencer.c:3012
#, c-format
msgid ""
"You can amend the commit now, with\n"
@@ -6352,27 +6376,27 @@ msgstr ""
"\n"
"\tgit rebase --continue\n"
-#: sequencer.c:3084
+#: sequencer.c:3022
#, c-format
msgid "Could not apply %s... %.*s"
msgstr "No se pudo aplicar %s... %.*s"
-#: sequencer.c:3091
+#: sequencer.c:3029
#, c-format
msgid "Could not merge %.*s"
msgstr "No se pudo fusionar %.*s"
-#: sequencer.c:3105 sequencer.c:3109 builtin/difftool.c:633
+#: sequencer.c:3043 sequencer.c:3047 builtin/difftool.c:641
#, c-format
msgid "could not copy '%s' to '%s'"
msgstr "no se pudo copiar '%s' a '%s'"
-#: sequencer.c:3131 sequencer.c:3558 builtin/rebase.c:849 builtin/rebase.c:1582
-#: builtin/rebase.c:1953 builtin/rebase.c:2008
+#: sequencer.c:3069 sequencer.c:3506 builtin/rebase.c:850 builtin/rebase.c:1613
+#: builtin/rebase.c:1987 builtin/rebase.c:2031
msgid "could not read index"
msgstr "no se pudo leer índice"
-#: sequencer.c:3136
+#: sequencer.c:3074
#, c-format
msgid ""
"execution failed: %s\n"
@@ -6387,11 +6411,11 @@ msgstr ""
" git rebase --continue\n"
"\n"
-#: sequencer.c:3142
+#: sequencer.c:3080
msgid "and made changes to the index and/or the working tree\n"
msgstr "y se hicieron cambios al índice y/o árbol de trabajo\n"
-#: sequencer.c:3148
+#: sequencer.c:3086
#, c-format
msgid ""
"execution succeeded: %s\n"
@@ -6408,76 +6432,76 @@ msgstr ""
" git rebase --continue\n"
"\n"
-#: sequencer.c:3209
+#: sequencer.c:3147
#, c-format
msgid "illegal label name: '%.*s'"
msgstr "nombre de label ilegal: '%.*s'"
-#: sequencer.c:3263
+#: sequencer.c:3201
msgid "writing fake root commit"
msgstr "escribiendo commit raíz falso"
-#: sequencer.c:3268
+#: sequencer.c:3206
msgid "writing squash-onto"
msgstr "escribiendo squash-onto"
-#: sequencer.c:3306 builtin/rebase.c:854 builtin/rebase.c:860
+#: sequencer.c:3244 builtin/rebase.c:855 builtin/rebase.c:861
#, c-format
msgid "failed to find tree of %s"
msgstr "falló al encontrar árbol de %s"
-#: sequencer.c:3324 builtin/rebase.c:873
+#: sequencer.c:3262 builtin/rebase.c:874
msgid "could not write index"
msgstr "no se pudo escribir índice"
-#: sequencer.c:3351
+#: sequencer.c:3289
#, c-format
msgid "could not resolve '%s'"
msgstr "no se pudo resolver '%s'"
-#: sequencer.c:3379
+#: sequencer.c:3320
msgid "cannot merge without a current revision"
msgstr "no se puede fusionar sin una versión actual"
-#: sequencer.c:3401
+#: sequencer.c:3342
#, c-format
msgid "unable to parse '%.*s'"
msgstr "no se puede analizar '%.*s'"
-#: sequencer.c:3410
+#: sequencer.c:3351
#, c-format
msgid "nothing to merge: '%.*s'"
msgstr "nada para fusionar: '%.*s'"
-#: sequencer.c:3422
+#: sequencer.c:3363
msgid "octopus merge cannot be executed on top of a [new root]"
msgstr "fusión octopus no puede ser ejecutada en la punta de un [nuevo root]"
-#: sequencer.c:3437
+#: sequencer.c:3378
#, c-format
msgid "could not get commit message of '%s'"
msgstr "no se puede leer el mensaje del commit '%s'"
-#: sequencer.c:3590
+#: sequencer.c:3538
#, c-format
msgid "could not even attempt to merge '%.*s'"
msgstr "no se pudo intentar fusionar '%.*s'"
-#: sequencer.c:3606
+#: sequencer.c:3554
msgid "merge: Unable to write new index file"
msgstr "fusión: No se puede escribir el nuevo archivo índice"
-#: sequencer.c:3675 builtin/rebase.c:711
+#: sequencer.c:3623 builtin/rebase.c:712
#, c-format
msgid "Applied autostash.\n"
msgstr "Autostash aplicado.\n"
-#: sequencer.c:3687
+#: sequencer.c:3635
#, c-format
msgid "cannot store %s"
msgstr "no se puede guardar %s"
-#: sequencer.c:3690 builtin/rebase.c:727 git-rebase--preserve-merges.sh:113
+#: sequencer.c:3638 builtin/rebase.c:728 git-rebase--preserve-merges.sh:113
#, c-format
msgid ""
"Applying autostash resulted in conflicts.\n"
@@ -6489,31 +6513,31 @@ msgstr ""
"Puedes ejecutar \"git stash pop\" o \"git stash drop\" en cualquier "
"momento.\n"
-#: sequencer.c:3751
+#: sequencer.c:3699
#, c-format
msgid "could not checkout %s"
msgstr "no se puede hacer checkout a %s"
-#: sequencer.c:3765
+#: sequencer.c:3713
#, c-format
msgid "%s: not a valid OID"
msgstr "%s no es OID válido"
-#: sequencer.c:3770 git-rebase--preserve-merges.sh:779
+#: sequencer.c:3718 git-rebase--preserve-merges.sh:779
msgid "could not detach HEAD"
msgstr "no se puede desacoplar HEAD"
-#: sequencer.c:3785
+#: sequencer.c:3733
#, c-format
msgid "Stopped at HEAD\n"
msgstr "Detenido en HEAD\n"
-#: sequencer.c:3787
+#: sequencer.c:3735
#, c-format
msgid "Stopped at %s\n"
msgstr "Detenido en %s\n"
-#: sequencer.c:3795
+#: sequencer.c:3743
#, c-format
msgid ""
"Could not execute the todo command\n"
@@ -6534,48 +6558,48 @@ msgstr ""
" git rebase --edit-todo\n"
" git rebase --continue\n"
-#: sequencer.c:3877
+#: sequencer.c:3827
#, c-format
msgid "Stopped at %s... %.*s\n"
msgstr "Detenido en %s... %.*s\n"
-#: sequencer.c:3958
+#: sequencer.c:3898
#, c-format
msgid "unknown command %d"
msgstr "comando desconocido %d"
-#: sequencer.c:4003
+#: sequencer.c:3957
msgid "could not read orig-head"
msgstr "no se puede leer orig-head"
-#: sequencer.c:4008
+#: sequencer.c:3962
msgid "could not read 'onto'"
msgstr "no se puede leer 'onto'"
-#: sequencer.c:4022
+#: sequencer.c:3976
#, c-format
msgid "could not update HEAD to %s"
msgstr "no se puede actualizar HEAD a %s"
-#: sequencer.c:4115
+#: sequencer.c:4069
msgid "cannot rebase: You have unstaged changes."
msgstr "no se puede realizar rebase: Tienes cambios fuera del área de stage."
-#: sequencer.c:4124
+#: sequencer.c:4078
msgid "cannot amend non-existing commit"
msgstr "no se puede arreglar un commit no existente"
-#: sequencer.c:4126
+#: sequencer.c:4080
#, c-format
msgid "invalid file: '%s'"
msgstr "archivo inválido: '%s'"
-#: sequencer.c:4128
+#: sequencer.c:4082
#, c-format
msgid "invalid contents: '%s'"
msgstr "contenido inválido: '%s'"
-#: sequencer.c:4131
+#: sequencer.c:4085
msgid ""
"\n"
"You have uncommitted changes in your working tree. Please, commit them\n"
@@ -6586,42 +6610,42 @@ msgstr ""
"un commit con estos\n"
"primero y luego ejecuta 'git rebase --continue' de nuevo."
-#: sequencer.c:4167 sequencer.c:4205
+#: sequencer.c:4121 sequencer.c:4159
#, c-format
msgid "could not write file: '%s'"
msgstr "no se pudo escribir el archivo: '%s'"
-#: sequencer.c:4220
+#: sequencer.c:4174
msgid "could not remove CHERRY_PICK_HEAD"
msgstr "no se puede eliminar CHERRY_PICK_HEAD"
-#: sequencer.c:4227
+#: sequencer.c:4181
msgid "could not commit staged changes."
msgstr "no se pudo realizar el commit con los cambios en el área de stage."
-#: sequencer.c:4328
+#: sequencer.c:4285
#, c-format
msgid "%s: can't cherry-pick a %s"
msgstr "%s: no se puede aplicar cherry-pick a un %s"
-#: sequencer.c:4332
+#: sequencer.c:4289
#, c-format
msgid "%s: bad revision"
msgstr "%s: revisión errónea"
-#: sequencer.c:4367
+#: sequencer.c:4324
msgid "can't revert as initial commit"
msgstr "no se puede revertir como commit inicial"
-#: sequencer.c:4810
+#: sequencer.c:4774
msgid "make_script: unhandled options"
msgstr "make_script: opciones desconocidas"
-#: sequencer.c:4813
+#: sequencer.c:4777
msgid "make_script: error preparing revisions"
msgstr "make_script: error preparando revisiones"
-#: sequencer.c:4971
+#: sequencer.c:4935
msgid ""
"You can fix this with 'git rebase --edit-todo' and then run 'git rebase --"
"continue'.\n"
@@ -6631,24 +6655,24 @@ msgstr ""
"rebase --continue'.\n"
"O se puede abortar el rebase con 'git rebase --abort'.\n"
-#: sequencer.c:5083 sequencer.c:5100
+#: sequencer.c:5047 sequencer.c:5064
msgid "nothing to do"
msgstr "nada que hacer"
-#: sequencer.c:5114
+#: sequencer.c:5078
msgid "could not skip unnecessary pick commands"
msgstr "no se pudo saltar los comandos pick innecesarios"
-#: sequencer.c:5197
+#: sequencer.c:5166
msgid "the script was already rearranged."
msgstr "este script ya fue reorganizado."
-#: setup.c:123
+#: setup.c:124
#, c-format
msgid "'%s' is outside repository"
msgstr "'%s' está fuera del repositorio"
-#: setup.c:173
+#: setup.c:174
#, c-format
msgid ""
"%s: no such path in the working tree.\n"
@@ -6658,7 +6682,7 @@ msgstr ""
"Use 'git <comando> -- <ruta>...' para especificar rutas que no existen "
"localmente."
-#: setup.c:186
+#: setup.c:187
#, c-format
msgid ""
"ambiguous argument '%s': unknown revision or path not in the working tree.\n"
@@ -6670,12 +6694,12 @@ msgstr ""
"Use '--' para separar las rutas de las revisiones, de esta manera:\n"
"'git <comando> [<revisión>...] -- [<archivo>...]'"
-#: setup.c:235
+#: setup.c:236
#, c-format
msgid "option '%s' must come before non-option arguments"
msgstr "opción '%s' debe venir antes de argumentos no opcionales"
-#: setup.c:254
+#: setup.c:255
#, c-format
msgid ""
"ambiguous argument '%s': both revision and filename\n"
@@ -6686,95 +6710,95 @@ msgstr ""
"Use '--' para separar rutas de revisiones, de esta manera:\n"
"'git <comando> [<revisión>...] -- [<archivo>...]'"
-#: setup.c:390
+#: setup.c:391
msgid "unable to set up work tree using invalid config"
msgstr ""
"no es posible configurar el directorio de trabajo usando una configuración "
"inválida"
-#: setup.c:394
+#: setup.c:395
msgid "this operation must be run in a work tree"
msgstr "esta operación debe ser realizada en un árbol de trabajo"
-#: setup.c:540
+#: setup.c:541
#, c-format
msgid "Expected git repo version <= %d, found %d"
msgstr "Se esperaba versión de git repo <= %d, encontrada %d"
-#: setup.c:548
+#: setup.c:549
msgid "unknown repository extensions found:"
msgstr "se encontró extensión de repositorio desconocida:"
-#: setup.c:567
+#: setup.c:568
#, c-format
msgid "error opening '%s'"
msgstr "error abriendo '%s'"
-#: setup.c:569
+#: setup.c:570
#, c-format
msgid "too large to be a .git file: '%s'"
msgstr "muy grande para ser un archivo .git: '%s'"
-#: setup.c:571
+#: setup.c:572
#, c-format
msgid "error reading %s"
msgstr "error leyendo %s"
-#: setup.c:573
+#: setup.c:574
#, c-format
msgid "invalid gitfile format: %s"
msgstr "formato gitfile inválido: %s"
-#: setup.c:575
+#: setup.c:576
#, c-format
msgid "no path in gitfile: %s"
msgstr "no hay ruta en gitfile: %s"
-#: setup.c:577
+#: setup.c:578
#, c-format
msgid "not a git repository: %s"
msgstr "no es un repositorio git: %s"
-#: setup.c:676
+#: setup.c:677
#, c-format
msgid "'$%s' too big"
msgstr "'$%s' muy grande"
-#: setup.c:690
+#: setup.c:691
#, c-format
msgid "not a git repository: '%s'"
msgstr "no es un repositorio git: '%s'"
-#: setup.c:719 setup.c:721 setup.c:752
+#: setup.c:720 setup.c:722 setup.c:753
#, c-format
msgid "cannot chdir to '%s'"
msgstr "no se puede aplicar chdir a '%s'"
-#: setup.c:724 setup.c:780 setup.c:790 setup.c:829 setup.c:837
+#: setup.c:725 setup.c:781 setup.c:791 setup.c:830 setup.c:838
msgid "cannot come back to cwd"
msgstr "no se puede volver a cwd"
-#: setup.c:851
+#: setup.c:852
#, c-format
msgid "failed to stat '%*s%s%s'"
msgstr "falló al determinar '%*s%s%s'"
-#: setup.c:1083
+#: setup.c:1090
msgid "Unable to read current working directory"
msgstr "Incapaz de leer el directorio de trabajo actual"
-#: setup.c:1092 setup.c:1098
+#: setup.c:1099 setup.c:1105
#, c-format
msgid "cannot change to '%s'"
msgstr "no se puede cambiar a '%s'"
-#: setup.c:1103
+#: setup.c:1110
#, c-format
msgid "not a git repository (or any of the parent directories): %s"
msgstr ""
"no es un repositorio git (ni ninguno de los directorios superiores): %s"
-#: setup.c:1109
+#: setup.c:1116
#, c-format
msgid ""
"not a git repository (or any parent up to mount point %s)\n"
@@ -6784,7 +6808,7 @@ msgstr ""
"Parando en el límite del sistema de archivos "
"(GIT_DISCOVERY_ACROSS_FILESYSTEM no establecido)."
-#: setup.c:1220
+#: setup.c:1227
#, c-format
msgid ""
"problem with core.sharedRepository filemode value (0%.3o).\n"
@@ -6793,286 +6817,286 @@ msgstr ""
"problema con el valor del modo de archivo core.sharedRepository (0%.3o).\n"
"El dueño de los archivos tiene que tener permisos de lectura y escritura."
-#: setup.c:1264
+#: setup.c:1271
msgid "open /dev/null or dup failed"
msgstr "falló al abrir /dev/null o dup"
-#: setup.c:1279
+#: setup.c:1286
msgid "fork failed"
msgstr "falló fork"
-#: setup.c:1284
+#: setup.c:1291
msgid "setsid failed"
msgstr "falló setsid"
-#: sha1-file.c:453
+#: sha1-file.c:452
#, c-format
msgid "object directory %s does not exist; check .git/objects/info/alternates"
msgstr "objeto directorio %s no existe; revisa .git/objects/info/alternates"
-#: sha1-file.c:504
+#: sha1-file.c:503
#, c-format
msgid "unable to normalize alternate object path: %s"
msgstr "incapaz de normalizar la ruta de objeto alterno: %s"
-#: sha1-file.c:576
+#: sha1-file.c:575
#, c-format
msgid "%s: ignoring alternate object stores, nesting too deep"
msgstr "%s: ignorando espacios de objetos alternos, anidado muy profundo"
-#: sha1-file.c:583
+#: sha1-file.c:582
#, c-format
msgid "unable to normalize object directory: %s"
msgstr "incapaz de normalizar directorio de objeto: %s"
-#: sha1-file.c:626
+#: sha1-file.c:625
msgid "unable to fdopen alternates lockfile"
msgstr "no es posible hacer fdopen en lockfile alternos"
-#: sha1-file.c:644
+#: sha1-file.c:643
msgid "unable to read alternates file"
msgstr "no es posible leer archivos alternos"
-#: sha1-file.c:651
+#: sha1-file.c:650
msgid "unable to move new alternates file into place"
msgstr "no es posible mover archivos alternos en el lugar"
-#: sha1-file.c:686
+#: sha1-file.c:685
#, c-format
msgid "path '%s' does not exist"
msgstr "ruta '%s' no existe"
-#: sha1-file.c:712
+#: sha1-file.c:711
#, c-format
msgid "reference repository '%s' as a linked checkout is not supported yet."
msgstr ""
"repositorio de referencia '%s' como un checkout vinculado no es soportado "
"todavía."
-#: sha1-file.c:718
+#: sha1-file.c:717
#, c-format
msgid "reference repository '%s' is not a local repository."
msgstr "repositorio de referencia '%s' no es un repositorio local."
-#: sha1-file.c:724
+#: sha1-file.c:723
#, c-format
msgid "reference repository '%s' is shallow"
msgstr "repositorio de referencia '%s' es superficial (shallow)"
-#: sha1-file.c:732
+#: sha1-file.c:731
#, c-format
msgid "reference repository '%s' is grafted"
msgstr "repositorio de referencia '% s' está injertado"
-#: sha1-file.c:792
+#: sha1-file.c:791
#, c-format
msgid "invalid line while parsing alternate refs: %s"
msgstr "línea inválida mientras se analizaban refs alternas: %s"
-#: sha1-file.c:944
+#: sha1-file.c:943
#, c-format
msgid "attempting to mmap %<PRIuMAX> over limit %<PRIuMAX>"
msgstr "intentando usar mmap %<PRIuMAX> sobre límite %<PRIuMAX>"
-#: sha1-file.c:969
+#: sha1-file.c:964
msgid "mmap failed"
msgstr "mmap falló"
-#: sha1-file.c:1133
+#: sha1-file.c:1128
#, c-format
msgid "object file %s is empty"
msgstr "archivo de objeto %s está vacío"
-#: sha1-file.c:1257 sha1-file.c:2396
+#: sha1-file.c:1252 sha1-file.c:2392
#, c-format
msgid "corrupt loose object '%s'"
msgstr "objeto perdido corrupto '%s'"
-#: sha1-file.c:1259 sha1-file.c:2400
+#: sha1-file.c:1254 sha1-file.c:2396
#, c-format
msgid "garbage at end of loose object '%s'"
msgstr "basura al final del objeto perdido '%s'"
-#: sha1-file.c:1301
+#: sha1-file.c:1296
msgid "invalid object type"
msgstr "tipo de objeto inválido"
-#: sha1-file.c:1385
+#: sha1-file.c:1380
#, c-format
msgid "unable to unpack %s header with --allow-unknown-type"
msgstr "no es posible desempacar header %s con --allow-unknown-type"
-#: sha1-file.c:1388
+#: sha1-file.c:1383
#, c-format
msgid "unable to unpack %s header"
msgstr "incapaz de desempaquetar header %s"
-#: sha1-file.c:1394
+#: sha1-file.c:1389
#, c-format
msgid "unable to parse %s header with --allow-unknown-type"
msgstr "no es posible analizar header %s con --allow-unknown-type"
-#: sha1-file.c:1397
+#: sha1-file.c:1392
#, c-format
msgid "unable to parse %s header"
msgstr "incapaz de analizar header %s"
-#: sha1-file.c:1588
+#: sha1-file.c:1584
#, c-format
msgid "failed to read object %s"
msgstr "falló al leer objeto %s"
-#: sha1-file.c:1592
+#: sha1-file.c:1588
#, c-format
msgid "replacement %s not found for %s"
msgstr "reemplazo %s no encontrado para %s"
-#: sha1-file.c:1596
+#: sha1-file.c:1592
#, c-format
msgid "loose object %s (stored in %s) is corrupt"
msgstr "objeto perdido %s (guardado en %s) está corrompido"
-#: sha1-file.c:1600
+#: sha1-file.c:1596
#, c-format
msgid "packed object %s (stored in %s) is corrupt"
msgstr "paquete de objeto %s (guardado en %s) está corrompido"
-#: sha1-file.c:1703
+#: sha1-file.c:1699
#, c-format
msgid "unable to write file %s"
msgstr "no es posible escribir archivo %s"
-#: sha1-file.c:1710
+#: sha1-file.c:1706
#, c-format
msgid "unable to set permission to '%s'"
msgstr "no se pudo poner permisos a '%s'"
-#: sha1-file.c:1717
+#: sha1-file.c:1713
msgid "file write error"
msgstr "falló de escritura"
-#: sha1-file.c:1736
+#: sha1-file.c:1732
msgid "error when closing loose object file"
msgstr "error cerrando el archivo de objeto suelto"
-#: sha1-file.c:1801
+#: sha1-file.c:1797
#, c-format
msgid "insufficient permission for adding an object to repository database %s"
msgstr ""
"permisos insuficientes para agregar un objeto a la base de datos del "
"repositorio %s"
-#: sha1-file.c:1803
+#: sha1-file.c:1799
msgid "unable to create temporary file"
msgstr "no es posible crear un archivo temporal"
-#: sha1-file.c:1827
+#: sha1-file.c:1823
msgid "unable to write loose object file"
msgstr "no es posible escribir el archivo de objeto suelto"
-#: sha1-file.c:1833
+#: sha1-file.c:1829
#, c-format
msgid "unable to deflate new object %s (%d)"
msgstr "no es posible desinflar el objeto nuevo %s (%d)"
-#: sha1-file.c:1837
+#: sha1-file.c:1833
#, c-format
msgid "deflateEnd on object %s failed (%d)"
msgstr "deflateEnd en objeto %s falló (%d)"
-#: sha1-file.c:1841
+#: sha1-file.c:1837
#, c-format
msgid "confused by unstable object source data for %s"
msgstr "confundido por fuente de data de objetos inestable para %s"
-#: sha1-file.c:1851 builtin/pack-objects.c:925
+#: sha1-file.c:1847 builtin/pack-objects.c:925
#, c-format
msgid "failed utime() on %s"
msgstr "falló utime() en %s"
-#: sha1-file.c:1926
+#: sha1-file.c:1922
#, c-format
msgid "cannot read object for %s"
msgstr "no se pudo leer el objeto para %s"
-#: sha1-file.c:1966
+#: sha1-file.c:1962
msgid "corrupt commit"
msgstr "commit corrupto"
-#: sha1-file.c:1974
+#: sha1-file.c:1970
msgid "corrupt tag"
msgstr "tag corrupto"
-#: sha1-file.c:2073
+#: sha1-file.c:2069
#, c-format
msgid "read error while indexing %s"
msgstr "error leyendo al indexar %s"
-#: sha1-file.c:2076
+#: sha1-file.c:2072
#, c-format
msgid "short read while indexing %s"
msgstr "lectura corta al indexar %s"
-#: sha1-file.c:2149 sha1-file.c:2158
+#: sha1-file.c:2145 sha1-file.c:2154
#, c-format
msgid "%s: failed to insert into database"
msgstr "%s: falló al insertar en la base de datos"
-#: sha1-file.c:2164
+#: sha1-file.c:2160
#, c-format
msgid "%s: unsupported file type"
msgstr "%s: tipo de archivo no soportado"
-#: sha1-file.c:2188
+#: sha1-file.c:2184
#, c-format
msgid "%s is not a valid object"
msgstr "%s no es objeto válido"
-#: sha1-file.c:2190
+#: sha1-file.c:2186
#, c-format
msgid "%s is not a valid '%s' object"
msgstr "%s no es un objeto '%s' válido"
-#: sha1-file.c:2217 builtin/index-pack.c:155
+#: sha1-file.c:2213 builtin/index-pack.c:155
#, c-format
msgid "unable to open %s"
msgstr "no es posible abrir %s"
-#: sha1-file.c:2407 sha1-file.c:2459
+#: sha1-file.c:2403 sha1-file.c:2455
#, c-format
msgid "hash mismatch for %s (expected %s)"
msgstr "hash no concuerda para %s (se esperaba %s)"
-#: sha1-file.c:2431
+#: sha1-file.c:2427
#, c-format
msgid "unable to mmap %s"
msgstr "no es posible hacer mmap a %s"
-#: sha1-file.c:2436
+#: sha1-file.c:2432
#, c-format
msgid "unable to unpack header of %s"
msgstr "incapaz de desempaquetar header de %s"
-#: sha1-file.c:2442
+#: sha1-file.c:2438
#, c-format
msgid "unable to parse header of %s"
msgstr "incapaz de analizar header de %s"
-#: sha1-file.c:2453
+#: sha1-file.c:2449
#, c-format
msgid "unable to unpack contents of %s"
msgstr "no es posible desempaquetar contenidos de %s"
-#: sha1-name.c:490
+#: sha1-name.c:487
#, c-format
msgid "short SHA1 %s is ambiguous"
msgstr "SHA1 %s corto es ambiguo"
-#: sha1-name.c:501
+#: sha1-name.c:498
msgid "The candidates are:"
msgstr "Los candidatos son:"
-#: sha1-name.c:800
+#: sha1-name.c:797
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"
@@ -7096,43 +7120,43 @@ msgstr ""
"ejecutando \"git config advice.objectNameWarning false\""
#. TRANSLATORS: IEC 80000-13:2008 gibibyte
-#: strbuf.c:821
+#: strbuf.c:822
#, c-format
msgid "%u.%2.2u GiB"
msgstr "%u.%2.2u GiB"
#. TRANSLATORS: IEC 80000-13:2008 gibibyte/second
-#: strbuf.c:823
+#: strbuf.c:824
#, c-format
msgid "%u.%2.2u GiB/s"
msgstr "%u.%2.2u GiB/s"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte
-#: strbuf.c:831
+#: strbuf.c:832
#, c-format
msgid "%u.%2.2u MiB"
msgstr "%u.%2.2u MiB"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte/second
-#: strbuf.c:833
+#: strbuf.c:834
#, c-format
msgid "%u.%2.2u MiB/s"
msgstr "%u.%2.2u MiB/s"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte
-#: strbuf.c:840
+#: strbuf.c:841
#, c-format
msgid "%u.%2.2u KiB"
msgstr "%u.%2.2u KiB"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte/second
-#: strbuf.c:842
+#: strbuf.c:843
#, c-format
msgid "%u.%2.2u KiB/s"
msgstr "%u.%2.2u KiB/s"
#. TRANSLATORS: IEC 80000-13:2008 byte
-#: strbuf.c:848
+#: strbuf.c:849
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -7140,7 +7164,7 @@ msgstr[0] "%u byte"
msgstr[1] "%u bytes"
#. TRANSLATORS: IEC 80000-13:2008 byte/second
-#: strbuf.c:850
+#: strbuf.c:851
#, c-format
msgid "%u byte/s"
msgid_plural "%u bytes/s"
@@ -7258,28 +7282,28 @@ msgstr "no se pudo comenzar ls-files en .."
msgid "ls-tree returned unexpected return code %d"
msgstr "ls-tree devolvió un código %d inesperado"
-#: submodule-config.c:232
+#: submodule-config.c:236
#, c-format
msgid "ignoring suspicious submodule name: %s"
msgstr "ignorando submódulo sospechoso: %s"
-#: submodule-config.c:299
+#: submodule-config.c:303
msgid "negative values not allowed for submodule.fetchjobs"
msgstr "no se permiten valores negativos para submodule.fetchjobs"
-#: submodule-config.c:397
+#: submodule-config.c:401
#, c-format
msgid "ignoring '%s' which may be interpreted as a command-line option: %s"
msgstr ""
"ignorando '%s' ya que puede ser interpretado como una opción de línea de "
"comando: %s"
-#: submodule-config.c:486
+#: submodule-config.c:490
#, c-format
msgid "invalid value for %s"
msgstr "valor inválido para %s"
-#: submodule-config.c:755
+#: submodule-config.c:761
#, c-format
msgid "Could not update .gitmodules entry %s"
msgstr "No se pudo actualizar la entrada %s de .gitmodules"
@@ -7314,7 +7338,7 @@ msgstr "no se pudo leer el archivo de entrada '%s'"
msgid "could not read from stdin"
msgstr "no se pudo leer desde stdin"
-#: trailer.c:1011 wrapper.c:701
+#: trailer.c:1011 wrapper.c:665
#, c-format
msgid "could not stat %s"
msgstr "no se pudo definir %s"
@@ -7343,47 +7367,47 @@ msgstr "no se pudo renombrar el archivo temporal a %s"
msgid "Would set upstream of '%s' to '%s' of '%s'\n"
msgstr "Configurará upstream de '%s' a '%s' de '%s'\n"
-#: transport.c:142
+#: transport.c:145
#, c-format
msgid "could not read bundle '%s'"
msgstr "no se pudo leer el conjunto '%s'"
-#: transport.c:208
+#: transport.c:214
#, c-format
msgid "transport: invalid depth option '%s'"
msgstr "transport: opción inválida '%s'"
-#: transport.c:259
+#: transport.c:266
msgid "see protocol.version in 'git help config' for more details"
msgstr "ver protocol.version en 'git help config' para más información"
-#: transport.c:260
+#: transport.c:267
msgid "server options require protocol version 2 or later"
msgstr "opciones del servidor requieren protocolo versión 2 o posterior"
-#: transport.c:625
+#: transport.c:632
msgid "could not parse transport.color.* config"
msgstr "no se pudo analizar valor de configuración transport.color.*"
-#: transport.c:698
+#: transport.c:705
msgid "support for protocol v2 not implemented yet"
msgstr "soporte para protocolo v2 no implementado todavía"
-#: transport.c:825
+#: transport.c:831
#, c-format
msgid "unknown value for config '%s': %s"
msgstr "valor desconocido para configuración '%s': %s"
-#: transport.c:891
+#: transport.c:897
#, c-format
msgid "transport '%s' not allowed"
msgstr "transporte '%s' no permitido"
-#: transport.c:945
+#: transport.c:949
msgid "git-over-rsync is no longer supported"
msgstr "git-over-rsync ya no es soportado"
-#: transport.c:1040
+#: transport.c:1044
#, c-format
msgid ""
"The following submodule paths contain changes that can\n"
@@ -7392,7 +7416,7 @@ msgstr ""
"La siguiente ruta de submódulo contiene cambios que no\n"
"pueden ser encontrados en ningún remoto:\n"
-#: transport.c:1044
+#: transport.c:1048
#, c-format
msgid ""
"\n"
@@ -7419,32 +7443,32 @@ msgstr ""
"para hacer un push al remoto.\n"
"\n"
-#: transport.c:1052
+#: transport.c:1056
msgid "Aborting."
msgstr "Abortando."
-#: transport.c:1193
+#: transport.c:1201
msgid "failed to push all needed submodules"
msgstr "falló al hacer push a todos los submódulos necesarios"
-#: transport.c:1340 transport-helper.c:645
+#: transport.c:1345 transport-helper.c:655
msgid "operation not supported by protocol"
msgstr "operación no soportada por protocolo"
-#: transport-helper.c:51 transport-helper.c:80
+#: transport-helper.c:61 transport-helper.c:90
msgid "full write to remote helper failed"
msgstr "escritura total al helper remoto falló"
-#: transport-helper.c:134
+#: transport-helper.c:144
#, c-format
msgid "unable to find remote helper for '%s'"
msgstr "no es posible encontrar helper remoto para '%s'"
-#: transport-helper.c:150 transport-helper.c:559
+#: transport-helper.c:160 transport-helper.c:569
msgid "can't dup helper output fd"
msgstr "no se puede duplicar output de fd del helper"
-#: transport-helper.c:201
+#: transport-helper.c:211
#, c-format
msgid ""
"unknown mandatory capability %s; this remote helper probably needs newer "
@@ -7453,99 +7477,104 @@ msgstr ""
"capacidad mandatoria desconocida %s; este helper remoto probablemente "
"necesita una nueva versión de Git"
-#: transport-helper.c:207
+#: transport-helper.c:217
msgid "this remote helper should implement refspec capability"
msgstr "este helper remoto debería implementar capacidad refspec"
-#: transport-helper.c:274 transport-helper.c:414
+#: transport-helper.c:284 transport-helper.c:424
#, c-format
msgid "%s unexpectedly said: '%s'"
msgstr "%s dijo inesperadamente: '%s'"
-#: transport-helper.c:403
+#: transport-helper.c:413
#, c-format
msgid "%s also locked %s"
msgstr "%s también bloqueó %s"
-#: transport-helper.c:481
+#: transport-helper.c:491
msgid "couldn't run fast-import"
msgstr "no se pudo ejecutar fast-import"
-#: transport-helper.c:504
+#: transport-helper.c:514
msgid "error while running fast-import"
msgstr "error al ejecutar fast-import"
-#: transport-helper.c:533 transport-helper.c:1105
+#: transport-helper.c:543 transport-helper.c:1132
#, c-format
msgid "could not read ref %s"
msgstr "no se pudo leer la referencia %s"
-#: transport-helper.c:578
+#: transport-helper.c:588
#, c-format
msgid "unknown response to connect: %s"
msgstr "respuesta para conectar desconocida: %s"
-#: transport-helper.c:600
+#: transport-helper.c:610
msgid "setting remote service path not supported by protocol"
msgstr "configurando servicio de ruta remota no soportado por el protocolo"
-#: transport-helper.c:602
+#: transport-helper.c:612
msgid "invalid remote service path"
msgstr "ruta de servicio remoto inválida"
-#: transport-helper.c:648
+#: transport-helper.c:658
#, c-format
msgid "can't connect to subservice %s"
msgstr "no se puede conectar al subservicio %s"
-#: transport-helper.c:720
+#: transport-helper.c:734
#, c-format
msgid "expected ok/error, helper said '%s'"
msgstr "se esperaba ok/error, helper dijo '%s'"
-#: transport-helper.c:773
+#: transport-helper.c:787
#, c-format
msgid "helper reported unexpected status of %s"
msgstr "helper reportó estado inesperado de %s"
-#: transport-helper.c:834
+#: transport-helper.c:848
#, c-format
msgid "helper %s does not support dry-run"
msgstr "helper %s no soporta dry-run"
-#: transport-helper.c:837
+#: transport-helper.c:851
#, c-format
msgid "helper %s does not support --signed"
msgstr "helper %s no soporta --signed"
-#: transport-helper.c:840
+#: transport-helper.c:854
#, c-format
msgid "helper %s does not support --signed=if-asked"
msgstr "helper %s no soporta --signed=if-asked"
-#: transport-helper.c:847
+#: transport-helper.c:859
+#, c-format
+msgid "helper %s does not support --atomic"
+msgstr "helper %s no soporta --atomic"
+
+#: transport-helper.c:865
#, c-format
msgid "helper %s does not support 'push-option'"
msgstr "helper %s no soporta 'push-option'"
-#: transport-helper.c:945
+#: transport-helper.c:963
msgid "remote-helper doesn't support push; refspec needed"
msgstr "remote-helper no soporta push; se necesita refspec"
-#: transport-helper.c:950
+#: transport-helper.c:968
#, c-format
msgid "helper %s does not support 'force'"
msgstr "helper %s no soporta 'force'"
-#: transport-helper.c:997
+#: transport-helper.c:1015
msgid "couldn't run fast-export"
msgstr "no se pudo ejecutar fast-export"
-#: transport-helper.c:1002
+#: transport-helper.c:1020
msgid "error while running fast-export"
msgstr "error al ejecutar fast-export"
-#: transport-helper.c:1027
+#: transport-helper.c:1045
#, c-format
msgid ""
"No refs in common and none specified; doing nothing.\n"
@@ -7554,47 +7583,47 @@ msgstr ""
"No hay refs comunes y ninguno especificado; no se hace nada.\n"
"Tal vez deberías especificar un branch como 'master'.\n"
-#: transport-helper.c:1091
+#: transport-helper.c:1118
#, c-format
msgid "malformed response in ref list: %s"
msgstr "respuesta malformada en lista de refs: %s"
-#: transport-helper.c:1244
+#: transport-helper.c:1270
#, c-format
msgid "read(%s) failed"
msgstr "leer(%s) falló"
-#: transport-helper.c:1271
+#: transport-helper.c:1297
#, c-format
msgid "write(%s) failed"
msgstr "escribir(%s) falló"
-#: transport-helper.c:1320
+#: transport-helper.c:1346
#, c-format
msgid "%s thread failed"
msgstr "hilo %s falló"
-#: transport-helper.c:1324
+#: transport-helper.c:1350
#, c-format
msgid "%s thread failed to join: %s"
msgstr "hilo %s falló al unirse: %s"
-#: transport-helper.c:1343 transport-helper.c:1347
+#: transport-helper.c:1369 transport-helper.c:1373
#, c-format
msgid "can't start thread for copying data: %s"
msgstr "no se puede iniciar el hilo para copiar data: %s"
-#: transport-helper.c:1384
+#: transport-helper.c:1410
#, c-format
msgid "%s process failed to wait"
msgstr "proceso %s falló al esperar"
-#: transport-helper.c:1388
+#: transport-helper.c:1414
#, c-format
msgid "%s process failed"
msgstr "proceso %s falló"
-#: transport-helper.c:1406 transport-helper.c:1415
+#: transport-helper.c:1432 transport-helper.c:1441
msgid "can't start thread for copying data"
msgstr "no se puede iniciar hilo para copiar data"
@@ -7614,7 +7643,7 @@ msgstr "nombre de archivo vacío en la entrada de árbol"
msgid "too-short tree file"
msgstr "archivo de árbol muy corto"
-#: unpack-trees.c:111
+#: unpack-trees.c:110
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by checkout:\n"
@@ -7625,7 +7654,7 @@ msgstr ""
"%%sPor favor realiza un commit con los cambios o un stash antes de cambiar "
"ramas."
-#: unpack-trees.c:113
+#: unpack-trees.c:112
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by checkout:\n"
@@ -7635,7 +7664,7 @@ msgstr ""
"checkout:\n"
"%%s"
-#: unpack-trees.c:116
+#: unpack-trees.c:115
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by merge:\n"
@@ -7645,7 +7674,7 @@ msgstr ""
"fusionar:\n"
"%%sPor favor, confirma tus cambios o aguárdalos antes de fusionar."
-#: unpack-trees.c:118
+#: unpack-trees.c:117
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by merge:\n"
@@ -7655,7 +7684,7 @@ msgstr ""
"merge:\n"
"%%s"
-#: unpack-trees.c:121
+#: unpack-trees.c:120
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by %s:\n"
@@ -7664,7 +7693,7 @@ msgstr ""
"Los cambios locales de los siguientes archivos serán sobrescritos al %s:\n"
"%%sPor favor, confirma tus cambios o guárdalos antes de %s."
-#: unpack-trees.c:123
+#: unpack-trees.c:122
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by %s:\n"
@@ -7673,7 +7702,7 @@ msgstr ""
"Los cambios locales de los siguientes archivos serán sobreescritos por %s:\n"
"%%s"
-#: unpack-trees.c:128
+#: unpack-trees.c:127
#, c-format
msgid ""
"Updating the following directories would lose untracked files in them:\n"
@@ -7683,7 +7712,7 @@ msgstr ""
"seguimiento en ellos:\n"
"%s"
-#: unpack-trees.c:132
+#: unpack-trees.c:131
#, c-format
msgid ""
"The following untracked working tree files would be removed by checkout:\n"
@@ -7693,7 +7722,7 @@ msgstr ""
"eliminados al actualizar el árbol de trabajo:\n"
"%%sPor favor, muévelos o elimínalos antes de intercambiar ramas."
-#: unpack-trees.c:134
+#: unpack-trees.c:133
#, c-format
msgid ""
"The following untracked working tree files would be removed by checkout:\n"
@@ -7703,7 +7732,7 @@ msgstr ""
"eliminadosal actualizar el árbol de trabajo:\n"
"%%s"
-#: unpack-trees.c:137
+#: unpack-trees.c:136
#, c-format
msgid ""
"The following untracked working tree files would be removed by merge:\n"
@@ -7713,7 +7742,7 @@ msgstr ""
"eliminados al fusionar:\n"
"%%sPor favor, muévelos o elimínalos antes de fusionar."
-#: unpack-trees.c:139
+#: unpack-trees.c:138
#, c-format
msgid ""
"The following untracked working tree files would be removed by merge:\n"
@@ -7723,7 +7752,7 @@ msgstr ""
"eliminadosal fusionar:\n"
"%%s"
-#: unpack-trees.c:142
+#: unpack-trees.c:141
#, c-format
msgid ""
"The following untracked working tree files would be removed by %s:\n"
@@ -7733,7 +7762,7 @@ msgstr ""
"eliminados al %s:\n"
"%%sPor favor, muévelos o elimínalos antes de %s."
-#: unpack-trees.c:144
+#: unpack-trees.c:143
#, c-format
msgid ""
"The following untracked working tree files would be removed by %s:\n"
@@ -7743,7 +7772,7 @@ msgstr ""
"eliminados al ejecutar %s:\n"
"%%s"
-#: unpack-trees.c:150
+#: unpack-trees.c:149
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by "
@@ -7754,7 +7783,7 @@ msgstr ""
"sobrescritos al actualizar el árbol de trabajo:\n"
"%%sPor favor, muévelos o elimínalos antes de intercambiar ramas."
-#: unpack-trees.c:152
+#: unpack-trees.c:151
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by "
@@ -7765,7 +7794,7 @@ msgstr ""
"sobrescritos al actualizar el árbol de trabajo:\n"
"%%s"
-#: unpack-trees.c:155
+#: unpack-trees.c:154
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by merge:\n"
@@ -7775,7 +7804,7 @@ msgstr ""
"sobrescritos al fusionar:\n"
"%%sPor favor, muévelos o elimínalos antes de fusionar."
-#: unpack-trees.c:157
+#: unpack-trees.c:156
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by merge:\n"
@@ -7785,7 +7814,7 @@ msgstr ""
"sobrescritos al fusionar:\n"
"%%s"
-#: unpack-trees.c:160
+#: unpack-trees.c:159
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by %s:\n"
@@ -7795,7 +7824,7 @@ msgstr ""
"sobrescritos al %s:\n"
"%%sPor favor, muévelos o elimínalos antes de %s."
-#: unpack-trees.c:162
+#: unpack-trees.c:161
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by %s:\n"
@@ -7805,12 +7834,12 @@ msgstr ""
"eliminadospor %s:\n"
"%%s"
-#: unpack-trees.c:170
+#: unpack-trees.c:169
#, c-format
msgid "Entry '%s' overlaps with '%s'. Cannot bind."
msgstr "Entrada '%s' se superpone con '%s'. No se pueden unir."
-#: unpack-trees.c:173
+#: unpack-trees.c:172
#, c-format
msgid ""
"Cannot update sparse checkout: the following entries are not up to date:\n"
@@ -7820,7 +7849,7 @@ msgstr ""
"actualizadas:\n"
"%s"
-#: unpack-trees.c:175
+#: unpack-trees.c:174
#, c-format
msgid ""
"The following working tree files would be overwritten by sparse checkout "
@@ -7831,7 +7860,7 @@ msgstr ""
"actualización sparse checkout:\n"
"%s"
-#: unpack-trees.c:177
+#: unpack-trees.c:176
#, c-format
msgid ""
"The following working tree files would be removed by sparse checkout "
@@ -7842,7 +7871,7 @@ msgstr ""
"actualización sparse checkout:\n"
"%s"
-#: unpack-trees.c:179
+#: unpack-trees.c:178
#, c-format
msgid ""
"Cannot update submodule:\n"
@@ -7851,16 +7880,16 @@ msgstr ""
"No se puede actualizar le submódulo:\n"
"%s"
-#: unpack-trees.c:256
+#: unpack-trees.c:255
#, c-format
msgid "Aborting\n"
msgstr "Abortando\n"
-#: unpack-trees.c:318
+#: unpack-trees.c:317
msgid "Updating files"
msgstr "Actualizando archivos"
-#: unpack-trees.c:350
+#: unpack-trees.c:349
msgid ""
"the following paths have collided (e.g. case-sensitive paths\n"
"on a case-insensitive filesystem) and only one from the same\n"
@@ -7899,7 +7928,7 @@ msgstr "numero de puerto inválido"
msgid "invalid '..' path segment"
msgstr "segmento de ruta '..' inválido"
-#: worktree.c:258 builtin/am.c:2095
+#: worktree.c:258 builtin/am.c:2084
#, c-format
msgid "failed to read '%s'"
msgstr "falló al leer '%s'"
@@ -7932,17 +7961,17 @@ msgstr "'%s' no es un archivo .git, código de error %d"
msgid "'%s' does not point back to '%s'"
msgstr "'%s' no apunta de vuelta a '%s'"
-#: wrapper.c:223 wrapper.c:393
+#: wrapper.c:186 wrapper.c:356
#, c-format
msgid "could not open '%s' for reading and writing"
msgstr "no se pudo abrir '%s' para lectura y escritura"
-#: wrapper.c:424 wrapper.c:624
+#: wrapper.c:387 wrapper.c:588
#, c-format
msgid "unable to access '%s'"
msgstr "no es posible acceder '%s'"
-#: wrapper.c:632
+#: wrapper.c:596
msgid "unable to get current working directory"
msgstr "no es posible obtener el directorio de trabajo actual"
@@ -8287,81 +8316,89 @@ msgstr ""
" (todos los conflictos corregidos: ejecuta \"git cherry-pick --continue\")"
#: wt-status.c:1437
+msgid " (use \"git cherry-pick --skip\" to skip this patch)"
+msgstr " (usa \"git cherry-pick --skip\" para saltar este parche)"
+
+#: wt-status.c:1439
msgid " (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)"
msgstr ""
" (use \"git cherry-pick --abort\" para cancelar la operación cherry-pick)"
-#: wt-status.c:1447
+#: wt-status.c:1449
msgid "Revert currently in progress."
msgstr "Revierte el estado en progreso actual."
-#: wt-status.c:1450
+#: wt-status.c:1452
#, c-format
msgid "You are currently reverting commit %s."
msgstr "Estás revirtiendo el commit %s."
-#: wt-status.c:1456
+#: wt-status.c:1458
msgid " (fix conflicts and run \"git revert --continue\")"
msgstr " (corrige los conflictos y ejecuta \"git revert --continue\")"
-#: wt-status.c:1459
+#: wt-status.c:1461
msgid " (run \"git revert --continue\" to continue)"
msgstr " (ejecuta \"git revert --continue\" para continuar)"
-#: wt-status.c:1462
+#: wt-status.c:1464
msgid " (all conflicts fixed: run \"git revert --continue\")"
msgstr " (todos los conflictos corregidos: ejecuta \"git revert --continue\")"
-#: wt-status.c:1464
+#: wt-status.c:1466
+msgid " (use \"git revert --skip\" to skip this patch)"
+msgstr " (usa \"git revert --skip\" para omitir este parche)"
+
+#: wt-status.c:1468
msgid " (use \"git revert --abort\" to cancel the revert operation)"
msgstr " (usa \"git revert --abort\" para cancelar la operación de revertir)"
-#: wt-status.c:1474
+#: wt-status.c:1478
#, c-format
msgid "You are currently bisecting, started from branch '%s'."
msgstr "Estás aplicando un bisect, comenzando en la rama '%s'."
-#: wt-status.c:1478
+#: wt-status.c:1482
msgid "You are currently bisecting."
msgstr "Estás aplicando un bisect."
-#: wt-status.c:1481
+#: wt-status.c:1485
msgid " (use \"git bisect reset\" to get back to the original branch)"
msgstr " (usa \"git bisect reset\" para volver a la rama original)"
-#: wt-status.c:1690
+#: wt-status.c:1694
msgid "On branch "
msgstr "En la rama "
-#: wt-status.c:1697
+#: wt-status.c:1701
msgid "interactive rebase in progress; onto "
msgstr "rebase interactivo en progreso; en "
-#: wt-status.c:1699
+#: wt-status.c:1703
msgid "rebase in progress; onto "
msgstr "rebase en progreso; en "
-#: wt-status.c:1709
+#: wt-status.c:1713
msgid "Not currently on any branch."
msgstr "Actualmente no estás en ninguna rama."
-#: wt-status.c:1726
+#: wt-status.c:1730
msgid "Initial commit"
msgstr "Confirmación inicial"
-#: wt-status.c:1727
+#: wt-status.c:1731
msgid "No commits yet"
msgstr "No hay commits todavía"
-#: wt-status.c:1741
+#: wt-status.c:1745
msgid "Untracked files"
msgstr "Archivos sin seguimiento"
-#: wt-status.c:1743
+#: wt-status.c:1747
msgid "Ignored files"
msgstr "Archivos ignorados"
-#: wt-status.c:1747
+#: wt-status.c:1751
#, c-format
msgid ""
"It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
@@ -8372,31 +8409,31 @@ msgstr ""
"puede acelerarlo, pero tienes que ser cuidadoso de no olvidar agregar\n"
"nuevos archivos tú mismo (vea 'git help status')."
-#: wt-status.c:1753
+#: wt-status.c:1757
#, c-format
msgid "Untracked files not listed%s"
msgstr "Archivos no rastreados no son mostrados %s"
-#: wt-status.c:1755
+#: wt-status.c:1759
msgid " (use -u option to show untracked files)"
msgstr " (usa la opción -u para mostrar los archivos sin seguimiento)"
-#: wt-status.c:1761
+#: wt-status.c:1765
msgid "No changes"
msgstr "Sin cambios"
-#: wt-status.c:1766
+#: wt-status.c:1770
#, c-format
msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n"
msgstr ""
"sin cambios agregados al commit (usa \"git add\" y/o \"git commit -a\")\n"
-#: wt-status.c:1769
+#: wt-status.c:1773
#, c-format
msgid "no changes added to commit\n"
msgstr "no se agregaron cambios al commit\n"
-#: wt-status.c:1772
+#: wt-status.c:1776
#, c-format
msgid ""
"nothing added to commit but untracked files present (use \"git add\" to "
@@ -8405,71 +8442,76 @@ msgstr ""
"no hay nada agregado al commit pero hay archivos sin seguimiento presentes "
"(usa \"git add\" para hacerles seguimiento)\n"
-#: wt-status.c:1775
+#: wt-status.c:1779
#, c-format
msgid "nothing added to commit but untracked files present\n"
msgstr ""
"no hay nada agregado para confirmar, pero hay archivos sin seguimiento "
"presentes\n"
-#: wt-status.c:1778
+#: wt-status.c:1782
#, c-format
msgid "nothing to commit (create/copy files and use \"git add\" to track)\n"
msgstr ""
"no hay nada para confirmar (crea/copia archivos y usa \"git add\" para "
"hacerles seguimiento)\n"
-#: wt-status.c:1781 wt-status.c:1786
+#: wt-status.c:1785 wt-status.c:1790
#, c-format
msgid "nothing to commit\n"
msgstr "nada para hacer commit\n"
-#: wt-status.c:1784
+#: wt-status.c:1788
#, c-format
msgid "nothing to commit (use -u to show untracked files)\n"
msgstr ""
"nada para hacer commit (usa -u para mostrar los archivos no rastreados)\n"
-#: wt-status.c:1788
+#: wt-status.c:1792
#, c-format
msgid "nothing to commit, working tree clean\n"
msgstr "nada para hacer commit, el árbol de trabajo está limpio\n"
-#: wt-status.c:1901
+#: wt-status.c:1905
msgid "No commits yet on "
msgstr "No hay commits todavía en "
-#: wt-status.c:1905
+#: wt-status.c:1909
msgid "HEAD (no branch)"
msgstr "HEAD (sin rama)"
-#: wt-status.c:1936
+#: wt-status.c:1940
msgid "different"
msgstr "diferente"
-#: wt-status.c:1938 wt-status.c:1946
+#: wt-status.c:1942 wt-status.c:1950
msgid "behind "
msgstr "detrás "
-#: wt-status.c:1941 wt-status.c:1944
+#: wt-status.c:1945 wt-status.c:1948
msgid "ahead "
msgstr "adelante "
#. TRANSLATORS: the action is e.g. "pull with rebase"
-#: wt-status.c:2466
+#: wt-status.c:2470
#, c-format
msgid "cannot %s: You have unstaged changes."
msgstr "no se puede %s: Tienes cambios sin marcar."
-#: wt-status.c:2472
+#: wt-status.c:2476
msgid "additionally, your index contains uncommitted changes."
msgstr "adicionalmente, tu índice contiene cambios que no están en un commit."
-#: wt-status.c:2474
+#: wt-status.c:2478
#, c-format
msgid "cannot %s: Your index contains uncommitted changes."
msgstr "no se puede %s: Tu índice contiene cambios que no están en un commit."
+#: compat/precompose_utf8.c:58 builtin/clone.c:452
+#, c-format
+msgid "failed to unlink '%s'"
+msgstr "falló al desvincular '%s'"
+
#: builtin/add.c:25
msgid "git add [<options>] [--] <pathspec>..."
msgstr "git add [<opción>] [--] <especificación-de-ruta>..."
@@ -8492,7 +8534,7 @@ msgstr "eliminar '%s'\n"
msgid "Unstaged changes after refreshing the index:"
msgstr "Cambios fuera del área de stage tras refrescar el índice:"
-#: builtin/add.c:234 builtin/rev-parse.c:896
+#: builtin/add.c:234 builtin/rev-parse.c:897
msgid "Could not read the index"
msgstr "No se pudo leer el índice"
@@ -8528,8 +8570,8 @@ msgid "The following paths are ignored by one of your .gitignore files:\n"
msgstr ""
"Las siguientes rutas son ignoradas por uno de tus archivos .gitignore:\n"
-#: builtin/add.c:290 builtin/clean.c:909 builtin/fetch.c:147 builtin/mv.c:124
-#: builtin/prune-packed.c:56 builtin/pull.c:222 builtin/push.c:560
+#: builtin/add.c:290 builtin/clean.c:910 builtin/fetch.c:162 builtin/mv.c:124
+#: builtin/prune-packed.c:56 builtin/pull.c:223 builtin/push.c:547
#: builtin/remote.c:1345 builtin/rm.c:241 builtin/send-pack.c:165
msgid "dry run"
msgstr "dry run ( ejecución en seco)"
@@ -8568,7 +8610,8 @@ msgstr "agregar los cambios de todas las carpetas con y sin seguimiento"
#: builtin/add.c:303
msgid "ignore paths removed in the working tree (same as --no-all)"
-msgstr "ignorar rutas removidas en el árbol de trabajo (lo mismo que --no-all)"
+msgstr ""
+"ignorar rutas eliminadas en el árbol de trabajo (lo mismo que --no-all)"
#: builtin/add.c:305
msgid "don't add, only refresh the index"
@@ -8582,7 +8625,7 @@ msgstr "saltar las carpetas que no pueden ser agregadas a causa de errores"
msgid "check if - even missing - files are ignored in dry run"
msgstr "comprobar si - incluso los archivos que faltan - se ignoran en dry run"
-#: builtin/add.c:309 builtin/update-index.c:1001
+#: builtin/add.c:309 builtin/update-index.c:1002
msgid "override the executable bit of the listed files"
msgstr "sobrescribir el bit ejecutable de los archivos listados"
@@ -8656,142 +8699,138 @@ msgstr "Nada especificado, nada agregado.\n"
#: builtin/add.c:446
#, c-format
msgid "Maybe you wanted to say 'git add .'?\n"
-msgstr "Tal vez quiso decir 'git add .'?\n"
+msgstr "¿Tal vez quiso decir 'git add .'?\n"
-#: builtin/am.c:348
+#: builtin/am.c:347
msgid "could not parse author script"
msgstr "no se pudo analizar el script del autor"
-#: builtin/am.c:432
+#: builtin/am.c:431
#, c-format
msgid "'%s' was deleted by the applypatch-msg hook"
msgstr "'%s' fue borrado por el hook de applypatch-msg"
-#: builtin/am.c:474
+#: builtin/am.c:473
#, c-format
msgid "Malformed input line: '%s'."
msgstr "Línea mal formada: '%s'."
-#: builtin/am.c:512
+#: builtin/am.c:511
#, c-format
msgid "Failed to copy notes from '%s' to '%s'"
msgstr "Falló al copiar notas de '%s' a '%s'"
-#: builtin/am.c:538
+#: builtin/am.c:537
msgid "fseek failed"
msgstr "fall de fseek"
-#: builtin/am.c:726
+#: builtin/am.c:725
#, c-format
msgid "could not parse patch '%s'"
msgstr "no se pudo analizar el parche '%s'"
-#: builtin/am.c:791
+#: builtin/am.c:790
msgid "Only one StGIT patch series can be applied at once"
msgstr "Solo un parche StGIT puede ser aplicado de una vez"
-#: builtin/am.c:839
+#: builtin/am.c:838
msgid "invalid timestamp"
msgstr "timestamp inválido"
-#: builtin/am.c:844 builtin/am.c:856
+#: builtin/am.c:843 builtin/am.c:855
msgid "invalid Date line"
msgstr "línea Date inválida"
-#: builtin/am.c:851
+#: builtin/am.c:850
msgid "invalid timezone offset"
msgstr "offset de zona horaria inválido"
-#: builtin/am.c:944
+#: builtin/am.c:943
msgid "Patch format detection failed."
msgstr "Falló al detectar el formato del parche."
-#: builtin/am.c:949 builtin/clone.c:407
+#: builtin/am.c:948 builtin/clone.c:406
#, c-format
msgid "failed to create directory '%s'"
msgstr "falló al crear el directorio '%s'"
-#: builtin/am.c:954
+#: builtin/am.c:953
msgid "Failed to split patches."
msgstr "Falló al dividir parches."
-#: builtin/am.c:1084 builtin/commit.c:374
-msgid "unable to write index file"
-msgstr "no es posible escribir en el archivo índice"
-
-#: builtin/am.c:1098
+#: builtin/am.c:1084
#, c-format
msgid "When you have resolved this problem, run \"%s --continue\"."
msgstr "Cuando hayas resuelto este problema, ejecuta \"%s --continue\"."
-#: builtin/am.c:1099
+#: builtin/am.c:1085
#, c-format
msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
msgstr "Si prefieres saltar este parche, ejecuta \"%s --skip\"."
-#: builtin/am.c:1100
+#: builtin/am.c:1086
#, c-format
msgid "To restore the original branch and stop patching, run \"%s --abort\"."
msgstr ""
"Para restaurar la rama original y detener el parchado, ejecutar \"%s --abort"
"\"."
-#: builtin/am.c:1183
+#: builtin/am.c:1169
msgid "Patch sent with format=flowed; space at the end of lines might be lost."
msgstr ""
"Parche mandado con formato=flowed; espacios al final de las líneas tal vez "
"desaparezcan."
-#: builtin/am.c:1211
+#: builtin/am.c:1197
msgid "Patch is empty."
msgstr "El parche está vacío."
-#: builtin/am.c:1277
+#: builtin/am.c:1262
#, c-format
-msgid "invalid ident line: %.*s"
-msgstr "sangría no válida: %.*s"
+msgid "missing author line in commit %s"
+msgstr "falta línea autor en commit %s"
-#: builtin/am.c:1299
+#: builtin/am.c:1265
#, c-format
-msgid "unable to parse commit %s"
-msgstr "no es posible analizar el commit %s"
+msgid "invalid ident line: %.*s"
+msgstr "sangría no válida: %.*s"
-#: builtin/am.c:1496
+#: builtin/am.c:1484
msgid "Repository lacks necessary blobs to fall back on 3-way merge."
msgstr ""
"Repositorio carece de los blobs necesarios para retroceder en una fusión de "
"3-vías."
-#: builtin/am.c:1498
+#: builtin/am.c:1486
msgid "Using index info to reconstruct a base tree..."
msgstr "Usando la información del índice para reconstruir un árbol base..."
-#: builtin/am.c:1517
+#: builtin/am.c:1505
msgid ""
"Did you hand edit your patch?\n"
"It does not apply to blobs recorded in its index."
msgstr ""
-"Editaste el parche a mano?\n"
+"¿Editaste el parche a mano?\n"
"No aplica a blobs guardados en su índice."
-#: builtin/am.c:1523
+#: builtin/am.c:1511
msgid "Falling back to patching base and 3-way merge..."
msgstr "Retrocediendo para parchar base y fusión de 3-vías..."
-#: builtin/am.c:1549
+#: builtin/am.c:1537
msgid "Failed to merge in the changes."
msgstr "Falló al fusionar en los cambios."
-#: builtin/am.c:1581
+#: builtin/am.c:1569
msgid "applying to an empty history"
msgstr "aplicando a un historial vacío"
-#: builtin/am.c:1628 builtin/am.c:1632
+#: builtin/am.c:1616 builtin/am.c:1620
#, c-format
msgid "cannot resume: %s does not exist."
msgstr "no se puede continuar: %s no existe."
-#: builtin/am.c:1650
+#: builtin/am.c:1638
msgid "Commit Body is:"
msgstr "Cuerpo de commit es:"
@@ -8799,45 +8838,49 @@ msgstr "Cuerpo de commit es:"
#. in your translation. The program will only accept English
#. input at this point.
#.
-#: builtin/am.c:1660
+#: builtin/am.c:1648
#, c-format
msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
-msgstr "Aplicar? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
+msgstr "¿Aplicar? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
+
+#: builtin/am.c:1695 builtin/commit.c:374
+msgid "unable to write index file"
+msgstr "no es posible escribir en el archivo índice"
-#: builtin/am.c:1710
+#: builtin/am.c:1699
#, c-format
msgid "Dirty index: cannot apply patches (dirty: %s)"
msgstr "Ãndice sucio: no se puede aplicar parches (sucio: %s)"
-#: builtin/am.c:1750 builtin/am.c:1818
+#: builtin/am.c:1739 builtin/am.c:1807
#, c-format
msgid "Applying: %.*s"
msgstr "Aplicando: %.*s"
-#: builtin/am.c:1767
+#: builtin/am.c:1756
msgid "No changes -- Patch already applied."
msgstr "Sin cambios -- parche ya aplicado."
-#: builtin/am.c:1773
+#: builtin/am.c:1762
#, c-format
msgid "Patch failed at %s %.*s"
msgstr "El parche falló en %s %.*s"
-#: builtin/am.c:1777
+#: builtin/am.c:1766
msgid "Use 'git am --show-current-patch' to see the failed patch"
msgstr "Use 'git am --show-current-patch' para ver el parche fallido"
-#: builtin/am.c:1821
+#: builtin/am.c:1810
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 ""
-"Sin cambios - olvidaste usar 'git add'?\n"
+"Sin cambios - ¿olvidaste usar 'git add'?\n"
"Si no hay nada en el área de stage, las posibilidad es que algo mas\n"
"ya haya introducido el mismo cambio; tal vez quieras omitir este parche."
-#: builtin/am.c:1828
+#: builtin/am.c:1817
msgid ""
"You still have unmerged paths in your index.\n"
"You should 'git add' each file with resolved conflicts to mark them as "
@@ -8850,17 +8893,17 @@ msgstr ""
"Se puede ejecutar `git rm` en el archivo para aceptar \"borrado por ellos\" "
"en él."
-#: builtin/am.c:1935 builtin/am.c:1939 builtin/am.c:1951 builtin/reset.c:329
+#: builtin/am.c:1924 builtin/am.c:1928 builtin/am.c:1940 builtin/reset.c:329
#: builtin/reset.c:337
#, c-format
msgid "Could not parse object '%s'."
msgstr "No se pudo analizar el objeto '%s'."
-#: builtin/am.c:1987
+#: builtin/am.c:1976
msgid "failed to clean index"
msgstr "falló al limpiar el índice"
-#: builtin/am.c:2031
+#: builtin/am.c:2020
msgid ""
"You seem to have moved HEAD since the last 'am' failure.\n"
"Not rewinding to ORIG_HEAD"
@@ -8868,161 +8911,161 @@ msgstr ""
"Parece haber movido HEAD desde el último falló 'am'.\n"
"No rebobinando a ORIG_HEAD"
-#: builtin/am.c:2128
+#: builtin/am.c:2117
#, c-format
msgid "Invalid value for --patch-format: %s"
msgstr "Valor inválido para --patch-format: %s"
-#: builtin/am.c:2164
+#: builtin/am.c:2153
msgid "git am [<options>] [(<mbox> | <Maildir>)...]"
msgstr "git am [<opciones>] [(<mbox> | <Directorio-de-correo>)...]"
-#: builtin/am.c:2165
+#: builtin/am.c:2154
msgid "git am [<options>] (--continue | --skip | --abort)"
msgstr "git am [<opciones>] (--continue | --skip | --abort)"
-#: builtin/am.c:2171
+#: builtin/am.c:2160
msgid "run interactively"
msgstr "ejecutar de manera interactiva"
-#: builtin/am.c:2173
+#: builtin/am.c:2162
msgid "historical option -- no-op"
msgstr "opción histórica -- no-op"
-#: builtin/am.c:2175
+#: builtin/am.c:2164
msgid "allow fall back on 3way merging if needed"
msgstr "permitir retroceso en fusión de 3-vías si es necesario"
-#: builtin/am.c:2176 builtin/init-db.c:494 builtin/prune-packed.c:58
-#: builtin/repack.c:296 builtin/stash.c:806
+#: builtin/am.c:2165 builtin/init-db.c:494 builtin/prune-packed.c:58
+#: builtin/repack.c:297 builtin/stash.c:812
msgid "be quiet"
msgstr "ser silencioso"
-#: builtin/am.c:2178
+#: builtin/am.c:2167
msgid "add a Signed-off-by line to the commit message"
msgstr "agregar una línea \"Firmado-por\" al mensaje del commit"
-#: builtin/am.c:2181
+#: builtin/am.c:2170
msgid "recode into utf8 (default)"
msgstr "recodificar en utf8 (default)"
-#: builtin/am.c:2183
+#: builtin/am.c:2172
msgid "pass -k flag to git-mailinfo"
msgstr "pasar flag -k a git-mailinfo"
-#: builtin/am.c:2185
+#: builtin/am.c:2174
msgid "pass -b flag to git-mailinfo"
msgstr "pasar flag -b a git-mailinfo"
-#: builtin/am.c:2187
+#: builtin/am.c:2176
msgid "pass -m flag to git-mailinfo"
msgstr "pasar flag -m a git-mailinfo"
-#: builtin/am.c:2189
+#: builtin/am.c:2178
msgid "pass --keep-cr flag to git-mailsplit for mbox format"
msgstr "pasar flag --keep-cr a git-mailsplit para formato mbox"
-#: builtin/am.c:2192
+#: builtin/am.c:2181
msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
msgstr ""
"no pasar flag --keep-cr a git-mailsplit independientemente de am.keepcr"
-#: builtin/am.c:2195
+#: builtin/am.c:2184
msgid "strip everything before a scissors line"
msgstr "descubrir todo antes de una línea de tijeras"
-#: builtin/am.c:2197 builtin/am.c:2200 builtin/am.c:2203 builtin/am.c:2206
-#: builtin/am.c:2209 builtin/am.c:2212 builtin/am.c:2215 builtin/am.c:2218
-#: builtin/am.c:2224
+#: builtin/am.c:2186 builtin/am.c:2189 builtin/am.c:2192 builtin/am.c:2195
+#: builtin/am.c:2198 builtin/am.c:2201 builtin/am.c:2204 builtin/am.c:2207
+#: builtin/am.c:2213
msgid "pass it through git-apply"
msgstr "pasarlo a través de git-apply"
-#: builtin/am.c:2214 builtin/commit.c:1368 builtin/fmt-merge-msg.c:671
-#: builtin/fmt-merge-msg.c:674 builtin/grep.c:881 builtin/merge.c:249
-#: builtin/pull.c:159 builtin/pull.c:218 builtin/rebase.c:1418
-#: builtin/repack.c:307 builtin/repack.c:311 builtin/repack.c:313
+#: builtin/am.c:2203 builtin/commit.c:1368 builtin/fmt-merge-msg.c:671
+#: builtin/fmt-merge-msg.c:674 builtin/grep.c:883 builtin/merge.c:249
+#: builtin/pull.c:160 builtin/pull.c:219 builtin/rebase.c:1442
+#: builtin/repack.c:308 builtin/repack.c:312 builtin/repack.c:314
#: builtin/show-branch.c:650 builtin/show-ref.c:172 builtin/tag.c:403
-#: parse-options.h:141 parse-options.h:162 parse-options.h:312
+#: parse-options.h:150 parse-options.h:171 parse-options.h:312
msgid "n"
msgstr "n"
-#: builtin/am.c:2220 builtin/branch.c:661 builtin/for-each-ref.c:38
-#: builtin/replace.c:554 builtin/tag.c:437 builtin/verify-tag.c:38
+#: builtin/am.c:2209 builtin/branch.c:661 builtin/for-each-ref.c:38
+#: builtin/replace.c:555 builtin/tag.c:437 builtin/verify-tag.c:38
msgid "format"
msgstr "formato"
-#: builtin/am.c:2221
+#: builtin/am.c:2210
msgid "format the patch(es) are in"
msgstr "formatear el parche(s)"
-#: builtin/am.c:2227
+#: builtin/am.c:2216
msgid "override error message when patch failure occurs"
msgstr "sobrescribir mensajes de error cuando fallos de parchado ocurran"
-#: builtin/am.c:2229
+#: builtin/am.c:2218
msgid "continue applying patches after resolving a conflict"
msgstr "continuar aplicando los parches tras resolver conflictos"
-#: builtin/am.c:2232
+#: builtin/am.c:2221
msgid "synonyms for --continue"
msgstr "sinónimos para --continue"
-#: builtin/am.c:2235
+#: builtin/am.c:2224
msgid "skip the current patch"
msgstr "saltar el parche actual"
-#: builtin/am.c:2238
+#: builtin/am.c:2227
msgid "restore the original branch and abort the patching operation."
msgstr "restaurar la rama original y abortar la operación de parchado."
-#: builtin/am.c:2241
+#: builtin/am.c:2230
msgid "abort the patching operation but keep HEAD where it is."
msgstr "abortar la operación de parchado pero mantener HEAD donde está."
-#: builtin/am.c:2244
+#: builtin/am.c:2233
msgid "show the patch being applied."
msgstr "muestra el parche siendo aplicado."
-#: builtin/am.c:2248
+#: builtin/am.c:2237
msgid "lie about committer date"
msgstr "mentir sobre la fecha del committer"
-#: builtin/am.c:2250
+#: builtin/am.c:2239
msgid "use current timestamp for author date"
msgstr "usar el timestamp actual para la fecha del autor"
-#: builtin/am.c:2252 builtin/commit-tree.c:120 builtin/commit.c:1511
-#: builtin/merge.c:286 builtin/pull.c:193 builtin/rebase.c:489
-#: builtin/rebase.c:1459 builtin/revert.c:117 builtin/tag.c:418
+#: builtin/am.c:2241 builtin/commit-tree.c:120 builtin/commit.c:1511
+#: builtin/merge.c:286 builtin/pull.c:194 builtin/rebase.c:490
+#: builtin/rebase.c:1483 builtin/revert.c:117 builtin/tag.c:418
msgid "key-id"
msgstr "key-id"
-#: builtin/am.c:2253 builtin/rebase.c:490 builtin/rebase.c:1460
+#: builtin/am.c:2242 builtin/rebase.c:491 builtin/rebase.c:1484
msgid "GPG-sign commits"
msgstr "Commits con firma GPG"
-#: builtin/am.c:2256
+#: builtin/am.c:2245
msgid "(internal use for git-rebase)"
msgstr "(uso interno para git-rebase)"
-#: builtin/am.c:2274
+#: builtin/am.c:2263
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 ""
"La opción -b/--binary ha estado deshabilitada por mucho tiempo, y\n"
-"será removida. Por favor no la use más."
+"será eliminada. Por favor no la use más."
-#: builtin/am.c:2281
+#: builtin/am.c:2270
msgid "failed to read the index"
msgstr "falló al leer el índice"
-#: builtin/am.c:2296
+#: builtin/am.c:2285
#, c-format
msgid "previous rebase directory %s still exists but mbox given."
msgstr "directorio de rebase previo %s todavía existe en el mbox dado."
-#: builtin/am.c:2320
+#: builtin/am.c:2309
#, c-format
msgid ""
"Stray %s directory found.\n"
@@ -9031,11 +9074,11 @@ msgstr ""
"Directorio extraviado %s encontrado.\n"
"Use \"git am --abort\" para borrarlo."
-#: builtin/am.c:2326
+#: builtin/am.c:2315
msgid "Resolve operation not in progress, we are not resuming."
msgstr "Operación de resolución no está en progreso, no vamos a continuar."
-#: builtin/am.c:2336
+#: builtin/am.c:2325
msgid "interactive mode requires patches on the command line"
msgstr "modo interactivo requiere parches en la línea de comando"
@@ -9350,154 +9393,154 @@ msgstr "--bisect-next-check requiere 2 o 3 argumentos"
msgid "--bisect-terms requires 0 or 1 argument"
msgstr "--bisect-terms requiere 0 o 1 argumentos"
-#: builtin/blame.c:32
+#: builtin/blame.c:31
msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>"
msgstr "git blame [<opciones>] [<opciones-rev>] [<revision>] [--] <archivo>"
-#: builtin/blame.c:37
+#: builtin/blame.c:36
msgid "<rev-opts> are documented in git-rev-list(1)"
msgstr "<rev-opts> están documentadas en git-rev-list(1)"
-#: builtin/blame.c:410
+#: builtin/blame.c:409
#, c-format
msgid "expecting a color: %s"
msgstr "esperando un color: %s"
-#: builtin/blame.c:417
+#: builtin/blame.c:416
msgid "must end with a color"
msgstr "tiene que terminar con un color"
-#: builtin/blame.c:730
+#: builtin/blame.c:729
#, c-format
msgid "invalid color '%s' in color.blame.repeatedLines"
msgstr "color inválido '%s' en color.blame.repeatedLines"
-#: builtin/blame.c:748
+#: builtin/blame.c:747
msgid "invalid value for blame.coloring"
msgstr "valor inválido para blame.coloring"
-#: builtin/blame.c:823
+#: builtin/blame.c:822
#, c-format
msgid "cannot find revision %s to ignore"
msgstr "no se pudo encontrar revision %s para ignorar"
-#: builtin/blame.c:845
+#: builtin/blame.c:844
msgid "Show blame entries as we find them, incrementally"
msgstr "Mostrar las entradas blame como las encontramos, incrementalmente"
-#: builtin/blame.c:846
+#: builtin/blame.c:845
msgid "Show blank SHA-1 for boundary commits (Default: off)"
msgstr "Mostrar SHA-1 en blanco para commits extremos (Default: off)"
-#: builtin/blame.c:847
+#: builtin/blame.c:846
msgid "Do not treat root commits as boundaries (Default: off)"
msgstr "No tratar commits raíces como extremos (Default: off)"
-#: builtin/blame.c:848
+#: builtin/blame.c:847
msgid "Show work cost statistics"
msgstr "Mostrar estadísticas de costo de trabajo"
-#: builtin/blame.c:849
+#: builtin/blame.c:848
msgid "Force progress reporting"
msgstr "Forzar el reporte de progreso"
-#: builtin/blame.c:850
+#: builtin/blame.c:849
msgid "Show output score for blame entries"
msgstr "Mostrar la puntuación de salida de las entradas de blame"
-#: builtin/blame.c:851
+#: builtin/blame.c:850
msgid "Show original filename (Default: auto)"
msgstr "Mostrar nombre original del archivo (Default: auto)"
-#: builtin/blame.c:852
+#: builtin/blame.c:851
msgid "Show original linenumber (Default: off)"
msgstr "Mostrar número de línea original (Default: off)"
-#: builtin/blame.c:853
+#: builtin/blame.c:852
msgid "Show in a format designed for machine consumption"
msgstr "Mostrar en un formato diseñado para consumo de máquina"
-#: builtin/blame.c:854
+#: builtin/blame.c:853
msgid "Show porcelain format with per-line commit information"
msgstr "Mostrar en formato porcelana con información de commit por línea"
-#: builtin/blame.c:855
+#: builtin/blame.c:854
msgid "Use the same output mode as git-annotate (Default: off)"
msgstr "Usar el mismo modo salida como git-annotate (Default: off)"
-#: builtin/blame.c:856
+#: builtin/blame.c:855
msgid "Show raw timestamp (Default: off)"
msgstr "Mostrar timestamp en formato raw (Default: off)"
-#: builtin/blame.c:857
+#: builtin/blame.c:856
msgid "Show long commit SHA1 (Default: off)"
msgstr "Mostrar SHA1 del commit en formato largo (Default: off)"
-#: builtin/blame.c:858
+#: builtin/blame.c:857
msgid "Suppress author name and timestamp (Default: off)"
msgstr "Suprimir nombre del autor y timestamp (Default: off)"
-#: builtin/blame.c:859
+#: builtin/blame.c:858
msgid "Show author email instead of name (Default: off)"
msgstr "Mostrar en cambio el email del autor (Default: off)"
-#: builtin/blame.c:860
+#: builtin/blame.c:859
msgid "Ignore whitespace differences"
msgstr "Ignorar diferencias de espacios en blanco"
-#: builtin/blame.c:861 builtin/log.c:1629
+#: builtin/blame.c:860 builtin/log.c:1630
msgid "rev"
msgstr "rev"
-#: builtin/blame.c:861
+#: builtin/blame.c:860
msgid "Ignore <rev> when blaming"
msgstr "ignorar <rev> durante el blame"
-#: builtin/blame.c:862
+#: builtin/blame.c:861
msgid "Ignore revisions from <file>"
msgstr "ignorar revisiones de <archivo>"
-#: builtin/blame.c:863
+#: builtin/blame.c:862
msgid "color redundant metadata from previous line differently"
msgstr "colorear metadata redundante de líneas previas de manera diferente"
-#: builtin/blame.c:864
+#: builtin/blame.c:863
msgid "color lines by age"
msgstr "colorear líneas por edad"
-#: builtin/blame.c:871
+#: builtin/blame.c:870
msgid "Use an experimental heuristic to improve diffs"
msgstr "Usar un heurístico experimental para mejorar los diffs"
-#: builtin/blame.c:873
+#: builtin/blame.c:872
msgid "Spend extra cycles to find better match"
msgstr "Ocupo más ciclos para encontrar mejoras resultados"
-#: builtin/blame.c:874
+#: builtin/blame.c:873
msgid "Use revisions from <file> instead of calling git-rev-list"
msgstr "Use revisiones desde <archivo> en lugar de llamar git-rev-list"
-#: builtin/blame.c:875
+#: builtin/blame.c:874
msgid "Use <file>'s contents as the final image"
msgstr "Usar contenido de <archivo> como imagen final"
-#: builtin/blame.c:876 builtin/blame.c:877
+#: builtin/blame.c:875 builtin/blame.c:876
msgid "score"
msgstr "puntaje"
-#: builtin/blame.c:876
+#: builtin/blame.c:875
msgid "Find line copies within and across files"
msgstr "Encontrar copias de líneas entre y a través de archivos"
-#: builtin/blame.c:877
+#: builtin/blame.c:876
msgid "Find line movements within and across files"
msgstr "Encontrar movimientos de líneas entre y a través de archivos"
-#: builtin/blame.c:878
+#: builtin/blame.c:877
msgid "n,m"
msgstr "n,m"
-#: builtin/blame.c:878
+#: builtin/blame.c:877
msgid "Process only line range n,m, counting from 1"
msgstr "Procesar solo el rango de líneas n,m, contando desde 1"
@@ -9715,7 +9758,7 @@ msgid ""
msgstr ""
"Por favor, edita la descripción para la rama\n"
"%s\n"
-"Las líneas que comiencen con '%c' serán removidas.\n"
+"Las líneas que comiencen con '%c' serán eliminadas.\n"
#: builtin/branch.c:618
msgid "Generic options"
@@ -9737,7 +9780,7 @@ msgstr "configurando modo tracking (mirar git-pull(1))"
msgid "do not use"
msgstr "no usar"
-#: builtin/branch.c:626 builtin/rebase.c:485
+#: builtin/branch.c:626 builtin/rebase.c:486
msgid "upstream"
msgstr "upstream"
@@ -9848,9 +9891,9 @@ msgstr "ordenamiento y filtrado son case-insensitive"
msgid "format to use for the output"
msgstr "formato para usar para el output"
-#: builtin/branch.c:684 builtin/clone.c:761
+#: builtin/branch.c:684 builtin/clone.c:760
msgid "HEAD not found below refs/heads!"
-msgstr "HEAD no encontrado abajo de refs/heads!"
+msgstr "¡HEAD no encontrado abajo de refs/heads!"
#: builtin/branch.c:708
msgid "--column and --verbose are incompatible"
@@ -9952,7 +9995,7 @@ msgstr "Se necesita un repositorio para agrupar."
msgid "Need a repository to unbundle."
msgstr "Se necesita un repositorio para desagrupar."
-#: builtin/cat-file.c:594
+#: builtin/cat-file.c:595
msgid ""
"git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -"
"p | <type> | --textconv | --filters) [--path=<path>] <object>"
@@ -9960,7 +10003,7 @@ msgstr ""
"git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -"
"p | <tipo> | --textconv | --filters) [--path=<ruta>] <objeto>"
-#: builtin/cat-file.c:595
+#: builtin/cat-file.c:596
msgid ""
"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --"
"filters]"
@@ -9968,72 +10011,72 @@ msgstr ""
"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --"
"filters]"
-#: builtin/cat-file.c:616
+#: builtin/cat-file.c:617
msgid "only one batch option may be specified"
msgstr "solo se puede especificar una opción batch"
-#: builtin/cat-file.c:634
+#: builtin/cat-file.c:635
msgid "<type> can be one of: blob, tree, commit, tag"
msgstr "<tipo> puede ser: blob, tree, commit, tag"
-#: builtin/cat-file.c:635
+#: builtin/cat-file.c:636
msgid "show object type"
msgstr "mostrar el tipo del objeto"
-#: builtin/cat-file.c:636
+#: builtin/cat-file.c:637
msgid "show object size"
msgstr "mostrar el tamaño del objeto"
-#: builtin/cat-file.c:638
+#: builtin/cat-file.c:639
msgid "exit with zero when there's no error"
msgstr "salir con cero cuando no haya error"
-#: builtin/cat-file.c:639
+#: builtin/cat-file.c:640
msgid "pretty-print object's content"
msgstr "realizar pretty-print del contenido del objeto"
-#: builtin/cat-file.c:641
+#: builtin/cat-file.c:642
msgid "for blob objects, run textconv on object's content"
msgstr "para objetos blob, ejecuta textconv en el contenido del objeto"
-#: builtin/cat-file.c:643
+#: builtin/cat-file.c:644
msgid "for blob objects, run filters on object's content"
msgstr "para objetos blob, ejecuta filters en el contenido del objeto"
-#: builtin/cat-file.c:644 git-submodule.sh:936
+#: builtin/cat-file.c:645 git-submodule.sh:936
msgid "blob"
msgstr "blob"
-#: builtin/cat-file.c:645
+#: builtin/cat-file.c:646
msgid "use a specific path for --textconv/--filters"
msgstr "use una ruta específica para --textconv/--filters"
-#: builtin/cat-file.c:647
+#: builtin/cat-file.c:648
msgid "allow -s and -t to work with broken/corrupt objects"
msgstr "permita -s y -t para trabajar con objetos rotos o corruptos"
-#: builtin/cat-file.c:648
+#: builtin/cat-file.c:649
msgid "buffer --batch output"
msgstr "salida buffer --batch"
-#: builtin/cat-file.c:650
+#: builtin/cat-file.c:651
msgid "show info and content of objects fed from the standard input"
msgstr "mostrar info y content de los objetos alimentados por standard input"
-#: builtin/cat-file.c:654
+#: builtin/cat-file.c:655
msgid "show info about objects fed from the standard input"
msgstr "mostrar info de los objetos alimentados por standard input"
-#: builtin/cat-file.c:658
+#: builtin/cat-file.c:659
msgid "follow in-tree symlinks (used with --batch or --batch-check)"
msgstr ""
"seguir los enlaces simbólicos en el árbol (usado con --batch o --batch-check)"
-#: builtin/cat-file.c:660
+#: builtin/cat-file.c:661
msgid "show all objects with --batch or --batch-check"
msgstr "mostrar todos los objetos con --batch o --batch-check"
-#: builtin/cat-file.c:662
+#: builtin/cat-file.c:663
msgid "do not order --batch-all-objects output"
msgstr "no ordenar el output de --batch-all-objects"
@@ -10061,8 +10104,8 @@ msgstr "leer nombres de archivos de stdin"
msgid "terminate input and output records by a NUL character"
msgstr "terminar registros de entrada y salida con un carácter NUL"
-#: builtin/check-ignore.c:21 builtin/checkout.c:1433 builtin/gc.c:538
-#: builtin/worktree.c:507
+#: builtin/check-ignore.c:21 builtin/checkout.c:1433 builtin/gc.c:537
+#: builtin/worktree.c:506
msgid "suppress progress reporting"
msgstr "suprimir el reporte de progreso"
@@ -10156,7 +10199,7 @@ msgstr "escribir el contenido en un archivo temporal"
#: builtin/checkout-index.c:178 builtin/column.c:31
#: builtin/submodule--helper.c:1373 builtin/submodule--helper.c:1376
#: builtin/submodule--helper.c:1384 builtin/submodule--helper.c:1857
-#: builtin/worktree.c:680
+#: builtin/worktree.c:679
msgid "string"
msgstr "string"
@@ -10184,98 +10227,98 @@ msgstr "git switch [<opciones>] [<rama>]"
msgid "git restore [<options>] [--source=<branch>] <file>..."
msgstr "git restore [<opciones>] [--source=<rama>] -- <archivo>..."
-#: builtin/checkout.c:172 builtin/checkout.c:211
+#: builtin/checkout.c:173 builtin/checkout.c:212
#, c-format
msgid "path '%s' does not have our version"
msgstr "ruta '%s' no tiene nuestra versión"
-#: builtin/checkout.c:174 builtin/checkout.c:213
+#: builtin/checkout.c:175 builtin/checkout.c:214
#, c-format
msgid "path '%s' does not have their version"
msgstr "ruta '%s' no tiene su versión"
-#: builtin/checkout.c:190
+#: builtin/checkout.c:191
#, c-format
msgid "path '%s' does not have all necessary versions"
msgstr "ruta '%s' no tiene todas las versiones necesarias"
-#: builtin/checkout.c:240
+#: builtin/checkout.c:241
#, c-format
msgid "path '%s' does not have necessary versions"
msgstr "ruta '%s' no tiene versiones necesarias"
-#: builtin/checkout.c:258
+#: builtin/checkout.c:259
#, c-format
msgid "path '%s': cannot merge"
msgstr "ruta '%s': no se puede fusionar"
-#: builtin/checkout.c:274
+#: builtin/checkout.c:275
#, c-format
msgid "Unable to add merge result for '%s'"
msgstr "Incapaz de agregar resultados de fusión a '%s'"
-#: builtin/checkout.c:374
+#: builtin/checkout.c:375
#, c-format
msgid "Recreated %d merge conflict"
msgid_plural "Recreated %d merge conflicts"
msgstr[0] "Recreado %d conflicto de merge"
msgstr[1] "Recreados %d conflictos de merge"
-#: builtin/checkout.c:379
+#: builtin/checkout.c:380
#, c-format
msgid "Updated %d path from %s"
msgid_plural "Updated %d paths from %s"
msgstr[0] "Actualizada %d ruta para %s"
msgstr[1] "Actualizadas %d rutas para %s"
-#: builtin/checkout.c:386
+#: builtin/checkout.c:387
#, c-format
msgid "Updated %d path from the index"
msgid_plural "Updated %d paths from the index"
msgstr[0] "Actualizada %d ruta desde el index"
msgstr[1] "Actualizadas %d rutas desde el index"
-#: builtin/checkout.c:409 builtin/checkout.c:412 builtin/checkout.c:415
-#: builtin/checkout.c:419
+#: builtin/checkout.c:410 builtin/checkout.c:413 builtin/checkout.c:416
+#: builtin/checkout.c:420
#, c-format
msgid "'%s' cannot be used with updating paths"
msgstr "'%s' no puede ser usada con rutas actualizadas"
-#: builtin/checkout.c:422 builtin/checkout.c:425
+#: builtin/checkout.c:423 builtin/checkout.c:426
#, c-format
msgid "'%s' cannot be used with %s"
msgstr "'%s' no puede ser usado con %s"
-#: builtin/checkout.c:429
+#: builtin/checkout.c:430
#, c-format
msgid "Cannot update paths and switch to branch '%s' at the same time."
msgstr "No se puede actualizar rutas y cambiar a la rama '%s' al mismo tiempo."
-#: builtin/checkout.c:433
+#: builtin/checkout.c:434
#, c-format
msgid "neither '%s' or '%s' is specified"
msgstr "ni '%s' o '%s' están especificados"
-#: builtin/checkout.c:437
+#: builtin/checkout.c:438
#, c-format
msgid "'%s' must be used when '%s' is not specified"
msgstr "'%s' tiene que ser usado cuando '%s' no es especificado"
-#: builtin/checkout.c:442 builtin/checkout.c:447
+#: builtin/checkout.c:443 builtin/checkout.c:448
#, c-format
msgid "'%s' or '%s' cannot be used with %s"
msgstr "'%s' o '%s' no puede ser usado con %s"
-#: builtin/checkout.c:506 builtin/checkout.c:513
+#: builtin/checkout.c:507 builtin/checkout.c:514
#, c-format
msgid "path '%s' is unmerged"
msgstr "ruta '%s' no esta fusionada"
-#: builtin/checkout.c:679
+#: builtin/checkout.c:680
msgid "you need to resolve your current index first"
msgstr "necesitas resolver tu índice actual primero"
-#: builtin/checkout.c:729
+#: builtin/checkout.c:730
#, c-format
msgid ""
"cannot continue with staged changes in the following files:\n"
@@ -10284,12 +10327,6 @@ msgstr ""
"no se puede continuar con los cambios en stage en los siguientes archivos:\n"
"%s"
-#: builtin/checkout.c:736
-#, c-format
-msgid "staged changes in the following files may be lost: %s"
-msgstr ""
-"cambios en el área de stage en el siguiente archivo pueden ser perdidos: %s"
-
#: builtin/checkout.c:833
#, c-format
msgid "Can not do reflog for '%s': %s\n"
@@ -10299,7 +10336,7 @@ msgstr "No se puede hacer reflog para '%s': %s\n"
msgid "HEAD is now at"
msgstr "HEAD está ahora en"
-#: builtin/checkout.c:879 builtin/clone.c:714
+#: builtin/checkout.c:879 builtin/clone.c:713
msgid "unable to update HEAD"
msgstr "no es posible actualizar HEAD"
@@ -10413,7 +10450,7 @@ msgstr ""
"'%s' puede ser tanto un archivo local como una rama de rastreo.\n"
"Por favor use -- (y opcionalmente --no-guess) para desambiguar"
-#: builtin/checkout.c:1243 builtin/worktree.c:291 builtin/worktree.c:456
+#: builtin/checkout.c:1243 builtin/worktree.c:290 builtin/worktree.c:455
#, c-format
msgid "invalid reference: %s"
msgstr "referencia inválida: %s"
@@ -10516,9 +10553,9 @@ msgstr "No se puede cambiar rama a un '%s' sin commits"
msgid "missing branch or commit argument"
msgstr "falta branch o commit como argumento"
-#: builtin/checkout.c:1437 builtin/clone.c:91 builtin/fetch.c:151
-#: builtin/merge.c:285 builtin/pull.c:137 builtin/push.c:575
-#: builtin/send-pack.c:174
+#: builtin/checkout.c:1437 builtin/clone.c:90 builtin/commit-graph.c:59
+#: builtin/commit-graph.c:180 builtin/fetch.c:166 builtin/merge.c:285
+#: builtin/pull.c:138 builtin/push.c:562 builtin/send-pack.c:174
msgid "force progress reporting"
msgstr "forzar el reporte de progreso"
@@ -10526,7 +10563,7 @@ msgstr "forzar el reporte de progreso"
msgid "perform a 3-way merge with the new branch"
msgstr "realizar una fusión de tres vías con la rama nueva"
-#: builtin/checkout.c:1439 builtin/log.c:1617 parse-options.h:318
+#: builtin/checkout.c:1439 builtin/log.c:1618 parse-options.h:318
msgid "style"
msgstr "estilo"
@@ -10534,7 +10571,7 @@ msgstr "estilo"
msgid "conflict style (merge or diff3)"
msgstr "conflicto de estilos (merge o diff3)"
-#: builtin/checkout.c:1452 builtin/worktree.c:504
+#: builtin/checkout.c:1452 builtin/worktree.c:503
msgid "detach HEAD at named commit"
msgstr "desacoplar HEAD en el commit nombrado"
@@ -10639,7 +10676,7 @@ msgid ""
msgstr ""
"'%s' acertó más de una rama remota rastreada.\n"
"Encontramos %d remotos con una referencia que concuerda. Así que volvemos\n"
-"a intentar resolver el argumento como una ruta, pero eso también falló!\n"
+"a intentar resolver el argumento como una ruta, ¡pero eso también falló!\n"
"\n"
"Si querías hacer un check out a una rama rastreada remota, como 'origin',\n"
"puedes hacerlo proporcionando el nombre completo con la opción --track:\n"
@@ -10651,9 +10688,9 @@ msgstr ""
"de nombre <nombre> remota, como 'origin', considera configurar\n"
"checkout.defaultRemote=origin en tu configuración."
-#: builtin/checkout.c:1691 builtin/checkout.c:1693 builtin/checkout.c:1733
-#: builtin/checkout.c:1735 builtin/clone.c:121 builtin/remote.c:169
-#: builtin/remote.c:171 builtin/worktree.c:500 builtin/worktree.c:502
+#: builtin/checkout.c:1691 builtin/checkout.c:1693 builtin/checkout.c:1742
+#: builtin/checkout.c:1744 builtin/clone.c:120 builtin/remote.c:169
+#: builtin/remote.c:171 builtin/worktree.c:499 builtin/worktree.c:501
msgid "branch"
msgstr "rama"
@@ -10677,39 +10714,39 @@ msgstr "adivinar segunda opción 'git checkout <no-hay-tal-rama>' (default)"
msgid "use overlay mode (default)"
msgstr "usar modo overlay (default)"
-#: builtin/checkout.c:1734
+#: builtin/checkout.c:1743
msgid "create and switch to a new branch"
msgstr "crear y hacer switch a una nueva rama"
-#: builtin/checkout.c:1736
+#: builtin/checkout.c:1745
msgid "create/reset and switch to a branch"
msgstr "crear/reiniciar y hacer switch a una rama"
-#: builtin/checkout.c:1738
+#: builtin/checkout.c:1747
msgid "second guess 'git switch <no-such-branch>'"
msgstr "adivinar segunda opción 'git checkout <no-hay-tal-rama>'"
-#: builtin/checkout.c:1740
+#: builtin/checkout.c:1749
msgid "throw away local modifications"
msgstr "descartar modificaciones locales"
-#: builtin/checkout.c:1772
+#: builtin/checkout.c:1781
msgid "which tree-ish to checkout from"
msgstr "de qué árbol hacer el checkout"
-#: builtin/checkout.c:1774
+#: builtin/checkout.c:1783
msgid "restore the index"
msgstr "restaurar el index"
-#: builtin/checkout.c:1776
+#: builtin/checkout.c:1785
msgid "restore the working tree (default)"
msgstr "restaurar el árbol de trabajo (default)"
-#: builtin/checkout.c:1778
+#: builtin/checkout.c:1787
msgid "ignore unmerged entries"
msgstr "ignorar entradas no fusionadas"
-#: builtin/checkout.c:1779
+#: builtin/checkout.c:1788
msgid "use overlay mode"
msgstr "usar modo overlay"
@@ -10749,7 +10786,7 @@ msgstr "falló al borrar %s"
msgid "could not lstat %s\n"
msgstr "no se pudo lstat %s\n"
-#: builtin/clean.c:300 git-add--interactive.perl:593
+#: builtin/clean.c:301 git-add--interactive.perl:593
#, c-format
msgid ""
"Prompt help:\n"
@@ -10762,7 +10799,7 @@ msgstr ""
"foo - selecciona un objeto basado en un prefijo único\n"
" - (vacío) no elegir nada\n"
-#: builtin/clean.c:304 git-add--interactive.perl:602
+#: builtin/clean.c:305 git-add--interactive.perl:602
#, c-format
msgid ""
"Prompt help:\n"
@@ -10783,38 +10820,38 @@ msgstr ""
"* - escoger todos los objetos\n"
" - (vacío) terminar selección\n"
-#: builtin/clean.c:520 git-add--interactive.perl:568
+#: builtin/clean.c:521 git-add--interactive.perl:568
#: git-add--interactive.perl:573
#, c-format, perl-format
msgid "Huh (%s)?\n"
-msgstr "Ahh (%s)?\n"
+msgstr "¿Ahh (%s)?\n"
-#: builtin/clean.c:662
+#: builtin/clean.c:663
#, c-format
msgid "Input ignore patterns>> "
msgstr "Input ignora los patrones >> "
-#: builtin/clean.c:699
+#: builtin/clean.c:700
#, c-format
msgid "WARNING: Cannot find items matched by: %s"
msgstr "PELIGRO: No se puede encontrar objetos que concuerden con: %s"
-#: builtin/clean.c:720
+#: builtin/clean.c:721
msgid "Select items to delete"
msgstr "Seleccionar objetos para borrar"
#. TRANSLATORS: Make sure to keep [y/N] as is
-#: builtin/clean.c:761
+#: builtin/clean.c:762
#, c-format
msgid "Remove %s [y/N]? "
-msgstr "Borrar %s [y/N]? "
+msgstr "¿Borrar %s [y/N]? "
-#: builtin/clean.c:786 git-add--interactive.perl:1763
+#: builtin/clean.c:787 git-add--interactive.perl:1763
#, c-format
msgid "Bye.\n"
msgstr "Adiós.\n"
-#: builtin/clean.c:794
+#: builtin/clean.c:795
msgid ""
"clean - start cleaning\n"
"filter by pattern - exclude items from deletion\n"
@@ -10832,64 +10869,64 @@ msgstr ""
"help - esta ventana\n"
"? - ayuda para selección de opciones"
-#: builtin/clean.c:821 git-add--interactive.perl:1849
+#: builtin/clean.c:822 git-add--interactive.perl:1849
msgid "*** Commands ***"
msgstr "*** Comandos ***"
-#: builtin/clean.c:822 git-add--interactive.perl:1846
+#: builtin/clean.c:823 git-add--interactive.perl:1846
msgid "What now"
msgstr "Ahora que"
-#: builtin/clean.c:830
+#: builtin/clean.c:831
msgid "Would remove the following item:"
msgid_plural "Would remove the following items:"
msgstr[0] "Se eliminará el siguiente objeto:"
msgstr[1] "Se eliminarán los siguientes objetos:"
-#: builtin/clean.c:846
+#: builtin/clean.c:847
msgid "No more files to clean, exiting."
msgstr "No hay más archivos para limpiar, saliendo."
-#: builtin/clean.c:908
+#: builtin/clean.c:909
msgid "do not print names of files removed"
msgstr "no imprimir nombres de archivos borrados"
-#: builtin/clean.c:910
+#: builtin/clean.c:911
msgid "force"
msgstr "forzar"
-#: builtin/clean.c:911
+#: builtin/clean.c:912
msgid "interactive cleaning"
msgstr "limpieza interactiva"
-#: builtin/clean.c:913
+#: builtin/clean.c:914
msgid "remove whole directories"
msgstr "borrar directorios completos"
-#: builtin/clean.c:914 builtin/describe.c:546 builtin/describe.c:548
-#: builtin/grep.c:899 builtin/log.c:176 builtin/log.c:178
-#: builtin/ls-files.c:557 builtin/name-rev.c:413 builtin/name-rev.c:415
+#: builtin/clean.c:915 builtin/describe.c:548 builtin/describe.c:550
+#: builtin/grep.c:901 builtin/log.c:176 builtin/log.c:178
+#: builtin/ls-files.c:557 builtin/name-rev.c:417 builtin/name-rev.c:419
#: builtin/show-ref.c:179
msgid "pattern"
msgstr "patrón"
-#: builtin/clean.c:915
+#: builtin/clean.c:916
msgid "add <pattern> to ignore rules"
msgstr "agregar <patrón> para ignorar reglas"
-#: builtin/clean.c:916
+#: builtin/clean.c:917
msgid "remove ignored files, too"
msgstr "borrar archivos ignorados, también"
-#: builtin/clean.c:918
+#: builtin/clean.c:919
msgid "remove only ignored files"
msgstr "borrar solo archivos ignorados"
-#: builtin/clean.c:936
+#: builtin/clean.c:937
msgid "-x and -X cannot be used together"
msgstr "-x y -X no pueden ser usadas juntas"
-#: builtin/clean.c:940
+#: builtin/clean.c:941
msgid ""
"clean.requireForce set to true and neither -i, -n, nor -f given; refusing to "
"clean"
@@ -10897,7 +10934,7 @@ msgstr ""
"clean.requireForce configurado como true y ninguno -i, -n, ni -f entregados; "
"rehusando el clean"
-#: builtin/clean.c:943
+#: builtin/clean.c:944
msgid ""
"clean.requireForce defaults to true and neither -i, -n, nor -f given; "
"refusing to clean"
@@ -10905,160 +10942,160 @@ msgstr ""
"clean.requireForce default en true y ninguno -i, -n, ni -f entregados; "
"rehusando el clean"
-#: builtin/clone.c:46
+#: builtin/clone.c:45
msgid "git clone [<options>] [--] <repo> [<dir>]"
msgstr "git clone [<opciones>] [--] <repo> [<directorio>]"
-#: builtin/clone.c:93
+#: builtin/clone.c:92
msgid "don't create a checkout"
msgstr "no crear checkout"
-#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:489
+#: builtin/clone.c:93 builtin/clone.c:95 builtin/init-db.c:489
msgid "create a bare repository"
msgstr "crear un repositorio vacío"
-#: builtin/clone.c:98
+#: builtin/clone.c:97
msgid "create a mirror repository (implies bare)"
msgstr "crear un repositorio espejo (implica vacío)"
-#: builtin/clone.c:100
+#: builtin/clone.c:99
msgid "to clone from a local repository"
msgstr "clonar de un repositorio local"
-#: builtin/clone.c:102
+#: builtin/clone.c:101
msgid "don't use local hardlinks, always copy"
msgstr "no usar hardlinks, siempre copiar"
-#: builtin/clone.c:104
+#: builtin/clone.c:103
msgid "setup as shared repository"
msgstr "configurar como repositorio compartido"
-#: builtin/clone.c:107
+#: builtin/clone.c:106
msgid "pathspec"
msgstr "pathspec"
-#: builtin/clone.c:107
+#: builtin/clone.c:106
msgid "initialize submodules in the clone"
msgstr "inicializar submódulos en el clonado"
-#: builtin/clone.c:110
+#: builtin/clone.c:109
msgid "number of submodules cloned in parallel"
msgstr "numero de submódulos clonados en paralelo"
-#: builtin/clone.c:111 builtin/init-db.c:486
+#: builtin/clone.c:110 builtin/init-db.c:486
msgid "template-directory"
msgstr "directorio-template"
-#: builtin/clone.c:112 builtin/init-db.c:487
+#: builtin/clone.c:111 builtin/init-db.c:487
msgid "directory from which templates will be used"
msgstr "directorio del cual los templates serán usados"
-#: builtin/clone.c:114 builtin/clone.c:116 builtin/submodule--helper.c:1380
+#: builtin/clone.c:113 builtin/clone.c:115 builtin/submodule--helper.c:1380
#: builtin/submodule--helper.c:1860
msgid "reference repository"
msgstr "repositorio de referencia"
-#: builtin/clone.c:118 builtin/submodule--helper.c:1382
+#: builtin/clone.c:117 builtin/submodule--helper.c:1382
#: builtin/submodule--helper.c:1862
msgid "use --reference only while cloning"
msgstr "usa--reference solamente si estás clonado"
-#: builtin/clone.c:119 builtin/column.c:27 builtin/merge-file.c:46
-#: builtin/pack-objects.c:3314 builtin/repack.c:319
+#: builtin/clone.c:118 builtin/column.c:27 builtin/merge-file.c:46
+#: builtin/pack-objects.c:3294 builtin/repack.c:320
msgid "name"
msgstr "nombre"
-#: builtin/clone.c:120
+#: builtin/clone.c:119
msgid "use <name> instead of 'origin' to track upstream"
msgstr "use <nombre> en lugar de 'origin' para rastrear upstream"
-#: builtin/clone.c:122
+#: builtin/clone.c:121
msgid "checkout <branch> instead of the remote's HEAD"
msgstr "checkout <rama> en lugar de HEAD remota"
-#: builtin/clone.c:124
+#: builtin/clone.c:123
msgid "path to git-upload-pack on the remote"
msgstr "ruta para git-upload-pack en el remoto"
-#: builtin/clone.c:125 builtin/fetch.c:152 builtin/grep.c:838
-#: builtin/pull.c:226
+#: builtin/clone.c:124 builtin/fetch.c:167 builtin/grep.c:840
+#: builtin/pull.c:227
msgid "depth"
msgstr "profundidad"
-#: builtin/clone.c:126
+#: builtin/clone.c:125
msgid "create a shallow clone of that depth"
msgstr "crear un clon superficial para esa profundidad"
-#: builtin/clone.c:127 builtin/fetch.c:154 builtin/pack-objects.c:3303
+#: builtin/clone.c:126 builtin/fetch.c:169 builtin/pack-objects.c:3283
msgid "time"
msgstr "tiempo"
-#: builtin/clone.c:128
+#: builtin/clone.c:127
msgid "create a shallow clone since a specific time"
msgstr "crear un clon superficial desde el tiempo específico"
-#: builtin/clone.c:129 builtin/fetch.c:156 builtin/fetch.c:179
-#: builtin/rebase.c:1395
+#: builtin/clone.c:128 builtin/fetch.c:171 builtin/fetch.c:194
+#: builtin/rebase.c:1417
msgid "revision"
msgstr "revision"
-#: builtin/clone.c:130 builtin/fetch.c:157
+#: builtin/clone.c:129 builtin/fetch.c:172
msgid "deepen history of shallow clone, excluding rev"
msgstr "ahondando historia de clon superficial, excluyendo rev"
-#: builtin/clone.c:132
+#: builtin/clone.c:131
msgid "clone only one branch, HEAD or --branch"
msgstr "clonar solo una rama,HEAD o --branch"
-#: builtin/clone.c:134
+#: builtin/clone.c:133
msgid "don't clone any tags, and make later fetches not to follow them"
msgstr "no clonar ningún tag, y hacer que los subsiguientes fetch no los sigan"
-#: builtin/clone.c:136
+#: builtin/clone.c:135
msgid "any cloned submodules will be shallow"
msgstr "cualquier submódulo clonado será superficial"
-#: builtin/clone.c:137 builtin/init-db.c:495
+#: builtin/clone.c:136 builtin/init-db.c:495
msgid "gitdir"
msgstr "gitdir"
-#: builtin/clone.c:138 builtin/init-db.c:496
+#: builtin/clone.c:137 builtin/init-db.c:496
msgid "separate git dir from working tree"
msgstr "separa git dir del árbol de trabajo"
-#: builtin/clone.c:139
+#: builtin/clone.c:138
msgid "key=value"
msgstr "llave=valor"
-#: builtin/clone.c:140
+#: builtin/clone.c:139
msgid "set config inside the new repository"
msgstr "configurar config dentro del nuevo repositorio"
-#: builtin/clone.c:142 builtin/fetch.c:174 builtin/ls-remote.c:76
-#: builtin/push.c:585 builtin/send-pack.c:172
+#: builtin/clone.c:141 builtin/fetch.c:189 builtin/ls-remote.c:76
+#: builtin/push.c:572 builtin/send-pack.c:172
msgid "server-specific"
msgstr "especifico-de-servidor"
-#: builtin/clone.c:142 builtin/fetch.c:174 builtin/ls-remote.c:76
-#: builtin/push.c:585 builtin/send-pack.c:173
+#: builtin/clone.c:141 builtin/fetch.c:189 builtin/ls-remote.c:76
+#: builtin/push.c:572 builtin/send-pack.c:173
msgid "option to transmit"
msgstr "opción para trasmitir"
-#: builtin/clone.c:143 builtin/fetch.c:175 builtin/pull.c:239
-#: builtin/push.c:586
+#: builtin/clone.c:142 builtin/fetch.c:190 builtin/pull.c:240
+#: builtin/push.c:573
msgid "use IPv4 addresses only"
msgstr "solo usar direcciones IPv4"
-#: builtin/clone.c:145 builtin/fetch.c:177 builtin/pull.c:242
-#: builtin/push.c:588
+#: builtin/clone.c:144 builtin/fetch.c:192 builtin/pull.c:243
+#: builtin/push.c:575
msgid "use IPv6 addresses only"
msgstr "solo usar direcciones IPv6"
-#: builtin/clone.c:149
+#: builtin/clone.c:148
msgid "any cloned submodules will use their remote-tracking branch"
msgstr "cualquier submódulo clonado usará su branch de rastreo remoto"
-#: builtin/clone.c:285
+#: builtin/clone.c:284
msgid ""
"No directory name could be guessed.\n"
"Please specify a directory on the command line"
@@ -11066,47 +11103,42 @@ msgstr ""
"No se pudo adivinar ningún nombre de directorio.\n"
"Por favor especifique un directorio en la línea de comando"
-#: builtin/clone.c:338
+#: builtin/clone.c:337
#, c-format
msgid "info: Could not add alternate for '%s': %s\n"
msgstr "info: No se pudo agregar un alterno para '%s': %s\n"
-#: builtin/clone.c:411
+#: builtin/clone.c:410
#, c-format
msgid "%s exists and is not a directory"
msgstr "%s existe pero no es un directorio"
-#: builtin/clone.c:428
+#: builtin/clone.c:427
#, c-format
msgid "failed to start iterator over '%s'"
msgstr "falló al iniciar el iterador sobre '%s'"
-#: builtin/clone.c:453
-#, c-format
-msgid "failed to unlink '%s'"
-msgstr "falló al desvincular '%s'"
-
-#: builtin/clone.c:458
+#: builtin/clone.c:457
#, c-format
msgid "failed to create link '%s'"
msgstr "falló al crear link '%s'"
-#: builtin/clone.c:462
+#: builtin/clone.c:461
#, c-format
msgid "failed to copy file to '%s'"
msgstr "falló al copiar archivo a '%s'"
-#: builtin/clone.c:467
+#: builtin/clone.c:466
#, c-format
msgid "failed to iterate over '%s'"
msgstr "falló al iterar sobre '%s'"
-#: builtin/clone.c:492
+#: builtin/clone.c:491
#, c-format
msgid "done.\n"
msgstr "hecho.\n"
-#: builtin/clone.c:506
+#: builtin/clone.c:505
msgid ""
"Clone succeeded, but checkout failed.\n"
"You can inspect what was checked out with 'git status'\n"
@@ -11116,96 +11148,96 @@ msgstr ""
"Puedes inspeccionar a qué se hizo checkout con 'git status'\n"
"y volver a intentarlo con 'git restore --source=HEAD :/'\n"
-#: builtin/clone.c:583
+#: builtin/clone.c:582
#, c-format
msgid "Could not find remote branch %s to clone."
msgstr "No se pudo encontrar la rama remota %s para clonar."
-#: builtin/clone.c:702
+#: builtin/clone.c:701
#, c-format
msgid "unable to update %s"
msgstr "incapaz de actualizar %s"
-#: builtin/clone.c:752
+#: builtin/clone.c:751
msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
msgstr ""
"remoto HEAD refiere a un ref inexistente, no se puede hacer checkout.\n"
-#: builtin/clone.c:783
+#: builtin/clone.c:782
msgid "unable to checkout working tree"
msgstr "no es posible realizar checkout en el árbol de trabajo"
-#: builtin/clone.c:833
+#: builtin/clone.c:832
msgid "unable to write parameters to config file"
msgstr "no es posible escribir parámetros al archivo config"
-#: builtin/clone.c:896
+#: builtin/clone.c:895
msgid "cannot repack to clean up"
msgstr "no se puede reempaquetar para limpiar"
-#: builtin/clone.c:898
+#: builtin/clone.c:897
msgid "cannot unlink temporary alternates file"
msgstr "no se puede desvincular archivos alternos temporales"
-#: builtin/clone.c:938 builtin/receive-pack.c:1950
+#: builtin/clone.c:937 builtin/receive-pack.c:1948
msgid "Too many arguments."
msgstr "Muchos argumentos."
-#: builtin/clone.c:942
+#: builtin/clone.c:941
msgid "You must specify a repository to clone."
msgstr "Tienes que especificar un repositorio para clonar."
-#: builtin/clone.c:955
+#: builtin/clone.c:954
#, c-format
msgid "--bare and --origin %s options are incompatible."
msgstr "Las opciones --bare y --origin %s son incompatibles."
-#: builtin/clone.c:958
+#: builtin/clone.c:957
msgid "--bare and --separate-git-dir are incompatible."
msgstr "--bare y --separate-git-dir son incompatibles."
-#: builtin/clone.c:971
+#: builtin/clone.c:970
#, c-format
msgid "repository '%s' does not exist"
msgstr "repositorio '%s' no existe"
-#: builtin/clone.c:977 builtin/fetch.c:1660
+#: builtin/clone.c:976 builtin/fetch.c:1790
#, c-format
msgid "depth %s is not a positive number"
msgstr "profundidad %s no es un numero positivo"
-#: builtin/clone.c:987
+#: builtin/clone.c:986
#, c-format
msgid "destination path '%s' already exists and is not an empty directory."
msgstr "la ruta de destino '%s' ya existe y no es un directorio vacío."
-#: builtin/clone.c:997
+#: builtin/clone.c:996
#, c-format
msgid "working tree '%s' already exists."
msgstr "directorio de trabajo '%s' ya existe."
-#: builtin/clone.c:1012 builtin/clone.c:1033 builtin/difftool.c:264
-#: builtin/worktree.c:303 builtin/worktree.c:335
+#: builtin/clone.c:1011 builtin/clone.c:1032 builtin/difftool.c:271
+#: builtin/log.c:1785 builtin/worktree.c:302 builtin/worktree.c:334
#, c-format
msgid "could not create leading directories of '%s'"
msgstr "no se pudo crear directorios principales de '%s'"
-#: builtin/clone.c:1017
+#: builtin/clone.c:1016
#, c-format
msgid "could not create work tree dir '%s'"
msgstr "no se pudo crear un árbol de trabajo '%s'"
-#: builtin/clone.c:1037
+#: builtin/clone.c:1036
#, c-format
msgid "Cloning into bare repository '%s'...\n"
msgstr "Clonando en un repositorio vacío '%s'...\n"
-#: builtin/clone.c:1039
+#: builtin/clone.c:1038
#, c-format
msgid "Cloning into '%s'...\n"
msgstr "Clonando en '%s'...\n"
-#: builtin/clone.c:1063
+#: builtin/clone.c:1062
msgid ""
"clone --recursive is not compatible with both --reference and --reference-if-"
"able"
@@ -11213,36 +11245,36 @@ msgstr ""
"clone --recursive no es compatible con --reference y --reference-if-able al "
"mismo tiempo"
-#: builtin/clone.c:1124
+#: builtin/clone.c:1123
msgid "--depth is ignored in local clones; use file:// instead."
msgstr "--depth es ignorada en clonaciones locales; usa file:// más bien."
-#: builtin/clone.c:1126
+#: builtin/clone.c:1125
msgid "--shallow-since is ignored in local clones; use file:// instead."
msgstr "--shallow-since es ignorado en el clon local; use file:// ."
-#: builtin/clone.c:1128
+#: builtin/clone.c:1127
msgid "--shallow-exclude is ignored in local clones; use file:// instead."
msgstr "--shallow-exclude es ignorado en clones locales; use file://."
-#: builtin/clone.c:1130
+#: builtin/clone.c:1129
msgid "--filter is ignored in local clones; use file:// instead."
msgstr "--filter es ignorado en clones locales; usa file:// en su lugar."
-#: builtin/clone.c:1133
+#: builtin/clone.c:1132
msgid "source repository is shallow, ignoring --local"
msgstr "repositorio fuente es superficial, ignorando --local"
-#: builtin/clone.c:1138
+#: builtin/clone.c:1137
msgid "--local is ignored"
msgstr "--local es ignorado"
-#: builtin/clone.c:1215 builtin/clone.c:1223
+#: builtin/clone.c:1212 builtin/clone.c:1220
#, c-format
msgid "Remote branch %s not found in upstream %s"
msgstr "Rama remota %s no encontrada en upstream %s"
-#: builtin/clone.c:1226
+#: builtin/clone.c:1223
msgid "You appear to have cloned an empty repository."
msgstr "Pareces haber clonado un repositorio sin contenido."
@@ -11320,7 +11352,7 @@ msgid "id of a parent commit object"
msgstr "id del objeto commit padre"
#: builtin/commit-tree.c:114 builtin/commit.c:1500 builtin/merge.c:270
-#: builtin/notes.c:409 builtin/notes.c:575 builtin/stash.c:1460
+#: builtin/notes.c:409 builtin/notes.c:575 builtin/stash.c:1469
#: builtin/tag.c:412
msgid "message"
msgstr "mensaje"
@@ -11334,7 +11366,7 @@ msgid "read commit log message from file"
msgstr "leer mensaje de commit desde un archivo"
#: builtin/commit-tree.c:121 builtin/commit.c:1512 builtin/merge.c:287
-#: builtin/pull.c:194 builtin/revert.c:118
+#: builtin/pull.c:195 builtin/revert.c:118
msgid "GPG sign commit"
msgstr "Firmar commit con GPG"
@@ -11509,7 +11541,7 @@ msgid ""
msgstr ""
"\n"
"Parece que estás haciendo un commit con una fusión dentro.\n"
-"Si esto no es correcto, por favor remueve el archivo\n"
+"Si esto no es correcto, por favor elimina el archivo\n"
"\t%s\n"
"y vuelve a intentar.\n"
@@ -11534,9 +11566,9 @@ 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 ""
-"Por favor ingresa el mensaje del commit para tus cambios. Las líneas que "
-"comiencen\n"
-"con '%c' serán ignoradas, y un mensaje vacío aborta el commit.\n"
+"Por favor ingresa el mensaje del commit para tus cambios. Las\n"
+" líneas que comiencen con '%c' serán ignoradas, y un mensaje\n"
+" vacío aborta el commit.\n"
#: builtin/commit.c:855
#, c-format
@@ -11545,9 +11577,9 @@ msgid ""
"with '%c' will be kept; you may remove them yourself if you want to.\n"
"An empty message aborts the commit.\n"
msgstr ""
-"Por favor ingresa el mensaje del commit para tus cambios. Las líneas que "
-"comiencen\n"
-"con '%c' serán guardadas; puede eliminarlas usted mismo si desea.\n"
+"Por favor ingresa el mensaje del commit para tus cambios. Las\n"
+" líneas que comiencen con '%c' serán guardadas; puede eliminarlas\n"
+" usted mismo si lo desea.\n"
"Un mensaje vacío aborta el commit.\n"
#: builtin/commit.c:872
@@ -11665,8 +11697,8 @@ msgstr "calcular todos los valores delante/atrás"
msgid "version"
msgstr "version"
-#: builtin/commit.c:1347 builtin/commit.c:1529 builtin/push.c:561
-#: builtin/worktree.c:651
+#: builtin/commit.c:1347 builtin/commit.c:1529 builtin/push.c:548
+#: builtin/worktree.c:650
msgid "machine-readable output"
msgstr "output formato-maquina"
@@ -11679,8 +11711,8 @@ msgid "terminate entries with NUL"
msgstr "terminar entradas con NUL"
#: builtin/commit.c:1355 builtin/commit.c:1359 builtin/commit.c:1537
-#: builtin/fast-export.c:1125 builtin/fast-export.c:1128
-#: builtin/fast-export.c:1131 builtin/rebase.c:1471 parse-options.h:332
+#: builtin/fast-export.c:1153 builtin/fast-export.c:1156
+#: builtin/fast-export.c:1159 builtin/rebase.c:1495 parse-options.h:332
msgid "mode"
msgstr "modo"
@@ -11698,7 +11730,7 @@ msgstr ""
"mostrar archivos ignorados, modos opcionales: traditional, matching, no. "
"(Predeterminado: traditional)"
-#: builtin/commit.c:1362 parse-options.h:179
+#: builtin/commit.c:1362 parse-options.h:188
msgid "when"
msgstr "cuando"
@@ -11751,7 +11783,7 @@ msgstr "autor"
msgid "override author for commit"
msgstr "sobrescribe el autor del commit"
-#: builtin/commit.c:1499 builtin/gc.c:539
+#: builtin/commit.c:1499 builtin/gc.c:538
msgid "date"
msgstr "fecha"
@@ -11787,8 +11819,8 @@ msgstr ""
msgid "the commit is authored by me now (used with -C/-c/--amend)"
msgstr "el autor del commit soy yo ahora (usado con -C/-c/--amend)"
-#: builtin/commit.c:1506 builtin/log.c:1564 builtin/merge.c:289
-#: builtin/pull.c:163 builtin/revert.c:110
+#: builtin/commit.c:1506 builtin/log.c:1565 builtin/merge.c:289
+#: builtin/pull.c:164 builtin/revert.c:110
msgid "add Signed-off-by:"
msgstr "agregar Signed-off-by: (firmado por)"
@@ -11895,66 +11927,69 @@ msgid "git commit-graph read [--object-dir <objdir>]"
msgstr "git commit-graph read [--object-dir <objdir>]"
#: builtin/commit-graph.c:13 builtin/commit-graph.c:19
-msgid "git commit-graph verify [--object-dir <objdir>] [--shallow]"
-msgstr "git commit-graph verify [--object-dir <objdir>] [--shallow]"
+msgid ""
+"git commit-graph verify [--object-dir <objdir>] [--shallow] [--[no-]progress]"
+msgstr ""
+"git commit-graph verify [--object-dir <objdir>] [--shallow] [--[no-]progress]"
#: builtin/commit-graph.c:14 builtin/commit-graph.c:29
msgid ""
"git commit-graph write [--object-dir <objdir>] [--append|--split] [--"
-"reachable|--stdin-packs|--stdin-commits] <split options>"
+"reachable|--stdin-packs|--stdin-commits] [--[no-]progress] <split options>"
msgstr ""
-"git commit-graph write [--object-dir <objdir>] [--append|--split] [--"
-"reachable|--stdin-packs|--stdin-commits] <split options>"
+"git commit-graph write [--object-dir <dir objeto>] [--append|--split] [--"
+"reachable|--stdin-packs|--stdin-commits] [--[no-]progress] <opciones de "
+"split>"
-#: builtin/commit-graph.c:54 builtin/commit-graph.c:100
-#: builtin/commit-graph.c:161 builtin/commit-graph.c:237 builtin/fetch.c:163
-#: builtin/log.c:1584
+#: builtin/commit-graph.c:55 builtin/commit-graph.c:107
+#: builtin/commit-graph.c:170 builtin/commit-graph.c:254 builtin/fetch.c:178
+#: builtin/log.c:1585
msgid "dir"
msgstr "dir"
-#: builtin/commit-graph.c:55 builtin/commit-graph.c:101
-#: builtin/commit-graph.c:162 builtin/commit-graph.c:238
+#: builtin/commit-graph.c:56 builtin/commit-graph.c:108
+#: builtin/commit-graph.c:171 builtin/commit-graph.c:255
msgid "The object directory to store the graph"
msgstr "El directorio de objetos para guardar el gráfico"
-#: builtin/commit-graph.c:57
+#: builtin/commit-graph.c:58
msgid "if the commit-graph is split, only verify the tip file"
msgstr "si el commit-graph está cortado, solo verifica la punta del archivo"
-#: builtin/commit-graph.c:73 builtin/commit-graph.c:116
+#: builtin/commit-graph.c:80 builtin/commit-graph.c:125
#, c-format
msgid "Could not open commit-graph '%s'"
msgstr "No se pudo abrir commit-graph '%s'"
-#: builtin/commit-graph.c:164
+#: builtin/commit-graph.c:173
msgid "start walk at all refs"
msgstr "comenzar caminata en todas las refs"
-#: builtin/commit-graph.c:166
+#: builtin/commit-graph.c:175
msgid "scan pack-indexes listed by stdin for commits"
msgstr "escanear paquete de índices por stdin por commits"
-#: builtin/commit-graph.c:168
+#: builtin/commit-graph.c:177
msgid "start walk at commits listed by stdin"
msgstr "comenzar a caminar a los commits listados por stdin"
-#: builtin/commit-graph.c:170
+#: builtin/commit-graph.c:179
msgid "include all commits already in the commit-graph file"
msgstr "inclye todos los commits que ya están en el archivo commit-graph"
-#: builtin/commit-graph.c:172
+#: builtin/commit-graph.c:182
msgid "allow writing an incremental commit-graph file"
msgstr "permitir escribir un archivo commit-graph incremental"
-#: builtin/commit-graph.c:174 builtin/commit-graph.c:178
+#: builtin/commit-graph.c:184 builtin/commit-graph.c:188
msgid "maximum number of commits in a non-base split commit-graph"
msgstr "máximo número de commits en un commit-graph sin base cortada"
-#: builtin/commit-graph.c:176
+#: builtin/commit-graph.c:186
msgid "maximum ratio between two levels of a split commit-graph"
msgstr "radio máximo entre dos niveles de corte de commit-graph"
-#: builtin/commit-graph.c:191
+#: builtin/commit-graph.c:204
msgid "use at most one of --reachable, --stdin-commits, or --stdin-packs"
msgstr "use como máximo uno de --reachable, --stdin-commits, o --stdin-packs"
@@ -12271,57 +12306,57 @@ msgstr "git count-objects [-v] [-H | --human-readable]"
msgid "print sizes in human readable format"
msgstr "mostrar tamaños en formato legible para humano"
-#: builtin/describe.c:27
+#: builtin/describe.c:26
msgid "git describe [<options>] [<commit-ish>...]"
msgstr "git describe [<opciones>] [<commit-ish>...]"
-#: builtin/describe.c:28
+#: builtin/describe.c:27
msgid "git describe [<options>] --dirty"
msgstr "git describe [<opciones>] --dirty"
-#: builtin/describe.c:63
+#: builtin/describe.c:62
msgid "head"
msgstr "head"
-#: builtin/describe.c:63
+#: builtin/describe.c:62
msgid "lightweight"
msgstr "ligero"
-#: builtin/describe.c:63
+#: builtin/describe.c:62
msgid "annotated"
msgstr "anotado"
-#: builtin/describe.c:273
+#: builtin/describe.c:275
#, c-format
msgid "annotated tag %s not available"
msgstr "tag anotado %s no disponible"
-#: builtin/describe.c:277
+#: builtin/describe.c:279
#, c-format
msgid "annotated tag %s has no embedded name"
msgstr "tag anotado %s no tiene nombre embebido"
-#: builtin/describe.c:279
+#: builtin/describe.c:281
#, c-format
msgid "tag '%s' is really '%s' here"
msgstr "tag '%s' es realmente '%s' aquí"
-#: builtin/describe.c:323
+#: builtin/describe.c:325
#, c-format
msgid "no tag exactly matches '%s'"
msgstr "no hay tag que concuerde exactamente con '%s'"
-#: builtin/describe.c:325
+#: builtin/describe.c:327
#, c-format
msgid "No exact match on refs or tags, searching to describe\n"
msgstr "No hay coincidencia exacta en refs o tags, buscando en describe\n"
-#: builtin/describe.c:379
+#: builtin/describe.c:381
#, c-format
msgid "finished search at %s\n"
msgstr "búsqueda finalizada a las %s\n"
-#: builtin/describe.c:405
+#: builtin/describe.c:407
#, c-format
msgid ""
"No annotated tags can describe '%s'.\n"
@@ -12330,7 +12365,7 @@ msgstr ""
"No hay tags anotados que puedan describir '%s'.\n"
"Sin embargo, hubieron tags no anotados: intente --tags."
-#: builtin/describe.c:409
+#: builtin/describe.c:411
#, c-format
msgid ""
"No tags can describe '%s'.\n"
@@ -12339,12 +12374,12 @@ msgstr ""
"Ningún tag puede describit '%s'.\n"
"Intente --always, o cree algunos tags."
-#: builtin/describe.c:439
+#: builtin/describe.c:441
#, c-format
msgid "traversed %lu commits\n"
msgstr "%lu commits cruzados\n"
-#: builtin/describe.c:442
+#: builtin/describe.c:444
#, c-format
msgid ""
"more than %i tags found; listed %i most recent\n"
@@ -12353,90 +12388,90 @@ msgstr ""
"se encontró más de %i tags; se mostró %i más reciente\n"
"fin de la búsqueda en %s\n"
-#: builtin/describe.c:510
+#: builtin/describe.c:512
#, c-format
msgid "describe %s\n"
msgstr "describe %s\n"
-#: builtin/describe.c:513
+#: builtin/describe.c:515
#, c-format
msgid "Not a valid object name %s"
msgstr "Nombre de objeto %s no válido"
-#: builtin/describe.c:521
+#: builtin/describe.c:523
#, c-format
msgid "%s is neither a commit nor blob"
msgstr "%s no es un commit ni un blob"
-#: builtin/describe.c:535
+#: builtin/describe.c:537
msgid "find the tag that comes after the commit"
msgstr "encontrar el tag que viene después del commit"
-#: builtin/describe.c:536
+#: builtin/describe.c:538
msgid "debug search strategy on stderr"
msgstr "hacer debug a la estrategia de búsqueda en stderr"
-#: builtin/describe.c:537
+#: builtin/describe.c:539
msgid "use any ref"
msgstr "use cualquier ref"
-#: builtin/describe.c:538
+#: builtin/describe.c:540
msgid "use any tag, even unannotated"
msgstr "use cualquier tag, incluso los no anotados"
-#: builtin/describe.c:539
+#: builtin/describe.c:541
msgid "always use long format"
msgstr "siempre usar formato largo"
-#: builtin/describe.c:540
+#: builtin/describe.c:542
msgid "only follow first parent"
msgstr "solo seguir el primer patrón"
-#: builtin/describe.c:543
+#: builtin/describe.c:545
msgid "only output exact matches"
msgstr "solo mostrar concordancias exactas"
-#: builtin/describe.c:545
+#: builtin/describe.c:547
msgid "consider <n> most recent tags (default: 10)"
msgstr "considerar <n> tags más recientes (default:10)"
-#: builtin/describe.c:547
+#: builtin/describe.c:549
msgid "only consider tags matching <pattern>"
msgstr "solo considerar tags que concuerden con <patrón>"
-#: builtin/describe.c:549
+#: builtin/describe.c:551
msgid "do not consider tags matching <pattern>"
msgstr "no considerar tags que concuerden con <patrón>"
-#: builtin/describe.c:551 builtin/name-rev.c:422
+#: builtin/describe.c:553 builtin/name-rev.c:426
msgid "show abbreviated commit object as fallback"
msgstr "mostrar el objeto commit abreviado como fallback"
-#: builtin/describe.c:552 builtin/describe.c:555
+#: builtin/describe.c:554 builtin/describe.c:557
msgid "mark"
msgstr "marca"
-#: builtin/describe.c:553
+#: builtin/describe.c:555
msgid "append <mark> on dirty working tree (default: \"-dirty\")"
msgstr "adjuntar <marca> en el árbol de trabajo sucio (default: \"-dirty\")"
-#: builtin/describe.c:556
+#: builtin/describe.c:558
msgid "append <mark> on broken working tree (default: \"-broken\")"
msgstr "adjuntar <marca> en un árbol de trabajo roto (default: \"-broken\")"
-#: builtin/describe.c:574
+#: builtin/describe.c:576
msgid "--long is incompatible with --abbrev=0"
msgstr "--long es incompatible con --abbrev=0"
-#: builtin/describe.c:603
+#: builtin/describe.c:605
msgid "No names found, cannot describe anything."
msgstr "No se encontraron nombres, no se puede describir nada."
-#: builtin/describe.c:654
+#: builtin/describe.c:656
msgid "--dirty is incompatible with commit-ishes"
msgstr "--dirty es incompatible con commit-ismos"
-#: builtin/describe.c:656
+#: builtin/describe.c:658
msgid "--broken is incompatible with commit-ishes"
msgstr "--broken es incompatible con commit-ismos"
@@ -12473,27 +12508,27 @@ msgstr "objeto no manejado '%s' entregado."
msgid "git difftool [<options>] [<commit> [<commit>]] [--] [<path>...]"
msgstr "git difftool [<opciones>] [<commit> [<commit>]] [--] [<ruta>...]"
-#: builtin/difftool.c:253
+#: builtin/difftool.c:260
#, c-format
msgid "failed: %d"
msgstr "falló: %d"
-#: builtin/difftool.c:295
+#: builtin/difftool.c:302
#, c-format
msgid "could not read symlink %s"
msgstr "no se pudo leer el symlink %s"
-#: builtin/difftool.c:297
+#: builtin/difftool.c:304
#, c-format
msgid "could not read symlink file %s"
msgstr "no se pudo leer el archivo symlink %s"
-#: builtin/difftool.c:305
+#: builtin/difftool.c:312
#, c-format
msgid "could not read object %s for symlink %s"
msgstr "no se pudo leer el objeto %s para el symlink %s"
-#: builtin/difftool.c:406
+#: builtin/difftool.c:413
msgid ""
"combined diff formats('-c' and '--cc') are not supported in\n"
"directory diff mode('-d' and '--dir-diff')."
@@ -12501,54 +12536,54 @@ msgstr ""
"formatos combinados de diff ('-c' y '--cc') no soportados en\n"
"modo diff para directorio('-d' y '--dir-diff')."
-#: builtin/difftool.c:626
+#: builtin/difftool.c:634
#, c-format
msgid "both files modified: '%s' and '%s'."
msgstr "ambos archivos modificados: '%s' y '%s'."
-#: builtin/difftool.c:628
+#: builtin/difftool.c:636
msgid "working tree file has been left."
msgstr "archivo del árbol de trabajo ha sido dejado."
-#: builtin/difftool.c:639
+#: builtin/difftool.c:647
#, c-format
msgid "temporary files exist in '%s'."
msgstr "archivo temporal existe en '%s'."
-#: builtin/difftool.c:640
+#: builtin/difftool.c:648
msgid "you may want to cleanup or recover these."
msgstr "tal vez desees limpiar o recuperar estos."
-#: builtin/difftool.c:689
+#: builtin/difftool.c:697
msgid "use `diff.guitool` instead of `diff.tool`"
msgstr "use `diff.guitool` en lugar de `diff.tool`"
-#: builtin/difftool.c:691
+#: builtin/difftool.c:699
msgid "perform a full-directory diff"
msgstr "realizar un diff de todo el directorio"
-#: builtin/difftool.c:693
+#: builtin/difftool.c:701
msgid "do not prompt before launching a diff tool"
msgstr "no mostrar antes de lanzar una herramienta de diff"
-#: builtin/difftool.c:698
+#: builtin/difftool.c:706
msgid "use symlinks in dir-diff mode"
msgstr "usar enlaces simbólicos en modo dir-diff"
-#: builtin/difftool.c:699
+#: builtin/difftool.c:707
msgid "tool"
msgstr "herramienta"
-#: builtin/difftool.c:700
+#: builtin/difftool.c:708
msgid "use the specified diff tool"
msgstr "usar la herramienta de diff especificada"
-#: builtin/difftool.c:702
+#: builtin/difftool.c:710
msgid "print a list of diff tools that may be used with `--tool`"
msgstr ""
"mostrar una lista de herramientas de diff que pueden ser usadas con `--tool`"
-#: builtin/difftool.c:705
+#: builtin/difftool.c:713
msgid ""
"make 'git-difftool' exit when an invoked diff tool returns a non - zero exit "
"code"
@@ -12556,31 +12591,31 @@ msgstr ""
"hacer que 'git-difftool' salga cuando una herramienta de diff retorne un "
"código de salida distinto de cero"
-#: builtin/difftool.c:708
+#: builtin/difftool.c:716
msgid "specify a custom command for viewing diffs"
msgstr "especificar un comando personalizado para ver diffs"
-#: builtin/difftool.c:709
+#: builtin/difftool.c:717
msgid "passed to `diff`"
msgstr "pasado a `diff`"
-#: builtin/difftool.c:724
+#: builtin/difftool.c:732
msgid "difftool requires worktree or --no-index"
msgstr "difftool requiere un árbol de trabajo o --no-index"
-#: builtin/difftool.c:731
+#: builtin/difftool.c:739
msgid "--dir-diff is incompatible with --no-index"
msgstr "--dirty-diff es incompatible con --no-index"
-#: builtin/difftool.c:734
+#: builtin/difftool.c:742
msgid "--gui, --tool and --extcmd are mutually exclusive"
msgstr "--gui, --tool y --extcmd son mutuamente exclusivas"
-#: builtin/difftool.c:742
+#: builtin/difftool.c:750
msgid "no <tool> given for --tool=<tool>"
msgstr "no se ha proporcionado <herramienta> para --tool=<herramienta>"
-#: builtin/difftool.c:749
+#: builtin/difftool.c:757
msgid "no <cmd> given for --extcmd=<cmd>"
msgstr "no se ha entregado <comando> para --extcmd=<comando>"
@@ -12617,158 +12652,184 @@ msgstr ""
msgid "git fast-export [rev-list-opts]"
msgstr "git fast-export [rev-list-opts]"
-#: builtin/fast-export.c:1124
+#: builtin/fast-export.c:852
+msgid "Error: Cannot export nested tags unless --mark-tags is specified."
+msgstr ""
+"Error: No se puede exportar los tags anidados a menos que --mark-tags sea "
+"especificado."
+
+#: builtin/fast-export.c:1152
msgid "show progress after <n> objects"
msgstr "mostrar progreso después de <n> objetos"
-#: builtin/fast-export.c:1126
+#: builtin/fast-export.c:1154
msgid "select handling of signed tags"
msgstr "seleccionar el manejo de tags firmados"
-#: builtin/fast-export.c:1129
+#: builtin/fast-export.c:1157
msgid "select handling of tags that tag filtered objects"
msgstr "seleccionar el manejo de tags que son tags de objetos filtrados"
-#: builtin/fast-export.c:1132
+#: builtin/fast-export.c:1160
msgid "select handling of commit messages in an alternate encoding"
msgstr "seleccionar el manejo de mensajes de commit en un encoding diferente"
-#: builtin/fast-export.c:1135
+#: builtin/fast-export.c:1163
msgid "Dump marks to this file"
msgstr "Volcar marcas a este archivo"
-#: builtin/fast-export.c:1137
+#: builtin/fast-export.c:1165
msgid "Import marks from this file"
msgstr "Importar marcas de este archivo"
-#: builtin/fast-export.c:1139
+#: builtin/fast-export.c:1169
+msgid "Import marks from this file if it exists"
+msgstr "Importar marcas de este archivo si existe"
+
+#: builtin/fast-export.c:1171
msgid "Fake a tagger when tags lack one"
msgstr "Falsificar un tagger cuando les falta uno"
-#: builtin/fast-export.c:1141
+#: builtin/fast-export.c:1173
msgid "Output full tree for each commit"
msgstr "Mostrar todo el árbol para cada commit"
-#: builtin/fast-export.c:1143
+#: builtin/fast-export.c:1175
msgid "Use the done feature to terminate the stream"
msgstr "Use el feature done para terminar el stream"
-#: builtin/fast-export.c:1144
+#: builtin/fast-export.c:1176
msgid "Skip output of blob data"
msgstr "Saltar el output de data blob"
-#: builtin/fast-export.c:1145 builtin/log.c:1632
+#: builtin/fast-export.c:1177 builtin/log.c:1633
msgid "refspec"
msgstr "refspec"
-#: builtin/fast-export.c:1146
+#: builtin/fast-export.c:1178
msgid "Apply refspec to exported refs"
msgstr "Aplicar refspec para los refs exportados"
-#: builtin/fast-export.c:1147
+#: builtin/fast-export.c:1179
msgid "anonymize output"
msgstr "anonimizar la salida"
-#: builtin/fast-export.c:1149
+#: builtin/fast-export.c:1181
msgid "Reference parents which are not in fast-export stream by object id"
msgstr ""
"Padres de la referencia que no estan en fast-export stream por id de objeto"
-#: builtin/fast-export.c:1151
+#: builtin/fast-export.c:1183
msgid "Show original object ids of blobs/commits"
msgstr "Mostrar ids de objetos originales para blobs/commits"
-#: builtin/fetch.c:30
+#: builtin/fast-export.c:1185
+msgid "Label tags with mark ids"
+msgstr "Marcar tags con ids de mark"
+
+#: builtin/fast-export.c:1220
+msgid "Cannot pass both --import-marks and --import-marks-if-exists"
+msgstr "No se puede pasar ambos --import-marks y --import-marks-if-exists"
+
+#: builtin/fetch.c:34
msgid "git fetch [<options>] [<repository> [<refspec>...]]"
msgstr "git fetch [<opciones>] [<repositorio> [<refspec>...]]"
-#: builtin/fetch.c:31
+#: builtin/fetch.c:35
msgid "git fetch [<options>] <group>"
msgstr "git fetch [<opciones>] <grupo>"
-#: builtin/fetch.c:32
+#: builtin/fetch.c:36
msgid "git fetch --multiple [<options>] [(<repository> | <group>)...]"
msgstr "git fetch --multiple [<opciones>] [(<repositorio> | <grupo>)...]"
-#: builtin/fetch.c:33
+#: builtin/fetch.c:37
msgid "git fetch --all [<options>]"
msgstr "git fetch --all [<opciones>]"
-#: builtin/fetch.c:125 builtin/pull.c:203
+#: builtin/fetch.c:115
+msgid "fetch.parallel cannot be negative"
+msgstr "fetch.parallel no puede ser negativo"
+
+#: builtin/fetch.c:138 builtin/pull.c:204
msgid "fetch from all remotes"
msgstr "extraer de todos los remotos"
-#: builtin/fetch.c:127 builtin/pull.c:206
+#: builtin/fetch.c:140 builtin/pull.c:248
+msgid "set upstream for git pull/fetch"
+msgstr "configurar upstream para git pulll/fetch"
+
+#: builtin/fetch.c:142 builtin/pull.c:207
msgid "append to .git/FETCH_HEAD instead of overwriting"
msgstr "adjuntar a .git/FETCH_HEAD en lugar de sobrescribir"
-#: builtin/fetch.c:129 builtin/pull.c:209
+#: builtin/fetch.c:144 builtin/pull.c:210
msgid "path to upload pack on remote end"
msgstr "ruta para cargar el paquete al final del remoto"
-#: builtin/fetch.c:130
+#: builtin/fetch.c:145
msgid "force overwrite of local reference"
msgstr "forzar sobrescritura de referencia local"
-#: builtin/fetch.c:132
+#: builtin/fetch.c:147
msgid "fetch from multiple remotes"
msgstr "extraer de múltiples remotos"
-#: builtin/fetch.c:134 builtin/pull.c:213
+#: builtin/fetch.c:149 builtin/pull.c:214
msgid "fetch all tags and associated objects"
msgstr "extraer todos los tags y objetos asociados"
-#: builtin/fetch.c:136
+#: builtin/fetch.c:151
msgid "do not fetch all tags (--no-tags)"
msgstr "no extraer todos los tags (--no-tags)"
-#: builtin/fetch.c:138
+#: builtin/fetch.c:153
msgid "number of submodules fetched in parallel"
msgstr "número de submódulos extraídos en paralelo"
-#: builtin/fetch.c:140 builtin/pull.c:216
+#: builtin/fetch.c:155 builtin/pull.c:217
msgid "prune remote-tracking branches no longer on remote"
msgstr "limpiar ramas remotas rastreadas que ya no están en el remoto"
-#: builtin/fetch.c:142
+#: builtin/fetch.c:157
msgid "prune local tags no longer on remote and clobber changed tags"
msgstr ""
"limpiar tags locales que no se encuentran en el remoto y eliminar tags "
"cambiados"
-#: builtin/fetch.c:143 builtin/fetch.c:166 builtin/pull.c:140
+#: builtin/fetch.c:158 builtin/fetch.c:181 builtin/pull.c:141
msgid "on-demand"
msgstr "en demanda"
-#: builtin/fetch.c:144
+#: builtin/fetch.c:159
msgid "control recursive fetching of submodules"
msgstr "controlar extracción recursiva de submódulos"
-#: builtin/fetch.c:148 builtin/pull.c:224
+#: builtin/fetch.c:163 builtin/pull.c:225
msgid "keep downloaded pack"
msgstr "mantener el paquete descargado"
-#: builtin/fetch.c:150
+#: builtin/fetch.c:165
msgid "allow updating of HEAD ref"
msgstr "permitir actualizar la ref HEAD"
-#: builtin/fetch.c:153 builtin/fetch.c:159 builtin/pull.c:227
+#: builtin/fetch.c:168 builtin/fetch.c:174 builtin/pull.c:228
msgid "deepen history of shallow clone"
msgstr "historia profunda de un clon superficial"
-#: builtin/fetch.c:155
+#: builtin/fetch.c:170
msgid "deepen history of shallow repository based on time"
msgstr "historia profunda de un repositorio superficial basado en tiempo"
-#: builtin/fetch.c:161 builtin/pull.c:230
+#: builtin/fetch.c:176 builtin/pull.c:231
msgid "convert to a complete repository"
msgstr "convertir a un repositorio completo"
-#: builtin/fetch.c:164
+#: builtin/fetch.c:179
msgid "prepend this to submodule path output"
msgstr "anteponer esto a salida de la ruta del submódulo"
-#: builtin/fetch.c:167
+#: builtin/fetch.c:182
msgid ""
"default for recursive fetching of submodules (lower priority than config "
"files)"
@@ -12776,90 +12837,90 @@ msgstr ""
"default para extracción recursiva de submódulos (menor prioridad que "
"archivos de configuración)"
-#: builtin/fetch.c:171 builtin/pull.c:233
+#: builtin/fetch.c:186 builtin/pull.c:234
msgid "accept refs that update .git/shallow"
msgstr "aceptar refs que actualicen .git/shallow"
-#: builtin/fetch.c:172 builtin/pull.c:235
+#: builtin/fetch.c:187 builtin/pull.c:236
msgid "refmap"
msgstr "refmap"
-#: builtin/fetch.c:173 builtin/pull.c:236
+#: builtin/fetch.c:188 builtin/pull.c:237
msgid "specify fetch refmap"
msgstr "especificar extracción de refmap"
-#: builtin/fetch.c:180
+#: builtin/fetch.c:195
msgid "report that we have only objects reachable from this object"
msgstr "reporta que solo tenemos objetos alcanzables de este objeto"
-#: builtin/fetch.c:183
+#: builtin/fetch.c:198
msgid "run 'gc --auto' after fetching"
msgstr "ejecutar 'gc --auto' tras el fetch"
-#: builtin/fetch.c:185 builtin/pull.c:245
+#: builtin/fetch.c:200 builtin/pull.c:246
msgid "check for forced-updates on all updated branches"
msgstr "verificar updates forzados en todos los branch actualizados"
-#: builtin/fetch.c:491
+#: builtin/fetch.c:510
msgid "Couldn't find remote ref HEAD"
msgstr "No se puedo encontrar ref remota HEAD"
-#: builtin/fetch.c:630
+#: builtin/fetch.c:650
#, c-format
msgid "configuration fetch.output contains invalid value %s"
msgstr "la configuración fetch.output contiene el valor inválido %s"
-#: builtin/fetch.c:728
+#: builtin/fetch.c:748
#, c-format
msgid "object %s not found"
msgstr "objeto %s no encontrado"
-#: builtin/fetch.c:732
+#: builtin/fetch.c:752
msgid "[up to date]"
msgstr "[actualizado]"
-#: builtin/fetch.c:745 builtin/fetch.c:761 builtin/fetch.c:833
+#: builtin/fetch.c:765 builtin/fetch.c:781 builtin/fetch.c:853
msgid "[rejected]"
msgstr "[rechazado]"
-#: builtin/fetch.c:746
+#: builtin/fetch.c:766
msgid "can't fetch in current branch"
msgstr "no se puede traer en la rama actual"
-#: builtin/fetch.c:756
+#: builtin/fetch.c:776
msgid "[tag update]"
msgstr "[actualización de tag]"
-#: builtin/fetch.c:757 builtin/fetch.c:794 builtin/fetch.c:816
-#: builtin/fetch.c:828
+#: builtin/fetch.c:777 builtin/fetch.c:814 builtin/fetch.c:836
+#: builtin/fetch.c:848
msgid "unable to update local ref"
msgstr "no se posible actualizar el ref local"
-#: builtin/fetch.c:761
+#: builtin/fetch.c:781
msgid "would clobber existing tag"
msgstr "podría golpear tag existente"
-#: builtin/fetch.c:783
+#: builtin/fetch.c:803
msgid "[new tag]"
msgstr "[nuevo tag]"
-#: builtin/fetch.c:786
+#: builtin/fetch.c:806
msgid "[new branch]"
msgstr "[nueva rama]"
-#: builtin/fetch.c:789
+#: builtin/fetch.c:809
msgid "[new ref]"
msgstr "[nueva referencia]"
-#: builtin/fetch.c:828
+#: builtin/fetch.c:848
msgid "forced update"
msgstr "actualización forzada"
-#: builtin/fetch.c:833
+#: builtin/fetch.c:853
msgid "non-fast-forward"
msgstr "avance lento"
-#: builtin/fetch.c:854
+#: builtin/fetch.c:874
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"
@@ -12870,7 +12931,7 @@ msgstr ""
"show-forced-updates'\n"
"o ejecute 'git config fetch.showForcedUpdates true'."
-#: builtin/fetch.c:858
+#: builtin/fetch.c:878
#, c-format
msgid ""
"It took %.2f seconds to check forced updates. You can use\n"
@@ -12883,22 +12944,22 @@ msgstr ""
"false'\n"
"para evitar esta validación.\n"
-#: builtin/fetch.c:888
+#: builtin/fetch.c:908
#, c-format
msgid "%s did not send all necessary objects\n"
msgstr "%s no envió todos los objetos necesarios\n"
-#: builtin/fetch.c:909
+#: builtin/fetch.c:929
#, c-format
msgid "reject %s because shallow roots are not allowed to be updated"
msgstr "rechazado %s porque raíces superficiales no pueden ser actualizadas"
-#: builtin/fetch.c:1000 builtin/fetch.c:1131
+#: builtin/fetch.c:1020 builtin/fetch.c:1157
#, c-format
msgid "From %.*s\n"
msgstr "Desde %.*s\n"
-#: builtin/fetch.c:1011
+#: builtin/fetch.c:1031
#, c-format
msgid ""
"some local refs could not be updated; try running\n"
@@ -12907,58 +12968,79 @@ msgstr ""
"algunos refs locales no pudieron ser actualizados; intente ejecutar\n"
" 'git remote prune %s' para eliminar cualquier rama vieja o conflictiva"
-#: builtin/fetch.c:1101
+#: builtin/fetch.c:1127
#, c-format
msgid " (%s will become dangling)"
msgstr " (%s se pondrá colgado)"
-#: builtin/fetch.c:1102
+#: builtin/fetch.c:1128
#, c-format
msgid " (%s has become dangling)"
msgstr " (%s se ha colgado)"
-#: builtin/fetch.c:1134
+#: builtin/fetch.c:1160
msgid "[deleted]"
msgstr "[eliminado]"
-#: builtin/fetch.c:1135 builtin/remote.c:1036
+#: builtin/fetch.c:1161 builtin/remote.c:1036
msgid "(none)"
msgstr "(nada)"
-#: builtin/fetch.c:1158
+#: builtin/fetch.c:1184
#, c-format
msgid "Refusing to fetch into current branch %s of non-bare repository"
msgstr "Rehusando extraer en la rama actual %s de un repositorio no vacío"
-#: builtin/fetch.c:1177
+#: builtin/fetch.c:1203
#, c-format
msgid "Option \"%s\" value \"%s\" is not valid for %s"
msgstr "Opción \"%s\" valor \"%s\" no es válido para %s"
-#: builtin/fetch.c:1180
+#: builtin/fetch.c:1206
#, c-format
msgid "Option \"%s\" is ignored for %s\n"
msgstr "Opción \"%s\" es ignorada por %s\n"
-#: builtin/fetch.c:1484
+#: builtin/fetch.c:1414
+msgid "multiple branch detected, incompatible with --set-upstream"
+msgstr "múltiples ramas detectadas, incompatible con --set-upstream"
+
+#: builtin/fetch.c:1429
+msgid "not setting upstream for a remote remote-tracking branch"
+msgstr "no configurar upstream para una rama de rastreo remoto"
+
+#: builtin/fetch.c:1431
+msgid "not setting upstream for a remote tag"
+msgstr "no configurar upstream para un tag remoto"
+
+#: builtin/fetch.c:1433
+msgid "unknown branch type"
+msgstr "tipo de branch desconocido"
+
+#: builtin/fetch.c:1435
+msgid ""
+"no source branch found.\n"
+"you need to specify exactly one branch with the --set-upstream option."
+msgstr ""
+"no se encontró rama fuente.\n"
+"tienes que especificar exactamente una rama con la opción --set-upstream."
+
+#: builtin/fetch.c:1561 builtin/fetch.c:1623
#, c-format
msgid "Fetching %s\n"
msgstr "Extrayendo %s\n"
-#: builtin/fetch.c:1486 builtin/remote.c:100
+#: builtin/fetch.c:1571 builtin/fetch.c:1625 builtin/remote.c:100
#, c-format
msgid "Could not fetch %s"
msgstr "No se pudo extraer %s"
-#: builtin/fetch.c:1532
-msgid ""
-"--filter can only be used with the remote configured in extensions."
-"partialClone"
-msgstr ""
-"--filter solo puede ser usado con el remoto configurado en extensions."
-"partialClone"
+#: builtin/fetch.c:1583
+#, c-format
+msgid "could not fetch '%s' (exit code: %d)\n"
+msgstr "no se pudo hacer fetch a '%s' (código de salida: %d)\n"
-#: builtin/fetch.c:1556
+#: builtin/fetch.c:1685
msgid ""
"No remote repository specified. Please, specify either a URL or a\n"
"remote name from which new revisions should be fetched."
@@ -12966,44 +13048,44 @@ msgstr ""
"No hay repositorio remoto especificado. Por favor, especifique un URL o un\n"
"nombre remoto del cual las nuevas revisiones deben ser extraídas."
-#: builtin/fetch.c:1593
+#: builtin/fetch.c:1722
msgid "You need to specify a tag name."
msgstr "Tienes que especificar un nombre de tag."
-#: builtin/fetch.c:1644
+#: builtin/fetch.c:1774
msgid "Negative depth in --deepen is not supported"
msgstr "Profundidad negativa en --deepen no soportada"
-#: builtin/fetch.c:1646
+#: builtin/fetch.c:1776
msgid "--deepen and --depth are mutually exclusive"
msgstr "--deepen y --depth son mutuamente exclusivas"
-#: builtin/fetch.c:1651
+#: builtin/fetch.c:1781
msgid "--depth and --unshallow cannot be used together"
msgstr "--depth y --unshallow no pueden ser usadas juntas"
-#: builtin/fetch.c:1653
+#: builtin/fetch.c:1783
msgid "--unshallow on a complete repository does not make sense"
msgstr "--unshallow no tiene sentido en un repositorio completo"
-#: builtin/fetch.c:1669
+#: builtin/fetch.c:1799
msgid "fetch --all does not take a repository argument"
msgstr "fetch --all no toma un argumento de repositorio"
-#: builtin/fetch.c:1671
+#: builtin/fetch.c:1801
msgid "fetch --all does not make sense with refspecs"
msgstr "fetch --all no tiene sentido con refspecs"
-#: builtin/fetch.c:1680
+#: builtin/fetch.c:1810
#, c-format
msgid "No such remote or remote group: %s"
msgstr "No existe el remoto o grupo remoto: %s"
-#: builtin/fetch.c:1687
+#: builtin/fetch.c:1817
msgid "Fetching a group and specifying refspecs does not make sense"
msgstr "Extraer un grupo y especificar un refspecs no tiene sentido"
-#: builtin/fetch.c:1703
+#: builtin/fetch.c:1835
msgid ""
"--filter can only be used with the remote configured in extensions."
"partialclone"
@@ -13340,7 +13422,7 @@ msgstr "%s: objeto faltante"
msgid "invalid parameter: expected sha1, got '%s'"
msgstr "parámetro inválido: sha1 esperado, se obtuvo '%s'"
-#: builtin/gc.c:34
+#: builtin/gc.c:35
msgid "git gc [<options>]"
msgstr "git gc [<opciones>]"
@@ -13354,17 +13436,17 @@ msgstr "Falló el fstat %s: %s"
msgid "failed to parse '%s' value '%s'"
msgstr "falló al analizar '%s' valor '%s'"
-#: builtin/gc.c:476 builtin/init-db.c:55
+#: builtin/gc.c:475 builtin/init-db.c:55
#, c-format
msgid "cannot stat '%s'"
msgstr "no se pudo definir '%s'"
-#: builtin/gc.c:485 builtin/notes.c:240 builtin/tag.c:529
+#: builtin/gc.c:484 builtin/notes.c:240 builtin/tag.c:529
#, c-format
msgid "cannot read '%s'"
msgstr "no se puede leer '%s'"
-#: builtin/gc.c:492
+#: builtin/gc.c:491
#, c-format
msgid ""
"The last gc run reported the following. Please correct the root cause\n"
@@ -13374,59 +13456,59 @@ msgid ""
"%s"
msgstr ""
"El último gc reportó lo siguiente. Por favor corrige la causa\n"
-"y remueva %s.\n"
+"y elimine %s.\n"
"Limpieza automática no se realizará hasta que el archivo sea eliminado.\n"
"\n"
"%s"
-#: builtin/gc.c:540
+#: builtin/gc.c:539
msgid "prune unreferenced objects"
msgstr "limpiar objetos no referenciados"
-#: builtin/gc.c:542
+#: builtin/gc.c:541
msgid "be more thorough (increased runtime)"
msgstr "ser más exhaustivo (aumentar runtime)"
-#: builtin/gc.c:543
+#: builtin/gc.c:542
msgid "enable auto-gc mode"
msgstr "habilitar modo auto-gc"
-#: builtin/gc.c:546
+#: builtin/gc.c:545
msgid "force running gc even if there may be another gc running"
msgstr "forzar la ejecución de gc incluso si puede haber otro gc ejecutándose"
-#: builtin/gc.c:549
+#: builtin/gc.c:548
msgid "repack all other packs except the largest pack"
msgstr "reempaquetar todos los otros paquetes excepto el paquete más grande"
-#: builtin/gc.c:566
+#: builtin/gc.c:565
#, c-format
msgid "failed to parse gc.logexpiry value %s"
msgstr "falló al analizar valor %s de gc.logexpirity"
-#: builtin/gc.c:577
+#: builtin/gc.c:576
#, c-format
msgid "failed to parse prune expiry value %s"
msgstr "falló al analizar valor %s de prune expiry"
-#: builtin/gc.c:597
+#: builtin/gc.c:596
#, c-format
msgid "Auto packing the repository in background for optimum performance.\n"
msgstr ""
"Auto empaquetado del repositorio en segundo plano para un performance "
"óptimo.\n"
-#: builtin/gc.c:599
+#: builtin/gc.c:598
#, c-format
msgid "Auto packing the repository for optimum performance.\n"
msgstr "Auto empaquetado del repositorio para performance óptimo.\n"
-#: builtin/gc.c:600
+#: builtin/gc.c:599
#, c-format
msgid "See \"git help gc\" for manual housekeeping.\n"
msgstr "Vea \"git help gc\" para limpieza manual.\n"
-#: builtin/gc.c:640
+#: builtin/gc.c:639
#, c-format
msgid ""
"gc is already running on machine '%s' pid %<PRIuMAX> (use --force if not)"
@@ -13434,7 +13516,7 @@ msgstr ""
"gc ya está ejecutándose en la máquina '%s' pid %<PRIuMAX> (use --force so no "
"es así)"
-#: builtin/gc.c:695
+#: builtin/gc.c:694
msgid ""
"There are too many unreachable loose objects; run 'git prune' to remove them."
msgstr ""
@@ -13460,261 +13542,261 @@ msgstr "número inválido de hilos especificado (%d) para %s"
#. grep.threads
#.
#: builtin/grep.c:287 builtin/index-pack.c:1534 builtin/index-pack.c:1727
-#: builtin/pack-objects.c:2728
+#: builtin/pack-objects.c:2708
#, c-format
msgid "no threads support, ignoring %s"
msgstr "no hay soporte para hilos, ignorando %s"
-#: builtin/grep.c:467 builtin/grep.c:591 builtin/grep.c:633
+#: builtin/grep.c:467 builtin/grep.c:592 builtin/grep.c:635
#, c-format
msgid "unable to read tree (%s)"
msgstr "no es posible leer el árbol (%s)"
-#: builtin/grep.c:648
+#: builtin/grep.c:650
#, c-format
msgid "unable to grep from object of type %s"
msgstr "no es posible realizar grep del objeto de tipo %s"
-#: builtin/grep.c:714
+#: builtin/grep.c:716
#, c-format
msgid "switch `%c' expects a numerical value"
msgstr "switch `%c' espera un valor numérico"
-#: builtin/grep.c:813
+#: builtin/grep.c:815
msgid "search in index instead of in the work tree"
msgstr "buscar en el índice en lugar del árbol de trabajo"
-#: builtin/grep.c:815
+#: builtin/grep.c:817
msgid "find in contents not managed by git"
msgstr "encontrar en contenidos no manejados por git"
-#: builtin/grep.c:817
+#: builtin/grep.c:819
msgid "search in both tracked and untracked files"
msgstr "buscar en archivos rastreados y no rastreados"
-#: builtin/grep.c:819
+#: builtin/grep.c:821
msgid "ignore files specified via '.gitignore'"
msgstr "ignorar archivos especificados via '.gitignore'"
-#: builtin/grep.c:821
+#: builtin/grep.c:823
msgid "recursively search in each submodule"
msgstr "búsqueda recursiva en cada submódulo"
-#: builtin/grep.c:824
+#: builtin/grep.c:826
msgid "show non-matching lines"
msgstr "mostrar líneas que no concuerdan"
-#: builtin/grep.c:826
+#: builtin/grep.c:828
msgid "case insensitive matching"
msgstr "búsqueda insensible a mayúsculas"
-#: builtin/grep.c:828
+#: builtin/grep.c:830
msgid "match patterns only at word boundaries"
msgstr "concordar patrón solo a los límites de las palabras"
-#: builtin/grep.c:830
+#: builtin/grep.c:832
msgid "process binary files as text"
msgstr "procesar archivos binarios como texto"
-#: builtin/grep.c:832
+#: builtin/grep.c:834
msgid "don't match patterns in binary files"
msgstr "no concordar patrones en archivos binarios"
-#: builtin/grep.c:835
+#: builtin/grep.c:837
msgid "process binary files with textconv filters"
msgstr "procesar archivos binarios con filtros textconv"
-#: builtin/grep.c:837
+#: builtin/grep.c:839
msgid "search in subdirectories (default)"
msgstr "buscar en subdirectorios (default)"
-#: builtin/grep.c:839
+#: builtin/grep.c:841
msgid "descend at most <depth> levels"
msgstr "descender como máximo <valor-de-profundiad> niveles"
-#: builtin/grep.c:843
+#: builtin/grep.c:845
msgid "use extended POSIX regular expressions"
msgstr "usar expresiones regulares POSIX extendidas"
-#: builtin/grep.c:846
+#: builtin/grep.c:848
msgid "use basic POSIX regular expressions (default)"
msgstr "usar expresiones regulares POSIX (default)"
-#: builtin/grep.c:849
+#: builtin/grep.c:851
msgid "interpret patterns as fixed strings"
msgstr "interpretar patrones como strings arreglados"
-#: builtin/grep.c:852
+#: builtin/grep.c:854
msgid "use Perl-compatible regular expressions"
msgstr "usar expresiones regulares compatibles con Perl"
-#: builtin/grep.c:855
+#: builtin/grep.c:857
msgid "show line numbers"
msgstr "mostrar números de línea"
-#: builtin/grep.c:856
+#: builtin/grep.c:858
msgid "show column number of first match"
msgstr "mostrar el número de columna de la primer coincidencia"
-#: builtin/grep.c:857
+#: builtin/grep.c:859
msgid "don't show filenames"
msgstr "no mostrar nombres de archivo"
-#: builtin/grep.c:858
+#: builtin/grep.c:860
msgid "show filenames"
msgstr "mostrar nombres de archivo"
-#: builtin/grep.c:860
+#: builtin/grep.c:862
msgid "show filenames relative to top directory"
msgstr "mostrar nombres de archivo relativos al directorio superior"
-#: builtin/grep.c:862
+#: builtin/grep.c:864
msgid "show only filenames instead of matching lines"
msgstr "mostrar solo nombres de archivos en lugar de líneas encontradas"
-#: builtin/grep.c:864
+#: builtin/grep.c:866
msgid "synonym for --files-with-matches"
msgstr "sinónimo para --files-with-matches"
-#: builtin/grep.c:867
+#: builtin/grep.c:869
msgid "show only the names of files without match"
msgstr "mostrar solo los nombres de archivos sin coincidencias"
-#: builtin/grep.c:869
+#: builtin/grep.c:871
msgid "print NUL after filenames"
msgstr "imprimir NUL después del nombre de archivo"
-#: builtin/grep.c:872
+#: builtin/grep.c:874
msgid "show only matching parts of a line"
msgstr "mostrar solo partes que concuerdan de una línea"
-#: builtin/grep.c:874
+#: builtin/grep.c:876
msgid "show the number of matches instead of matching lines"
msgstr "mostrar el número de concordancias en lugar de las líneas concordantes"
-#: builtin/grep.c:875
+#: builtin/grep.c:877
msgid "highlight matches"
msgstr "resaltar concordancias"
-#: builtin/grep.c:877
+#: builtin/grep.c:879
msgid "print empty line between matches from different files"
msgstr "imprimir una línea vacía entre coincidencias de diferentes archivos"
-#: builtin/grep.c:879
+#: builtin/grep.c:881
msgid "show filename only once above matches from same file"
msgstr ""
"mostrar el nombre de archivo solo una vez para concordancias en el mismo "
"archivo"
-#: builtin/grep.c:882
+#: builtin/grep.c:884
msgid "show <n> context lines before and after matches"
msgstr "mostrar <n> líneas de contexto antes y después de la concordancia"
-#: builtin/grep.c:885
+#: builtin/grep.c:887
msgid "show <n> context lines before matches"
msgstr "mostrar <n> líneas de contexto antes de las concordancias"
-#: builtin/grep.c:887
+#: builtin/grep.c:889
msgid "show <n> context lines after matches"
msgstr "mostrar <n> líneas de context después de las concordancias"
-#: builtin/grep.c:889
+#: builtin/grep.c:891
msgid "use <n> worker threads"
msgstr "usar <n> hilos de trabajo"
-#: builtin/grep.c:890
+#: builtin/grep.c:892
msgid "shortcut for -C NUM"
msgstr "atajo para -C NUM"
-#: builtin/grep.c:893
+#: builtin/grep.c:895
msgid "show a line with the function name before matches"
msgstr ""
"mostrar una línea con el nombre de la función antes de las concordancias"
-#: builtin/grep.c:895
+#: builtin/grep.c:897
msgid "show the surrounding function"
msgstr "mostrar la función circundante"
-#: builtin/grep.c:898
+#: builtin/grep.c:900
msgid "read patterns from file"
msgstr "leer patrones del archivo"
-#: builtin/grep.c:900
+#: builtin/grep.c:902
msgid "match <pattern>"
msgstr "concordar <patrón>"
-#: builtin/grep.c:902
+#: builtin/grep.c:904
msgid "combine patterns specified with -e"
msgstr "combinar patrones especificados con -e"
-#: builtin/grep.c:914
+#: builtin/grep.c:916
msgid "indicate hit with exit status without output"
msgstr "indicar concordancia con exit status sin output"
-#: builtin/grep.c:916
+#: builtin/grep.c:918
msgid "show only matches from files that match all patterns"
msgstr ""
"mostrar solo concordancias con archivos que concuerdan todos los patrones"
-#: builtin/grep.c:918
+#: builtin/grep.c:920
msgid "show parse tree for grep expression"
msgstr "mostrar árbol analizado para la expresión grep"
-#: builtin/grep.c:922
+#: builtin/grep.c:924
msgid "pager"
msgstr "paginador"
-#: builtin/grep.c:922
+#: builtin/grep.c:924
msgid "show matching files in the pager"
msgstr "mostrar archivos concordantes en el paginador"
-#: builtin/grep.c:926
+#: builtin/grep.c:928
msgid "allow calling of grep(1) (ignored by this build)"
msgstr "permitir el llamado de grep(1) (ignorado por esta build)"
-#: builtin/grep.c:990
+#: builtin/grep.c:992
msgid "no pattern given"
msgstr "no se ha entregado patrón"
-#: builtin/grep.c:1026
+#: builtin/grep.c:1028
msgid "--no-index or --untracked cannot be used with revs"
msgstr "--no-index o --untracked no se puede usar con revs"
-#: builtin/grep.c:1034
+#: builtin/grep.c:1036
#, c-format
msgid "unable to resolve revision: %s"
msgstr "no se posible resolver revisión: %s"
-#: builtin/grep.c:1065
+#: builtin/grep.c:1067
msgid "invalid option combination, ignoring --threads"
msgstr "combinación de opciones inválida, ignorando --threads"
-#: builtin/grep.c:1068 builtin/pack-objects.c:3416
+#: builtin/grep.c:1070 builtin/pack-objects.c:3400
msgid "no threads support, ignoring --threads"
msgstr "no se soportan hilos, ignorando --threads"
-#: builtin/grep.c:1071 builtin/index-pack.c:1531 builtin/pack-objects.c:2725
+#: builtin/grep.c:1073 builtin/index-pack.c:1531 builtin/pack-objects.c:2705
#, c-format
msgid "invalid number of threads specified (%d)"
msgstr "número inválido de hilos especificado (%d)"
-#: builtin/grep.c:1094
+#: builtin/grep.c:1096
msgid "--open-files-in-pager only works on the worktree"
msgstr "--open-files-in-pager solo funciona en el árbol de trabajo"
-#: builtin/grep.c:1117
+#: builtin/grep.c:1119
msgid "option not supported with --recurse-submodules"
msgstr "opción no soportada con --recurse-submodules"
-#: builtin/grep.c:1123
+#: builtin/grep.c:1125
msgid "--cached or --untracked cannot be used with --no-index"
msgstr "--cached o --untracked no pueden ser usadas con --no-index"
-#: builtin/grep.c:1129
+#: builtin/grep.c:1131
msgid "--[no-]exclude-standard cannot be used for tracked contents"
msgstr "--[no-]exclude-standard no puede ser usada para contenido rastreado"
-#: builtin/grep.c:1137
+#: builtin/grep.c:1139
msgid "both --cached and trees are given"
msgstr "--cached y árboles han sido entregados"
@@ -13964,7 +14046,7 @@ msgstr "inconsistencia seria en inflate"
#: builtin/index-pack.c:803 builtin/index-pack.c:812
#, c-format
msgid "SHA1 COLLISION FOUND WITH %s !"
-msgstr "COLISIÓN DE TIPO SHA1 ENCONTRADA CON %s !"
+msgstr "¡COLISIÓN DE TIPO SHA1 ENCONTRADA CON %s !"
#: builtin/index-pack.c:738 builtin/pack-objects.c:157
#: builtin/pack-objects.c:217 builtin/pack-objects.c:311
@@ -14028,7 +14110,7 @@ msgstr "confusión más allá de la locura en parse_pack_objects()"
msgid "Resolving deltas"
msgstr "Resolviendo deltas"
-#: builtin/index-pack.c:1205 builtin/pack-objects.c:2497
+#: builtin/index-pack.c:1205 builtin/pack-objects.c:2481
#, c-format
msgid "unable to create thread: %s"
msgstr "no es posible crear hilo: %s"
@@ -14047,7 +14129,7 @@ msgstr[1] "completado con %d objetos locales"
#: builtin/index-pack.c:1264
#, c-format
msgid "Unexpected tail checksum for %s (disk corruption?)"
-msgstr "Tail checksum para %s inesperada (corrupción de disco?)"
+msgstr "Tail checksum para %s inesperada (¿corrupción de disco?)"
#: builtin/index-pack.c:1268
#, c-format
@@ -14093,7 +14175,7 @@ msgstr "no se puede guardar el archivo paquete"
msgid "cannot store index file"
msgstr "no se puede guardar el archivo índice"
-#: builtin/index-pack.c:1525 builtin/pack-objects.c:2736
+#: builtin/index-pack.c:1525 builtin/pack-objects.c:2716
#, c-format
msgid "bad pack.indexversion=%<PRIu32>"
msgstr "mal pack.indexversion=%<PRIu32>"
@@ -14375,74 +14457,74 @@ msgstr "Salida final: %d %s\n"
msgid "git show %s: bad file"
msgstr "git show %s: mal archivo"
-#: builtin/log.c:549 builtin/log.c:643
+#: builtin/log.c:549 builtin/log.c:644
#, c-format
msgid "could not read object %s"
msgstr "no se pudo leer objeto %s"
-#: builtin/log.c:668
+#: builtin/log.c:669
#, c-format
msgid "unknown type: %d"
msgstr "tipo desconocido: %d"
-#: builtin/log.c:791
+#: builtin/log.c:792
msgid "format.headers without value"
msgstr "formate.headers. sin valor"
-#: builtin/log.c:908
+#: builtin/log.c:909
msgid "name of output directory is too long"
msgstr "nombre del directorio de salida es muy largo"
-#: builtin/log.c:924
+#: builtin/log.c:925
#, c-format
msgid "cannot open patch file %s"
msgstr "no se puede abrir archivo patch %s"
-#: builtin/log.c:941
+#: builtin/log.c:942
msgid "need exactly one range"
msgstr "necesita exactamente un rango"
-#: builtin/log.c:951
+#: builtin/log.c:952
msgid "not a range"
msgstr "no es un rango"
-#: builtin/log.c:1074
+#: builtin/log.c:1075
msgid "cover letter needs email format"
msgstr "letras de portada necesita formato email"
-#: builtin/log.c:1080
+#: builtin/log.c:1081
msgid "failed to create cover-letter file"
msgstr "falló al crear los archivos cover-letter"
-#: builtin/log.c:1159
+#: builtin/log.c:1160
#, c-format
msgid "insane in-reply-to: %s"
msgstr "insano in-reply-to: %s"
-#: builtin/log.c:1186
+#: builtin/log.c:1187
msgid "git format-patch [<options>] [<since> | <revision-range>]"
msgstr "git format-patch [<opciones>] [<desde> | <rango-de-revisiones>]"
-#: builtin/log.c:1244
+#: builtin/log.c:1245
msgid "two output directories?"
-msgstr "dos directorios de salida?"
+msgstr "¿dos directorios de salida?"
-#: builtin/log.c:1355 builtin/log.c:2099 builtin/log.c:2101 builtin/log.c:2113
+#: builtin/log.c:1356 builtin/log.c:2116 builtin/log.c:2118 builtin/log.c:2130
#, c-format
msgid "unknown commit %s"
msgstr "commit desconocido %s"
-#: builtin/log.c:1365 builtin/replace.c:58 builtin/replace.c:207
+#: builtin/log.c:1366 builtin/replace.c:58 builtin/replace.c:207
#: builtin/replace.c:210
#, c-format
msgid "failed to resolve '%s' as a valid ref"
msgstr "falló al resolver '%s' como ref válida"
-#: builtin/log.c:1370
+#: builtin/log.c:1371
msgid "could not find exact merge base"
msgstr "no se pudo encontrar una base de fusión exacta"
-#: builtin/log.c:1374
+#: builtin/log.c:1375
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"
@@ -14454,271 +14536,271 @@ msgstr ""
"O puedes especificar un commit base mediante --base=<id-commit-base> "
"manualmente"
-#: builtin/log.c:1394
+#: builtin/log.c:1395
msgid "failed to find exact merge base"
msgstr "falló al encontrar una base de fusión exacta"
-#: builtin/log.c:1405
+#: builtin/log.c:1406
msgid "base commit should be the ancestor of revision list"
msgstr "el commit base debe ser el ancestro de la lista de revisión"
-#: builtin/log.c:1409
+#: builtin/log.c:1410
msgid "base commit shouldn't be in revision list"
msgstr "el commit base no debe estar en la lista de revisión"
-#: builtin/log.c:1462
+#: builtin/log.c:1463
msgid "cannot get patch id"
msgstr "no se puede obtener id de patch"
-#: builtin/log.c:1514
+#: builtin/log.c:1515
msgid "failed to infer range-diff ranges"
msgstr "falló al inferir rangos range-diff"
-#: builtin/log.c:1559
+#: builtin/log.c:1560
msgid "use [PATCH n/m] even with a single patch"
msgstr "use [PATCH n/m] incluso con un único parche"
-#: builtin/log.c:1562
+#: builtin/log.c:1563
msgid "use [PATCH] even with multiple patches"
msgstr "use [PATCH] incluso con múltiples parches"
-#: builtin/log.c:1566
+#: builtin/log.c:1567
msgid "print patches to standard out"
msgstr "mostrar parches en standard out"
-#: builtin/log.c:1568
+#: builtin/log.c:1569
msgid "generate a cover letter"
msgstr "generar letra de cover"
-#: builtin/log.c:1570
+#: builtin/log.c:1571
msgid "use simple number sequence for output file names"
msgstr ""
"usar una secuencia simple de números para salida de nombres de archivos"
-#: builtin/log.c:1571
+#: builtin/log.c:1572
msgid "sfx"
msgstr "sfx"
-#: builtin/log.c:1572
+#: builtin/log.c:1573
msgid "use <sfx> instead of '.patch'"
msgstr "use <sfx> en lugar de '.patch'"
-#: builtin/log.c:1574
+#: builtin/log.c:1575
msgid "start numbering patches at <n> instead of 1"
msgstr "comenzar a numerar los parches desde <n> en lugar de 1"
-#: builtin/log.c:1576
+#: builtin/log.c:1577
msgid "mark the series as Nth re-roll"
msgstr "marcar las series como Nth re-roll"
-#: builtin/log.c:1578
+#: builtin/log.c:1579
msgid "Use [RFC PATCH] instead of [PATCH]"
msgstr "Use [RFC PATCH] en lugar de [PATCH]"
-#: builtin/log.c:1581
+#: builtin/log.c:1582
msgid "Use [<prefix>] instead of [PATCH]"
msgstr "Use [<prefijo>] en lugar de [PATCH]"
-#: builtin/log.c:1584
+#: builtin/log.c:1585
msgid "store resulting files in <dir>"
msgstr "guardar archivos resultantes en <dir>"
-#: builtin/log.c:1587
+#: builtin/log.c:1588
msgid "don't strip/add [PATCH]"
msgstr "no cortar/agregar [PATCH]"
-#: builtin/log.c:1590
+#: builtin/log.c:1591
msgid "don't output binary diffs"
msgstr "no mostrar diffs binarios"
-#: builtin/log.c:1592
+#: builtin/log.c:1593
msgid "output all-zero hash in From header"
msgstr "salida como hash de todos-ceros en la cabecera From"
-#: builtin/log.c:1594
+#: builtin/log.c:1595
msgid "don't include a patch matching a commit upstream"
msgstr "no incluya un parche que coincida con un commit en upstream"
-#: builtin/log.c:1596
+#: builtin/log.c:1597
msgid "show patch format instead of default (patch + stat)"
msgstr "mostrar formato de parche en lugar del default (parche + stat)"
-#: builtin/log.c:1598
+#: builtin/log.c:1599
msgid "Messaging"
msgstr "Mensajeando"
-#: builtin/log.c:1599
+#: builtin/log.c:1600
msgid "header"
msgstr "cabezal"
-#: builtin/log.c:1600
+#: builtin/log.c:1601
msgid "add email header"
msgstr "agregar cabecera email"
-#: builtin/log.c:1601 builtin/log.c:1603
+#: builtin/log.c:1602 builtin/log.c:1604
msgid "email"
msgstr "email"
-#: builtin/log.c:1601
+#: builtin/log.c:1602
msgid "add To: header"
msgstr "agregar cabecera To:"
-#: builtin/log.c:1603
+#: builtin/log.c:1604
msgid "add Cc: header"
msgstr "agregar cabecera Cc:"
-#: builtin/log.c:1605
+#: builtin/log.c:1606
msgid "ident"
msgstr "ident"
-#: builtin/log.c:1606
+#: builtin/log.c:1607
msgid "set From address to <ident> (or committer ident if absent)"
msgstr ""
"configurar dirección From a <ident> ( o identidad de committer si está "
"ausente)"
-#: builtin/log.c:1608
+#: builtin/log.c:1609
msgid "message-id"
msgstr "id de mensaje"
-#: builtin/log.c:1609
+#: builtin/log.c:1610
msgid "make first mail a reply to <message-id>"
msgstr "hacer primer mail una respuesta a <id de mensaje>"
-#: builtin/log.c:1610 builtin/log.c:1613
+#: builtin/log.c:1611 builtin/log.c:1614
msgid "boundary"
msgstr "límite"
-#: builtin/log.c:1611
+#: builtin/log.c:1612
msgid "attach the patch"
msgstr "adjuntar el parche"
-#: builtin/log.c:1614
+#: builtin/log.c:1615
msgid "inline the patch"
msgstr "poner el parche en línea"
-#: builtin/log.c:1618
+#: builtin/log.c:1619
msgid "enable message threading, styles: shallow, deep"
msgstr "habilitar hilos de mensajes, estilos: superficial, profundo"
-#: builtin/log.c:1620
+#: builtin/log.c:1621
msgid "signature"
msgstr "firma"
-#: builtin/log.c:1621
+#: builtin/log.c:1622
msgid "add a signature"
msgstr "agregar una firma"
-#: builtin/log.c:1622
+#: builtin/log.c:1623
msgid "base-commit"
msgstr "commit-base"
-#: builtin/log.c:1623
+#: builtin/log.c:1624
msgid "add prerequisite tree info to the patch series"
msgstr ""
"agregar información de árbol de requisitos previos a la serie de parches"
-#: builtin/log.c:1625
+#: builtin/log.c:1626
msgid "add a signature from a file"
msgstr "agregar una firma de un archivo"
-#: builtin/log.c:1626
+#: builtin/log.c:1627
msgid "don't print the patch filenames"
msgstr "no mostrar los nombres de archivos de los parches"
-#: builtin/log.c:1628
+#: builtin/log.c:1629
msgid "show progress while generating patches"
msgstr "mostrar medidor de progreso mientras se generan los parches"
-#: builtin/log.c:1630
+#: builtin/log.c:1631
msgid "show changes against <rev> in cover letter or single patch"
msgstr "muestra cambios contra <rev> en cover letter o en un solo parche"
-#: builtin/log.c:1633
+#: builtin/log.c:1634
msgid "show changes against <refspec> in cover letter or single patch"
msgstr "muestra cambios contra <refspec> en cover letter o en un solo parche"
-#: builtin/log.c:1635
+#: builtin/log.c:1636
msgid "percentage by which creation is weighted"
msgstr "porcentaje por el cual la creación es pesada"
-#: builtin/log.c:1710
+#: builtin/log.c:1711
#, c-format
msgid "invalid ident line: %s"
msgstr "línea de identificación inválida: %s"
-#: builtin/log.c:1725
+#: builtin/log.c:1726
msgid "-n and -k are mutually exclusive"
msgstr "-n y -k son mutuamente exclusivas"
-#: builtin/log.c:1727
+#: builtin/log.c:1728
msgid "--subject-prefix/--rfc and -k are mutually exclusive"
msgstr "--subject-prefix/--rfc y -k son mutuamente exclusivos"
-#: builtin/log.c:1735
+#: builtin/log.c:1736
msgid "--name-only does not make sense"
msgstr "--name-only no tiene sentido"
-#: builtin/log.c:1737
+#: builtin/log.c:1738
msgid "--name-status does not make sense"
msgstr "--name-status no tiene sentido"
-#: builtin/log.c:1739
+#: builtin/log.c:1740
msgid "--check does not make sense"
msgstr "--check no tiene sentido"
-#: builtin/log.c:1771
+#: builtin/log.c:1773
msgid "standard output, or directory, which one?"
-msgstr "salida standard, o directorio, cual?"
+msgstr "¿salida standard, o directorio, cual?"
-#: builtin/log.c:1860
+#: builtin/log.c:1877
msgid "--interdiff requires --cover-letter or single patch"
msgstr "--interdiff requiere --cover-letter o un parche único"
-#: builtin/log.c:1864
+#: builtin/log.c:1881
msgid "Interdiff:"
msgstr "Interdiff:"
-#: builtin/log.c:1865
+#: builtin/log.c:1882
#, c-format
msgid "Interdiff against v%d:"
msgstr "Interdiff contra v%d:"
-#: builtin/log.c:1871
+#: builtin/log.c:1888
msgid "--creation-factor requires --range-diff"
msgstr "--creation-factor requiere --range-diff"
-#: builtin/log.c:1875
+#: builtin/log.c:1892
msgid "--range-diff requires --cover-letter or single patch"
msgstr "--range-diff requiere --cover-letter o parche único"
-#: builtin/log.c:1883
+#: builtin/log.c:1900
msgid "Range-diff:"
msgstr "Range-diff:"
-#: builtin/log.c:1884
+#: builtin/log.c:1901
#, c-format
msgid "Range-diff against v%d:"
msgstr "Range-diff contra v%d:"
-#: builtin/log.c:1895
+#: builtin/log.c:1912
#, c-format
msgid "unable to read signature file '%s'"
msgstr "no se puede leer la firma del archivo '%s'"
-#: builtin/log.c:1931
+#: builtin/log.c:1948
msgid "Generating patches"
msgstr "Generando parches"
-#: builtin/log.c:1975
+#: builtin/log.c:1992
msgid "failed to create output files"
msgstr "falló al crear los archivos de salida"
-#: builtin/log.c:2034
+#: builtin/log.c:2051
msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
msgstr "git cherry [-v] [<upstream> [<head> [<límite>]]]"
-#: builtin/log.c:2088
+#: builtin/log.c:2105
#, c-format
msgid ""
"Could not find a tracked remote branch, please specify <upstream> manually.\n"
@@ -14848,7 +14930,7 @@ msgstr ""
msgid "do not print remote URL"
msgstr "no mostrar el URL remoto"
-#: builtin/ls-remote.c:60 builtin/ls-remote.c:62 builtin/rebase.c:1464
+#: builtin/ls-remote.c:60 builtin/ls-remote.c:62 builtin/rebase.c:1488
msgid "exec"
msgstr "ejecutar"
@@ -14958,33 +15040,33 @@ msgstr "Estrategias disponibles son:"
msgid "Available custom strategies are:"
msgstr "Estrategias personalizadas disponibles son:"
-#: builtin/merge.c:244 builtin/pull.c:151
+#: builtin/merge.c:244 builtin/pull.c:152
msgid "do not show a diffstat at the end of the merge"
msgstr "no mostrar un diffstat al final de la fusión"
-#: builtin/merge.c:247 builtin/pull.c:154
+#: builtin/merge.c:247 builtin/pull.c:155
msgid "show a diffstat at the end of the merge"
msgstr "mostrar un diffstat al final de la fusión"
-#: builtin/merge.c:248 builtin/pull.c:157
+#: builtin/merge.c:248 builtin/pull.c:158
msgid "(synonym to --stat)"
msgstr "(sinónimo para --stat)"
-#: builtin/merge.c:250 builtin/pull.c:160
+#: builtin/merge.c:250 builtin/pull.c:161
msgid "add (at most <n>) entries from shortlog to merge commit message"
msgstr ""
"agregar (como máximo <n>) entradas del shortlog al mensaje del commit de "
"fusión"
-#: builtin/merge.c:253 builtin/pull.c:166
+#: builtin/merge.c:253 builtin/pull.c:167
msgid "create a single commit instead of doing a merge"
msgstr "crear un commit único en lugar de hacer una fusión"
-#: builtin/merge.c:255 builtin/pull.c:169
+#: builtin/merge.c:255 builtin/pull.c:170
msgid "perform a commit if the merge succeeds (default)"
msgstr "realizar un commit si la fusión es exitosa (default)"
-#: builtin/merge.c:257 builtin/pull.c:172
+#: builtin/merge.c:257 builtin/pull.c:173
msgid "edit message before committing"
msgstr "editar mensaje antes de realizar commit"
@@ -14992,28 +15074,28 @@ msgstr "editar mensaje antes de realizar commit"
msgid "allow fast-forward (default)"
msgstr "permitir fast-forwars (default)"
-#: builtin/merge.c:261 builtin/pull.c:179
+#: builtin/merge.c:261 builtin/pull.c:180
msgid "abort if fast-forward is not possible"
msgstr "abortar si fast-forward no es posible"
-#: builtin/merge.c:265 builtin/pull.c:182
+#: builtin/merge.c:265 builtin/pull.c:183
msgid "verify that the named commit has a valid GPG signature"
msgstr "verificar que el commit nombrado tiene una firma GPG válida"
-#: builtin/merge.c:266 builtin/notes.c:787 builtin/pull.c:186
-#: builtin/rebase.c:492 builtin/rebase.c:1477 builtin/revert.c:114
+#: builtin/merge.c:266 builtin/notes.c:787 builtin/pull.c:187
+#: builtin/rebase.c:493 builtin/rebase.c:1501 builtin/revert.c:114
msgid "strategy"
msgstr "estrategia"
-#: builtin/merge.c:267 builtin/pull.c:187
+#: builtin/merge.c:267 builtin/pull.c:188
msgid "merge strategy to use"
msgstr "estrategia de fusión para usar"
-#: builtin/merge.c:268 builtin/pull.c:190
+#: builtin/merge.c:268 builtin/pull.c:191
msgid "option=value"
msgstr "opción=valor"
-#: builtin/merge.c:269 builtin/pull.c:191
+#: builtin/merge.c:269 builtin/pull.c:192
msgid "option for selected merge strategy"
msgstr "opción para la estrategia de fusión seleccionada"
@@ -15033,13 +15115,13 @@ msgstr "--abort pero deja el índice y el árbol de trabajo solos"
msgid "continue the current in-progress merge"
msgstr "continuar la fusión en progreso actual"
-#: builtin/merge.c:284 builtin/pull.c:198
+#: builtin/merge.c:284 builtin/pull.c:199
msgid "allow merging unrelated histories"
msgstr "permitir fusionar historias no relacionadas"
#: builtin/merge.c:290
-msgid "verify commit-msg hook"
-msgstr "verificar el hook commit-msg"
+msgid "bypass pre-merge-commit and commit-msg hooks"
+msgstr "hacer un bypass a hooks pre-merge-commit y commit-msg"
#: builtin/merge.c:307
msgid "could not run stash."
@@ -15082,33 +15164,33 @@ msgstr "'%s' no apunta a ningún commit"
msgid "Bad branch.%s.mergeoptions string: %s"
msgstr "Mal string branch.%s.mergeoptions: %s"
-#: builtin/merge.c:708
+#: builtin/merge.c:705
msgid "Not handling anything other than two heads merge."
msgstr "No manejando nada más que fusión de dos heads."
-#: builtin/merge.c:722
+#: builtin/merge.c:719
#, c-format
msgid "Unknown option for merge-recursive: -X%s"
msgstr "Opción desconocida para merge-recursive: -X%s"
-#: builtin/merge.c:737
+#: builtin/merge.c:734
#, c-format
msgid "unable to write %s"
msgstr "no es posible escribir %s"
-#: builtin/merge.c:789
+#: builtin/merge.c:786
#, c-format
msgid "Could not read from '%s'"
msgstr "No se puedo leer de '%s'"
-#: builtin/merge.c:798
+#: builtin/merge.c:795
#, c-format
msgid "Not committing merge; use 'git commit' to complete the merge.\n"
msgstr ""
"No se realiza commit de la fusión; use 'git commit' para completar la "
"fusión.\n"
-#: builtin/merge.c:804
+#: builtin/merge.c:801
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"
@@ -15120,11 +15202,11 @@ msgstr ""
"tópico.\n"
"\n"
-#: builtin/merge.c:809
+#: builtin/merge.c:806
msgid "An empty message aborts the commit.\n"
msgstr "Un mensaje vacío aborta el commit.\n"
-#: builtin/merge.c:812
+#: builtin/merge.c:809
#, c-format
msgid ""
"Lines starting with '%c' will be ignored, and an empty message aborts\n"
@@ -15133,74 +15215,74 @@ msgstr ""
"Líneas comenzando con '%c' serán ignoradas, y un mensaje vacío aborta\n"
" el commit.\n"
-#: builtin/merge.c:853
+#: builtin/merge.c:862
msgid "Empty commit message."
msgstr "Mensaje de commit vacío."
-#: builtin/merge.c:872
+#: builtin/merge.c:877
#, c-format
msgid "Wonderful.\n"
msgstr "Maravilloso.\n"
-#: builtin/merge.c:933
+#: builtin/merge.c:938
#, c-format
msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
msgstr ""
"Fusión automática falló; arregle los conflictos y luego realice un commit "
"con el resultado.\n"
-#: builtin/merge.c:972
+#: builtin/merge.c:977
msgid "No current branch."
msgstr "No rama actual."
-#: builtin/merge.c:974
+#: builtin/merge.c:979
msgid "No remote for the current branch."
msgstr "No hay remoto para la rama actual."
-#: builtin/merge.c:976
+#: builtin/merge.c:981
msgid "No default upstream defined for the current branch."
msgstr "Por defecto, no hay un upstream definido para la rama actual."
-#: builtin/merge.c:981
+#: builtin/merge.c:986
#, c-format
msgid "No remote-tracking branch for %s from %s"
msgstr "No hay rama de rastreo remoto para %s de %s"
-#: builtin/merge.c:1038
+#: builtin/merge.c:1043
#, c-format
msgid "Bad value '%s' in environment '%s'"
msgstr "Valor erróneo '%s' en el entorno '%s'"
-#: builtin/merge.c:1141
+#: builtin/merge.c:1146
#, c-format
msgid "not something we can merge in %s: %s"
msgstr "nada que podamos fusionar en %s: %s"
-#: builtin/merge.c:1175
+#: builtin/merge.c:1180
msgid "not something we can merge"
msgstr "nada que podamos fusionar"
-#: builtin/merge.c:1278
+#: builtin/merge.c:1283
msgid "--abort expects no arguments"
msgstr "--abort no espera argumentos"
-#: builtin/merge.c:1282
+#: builtin/merge.c:1287
msgid "There is no merge to abort (MERGE_HEAD missing)."
msgstr "No hay una fusión para abortar (falta MERGE_HEAD)"
-#: builtin/merge.c:1291
+#: builtin/merge.c:1296
msgid "--quit expects no arguments"
msgstr "--quit no espera argumentos"
-#: builtin/merge.c:1304
+#: builtin/merge.c:1309
msgid "--continue expects no arguments"
msgstr "--continue no espera argumentos"
-#: builtin/merge.c:1308
+#: builtin/merge.c:1313
msgid "There is no merge in progress (MERGE_HEAD missing)."
msgstr "No hay fusión en progreso (falta MERGE_HEAD)."
-#: builtin/merge.c:1324
+#: builtin/merge.c:1329
msgid ""
"You have not concluded your merge (MERGE_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -15208,7 +15290,7 @@ msgstr ""
"No has concluido la fusión (existe MERGE_HEAD).\n"
"Por favor, realiza un commit con los cambios antes de fusionar."
-#: builtin/merge.c:1331
+#: builtin/merge.c:1336
msgid ""
"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -15216,97 +15298,97 @@ msgstr ""
"No has concluido el cherry-pick (existe CHERRY_PICK_HEAD).\n"
"Por favor, realiza un commit con los cambios antes de fusionar."
-#: builtin/merge.c:1334
+#: builtin/merge.c:1339
msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
msgstr "No has concluido el cherry-pick (existe CHERRY_PICK_HEAD)."
-#: builtin/merge.c:1348
+#: builtin/merge.c:1353
msgid "You cannot combine --squash with --no-ff."
msgstr "No se puede combinar --squash con --no-ff."
-#: builtin/merge.c:1350
+#: builtin/merge.c:1355
msgid "You cannot combine --squash with --commit."
msgstr "No se puede combinar --squash con --commit."
-#: builtin/merge.c:1366
+#: builtin/merge.c:1371
msgid "No commit specified and merge.defaultToUpstream not set."
msgstr ""
"No hay commit especificado y merge.defaultToUpstream no está configurado."
-#: builtin/merge.c:1383
+#: builtin/merge.c:1388
msgid "Squash commit into empty head not supported yet"
msgstr "Commit aplastado dentro de un head vacío no es soportado todavía"
-#: builtin/merge.c:1385
+#: builtin/merge.c:1390
msgid "Non-fast-forward commit does not make sense into an empty head"
msgstr "Commit no fast-forward no tiene sentido dentro de un head vacío"
-#: builtin/merge.c:1390
+#: builtin/merge.c:1395
#, c-format
msgid "%s - not something we can merge"
msgstr "%s - nada que podamos fusionar"
-#: builtin/merge.c:1392
+#: builtin/merge.c:1397
msgid "Can merge only exactly one commit into empty head"
msgstr "Solo se puede fusionar exactamente un commit en un head vacío"
-#: builtin/merge.c:1471
+#: builtin/merge.c:1476
msgid "refusing to merge unrelated histories"
msgstr "rehusando fusionar historias no relacionadas"
-#: builtin/merge.c:1480
+#: builtin/merge.c:1485
msgid "Already up to date."
msgstr "Ya está actualizado."
-#: builtin/merge.c:1490
+#: builtin/merge.c:1495
#, c-format
msgid "Updating %s..%s\n"
msgstr "Actualizando %s..%s\n"
-#: builtin/merge.c:1532
+#: builtin/merge.c:1537
#, c-format
msgid "Trying really trivial in-index merge...\n"
msgstr "Intentando fusión en índice realmente trivial...\n"
-#: builtin/merge.c:1539
+#: builtin/merge.c:1544
#, c-format
msgid "Nope.\n"
msgstr "Nop.\n"
-#: builtin/merge.c:1564
+#: builtin/merge.c:1569
msgid "Already up to date. Yeeah!"
msgstr "Ya está actualizado. ¡Oh, yeaahh!"
-#: builtin/merge.c:1570
+#: builtin/merge.c:1575
msgid "Not possible to fast-forward, aborting."
msgstr "No es posible hacer fast-forward, abortando."
-#: builtin/merge.c:1593 builtin/merge.c:1658
+#: builtin/merge.c:1598 builtin/merge.c:1663
#, c-format
msgid "Rewinding the tree to pristine...\n"
msgstr "Rebobinando el árbol a original...\n"
-#: builtin/merge.c:1597
+#: builtin/merge.c:1602
#, c-format
msgid "Trying merge strategy %s...\n"
msgstr "Intentando estrategia de fusión %s...\n"
-#: builtin/merge.c:1649
+#: builtin/merge.c:1654
#, c-format
msgid "No merge strategy handled the merge.\n"
msgstr "Ninguna estrategia de fusión manejó la fusión.\n"
-#: builtin/merge.c:1651
+#: builtin/merge.c:1656
#, c-format
msgid "Merge with strategy %s failed.\n"
msgstr "Fusionar con estrategia %s falló.\n"
-#: builtin/merge.c:1660
+#: builtin/merge.c:1665
#, c-format
msgid "Using the %s to prepare resolving by hand.\n"
msgstr "Usando el %s para preparar resolución a mano.\n"
-#: builtin/merge.c:1672
+#: builtin/merge.c:1677
#, c-format
msgid "Automatic merge went well; stopped before committing as requested\n"
msgstr ""
@@ -15346,7 +15428,7 @@ msgstr "listar revs no alcanzables desde otros"
#: builtin/merge-base.c:159
msgid "is the first one ancestor of the other?"
-msgstr "es el primer ancestro del otro?"
+msgstr "¿es el primer ancestro del otro?"
#: builtin/merge-base.c:161
msgid "find where <commit> forked from reflog of <ref>"
@@ -15392,33 +15474,33 @@ msgstr "no advertir sobre conflictos"
msgid "set labels for file1/orig-file/file2"
msgstr "configurar labels para archivo1/orig-archivo/archivo2"
-#: builtin/merge-recursive.c:46
+#: builtin/merge-recursive.c:47
#, c-format
msgid "unknown option %s"
msgstr "opción %s desconocida"
-#: builtin/merge-recursive.c:52
+#: builtin/merge-recursive.c:53
#, c-format
msgid "could not parse object '%s'"
msgstr "no se pudo analizar el objeto '%s'"
-#: builtin/merge-recursive.c:56
+#: builtin/merge-recursive.c:57
#, c-format
msgid "cannot handle more than %d base. Ignoring %s."
msgid_plural "cannot handle more than %d bases. Ignoring %s."
msgstr[0] "no se puede manejar más de %d base. Ignorando %s."
msgstr[1] "no se puede manejar más de %d bases. Ignorando %s."
-#: builtin/merge-recursive.c:64
+#: builtin/merge-recursive.c:65
msgid "not handling anything other than two heads merge."
msgstr "no manejando nada distinto a fusiones de dos heads."
-#: builtin/merge-recursive.c:70 builtin/merge-recursive.c:72
+#: builtin/merge-recursive.c:74 builtin/merge-recursive.c:76
#, c-format
msgid "could not resolve ref '%s'"
msgstr "no se pudo resolver ref '%s'"
-#: builtin/merge-recursive.c:78
+#: builtin/merge-recursive.c:82
#, c-format
msgid "Merging %s with %s\n"
msgstr "Fusionando %s con %s\n"
@@ -15479,7 +15561,7 @@ msgstr "git mv [<opciones>] <fuente>... <destino>"
#: builtin/mv.c:83
#, c-format
msgid "Directory %s is in index and no submodule?"
-msgstr "Directorio %s está en el índice y no hay submódulo?"
+msgstr "¿Directorio %s está en el índice y no hay submódulo?"
#: builtin/mv.c:85
msgid "Please stage your changes to .gitmodules or stash them to proceed"
@@ -15561,52 +15643,52 @@ msgstr "%s, fuente=%s, destino=%s"
msgid "Renaming %s to %s\n"
msgstr "Renombrando %s a %s\n"
-#: builtin/mv.c:277 builtin/remote.c:717 builtin/repack.c:510
+#: builtin/mv.c:277 builtin/remote.c:717 builtin/repack.c:511
#, c-format
msgid "renaming '%s' failed"
msgstr "renombrando '%s' falló"
-#: builtin/name-rev.c:352
+#: builtin/name-rev.c:356
msgid "git name-rev [<options>] <commit>..."
msgstr "git name-rev [<opciones>] <commit>..."
-#: builtin/name-rev.c:353
+#: builtin/name-rev.c:357
msgid "git name-rev [<options>] --all"
msgstr "git name-rev [<opciones>] --all"
-#: builtin/name-rev.c:354
+#: builtin/name-rev.c:358
msgid "git name-rev [<options>] --stdin"
msgstr "git name-rev [<opciones>] --stdin"
-#: builtin/name-rev.c:411
+#: builtin/name-rev.c:415
msgid "print only names (no SHA-1)"
msgstr "imprimir sólo nombres (sin SHA-1)"
-#: builtin/name-rev.c:412
+#: builtin/name-rev.c:416
msgid "only use tags to name the commits"
msgstr "sólo usar tags para nombrar commits"
-#: builtin/name-rev.c:414
+#: builtin/name-rev.c:418
msgid "only use refs matching <pattern>"
msgstr "solo usar refs que concuerden con <patrón>"
-#: builtin/name-rev.c:416
+#: builtin/name-rev.c:420
msgid "ignore refs matching <pattern>"
msgstr "ignorar refs que concuerden con <patrón>"
-#: builtin/name-rev.c:418
+#: builtin/name-rev.c:422
msgid "list all commits reachable from all refs"
msgstr "listar todos los commits alcanzables desde todas las referencias"
-#: builtin/name-rev.c:419
+#: builtin/name-rev.c:423
msgid "read from stdin"
msgstr "leer desde stdin"
-#: builtin/name-rev.c:420
+#: builtin/name-rev.c:424
msgid "allow to print `undefined` names (default)"
msgstr "permitir imprimir nombres `undefined` (predeterminado)"
-#: builtin/name-rev.c:426
+#: builtin/name-rev.c:430
msgid "dereference tags in the input (internal use)"
msgstr "desreferenciar tags en la entrada (uso interno)"
@@ -16006,7 +16088,7 @@ msgstr "intentar eliminar una nota no existente no es un error"
msgid "read object names from the standard input"
msgstr "leer nombres de objetos de standard input"
-#: builtin/notes.c:954 builtin/prune.c:130 builtin/worktree.c:165
+#: builtin/notes.c:954 builtin/prune.c:130 builtin/worktree.c:164
msgid "do not remove, show only"
msgstr "no eliminar, solo mostrar"
@@ -16022,7 +16104,7 @@ msgstr "referencia-de-notas"
msgid "use notes from <notes-ref>"
msgstr "usar notas desde <referencia-de-notas>"
-#: builtin/notes.c:1034 builtin/stash.c:1598
+#: builtin/notes.c:1034 builtin/stash.c:1607
#, c-format
msgid "unknown subcommand: %s"
msgstr "subcomando desconocido: %s"
@@ -16099,71 +16181,71 @@ msgstr "falló al iniciar %s"
msgid "wrote %<PRIu32> objects while expecting %<PRIu32>"
msgstr "%<PRIu32> objetos escritos mientras se esperaban %<PRIu32>"
-#: builtin/pack-objects.c:1166
+#: builtin/pack-objects.c:1164
msgid "disabling bitmap writing, as some objects are not being packed"
msgstr ""
"deshabilitando escritura bitmap, ya que algunos objetos no están siendo "
"empaquetados"
-#: builtin/pack-objects.c:1597
+#: builtin/pack-objects.c:1592
#, c-format
msgid "delta base offset overflow in pack for %s"
msgstr "overflow de offset en la base de delta en paquete para %s"
-#: builtin/pack-objects.c:1606
+#: builtin/pack-objects.c:1601
#, c-format
msgid "delta base offset out of bound for %s"
msgstr "outbound de offset en la base de delta para %s"
-#: builtin/pack-objects.c:1875
+#: builtin/pack-objects.c:1870
msgid "Counting objects"
msgstr "Contando objetos"
-#: builtin/pack-objects.c:2005
+#: builtin/pack-objects.c:2000
#, c-format
msgid "unable to get size of %s"
msgstr "no se pudo obtener el tamaño de %s"
-#: builtin/pack-objects.c:2020
+#: builtin/pack-objects.c:2015
#, c-format
msgid "unable to parse object header of %s"
msgstr "incapaz de analizar header del objeto %s"
-#: builtin/pack-objects.c:2090 builtin/pack-objects.c:2106
-#: builtin/pack-objects.c:2116
+#: builtin/pack-objects.c:2085 builtin/pack-objects.c:2101
+#: builtin/pack-objects.c:2111
#, c-format
msgid "object %s cannot be read"
msgstr "objeto %s no puede ser leído"
-#: builtin/pack-objects.c:2093 builtin/pack-objects.c:2120
+#: builtin/pack-objects.c:2088 builtin/pack-objects.c:2115
#, c-format
msgid "object %s inconsistent object length (%<PRIuMAX> vs %<PRIuMAX>)"
msgstr ""
"objeto %s inconsistente con el largo del objeto (%<PRIuMAX> vs %<PRIuMAX>)"
-#: builtin/pack-objects.c:2130
+#: builtin/pack-objects.c:2125
msgid "suboptimal pack - out of memory"
msgstr "suboptimal pack - fuera de memoria"
-#: builtin/pack-objects.c:2456
+#: builtin/pack-objects.c:2440
#, c-format
msgid "Delta compression using up to %d threads"
msgstr "Compresión delta usando hasta %d hilos"
-#: builtin/pack-objects.c:2588
+#: builtin/pack-objects.c:2572
#, c-format
msgid "unable to pack objects reachable from tag %s"
msgstr "no es posible empaquetar objetos alcanzables desde tag %s"
-#: builtin/pack-objects.c:2675
+#: builtin/pack-objects.c:2659
msgid "Compressing objects"
msgstr "Comprimiendo objetos"
-#: builtin/pack-objects.c:2681
+#: builtin/pack-objects.c:2665
msgid "inconsistency with delta count"
msgstr "inconsistencia con la cuenta de delta"
-#: builtin/pack-objects.c:2762
+#: builtin/pack-objects.c:2742
#, c-format
msgid ""
"expected edge object ID, got garbage:\n"
@@ -16172,7 +16254,7 @@ msgstr ""
"se espseraba ID de objeto al borde, se obtuvo basura:\n"
"%s"
-#: builtin/pack-objects.c:2768
+#: builtin/pack-objects.c:2748
#, c-format
msgid ""
"expected object ID, got garbage:\n"
@@ -16181,246 +16263,246 @@ msgstr ""
"se esperaba ID de objeto, se obtuvo basuta:\n"
"%s"
-#: builtin/pack-objects.c:2866
+#: builtin/pack-objects.c:2846
msgid "invalid value for --missing"
msgstr "valor inválido para --missing"
-#: builtin/pack-objects.c:2925 builtin/pack-objects.c:3033
+#: builtin/pack-objects.c:2905 builtin/pack-objects.c:3013
msgid "cannot open pack index"
msgstr "no se puede abrir índice de paquetes"
-#: builtin/pack-objects.c:2956
+#: builtin/pack-objects.c:2936
#, c-format
msgid "loose object at %s could not be examined"
msgstr "objeto perdido en %s no pudo ser examinado"
-#: builtin/pack-objects.c:3041
+#: builtin/pack-objects.c:3021
msgid "unable to force loose object"
msgstr "incapaz de forzar un objeto perdido"
-#: builtin/pack-objects.c:3133
+#: builtin/pack-objects.c:3113
#, c-format
msgid "not a rev '%s'"
msgstr "no es una rev '%s'"
-#: builtin/pack-objects.c:3136
+#: builtin/pack-objects.c:3116
#, c-format
msgid "bad revision '%s'"
msgstr "mala revisión '%s'"
-#: builtin/pack-objects.c:3161
+#: builtin/pack-objects.c:3141
msgid "unable to add recent objects"
msgstr "incapaz de añadir objetos recientes"
-#: builtin/pack-objects.c:3214
+#: builtin/pack-objects.c:3194
#, c-format
msgid "unsupported index version %s"
msgstr "versión de índice no soportada %s"
-#: builtin/pack-objects.c:3218
+#: builtin/pack-objects.c:3198
#, c-format
msgid "bad index version '%s'"
msgstr "mala versión del índice '%s'"
-#: builtin/pack-objects.c:3248
+#: builtin/pack-objects.c:3228
msgid "do not show progress meter"
msgstr "no mostrar medidor de progreso"
-#: builtin/pack-objects.c:3250
+#: builtin/pack-objects.c:3230
msgid "show progress meter"
msgstr "mostrar medidor de progreso"
-#: builtin/pack-objects.c:3252
+#: builtin/pack-objects.c:3232
msgid "show progress meter during object writing phase"
msgstr "mostrar medidor de progreso durante la fase de escritura de objeto"
-#: builtin/pack-objects.c:3255
+#: builtin/pack-objects.c:3235
msgid "similar to --all-progress when progress meter is shown"
msgstr "similar a --all-progress cuando medidor de progreso es mostrado"
-#: builtin/pack-objects.c:3256
+#: builtin/pack-objects.c:3236
msgid "<version>[,<offset>]"
msgstr "<versión>[,<offset>]"
-#: builtin/pack-objects.c:3257
+#: builtin/pack-objects.c:3237
msgid "write the pack index file in the specified idx format version"
msgstr ""
"escribir el índice de paquete en la versión de formato idx especificado"
-#: builtin/pack-objects.c:3260
+#: builtin/pack-objects.c:3240
msgid "maximum size of each output pack file"
msgstr "tamaño máximo de cada paquete resultante"
-#: builtin/pack-objects.c:3262
+#: builtin/pack-objects.c:3242
msgid "ignore borrowed objects from alternate object store"
msgstr "ignorar objetos prestados de otros almacenes de objetos"
-#: builtin/pack-objects.c:3264
+#: builtin/pack-objects.c:3244
msgid "ignore packed objects"
msgstr "ignorar objetos paquete"
-#: builtin/pack-objects.c:3266
+#: builtin/pack-objects.c:3246
msgid "limit pack window by objects"
msgstr "limitar ventana de paquete por objetos"
-#: builtin/pack-objects.c:3268
+#: builtin/pack-objects.c:3248
msgid "limit pack window by memory in addition to object limit"
msgstr "limitar ventana de paquete por memoria en adición a límite de objetos"
-#: builtin/pack-objects.c:3270
+#: builtin/pack-objects.c:3250
msgid "maximum length of delta chain allowed in the resulting pack"
msgstr "longitud máxima de cadena delta permitida en el paquete resultante"
-#: builtin/pack-objects.c:3272
+#: builtin/pack-objects.c:3252
msgid "reuse existing deltas"
msgstr "reusar deltas existentes"
-#: builtin/pack-objects.c:3274
+#: builtin/pack-objects.c:3254
msgid "reuse existing objects"
msgstr "reutilizar objetos existentes"
-#: builtin/pack-objects.c:3276
+#: builtin/pack-objects.c:3256
msgid "use OFS_DELTA objects"
msgstr "usar objetos OFS_DELTA"
-#: builtin/pack-objects.c:3278
+#: builtin/pack-objects.c:3258
msgid "use threads when searching for best delta matches"
msgstr "usar hilos cuando se busque para mejores concordancias de delta"
-#: builtin/pack-objects.c:3280
+#: builtin/pack-objects.c:3260
msgid "do not create an empty pack output"
msgstr "no crear un paquete resultante vacío"
-#: builtin/pack-objects.c:3282
+#: builtin/pack-objects.c:3262
msgid "read revision arguments from standard input"
msgstr "leer argumentos de revisión de standard input"
-#: builtin/pack-objects.c:3284
+#: builtin/pack-objects.c:3264
msgid "limit the objects to those that are not yet packed"
msgstr "limitar los objetos a aquellos que no han sido empaquetados todavía"
-#: builtin/pack-objects.c:3287
+#: builtin/pack-objects.c:3267
msgid "include objects reachable from any reference"
msgstr "incluir objetos alcanzables por cualquier referencia"
-#: builtin/pack-objects.c:3290
+#: builtin/pack-objects.c:3270
msgid "include objects referred by reflog entries"
msgstr "incluir objetos referidos por entradas de reflog"
-#: builtin/pack-objects.c:3293
+#: builtin/pack-objects.c:3273
msgid "include objects referred to by the index"
msgstr "incluir objetos referidos por el índice"
-#: builtin/pack-objects.c:3296
+#: builtin/pack-objects.c:3276
msgid "output pack to stdout"
msgstr "mostrar paquete en stdout"
-#: builtin/pack-objects.c:3298
+#: builtin/pack-objects.c:3278
msgid "include tag objects that refer to objects to be packed"
msgstr "incluir objetos tag que refieren a objetos a ser empaquetados"
-#: builtin/pack-objects.c:3300
+#: builtin/pack-objects.c:3280
msgid "keep unreachable objects"
msgstr "mantener objetos inalcanzables"
-#: builtin/pack-objects.c:3302
+#: builtin/pack-objects.c:3282
msgid "pack loose unreachable objects"
msgstr "empaquetar objetos sueltos inalcanzables"
-#: builtin/pack-objects.c:3304
+#: builtin/pack-objects.c:3284
msgid "unpack unreachable objects newer than <time>"
msgstr "desempaquetar objetos inalcanzables más nuevos que <tiempo>"
-#: builtin/pack-objects.c:3307
+#: builtin/pack-objects.c:3287
msgid "use the sparse reachability algorithm"
msgstr "usar el algoritmo sparse reachability"
-#: builtin/pack-objects.c:3309
+#: builtin/pack-objects.c:3289
msgid "create thin packs"
msgstr "crear paquetes delgados"
-#: builtin/pack-objects.c:3311
+#: builtin/pack-objects.c:3291
msgid "create packs suitable for shallow fetches"
msgstr "crear paquetes adecuados para fetches superficiales"
-#: builtin/pack-objects.c:3313
+#: builtin/pack-objects.c:3293
msgid "ignore packs that have companion .keep file"
msgstr "ignorar paquetes que tienen un archivo .keep acompañante"
-#: builtin/pack-objects.c:3315
+#: builtin/pack-objects.c:3295
msgid "ignore this pack"
msgstr "ignorar este paquete"
-#: builtin/pack-objects.c:3317
+#: builtin/pack-objects.c:3297
msgid "pack compression level"
msgstr "nivel de compresión del paquete"
-#: builtin/pack-objects.c:3319
+#: builtin/pack-objects.c:3299
msgid "do not hide commits by grafts"
msgstr "no ocultar commits por injertos"
-#: builtin/pack-objects.c:3321
+#: builtin/pack-objects.c:3301
msgid "use a bitmap index if available to speed up counting objects"
msgstr ""
"usar un índice bitmap si está disponible para acelerar la cuenta de objetos"
-#: builtin/pack-objects.c:3323
+#: builtin/pack-objects.c:3303
msgid "write a bitmap index together with the pack index"
msgstr "escribir un índice de bitmap junto al índice de paquete"
-#: builtin/pack-objects.c:3327
+#: builtin/pack-objects.c:3307
msgid "write a bitmap index if possible"
msgstr "escribir un índice de bitmap si es posible"
-#: builtin/pack-objects.c:3331
+#: builtin/pack-objects.c:3311
msgid "handling for missing objects"
msgstr "manejo de objetos perdidos"
-#: builtin/pack-objects.c:3334
+#: builtin/pack-objects.c:3314
msgid "do not pack objects in promisor packfiles"
msgstr "no se puede empaquetar objetos en packfiles promisores"
-#: builtin/pack-objects.c:3336
+#: builtin/pack-objects.c:3316
msgid "respect islands during delta compression"
msgstr "respetar islas durante la compresión delta"
-#: builtin/pack-objects.c:3361
+#: builtin/pack-objects.c:3345
#, c-format
msgid "delta chain depth %d is too deep, forcing %d"
msgstr "profundidad de cadena de delta %d es muy profunda, forzando %d"
-#: builtin/pack-objects.c:3366
+#: builtin/pack-objects.c:3350
#, c-format
msgid "pack.deltaCacheLimit is too high, forcing %d"
msgstr "pack.deltaCacheLimit es muy grande, forzando %d"
-#: builtin/pack-objects.c:3420
+#: builtin/pack-objects.c:3404
msgid "--max-pack-size cannot be used to build a pack for transfer"
msgstr ""
"--max-pack-size no puede ser usado para construir un paquete para "
"transferencia"
-#: builtin/pack-objects.c:3422
+#: builtin/pack-objects.c:3406
msgid "minimum pack size limit is 1 MiB"
msgstr "tamaño mínimo del paquete es 1 MiB"
-#: builtin/pack-objects.c:3427
+#: builtin/pack-objects.c:3411
msgid "--thin cannot be used to build an indexable pack"
msgstr "--thin no puede ser usado para construir un paquete indexable"
-#: builtin/pack-objects.c:3430
+#: builtin/pack-objects.c:3414
msgid "--keep-unreachable and --unpack-unreachable are incompatible"
msgstr "--keep-unreachable y --unpack-unreachable son incompatibles"
-#: builtin/pack-objects.c:3436
+#: builtin/pack-objects.c:3420
msgid "cannot use --filter without --stdout"
msgstr "no se puede usar--filter sin --stdout"
-#: builtin/pack-objects.c:3497
+#: builtin/pack-objects.c:3481
msgid "Enumerating objects"
msgstr "Enumerando objetos"
-#: builtin/pack-objects.c:3527
+#: builtin/pack-objects.c:3511
#, c-format
msgid "Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>)"
msgstr "Total %<PRIu32> (delta %<PRIu32>), reusado %<PRIu32> (delta %<PRIu32>)"
@@ -16475,56 +16557,56 @@ msgid "git pull [<options>] [<repository> [<refspec>...]]"
msgstr ""
"git pull [<opciones>] [<repositorio> [<especificación-de-referencia>...]]"
-#: builtin/pull.c:141
+#: builtin/pull.c:142
msgid "control for recursive fetching of submodules"
msgstr "control de fetch recursivo en submódulos"
-#: builtin/pull.c:145
+#: builtin/pull.c:146
msgid "Options related to merging"
msgstr "Opciones relacionadas a fusión"
-#: builtin/pull.c:148
+#: builtin/pull.c:149
msgid "incorporate changes by rebasing rather than merging"
msgstr "incorporar cambios por rebase en lugar de fusión"
-#: builtin/pull.c:176 builtin/rebase.c:447 builtin/revert.c:126
+#: builtin/pull.c:177 builtin/rebase.c:448 builtin/revert.c:126
msgid "allow fast-forward"
msgstr "permitir fast-forward"
-#: builtin/pull.c:185
+#: builtin/pull.c:186
msgid "automatically stash/stash pop before and after rebase"
msgstr "ejecutar automáticamente stash/stash pop antes y después de rebase"
-#: builtin/pull.c:201
+#: builtin/pull.c:202
msgid "Options related to fetching"
msgstr "Opciones relacionadas a fetch"
-#: builtin/pull.c:211
+#: builtin/pull.c:212
msgid "force overwrite of local branch"
msgstr "forzar sobrescritura de la rama local"
-#: builtin/pull.c:219
+#: builtin/pull.c:220
msgid "number of submodules pulled in parallel"
msgstr "número de submódulos que realizan pull en paralelo"
-#: builtin/pull.c:316
+#: builtin/pull.c:320
#, c-format
msgid "Invalid value for pull.ff: %s"
msgstr "Valor inválido para pull.ff: %s"
-#: builtin/pull.c:433
+#: builtin/pull.c:437
msgid ""
"There is no candidate for rebasing against among the refs that you just "
"fetched."
msgstr "No hay candidato para rebasar entre las refs que has bajado con fetch."
-#: builtin/pull.c:435
+#: builtin/pull.c:439
msgid ""
"There are no candidates for merging among the refs that you just fetched."
msgstr ""
"No hay candidatos para fusionar entre las refs que has bajado con fetch."
-#: builtin/pull.c:436
+#: builtin/pull.c:440
msgid ""
"Generally this means that you provided a wildcard refspec which had no\n"
"matches on the remote end."
@@ -16533,7 +16615,7 @@ msgstr ""
"tiene\n"
"concordancia en el final remoto."
-#: builtin/pull.c:439
+#: builtin/pull.c:443
#, c-format
msgid ""
"You asked to pull from the remote '%s', but did not specify\n"
@@ -16544,44 +16626,44 @@ msgstr ""
"una rama. Porque este no es el remoto configurado por default\n"
"para tu rama actual, tienes que especificar una rama en la línea de comando."
-#: builtin/pull.c:444 builtin/rebase.c:1326 git-parse-remote.sh:73
+#: builtin/pull.c:448 builtin/rebase.c:1347 git-parse-remote.sh:73
msgid "You are not currently on a branch."
msgstr "No te encuentras actualmente en la rama."
-#: builtin/pull.c:446 builtin/pull.c:461 git-parse-remote.sh:79
+#: builtin/pull.c:450 builtin/pull.c:465 git-parse-remote.sh:79
msgid "Please specify which branch you want to rebase against."
msgstr "Por favor especifica a qué rama quieres rebasar."
-#: builtin/pull.c:448 builtin/pull.c:463 git-parse-remote.sh:82
+#: builtin/pull.c:452 builtin/pull.c:467 git-parse-remote.sh:82
msgid "Please specify which branch you want to merge with."
msgstr "Por favor especifica a qué rama quieres fusionar."
-#: builtin/pull.c:449 builtin/pull.c:464
+#: builtin/pull.c:453 builtin/pull.c:468
msgid "See git-pull(1) for details."
msgstr "Ver git-pull(1) para detalles."
-#: builtin/pull.c:451 builtin/pull.c:457 builtin/pull.c:466
-#: builtin/rebase.c:1332 git-parse-remote.sh:64
+#: builtin/pull.c:455 builtin/pull.c:461 builtin/pull.c:470
+#: builtin/rebase.c:1353 git-parse-remote.sh:64
msgid "<remote>"
msgstr "<remoto>"
-#: builtin/pull.c:451 builtin/pull.c:466 builtin/pull.c:471
+#: builtin/pull.c:455 builtin/pull.c:470 builtin/pull.c:475
#: git-parse-remote.sh:65
msgid "<branch>"
msgstr "<rama>"
-#: builtin/pull.c:459 builtin/rebase.c:1324 git-parse-remote.sh:75
+#: builtin/pull.c:463 builtin/rebase.c:1345 git-parse-remote.sh:75
msgid "There is no tracking information for the current branch."
msgstr "No hay información de rastreo para la rama actual."
-#: builtin/pull.c:468 git-parse-remote.sh:95
+#: builtin/pull.c:472 git-parse-remote.sh:95
msgid ""
"If you wish to set tracking information for this branch you can do so with:"
msgstr ""
"Si deseas configurar el rastreo de información para esta rama, puedes "
"hacerlo con:"
-#: builtin/pull.c:473
+#: builtin/pull.c:477
#, c-format
msgid ""
"Your configuration specifies to merge with the ref '%s'\n"
@@ -16590,32 +16672,32 @@ msgstr ""
"Tu configuración especifica fusionar con la ref '%s'\n"
"de tu remoto, pero no se pudo hacer fetch a esa ref."
-#: builtin/pull.c:581
+#: builtin/pull.c:587
#, c-format
msgid "unable to access commit %s"
msgstr "no es posible acceder al commit %s"
-#: builtin/pull.c:861
+#: builtin/pull.c:867
msgid "ignoring --verify-signatures for rebase"
msgstr "ignorando --verify-signatures para rebase"
-#: builtin/pull.c:916
+#: builtin/pull.c:922
msgid "--[no-]autostash option is only valid with --rebase."
msgstr "La opción --[no-]autostash sólo es válida con --rebase."
-#: builtin/pull.c:924
+#: builtin/pull.c:930
msgid "Updating an unborn branch with changes added to the index."
msgstr "Actualizando una rama no nata con cambios agregados al índice."
-#: builtin/pull.c:928
+#: builtin/pull.c:934
msgid "pull with rebase"
msgstr "pull con rebase"
-#: builtin/pull.c:929
+#: builtin/pull.c:935
msgid "please commit or stash them."
msgstr "por favor realiza un commit o un stash con ellos."
-#: builtin/pull.c:954
+#: builtin/pull.c:960
#, c-format
msgid ""
"fetch updated the current branch head.\n"
@@ -16626,7 +16708,7 @@ msgstr ""
"realizando fast-forward al árbol de trabajo\n"
"desde commit %s."
-#: builtin/pull.c:960
+#: builtin/pull.c:966
#, c-format
msgid ""
"Cannot fast-forward your working tree.\n"
@@ -16643,15 +16725,15 @@ msgstr ""
"$ git reset --hard\n"
"para recuperar."
-#: builtin/pull.c:975
+#: builtin/pull.c:981
msgid "Cannot merge multiple branches into empty head."
msgstr "No se puede fusionar múltiples ramas en un head vacío."
-#: builtin/pull.c:979
+#: builtin/pull.c:985
msgid "Cannot rebase onto multiple branches."
msgstr "No se puede rebasar en múltiples ramas."
-#: builtin/pull.c:986
+#: builtin/pull.c:992
msgid "cannot rebase with locally recorded submodule modifications"
msgstr ""
"no se puede rebasar con modificaciones de submódulos grabadas localmente"
@@ -16813,136 +16895,136 @@ msgstr ""
msgid "Pushing to %s\n"
msgstr "Haciendo push a %s\n"
-#: builtin/push.c:364
+#: builtin/push.c:366
#, c-format
msgid "failed to push some refs to '%s'"
msgstr "falló el push de algunas referencias a '%s'"
-#: builtin/push.c:398
-#, c-format
-msgid "bad repository '%s'"
-msgstr "mal repositorio '%s'"
-
-#: builtin/push.c:399
-msgid ""
-"No configured push destination.\n"
-"Either specify the URL from the command-line or configure a remote "
-"repository using\n"
-"\n"
-" git remote add <name> <url>\n"
-"\n"
-"and then push using the remote name\n"
-"\n"
-" git push <name>\n"
-msgstr ""
-"No se ha configurado un destino para el push.\n"
-"Puedes o especificar una URL desde la línea de comandos o configurar un "
-"repositorio remoto usando\n"
-"\n"
-" git remote add <nombre> <url>\n"
-"\n"
-"y luego haciendo push al nombre del remoto\n"
-"\n"
-" git push <nombre>\n"
-
-#: builtin/push.c:554
+#: builtin/push.c:541
msgid "repository"
msgstr "repositorio"
-#: builtin/push.c:555 builtin/send-pack.c:164
+#: builtin/push.c:542 builtin/send-pack.c:164
msgid "push all refs"
msgstr "realizar push a todas las refs"
-#: builtin/push.c:556 builtin/send-pack.c:166
+#: builtin/push.c:543 builtin/send-pack.c:166
msgid "mirror all refs"
msgstr "realizar mirror a todas las refs"
-#: builtin/push.c:558
+#: builtin/push.c:545
msgid "delete refs"
msgstr "borrar refs"
-#: builtin/push.c:559
+#: builtin/push.c:546
msgid "push tags (can't be used with --all or --mirror)"
msgstr "realizar push a tags (no puede ser usado con --all o --mirror)"
-#: builtin/push.c:562 builtin/send-pack.c:167
+#: builtin/push.c:549 builtin/send-pack.c:167
msgid "force updates"
msgstr "forzar actualizaciones"
-#: builtin/push.c:564 builtin/send-pack.c:181
+#: builtin/push.c:551 builtin/send-pack.c:181
msgid "<refname>:<expect>"
msgstr "<refname>:<expect>"
-#: builtin/push.c:565 builtin/send-pack.c:182
+#: builtin/push.c:552 builtin/send-pack.c:182
msgid "require old value of ref to be at this value"
msgstr "requiere haber valor viejo de ref en este valor"
-#: builtin/push.c:568
+#: builtin/push.c:555
msgid "control recursive pushing of submodules"
msgstr "controlar push recursivo de submódulos"
-#: builtin/push.c:570 builtin/send-pack.c:175
+#: builtin/push.c:557 builtin/send-pack.c:175
msgid "use thin pack"
msgstr "usar empaquetado delgado"
-#: builtin/push.c:571 builtin/push.c:572 builtin/send-pack.c:161
+#: builtin/push.c:558 builtin/push.c:559 builtin/send-pack.c:161
#: builtin/send-pack.c:162
msgid "receive pack program"
msgstr "recibir programa de paquete"
-#: builtin/push.c:573
+#: builtin/push.c:560
msgid "set upstream for git pull/status"
msgstr "configurar upstream para git pulll/status"
-#: builtin/push.c:576
+#: builtin/push.c:563
msgid "prune locally removed refs"
-msgstr "recortando refs removidas localmente"
+msgstr "recortando refs eliminadas localmente"
-#: builtin/push.c:578
+#: builtin/push.c:565
msgid "bypass pre-push hook"
msgstr "hacer un bypass al hook pre-push"
-#: builtin/push.c:579
+#: builtin/push.c:566
msgid "push missing but relevant tags"
msgstr "realizar push de tags faltantes pero relevantes"
-#: builtin/push.c:582 builtin/send-pack.c:169
+#: builtin/push.c:569 builtin/send-pack.c:169
msgid "GPG sign the push"
msgstr "Firmar con GPG el push"
-#: builtin/push.c:584 builtin/send-pack.c:176
+#: builtin/push.c:571 builtin/send-pack.c:176
msgid "request atomic transaction on remote side"
msgstr "solicitar transacción atómica en el lado remoto"
-#: builtin/push.c:602
+#: builtin/push.c:589
msgid "--delete is incompatible with --all, --mirror and --tags"
msgstr "--delete es incompatible con --all, --mirror y --tags"
-#: builtin/push.c:604
+#: builtin/push.c:591
msgid "--delete doesn't make sense without any refs"
msgstr "--delete no tiene sentido sin ninguna referencia"
-#: builtin/push.c:607
+#: builtin/push.c:611
+#, c-format
+msgid "bad repository '%s'"
+msgstr "mal repositorio '%s'"
+
+#: builtin/push.c:612
+msgid ""
+"No configured push destination.\n"
+"Either specify the URL from the command-line or configure a remote "
+"repository using\n"
+"\n"
+" git remote add <name> <url>\n"
+"\n"
+"and then push using the remote name\n"
+"\n"
+" git push <name>\n"
+msgstr ""
+"No se ha configurado un destino para el push.\n"
+"Puedes o especificar una URL desde la línea de comandos o configurar un "
+"repositorio remoto usando\n"
+"\n"
+" git remote add <nombre> <url>\n"
+"\n"
+"y luego haciendo push al nombre del remoto\n"
+"\n"
+" git push <nombre>\n"
+
+#: builtin/push.c:627
msgid "--all and --tags are incompatible"
msgstr "--all y --tags son incompatibles"
-#: builtin/push.c:609
+#: builtin/push.c:629
msgid "--all can't be combined with refspecs"
msgstr "--all no puede ser combinada con refspecs"
-#: builtin/push.c:613
+#: builtin/push.c:633
msgid "--mirror and --tags are incompatible"
msgstr "--mirror y --tags son incompatibles"
-#: builtin/push.c:615
+#: builtin/push.c:635
msgid "--mirror can't be combined with refspecs"
msgstr "--mirror no puede ser combinado con refspecs"
-#: builtin/push.c:618
+#: builtin/push.c:638
msgid "--all and --mirror are incompatible"
msgstr "--all y --mirror son incompatibles"
-#: builtin/push.c:637
+#: builtin/push.c:642
msgid "push options must not have new line characters"
msgstr "opciones de push no pueden tener caracteres de línea nueva"
@@ -17062,11 +17144,11 @@ msgstr "suprimir mensajes de feedback"
#: builtin/rebase.c:32
msgid ""
-"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] [<upstream>] "
-"[<branch>]"
+"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase> | --keep-base] "
+"[<upstream> [<branch>]]"
msgstr ""
-"git rebase [-i] [opciones] [--exec <cmd>] [--onto <newbase>] [<upstream>] "
-"[<branch>]"
+"git rebase [-i] [opciones] [--exec <cmd>] [--onto <newbase> | --keep-base] "
+"[<upstream> [<branch>]]"
#: builtin/rebase.c:34
msgid ""
@@ -17105,189 +17187,189 @@ msgstr "no se pudo marcar como interactivo"
msgid "could not generate todo list"
msgstr "no se pudo generar lista de pendientes"
-#: builtin/rebase.c:382
+#: builtin/rebase.c:383
msgid "a base commit must be provided with --upstream or --onto"
msgstr "un commit base tiene que ser provisto con --upstream o --onto"
-#: builtin/rebase.c:437
+#: builtin/rebase.c:438
msgid "git rebase--interactive [<options>]"
msgstr "git rebase--interactive [<opciones>]"
-#: builtin/rebase.c:449
+#: builtin/rebase.c:450
msgid "keep empty commits"
msgstr "mantener commits vacíos"
-#: builtin/rebase.c:451 builtin/revert.c:128
+#: builtin/rebase.c:452 builtin/revert.c:128
msgid "allow commits with empty messages"
msgstr "permitir commits con mensajes vacíos"
-#: builtin/rebase.c:452
+#: builtin/rebase.c:453
msgid "rebase merge commits"
msgstr "rebasando commits de fusión"
-#: builtin/rebase.c:454
+#: builtin/rebase.c:455
msgid "keep original branch points of cousins"
msgstr "mantener puntos originales de la rama de sus primos"
-#: builtin/rebase.c:456
+#: builtin/rebase.c:457
msgid "move commits that begin with squash!/fixup!"
msgstr "mover commits que comienzan con squash!/fixup!"
-#: builtin/rebase.c:457
+#: builtin/rebase.c:458
msgid "sign commits"
msgstr "firmar commits"
-#: builtin/rebase.c:459 builtin/rebase.c:1403
+#: builtin/rebase.c:460 builtin/rebase.c:1427
msgid "display a diffstat of what changed upstream"
msgstr "mostrar un diffstat de lo que cambió en upstream"
-#: builtin/rebase.c:461
+#: builtin/rebase.c:462
msgid "continue rebase"
msgstr "continuar rebase"
-#: builtin/rebase.c:463
+#: builtin/rebase.c:464
msgid "skip commit"
msgstr "saltar commit"
-#: builtin/rebase.c:464
+#: builtin/rebase.c:465
msgid "edit the todo list"
msgstr "editar la lista de pendientes"
-#: builtin/rebase.c:466
+#: builtin/rebase.c:467
msgid "show the current patch"
msgstr "mostrar el parche actual"
-#: builtin/rebase.c:469
+#: builtin/rebase.c:470
msgid "shorten commit ids in the todo list"
msgstr "ids de commits cortos en la lista de pendientes"
-#: builtin/rebase.c:471
+#: builtin/rebase.c:472
msgid "expand commit ids in the todo list"
msgstr "expandir ids de commits en la lista de pendientes"
-#: builtin/rebase.c:473
+#: builtin/rebase.c:474
msgid "check the todo list"
msgstr "revisar la lista de pendientes"
-#: builtin/rebase.c:475
+#: builtin/rebase.c:476
msgid "rearrange fixup/squash lines"
msgstr "reorganizar líneas fixup/squash"
-#: builtin/rebase.c:477
+#: builtin/rebase.c:478
msgid "insert exec commands in todo list"
msgstr "insertar comando exec en la lista de pendientes"
-#: builtin/rebase.c:478
+#: builtin/rebase.c:479
msgid "onto"
msgstr "hacia"
-#: builtin/rebase.c:481
+#: builtin/rebase.c:482
msgid "restrict-revision"
msgstr "restrict-revision"
-#: builtin/rebase.c:481
+#: builtin/rebase.c:482
msgid "restrict revision"
msgstr "restringir revision"
-#: builtin/rebase.c:483
+#: builtin/rebase.c:484
msgid "squash-onto"
msgstr "squash-onto"
-#: builtin/rebase.c:484
+#: builtin/rebase.c:485
msgid "squash onto"
msgstr "squash hacia"
-#: builtin/rebase.c:486
+#: builtin/rebase.c:487
msgid "the upstream commit"
msgstr "el commit de upstream"
-#: builtin/rebase.c:488
+#: builtin/rebase.c:489
msgid "head-name"
msgstr "head-name"
-#: builtin/rebase.c:488
+#: builtin/rebase.c:489
msgid "head name"
msgstr "nombre de head"
-#: builtin/rebase.c:493
+#: builtin/rebase.c:494
msgid "rebase strategy"
msgstr "estrategia de rebase"
-#: builtin/rebase.c:494
+#: builtin/rebase.c:495
msgid "strategy-opts"
msgstr "strategy-opts"
-#: builtin/rebase.c:495
+#: builtin/rebase.c:496
msgid "strategy options"
msgstr "opciones de estrategia"
-#: builtin/rebase.c:496
+#: builtin/rebase.c:497
msgid "switch-to"
msgstr "cambiar a"
-#: builtin/rebase.c:497
+#: builtin/rebase.c:498
msgid "the branch or commit to checkout"
msgstr "la rama o commit para hacer checkout"
-#: builtin/rebase.c:498
+#: builtin/rebase.c:499
msgid "onto-name"
msgstr "hacia-nombre"
-#: builtin/rebase.c:498
+#: builtin/rebase.c:499
msgid "onto name"
msgstr "hacia nombre"
-#: builtin/rebase.c:499
+#: builtin/rebase.c:500
msgid "cmd"
msgstr "cmd"
-#: builtin/rebase.c:499
+#: builtin/rebase.c:500
msgid "the command to run"
msgstr "el comando para ejecutar"
-#: builtin/rebase.c:502 builtin/rebase.c:1486
+#: builtin/rebase.c:503 builtin/rebase.c:1510
msgid "automatically re-schedule any `exec` that fails"
msgstr "reprogramar automaticamente cualquier `exec` que falle"
-#: builtin/rebase.c:518
+#: builtin/rebase.c:519
msgid "--[no-]rebase-cousins has no effect without --rebase-merges"
msgstr "--[no-]rebase-cousins no tiene efecto sin --rebase-merges"
-#: builtin/rebase.c:534
+#: builtin/rebase.c:535
#, c-format
msgid "%s requires an interactive rebase"
msgstr "%s requiere un rebase interactivo"
-#: builtin/rebase.c:586
+#: builtin/rebase.c:587
#, c-format
msgid "could not get 'onto': '%s'"
msgstr "no se pudo conseguir 'onto': '%s'"
-#: builtin/rebase.c:601
+#: builtin/rebase.c:602
#, c-format
msgid "invalid orig-head: '%s'"
msgstr "orig-head inválido: '%s'"
-#: builtin/rebase.c:626
+#: builtin/rebase.c:627
#, c-format
msgid "ignoring invalid allow_rerere_autoupdate: '%s'"
msgstr "ignorando inválido allow_rerere_autoupdate: '%s'"
-#: builtin/rebase.c:702
+#: builtin/rebase.c:703
#, c-format
msgid "Could not read '%s'"
msgstr "No se pudo leer '%s'"
-#: builtin/rebase.c:720
+#: builtin/rebase.c:721
#, c-format
msgid "Cannot store %s"
msgstr "No se puede guardar %s"
-#: builtin/rebase.c:827
+#: builtin/rebase.c:828
msgid "could not determine HEAD revision"
msgstr "no se pudo determinar revisión HEAD"
-#: builtin/rebase.c:950 git-rebase--preserve-merges.sh:81
+#: builtin/rebase.c:951 git-rebase--preserve-merges.sh:81
msgid ""
"Resolve all conflicts manually, mark them as resolved with\n"
"\"git add/rm <conflicted_files>\", then run \"git rebase --continue\".\n"
@@ -17302,7 +17384,7 @@ msgstr ""
"Para abortar y regresar al estado previo al \"git rebase\", ejecuta \"git "
"rebase --abort\"."
-#: builtin/rebase.c:1031
+#: builtin/rebase.c:1032
#, c-format
msgid ""
"\n"
@@ -17321,7 +17403,7 @@ msgstr ""
"\n"
"Como resultado, git no puede hacer rebase con ellos."
-#: builtin/rebase.c:1318
+#: builtin/rebase.c:1339
#, c-format
msgid ""
"%s\n"
@@ -17338,7 +17420,7 @@ msgstr ""
" git rebase '<rama>'\n"
"\n"
-#: builtin/rebase.c:1334
+#: builtin/rebase.c:1355
#, c-format
msgid ""
"If you wish to set tracking information for this branch you can do so with:\n"
@@ -17351,158 +17433,170 @@ msgstr ""
" git branch --set-upstream-to=%s/<rama> %s\n"
"\n"
-#: builtin/rebase.c:1364
+#: builtin/rebase.c:1385
msgid "exec commands cannot contain newlines"
msgstr "comandos exec no pueden contener newlines"
-#: builtin/rebase.c:1368
+#: builtin/rebase.c:1389
msgid "empty exec command"
msgstr "comando exec vacío"
-#: builtin/rebase.c:1396
+#: builtin/rebase.c:1418
msgid "rebase onto given branch instead of upstream"
msgstr "haciendo rebase hacia rama dada en lugar de upstream"
-#: builtin/rebase.c:1398
+#: builtin/rebase.c:1420
+msgid "use the merge-base of upstream and branch as the current base"
+msgstr "usar la base de fusión de upstream y la rama como base actual"
+
+#: builtin/rebase.c:1422
msgid "allow pre-rebase hook to run"
msgstr "permitir ejecutar hook pre-rebase"
-#: builtin/rebase.c:1400
+#: builtin/rebase.c:1424
msgid "be quiet. implies --no-stat"
msgstr "ser silencioso implica --no-stat"
-#: builtin/rebase.c:1406
+#: builtin/rebase.c:1430
msgid "do not show diffstat of what changed upstream"
msgstr "no mostrar un diffstat de lo que cambió en upstream"
-#: builtin/rebase.c:1409
+#: builtin/rebase.c:1433
msgid "add a Signed-off-by: line to each commit"
msgstr "agregar una línea \"Firmado-por\" al mensaje de cada commit"
-#: builtin/rebase.c:1411 builtin/rebase.c:1415 builtin/rebase.c:1417
+#: builtin/rebase.c:1435 builtin/rebase.c:1439 builtin/rebase.c:1441
msgid "passed to 'git am'"
msgstr "pasado a 'git am'"
-#: builtin/rebase.c:1419 builtin/rebase.c:1421
+#: builtin/rebase.c:1443 builtin/rebase.c:1445
msgid "passed to 'git apply'"
msgstr "pasado a 'git-apply'"
-#: builtin/rebase.c:1423 builtin/rebase.c:1426
+#: builtin/rebase.c:1447 builtin/rebase.c:1450
msgid "cherry-pick all commits, even if unchanged"
msgstr "cherry-pick todos los commits, incluso si no han cambiado"
-#: builtin/rebase.c:1428
+#: builtin/rebase.c:1452
msgid "continue"
msgstr "continuar"
-#: builtin/rebase.c:1431
+#: builtin/rebase.c:1455
msgid "skip current patch and continue"
msgstr "saltar el parche y continuar"
-#: builtin/rebase.c:1433
+#: builtin/rebase.c:1457
msgid "abort and check out the original branch"
msgstr "aborta y revisa la rama original"
-#: builtin/rebase.c:1436
+#: builtin/rebase.c:1460
msgid "abort but keep HEAD where it is"
msgstr "aborta pero mantiene HEAD donde está"
-#: builtin/rebase.c:1437
+#: builtin/rebase.c:1461
msgid "edit the todo list during an interactive rebase"
msgstr "editar la lista de pendientes durante el rebase interactivo"
-#: builtin/rebase.c:1440
+#: builtin/rebase.c:1464
msgid "show the patch file being applied or merged"
msgstr "muestra el archivo parche siendo aplicado o fusionado"
-#: builtin/rebase.c:1443
+#: builtin/rebase.c:1467
msgid "use merging strategies to rebase"
msgstr "usar estrategias de fusión para el rebase"
-#: builtin/rebase.c:1447
+#: builtin/rebase.c:1471
msgid "let the user edit the list of commits to rebase"
msgstr "permitir al usuario editar la lista de commits para rebasar"
-#: builtin/rebase.c:1451
+#: builtin/rebase.c:1475
msgid "(DEPRECATED) try to recreate merges instead of ignoring them"
msgstr "(DEPRECADO) intentar recrear merges en lugar de ignorarlos"
-#: builtin/rebase.c:1455
+#: builtin/rebase.c:1479
msgid "preserve empty commits during rebase"
msgstr "preservar commits vacíos durante el rebase"
-#: builtin/rebase.c:1457
+#: builtin/rebase.c:1481
msgid "move commits that begin with squash!/fixup! under -i"
msgstr "mover commits que comienzan con squash!/fixup! bajo -i"
-#: builtin/rebase.c:1463
+#: builtin/rebase.c:1487
msgid "automatically stash/stash pop before and after"
msgstr "ejecutar automáticamente stash/stash pop antes y después"
-#: builtin/rebase.c:1465
+#: builtin/rebase.c:1489
msgid "add exec lines after each commit of the editable list"
msgstr "agregar líneas exec tras cada acommit de la lista editable"
-#: builtin/rebase.c:1469
+#: builtin/rebase.c:1493
msgid "allow rebasing commits with empty messages"
msgstr "permitir rebase commits con mensajes vacíos"
-#: builtin/rebase.c:1472
+#: builtin/rebase.c:1496
msgid "try to rebase merges instead of skipping them"
msgstr "intentar fusiones por rebase en lugar de saltarlas"
-#: builtin/rebase.c:1475
+#: builtin/rebase.c:1499
msgid "use 'merge-base --fork-point' to refine upstream"
msgstr "use 'merge-base --fork-point' para refinar upstream"
-#: builtin/rebase.c:1477
+#: builtin/rebase.c:1501
msgid "use the given merge strategy"
msgstr "usar la estrategia de merge dada"
-#: builtin/rebase.c:1479 builtin/revert.c:115
+#: builtin/rebase.c:1503 builtin/revert.c:115
msgid "option"
msgstr "opción"
-#: builtin/rebase.c:1480
+#: builtin/rebase.c:1504
msgid "pass the argument through to the merge strategy"
msgstr "pasar el argumento para la estrategia de fusión"
-#: builtin/rebase.c:1483
+#: builtin/rebase.c:1507
msgid "rebase all reachable commits up to the root(s)"
msgstr "hacer rebase a todos los commits alcanzables hasta la raíz(raíces)"
-#: builtin/rebase.c:1500
+#: builtin/rebase.c:1524
msgid ""
"the rebase.useBuiltin support has been removed!\n"
"See its entry in 'git help config' for details."
msgstr ""
-"el soporte para rebase.useBuiltin ha sido removido!\n"
+"el soporte para rebase.useBuiltin ha sido eliminado!\n"
"Vea su entrada en 'git help config' para detalles."
-#: builtin/rebase.c:1506
+#: builtin/rebase.c:1530
msgid "It looks like 'git am' is in progress. Cannot rebase."
msgstr "Parece que 'git am' está en progreso. No se puede rebasar."
-#: builtin/rebase.c:1547
+#: builtin/rebase.c:1571
msgid ""
"git rebase --preserve-merges is deprecated. Use --rebase-merges instead."
msgstr ""
"git rebase --preserve-merges está deprecado. Use --rebase-merges en su lugar."
-#: builtin/rebase.c:1551
+#: builtin/rebase.c:1576
+msgid "cannot combine '--keep-base' with '--onto'"
+msgstr "no se puede combinar '--keep-base' con '--onto'"
+
+#: builtin/rebase.c:1578
+msgid "cannot combine '--keep-base' with '--root'"
+msgstr "no se puede combinar '--keep-base' con '--root'"
+
+#: builtin/rebase.c:1582
msgid "No rebase in progress?"
-msgstr "No hay rebase en progreso?"
+msgstr "¿No hay rebase en progreso?"
-#: builtin/rebase.c:1555
+#: builtin/rebase.c:1586
msgid "The --edit-todo action can only be used during interactive rebase."
msgstr ""
"La acción --edit-todo sólo puede ser usada al rebasar interactivamente."
-#: builtin/rebase.c:1578
+#: builtin/rebase.c:1609
msgid "Cannot read HEAD"
msgstr "No se puede leer el HEAD"
-#: builtin/rebase.c:1590
+#: builtin/rebase.c:1621
msgid ""
"You must edit all merge conflicts and then\n"
"mark them as resolved using git add"
@@ -17510,16 +17604,16 @@ msgstr ""
"Tienes que editar todos los conflictos de fusión y luego\n"
"marcarlos como resueltos usando git add"
-#: builtin/rebase.c:1609
+#: builtin/rebase.c:1640
msgid "could not discard worktree changes"
msgstr "no se pudo descartar los cambios del árbol de trabajo"
-#: builtin/rebase.c:1628
+#: builtin/rebase.c:1659
#, c-format
msgid "could not move back to %s"
msgstr "no se puede regresar a %s"
-#: builtin/rebase.c:1673
+#: builtin/rebase.c:1704
#, c-format
msgid ""
"It seems that there is already a %s directory, and\n"
@@ -17540,167 +17634,159 @@ msgstr ""
"y ejecútame nuevamente. Me estoy deteniendo en caso de que tengas\n"
"algo de valor ahí.\n"
-#: builtin/rebase.c:1694
+#: builtin/rebase.c:1725
msgid "switch `C' expects a numerical value"
msgstr "switch `C' espera un valor numérico"
-#: builtin/rebase.c:1735
+#: builtin/rebase.c:1766
#, c-format
msgid "Unknown mode: %s"
msgstr "Modo desconocido: %s"
-#: builtin/rebase.c:1757
+#: builtin/rebase.c:1788
msgid "--strategy requires --merge or --interactive"
msgstr "--strategy requiere --merge o --interactive"
-#: builtin/rebase.c:1797
+#: builtin/rebase.c:1828
msgid "--reschedule-failed-exec requires --exec or --interactive"
msgstr "--reschedule-failed-exec requiere --exec o --interactive"
-#: builtin/rebase.c:1809
+#: builtin/rebase.c:1840
msgid "cannot combine am options with either interactive or merge options"
msgstr ""
"no se pueden combinar opciones de am con opciones interactivas o de merge"
-#: builtin/rebase.c:1828
+#: builtin/rebase.c:1859
msgid "cannot combine '--preserve-merges' with '--rebase-merges'"
msgstr "no se puede combinar '--preserve-merges' con '--rebase-merges'"
-#: builtin/rebase.c:1832
+#: builtin/rebase.c:1863
msgid ""
"error: cannot combine '--preserve-merges' with '--reschedule-failed-exec'"
msgstr ""
"error: no se puede combinar '--preserve-merges' con '--reschedule-failed-"
"exec'"
-#: builtin/rebase.c:1838
-msgid "cannot combine '--rebase-merges' with '--strategy-option'"
-msgstr "no se puede combinar '--rebase-merges' con '--strategy-option'"
-
-#: builtin/rebase.c:1841
-msgid "cannot combine '--rebase-merges' with '--strategy'"
-msgstr "no se puede combinar '--rebase-merges' con '--strategy'"
-
-#: builtin/rebase.c:1865
+#: builtin/rebase.c:1887
#, c-format
msgid "invalid upstream '%s'"
msgstr "upstream inválido '%s'"
-#: builtin/rebase.c:1871
+#: builtin/rebase.c:1893
msgid "Could not create new root commit"
msgstr "No se pudo crear commit raíz nuevo"
-#: builtin/rebase.c:1889
+#: builtin/rebase.c:1919
+#, c-format
+msgid "'%s': need exactly one merge base with branch"
+msgstr "'%s': necesita exactamente una base de fusión con rama"
+
+#: builtin/rebase.c:1922
#, c-format
msgid "'%s': need exactly one merge base"
msgstr "'%s': necesita exactamente una base de fusión"
-#: builtin/rebase.c:1896
+#: builtin/rebase.c:1930
#, c-format
msgid "Does not point to a valid commit '%s'"
msgstr "No apunta a un commit válido '%s'"
-#: builtin/rebase.c:1921
+#: builtin/rebase.c:1955
#, c-format
msgid "fatal: no such branch/commit '%s'"
msgstr "fatal: no existe la rama/commit: '%s'"
-#: builtin/rebase.c:1929 builtin/submodule--helper.c:38
+#: builtin/rebase.c:1963 builtin/submodule--helper.c:38
#: builtin/submodule--helper.c:1934
#, c-format
msgid "No such ref: %s"
msgstr "No existe ref: %s"
-#: builtin/rebase.c:1940
+#: builtin/rebase.c:1974
msgid "Could not resolve HEAD to a revision"
msgstr "No se pudo resolver HEAD a una revisión"
-#: builtin/rebase.c:1981
+#: builtin/rebase.c:2012
msgid "Cannot autostash"
msgstr "No se puede ejecutar autostash"
-#: builtin/rebase.c:1984
+#: builtin/rebase.c:2015
#, c-format
msgid "Unexpected stash response: '%s'"
msgstr "Respuesta de stash inesperada: '%s'"
-#: builtin/rebase.c:1990
+#: builtin/rebase.c:2021
#, c-format
msgid "Could not create directory for '%s'"
msgstr "No se pudo crear el directorio para '%s'"
-#: builtin/rebase.c:1993
+#: builtin/rebase.c:2024
#, c-format
msgid "Created autostash: %s\n"
msgstr "Autostash creado: %s\n"
-#: builtin/rebase.c:1996
+#: builtin/rebase.c:2027
msgid "could not reset --hard"
msgstr "no se pudo reset --hard"
-#: builtin/rebase.c:1997 builtin/reset.c:114
-#, c-format
-msgid "HEAD is now at %s"
-msgstr "HEAD está ahora en %s"
-
-#: builtin/rebase.c:2013
+#: builtin/rebase.c:2036
msgid "Please commit or stash them."
msgstr "Por favor, confírmalos o guárdalos."
-#: builtin/rebase.c:2040
+#: builtin/rebase.c:2063
#, c-format
msgid "could not parse '%s'"
msgstr "no se puede analizar '%s'"
-#: builtin/rebase.c:2053
+#: builtin/rebase.c:2076
#, c-format
msgid "could not switch to %s"
msgstr "no se pudo cambiar a %s"
-#: builtin/rebase.c:2064
+#: builtin/rebase.c:2087
msgid "HEAD is up to date."
msgstr "HEAD está actualizado."
-#: builtin/rebase.c:2066
+#: builtin/rebase.c:2089
#, c-format
msgid "Current branch %s is up to date.\n"
msgstr "La rama actual %s está actualizada.\n"
-#: builtin/rebase.c:2074
+#: builtin/rebase.c:2097
msgid "HEAD is up to date, rebase forced."
msgstr "HEAD está actualizado, rebase forzado."
-#: builtin/rebase.c:2076
+#: builtin/rebase.c:2099
#, c-format
msgid "Current branch %s is up to date, rebase forced.\n"
msgstr "Rama actual %s está actualizada, rebase forzado.\n"
-#: builtin/rebase.c:2084
+#: builtin/rebase.c:2107
msgid "The pre-rebase hook refused to rebase."
msgstr "El hook pre-rebase rechazó el rebase."
-#: builtin/rebase.c:2091
+#: builtin/rebase.c:2114
#, c-format
msgid "Changes to %s:\n"
msgstr "Cambios a %s:\n"
-#: builtin/rebase.c:2094
+#: builtin/rebase.c:2117
#, c-format
msgid "Changes from %s to %s:\n"
msgstr "Cambios desde %s a %s:\n"
-#: builtin/rebase.c:2119
+#: builtin/rebase.c:2142
#, c-format
msgid "First, rewinding head to replay your work on top of it...\n"
msgstr ""
"En primer lugar, rebobinando HEAD para después reproducir tus cambios encima "
"de ésta...\n"
-#: builtin/rebase.c:2128
+#: builtin/rebase.c:2151
msgid "Could not detach HEAD"
msgstr "No se puede desacoplar HEAD"
-#: builtin/rebase.c:2137
+#: builtin/rebase.c:2160
#, c-format
msgid "Fast-forwarded %s to %s.\n"
msgstr "Avance rápido de %s a %s.\n"
@@ -17709,7 +17795,7 @@ msgstr "Avance rápido de %s a %s.\n"
msgid "git receive-pack <git-dir>"
msgstr "git receive-pack <git-dir>"
-#: builtin/receive-pack.c:832
+#: builtin/receive-pack.c:830
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"
@@ -17735,14 +17821,14 @@ msgstr ""
"Puedes configurar la variable de configuración 'receive.denyCurrentBranch'\n"
"\"ignore\" o \"warn\" en el repositorio remoto para permitir\n"
"su rama actual; Sin embargo, esto no se recomienda a menos que tú\n"
-"te hayas organizado para actualizar su árbol de trabajo para que coincida con "
-"lo que\n"
+"te hayas organizado para actualizar su árbol de trabajo para que coincida "
+"con lo que\n"
"enviarás con el push de otra manera.\n"
"\n"
"Para suprimir este mensaje y mantener el comportamiento predeterminado,\n"
"configura 'receive.denyCurrentBranch' a 'refuse'."
-#: builtin/receive-pack.c:852
+#: builtin/receive-pack.c:850
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"
@@ -17763,11 +17849,11 @@ msgstr ""
"\n"
"Para suprimir este mensaje, puedes configurarlo en 'refuse'."
-#: builtin/receive-pack.c:1938
+#: builtin/receive-pack.c:1936
msgid "quiet"
msgstr "tranquilo"
-#: builtin/receive-pack.c:1952
+#: builtin/receive-pack.c:1950
msgid "You must specify a directory."
msgstr "Se tiene que especificar un directorio."
@@ -17806,7 +17892,7 @@ msgstr "Marcando objectos alcanzables..."
#: builtin/reflog.c:643
#, c-format
msgid "%s points nowhere!"
-msgstr "%s apunta a ningún lado!"
+msgstr "¡%s apunta a ningún lado!"
#: builtin/reflog.c:695
msgid "no reflog specified to delete"
@@ -18032,11 +18118,11 @@ msgid_plural ""
"Note: Some branches outside the refs/remotes/ hierarchy were not removed;\n"
"to delete them, use:"
msgstr[0] ""
-"Nota: Una rama fuera de la jerarquía refs/remotes/ no fue removida;\n"
+"Nota: Una rama fuera de la jerarquía refs/remotes/ no fue eliminada;\n"
"para borrarla, use:"
msgstr[1] ""
"Nota: Algunas ramas fuera de la jerarquía refs/remotes/ no fueron "
-"removidas;\n"
+"eliminadas;\n"
"para borrarlas, use:"
#: builtin/remote.c:816
@@ -18245,12 +18331,12 @@ msgstr "No se pudo configurar %s"
#: builtin/remote.c:1299
#, c-format
msgid " %s will become dangling!"
-msgstr " %s será colgado!"
+msgstr " ¡%s será colgado!"
#: builtin/remote.c:1300
#, c-format
msgid " %s has become dangling!"
-msgstr " %s ha sido colgado!"
+msgstr " ¡%s ha sido colgado!"
#: builtin/remote.c:1310
#, c-format
@@ -18341,11 +18427,11 @@ msgstr "ser verboso; tiene que ser agregado antes de un subcomando"
msgid "Unknown subcommand: %s"
msgstr "Sub-comando desconocido: %s"
-#: builtin/repack.c:22
+#: builtin/repack.c:23
msgid "git repack [<options>]"
msgstr "git repack [<opciones>]"
-#: builtin/repack.c:27
+#: builtin/repack.c:28
msgid ""
"Incremental repacks are incompatible with bitmap indexes. Use\n"
"--no-write-bitmap-index or disable the pack.writebitmaps configuration."
@@ -18353,115 +18439,115 @@ msgstr ""
"Re empaquetados incrementales son incompatibles con índices bitmap. Use \n"
"--no-write-bitmap-index o deshabilite la configuración pack.writebitmaps."
-#: builtin/repack.c:190
+#: builtin/repack.c:191
msgid "could not start pack-objects to repack promisor objects"
msgstr "no se puede iniciar pack-objects para reempaquetar objetos promisores"
-#: builtin/repack.c:229 builtin/repack.c:408
+#: builtin/repack.c:230 builtin/repack.c:409
msgid "repack: Expecting full hex object ID lines only from pack-objects."
msgstr ""
"repack: Esperando líneas de ID de objeto en full hex solo desde pack-objects."
-#: builtin/repack.c:246
+#: builtin/repack.c:247
msgid "could not finish pack-objects to repack promisor objects"
msgstr ""
"no se puede finalizar pack-objects para reempaquetar objetos promisores"
-#: builtin/repack.c:284
+#: builtin/repack.c:285
msgid "pack everything in a single pack"
msgstr "empaquetar todo en un único paquete"
-#: builtin/repack.c:286
+#: builtin/repack.c:287
msgid "same as -a, and turn unreachable objects loose"
msgstr "lo mismo que -a, y pierde objetos inaccesibles"
-#: builtin/repack.c:289
+#: builtin/repack.c:290
msgid "remove redundant packs, and run git-prune-packed"
msgstr "eliminar paquetes redundantes, y ejecutar git-prune-packed"
-#: builtin/repack.c:291
+#: builtin/repack.c:292
msgid "pass --no-reuse-delta to git-pack-objects"
msgstr "pasar --no-reuse-delta a git-pack-objects"
-#: builtin/repack.c:293
+#: builtin/repack.c:294
msgid "pass --no-reuse-object to git-pack-objects"
msgstr "pasar --no-reuse-object a git-pack-objects"
-#: builtin/repack.c:295
+#: builtin/repack.c:296
msgid "do not run git-update-server-info"
msgstr "no ejecutar git-update-server-info"
-#: builtin/repack.c:298
+#: builtin/repack.c:299
msgid "pass --local to git-pack-objects"
msgstr "pasar --local a git-pack-objects"
-#: builtin/repack.c:300
+#: builtin/repack.c:301
msgid "write bitmap index"
msgstr "escribir un índice de bitmap"
-#: builtin/repack.c:302
+#: builtin/repack.c:303
msgid "pass --delta-islands to git-pack-objects"
msgstr "pasar --delta-islands a git-pack-objects"
-#: builtin/repack.c:303
+#: builtin/repack.c:304
msgid "approxidate"
msgstr "aproxime"
-#: builtin/repack.c:304
+#: builtin/repack.c:305
msgid "with -A, do not loosen objects older than this"
msgstr "con -A, no perder objetos más antiguos que este"
-#: builtin/repack.c:306
+#: builtin/repack.c:307
msgid "with -a, repack unreachable objects"
msgstr "con -a, re empaquetar objetos inalcanzables"
-#: builtin/repack.c:308
+#: builtin/repack.c:309
msgid "size of the window used for delta compression"
msgstr "tamaño de la ventana usado para la compresión delta"
-#: builtin/repack.c:309 builtin/repack.c:315
+#: builtin/repack.c:310 builtin/repack.c:316
msgid "bytes"
msgstr "bytes"
-#: builtin/repack.c:310
+#: builtin/repack.c:311
msgid "same as the above, but limit memory size instead of entries count"
msgstr ""
"lo mismo que arriba, pero limita el tamaño de memoria en lugar de contar "
"entradas"
-#: builtin/repack.c:312
+#: builtin/repack.c:313
msgid "limits the maximum delta depth"
msgstr "limita la profundidad máxima del delta"
-#: builtin/repack.c:314
+#: builtin/repack.c:315
msgid "limits the maximum number of threads"
msgstr "limita el número máximo de hilos"
-#: builtin/repack.c:316
+#: builtin/repack.c:317
msgid "maximum size of each packfile"
msgstr "tamaño máximo de cada paquete"
-#: builtin/repack.c:318
+#: builtin/repack.c:319
msgid "repack objects in packs marked with .keep"
msgstr "re-empaquetar objetos en paquetes marcados con .keep"
-#: builtin/repack.c:320
+#: builtin/repack.c:321
msgid "do not repack this pack"
msgstr "no reempaquetar este paquete"
-#: builtin/repack.c:330
+#: builtin/repack.c:331
msgid "cannot delete packs in a precious-objects repo"
msgstr "no se pueden borrar paquetes en un repositorio de objetos-preciosos"
-#: builtin/repack.c:334
+#: builtin/repack.c:335
msgid "--keep-unreachable and -A are incompatible"
msgstr "--keep-unreachable y -A son incompatibles"
-#: builtin/repack.c:417
+#: builtin/repack.c:418
msgid "Nothing new to pack."
msgstr "Nada nuevo para empaquetar."
-#: builtin/repack.c:478
+#: builtin/repack.c:479
#, c-format
msgid ""
"WARNING: Some packs in use have been renamed by\n"
@@ -18480,7 +18566,7 @@ msgstr ""
"WARNING: también falló.\n"
"WARNING: Por favor renombralos en %s manualmente:\n"
-#: builtin/repack.c:526
+#: builtin/repack.c:527
#, c-format
msgid "failed to remove '%s'"
msgstr "falló al eliminar'%s'"
@@ -18588,8 +18674,8 @@ msgstr "incapaz de correr fstat %s"
msgid "unable to write object to database"
msgstr "incapaz de escribir el objeto en la base de datos"
-#: builtin/replace.c:322 builtin/replace.c:377 builtin/replace.c:422
-#: builtin/replace.c:452
+#: builtin/replace.c:322 builtin/replace.c:378 builtin/replace.c:423
+#: builtin/replace.c:453
#, c-format
msgid "not a valid object name: '%s'"
msgstr "nombre de objeto no válido: '%s'"
@@ -18608,22 +18694,22 @@ msgstr "edición de archivo de objeto falló"
msgid "new object is the same as the old one: '%s'"
msgstr "nuevo objeto es igual al antiguo: '%s'"
-#: builtin/replace.c:383
+#: builtin/replace.c:384
#, c-format
msgid "could not parse %s as a commit"
msgstr "no se pudo analizar %s como un commit"
-#: builtin/replace.c:414
+#: builtin/replace.c:415
#, c-format
msgid "bad mergetag in commit '%s'"
msgstr "mal mergetag en commit '%s'"
-#: builtin/replace.c:416
+#: builtin/replace.c:417
#, c-format
msgid "malformed mergetag in commit '%s'"
msgstr "mergetag mal formado en commit '%s'"
-#: builtin/replace.c:428
+#: builtin/replace.c:429
#, c-format
msgid ""
"original commit '%s' contains mergetag '%s' that is discarded; use --edit "
@@ -18632,31 +18718,31 @@ msgstr ""
"commit original '%s' contiene un mergetag '%s' que es descartado; use --edit "
"en lugar de --graft"
-#: builtin/replace.c:467
+#: builtin/replace.c:468
#, c-format
msgid "the original commit '%s' has a gpg signature"
msgstr "el commit original '%s' tiene una firma gpg"
-#: builtin/replace.c:468
+#: builtin/replace.c:469
msgid "the signature will be removed in the replacement commit!"
-msgstr "la firma será removida en el commit de reemplazo!"
+msgstr "la firma será eliminada en el commit de reemplazo!"
-#: builtin/replace.c:478
+#: builtin/replace.c:479
#, c-format
msgid "could not write replacement commit for: '%s'"
msgstr "no se pudo escribir el commit de reemplazo: '%s'"
-#: builtin/replace.c:486
+#: builtin/replace.c:487
#, c-format
msgid "graft for '%s' unnecessary"
msgstr "graft para '%s' innecesario"
-#: builtin/replace.c:490
+#: builtin/replace.c:491
#, c-format
msgid "new commit is the same as the old one: '%s'"
msgstr "nuevo commit es le mismo que el antiguo: '%s'"
-#: builtin/replace.c:525
+#: builtin/replace.c:526
#, c-format
msgid ""
"could not convert the following graft(s):\n"
@@ -18665,71 +18751,71 @@ msgstr ""
"no se pudo convertir el siguiente graft(s):\n"
"%s"
-#: builtin/replace.c:546
+#: builtin/replace.c:547
msgid "list replace refs"
msgstr "listar replace refs"
-#: builtin/replace.c:547
+#: builtin/replace.c:548
msgid "delete replace refs"
msgstr "borrar replace refs"
-#: builtin/replace.c:548
+#: builtin/replace.c:549
msgid "edit existing object"
msgstr "editar objeto existente"
-#: builtin/replace.c:549
+#: builtin/replace.c:550
msgid "change a commit's parents"
msgstr "cambiar un padre de commit"
-#: builtin/replace.c:550
+#: builtin/replace.c:551
msgid "convert existing graft file"
msgstr "convertir archivo graft existente"
-#: builtin/replace.c:551
+#: builtin/replace.c:552
msgid "replace the ref if it exists"
msgstr "reemplazar el ref si este existe"
-#: builtin/replace.c:553
+#: builtin/replace.c:554
msgid "do not pretty-print contents for --edit"
msgstr "no se puede imprimir contenidos para --edit"
-#: builtin/replace.c:554
+#: builtin/replace.c:555
msgid "use this format"
msgstr "usar este formato"
-#: builtin/replace.c:567
+#: builtin/replace.c:568
msgid "--format cannot be used when not listing"
msgstr "--format no puede ser usado cuando no se hace listing"
-#: builtin/replace.c:575
+#: builtin/replace.c:576
msgid "-f only makes sense when writing a replacement"
msgstr "-f solo tiene sentido cuando se escribe un reemplazo"
-#: builtin/replace.c:579
+#: builtin/replace.c:580
msgid "--raw only makes sense with --edit"
msgstr "--raw solo tiene sentido con --edit"
-#: builtin/replace.c:585
+#: builtin/replace.c:586
msgid "-d needs at least one argument"
msgstr "-d necesita al menos un argumento"
-#: builtin/replace.c:591
+#: builtin/replace.c:592
msgid "bad number of arguments"
msgstr "mal número de argumentos"
-#: builtin/replace.c:597
+#: builtin/replace.c:598
msgid "-e needs exactly one argument"
msgstr "-e necesita exactamente un argumento"
-#: builtin/replace.c:603
+#: builtin/replace.c:604
msgid "-g needs at least one argument"
msgstr "-g necesita al menos un argumento"
-#: builtin/replace.c:609
+#: builtin/replace.c:610
msgid "--convert-graft-file takes no argument"
msgstr "--convert-graft-file no toma argumentos"
-#: builtin/replace.c:615
+#: builtin/replace.c:616
msgid "only one pattern can be given with -l"
msgstr "solo se puede dar un patrón con -l"
@@ -18797,13 +18883,18 @@ msgstr "Falló al encontrar el HEAD del árbol."
msgid "Failed to find tree of %s."
msgstr "Falló al encontrar árbol de %s."
+#: builtin/reset.c:114
+#, c-format
+msgid "HEAD is now at %s"
+msgstr "HEAD está ahora en %s"
+
#: builtin/reset.c:193
#, c-format
msgid "Cannot do a %s reset in the middle of a merge."
msgstr "No se puede realziar un reset %s en medio de una fusión."
-#: builtin/reset.c:293 builtin/stash.c:514 builtin/stash.c:589
-#: builtin/stash.c:613
+#: builtin/reset.c:293 builtin/stash.c:520 builtin/stash.c:595
+#: builtin/stash.c:619
msgid "be quiet, only report errors"
msgstr "ser silencioso, solo reportar errores"
@@ -18826,7 +18917,7 @@ msgstr "reiniciar HEAD pero mantener cambios locales"
#: builtin/reset.c:308
msgid "record only the fact that removed paths will be added later"
msgstr ""
-"grabar solo el hecho de que las rutas removidas serán agregadas después"
+"grabar solo el hecho de que las rutas eliminadas serán agregadas después"
#: builtin/reset.c:326
#, c-format
@@ -18888,24 +18979,19 @@ msgstr "No se puede reiniciar el índice a la revisión '%s'."
msgid "Could not write new index file."
msgstr "No se puede escribir un nuevo archivo índice."
-#: builtin/rev-list.c:412
+#: builtin/rev-list.c:411
msgid "cannot combine --exclude-promisor-objects and --missing"
msgstr "no se puede combinar --exclude-promisor-objects y --missing"
-#: builtin/rev-list.c:473
+#: builtin/rev-list.c:472
msgid "object filtering requires --objects"
msgstr "filtrado de objetos requiere --objects"
-#: builtin/rev-list.c:476
-#, c-format
-msgid "invalid sparse value '%s'"
-msgstr "valor disperso inválido: '%s'"
-
-#: builtin/rev-list.c:527
+#: builtin/rev-list.c:522
msgid "rev-list does not support display of notes"
msgstr "rev-list no soporta mostrar notas"
-#: builtin/rev-list.c:530
+#: builtin/rev-list.c:525
msgid "cannot combine --use-bitmap-index with object filtering"
msgstr "no se puede combinar --use-bitmap-index con objetos de filtrado"
@@ -19101,7 +19187,7 @@ msgstr ""
#: builtin/rm.c:307
#, c-format
msgid "not removing '%s' recursively without -r"
-msgstr "no removiendo '%s' de manera recursiva sin -r"
+msgstr "no eliminando '%s' de manera recursiva sin -r"
#: builtin/rm.c:346
#, c-format
@@ -19445,134 +19531,134 @@ msgstr "conflictos en índice. Intente sin --index."
msgid "could not save index tree"
msgstr "no se puede guardar el índice del árbol"
-#: builtin/stash.c:434
+#: builtin/stash.c:436
msgid "could not restore untracked files from stash"
msgstr "no se pueden restaurar archivos no rastreados de la entrada stash"
-#: builtin/stash.c:448
+#: builtin/stash.c:450
#, c-format
msgid "Merging %s with %s"
msgstr "Fusionando %s con %s"
-#: builtin/stash.c:458 git-legacy-stash.sh:680
+#: builtin/stash.c:460 git-legacy-stash.sh:680
msgid "Index was not unstashed."
msgstr "El índice no fue sacado de stash."
-#: builtin/stash.c:516 builtin/stash.c:615
+#: builtin/stash.c:522 builtin/stash.c:621
msgid "attempt to recreate the index"
msgstr "intento de recrear el index"
-#: builtin/stash.c:549
+#: builtin/stash.c:555
#, c-format
msgid "Dropped %s (%s)"
msgstr "Botado %s (%s)"
-#: builtin/stash.c:552
+#: builtin/stash.c:558
#, c-format
msgid "%s: Could not drop stash entry"
msgstr "%s: No se pudo borrar entrada stash"
-#: builtin/stash.c:577
+#: builtin/stash.c:583
#, c-format
msgid "'%s' is not a stash reference"
msgstr "'%s' no es una referencia stash"
-#: builtin/stash.c:627 git-legacy-stash.sh:694
+#: builtin/stash.c:633 git-legacy-stash.sh:694
msgid "The stash entry is kept in case you need it again."
msgstr "La entrada de stash se guardó en caso de ser necesario nuevamente."
-#: builtin/stash.c:650 git-legacy-stash.sh:712
+#: builtin/stash.c:656 git-legacy-stash.sh:712
msgid "No branch name specified"
msgstr "No se especificó el nombre de la rama"
-#: builtin/stash.c:790 builtin/stash.c:827
+#: builtin/stash.c:796 builtin/stash.c:833
#, c-format
msgid "Cannot update %s with %s"
msgstr "No se puede actualizar %s con %s"
-#: builtin/stash.c:808 builtin/stash.c:1461 builtin/stash.c:1497
+#: builtin/stash.c:814 builtin/stash.c:1470 builtin/stash.c:1506
msgid "stash message"
msgstr "mensaje de stash"
-#: builtin/stash.c:818
+#: builtin/stash.c:824
msgid "\"git stash store\" requires one <commit> argument"
msgstr "\"git stash store\" requiere un argumento <commit>"
-#: builtin/stash.c:1040 git-legacy-stash.sh:217
+#: builtin/stash.c:1046 git-legacy-stash.sh:217
msgid "No changes selected"
msgstr "Sin cambios seleccionados"
-#: builtin/stash.c:1136 git-legacy-stash.sh:150
+#: builtin/stash.c:1145 git-legacy-stash.sh:150
msgid "You do not have the initial commit yet"
msgstr "Aún no tienes un commit inicial"
-#: builtin/stash.c:1163 git-legacy-stash.sh:165
+#: builtin/stash.c:1172 git-legacy-stash.sh:165
msgid "Cannot save the current index state"
msgstr "No se puede guardar el estado actual del índice"
-#: builtin/stash.c:1172 git-legacy-stash.sh:180
+#: builtin/stash.c:1181 git-legacy-stash.sh:180
msgid "Cannot save the untracked files"
msgstr "No se pueden guardar los archivos no rastreados"
-#: builtin/stash.c:1183 builtin/stash.c:1192 git-legacy-stash.sh:200
+#: builtin/stash.c:1192 builtin/stash.c:1201 git-legacy-stash.sh:200
#: git-legacy-stash.sh:213
msgid "Cannot save the current worktree state"
msgstr "No se puede guardar el estado actual del árbol de trabajo"
-#: builtin/stash.c:1220 git-legacy-stash.sh:233
+#: builtin/stash.c:1229 git-legacy-stash.sh:233
msgid "Cannot record working tree state"
msgstr "No se puede grabar el estado del árbol de trabajo"
-#: builtin/stash.c:1269 git-legacy-stash.sh:337
+#: builtin/stash.c:1278 git-legacy-stash.sh:337
msgid "Can't use --patch and --include-untracked or --all at the same time"
msgstr "No se puede usar --patch y --include-untracked o --all al mismo tiempo"
-#: builtin/stash.c:1285
+#: builtin/stash.c:1294
msgid "Did you forget to 'git add'?"
-msgstr "Olvidaste 'git add'?"
+msgstr "¿Olvidaste 'git add'?"
-#: builtin/stash.c:1300 git-legacy-stash.sh:345
+#: builtin/stash.c:1309 git-legacy-stash.sh:345
msgid "No local changes to save"
msgstr "No hay cambios locales para guardar"
-#: builtin/stash.c:1307 git-legacy-stash.sh:350
+#: builtin/stash.c:1316 git-legacy-stash.sh:350
msgid "Cannot initialize stash"
msgstr "No se puede inicializar stash"
-#: builtin/stash.c:1322 git-legacy-stash.sh:354
+#: builtin/stash.c:1331 git-legacy-stash.sh:354
msgid "Cannot save the current status"
msgstr "No se puede guardar el estado actual"
-#: builtin/stash.c:1327
+#: builtin/stash.c:1336
#, c-format
msgid "Saved working directory and index state %s"
msgstr "Directorio de trabajo guardado y estado de índice %s"
-#: builtin/stash.c:1417 git-legacy-stash.sh:384
+#: builtin/stash.c:1426 git-legacy-stash.sh:384
msgid "Cannot remove worktree changes"
msgstr "No se pueden eliminar cambios del árbol de trabajo"
-#: builtin/stash.c:1452 builtin/stash.c:1488
+#: builtin/stash.c:1461 builtin/stash.c:1497
msgid "keep index"
msgstr "mantener index"
-#: builtin/stash.c:1454 builtin/stash.c:1490
+#: builtin/stash.c:1463 builtin/stash.c:1499
msgid "stash in patch mode"
msgstr "stash en modo patch"
-#: builtin/stash.c:1455 builtin/stash.c:1491
+#: builtin/stash.c:1464 builtin/stash.c:1500
msgid "quiet mode"
msgstr "modo tranquilo"
-#: builtin/stash.c:1457 builtin/stash.c:1493
+#: builtin/stash.c:1466 builtin/stash.c:1502
msgid "include untracked files in stash"
msgstr "incluir archivos sin seguimiento en stash"
-#: builtin/stash.c:1459 builtin/stash.c:1495
+#: builtin/stash.c:1468 builtin/stash.c:1504
msgid "include ignore files"
msgstr "incluir archivos ignorados"
-#: builtin/stash.c:1555
+#: builtin/stash.c:1564
#, c-format
msgid "could not exec %s"
msgstr "no se pudo ejecutar %s"
@@ -19895,7 +19981,7 @@ msgstr "Ruta de submódulo '%s' no inicializada"
#: builtin/submodule--helper.c:1575
msgid "Maybe you want to use 'update --init'?"
-msgstr "Tal vez quieres usar 'update --init'?"
+msgstr "¿Tal vez quieres usar 'update --init'?"
#: builtin/submodule--helper.c:1605
#, c-format
@@ -19947,8 +20033,8 @@ msgid "don't print cloning progress"
msgstr "no mostrar el progreso de clonado"
#: builtin/submodule--helper.c:1877
-msgid "git submodule--helper update_clone [--prefix=<path>] [<path>...]"
-msgstr "git submodule--helper update_clone [--prefix=<ruta>] [<ruta>...]"
+msgid "git submodule--helper update-clone [--prefix=<path>] [<path>...]"
+msgstr "git submodule--helper update-clone [--prefix=<ruta>] [<ruta>...]"
#: builtin/submodule--helper.c:1890
msgid "bad value for update parameter"
@@ -20002,7 +20088,7 @@ msgid "please make sure that the .gitmodules file is in the working tree"
msgstr ""
"por favor asegúrate que el archivo .gitmodules está en el árbol de trabajo"
-#: builtin/submodule--helper.c:2235 git.c:434 git.c:684
+#: builtin/submodule--helper.c:2235 git.c:433 git.c:683
#, c-format
msgid "%s doesn't support --super-prefix"
msgstr "%s no soporta --super-prefix"
@@ -20325,143 +20411,143 @@ msgstr " OK"
msgid "git update-index [<options>] [--] [<file>...]"
msgstr "git update-index [<opciones>] [--] [<archivo>...]"
-#: builtin/update-index.c:971
+#: builtin/update-index.c:972
msgid "continue refresh even when index needs update"
msgstr ""
"continuar refresh (Actualización) incluso cuando el índice necesita "
"actualización"
-#: builtin/update-index.c:974
+#: builtin/update-index.c:975
msgid "refresh: ignore submodules"
msgstr "refresh: ignora submódulos"
-#: builtin/update-index.c:977
+#: builtin/update-index.c:978
msgid "do not ignore new files"
msgstr "no ignorar archivos nuevos"
-#: builtin/update-index.c:979
+#: builtin/update-index.c:980
msgid "let files replace directories and vice-versa"
msgstr "permitir que archivos remplacen directorios y vice-versa"
-#: builtin/update-index.c:981
+#: builtin/update-index.c:982
msgid "notice files missing from worktree"
msgstr "avisar de archivos faltando en el árbol de trabajo"
-#: builtin/update-index.c:983
+#: builtin/update-index.c:984
msgid "refresh even if index contains unmerged entries"
msgstr "ejecutar refresh incluso si el índice contiene entradas sin cambios"
-#: builtin/update-index.c:986
+#: builtin/update-index.c:987
msgid "refresh stat information"
msgstr "refresh información de estado"
-#: builtin/update-index.c:990
+#: builtin/update-index.c:991
msgid "like --refresh, but ignore assume-unchanged setting"
msgstr "como --refresh, pero ignora configuración assume-unchanged"
-#: builtin/update-index.c:994
+#: builtin/update-index.c:995
msgid "<mode>,<object>,<path>"
msgstr "<modo>,<objeto>,<ruta>"
-#: builtin/update-index.c:995
+#: builtin/update-index.c:996
msgid "add the specified entry to the index"
msgstr "agregar la entrada especificada al índice"
-#: builtin/update-index.c:1005
+#: builtin/update-index.c:1006
msgid "mark files as \"not changing\""
msgstr "marcar archivos como \"not changing\""
-#: builtin/update-index.c:1008
+#: builtin/update-index.c:1009
msgid "clear assumed-unchanged bit"
msgstr "limpiar bit assumed-unchanged"
-#: builtin/update-index.c:1011
+#: builtin/update-index.c:1012
msgid "mark files as \"index-only\""
msgstr "marcar archivos como \"index-only\""
-#: builtin/update-index.c:1014
+#: builtin/update-index.c:1015
msgid "clear skip-worktree bit"
msgstr "limpiar bit skip-worktree"
-#: builtin/update-index.c:1017
+#: builtin/update-index.c:1018
msgid "add to index only; do not add content to object database"
msgstr ""
"agregar solo al índice; no agregar contenido a la base de datos de objetos"
-#: builtin/update-index.c:1019
+#: builtin/update-index.c:1020
msgid "remove named paths even if present in worktree"
msgstr ""
"eliminar rutas nombradas incluso si están presentes en el árbol de trabajo"
-#: builtin/update-index.c:1021
+#: builtin/update-index.c:1022
msgid "with --stdin: input lines are terminated by null bytes"
msgstr "con --stdin: las líneas de entrada son terminadas con bytes nulos"
-#: builtin/update-index.c:1023
+#: builtin/update-index.c:1024
msgid "read list of paths to be updated from standard input"
msgstr "leer la lista de rutas para ser actualizada desde standard input"
-#: builtin/update-index.c:1027
+#: builtin/update-index.c:1028
msgid "add entries from standard input to the index"
msgstr "agregar entradas de standard input al índice"
-#: builtin/update-index.c:1031
+#: builtin/update-index.c:1032
msgid "repopulate stages #2 and #3 for the listed paths"
msgstr "repoblar stages #2 y #3 para las rutas listadas"
-#: builtin/update-index.c:1035
+#: builtin/update-index.c:1036
msgid "only update entries that differ from HEAD"
msgstr "solo actualizar entradas que difieren de HEAD"
-#: builtin/update-index.c:1039
+#: builtin/update-index.c:1040
msgid "ignore files missing from worktree"
msgstr "ignorar archivos faltantes en el árbol de trabajo"
-#: builtin/update-index.c:1042
+#: builtin/update-index.c:1043
msgid "report actions to standard output"
msgstr "reportar acciones por standard output"
-#: builtin/update-index.c:1044
+#: builtin/update-index.c:1045
msgid "(for porcelains) forget saved unresolved conflicts"
msgstr "(para porcelanas) olvidar conflictos sin resolver guardados"
-#: builtin/update-index.c:1048
+#: builtin/update-index.c:1049
msgid "write index in this format"
msgstr "escribir índice en este formato"
-#: builtin/update-index.c:1050
+#: builtin/update-index.c:1051
msgid "enable or disable split index"
msgstr "activar o desactivar índice dividido"
-#: builtin/update-index.c:1052
+#: builtin/update-index.c:1053
msgid "enable/disable untracked cache"
msgstr "habilitar o deshabilitar caché no rastreado"
-#: builtin/update-index.c:1054
+#: builtin/update-index.c:1055
msgid "test if the filesystem supports untracked cache"
msgstr "probar si el filesystem soporta caché no rastreado"
-#: builtin/update-index.c:1056
+#: builtin/update-index.c:1057
msgid "enable untracked cache without testing the filesystem"
msgstr "habilitar caché no rastreado sin probar el filesystem"
-#: builtin/update-index.c:1058
+#: builtin/update-index.c:1059
msgid "write out the index even if is not flagged as changed"
msgstr "escribir el índice incluso si no está marcado como cambiado"
-#: builtin/update-index.c:1060
+#: builtin/update-index.c:1061
msgid "enable or disable file system monitor"
msgstr "activar o desactivar monitor de sistema de archivos"
-#: builtin/update-index.c:1062
+#: builtin/update-index.c:1063
msgid "mark files as fsmonitor valid"
msgstr "marcar archivos como válidos para fsmonitor"
-#: builtin/update-index.c:1065
+#: builtin/update-index.c:1066
msgid "clear fsmonitor valid bit"
msgstr "limpia el bit de validación fsmonitor"
-#: builtin/update-index.c:1168
+#: builtin/update-index.c:1169
msgid ""
"core.splitIndex is set to false; remove or change it, if you really want to "
"enable split index"
@@ -20469,7 +20555,7 @@ msgstr ""
"core.splitIndex está configurado en false; remuévelo o cámbialo, si "
"realmente quieres habilitar el índice partido"
-#: builtin/update-index.c:1177
+#: builtin/update-index.c:1178
msgid ""
"core.splitIndex is set to true; remove or change it, if you really want to "
"disable split index"
@@ -20477,7 +20563,7 @@ msgstr ""
"core.splitIndex está configurado en true; remuévelo o cámbialo, si realmente "
"quieres deshabilitar el índice partido"
-#: builtin/update-index.c:1188
+#: builtin/update-index.c:1190
msgid ""
"core.untrackedCache is set to true; remove or change it, if you really want "
"to disable the untracked cache"
@@ -20485,11 +20571,11 @@ msgstr ""
"core.untrackedCache está configurado en true; remuévelo o cámbialo, si "
"realmente quieres deshabilitar el chaché no rastreado"
-#: builtin/update-index.c:1192
+#: builtin/update-index.c:1194
msgid "Untracked cache disabled"
msgstr "Caché no rastreado deshabilitado"
-#: builtin/update-index.c:1200
+#: builtin/update-index.c:1202
msgid ""
"core.untrackedCache is set to false; remove or change it, if you really want "
"to enable the untracked cache"
@@ -20497,29 +20583,29 @@ msgstr ""
"core.untrackedCache está configurado en false; remuévelo o cámbialo, si "
"realmente quieres habilitar el caché no rastreado"
-#: builtin/update-index.c:1204
+#: builtin/update-index.c:1206
#, c-format
msgid "Untracked cache enabled for '%s'"
msgstr "Caché no rastreado habilitado para '%s'"
-#: builtin/update-index.c:1212
+#: builtin/update-index.c:1214
msgid "core.fsmonitor is unset; set it if you really want to enable fsmonitor"
msgstr ""
"core.fsmonitor no está configurado; actívalo si realmente quieres habilitar "
"fsmonitor"
-#: builtin/update-index.c:1216
+#: builtin/update-index.c:1218
msgid "fsmonitor enabled"
msgstr "fsmonitor activado"
-#: builtin/update-index.c:1219
+#: builtin/update-index.c:1221
msgid ""
"core.fsmonitor is set; remove it if you really want to disable fsmonitor"
msgstr ""
"core.fsmonitor está configurado; remuévelo si realmente quieres deshabilitar "
"el fsmonitor"
-#: builtin/update-index.c:1223
+#: builtin/update-index.c:1225
msgid "fsmonitor disabled"
msgstr "fsmonitor desactivado"
@@ -20613,55 +20699,55 @@ msgstr "git verify-tag [-v | --verbose] [--format=<formato>] <tag>..."
msgid "print tag contents"
msgstr "imprimir contenido del tag"
-#: builtin/worktree.c:18
+#: builtin/worktree.c:17
msgid "git worktree add [<options>] <path> [<commit-ish>]"
msgstr "git worktree add [<opciones>] <ruta> [<commit-ish>]"
-#: builtin/worktree.c:19
+#: builtin/worktree.c:18
msgid "git worktree list [<options>]"
msgstr "git worktree list [<opciones>]"
-#: builtin/worktree.c:20
+#: builtin/worktree.c:19
msgid "git worktree lock [<options>] <path>"
msgstr "git worktree lock [<opciones>] <ruta>"
-#: builtin/worktree.c:21
+#: builtin/worktree.c:20
msgid "git worktree move <worktree> <new-path>"
msgstr "git worktree move <worktree> <nueva-ruta>"
-#: builtin/worktree.c:22
+#: builtin/worktree.c:21
msgid "git worktree prune [<options>]"
msgstr "git worktree prune [<opciones>]"
-#: builtin/worktree.c:23
+#: builtin/worktree.c:22
msgid "git worktree remove [<options>] <worktree>"
msgstr "git worktree remove [<opciones>] <worktree>"
-#: builtin/worktree.c:24
+#: builtin/worktree.c:23
msgid "git worktree unlock <path>"
msgstr "git worktree unlock <ruta>"
-#: builtin/worktree.c:61 builtin/worktree.c:899
+#: builtin/worktree.c:60 builtin/worktree.c:898
#, c-format
msgid "failed to delete '%s'"
msgstr "falló al borrar '%s'"
-#: builtin/worktree.c:80
+#: builtin/worktree.c:79
#, c-format
msgid "Removing worktrees/%s: not a valid directory"
msgstr "Removiendo el worktrees/%s: no es un directorio válido"
-#: builtin/worktree.c:86
+#: builtin/worktree.c:85
#, c-format
msgid "Removing worktrees/%s: gitdir file does not exist"
msgstr "Removiendo worktrees/%s: archivo gitdir no existe"
-#: builtin/worktree.c:91 builtin/worktree.c:100
+#: builtin/worktree.c:90 builtin/worktree.c:99
#, c-format
msgid "Removing worktrees/%s: unable to read gitdir file (%s)"
msgstr "Removiendo worktrees/%s: no es posible leer el archivo gitdir (%s)"
-#: builtin/worktree.c:110
+#: builtin/worktree.c:109
#, c-format
msgid ""
"Removing worktrees/%s: short read (expected %<PRIuMAX> bytes, read "
@@ -20670,36 +20756,36 @@ msgstr ""
"Removiendo árboles de trabajo/%s: lectura corta (se esperan %<PRIuMAX> "
"bytes, %<PRIuMAX> leídos)"
-#: builtin/worktree.c:118
+#: builtin/worktree.c:117
#, c-format
msgid "Removing worktrees/%s: invalid gitdir file"
msgstr "Removiendo worktrees/%s: archivo gitdir inválido"
-#: builtin/worktree.c:127
+#: builtin/worktree.c:126
#, c-format
msgid "Removing worktrees/%s: gitdir file points to non-existent location"
msgstr ""
"Removiendo worktrees/%s: archivo gitdir apunta a una ubicación no existente"
-#: builtin/worktree.c:166
+#: builtin/worktree.c:165
msgid "report pruned working trees"
msgstr "reporta árboles de trabajo recortados"
-#: builtin/worktree.c:168
+#: builtin/worktree.c:167
msgid "expire working trees older than <time>"
msgstr "expirar árboles de trabajo más viejos a <tiempo>"
-#: builtin/worktree.c:235
+#: builtin/worktree.c:234
#, c-format
msgid "'%s' already exists"
msgstr "'%s' ya existe"
-#: builtin/worktree.c:252
+#: builtin/worktree.c:251
#, c-format
msgid "unable to re-add worktree '%s'"
msgstr "no es posible volver a agregar el árbol '%s'"
-#: builtin/worktree.c:257
+#: builtin/worktree.c:256
#, c-format
msgid ""
"'%s' is a missing but locked worktree;\n"
@@ -20709,7 +20795,7 @@ msgstr ""
"usa 'add -f -f' para sobreescribir, o 'unlock' y 'prune' o 'remove' para "
"limpiar"
-#: builtin/worktree.c:259
+#: builtin/worktree.c:258
#, c-format
msgid ""
"'%s' is a missing but already registered worktree;\n"
@@ -20718,124 +20804,124 @@ msgstr ""
"'%s' es un árbol de trabajo faltante pero ya registrado;\n"
"usa 'add -f' para sobreescribir, o 'prune' o 'remove' para limpiar"
-#: builtin/worktree.c:309
+#: builtin/worktree.c:308
#, c-format
msgid "could not create directory of '%s'"
msgstr "no se pudo crear directorio de '%s'"
-#: builtin/worktree.c:440 builtin/worktree.c:446
+#: builtin/worktree.c:439 builtin/worktree.c:445
#, c-format
msgid "Preparing worktree (new branch '%s')"
msgstr "Preparando árbol de trabajo (nueva rama '%s')"
-#: builtin/worktree.c:442
+#: builtin/worktree.c:441
#, c-format
msgid "Preparing worktree (resetting branch '%s'; was at %s)"
msgstr "Preparando árbol de trabajo (reiniciando rama '%s'; estaba en %s)"
-#: builtin/worktree.c:451
+#: builtin/worktree.c:450
#, c-format
msgid "Preparing worktree (checking out '%s')"
msgstr "Preparando árbol de trabajo (haciendo checkout a '%s')"
-#: builtin/worktree.c:457
+#: builtin/worktree.c:456
#, c-format
msgid "Preparing worktree (detached HEAD %s)"
msgstr "Preparando árbol de trabajo (HEAD desacoplado %s)"
-#: builtin/worktree.c:498
+#: builtin/worktree.c:497
msgid "checkout <branch> even if already checked out in other worktree"
msgstr ""
"hacer checkout a <rama> incluso si ya ha hecho checkout en otro árbol de "
"trabajo"
-#: builtin/worktree.c:501
+#: builtin/worktree.c:500
msgid "create a new branch"
msgstr "crear una nueva rama"
-#: builtin/worktree.c:503
+#: builtin/worktree.c:502
msgid "create or reset a branch"
msgstr "crear o restablecer una rama"
-#: builtin/worktree.c:505
+#: builtin/worktree.c:504
msgid "populate the new working tree"
msgstr "popular el nuevo árbol de trabajo"
-#: builtin/worktree.c:506
+#: builtin/worktree.c:505
msgid "keep the new working tree locked"
msgstr "mantener el nuevo árbol de trabajo bloqueado"
-#: builtin/worktree.c:509
+#: builtin/worktree.c:508
msgid "set up tracking mode (see git-branch(1))"
msgstr "configurando modo tracking (mirar git-branch(1))"
-#: builtin/worktree.c:512
+#: builtin/worktree.c:511
msgid "try to match the new branch name with a remote-tracking branch"
msgstr ""
"intentar emparejar el nuevo nombre de rama con una rama de rastreo remoto"
-#: builtin/worktree.c:520
+#: builtin/worktree.c:519
msgid "-b, -B, and --detach are mutually exclusive"
msgstr "-b, -B, y --detach son mutuamente exclusivas"
-#: builtin/worktree.c:581
+#: builtin/worktree.c:580
msgid "--[no-]track can only be used if a new branch is created"
msgstr "--[no-]track solo puede ser usado si una nueva rama es creada"
-#: builtin/worktree.c:681
+#: builtin/worktree.c:680
msgid "reason for locking"
msgstr "razón para bloquear"
-#: builtin/worktree.c:693 builtin/worktree.c:726 builtin/worktree.c:800
-#: builtin/worktree.c:927
+#: builtin/worktree.c:692 builtin/worktree.c:725 builtin/worktree.c:799
+#: builtin/worktree.c:926
#, c-format
msgid "'%s' is not a working tree"
msgstr "'%s' no es un árbol de trabajo"
-#: builtin/worktree.c:695 builtin/worktree.c:728
+#: builtin/worktree.c:694 builtin/worktree.c:727
msgid "The main working tree cannot be locked or unlocked"
msgstr "El árbol de trabajo principal no puede ser bloqueado ni desbloqueado"
-#: builtin/worktree.c:700
+#: builtin/worktree.c:699
#, c-format
msgid "'%s' is already locked, reason: %s"
msgstr "'%s' ya está bloqueado; razón: %s"
-#: builtin/worktree.c:702
+#: builtin/worktree.c:701
#, c-format
msgid "'%s' is already locked"
msgstr "'%s' ya está bloqueado"
-#: builtin/worktree.c:730
+#: builtin/worktree.c:729
#, c-format
msgid "'%s' is not locked"
msgstr "'%s' no está bloqueado"
-#: builtin/worktree.c:771
+#: builtin/worktree.c:770
msgid "working trees containing submodules cannot be moved or removed"
msgstr ""
"árboles de trabajo conteniendo submódulos no puede ser movidos o eliminado"
-#: builtin/worktree.c:779
+#: builtin/worktree.c:778
msgid "force move even if worktree is dirty or locked"
msgstr "forzar move incluso si el árbol de trabajo está sucio o bloqueado"
-#: builtin/worktree.c:802 builtin/worktree.c:929
+#: builtin/worktree.c:801 builtin/worktree.c:928
#, c-format
msgid "'%s' is a main working tree"
msgstr "'%s' es un árbol de trabajo principal"
-#: builtin/worktree.c:807
+#: builtin/worktree.c:806
#, c-format
msgid "could not figure out destination name from '%s'"
msgstr "no se pudo descubrir el nombre de destino de '%s'"
-#: builtin/worktree.c:813
+#: builtin/worktree.c:812
#, c-format
msgid "target '%s' already exists"
msgstr "el objetivo '%s' ya existe"
-#: builtin/worktree.c:821
+#: builtin/worktree.c:820
#, c-format
msgid ""
"cannot move a locked working tree, lock reason: %s\n"
@@ -20844,7 +20930,7 @@ msgstr ""
"no se puede mover un árbol de trabajo bloqueado, motivo del bloqueo: %s\n"
"use 'move -f -f' para sobreescribir o desbloquear primero"
-#: builtin/worktree.c:823
+#: builtin/worktree.c:822
msgid ""
"cannot move a locked working tree;\n"
"use 'move -f -f' to override or unlock first"
@@ -20852,36 +20938,37 @@ msgstr ""
"no se puede mover un árbol de trabajo bloqueado;\n"
"use 'move -f -f' para sobreescribir o desbloquear primero"
-#: builtin/worktree.c:826
+#: builtin/worktree.c:825
#, c-format
msgid "validation failed, cannot move working tree: %s"
msgstr "falló validación, no se puede mover el árbol de trabajo: %s"
-#: builtin/worktree.c:831
+#: builtin/worktree.c:830
#, c-format
msgid "failed to move '%s' to '%s'"
msgstr "falló al mover '%s' a '%s'"
-#: builtin/worktree.c:879
+#: builtin/worktree.c:878
#, c-format
msgid "failed to run 'git status' on '%s'"
msgstr "falló al ejecutar 'git status' en '%s'"
-#: builtin/worktree.c:883
+#: builtin/worktree.c:882
#, c-format
-msgid "'%s' is dirty, use --force to delete it"
-msgstr "'%s' está sucio, use --force para borrarlo"
+msgid "'%s' contains modified or untracked files, use --force to delete it"
+msgstr ""
+"'%s' contiene archivos no rastreados o modificados, use --force para borrarlo"
-#: builtin/worktree.c:888
+#: builtin/worktree.c:887
#, c-format
msgid "failed to run 'git status' on '%s', code %d"
msgstr "no se pudo ejecutar 'git status' en '%s', código %d"
-#: builtin/worktree.c:911
+#: builtin/worktree.c:910
msgid "force removal even if worktree is dirty or locked"
msgstr "forzar remoción incluso si el árbol de trabajo está sucio o bloqueado"
-#: builtin/worktree.c:934
+#: builtin/worktree.c:933
#, c-format
msgid ""
"cannot remove a locked working tree, lock reason: %s\n"
@@ -20890,7 +20977,7 @@ msgstr ""
"no se pueden eliminar árbol de trabajo bloqueado, razón del bloqueo: %s\n"
"use 'remove -f -f' para sobreescribir o desbloquear primero"
-#: builtin/worktree.c:936
+#: builtin/worktree.c:935
msgid ""
"cannot remove a locked working tree;\n"
"use 'remove -f -f' to override or unlock first"
@@ -20898,7 +20985,7 @@ msgstr ""
"no se pueden eliminar árbol de trabajo bloqueado;\n"
"use 'remove -f -f' para sobreescribir o desbloquear primero"
-#: builtin/worktree.c:939
+#: builtin/worktree.c:938
#, c-format
msgid "validation failed, cannot remove working tree: %s"
msgstr "falló validación, no se puede eliminar árbol de trabajo: %s"
@@ -20919,6 +21006,16 @@ msgstr "escribir objeto de árbol para un subdirectorio <prefijo>"
msgid "only useful for debugging"
msgstr "sólo útil para depurar"
+#: fast-import.c:3118
+#, c-format
+msgid "Expected 'mark' command, got %s"
+msgstr "se esperaba comando 'mark', se obtuvo %s"
+
+#: fast-import.c:3123
+#, c-format
+msgid "Expected 'to' command, got %s"
+msgstr "se esperaba comando 'to', se obtuvo %s"
+
#: credential-cache--daemon.c:223
#, c-format
msgid ""
@@ -21031,39 +21128,39 @@ msgstr ""
"alias '%s' cambia las variables de entorno.\n"
"Puedes usar '!git' en el alias para hacer esto"
-#: git.c:377
+#: git.c:376
#, c-format
msgid "empty alias for %s"
msgstr "alias vacío para %s"
-#: git.c:380
+#: git.c:379
#, c-format
msgid "recursive alias: %s"
msgstr "alias recursivo: %s"
-#: git.c:460
+#: git.c:459
msgid "write failure on standard output"
msgstr "error de escritura en standard output"
-#: git.c:462
+#: git.c:461
msgid "unknown write failure on standard output"
msgstr "error desconocido de escritura en standard output"
-#: git.c:464
+#: git.c:463
msgid "close failed on standard output"
msgstr "cierre falló en standard output"
-#: git.c:793
+#: git.c:792
#, c-format
msgid "alias loop detected: expansion of '%s' does not terminate:%s"
msgstr "bucle de alias detectado: expansión de '%s' no termina: %s"
-#: git.c:843
+#: git.c:842
#, c-format
msgid "cannot handle %s as a builtin"
msgstr "no se puede manejar %s como un builtin"
-#: git.c:856
+#: git.c:855
#, c-format
msgid ""
"usage: %s\n"
@@ -21074,12 +21171,12 @@ msgstr ""
"\n"
"\n"
-#: git.c:876
+#: git.c:875
#, c-format
msgid "expansion of alias '%s' failed; '%s' is not a git command\n"
msgstr "expansión del alias '%s' falló; '%s' no es un comando de git\n"
-#: git.c:888
+#: git.c:887
#, c-format
msgid "failed to run command '%s': %s\n"
msgstr "falló al ejecutar comando '%s': %s\n"
@@ -21097,32 +21194,32 @@ msgstr "Delegación de control no es soportada con cURL < 7.22.0"
msgid "Public key pinning not supported with cURL < 7.44.0"
msgstr "Fijación de llave pública no es soportada con cURL < 7.44.0"
-#: http.c:876
+#: http.c:878
msgid "CURLSSLOPT_NO_REVOKE not supported with cURL < 7.44.0"
msgstr "CURLSSLOPT_NO_REVOKE no soportado con cURL < 7.44.0"
-#: http.c:949
+#: http.c:951
msgid "Protocol restrictions not supported with cURL < 7.19.4"
msgstr "Restricción de protocolo no soportada con cURL < 7.19.4"
-#: http.c:1085
+#: http.c:1088
#, c-format
msgid "Unsupported SSL backend '%s'. Supported SSL backends:"
msgstr "Backend SSL no soportado '%s'. Backends SSL soportados:"
-#: http.c:1092
+#: http.c:1095
#, c-format
msgid "Could not set SSL backend to '%s': cURL was built without SSL backends"
msgstr ""
"No se pudo configurar backend SSL a '%s': cURL fue construido sin backends "
"SSL"
-#: http.c:1096
+#: http.c:1099
#, c-format
msgid "Could not set SSL backend to '%s': already set"
msgstr "No se pudo configurar backend SSL para '%s': ya configurado"
-#: http.c:1965
+#: http.c:1968
#, c-format
msgid ""
"unable to update url base from redirection:\n"
@@ -21133,131 +21230,131 @@ msgstr ""
" preguntaba por: %s\n"
" redireccionamiento: %s"
-#: remote-curl.c:157
+#: remote-curl.c:166
#, c-format
msgid "invalid quoting in push-option value: '%s'"
msgstr "quoting inválido en valor de push-option: '%s'"
-#: remote-curl.c:254
+#: remote-curl.c:263
#, c-format
msgid "%sinfo/refs not valid: is this a git repository?"
msgstr "%sinfo/refs no es válido: ¿es este un repositorio git?"
-#: remote-curl.c:355
+#: remote-curl.c:364
msgid "invalid server response; expected service, got flush packet"
msgstr ""
"respuesta de servidor inválida; se esperaba servicio, se obtuvo un flush "
"packet"
-#: remote-curl.c:386
+#: remote-curl.c:395
#, c-format
msgid "invalid server response; got '%s'"
msgstr "respuesta de servidor inválida; se obtuvo '%s'"
-#: remote-curl.c:446
+#: remote-curl.c:455
#, c-format
msgid "repository '%s' not found"
msgstr "repositorio '%s' no encontrado"
-#: remote-curl.c:450
+#: remote-curl.c:459
#, c-format
msgid "Authentication failed for '%s'"
msgstr "Autenticación falló para '%s'"
-#: remote-curl.c:454
+#: remote-curl.c:463
#, c-format
msgid "unable to access '%s': %s"
msgstr "no es posible acceder '%s':%s"
-#: remote-curl.c:460
+#: remote-curl.c:469
#, c-format
msgid "redirecting to %s"
msgstr "redirigiendo a %s"
-#: remote-curl.c:584
+#: remote-curl.c:593
msgid "shouldn't have EOF when not gentle on EOF"
msgstr "no debería tener EOF cuando no es gentil en EOF"
-#: remote-curl.c:664
+#: remote-curl.c:673
msgid "unable to rewind rpc post data - try increasing http.postBuffer"
msgstr ""
"no es posible rebobinar rpc post data - intenta incrementando http.postBuffer"
-#: remote-curl.c:724
+#: remote-curl.c:733
#, c-format
msgid "RPC failed; %s"
msgstr "RPC falló; %s"
-#: remote-curl.c:764
+#: remote-curl.c:773
msgid "cannot handle pushes this big"
msgstr "no se puede manejar pushes tan grandes"
-#: remote-curl.c:879
+#: remote-curl.c:888
#, c-format
msgid "cannot deflate request; zlib deflate error %d"
msgstr "no se puede desinflar el request; zlib deflate error %d"
-#: remote-curl.c:883
+#: remote-curl.c:892
#, c-format
msgid "cannot deflate request; zlib end error %d"
msgstr "no se puede desinflar el request; zlib end error %d"
-#: remote-curl.c:1014
+#: remote-curl.c:1023
msgid "dumb http transport does not support shallow capabilities"
msgstr "dump http transport no soporta capacidades superficiales"
-#: remote-curl.c:1028
+#: remote-curl.c:1037
msgid "fetch failed."
msgstr "fetch falló."
-#: remote-curl.c:1076
+#: remote-curl.c:1085
msgid "cannot fetch by sha1 over smart http"
msgstr "no se puede hacer fetch por sha1 sobre smart http"
-#: remote-curl.c:1120 remote-curl.c:1126
+#: remote-curl.c:1129 remote-curl.c:1135
#, c-format
msgid "protocol error: expected sha/ref, got '%s'"
msgstr "error de protocolo: se esperaba sha/ref, se obtuvo '%s'"
-#: remote-curl.c:1138 remote-curl.c:1252
+#: remote-curl.c:1147 remote-curl.c:1261
#, c-format
msgid "http transport does not support %s"
msgstr "http transport no soporta %s"
-#: remote-curl.c:1174
+#: remote-curl.c:1183
msgid "git-http-push failed"
msgstr "git-http-push falló"
-#: remote-curl.c:1360
+#: remote-curl.c:1367
msgid "remote-curl: usage: git remote-curl <remote> [<url>]"
msgstr "remote-curl: uso: git remote-curl <remote> [<url>]"
-#: remote-curl.c:1392
+#: remote-curl.c:1399
msgid "remote-curl: error reading command stream from git"
msgstr "remote-curl: error leyendo command stream de git"
-#: remote-curl.c:1399
+#: remote-curl.c:1406
msgid "remote-curl: fetch attempted without a local repo"
msgstr "remote-curl: fetch intentado sin un repositorio local"
-#: remote-curl.c:1439
+#: remote-curl.c:1446
#, c-format
msgid "remote-curl: unknown command '%s' from git"
msgstr "remote-curl: comando '%s' desconocido de git"
-#: list-objects-filter-options.h:61
+#: list-objects-filter-options.h:85
msgid "args"
msgstr "args"
-#: list-objects-filter-options.h:62
+#: list-objects-filter-options.h:86
msgid "object filtering"
msgstr "filtrado de objeto"
-#: parse-options.h:170
+#: parse-options.h:179
msgid "expiry-date"
msgstr "fecha de expiración"
-#: parse-options.h:184
+#: parse-options.h:193
msgid "no-op (backward compatibility)"
msgstr "no-op (compatibilidad con versiones anteriores)"
@@ -22894,7 +22991,7 @@ msgstr ""
"---\n"
"Para eliminar '%s' líneas, haga de ellas líneas ' ' (contexto).\n"
"Para eliminar '%s' líneas, bórrelas.\n"
-"Lineas comenzando con %s serán removidas.\n"
+"Lineas comenzando con %s serán eliminadas.\n"
#. TRANSLATORS: 'it' refers to the patch mentioned in the previous messages.
#: git-add--interactive.perl:1124
@@ -22904,7 +23001,7 @@ msgid ""
"aborted and the hunk is left unchanged.\n"
msgstr ""
"Si esto no aplica de manera limpia, se te da la oportunidad de \n"
-"editar nuevamente. Si todas las líneas del hunk son removidas, entonces \n"
+"editar nuevamente. Si todas las líneas del hunk son eliminadas, entonces \n"
"la edición es abortada y el hunk queda sin cambios.\n"
#: git-add--interactive.perl:1138
@@ -22922,7 +23019,8 @@ msgstr "falló al abrir el archivo de edición del hunk para lectura: %s"
msgid ""
"Your edited hunk does not apply. Edit again (saying \"no\" discards!) [y/n]? "
msgstr ""
-"Tu hunk editado no aplica. Editar nuevamente (decir \"no\" descarta!) [y/n]? "
+"Tu hunk editado no aplica. ¿Editar nuevamente (¡decir \"no\" descarta!) [y/"
+"n]? "
#: git-add--interactive.perl:1246
msgid ""
@@ -23062,11 +23160,11 @@ msgstr ""
#: git-add--interactive.perl:1340
msgid "The selected hunks do not apply to the index!\n"
-msgstr "Los hunks seleccionados no aplican al índice!\n"
+msgstr "¡Los hunks seleccionados no aplican al índice!\n"
#: git-add--interactive.perl:1341
msgid "Apply them to the worktree anyway? "
-msgstr "Aplicarlos al árbol de trabajo de todas maneras? "
+msgstr "¿Aplicarlos al árbol de trabajo de todas maneras? "
#: git-add--interactive.perl:1344
msgid "Nothing was applied.\n"
@@ -23092,124 +23190,126 @@ msgstr "Actualización del parche"
#: git-add--interactive.perl:1426
#, perl-format
msgid "Stage mode change [y,n,q,a,d%s,?]? "
-msgstr "Cambio de modo de stage [y,n,q,a,d%s,?]? "
+msgstr "¿Cambio de modo de stage [y,n,q,a,d%s,?]? "
#: git-add--interactive.perl:1427
#, perl-format
msgid "Stage deletion [y,n,q,a,d%s,?]? "
-msgstr "Aplicar stage al borrado [y,n,q,a,d%s,?]? "
+msgstr "¿Aplicar stage al borrado [y,n,q,a,d%s,?]? "
#: git-add--interactive.perl:1428
#, perl-format
msgid "Stage this hunk [y,n,q,a,d%s,?]? "
-msgstr "Aplicar stage a este hunk [y,n,q,a,d%s,?]? "
+msgstr "¿Aplicar stage a este hunk [y,n,q,a,d%s,?]? "
#: git-add--interactive.perl:1431
#, perl-format
msgid "Stash mode change [y,n,q,a,d%s,?]? "
-msgstr "Aplicar stash al cambio de modo [y,n,q,a,d%s,?]? "
+msgstr "¿Aplicar stash al cambio de modo [y,n,q,a,d%s,?]? "
#: git-add--interactive.perl:1432
#, perl-format
msgid "Stash deletion [y,n,q,a,d%s,?]? "
-msgstr "Aplicar stash al borrado [y,n,q,a,d%s,?]? "
+msgstr "¿Aplicar stash al borrado [y,n,q,a,d%s,?]? "
#: git-add--interactive.perl:1433
#, perl-format
msgid "Stash this hunk [y,n,q,a,d%s,?]? "
-msgstr "Aplicar stash a este hunk [y,n,q,a,d%s,?]? "
+msgstr "¿Aplicar stash a este hunk [y,n,q,a,d%s,?]? "
#: git-add--interactive.perl:1436
#, perl-format
msgid "Unstage mode change [y,n,q,a,d%s,?]? "
-msgstr "Sacar cambio de modo del stage [y,n,q,a,d%s,?]? "
+msgstr "¿Sacar cambio de modo del stage [y,n,q,a,d%s,?]? "
#: git-add--interactive.perl:1437
#, perl-format
msgid "Unstage deletion [y,n,q,a,d%s,?]? "
-msgstr "Sacar borrado del stage [y,n,q,a,d%s,?]? "
+msgstr "¿Sacar borrado del stage [y,n,q,a,d%s,?]? "
#: git-add--interactive.perl:1438
#, perl-format
msgid "Unstage this hunk [y,n,q,a,d%s,?]? "
-msgstr "Sacar este hunk del stage [y,n,q,a,d%s,?]? "
+msgstr "¿Sacar este hunk del stage [y,n,q,a,d%s,?]? "
#: git-add--interactive.perl:1441
#, perl-format
msgid "Apply mode change to index [y,n,q,a,d%s,?]? "
-msgstr "Aplicar cambio de modo al índice [y,n,q,a,d%s,?]? "
+msgstr "¿Aplicar cambio de modo al índice [y,n,q,a,d%s,?]? "
#: git-add--interactive.perl:1442
#, perl-format
msgid "Apply deletion to index [y,n,q,a,d%s,?]? "
-msgstr "Aplicar borrado al índice [y,n,q,a,d%s,?]? "
+msgstr "¿Aplicar borrado al índice [y,n,q,a,d%s,?]? "
#: git-add--interactive.perl:1443
#, perl-format
msgid "Apply this hunk to index [y,n,q,a,d%s,?]? "
-msgstr "Aplicar este hunk al índice [y,n,q,a,d%s,?]? "
+msgstr "¿Aplicar este hunk al índice [y,n,q,a,d%s,?]? "
#: git-add--interactive.perl:1446 git-add--interactive.perl:1461
#, perl-format
msgid "Discard mode change from worktree [y,n,q,a,d%s,?]? "
-msgstr "Descartar cambio de modo del árbol de trabajo [y,n,q,a,d%s,?]? "
+msgstr "¿Descartar cambio de modo del árbol de trabajo [y,n,q,a,d%s,?]? "
#: git-add--interactive.perl:1447 git-add--interactive.perl:1462
#, perl-format
msgid "Discard deletion from worktree [y,n,q,a,d%s,?]? "
-msgstr "Descartar borrado del árbol de trabajo [y,n,q,a,d%s,?]? "
+msgstr "¿Descartar borrado del árbol de trabajo [y,n,q,a,d%s,?]? "
#: git-add--interactive.perl:1448 git-add--interactive.perl:1463
#, perl-format
msgid "Discard this hunk from worktree [y,n,q,a,d%s,?]? "
-msgstr "Descartar este hunk del árbol de trabajo [y,n,q,a,d%s,?]? "
+msgstr "¿Descartar este hunk del árbol de trabajo [y,n,q,a,d%s,?]? "
#: git-add--interactive.perl:1451
#, perl-format
msgid "Discard mode change from index and worktree [y,n,q,a,d%s,?]? "
msgstr ""
-"Descartar cambio de modo del índice y el árbol de trabajo [y,n,q,a,d%s,?]? "
+"¿Descartar cambio de modo del índice y el árbol de trabajo [y,n,q,a,d%s,?]? "
#: git-add--interactive.perl:1452
#, perl-format
msgid "Discard deletion from index and worktree [y,n,q,a,d%s,?]? "
-msgstr "Descartar borrado del índice y el árbol de trabajo [y,n,q,a,d%s,?]? "
+msgstr "¿Descartar borrado del índice y el árbol de trabajo [y,n,q,a,d%s,?]? "
#: git-add--interactive.perl:1453
#, perl-format
msgid "Discard this hunk from index and worktree [y,n,q,a,d%s,?]? "
-msgstr "Descartar este hunk del índice y el árbol de trabajo [y,n,q,a,d%s,?]? "
+msgstr ""
+"¿Descartar este hunk del índice y el árbol de trabajo [y,n,q,a,d%s,?]? "
#: git-add--interactive.perl:1456
#, perl-format
msgid "Apply mode change to index and worktree [y,n,q,a,d%s,?]? "
msgstr ""
-"Aplicar cambio de modo para el índice y el árbol de trabajo [y,n,q,a,d%s,?]? "
+"¿Aplicar cambio de modo para el índice y el árbol de trabajo [y,n,q,a,d"
+"%s,?]? "
#: git-add--interactive.perl:1457
#, perl-format
msgid "Apply deletion to index and worktree [y,n,q,a,d%s,?]? "
-msgstr "Aplicar borrado al índice y al árbol de trabajo [y,n,q,a,d%s,?]? "
+msgstr "¿Aplicar borrado al índice y al árbol de trabajo [y,n,q,a,d%s,?]? "
#: git-add--interactive.perl:1458
#, perl-format
msgid "Apply this hunk to index and worktree [y,n,q,a,d%s,?]? "
-msgstr "Aplicar este hunk al índice y árbol de trabajo [y,n,q,a,d,/%s,?]? "
+msgstr "¿Aplicar este hunk al índice y árbol de trabajo [y,n,q,a,d,/%s,?]? "
#: git-add--interactive.perl:1466
#, perl-format
msgid "Apply mode change to worktree [y,n,q,a,d%s,?]? "
-msgstr "Aplicar cambio de modo para el árbol de trabajo [y,n,q,a,d%s,?]? "
+msgstr "¿Aplicar cambio de modo para el árbol de trabajo [y,n,q,a,d%s,?]? "
#: git-add--interactive.perl:1467
#, perl-format
msgid "Apply deletion to worktree [y,n,q,a,d%s,?]? "
-msgstr "Aplicar borrado al árbol de trabajo [y,n,q,a,d%s,?]? "
+msgstr "¿Aplicar borrado al árbol de trabajo [y,n,q,a,d%s,?]? "
#: git-add--interactive.perl:1468
#, perl-format
msgid "Apply this hunk to worktree [y,n,q,a,d%s,?]? "
-msgstr "Aplicar este hunk al árbol de trabajo [y,n,q,a,d,/%s,?]? "
+msgstr "¿Aplicar este hunk al árbol de trabajo [y,n,q,a,d,/%s,?]? "
#: git-add--interactive.perl:1568
msgid "No other hunks to goto\n"
@@ -23217,11 +23317,11 @@ msgstr "No hay más pedazos para el ir\n"
#: git-add--interactive.perl:1575
msgid "go to which hunk (<ret> to see more)? "
-msgstr "a que hunk ir (<enter> para ver más)? "
+msgstr "¿a que hunk ir (<enter> para ver más)? "
#: git-add--interactive.perl:1577
msgid "go to which hunk? "
-msgstr "a que hunk ir? "
+msgstr "¿a que hunk ir? "
#: git-add--interactive.perl:1586
#, perl-format
@@ -23241,7 +23341,7 @@ msgstr "No hay más pedazos para buscar\n"
#: git-add--interactive.perl:1621
msgid "search for regex? "
-msgstr "buscar para regexp? "
+msgstr "¿buscar para regexp? "
#: git-add--interactive.perl:1634
#, perl-format
@@ -23430,7 +23530,7 @@ msgstr ""
#: git-send-email.perl:718
#, perl-format
msgid "No subject line in %s?"
-msgstr "No hay línea de subject en %s?"
+msgstr "¿No hay línea de subject en %s?"
#: git-send-email.perl:728
#, perl-format
@@ -23445,7 +23545,7 @@ msgid ""
"\n"
"Clear the body content if you don't wish to send a summary.\n"
msgstr ""
-"Lineas que comienzan en \"GIT:\" serán removidas.\n"
+"Lineas que comienzan en \"GIT:\" serán eliminadas.\n"
"Considere incluir un diffstat global o una tabla de contenidos\n"
"para el parche que estás escribiendo.\n"
"\n"
@@ -23469,7 +23569,7 @@ msgstr "Archivo de resumen está vacío, saltando al siguiente\n"
#: git-send-email.perl:858
#, perl-format
msgid "Are you sure you want to use <%s> [y/N]? "
-msgstr "Estás seguro de que deseas usar <%s> [y/N]? "
+msgstr "¿Estás seguro de que deseas usar <%s> [y/N]? "
#: git-send-email.perl:913
msgid ""
@@ -23481,7 +23581,7 @@ msgstr ""
#: git-send-email.perl:918
msgid "Which 8bit encoding should I declare [UTF-8]? "
-msgstr "Que codificación de 8bit debería declarar [UTF-8]? "
+msgstr "¿Que codificación de 8bit debería declarar [UTF-8]? "
#: git-send-email.perl:926
#, perl-format
@@ -23498,7 +23598,7 @@ msgstr ""
#: git-send-email.perl:945
msgid "To whom should the emails be sent (if anyone)?"
-msgstr "A quien se deben mandar los correos (si existe)?"
+msgstr "¿A quien se deben mandar los correos (si existe)?"
#: git-send-email.perl:963
#, perl-format
@@ -23508,7 +23608,7 @@ msgstr "fatal: alias '%s' se expande a si mismo\n"
#: git-send-email.perl:975
msgid "Message-ID to be used as In-Reply-To for the first email (if any)? "
msgstr ""
-"Qué id de mensaje será usado como En-Respuesta-Para en el primer email (si "
+"¿Qué id de mensaje será usado como En-Respuesta-Para en el primer email (si "
"existe alguno)? "
#: git-send-email.perl:1033 git-send-email.perl:1041
@@ -23521,7 +23621,7 @@ msgstr "error: no es posible extraer una dirección válida de %s\n"
#. at this point.
#: git-send-email.perl:1045
msgid "What to do with this address? ([q]uit|[d]rop|[e]dit): "
-msgstr "Que hacer con esta dirección? ([q]salir|[d]botar|[e]ditar): "
+msgstr "¿Que hacer con esta dirección? ([q]salir|[d]botar|[e]ditar): "
#: git-send-email.perl:1362
#, perl-format
@@ -23558,7 +23658,7 @@ msgstr ""
#. at this point.
#: git-send-email.perl:1460
msgid "Send this email? ([y]es|[n]o|[e]dit|[q]uit|[a]ll): "
-msgstr "Mandar este email? ([y]si||[n]o|[e]editar|[q]salir|[a]todo): "
+msgstr "¿Mandar este email? ([y]si||[n]o|[e]editar|[q]salir|[a]todo): "
#: git-send-email.perl:1463
msgid "Send this email reply required"
@@ -23571,12 +23671,12 @@ msgstr "El servidor SMTP no esta definido adecuadamente."
#: git-send-email.perl:1538
#, perl-format
msgid "Server does not support STARTTLS! %s"
-msgstr "El servidor no soporta STARTTLS! %s"
+msgstr "¡El servidor no soporta STARTTLS! %s"
#: git-send-email.perl:1543 git-send-email.perl:1547
#, perl-format
msgid "STARTTLS failed! %s"
-msgstr "Falló STARTTLS! %s"
+msgstr "¡Falló STARTTLS! %s"
#: git-send-email.perl:1556
msgid "Unable to initialize SMTP properly. Check config and use --smtp-debug."
@@ -23682,7 +23782,45 @@ msgstr "Saltando %s con el sufijo de backup '%s'.\n"
#: git-send-email.perl:1978
#, perl-format
msgid "Do you really want to send %s? [y|N]: "
-msgstr "Realmente deseas mandar %s?[y|N]: "
+msgstr "¿Realmente deseas mandar %s?[y|N]: "
+
+#~ msgid "unknown core.untrackedCache value '%s'; using 'keep' default value"
+#~ msgstr ""
+#~ "valor core.untrackedCache '%s' desconocido; usando 'keep' como valor por "
+#~ "defecto"
+
+#~ msgid "cannot change partial clone promisor remote"
+#~ msgstr "no se puede cambiar un clon parcial remoto promisor"
+
+#~ msgid "error building trees"
+#~ msgstr "error construyendo árboles"
+
+#~ msgid "invalid date format '%s' in '%s'"
+#~ msgstr "formato de fecha inválido '%s' en '%s'"
+
+#~ msgid "writing root commit"
+#~ msgstr "escribiendo commit raíz"
+
+#~ msgid "staged changes in the following files may be lost: %s"
+#~ msgstr ""
+#~ "cambios en el área de stage en el siguiente archivo pueden ser perdidos: "
+#~ "%s"
+
+#~ msgid ""
+#~ "--filter can only be used with the remote configured in extensions."
+#~ "partialClone"
+#~ msgstr ""
+#~ "--filter solo puede ser usado con el remoto configurado en extensions."
+#~ "partialClone"
+
+#~ msgid "verify commit-msg hook"
+#~ msgstr "verificar el hook commit-msg"
+
+#~ msgid "cannot combine '--rebase-merges' with '--strategy-option'"
+#~ msgstr "no se puede combinar '--rebase-merges' con '--strategy-option'"
+
+#~ msgid "invalid sparse value '%s'"
+#~ msgstr "valor disperso inválido: '%s'"
#~ msgid "Server supports multi_ack_detailed"
#~ msgstr "El servidor soporta ulti_ack_detailed"
diff --git a/po/fr.po b/po/fr.po
index 55c7db6..a89a5ed 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -75,8 +75,8 @@ msgid ""
msgstr ""
"Project-Id-Version: git\n"
"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2019-08-10 20:12+0800\n"
-"PO-Revision-Date: 2019-08-10 18:17+0200\n"
+"POT-Creation-Date: 2019-10-28 13:19+0800\n"
+"PO-Revision-Date: 2019-10-28 20:35+0100\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"
@@ -128,7 +128,7 @@ msgstr ""
msgid "Exiting because of an unresolved conflict."
msgstr "Abandon à cause de conflit non résolu."
-#: advice.c:193 builtin/merge.c:1327
+#: advice.c:193 builtin/merge.c:1332
msgid "You have not concluded your merge (MERGE_HEAD exists)."
msgstr "Vous n'avez pas terminé votre fusion (MERGE_HEAD existe)."
@@ -275,17 +275,7 @@ msgstr "mode invalide dans la ligne %d : %s"
msgid "inconsistent header lines %d and %d"
msgstr "lignes d'entête inconsistantes %d et %d"
-#: apply.c:1460
-#, c-format
-msgid "recount: unexpected line: %.*s"
-msgstr "recomptage : ligne inattendue : %.*s"
-
-#: apply.c:1529
-#, 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:1551
+#: apply.c:1372
#, c-format
msgid ""
"git diff header lacks filename information when removing %d leading pathname "
@@ -300,83 +290,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:1564
+#: apply.c:1385
#, 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:1752
+#: apply.c:1481
+#, c-format
+msgid "recount: unexpected line: %.*s"
+msgstr "recomptage : ligne inattendue : %.*s"
+
+#: apply.c:1550
+#, 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:1753
msgid "new file depends on old contents"
msgstr "le nouveau fichier dépend de contenus anciens"
-#: apply.c:1754
+#: apply.c:1755
msgid "deleted file still has contents"
msgstr "le fichier supprimé a encore du contenu"
-#: apply.c:1788
+#: apply.c:1789
#, c-format
msgid "corrupt patch at line %d"
msgstr "patch corrompu à la ligne %d"
-#: apply.c:1825
+#: apply.c:1826
#, 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:1828
#, c-format
msgid "deleted file %s still has contents"
msgstr "le fichier supprimé %s a encore du contenu"
-#: apply.c:1830
+#: apply.c:1831
#, 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:1977
+#: apply.c:1978
#, c-format
msgid "corrupt binary patch at line %d: %.*s"
msgstr "patch binaire corrompu à la ligne %d : %.*s"
-#: apply.c:2014
+#: apply.c:2015
#, c-format
msgid "unrecognized binary patch at line %d"
msgstr "patch binaire non reconnu à la ligne %d"
-#: apply.c:2176
+#: apply.c:2177
#, c-format
msgid "patch with only garbage at line %d"
msgstr "patch totalement incompréhensible à la ligne %d"
-#: apply.c:2262
+#: apply.c:2263
#, c-format
msgid "unable to read symlink %s"
msgstr "lecture du lien symbolique %s impossible"
-#: apply.c:2266
+#: apply.c:2267
#, c-format
msgid "unable to open or read %s"
msgstr "ouverture ou lecture de %s impossible"
-#: apply.c:2925
+#: apply.c:2926
#, c-format
msgid "invalid start of line: '%c'"
msgstr "début de ligne invalide : '%c'"
-#: apply.c:3046
+#: apply.c:3047
#, 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:3058
+#: apply.c:3059
#, 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:3064
+#: apply.c:3065
#, c-format
msgid ""
"while searching for:\n"
@@ -385,463 +385,463 @@ msgstr ""
"pendant la recherche de :\n"
"%.*s"
-#: apply.c:3086
+#: apply.c:3087
#, c-format
msgid "missing binary patch data for '%s'"
msgstr "données de patch binaire manquantes pour '%s'"
-#: apply.c:3094
+#: apply.c:3095
#, 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:3141
+#: apply.c:3142
#, 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:3151
+#: apply.c:3152
#, 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:3159
+#: apply.c:3160
#, 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:3177
+#: apply.c:3178
#, 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:3190
+#: apply.c:3191
#, c-format
msgid "binary patch does not apply to '%s'"
msgstr "le patch binaire ne s'applique par correctement à '%s'"
-#: apply.c:3196
+#: apply.c:3197
#, 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:3217
+#: apply.c:3218
#, c-format
msgid "patch failed: %s:%ld"
msgstr "le patch a échoué : %s:%ld"
-#: apply.c:3340
+#: apply.c:3341
#, c-format
msgid "cannot checkout %s"
msgstr "extraction de %s impossible"
-#: apply.c:3392 apply.c:3403 apply.c:3449 midx.c:62 setup.c:279
+#: apply.c:3393 apply.c:3404 apply.c:3450 midx.c:61 setup.c:280
#, c-format
msgid "failed to read %s"
msgstr "échec de la lecture de %s"
-#: apply.c:3400
+#: apply.c:3401
#, c-format
msgid "reading from '%s' beyond a symbolic link"
msgstr "lecture depuis '%s' au-delà d'un lien symbolique"
-#: apply.c:3429 apply.c:3672
+#: apply.c:3430 apply.c:3673
#, c-format
msgid "path %s has been renamed/deleted"
msgstr "le chemin %s a été renommé/supprimé"
-#: apply.c:3515 apply.c:3687
+#: apply.c:3516 apply.c:3688
#, c-format
msgid "%s: does not exist in index"
msgstr "%s : n'existe pas dans l'index"
-#: apply.c:3524 apply.c:3695
+#: apply.c:3525 apply.c:3696
#, c-format
msgid "%s: does not match index"
msgstr "%s : ne correspond pas à l'index"
-#: apply.c:3559
+#: apply.c:3560
msgid "repository lacks the necessary blob 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."
-#: apply.c:3562
+#: apply.c:3563
#, c-format
msgid "Falling back to three-way merge...\n"
msgstr "Retour à une fusion à 3 points…\n"
-#: apply.c:3578 apply.c:3582
+#: apply.c:3579 apply.c:3583
#, c-format
msgid "cannot read the current contents of '%s'"
msgstr "impossible de lire le contenu actuel de '%s'"
-#: apply.c:3594
+#: apply.c:3595
#, c-format
msgid "Failed to fall back on three-way merge...\n"
msgstr "Échec du retour à une fusion à 3 points…\n"
-#: apply.c:3608
+#: apply.c:3609
#, c-format
msgid "Applied patch to '%s' with conflicts.\n"
msgstr "Patch %s appliqué avec des conflits.\n"
-#: apply.c:3613
+#: apply.c:3614
#, c-format
msgid "Applied patch to '%s' cleanly.\n"
msgstr "Patch %s appliqué proprement.\n"
-#: apply.c:3639
+#: apply.c:3640
msgid "removal patch leaves file contents"
msgstr "le patch de suppression laisse un contenu dans le fichier"
-#: apply.c:3712
+#: apply.c:3713
#, c-format
msgid "%s: wrong type"
msgstr "%s : type erroné"
-#: apply.c:3714
+#: apply.c:3715
#, c-format
msgid "%s has type %o, expected %o"
msgstr "%s est de type %o, mais %o attendu"
-#: apply.c:3865 apply.c:3867 read-cache.c:830 read-cache.c:856
+#: apply.c:3866 apply.c:3868 read-cache.c:830 read-cache.c:856
#: read-cache.c:1309
#, c-format
msgid "invalid path '%s'"
msgstr "chemin invalide '%s'"
-#: apply.c:3923
+#: apply.c:3924
#, c-format
msgid "%s: already exists in index"
msgstr "%s : existe déjà dans l'index"
-#: apply.c:3926
+#: apply.c:3927
#, c-format
msgid "%s: already exists in working directory"
msgstr "%s : existe déjà dans la copie de travail"
-#: apply.c:3946
+#: apply.c:3947
#, 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:3951
+#: apply.c:3952
#, 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:3971
+#: apply.c:3972
#, 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:3975
+#: apply.c:3976
#, c-format
msgid "%s: patch does not apply"
msgstr "%s : le patch ne s'applique pas"
-#: apply.c:3990
+#: apply.c:3991
#, c-format
msgid "Checking patch %s..."
msgstr "Vérification du patch %s..."
-#: apply.c:4082
+#: apply.c:4083
#, 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:4089
+#: apply.c:4090
#, 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:4092
+#: apply.c:4093
#, c-format
msgid "sha1 information is lacking or useless (%s)."
msgstr "l'information de sha1 est manquante ou inutilisable (%s)."
-#: apply.c:4097 builtin/checkout.c:278 builtin/reset.c:143
+#: apply.c:4098 builtin/checkout.c:279 builtin/reset.c:143
#, c-format
msgid "make_cache_entry failed for path '%s'"
msgstr "échec de make_cache_entry pour le chemin '%s'"
-#: apply.c:4101
+#: apply.c:4102
#, c-format
msgid "could not add %s to temporary index"
msgstr "impossible d'ajouter %s à l'index temporaire"
-#: apply.c:4111
+#: apply.c:4112
#, c-format
msgid "could not write temporary index to %s"
msgstr "impossible d'écrire l'index temporaire dans %s"
-#: apply.c:4249
+#: apply.c:4250
#, c-format
msgid "unable to remove %s from index"
msgstr "suppression de %s dans l'index impossible"
-#: apply.c:4283
+#: apply.c:4284
#, c-format
msgid "corrupt patch for submodule %s"
msgstr "patch corrompu pour le sous-module %s"
-#: apply.c:4289
+#: apply.c:4290
#, c-format
msgid "unable to stat newly created file '%s'"
msgstr "stat du fichier nouvellement créé '%s' impossible"
-#: apply.c:4297
+#: apply.c:4298
#, 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:4303 apply.c:4448
+#: apply.c:4304 apply.c:4449
#, c-format
msgid "unable to add cache entry for %s"
msgstr "ajout de l'élément de cache %s impossible"
-#: apply.c:4346
+#: apply.c:4347
#, c-format
msgid "failed to write to '%s'"
msgstr "échec de l'écriture dans '%s'"
-#: apply.c:4350
+#: apply.c:4351
#, c-format
msgid "closing file '%s'"
msgstr "fermeture du fichier '%s'"
-#: apply.c:4420
+#: apply.c:4421
#, c-format
msgid "unable to write file '%s' mode %o"
msgstr "écriture du fichier '%s' mode %o impossible"
-#: apply.c:4518
+#: apply.c:4519
#, c-format
msgid "Applied patch %s cleanly."
msgstr "Patch %s appliqué proprement."
-#: apply.c:4526
+#: apply.c:4527
msgid "internal error"
msgstr "erreur interne"
-#: apply.c:4529
+#: apply.c:4530
#, 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:4540
+#: apply.c:4541
#, c-format
msgid "truncating .rej filename to %.*s.rej"
msgstr "troncature du nom de fichier .rej en %.*s.rej"
-#: apply.c:4548 builtin/fetch.c:878 builtin/fetch.c:1168
+#: apply.c:4549 builtin/fetch.c:898 builtin/fetch.c:1194
#, c-format
msgid "cannot open %s"
msgstr "impossible d'ouvrir %s"
-#: apply.c:4562
+#: apply.c:4563
#, c-format
msgid "Hunk #%d applied cleanly."
msgstr "Section n°%d appliquée proprement."
-#: apply.c:4566
+#: apply.c:4567
#, c-format
msgid "Rejected hunk #%d."
msgstr "Section n°%d rejetée."
-#: apply.c:4676
+#: apply.c:4686
#, c-format
msgid "Skipped patch '%s'."
msgstr "Chemin '%s' non traité."
-#: apply.c:4684
+#: apply.c:4694
msgid "unrecognized input"
msgstr "entrée non reconnue"
-#: apply.c:4704
+#: apply.c:4714
msgid "unable to read index file"
msgstr "lecture du fichier d'index impossible"
-#: apply.c:4859
+#: apply.c:4871
#, c-format
msgid "can't open patch '%s': %s"
msgstr "ouverture impossible du patch '%s' :%s"
-#: apply.c:4886
+#: apply.c:4898
#, 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:4892 apply.c:4907
+#: apply.c:4904 apply.c:4919
#, 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:4900
+#: apply.c:4912
#, 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:4916 builtin/add.c:540 builtin/mv.c:301 builtin/rm.c:390
+#: apply.c:4928 builtin/add.c:540 builtin/mv.c:301 builtin/rm.c:390
msgid "Unable to write new index file"
msgstr "Impossible d'écrire le nouveau fichier d'index"
-#: apply.c:4943 apply.c:4946 builtin/am.c:2208 builtin/am.c:2211
-#: builtin/clone.c:123 builtin/fetch.c:128 builtin/merge.c:273
-#: builtin/pull.c:208 builtin/submodule--helper.c:407
+#: apply.c:4955 apply.c:4958 builtin/am.c:2197 builtin/am.c:2200
+#: builtin/clone.c:122 builtin/fetch.c:143 builtin/merge.c:273
+#: builtin/pull.c:209 builtin/submodule--helper.c:407
#: builtin/submodule--helper.c:1367 builtin/submodule--helper.c:1370
#: builtin/submodule--helper.c:1850 builtin/submodule--helper.c:1853
#: builtin/submodule--helper.c:2092 git-add--interactive.perl:211
msgid "path"
msgstr "chemin"
-#: apply.c:4944
+#: apply.c:4956
msgid "don't apply changes matching the given path"
msgstr "ne pas appliquer les modifications qui correspondent au chemin donné"
-#: apply.c:4947
+#: apply.c:4959
msgid "apply changes matching the given path"
msgstr "appliquer les modifications qui correspondent au chemin donné"
-#: apply.c:4949 builtin/am.c:2217
+#: apply.c:4961 builtin/am.c:2206
msgid "num"
msgstr "num"
-#: apply.c:4950
+#: apply.c:4962
msgid "remove <num> leading slashes from traditional diff paths"
msgstr "supprimer <num> barres obliques des chemins traditionnels de diff"
-#: apply.c:4953
+#: apply.c:4965
msgid "ignore additions made by the patch"
msgstr "ignorer les additions réalisées par le patch"
-#: apply.c:4955
+#: apply.c:4967
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:4959
+#: apply.c:4971
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:4961
+#: apply.c:4973
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:4963
+#: apply.c:4975
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:4965
+#: apply.c:4977
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:4967
+#: apply.c:4979
msgid "mark new files with `git add --intent-to-add`"
msgstr "marquer les nouveaux fichiers `git add --intent-to-add`"
-#: apply.c:4969
+#: apply.c:4981
msgid "apply a patch without touching the working tree"
msgstr "appliquer les patch sans toucher à la copie de travail"
-#: apply.c:4971
+#: apply.c:4983
msgid "accept a patch that touches outside the working area"
msgstr "accepter un patch qui touche hors de la copie de travail"
-#: apply.c:4974
+#: apply.c:4986
msgid "also apply the patch (use with --stat/--summary/--check)"
msgstr "appliquer aussi le patch (à utiliser avec --stat/--summary/--check)"
-#: apply.c:4976
+#: apply.c:4988
msgid "attempt three-way merge if a patch does not apply"
msgstr "tenter une fusion à 3 points si le patch ne s'applique pas proprement"
-#: apply.c:4978
+#: apply.c:4990
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:4981 builtin/checkout-index.c:173 builtin/ls-files.c:524
+#: apply.c:4993 builtin/checkout-index.c:173 builtin/ls-files.c:524
msgid "paths are separated with NUL character"
msgstr "les chemins sont séparés par un caractère NUL"
-#: apply.c:4983
+#: apply.c:4995
msgid "ensure at least <n> lines of context match"
msgstr "s'assurer d'au moins <n> lignes de correspondance de contexte"
-#: apply.c:4984 builtin/am.c:2196 builtin/interpret-trailers.c:98
+#: apply.c:4996 builtin/am.c:2185 builtin/interpret-trailers.c:98
#: builtin/interpret-trailers.c:100 builtin/interpret-trailers.c:102
-#: builtin/pack-objects.c:3330 builtin/rebase.c:1421
+#: builtin/pack-objects.c:3310 builtin/rebase.c:1445
msgid "action"
msgstr "action"
-#: apply.c:4985
+#: apply.c:4997
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:4988 apply.c:4991
+#: apply.c:5000 apply.c:5003
msgid "ignore changes in whitespace when finding context"
msgstr "ignorer des modifications d'espace lors de la recherche de contexte"
-#: apply.c:4994
+#: apply.c:5006
msgid "apply the patch in reverse"
msgstr "appliquer le patch en sens inverse"
-#: apply.c:4996
+#: apply.c:5008
msgid "don't expect at least one line of context"
msgstr "ne pas s'attendre à au moins une ligne de contexte"
-#: apply.c:4998
+#: apply.c:5010
msgid "leave the rejected hunks in corresponding *.rej files"
msgstr "laisser les sections rejetées dans les fichiers *.rej correspondants"
-#: apply.c:5000
+#: apply.c:5012
msgid "allow overlapping hunks"
msgstr "accepter les recouvrements de sections"
-#: apply.c:5001 builtin/add.c:291 builtin/check-ignore.c:22
+#: apply.c:5013 builtin/add.c:291 builtin/check-ignore.c:22
#: builtin/commit.c:1337 builtin/count-objects.c:98 builtin/fsck.c:786
-#: builtin/log.c:2068 builtin/mv.c:123 builtin/read-tree.c:128
+#: builtin/log.c:2085 builtin/mv.c:123 builtin/read-tree.c:128
msgid "be verbose"
msgstr "mode verbeux"
-#: apply.c:5003
+#: apply.c:5015
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:5006
+#: apply.c:5018
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:5008 builtin/am.c:2205
+#: apply.c:5020 builtin/am.c:2194
msgid "root"
msgstr "racine"
-#: apply.c:5009
+#: apply.c:5021
msgid "prepend <root> to all filenames"
msgstr "préfixer tous les noms de fichier avec <root>"
@@ -896,7 +896,7 @@ msgstr "fmt"
msgid "archive format"
msgstr "format d'archive"
-#: archive.c:458 builtin/log.c:1580
+#: archive.c:458 builtin/log.c:1581
msgid "prefix"
msgstr "préfixe"
@@ -904,11 +904,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:460 builtin/blame.c:862 builtin/blame.c:874 builtin/blame.c:875
-#: builtin/commit-tree.c:117 builtin/config.c:129 builtin/fast-export.c:1134
-#: builtin/fast-export.c:1136 builtin/grep.c:897 builtin/hash-object.c:105
-#: builtin/ls-files.c:560 builtin/ls-files.c:563 builtin/notes.c:412
-#: builtin/notes.c:578 builtin/read-tree.c:123 parse-options.h:177
+#: archive.c:460 builtin/blame.c:861 builtin/blame.c:873 builtin/blame.c:874
+#: builtin/commit-tree.c:117 builtin/config.c:129 builtin/fast-export.c:1162
+#: builtin/fast-export.c:1164 builtin/fast-export.c:1168 builtin/grep.c:899
+#: builtin/hash-object.c:105 builtin/ls-files.c:560 builtin/ls-files.c:563
+#: builtin/notes.c:412 builtin/notes.c:578 builtin/read-tree.c:123
+#: parse-options.h:186
msgid "file"
msgstr "fichier"
@@ -940,7 +941,7 @@ msgstr "compression efficace"
msgid "list supported archive formats"
msgstr "afficher les formats d'archive supportés"
-#: archive.c:479 builtin/archive.c:91 builtin/clone.c:113 builtin/clone.c:116
+#: archive.c:479 builtin/archive.c:91 builtin/clone.c:112 builtin/clone.c:115
#: builtin/submodule--helper.c:1379 builtin/submodule--helper.c:1859
msgid "repo"
msgstr "dépôt"
@@ -949,7 +950,7 @@ msgstr "dépôt"
msgid "retrieve the archive from remote repository <repo>"
msgstr "récupérer l'archive depuis le dépôt distant <dépôt>"
-#: archive.c:481 builtin/archive.c:93 builtin/difftool.c:707
+#: archive.c:481 builtin/archive.c:93 builtin/difftool.c:715
#: builtin/notes.c:498
msgid "command"
msgstr "commande"
@@ -985,26 +986,26 @@ msgstr "Argument non supporté pour le format '%s' : -%d"
msgid "cannot stream blob %s"
msgstr "impossible de transmettre le blob %s en flux"
-#: archive-tar.c:260 archive-zip.c:363
+#: archive-tar.c:266 archive-zip.c:363
#, c-format
msgid "unsupported file mode: 0%o (SHA1: %s)"
msgstr "mode de fichier non supporté :0%o (SHA1: %s)"
-#: archive-tar.c:287 archive-zip.c:353
+#: archive-tar.c:293 archive-zip.c:353
#, c-format
msgid "cannot read %s"
msgstr "impossible de lire %s"
-#: archive-tar.c:459
+#: archive-tar.c:465
#, c-format
msgid "unable to start '%s' filter"
msgstr "impossible de démarrer le filtre '%s'"
-#: archive-tar.c:462
+#: archive-tar.c:468
msgid "unable to redirect descriptor"
msgstr "impossible de rediriger un descripteur"
-#: archive-tar.c:469
+#: archive-tar.c:475
#, c-format
msgid "'%s' filter reported error"
msgstr "le filtre '%s' a retourné une erreur"
@@ -1029,17 +1030,17 @@ msgstr "erreur de compression (%d)"
msgid "timestamp too large for this system: %<PRIuMAX>"
msgstr "l'horodatage est trop grand pour ce système : %<PRIuMAX>"
-#: attr.c:211
+#: attr.c:213
#, c-format
msgid "%.*s is not a valid attribute name"
msgstr "%.*s n'est pas un nom valide d'attribut"
-#: attr.c:368
+#: attr.c:370
#, c-format
msgid "%s not allowed: %s:%d"
msgstr "%s non permis : %s : %d"
-#: attr.c:408
+#: attr.c:410
msgid ""
"Negative patterns are ignored in git attributes\n"
"Use '\\!' for literal leading exclamation."
@@ -1167,41 +1168,41 @@ 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:2697
+#: blame.c:2700
msgid "--contents and --reverse do not blend well."
msgstr "--contents et --reverse ne font pas bon ménage."
-#: blame.c:2711
+#: blame.c:2714
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:2732
+#: blame.c:2735
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:2741 bundle.c:167 ref-filter.c:2196 remote.c:1938 sequencer.c:2033
-#: sequencer.c:4348 builtin/commit.c:1020 builtin/log.c:387 builtin/log.c:963
-#: builtin/log.c:1451 builtin/log.c:1827 builtin/log.c:2117 builtin/merge.c:411
-#: builtin/pack-objects.c:3148 builtin/pack-objects.c:3163
+#: blame.c:2744 bundle.c:167 ref-filter.c:2203 remote.c:1941 sequencer.c:1971
+#: sequencer.c:4305 builtin/commit.c:1020 builtin/log.c:387 builtin/log.c:964
+#: builtin/log.c:1452 builtin/log.c:1844 builtin/log.c:2134 builtin/merge.c:411
+#: builtin/pack-objects.c:3128 builtin/pack-objects.c:3143
#: builtin/shortlog.c:192
msgid "revision walk setup failed"
msgstr "échec de la préparation du parcours des révisions"
-#: blame.c:2759
+#: blame.c:2762
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:2770
+#: blame.c:2773
#, c-format
msgid "no such path %s in %s"
msgstr "pas de chemin %s dans %s"
-#: blame.c:2781
+#: blame.c:2784
#, c-format
msgid "cannot read blob %s for path %s"
msgstr "impossible de lire le blob %s pour le chemin %s"
@@ -1364,7 +1365,7 @@ msgstr "'%s' ne semble pas être un fichier bundle v2"
msgid "unrecognized header: %s%s (%d)"
msgstr "en-tête non reconnu : %s%s (%d)"
-#: bundle.c:90 rerere.c:480 rerere.c:690 sequencer.c:2283 sequencer.c:3024
+#: bundle.c:90 rerere.c:480 rerere.c:690 sequencer.c:2221 sequencer.c:2962
#: builtin/commit.c:791
#, c-format
msgid "could not open '%s'"
@@ -1417,7 +1418,7 @@ msgstr "rev-list a disparu"
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:460 builtin/log.c:202 builtin/log.c:1732 builtin/shortlog.c:306
+#: bundle.c:460 builtin/log.c:202 builtin/log.c:1733 builtin/shortlog.c:306
#, c-format
msgid "unrecognized argument: %s"
msgstr "argument non reconnu : %s"
@@ -1440,8 +1441,8 @@ msgstr "l'index de groupe a disparu"
msgid "invalid color value: %.*s"
msgstr "Valeur invalide de couleur : %.*s"
-#: commit.c:50 sequencer.c:2727 builtin/am.c:355 builtin/am.c:399
-#: builtin/am.c:1378 builtin/am.c:2020 builtin/replace.c:455
+#: commit.c:50 sequencer.c:2665 builtin/am.c:354 builtin/am.c:398
+#: builtin/am.c:1366 builtin/am.c:2009 builtin/replace.c:456
#, c-format
msgid "could not parse %s"
msgstr "impossible d'analyser %s"
@@ -1471,27 +1472,27 @@ msgstr ""
"Supprimez ce message en lançant\n"
"\"git config advice.graftFileDeprecated false\""
-#: commit.c:1127
+#: commit.c:1128
#, 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:1130
+#: commit.c:1131
#, 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:1133
+#: commit.c:1134
#, c-format
msgid "Commit %s does not have a GPG signature."
msgstr "La validation %s n'a pas de signature GPG."
-#: commit.c:1136
+#: commit.c:1137
#, 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:1390
+#: commit.c:1391
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"
@@ -1559,189 +1560,204 @@ msgstr ""
msgid "unable to find all commit-graph files"
msgstr "impossible de trouver tous les fichiers du graphe de commit"
-#: commit-graph.c:554 commit-graph.c:614
+#: commit-graph.c:561 commit-graph.c:621
msgid "invalid commit position. commit-graph is likely corrupt"
msgstr ""
"position de commit invalide. Le graphe de commit est vraisemblablement "
"corrompu"
-#: commit-graph.c:575
+#: commit-graph.c:582
#, c-format
msgid "could not find commit %s"
msgstr "impossible de trouver le commit %s"
-#: commit-graph.c:1002 builtin/pack-objects.c:2657
+#: commit-graph.c:855 builtin/am.c:1287
+#, c-format
+msgid "unable to parse commit %s"
+msgstr "impossible d'analyser le commit %s"
+
+#: commit-graph.c:859
+#, c-format
+msgid "unable to get tree for %s"
+msgstr "impossible de récupérer l'arbre de %s"
+
+#: commit-graph.c:1017 builtin/pack-objects.c:2641
#, c-format
msgid "unable to get type of object %s"
msgstr "impossible d'obtenir le type de l'objet %s"
-#: commit-graph.c:1034
+#: commit-graph.c:1049
msgid "Loading known commits in commit graph"
msgstr "Lecture des commits connus dans un graphe de commit"
-#: commit-graph.c:1051
+#: commit-graph.c:1066
msgid "Expanding reachable commits in commit graph"
msgstr "Expansion des commits joignables dans un graphe de commit"
-#: commit-graph.c:1070
+#: commit-graph.c:1085
msgid "Clearing commit marks in commit graph"
msgstr "Suppression les marques de commit dans le graphe de commits"
-#: commit-graph.c:1089
+#: commit-graph.c:1104
msgid "Computing commit graph generation numbers"
msgstr "Calcul des chiffres de génération du graphe de commits"
-#: commit-graph.c:1163
+#: commit-graph.c:1179
#, c-format
msgid "Finding commits for commit graph in %d pack"
msgid_plural "Finding commits for commit graph in %d packs"
msgstr[0] "Recherche de commits pour un graphe de commits dans %d paquet"
msgstr[1] "Recherche de commits pour un graphe de commits dans %d paquets"
-#: commit-graph.c:1176
+#: commit-graph.c:1192
#, c-format
msgid "error adding pack %s"
msgstr "erreur à l'ajout du packet %s"
-#: commit-graph.c:1180
+#: commit-graph.c:1196
#, c-format
msgid "error opening index for %s"
msgstr "erreur à l'ouverture de l'index pour %s"
-#: commit-graph.c:1204
+#: commit-graph.c:1220
#, c-format
msgid "Finding commits for commit graph from %d ref"
msgid_plural "Finding commits for commit graph from %d refs"
msgstr[0] "Recherche de commits pour un graphe de commits depuis %d réf"
msgstr[1] "Recherche de commits pour un graphe de commits depuis %d réfs"
-#: commit-graph.c:1238
+#: commit-graph.c:1240
+#, c-format
+msgid "invalid commit object id: %s"
+msgstr "identifiant d'objet commit invalide : %s"
+
+#: commit-graph.c:1255
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:1253
+#: commit-graph.c:1270
msgid "Counting distinct commits in commit graph"
msgstr "Comptage des commits distincts dans un graphe de commit"
-#: commit-graph.c:1284
+#: commit-graph.c:1300
msgid "Finding extra edges in commit graph"
msgstr "Recherche d'arêtes supplémentaires dans un graphe de commits"
-#: commit-graph.c:1332
+#: commit-graph.c:1346
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:1365 midx.c:811
+#: commit-graph.c:1379 midx.c:810
#, 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:1377 builtin/index-pack.c:306 builtin/repack.c:240
+#: commit-graph.c:1391 builtin/index-pack.c:306 builtin/repack.c:241
#, c-format
msgid "unable to create '%s'"
msgstr "impossible de créer '%s'"
-#: commit-graph.c:1437
+#: commit-graph.c:1451
#, 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:1478
+#: commit-graph.c:1492
msgid "unable to open commit-graph chain file"
msgstr "impossible d'ouvrir le fichier de graphe de commit"
-#: commit-graph.c:1490
+#: commit-graph.c:1504
msgid "failed to rename base commit-graph file"
msgstr "échec du renommage du fichier de graphe de commits"
-#: commit-graph.c:1510
+#: commit-graph.c:1524
msgid "failed to rename temporary commit-graph file"
msgstr "impossible de renommer le fichier temporaire de graphe de commits"
-#: commit-graph.c:1621
+#: commit-graph.c:1635
msgid "Scanning merged commits"
msgstr "Analyse des commits de fusion"
-#: commit-graph.c:1632
+#: commit-graph.c:1646
#, c-format
msgid "unexpected duplicate commit id %s"
msgstr "id de commit %s dupliqué inattendu"
-#: commit-graph.c:1657
+#: commit-graph.c:1670
msgid "Merging commit-graph"
msgstr "fusion du graphe de commits"
-#: commit-graph.c:1844
+#: commit-graph.c:1860
#, c-format
msgid "the commit graph format cannot write %d commits"
msgstr "le graphe de commits ne peut pas écrire %d commits"
-#: commit-graph.c:1855
+#: commit-graph.c:1871
msgid "too many commits to write graph"
msgstr "trop de commits pour écrire un graphe"
-#: commit-graph.c:1945
+#: commit-graph.c:1961
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:1955
+#: commit-graph.c:1971
#, 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:1965 commit-graph.c:1980
+#: commit-graph.c:1981 commit-graph.c:1996
#, 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:1972
+#: commit-graph.c:1988
#, 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:1989
+#: commit-graph.c:2006
msgid "Verifying commits in commit graph"
msgstr "Verification des commits dans le graphe de commits"
-#: commit-graph.c:2002
+#: commit-graph.c:2020
#, 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:2009
+#: commit-graph.c:2027
#, 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:2019
+#: commit-graph.c:2037
#, 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:2028
+#: commit-graph.c:2046
#, 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:2041
+#: commit-graph.c:2059
#, 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:2046
+#: commit-graph.c:2064
#, c-format
msgid ""
"commit-graph has generation number zero for commit %s, but non-zero elsewhere"
@@ -1749,7 +1765,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:2050
+#: commit-graph.c:2068
#, c-format
msgid ""
"commit-graph has non-zero generation number for commit %s, but zero elsewhere"
@@ -1757,12 +1773,12 @@ msgstr ""
"le graphe de commit a un numéro de génération non-nul pour le commit %s, "
"mais nul ailleurs"
-#: commit-graph.c:2065
+#: commit-graph.c:2083
#, c-format
msgid "commit-graph generation for commit %s is %u != %u"
msgstr "la génération du graphe de commit pour le commit %s est %u != %u"
-#: commit-graph.c:2071
+#: commit-graph.c:2089
#, c-format
msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>"
msgstr ""
@@ -1813,7 +1829,7 @@ msgstr "la clé ne contient pas de section: %s"
msgid "key does not contain variable name: %s"
msgstr "la clé ne contient pas de nom de variable : %s"
-#: config.c:406 sequencer.c:2463
+#: config.c:406 sequencer.c:2401
#, c-format
msgid "invalid key: %s"
msgstr "clé invalide : %s"
@@ -1946,155 +1962,148 @@ msgstr "core.commentChar ne devrait être qu'un unique caractère"
msgid "invalid mode for object creation: %s"
msgstr "mode invalide pour la création d'objet : %s"
-#: config.c:1430
+#: config.c:1425
#, c-format
msgid "malformed value for %s"
msgstr "valeur mal formée pour %s"
-#: config.c:1456
+#: config.c:1451
#, c-format
msgid "malformed value for %s: %s"
msgstr "valeur mal formée pour %s : %s"
-#: config.c:1457
+#: config.c:1452
msgid "must be one of nothing, matching, simple, upstream or current"
msgstr "doit être parmi nothing, matching, simple, upstream ou current"
-#: config.c:1518 builtin/pack-objects.c:3410
+#: config.c:1513 builtin/pack-objects.c:3394
#, c-format
msgid "bad pack compression level %d"
msgstr "niveau de compression du paquet %d"
-#: config.c:1639
+#: config.c:1634
#, c-format
msgid "unable to load config blob object '%s'"
msgstr "impossible de charger l'objet blob de config '%s'"
-#: config.c:1642
+#: config.c:1637
#, 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:1659
+#: config.c:1654
#, c-format
msgid "unable to resolve config blob '%s'"
msgstr "impossible de résoudre le blob de config '%s'"
-#: config.c:1689
+#: config.c:1684
#, c-format
msgid "failed to parse %s"
msgstr "échec de l'analyse de %s"
-#: config.c:1745
+#: config.c:1740
msgid "unable to parse command-line config"
msgstr "lecture de la configuration de ligne de commande impossible"
-#: config.c:2094
+#: config.c:2091
msgid "unknown error occurred while reading the configuration files"
msgstr "erreur inconnue pendant la lecture des fichiers de configuration"
-#: config.c:2264
+#: config.c:2261
#, c-format
msgid "Invalid %s: '%s'"
msgstr "%s invalide : '%s'"
-#: config.c:2307
-#, c-format
-msgid "unknown core.untrackedCache value '%s'; using 'keep' default value"
-msgstr ""
-"valeur '%s' de core.untrackedCache inconnue ; utilisation de 'keep' par "
-"défaut"
-
-#: config.c:2333
+#: config.c:2306
#, 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:2379
+#: config.c:2352
#, 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:2381
+#: config.c:2354
#, 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:2462
+#: config.c:2435
#, c-format
msgid "invalid section name '%s'"
msgstr "nom de section invalide '%s'"
-#: config.c:2494
+#: config.c:2467
#, c-format
msgid "%s has multiple values"
msgstr "%s a des valeurs multiples"
-#: config.c:2523
+#: config.c:2496
#, c-format
msgid "failed to write new configuration file %s"
msgstr "impossible d'écrire le fichier de configuration %s"
-#: config.c:2775 config.c:3099
+#: config.c:2748 config.c:3072
#, c-format
msgid "could not lock config file %s"
msgstr "impossible de verrouiller le fichier de configuration %s"
-#: config.c:2786
+#: config.c:2759
#, c-format
msgid "opening %s"
msgstr "ouverture de %s"
-#: config.c:2821 builtin/config.c:328
+#: config.c:2794 builtin/config.c:328
#, c-format
msgid "invalid pattern: %s"
msgstr "motif invalide : %s"
-#: config.c:2846
+#: config.c:2819
#, c-format
msgid "invalid config file %s"
msgstr "fichier de configuration invalide %s"
-#: config.c:2859 config.c:3112
+#: config.c:2832 config.c:3085
#, c-format
msgid "fstat on %s failed"
msgstr "échec de fstat sur %s"
-#: config.c:2870
+#: config.c:2843
#, c-format
msgid "unable to mmap '%s'"
msgstr "impossible de réaliser un map de '%s'"
-#: config.c:2879 config.c:3117
+#: config.c:2852 config.c:3090
#, c-format
msgid "chmod on %s failed"
msgstr "échec de chmod sur %s"
-#: config.c:2964 config.c:3214
+#: config.c:2937 config.c:3187
#, c-format
msgid "could not write config file %s"
msgstr "impossible d'écrire le fichier de configuration %s"
-#: config.c:2998
+#: config.c:2971
#, c-format
msgid "could not set '%s' to '%s'"
msgstr "impossible de régler '%s' à '%s'"
-#: config.c:3000 builtin/remote.c:782
+#: config.c:2973 builtin/remote.c:782
#, c-format
msgid "could not unset '%s'"
msgstr "impossible de désinitialiser '%s'"
-#: config.c:3090
+#: config.c:3063
#, c-format
msgid "invalid section name: %s"
msgstr "nom de section invalide : %s"
-#: config.c:3257
+#: config.c:3230
#, c-format
msgid "missing value for '%s'"
msgstr "valeur manquante pour '%s'"
@@ -2218,7 +2227,7 @@ msgstr "impossible de rechercher %s (%s)"
msgid "unknown port %s"
msgstr "port inconnu %s"
-#: connect.c:845 connect.c:1171
+#: connect.c:845 connect.c:1175
#, c-format
msgid "strange hostname '%s' blocked"
msgstr "nom d'hôte étrange '%s' bloqué"
@@ -2233,60 +2242,60 @@ msgstr "port étrange '%s' bloqué"
msgid "cannot start proxy %s"
msgstr "impossible de démarrer un proxy %s"
-#: connect.c:924
+#: connect.c:928
msgid "no path specified; see 'git help pull' for valid url syntax"
msgstr ""
"aucun chemin spécifié ; référez-vous à 'git help pull' pour une syntaxe "
"d'URL valide"
-#: connect.c:1119
+#: connect.c:1123
msgid "ssh variant 'simple' does not support -4"
msgstr "la variante ssh 'simple' ne supporte pas -4"
-#: connect.c:1131
+#: connect.c:1135
msgid "ssh variant 'simple' does not support -6"
msgstr "la variante ssh 'simple' ne supporte pas -6"
-#: connect.c:1148
+#: connect.c:1152
msgid "ssh variant 'simple' does not support setting port"
msgstr "la variante ssh 'simple' ne supporte pas de spécifier le port"
-#: connect.c:1260
+#: connect.c:1264
#, c-format
msgid "strange pathname '%s' blocked"
msgstr "chemin étrange '%s' bloqué"
-#: connect.c:1307
+#: connect.c:1311
msgid "unable to fork"
msgstr "fork impossible"
-#: connected.c:86 builtin/fsck.c:221 builtin/prune.c:43
+#: connected.c:88 builtin/fsck.c:221 builtin/prune.c:43
msgid "Checking connectivity"
msgstr "Vérification de la connectivité"
-#: connected.c:98
+#: connected.c:100
msgid "Could not run 'git rev-list'"
msgstr "Impossible de lancer 'git rev-list'"
-#: connected.c:118
+#: connected.c:120
msgid "failed write to rev-list"
msgstr "impossible d'écrire dans la rev-list"
-#: connected.c:125
+#: connected.c:127
msgid "failed to close rev-list's stdin"
msgstr "impossible de fermer l'entrée standard du rev-list"
-#: convert.c:193
+#: convert.c:194
#, c-format
msgid "illegal crlf_action %d"
msgstr "crlf_action illégal %d"
-#: convert.c:206
+#: convert.c:207
#, c-format
msgid "CRLF would be replaced by LF in %s"
msgstr "Les CRLF seraient remplacés par des LF dans %s"
-#: convert.c:208
+#: convert.c:209
#, c-format
msgid ""
"CRLF will be replaced by LF in %s.\n"
@@ -2295,12 +2304,12 @@ msgstr ""
"Les CRLF seront remplacés par des LF dans %s.\n"
"Le fichier conservera ses fins de ligne d'origine dans votre copie de travail"
-#: convert.c:216
+#: convert.c:217
#, c-format
msgid "LF would be replaced by CRLF in %s"
msgstr "Les LF seraient remplacés par des CRLF dans %s"
-#: convert.c:218
+#: convert.c:219
#, c-format
msgid ""
"LF will be replaced by CRLF in %s.\n"
@@ -2309,12 +2318,12 @@ msgstr ""
"Les LF seront remplacés par des CRLF dans %s.\n"
"Le fichier conservera ses fins de ligne d'origine dans votre copie de travail"
-#: convert.c:279
+#: convert.c:280
#, c-format
msgid "BOM is prohibited in '%s' if encoded as %s"
msgstr "Aucun BOM n'est permis dans '%s' s'il est encodé comme %s"
-#: convert.c:286
+#: convert.c:287
#, c-format
msgid ""
"The file '%s' contains a byte order mark (BOM). Please use UTF-%s as working-"
@@ -2323,12 +2332,12 @@ msgstr ""
"Le fichier '%s' contient un marqueur d'ordre d'octets (BOM). Veuillez "
"utiliser UTF-%s comme encodage d'arbre de travail."
-#: convert.c:304
+#: convert.c:305
#, c-format
msgid "BOM is required in '%s' if encoded as %s"
msgstr "Un BOM est obligatoire dans '%s' s'il est encodé comme %s"
-#: convert.c:306
+#: convert.c:307
#, c-format
msgid ""
"The file '%s' is missing a byte order mark (BOM). Please use UTF-%sBE or UTF-"
@@ -2338,52 +2347,52 @@ msgstr ""
"utiliser UTF-%sBE ou UTF-%sLE (selon l'ordre désiré) comme encodage d'arbre "
"de travail."
-#: convert.c:424 convert.c:495
+#: convert.c:425 convert.c:496
#, c-format
msgid "failed to encode '%s' from %s to %s"
msgstr "échec de l'encodage de '%s' de %s vers %s"
-#: convert.c:467
+#: convert.c:468
#, c-format
msgid "encoding '%s' from %s to %s and back is not the same"
msgstr ""
"encoder '%s' depuis %s vers %s puis inversement ne produit pas le même "
"contenu"
-#: convert.c:673
+#: convert.c:674
#, c-format
msgid "cannot fork to run external filter '%s'"
msgstr "impossible de forker pour lancer le filtre externe '%s'"
-#: convert.c:693
+#: convert.c:694
#, c-format
msgid "cannot feed the input to external filter '%s'"
msgstr "impossible de fournir l'entrée au filtre externe '%s'"
-#: convert.c:700
+#: convert.c:701
#, c-format
msgid "external filter '%s' failed %d"
msgstr "le filtre externe '%s' a échoué %d"
-#: convert.c:735 convert.c:738
+#: convert.c:736 convert.c:739
#, c-format
msgid "read from external filter '%s' failed"
msgstr "la lecture depuis le filtre externe '%s' a échoué"
-#: convert.c:741 convert.c:796
+#: convert.c:742 convert.c:797
#, c-format
msgid "external filter '%s' failed"
msgstr "le filtre externe '%s' a échoué"
-#: convert.c:844
+#: convert.c:845
msgid "unexpected filter type"
msgstr "type de filtre inattendu"
-#: convert.c:855
+#: convert.c:856
msgid "path name too long for external filter"
msgstr "nom de chemin trop long pour un filtre externe"
-#: convert.c:929
+#: convert.c:930
#, c-format
msgid ""
"external filter '%s' is not available anymore although not all paths have "
@@ -2392,67 +2401,67 @@ msgstr ""
"le filtre externe '%s' n'est plus disponible bien que tous les chemins "
"n'aient pas été filtrés"
-#: convert.c:1228
+#: convert.c:1229
msgid "true/false are no valid working-tree-encodings"
msgstr "true/false ne sont pas des encodages d'arbre de travail valides"
-#: convert.c:1398 convert.c:1432
+#: convert.c:1417 convert.c:1451
#, c-format
msgid "%s: clean filter '%s' failed"
msgstr "%s : le filtre clean '%s' a échoué"
-#: convert.c:1476
+#: convert.c:1495
#, c-format
msgid "%s: smudge filter %s failed"
msgstr "%s : le filtre smudge '%s' a échoué"
-#: date.c:137
+#: date.c:138
msgid "in the future"
msgstr "dans le futur"
-#: date.c:143
+#: date.c:144
#, 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:150
+#: date.c:151
#, 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:157
+#: date.c:158
#, 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:164
+#: date.c:165
#, 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:170
+#: date.c:171
#, 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:177
+#: date.c:178
#, 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:188
+#: date.c:189
#, c-format
msgid "%<PRIuMAX> year"
msgid_plural "%<PRIuMAX> years"
@@ -2460,14 +2469,14 @@ msgstr[0] "%<PRIuMAX> an"
msgstr[1] "%<PRIuMAX> ans"
#. TRANSLATORS: "%s" is "<n> years"
-#: date.c:191
+#: date.c:192
#, 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:196 date.c:201
+#: date.c:197 date.c:202
#, c-format
msgid "%<PRIuMAX> year ago"
msgid_plural "%<PRIuMAX> years ago"
@@ -2505,7 +2514,7 @@ msgstr "Marquage de %d îlots, fait.\n"
msgid "failed to read orderfile '%s'"
msgstr "impossible de lire le fichier de commande '%s'"
-#: diffcore-rename.c:544
+#: diffcore-rename.c:543
msgid "Performing inexact rename detection"
msgstr "Détection de renommage inexact en cours"
@@ -2573,35 +2582,35 @@ msgstr ""
"Erreurs dans la variable de configuration 'diff.dirstat' :\n"
"%s"
-#: diff.c:4215
+#: diff.c:4218
#, c-format
msgid "external diff died, stopping at %s"
msgstr "l'application de diff externe a disparu, arrêt à %s"
-#: diff.c:4560
+#: diff.c:4563
msgid "--name-only, --name-status, --check and -s are mutually exclusive"
msgstr "--name-only, --name-status, --check et -s sont mutuellement exclusifs"
-#: diff.c:4563
+#: diff.c:4566
msgid "-G, -S and --find-object are mutually exclusive"
msgstr "-G, -S et --find-object sont mutuellement exclusifs"
-#: diff.c:4641
+#: diff.c:4644
msgid "--follow requires exactly one pathspec"
msgstr "--follow a besoin d'une spécification de chemin unique"
-#: diff.c:4689
+#: diff.c:4692
#, c-format
msgid "invalid --stat value: %s"
msgstr "valeur invalide de --stat : %s"
-#: diff.c:4694 diff.c:4699 diff.c:4704 diff.c:4709 diff.c:5222
+#: diff.c:4697 diff.c:4702 diff.c:4707 diff.c:4712 diff.c:5225
#: parse-options.c:199 parse-options.c:203
#, c-format
msgid "%s expects a numerical value"
msgstr "%s attend une valeur numérique"
-#: diff.c:4726
+#: diff.c:4729
#, c-format
msgid ""
"Failed to parse --dirstat/-X option parameter:\n"
@@ -2610,42 +2619,42 @@ msgstr ""
"Impossible d'analyser le paramètre de l'option --dirstat/-X :\n"
"%s"
-#: diff.c:4811
+#: diff.c:4814
#, c-format
msgid "unknown change class '%c' in --diff-filter=%s"
msgstr "classe de modification inconnue '%c' dans --diff-fileter=%s"
-#: diff.c:4835
+#: diff.c:4838
#, c-format
msgid "unknown value after ws-error-highlight=%.*s"
msgstr "valeur inconnue après ws-error-highlight=%.*s"
-#: diff.c:4849
+#: diff.c:4852
#, c-format
msgid "unable to resolve '%s'"
msgstr "impossible de résoudre '%s'"
-#: diff.c:4899 diff.c:4905
+#: diff.c:4902 diff.c:4908
#, c-format
msgid "%s expects <n>/<m> form"
msgstr "forme <n>/<m> attendue par %s"
-#: diff.c:4917
+#: diff.c:4920
#, c-format
msgid "%s expects a character, got '%s'"
msgstr "caractère attendu par %s, '%s' trouvé"
-#: diff.c:4938
+#: diff.c:4941
#, c-format
msgid "bad --color-moved argument: %s"
msgstr "mauvais argument --color-moved : %s"
-#: diff.c:4957
+#: diff.c:4960
#, c-format
msgid "invalid mode '%s' in --color-moved-ws"
msgstr "mode invalide '%s' dans --color-moved-ws"
-#: diff.c:4997
+#: diff.c:5000
msgid ""
"option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and "
"\"histogram\""
@@ -2653,155 +2662,155 @@ msgstr ""
"l'option diff-algorithm accept \"myers\", \"minimal\", \"patience\" et "
"\"histogram\""
-#: diff.c:5033 diff.c:5053
+#: diff.c:5036 diff.c:5056
#, c-format
msgid "invalid argument to %s"
msgstr "argument invalide pour %s"
-#: diff.c:5191
+#: diff.c:5194
#, 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:5247
+#: diff.c:5250
#, c-format
msgid "bad --word-diff argument: %s"
msgstr "mauvais argument pour --word-diff : %s"
-#: diff.c:5270
+#: diff.c:5273
msgid "Diff output format options"
msgstr "Options de format de sortie de diff"
-#: diff.c:5272 diff.c:5278
+#: diff.c:5275 diff.c:5281
msgid "generate patch"
msgstr "générer la rustine"
-#: diff.c:5275 builtin/log.c:172
+#: diff.c:5278 builtin/log.c:172
msgid "suppress diff output"
msgstr "supprimer la sortie des différences"
-#: diff.c:5280 diff.c:5394 diff.c:5401
+#: diff.c:5283 diff.c:5397 diff.c:5404
msgid "<n>"
msgstr "<n>"
-#: diff.c:5281 diff.c:5284
+#: diff.c:5284 diff.c:5287
msgid "generate diffs with <n> lines context"
msgstr "générer les diffs avec <n> lignes de contexte"
-#: diff.c:5286
+#: diff.c:5289
msgid "generate the diff in raw format"
msgstr "générer le diff en format brut"
-#: diff.c:5289
+#: diff.c:5292
msgid "synonym for '-p --raw'"
msgstr "synonyme de '-p --raw'"
-#: diff.c:5293
+#: diff.c:5296
msgid "synonym for '-p --stat'"
msgstr "synonyme de '-p --stat'"
-#: diff.c:5297
+#: diff.c:5300
msgid "machine friendly --stat"
msgstr "--stat pour traitement automatique"
-#: diff.c:5300
+#: diff.c:5303
msgid "output only the last line of --stat"
msgstr "afficher seulement la dernière ligne de --stat"
-#: diff.c:5302 diff.c:5310
+#: diff.c:5305 diff.c:5313
msgid "<param1,param2>..."
msgstr "<param1,param2>..."
-#: diff.c:5303
+#: diff.c:5306
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:5307
+#: diff.c:5310
msgid "synonym for --dirstat=cumulative"
msgstr "synonyme pour --dirstat=cumulative"
-#: diff.c:5311
+#: diff.c:5314
msgid "synonym for --dirstat=files,param1,param2..."
msgstr "synonyme pour --dirstat=files,param1,param2..."
-#: diff.c:5315
+#: diff.c:5318
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:5318
+#: diff.c:5321
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:5321
+#: diff.c:5324
msgid "show only names of changed files"
msgstr "n'afficher que les noms de fichiers modifiés"
-#: diff.c:5324
+#: diff.c:5327
msgid "show only names and status of changed files"
msgstr "n'afficher que les noms et les status des fichiers modifiés"
-#: diff.c:5326
+#: diff.c:5329
msgid "<width>[,<name-width>[,<count>]]"
msgstr "<largeur>[,<largeur-de-nom>[,<compte>]]"
-#: diff.c:5327
+#: diff.c:5330
msgid "generate diffstat"
msgstr "générer un diffstat"
-#: diff.c:5329 diff.c:5332 diff.c:5335
+#: diff.c:5332 diff.c:5335 diff.c:5338
msgid "<width>"
msgstr "<largeur>"
-#: diff.c:5330
+#: diff.c:5333
msgid "generate diffstat with a given width"
msgstr "générer un diffstat avec la largeur indiquée"
-#: diff.c:5333
+#: diff.c:5336
msgid "generate diffstat with a given name width"
msgstr "génerer un diffstat avec la largeur de nom indiquée"
-#: diff.c:5336
+#: diff.c:5339
msgid "generate diffstat with a given graph width"
msgstr "génerer un diffstat avec la largeur de graphe indiquée"
-#: diff.c:5338
+#: diff.c:5341
msgid "<count>"
msgstr "<compte>"
-#: diff.c:5339
+#: diff.c:5342
msgid "generate diffstat with limited lines"
msgstr "générer un diffstat avec des lignes limitées"
-#: diff.c:5342
+#: diff.c:5345
msgid "generate compact summary in diffstat"
msgstr "générer une résumé compact dans le diffstat"
-#: diff.c:5345
+#: diff.c:5348
msgid "output a binary diff that can be applied"
msgstr "produire un diff binaire qui peut être appliqué"
-#: diff.c:5348
+#: diff.c:5351
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:5350
+#: diff.c:5353
msgid "show colored diff"
msgstr "afficher un diff coloré"
-#: diff.c:5351
+#: diff.c:5354
msgid "<kind>"
msgstr "<sorte>"
-#: diff.c:5352
+#: diff.c:5355
msgid ""
"highlight whitespace errors in the 'context', 'old' or 'new' lines in the "
"diff"
@@ -2809,7 +2818,7 @@ msgstr ""
"surligner les erreurs d'espace dans les lignes 'contexte', 'ancien', "
"'nouveau' dans le diff"
-#: diff.c:5355
+#: diff.c:5358
msgid ""
"do not munge pathnames and use NULs as output field terminators in --raw or "
"--numstat"
@@ -2817,93 +2826,93 @@ msgstr ""
"ne pas compresser les chemins et utiliser des NULs comme terminateurs de "
"champs dans --raw ou --numstat"
-#: diff.c:5358 diff.c:5361 diff.c:5364 diff.c:5470
+#: diff.c:5361 diff.c:5364 diff.c:5367 diff.c:5473
msgid "<prefix>"
msgstr "<préfixe>"
-#: diff.c:5359
+#: diff.c:5362
msgid "show the given source prefix instead of \"a/\""
msgstr "afficher le préfixe de source indiqué au lieu de \"a/\""
-#: diff.c:5362
+#: diff.c:5365
msgid "show the given destination prefix instead of \"b/\""
msgstr "afficher le préfixe de destination indiqué au lieu de \"b/\""
-#: diff.c:5365
+#: diff.c:5368
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:5368
+#: diff.c:5371
msgid "do not show any source or destination prefix"
msgstr "n'afficher aucun préfixe, ni de source, ni de destination"
-#: diff.c:5371
+#: diff.c:5374
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:5375 diff.c:5380 diff.c:5385
+#: diff.c:5378 diff.c:5383 diff.c:5388
msgid "<char>"
msgstr "<caractère>"
-#: diff.c:5376
+#: diff.c:5379
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:5381
+#: diff.c:5384
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:5386
+#: diff.c:5389
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:5389
+#: diff.c:5392
msgid "Diff rename options"
msgstr "Options de renommage de diff"
-#: diff.c:5390
+#: diff.c:5393
msgid "<n>[/<m>]"
msgstr "<n>[/<m>]"
-#: diff.c:5391
+#: diff.c:5394
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:5395
+#: diff.c:5398
msgid "detect renames"
msgstr "détecter les renommages"
-#: diff.c:5399
+#: diff.c:5402
msgid "omit the preimage for deletes"
msgstr "supprimer la pré-image pour les suppressions"
-#: diff.c:5402
+#: diff.c:5405
msgid "detect copies"
msgstr "détecter les copies"
-#: diff.c:5406
+#: diff.c:5409
msgid "use unmodified files as source to find copies"
msgstr ""
"utiliser les fichiers non-modifiés comme sources pour trouver des copies"
-#: diff.c:5408
+#: diff.c:5411
msgid "disable rename detection"
msgstr "désactiver la détection de renommage"
-#: diff.c:5411
+#: diff.c:5414
msgid "use empty blobs as rename source"
msgstr "utiliser des blobs vides comme source de renommage"
-#: diff.c:5413
+#: diff.c:5416
msgid "continue listing the history of a file beyond renames"
msgstr "continuer à afficher l'historique d'un fichier au delà des renommages"
-#: diff.c:5416
+#: diff.c:5419
msgid ""
"prevent rename/copy detection if the number of rename/copy targets exceeds "
"given limit"
@@ -2911,161 +2920,161 @@ msgstr ""
"empêcher la détection de renommage/copie si le nombre de cibles de renommage/"
"copie excède la limite indiquée"
-#: diff.c:5418
+#: diff.c:5421
msgid "Diff algorithm options"
msgstr "Options de l'algorithme de diff"
-#: diff.c:5420
+#: diff.c:5423
msgid "produce the smallest possible diff"
msgstr "produire le diff le plus petit possible"
-#: diff.c:5423
+#: diff.c:5426
msgid "ignore whitespace when comparing lines"
msgstr "ignorer les espaces lors de la comparaison de ligne"
-#: diff.c:5426
+#: diff.c:5429
msgid "ignore changes in amount of whitespace"
msgstr "ignorer des modifications du nombre d'espaces"
-#: diff.c:5429
+#: diff.c:5432
msgid "ignore changes in whitespace at EOL"
msgstr "ignorer des modifications d'espace en fin de ligne"
-#: diff.c:5432
+#: diff.c:5435
msgid "ignore carrier-return at the end of line"
msgstr "ignore le retour chariot en fin de ligne"
-#: diff.c:5435
+#: diff.c:5438
msgid "ignore changes whose lines are all blank"
msgstr "ignorer les modifications dont les lignes sont vides"
-#: diff.c:5438
+#: diff.c:5441
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:5441
+#: diff.c:5444
msgid "generate diff using the \"patience diff\" algorithm"
msgstr "générer un diff en utilisant l'algorithme de différence \"patience\""
-#: diff.c:5445
+#: diff.c:5448
msgid "generate diff using the \"histogram diff\" algorithm"
msgstr ""
"générer un diff en utilisant l'algorithme de différence \"histogramme\""
-#: diff.c:5447
+#: diff.c:5450
msgid "<algorithm>"
msgstr "<algorithme>"
-#: diff.c:5448
+#: diff.c:5451
msgid "choose a diff algorithm"
msgstr "choisir un algorithme de différence"
-#: diff.c:5450
+#: diff.c:5453
msgid "<text>"
msgstr "<texte>"
-#: diff.c:5451
+#: diff.c:5454
msgid "generate diff using the \"anchored diff\" algorithm"
msgstr "générer un diff en utilisant l'algorithme de différence \"ancré\""
-#: diff.c:5453 diff.c:5462 diff.c:5465
+#: diff.c:5456 diff.c:5465 diff.c:5468
msgid "<mode>"
msgstr "<mode>"
-#: diff.c:5454
+#: diff.c:5457
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:5456 diff.c:5459 diff.c:5504
+#: diff.c:5459 diff.c:5462 diff.c:5507
msgid "<regex>"
msgstr "<regex>"
-#: diff.c:5457
+#: diff.c:5460
msgid "use <regex> to decide what a word is"
msgstr "utiliser <regex> pour décider ce qu'est un mot"
-#: diff.c:5460
+#: diff.c:5463
msgid "equivalent to --word-diff=color --word-diff-regex=<regex>"
msgstr "équivalent à --word-diff=color --word-diff-regex=<regex>"
-#: diff.c:5463
+#: diff.c:5466
msgid "moved lines of code are colored differently"
msgstr "les lignes déplacées sont colorées différemment"
-#: diff.c:5466
+#: diff.c:5469
msgid "how white spaces are ignored in --color-moved"
msgstr "comment les espaces sont ignorés dans --color-moved"
-#: diff.c:5469
+#: diff.c:5472
msgid "Other diff options"
msgstr "Autres options diff"
-#: diff.c:5471
+#: diff.c:5474
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:5475
+#: diff.c:5478
msgid "treat all files as text"
msgstr "traiter les fichiers comme texte"
-#: diff.c:5477
+#: diff.c:5480
msgid "swap two inputs, reverse the diff"
msgstr "échanger les entrées, inverser le diff"
-#: diff.c:5479
+#: diff.c:5482
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:5481
+#: diff.c:5484
msgid "disable all output of the program"
msgstr "désactiver tous les affichages du programme"
-#: diff.c:5483
+#: diff.c:5486
msgid "allow an external diff helper to be executed"
msgstr "autoriser l'exécution d'un assistant externe de diff"
-#: diff.c:5485
+#: diff.c:5488
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:5487
+#: diff.c:5490
msgid "<when>"
msgstr "<quand>"
-#: diff.c:5488
+#: diff.c:5491
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:5491
+#: diff.c:5494
msgid "<format>"
msgstr "<format>"
-#: diff.c:5492
+#: diff.c:5495
msgid "specify how differences in submodules are shown"
msgstr "spécifier comment les différences dans les sous-modules sont affichées"
-#: diff.c:5496
+#: diff.c:5499
msgid "hide 'git add -N' entries from the index"
msgstr "masquer les entrées 'git add -N' de l'index"
-#: diff.c:5499
+#: diff.c:5502
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:5501
+#: diff.c:5504
msgid "<string>"
msgstr "<chaîne>"
-#: diff.c:5502
+#: diff.c:5505
msgid ""
"look for differences that change the number of occurrences of the specified "
"string"
@@ -3073,7 +3082,7 @@ msgstr ""
"rechercher les différences qui modifient le nombre d'occurrences de la "
"chaîne spécifiée"
-#: diff.c:5505
+#: diff.c:5508
msgid ""
"look for differences that change the number of occurrences of the specified "
"regex"
@@ -3081,26 +3090,26 @@ msgstr ""
"rechercher les différences qui modifient le nombre d'occurrences de la regex "
"spécifiée"
-#: diff.c:5508
+#: diff.c:5511
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:5511
+#: diff.c:5514
msgid "treat <string> in -S as extended POSIX regular expression"
msgstr ""
"traiter <chaîne> dans -S comme une expression rationnelle POSIX étendue"
-#: diff.c:5514
+#: diff.c:5517
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:5515
+#: diff.c:5518
msgid "<object-id>"
msgstr "<id-objet>"
-#: diff.c:5516
+#: diff.c:5519
msgid ""
"look for differences that change the number of occurrences of the specified "
"object"
@@ -3108,35 +3117,35 @@ msgstr ""
"rechercher les différences qui modifient le nombre d'occurrences de l'objet "
"indiqué"
-#: diff.c:5518
+#: diff.c:5521
msgid "[(A|C|D|M|R|T|U|X|B)...[*]]"
msgstr "[(A|C|D|M|R|T|U|X|B)...[*]]"
-#: diff.c:5519
+#: diff.c:5522
msgid "select files by diff type"
msgstr "sélectionner les fichiers par types de diff"
-#: diff.c:5521
+#: diff.c:5524
msgid "<file>"
msgstr "<fichier>"
-#: diff.c:5522
+#: diff.c:5525
msgid "Output to a specific file"
msgstr "Sortie vers un fichier spécifié"
-#: diff.c:6177
+#: diff.c:6180
msgid "inexact rename detection was skipped due to too many files."
msgstr ""
"détection de renommage inexact annulée à cause d'un trop grand nombre de "
"fichiers."
-#: diff.c:6180
+#: diff.c:6183
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:6183
+#: diff.c:6186
#, c-format
msgid ""
"you may want to set your %s variable to at least %d and retry the command."
@@ -3144,41 +3153,41 @@ msgstr ""
"vous souhaitez peut-être régler la variable %s à au moins %d et réessayer le "
"commande."
-#: dir.c:537
+#: dir.c:549
#, c-format
msgid "pathspec '%s' did not match any file(s) known to git"
msgstr ""
"le spécificateur de chemin '%s' ne correspond à aucun fichier connu de git"
-#: dir.c:926
+#: dir.c:938
#, c-format
msgid "cannot use %s as an exclude file"
msgstr "impossible d'utiliser %s comme fichier d'exclusion"
-#: dir.c:1843
+#: dir.c:1877
#, c-format
msgid "could not open directory '%s'"
msgstr "impossible d'ouvrir le répertoire '%s'"
-#: dir.c:2085
+#: dir.c:2128
msgid "failed to get kernel name and information"
msgstr "echec de l'obtention d'information de kernel"
-#: dir.c:2209
+#: dir.c:2252
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:3013
+#: dir.c:3056
#, c-format
msgid "index file corrupt in repo %s"
msgstr "fichier d'index corrompu dans le dépôt %s"
-#: dir.c:3058 dir.c:3063
+#: dir.c:3101 dir.c:3106
#, c-format
msgid "could not create directories for %s"
msgstr "impossible de créer les répertoires pour %s"
-#: dir.c:3092
+#: dir.c:3135
#, c-format
msgid "could not migrate git directory from '%s' to '%s'"
msgstr "impossible de migrer le répertoire git de '%s' vers '%s'"
@@ -3199,12 +3208,12 @@ msgstr "Filtrage du contenu"
msgid "could not stat file '%s'"
msgstr "impossible de stat le fichier '%s'"
-#: environment.c:150
+#: environment.c:148
#, c-format
msgid "bad git namespace path \"%s\""
msgstr "Espaces de nom de Git \"%s\""
-#: environment.c:332
+#: environment.c:330
#, c-format
msgid "could not set GIT_DIR to '%s'"
msgstr "impossible de régler GIT_DIR à '%s'"
@@ -3214,159 +3223,155 @@ msgstr "impossible de régler GIT_DIR à '%s'"
msgid "too many args to run %s"
msgstr "trop d'arguments pour lancer %s"
-#: fetch-object.c:17
-msgid "Remote with no URL"
-msgstr "Dépôt distant sans URL"
-
-#: fetch-pack.c:151
+#: fetch-pack.c:150
msgid "git fetch-pack: expected shallow list"
msgstr "git fetch-pack : liste superficielle attendue"
-#: fetch-pack.c:154
+#: fetch-pack.c:153
msgid "git fetch-pack: expected a flush packet after shallow list"
msgstr ""
"git fetch-pack : paquet de vidage attendu après une liste superficielle"
-#: fetch-pack.c:165
+#: fetch-pack.c:164
msgid "git fetch-pack: expected ACK/NAK, got a flush packet"
msgstr "git fetch-pack : ACK/NACK attendu, paquet de nettoyage reçu"
-#: fetch-pack.c:185
+#: fetch-pack.c:184
#, c-format
msgid "git fetch-pack: expected ACK/NAK, got '%s'"
msgstr "git fetch-pack : ACK/NACK attendu, '%s' reçu"
-#: fetch-pack.c:196
+#: fetch-pack.c:195
msgid "unable to write to remote"
msgstr "impossible d'écrire sur un distant"
-#: fetch-pack.c:258
+#: fetch-pack.c:257
msgid "--stateless-rpc requires multi_ack_detailed"
msgstr "--stateless-rpc nécessite multi_ack_detailed"
-#: fetch-pack.c:360 fetch-pack.c:1284
+#: fetch-pack.c:356 fetch-pack.c:1280
#, c-format
msgid "invalid shallow line: %s"
msgstr "ligne de superficiel invalide : %s"
-#: fetch-pack.c:366 fetch-pack.c:1290
+#: fetch-pack.c:362 fetch-pack.c:1286
#, c-format
msgid "invalid unshallow line: %s"
msgstr "ligne de fin de superficiel invalide : %s"
-#: fetch-pack.c:368 fetch-pack.c:1292
+#: fetch-pack.c:364 fetch-pack.c:1288
#, c-format
msgid "object not found: %s"
msgstr "objet non trouvé : %s"
-#: fetch-pack.c:371 fetch-pack.c:1295
+#: fetch-pack.c:367 fetch-pack.c:1291
#, c-format
msgid "error in object: %s"
msgstr "Erreur dans l'objet : %s"
-#: fetch-pack.c:373 fetch-pack.c:1297
+#: fetch-pack.c:369 fetch-pack.c:1293
#, c-format
msgid "no shallow found: %s"
msgstr "Pas de superficiel trouvé : %s"
-#: fetch-pack.c:376 fetch-pack.c:1301
+#: fetch-pack.c:372 fetch-pack.c:1297
#, c-format
msgid "expected shallow/unshallow, got %s"
msgstr "superficiel/non superficiel attendu, %s trouvé"
-#: fetch-pack.c:417
+#: fetch-pack.c:414
#, c-format
msgid "got %s %d %s"
msgstr "réponse %s %d %s"
-#: fetch-pack.c:434
+#: fetch-pack.c:431
#, c-format
msgid "invalid commit %s"
msgstr "commit invalide %s"
-#: fetch-pack.c:465
+#: fetch-pack.c:462
msgid "giving up"
msgstr "abandon"
-#: fetch-pack.c:477 progress.c:277
+#: fetch-pack.c:475 progress.c:312
msgid "done"
msgstr "fait"
-#: fetch-pack.c:489
+#: fetch-pack.c:487
#, c-format
msgid "got %s (%d) %s"
msgstr "%s trouvé (%d) %s"
-#: fetch-pack.c:535
+#: fetch-pack.c:533
#, c-format
msgid "Marking %s as complete"
msgstr "Marquage de %s comme terminé"
-#: fetch-pack.c:744
+#: fetch-pack.c:742
#, c-format
msgid "already have %s (%s)"
msgstr "%s déjà possédé (%s)"
-#: fetch-pack.c:783
+#: fetch-pack.c:781
msgid "fetch-pack: unable to fork off sideband demultiplexer"
msgstr "fetch-pack : impossible de dupliquer le démultiplexeur latéral"
-#: fetch-pack.c:791
+#: fetch-pack.c:789
msgid "protocol error: bad pack header"
msgstr "erreur de protocole : mauvais entête de paquet"
-#: fetch-pack.c:859
+#: fetch-pack.c:857
#, c-format
msgid "fetch-pack: unable to fork off %s"
msgstr "fetch-pack : impossible de dupliquer %s"
-#: fetch-pack.c:875
+#: fetch-pack.c:873
#, c-format
msgid "%s failed"
msgstr "échec de %s"
-#: fetch-pack.c:877
+#: fetch-pack.c:875
msgid "error in sideband demultiplexer"
msgstr "erreur dans le démultiplexer latéral"
-#: fetch-pack.c:908
+#: fetch-pack.c:907
#, c-format
msgid "Server version is %.*s"
msgstr "La version du serveur est %.*s"
-#: fetch-pack.c:913 fetch-pack.c:919 fetch-pack.c:922 fetch-pack.c:928
-#: fetch-pack.c:932 fetch-pack.c:936 fetch-pack.c:940 fetch-pack.c:944
-#: fetch-pack.c:948 fetch-pack.c:952 fetch-pack.c:956 fetch-pack.c:960
-#: fetch-pack.c:966 fetch-pack.c:972 fetch-pack.c:977 fetch-pack.c:982
+#: fetch-pack.c:912 fetch-pack.c:918 fetch-pack.c:921 fetch-pack.c:927
+#: fetch-pack.c:931 fetch-pack.c:935 fetch-pack.c:939 fetch-pack.c:943
+#: fetch-pack.c:947 fetch-pack.c:951 fetch-pack.c:955 fetch-pack.c:959
+#: fetch-pack.c:965 fetch-pack.c:971 fetch-pack.c:976 fetch-pack.c:981
#, c-format
msgid "Server supports %s"
msgstr "Le serveur supporte %s"
-#: fetch-pack.c:915
+#: fetch-pack.c:914
msgid "Server does not support shallow clients"
msgstr "Le serveur ne supporte les clients superficiels"
-#: fetch-pack.c:975
+#: fetch-pack.c:974
msgid "Server does not support --shallow-since"
msgstr "Le receveur ne gère pas --shallow-since"
-#: fetch-pack.c:980
+#: fetch-pack.c:979
msgid "Server does not support --shallow-exclude"
msgstr "Le receveur ne gère pas --shallow-exclude"
-#: fetch-pack.c:984
+#: fetch-pack.c:983
msgid "Server does not support --deepen"
msgstr "Le receveur ne gère pas --deepen"
-#: fetch-pack.c:1001
+#: fetch-pack.c:1000
msgid "no common commits"
msgstr "pas de commit commun"
-#: fetch-pack.c:1013 fetch-pack.c:1462
+#: fetch-pack.c:1012 fetch-pack.c:1468
msgid "git fetch-pack: fetch failed."
msgstr "git fetch-pack : échec de le récupération."
-#: fetch-pack.c:1151
+#: fetch-pack.c:1150
msgid "Server does not support shallow requests"
msgstr "Le serveur ne supporte les requêtes superficielles"
@@ -3374,72 +3379,72 @@ msgstr "Le serveur ne supporte les requêtes superficielles"
msgid "Server supports filter"
msgstr "Le serveur supporte filter"
-#: fetch-pack.c:1184
+#: fetch-pack.c:1180
msgid "unable to write request to remote"
msgstr "impossible d'écrire la requête sur le distant"
-#: fetch-pack.c:1202
+#: fetch-pack.c:1198
#, c-format
msgid "error reading section header '%s'"
msgstr "erreur à la lecture de l'entête de section '%s'"
-#: fetch-pack.c:1208
+#: fetch-pack.c:1204
#, c-format
msgid "expected '%s', received '%s'"
msgstr "'%s' attendu, '%s' reçu"
-#: fetch-pack.c:1247
+#: fetch-pack.c:1243
#, c-format
msgid "unexpected acknowledgment line: '%s'"
msgstr "ligne d'acquittement inattendue : '%s'"
-#: fetch-pack.c:1252
+#: fetch-pack.c:1248
#, c-format
msgid "error processing acks: %d"
msgstr "erreur lors du traitement des acquittements : %d"
-#: fetch-pack.c:1262
+#: fetch-pack.c:1258
msgid "expected packfile to be sent after 'ready'"
msgstr "fichier paquet attendu à envoyer après 'ready'"
-#: fetch-pack.c:1264
+#: fetch-pack.c:1260
msgid "expected no other sections to be sent after no 'ready'"
msgstr "aucune autre section attendue à envoyer après absence de 'ready'"
-#: fetch-pack.c:1306
+#: fetch-pack.c:1302
#, c-format
msgid "error processing shallow info: %d"
msgstr "erreur lors du traitement de l'information de superficialité : %d"
-#: fetch-pack.c:1353
+#: fetch-pack.c:1349
#, c-format
msgid "expected wanted-ref, got '%s'"
msgstr "wanted-ref attendu, '%s' trouvé"
-#: fetch-pack.c:1358
+#: fetch-pack.c:1354
#, c-format
msgid "unexpected wanted-ref: '%s'"
msgstr "wanted-ref inattendu : '%s'"
-#: fetch-pack.c:1363
+#: fetch-pack.c:1359
#, c-format
msgid "error processing wanted refs: %d"
msgstr "erreur lors du traitement des références voulues : %d"
-#: fetch-pack.c:1689
+#: fetch-pack.c:1693
msgid "no matching remote head"
msgstr "pas de HEAD distante correspondante"
-#: fetch-pack.c:1712 builtin/clone.c:686
+#: fetch-pack.c:1716 builtin/clone.c:685
msgid "remote did not send all necessary objects"
msgstr "le serveur distant n'a pas envoyé tous les objets nécessaires"
-#: fetch-pack.c:1739
+#: fetch-pack.c:1743
#, c-format
msgid "no such remote ref %s"
msgstr "référence distante inconnue %s"
-#: fetch-pack.c:1742
+#: fetch-pack.c:1746
#, 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é"
@@ -3462,18 +3467,26 @@ msgstr "impossible d'écrire la signature détachée dans '%s'"
msgid "ignore invalid color '%.*s' in log.graphColors"
msgstr "couleur invalide '%.*s' ignorée dans log.graphColors"
-#: grep.c:2117
+#: grep.c:668
+msgid ""
+"given pattern contains NULL byte (via -f <file>). This is only supported "
+"with -P under PCRE v2"
+msgstr ""
+"le motif fourni contient des octets NUL (via -f <fichier>). Ce n'est "
+"supporté qu'avec -P avec PCRE v2"
+
+#: grep.c:2124
#, c-format
msgid "'%s': unable to read %s"
msgstr "'%s' : lecture de %s impossible"
-#: grep.c:2134 setup.c:164 builtin/clone.c:409 builtin/diff.c:82
+#: grep.c:2141 setup.c:165 builtin/clone.c:408 builtin/diff.c:82
#: builtin/rm.c:135
#, c-format
msgid "failed to stat '%s'"
msgstr "échec du stat de '%s'"
-#: grep.c:2145
+#: grep.c:2152
#, c-format
msgid "'%s': short read"
msgstr "'%s' : lecture tronquée"
@@ -3620,12 +3633,12 @@ msgstr[1] ""
msgid "git version [<options>]"
msgstr "git version [<options>]"
-#: help.c:782
+#: help.c:783
#, c-format
msgid "%s: %s - %s"
msgstr "%s: %s - %s"
-#: help.c:786
+#: help.c:787
msgid ""
"\n"
"Did you mean this?"
@@ -3698,43 +3711,59 @@ msgstr "le nom n'est constitué que de caractères interdits : %s"
msgid "invalid date format: %s"
msgstr "format de date invalide : %s"
-#: list-objects.c:129
+#: list-objects.c:127
#, 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:142
+#: list-objects.c:140
#, 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:378
+#: list-objects.c:375
#, c-format
msgid "unable to load root tree for commit %s"
msgstr "impossible de charger l'arbre racine pour le commit %s"
-#: list-objects-filter-options.c:36
-msgid "multiple filter-specs cannot be combined"
-msgstr "impossible de combiner des spécificateurs multiples de filtre"
+#: list-objects-filter.c:492
+#, c-format
+msgid "unable to access sparse blob in '%s'"
+msgstr "impossible d'accéder au blob clairsemé dans '%s'"
+
+#: list-objects-filter.c:495
+#, c-format
+msgid "unable to parse sparse filter data in %s"
+msgstr "impossible d'analyser la donnée de filtre clairsemé dans %s"
#: list-objects-filter-options.c:58
msgid "expected 'tree:<depth>'"
msgstr "attendu : 'tree:<profondeur>'"
-#: list-objects-filter-options.c:84
+#: list-objects-filter-options.c:73
msgid "sparse:path filters support has been dropped"
msgstr "sparse : le support des filtres de chemin a été abandonné"
-#: list-objects-filter-options.c:94
+#: list-objects-filter-options.c:86
#, c-format
msgid "invalid filter-spec '%s'"
msgstr "spécificateur de filtre invalide '%s'"
-#: list-objects-filter-options.c:158
-msgid "cannot change partial clone promisor remote"
-msgstr "impossible de modifier le prometteur distant de clone partiel"
+#: list-objects-filter-options.c:102
+#, 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:144
+msgid "expected something after combine:"
+msgstr "quelque chose attendu après combine :"
+
+#: list-objects-filter-options.c:226
+msgid "multiple filter-specs cannot be combined"
+msgstr "impossible de combiner des spécificateurs multiples de filtre"
#: lockfile.c:151
#, c-format
@@ -3764,117 +3793,113 @@ msgstr "Impossible de créer '%s.lock' : %s"
msgid "failed to read the cache"
msgstr "impossible de lire le cache"
-#: merge.c:107 rerere.c:720 builtin/am.c:1885 builtin/am.c:1919
-#: builtin/checkout.c:536 builtin/checkout.c:796 builtin/clone.c:786
+#: merge.c:107 rerere.c:720 builtin/am.c:1874 builtin/am.c:1908
+#: builtin/checkout.c:537 builtin/checkout.c:796 builtin/clone.c:785
#: builtin/stash.c:264
msgid "unable to write new index file"
msgstr "impossible d'écrire le nouveau fichier d'index"
-#: merge-recursive.c:322
+#: merge-recursive.c:367
msgid "(bad commit)\n"
msgstr "(mauvais commit)\n"
-#: merge-recursive.c:345
+#: merge-recursive.c:390
#, c-format
msgid "add_cacheinfo failed for path '%s'; merge aborting."
msgstr "échec de addinfo_cache pour le chemin '%s' ; abandon de la fusion."
-#: merge-recursive.c:354
+#: merge-recursive.c:399
#, c-format
msgid "add_cacheinfo failed to refresh for path '%s'; merge aborting."
msgstr "échec de addinfo_cache pour le chemin '%s' ; abandon de la fusion."
-#: merge-recursive.c:437
-msgid "error building trees"
-msgstr "erreur de construction des arbres"
-
-#: merge-recursive.c:863
+#: merge-recursive.c:885
#, c-format
msgid "failed to create path '%s'%s"
msgstr "impossible de créer le chemin '%s' %s"
-#: merge-recursive.c:874
+#: merge-recursive.c:896
#, c-format
msgid "Removing %s to make room for subdirectory\n"
msgstr "Suppression de %s pour faire de la place pour le sous-répertoire\n"
-#: merge-recursive.c:888 merge-recursive.c:907
+#: merge-recursive.c:910 merge-recursive.c:929
msgid ": perhaps a D/F conflict?"
msgstr ": peut-être un conflit D/F ?"
-#: merge-recursive.c:897
+#: merge-recursive.c:919
#, c-format
msgid "refusing to lose untracked file at '%s'"
msgstr "refus de perdre le fichier non suivi '%s'"
-#: merge-recursive.c:938 builtin/cat-file.c:40
+#: merge-recursive.c:960 builtin/cat-file.c:41
#, c-format
msgid "cannot read object %s '%s'"
msgstr "impossible de lire l'objet %s '%s'"
-#: merge-recursive.c:941
+#: merge-recursive.c:965
#, c-format
msgid "blob expected for %s '%s'"
msgstr "blob attendu pour %s '%s'"
-#: merge-recursive.c:965
+#: merge-recursive.c:990
#, c-format
msgid "failed to open '%s': %s"
msgstr "échec à l'ouverture de '%s' : %s"
-#: merge-recursive.c:976
+#: merge-recursive.c:1001
#, c-format
msgid "failed to symlink '%s': %s"
msgstr "échec à la création du lien symbolique '%s' : %s"
-#: merge-recursive.c:981
+#: merge-recursive.c:1006
#, c-format
msgid "do not know what to do with %06o %s '%s'"
msgstr "ne sait pas traiter %06o %s '%s'"
-#: merge-recursive.c:1177
+#: merge-recursive.c:1199
#, c-format
msgid "Failed to merge submodule %s (not checked out)"
msgstr "Échec de la fusion du sous-module %s (non extrait)"
-#: merge-recursive.c:1184
+#: merge-recursive.c:1206
#, c-format
msgid "Failed to merge submodule %s (commits not present)"
msgstr "Échec de fusion du sous-module %s (commits non présents)"
-#: merge-recursive.c:1191
+#: merge-recursive.c:1213
#, 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-recursive.c:1199 merge-recursive.c:1211
+#: merge-recursive.c:1221 merge-recursive.c:1233
#, c-format
msgid "Fast-forwarding submodule %s to the following commit:"
msgstr "Avance rapide du sous-module %s au commit suivant :"
-#: merge-recursive.c:1202 merge-recursive.c:1214
+#: merge-recursive.c:1224 merge-recursive.c:1236
#, c-format
msgid "Fast-forwarding submodule %s"
msgstr "Avance rapide du sous-module %s"
-#: merge-recursive.c:1237
+#: merge-recursive.c:1259
#, 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:1241
+#: merge-recursive.c:1263
#, 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:1242
+#: merge-recursive.c:1264
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:1245
+#: merge-recursive.c:1267
#, c-format
msgid ""
"If this is correct simply add it to the index for example\n"
@@ -3891,33 +3916,33 @@ msgstr ""
"\n"
"qui acceptera cette suggestion.\n"
-#: merge-recursive.c:1254
+#: merge-recursive.c:1276
#, 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:1327
+#: merge-recursive.c:1349
msgid "Failed to execute internal merge"
msgstr "Échec à l'exécution de la fusion interne"
-#: merge-recursive.c:1332
+#: merge-recursive.c:1354
#, c-format
msgid "Unable to add %s to database"
msgstr "Impossible d'ajouter %s à la base de données"
-#: merge-recursive.c:1364
+#: merge-recursive.c:1386
#, c-format
msgid "Auto-merging %s"
msgstr "Fusion automatique de %s"
-#: merge-recursive.c:1387
+#: merge-recursive.c:1410
#, 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:1459
+#: merge-recursive.c:1482
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -3926,7 +3951,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:1464
+#: merge-recursive.c:1487
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -3935,7 +3960,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:1471
+#: merge-recursive.c:1494
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -3944,7 +3969,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:1476
+#: merge-recursive.c:1499
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -3953,41 +3978,41 @@ 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:1511
+#: merge-recursive.c:1534
msgid "rename"
msgstr "renommage"
-#: merge-recursive.c:1511
+#: merge-recursive.c:1534
msgid "renamed"
msgstr "renommé"
-#: merge-recursive.c:1591 merge-recursive.c:2450 merge-recursive.c:3094
+#: merge-recursive.c:1614 merge-recursive.c:2472 merge-recursive.c:3117
#, c-format
msgid "Refusing to lose dirty file at %s"
msgstr "Refus de perdre le fichier modifié %s"
-#: merge-recursive.c:1601
+#: merge-recursive.c:1624
#, 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:1659
+#: merge-recursive.c:1682
#, 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:1690
+#: merge-recursive.c:1713
#, 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:1695
+#: merge-recursive.c:1718
#, 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:1714
+#: merge-recursive.c:1737
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
@@ -3996,18 +4021,18 @@ msgstr ""
"CONFLIT (renommage/renommage) : Renommage de \"%s\"->\"%s\" dans la branche "
"\"%s\" et renommage \"%s\"->\"%s\" dans \"%s\"%s"
-#: merge-recursive.c:1719
+#: merge-recursive.c:1742
msgid " (left unresolved)"
msgstr " (laissé non résolu)"
-#: merge-recursive.c:1828
+#: merge-recursive.c:1851
#, 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:2035
+#: merge-recursive.c:2056
#, c-format
msgid ""
"CONFLICT (directory rename split): Unclear where to place %s because "
@@ -4018,7 +4043,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:2067
+#: merge-recursive.c:2088
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Existing file/dir at %s in the way of "
@@ -4027,7 +4052,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-recursive.c:2077
+#: merge-recursive.c:2098
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Cannot map more than one path to %s; "
@@ -4036,7 +4061,7 @@ msgstr ""
"CONFLIT (renommage implicite de répertoire) : impossible de transformer "
"plusieurs chemins sur %s ; les chemins concernés sont : %s"
-#: merge-recursive.c:2169
+#: merge-recursive.c:2190
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename directory %s->%s in %s. Rename directory %s-"
@@ -4045,7 +4070,7 @@ msgstr ""
"CONFLIT (renommage/renommage) : renommage du répertoire %s->%s dans %s. "
"Renommage de répertoire %s->%s dans %s"
-#: merge-recursive.c:2413
+#: merge-recursive.c:2435
#, c-format
msgid ""
"WARNING: Avoiding applying %s -> %s rename to %s, because %s itself was "
@@ -4054,52 +4079,52 @@ msgstr ""
"AVERTISSEMENT : ne renomme pas %s->%s dans %s, parce que %s lui-même a été "
"renommé."
-#: merge-recursive.c:2938
+#: merge-recursive.c:2961
#, c-format
msgid "cannot read object %s"
msgstr "impossible de lire l'objet %s"
-#: merge-recursive.c:2941
+#: merge-recursive.c:2964
#, c-format
msgid "object %s is not a blob"
msgstr "l'objet %s n'est pas un blob"
-#: merge-recursive.c:3005
+#: merge-recursive.c:3028
msgid "modify"
msgstr "modification"
-#: merge-recursive.c:3005
+#: merge-recursive.c:3028
msgid "modified"
msgstr "modifié"
-#: merge-recursive.c:3017
+#: merge-recursive.c:3040
msgid "content"
msgstr "contenu"
-#: merge-recursive.c:3021
+#: merge-recursive.c:3044
msgid "add/add"
msgstr "ajout/ajout"
-#: merge-recursive.c:3044
+#: merge-recursive.c:3067
#, c-format
msgid "Skipped %s (merged same as existing)"
msgstr "%s sauté (fusion identique à l'existant)"
-#: merge-recursive.c:3066 git-submodule.sh:937
+#: merge-recursive.c:3089 git-submodule.sh:937
msgid "submodule"
msgstr "sous-module"
-#: merge-recursive.c:3067
+#: merge-recursive.c:3090
#, c-format
msgid "CONFLICT (%s): Merge conflict in %s"
msgstr "CONFLIT (%s) : Conflit de fusion dans %s"
-#: merge-recursive.c:3097
+#: merge-recursive.c:3120
#, c-format
msgid "Adding as %s instead"
msgstr "Ajout plutôt comme %s"
-#: merge-recursive.c:3179
+#: merge-recursive.c:3203
#, c-format
msgid ""
"Path updated: %s added in %s inside a directory that was renamed in %s; "
@@ -4108,7 +4133,7 @@ msgstr ""
"Chemin mis à jour : %s ajouté dans %s dans un répertoire qui a été renommé "
"en %s ; déplacé dans %s."
-#: merge-recursive.c:3182
+#: merge-recursive.c:3206
#, c-format
msgid ""
"CONFLICT (file location): %s added in %s inside a directory that was renamed "
@@ -4118,7 +4143,7 @@ msgstr ""
"a été renommé dans %s, ce qui suggère qu'il devrait peut-être être déplacé "
"vers %s."
-#: merge-recursive.c:3186
+#: merge-recursive.c:3210
#, c-format
msgid ""
"Path updated: %s renamed to %s in %s, inside a directory that was renamed in "
@@ -4127,7 +4152,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-recursive.c:3189
+#: merge-recursive.c:3213
#, c-format
msgid ""
"CONFLICT (file location): %s renamed to %s in %s, inside a directory that "
@@ -4137,176 +4162,176 @@ msgstr ""
"répertoire qui a été renommé dans %s, ce qui suggère qu'il devrait peut-être "
"être déplacé vers %s."
-#: merge-recursive.c:3303
+#: merge-recursive.c:3327
#, c-format
msgid "Removing %s"
msgstr "Suppression de %s"
-#: merge-recursive.c:3326
+#: merge-recursive.c:3350
msgid "file/directory"
msgstr "fichier/répertoire"
-#: merge-recursive.c:3331
+#: merge-recursive.c:3355
msgid "directory/file"
msgstr "répertoire/fichier"
-#: merge-recursive.c:3338
+#: merge-recursive.c:3362
#, 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:3347
+#: merge-recursive.c:3371
#, c-format
msgid "Adding %s"
msgstr "Ajout de %s"
-#: merge-recursive.c:3356
+#: merge-recursive.c:3380
#, c-format
msgid "CONFLICT (add/add): Merge conflict in %s"
msgstr "CONFLIT (ajout/ajout) : Conflit de fusion dans %s"
-#: merge-recursive.c:3394
-#, c-format
-msgid ""
-"Your local changes to the following files would be overwritten by merge:\n"
-" %s"
-msgstr ""
-"Vos modifications locales aux fichiers suivants seraient écrasées par la "
-"fusion :\n"
-" %s"
-
-#: merge-recursive.c:3405
+#: merge-recursive.c:3424
msgid "Already up to date!"
msgstr "Déjà à jour !"
-#: merge-recursive.c:3414
+#: merge-recursive.c:3433
#, c-format
msgid "merging of trees %s and %s failed"
msgstr "échec de fusion des arbres %s et %s"
-#: merge-recursive.c:3513
+#: merge-recursive.c:3537
msgid "Merging:"
msgstr "Fusion :"
-#: merge-recursive.c:3526
+#: merge-recursive.c:3550
#, 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:3565
+#: merge-recursive.c:3600
msgid "merge returned no commit"
msgstr "la fusion n'a pas retourné de commit"
-#: merge-recursive.c:3631
+#: merge-recursive.c:3659
+#, c-format
+msgid ""
+"Your local changes to the following files would be overwritten by merge:\n"
+" %s"
+msgstr ""
+"Vos modifications locales aux fichiers suivants seraient écrasées par la "
+"fusion :\n"
+" %s"
+
+#: merge-recursive.c:3756
#, c-format
msgid "Could not parse object '%s'"
msgstr "Impossible d'analyser l'objet '%s'"
-#: merge-recursive.c:3647 builtin/merge.c:698 builtin/merge.c:869
+#: merge-recursive.c:3774 builtin/merge.c:694 builtin/merge.c:874
msgid "Unable to write index."
msgstr "Impossible d'écrire l'index."
-#: midx.c:69
+#: midx.c:68
#, c-format
msgid "multi-pack-index file %s is too small"
msgstr "le fichier d'index multi-paquet %s est trop petit"
-#: midx.c:85
+#: midx.c:84
#, 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:90
+#: midx.c:89
#, c-format
msgid "multi-pack-index version %d not recognized"
msgstr "la version d'index multi-paquet %d n'est pas reconnue"
-#: midx.c:95
+#: midx.c:94
#, c-format
msgid "hash version %u does not match"
msgstr "la version %u du condensé ne correspond pas"
-#: midx.c:109
+#: midx.c:108
msgid "invalid chunk offset (too large)"
msgstr "décalage de section invalide (trop grand)"
-#: midx.c:133
+#: midx.c:132
msgid "terminating multi-pack-index chunk id appears earlier than expected"
msgstr ""
"identifiant de terminaison de tronçon d'index multi-paquet terminant "
"apparaît plus tôt qu'attendu"
-#: midx.c:146
+#: midx.c:145
msgid "multi-pack-index missing required pack-name chunk"
msgstr "index multi-paquet manque de tronçon de nom de paquet"
-#: midx.c:148
+#: midx.c:147
msgid "multi-pack-index missing required OID fanout chunk"
msgstr "index multi-paquet manque de tronçon de d'étalement OID requis"
-#: midx.c:150
+#: midx.c:149
msgid "multi-pack-index missing required OID lookup chunk"
msgstr "index multi-paquet manque de tronçon de recherche OID"
-#: midx.c:152
+#: midx.c:151
msgid "multi-pack-index missing required object offsets chunk"
msgstr "index multi-paquet manque de tronçon de décalage d'objet"
-#: midx.c:166
+#: midx.c:165
#, 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:211
+#: midx.c:210
#, c-format
msgid "bad pack-int-id: %u (%u total packs)"
msgstr "mauvais pack-int-id : %u (%u paquets au total)"
-#: midx.c:261
+#: midx.c:260
msgid "multi-pack-index stores a 64-bit offset, but off_t is too small"
msgstr ""
"multi-pack-index stock un décalage en 64-bit, mais off_t est trop petit"
-#: midx.c:289
+#: midx.c:288
msgid "error preparing packfile from multi-pack-index"
msgstr "erreur à la préparation du fichier paquet depuis un index multi-paquet"
-#: midx.c:470
+#: midx.c:469
#, c-format
msgid "failed to add packfile '%s'"
msgstr "échec de l'ajout du fichier paquet '%s'"
-#: midx.c:476
+#: midx.c:475
#, c-format
msgid "failed to open pack-index '%s'"
msgstr "échec à l'ouverture du fichier paquet '%s'"
-#: midx.c:536
+#: midx.c:535
#, c-format
msgid "failed to locate object %d in packfile"
msgstr "échec de localisation de l'objet %d dans le fichier paquet"
-#: midx.c:865
+#: midx.c:864
#, c-format
msgid "did not see pack-file %s to drop"
msgstr "fichier paquet à éliminer %s non trouvé"
-#: midx.c:1036
+#: midx.c:1035
#, c-format
msgid "failed to clear multi-pack-index at %s"
msgstr "échec du nettoyage de l'index de multi-paquet à %s"
-#: midx.c:1091
+#: midx.c:1090
msgid "Looking for referenced packfiles"
msgstr "Recherche de fichiers paquets référencés"
-#: midx.c:1106
+#: midx.c:1105
#, c-format
msgid ""
"oid fanout out of order: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
@@ -4314,57 +4339,57 @@ msgstr ""
"étalement oid en désordre : étalement[%d] = %<PRIx32> > %<PRIx32> = "
"étalement[%d]"
-#: midx.c:1110
+#: midx.c:1109
msgid "Verifying OID order in MIDX"
msgstr "Vérification de l'ordre des OID dans MIDX"
-#: midx.c:1119
+#: midx.c:1118
#, 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:1138
+#: midx.c:1137
msgid "Sorting objects by packfile"
msgstr "Classement des objets par fichier paquet"
-#: midx.c:1144
+#: midx.c:1143
msgid "Verifying object offsets"
msgstr "Vérification des décalages des objets"
-#: midx.c:1160
+#: midx.c:1159
#, 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:1166
+#: midx.c:1165
#, c-format
msgid "failed to load pack-index for packfile %s"
msgstr "impossible de lire le fichier paquet %s"
-#: midx.c:1175
+#: midx.c:1174
#, 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:1350
+#: midx.c:1349
msgid "could not start pack-objects"
msgstr "Impossible de démarrer le groupement d'objets"
-#: midx.c:1369
+#: midx.c:1368
msgid "could not finish pack-objects"
msgstr "Impossible de finir le groupement d'objets"
-#: name-hash.c:532
+#: name-hash.c:537
#, c-format
msgid "unable to create lazy_dir thread: %s"
msgstr "impossible de créer le fil lazy_dir : %s"
-#: name-hash.c:554
+#: name-hash.c:559
#, c-format
msgid "unable to create lazy_name thread: %s"
msgstr "impossible de créer le fil lazy_name : %s"
-#: name-hash.c:560
+#: name-hash.c:565
#, c-format
msgid "unable to join lazy_name thread: %s"
msgstr "impossible de joindre le fil lazy_name : %s"
@@ -4408,41 +4433,41 @@ 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.c:54
+#: object.c:53
#, c-format
msgid "invalid object type \"%s\""
msgstr "type d'objet invalide \"%s\""
-#: object.c:174
+#: object.c:173
#, c-format
msgid "object %s is a %s, not a %s"
msgstr "l'objet %s est de type %s, pas de type %s"
-#: object.c:234
+#: object.c:233
#, c-format
msgid "object %s has unknown type id %d"
msgstr "l'objet %s a un id de type inconnu %d"
-#: object.c:247
+#: object.c:246
#, c-format
msgid "unable to parse object: %s"
msgstr "impossible d'analyser l'objet : %s"
-#: object.c:267 object.c:278
+#: object.c:266 object.c:277
#, c-format
msgid "hash mismatch %s"
msgstr "incohérence de hachage %s"
-#: packfile.c:648
+#: packfile.c:641
msgid "offset before end of packfile (broken .idx?)"
msgstr "offset avant la fin du fichier paquet (.idx cassé ?)"
-#: packfile.c:1899
+#: packfile.c:1887
#, c-format
msgid "offset before start of pack index for %s (corrupt index?)"
msgstr "offset avant le début de l'index de paquet pour %s (index corrompu ?)"
-#: packfile.c:1903
+#: packfile.c:1891
#, c-format
msgid "offset beyond end of pack index for %s (truncated index?)"
msgstr ""
@@ -4488,26 +4513,26 @@ msgstr "option ambigüe : %s (devrait être --%s%s ou --%s%s)"
msgid "did you mean `--%s` (with two dashes ?)"
msgstr "vouliez-vous dire `--%s` (avec deux signes moins)?"
-#: parse-options.c:859
+#: parse-options.c:860
#, c-format
msgid "unknown option `%s'"
msgstr "option inconnue « %s »"
-#: parse-options.c:861
+#: parse-options.c:862
#, c-format
msgid "unknown switch `%c'"
msgstr "bascule inconnue « %c »"
-#: parse-options.c:863
+#: parse-options.c:864
#, c-format
msgid "unknown non-ascii option in string: `%s'"
msgstr "option non-ascii inconnue dans la chaîne : '%s'"
-#: parse-options.c:887
+#: parse-options.c:888
msgid "..."
msgstr "..."
-#: parse-options.c:906
+#: parse-options.c:907
#, c-format
msgid "usage: %s"
msgstr "usage : %s"
@@ -4515,21 +4540,21 @@ msgstr "usage : %s"
#. TRANSLATORS: the colon here should align with the
#. one in "usage: %s" translation.
#.
-#: parse-options.c:912
+#: parse-options.c:913
#, c-format
msgid " or: %s"
msgstr " ou : %s"
-#: parse-options.c:915
+#: parse-options.c:916
#, c-format
msgid " %s"
msgstr " %s"
-#: parse-options.c:954
+#: parse-options.c:955
msgid "-NUM"
msgstr "-NUM"
-#: parse-options.c:968
+#: parse-options.c:969
#, c-format
msgid "alias of --%s"
msgstr "alias pour --%s"
@@ -4704,29 +4729,38 @@ msgstr "impossible de créer le lstat en fil : %s"
msgid "unable to parse --pretty format"
msgstr "impossible d'analyser le format --pretty"
-#: range-diff.c:70
+#: promisor-remote.c:25
+msgid "Remote with no URL"
+msgstr "Dépôt distant sans URL"
+
+#: promisor-remote.c:61
+#, c-format
+msgid "promisor remote name cannot begin with '/': %s"
+msgstr "un nom de prometteur distant ne peut pas commencer par '/' : %s"
+
+#: range-diff.c:71
msgid "could not start `log`"
msgstr "impossible de démarrer `log`"
-#: range-diff.c:72
+#: range-diff.c:73
msgid "could not read `log` output"
msgstr "impossible de lire la sortie de `log`"
-#: range-diff.c:91 sequencer.c:5021
+#: range-diff.c:92 sequencer.c:4985
#, c-format
msgid "could not parse commit '%s'"
msgstr "impossible d'analyser le commit '%s'"
-#: range-diff.c:117
+#: range-diff.c:118
#, c-format
msgid "could not parse git header '%.*s'"
msgstr "impossible d'analyser l'entête git '%.*s'"
-#: range-diff.c:274
+#: range-diff.c:275
msgid "failed to generate diff"
msgstr "échec de la génération de diff"
-#: range-diff.c:506 range-diff.c:508
+#: range-diff.c:507 range-diff.c:509
#, c-format
msgid "could not parse log for '%s'"
msgstr "impossible d'analyser le journal pour '%s'"
@@ -4772,11 +4806,11 @@ msgstr "fstat de '%s' impossible"
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:1499
+#: read-cache.c:1520
msgid "Refresh index"
msgstr "Rafraîchir l'index"
-#: read-cache.c:1613
+#: read-cache.c:1635
#, c-format
msgid ""
"index.version set, but the value is invalid.\n"
@@ -4785,7 +4819,7 @@ msgstr ""
"version d'index renseignée, mais la valeur est invalide.\n"
"Utilisation de la version %i"
-#: read-cache.c:1623
+#: read-cache.c:1645
#, c-format
msgid ""
"GIT_INDEX_VERSION set, but the value is invalid.\n"
@@ -4794,138 +4828,138 @@ msgstr ""
"GIT_INDEX_VERSION est renseigné, mais la valeur est invalide.\n"
"Utilisation de la version %i"
-#: read-cache.c:1679
+#: read-cache.c:1701
#, c-format
msgid "bad signature 0x%08x"
msgstr "signature incorrecte 0x%08x"
-#: read-cache.c:1682
+#: read-cache.c:1704
#, c-format
msgid "bad index version %d"
msgstr "mauvaise version d'index %d"
-#: read-cache.c:1691
+#: read-cache.c:1713
msgid "bad index file sha1 signature"
msgstr "mauvaise signature sha1 d'index"
-#: read-cache.c:1721
+#: read-cache.c:1743
#, 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:1723
+#: read-cache.c:1745
#, c-format
msgid "ignoring %.4s extension"
msgstr "extension %.4s ignorée"
-#: read-cache.c:1760
+#: read-cache.c:1782
#, c-format
msgid "unknown index entry format 0x%08x"
msgstr "format d'entrée d'index inconnu 0x%08x"
-#: read-cache.c:1776
+#: read-cache.c:1798
#, 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:1833
+#: read-cache.c:1855
msgid "unordered stage entries in index"
msgstr "entrées de préparation non ordonnées dans l'index"
-#: read-cache.c:1836
+#: read-cache.c:1858
#, 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:1839
+#: read-cache.c:1861
#, c-format
msgid "unordered stage entries for '%s'"
msgstr "entrées de préparation non ordonnées pour '%s'"
-#: read-cache.c:1946 read-cache.c:2234 rerere.c:565 rerere.c:599 rerere.c:1111
-#: builtin/add.c:460 builtin/check-ignore.c:178 builtin/checkout.c:467
-#: builtin/checkout.c:651 builtin/clean.c:956 builtin/commit.c:347
+#: read-cache.c:1967 read-cache.c:2255 rerere.c:565 rerere.c:599 rerere.c:1111
+#: builtin/add.c:460 builtin/check-ignore.c:178 builtin/checkout.c:468
+#: builtin/checkout.c:652 builtin/clean.c:967 builtin/commit.c:347
#: builtin/diff-tree.c:120 builtin/grep.c:499 builtin/mv.c:145
#: builtin/reset.c:245 builtin/rm.c:271 builtin/submodule--helper.c:330
msgid "index file corrupt"
msgstr "fichier d'index corrompu"
-#: read-cache.c:2087
+#: read-cache.c:2108
#, 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:2100
+#: read-cache.c:2121
#, c-format
msgid "unable to join load_cache_entries thread: %s"
msgstr "impossible de joindre le fil load_cach_entries : %s"
-#: read-cache.c:2133
+#: read-cache.c:2154
#, c-format
msgid "%s: index file open failed"
msgstr "%s : l'ouverture du fichier d'index a échoué"
-#: read-cache.c:2137
+#: read-cache.c:2158
#, c-format
msgid "%s: cannot stat the open index"
msgstr "%s : impossible de faire un stat sur l'index ouvert"
-#: read-cache.c:2141
+#: read-cache.c:2162
#, c-format
msgid "%s: index file smaller than expected"
msgstr "%s : fichier d'index plus petit qu'attendu"
-#: read-cache.c:2145
+#: read-cache.c:2166
#, c-format
msgid "%s: unable to map index file"
msgstr "%s : impossible de mapper le fichier d'index"
-#: read-cache.c:2187
+#: read-cache.c:2208
#, 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:2214
+#: read-cache.c:2235
#, c-format
msgid "unable to join load_index_extensions thread: %s"
msgstr "impossible de joindre le fil load_index_extensions : %s"
-#: read-cache.c:2246
+#: read-cache.c:2267
#, c-format
msgid "could not freshen shared index '%s'"
msgstr "impossible de rafraîchir l'index partagé '%s'"
-#: read-cache.c:2293
+#: read-cache.c:2314
#, c-format
msgid "broken index, expect %s in %s, got %s"
msgstr "index cassé, %s attendu dans %s, %s obtenu"
-#: read-cache.c:2989 wrapper.c:658 builtin/merge.c:1114
+#: read-cache.c:3010 wrapper.c:622 builtin/merge.c:1119
#, c-format
msgid "could not close '%s'"
msgstr "impossible de fermer '%s'"
-#: read-cache.c:3092 sequencer.c:2358 sequencer.c:3928
+#: read-cache.c:3113 sequencer.c:2296 sequencer.c:3917
#, c-format
msgid "could not stat '%s'"
msgstr "stat impossible de '%s'"
-#: read-cache.c:3105
+#: read-cache.c:3126
#, c-format
msgid "unable to open git dir: %s"
msgstr "impossible d'ouvrir le répertoire git : %s"
-#: read-cache.c:3117
+#: read-cache.c:3138
#, c-format
msgid "unable to unlink: %s"
msgstr "échec lors de l'unlink : %s"
-#: read-cache.c:3142
+#: read-cache.c:3163
#, c-format
msgid "cannot fix permission bits on '%s'"
msgstr "impossible de régler les bits de droit de '%s'"
-#: read-cache.c:3291
+#: read-cache.c:3312
#, c-format
msgid "%s: cannot drop to stage #0"
msgstr "%s : impossible de revenir à l'étape 0"
@@ -5032,8 +5066,8 @@ msgstr ""
msgid "Note that empty commits are commented out"
msgstr "Veuillez noter que les commits vides sont en commentaire"
-#: rebase-interactive.c:105 rerere.c:485 rerere.c:692 sequencer.c:3447
-#: sequencer.c:3473 sequencer.c:5120 builtin/fsck.c:356 builtin/rebase.c:235
+#: rebase-interactive.c:105 rerere.c:485 rerere.c:692 sequencer.c:3388
+#: sequencer.c:3414 sequencer.c:5084 builtin/fsck.c:356 builtin/rebase.c:235
#, c-format
msgid "could not write '%s'"
msgstr "impossible d'écrire '%s'"
@@ -5080,7 +5114,7 @@ msgstr "%s ne pointe pas sur un objet valide!"
msgid "ignoring dangling symref %s"
msgstr "symref pendant %s ignoré"
-#: refs.c:669 ref-filter.c:2092
+#: refs.c:669 ref-filter.c:2098
#, c-format
msgid "ignoring broken ref %s"
msgstr "réf cassé %s ignoré"
@@ -5105,14 +5139,14 @@ msgstr "la référence '%s' existe déjà"
msgid "unexpected object ID when writing '%s'"
msgstr "id d'objet inattendu pendant l'écriture de '%s'"
-#: refs.c:833 sequencer.c:403 sequencer.c:2709 sequencer.c:2913
-#: sequencer.c:2927 sequencer.c:3184 sequencer.c:5037 wrapper.c:656
+#: refs.c:833 sequencer.c:403 sequencer.c:2647 sequencer.c:2851
+#: sequencer.c:2865 sequencer.c:3122 sequencer.c:5001 wrapper.c:620
#, c-format
msgid "could not write to '%s'"
msgstr "impossible d'écrire dans '%s'"
-#: refs.c:860 wrapper.c:225 wrapper.c:395 builtin/am.c:715
-#: builtin/rebase.c:1003
+#: refs.c:860 wrapper.c:188 wrapper.c:358 builtin/am.c:714
+#: builtin/rebase.c:1004
#, c-format
msgid "could not open '%s' for writing"
msgstr "impossible d'ouvrir '%s' en écriture"
@@ -5147,21 +5181,21 @@ msgstr "refus de mettre à jour une réf avec un nom cassé '%s'"
msgid "update_ref failed for ref '%s': %s"
msgstr "échec de update_ref pour la réf '%s' : %s"
-#: refs.c:2012
+#: refs.c:2023
#, c-format
msgid "multiple updates for ref '%s' not allowed"
msgstr "mises à jour multiples pour la réf '%s' non permises"
-#: refs.c:2044
+#: refs.c:2055
msgid "ref updates forbidden inside quarantine environment"
msgstr "mises à jour des références interdites en environnement de quarantaine"
-#: refs.c:2140 refs.c:2170
+#: refs.c:2151 refs.c:2181
#, c-format
msgid "'%s' exists; cannot create '%s'"
msgstr "'%s' existe ; impossible de créer '%s'"
-#: refs.c:2146 refs.c:2181
+#: refs.c:2157 refs.c:2192
#, c-format
msgid "cannot process '%s' and '%s' at the same time"
msgstr "impossible de traiter '%s' et '%s' en même temps"
@@ -5171,13 +5205,13 @@ msgstr "impossible de traiter '%s' et '%s' en même temps"
msgid "could not remove reference %s"
msgstr "impossible de supprimer la référence %s"
-#: refs/files-backend.c:1248 refs/packed-backend.c:1532
-#: refs/packed-backend.c:1542
+#: refs/files-backend.c:1248 refs/packed-backend.c:1541
+#: refs/packed-backend.c:1551
#, c-format
msgid "could not delete reference %s: %s"
msgstr "Impossible de supprimer la référence %s : %s"
-#: refs/files-backend.c:1251 refs/packed-backend.c:1545
+#: refs/files-backend.c:1251 refs/packed-backend.c:1554
#, c-format
msgid "could not delete references: %s"
msgstr "impossible de supprimer les références : %s"
@@ -5188,7 +5222,7 @@ msgid "invalid refspec '%s'"
msgstr "spécificateur de réference invalide : '%s'"
# à priori on parle d'une branche ici
-#: ref-filter.c:42 wt-status.c:1934
+#: ref-filter.c:42 wt-status.c:1938
msgid "gone"
msgstr "disparue"
@@ -5207,283 +5241,283 @@ msgstr "en retard de %d"
msgid "ahead %d, behind %d"
msgstr "en avance de %d, en retard de %d"
-#: ref-filter.c:162
+#: ref-filter.c:165
#, c-format
msgid "expected format: %%(color:<color>)"
msgstr "format attendu : %%(color:<couleur>)"
-#: ref-filter.c:164
+#: ref-filter.c:167
#, c-format
msgid "unrecognized color: %%(color:%s)"
msgstr "couleur non reconnue : %%(color:%s)"
-#: ref-filter.c:186
+#: ref-filter.c:189
#, c-format
msgid "Integer value expected refname:lstrip=%s"
msgstr "Valeur entière attendue refname:lstrip=%s"
-#: ref-filter.c:190
+#: ref-filter.c:193
#, c-format
msgid "Integer value expected refname:rstrip=%s"
msgstr "Valeur entière attendue refname:rstrip=%s"
-#: ref-filter.c:192
+#: ref-filter.c:195
#, c-format
msgid "unrecognized %%(%s) argument: %s"
msgstr "argument %%(%s) non reconnu : %s"
-#: ref-filter.c:247
+#: ref-filter.c:250
#, c-format
msgid "%%(objecttype) does not take arguments"
msgstr "%%(objecttype) n'accepte pas d'argument"
-#: ref-filter.c:269
+#: ref-filter.c:272
#, c-format
msgid "unrecognized %%(objectsize) argument: %s"
msgstr "argument %%(objectsize) non reconnu : %s"
-#: ref-filter.c:277
+#: ref-filter.c:280
#, c-format
msgid "%%(deltabase) does not take arguments"
msgstr "%%(deltabase) n'accepte pas d'argument"
-#: ref-filter.c:289
+#: ref-filter.c:292
#, c-format
msgid "%%(body) does not take arguments"
msgstr "%%(body) n'accepte pas d'argument"
-#: ref-filter.c:298
+#: ref-filter.c:301
#, c-format
msgid "%%(subject) does not take arguments"
msgstr "%%(subject) n'accepte pas d'argument"
-#: ref-filter.c:320
+#: ref-filter.c:323
#, c-format
msgid "unknown %%(trailers) argument: %s"
msgstr "argument %%(trailers) inconnu : %s"
-#: ref-filter.c:349
+#: ref-filter.c:352
#, c-format
msgid "positive value expected contents:lines=%s"
msgstr "valeur positive attendue contents:lines=%s"
-#: ref-filter.c:351
+#: ref-filter.c:354
#, c-format
msgid "unrecognized %%(contents) argument: %s"
msgstr "argument %%(contents) non reconnu : %s"
-#: ref-filter.c:366
+#: ref-filter.c:369
#, c-format
msgid "positive value expected objectname:short=%s"
msgstr "valeur positive attendue objectname:short=%s"
-#: ref-filter.c:370
+#: ref-filter.c:373
#, c-format
msgid "unrecognized %%(objectname) argument: %s"
msgstr "argument %%(objectname) non reconnu : %s"
-#: ref-filter.c:400
+#: ref-filter.c:403
#, c-format
msgid "expected format: %%(align:<width>,<position>)"
msgstr "format attendu : %%(align:<largeur>,<position>)"
-#: ref-filter.c:412
+#: ref-filter.c:415
#, c-format
msgid "unrecognized position:%s"
msgstr "position non reconnue : %s"
-#: ref-filter.c:419
+#: ref-filter.c:422
#, c-format
msgid "unrecognized width:%s"
msgstr "largeur non reconnue : %s"
-#: ref-filter.c:428
+#: ref-filter.c:431
#, c-format
msgid "unrecognized %%(align) argument: %s"
msgstr "argument %%(align) non reconnu : %s"
-#: ref-filter.c:436
+#: ref-filter.c:439
#, c-format
msgid "positive width expected with the %%(align) atom"
msgstr "valeur positive attendue avec l'atome %%(align)"
-#: ref-filter.c:454
+#: ref-filter.c:457
#, c-format
msgid "unrecognized %%(if) argument: %s"
msgstr "argument %%(if) non reconnu : %s"
-#: ref-filter.c:556
+#: ref-filter.c:559
#, c-format
msgid "malformed field name: %.*s"
msgstr "nom de champ malformé %.*s"
-#: ref-filter.c:583
+#: ref-filter.c:586
#, c-format
msgid "unknown field name: %.*s"
msgstr "nom de champ inconnu : %.*s"
-#: ref-filter.c:587
+#: ref-filter.c:590
#, c-format
msgid ""
"not a git repository, but the field '%.*s' requires access to object data"
msgstr ""
"pas un dépôt git, mais le champ '%.*s' nécessite l'accès aux données d'objet"
-#: ref-filter.c:711
+#: ref-filter.c:714
#, c-format
msgid "format: %%(if) atom used without a %%(then) atom"
msgstr "format : atome %%(if) utilisé sans un atome %%(then)"
-#: ref-filter.c:774
+#: ref-filter.c:777
#, c-format
msgid "format: %%(then) atom used without an %%(if) atom"
msgstr "format : atome %%(then) utilisé sans un atome %%(if)"
-#: ref-filter.c:776
+#: ref-filter.c:779
#, c-format
msgid "format: %%(then) atom used more than once"
msgstr "format : atome %%(then) utilisé plus d'une fois"
-#: ref-filter.c:778
+#: ref-filter.c:781
#, c-format
msgid "format: %%(then) atom used after %%(else)"
msgstr "format: atome %%(then) utilisé après %%(else)"
-#: ref-filter.c:806
+#: ref-filter.c:809
#, c-format
msgid "format: %%(else) atom used without an %%(if) atom"
msgstr "format : atome %%(else) utilisé sans un atome %%(if)"
-#: ref-filter.c:808
+#: ref-filter.c:811
#, c-format
msgid "format: %%(else) atom used without a %%(then) atom"
msgstr "format : atome %%(else) utilisé sans un atome %%(then)"
-#: ref-filter.c:810
+#: ref-filter.c:813
#, c-format
msgid "format: %%(else) atom used more than once"
msgstr "format : atome %%(else) utilisé plus d'une fois"
-#: ref-filter.c:825
+#: ref-filter.c:828
#, c-format
msgid "format: %%(end) atom used without corresponding atom"
msgstr "format : atome %%(end) utilisé sans atome correspondant"
-#: ref-filter.c:882
+#: ref-filter.c:885
#, c-format
msgid "malformed format string %s"
msgstr "Chaîne de formatage mal formée %s"
-#: ref-filter.c:1485
+#: ref-filter.c:1488
#, c-format
msgid "no branch, rebasing %s"
msgstr "aucune branche, rebasage de %s"
-#: ref-filter.c:1488
+#: ref-filter.c:1491
#, c-format
msgid "no branch, rebasing detached HEAD %s"
msgstr "aucune branche, rebasage de la HEAD détachée %s"
-#: ref-filter.c:1491
+#: ref-filter.c:1494
#, c-format
msgid "no branch, bisect started on %s"
msgstr "aucune branche, bisect a démarré sur %s"
-#: ref-filter.c:1501
+#: ref-filter.c:1504
msgid "no branch"
msgstr "aucune branche"
-#: ref-filter.c:1537 ref-filter.c:1743
+#: ref-filter.c:1540 ref-filter.c:1749
#, c-format
msgid "missing object %s for %s"
msgstr "objet manquant %s pour %s"
-#: ref-filter.c:1547
+#: ref-filter.c:1550
#, c-format
msgid "parse_object_buffer failed on %s for %s"
msgstr "échec de parse_object_buffer sur %s pour %s"
-#: ref-filter.c:1998
+#: ref-filter.c:2004
#, c-format
msgid "malformed object at '%s'"
msgstr "objet malformé à '%s'"
-#: ref-filter.c:2087
+#: ref-filter.c:2093
#, c-format
msgid "ignoring ref with broken name %s"
msgstr "réf avec un nom cassé %s ignoré"
-#: ref-filter.c:2382
+#: ref-filter.c:2389
#, c-format
msgid "format: %%(end) atom missing"
msgstr "format: atome %%(end) manquant"
-#: ref-filter.c:2482
+#: ref-filter.c:2489
#, c-format
msgid "option `%s' is incompatible with --merged"
msgstr "l'option « %s » est incompatible avec --merged"
-#: ref-filter.c:2485
+#: ref-filter.c:2492
#, c-format
msgid "option `%s' is incompatible with --no-merged"
msgstr "l'option « %s » est incompatible avec --no-merged"
-#: ref-filter.c:2495
+#: ref-filter.c:2502
#, c-format
msgid "malformed object name %s"
msgstr "nom d'objet malformé %s"
-#: ref-filter.c:2500
+#: ref-filter.c:2507
#, c-format
msgid "option `%s' must point to a commit"
msgstr "l'option '%s' doit pointer sur un commit"
-#: remote.c:363
+#: remote.c:366
#, c-format
msgid "config remote shorthand cannot begin with '/': %s"
msgstr ""
"un raccourci de configuration de distant ne peut pas commencer par '/' : %s"
-#: remote.c:410
+#: remote.c:413
msgid "more than one receivepack given, using the first"
msgstr "plus d'un receivepack fournis, utilisation du premier"
-#: remote.c:418
+#: remote.c:421
msgid "more than one uploadpack given, using the first"
msgstr "plus d'un uploadpack fournis, utilisation du premier"
-#: remote.c:608
+#: remote.c:611
#, 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:612
+#: remote.c:615
#, c-format
msgid "%s usually tracks %s, not %s"
msgstr "%s suit habituellement %s, pas %s"
-#: remote.c:616
+#: remote.c:619
#, c-format
msgid "%s tracks both %s and %s"
msgstr "%s suit à la fois %s et %s"
-#: remote.c:684
+#: remote.c:687
#, c-format
msgid "key '%s' of pattern had no '*'"
msgstr "la clé '%s' du modèle n'a pas de '*'"
-#: remote.c:694
+#: remote.c:697
#, c-format
msgid "value '%s' of pattern has no '*'"
msgstr "la valeur '%s' du modèle n'a pas de '*'"
-#: remote.c:1000
+#: remote.c:1003
#, 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:1005
+#: remote.c:1008
#, c-format
msgid "src refspec %s matches more than one"
msgstr ""
@@ -5493,7 +5527,7 @@ msgstr ""
#. <remote> <src>:<dst>" push, and "being pushed ('%s')" is
#. the <src>.
#.
-#: remote.c:1020
+#: remote.c:1023
#, c-format
msgid ""
"The destination you provided is not a full refname (i.e.,\n"
@@ -5517,7 +5551,7 @@ msgstr ""
"Aucune n'a fonctionné, donc abandon. Veuillez spécifier une référence "
"totalement qualifiée."
-#: remote.c:1040
+#: remote.c:1043
#, c-format
msgid ""
"The <src> part of the refspec is a commit object.\n"
@@ -5528,7 +5562,7 @@ msgstr ""
"Souhaitiez-vous créer une nouvelle branche en poussant sur\n"
"'%s:refs/heads/%s' ?"
-#: remote.c:1045
+#: remote.c:1048
#, c-format
msgid ""
"The <src> part of the refspec is a tag object.\n"
@@ -5539,7 +5573,7 @@ msgstr ""
"Souhaitiez-vous créer une nouvelle étiquette en poussant sur\n"
"'%s:refs/tags/%s' ?"
-#: remote.c:1050
+#: remote.c:1053
#, c-format
msgid ""
"The <src> part of the refspec is a tree object.\n"
@@ -5550,7 +5584,7 @@ msgstr ""
"Souhaitiez-vous créer un nouvel arbre en poussant sur\n"
"'%s:refs/tags/%s' ?"
-#: remote.c:1055
+#: remote.c:1058
#, c-format
msgid ""
"The <src> part of the refspec is a blob object.\n"
@@ -5561,119 +5595,119 @@ msgstr ""
"Souhaitiez-vous créer un nouveau blob en poussant sur\n"
"'%s:refs/tags/%s' ?"
-#: remote.c:1091
+#: remote.c:1094
#, c-format
msgid "%s cannot be resolved to branch"
msgstr "'%s' ne peut pas être résolue comme une branche"
-#: remote.c:1102
+#: remote.c:1105
#, c-format
msgid "unable to delete '%s': remote ref does not exist"
msgstr "suppression d '%s' impossible : la référence distante n'existe pas"
-#: remote.c:1114
+#: remote.c:1117
#, 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:1121
+#: remote.c:1124
#, 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:1624 remote.c:1725
+#: remote.c:1627 remote.c:1728
msgid "HEAD does not point to a branch"
msgstr "HEAD ne pointe pas sur une branche"
-#: remote.c:1633
+#: remote.c:1636
#, c-format
msgid "no such branch: '%s'"
msgstr "pas de branche '%s'"
-#: remote.c:1636
+#: remote.c:1639
#, c-format
msgid "no upstream configured for branch '%s'"
msgstr "aucune branche amont configurée pour la branche '%s'"
-#: remote.c:1642
+#: remote.c:1645
#, 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:1657
+#: remote.c:1660
#, 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:1669
+#: remote.c:1672
#, c-format
msgid "branch '%s' has no remote for pushing"
msgstr "la branche '%s' n'a aucune branche distante de poussée"
-#: remote.c:1679
+#: remote.c:1682
#, 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:1692
+#: remote.c:1695
msgid "push has no destination (push.default is 'nothing')"
msgstr "la poussée n'a pas de destination (push.default vaut 'nothing')"
-#: remote.c:1714
+#: remote.c:1717
msgid "cannot resolve 'simple' push to a single destination"
msgstr ""
"impossible de résoudre une poussée 'simple' pour une destination unique"
-#: remote.c:1840
+#: remote.c:1843
#, c-format
msgid "couldn't find remote ref %s"
msgstr "impossible de trouver la référence distante %s"
-#: remote.c:1853
+#: remote.c:1856
#, c-format
msgid "* Ignoring funny ref '%s' locally"
msgstr "* Référence bizarre '%s' ignorée localement"
-#: remote.c:2016
+#: remote.c:2019
#, 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:2020
+#: remote.c:2023
msgid " (use \"git branch --unset-upstream\" to fixup)\n"
msgstr " (utilisez \"git branch --unset-upstream\" pour corriger)\n"
-#: remote.c:2023
+#: remote.c:2026
#, c-format
msgid "Your branch is up to date with '%s'.\n"
msgstr "Votre branche est à jour avec '%s'.\n"
-#: remote.c:2027
+#: remote.c:2030
#, 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:2030
+#: remote.c:2033
#, c-format
msgid " (use \"%s\" for details)\n"
msgstr " (utilisez \"%s\" pour plus de détails)\n"
-#: remote.c:2034
+#: remote.c:2037
#, 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:2040
+#: remote.c:2043
msgid " (use \"git push\" to publish your local commits)\n"
msgstr " (utilisez \"git push\" pour publier vos commits locaux)\n"
-#: remote.c:2043
+#: remote.c:2046
#, c-format
msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
msgid_plural ""
@@ -5685,11 +5719,11 @@ msgstr[1] ""
"Votre branche est en retard sur '%s' de %d commits, et peut être mise à jour "
"en avance rapide.\n"
-#: remote.c:2051
+#: remote.c:2054
msgid " (use \"git pull\" to update your local branch)\n"
msgstr " (utilisez \"git pull\" pour mettre à jour votre branche locale)\n"
-#: remote.c:2054
+#: remote.c:2057
#, c-format
msgid ""
"Your branch and '%s' have diverged,\n"
@@ -5704,12 +5738,12 @@ msgstr[1] ""
"Votre branche et '%s' ont divergé,\n"
"et ont %d et %d commits différents chacune respectivement.\n"
-#: remote.c:2064
+#: remote.c:2067
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:2247
+#: remote.c:2250
#, c-format
msgid "cannot parse expected object name '%s'"
msgstr "impossible d'analyser le nom attendu d'objet '%s'"
@@ -5787,7 +5821,7 @@ msgstr "impossible de délier '%s' qui est errant"
msgid "Recorded preimage for '%s'"
msgstr "Pré-image enregistrée pour '%s'"
-#: rerere.c:881 submodule.c:2023 builtin/log.c:1773
+#: rerere.c:881 submodule.c:2023 builtin/log.c:1790
#: builtin/submodule--helper.c:1418 builtin/submodule--helper.c:1428
#, c-format
msgid "could not create directory '%s'"
@@ -5822,20 +5856,20 @@ msgstr "Résolution pour '%s' oubliée\n"
msgid "unable to open rr-cache directory"
msgstr "impossible d'ouvrir le répertoire rr-cache"
-#: revision.c:2507
+#: revision.c:2509
msgid "your current branch appears to be broken"
msgstr "votre branche actuelle semble cassée"
-#: revision.c:2510
+#: revision.c:2512
#, 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:2710
+#: revision.c:2720
msgid "--first-parent is incompatible with --bisect"
msgstr "--first-parent est incompatible avec --bisect"
-#: revision.c:2714
+#: revision.c:2724
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"
@@ -5858,31 +5892,31 @@ msgstr ""
"Vous pouvez désactiver cet avertissement avec `git config advice.ignoredHook "
"false`."
-#: send-pack.c:141
+#: send-pack.c:142
msgid "unexpected flush packet while reading remote unpack status"
msgstr ""
"paquet de nettoyage inattendu pendant la lecture de l'état de dépaquetage "
"distant"
-#: send-pack.c:143
+#: send-pack.c:144
#, c-format
msgid "unable to parse remote unpack status: %s"
msgstr "impossible d'analyser l'état de dépaquetage distant : %s"
-#: send-pack.c:145
+#: send-pack.c:146
#, c-format
msgid "remote unpack failed: %s"
msgstr "le dépaquetage a échoué : %s"
-#: send-pack.c:306
+#: send-pack.c:307
msgid "failed to sign the push certificate"
msgstr "impossible de signer le certificat de poussée"
-#: send-pack.c:420
+#: send-pack.c:421
msgid "the receiving end does not support --signed push"
msgstr "Le receveur ne gère pas les poussées avec --signed"
-#: send-pack.c:422
+#: send-pack.c:423
msgid ""
"not sending a push certificate since the receiving end does not support --"
"signed push"
@@ -5890,11 +5924,11 @@ msgstr ""
"pas d'envoi de certificat de poussée car le receveur ne gère pas les "
"poussées avec --signed"
-#: send-pack.c:434
+#: send-pack.c:435
msgid "the receiving end does not support --atomic push"
msgstr "Le receveur ne gère pas les poussées avec --atomic"
-#: send-pack.c:439
+#: send-pack.c:440
msgid "the receiving end does not support push options"
msgstr "Le receveur ne gère pas les options de poussées"
@@ -5908,7 +5942,7 @@ msgstr "mode de nettoyage invalide de message de validation '%s'"
msgid "could not delete '%s'"
msgstr "Impossible de supprimer '%s'"
-#: sequencer.c:311 builtin/rebase.c:759 builtin/rebase.c:1645 builtin/rm.c:369
+#: sequencer.c:311 builtin/rebase.c:760 builtin/rebase.c:1676 builtin/rm.c:369
#, c-format
msgid "could not remove '%s'"
msgstr "impossible de supprimer '%s'"
@@ -5948,7 +5982,7 @@ msgstr ""
"avec 'git add <chemins>' ou 'git rm <chemins>'\n"
"puis validez le résultat avec 'git commit'"
-#: sequencer.c:401 sequencer.c:2909
+#: sequencer.c:401 sequencer.c:2847
#, c-format
msgid "could not lock '%s'"
msgstr "impossible de verrouiller '%s'"
@@ -5958,15 +5992,15 @@ msgstr "impossible de verrouiller '%s'"
msgid "could not write eol to '%s'"
msgstr "impossible d'écrire la fin de ligne dans '%s'"
-#: sequencer.c:413 sequencer.c:2714 sequencer.c:2915 sequencer.c:2929
-#: sequencer.c:3192
+#: sequencer.c:413 sequencer.c:2652 sequencer.c:2853 sequencer.c:2867
+#: sequencer.c:3130
#, c-format
msgid "failed to finalize '%s'"
msgstr "échec lors de la finalisation de '%s'"
-#: sequencer.c:436 sequencer.c:981 sequencer.c:1655 sequencer.c:2734
-#: sequencer.c:3174 sequencer.c:3283 builtin/am.c:245 builtin/commit.c:763
-#: builtin/merge.c:1112 builtin/rebase.c:567
+#: sequencer.c:436 sequencer.c:1585 sequencer.c:2672 sequencer.c:3112
+#: sequencer.c:3221 builtin/am.c:244 builtin/commit.c:763 builtin/merge.c:1117
+#: builtin/rebase.c:568
#, c-format
msgid "could not read '%s'"
msgstr "impossible de lire '%s'"
@@ -5993,70 +6027,65 @@ msgstr "Mode de nettoyage invalide %s"
#. TRANSLATORS: %s will be "revert", "cherry-pick" or
#. "rebase -i".
#.
-#: sequencer.c:632
+#: sequencer.c:631
#, c-format
msgid "%s: Unable to write new index file"
msgstr "%s: Impossible d'écrire le nouveau fichier index"
-#: sequencer.c:649
+#: sequencer.c:648
msgid "unable to update cache tree"
msgstr "impossible de mettre à jour l'arbre de cache"
-#: sequencer.c:663
+#: sequencer.c:662
msgid "could not resolve HEAD commit"
msgstr "impossible de résoudre le commit HEAD"
-#: sequencer.c:743
+#: sequencer.c:742
#, c-format
msgid "no key present in '%.*s'"
msgstr "aucune clé présente dans '%.*s'"
-#: sequencer.c:754
+#: sequencer.c:753
#, c-format
msgid "unable to dequote value of '%s'"
msgstr "Impossible de décoter la valeur de '%s'"
-#: sequencer.c:791 wrapper.c:227 wrapper.c:397 builtin/am.c:706
-#: builtin/am.c:798 builtin/merge.c:1109 builtin/rebase.c:1045
+#: sequencer.c:790 wrapper.c:190 wrapper.c:360 builtin/am.c:705
+#: builtin/am.c:797 builtin/merge.c:1114 builtin/rebase.c:1046
#, c-format
msgid "could not open '%s' for reading"
msgstr "impossible d'ouvrir '%s' en lecture"
-#: sequencer.c:801
+#: sequencer.c:800
msgid "'GIT_AUTHOR_NAME' already given"
msgstr "'GIT_AUTHOR_NAME' déjà fourni"
-#: sequencer.c:806
+#: sequencer.c:805
msgid "'GIT_AUTHOR_EMAIL' already given"
msgstr "'GIT_AUTHOR_EMAIL' déjà fourni"
-#: sequencer.c:811
+#: sequencer.c:810
msgid "'GIT_AUTHOR_DATE' already given"
msgstr "'GIT_AUTHOR_DATE' déjà fourni"
-#: sequencer.c:815
+#: sequencer.c:814
#, c-format
msgid "unknown variable '%s'"
msgstr "variable inconnue '%s'"
-#: sequencer.c:820
+#: sequencer.c:819
msgid "missing 'GIT_AUTHOR_NAME'"
msgstr "'GIT_AUTHOR_NAME' manquant"
-#: sequencer.c:822
+#: sequencer.c:821
msgid "missing 'GIT_AUTHOR_EMAIL'"
msgstr "'GIT_AUTHOR_EMAIL' manquant"
-#: sequencer.c:824
+#: sequencer.c:823
msgid "missing 'GIT_AUTHOR_DATE'"
msgstr "'GIT_AUTHOR_DATE' manquant"
-#: sequencer.c:884
-#, c-format
-msgid "invalid date format '%s' in '%s'"
-msgstr "format de date invalide '%s' dans '%s'"
-
-#: sequencer.c:901
+#: sequencer.c:872
#, c-format
msgid ""
"you have staged changes in your working tree\n"
@@ -6085,15 +6114,11 @@ msgstr ""
"\n"
" git rebase --continue\n"
-#: sequencer.c:995
-msgid "writing root commit"
-msgstr "écriture du commit racine"
-
-#: sequencer.c:1216
+#: sequencer.c:1146
msgid "'prepare-commit-msg' hook failed"
msgstr "échec du crochet 'prepare-commit-msg'"
-#: sequencer.c:1223
+#: sequencer.c:1153
msgid ""
"Your name and email address were configured automatically based\n"
"on your username and hostname. Please check that they are accurate.\n"
@@ -6122,7 +6147,7 @@ msgstr ""
"\n"
" git commit --amend --reset-author\n"
-#: sequencer.c:1236
+#: sequencer.c:1166
msgid ""
"Your name and email address were configured automatically based\n"
"on your username and hostname. Please check that they are accurate.\n"
@@ -6148,326 +6173,326 @@ msgstr ""
"\n"
" git commit --amend --reset-author\n"
-#: sequencer.c:1278
+#: sequencer.c:1208
msgid "couldn't look up newly created commit"
msgstr "impossible de retrouver le commit nouvellement créé"
-#: sequencer.c:1280
+#: sequencer.c:1210
msgid "could not parse newly created commit"
msgstr "impossible d'analyser le commit nouvellement créé"
-#: sequencer.c:1326
+#: sequencer.c:1256
msgid "unable to resolve HEAD after creating commit"
msgstr "impossible de résoudre HEAD après création du commit"
-#: sequencer.c:1328
+#: sequencer.c:1258
msgid "detached HEAD"
msgstr "HEAD détachée"
-#: sequencer.c:1332
+#: sequencer.c:1262
msgid " (root-commit)"
msgstr " (commit racine)"
-#: sequencer.c:1353
+#: sequencer.c:1283
msgid "could not parse HEAD"
msgstr "impossible de lire HEAD"
-#: sequencer.c:1355
+#: sequencer.c:1285
#, c-format
msgid "HEAD %s is not a commit!"
msgstr "HEAD %s n'est pas un commit !"
-#: sequencer.c:1359 builtin/commit.c:1571
+#: sequencer.c:1289 builtin/commit.c:1571
msgid "could not parse HEAD commit"
msgstr "impossible d'analyser le commit HEAD"
-#: sequencer.c:1411 sequencer.c:2004
+#: sequencer.c:1341 sequencer.c:1933
msgid "unable to parse commit author"
msgstr "impossible d'analyser l'auteur du commit"
-#: sequencer.c:1421 builtin/am.c:1573 builtin/merge.c:684
+#: sequencer.c:1352 builtin/am.c:1561 builtin/merge.c:684
msgid "git write-tree failed to write a tree"
msgstr "git write-tree a échoué à écrire un arbre"
-#: sequencer.c:1438 sequencer.c:1499
+#: sequencer.c:1369 sequencer.c:1429
#, c-format
msgid "unable to read commit message from '%s'"
msgstr "impossible de lire le message de validation de '%s'"
-#: sequencer.c:1465 builtin/am.c:1595 builtin/commit.c:1670 builtin/merge.c:878
-#: builtin/merge.c:903
+#: sequencer.c:1396 builtin/am.c:1583 builtin/commit.c:1670 builtin/merge.c:883
+#: builtin/merge.c:908
msgid "failed to write commit object"
msgstr "échec de l'écriture de l'objet commit"
-#: sequencer.c:1526
+#: sequencer.c:1456
#, c-format
msgid "could not parse commit %s"
msgstr "impossible d'analyser le commit %s"
-#: sequencer.c:1531
+#: sequencer.c:1461
#, c-format
msgid "could not parse parent commit %s"
msgstr "impossible d'analyser le commit parent %s"
-#: sequencer.c:1605 sequencer.c:1715
+#: sequencer.c:1535 sequencer.c:1645
#, c-format
msgid "unknown command: %d"
msgstr "commande inconnue : %d"
-#: sequencer.c:1662 sequencer.c:1687
+#: sequencer.c:1592 sequencer.c:1617
#, c-format
msgid "This is a combination of %d commits."
msgstr "Ceci est la combinaison de %d commits."
-#: sequencer.c:1672
+#: sequencer.c:1602
msgid "need a HEAD to fixup"
msgstr "une HEAD est nécessaire à la correction"
-#: sequencer.c:1674 sequencer.c:3219
+#: sequencer.c:1604 sequencer.c:3157
msgid "could not read HEAD"
msgstr "Impossible de lire HEAD"
-#: sequencer.c:1676
+#: sequencer.c:1606
msgid "could not read HEAD's commit message"
msgstr "impossible de lire le message de validation de HEAD"
-#: sequencer.c:1682
+#: sequencer.c:1612
#, c-format
msgid "cannot write '%s'"
msgstr "impossible d'écrire '%s'"
-#: sequencer.c:1689 git-rebase--preserve-merges.sh:496
+#: sequencer.c:1619 git-rebase--preserve-merges.sh:496
msgid "This is the 1st commit message:"
msgstr "Ceci est le premier message de validation :"
-#: sequencer.c:1697
+#: sequencer.c:1627
#, c-format
msgid "could not read commit message of %s"
msgstr "impossible de lire le message de validation de %s"
-#: sequencer.c:1704
+#: sequencer.c:1634
#, c-format
msgid "This is the commit message #%d:"
msgstr "Ceci est le message de validation numéro %d :"
-#: sequencer.c:1710
+#: sequencer.c:1640
#, c-format
msgid "The commit message #%d will be skipped:"
msgstr "Le message de validation %d sera ignoré :"
-#: sequencer.c:1798
+#: sequencer.c:1728
msgid "your index file is unmerged."
msgstr "votre fichier d'index n'est pas fusionné."
-#: sequencer.c:1805
+#: sequencer.c:1735
msgid "cannot fixup root commit"
msgstr "impossible de réparer le commit racine"
-#: sequencer.c:1824
+#: sequencer.c:1754
#, 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:1832 sequencer.c:1840
+#: sequencer.c:1762 sequencer.c:1770
#, c-format
msgid "commit %s does not have parent %d"
msgstr "le commit %s n'a pas de parent %d"
-#: sequencer.c:1846
+#: sequencer.c:1776
#, 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:1865
+#: sequencer.c:1795
#, c-format
msgid "%s: cannot parse parent commit %s"
msgstr "%s : impossible d'analyser le commit parent %s"
-#: sequencer.c:1930
+#: sequencer.c:1860
#, c-format
msgid "could not rename '%s' to '%s'"
msgstr "impossible de renommer '%s' en '%s'"
-#: sequencer.c:1985
+#: sequencer.c:1915
#, c-format
msgid "could not revert %s... %s"
msgstr "impossible d'annuler %s... %s"
-#: sequencer.c:1986
+#: sequencer.c:1916
#, c-format
msgid "could not apply %s... %s"
msgstr "impossible d'appliquer %s... %s"
-#: sequencer.c:2045
+#: sequencer.c:1983
#, c-format
msgid "git %s: failed to read the index"
msgstr "git %s : échec à la lecture de l'index"
-#: sequencer.c:2052
+#: sequencer.c:1990
#, c-format
msgid "git %s: failed to refresh the index"
msgstr "git %s : échec du rafraîchissement de l'index"
-#: sequencer.c:2128
+#: sequencer.c:2066
#, c-format
msgid "%s does not accept arguments: '%s'"
msgstr "%s n'accepte pas d'argument : '%s'"
-#: sequencer.c:2137
+#: sequencer.c:2075
#, c-format
msgid "missing arguments for %s"
msgstr "argument manquant pour %s"
-#: sequencer.c:2174
+#: sequencer.c:2112
#, c-format
msgid "could not parse '%.*s'"
msgstr "impossible d'analyser '%.*s'"
-#: sequencer.c:2228
+#: sequencer.c:2166
#, c-format
msgid "invalid line %d: %.*s"
msgstr "ligne %d invalide : %.*s"
-#: sequencer.c:2239
+#: sequencer.c:2177
#, c-format
msgid "cannot '%s' without a previous commit"
msgstr "'%s' impossible avec le commit précédent"
-#: sequencer.c:2287 builtin/rebase.c:153 builtin/rebase.c:178
+#: sequencer.c:2225 builtin/rebase.c:153 builtin/rebase.c:178
#: builtin/rebase.c:204 builtin/rebase.c:229
#, c-format
msgid "could not read '%s'."
msgstr "impossible de lire '%s'."
-#: sequencer.c:2323
+#: sequencer.c:2261
msgid "cancelling a cherry picking in progress"
msgstr "annulation d'un picorage en cours"
-#: sequencer.c:2330
+#: sequencer.c:2268
msgid "cancelling a revert in progress"
msgstr "annulation d'un retour en cours"
-#: sequencer.c:2364
+#: sequencer.c:2302
msgid "please fix this using 'git rebase --edit-todo'."
msgstr "veuillez corriger ceci en utilisant 'git rebase --edit-todo'."
-#: sequencer.c:2366
+#: sequencer.c:2304
#, c-format
msgid "unusable instruction sheet: '%s'"
msgstr "feuille d'instruction inutilisable : '%s'"
-#: sequencer.c:2371
+#: sequencer.c:2309
msgid "no commits parsed."
msgstr "aucun commit analysé."
-#: sequencer.c:2382
+#: sequencer.c:2320
msgid "cannot cherry-pick during a revert."
msgstr "impossible de picorer pendant l'annulation d'un commit."
-#: sequencer.c:2384
+#: sequencer.c:2322
msgid "cannot revert during a cherry-pick."
msgstr "impossible d'annuler un commit pendant un picorage."
-#: sequencer.c:2466
+#: sequencer.c:2404
#, c-format
msgid "invalid value for %s: %s"
msgstr "valeur invalide pour %s : %s"
-#: sequencer.c:2553
+#: sequencer.c:2491
msgid "unusable squash-onto"
msgstr "\"écrase-sur\" inutilisable"
-#: sequencer.c:2569
+#: sequencer.c:2507
#, c-format
msgid "malformed options sheet: '%s'"
msgstr "feuille d'options malformée : %s"
-#: sequencer.c:2652 sequencer.c:4351
+#: sequencer.c:2590 sequencer.c:4308
msgid "empty commit set passed"
msgstr "l'ensemble de commits spécifié est vide"
-#: sequencer.c:2668
+#: sequencer.c:2606
msgid "revert is already in progress"
msgstr "un retour est déjà en cours"
-#: sequencer.c:2670
+#: sequencer.c:2608
#, c-format
msgid "try \"git revert (--continue | %s--abort | --quit)\""
msgstr "essayez \"git revert (--continue | %s--abort | --quit)\""
-#: sequencer.c:2673
+#: sequencer.c:2611
msgid "cherry-pick is already in progress"
msgstr "un picorage est déjà en cours"
-#: sequencer.c:2675
+#: sequencer.c:2613
#, c-format
msgid "try \"git cherry-pick (--continue | %s--abort | --quit)\""
msgstr "essayez \"git cherry-pick (--continue | %s--abort | --quit)\""
-#: sequencer.c:2689
+#: sequencer.c:2627
#, c-format
msgid "could not create sequencer directory '%s'"
msgstr "impossible de créer le répertoire de séquenceur '%s'"
-#: sequencer.c:2704
+#: sequencer.c:2642
msgid "could not lock HEAD"
msgstr "impossible de verrouiller HEAD"
-#: sequencer.c:2764 sequencer.c:4103
+#: sequencer.c:2702 sequencer.c:4057
msgid "no cherry-pick or revert in progress"
msgstr "aucun picorage ou retour en cours"
-#: sequencer.c:2766 sequencer.c:2777
+#: sequencer.c:2704 sequencer.c:2715
msgid "cannot resolve HEAD"
msgstr "impossible de résoudre HEAD"
-#: sequencer.c:2768 sequencer.c:2812
+#: sequencer.c:2706 sequencer.c:2750
msgid "cannot abort from a branch yet to be born"
msgstr "impossible d'abandonner depuis une branche non encore créée"
-#: sequencer.c:2798 builtin/grep.c:734
+#: sequencer.c:2736 builtin/grep.c:736
#, c-format
msgid "cannot open '%s'"
msgstr "impossible d'ouvrir '%s'"
-#: sequencer.c:2800
+#: sequencer.c:2738
#, c-format
msgid "cannot read '%s': %s"
msgstr "impossible de lire '%s' : %s"
-#: sequencer.c:2801
+#: sequencer.c:2739
msgid "unexpected end of file"
msgstr "fin de fichier inattendue"
-#: sequencer.c:2807
+#: sequencer.c:2745
#, 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:2818
+#: sequencer.c:2756
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:2859
+#: sequencer.c:2797
msgid "no revert in progress"
msgstr "Pas de retour en cours ?"
-#: sequencer.c:2867
+#: sequencer.c:2805
msgid "no cherry-pick in progress"
msgstr "aucun picorage en cours"
-#: sequencer.c:2877
+#: sequencer.c:2815
msgid "failed to skip the commit"
msgstr "échec du saut de commit"
-#: sequencer.c:2884
+#: sequencer.c:2822
msgid "there is nothing to skip"
msgstr "il n'y a rien à sauter"
-#: sequencer.c:2887
+#: sequencer.c:2825
#, c-format
msgid ""
"have you committed already?\n"
@@ -6476,21 +6501,21 @@ msgstr ""
"Avez-vous déjà validé ?\n"
"essayez \"git %s -continue\""
-#: sequencer.c:3011 sequencer.c:4015
+#: sequencer.c:2949 sequencer.c:3969
#, c-format
msgid "could not update %s"
msgstr "impossible de mettre à jour %s"
-#: sequencer.c:3049 sequencer.c:3995
+#: sequencer.c:2987 sequencer.c:3949
msgid "cannot read HEAD"
msgstr "impossible de lire HEAD"
-#: sequencer.c:3066
+#: sequencer.c:3004
#, c-format
msgid "unable to copy '%s' to '%s'"
msgstr "impossible de copier '%s' vers '%s'"
-#: sequencer.c:3074
+#: sequencer.c:3012
#, c-format
msgid ""
"You can amend the commit now, with\n"
@@ -6509,27 +6534,27 @@ msgstr ""
"\n"
" git rebase --continue\n"
-#: sequencer.c:3084
+#: sequencer.c:3022
#, c-format
msgid "Could not apply %s... %.*s"
msgstr "impossible d'appliquer %s... %.*s"
-#: sequencer.c:3091
+#: sequencer.c:3029
#, c-format
msgid "Could not merge %.*s"
msgstr "Impossible de fusionner %.*s"
-#: sequencer.c:3105 sequencer.c:3109 builtin/difftool.c:633
+#: sequencer.c:3043 sequencer.c:3047 builtin/difftool.c:641
#, c-format
msgid "could not copy '%s' to '%s'"
msgstr "impossible de copier '%s' vers '%s'"
-#: sequencer.c:3131 sequencer.c:3558 builtin/rebase.c:849 builtin/rebase.c:1582
-#: builtin/rebase.c:1953 builtin/rebase.c:2008
+#: sequencer.c:3069 sequencer.c:3506 builtin/rebase.c:850 builtin/rebase.c:1613
+#: builtin/rebase.c:1987 builtin/rebase.c:2031
msgid "could not read index"
msgstr "impossible de lire l'index"
-#: sequencer.c:3136
+#: sequencer.c:3074
#, c-format
msgid ""
"execution failed: %s\n"
@@ -6544,11 +6569,11 @@ msgstr ""
"git rebase --continue\n"
"\n"
-#: sequencer.c:3142
+#: sequencer.c:3080
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:3148
+#: sequencer.c:3086
#, c-format
msgid ""
"execution succeeded: %s\n"
@@ -6565,77 +6590,77 @@ msgstr ""
" git rebase --continue\n"
"\n"
-#: sequencer.c:3209
+#: sequencer.c:3147
#, c-format
msgid "illegal label name: '%.*s'"
msgstr "nom de label illégal '%.*s'"
-#: sequencer.c:3263
+#: sequencer.c:3201
msgid "writing fake root commit"
msgstr "écriture d'un commit racine bidon"
-#: sequencer.c:3268
+#: sequencer.c:3206
msgid "writing squash-onto"
msgstr "écriture de 'écraser-sur'"
-#: sequencer.c:3306 builtin/rebase.c:854 builtin/rebase.c:860
+#: sequencer.c:3244 builtin/rebase.c:855 builtin/rebase.c:861
#, c-format
msgid "failed to find tree of %s"
msgstr "impossible de trouver l'arbre de %s"
-#: sequencer.c:3324 builtin/rebase.c:873
+#: sequencer.c:3262 builtin/rebase.c:874
msgid "could not write index"
msgstr "impossible d'écrire l'index"
-#: sequencer.c:3351
+#: sequencer.c:3289
#, c-format
msgid "could not resolve '%s'"
msgstr "impossible de résoudre '%s'"
-#: sequencer.c:3379
+#: sequencer.c:3320
msgid "cannot merge without a current revision"
msgstr "impossible de fusionner avec une révision courante"
-#: sequencer.c:3401
+#: sequencer.c:3342
#, c-format
msgid "unable to parse '%.*s'"
msgstr "impossible d'analyser '%.*s'"
-#: sequencer.c:3410
+#: sequencer.c:3351
#, c-format
msgid "nothing to merge: '%.*s'"
msgstr "rien à fusionner : '%.*s'"
-#: sequencer.c:3422
+#: sequencer.c:3363
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:3437
+#: sequencer.c:3378
#, c-format
msgid "could not get commit message of '%s'"
msgstr "impossible de lire le message de validation de '%s'"
-#: sequencer.c:3590
+#: sequencer.c:3538
#, c-format
msgid "could not even attempt to merge '%.*s'"
msgstr "impossible de seulement essayer de fusionner '%.*s'"
-#: sequencer.c:3606
+#: sequencer.c:3554
msgid "merge: Unable to write new index file"
msgstr "fusion : Impossible d'écrire le nouveau fichier index"
-#: sequencer.c:3675 builtin/rebase.c:711
+#: sequencer.c:3623 builtin/rebase.c:712
#, c-format
msgid "Applied autostash.\n"
msgstr "Autoremisage appliqué.\n"
-#: sequencer.c:3687
+#: sequencer.c:3635
#, c-format
msgid "cannot store %s"
msgstr "impossible de stocker %s"
-#: sequencer.c:3690 builtin/rebase.c:727 git-rebase--preserve-merges.sh:113
+#: sequencer.c:3638 builtin/rebase.c:728 git-rebase--preserve-merges.sh:113
#, c-format
msgid ""
"Applying autostash resulted in conflicts.\n"
@@ -6646,31 +6671,31 @@ 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:3751
+#: sequencer.c:3699
#, c-format
msgid "could not checkout %s"
msgstr "extraction de %s impossible"
-#: sequencer.c:3765
+#: sequencer.c:3713
#, c-format
msgid "%s: not a valid OID"
msgstr "%s n'est pas un OID valide"
-#: sequencer.c:3770 git-rebase--preserve-merges.sh:779
+#: sequencer.c:3718 git-rebase--preserve-merges.sh:779
msgid "could not detach HEAD"
msgstr "Impossible de détacher HEAD"
-#: sequencer.c:3785
+#: sequencer.c:3733
#, c-format
msgid "Stopped at HEAD\n"
msgstr "arrêt à HEAD\n"
-#: sequencer.c:3787
+#: sequencer.c:3735
#, c-format
msgid "Stopped at %s\n"
msgstr "Arrêté à %s\n"
-#: sequencer.c:3795
+#: sequencer.c:3743
#, c-format
msgid ""
"Could not execute the todo command\n"
@@ -6691,48 +6716,48 @@ msgstr ""
" git rebase --edit-todo\n"
" git rebase --continue\n"
-#: sequencer.c:3877
+#: sequencer.c:3827
#, c-format
msgid "Stopped at %s... %.*s\n"
msgstr "arrêt à %s... %.*s\n"
-#: sequencer.c:3958
+#: sequencer.c:3898
#, c-format
msgid "unknown command %d"
msgstr "commande inconnue %d"
-#: sequencer.c:4003
+#: sequencer.c:3957
msgid "could not read orig-head"
msgstr "impossible de lire orig-head"
-#: sequencer.c:4008
+#: sequencer.c:3962
msgid "could not read 'onto'"
msgstr "impossible de lire 'onto'"
-#: sequencer.c:4022
+#: sequencer.c:3976
#, c-format
msgid "could not update HEAD to %s"
msgstr "impossible de mettre à jour HEAD sur %s"
-#: sequencer.c:4115
+#: sequencer.c:4069
msgid "cannot rebase: You have unstaged changes."
msgstr "impossible de rebaser : vous avez des modifications non indexées."
-#: sequencer.c:4124
+#: sequencer.c:4078
msgid "cannot amend non-existing commit"
msgstr "impossible de corriger un commit non-existant"
-#: sequencer.c:4126
+#: sequencer.c:4080
#, c-format
msgid "invalid file: '%s'"
msgstr "fichier invalide : '%s'"
-#: sequencer.c:4128
+#: sequencer.c:4082
#, c-format
msgid "invalid contents: '%s'"
msgstr "contenu invalide : '%s'"
-#: sequencer.c:4131
+#: sequencer.c:4085
msgid ""
"\n"
"You have uncommitted changes in your working tree. Please, commit them\n"
@@ -6742,42 +6767,42 @@ 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:4167 sequencer.c:4205
+#: sequencer.c:4121 sequencer.c:4159
#, c-format
msgid "could not write file: '%s'"
msgstr "impossible d'écrire le fichier : '%s'"
-#: sequencer.c:4220
+#: sequencer.c:4174
msgid "could not remove CHERRY_PICK_HEAD"
msgstr "impossible de supprimer CHERRY_PICK_HEAD"
-#: sequencer.c:4227
+#: sequencer.c:4181
msgid "could not commit staged changes."
msgstr "impossible de valider les modifications indexées."
-#: sequencer.c:4328
+#: sequencer.c:4285
#, c-format
msgid "%s: can't cherry-pick a %s"
msgstr "%s : impossible de picorer un %s"
-#: sequencer.c:4332
+#: sequencer.c:4289
#, c-format
msgid "%s: bad revision"
msgstr "%s : mauvaise révision"
-#: sequencer.c:4367
+#: sequencer.c:4324
msgid "can't revert as initial commit"
msgstr "impossible d'annuler en tant que commit initial"
-#: sequencer.c:4810
+#: sequencer.c:4774
msgid "make_script: unhandled options"
msgstr "make_script : options non gérées"
-#: sequencer.c:4813
+#: sequencer.c:4777
msgid "make_script: error preparing revisions"
msgstr "make_script : erreur lors de la préparation des révisions"
-#: sequencer.c:4971
+#: sequencer.c:4935
msgid ""
"You can fix this with 'git rebase --edit-todo' and then run 'git rebase --"
"continue'.\n"
@@ -6787,24 +6812,24 @@ msgstr ""
"rebase --continue'.\n"
"Ou vous pouvez abandonner le rebasage avec 'git rebase --abort'.\n"
-#: sequencer.c:5083 sequencer.c:5100
+#: sequencer.c:5047 sequencer.c:5064
msgid "nothing to do"
msgstr "rien à faire"
-#: sequencer.c:5114
+#: sequencer.c:5078
msgid "could not skip unnecessary pick commands"
msgstr "impossible d'éviter les commandes de picorage non nécessaires"
-#: sequencer.c:5197
+#: sequencer.c:5166
msgid "the script was already rearranged."
msgstr "le script a déjà été réarrangé."
-#: setup.c:123
+#: setup.c:124
#, c-format
msgid "'%s' is outside repository"
msgstr "'%s' est hors du dépôt"
-#: setup.c:173
+#: setup.c:174
#, c-format
msgid ""
"%s: no such path in the working tree.\n"
@@ -6814,7 +6839,7 @@ msgstr ""
"Utilisez 'git <commande> -- <chemin>...' pour spécifier des chemins qui "
"n'existent pas localement."
-#: setup.c:186
+#: setup.c:187
#, c-format
msgid ""
"ambiguous argument '%s': unknown revision or path not in the working tree.\n"
@@ -6825,14 +6850,14 @@ msgstr ""
"Utilisez '--' pour séparer les chemins des révisions, comme ceci :\n"
"'git <commande> [<révision>...] -- [<chemin>...]'"
-#: setup.c:235
+#: setup.c:236
#, 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:254
+#: setup.c:255
#, c-format
msgid ""
"ambiguous argument '%s': both revision and filename\n"
@@ -6843,94 +6868,94 @@ msgstr ""
"Utilisez '--' pour séparer les chemins des révisions, comme ceci :\n"
"'git <commande> [<révision>...] -- [<chemin>...]'"
-#: setup.c:390
+#: setup.c:391
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:394
+#: setup.c:395
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:540
+#: setup.c:541
#, c-format
msgid "Expected git repo version <= %d, found %d"
msgstr "Version attendue du dépôt git <= %d, %d trouvée"
-#: setup.c:548
+#: setup.c:549
msgid "unknown repository extensions found:"
msgstr "extensions de dépôt inconnues trouvées :"
-#: setup.c:567
+#: setup.c:568
#, c-format
msgid "error opening '%s'"
msgstr "erreur à l'ouverture de '%s'"
-#: setup.c:569
+#: setup.c:570
#, c-format
msgid "too large to be a .git file: '%s'"
msgstr "trop gros pour être une fichier .git : '%s'"
-#: setup.c:571
+#: setup.c:572
#, c-format
msgid "error reading %s"
msgstr "erreur à la lecture de %s"
-#: setup.c:573
+#: setup.c:574
#, c-format
msgid "invalid gitfile format: %s"
msgstr "format de fichier git invalide : %s"
-#: setup.c:575
+#: setup.c:576
#, c-format
msgid "no path in gitfile: %s"
msgstr "aucun chemin dans le fichier git : %s"
-#: setup.c:577
+#: setup.c:578
#, c-format
msgid "not a git repository: %s"
msgstr "ce n'est pas un dépôt git : %s"
-#: setup.c:676
+#: setup.c:677
#, c-format
msgid "'$%s' too big"
msgstr "'$%s' trop gros"
-#: setup.c:690
+#: setup.c:691
#, c-format
msgid "not a git repository: '%s'"
msgstr "ce n'est pas un dépôt git : '%s'"
-#: setup.c:719 setup.c:721 setup.c:752
+#: setup.c:720 setup.c:722 setup.c:753
#, c-format
msgid "cannot chdir to '%s'"
msgstr "impossible de se déplacer vers le répertoire (chdir) '%s'"
-#: setup.c:724 setup.c:780 setup.c:790 setup.c:829 setup.c:837
+#: setup.c:725 setup.c:781 setup.c:791 setup.c:830 setup.c:838
msgid "cannot come back to cwd"
msgstr "impossible de revenir au répertoire de travail courant"
-#: setup.c:851
+#: setup.c:852
#, c-format
msgid "failed to stat '%*s%s%s'"
msgstr "échec du stat de '%*s%s%s'"
-#: setup.c:1083
+#: setup.c:1090
msgid "Unable to read current working directory"
msgstr "Impossible d'accéder au répertoire de travail courant"
-#: setup.c:1092 setup.c:1098
+#: setup.c:1099 setup.c:1105
#, c-format
msgid "cannot change to '%s'"
msgstr "impossible de modifier en '%s'"
-#: setup.c:1103
+#: setup.c:1110
#, 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:1109
+#: setup.c:1116
#, c-format
msgid ""
"not a git repository (or any parent up to mount point %s)\n"
@@ -6941,7 +6966,7 @@ msgstr ""
"Arrêt à la limite du système de fichiers (GIT_DISCOVERY_ACROSS_FILESYSTEM "
"n'est pas défini)."
-#: setup.c:1220
+#: setup.c:1227
#, c-format
msgid ""
"problem with core.sharedRepository filemode value (0%.3o).\n"
@@ -6951,286 +6976,286 @@ msgstr ""
"Le propriétaire des fichiers doit toujours avoir les droits en lecture et "
"écriture."
-#: setup.c:1264
+#: setup.c:1271
msgid "open /dev/null or dup failed"
msgstr "échec de l'ouverture ou au dup de /dev/null"
-#: setup.c:1279
+#: setup.c:1286
msgid "fork failed"
msgstr "échec de la bifurcation"
-#: setup.c:1284
+#: setup.c:1291
msgid "setsid failed"
msgstr "échec du setsid"
-#: sha1-file.c:453
+#: sha1-file.c:452
#, 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"
-#: sha1-file.c:504
+#: sha1-file.c:503
#, c-format
msgid "unable to normalize alternate object path: %s"
msgstr "impossible de normaliser le chemin d'objet alternatif : %s"
-#: sha1-file.c:576
+#: sha1-file.c:575
#, c-format
msgid "%s: ignoring alternate object stores, nesting too deep"
msgstr "%s : magasins d'objets alternatifs ignorés, récursion trop profonde"
-#: sha1-file.c:583
+#: sha1-file.c:582
#, c-format
msgid "unable to normalize object directory: %s"
msgstr "impossible de normaliser le répertoire d'objet : %s"
-#: sha1-file.c:626
+#: sha1-file.c:625
msgid "unable to fdopen alternates lockfile"
msgstr "impossible d'ouvrir (fdopen) le fichier verrou des alternatives"
-#: sha1-file.c:644
+#: sha1-file.c:643
msgid "unable to read alternates file"
msgstr "lecture du fichier d'alternatives impossible"
-#: sha1-file.c:651
+#: sha1-file.c:650
msgid "unable to move new alternates file into place"
msgstr "impossible de déplacer le nouveau fichier d'alternative"
-#: sha1-file.c:686
+#: sha1-file.c:685
#, c-format
msgid "path '%s' does not exist"
msgstr "le chemin '%s' n'existe pas"
-#: sha1-file.c:712
+#: sha1-file.c:711
#, 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é."
-#: sha1-file.c:718
+#: sha1-file.c:717
#, 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."
-#: sha1-file.c:724
+#: sha1-file.c:723
#, c-format
msgid "reference repository '%s' is shallow"
msgstr "le dépôt de référence '%s' est superficiel"
-#: sha1-file.c:732
+#: sha1-file.c:731
#, c-format
msgid "reference repository '%s' is grafted"
msgstr "le dépôt de référence '%s' est greffé"
-#: sha1-file.c:792
+#: sha1-file.c:791
#, c-format
msgid "invalid line while parsing alternate refs: %s"
msgstr "ligne invalide pendant l'analyse des refs alternatives : %s"
-#: sha1-file.c:944
+#: sha1-file.c:943
#, c-format
msgid "attempting to mmap %<PRIuMAX> over limit %<PRIuMAX>"
msgstr "essai de mmap %<PRIuMAX> au delà de la limite %<PRIuMAX>"
-#: sha1-file.c:969
+#: sha1-file.c:964
msgid "mmap failed"
msgstr "échec de mmap"
-#: sha1-file.c:1133
+#: sha1-file.c:1128
#, c-format
msgid "object file %s is empty"
msgstr "le fichier objet %s est vide"
-#: sha1-file.c:1257 sha1-file.c:2396
+#: sha1-file.c:1252 sha1-file.c:2392
#, c-format
msgid "corrupt loose object '%s'"
msgstr "objet libre corrompu '%s'"
-#: sha1-file.c:1259 sha1-file.c:2400
+#: sha1-file.c:1254 sha1-file.c:2396
#, c-format
msgid "garbage at end of loose object '%s'"
msgstr "données incorrectes à la fin de l'objet libre '%s'"
-#: sha1-file.c:1301
+#: sha1-file.c:1296
msgid "invalid object type"
msgstr "type d'objet invalide"
-#: sha1-file.c:1385
+#: sha1-file.c:1380
#, c-format
msgid "unable to unpack %s header with --allow-unknown-type"
msgstr "impossible de dépaqueter l'entête %s avec --allow-unknow-type"
-#: sha1-file.c:1388
+#: sha1-file.c:1383
#, c-format
msgid "unable to unpack %s header"
msgstr "impossible de dépaqueter l'entête %s"
-#: sha1-file.c:1394
+#: sha1-file.c:1389
#, c-format
msgid "unable to parse %s header with --allow-unknown-type"
msgstr "impossible d'analyser l'entête %s avec --allow-unknow-type"
-#: sha1-file.c:1397
+#: sha1-file.c:1392
#, c-format
msgid "unable to parse %s header"
msgstr "impossible d'analyser l'entête %s"
-#: sha1-file.c:1588
+#: sha1-file.c:1584
#, c-format
msgid "failed to read object %s"
msgstr "impossible de lire l'objet %s"
-#: sha1-file.c:1592
+#: sha1-file.c:1588
#, c-format
msgid "replacement %s not found for %s"
msgstr "remplacement %s non trouvé pour %s"
-#: sha1-file.c:1596
+#: sha1-file.c:1592
#, c-format
msgid "loose object %s (stored in %s) is corrupt"
msgstr "l'objet libre %s (stocké dans %s) est corrompu"
-#: sha1-file.c:1600
+#: sha1-file.c:1596
#, c-format
msgid "packed object %s (stored in %s) is corrupt"
msgstr "l'objet empaqueté %s (stocké dans %s) est corrompu"
-#: sha1-file.c:1703
+#: sha1-file.c:1699
#, c-format
msgid "unable to write file %s"
msgstr "impossible d'écrire le fichier %s"
-#: sha1-file.c:1710
+#: sha1-file.c:1706
#, c-format
msgid "unable to set permission to '%s'"
msgstr "impossible de régler les droits de '%s'"
-#: sha1-file.c:1717
+#: sha1-file.c:1713
msgid "file write error"
msgstr "erreur d'écriture d'un fichier"
-#: sha1-file.c:1736
+#: sha1-file.c:1732
msgid "error when closing loose object file"
msgstr "erreur en fermeture du fichier d'objet esseulé"
-#: sha1-file.c:1801
+#: sha1-file.c:1797
#, 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"
-#: sha1-file.c:1803
+#: sha1-file.c:1799
msgid "unable to create temporary file"
msgstr "impossible de créer un fichier temporaire"
-#: sha1-file.c:1827
+#: sha1-file.c:1823
msgid "unable to write loose object file"
msgstr "impossible d'écrire le fichier d'objet esseulé"
-#: sha1-file.c:1833
+#: sha1-file.c:1829
#, c-format
msgid "unable to deflate new object %s (%d)"
msgstr "impossible de compresser le nouvel objet %s (%d)"
-#: sha1-file.c:1837
+#: sha1-file.c:1833
#, c-format
msgid "deflateEnd on object %s failed (%d)"
msgstr "échec de deflateEnd sur l'objet %s (%d)"
-#: sha1-file.c:1841
+#: sha1-file.c:1837
#, c-format
msgid "confused by unstable object source data for %s"
msgstr "données de source d'objet instable pour %s"
-#: sha1-file.c:1851 builtin/pack-objects.c:925
+#: sha1-file.c:1847 builtin/pack-objects.c:925
#, c-format
msgid "failed utime() on %s"
msgstr "échec de utime() sur %s"
-#: sha1-file.c:1926
+#: sha1-file.c:1922
#, c-format
msgid "cannot read object for %s"
msgstr "impossible de lire l'objet pour %s"
-#: sha1-file.c:1966
+#: sha1-file.c:1962
msgid "corrupt commit"
msgstr "commit corrompu"
-#: sha1-file.c:1974
+#: sha1-file.c:1970
msgid "corrupt tag"
msgstr "étiquette corrompue"
-#: sha1-file.c:2073
+#: sha1-file.c:2069
#, c-format
msgid "read error while indexing %s"
msgstr "erreur de lecture à l'indexation de %s"
-#: sha1-file.c:2076
+#: sha1-file.c:2072
#, c-format
msgid "short read while indexing %s"
msgstr "lecture tronquée pendant l'indexation de %s"
-#: sha1-file.c:2149 sha1-file.c:2158
+#: sha1-file.c:2145 sha1-file.c:2154
#, c-format
msgid "%s: failed to insert into database"
msgstr "%s : échec de l'insertion dans la base de données"
-#: sha1-file.c:2164
+#: sha1-file.c:2160
#, c-format
msgid "%s: unsupported file type"
msgstr "%s : type de fichier non supporté"
-#: sha1-file.c:2188
+#: sha1-file.c:2184
#, c-format
msgid "%s is not a valid object"
msgstr "%s n'est pas un objet valide"
-#: sha1-file.c:2190
+#: sha1-file.c:2186
#, c-format
msgid "%s is not a valid '%s' object"
msgstr "%s n'est pas un objet '%s' valide"
-#: sha1-file.c:2217 builtin/index-pack.c:155
+#: sha1-file.c:2213 builtin/index-pack.c:155
#, c-format
msgid "unable to open %s"
msgstr "impossible d'ouvrir %s"
-#: sha1-file.c:2407 sha1-file.c:2459
+#: sha1-file.c:2403 sha1-file.c:2455
#, c-format
msgid "hash mismatch for %s (expected %s)"
msgstr "incohérence de hachage pour %s (%s attendu)"
-#: sha1-file.c:2431
+#: sha1-file.c:2427
#, c-format
msgid "unable to mmap %s"
msgstr "impossible de mmap %s"
-#: sha1-file.c:2436
+#: sha1-file.c:2432
#, c-format
msgid "unable to unpack header of %s"
msgstr "impossible de dépaqueter l'entête de %s"
-#: sha1-file.c:2442
+#: sha1-file.c:2438
#, c-format
msgid "unable to parse header of %s"
msgstr "impossible d'analyser l'entête de %s"
-#: sha1-file.c:2453
+#: sha1-file.c:2449
#, c-format
msgid "unable to unpack contents of %s"
msgstr "impossible de dépaqueter le contenu de %s"
-#: sha1-name.c:490
+#: sha1-name.c:487
#, c-format
msgid "short SHA1 %s is ambiguous"
msgstr "le SHA1 court %s est ambigu"
-#: sha1-name.c:501
+#: sha1-name.c:498
msgid "The candidates are:"
msgstr "Les candidats sont :"
-#: sha1-name.c:800
+#: sha1-name.c:797
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"
@@ -7255,43 +7280,43 @@ msgstr ""
"en lançant \"git config advice.objectNameWarning false\""
#. TRANSLATORS: IEC 80000-13:2008 gibibyte
-#: strbuf.c:821
+#: strbuf.c:822
#, c-format
msgid "%u.%2.2u GiB"
msgstr "%u.%2.2u Gio"
#. TRANSLATORS: IEC 80000-13:2008 gibibyte/second
-#: strbuf.c:823
+#: strbuf.c:824
#, c-format
msgid "%u.%2.2u GiB/s"
msgstr "%u.%2.2u Gio/s"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte
-#: strbuf.c:831
+#: strbuf.c:832
#, c-format
msgid "%u.%2.2u MiB"
msgstr "%u.%2.2u Mio"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte/second
-#: strbuf.c:833
+#: strbuf.c:834
#, c-format
msgid "%u.%2.2u MiB/s"
msgstr "%u.%2.2u Mio/s"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte
-#: strbuf.c:840
+#: strbuf.c:841
#, c-format
msgid "%u.%2.2u KiB"
msgstr "%u.%2.2u Kio"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte/second
-#: strbuf.c:842
+#: strbuf.c:843
#, c-format
msgid "%u.%2.2u KiB/s"
msgstr "%u.%2.2u Kio/s"
#. TRANSLATORS: IEC 80000-13:2008 byte
-#: strbuf.c:848
+#: strbuf.c:849
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -7299,7 +7324,7 @@ msgstr[0] "%u octet"
msgstr[1] "%u octets"
#. TRANSLATORS: IEC 80000-13:2008 byte/second
-#: strbuf.c:850
+#: strbuf.c:851
#, c-format
msgid "%u byte/s"
msgid_plural "%u bytes/s"
@@ -7419,28 +7444,28 @@ msgstr "impossible de démarrer ls-files dans .."
msgid "ls-tree returned unexpected return code %d"
msgstr "ls-tree a renvoyé un code de retour inattendu %d"
-#: submodule-config.c:232
+#: submodule-config.c:236
#, c-format
msgid "ignoring suspicious submodule name: %s"
msgstr "nom de sous-module suspicieux %s ignoré"
-#: submodule-config.c:299
+#: submodule-config.c:303
msgid "negative values not allowed for submodule.fetchjobs"
msgstr "les valeurs négatives ne sont pas permises pour submodule.fetchJobs"
-#: submodule-config.c:397
+#: submodule-config.c:401
#, 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:486
+#: submodule-config.c:490
#, c-format
msgid "invalid value for %s"
msgstr "Valeur invalide pour %s"
-#: submodule-config.c:755
+#: submodule-config.c:761
#, c-format
msgid "Could not update .gitmodules entry %s"
msgstr "Impossible de mettre à jour l'élément %s de .gitmodules"
@@ -7475,7 +7500,7 @@ msgstr "impossible de lire le fichier d'entrée '%s'"
msgid "could not read from stdin"
msgstr "Impossible de lire depuis l'entrée standard"
-#: trailer.c:1011 wrapper.c:701
+#: trailer.c:1011 wrapper.c:665
#, c-format
msgid "could not stat %s"
msgstr "stat impossible de %s"
@@ -7504,47 +7529,47 @@ msgstr "impossible de renommer un fichier temporaire en %s"
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:142
+#: transport.c:145
#, c-format
msgid "could not read bundle '%s'"
msgstr "impossible de lire la liasse '%s'"
-#: transport.c:208
+#: transport.c:214
#, c-format
msgid "transport: invalid depth option '%s'"
msgstr "transport : option de profondeur invalide '%s'"
-#: transport.c:259
+#: transport.c:266
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:260
+#: transport.c:267
msgid "server options require protocol version 2 or later"
msgstr "les options de serveur exigent une version 2 ou supérieure"
-#: transport.c:625
+#: transport.c:632
msgid "could not parse transport.color.* config"
msgstr "impossible d'analyser la configuration transport.color.*"
-#: transport.c:698
+#: transport.c:705
msgid "support for protocol v2 not implemented yet"
msgstr "le support du protocole v2 n'est pas encore implanté"
-#: transport.c:825
+#: transport.c:831
#, c-format
msgid "unknown value for config '%s': %s"
msgstr "valeur inconnue pour la config '%s' : %s"
-#: transport.c:891
+#: transport.c:897
#, c-format
msgid "transport '%s' not allowed"
msgstr "transport '%s' non permis"
-#: transport.c:945
+#: transport.c:949
msgid "git-over-rsync is no longer supported"
msgstr "git-over-rsync n'est plus supporté"
-#: transport.c:1040
+#: transport.c:1044
#, c-format
msgid ""
"The following submodule paths contain changes that can\n"
@@ -7553,7 +7578,7 @@ msgstr ""
"Les chemins suivants de sous-module contiennent des modifications\n"
"qui ne peuvent être trouvées sur aucun distant :\n"
-#: transport.c:1044
+#: transport.c:1048
#, c-format
msgid ""
"\n"
@@ -7580,33 +7605,33 @@ msgstr ""
"pour les pousser vers un serveur distant.\n"
"\n"
-#: transport.c:1052
+#: transport.c:1056
msgid "Aborting."
msgstr "Abandon."
-#: transport.c:1193
+#: transport.c:1201
msgid "failed to push all needed submodules"
msgstr "échec de la poussée de tous les sous-modules nécessaires"
-#: transport.c:1340 transport-helper.c:645
+#: transport.c:1345 transport-helper.c:655
msgid "operation not supported by protocol"
msgstr "option non supportée par le protocole"
-#: transport-helper.c:51 transport-helper.c:80
+#: transport-helper.c:61 transport-helper.c:90
msgid "full write to remote helper failed"
msgstr "échec de l'écriture totale sur l'assistant distant"
-#: transport-helper.c:134
+#: transport-helper.c:144
#, c-format
msgid "unable to find remote helper for '%s'"
msgstr "Impossible de trouver un assistant distant pour '%s'"
-#: transport-helper.c:150 transport-helper.c:559
+#: transport-helper.c:160 transport-helper.c:569
msgid "can't dup helper output fd"
msgstr ""
"impossible de dupliquer le descripteur de flux de sortie de l'assistant"
-#: transport-helper.c:201
+#: transport-helper.c:211
#, c-format
msgid ""
"unknown mandatory capability %s; this remote helper probably needs newer "
@@ -7615,103 +7640,108 @@ msgstr ""
"capacité obligatoire inconnue %s ; cet assistant distant requiert "
"probablement une une nouvelle version de Git"
-#: transport-helper.c:207
+#: transport-helper.c:217
msgid "this remote helper should implement refspec capability"
msgstr "cet assistant distant devrait supporter la capacité refspec"
-#: transport-helper.c:274 transport-helper.c:414
+#: transport-helper.c:284 transport-helper.c:424
#, c-format
msgid "%s unexpectedly said: '%s'"
msgstr "%s a dit de manière inattendue : '%s'"
-#: transport-helper.c:403
+#: transport-helper.c:413
#, c-format
msgid "%s also locked %s"
msgstr "%s a aussi verrouillé %s"
-#: transport-helper.c:481
+#: transport-helper.c:491
msgid "couldn't run fast-import"
msgstr "impossible de lancer fast-import"
-#: transport-helper.c:504
+#: transport-helper.c:514
msgid "error while running fast-import"
msgstr "erreur au lancement de fast-import"
-#: transport-helper.c:533 transport-helper.c:1105
+#: transport-helper.c:543 transport-helper.c:1132
#, c-format
msgid "could not read ref %s"
msgstr "impossible de lire la réf %s"
-#: transport-helper.c:578
+#: transport-helper.c:588
#, c-format
msgid "unknown response to connect: %s"
msgstr "réponse inconnue à connect : %s"
-#: transport-helper.c:600
+#: transport-helper.c:610
msgid "setting remote service path not supported by protocol"
msgstr ""
"la spécification du chemin de service distant n'est pas supportée par le "
"protocole"
-#: transport-helper.c:602
+#: transport-helper.c:612
msgid "invalid remote service path"
msgstr "chemin de service distant invalide"
-#: transport-helper.c:648
+#: transport-helper.c:658
#, c-format
msgid "can't connect to subservice %s"
msgstr "impossible de se connecter au sous-service %s"
-#: transport-helper.c:720
+#: transport-helper.c:734
#, c-format
msgid "expected ok/error, helper said '%s'"
msgstr "ok/error attendu, l'assistant a dit '%s'"
-#: transport-helper.c:773
+#: transport-helper.c:787
#, c-format
msgid "helper reported unexpected status of %s"
msgstr "l'assistant a renvoyé un statut de retour inattendu %s"
-#: transport-helper.c:834
+#: transport-helper.c:848
#, c-format
msgid "helper %s does not support dry-run"
msgstr "l'assistant %s ne gère pas dry-run"
-#: transport-helper.c:837
+#: transport-helper.c:851
#, c-format
msgid "helper %s does not support --signed"
msgstr "l'assistant %s ne gère pas --signed"
-#: transport-helper.c:840
+#: transport-helper.c:854
#, 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:847
+#: transport-helper.c:859
+#, c-format
+msgid "helper %s does not support --atomic"
+msgstr "l'assistant %s ne gère pas --atomic"
+
+#: transport-helper.c:865
#, c-format
msgid "helper %s does not support 'push-option'"
msgstr "l'assistant %s ne gère pas 'push-option'"
-#: transport-helper.c:945
+#: transport-helper.c:963
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:950
+#: transport-helper.c:968
#, c-format
msgid "helper %s does not support 'force'"
msgstr "l'assistant %s ne gère pas 'force'"
-#: transport-helper.c:997
+#: transport-helper.c:1015
msgid "couldn't run fast-export"
msgstr "impossible de lancer fast-export"
-#: transport-helper.c:1002
+#: transport-helper.c:1020
msgid "error while running fast-export"
msgstr "erreur au lancement de fast-export"
-#: transport-helper.c:1027
+#: transport-helper.c:1045
#, c-format
msgid ""
"No refs in common and none specified; doing nothing.\n"
@@ -7720,47 +7750,47 @@ msgstr ""
"Aucune référence en commun et aucune spécfiée ; rien à faire.\n"
"Vous devriez peut-être spécifier une branche telle que 'master'.\n"
-#: transport-helper.c:1091
+#: transport-helper.c:1118
#, c-format
msgid "malformed response in ref list: %s"
msgstr "réponse malformée dans le liste de réfs : %s"
-#: transport-helper.c:1244
+#: transport-helper.c:1270
#, c-format
msgid "read(%s) failed"
msgstr "échec de read(%s)"
-#: transport-helper.c:1271
+#: transport-helper.c:1297
#, c-format
msgid "write(%s) failed"
msgstr "échec de write(%s)"
-#: transport-helper.c:1320
+#: transport-helper.c:1346
#, c-format
msgid "%s thread failed"
msgstr "échec du fil d'exécution %s"
-#: transport-helper.c:1324
+#: transport-helper.c:1350
#, c-format
msgid "%s thread failed to join: %s"
msgstr "échec de jonction du fil d'exécution %s : %s"
-#: transport-helper.c:1343 transport-helper.c:1347
+#: transport-helper.c:1369 transport-helper.c:1373
#, 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:1384
+#: transport-helper.c:1410
#, c-format
msgid "%s process failed to wait"
msgstr "échec du processus %s pour l'attente"
-#: transport-helper.c:1388
+#: transport-helper.c:1414
#, c-format
msgid "%s process failed"
msgstr "échec du processus %s"
-#: transport-helper.c:1406 transport-helper.c:1415
+#: transport-helper.c:1432 transport-helper.c:1441
msgid "can't start thread for copying data"
msgstr "impossible de démarrer le fil d'exécution pour copier les données"
@@ -7780,7 +7810,7 @@ msgstr "nom de fichier vide dans une entrée de l'arbre"
msgid "too-short tree file"
msgstr "fichier arbre trop court"
-#: unpack-trees.c:111
+#: unpack-trees.c:110
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by checkout:\n"
@@ -7791,7 +7821,7 @@ msgstr ""
"%%sVeuillez valider ou remiser vos modifications avant de basculer de "
"branche."
-#: unpack-trees.c:113
+#: unpack-trees.c:112
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by checkout:\n"
@@ -7801,7 +7831,7 @@ msgstr ""
"l'extraction :\n"
"%%s"
-#: unpack-trees.c:116
+#: unpack-trees.c:115
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by merge:\n"
@@ -7811,7 +7841,7 @@ msgstr ""
"fusion :\n"
"%%sVeuillez valider ou remiser vos modifications avant la fusion."
-#: unpack-trees.c:118
+#: unpack-trees.c:117
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by merge:\n"
@@ -7821,7 +7851,7 @@ msgstr ""
"fusion :\n"
"%%s"
-#: unpack-trees.c:121
+#: unpack-trees.c:120
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by %s:\n"
@@ -7830,7 +7860,7 @@ msgstr ""
"Vos modifications locales aux fichiers suivants seraient écrasées par %s :\n"
"%%sVeuillez valider ou remiser vos modifications avant %s."
-#: unpack-trees.c:123
+#: unpack-trees.c:122
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by %s:\n"
@@ -7839,7 +7869,7 @@ msgstr ""
"Vos modifications locales aux fichiers suivants seraient écrasées par %s :\n"
"%%s"
-#: unpack-trees.c:128
+#: unpack-trees.c:127
#, c-format
msgid ""
"Updating the following directories would lose untracked files in them:\n"
@@ -7849,7 +7879,7 @@ msgstr ""
"contenus :\n"
"%s"
-#: unpack-trees.c:132
+#: unpack-trees.c:131
#, c-format
msgid ""
"The following untracked working tree files would be removed by checkout:\n"
@@ -7859,7 +7889,7 @@ msgstr ""
"l'extraction :\n"
"%%sVeuillez renommer ou effacer ces fichiers avant de basculer de branche."
-#: unpack-trees.c:134
+#: unpack-trees.c:133
#, c-format
msgid ""
"The following untracked working tree files would be removed by checkout:\n"
@@ -7868,7 +7898,7 @@ msgstr ""
"Les fichiers suivants non suivis seraient effacés par l'extraction :\n"
"%%s"
-#: unpack-trees.c:137
+#: unpack-trees.c:136
#, c-format
msgid ""
"The following untracked working tree files would be removed by merge:\n"
@@ -7878,7 +7908,7 @@ msgstr ""
"la fusion :\n"
"%%sVeuillez renommer ou effacer ces fichiers avant la fusion."
-#: unpack-trees.c:139
+#: unpack-trees.c:138
#, c-format
msgid ""
"The following untracked working tree files would be removed by merge:\n"
@@ -7887,7 +7917,7 @@ msgstr ""
"Les fichiers suivants non suivis seraient effacés par la fusion :\n"
"%%s"
-#: unpack-trees.c:142
+#: unpack-trees.c:141
#, c-format
msgid ""
"The following untracked working tree files would be removed by %s:\n"
@@ -7897,7 +7927,7 @@ msgstr ""
"%s :\n"
"%%sVeuillez renommer ou effacer ces fichiers avant %s."
-#: unpack-trees.c:144
+#: unpack-trees.c:143
#, c-format
msgid ""
"The following untracked working tree files would be removed by %s:\n"
@@ -7906,7 +7936,7 @@ msgstr ""
"Les fichiers suivants non suivis seraient effacés par %s :\n"
"%%s"
-#: unpack-trees.c:150
+#: unpack-trees.c:149
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by "
@@ -7917,7 +7947,7 @@ msgstr ""
"l'extraction :\n"
"%%sVeuillez renommer ou effacer ces fichiers avant de basculer de branche."
-#: unpack-trees.c:152
+#: unpack-trees.c:151
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by "
@@ -7927,7 +7957,7 @@ msgstr ""
"Les fichiers suivants non suivis seraient écrasés par l'extraction :\n"
"%%s"
-#: unpack-trees.c:155
+#: unpack-trees.c:154
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by merge:\n"
@@ -7937,7 +7967,7 @@ msgstr ""
"la fusion :\n"
"%%sVeuillez renommer ou effacer ces fichiers avant la fusion."
-#: unpack-trees.c:157
+#: unpack-trees.c:156
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by merge:\n"
@@ -7946,7 +7976,7 @@ msgstr ""
"Les fichiers suivants non suivis seraient écrasés par la fusion :\n"
"%%s"
-#: unpack-trees.c:160
+#: unpack-trees.c:159
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by %s:\n"
@@ -7956,7 +7986,7 @@ msgstr ""
"%s :\n"
"%%sVeuillez renommer ou effacer ces fichiers avant %s."
-#: unpack-trees.c:162
+#: unpack-trees.c:161
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by %s:\n"
@@ -7965,12 +7995,12 @@ msgstr ""
"Les fichiers suivants non suivis seraient écrasés par %s :\n"
"%%s"
-#: unpack-trees.c:170
+#: unpack-trees.c:169
#, c-format
msgid "Entry '%s' overlaps with '%s'. Cannot bind."
msgstr "L'entrée '%s' surcharge avec '%s'. Affectation impossible."
-#: unpack-trees.c:173
+#: unpack-trees.c:172
#, c-format
msgid ""
"Cannot update sparse checkout: the following entries are not up to date:\n"
@@ -7980,7 +8010,7 @@ msgstr ""
"pas à jour :\n"
"%s"
-#: unpack-trees.c:175
+#: unpack-trees.c:174
#, c-format
msgid ""
"The following working tree files would be overwritten by sparse checkout "
@@ -7991,7 +8021,7 @@ msgstr ""
"jour par l'extraction creuse :\n"
"%s"
-#: unpack-trees.c:177
+#: unpack-trees.c:176
#, c-format
msgid ""
"The following working tree files would be removed by sparse checkout "
@@ -8002,7 +8032,7 @@ msgstr ""
"à jour par extraction creuse :\n"
"%s"
-#: unpack-trees.c:179
+#: unpack-trees.c:178
#, c-format
msgid ""
"Cannot update submodule:\n"
@@ -8011,16 +8041,16 @@ msgstr ""
"Mise à jour impossible pour le sous-module :\n"
"%s"
-#: unpack-trees.c:256
+#: unpack-trees.c:255
#, c-format
msgid "Aborting\n"
msgstr "Abandon\n"
-#: unpack-trees.c:318
+#: unpack-trees.c:317
msgid "Updating files"
msgstr "Mise à jour des fichiers"
-#: unpack-trees.c:350
+#: unpack-trees.c:349
msgid ""
"the following paths have collided (e.g. case-sensitive paths\n"
"on a case-insensitive filesystem) and only one from the same\n"
@@ -8059,7 +8089,7 @@ msgstr "numéro de port invalide"
msgid "invalid '..' path segment"
msgstr "segment de chemin '..' invalide"
-#: worktree.c:258 builtin/am.c:2095
+#: worktree.c:258 builtin/am.c:2084
#, c-format
msgid "failed to read '%s'"
msgstr "échec de la lecture de '%s'"
@@ -8092,17 +8122,17 @@ msgstr "'%s' n'est pas un fichier .git, code d'erreur %d"
msgid "'%s' does not point back to '%s'"
msgstr "'%s' ne pointe pas en retour sur '%s'"
-#: wrapper.c:223 wrapper.c:393
+#: wrapper.c:186 wrapper.c:356
#, c-format
msgid "could not open '%s' for reading and writing"
msgstr "impossible d'ouvrir '%s' en lecture/écriture"
-#: wrapper.c:424 wrapper.c:624
+#: wrapper.c:387 wrapper.c:588
#, c-format
msgid "unable to access '%s'"
msgstr "impossible d'accéder à '%s'"
-#: wrapper.c:632
+#: wrapper.c:596
msgid "unable to get current working directory"
msgstr "impossible d'accéder au répertoire de travail courant"
@@ -8447,80 +8477,88 @@ msgstr ""
" (tous les conflits sont réglés : lancez \"git cherry-pick --continue\")"
#: wt-status.c:1437
+msgid " (use \"git cherry-pick --skip\" to skip this patch)"
+msgstr " (utilisez \"git cherry-pick --skip\" pour sauter ce patch)"
+
+#: wt-status.c:1439
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:1447
+#: wt-status.c:1449
msgid "Revert currently in progress."
msgstr "Rétablissement en cours."
-#: wt-status.c:1450
+#: wt-status.c:1452
#, c-format
msgid "You are currently reverting commit %s."
msgstr "Vous êtes actuellement en train de rétablir le commit %s."
-#: wt-status.c:1456
+#: wt-status.c:1458
msgid " (fix conflicts and run \"git revert --continue\")"
msgstr " (réglez les conflits puis lancez \"git revert --continue\")"
-#: wt-status.c:1459
+#: wt-status.c:1461
msgid " (run \"git revert --continue\" to continue)"
msgstr " (lancez \"git revert --continue\" pour continuer)"
-#: wt-status.c:1462
+#: wt-status.c:1464
msgid " (all conflicts fixed: run \"git revert --continue\")"
msgstr " (tous les conflits sont réglés : lancez \"git revert --continue\")"
-#: wt-status.c:1464
+#: wt-status.c:1466
+msgid " (use \"git revert --skip\" to skip this patch)"
+msgstr " (utilisez \"git revert --skip\" pour sauter ce patch)"
+
+#: wt-status.c:1468
msgid " (use \"git revert --abort\" to cancel the revert operation)"
msgstr " (utilisez \"git revert --abort\" pour annuler le rétablissement)"
-#: wt-status.c:1474
+#: wt-status.c:1478
#, 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:1478
+#: wt-status.c:1482
msgid "You are currently bisecting."
msgstr "Vous êtes en cours de bissection."
-#: wt-status.c:1481
+#: wt-status.c:1485
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:1690
+#: wt-status.c:1694
msgid "On branch "
msgstr "Sur la branche "
-#: wt-status.c:1697
+#: wt-status.c:1701
msgid "interactive rebase in progress; onto "
msgstr "rebasage interactif en cours ; sur "
-#: wt-status.c:1699
+#: wt-status.c:1703
msgid "rebase in progress; onto "
msgstr "rebasage en cours ; sur "
-#: wt-status.c:1709
+#: wt-status.c:1713
msgid "Not currently on any branch."
msgstr "Actuellement sur aucun branche."
-#: wt-status.c:1726
+#: wt-status.c:1730
msgid "Initial commit"
msgstr "Validation initiale"
-#: wt-status.c:1727
+#: wt-status.c:1731
msgid "No commits yet"
msgstr "Aucun commit"
-#: wt-status.c:1741
+#: wt-status.c:1745
msgid "Untracked files"
msgstr "Fichiers non suivis"
-#: wt-status.c:1743
+#: wt-status.c:1747
msgid "Ignored files"
msgstr "Fichiers ignorés"
-#: wt-status.c:1747
+#: wt-status.c:1751
#, c-format
msgid ""
"It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
@@ -8532,32 +8570,32 @@ msgstr ""
"oublier d'ajouter les nouveaux fichiers par vous-même (voir 'git help "
"status')."
-#: wt-status.c:1753
+#: wt-status.c:1757
#, c-format
msgid "Untracked files not listed%s"
msgstr "Fichiers non suivis non affichés%s"
-#: wt-status.c:1755
+#: wt-status.c:1759
msgid " (use -u option to show untracked files)"
msgstr " (utilisez -u pour afficher les fichiers non suivis)"
-#: wt-status.c:1761
+#: wt-status.c:1765
msgid "No changes"
msgstr "Aucune modification"
-#: wt-status.c:1766
+#: wt-status.c:1770
#, 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:1769
+#: wt-status.c:1773
#, c-format
msgid "no changes added to commit\n"
msgstr "aucune modification ajoutée à la validation\n"
-#: wt-status.c:1772
+#: wt-status.c:1776
#, c-format
msgid ""
"nothing added to commit but untracked files present (use \"git add\" to "
@@ -8566,70 +8604,75 @@ 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:1775
+#: wt-status.c:1779
#, 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:1778
+#: wt-status.c:1782
#, 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:1781 wt-status.c:1786
+#: wt-status.c:1785 wt-status.c:1790
#, c-format
msgid "nothing to commit\n"
msgstr "rien à valider\n"
-#: wt-status.c:1784
+#: wt-status.c:1788
#, 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:1788
+#: wt-status.c:1792
#, c-format
msgid "nothing to commit, working tree clean\n"
msgstr "rien à valider, la copie de travail est propre\n"
-#: wt-status.c:1901
+#: wt-status.c:1905
msgid "No commits yet on "
msgstr "Encore aucun commit sur "
-#: wt-status.c:1905
+#: wt-status.c:1909
msgid "HEAD (no branch)"
msgstr "HEAD (aucune branche)"
-#: wt-status.c:1936
+#: wt-status.c:1940
msgid "different"
msgstr "différent"
-#: wt-status.c:1938 wt-status.c:1946
+#: wt-status.c:1942 wt-status.c:1950
msgid "behind "
msgstr "derrière "
-#: wt-status.c:1941 wt-status.c:1944
+#: wt-status.c:1945 wt-status.c:1948
msgid "ahead "
msgstr "devant "
#. TRANSLATORS: the action is e.g. "pull with rebase"
-#: wt-status.c:2466
+#: wt-status.c:2470
#, c-format
msgid "cannot %s: You have unstaged changes."
msgstr "Impossible de %s : vous avez des modifications non indexées."
-#: wt-status.c:2472
+#: wt-status.c:2476
msgid "additionally, your index contains uncommitted changes."
msgstr "de plus, votre index contient des modifications non validées."
-#: wt-status.c:2474
+#: wt-status.c:2478
#, c-format
msgid "cannot %s: Your index contains uncommitted changes."
msgstr "%s impossible : votre index contient des modifications non validées."
+#: compat/precompose_utf8.c:58 builtin/clone.c:452
+#, c-format
+msgid "failed to unlink '%s'"
+msgstr "échec pour délier '%s'"
+
#: builtin/add.c:25
msgid "git add [<options>] [--] <pathspec>..."
msgstr "git add [<options>] [--] <chemin>..."
@@ -8652,7 +8695,7 @@ msgstr "suppression de '%s'\n"
msgid "Unstaged changes after refreshing the index:"
msgstr "Modifications non indexées après rafraîchissement de l'index :"
-#: builtin/add.c:234 builtin/rev-parse.c:896
+#: builtin/add.c:234 builtin/rev-parse.c:897
msgid "Could not read the index"
msgstr "Impossible de lire l'index"
@@ -8688,8 +8731,8 @@ 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:290 builtin/clean.c:909 builtin/fetch.c:147 builtin/mv.c:124
-#: builtin/prune-packed.c:56 builtin/pull.c:222 builtin/push.c:560
+#: builtin/add.c:290 builtin/clean.c:910 builtin/fetch.c:162 builtin/mv.c:124
+#: builtin/prune-packed.c:56 builtin/pull.c:223 builtin/push.c:547
#: builtin/remote.c:1345 builtin/rm.c:241 builtin/send-pack.c:165
msgid "dry run"
msgstr "simuler l'action"
@@ -8746,7 +8789,7 @@ msgstr ""
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:309 builtin/update-index.c:1001
+#: builtin/add.c:309 builtin/update-index.c:1002
msgid "override the executable bit of the listed files"
msgstr "outrepasser le bit exécutable pour les fichiers listés"
@@ -8823,116 +8866,112 @@ msgstr "Rien de spécifié, rien n'a été ajouté.\n"
msgid "Maybe you wanted to say 'git add .'?\n"
msgstr "Vous vouliez sûrement dire 'git add .' ?\n"
-#: builtin/am.c:348
+#: builtin/am.c:347
msgid "could not parse author script"
msgstr "impossible d'analyser l'auteur du script"
-#: builtin/am.c:432
+#: builtin/am.c:431
#, c-format
msgid "'%s' was deleted by the applypatch-msg hook"
msgstr "'%s' a été effacé par le crochet applypatch-msg"
-#: builtin/am.c:474
+#: builtin/am.c:473
#, c-format
msgid "Malformed input line: '%s'."
msgstr "Ligne en entrée malformée : '%s'."
-#: builtin/am.c:512
+#: builtin/am.c:511
#, c-format
msgid "Failed to copy notes from '%s' to '%s'"
msgstr "Impossible de copier les notes de '%s' vers '%s'"
-#: builtin/am.c:538
+#: builtin/am.c:537
msgid "fseek failed"
msgstr "échec de fseek"
-#: builtin/am.c:726
+#: builtin/am.c:725
#, c-format
msgid "could not parse patch '%s'"
msgstr "impossible d'analyser le patch '%s'"
-#: builtin/am.c:791
+#: builtin/am.c:790
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:839
+#: builtin/am.c:838
msgid "invalid timestamp"
msgstr "horodatage invalide"
-#: builtin/am.c:844 builtin/am.c:856
+#: builtin/am.c:843 builtin/am.c:855
msgid "invalid Date line"
msgstr "ligne de Date invalide"
-#: builtin/am.c:851
+#: builtin/am.c:850
msgid "invalid timezone offset"
msgstr "décalage horaire invalide"
-#: builtin/am.c:944
+#: builtin/am.c:943
msgid "Patch format detection failed."
msgstr "Échec de détection du format du patch."
-#: builtin/am.c:949 builtin/clone.c:407
+#: builtin/am.c:948 builtin/clone.c:406
#, c-format
msgid "failed to create directory '%s'"
msgstr "échec de la création du répertoire '%s'"
-#: builtin/am.c:954
+#: builtin/am.c:953
msgid "Failed to split patches."
msgstr "Échec de découpage des patchs."
-#: builtin/am.c:1084 builtin/commit.c:374
-msgid "unable to write index file"
-msgstr "impossible d'écrire le fichier d'index"
-
-#: builtin/am.c:1098
+#: builtin/am.c:1084
#, 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:1099
+#: builtin/am.c:1085
#, 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:1100
+#: builtin/am.c:1086
#, 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:1183
+#: builtin/am.c:1169
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:1211
+#: builtin/am.c:1197
msgid "Patch is empty."
msgstr "Le patch actuel est vide."
-#: builtin/am.c:1277
+#: builtin/am.c:1262
#, c-format
-msgid "invalid ident line: %.*s"
-msgstr "ligne d'identification invalide : %.*s"
+msgid "missing author line in commit %s"
+msgstr "ligne d'auteur manquante dans le commit %s"
-#: builtin/am.c:1299
+#: builtin/am.c:1265
#, c-format
-msgid "unable to parse commit %s"
-msgstr "impossible d'analyser le commit %s"
+msgid "invalid ident line: %.*s"
+msgstr "ligne d'identification invalide : %.*s"
-#: builtin/am.c:1496
+#: builtin/am.c:1484
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:1498
+#: builtin/am.c:1486
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:1517
+#: builtin/am.c:1505
msgid ""
"Did you hand edit your patch?\n"
"It does not apply to blobs recorded in its index."
@@ -8940,24 +8979,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:1523
+#: builtin/am.c:1511
msgid "Falling back to patching base and 3-way merge..."
msgstr "Retour à un patch de la base et fusion à 3 points..."
-#: builtin/am.c:1549
+#: builtin/am.c:1537
msgid "Failed to merge in the changes."
msgstr "Échec d'intégration des modifications."
-#: builtin/am.c:1581
+#: builtin/am.c:1569
msgid "applying to an empty history"
msgstr "application à un historique vide"
-#: builtin/am.c:1628 builtin/am.c:1632
+#: builtin/am.c:1616 builtin/am.c:1620
#, c-format
msgid "cannot resume: %s does not exist."
msgstr "impossible de continuer : %s n'existe pas."
-#: builtin/am.c:1650
+#: builtin/am.c:1638
msgid "Commit Body is:"
msgstr "Le corps de la validation est :"
@@ -8965,36 +9004,40 @@ msgstr "Le corps de la validation est :"
#. in your translation. The program will only accept English
#. input at this point.
#.
-#: builtin/am.c:1660
+#: builtin/am.c:1648
#, 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:1710
+#: builtin/am.c:1695 builtin/commit.c:374
+msgid "unable to write index file"
+msgstr "impossible d'écrire le fichier d'index"
+
+#: builtin/am.c:1699
#, c-format
msgid "Dirty index: cannot apply patches (dirty: %s)"
msgstr "Index sale : impossible d'appliquer des patchs (sales : %s)"
-#: builtin/am.c:1750 builtin/am.c:1818
+#: builtin/am.c:1739 builtin/am.c:1807
#, c-format
msgid "Applying: %.*s"
msgstr "Application de %.*s"
-#: builtin/am.c:1767
+#: builtin/am.c:1756
msgid "No changes -- Patch already applied."
msgstr "Pas de changement -- Patch déjà appliqué."
-#: builtin/am.c:1773
+#: builtin/am.c:1762
#, c-format
msgid "Patch failed at %s %.*s"
msgstr "le patch a échoué à %s %.*s"
-#: builtin/am.c:1777
+#: builtin/am.c:1766
msgid "Use 'git am --show-current-patch' to see the failed patch"
msgstr ""
"Utilisez 'git am --show-current-patch' pour visualiser le patch en échec"
-#: builtin/am.c:1821
+#: builtin/am.c:1810
msgid ""
"No changes - did you forget to use 'git add'?\n"
"If there is nothing left to stage, chances are that something else\n"
@@ -9005,7 +9048,7 @@ msgstr ""
"introduit les mêmes changements ; vous pourriez avoir envie de sauter ce "
"patch."
-#: builtin/am.c:1828
+#: builtin/am.c:1817
msgid ""
"You still have unmerged paths in your index.\n"
"You should 'git add' each file with resolved conflicts to mark them as "
@@ -9018,17 +9061,17 @@ msgstr ""
"Vous pouvez lancer 'git rm' sur un fichier \"supprimé par eux\" pour "
"accepter son état."
-#: builtin/am.c:1935 builtin/am.c:1939 builtin/am.c:1951 builtin/reset.c:329
+#: builtin/am.c:1924 builtin/am.c:1928 builtin/am.c:1940 builtin/reset.c:329
#: builtin/reset.c:337
#, c-format
msgid "Could not parse object '%s'."
msgstr "Impossible d'analyser l'objet '%s'."
-#: builtin/am.c:1987
+#: builtin/am.c:1976
msgid "failed to clean index"
msgstr "échec du nettoyage de l'index"
-#: builtin/am.c:2031
+#: builtin/am.c:2020
msgid ""
"You seem to have moved HEAD since the last 'am' failure.\n"
"Not rewinding to ORIG_HEAD"
@@ -9036,145 +9079,145 @@ msgstr ""
"Vous semblez avoir déplacé la HEAD depuis le dernier échec de 'am'.\n"
"Pas de retour à ORIG_HEAD"
-#: builtin/am.c:2128
+#: builtin/am.c:2117
#, c-format
msgid "Invalid value for --patch-format: %s"
msgstr "Valeur invalide pour --patch-format : %s"
-#: builtin/am.c:2164
+#: builtin/am.c:2153
msgid "git am [<options>] [(<mbox> | <Maildir>)...]"
msgstr "git am [<options>] [(<mbox> | <Maildir>)...]"
-#: builtin/am.c:2165
+#: builtin/am.c:2154
msgid "git am [<options>] (--continue | --skip | --abort)"
msgstr "git am [<options>] (--continue | --skip | --abort)"
-#: builtin/am.c:2171
+#: builtin/am.c:2160
msgid "run interactively"
msgstr "exécution interactive"
-#: builtin/am.c:2173
+#: builtin/am.c:2162
msgid "historical option -- no-op"
msgstr "option historique -- no-op"
-#: builtin/am.c:2175
+#: builtin/am.c:2164
msgid "allow fall back on 3way merging if needed"
msgstr "permettre de revenir à une fusion à 3 points si nécessaire"
-#: builtin/am.c:2176 builtin/init-db.c:494 builtin/prune-packed.c:58
-#: builtin/repack.c:296 builtin/stash.c:806
+#: builtin/am.c:2165 builtin/init-db.c:494 builtin/prune-packed.c:58
+#: builtin/repack.c:297 builtin/stash.c:812
msgid "be quiet"
msgstr "être silencieux"
-#: builtin/am.c:2178
+#: builtin/am.c:2167
msgid "add a Signed-off-by line to the commit message"
msgstr "ajouter une ligne Signed-off-by au message de validation"
-#: builtin/am.c:2181
+#: builtin/am.c:2170
msgid "recode into utf8 (default)"
msgstr "recoder en utf-8 (par défaut)"
-#: builtin/am.c:2183
+#: builtin/am.c:2172
msgid "pass -k flag to git-mailinfo"
msgstr "passer l'option -k à git-mailinfo"
-#: builtin/am.c:2185
+#: builtin/am.c:2174
msgid "pass -b flag to git-mailinfo"
msgstr "passer l'option -b à git-mailinfo"
-#: builtin/am.c:2187
+#: builtin/am.c:2176
msgid "pass -m flag to git-mailinfo"
msgstr "passer l'option -m à git-mailinfo"
-#: builtin/am.c:2189
+#: builtin/am.c:2178
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:2192
+#: builtin/am.c:2181
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:2195
+#: builtin/am.c:2184
msgid "strip everything before a scissors line"
msgstr "retirer tout le contenu avant la ligne des ciseaux"
-#: builtin/am.c:2197 builtin/am.c:2200 builtin/am.c:2203 builtin/am.c:2206
-#: builtin/am.c:2209 builtin/am.c:2212 builtin/am.c:2215 builtin/am.c:2218
-#: builtin/am.c:2224
+#: builtin/am.c:2186 builtin/am.c:2189 builtin/am.c:2192 builtin/am.c:2195
+#: builtin/am.c:2198 builtin/am.c:2201 builtin/am.c:2204 builtin/am.c:2207
+#: builtin/am.c:2213
msgid "pass it through git-apply"
msgstr "le passer jusqu'à git-apply"
-#: builtin/am.c:2214 builtin/commit.c:1368 builtin/fmt-merge-msg.c:671
-#: builtin/fmt-merge-msg.c:674 builtin/grep.c:881 builtin/merge.c:249
-#: builtin/pull.c:159 builtin/pull.c:218 builtin/rebase.c:1418
-#: builtin/repack.c:307 builtin/repack.c:311 builtin/repack.c:313
+#: builtin/am.c:2203 builtin/commit.c:1368 builtin/fmt-merge-msg.c:671
+#: builtin/fmt-merge-msg.c:674 builtin/grep.c:883 builtin/merge.c:249
+#: builtin/pull.c:160 builtin/pull.c:219 builtin/rebase.c:1442
+#: builtin/repack.c:308 builtin/repack.c:312 builtin/repack.c:314
#: builtin/show-branch.c:650 builtin/show-ref.c:172 builtin/tag.c:403
-#: parse-options.h:141 parse-options.h:162 parse-options.h:312
+#: parse-options.h:150 parse-options.h:171 parse-options.h:312
msgid "n"
msgstr "n"
-#: builtin/am.c:2220 builtin/branch.c:661 builtin/for-each-ref.c:38
-#: builtin/replace.c:554 builtin/tag.c:437 builtin/verify-tag.c:38
+#: builtin/am.c:2209 builtin/branch.c:661 builtin/for-each-ref.c:38
+#: builtin/replace.c:555 builtin/tag.c:437 builtin/verify-tag.c:38
msgid "format"
msgstr "format"
-#: builtin/am.c:2221
+#: builtin/am.c:2210
msgid "format the patch(es) are in"
msgstr "format de présentation des patchs"
-#: builtin/am.c:2227
+#: builtin/am.c:2216
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:2229
+#: builtin/am.c:2218
msgid "continue applying patches after resolving a conflict"
msgstr "continuer à appliquer les patchs après résolution d'un conflit"
-#: builtin/am.c:2232
+#: builtin/am.c:2221
msgid "synonyms for --continue"
msgstr "synonymes de --continue"
-#: builtin/am.c:2235
+#: builtin/am.c:2224
msgid "skip the current patch"
msgstr "sauter le patch courant"
-#: builtin/am.c:2238
+#: builtin/am.c:2227
msgid "restore the original branch and abort the patching operation."
msgstr ""
"restaurer la branche originale et abandonner les applications de patch."
-#: builtin/am.c:2241
+#: builtin/am.c:2230
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:2244
+#: builtin/am.c:2233
msgid "show the patch being applied."
msgstr "afficher le patch en cours d'application."
-#: builtin/am.c:2248
+#: builtin/am.c:2237
msgid "lie about committer date"
msgstr "mentir sur la date de validation"
-#: builtin/am.c:2250
+#: builtin/am.c:2239
msgid "use current timestamp for author date"
msgstr "utiliser l'horodatage actuel pour la date d'auteur"
-#: builtin/am.c:2252 builtin/commit-tree.c:120 builtin/commit.c:1511
-#: builtin/merge.c:286 builtin/pull.c:193 builtin/rebase.c:489
-#: builtin/rebase.c:1459 builtin/revert.c:117 builtin/tag.c:418
+#: builtin/am.c:2241 builtin/commit-tree.c:120 builtin/commit.c:1511
+#: builtin/merge.c:286 builtin/pull.c:194 builtin/rebase.c:490
+#: builtin/rebase.c:1483 builtin/revert.c:117 builtin/tag.c:418
msgid "key-id"
msgstr "id-clé"
-#: builtin/am.c:2253 builtin/rebase.c:490 builtin/rebase.c:1460
+#: builtin/am.c:2242 builtin/rebase.c:491 builtin/rebase.c:1484
msgid "GPG-sign commits"
msgstr "signer les commits avec GPG"
-#: builtin/am.c:2256
+#: builtin/am.c:2245
msgid "(internal use for git-rebase)"
msgstr "(utilisation interne pour git-rebase)"
-#: builtin/am.c:2274
+#: builtin/am.c:2263
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."
@@ -9182,17 +9225,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:2281
+#: builtin/am.c:2270
msgid "failed to read the index"
msgstr "échec à la lecture de l'index"
-#: builtin/am.c:2296
+#: builtin/am.c:2285
#, 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:2320
+#: builtin/am.c:2309
#, c-format
msgid ""
"Stray %s directory found.\n"
@@ -9201,13 +9244,13 @@ msgstr ""
"Répertoire abandonné %s trouvé.\n"
"Utilisez \"git am --abort\" pour le supprimer."
-#: builtin/am.c:2326
+#: builtin/am.c:2315
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:2336
+#: builtin/am.c:2325
msgid "interactive mode requires patches on the command line"
msgstr "le mode interactif requiert des rustines sur la ligne de commande"
@@ -9525,160 +9568,160 @@ msgstr "--bisect-next-check exige 2 ou 3 arguments"
msgid "--bisect-terms requires 0 or 1 argument"
msgstr "--bisect-terms exige 0 ou 1 argument"
-#: builtin/blame.c:32
+#: builtin/blame.c:31
msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>"
msgstr "git blame [<options>] [<rev-opts>] [<rev>] [--] <fichier>"
-#: builtin/blame.c:37
+#: builtin/blame.c:36
msgid "<rev-opts> are documented in git-rev-list(1)"
msgstr "<options-de-révision> sont documentés dans git-rev-list(1)"
-#: builtin/blame.c:410
+#: builtin/blame.c:409
#, c-format
msgid "expecting a color: %s"
msgstr "couleur attendue : %s"
-#: builtin/blame.c:417
+#: builtin/blame.c:416
msgid "must end with a color"
msgstr "doit finir avec une couleur"
-#: builtin/blame.c:730
+#: builtin/blame.c:729
#, c-format
msgid "invalid color '%s' in color.blame.repeatedLines"
msgstr "couleur invalide '%s' dans color.blame.repeatedlines"
-#: builtin/blame.c:748
+#: builtin/blame.c:747
msgid "invalid value for blame.coloring"
msgstr "valeur invalide pour blame.coloring"
-#: builtin/blame.c:823
+#: builtin/blame.c:822
#, c-format
msgid "cannot find revision %s to ignore"
msgstr "référence à ignorer %s introuvable"
-#: builtin/blame.c:845
+#: builtin/blame.c:844
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:846
+#: builtin/blame.c:845
msgid "Show blank SHA-1 for boundary commits (Default: off)"
msgstr "Montrer un SHA-1 blanc pour les commits de limite (Défaut : désactivé)"
-#: builtin/blame.c:847
+#: builtin/blame.c:846
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:848
+#: builtin/blame.c:847
msgid "Show work cost statistics"
msgstr "Montrer les statistiques de coût d'activité"
-#: builtin/blame.c:849
+#: builtin/blame.c:848
msgid "Force progress reporting"
msgstr "Forcer l'affichage de l'état d'avancement"
-#: builtin/blame.c:850
+#: builtin/blame.c:849
msgid "Show output score for blame entries"
msgstr "Montrer le score de sortie pour les éléments de blâme"
-#: builtin/blame.c:851
+#: builtin/blame.c:850
msgid "Show original filename (Default: auto)"
msgstr "Montrer les noms de fichier originaux (Défaut : auto)"
-#: builtin/blame.c:852
+#: builtin/blame.c:851
msgid "Show original linenumber (Default: off)"
msgstr "Montrer les numéros de lignes originaux (Défaut : désactivé)"
-#: builtin/blame.c:853
+#: builtin/blame.c:852
msgid "Show in a format designed for machine consumption"
msgstr "Afficher dans un format propice à la consommation par machine"
-#: builtin/blame.c:854
+#: builtin/blame.c:853
msgid "Show porcelain format with per-line commit information"
msgstr "Afficher en format porcelaine avec l'information de commit par ligne"
-#: builtin/blame.c:855
+#: builtin/blame.c:854
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:856
+#: builtin/blame.c:855
msgid "Show raw timestamp (Default: off)"
msgstr "Afficher les horodatages bruts (Défaut : désactivé)"
-#: builtin/blame.c:857
+#: builtin/blame.c:856
msgid "Show long commit SHA1 (Default: off)"
msgstr "Afficher les longs SHA1 de commits (Défaut : désactivé)"
-#: builtin/blame.c:858
+#: builtin/blame.c:857
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:859
+#: builtin/blame.c:858
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:860
+#: builtin/blame.c:859
msgid "Ignore whitespace differences"
msgstr "Ignorer les différences d'espace"
-#: builtin/blame.c:861 builtin/log.c:1629
+#: builtin/blame.c:860 builtin/log.c:1630
msgid "rev"
msgstr "rév"
-#: builtin/blame.c:861
+#: builtin/blame.c:860
msgid "Ignore <rev> when blaming"
msgstr "ignore <rev> pendant le blâme"
-#: builtin/blame.c:862
+#: builtin/blame.c:861
msgid "Ignore revisions from <file>"
msgstr "ignorer les révisions listées dans <fichier>"
-#: builtin/blame.c:863
+#: builtin/blame.c:862
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:864
+#: builtin/blame.c:863
msgid "color lines by age"
msgstr "colorier les lignes par âge"
-#: builtin/blame.c:871
+#: builtin/blame.c:870
msgid "Use an experimental heuristic to improve diffs"
msgstr "Utiliser une heuristique expérimentale pour améliorer les diffs"
-#: builtin/blame.c:873
+#: builtin/blame.c:872
msgid "Spend extra cycles to find better match"
msgstr ""
"Dépenser des cycles supplémentaires pour trouver une meilleure correspondance"
-#: builtin/blame.c:874
+#: builtin/blame.c:873
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:875
+#: builtin/blame.c:874
msgid "Use <file>'s contents as the final image"
msgstr "Utiliser le contenu de <fichier> comme image finale"
-#: builtin/blame.c:876 builtin/blame.c:877
+#: builtin/blame.c:875 builtin/blame.c:876
msgid "score"
msgstr "score"
-#: builtin/blame.c:876
+#: builtin/blame.c:875
msgid "Find line copies within and across files"
msgstr "Trouver les copies de ligne dans et entre les fichiers"
-#: builtin/blame.c:877
+#: builtin/blame.c:876
msgid "Find line movements within and across files"
msgstr "Trouver les mouvements de ligne dans et entre les fichiers"
-#: builtin/blame.c:878
+#: builtin/blame.c:877
msgid "n,m"
msgstr "n,m"
-#: builtin/blame.c:878
+#: builtin/blame.c:877
msgid "Process only line range n,m, counting from 1"
msgstr ""
"Traiter seulement l'intervalle de ligne n,m en commençant le compte à 1"
@@ -9923,7 +9966,7 @@ msgstr "régler le mode de suivi (voir git-pull(1))"
msgid "do not use"
msgstr "ne pas utiliser"
-#: builtin/branch.c:626 builtin/rebase.c:485
+#: builtin/branch.c:626 builtin/rebase.c:486
msgid "upstream"
msgstr "amont"
@@ -10034,7 +10077,7 @@ msgstr "le tri et le filtrage sont non-sensibles à la casse"
msgid "format to use for the output"
msgstr "format à utiliser pour la sortie"
-#: builtin/branch.c:684 builtin/clone.c:761
+#: builtin/branch.c:684 builtin/clone.c:760
msgid "HEAD not found below refs/heads!"
msgstr "HEAD non trouvée sous refs/heads !"
@@ -10139,7 +10182,7 @@ msgstr "La création d'un colis requiert un dépôt."
msgid "Need a repository to unbundle."
msgstr "Le dépaquetage d'un colis requiert un dépôt."
-#: builtin/cat-file.c:594
+#: builtin/cat-file.c:595
msgid ""
"git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -"
"p | <type> | --textconv | --filters) [--path=<path>] <object>"
@@ -10147,7 +10190,7 @@ msgstr ""
"git cat-file (-t [--allow-unknow-type] | -s [--allow-unknow-type] | -e | -p "
"| <type> | --textconv | --filters) [--path=<chemin>] <objet>"
-#: builtin/cat-file.c:595
+#: builtin/cat-file.c:596
msgid ""
"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --"
"filters]"
@@ -10155,74 +10198,74 @@ msgstr ""
"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --"
"filters]"
-#: builtin/cat-file.c:616
+#: builtin/cat-file.c:617
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:634
+#: builtin/cat-file.c:635
msgid "<type> can be one of: blob, tree, commit, tag"
msgstr "<type> peut être : blob, tree, commit ou tag"
-#: builtin/cat-file.c:635
+#: builtin/cat-file.c:636
msgid "show object type"
msgstr "afficher le type de l'objet"
-#: builtin/cat-file.c:636
+#: builtin/cat-file.c:637
msgid "show object size"
msgstr "afficher la taille de l'objet"
-#: builtin/cat-file.c:638
+#: builtin/cat-file.c:639
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:639
+#: builtin/cat-file.c:640
msgid "pretty-print object's content"
msgstr "afficher avec mise en forme le contenu de l'objet"
-#: builtin/cat-file.c:641
+#: builtin/cat-file.c:642
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:643
+#: builtin/cat-file.c:644
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:644 git-submodule.sh:936
+#: builtin/cat-file.c:645 git-submodule.sh:936
msgid "blob"
msgstr "blob"
-#: builtin/cat-file.c:645
+#: builtin/cat-file.c:646
msgid "use a specific path for --textconv/--filters"
msgstr "utiliser un chemin spécifique pour --textconv/--filters"
-#: builtin/cat-file.c:647
+#: builtin/cat-file.c:648
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:648
+#: builtin/cat-file.c:649
msgid "buffer --batch output"
msgstr "bufferiser la sortie de --batch"
-#: builtin/cat-file.c:650
+#: builtin/cat-file.c:651
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"
-#: builtin/cat-file.c:654
+#: builtin/cat-file.c:655
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:658
+#: builtin/cat-file.c:659
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)"
-#: builtin/cat-file.c:660
+#: builtin/cat-file.c:661
msgid "show all objects with --batch or --batch-check"
msgstr "montrer tous les objets avec --batch ou --batch-check"
-#: builtin/cat-file.c:662
+#: builtin/cat-file.c:663
msgid "do not order --batch-all-objects output"
msgstr "ne pas ordonner la sortie de --batch-all-objects"
@@ -10251,8 +10294,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:1433 builtin/gc.c:538
-#: builtin/worktree.c:507
+#: builtin/check-ignore.c:21 builtin/checkout.c:1433 builtin/gc.c:537
+#: builtin/worktree.c:506
msgid "suppress progress reporting"
msgstr "supprimer l'état d'avancement"
@@ -10346,7 +10389,7 @@ msgstr "écrire le contenu dans des fichiers temporaires"
#: builtin/checkout-index.c:178 builtin/column.c:31
#: builtin/submodule--helper.c:1373 builtin/submodule--helper.c:1376
#: builtin/submodule--helper.c:1384 builtin/submodule--helper.c:1857
-#: builtin/worktree.c:680
+#: builtin/worktree.c:679
msgid "string"
msgstr "chaîne"
@@ -10374,100 +10417,100 @@ msgstr "git switch [<options>] <branche>"
msgid "git restore [<options>] [--source=<branch>] <file>..."
msgstr "git restore [<options>] [--source=<branche>] <fichier>..."
-#: builtin/checkout.c:172 builtin/checkout.c:211
+#: builtin/checkout.c:173 builtin/checkout.c:212
#, c-format
msgid "path '%s' does not have our version"
msgstr "le chemin '%s' n'a pas notre version"
-#: builtin/checkout.c:174 builtin/checkout.c:213
+#: builtin/checkout.c:175 builtin/checkout.c:214
#, c-format
msgid "path '%s' does not have their version"
msgstr "le chemin '%s' n'a pas leur version"
-#: builtin/checkout.c:190
+#: builtin/checkout.c:191
#, 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:240
+#: builtin/checkout.c:241
#, c-format
msgid "path '%s' does not have necessary versions"
msgstr "le chemin '%s' n'a pas les versions nécessaires"
-#: builtin/checkout.c:258
+#: builtin/checkout.c:259
#, c-format
msgid "path '%s': cannot merge"
msgstr "chemin '%s' : impossible de fusionner"
-#: builtin/checkout.c:274
+#: builtin/checkout.c:275
#, c-format
msgid "Unable to add merge result for '%s'"
msgstr "Impossible d'ajouter le résultat de fusion pour '%s'"
-#: builtin/checkout.c:374
+#: builtin/checkout.c:375
#, 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:379
+#: builtin/checkout.c:380
#, 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:386
+#: builtin/checkout.c:387
#, 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:409 builtin/checkout.c:412 builtin/checkout.c:415
-#: builtin/checkout.c:419
+#: builtin/checkout.c:410 builtin/checkout.c:413 builtin/checkout.c:416
+#: builtin/checkout.c:420
#, 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:422 builtin/checkout.c:425
+#: builtin/checkout.c:423 builtin/checkout.c:426
#, c-format
msgid "'%s' cannot be used with %s"
msgstr "'%s' ne peut pas être utilisé avec %s"
-#: builtin/checkout.c:429
+#: builtin/checkout.c:430
#, 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:433
+#: builtin/checkout.c:434
#, c-format
msgid "neither '%s' or '%s' is specified"
msgstr "ni '%s', ni '%s' spécifié"
-#: builtin/checkout.c:437
+#: builtin/checkout.c:438
#, 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:442 builtin/checkout.c:447
+#: builtin/checkout.c:443 builtin/checkout.c:448
#, 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:506 builtin/checkout.c:513
+#: builtin/checkout.c:507 builtin/checkout.c:514
#, c-format
msgid "path '%s' is unmerged"
msgstr "le chemin '%s' n'est pas fusionné"
-#: builtin/checkout.c:679
+#: builtin/checkout.c:680
msgid "you need to resolve your current index first"
msgstr "vous devez d'abord résoudre votre index courant"
-#: builtin/checkout.c:729
+#: builtin/checkout.c:730
#, c-format
msgid ""
"cannot continue with staged changes in the following files:\n"
@@ -10477,12 +10520,6 @@ msgstr ""
"suivants :\n"
"%s"
-#: builtin/checkout.c:736
-#, c-format
-msgid "staged changes in the following files may be lost: %s"
-msgstr ""
-"les modifications indexées dans les fichiers suivants seraient perdues : %s"
-
#: builtin/checkout.c:833
#, c-format
msgid "Can not do reflog for '%s': %s\n"
@@ -10492,7 +10529,7 @@ msgstr "Impossible de faire un reflog pour '%s' : %s\n"
msgid "HEAD is now at"
msgstr "HEAD est maintenant sur"
-#: builtin/checkout.c:879 builtin/clone.c:714
+#: builtin/checkout.c:879 builtin/clone.c:713
msgid "unable to update HEAD"
msgstr "impossible de mettre à jour HEAD"
@@ -10608,7 +10645,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:1243 builtin/worktree.c:291 builtin/worktree.c:456
+#: builtin/checkout.c:1243 builtin/worktree.c:290 builtin/worktree.c:455
#, c-format
msgid "invalid reference: %s"
msgstr "référence invalide : %s"
@@ -10711,9 +10748,9 @@ msgstr "Impossible de basculer de branche vers '%s' qui n'est pas un commit"
msgid "missing branch or commit argument"
msgstr "argument de branche ou de commit manquant"
-#: builtin/checkout.c:1437 builtin/clone.c:91 builtin/fetch.c:151
-#: builtin/merge.c:285 builtin/pull.c:137 builtin/push.c:575
-#: builtin/send-pack.c:174
+#: builtin/checkout.c:1437 builtin/clone.c:90 builtin/commit-graph.c:59
+#: builtin/commit-graph.c:180 builtin/fetch.c:166 builtin/merge.c:285
+#: builtin/pull.c:138 builtin/push.c:562 builtin/send-pack.c:174
msgid "force progress reporting"
msgstr "forcer l'affichage de l'état d'avancement"
@@ -10721,7 +10758,7 @@ msgstr "forcer l'affichage de l'état d'avancement"
msgid "perform a 3-way merge with the new branch"
msgstr "effectuer une fusion à 3 points avec la nouvelle branche"
-#: builtin/checkout.c:1439 builtin/log.c:1617 parse-options.h:318
+#: builtin/checkout.c:1439 builtin/log.c:1618 parse-options.h:318
msgid "style"
msgstr "style"
@@ -10729,7 +10766,7 @@ msgstr "style"
msgid "conflict style (merge or diff3)"
msgstr "style de conflit (merge (fusion) ou diff3)"
-#: builtin/checkout.c:1452 builtin/worktree.c:504
+#: builtin/checkout.c:1452 builtin/worktree.c:503
msgid "detach HEAD at named commit"
msgstr "détacher la HEAD au commit nommé"
@@ -10847,9 +10884,9 @@ msgstr ""
"ambigu, vous pouvez positionner checkout.defaultRemote=origin dans\n"
"votre config."
-#: builtin/checkout.c:1691 builtin/checkout.c:1693 builtin/checkout.c:1733
-#: builtin/checkout.c:1735 builtin/clone.c:121 builtin/remote.c:169
-#: builtin/remote.c:171 builtin/worktree.c:500 builtin/worktree.c:502
+#: builtin/checkout.c:1691 builtin/checkout.c:1693 builtin/checkout.c:1742
+#: builtin/checkout.c:1744 builtin/clone.c:120 builtin/remote.c:169
+#: builtin/remote.c:171 builtin/worktree.c:499 builtin/worktree.c:501
msgid "branch"
msgstr "branche"
@@ -10874,39 +10911,39 @@ msgstr ""
msgid "use overlay mode (default)"
msgstr "utiliser le mode de superposition (défaut)"
-#: builtin/checkout.c:1734
+#: builtin/checkout.c:1743
msgid "create and switch to a new branch"
msgstr "créer et basculer sur une nouvelle branche"
-#: builtin/checkout.c:1736
+#: builtin/checkout.c:1745
msgid "create/reset and switch to a branch"
msgstr "créer/réinitialiser et basculer sur une branche"
-#: builtin/checkout.c:1738
+#: builtin/checkout.c:1747
msgid "second guess 'git switch <no-such-branch>'"
msgstr "interpréter 'git switch <branche-inexistante>'"
-#: builtin/checkout.c:1740
+#: builtin/checkout.c:1749
msgid "throw away local modifications"
msgstr "laisser tomber les modifications locales"
-#: builtin/checkout.c:1772
+#: builtin/checkout.c:1781
msgid "which tree-ish to checkout from"
msgstr "de quel <arbre-esque> faire l'extraction"
-#: builtin/checkout.c:1774
+#: builtin/checkout.c:1783
msgid "restore the index"
msgstr "restaurer l'index"
-#: builtin/checkout.c:1776
+#: builtin/checkout.c:1785
msgid "restore the working tree (default)"
msgstr "restaurer l'arbre de travail (par défaut)"
-#: builtin/checkout.c:1778
+#: builtin/checkout.c:1787
msgid "ignore unmerged entries"
msgstr "ignorer les entrées non-fusionnées"
-#: builtin/checkout.c:1779
+#: builtin/checkout.c:1788
msgid "use overlay mode"
msgstr "utiliser le mode de superposition"
@@ -10946,7 +10983,7 @@ msgstr "échec de la suppression de %s"
msgid "could not lstat %s\n"
msgstr "lstat de %s impossible\n"
-#: builtin/clean.c:300 git-add--interactive.perl:593
+#: builtin/clean.c:301 git-add--interactive.perl:593
#, c-format
msgid ""
"Prompt help:\n"
@@ -10959,7 +10996,7 @@ msgstr ""
"foo - sélectionner un élément par un préfixe unique\n"
" - (vide) ne rien sélectionner\n"
-#: builtin/clean.c:304 git-add--interactive.perl:602
+#: builtin/clean.c:305 git-add--interactive.perl:602
#, c-format
msgid ""
"Prompt help:\n"
@@ -10980,38 +11017,38 @@ msgstr ""
"* - choisir tous les éléments\n"
" - (vide) terminer la sélection\n"
-#: builtin/clean.c:520 git-add--interactive.perl:568
+#: builtin/clean.c:521 git-add--interactive.perl:568
#: git-add--interactive.perl:573
#, c-format, perl-format
msgid "Huh (%s)?\n"
msgstr "Hein (%s) ?\n"
-#: builtin/clean.c:662
+#: builtin/clean.c:663
#, c-format
msgid "Input ignore patterns>> "
msgstr "Entrez les motifs à ignorer>> "
-#: builtin/clean.c:699
+#: builtin/clean.c:700
#, c-format
msgid "WARNING: Cannot find items matched by: %s"
msgstr "ATTENTION : Impossible de trouver les éléments correspondant à : %s"
-#: builtin/clean.c:720
+#: builtin/clean.c:721
msgid "Select items to delete"
msgstr "Sélectionner les éléments à supprimer"
#. TRANSLATORS: Make sure to keep [y/N] as is
-#: builtin/clean.c:761
+#: builtin/clean.c:762
#, c-format
msgid "Remove %s [y/N]? "
msgstr "Supprimer %s [y/N] ? "
-#: builtin/clean.c:786 git-add--interactive.perl:1763
+#: builtin/clean.c:787 git-add--interactive.perl:1763
#, c-format
msgid "Bye.\n"
msgstr "Au revoir.\n"
-#: builtin/clean.c:794
+#: builtin/clean.c:795
msgid ""
"clean - start cleaning\n"
"filter by pattern - exclude items from deletion\n"
@@ -11029,64 +11066,64 @@ msgstr ""
"help - cet écran\n"
"? - aide pour la sélection en ligne"
-#: builtin/clean.c:821 git-add--interactive.perl:1849
+#: builtin/clean.c:822 git-add--interactive.perl:1849
msgid "*** Commands ***"
msgstr "*** Commandes ***"
-#: builtin/clean.c:822 git-add--interactive.perl:1846
+#: builtin/clean.c:823 git-add--interactive.perl:1846
msgid "What now"
msgstr "Et maintenant ?"
-#: builtin/clean.c:830
+#: builtin/clean.c:831
msgid "Would remove the following item:"
msgid_plural "Would remove the following items:"
msgstr[0] "Supprimerait l'élément suivant :"
msgstr[1] "Supprimerait les éléments suivants :"
-#: builtin/clean.c:846
+#: builtin/clean.c:847
msgid "No more files to clean, exiting."
msgstr "Plus de fichier à nettoyer, sortie."
-#: builtin/clean.c:908
+#: builtin/clean.c:909
msgid "do not print names of files removed"
msgstr "ne pas afficher les noms des fichiers supprimés"
-#: builtin/clean.c:910
+#: builtin/clean.c:911
msgid "force"
msgstr "forcer"
-#: builtin/clean.c:911
+#: builtin/clean.c:912
msgid "interactive cleaning"
msgstr "nettoyage interactif"
-#: builtin/clean.c:913
+#: builtin/clean.c:914
msgid "remove whole directories"
msgstr "supprimer les répertoires entiers"
-#: builtin/clean.c:914 builtin/describe.c:546 builtin/describe.c:548
-#: builtin/grep.c:899 builtin/log.c:176 builtin/log.c:178
-#: builtin/ls-files.c:557 builtin/name-rev.c:413 builtin/name-rev.c:415
+#: builtin/clean.c:915 builtin/describe.c:548 builtin/describe.c:550
+#: builtin/grep.c:901 builtin/log.c:176 builtin/log.c:178
+#: builtin/ls-files.c:557 builtin/name-rev.c:417 builtin/name-rev.c:419
#: builtin/show-ref.c:179
msgid "pattern"
msgstr "motif"
-#: builtin/clean.c:915
+#: builtin/clean.c:916
msgid "add <pattern> to ignore rules"
msgstr "ajouter <motif> aux règles ignore"
-#: builtin/clean.c:916
+#: builtin/clean.c:917
msgid "remove ignored files, too"
msgstr "supprimer les fichiers ignorés, aussi"
-#: builtin/clean.c:918
+#: builtin/clean.c:919
msgid "remove only ignored files"
msgstr "supprimer seulement les fichiers ignorés"
-#: builtin/clean.c:936
+#: builtin/clean.c:937
msgid "-x and -X cannot be used together"
msgstr "-x et -X ne peuvent pas être utilisés ensemble"
-#: builtin/clean.c:940
+#: builtin/clean.c:941
msgid ""
"clean.requireForce set to true and neither -i, -n, nor -f given; refusing to "
"clean"
@@ -11094,7 +11131,7 @@ msgstr ""
"clean.requireForce positionné à true et ni -i, -n ou -f fourni ; refus de "
"nettoyer"
-#: builtin/clean.c:943
+#: builtin/clean.c:944
msgid ""
"clean.requireForce defaults to true and neither -i, -n, nor -f given; "
"refusing to clean"
@@ -11102,164 +11139,164 @@ msgstr ""
"clean.requireForce à true par défaut et ni -i, -n ou -f fourni ; refus de "
"nettoyer"
-#: builtin/clone.c:46
+#: builtin/clone.c:45
msgid "git clone [<options>] [--] <repo> [<dir>]"
msgstr "git clone [<options>] [--] <dépôt> [<répertoire>]"
-#: builtin/clone.c:93
+#: builtin/clone.c:92
msgid "don't create a checkout"
msgstr "ne pas créer d'extraction"
-#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:489
+#: builtin/clone.c:93 builtin/clone.c:95 builtin/init-db.c:489
msgid "create a bare repository"
msgstr "créer un dépôt nu"
-#: builtin/clone.c:98
+#: builtin/clone.c:97
msgid "create a mirror repository (implies bare)"
msgstr "créer un dépôt miroir (implique dépôt nu)"
-#: builtin/clone.c:100
+#: builtin/clone.c:99
msgid "to clone from a local repository"
msgstr "pour cloner depuis un dépôt local"
-#: builtin/clone.c:102
+#: builtin/clone.c:101
msgid "don't use local hardlinks, always copy"
msgstr "ne pas utiliser de liens durs locaux, toujours copier"
-#: builtin/clone.c:104
+#: builtin/clone.c:103
msgid "setup as shared repository"
msgstr "régler comme dépôt partagé"
-#: builtin/clone.c:107
+#: builtin/clone.c:106
msgid "pathspec"
msgstr "spécificateur de chemin"
-#: builtin/clone.c:107
+#: builtin/clone.c:106
msgid "initialize submodules in the clone"
msgstr "initialiser les sous-modules dans le clone"
-#: builtin/clone.c:110
+#: builtin/clone.c:109
msgid "number of submodules cloned in parallel"
msgstr "nombre de sous-modules clonés en parallèle"
-#: builtin/clone.c:111 builtin/init-db.c:486
+#: builtin/clone.c:110 builtin/init-db.c:486
msgid "template-directory"
msgstr "répertoire-modèle"
-#: builtin/clone.c:112 builtin/init-db.c:487
+#: builtin/clone.c:111 builtin/init-db.c:487
msgid "directory from which templates will be used"
msgstr "répertoire depuis lequel les modèles vont être utilisés"
-#: builtin/clone.c:114 builtin/clone.c:116 builtin/submodule--helper.c:1380
+#: builtin/clone.c:113 builtin/clone.c:115 builtin/submodule--helper.c:1380
#: builtin/submodule--helper.c:1860
msgid "reference repository"
msgstr "dépôt de référence"
-#: builtin/clone.c:118 builtin/submodule--helper.c:1382
+#: builtin/clone.c:117 builtin/submodule--helper.c:1382
#: builtin/submodule--helper.c:1862
msgid "use --reference only while cloning"
msgstr "utiliser seulement --reference pour cloner"
-#: builtin/clone.c:119 builtin/column.c:27 builtin/merge-file.c:46
-#: builtin/pack-objects.c:3314 builtin/repack.c:319
+#: builtin/clone.c:118 builtin/column.c:27 builtin/merge-file.c:46
+#: builtin/pack-objects.c:3294 builtin/repack.c:320
msgid "name"
msgstr "nom"
-#: builtin/clone.c:120
+#: builtin/clone.c:119
msgid "use <name> instead of 'origin' to track upstream"
msgstr "utiliser <nom> au lieu de 'origin' pour suivre la branche amont"
-#: builtin/clone.c:122
+#: builtin/clone.c:121
msgid "checkout <branch> instead of the remote's HEAD"
msgstr "extraire <branche> au lieu de la HEAD du répertoire distant"
-#: builtin/clone.c:124
+#: builtin/clone.c:123
msgid "path to git-upload-pack on the remote"
msgstr "chemin vers git-upload-pack sur le serveur distant"
-#: builtin/clone.c:125 builtin/fetch.c:152 builtin/grep.c:838
-#: builtin/pull.c:226
+#: builtin/clone.c:124 builtin/fetch.c:167 builtin/grep.c:840
+#: builtin/pull.c:227
msgid "depth"
msgstr "profondeur"
-#: builtin/clone.c:126
+#: builtin/clone.c:125
msgid "create a shallow clone of that depth"
msgstr "créer un clone superficiel de cette profondeur"
-#: builtin/clone.c:127 builtin/fetch.c:154 builtin/pack-objects.c:3303
+#: builtin/clone.c:126 builtin/fetch.c:169 builtin/pack-objects.c:3283
msgid "time"
msgstr "heure"
-#: builtin/clone.c:128
+#: builtin/clone.c:127
msgid "create a shallow clone since a specific time"
msgstr "créer un clone superficiel depuis une date spécifique"
-#: builtin/clone.c:129 builtin/fetch.c:156 builtin/fetch.c:179
-#: builtin/rebase.c:1395
+#: builtin/clone.c:128 builtin/fetch.c:171 builtin/fetch.c:194
+#: builtin/rebase.c:1417
msgid "revision"
msgstr "révision"
-#: builtin/clone.c:130 builtin/fetch.c:157
+#: builtin/clone.c:129 builtin/fetch.c:172
msgid "deepen history of shallow clone, excluding rev"
msgstr ""
"approfondir l'historique d'un clone superficiel en excluant une révision"
-#: builtin/clone.c:132
+#: builtin/clone.c:131
msgid "clone only one branch, HEAD or --branch"
msgstr "cloner seulement une branche, HEAD ou --branch"
-#: builtin/clone.c:134
+#: builtin/clone.c:133
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:136
+#: builtin/clone.c:135
msgid "any cloned submodules will be shallow"
msgstr "tous les sous-modules clonés seront superficiels"
-#: builtin/clone.c:137 builtin/init-db.c:495
+#: builtin/clone.c:136 builtin/init-db.c:495
msgid "gitdir"
msgstr "gitdir"
-#: builtin/clone.c:138 builtin/init-db.c:496
+#: builtin/clone.c:137 builtin/init-db.c:496
msgid "separate git dir from working tree"
msgstr "séparer le répertoire git de la copie de travail"
-#: builtin/clone.c:139
+#: builtin/clone.c:138
msgid "key=value"
msgstr "clé=valeur"
-#: builtin/clone.c:140
+#: builtin/clone.c:139
msgid "set config inside the new repository"
msgstr "régler la configuration dans le nouveau dépôt"
-#: builtin/clone.c:142 builtin/fetch.c:174 builtin/ls-remote.c:76
-#: builtin/push.c:585 builtin/send-pack.c:172
+#: builtin/clone.c:141 builtin/fetch.c:189 builtin/ls-remote.c:76
+#: builtin/push.c:572 builtin/send-pack.c:172
msgid "server-specific"
msgstr "spécifique au serveur"
-#: builtin/clone.c:142 builtin/fetch.c:174 builtin/ls-remote.c:76
-#: builtin/push.c:585 builtin/send-pack.c:173
+#: builtin/clone.c:141 builtin/fetch.c:189 builtin/ls-remote.c:76
+#: builtin/push.c:572 builtin/send-pack.c:173
msgid "option to transmit"
msgstr "option à transmettre"
-#: builtin/clone.c:143 builtin/fetch.c:175 builtin/pull.c:239
-#: builtin/push.c:586
+#: builtin/clone.c:142 builtin/fetch.c:190 builtin/pull.c:240
+#: builtin/push.c:573
msgid "use IPv4 addresses only"
msgstr "n'utiliser que des adresses IPv4"
-#: builtin/clone.c:145 builtin/fetch.c:177 builtin/pull.c:242
-#: builtin/push.c:588
+#: builtin/clone.c:144 builtin/fetch.c:192 builtin/pull.c:243
+#: builtin/push.c:575
msgid "use IPv6 addresses only"
msgstr "n'utiliser que des adresses IPv6"
-#: builtin/clone.c:149
+#: builtin/clone.c:148
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:285
+#: builtin/clone.c:284
msgid ""
"No directory name could be guessed.\n"
"Please specify a directory on the command line"
@@ -11267,47 +11304,42 @@ msgstr ""
"Aucun nom de répertoire n'a pu être deviné\n"
"Veuillez spécifier un répertoire dans la ligne de commande"
-#: builtin/clone.c:338
+#: builtin/clone.c:337
#, 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:411
+#: builtin/clone.c:410
#, c-format
msgid "%s exists and is not a directory"
msgstr "%s existe et n'est pas un répertoire"
-#: builtin/clone.c:428
+#: builtin/clone.c:427
#, c-format
msgid "failed to start iterator over '%s'"
msgstr "échec du démarrage un itérateur sur '%s'"
-#: builtin/clone.c:453
-#, c-format
-msgid "failed to unlink '%s'"
-msgstr "échec pour délier '%s'"
-
-#: builtin/clone.c:458
+#: builtin/clone.c:457
#, c-format
msgid "failed to create link '%s'"
msgstr "échec de la création du lien '%s'"
-#: builtin/clone.c:462
+#: builtin/clone.c:461
#, c-format
msgid "failed to copy file to '%s'"
msgstr "échec de la copie vers '%s'"
-#: builtin/clone.c:467
+#: builtin/clone.c:466
#, c-format
msgid "failed to iterate over '%s'"
msgstr "échec de l'itération sur '%s'"
-#: builtin/clone.c:492
+#: builtin/clone.c:491
#, c-format
msgid "done.\n"
msgstr "fait.\n"
-#: builtin/clone.c:506
+#: builtin/clone.c:505
msgid ""
"Clone succeeded, but checkout failed.\n"
"You can inspect what was checked out with 'git status'\n"
@@ -11317,98 +11349,98 @@ 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:583
+#: builtin/clone.c:582
#, c-format
msgid "Could not find remote branch %s to clone."
msgstr "Impossible de trouver la branche distante '%s' à cloner."
-#: builtin/clone.c:702
+#: builtin/clone.c:701
#, c-format
msgid "unable to update %s"
msgstr "impossible de mettre à jour %s"
-#: builtin/clone.c:752
+#: builtin/clone.c:751
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:783
+#: builtin/clone.c:782
msgid "unable to checkout working tree"
msgstr "impossible d'extraire la copie de travail"
-#: builtin/clone.c:833
+#: builtin/clone.c:832
msgid "unable to write parameters to config file"
msgstr "impossible d'écrire les paramètres dans le fichier de configuration"
-#: builtin/clone.c:896
+#: builtin/clone.c:895
msgid "cannot repack to clean up"
msgstr "impossible de remballer pour nettoyer"
-#: builtin/clone.c:898
+#: builtin/clone.c:897
msgid "cannot unlink temporary alternates file"
msgstr "impossible de délier le fichier temporaire alternates"
-#: builtin/clone.c:938 builtin/receive-pack.c:1950
+#: builtin/clone.c:937 builtin/receive-pack.c:1948
msgid "Too many arguments."
msgstr "Trop d'arguments."
-#: builtin/clone.c:942
+#: builtin/clone.c:941
msgid "You must specify a repository to clone."
msgstr "Vous devez spécifier un dépôt à cloner."
-#: builtin/clone.c:955
+#: builtin/clone.c:954
#, c-format
msgid "--bare and --origin %s options are incompatible."
msgstr "les options --bare et --origin %s sont incompatibles."
-#: builtin/clone.c:958
+#: builtin/clone.c:957
msgid "--bare and --separate-git-dir are incompatible."
msgstr "--bare et --separate-git-dir sont incompatibles."
-#: builtin/clone.c:971
+#: builtin/clone.c:970
#, c-format
msgid "repository '%s' does not exist"
msgstr "le dépôt '%s' n'existe pas"
-#: builtin/clone.c:977 builtin/fetch.c:1660
+#: builtin/clone.c:976 builtin/fetch.c:1790
#, c-format
msgid "depth %s is not a positive number"
msgstr "la profondeur %s n'est pas un entier positif"
-#: builtin/clone.c:987
+#: builtin/clone.c:986
#, 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:997
+#: builtin/clone.c:996
#, c-format
msgid "working tree '%s' already exists."
msgstr "la copie de travail '%s' existe déjà."
-#: builtin/clone.c:1012 builtin/clone.c:1033 builtin/difftool.c:264
-#: builtin/worktree.c:303 builtin/worktree.c:335
+#: builtin/clone.c:1011 builtin/clone.c:1032 builtin/difftool.c:271
+#: builtin/log.c:1785 builtin/worktree.c:302 builtin/worktree.c:334
#, 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:1017
+#: builtin/clone.c:1016
#, 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:1037
+#: builtin/clone.c:1036
#, c-format
msgid "Cloning into bare repository '%s'...\n"
msgstr "Clonage dans le dépôt nu '%s'\n"
-#: builtin/clone.c:1039
+#: builtin/clone.c:1038
#, c-format
msgid "Cloning into '%s'...\n"
msgstr "Clonage dans '%s'...\n"
-#: builtin/clone.c:1063
+#: builtin/clone.c:1062
msgid ""
"clone --recursive is not compatible with both --reference and --reference-if-"
"able"
@@ -11416,41 +11448,41 @@ msgstr ""
"clone --recursive n'est pas compatible avec à la fois --reference et --"
"reference-if-able"
-#: builtin/clone.c:1124
+#: builtin/clone.c:1123
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:1126
+#: builtin/clone.c:1125
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:1128
+#: builtin/clone.c:1127
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:1130
+#: builtin/clone.c:1129
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:1133
+#: builtin/clone.c:1132
msgid "source repository is shallow, ignoring --local"
msgstr "le dépôt source est superficiel, option --local ignorée"
-#: builtin/clone.c:1138
+#: builtin/clone.c:1137
msgid "--local is ignored"
msgstr "--local est ignoré"
-#: builtin/clone.c:1215 builtin/clone.c:1223
+#: builtin/clone.c:1212 builtin/clone.c:1220
#, 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:1226
+#: builtin/clone.c:1223
msgid "You appear to have cloned an empty repository."
msgstr "Vous semblez avoir cloné un dépôt vide."
@@ -11528,7 +11560,7 @@ msgid "id of a parent commit object"
msgstr "id d'un objet commit parent"
#: builtin/commit-tree.c:114 builtin/commit.c:1500 builtin/merge.c:270
-#: builtin/notes.c:409 builtin/notes.c:575 builtin/stash.c:1460
+#: builtin/notes.c:409 builtin/notes.c:575 builtin/stash.c:1469
#: builtin/tag.c:412
msgid "message"
msgstr "message"
@@ -11542,7 +11574,7 @@ msgid "read commit log message from file"
msgstr "lire le message de validation depuis un fichier"
#: builtin/commit-tree.c:121 builtin/commit.c:1512 builtin/merge.c:287
-#: builtin/pull.c:194 builtin/revert.c:118
+#: builtin/pull.c:195 builtin/revert.c:118
msgid "GPG sign commit"
msgstr "signer la validation avec GPG"
@@ -11874,8 +11906,8 @@ msgstr "calcule les valeurs complètes en avance/en retard"
msgid "version"
msgstr "version"
-#: builtin/commit.c:1347 builtin/commit.c:1529 builtin/push.c:561
-#: builtin/worktree.c:651
+#: builtin/commit.c:1347 builtin/commit.c:1529 builtin/push.c:548
+#: builtin/worktree.c:650
msgid "machine-readable output"
msgstr "sortie pour traitement automatique"
@@ -11888,8 +11920,8 @@ msgid "terminate entries with NUL"
msgstr "terminer les éléments par NUL"
#: builtin/commit.c:1355 builtin/commit.c:1359 builtin/commit.c:1537
-#: builtin/fast-export.c:1125 builtin/fast-export.c:1128
-#: builtin/fast-export.c:1131 builtin/rebase.c:1471 parse-options.h:332
+#: builtin/fast-export.c:1153 builtin/fast-export.c:1156
+#: builtin/fast-export.c:1159 builtin/rebase.c:1495 parse-options.h:332
msgid "mode"
msgstr "mode"
@@ -11907,7 +11939,7 @@ msgstr ""
"afficher les fichiers ignorés, \"mode\" facultatif : traditional "
"(traditionnel), matching (correspondant), no. (Défaut : traditional)"
-#: builtin/commit.c:1362 parse-options.h:179
+#: builtin/commit.c:1362 parse-options.h:188
msgid "when"
msgstr "quand"
@@ -11962,7 +11994,7 @@ msgstr "auteur"
msgid "override author for commit"
msgstr "remplacer l'auteur pour la validation"
-#: builtin/commit.c:1499 builtin/gc.c:539
+#: builtin/commit.c:1499 builtin/gc.c:538
msgid "date"
msgstr "date"
@@ -11998,8 +12030,8 @@ 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:1506 builtin/log.c:1564 builtin/merge.c:289
-#: builtin/pull.c:163 builtin/revert.c:110
+#: builtin/commit.c:1506 builtin/log.c:1565 builtin/merge.c:289
+#: builtin/pull.c:164 builtin/revert.c:110
msgid "add Signed-off-by:"
msgstr "ajouter une entrée Signed-off-by :"
@@ -12106,69 +12138,72 @@ msgid "git commit-graph read [--object-dir <objdir>]"
msgstr "git commit-graph read [--object-dir <objdir>]"
#: builtin/commit-graph.c:13 builtin/commit-graph.c:19
-msgid "git commit-graph verify [--object-dir <objdir>] [--shallow]"
-msgstr "git commit-graph verify [--object-dir <objdir>] [--shallow]"
+msgid ""
+"git commit-graph verify [--object-dir <objdir>] [--shallow] [--[no-]progress]"
+msgstr ""
+"git commit-graph verify [--object-dir <objdir>] [--shallow] [--[no-]progress]"
#: builtin/commit-graph.c:14 builtin/commit-graph.c:29
msgid ""
"git commit-graph write [--object-dir <objdir>] [--append|--split] [--"
-"reachable|--stdin-packs|--stdin-commits] <split options>"
+"reachable|--stdin-packs|--stdin-commits] [--[no-]progress] <split options>"
msgstr ""
-"git commit-graph write [--object-dir <objdir>] [--append|--split] [--"
-"reachable|--stdin-packs|--stdin-commits] <options de division>"
+"git commit-graph write [--object-dir <répertoire-d'objet>] [--append|--"
+"split] [--reachable|--stdin-packs|--stdin-commits] [--|no-]progress] "
+"<options de division>"
-#: builtin/commit-graph.c:54 builtin/commit-graph.c:100
-#: builtin/commit-graph.c:161 builtin/commit-graph.c:237 builtin/fetch.c:163
-#: builtin/log.c:1584
+#: builtin/commit-graph.c:55 builtin/commit-graph.c:107
+#: builtin/commit-graph.c:170 builtin/commit-graph.c:254 builtin/fetch.c:178
+#: builtin/log.c:1585
msgid "dir"
msgstr "répertoire"
-#: builtin/commit-graph.c:55 builtin/commit-graph.c:101
-#: builtin/commit-graph.c:162 builtin/commit-graph.c:238
+#: builtin/commit-graph.c:56 builtin/commit-graph.c:108
+#: builtin/commit-graph.c:171 builtin/commit-graph.c:255
msgid "The object directory to store the graph"
msgstr "Le répertoire d'objet où stocker le graphe"
-#: builtin/commit-graph.c:57
+#: builtin/commit-graph.c:58
msgid "if the commit-graph is split, only verify the tip file"
msgstr ""
"si le graphe de commit est divisé, vérifier seulement le fichier sommet"
-#: builtin/commit-graph.c:73 builtin/commit-graph.c:116
+#: builtin/commit-graph.c:80 builtin/commit-graph.c:125
#, c-format
msgid "Could not open commit-graph '%s'"
msgstr "impossible d'ouvrir le graphe de commit '%s'"
-#: builtin/commit-graph.c:164
+#: builtin/commit-graph.c:173
msgid "start walk at all refs"
msgstr "commencer le parcours à toutes les réfs"
-#: builtin/commit-graph.c:166
+#: builtin/commit-graph.c:175
msgid "scan pack-indexes listed by stdin for commits"
msgstr "scanner les index compactés listés sur stdin à la recherche de commits"
-#: builtin/commit-graph.c:168
+#: builtin/commit-graph.c:177
msgid "start walk at commits listed by stdin"
msgstr "commencer le parcours aux commits listés sur stdin"
-#: builtin/commit-graph.c:170
+#: builtin/commit-graph.c:179
msgid "include all commits already in the commit-graph file"
msgstr ""
"inclure tous les commits déjà présents dans le fichier de graphe de commits"
-#: builtin/commit-graph.c:172
+#: builtin/commit-graph.c:182
msgid "allow writing an incremental commit-graph file"
msgstr "permettre d'écrire un fichier incrémental de graphe de commit"
-#: builtin/commit-graph.c:174 builtin/commit-graph.c:178
+#: builtin/commit-graph.c:184 builtin/commit-graph.c:188
msgid "maximum number of commits in a non-base split commit-graph"
msgstr ""
"le nombre maximum de commits dans un graphe de commit divisé pas de base"
-#: builtin/commit-graph.c:176
+#: builtin/commit-graph.c:186
msgid "maximum ratio between two levels of a split commit-graph"
msgstr "rapport maximum entre deux niveaux d'un graphe de commit divisé"
-#: builtin/commit-graph.c:191
+#: builtin/commit-graph.c:204
msgid "use at most one of --reachable, --stdin-commits, or --stdin-packs"
msgstr "utilisez un seul parmi --reachable, --stdin-commits ou --stdin-packs"
@@ -12487,59 +12522,59 @@ msgstr "git count-objects [-v] [-H | --human-readable]"
msgid "print sizes in human readable format"
msgstr "affiche les tailles dans un format humainement lisible"
-#: builtin/describe.c:27
+#: builtin/describe.c:26
msgid "git describe [<options>] [<commit-ish>...]"
msgstr "git describe [<options>] <commit ou apparenté>*"
-#: builtin/describe.c:28
+#: builtin/describe.c:27
msgid "git describe [<options>] --dirty"
msgstr "git describe [<options>] --dirty"
-#: builtin/describe.c:63
+#: builtin/describe.c:62
msgid "head"
msgstr "tête"
-#: builtin/describe.c:63
+#: builtin/describe.c:62
msgid "lightweight"
msgstr "léger"
-#: builtin/describe.c:63
+#: builtin/describe.c:62
msgid "annotated"
msgstr "annoté"
-#: builtin/describe.c:273
+#: builtin/describe.c:275
#, c-format
msgid "annotated tag %s not available"
msgstr "l'étiquette annotée %s n'est pas disponible"
-#: builtin/describe.c:277
+#: builtin/describe.c:279
#, c-format
msgid "annotated tag %s has no embedded name"
msgstr "l'étiquette annotée %s n'a pas de nom embarqué"
-#: builtin/describe.c:279
+#: builtin/describe.c:281
#, c-format
msgid "tag '%s' is really '%s' here"
msgstr "l'étiquette '%s' est en fait '%s'"
-#: builtin/describe.c:323
+#: builtin/describe.c:325
#, c-format
msgid "no tag exactly matches '%s'"
msgstr "aucune étiquette ne correspond parfaitement à '%s'"
-#: builtin/describe.c:325
+#: builtin/describe.c:327
#, c-format
msgid "No exact match on refs or tags, searching to describe\n"
msgstr ""
"Pas de correspondance exacte sur des réfs ou des étiquettes, recherche par "
"describe\n"
-#: builtin/describe.c:379
+#: builtin/describe.c:381
#, c-format
msgid "finished search at %s\n"
msgstr "recherche terminée à %s\n"
-#: builtin/describe.c:405
+#: builtin/describe.c:407
#, c-format
msgid ""
"No annotated tags can describe '%s'.\n"
@@ -12548,7 +12583,7 @@ msgstr ""
"Aucune étiquette annotée ne peut décrire '%s'.\n"
"Cependant, il existe des étiquettes non-annotées : essayez avec --tags."
-#: builtin/describe.c:409
+#: builtin/describe.c:411
#, c-format
msgid ""
"No tags can describe '%s'.\n"
@@ -12557,12 +12592,12 @@ msgstr ""
"Aucune étiquette ne peut décrire '%s'.\n"
"Essayez --always, ou créez des étiquettes."
-#: builtin/describe.c:439
+#: builtin/describe.c:441
#, c-format
msgid "traversed %lu commits\n"
msgstr "%lu commits parcourus\n"
-#: builtin/describe.c:442
+#: builtin/describe.c:444
#, c-format
msgid ""
"more than %i tags found; listed %i most recent\n"
@@ -12572,92 +12607,92 @@ msgstr ""
"affichées\n"
"abandon de la recherche à %s\n"
-#: builtin/describe.c:510
+#: builtin/describe.c:512
#, c-format
msgid "describe %s\n"
msgstr "décrire %s\n"
-#: builtin/describe.c:513
+#: builtin/describe.c:515
#, c-format
msgid "Not a valid object name %s"
msgstr "%s n'est pas un nom d'objet valide"
-#: builtin/describe.c:521
+#: builtin/describe.c:523
#, c-format
msgid "%s is neither a commit nor blob"
msgstr "%s n'est ni un commit ni un blob"
-#: builtin/describe.c:535
+#: builtin/describe.c:537
msgid "find the tag that comes after the commit"
msgstr "rechercher l'étiquette qui suit le commit"
-#: builtin/describe.c:536
+#: builtin/describe.c:538
msgid "debug search strategy on stderr"
msgstr "déboguer la stratégie de recherche sur stderr"
-#: builtin/describe.c:537
+#: builtin/describe.c:539
msgid "use any ref"
msgstr "utiliser n'importe quelle référence"
-#: builtin/describe.c:538
+#: builtin/describe.c:540
msgid "use any tag, even unannotated"
msgstr "utiliser n'importe quelle étiquette, même non-annotée"
-#: builtin/describe.c:539
+#: builtin/describe.c:541
msgid "always use long format"
msgstr "toujours utiliser le format long"
-#: builtin/describe.c:540
+#: builtin/describe.c:542
msgid "only follow first parent"
msgstr "ne suivre que le premier parent"
-#: builtin/describe.c:543
+#: builtin/describe.c:545
msgid "only output exact matches"
msgstr "n'afficher que les correspondances exactes"
-#: builtin/describe.c:545
+#: builtin/describe.c:547
msgid "consider <n> most recent tags (default: 10)"
msgstr ""
"considérer uniquement les <n> étiquettes le plus récentes (défaut : 10)"
-#: builtin/describe.c:547
+#: builtin/describe.c:549
msgid "only consider tags matching <pattern>"
msgstr "ne considérer que les étiquettes correspondant à <motif>"
-#: builtin/describe.c:549
+#: builtin/describe.c:551
msgid "do not consider tags matching <pattern>"
msgstr "ne pas considérer les étiquettes correspondant à <motif>"
-#: builtin/describe.c:551 builtin/name-rev.c:422
+#: builtin/describe.c:553 builtin/name-rev.c:426
msgid "show abbreviated commit object as fallback"
msgstr "afficher les objets commits abrégés en dernier recours"
-#: builtin/describe.c:552 builtin/describe.c:555
+#: builtin/describe.c:554 builtin/describe.c:557
msgid "mark"
msgstr "marque"
-#: builtin/describe.c:553
+#: builtin/describe.c:555
msgid "append <mark> on dirty working tree (default: \"-dirty\")"
msgstr "ajouter <marque> si la copie de travail est sale (défaut : \"-dirty\")"
-#: builtin/describe.c:556
+#: builtin/describe.c:558
msgid "append <mark> on broken working tree (default: \"-broken\")"
msgstr ""
"ajouter <marque> si la copie de travail est cassée (défaut : \"-broken\")"
-#: builtin/describe.c:574
+#: builtin/describe.c:576
msgid "--long is incompatible with --abbrev=0"
msgstr "--long et --abbrev=0 sont incompatibles"
-#: builtin/describe.c:603
+#: builtin/describe.c:605
msgid "No names found, cannot describe anything."
msgstr "aucun nom trouvé, impossible de décrire quoi que ce soit."
-#: builtin/describe.c:654
+#: builtin/describe.c:656
msgid "--dirty is incompatible with commit-ishes"
msgstr "--dirty est incompatible avec la spécification de commits ou assimilés"
-#: builtin/describe.c:656
+#: builtin/describe.c:658
msgid "--broken is incompatible with commit-ishes"
msgstr "--broken est incompatible avec les commits ou assimilés"
@@ -12694,27 +12729,27 @@ msgstr "objet non géré '%s' spécifié."
msgid "git difftool [<options>] [<commit> [<commit>]] [--] [<path>...]"
msgstr "git difftool [<options>] [<commit> [<commit>]] [--] [<chemin>...]"
-#: builtin/difftool.c:253
+#: builtin/difftool.c:260
#, c-format
msgid "failed: %d"
msgstr "échec : %d"
-#: builtin/difftool.c:295
+#: builtin/difftool.c:302
#, c-format
msgid "could not read symlink %s"
msgstr "lecture du lien symbolique %s impossible"
-#: builtin/difftool.c:297
+#: builtin/difftool.c:304
#, c-format
msgid "could not read symlink file %s"
msgstr "impossible de lire le fichier symlink %s"
-#: builtin/difftool.c:305
+#: builtin/difftool.c:312
#, c-format
msgid "could not read object %s for symlink %s"
msgstr "Impossible de lire l'objet %s pour le symlink %s"
-#: builtin/difftool.c:406
+#: builtin/difftool.c:413
msgid ""
"combined diff formats('-c' and '--cc') are not supported in\n"
"directory diff mode('-d' and '--dir-diff')."
@@ -12722,53 +12757,53 @@ msgstr ""
"les formats de diff combinés ('-c' et '--cc') ne sont pas supportés\n"
"dans le mode de diff de répertoire ('-d' et '--dir-diff')."
-#: builtin/difftool.c:626
+#: builtin/difftool.c:634
#, c-format
msgid "both files modified: '%s' and '%s'."
msgstr "les deux fichiers sont modifiés : '%s' et '%s'."
-#: builtin/difftool.c:628
+#: builtin/difftool.c:636
msgid "working tree file has been left."
msgstr "le fichier dans l'arbre de travail a été laissé."
-#: builtin/difftool.c:639
+#: builtin/difftool.c:647
#, c-format
msgid "temporary files exist in '%s'."
msgstr "des fichiers temporaires existent dans '%s'."
-#: builtin/difftool.c:640
+#: builtin/difftool.c:648
msgid "you may want to cleanup or recover these."
msgstr "vous pourriez souhaiter les nettoyer ou les récupérer."
-#: builtin/difftool.c:689
+#: builtin/difftool.c:697
msgid "use `diff.guitool` instead of `diff.tool`"
msgstr "utiliser `diff.guitool` au lieu de `diff.tool`"
-#: builtin/difftool.c:691
+#: builtin/difftool.c:699
msgid "perform a full-directory diff"
msgstr "réalise un diff de répertoire complet"
-#: builtin/difftool.c:693
+#: builtin/difftool.c:701
msgid "do not prompt before launching a diff tool"
msgstr "ne pas confirmer avant de lancer l'outil de diff"
-#: builtin/difftool.c:698
+#: builtin/difftool.c:706
msgid "use symlinks in dir-diff mode"
msgstr "utiliser les liens symboliques en mode de diff de répertoire"
-#: builtin/difftool.c:699
+#: builtin/difftool.c:707
msgid "tool"
msgstr "outil"
-#: builtin/difftool.c:700
+#: builtin/difftool.c:708
msgid "use the specified diff tool"
msgstr "utiliser l'outil de diff spécifié"
-#: builtin/difftool.c:702
+#: builtin/difftool.c:710
msgid "print a list of diff tools that may be used with `--tool`"
msgstr "afficher une liste des outils de diff utilisables avec `--tool`"
-#: builtin/difftool.c:705
+#: builtin/difftool.c:713
msgid ""
"make 'git-difftool' exit when an invoked diff tool returns a non - zero exit "
"code"
@@ -12776,31 +12811,31 @@ msgstr ""
"provoque la fin de 'git-difftool' si l'outil de diff invoqué renvoie un code "
"non-nul"
-#: builtin/difftool.c:708
+#: builtin/difftool.c:716
msgid "specify a custom command for viewing diffs"
msgstr "spécifier une commande personnalisée pour visualiser les différences"
-#: builtin/difftool.c:709
+#: builtin/difftool.c:717
msgid "passed to `diff`"
msgstr "passé à `diff`"
-#: builtin/difftool.c:724
+#: builtin/difftool.c:732
msgid "difftool requires worktree or --no-index"
msgstr "difftool exige un arbre de travail ou --no-index"
-#: builtin/difftool.c:731
+#: builtin/difftool.c:739
msgid "--dir-diff is incompatible with --no-index"
msgstr "--dir-diff est incompatible avec --no-index"
-#: builtin/difftool.c:734
+#: builtin/difftool.c:742
msgid "--gui, --tool and --extcmd are mutually exclusive"
msgstr "--gui, --tool et --extcmd sont mutuellement exclusifs"
-#: builtin/difftool.c:742
+#: builtin/difftool.c:750
msgid "no <tool> given for --tool=<tool>"
msgstr "pas d'<outil> spécifié pour --tool=<outil>"
-#: builtin/difftool.c:749
+#: builtin/difftool.c:757
msgid "no <cmd> given for --extcmd=<cmd>"
msgstr "pas de <commande> spécifié pour --extcmd=<commande>"
@@ -12841,164 +12876,191 @@ msgstr ""
msgid "git fast-export [rev-list-opts]"
msgstr "git fast-export [options-de-liste-de-révisions]"
-#: builtin/fast-export.c:1124
+#: builtin/fast-export.c:852
+msgid "Error: Cannot export nested tags unless --mark-tags is specified."
+msgstr ""
+"Erreur : impossible d'exporter des étiquettes imbriquées à moins que --mark-"
+"tags ne soit spécifié."
+
+#: builtin/fast-export.c:1152
msgid "show progress after <n> objects"
msgstr "afficher la progression après <n> objets"
-#: builtin/fast-export.c:1126
+#: builtin/fast-export.c:1154
msgid "select handling of signed tags"
msgstr "sélectionner la gestion des étiquettes signées"
-#: builtin/fast-export.c:1129
+#: builtin/fast-export.c:1157
msgid "select handling of tags that tag filtered objects"
msgstr ""
"sélectionner la gestion des étiquettes qui pointent sur des objets filtrés"
-#: builtin/fast-export.c:1132
+#: builtin/fast-export.c:1160
msgid "select handling of commit messages in an alternate encoding"
msgstr ""
"sélectionner la gestion des messages de validation dans un encodage "
"alternatif"
-#: builtin/fast-export.c:1135
+#: builtin/fast-export.c:1163
msgid "Dump marks to this file"
msgstr "Enregistrer les marques dans ce fichier"
-#: builtin/fast-export.c:1137
+#: builtin/fast-export.c:1165
msgid "Import marks from this file"
msgstr "importer les marques depuis ce fichier"
-#: builtin/fast-export.c:1139
+#: builtin/fast-export.c:1169
+msgid "Import marks from this file if it exists"
+msgstr "importer les marques depuis ce fichier s'il existe"
+
+#: builtin/fast-export.c:1171
msgid "Fake a tagger when tags lack one"
msgstr "falsifier un auteur d'étiquette si l'étiquette n'en présente pas"
-#: builtin/fast-export.c:1141
+#: builtin/fast-export.c:1173
msgid "Output full tree for each commit"
msgstr "Afficher l'arbre complet pour chaque commit"
-#: builtin/fast-export.c:1143
+#: builtin/fast-export.c:1175
msgid "Use the done feature to terminate the stream"
msgstr "Utiliser la fonction \"done\" pour terminer le flux"
-#: builtin/fast-export.c:1144
+#: builtin/fast-export.c:1176
msgid "Skip output of blob data"
msgstr "Sauter l'affichage de données de blob"
-#: builtin/fast-export.c:1145 builtin/log.c:1632
+#: builtin/fast-export.c:1177 builtin/log.c:1633
msgid "refspec"
msgstr "spécificateur de référence"
-#: builtin/fast-export.c:1146
+#: builtin/fast-export.c:1178
msgid "Apply refspec to exported refs"
msgstr "Appliquer le spécificateur de référence aux références exportées"
-#: builtin/fast-export.c:1147
+#: builtin/fast-export.c:1179
msgid "anonymize output"
msgstr "anonymise la sortie"
-#: builtin/fast-export.c:1149
+#: builtin/fast-export.c:1181
msgid "Reference parents which are not in fast-export stream by object id"
msgstr ""
"les parents références qui ne sont pas dans le flux d'export rapide par id "
"d'objet"
-#: builtin/fast-export.c:1151
+#: builtin/fast-export.c:1183
msgid "Show original object ids of blobs/commits"
msgstr "Afficher les ids d'objet originaux des blobs/commits"
-#: builtin/fetch.c:30
+#: builtin/fast-export.c:1185
+msgid "Label tags with mark ids"
+msgstr "Marquer les étiquettes avec des ids de marque"
+
+#: builtin/fast-export.c:1220
+msgid "Cannot pass both --import-marks and --import-marks-if-exists"
+msgstr ""
+"Impossible d'utiliser à la fois --import-marks et --import-marks-if-exists"
+
+#: builtin/fetch.c:34
msgid "git fetch [<options>] [<repository> [<refspec>...]]"
msgstr "git fetch [<options>] [<dépôt> [<spécification-de-référence>...]]"
-#: builtin/fetch.c:31
+#: builtin/fetch.c:35
msgid "git fetch [<options>] <group>"
msgstr "git fetch [<options>] <groupe>"
-#: builtin/fetch.c:32
+#: builtin/fetch.c:36
msgid "git fetch --multiple [<options>] [(<repository> | <group>)...]"
msgstr "git fetch --multiple [<options>] [(<dépôt> | <groupe>)...]"
-#: builtin/fetch.c:33
+#: builtin/fetch.c:37
msgid "git fetch --all [<options>]"
msgstr "git fetch --all [<options>]"
-#: builtin/fetch.c:125 builtin/pull.c:203
+#: builtin/fetch.c:115
+msgid "fetch.parallel cannot be negative"
+msgstr "fetch.parallel ne peut pas être négatif"
+
+#: builtin/fetch.c:138 builtin/pull.c:204
msgid "fetch from all remotes"
msgstr "récupérer depuis tous les dépôts distants"
-#: builtin/fetch.c:127 builtin/pull.c:206
+#: builtin/fetch.c:140 builtin/pull.c:248
+msgid "set upstream for git pull/fetch"
+msgstr "définir la branche amont pour git pull/fetch"
+
+#: builtin/fetch.c:142 builtin/pull.c:207
msgid "append to .git/FETCH_HEAD instead of overwriting"
msgstr "ajouter à .git/FETCH_HEAD au lieu de l'écraser"
-#: builtin/fetch.c:129 builtin/pull.c:209
+#: builtin/fetch.c:144 builtin/pull.c:210
msgid "path to upload pack on remote end"
msgstr "chemin vers lequel télécharger le paquet sur le poste distant"
-#: builtin/fetch.c:130
+#: builtin/fetch.c:145
msgid "force overwrite of local reference"
msgstr "forcer l'écrasement de la branche locale"
-#: builtin/fetch.c:132
+#: builtin/fetch.c:147
msgid "fetch from multiple remotes"
msgstr "récupérer depuis plusieurs dépôts distants"
-#: builtin/fetch.c:134 builtin/pull.c:213
+#: builtin/fetch.c:149 builtin/pull.c:214
msgid "fetch all tags and associated objects"
msgstr "récupérer toutes les étiquettes et leurs objets associés"
-#: builtin/fetch.c:136
+#: builtin/fetch.c:151
msgid "do not fetch all tags (--no-tags)"
msgstr "ne pas récupérer toutes les étiquettes (--no-tags)"
-#: builtin/fetch.c:138
+#: builtin/fetch.c:153
msgid "number of submodules fetched in parallel"
msgstr "nombre de sous-modules récupérés en parallèle"
-#: builtin/fetch.c:140 builtin/pull.c:216
+#: builtin/fetch.c:155 builtin/pull.c:217
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:142
+#: builtin/fetch.c:157
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:143 builtin/fetch.c:166 builtin/pull.c:140
+#: builtin/fetch.c:158 builtin/fetch.c:181 builtin/pull.c:141
msgid "on-demand"
msgstr "à la demande"
-#: builtin/fetch.c:144
+#: builtin/fetch.c:159
msgid "control recursive fetching of submodules"
msgstr "contrôler la récupération récursive dans les sous-modules"
-#: builtin/fetch.c:148 builtin/pull.c:224
+#: builtin/fetch.c:163 builtin/pull.c:225
msgid "keep downloaded pack"
msgstr "conserver le paquet téléchargé"
-#: builtin/fetch.c:150
+#: builtin/fetch.c:165
msgid "allow updating of HEAD ref"
msgstr "permettre la mise à jour de la référence HEAD"
-#: builtin/fetch.c:153 builtin/fetch.c:159 builtin/pull.c:227
+#: builtin/fetch.c:168 builtin/fetch.c:174 builtin/pull.c:228
msgid "deepen history of shallow clone"
msgstr "approfondir l'historique d'un clone superficiel"
-#: builtin/fetch.c:155
+#: builtin/fetch.c:170
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:161 builtin/pull.c:230
+#: builtin/fetch.c:176 builtin/pull.c:231
msgid "convert to a complete repository"
msgstr "convertir en un dépôt complet"
-#: builtin/fetch.c:164
+#: builtin/fetch.c:179
msgid "prepend this to submodule path output"
msgstr "préfixer ceci à la sortie du chemin du sous-module"
-#: builtin/fetch.c:167
+#: builtin/fetch.c:182
msgid ""
"default for recursive fetching of submodules (lower priority than config "
"files)"
@@ -13006,91 +13068,91 @@ 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:171 builtin/pull.c:233
+#: builtin/fetch.c:186 builtin/pull.c:234
msgid "accept refs that update .git/shallow"
msgstr "accepter les références qui mettent à jour .git/shallow"
-#: builtin/fetch.c:172 builtin/pull.c:235
+#: builtin/fetch.c:187 builtin/pull.c:236
msgid "refmap"
msgstr "correspondance de référence"
-#: builtin/fetch.c:173 builtin/pull.c:236
+#: builtin/fetch.c:188 builtin/pull.c:237
msgid "specify fetch refmap"
msgstr "spécifier une correspondance de référence pour la récupération"
-#: builtin/fetch.c:180
+#: builtin/fetch.c:195
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:183
+#: builtin/fetch.c:198
msgid "run 'gc --auto' after fetching"
msgstr "lancer 'gc --auto' après la récupération"
-#: builtin/fetch.c:185 builtin/pull.c:245
+#: builtin/fetch.c:200 builtin/pull.c:246
msgid "check for forced-updates on all updated branches"
msgstr "vérifier les mises à jour forcées sur toutes les branches mises à jour"
-#: builtin/fetch.c:491
+#: builtin/fetch.c:510
msgid "Couldn't find remote ref HEAD"
msgstr "impossible de trouver la référence HEAD distante"
-#: builtin/fetch.c:630
+#: builtin/fetch.c:650
#, 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:728
+#: builtin/fetch.c:748
#, c-format
msgid "object %s not found"
msgstr "objet %s non trouvé"
-#: builtin/fetch.c:732
+#: builtin/fetch.c:752
msgid "[up to date]"
msgstr "[à jour]"
-#: builtin/fetch.c:745 builtin/fetch.c:761 builtin/fetch.c:833
+#: builtin/fetch.c:765 builtin/fetch.c:781 builtin/fetch.c:853
msgid "[rejected]"
msgstr "[rejeté]"
-#: builtin/fetch.c:746
+#: builtin/fetch.c:766
msgid "can't fetch in current branch"
msgstr "impossible de récupérer dans la branche actuelle"
-#: builtin/fetch.c:756
+#: builtin/fetch.c:776
msgid "[tag update]"
msgstr "[mise à jour de l'étiquette]"
-#: builtin/fetch.c:757 builtin/fetch.c:794 builtin/fetch.c:816
-#: builtin/fetch.c:828
+#: builtin/fetch.c:777 builtin/fetch.c:814 builtin/fetch.c:836
+#: builtin/fetch.c:848
msgid "unable to update local ref"
msgstr "impossible de mettre à jour la référence locale"
-#: builtin/fetch.c:761
+#: builtin/fetch.c:781
msgid "would clobber existing tag"
msgstr "écraserait l'étiquette existante"
-#: builtin/fetch.c:783
+#: builtin/fetch.c:803
msgid "[new tag]"
msgstr "[nouvelle étiquette]"
-#: builtin/fetch.c:786
+#: builtin/fetch.c:806
msgid "[new branch]"
msgstr "[nouvelle branche]"
-#: builtin/fetch.c:789
+#: builtin/fetch.c:809
msgid "[new ref]"
msgstr "[nouvelle référence]"
-#: builtin/fetch.c:828
+#: builtin/fetch.c:848
msgid "forced update"
msgstr "mise à jour forcée"
-#: builtin/fetch.c:833
+#: builtin/fetch.c:853
msgid "non-fast-forward"
msgstr "pas en avance rapide"
-#: builtin/fetch.c:854
+#: builtin/fetch.c:874
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"
@@ -13100,7 +13162,7 @@ msgstr ""
"mais ceci a été désactivé. Pour ré-activer, utilisez le drapeau\n"
"'--show-forced-update' ou lancez 'git config fetch.showForcedUpdates true'."
-#: builtin/fetch.c:858
+#: builtin/fetch.c:878
#, c-format
msgid ""
"It took %.2f seconds to check forced updates. You can use\n"
@@ -13112,23 +13174,23 @@ msgstr ""
"Vous pouvez utiliser '--no-show-forced-update' ou lancer\n"
"'git config fetch.showForcedUpdates false' pour éviter ceci.\n"
-#: builtin/fetch.c:888
+#: builtin/fetch.c:908
#, 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:909
+#: builtin/fetch.c:929
#, c-format
msgid "reject %s because shallow roots are not allowed to be updated"
msgstr ""
"%s rejeté parce que les racines superficielles ne sont pas mises à jour"
-#: builtin/fetch.c:1000 builtin/fetch.c:1131
+#: builtin/fetch.c:1020 builtin/fetch.c:1157
#, c-format
msgid "From %.*s\n"
msgstr "Depuis %.*s\n"
-#: builtin/fetch.c:1011
+#: builtin/fetch.c:1031
#, c-format
msgid ""
"some local refs could not be updated; try running\n"
@@ -13137,58 +13199,79 @@ 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:1101
+#: builtin/fetch.c:1127
#, c-format
msgid " (%s will become dangling)"
msgstr " (%s sera en suspens)"
-#: builtin/fetch.c:1102
+#: builtin/fetch.c:1128
#, c-format
msgid " (%s has become dangling)"
msgstr " (%s est devenu en suspens)"
-#: builtin/fetch.c:1134
+#: builtin/fetch.c:1160
msgid "[deleted]"
msgstr "[supprimé]"
-#: builtin/fetch.c:1135 builtin/remote.c:1036
+#: builtin/fetch.c:1161 builtin/remote.c:1036
msgid "(none)"
msgstr "(aucun(e))"
-#: builtin/fetch.c:1158
+#: builtin/fetch.c:1184
#, c-format
msgid "Refusing to fetch into current branch %s of non-bare repository"
msgstr "Refus de récupérer dans la branche courant %s d'un dépôt non nu"
-#: builtin/fetch.c:1177
+#: builtin/fetch.c:1203
#, 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:1180
+#: builtin/fetch.c:1206
#, c-format
msgid "Option \"%s\" is ignored for %s\n"
msgstr "L'option \"%s\" est ignorée pour %s\n"
-#: builtin/fetch.c:1484
+#: builtin/fetch.c:1414
+msgid "multiple branch detected, incompatible with --set-upstream"
+msgstr "branches multiples détectées, imcompatible avec --set-upstream"
+
+#: builtin/fetch.c:1429
+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:1431
+msgid "not setting upstream for a remote tag"
+msgstr "dépôt amont non défini pour l'étiquette distante"
+
+#: builtin/fetch.c:1433
+msgid "unknown branch type"
+msgstr "type de branche inconnu"
+
+#: builtin/fetch.c:1435
+msgid ""
+"no source branch found.\n"
+"you need to specify exactly one branch with the --set-upstream option."
+msgstr ""
+"Aucune branche source trouvée.\n"
+"Vous devez spécifier exactement une branche avec l'option --set-upstream."
+
+#: builtin/fetch.c:1561 builtin/fetch.c:1623
#, c-format
msgid "Fetching %s\n"
msgstr "Récupération de %s\n"
-#: builtin/fetch.c:1486 builtin/remote.c:100
+#: builtin/fetch.c:1571 builtin/fetch.c:1625 builtin/remote.c:100
#, c-format
msgid "Could not fetch %s"
msgstr "Impossible de récupérer %s"
-#: builtin/fetch.c:1532
-msgid ""
-"--filter can only be used with the remote configured in extensions."
-"partialClone"
-msgstr ""
-"--filter ne peut être utilisé qu'avec le dépôt distant configuré dans "
-"extensions.partialClone"
+#: builtin/fetch.c:1583
+#, 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:1556
+#: builtin/fetch.c:1685
msgid ""
"No remote repository specified. Please, specify either a URL or a\n"
"remote name from which new revisions should be fetched."
@@ -13196,46 +13279,46 @@ 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:1593
+#: builtin/fetch.c:1722
msgid "You need to specify a tag name."
msgstr "Vous devez spécifier un nom d'étiquette."
-#: builtin/fetch.c:1644
+#: builtin/fetch.c:1774
msgid "Negative depth in --deepen is not supported"
msgstr "Une profondeur négative dans --deepen n'est pas supportée"
-#: builtin/fetch.c:1646
+#: builtin/fetch.c:1776
msgid "--deepen and --depth are mutually exclusive"
msgstr "--deepen et --depth sont mutuellement exclusifs"
-#: builtin/fetch.c:1651
+#: builtin/fetch.c:1781
msgid "--depth and --unshallow cannot be used together"
msgstr "--depth et --unshallow ne peuvent pas être utilisés ensemble"
-#: builtin/fetch.c:1653
+#: builtin/fetch.c:1783
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:1669
+#: builtin/fetch.c:1799
msgid "fetch --all does not take a repository argument"
msgstr "fetch --all n'accepte pas d'argument de dépôt"
-#: builtin/fetch.c:1671
+#: builtin/fetch.c:1801
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:1680
+#: builtin/fetch.c:1810
#, c-format
msgid "No such remote or remote group: %s"
msgstr "distant ou groupe distant inexistant : %s"
-#: builtin/fetch.c:1687
+#: builtin/fetch.c:1817
msgid "Fetching a group and specifying refspecs does not make sense"
msgstr ""
"La récupération d'un groupe et les spécifications de référence n'ont pas de "
"sens"
-#: builtin/fetch.c:1703
+#: builtin/fetch.c:1835
msgid ""
"--filter can only be used with the remote configured in extensions."
"partialclone"
@@ -13573,7 +13656,7 @@ msgstr "%s : objet manquant"
msgid "invalid parameter: expected sha1, got '%s'"
msgstr "paramètre invalide : sha-1 attendu, '%s' trouvé"
-#: builtin/gc.c:34
+#: builtin/gc.c:35
msgid "git gc [<options>]"
msgstr "git gc [<options>]"
@@ -13587,17 +13670,17 @@ msgstr "Échec du stat de %s : %s"
msgid "failed to parse '%s' value '%s'"
msgstr "échec de l'analyse de '%s' valeur '%s'"
-#: builtin/gc.c:476 builtin/init-db.c:55
+#: builtin/gc.c:475 builtin/init-db.c:55
#, c-format
msgid "cannot stat '%s'"
msgstr "impossible de faire un stat de '%s'"
-#: builtin/gc.c:485 builtin/notes.c:240 builtin/tag.c:529
+#: builtin/gc.c:484 builtin/notes.c:240 builtin/tag.c:529
#, c-format
msgid "cannot read '%s'"
msgstr "impossible de lire '%s'"
-#: builtin/gc.c:492
+#: builtin/gc.c:491
#, c-format
msgid ""
"The last gc run reported the following. Please correct the root cause\n"
@@ -13613,56 +13696,56 @@ msgstr ""
"\n"
"%s"
-#: builtin/gc.c:540
+#: builtin/gc.c:539
msgid "prune unreferenced objects"
msgstr "éliminer les objets non référencés"
-#: builtin/gc.c:542
+#: builtin/gc.c:541
msgid "be more thorough (increased runtime)"
msgstr "être plus consciencieux (durée de traitement allongée)"
-#: builtin/gc.c:543
+#: builtin/gc.c:542
msgid "enable auto-gc mode"
msgstr "activer le mode auto-gc"
-#: builtin/gc.c:546
+#: builtin/gc.c:545
msgid "force running gc even if there may be another gc running"
msgstr ""
"forcer le lancement du ramasse-miettes même si un autre ramasse-miettes "
"tourne déjà"
-#: builtin/gc.c:549
+#: builtin/gc.c:548
msgid "repack all other packs except the largest pack"
msgstr "recompacter tous les autres paquets excepté le plus gros paquet"
-#: builtin/gc.c:566
+#: builtin/gc.c:565
#, c-format
msgid "failed to parse gc.logexpiry value %s"
msgstr "impossible d'analyser gc.logexpiry %s"
-#: builtin/gc.c:577
+#: builtin/gc.c:576
#, c-format
msgid "failed to parse prune expiry value %s"
msgstr "impossible d'analyser la valeur d'expiration d'élagage %s"
-#: builtin/gc.c:597
+#: builtin/gc.c:596
#, c-format
msgid "Auto packing the repository in background for optimum performance.\n"
msgstr ""
"Compression automatique du dépôt en tâche de fond pour optimiser les "
"performances.\n"
-#: builtin/gc.c:599
+#: builtin/gc.c:598
#, c-format
msgid "Auto packing the repository for optimum performance.\n"
msgstr "Compression du dépôt pour optimiser les performances.\n"
-#: builtin/gc.c:600
+#: builtin/gc.c:599
#, c-format
msgid "See \"git help gc\" for manual housekeeping.\n"
msgstr "Voir \"git help gc\" pour toute information sur le nettoyage manuel.\n"
-#: builtin/gc.c:640
+#: builtin/gc.c:639
#, c-format
msgid ""
"gc is already running on machine '%s' pid %<PRIuMAX> (use --force if not)"
@@ -13670,7 +13753,7 @@ msgstr ""
"un ramasse-miettes est déjà en cours sur la machine '%s' pid %<PRIuMAX> "
"(utilisez --force si ce n'est pas le cas)"
-#: builtin/gc.c:695
+#: builtin/gc.c:694
msgid ""
"There are too many unreachable loose objects; run 'git prune' to remove them."
msgstr ""
@@ -13696,265 +13779,265 @@ msgstr "nombre de fils spécifié invalide (%d) pour %s"
#. grep.threads
#.
#: builtin/grep.c:287 builtin/index-pack.c:1534 builtin/index-pack.c:1727
-#: builtin/pack-objects.c:2728
+#: builtin/pack-objects.c:2708
#, c-format
msgid "no threads support, ignoring %s"
msgstr "pas de support des fils, ignore %s"
-#: builtin/grep.c:467 builtin/grep.c:591 builtin/grep.c:633
+#: builtin/grep.c:467 builtin/grep.c:592 builtin/grep.c:635
#, c-format
msgid "unable to read tree (%s)"
msgstr "impossible de lire l'arbre (%s)"
-#: builtin/grep.c:648
+#: builtin/grep.c:650
#, 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:714
+#: builtin/grep.c:716
#, c-format
msgid "switch `%c' expects a numerical value"
msgstr "l'option '%c' attend une valeur numérique"
-#: builtin/grep.c:813
+#: builtin/grep.c:815
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:815
+#: builtin/grep.c:817
msgid "find in contents not managed by git"
msgstr "rechercher dans les contenus non gérés par git"
-#: builtin/grep.c:817
+#: builtin/grep.c:819
msgid "search in both tracked and untracked files"
msgstr "rechercher dans les fichiers suivis et non-suivis"
-#: builtin/grep.c:819
+#: builtin/grep.c:821
msgid "ignore files specified via '.gitignore'"
msgstr "ignorer les fichiers spécifiés via '.gitignore'"
-#: builtin/grep.c:821
+#: builtin/grep.c:823
msgid "recursively search in each submodule"
msgstr "rechercher récursivement dans chaque sous-module"
-#: builtin/grep.c:824
+#: builtin/grep.c:826
msgid "show non-matching lines"
msgstr "afficher les lignes qui ne correspondent pas"
-#: builtin/grep.c:826
+#: builtin/grep.c:828
msgid "case insensitive matching"
msgstr "correspondance insensible à la casse"
-#: builtin/grep.c:828
+#: builtin/grep.c:830
msgid "match patterns only at word boundaries"
msgstr "rechercher les motifs aux séparateurs de mots"
-#: builtin/grep.c:830
+#: builtin/grep.c:832
msgid "process binary files as text"
msgstr "traiter les fichiers binaires comme texte"
-#: builtin/grep.c:832
+#: builtin/grep.c:834
msgid "don't match patterns in binary files"
msgstr "ne pas chercher les motifs dans les fichiers binaires"
-#: builtin/grep.c:835
+#: builtin/grep.c:837
msgid "process binary files with textconv filters"
msgstr "traiter les fichiers binaires avec les filtres textconv"
-#: builtin/grep.c:837
+#: builtin/grep.c:839
msgid "search in subdirectories (default)"
msgstr "rechercher dans les sous-répertoires (défaut)"
-#: builtin/grep.c:839
+#: builtin/grep.c:841
msgid "descend at most <depth> levels"
msgstr "descendre au plus de <profondeur> dans l'arborescence"
-#: builtin/grep.c:843
+#: builtin/grep.c:845
msgid "use extended POSIX regular expressions"
msgstr "utiliser des expressions régulières étendues POSIX"
-#: builtin/grep.c:846
+#: builtin/grep.c:848
msgid "use basic POSIX regular expressions (default)"
msgstr "utiliser des expressions régulières basiques POSIX (par défaut)"
-#: builtin/grep.c:849
+#: builtin/grep.c:851
msgid "interpret patterns as fixed strings"
msgstr "interpréter les motifs comme de chaînes fixes"
-#: builtin/grep.c:852
+#: builtin/grep.c:854
msgid "use Perl-compatible regular expressions"
msgstr "utiliser des expressions régulières compatibles avec Perl"
-#: builtin/grep.c:855
+#: builtin/grep.c:857
msgid "show line numbers"
msgstr "afficher les numéros de ligne"
-#: builtin/grep.c:856
+#: builtin/grep.c:858
msgid "show column number of first match"
msgstr "afficher le numéro de colonne de la première correspondance"
-#: builtin/grep.c:857
+#: builtin/grep.c:859
msgid "don't show filenames"
msgstr "ne pas pas afficher les noms de fichier"
-#: builtin/grep.c:858
+#: builtin/grep.c:860
msgid "show filenames"
msgstr "afficher les noms de fichier"
-#: builtin/grep.c:860
+#: builtin/grep.c:862
msgid "show filenames relative to top directory"
msgstr "afficher les noms de fichiers relativement au répertoire de base"
-#: builtin/grep.c:862
+#: builtin/grep.c:864
msgid "show only filenames instead of matching lines"
msgstr "n'afficher que les noms de fichiers au lieu des lignes correspondant"
-#: builtin/grep.c:864
+#: builtin/grep.c:866
msgid "synonym for --files-with-matches"
msgstr "synonyme pour --files-with-matches"
-#: builtin/grep.c:867
+#: builtin/grep.c:869
msgid "show only the names of files without match"
msgstr "n'afficher que les noms des fichiers sans correspondance"
-#: builtin/grep.c:869
+#: builtin/grep.c:871
msgid "print NUL after filenames"
msgstr "imprimer une caractère NUL après le noms de fichier"
-#: builtin/grep.c:872
+#: builtin/grep.c:874
msgid "show only matching parts of a line"
msgstr "n'afficher que les parties correspondantes d'une ligne"
-#: builtin/grep.c:874
+#: builtin/grep.c:876
msgid "show the number of matches instead of matching lines"
msgstr "afficher le nombre de correspondances au lieu des lignes correspondant"
-#: builtin/grep.c:875
+#: builtin/grep.c:877
msgid "highlight matches"
msgstr "mettre en évidence les correspondances"
-#: builtin/grep.c:877
+#: builtin/grep.c:879
msgid "print empty line between matches from different files"
msgstr ""
"imprimer une ligne vide entre les correspondances de fichiers différents"
-#: builtin/grep.c:879
+#: builtin/grep.c:881
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:882
+#: builtin/grep.c:884
msgid "show <n> context lines before and after matches"
msgstr "afficher <n> lignes de contexte avant et après les correspondances"
-#: builtin/grep.c:885
+#: builtin/grep.c:887
msgid "show <n> context lines before matches"
msgstr "afficher <n> lignes de contexte avant les correspondances"
-#: builtin/grep.c:887
+#: builtin/grep.c:889
msgid "show <n> context lines after matches"
msgstr "afficher <n> lignes de contexte après les correspondances"
-#: builtin/grep.c:889
+#: builtin/grep.c:891
msgid "use <n> worker threads"
msgstr "utiliser <n> fils de travail"
-#: builtin/grep.c:890
+#: builtin/grep.c:892
msgid "shortcut for -C NUM"
msgstr "raccourci pour -C NUM"
-#: builtin/grep.c:893
+#: builtin/grep.c:895
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:895
+#: builtin/grep.c:897
msgid "show the surrounding function"
msgstr "afficher la fonction contenante"
-#: builtin/grep.c:898
+#: builtin/grep.c:900
msgid "read patterns from file"
msgstr "lire les motifs depuis fichier"
-#: builtin/grep.c:900
+#: builtin/grep.c:902
msgid "match <pattern>"
msgstr "rechercher <motif>"
-#: builtin/grep.c:902
+#: builtin/grep.c:904
msgid "combine patterns specified with -e"
msgstr "combiner les motifs spécifiés par -e"
-#: builtin/grep.c:914
+#: builtin/grep.c:916
msgid "indicate hit with exit status without output"
msgstr ""
"indiquer des correspondances avec le code de sortie mais sans rien afficher"
-#: builtin/grep.c:916
+#: builtin/grep.c:918
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:918
+#: builtin/grep.c:920
msgid "show parse tree for grep expression"
msgstr "afficher l'arbre d'analyse pour le motif grep"
-#: builtin/grep.c:922
+#: builtin/grep.c:924
msgid "pager"
msgstr "pagineur"
-#: builtin/grep.c:922
+#: builtin/grep.c:924
msgid "show matching files in the pager"
msgstr "afficher les fichiers correspondant dans le pagineur"
-#: builtin/grep.c:926
+#: builtin/grep.c:928
msgid "allow calling of grep(1) (ignored by this build)"
msgstr "permettre l'appel de grep(1) (ignoré par ce build)"
-#: builtin/grep.c:990
+#: builtin/grep.c:992
msgid "no pattern given"
msgstr "aucun motif fourni"
-#: builtin/grep.c:1026
+#: builtin/grep.c:1028
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:1034
+#: builtin/grep.c:1036
#, c-format
msgid "unable to resolve revision: %s"
msgstr "impossible de résoudre la révision : %s"
-#: builtin/grep.c:1065
+#: builtin/grep.c:1067
msgid "invalid option combination, ignoring --threads"
msgstr "option de combinaison invalide, ignore --threads"
-#: builtin/grep.c:1068 builtin/pack-objects.c:3416
+#: builtin/grep.c:1070 builtin/pack-objects.c:3400
msgid "no threads support, ignoring --threads"
msgstr "pas de support des fils, ignore --threads"
-#: builtin/grep.c:1071 builtin/index-pack.c:1531 builtin/pack-objects.c:2725
+#: builtin/grep.c:1073 builtin/index-pack.c:1531 builtin/pack-objects.c:2705
#, c-format
msgid "invalid number of threads specified (%d)"
msgstr "nombre de fils spécifié invalide (%d)"
-#: builtin/grep.c:1094
+#: builtin/grep.c:1096
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:1117
+#: builtin/grep.c:1119
msgid "option not supported with --recurse-submodules"
msgstr "option non supportée avec --recurse-submodules"
-#: builtin/grep.c:1123
+#: builtin/grep.c:1125
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:1129
+#: builtin/grep.c:1131
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:1137
+#: builtin/grep.c:1139
msgid "both --cached and trees are given"
msgstr "--cached et des arbres sont fournis en même temps"
@@ -14268,7 +14351,7 @@ msgstr "confusion extrême dans parse_pack_objects()"
msgid "Resolving deltas"
msgstr "Résolution des deltas"
-#: builtin/index-pack.c:1205 builtin/pack-objects.c:2497
+#: builtin/index-pack.c:1205 builtin/pack-objects.c:2481
#, c-format
msgid "unable to create thread: %s"
msgstr "impossible de créer le fil : %s"
@@ -14334,7 +14417,7 @@ msgstr "impossible de stocker le fichier paquet"
msgid "cannot store index file"
msgstr "impossible de stocker le fichier d'index"
-#: builtin/index-pack.c:1525 builtin/pack-objects.c:2736
+#: builtin/index-pack.c:1525 builtin/pack-objects.c:2716
#, c-format
msgid "bad pack.indexversion=%<PRIu32>"
msgstr "mauvais pack.indexversion=%<PRIu32>"
@@ -14617,74 +14700,74 @@ msgstr "Sortie finale : %d %s\n"
msgid "git show %s: bad file"
msgstr "git show %s : fichier incorrect"
-#: builtin/log.c:549 builtin/log.c:643
+#: builtin/log.c:549 builtin/log.c:644
#, c-format
msgid "could not read object %s"
msgstr "impossible de lire l'objet %s"
-#: builtin/log.c:668
+#: builtin/log.c:669
#, c-format
msgid "unknown type: %d"
msgstr "type inconnu : %d"
-#: builtin/log.c:791
+#: builtin/log.c:792
msgid "format.headers without value"
msgstr "format.headers sans valeur"
-#: builtin/log.c:908
+#: builtin/log.c:909
msgid "name of output directory is too long"
msgstr "le nom du répertoire de sortie est trop long"
-#: builtin/log.c:924
+#: builtin/log.c:925
#, c-format
msgid "cannot open patch file %s"
msgstr "impossible d'ouvrir le fichier correctif %s"
-#: builtin/log.c:941
+#: builtin/log.c:942
msgid "need exactly one range"
msgstr "exactement une plage nécessaire"
-#: builtin/log.c:951
+#: builtin/log.c:952
msgid "not a range"
msgstr "ceci n'est pas une plage"
-#: builtin/log.c:1074
+#: builtin/log.c:1075
msgid "cover letter needs email format"
msgstr "la lettre de motivation doit être au format courriel"
-#: builtin/log.c:1080
+#: builtin/log.c:1081
msgid "failed to create cover-letter file"
msgstr "échec de création du fichier de lettre de motivation"
-#: builtin/log.c:1159
+#: builtin/log.c:1160
#, c-format
msgid "insane in-reply-to: %s"
msgstr "in-reply-to aberrant : %s"
-#: builtin/log.c:1186
+#: builtin/log.c:1187
msgid "git format-patch [<options>] [<since> | <revision-range>]"
msgstr "git format-patch [<options>] [<depuis> | <plage de révisions>]"
-#: builtin/log.c:1244
+#: builtin/log.c:1245
msgid "two output directories?"
msgstr "deux répertoires de sortie ?"
-#: builtin/log.c:1355 builtin/log.c:2099 builtin/log.c:2101 builtin/log.c:2113
+#: builtin/log.c:1356 builtin/log.c:2116 builtin/log.c:2118 builtin/log.c:2130
#, c-format
msgid "unknown commit %s"
msgstr "commit inconnu %s"
-#: builtin/log.c:1365 builtin/replace.c:58 builtin/replace.c:207
+#: builtin/log.c:1366 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:1370
+#: builtin/log.c:1371
msgid "could not find exact merge base"
msgstr "impossible de trouver la base de fusion exacte"
-#: builtin/log.c:1374
+#: builtin/log.c:1375
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"
@@ -14697,275 +14780,275 @@ msgstr ""
"Ou vous pouvez spécifier le commit de base par --base=<id-du-commit-de-base> "
"manuellement"
-#: builtin/log.c:1394
+#: builtin/log.c:1395
msgid "failed to find exact merge base"
msgstr "échec à trouver la base de fusion exacte"
-#: builtin/log.c:1405
+#: builtin/log.c:1406
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:1409
+#: builtin/log.c:1410
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:1462
+#: builtin/log.c:1463
msgid "cannot get patch id"
msgstr "impossible d'obtenir l'id du patch"
-#: builtin/log.c:1514
+#: builtin/log.c:1515
msgid "failed to infer range-diff ranges"
msgstr "échec d'inférence d'intervalles de différence d'intervalles"
-#: builtin/log.c:1559
+#: builtin/log.c:1560
msgid "use [PATCH n/m] even with a single patch"
msgstr "utiliser [PATCH n/m] même avec un patch unique"
-#: builtin/log.c:1562
+#: builtin/log.c:1563
msgid "use [PATCH] even with multiple patches"
msgstr "utiliser [PATCH] même avec des patchs multiples"
-#: builtin/log.c:1566
+#: builtin/log.c:1567
msgid "print patches to standard out"
msgstr "afficher les patchs sur la sortie standard"
-#: builtin/log.c:1568
+#: builtin/log.c:1569
msgid "generate a cover letter"
msgstr "générer une lettre de motivation"
-#: builtin/log.c:1570
+#: builtin/log.c:1571
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:1571
+#: builtin/log.c:1572
msgid "sfx"
msgstr "sfx"
-#: builtin/log.c:1572
+#: builtin/log.c:1573
msgid "use <sfx> instead of '.patch'"
msgstr "utiliser <sfx> au lieu de '.patch'"
-#: builtin/log.c:1574
+#: builtin/log.c:1575
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:1576
+#: builtin/log.c:1577
msgid "mark the series as Nth re-roll"
msgstr "marquer la série comme une Nième réédition"
-#: builtin/log.c:1578
+#: builtin/log.c:1579
msgid "Use [RFC PATCH] instead of [PATCH]"
msgstr "utiliser [RFC PATCH] au lieu de [PATCH]"
-#: builtin/log.c:1581
+#: builtin/log.c:1582
msgid "Use [<prefix>] instead of [PATCH]"
msgstr "utiliser [<préfixe>] au lieu de [PATCH]"
-#: builtin/log.c:1584
+#: builtin/log.c:1585
msgid "store resulting files in <dir>"
msgstr "stocker les fichiers résultats dans <répertoire>"
-#: builtin/log.c:1587
+#: builtin/log.c:1588
msgid "don't strip/add [PATCH]"
msgstr "ne pas retirer/ajouter [PATCH]"
-#: builtin/log.c:1590
+#: builtin/log.c:1591
msgid "don't output binary diffs"
msgstr "ne pas imprimer les diffs binaires"
-#: builtin/log.c:1592
+#: builtin/log.c:1593
msgid "output all-zero hash in From header"
msgstr "écrire une empreinte à zéro dans l'entête From"
-#: builtin/log.c:1594
+#: builtin/log.c:1595
msgid "don't include a patch matching a commit upstream"
msgstr "ne pas inclure un patch correspondant à un commit amont"
-#: builtin/log.c:1596
+#: builtin/log.c:1597
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:1598
+#: builtin/log.c:1599
msgid "Messaging"
msgstr "Communication"
-#: builtin/log.c:1599
+#: builtin/log.c:1600
msgid "header"
msgstr "en-tête"
-#: builtin/log.c:1600
+#: builtin/log.c:1601
msgid "add email header"
msgstr "ajouter l'en-tête de courriel"
-#: builtin/log.c:1601 builtin/log.c:1603
+#: builtin/log.c:1602 builtin/log.c:1604
msgid "email"
msgstr "courriel"
-#: builtin/log.c:1601
+#: builtin/log.c:1602
msgid "add To: header"
msgstr "ajouter l'en-tête \"To:\""
-#: builtin/log.c:1603
+#: builtin/log.c:1604
msgid "add Cc: header"
msgstr "ajouter l'en-tête \"Cc:\""
-#: builtin/log.c:1605
+#: builtin/log.c:1606
msgid "ident"
msgstr "ident"
-#: builtin/log.c:1606
+#: builtin/log.c:1607
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:1608
+#: builtin/log.c:1609
msgid "message-id"
msgstr "id-message"
-#: builtin/log.c:1609
+#: builtin/log.c:1610
msgid "make first mail a reply to <message-id>"
msgstr "répondre dans le premier message à <id-message>"
-#: builtin/log.c:1610 builtin/log.c:1613
+#: builtin/log.c:1611 builtin/log.c:1614
msgid "boundary"
msgstr "limite"
-#: builtin/log.c:1611
+#: builtin/log.c:1612
msgid "attach the patch"
msgstr "attacher le patch"
-#: builtin/log.c:1614
+#: builtin/log.c:1615
msgid "inline the patch"
msgstr "patch à l'intérieur"
-#: builtin/log.c:1618
+#: builtin/log.c:1619
msgid "enable message threading, styles: shallow, deep"
msgstr ""
"activer l'enfilage de message, styles : shallow (superficiel), deep (profond)"
-#: builtin/log.c:1620
+#: builtin/log.c:1621
msgid "signature"
msgstr "signature"
-#: builtin/log.c:1621
+#: builtin/log.c:1622
msgid "add a signature"
msgstr "ajouter une signature"
-#: builtin/log.c:1622
+#: builtin/log.c:1623
msgid "base-commit"
msgstr "commit-de-base"
-#: builtin/log.c:1623
+#: builtin/log.c:1624
msgid "add prerequisite tree info to the patch series"
msgstr "Ajouter un arbre prérequis à la série de patchs"
-#: builtin/log.c:1625
+#: builtin/log.c:1626
msgid "add a signature from a file"
msgstr "ajouter une signature depuis un fichier"
-#: builtin/log.c:1626
+#: builtin/log.c:1627
msgid "don't print the patch filenames"
msgstr "ne pas afficher les noms de fichiers des patchs"
-#: builtin/log.c:1628
+#: builtin/log.c:1629
msgid "show progress while generating patches"
msgstr ""
"afficher la barre de progression durant la phase de génération des patchs"
-#: builtin/log.c:1630
+#: builtin/log.c:1631
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:1633
+#: builtin/log.c:1634
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:1635
+#: builtin/log.c:1636
msgid "percentage by which creation is weighted"
msgstr "pourcentage par lequel la création est pondérée"
-#: builtin/log.c:1710
+#: builtin/log.c:1711
#, c-format
msgid "invalid ident line: %s"
msgstr "ligne d'identification invalide : %s"
-#: builtin/log.c:1725
+#: builtin/log.c:1726
msgid "-n and -k are mutually exclusive"
msgstr "-n et -k sont mutuellement exclusifs"
-#: builtin/log.c:1727
+#: builtin/log.c:1728
msgid "--subject-prefix/--rfc and -k are mutually exclusive"
msgstr "--subject-prefix/--rfc et -k sont mutuellement exclusifs"
-#: builtin/log.c:1735
+#: builtin/log.c:1736
msgid "--name-only does not make sense"
msgstr "--name-only n'a pas de sens"
-#: builtin/log.c:1737
+#: builtin/log.c:1738
msgid "--name-status does not make sense"
msgstr "--name-status n'a pas de sens"
-#: builtin/log.c:1739
+#: builtin/log.c:1740
msgid "--check does not make sense"
msgstr "--check n'a pas de sens"
-#: builtin/log.c:1771
+#: builtin/log.c:1773
msgid "standard output, or directory, which one?"
msgstr "sortie standard, ou répertoire, lequel ?"
-#: builtin/log.c:1860
+#: builtin/log.c:1877
msgid "--interdiff requires --cover-letter or single patch"
msgstr "--interdiff requiert --cover-letter ou une rustine unique"
-#: builtin/log.c:1864
+#: builtin/log.c:1881
msgid "Interdiff:"
msgstr "Interdiff :"
-#: builtin/log.c:1865
+#: builtin/log.c:1882
#, c-format
msgid "Interdiff against v%d:"
msgstr "Interdiff contre v%d :"
-#: builtin/log.c:1871
+#: builtin/log.c:1888
msgid "--creation-factor requires --range-diff"
msgstr "--creation-factor requiert --range-diff"
-#: builtin/log.c:1875
+#: builtin/log.c:1892
msgid "--range-diff requires --cover-letter or single patch"
msgstr "--range-diff requiert --cover-letter ou une rustine unique"
-#: builtin/log.c:1883
+#: builtin/log.c:1900
msgid "Range-diff:"
msgstr "Diff-intervalle :"
-#: builtin/log.c:1884
+#: builtin/log.c:1901
#, c-format
msgid "Range-diff against v%d:"
msgstr "Diff-intervalle contre v%d :"
-#: builtin/log.c:1895
+#: builtin/log.c:1912
#, c-format
msgid "unable to read signature file '%s'"
msgstr "lecture du fichier de signature '%s' impossible"
-#: builtin/log.c:1931
+#: builtin/log.c:1948
msgid "Generating patches"
msgstr "Génération des patchs"
-#: builtin/log.c:1975
+#: builtin/log.c:1992
msgid "failed to create output files"
msgstr "échec de création des fichiers en sortie"
-#: builtin/log.c:2034
+#: builtin/log.c:2051
msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
msgstr "git cherry [-v] [<branche_amont> [<head> [<limite>]]]"
-#: builtin/log.c:2088
+#: builtin/log.c:2105
#, c-format
msgid ""
"Could not find a tracked remote branch, please specify <upstream> manually.\n"
@@ -15094,7 +15177,7 @@ msgstr ""
msgid "do not print remote URL"
msgstr "ne pas afficher les URL distantes"
-#: builtin/ls-remote.c:60 builtin/ls-remote.c:62 builtin/rebase.c:1464
+#: builtin/ls-remote.c:60 builtin/ls-remote.c:62 builtin/rebase.c:1488
msgid "exec"
msgstr "exécutable"
@@ -15207,33 +15290,33 @@ msgstr "Les stratégies disponibles sont :"
msgid "Available custom strategies are:"
msgstr "Les stratégies personnalisées sont :"
-#: builtin/merge.c:244 builtin/pull.c:151
+#: builtin/merge.c:244 builtin/pull.c:152
msgid "do not show a diffstat at the end of the merge"
msgstr "ne pas afficher un diffstat à la fin de la fusion"
-#: builtin/merge.c:247 builtin/pull.c:154
+#: builtin/merge.c:247 builtin/pull.c:155
msgid "show a diffstat at the end of the merge"
msgstr "afficher un diffstat à la fin de la fusion"
-#: builtin/merge.c:248 builtin/pull.c:157
+#: builtin/merge.c:248 builtin/pull.c:158
msgid "(synonym to --stat)"
msgstr "(synonyme de --stat)"
-#: builtin/merge.c:250 builtin/pull.c:160
+#: builtin/merge.c:250 builtin/pull.c:161
msgid "add (at most <n>) entries from shortlog to merge commit message"
msgstr ""
"ajouter (au plus <n>) éléments du journal court au message de validation de "
"la fusion"
-#: builtin/merge.c:253 builtin/pull.c:166
+#: builtin/merge.c:253 builtin/pull.c:167
msgid "create a single commit instead of doing a merge"
msgstr "créer une validation unique au lieu de faire une fusion"
-#: builtin/merge.c:255 builtin/pull.c:169
+#: builtin/merge.c:255 builtin/pull.c:170
msgid "perform a commit if the merge succeeds (default)"
msgstr "effectuer une validation si la fusion réussit (défaut)"
-#: builtin/merge.c:257 builtin/pull.c:172
+#: builtin/merge.c:257 builtin/pull.c:173
msgid "edit message before committing"
msgstr "éditer le message avant la validation"
@@ -15241,28 +15324,28 @@ msgstr "éditer le message avant la validation"
msgid "allow fast-forward (default)"
msgstr "autoriser l'avance rapide (défaut)"
-#: builtin/merge.c:261 builtin/pull.c:179
+#: builtin/merge.c:261 builtin/pull.c:180
msgid "abort if fast-forward is not possible"
msgstr "abandonner si l'avance rapide n'est pas possible"
-#: builtin/merge.c:265 builtin/pull.c:182
+#: builtin/merge.c:265 builtin/pull.c:183
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:266 builtin/notes.c:787 builtin/pull.c:186
-#: builtin/rebase.c:492 builtin/rebase.c:1477 builtin/revert.c:114
+#: builtin/merge.c:266 builtin/notes.c:787 builtin/pull.c:187
+#: builtin/rebase.c:493 builtin/rebase.c:1501 builtin/revert.c:114
msgid "strategy"
msgstr "stratégie"
-#: builtin/merge.c:267 builtin/pull.c:187
+#: builtin/merge.c:267 builtin/pull.c:188
msgid "merge strategy to use"
msgstr "stratégie de fusion à utiliser"
-#: builtin/merge.c:268 builtin/pull.c:190
+#: builtin/merge.c:268 builtin/pull.c:191
msgid "option=value"
msgstr "option=valeur"
-#: builtin/merge.c:269 builtin/pull.c:191
+#: builtin/merge.c:269 builtin/pull.c:192
msgid "option for selected merge strategy"
msgstr "option pour la stratégie de fusion sélectionnée"
@@ -15283,13 +15366,13 @@ msgstr "--abort mais laisser l'index et l'arbre de travail inchangés"
msgid "continue the current in-progress merge"
msgstr "continuer la fusion en cours"
-#: builtin/merge.c:284 builtin/pull.c:198
+#: builtin/merge.c:284 builtin/pull.c:199
msgid "allow merging unrelated histories"
msgstr "permettre la fusion d'historiques sans rapport"
#: builtin/merge.c:290
-msgid "verify commit-msg hook"
-msgstr "vérifier le crochet commit-msg"
+msgid "bypass pre-merge-commit and commit-msg hooks"
+msgstr "ne pas utiliser les crochets pre-merge-commit et commit-msg"
#: builtin/merge.c:307
msgid "could not run stash."
@@ -15332,33 +15415,33 @@ msgstr "'%s' ne pointe pas sur un commit"
msgid "Bad branch.%s.mergeoptions string: %s"
msgstr "Mauvaise chaîne branch.%s.mergeoptions : %s"
-#: builtin/merge.c:708
+#: builtin/merge.c:705
msgid "Not handling anything other than two heads merge."
msgstr "Impossible de gérer autre chose que la fusion de deux têtes."
-#: builtin/merge.c:722
+#: builtin/merge.c:719
#, c-format
msgid "Unknown option for merge-recursive: -X%s"
msgstr "Options inconnue pour merge-recursive : -X%s"
-#: builtin/merge.c:737
+#: builtin/merge.c:734
#, c-format
msgid "unable to write %s"
msgstr "impossible d'écrire %s"
-#: builtin/merge.c:789
+#: builtin/merge.c:786
#, c-format
msgid "Could not read from '%s'"
msgstr "Impossible de lire depuis '%s'"
-#: builtin/merge.c:798
+#: builtin/merge.c:795
#, c-format
msgid "Not committing merge; use 'git commit' to complete the merge.\n"
msgstr ""
"Pas de validation de la fusion ; utilisez 'git commit' pour terminer la "
"fusion.\n"
-#: builtin/merge.c:804
+#: builtin/merge.c:801
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"
@@ -15370,11 +15453,11 @@ msgstr ""
"branche de sujet.\n"
"\n"
-#: builtin/merge.c:809
+#: builtin/merge.c:806
msgid "An empty message aborts the commit.\n"
msgstr "Un message vide abandonne la validation.\n"
-#: builtin/merge.c:812
+#: builtin/merge.c:809
#, c-format
msgid ""
"Lines starting with '%c' will be ignored, and an empty message aborts\n"
@@ -15383,74 +15466,74 @@ msgstr ""
"Les lignes commençant par '%c' seront ignorées, et un message vide\n"
"abandonne la validation.\n"
-#: builtin/merge.c:853
+#: builtin/merge.c:862
msgid "Empty commit message."
msgstr "Message de validation vide."
-#: builtin/merge.c:872
+#: builtin/merge.c:877
#, c-format
msgid "Wonderful.\n"
msgstr "Merveilleux.\n"
-#: builtin/merge.c:933
+#: builtin/merge.c:938
#, 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:972
+#: builtin/merge.c:977
msgid "No current branch."
msgstr "Pas de branche courante."
-#: builtin/merge.c:974
+#: builtin/merge.c:979
msgid "No remote for the current branch."
msgstr "Pas de branche distante pour la branche courante."
-#: builtin/merge.c:976
+#: builtin/merge.c:981
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:981
+#: builtin/merge.c:986
#, c-format
msgid "No remote-tracking branch for %s from %s"
msgstr "Pas de branche de suivi pour %s depuis %s"
-#: builtin/merge.c:1038
+#: builtin/merge.c:1043
#, c-format
msgid "Bad value '%s' in environment '%s'"
msgstr "Mauvaise valeur '%s' dans l'environnement '%s'"
-#: builtin/merge.c:1141
+#: builtin/merge.c:1146
#, c-format
msgid "not something we can merge in %s: %s"
msgstr "pas possible de fusionner ceci dans %s : %s"
-#: builtin/merge.c:1175
+#: builtin/merge.c:1180
msgid "not something we can merge"
msgstr "pas possible de fusionner ceci"
-#: builtin/merge.c:1278
+#: builtin/merge.c:1283
msgid "--abort expects no arguments"
msgstr "--abort n'accepte pas d'argument"
-#: builtin/merge.c:1282
+#: builtin/merge.c:1287
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:1291
+#: builtin/merge.c:1296
msgid "--quit expects no arguments"
msgstr "--quit n'accepte pas d'argument"
-#: builtin/merge.c:1304
+#: builtin/merge.c:1309
msgid "--continue expects no arguments"
msgstr "--continue ne supporte aucun argument"
-#: builtin/merge.c:1308
+#: builtin/merge.c:1313
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:1324
+#: builtin/merge.c:1329
msgid ""
"You have not concluded your merge (MERGE_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -15458,7 +15541,7 @@ msgstr ""
"Vous n'avez pas terminé votre fusion (MERGE_HEAD existe).\n"
"Veuillez valider vos modifications avant de pouvoir fusionner."
-#: builtin/merge.c:1331
+#: builtin/merge.c:1336
msgid ""
"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -15466,98 +15549,98 @@ msgstr ""
"Vous n'avez pas terminé votre picorage (CHERRY_PICK_HEAD existe).\n"
"Veuillez valider vos modifications avant de pouvoir fusionner."
-#: builtin/merge.c:1334
+#: builtin/merge.c:1339
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:1348
+#: builtin/merge.c:1353
msgid "You cannot combine --squash with --no-ff."
msgstr "Vous ne pouvez pas combiner --squash avec --no-ff."
-#: builtin/merge.c:1350
+#: builtin/merge.c:1355
msgid "You cannot combine --squash with --commit."
msgstr "Vous ne pouvez pas combiner --squash avec --commit."
-#: builtin/merge.c:1366
+#: builtin/merge.c:1371
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:1383
+#: builtin/merge.c:1388
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:1385
+#: builtin/merge.c:1390
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:1390
+#: builtin/merge.c:1395
#, c-format
msgid "%s - not something we can merge"
msgstr "%s - pas possible de fusionner ceci"
-#: builtin/merge.c:1392
+#: builtin/merge.c:1397
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:1471
+#: builtin/merge.c:1476
msgid "refusing to merge unrelated histories"
msgstr "refus de fusionner des historiques sans relation"
-#: builtin/merge.c:1480
+#: builtin/merge.c:1485
msgid "Already up to date."
msgstr "Déjà à jour."
-#: builtin/merge.c:1490
+#: builtin/merge.c:1495
#, c-format
msgid "Updating %s..%s\n"
msgstr "Mise à jour %s..%s\n"
-#: builtin/merge.c:1532
+#: builtin/merge.c:1537
#, c-format
msgid "Trying really trivial in-index merge...\n"
msgstr "Essai de fusion vraiment triviale dans l'index...\n"
-#: builtin/merge.c:1539
+#: builtin/merge.c:1544
#, c-format
msgid "Nope.\n"
msgstr "Non.\n"
-#: builtin/merge.c:1564
+#: builtin/merge.c:1569
msgid "Already up to date. Yeeah!"
msgstr "Déjà à jour. Ouais !"
-#: builtin/merge.c:1570
+#: builtin/merge.c:1575
msgid "Not possible to fast-forward, aborting."
msgstr "Pas possible d'avancer rapidement, abandon."
-#: builtin/merge.c:1593 builtin/merge.c:1658
+#: builtin/merge.c:1598 builtin/merge.c:1663
#, c-format
msgid "Rewinding the tree to pristine...\n"
msgstr "Retour de l'arbre à l'original...\n"
-#: builtin/merge.c:1597
+#: builtin/merge.c:1602
#, c-format
msgid "Trying merge strategy %s...\n"
msgstr "Essai de la stratégie de fusion %s...\n"
-#: builtin/merge.c:1649
+#: builtin/merge.c:1654
#, 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:1651
+#: builtin/merge.c:1656
#, c-format
msgid "Merge with strategy %s failed.\n"
msgstr "La fusion avec la stratégie %s a échoué.\n"
-#: builtin/merge.c:1660
+#: builtin/merge.c:1665
#, c-format
msgid "Using the %s to prepare resolving by hand.\n"
msgstr "Utilisation de %s pour préparer la résolution à la main.\n"
-#: builtin/merge.c:1672
+#: builtin/merge.c:1677
#, c-format
msgid "Automatic merge went well; stopped before committing as requested\n"
msgstr ""
@@ -15643,33 +15726,33 @@ msgstr "ne pas avertir à propos des conflits"
msgid "set labels for file1/orig-file/file2"
msgstr "définir les labels pour fichier1/fichier-orig/fichier2"
-#: builtin/merge-recursive.c:46
+#: builtin/merge-recursive.c:47
#, c-format
msgid "unknown option %s"
msgstr "option inconnue %s"
-#: builtin/merge-recursive.c:52
+#: builtin/merge-recursive.c:53
#, c-format
msgid "could not parse object '%s'"
msgstr "Impossible d'analyser l'objet '%s'"
-#: builtin/merge-recursive.c:56
+#: builtin/merge-recursive.c:57
#, c-format
msgid "cannot handle more than %d base. Ignoring %s."
msgid_plural "cannot handle more than %d bases. Ignoring %s."
msgstr[0] "impossible de gérer plus de %d base. %s ignoré."
msgstr[1] "impossible de gérer plus de %d bases. %s ignoré."
-#: builtin/merge-recursive.c:64
+#: builtin/merge-recursive.c:65
msgid "not handling anything other than two heads merge."
msgstr "impossible de gérer autre chose que la fusion de deux têtes."
-#: builtin/merge-recursive.c:70 builtin/merge-recursive.c:72
+#: builtin/merge-recursive.c:74 builtin/merge-recursive.c:76
#, c-format
msgid "could not resolve ref '%s'"
msgstr "impossible de résoudre la référence '%s'"
-#: builtin/merge-recursive.c:78
+#: builtin/merge-recursive.c:82
#, c-format
msgid "Merging %s with %s\n"
msgstr "Fusion de %s avec %s\n"
@@ -15814,53 +15897,53 @@ msgstr "%s, source=%s, destination=%s"
msgid "Renaming %s to %s\n"
msgstr "Renommage de %s en %s\n"
-#: builtin/mv.c:277 builtin/remote.c:717 builtin/repack.c:510
+#: builtin/mv.c:277 builtin/remote.c:717 builtin/repack.c:511
#, c-format
msgid "renaming '%s' failed"
msgstr "le renommage de '%s' a échoué"
-#: builtin/name-rev.c:352
+#: builtin/name-rev.c:356
msgid "git name-rev [<options>] <commit>..."
msgstr "git name-rev [<options>] <validation>..."
-#: builtin/name-rev.c:353
+#: builtin/name-rev.c:357
msgid "git name-rev [<options>] --all"
msgstr "git name-rev [<options>] --all"
-#: builtin/name-rev.c:354
+#: builtin/name-rev.c:358
msgid "git name-rev [<options>] --stdin"
msgstr "git name-rev [<options>] --stdin"
-#: builtin/name-rev.c:411
+#: builtin/name-rev.c:415
msgid "print only names (no SHA-1)"
msgstr "afficher seulement les noms (pas de SHA-1)"
-#: builtin/name-rev.c:412
+#: builtin/name-rev.c:416
msgid "only use tags to name the commits"
msgstr "utiliser seulement les étiquettes pour nommer les validations"
-#: builtin/name-rev.c:414
+#: builtin/name-rev.c:418
msgid "only use refs matching <pattern>"
msgstr "utiliser seulement les références correspondant à <motif>"
-#: builtin/name-rev.c:416
+#: builtin/name-rev.c:420
msgid "ignore refs matching <pattern>"
msgstr "ignorer les références correspondant à <motif>"
-#: builtin/name-rev.c:418
+#: builtin/name-rev.c:422
msgid "list all commits reachable from all refs"
msgstr ""
"afficher toutes les validations accessibles depuis toutes les références"
-#: builtin/name-rev.c:419
+#: builtin/name-rev.c:423
msgid "read from stdin"
msgstr "lire depuis l'entrée standard"
-#: builtin/name-rev.c:420
+#: builtin/name-rev.c:424
msgid "allow to print `undefined` names (default)"
msgstr "autoriser l'affichage des noms `non définis` (par défaut)"
-#: builtin/name-rev.c:426
+#: builtin/name-rev.c:430
msgid "dereference tags in the input (internal use)"
msgstr "déréférencer les étiquettes en entrée (usage interne)"
@@ -16260,7 +16343,7 @@ msgstr ""
msgid "read object names from the standard input"
msgstr "lire les noms d'objet depuis l'entrée standard"
-#: builtin/notes.c:954 builtin/prune.c:130 builtin/worktree.c:165
+#: builtin/notes.c:954 builtin/prune.c:130 builtin/worktree.c:164
msgid "do not remove, show only"
msgstr "ne pas supprimer, afficher seulement"
@@ -16276,7 +16359,7 @@ msgstr "références-notes"
msgid "use notes from <notes-ref>"
msgstr "utiliser les notes depuis <références-notes>"
-#: builtin/notes.c:1034 builtin/stash.c:1598
+#: builtin/notes.c:1034 builtin/stash.c:1607
#, c-format
msgid "unknown subcommand: %s"
msgstr "sous-commande inconnue : %s"
@@ -16353,71 +16436,71 @@ msgstr "échec du stat de %s"
msgid "wrote %<PRIu32> objects while expecting %<PRIu32>"
msgstr "%<PRIu32> objets écrits, %<PRIu32> attendus"
-#: builtin/pack-objects.c:1166
+#: builtin/pack-objects.c:1164
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:1597
+#: builtin/pack-objects.c:1592
#, 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:1606
+#: builtin/pack-objects.c:1601
#, 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:1875
+#: builtin/pack-objects.c:1870
msgid "Counting objects"
msgstr "Décompte des objets"
-#: builtin/pack-objects.c:2005
+#: builtin/pack-objects.c:2000
#, c-format
msgid "unable to get size of %s"
msgstr "impossible de récupérer la taille de %s"
-#: builtin/pack-objects.c:2020
+#: builtin/pack-objects.c:2015
#, 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:2090 builtin/pack-objects.c:2106
-#: builtin/pack-objects.c:2116
+#: builtin/pack-objects.c:2085 builtin/pack-objects.c:2101
+#: builtin/pack-objects.c:2111
#, c-format
msgid "object %s cannot be read"
msgstr "l'objet %s ne peut être lu"
-#: builtin/pack-objects.c:2093 builtin/pack-objects.c:2120
+#: builtin/pack-objects.c:2088 builtin/pack-objects.c:2115
#, 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:2130
+#: builtin/pack-objects.c:2125
msgid "suboptimal pack - out of memory"
msgstr "paquet sous-optimal - mémoire insuffisante"
-#: builtin/pack-objects.c:2456
+#: builtin/pack-objects.c:2440
#, 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:2588
+#: builtin/pack-objects.c:2572
#, 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:2675
+#: builtin/pack-objects.c:2659
msgid "Compressing objects"
msgstr "Compression des objets"
-#: builtin/pack-objects.c:2681
+#: builtin/pack-objects.c:2665
msgid "inconsistency with delta count"
msgstr "inconsistance dans le compte de delta"
-#: builtin/pack-objects.c:2762
+#: builtin/pack-objects.c:2742
#, c-format
msgid ""
"expected edge object ID, got garbage:\n"
@@ -16426,7 +16509,7 @@ msgstr ""
"ID d'objet de bord attendu, reçu des données illisibles :\n"
"%s"
-#: builtin/pack-objects.c:2768
+#: builtin/pack-objects.c:2748
#, c-format
msgid ""
"expected object ID, got garbage:\n"
@@ -16435,252 +16518,252 @@ msgstr ""
"ID d'objet attendu, reçu des données illisibles :\n"
"%s"
-#: builtin/pack-objects.c:2866
+#: builtin/pack-objects.c:2846
msgid "invalid value for --missing"
msgstr "valeur invalide pour --missing"
-#: builtin/pack-objects.c:2925 builtin/pack-objects.c:3033
+#: builtin/pack-objects.c:2905 builtin/pack-objects.c:3013
msgid "cannot open pack index"
msgstr "impossible d'ouvrir l'index de paquet"
-#: builtin/pack-objects.c:2956
+#: builtin/pack-objects.c:2936
#, 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:3041
+#: builtin/pack-objects.c:3021
msgid "unable to force loose object"
msgstr "impossible de forcer l'objet libre"
-#: builtin/pack-objects.c:3133
+#: builtin/pack-objects.c:3113
#, c-format
msgid "not a rev '%s'"
msgstr "'%s' n'est pas une révision"
-#: builtin/pack-objects.c:3136
+#: builtin/pack-objects.c:3116
#, c-format
msgid "bad revision '%s'"
msgstr "mauvaise révision '%s'"
-#: builtin/pack-objects.c:3161
+#: builtin/pack-objects.c:3141
msgid "unable to add recent objects"
msgstr "impossible d'ajouter les objets récents"
-#: builtin/pack-objects.c:3214
+#: builtin/pack-objects.c:3194
#, c-format
msgid "unsupported index version %s"
msgstr "version d'index non supportée %s"
-#: builtin/pack-objects.c:3218
+#: builtin/pack-objects.c:3198
#, c-format
msgid "bad index version '%s'"
msgstr "mauvaise version d'index '%s'"
-#: builtin/pack-objects.c:3248
+#: builtin/pack-objects.c:3228
msgid "do not show progress meter"
msgstr "ne pas afficher la barre de progression"
-#: builtin/pack-objects.c:3250
+#: builtin/pack-objects.c:3230
msgid "show progress meter"
msgstr "afficher la barre de progression"
-#: builtin/pack-objects.c:3252
+#: builtin/pack-objects.c:3232
msgid "show progress meter during object writing phase"
msgstr "afficher la barre de progression durant la phase d'écrite des objets"
-#: builtin/pack-objects.c:3255
+#: builtin/pack-objects.c:3235
msgid "similar to --all-progress when progress meter is shown"
msgstr "similaire à --all-progress quand la barre de progression est affichée"
-#: builtin/pack-objects.c:3256
+#: builtin/pack-objects.c:3236
msgid "<version>[,<offset>]"
msgstr "<version>[,<décalage>]"
-#: builtin/pack-objects.c:3257
+#: builtin/pack-objects.c:3237
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:3260
+#: builtin/pack-objects.c:3240
msgid "maximum size of each output pack file"
msgstr "taille maximum de chaque fichier paquet en sortie"
-#: builtin/pack-objects.c:3262
+#: builtin/pack-objects.c:3242
msgid "ignore borrowed objects from alternate object store"
msgstr "ignorer les objets empruntés à un autre magasin d'objets"
-#: builtin/pack-objects.c:3264
+#: builtin/pack-objects.c:3244
msgid "ignore packed objects"
msgstr "ignorer les objets empaquetés"
-#: builtin/pack-objects.c:3266
+#: builtin/pack-objects.c:3246
msgid "limit pack window by objects"
msgstr "limiter la fenêtre d'empaquetage par objets"
-#: builtin/pack-objects.c:3268
+#: builtin/pack-objects.c:3248
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:3270
+#: builtin/pack-objects.c:3250
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:3272
+#: builtin/pack-objects.c:3252
msgid "reuse existing deltas"
msgstr "réutiliser les deltas existants"
-#: builtin/pack-objects.c:3274
+#: builtin/pack-objects.c:3254
msgid "reuse existing objects"
msgstr "réutiliser les objets existants"
-#: builtin/pack-objects.c:3276
+#: builtin/pack-objects.c:3256
msgid "use OFS_DELTA objects"
msgstr "utiliser les objets OFS_DELTA"
-#: builtin/pack-objects.c:3278
+#: builtin/pack-objects.c:3258
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:3280
+#: builtin/pack-objects.c:3260
msgid "do not create an empty pack output"
msgstr "ne pas créer un paquet vide"
-#: builtin/pack-objects.c:3282
+#: builtin/pack-objects.c:3262
msgid "read revision arguments from standard input"
msgstr "lire les paramètres de révision depuis l'entrée standard"
-#: builtin/pack-objects.c:3284
+#: builtin/pack-objects.c:3264
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:3287
+#: builtin/pack-objects.c:3267
msgid "include objects reachable from any reference"
msgstr "inclure les objets accessibles depuis toute référence"
-#: builtin/pack-objects.c:3290
+#: builtin/pack-objects.c:3270
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:3293
+#: builtin/pack-objects.c:3273
msgid "include objects referred to by the index"
msgstr "inclure les objets référencés par l'index"
-#: builtin/pack-objects.c:3296
+#: builtin/pack-objects.c:3276
msgid "output pack to stdout"
msgstr "afficher l'empaquetage sur la sortie standard"
-#: builtin/pack-objects.c:3298
+#: builtin/pack-objects.c:3278
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:3300
+#: builtin/pack-objects.c:3280
msgid "keep unreachable objects"
msgstr "garder les objets inaccessibles"
-#: builtin/pack-objects.c:3302
+#: builtin/pack-objects.c:3282
msgid "pack loose unreachable objects"
msgstr "empaqueter les objets inaccessibles détachés"
-#: builtin/pack-objects.c:3304
+#: builtin/pack-objects.c:3284
msgid "unpack unreachable objects newer than <time>"
msgstr "dépaqueter les objets inaccessibles plus récents que <heure>"
-#: builtin/pack-objects.c:3307
+#: builtin/pack-objects.c:3287
msgid "use the sparse reachability algorithm"
msgstr "utiliser l'algorithme de joignabilité creuse"
-#: builtin/pack-objects.c:3309
+#: builtin/pack-objects.c:3289
msgid "create thin packs"
msgstr "créer des paquets légers"
-#: builtin/pack-objects.c:3311
+#: builtin/pack-objects.c:3291
msgid "create packs suitable for shallow fetches"
msgstr "créer des paquets permettant des récupérations superficielles"
-#: builtin/pack-objects.c:3313
+#: builtin/pack-objects.c:3293
msgid "ignore packs that have companion .keep file"
msgstr "ignorer les paquets qui ont un fichier .keep"
-#: builtin/pack-objects.c:3315
+#: builtin/pack-objects.c:3295
msgid "ignore this pack"
msgstr "ignorer ce paquet"
-#: builtin/pack-objects.c:3317
+#: builtin/pack-objects.c:3297
msgid "pack compression level"
msgstr "niveau de compression du paquet"
-#: builtin/pack-objects.c:3319
+#: builtin/pack-objects.c:3299
msgid "do not hide commits by grafts"
msgstr "ne pas cacher les validations par greffes"
-#: builtin/pack-objects.c:3321
+#: builtin/pack-objects.c:3301
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:3323
+#: builtin/pack-objects.c:3303
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:3327
+#: builtin/pack-objects.c:3307
msgid "write a bitmap index if possible"
msgstr "écrire un index de bitmap si possible"
-#: builtin/pack-objects.c:3331
+#: builtin/pack-objects.c:3311
msgid "handling for missing objects"
msgstr "gestion des objets manquants"
-#: builtin/pack-objects.c:3334
+#: builtin/pack-objects.c:3314
msgid "do not pack objects in promisor packfiles"
msgstr "ne pas empaqueter les objets dans les fichiers paquets prometteurs"
-#: builtin/pack-objects.c:3336
+#: builtin/pack-objects.c:3316
msgid "respect islands during delta compression"
msgstr "respecter les îlots pendant la compression des deltas"
-#: builtin/pack-objects.c:3361
+#: builtin/pack-objects.c:3345
#, 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:3366
+#: builtin/pack-objects.c:3350
#, c-format
msgid "pack.deltaCacheLimit is too high, forcing %d"
msgstr "pack.deltaCacheLimit est trop grand, forcé à %d"
-#: builtin/pack-objects.c:3420
+#: builtin/pack-objects.c:3404
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:3422
+#: builtin/pack-objects.c:3406
msgid "minimum pack size limit is 1 MiB"
msgstr "la taille limite minimale d'un paquet est 1 MiB"
-#: builtin/pack-objects.c:3427
+#: builtin/pack-objects.c:3411
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:3430
+#: builtin/pack-objects.c:3414
msgid "--keep-unreachable and --unpack-unreachable are incompatible"
msgstr "--keep-unreachable et --unpack-unreachable sont incompatibles"
-#: builtin/pack-objects.c:3436
+#: builtin/pack-objects.c:3420
msgid "cannot use --filter without --stdout"
msgstr "impossible d'utiliser --filter sans --stdout"
-#: builtin/pack-objects.c:3497
+#: builtin/pack-objects.c:3481
msgid "Enumerating objects"
msgstr "Énumération des objets"
-#: builtin/pack-objects.c:3527
+#: builtin/pack-objects.c:3511
#, c-format
msgid "Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>)"
msgstr ""
@@ -16735,44 +16818,44 @@ msgstr "Valeur invalide pour %s : %s"
msgid "git pull [<options>] [<repository> [<refspec>...]]"
msgstr "git pull [<options>] [<dépôt> [<spécification-de-référence>...]]"
-#: builtin/pull.c:141
+#: builtin/pull.c:142
msgid "control for recursive fetching of submodules"
msgstr "contrôler la récupération récursive dans les sous-modules"
-#: builtin/pull.c:145
+#: builtin/pull.c:146
msgid "Options related to merging"
msgstr "Options relatives à la fusion"
-#: builtin/pull.c:148
+#: builtin/pull.c:149
msgid "incorporate changes by rebasing rather than merging"
msgstr "incorporer les modifications en rebasant plutôt qu'en fusionnant"
-#: builtin/pull.c:176 builtin/rebase.c:447 builtin/revert.c:126
+#: builtin/pull.c:177 builtin/rebase.c:448 builtin/revert.c:126
msgid "allow fast-forward"
msgstr "autoriser l'avance rapide"
-#: builtin/pull.c:185
+#: builtin/pull.c:186
msgid "automatically stash/stash pop before and after rebase"
msgstr "remiser avant et réappliquer après le rebasage automatiquement"
-#: builtin/pull.c:201
+#: builtin/pull.c:202
msgid "Options related to fetching"
msgstr "Options relatives au rapatriement"
-#: builtin/pull.c:211
+#: builtin/pull.c:212
msgid "force overwrite of local branch"
msgstr "forcer l'écrasement de la branche locale"
-#: builtin/pull.c:219
+#: builtin/pull.c:220
msgid "number of submodules pulled in parallel"
msgstr "nombre de sous-modules tirés en parallèle"
-#: builtin/pull.c:316
+#: builtin/pull.c:320
#, c-format
msgid "Invalid value for pull.ff: %s"
msgstr "Valeur invalide pour pull.ff : %s"
-#: builtin/pull.c:433
+#: builtin/pull.c:437
msgid ""
"There is no candidate for rebasing against among the refs that you just "
"fetched."
@@ -16780,14 +16863,14 @@ msgstr ""
"Il n'y a pas de candidate sur laquelle rebaser parmi les références que vous "
"venez de récupérer."
-#: builtin/pull.c:435
+#: builtin/pull.c:439
msgid ""
"There are no candidates for merging among the refs that you just fetched."
msgstr ""
"Il n'y a pas de candidate avec laquelle fusionner parmi les références que "
"vous venez de récupérer."
-#: builtin/pull.c:436
+#: builtin/pull.c:440
msgid ""
"Generally this means that you provided a wildcard refspec which had no\n"
"matches on the remote end."
@@ -16795,7 +16878,7 @@ msgstr ""
"Généralement, cela signifie que vous avez indiqué un spécificateur\n"
"de référence joker qui n'a pas eu de correspondance sur le serveur distant."
-#: builtin/pull.c:439
+#: builtin/pull.c:443
#, c-format
msgid ""
"You asked to pull from the remote '%s', but did not specify\n"
@@ -16807,44 +16890,44 @@ msgstr ""
"configuration\n"
"pour la branche actuelle, vous devez spécifier la branche avec la commande."
-#: builtin/pull.c:444 builtin/rebase.c:1326 git-parse-remote.sh:73
+#: builtin/pull.c:448 builtin/rebase.c:1347 git-parse-remote.sh:73
msgid "You are not currently on a branch."
msgstr "Vous n'êtes actuellement sur aucune branche."
-#: builtin/pull.c:446 builtin/pull.c:461 git-parse-remote.sh:79
+#: builtin/pull.c:450 builtin/pull.c:465 git-parse-remote.sh:79
msgid "Please specify which branch you want to rebase against."
msgstr "Veuillez spécifier sur quelle branche vous souhaiter rebaser."
-#: builtin/pull.c:448 builtin/pull.c:463 git-parse-remote.sh:82
+#: builtin/pull.c:452 builtin/pull.c:467 git-parse-remote.sh:82
msgid "Please specify which branch you want to merge with."
msgstr "Veuillez spécifier une branche avec laquelle fusionner."
-#: builtin/pull.c:449 builtin/pull.c:464
+#: builtin/pull.c:453 builtin/pull.c:468
msgid "See git-pull(1) for details."
msgstr "Référez-vous à git-pull(1) pour de plus amples détails."
-#: builtin/pull.c:451 builtin/pull.c:457 builtin/pull.c:466
-#: builtin/rebase.c:1332 git-parse-remote.sh:64
+#: builtin/pull.c:455 builtin/pull.c:461 builtin/pull.c:470
+#: builtin/rebase.c:1353 git-parse-remote.sh:64
msgid "<remote>"
msgstr "<distant>"
-#: builtin/pull.c:451 builtin/pull.c:466 builtin/pull.c:471
+#: builtin/pull.c:455 builtin/pull.c:470 builtin/pull.c:475
#: git-parse-remote.sh:65
msgid "<branch>"
msgstr "<branche>"
-#: builtin/pull.c:459 builtin/rebase.c:1324 git-parse-remote.sh:75
+#: builtin/pull.c:463 builtin/rebase.c:1345 git-parse-remote.sh:75
msgid "There is no tracking information for the current branch."
msgstr "Pas d'information de suivi distant pour la branche actuelle."
-#: builtin/pull.c:468 git-parse-remote.sh:95
+#: builtin/pull.c:472 git-parse-remote.sh:95
msgid ""
"If you wish to set tracking information for this branch you can do so with:"
msgstr ""
"Si vous souhaitez indiquer l'information de suivi distant pour cette "
"branche, vous pouvez le faire avec :"
-#: builtin/pull.c:473
+#: builtin/pull.c:477
#, c-format
msgid ""
"Your configuration specifies to merge with the ref '%s'\n"
@@ -16854,34 +16937,34 @@ msgstr ""
"'%s'\n"
"du serveur distant, mais cette référence n'a pas été récupérée."
-#: builtin/pull.c:581
+#: builtin/pull.c:587
#, c-format
msgid "unable to access commit %s"
msgstr "impossible d'accéder le commit %s"
-#: builtin/pull.c:861
+#: builtin/pull.c:867
msgid "ignoring --verify-signatures for rebase"
msgstr "--verify-signatures est ignoré pour un rebasage"
-#: builtin/pull.c:916
+#: builtin/pull.c:922
msgid "--[no-]autostash option is only valid with --rebase."
msgstr "l'option --[no-]autostash n'est valide qu'avec --rebase."
-#: builtin/pull.c:924
+#: builtin/pull.c:930
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:928
+#: builtin/pull.c:934
msgid "pull with rebase"
msgstr "tirer avec un rebasage"
-#: builtin/pull.c:929
+#: builtin/pull.c:935
msgid "please commit or stash them."
msgstr "veuillez les valider ou les remiser."
-#: builtin/pull.c:954
+#: builtin/pull.c:960
#, c-format
msgid ""
"fetch updated the current branch head.\n"
@@ -16892,7 +16975,7 @@ msgstr ""
"avance rapide de votre copie de travail\n"
"depuis le commit %s."
-#: builtin/pull.c:960
+#: builtin/pull.c:966
#, c-format
msgid ""
"Cannot fast-forward your working tree.\n"
@@ -16909,15 +16992,15 @@ msgstr ""
"$ git reset --hard\n"
"pour régénérer."
-#: builtin/pull.c:975
+#: builtin/pull.c:981
msgid "Cannot merge multiple branches into empty head."
msgstr "Impossible de fusionner de multiples branches sur une tête vide."
-#: builtin/pull.c:979
+#: builtin/pull.c:985
msgid "Cannot rebase onto multiple branches."
msgstr "Impossible de rebaser sur de multiples branches."
-#: builtin/pull.c:986
+#: builtin/pull.c:992
msgid "cannot rebase with locally recorded submodule modifications"
msgstr ""
"impossible de rebaser avec des modifications de sous-modules enregistrées "
@@ -17093,137 +17176,137 @@ msgstr ""
msgid "Pushing to %s\n"
msgstr "Poussée vers %s\n"
-#: builtin/push.c:364
+#: builtin/push.c:366
#, c-format
msgid "failed to push some refs to '%s'"
msgstr "impossible de pousser des références vers '%s'"
-#: builtin/push.c:398
-#, c-format
-msgid "bad repository '%s'"
-msgstr "mauvais dépôt '%s'"
-
-#: builtin/push.c:399
-msgid ""
-"No configured push destination.\n"
-"Either specify the URL from the command-line or configure a remote "
-"repository using\n"
-"\n"
-" git remote add <name> <url>\n"
-"\n"
-"and then push using the remote name\n"
-"\n"
-" git push <name>\n"
-msgstr ""
-"Pas de destination pour pousser.\n"
-"Spécifiez une URL depuis la ligne de commande ou configurez un dépôt distant "
-"en utilisant\n"
-"\n"
-" git remote add <nom> <url>\n"
-"\n"
-"et poussez alors en utilisant le dépôt distant\n"
-"\n"
-" git push <nom>\n"
-
-#: builtin/push.c:554
+#: builtin/push.c:541
msgid "repository"
msgstr "dépôt"
-#: builtin/push.c:555 builtin/send-pack.c:164
+#: builtin/push.c:542 builtin/send-pack.c:164
msgid "push all refs"
msgstr "pousser toutes les références"
-#: builtin/push.c:556 builtin/send-pack.c:166
+#: builtin/push.c:543 builtin/send-pack.c:166
msgid "mirror all refs"
msgstr "refléter toutes les références"
-#: builtin/push.c:558
+#: builtin/push.c:545
msgid "delete refs"
msgstr "supprimer les références"
-#: builtin/push.c:559
+#: builtin/push.c:546
msgid "push tags (can't be used with --all or --mirror)"
msgstr ""
"pousser les étiquettes (ne peut pas être utilisé avec --all ou --mirror)"
-#: builtin/push.c:562 builtin/send-pack.c:167
+#: builtin/push.c:549 builtin/send-pack.c:167
msgid "force updates"
msgstr "forcer les mises à jour"
-#: builtin/push.c:564 builtin/send-pack.c:181
+#: builtin/push.c:551 builtin/send-pack.c:181
msgid "<refname>:<expect>"
msgstr "<nom-de-ref>:<attendu>"
-#: builtin/push.c:565 builtin/send-pack.c:182
+#: builtin/push.c:552 builtin/send-pack.c:182
msgid "require old value of ref to be at this value"
msgstr "exiger que l'ancienne valeur de la référence soit à cette valeur"
-#: builtin/push.c:568
+#: builtin/push.c:555
msgid "control recursive pushing of submodules"
msgstr "contrôler la poussée récursive des sous-modules"
-#: builtin/push.c:570 builtin/send-pack.c:175
+#: builtin/push.c:557 builtin/send-pack.c:175
msgid "use thin pack"
msgstr "utiliser un empaquetage léger"
-#: builtin/push.c:571 builtin/push.c:572 builtin/send-pack.c:161
+#: builtin/push.c:558 builtin/push.c:559 builtin/send-pack.c:161
#: builtin/send-pack.c:162
msgid "receive pack program"
msgstr "recevoir le programme d'empaquetage"
-#: builtin/push.c:573
+#: builtin/push.c:560
msgid "set upstream for git pull/status"
msgstr "définir la branche amont pour git pull/status"
-#: builtin/push.c:576
+#: builtin/push.c:563
msgid "prune locally removed refs"
msgstr "éliminer les références locales supprimées"
-#: builtin/push.c:578
+#: builtin/push.c:565
msgid "bypass pre-push hook"
msgstr "éviter d'utiliser le crochet pre-push"
-#: builtin/push.c:579
+#: builtin/push.c:566
msgid "push missing but relevant tags"
msgstr "pousser les étiquettes manquantes mais pertinentes"
-#: builtin/push.c:582 builtin/send-pack.c:169
+#: builtin/push.c:569 builtin/send-pack.c:169
msgid "GPG sign the push"
msgstr "signer la poussée avec GPG"
-#: builtin/push.c:584 builtin/send-pack.c:176
+#: builtin/push.c:571 builtin/send-pack.c:176
msgid "request atomic transaction on remote side"
msgstr "demande une transaction atomique sur le serveur distant"
-#: builtin/push.c:602
+#: builtin/push.c:589
msgid "--delete is incompatible with --all, --mirror and --tags"
msgstr "--delete est incompatible avec --all, --mirror et --tags"
-#: builtin/push.c:604
+#: builtin/push.c:591
msgid "--delete doesn't make sense without any refs"
msgstr "--delete n'a pas de sens sans aucune référence"
-#: builtin/push.c:607
+#: builtin/push.c:611
+#, c-format
+msgid "bad repository '%s'"
+msgstr "mauvais dépôt '%s'"
+
+#: builtin/push.c:612
+msgid ""
+"No configured push destination.\n"
+"Either specify the URL from the command-line or configure a remote "
+"repository using\n"
+"\n"
+" git remote add <name> <url>\n"
+"\n"
+"and then push using the remote name\n"
+"\n"
+" git push <name>\n"
+msgstr ""
+"Pas de destination pour pousser.\n"
+"Spécifiez une URL depuis la ligne de commande ou configurez un dépôt distant "
+"en utilisant\n"
+"\n"
+" git remote add <nom> <url>\n"
+"\n"
+"et poussez alors en utilisant le dépôt distant\n"
+"\n"
+" git push <nom>\n"
+
+#: builtin/push.c:627
msgid "--all and --tags are incompatible"
msgstr "--all et --tags sont incompatibles"
-#: builtin/push.c:609
+#: builtin/push.c:629
msgid "--all can't be combined with refspecs"
msgstr "--all ne peut pas être combiné avec des spécifications de référence"
-#: builtin/push.c:613
+#: builtin/push.c:633
msgid "--mirror and --tags are incompatible"
msgstr "--mirror et --tags sont incompatibles"
-#: builtin/push.c:615
+#: builtin/push.c:635
msgid "--mirror can't be combined with refspecs"
msgstr "--mirror ne peut pas être combiné avec des spécifications de référence"
-#: builtin/push.c:618
+#: builtin/push.c:638
msgid "--all and --mirror are incompatible"
msgstr "--all et --mirror sont incompatibles"
-#: builtin/push.c:637
+#: builtin/push.c:642
msgid "push options must not have new line characters"
msgstr ""
"les options de poussée ne peuvent pas contenir de caractères de nouvelle "
@@ -17345,11 +17428,11 @@ msgstr "supprimer les messages d'information de suivi"
#: builtin/rebase.c:32
msgid ""
-"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] [<upstream>] "
-"[<branch>]"
+"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase> | --keep-base] "
+"[<upstream> [<branch>]]"
msgstr ""
-"git rebase [-i] [options] [--exec <cmd>] [--onto <nouvelle-base>] [<amont>] "
-"[<branche>]"
+"git rebase [-i] [options] [--exec <cmd>] [--onto <nouvelle-base> | --keep-"
+"base] [<amont> [<branche>]]"
#: builtin/rebase.c:34
msgid ""
@@ -17389,189 +17472,189 @@ msgstr "impossible de marquer comme interactif"
msgid "could not generate todo list"
msgstr "impossible de générer la liste à-faire"
-#: builtin/rebase.c:382
+#: builtin/rebase.c:383
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:437
+#: builtin/rebase.c:438
msgid "git rebase--interactive [<options>]"
msgstr "git rebase--interactive [<options>]"
-#: builtin/rebase.c:449
+#: builtin/rebase.c:450
msgid "keep empty commits"
msgstr "garder les validations vides"
-#: builtin/rebase.c:451 builtin/revert.c:128
+#: builtin/rebase.c:452 builtin/revert.c:128
msgid "allow commits with empty messages"
msgstr "autoriser les validations avec des messages vides"
-#: builtin/rebase.c:452
+#: builtin/rebase.c:453
msgid "rebase merge commits"
msgstr "rebaser les commits de fusion"
-#: builtin/rebase.c:454
+#: builtin/rebase.c:455
msgid "keep original branch points of cousins"
msgstr "conserver les points de branchement de cousins originaux"
-#: builtin/rebase.c:456
+#: builtin/rebase.c:457
msgid "move commits that begin with squash!/fixup!"
msgstr "déplacer les commits qui commencent par squash!/fixup!"
-#: builtin/rebase.c:457
+#: builtin/rebase.c:458
msgid "sign commits"
msgstr "signer les commits"
-#: builtin/rebase.c:459 builtin/rebase.c:1403
+#: builtin/rebase.c:460 builtin/rebase.c:1427
msgid "display a diffstat of what changed upstream"
msgstr "afficher un diffstat de ce qui a changé en amont"
-#: builtin/rebase.c:461
+#: builtin/rebase.c:462
msgid "continue rebase"
msgstr "continuer le rebasage"
-#: builtin/rebase.c:463
+#: builtin/rebase.c:464
msgid "skip commit"
msgstr "sauter le commit"
-#: builtin/rebase.c:464
+#: builtin/rebase.c:465
msgid "edit the todo list"
msgstr "éditer la liste à-faire"
-#: builtin/rebase.c:466
+#: builtin/rebase.c:467
msgid "show the current patch"
msgstr "afficher le patch courant"
-#: builtin/rebase.c:469
+#: builtin/rebase.c:470
msgid "shorten commit ids in the todo list"
msgstr "raccourcir les identifiants de commits dans la liste à-faire"
-#: builtin/rebase.c:471
+#: builtin/rebase.c:472
msgid "expand commit ids in the todo list"
msgstr "étendre les identifiants de commit dans la liste à-faire"
-#: builtin/rebase.c:473
+#: builtin/rebase.c:474
msgid "check the todo list"
msgstr "vérifier la liste à-faire"
-#: builtin/rebase.c:475
+#: builtin/rebase.c:476
msgid "rearrange fixup/squash lines"
msgstr "réarranger les lignes fixup/squash"
-#: builtin/rebase.c:477
+#: builtin/rebase.c:478
msgid "insert exec commands in todo list"
msgstr "insérer les commandes exec dans la liste à-faire"
-#: builtin/rebase.c:478
+#: builtin/rebase.c:479
msgid "onto"
msgstr "sur"
-#: builtin/rebase.c:481
+#: builtin/rebase.c:482
msgid "restrict-revision"
msgstr "restrict-revision"
-#: builtin/rebase.c:481
+#: builtin/rebase.c:482
msgid "restrict revision"
msgstr "restreindre la révision"
-#: builtin/rebase.c:483
+#: builtin/rebase.c:484
msgid "squash-onto"
msgstr "écraser-sur"
-#: builtin/rebase.c:484
+#: builtin/rebase.c:485
msgid "squash onto"
msgstr "écraser sur"
-#: builtin/rebase.c:486
+#: builtin/rebase.c:487
msgid "the upstream commit"
msgstr "le commit amont"
-#: builtin/rebase.c:488
+#: builtin/rebase.c:489
msgid "head-name"
msgstr "nom du head"
-#: builtin/rebase.c:488
+#: builtin/rebase.c:489
msgid "head name"
msgstr "nom du head"
-#: builtin/rebase.c:493
+#: builtin/rebase.c:494
msgid "rebase strategy"
msgstr "stratégie de rebasage"
-#: builtin/rebase.c:494
+#: builtin/rebase.c:495
msgid "strategy-opts"
msgstr "options de stratégie"
-#: builtin/rebase.c:495
+#: builtin/rebase.c:496
msgid "strategy options"
msgstr "options de stratégie"
-#: builtin/rebase.c:496
+#: builtin/rebase.c:497
msgid "switch-to"
msgstr "switch-to"
-#: builtin/rebase.c:497
+#: builtin/rebase.c:498
msgid "the branch or commit to checkout"
msgstr "la branche ou le commit à extraire"
-#: builtin/rebase.c:498
+#: builtin/rebase.c:499
msgid "onto-name"
msgstr "sur-le-nom"
-#: builtin/rebase.c:498
+#: builtin/rebase.c:499
msgid "onto name"
msgstr "sur le nom"
-#: builtin/rebase.c:499
+#: builtin/rebase.c:500
msgid "cmd"
msgstr "cmd"
-#: builtin/rebase.c:499
+#: builtin/rebase.c:500
msgid "the command to run"
msgstr "la commande à lancer"
-#: builtin/rebase.c:502 builtin/rebase.c:1486
+#: builtin/rebase.c:503 builtin/rebase.c:1510
msgid "automatically re-schedule any `exec` that fails"
msgstr "re-planifier automatiquement tout `exec` qui échoue"
-#: builtin/rebase.c:518
+#: builtin/rebase.c:519
msgid "--[no-]rebase-cousins has no effect without --rebase-merges"
msgstr "--[no-]rebase-cousins n'a aucun effet sans --rebase-merges"
-#: builtin/rebase.c:534
+#: builtin/rebase.c:535
#, c-format
msgid "%s requires an interactive rebase"
msgstr "%s requiert un rebasage interactif"
-#: builtin/rebase.c:586
+#: builtin/rebase.c:587
#, c-format
msgid "could not get 'onto': '%s'"
msgstr "impossible d'accéder 'onto' : '%s'"
-#: builtin/rebase.c:601
+#: builtin/rebase.c:602
#, c-format
msgid "invalid orig-head: '%s'"
msgstr "orig-head invalide : '%s'"
-#: builtin/rebase.c:626
+#: builtin/rebase.c:627
#, c-format
msgid "ignoring invalid allow_rerere_autoupdate: '%s'"
msgstr "allow_rerere_autoupdate invalide ignoré : '%s'"
-#: builtin/rebase.c:702
+#: builtin/rebase.c:703
#, c-format
msgid "Could not read '%s'"
msgstr "Impossible de lire '%s'"
-#: builtin/rebase.c:720
+#: builtin/rebase.c:721
#, c-format
msgid "Cannot store %s"
msgstr "Impossible de stocker %s"
-#: builtin/rebase.c:827
+#: builtin/rebase.c:828
msgid "could not determine HEAD revision"
msgstr "impossible de déterminer la révision HEAD"
-#: builtin/rebase.c:950 git-rebase--preserve-merges.sh:81
+#: builtin/rebase.c:951 git-rebase--preserve-merges.sh:81
msgid ""
"Resolve all conflicts manually, mark them as resolved with\n"
"\"git add/rm <conflicted_files>\", then run \"git rebase --continue\".\n"
@@ -17585,7 +17668,7 @@ msgstr ""
"arrêter\n"
"et revenir à l'état antérieur à la commande, lancez \"git rebase --abort\"."
-#: builtin/rebase.c:1031
+#: builtin/rebase.c:1032
#, c-format
msgid ""
"\n"
@@ -17604,7 +17687,7 @@ msgstr ""
"\n"
"Résultat, git ne peut pas les rebaser."
-#: builtin/rebase.c:1318
+#: builtin/rebase.c:1339
#, c-format
msgid ""
"%s\n"
@@ -17621,7 +17704,7 @@ msgstr ""
" git rebase '<branche>'\n"
"\n"
-#: builtin/rebase.c:1334
+#: builtin/rebase.c:1355
#, c-format
msgid ""
"If you wish to set tracking information for this branch you can do so with:\n"
@@ -17635,127 +17718,132 @@ msgstr ""
" git branch --set-upstream-to=%s/<branche> %s\n"
"\n"
-#: builtin/rebase.c:1364
+#: builtin/rebase.c:1385
msgid "exec commands cannot contain newlines"
msgstr "les commandes exec ne peut pas contenir de retour à la ligne"
-#: builtin/rebase.c:1368
+#: builtin/rebase.c:1389
msgid "empty exec command"
msgstr "commande exec vide"
-#: builtin/rebase.c:1396
+#: builtin/rebase.c:1418
msgid "rebase onto given branch instead of upstream"
msgstr "rebaser sur la branche %s au lieu de la branche amont"
-#: builtin/rebase.c:1398
+#: builtin/rebase.c:1420
+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:1422
msgid "allow pre-rebase hook to run"
msgstr "permettre le lancement du crochet pre-rebase"
-#: builtin/rebase.c:1400
+#: builtin/rebase.c:1424
msgid "be quiet. implies --no-stat"
msgstr "être silencieux. implique --no-stat"
-#: builtin/rebase.c:1406
+#: builtin/rebase.c:1430
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:1409
+#: builtin/rebase.c:1433
msgid "add a Signed-off-by: line to each commit"
msgstr "ajouter une ligne Signed-off-by à chaque message de validation"
-#: builtin/rebase.c:1411 builtin/rebase.c:1415 builtin/rebase.c:1417
+#: builtin/rebase.c:1435 builtin/rebase.c:1439 builtin/rebase.c:1441
msgid "passed to 'git am'"
msgstr "passé à 'git am'"
-#: builtin/rebase.c:1419 builtin/rebase.c:1421
+#: builtin/rebase.c:1443 builtin/rebase.c:1445
msgid "passed to 'git apply'"
msgstr "passé jusqu'à git-apply"
-#: builtin/rebase.c:1423 builtin/rebase.c:1426
+#: builtin/rebase.c:1447 builtin/rebase.c:1450
msgid "cherry-pick all commits, even if unchanged"
msgstr "picorer tous les commits, même sans modifiant"
-#: builtin/rebase.c:1428
+#: builtin/rebase.c:1452
msgid "continue"
msgstr "continuer"
-#: builtin/rebase.c:1431
+#: builtin/rebase.c:1455
msgid "skip current patch and continue"
msgstr "sauter le patch courant et continuer"
-#: builtin/rebase.c:1433
+#: builtin/rebase.c:1457
msgid "abort and check out the original branch"
msgstr "abandonner et extraire la branche d'origine"
-#: builtin/rebase.c:1436
+#: builtin/rebase.c:1460
msgid "abort but keep HEAD where it is"
msgstr "abandonne mais garde HEAD où il est"
-#: builtin/rebase.c:1437
+#: builtin/rebase.c:1461
msgid "edit the todo list during an interactive rebase"
msgstr "éditer la liste à faire lors d'un rebasage interactif"
-#: builtin/rebase.c:1440
+#: builtin/rebase.c:1464
msgid "show the patch file being applied or merged"
msgstr "afficher le patch en cours d'application ou de fusion"
-#: builtin/rebase.c:1443
+#: builtin/rebase.c:1467
msgid "use merging strategies to rebase"
msgstr "utiliser des stratégies de fusion pour rebaser"
-#: builtin/rebase.c:1447
+#: builtin/rebase.c:1471
msgid "let the user edit the list of commits to rebase"
msgstr "laisser l'utilisateur éditer la liste des commits à rebaser"
-#: builtin/rebase.c:1451
+#: builtin/rebase.c:1475
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:1455
+#: builtin/rebase.c:1479
msgid "preserve empty commits during rebase"
msgstr "préserver les validations vides pendant le rebasage"
-#: builtin/rebase.c:1457
+#: builtin/rebase.c:1481
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:1463
+#: builtin/rebase.c:1487
msgid "automatically stash/stash pop before and after"
msgstr "remiser et réappliquer automatiquement avant et après"
-#: builtin/rebase.c:1465
+#: builtin/rebase.c:1489
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:1469
+#: builtin/rebase.c:1493
msgid "allow rebasing commits with empty messages"
msgstr "autoriser les commits de rebasage avec des messages vides"
-#: builtin/rebase.c:1472
+#: builtin/rebase.c:1496
msgid "try to rebase merges instead of skipping them"
msgstr "essayer de rebaser les fusions au lieu de les garder"
-#: builtin/rebase.c:1475
+#: builtin/rebase.c:1499
msgid "use 'merge-base --fork-point' to refine upstream"
msgstr "utiliser 'merge-base --fork-point' pour raffiner l'amont"
-#: builtin/rebase.c:1477
+#: builtin/rebase.c:1501
msgid "use the given merge strategy"
msgstr "utiliser la stratégie de fusion indiquée"
-#: builtin/rebase.c:1479 builtin/revert.c:115
+#: builtin/rebase.c:1503 builtin/revert.c:115
msgid "option"
msgstr "option"
-#: builtin/rebase.c:1480
+#: builtin/rebase.c:1504
msgid "pass the argument through to the merge strategy"
msgstr "passer les arguments jusqu'à la stratégie de fusion"
-#: builtin/rebase.c:1483
+#: builtin/rebase.c:1507
msgid "rebase all reachable commits up to the root(s)"
msgstr "rebaser tous les objets inatteignables depuis les racines"
-#: builtin/rebase.c:1500
+#: builtin/rebase.c:1524
msgid ""
"the rebase.useBuiltin support has been removed!\n"
"See its entry in 'git help config' for details."
@@ -17763,32 +17851,40 @@ msgstr ""
"les support de rebase.useBuiltin a été supprimé !\n"
"Voir son entrée dans 'git help config' pour plus de détails."
-#: builtin/rebase.c:1506
+#: builtin/rebase.c:1530
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:1547
+#: builtin/rebase.c:1571
msgid ""
"git rebase --preserve-merges is deprecated. Use --rebase-merges instead."
msgstr ""
"git rebase --preserve-merges est déconseillé. Utilisez --rebase-merges à la "
"place."
-#: builtin/rebase.c:1551
+#: builtin/rebase.c:1576
+msgid "cannot combine '--keep-base' with '--onto'"
+msgstr "impossible de combiner '--keep-base' avec '--onto'"
+
+#: builtin/rebase.c:1578
+msgid "cannot combine '--keep-base' with '--root'"
+msgstr "impossible de combiner '--keep-base' avec '--root'"
+
+#: builtin/rebase.c:1582
msgid "No rebase in progress?"
msgstr "Pas de rebasage en cours ?"
-#: builtin/rebase.c:1555
+#: builtin/rebase.c:1586
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:1578
+#: builtin/rebase.c:1609
msgid "Cannot read HEAD"
msgstr "Impossible de lire HEAD"
-#: builtin/rebase.c:1590
+#: builtin/rebase.c:1621
msgid ""
"You must edit all merge conflicts and then\n"
"mark them as resolved using git add"
@@ -17796,16 +17892,16 @@ msgstr ""
"Vous devez éditer tous les conflits de fusion et\n"
"les marquer comme résolus avec git add"
-#: builtin/rebase.c:1609
+#: builtin/rebase.c:1640
msgid "could not discard worktree changes"
msgstr "Impossible de supprimer les changements de l'arbre de travail"
-#: builtin/rebase.c:1628
+#: builtin/rebase.c:1659
#, c-format
msgid "could not move back to %s"
msgstr "Impossible de revenir à %s"
-#: builtin/rebase.c:1673
+#: builtin/rebase.c:1704
#, c-format
msgid ""
"It seems that there is already a %s directory, and\n"
@@ -17827,167 +17923,159 @@ msgstr ""
"chose\n"
"d'important ici.\n"
-#: builtin/rebase.c:1694
+#: builtin/rebase.c:1725
msgid "switch `C' expects a numerical value"
msgstr "l'option `C' attend un valeur numérique"
-#: builtin/rebase.c:1735
+#: builtin/rebase.c:1766
#, c-format
msgid "Unknown mode: %s"
msgstr "mode inconnu : %s"
-#: builtin/rebase.c:1757
+#: builtin/rebase.c:1788
msgid "--strategy requires --merge or --interactive"
msgstr "--strategy requiert --merge ou --interactive"
-#: builtin/rebase.c:1797
+#: builtin/rebase.c:1828
msgid "--reschedule-failed-exec requires --exec or --interactive"
msgstr "--reschedule-failed-exec requiert --exec ou --interactive"
-#: builtin/rebase.c:1809
+#: builtin/rebase.c:1840
msgid "cannot combine am options with either interactive or merge options"
msgstr ""
"impossible de combiner les options am avec l'options interactive ou merge"
-#: builtin/rebase.c:1828
+#: builtin/rebase.c:1859
msgid "cannot combine '--preserve-merges' with '--rebase-merges'"
msgstr "impossible de combiner '--preserve-merges' avec '--rebase-merges'"
-#: builtin/rebase.c:1832
+#: builtin/rebase.c:1863
msgid ""
"error: cannot combine '--preserve-merges' with '--reschedule-failed-exec'"
msgstr ""
"erreur : impossible de combiner '--preserve-merges' avec '--reschedule-"
"failed-exec'"
-#: builtin/rebase.c:1838
-msgid "cannot combine '--rebase-merges' with '--strategy-option'"
-msgstr "impossible de combiner '--rebase-merges' avec '--strategy-option'"
-
-#: builtin/rebase.c:1841
-msgid "cannot combine '--rebase-merges' with '--strategy'"
-msgstr "impossible de combiner '--rebase-merges' avec '--strategy'"
-
-#: builtin/rebase.c:1865
+#: builtin/rebase.c:1887
#, c-format
msgid "invalid upstream '%s'"
msgstr "amont invalide '%s'"
-#: builtin/rebase.c:1871
+#: builtin/rebase.c:1893
msgid "Could not create new root commit"
msgstr "Impossible de créer un nouveau commit racine"
-#: builtin/rebase.c:1889
+#: builtin/rebase.c:1919
+#, 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:1922
#, c-format
msgid "'%s': need exactly one merge base"
msgstr "'%s': exactement une base de fusion nécessaire"
-#: builtin/rebase.c:1896
+#: builtin/rebase.c:1930
#, c-format
msgid "Does not point to a valid commit '%s'"
msgstr "ne pointe pas sur une validation valide : '%s'"
-#: builtin/rebase.c:1921
+#: builtin/rebase.c:1955
#, c-format
msgid "fatal: no such branch/commit '%s'"
msgstr "fatal : pas de branche ou commit '%s'"
-#: builtin/rebase.c:1929 builtin/submodule--helper.c:38
+#: builtin/rebase.c:1963 builtin/submodule--helper.c:38
#: builtin/submodule--helper.c:1934
#, c-format
msgid "No such ref: %s"
msgstr "Référence inexistante : %s"
-#: builtin/rebase.c:1940
+#: builtin/rebase.c:1974
msgid "Could not resolve HEAD to a revision"
msgstr "Impossible de résoudre le commit HEAD vers un révision"
-#: builtin/rebase.c:1981
+#: builtin/rebase.c:2012
msgid "Cannot autostash"
msgstr "Autoremisage impossible"
-#: builtin/rebase.c:1984
+#: builtin/rebase.c:2015
#, c-format
msgid "Unexpected stash response: '%s'"
msgstr "réponse de remisage inattendue : '%s'"
-#: builtin/rebase.c:1990
+#: builtin/rebase.c:2021
#, c-format
msgid "Could not create directory for '%s'"
msgstr "Impossible de créer le répertoire pour '%s'"
-#: builtin/rebase.c:1993
+#: builtin/rebase.c:2024
#, c-format
msgid "Created autostash: %s\n"
msgstr "Autoremisage créé : %s\n"
-#: builtin/rebase.c:1996
+#: builtin/rebase.c:2027
msgid "could not reset --hard"
msgstr "impossible de réinitialiser --hard"
-#: builtin/rebase.c:1997 builtin/reset.c:114
-#, c-format
-msgid "HEAD is now at %s"
-msgstr "HEAD est maintenant à %s"
-
-#: builtin/rebase.c:2013
+#: builtin/rebase.c:2036
msgid "Please commit or stash them."
msgstr "Veuillez les valider ou les remiser."
-#: builtin/rebase.c:2040
+#: builtin/rebase.c:2063
#, c-format
msgid "could not parse '%s'"
msgstr "impossible d'analyser '%s'"
-#: builtin/rebase.c:2053
+#: builtin/rebase.c:2076
#, c-format
msgid "could not switch to %s"
msgstr "Impossible de basculer vers %s"
-#: builtin/rebase.c:2064
+#: builtin/rebase.c:2087
msgid "HEAD is up to date."
msgstr "HEAD est à jour."
-#: builtin/rebase.c:2066
+#: builtin/rebase.c:2089
#, c-format
msgid "Current branch %s is up to date.\n"
msgstr "La branche courante %s est à jour.\n"
-#: builtin/rebase.c:2074
+#: builtin/rebase.c:2097
msgid "HEAD is up to date, rebase forced."
msgstr "HEAD est à jour, rebasage forcé."
-#: builtin/rebase.c:2076
+#: builtin/rebase.c:2099
#, 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:2084
+#: builtin/rebase.c:2107
msgid "The pre-rebase hook refused to rebase."
msgstr "Le crochet pre-rebase a refusé de rebaser."
-#: builtin/rebase.c:2091
+#: builtin/rebase.c:2114
#, c-format
msgid "Changes to %s:\n"
msgstr "Changements vers %s :\n"
-#: builtin/rebase.c:2094
+#: builtin/rebase.c:2117
#, c-format
msgid "Changes from %s to %s:\n"
msgstr "Changements de %s sur %s :\n"
-#: builtin/rebase.c:2119
+#: builtin/rebase.c:2142
#, 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:2128
+#: builtin/rebase.c:2151
msgid "Could not detach HEAD"
msgstr "Impossible de détacher HEAD"
-#: builtin/rebase.c:2137
+#: builtin/rebase.c:2160
#, c-format
msgid "Fast-forwarded %s to %s.\n"
msgstr "Avance rapide de %s sur %s.\n"
@@ -17996,7 +18084,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:832
+#: builtin/receive-pack.c:830
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"
@@ -18026,7 +18114,7 @@ msgstr ""
"Pour éliminer ce message et conserver le comportement par défaut,\n"
"réglez « receive.denyCurrentBranch » à 'refuse'."
-#: builtin/receive-pack.c:852
+#: builtin/receive-pack.c:850
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"
@@ -18046,11 +18134,11 @@ msgstr ""
"\n"
"Pour éliminer ce message, réglez-le à 'refuse'."
-#: builtin/receive-pack.c:1938
+#: builtin/receive-pack.c:1936
msgid "quiet"
msgstr "quiet"
-#: builtin/receive-pack.c:1952
+#: builtin/receive-pack.c:1950
msgid "You must specify a directory."
msgstr "Vous devez spécifier un répertoire."
@@ -18632,11 +18720,11 @@ msgstr "être verbeux : doit être placé avant une sous-commande"
msgid "Unknown subcommand: %s"
msgstr "Sous-commande inconnue : %s"
-#: builtin/repack.c:22
+#: builtin/repack.c:23
msgid "git repack [<options>]"
msgstr "git repack [<options>]"
-#: builtin/repack.c:27
+#: builtin/repack.c:28
msgid ""
"Incremental repacks are incompatible with bitmap indexes. Use\n"
"--no-write-bitmap-index or disable the pack.writebitmaps configuration."
@@ -18645,117 +18733,117 @@ msgstr ""
"Utilisez\n"
"--no-write-bitmap-index ou désactivez le paramètre pack.writebitmaps."
-#: builtin/repack.c:190
+#: builtin/repack.c:191
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:229 builtin/repack.c:408
+#: builtin/repack.c:230 builtin/repack.c:409
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:246
+#: builtin/repack.c:247
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:284
+#: builtin/repack.c:285
msgid "pack everything in a single pack"
msgstr "empaqueter tout dans un seul paquet"
-#: builtin/repack.c:286
+#: builtin/repack.c:287
msgid "same as -a, and turn unreachable objects loose"
msgstr "identique à -a et transformer les objets inaccessibles en suspens"
-#: builtin/repack.c:289
+#: builtin/repack.c:290
msgid "remove redundant packs, and run git-prune-packed"
msgstr "supprimer les paquets redondants et lancer git-prune-packed"
-#: builtin/repack.c:291
+#: builtin/repack.c:292
msgid "pass --no-reuse-delta to git-pack-objects"
msgstr "passer --no-reuse-delta à git-pack-objects"
-#: builtin/repack.c:293
+#: builtin/repack.c:294
msgid "pass --no-reuse-object to git-pack-objects"
msgstr "passer --no-reuse-object à git-pack-objects"
-#: builtin/repack.c:295
+#: builtin/repack.c:296
msgid "do not run git-update-server-info"
msgstr "ne pas lancer git update-server-info"
-#: builtin/repack.c:298
+#: builtin/repack.c:299
msgid "pass --local to git-pack-objects"
msgstr "passer --local à git-pack-objects"
-#: builtin/repack.c:300
+#: builtin/repack.c:301
msgid "write bitmap index"
msgstr "écrire un index en bitmap"
-#: builtin/repack.c:302
+#: builtin/repack.c:303
msgid "pass --delta-islands to git-pack-objects"
msgstr "passer --delta-islands à git-pack-objects"
-#: builtin/repack.c:303
+#: builtin/repack.c:304
msgid "approxidate"
msgstr "date approximative"
-#: builtin/repack.c:304
+#: builtin/repack.c:305
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:306
+#: builtin/repack.c:307
msgid "with -a, repack unreachable objects"
msgstr "avec -a, repaquétiser les objets inaccessibles"
-#: builtin/repack.c:308
+#: builtin/repack.c:309
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:309 builtin/repack.c:315
+#: builtin/repack.c:310 builtin/repack.c:316
msgid "bytes"
msgstr "octets"
-#: builtin/repack.c:310
+#: builtin/repack.c:311
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:312
+#: builtin/repack.c:313
msgid "limits the maximum delta depth"
msgstr "limite la profondeur maximale des deltas"
-#: builtin/repack.c:314
+#: builtin/repack.c:315
msgid "limits the maximum number of threads"
msgstr "limite le nombre maximal de fils"
-#: builtin/repack.c:316
+#: builtin/repack.c:317
msgid "maximum size of each packfile"
msgstr "taille maximum de chaque fichier paquet"
-#: builtin/repack.c:318
+#: builtin/repack.c:319
msgid "repack objects in packs marked with .keep"
msgstr "réempaqueter les objets dans des paquets marqués avec .keep"
-#: builtin/repack.c:320
+#: builtin/repack.c:321
msgid "do not repack this pack"
msgstr "ne pas rempaqueter ce paquet"
-#: builtin/repack.c:330
+#: builtin/repack.c:331
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:334
+#: builtin/repack.c:335
msgid "--keep-unreachable and -A are incompatible"
msgstr "--keep-unreachable et -A sont incompatibles"
-#: builtin/repack.c:417
+#: builtin/repack.c:418
msgid "Nothing new to pack."
msgstr "Rien de neuf à empaqueter."
-#: builtin/repack.c:478
+#: builtin/repack.c:479
#, c-format
msgid ""
"WARNING: Some packs in use have been renamed by\n"
@@ -18774,7 +18862,7 @@ msgstr ""
"ALERTE : aussi échoué.\n"
"ALERTE : Veuillez les renommer manuellement dans %s :\n"
-#: builtin/repack.c:526
+#: builtin/repack.c:527
#, c-format
msgid "failed to remove '%s'"
msgstr "échec de la suppression de '%s'"
@@ -18882,8 +18970,8 @@ msgstr "fstat de %s impossible"
msgid "unable to write object to database"
msgstr "impossible d'écrire l'objet dans la base de données"
-#: builtin/replace.c:322 builtin/replace.c:377 builtin/replace.c:422
-#: builtin/replace.c:452
+#: builtin/replace.c:322 builtin/replace.c:378 builtin/replace.c:423
+#: builtin/replace.c:453
#, c-format
msgid "not a valid object name: '%s'"
msgstr "nom d'objet invalide : '%s'"
@@ -18902,22 +18990,22 @@ msgstr "échec de l'édition du fichier d'objet"
msgid "new object is the same as the old one: '%s'"
msgstr "le nouvel objet est identique à l'ancien : '%s'"
-#: builtin/replace.c:383
+#: builtin/replace.c:384
#, c-format
msgid "could not parse %s as a commit"
msgstr "impossible d'analyser %s comme commit"
-#: builtin/replace.c:414
+#: builtin/replace.c:415
#, c-format
msgid "bad mergetag in commit '%s'"
msgstr "mauvaise étiquette de fusion dans le commit '%s'"
-#: builtin/replace.c:416
+#: builtin/replace.c:417
#, c-format
msgid "malformed mergetag in commit '%s'"
msgstr "étiquette de fusion malformée dans le commit '%s'"
-#: builtin/replace.c:428
+#: builtin/replace.c:429
#, c-format
msgid ""
"original commit '%s' contains mergetag '%s' that is discarded; use --edit "
@@ -18926,31 +19014,31 @@ msgstr ""
"le commit original '%s' contient l'étiquette de fusion '%s' qui a disparu ; "
"utilisez --edit au lieu de --graft"
-#: builtin/replace.c:467
+#: builtin/replace.c:468
#, c-format
msgid "the original commit '%s' has a gpg signature"
msgstr "le commit original '%s' contient une signature GPG"
-#: builtin/replace.c:468
+#: builtin/replace.c:469
msgid "the signature will be removed in the replacement commit!"
msgstr "la signature sera éliminée dans la validation de remplacement !"
-#: builtin/replace.c:478
+#: builtin/replace.c:479
#, c-format
msgid "could not write replacement commit for: '%s'"
msgstr "Impossible d'écrire le commit de remplacement pour '%s'"
-#: builtin/replace.c:486
+#: builtin/replace.c:487
#, c-format
msgid "graft for '%s' unnecessary"
msgstr "graft pour '%s' non nécessaire"
-#: builtin/replace.c:490
+#: builtin/replace.c:491
#, c-format
msgid "new commit is the same as the old one: '%s'"
msgstr "le nouveau commit est identique à l'ancien : '%s'"
-#: builtin/replace.c:525
+#: builtin/replace.c:526
#, c-format
msgid ""
"could not convert the following graft(s):\n"
@@ -18959,71 +19047,71 @@ msgstr ""
"impossible de convertir la(les) greffe(s) suivante(s) :\n"
"%s"
-#: builtin/replace.c:546
+#: builtin/replace.c:547
msgid "list replace refs"
msgstr "afficher les références de remplacement"
-#: builtin/replace.c:547
+#: builtin/replace.c:548
msgid "delete replace refs"
msgstr "supprimer les références de remplacement"
-#: builtin/replace.c:548
+#: builtin/replace.c:549
msgid "edit existing object"
msgstr "éditer l'objet existant"
-#: builtin/replace.c:549
+#: builtin/replace.c:550
msgid "change a commit's parents"
msgstr "Modifier les parents d'un commit"
-#: builtin/replace.c:550
+#: builtin/replace.c:551
msgid "convert existing graft file"
msgstr "convertir le fichier de greffe existant"
-#: builtin/replace.c:551
+#: builtin/replace.c:552
msgid "replace the ref if it exists"
msgstr "remplacer la référence si elle existe"
-#: builtin/replace.c:553
+#: builtin/replace.c:554
msgid "do not pretty-print contents for --edit"
msgstr "afficher sans mise en forme pour --edit"
-#: builtin/replace.c:554
+#: builtin/replace.c:555
msgid "use this format"
msgstr "utiliser ce format"
-#: builtin/replace.c:567
+#: builtin/replace.c:568
msgid "--format cannot be used when not listing"
msgstr "--format ne peut pas être utilisé sans lister"
-#: builtin/replace.c:575
+#: builtin/replace.c:576
msgid "-f only makes sense when writing a replacement"
msgstr "-f n'a de sens qu'en écrivant un remplacement"
-#: builtin/replace.c:579
+#: builtin/replace.c:580
msgid "--raw only makes sense with --edit"
msgstr "--raw n'a de sens qu'avec l'option --edit"
-#: builtin/replace.c:585
+#: builtin/replace.c:586
msgid "-d needs at least one argument"
msgstr "-d requiert au moins un argument"
-#: builtin/replace.c:591
+#: builtin/replace.c:592
msgid "bad number of arguments"
msgstr "mauvais nombre d'arguments"
-#: builtin/replace.c:597
+#: builtin/replace.c:598
msgid "-e needs exactly one argument"
msgstr "-e requiert un seul argument"
-#: builtin/replace.c:603
+#: builtin/replace.c:604
msgid "-g needs at least one argument"
msgstr "-g requiert au moins un argument"
-#: builtin/replace.c:609
+#: builtin/replace.c:610
msgid "--convert-graft-file takes no argument"
msgstr "--convert-graft-file ne supporte aucun argument"
-#: builtin/replace.c:615
+#: builtin/replace.c:616
msgid "only one pattern can be given with -l"
msgstr "-l n'accepte qu'un motifs"
@@ -19092,13 +19180,18 @@ msgstr "Impossible de trouver l'arbre pour HEAD."
msgid "Failed to find tree of %s."
msgstr "Impossible de trouver l'arbre pour %s."
+#: builtin/reset.c:114
+#, c-format
+msgid "HEAD is now at %s"
+msgstr "HEAD est maintenant à %s"
+
#: builtin/reset.c:193
#, 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:293 builtin/stash.c:514 builtin/stash.c:589
-#: builtin/stash.c:613
+#: builtin/reset.c:293 builtin/stash.c:520 builtin/stash.c:595
+#: builtin/stash.c:619
msgid "be quiet, only report errors"
msgstr "être silencieux, afficher seulement les erreurs"
@@ -19186,24 +19279,19 @@ msgstr "Impossible de réinitialiser le fichier d'index à la révision '%s'."
msgid "Could not write new index file."
msgstr "Impossible d'écrire le nouveau fichier d'index."
-#: builtin/rev-list.c:412
+#: builtin/rev-list.c:411
msgid "cannot combine --exclude-promisor-objects and --missing"
msgstr "impossible de combiner --exclude-promisor-objects et --missing"
-#: builtin/rev-list.c:473
+#: builtin/rev-list.c:472
msgid "object filtering requires --objects"
msgstr "le filtrage d'objet exige --objects"
-#: builtin/rev-list.c:476
-#, c-format
-msgid "invalid sparse value '%s'"
-msgstr "valeur invalide de 'sparse' '%s'"
-
-#: builtin/rev-list.c:527
+#: builtin/rev-list.c:522
msgid "rev-list does not support display of notes"
msgstr "rev-list ne supporte l'affichage des notes"
-#: builtin/rev-list.c:530
+#: builtin/rev-list.c:525
msgid "cannot combine --use-bitmap-index with object filtering"
msgstr "impossible de combiner --use-bitmap-index avec le filtrage d'objet"
@@ -19754,136 +19842,136 @@ msgstr "conflits dans l'index. Essayez sans --index."
msgid "could not save index tree"
msgstr "impossible de sauvegarder l'arbre d'index"
-#: builtin/stash.c:434
+#: builtin/stash.c:436
msgid "could not restore untracked files from stash"
msgstr "impossible de restaurer les fichiers non-suivis depuis le remisage"
-#: builtin/stash.c:448
+#: builtin/stash.c:450
#, c-format
msgid "Merging %s with %s"
msgstr "Fusion de %s avec %s"
-#: builtin/stash.c:458 git-legacy-stash.sh:680
+#: builtin/stash.c:460 git-legacy-stash.sh:680
msgid "Index was not unstashed."
msgstr "L'index n'a pas été sorti de remise."
-#: builtin/stash.c:516 builtin/stash.c:615
+#: builtin/stash.c:522 builtin/stash.c:621
msgid "attempt to recreate the index"
msgstr "tentative de recréer l'index"
-#: builtin/stash.c:549
+#: builtin/stash.c:555
#, c-format
msgid "Dropped %s (%s)"
msgstr "%s supprimé (%s)"
-#: builtin/stash.c:552
+#: builtin/stash.c:558
#, c-format
msgid "%s: Could not drop stash entry"
msgstr "%s : Impossible de supprimer l'élément de stash"
-#: builtin/stash.c:577
+#: builtin/stash.c:583
#, c-format
msgid "'%s' is not a stash reference"
msgstr "'%s' n'est pas une référence de remisage"
-#: builtin/stash.c:627 git-legacy-stash.sh:694
+#: builtin/stash.c:633 git-legacy-stash.sh:694
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:650 git-legacy-stash.sh:712
+#: builtin/stash.c:656 git-legacy-stash.sh:712
msgid "No branch name specified"
msgstr "Aucune branche spécifiée"
-#: builtin/stash.c:790 builtin/stash.c:827
+#: builtin/stash.c:796 builtin/stash.c:833
#, c-format
msgid "Cannot update %s with %s"
msgstr "Impossible de mettre à jour %s avec %s"
-#: builtin/stash.c:808 builtin/stash.c:1461 builtin/stash.c:1497
+#: builtin/stash.c:814 builtin/stash.c:1470 builtin/stash.c:1506
msgid "stash message"
msgstr "message pour le remisage"
-#: builtin/stash.c:818
+#: builtin/stash.c:824
msgid "\"git stash store\" requires one <commit> argument"
msgstr "\"git stash store\" exige un argument <commit>"
-#: builtin/stash.c:1040 git-legacy-stash.sh:217
+#: builtin/stash.c:1046 git-legacy-stash.sh:217
msgid "No changes selected"
msgstr "Aucun changement sélectionné"
-#: builtin/stash.c:1136 git-legacy-stash.sh:150
+#: builtin/stash.c:1145 git-legacy-stash.sh:150
msgid "You do not have the initial commit yet"
msgstr "Vous n'avez pas encore la validation initiale"
-#: builtin/stash.c:1163 git-legacy-stash.sh:165
+#: builtin/stash.c:1172 git-legacy-stash.sh:165
msgid "Cannot save the current index state"
msgstr "Impossible de sauver l'état courant de l'index"
-#: builtin/stash.c:1172 git-legacy-stash.sh:180
+#: builtin/stash.c:1181 git-legacy-stash.sh:180
msgid "Cannot save the untracked files"
msgstr "Impossible de sauver les fichiers non-suivis"
-#: builtin/stash.c:1183 builtin/stash.c:1192 git-legacy-stash.sh:200
+#: builtin/stash.c:1192 builtin/stash.c:1201 git-legacy-stash.sh:200
#: git-legacy-stash.sh:213
msgid "Cannot save the current worktree state"
msgstr "Impossible de sauver l'état courant de la copie de travail"
-#: builtin/stash.c:1220 git-legacy-stash.sh:233
+#: builtin/stash.c:1229 git-legacy-stash.sh:233
msgid "Cannot record working tree state"
msgstr "Impossible d'enregistrer l'état de la copie de travail"
-#: builtin/stash.c:1269 git-legacy-stash.sh:337
+#: builtin/stash.c:1278 git-legacy-stash.sh:337
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:1285
+#: builtin/stash.c:1294
msgid "Did you forget to 'git add'?"
msgstr "Vous avez sûrement oublié 'git add' ?"
-#: builtin/stash.c:1300 git-legacy-stash.sh:345
+#: builtin/stash.c:1309 git-legacy-stash.sh:345
msgid "No local changes to save"
msgstr "Pas de modifications locales à sauver"
-#: builtin/stash.c:1307 git-legacy-stash.sh:350
+#: builtin/stash.c:1316 git-legacy-stash.sh:350
msgid "Cannot initialize stash"
msgstr "Impossible d'initialiser le remisage"
-#: builtin/stash.c:1322 git-legacy-stash.sh:354
+#: builtin/stash.c:1331 git-legacy-stash.sh:354
msgid "Cannot save the current status"
msgstr "Impossible de sauver l'état courant"
-#: builtin/stash.c:1327
+#: builtin/stash.c:1336
#, 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:1417 git-legacy-stash.sh:384
+#: builtin/stash.c:1426 git-legacy-stash.sh:384
msgid "Cannot remove worktree changes"
msgstr "Impossible de supprimer les changements de la copie de travail"
-#: builtin/stash.c:1452 builtin/stash.c:1488
+#: builtin/stash.c:1461 builtin/stash.c:1497
msgid "keep index"
msgstr "conserver l'index"
-#: builtin/stash.c:1454 builtin/stash.c:1490
+#: builtin/stash.c:1463 builtin/stash.c:1499
msgid "stash in patch mode"
msgstr "remiser une mode rustine"
-#: builtin/stash.c:1455 builtin/stash.c:1491
+#: builtin/stash.c:1464 builtin/stash.c:1500
msgid "quiet mode"
msgstr "mode silencieux"
-#: builtin/stash.c:1457 builtin/stash.c:1493
+#: builtin/stash.c:1466 builtin/stash.c:1502
msgid "include untracked files in stash"
msgstr "inclure les fichiers non suivis dans la remise"
-#: builtin/stash.c:1459 builtin/stash.c:1495
+#: builtin/stash.c:1468 builtin/stash.c:1504
msgid "include ignore files"
msgstr "inclure les fichiers ignorés"
-#: builtin/stash.c:1555
+#: builtin/stash.c:1564
#, c-format
msgid "could not exec %s"
msgstr "impossible d'exécuter %s"
@@ -20267,8 +20355,8 @@ msgid "don't print cloning progress"
msgstr "ne pas afficher la progression du clonage"
#: builtin/submodule--helper.c:1877
-msgid "git submodule--helper update_clone [--prefix=<path>] [<path>...]"
-msgstr "git submodule--helper update_clone [--prefix=<chemin>] [<chemin>...]"
+msgid "git submodule--helper update-clone [--prefix=<path>] [<path>...]"
+msgstr "git submodule--helper update-clone [--prefix=<chemin>] [<chemin>...]"
#: builtin/submodule--helper.c:1890
msgid "bad value for update parameter"
@@ -20322,7 +20410,7 @@ 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:2235 git.c:434 git.c:684
+#: builtin/submodule--helper.c:2235 git.c:433 git.c:683
#, c-format
msgid "%s doesn't support --super-prefix"
msgstr "%s ne gère pas --super-prefix"
@@ -20655,144 +20743,144 @@ msgstr " OK"
msgid "git update-index [<options>] [--] [<file>...]"
msgstr "git update-index [<options>] [--] [<fichier>...]"
-#: builtin/update-index.c:971
+#: builtin/update-index.c:972
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:974
+#: builtin/update-index.c:975
msgid "refresh: ignore submodules"
msgstr "rafraîchir : ignorer les sous-modules"
-#: builtin/update-index.c:977
+#: builtin/update-index.c:978
msgid "do not ignore new files"
msgstr "ne pas ignorer les nouveaux fichiers"
-#: builtin/update-index.c:979
+#: builtin/update-index.c:980
msgid "let files replace directories and vice-versa"
msgstr "laisser les fichiers remplacer des répertoires et vice-versa"
-#: builtin/update-index.c:981
+#: builtin/update-index.c:982
msgid "notice files missing from worktree"
msgstr "aviser des fichiers manquants dans la copie de travail"
-#: builtin/update-index.c:983
+#: builtin/update-index.c:984
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:986
+#: builtin/update-index.c:987
msgid "refresh stat information"
msgstr "rafraîchir l'information de stat"
-#: builtin/update-index.c:990
+#: builtin/update-index.c:991
msgid "like --refresh, but ignore assume-unchanged setting"
msgstr "comme --refresh, mais en ignorant l'option assume-unchanged"
-#: builtin/update-index.c:994
+#: builtin/update-index.c:995
msgid "<mode>,<object>,<path>"
msgstr "<mode>, <objet>, <chemin>"
-#: builtin/update-index.c:995
+#: builtin/update-index.c:996
msgid "add the specified entry to the index"
msgstr "ajouter l'élément spécifié dans l'index"
-#: builtin/update-index.c:1005
+#: builtin/update-index.c:1006
msgid "mark files as \"not changing\""
msgstr "marquer les fichiers comme \"non changeants\""
-#: builtin/update-index.c:1008
+#: builtin/update-index.c:1009
msgid "clear assumed-unchanged bit"
msgstr "mettre à zéro le bit supposé-non-modifié"
-#: builtin/update-index.c:1011
+#: builtin/update-index.c:1012
msgid "mark files as \"index-only\""
msgstr "marquer les fichiers comme \"index seulement\""
-#: builtin/update-index.c:1014
+#: builtin/update-index.c:1015
msgid "clear skip-worktree bit"
msgstr "mettre à zéro le bit sauter-la-copie-de travail"
-#: builtin/update-index.c:1017
+#: builtin/update-index.c:1018
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:1019
+#: builtin/update-index.c:1020
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:1021
+#: builtin/update-index.c:1022
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:1023
+#: builtin/update-index.c:1024
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:1027
+#: builtin/update-index.c:1028
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:1031
+#: builtin/update-index.c:1032
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:1035
+#: builtin/update-index.c:1036
msgid "only update entries that differ from HEAD"
msgstr "mettre à jour seulement les éléments qui diffèrent de HEAD"
-#: builtin/update-index.c:1039
+#: builtin/update-index.c:1040
msgid "ignore files missing from worktree"
msgstr "ignorer les fichiers manquants dans la copie de travail"
-#: builtin/update-index.c:1042
+#: builtin/update-index.c:1043
msgid "report actions to standard output"
msgstr "afficher les actions sur la sortie standard"
-#: builtin/update-index.c:1044
+#: builtin/update-index.c:1045
msgid "(for porcelains) forget saved unresolved conflicts"
msgstr "(pour porcelaines) oublier les conflits sauvés et non résolus"
-#: builtin/update-index.c:1048
+#: builtin/update-index.c:1049
msgid "write index in this format"
msgstr "écrire l'index dans ce format"
-#: builtin/update-index.c:1050
+#: builtin/update-index.c:1051
msgid "enable or disable split index"
msgstr "activer ou désactiver l'index divisé"
-#: builtin/update-index.c:1052
+#: builtin/update-index.c:1053
msgid "enable/disable untracked cache"
msgstr "activer ou désactiver le cache de non-suivis"
-#: builtin/update-index.c:1054
+#: builtin/update-index.c:1055
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:1056
+#: builtin/update-index.c:1057
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:1058
+#: builtin/update-index.c:1059
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:1060
+#: builtin/update-index.c:1061
msgid "enable or disable file system monitor"
msgstr ""
"activer ou désactiver la surveillance du système de fichier (fsmonitor)"
-#: builtin/update-index.c:1062
+#: builtin/update-index.c:1063
msgid "mark files as fsmonitor valid"
msgstr "marquer les fichiers comme valides pour fsmonitor"
-#: builtin/update-index.c:1065
+#: builtin/update-index.c:1066
msgid "clear fsmonitor valid bit"
msgstr "effacer le bit de validité fsmonitor"
-#: builtin/update-index.c:1168
+#: builtin/update-index.c:1169
msgid ""
"core.splitIndex is set to false; remove or change it, if you really want to "
"enable split index"
@@ -20800,7 +20888,7 @@ msgstr ""
"core.splitIndex est réglé à false ; supprimez-le ou changez-le si vous "
"souhaitez vraiment activer l'index coupé"
-#: builtin/update-index.c:1177
+#: builtin/update-index.c:1178
msgid ""
"core.splitIndex is set to true; remove or change it, if you really want to "
"disable split index"
@@ -20808,7 +20896,7 @@ msgstr ""
"core.splitIndex est réglé à vrai ; supprimez-le ou changez-le si vous "
"souhaitez vraiment désactiver l'index coupé"
-#: builtin/update-index.c:1188
+#: builtin/update-index.c:1190
msgid ""
"core.untrackedCache is set to true; remove or change it, if you really want "
"to disable the untracked cache"
@@ -20816,11 +20904,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:1192
+#: builtin/update-index.c:1194
msgid "Untracked cache disabled"
msgstr "Le cache non suivi est désactivé"
-#: builtin/update-index.c:1200
+#: builtin/update-index.c:1202
msgid ""
"core.untrackedCache is set to false; remove or change it, if you really want "
"to enable the untracked cache"
@@ -20828,29 +20916,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:1204
+#: builtin/update-index.c:1206
#, c-format
msgid "Untracked cache enabled for '%s'"
msgstr "Le cache non suivi est activé pour '%s'"
-#: builtin/update-index.c:1212
+#: builtin/update-index.c:1214
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:1216
+#: builtin/update-index.c:1218
msgid "fsmonitor enabled"
msgstr "fsmonitor activé"
-#: builtin/update-index.c:1219
+#: builtin/update-index.c:1221
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:1223
+#: builtin/update-index.c:1225
msgid "fsmonitor disabled"
msgstr "fsmonitor désactivé"
@@ -20946,56 +21034,56 @@ msgstr "git verify-tag [-v | --verbose] [--format=<format>] <étiquette>..."
msgid "print tag contents"
msgstr "afficher le contenu de l'étiquette"
-#: builtin/worktree.c:18
+#: builtin/worktree.c:17
msgid "git worktree add [<options>] <path> [<commit-ish>]"
msgstr "git worktree add [<options>] <chemin> [<commit>]"
-#: builtin/worktree.c:19
+#: builtin/worktree.c:18
msgid "git worktree list [<options>]"
msgstr "git worktree list [<options>]"
-#: builtin/worktree.c:20
+#: builtin/worktree.c:19
msgid "git worktree lock [<options>] <path>"
msgstr "git worktree lock [<options>] <chemin>"
-#: builtin/worktree.c:21
+#: builtin/worktree.c:20
msgid "git worktree move <worktree> <new-path>"
msgstr "git worktree move <arbre-de-travail> <nouveau-chemin>"
-#: builtin/worktree.c:22
+#: builtin/worktree.c:21
msgid "git worktree prune [<options>]"
msgstr "git worktree prune [<options>]"
-#: builtin/worktree.c:23
+#: builtin/worktree.c:22
msgid "git worktree remove [<options>] <worktree>"
msgstr "git worktree remove [<options>] <arbre-de-travail>"
-#: builtin/worktree.c:24
+#: builtin/worktree.c:23
msgid "git worktree unlock <path>"
msgstr "git worktree unlock <chemin>"
-#: builtin/worktree.c:61 builtin/worktree.c:899
+#: builtin/worktree.c:60 builtin/worktree.c:898
#, c-format
msgid "failed to delete '%s'"
msgstr "échec de la suppression de '%s'"
-#: builtin/worktree.c:80
+#: builtin/worktree.c:79
#, c-format
msgid "Removing worktrees/%s: not a valid directory"
msgstr "Suppression de worktrees/%s : répertoire invalide"
-#: builtin/worktree.c:86
+#: builtin/worktree.c:85
#, c-format
msgid "Removing worktrees/%s: gitdir file does not exist"
msgstr "Suppression de worktrees/%s : le fichier gitdir n'existe pas"
-#: builtin/worktree.c:91 builtin/worktree.c:100
+#: builtin/worktree.c:90 builtin/worktree.c:99
#, c-format
msgid "Removing worktrees/%s: unable to read gitdir file (%s)"
msgstr ""
"Suppression de worktrees/%s : échec de la lecture du fichier gitdir (%s)"
-#: builtin/worktree.c:110
+#: builtin/worktree.c:109
#, c-format
msgid ""
"Removing worktrees/%s: short read (expected %<PRIuMAX> bytes, read "
@@ -21004,37 +21092,37 @@ msgstr ""
"Suppression de worktrees/%s: lecture trop courte ( %<PRIuMAX> octets "
"attendus, %<PRIuMAX> octets lus)"
-#: builtin/worktree.c:118
+#: builtin/worktree.c:117
#, c-format
msgid "Removing worktrees/%s: invalid gitdir file"
msgstr "Suppression de worktrees/%s : fichier gitdir invalide"
-#: builtin/worktree.c:127
+#: builtin/worktree.c:126
#, c-format
msgid "Removing worktrees/%s: gitdir file points to non-existent location"
msgstr ""
"Suppression de worktrees/%s : le fichier gitdir point sur un endroit "
"inexistant"
-#: builtin/worktree.c:166
+#: builtin/worktree.c:165
msgid "report pruned working trees"
msgstr "afficher les arbres de travail éliminés"
-#: builtin/worktree.c:168
+#: builtin/worktree.c:167
msgid "expire working trees older than <time>"
msgstr "faire expirer les arbres de travail plus vieux que <temps>"
-#: builtin/worktree.c:235
+#: builtin/worktree.c:234
#, c-format
msgid "'%s' already exists"
msgstr "'%s' existe déjà"
-#: builtin/worktree.c:252
+#: builtin/worktree.c:251
#, c-format
msgid "unable to re-add worktree '%s'"
msgstr "impossible de ré-ajouter l'arbre de travail '%s'"
-#: builtin/worktree.c:257
+#: builtin/worktree.c:256
#, c-format
msgid ""
"'%s' is a missing but locked worktree;\n"
@@ -21044,7 +21132,7 @@ msgstr ""
"utilisez 'add -f -f' pour passer outre, ou 'unlock' et 'prune' ou 'remove' "
"pour corriger"
-#: builtin/worktree.c:259
+#: builtin/worktree.c:258
#, c-format
msgid ""
"'%s' is a missing but already registered worktree;\n"
@@ -21053,129 +21141,129 @@ msgstr ""
"'%s' est un arbre de travail manquant mais déjà enregistré ;\n"
"utilisez 'add -f' pour passer outre, ou 'prune' ou 'remove' pour corriger"
-#: builtin/worktree.c:309
+#: builtin/worktree.c:308
#, c-format
msgid "could not create directory of '%s'"
msgstr "impossible de créer le répertoire de '%s'"
-#: builtin/worktree.c:440 builtin/worktree.c:446
+#: builtin/worktree.c:439 builtin/worktree.c:445
#, c-format
msgid "Preparing worktree (new branch '%s')"
msgstr "Préparation de l'arbre de travail (nouvelle branche '%s')"
-#: builtin/worktree.c:442
+#: builtin/worktree.c:441
#, 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:451
+#: builtin/worktree.c:450
#, c-format
msgid "Preparing worktree (checking out '%s')"
msgstr "Préparation de l'arbre de travail (extraction de '%s')"
-#: builtin/worktree.c:457
+#: builtin/worktree.c:456
#, c-format
msgid "Preparing worktree (detached HEAD %s)"
msgstr "Préparation de l'arbre de travail (HEAD détachée %s)"
-#: builtin/worktree.c:498
+#: builtin/worktree.c:497
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:501
+#: builtin/worktree.c:500
msgid "create a new branch"
msgstr "créer une nouvelle branche"
-#: builtin/worktree.c:503
+#: builtin/worktree.c:502
msgid "create or reset a branch"
msgstr "créer ou réinitialiser une branche"
-#: builtin/worktree.c:505
+#: builtin/worktree.c:504
msgid "populate the new working tree"
msgstr "remplissage de la nouvelle copie de travail"
-#: builtin/worktree.c:506
+#: builtin/worktree.c:505
msgid "keep the new working tree locked"
msgstr "conserver le verrou sur le nouvel arbre de travail"
-#: builtin/worktree.c:509
+#: builtin/worktree.c:508
msgid "set up tracking mode (see git-branch(1))"
msgstr "régler le mode de suivi (voir git-branch(1))"
-#: builtin/worktree.c:512
+#: builtin/worktree.c:511
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:520
+#: builtin/worktree.c:519
msgid "-b, -B, and --detach are mutually exclusive"
msgstr "-b, -B et --detach sont mutuellement exclusifs"
-#: builtin/worktree.c:581
+#: builtin/worktree.c:580
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:681
+#: builtin/worktree.c:680
msgid "reason for locking"
msgstr "raison du verrouillage"
-#: builtin/worktree.c:693 builtin/worktree.c:726 builtin/worktree.c:800
-#: builtin/worktree.c:927
+#: builtin/worktree.c:692 builtin/worktree.c:725 builtin/worktree.c:799
+#: builtin/worktree.c:926
#, c-format
msgid "'%s' is not a working tree"
msgstr "'%s' n'est pas une copie de travail"
-#: builtin/worktree.c:695 builtin/worktree.c:728
+#: builtin/worktree.c:694 builtin/worktree.c:727
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:700
+#: builtin/worktree.c:699
#, c-format
msgid "'%s' is already locked, reason: %s"
msgstr "'%s' est déjà verrouillé, car '%s'"
-#: builtin/worktree.c:702
+#: builtin/worktree.c:701
#, c-format
msgid "'%s' is already locked"
msgstr "'%s' est déjà verrouillé"
-#: builtin/worktree.c:730
+#: builtin/worktree.c:729
#, c-format
msgid "'%s' is not locked"
msgstr "'%s' n'est pas verrouillé"
-#: builtin/worktree.c:771
+#: builtin/worktree.c:770
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:779
+#: builtin/worktree.c:778
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:802 builtin/worktree.c:929
+#: builtin/worktree.c:801 builtin/worktree.c:928
#, c-format
msgid "'%s' is a main working tree"
msgstr "'%s' est un arbre de travail principal"
-#: builtin/worktree.c:807
+#: builtin/worktree.c:806
#, 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:813
+#: builtin/worktree.c:812
#, c-format
msgid "target '%s' already exists"
msgstr "la cible '%s' existe déjà"
-#: builtin/worktree.c:821
+#: builtin/worktree.c:820
#, c-format
msgid ""
"cannot move a locked working tree, lock reason: %s\n"
@@ -21185,7 +21273,7 @@ msgstr ""
"verrouillage : %s\n"
"utilisez 'move -f -f' pour outrepasser ou déverrouiller avant"
-#: builtin/worktree.c:823
+#: builtin/worktree.c:822
msgid ""
"cannot move a locked working tree;\n"
"use 'move -f -f' to override or unlock first"
@@ -21193,37 +21281,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:826
+#: builtin/worktree.c:825
#, 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:831
+#: builtin/worktree.c:830
#, c-format
msgid "failed to move '%s' to '%s'"
msgstr "échec au déplacement de '%s' vers '%s'"
-#: builtin/worktree.c:879
+#: builtin/worktree.c:878
#, c-format
msgid "failed to run 'git status' on '%s'"
msgstr "échec du lancement de 'git status' sur '%s'"
-#: builtin/worktree.c:883
+#: builtin/worktree.c:882
#, c-format
-msgid "'%s' is dirty, use --force to delete it"
-msgstr "'%s' est sale, utilisez --force pour le supprimer"
+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:888
+#: builtin/worktree.c:887
#, 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:911
+#: builtin/worktree.c:910
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:934
+#: builtin/worktree.c:933
#, c-format
msgid ""
"cannot remove a locked working tree, lock reason: %s\n"
@@ -21233,7 +21323,7 @@ msgstr ""
"verrouillage : %s\n"
"utilisez 'move -f -f' pour outrepasser ou déverrouiller avant"
-#: builtin/worktree.c:936
+#: builtin/worktree.c:935
msgid ""
"cannot remove a locked working tree;\n"
"use 'remove -f -f' to override or unlock first"
@@ -21241,7 +21331,7 @@ msgstr ""
"impossible de supprimer un arbre de travail verrouillé;\n"
"utilisez 'move -f -f' pour outrepasser ou déverrouiller avant"
-#: builtin/worktree.c:939
+#: builtin/worktree.c:938
#, c-format
msgid "validation failed, cannot remove working tree: %s"
msgstr ""
@@ -21263,6 +21353,16 @@ msgstr "écrire l'objet arbre pour un sous-répertoire <préfixe>"
msgid "only useful for debugging"
msgstr "seulement utile pour le débogage"
+#: fast-import.c:3118
+#, c-format
+msgid "Expected 'mark' command, got %s"
+msgstr "commande 'mark' attendue, %s trouvé"
+
+#: fast-import.c:3123
+#, c-format
+msgid "Expected 'to' command, got %s"
+msgstr "commande 'to' attendue, %s trouvé"
+
#: credential-cache--daemon.c:223
#, c-format
msgid ""
@@ -21375,39 +21475,39 @@ msgstr ""
"l'alias '%s' modifie les variables d'environnement.\n"
"Vous pouvez utiliser '!git' dans l'alias pour le faire"
-#: git.c:377
+#: git.c:376
#, c-format
msgid "empty alias for %s"
msgstr "alias vide pour %s"
-#: git.c:380
+#: git.c:379
#, c-format
msgid "recursive alias: %s"
msgstr "alias recursif : %s"
-#: git.c:460
+#: git.c:459
msgid "write failure on standard output"
msgstr "échec d'écriture sur la sortie standard"
-#: git.c:462
+#: git.c:461
msgid "unknown write failure on standard output"
msgstr "échec inconnu d'écriture sur la sortie standard"
-#: git.c:464
+#: git.c:463
msgid "close failed on standard output"
msgstr "échec de fermeture de la sortie standard"
-#: git.c:793
+#: git.c:792
#, 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:843
+#: git.c:842
#, c-format
msgid "cannot handle %s as a builtin"
msgstr "impossible d'utiliser %s comme une fonction intégrée"
-#: git.c:856
+#: git.c:855
#, c-format
msgid ""
"usage: %s\n"
@@ -21416,13 +21516,13 @@ msgstr ""
"usage : %s\n"
"\n"
-#: git.c:876
+#: git.c:875
#, 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:888
+#: git.c:887
#, c-format
msgid "failed to run command '%s': %s\n"
msgstr "échec au lancement de la commande '%s' : %s\n"
@@ -21441,32 +21541,32 @@ msgstr "La délégation de commande n'est pas supporté avec cuRL < 7.22.0"
msgid "Public key pinning not supported with cURL < 7.44.0"
msgstr "L'épinglage de clé publique n'est pas supporté avec cuRL < 7.44.0"
-#: http.c:876
+#: http.c:878
msgid "CURLSSLOPT_NO_REVOKE not supported with cURL < 7.44.0"
msgstr "CURLSSLOPT_NO_REMOVE n'est pas supporté avec cuRL < 7.44.0"
-#: http.c:949
+#: http.c:951
msgid "Protocol restrictions not supported with cURL < 7.19.4"
msgstr "Les restrictions de protocole ne sont pas supportés avec cuRL < 7.19.4"
-#: http.c:1085
+#: http.c:1088
#, c-format
msgid "Unsupported SSL backend '%s'. Supported SSL backends:"
msgstr "Dorsale SSL '%s' non supportée. Dorsales SSL supportées :"
-#: http.c:1092
+#: http.c:1095
#, c-format
msgid "Could not set SSL backend to '%s': cURL was built without SSL backends"
msgstr ""
"Impossible de régler la dorsale SSL à '%s' : cURL a été construit sans "
"dorsale SSL"
-#: http.c:1096
+#: http.c:1099
#, c-format
msgid "Could not set SSL backend to '%s': already set"
msgstr "Impossible de spécifier le dorsal SSL à '%s' : déjà spécifié"
-#: http.c:1965
+#: http.c:1968
#, c-format
msgid ""
"unable to update url base from redirection:\n"
@@ -21477,130 +21577,130 @@ msgstr ""
" demandé : %s\n"
" redirection : %s"
-#: remote-curl.c:157
+#: remote-curl.c:166
#, c-format
msgid "invalid quoting in push-option value: '%s'"
msgstr "citation invalide dans la valeur push-option : '%s'"
-#: remote-curl.c:254
+#: remote-curl.c:263
#, 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:355
+#: remote-curl.c:364
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:386
+#: remote-curl.c:395
#, c-format
msgid "invalid server response; got '%s'"
msgstr "réponse du serveur invalide ; '%s' reçu"
-#: remote-curl.c:446
+#: remote-curl.c:455
#, c-format
msgid "repository '%s' not found"
msgstr "dépôt '%s' non trouvé"
-#: remote-curl.c:450
+#: remote-curl.c:459
#, c-format
msgid "Authentication failed for '%s'"
msgstr "Échec d'authentification pour '%s'"
-#: remote-curl.c:454
+#: remote-curl.c:463
#, c-format
msgid "unable to access '%s': %s"
msgstr "impossible d'accéder à '%s' : %s"
-#: remote-curl.c:460
+#: remote-curl.c:469
#, c-format
msgid "redirecting to %s"
msgstr "redirection vers %s"
-#: remote-curl.c:584
+#: remote-curl.c:593
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:664
+#: remote-curl.c:673
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:724
+#: remote-curl.c:733
#, c-format
msgid "RPC failed; %s"
msgstr "échec RPC ; %s"
-#: remote-curl.c:764
+#: remote-curl.c:773
msgid "cannot handle pushes this big"
msgstr "impossible de gérer des poussées aussi grosses"
-#: remote-curl.c:879
+#: remote-curl.c:888
#, 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:883
+#: remote-curl.c:892
#, 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:1014
+#: remote-curl.c:1023
msgid "dumb http transport does not support shallow capabilities"
msgstr "le protocole http idiot ne supporte la capacité superficielle"
-#: remote-curl.c:1028
+#: remote-curl.c:1037
msgid "fetch failed."
msgstr "échec du récupération."
-#: remote-curl.c:1076
+#: remote-curl.c:1085
msgid "cannot fetch by sha1 over smart http"
msgstr "impossible de récupérer par sha1 sur http intelligent"
-#: remote-curl.c:1120 remote-curl.c:1126
+#: remote-curl.c:1129 remote-curl.c:1135
#, c-format
msgid "protocol error: expected sha/ref, got '%s'"
msgstr "erreur de protocole : sha/ref attendu, '%s' trouvé"
-#: remote-curl.c:1138 remote-curl.c:1252
+#: remote-curl.c:1147 remote-curl.c:1261
#, c-format
msgid "http transport does not support %s"
msgstr "le transport http ne supporte pas %s"
-#: remote-curl.c:1174
+#: remote-curl.c:1183
msgid "git-http-push failed"
msgstr "échec de git-http-push"
-#: remote-curl.c:1360
+#: remote-curl.c:1367
msgid "remote-curl: usage: git remote-curl <remote> [<url>]"
msgstr "remote-curl: usage: git remote-curl <distant> [<url>]"
-#: remote-curl.c:1392
+#: remote-curl.c:1399
msgid "remote-curl: error reading command stream from git"
msgstr "remote-curl : erreur de lecture du flux de commande depuis git"
-#: remote-curl.c:1399
+#: remote-curl.c:1406
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:1439
+#: remote-curl.c:1446
#, c-format
msgid "remote-curl: unknown command '%s' from git"
msgstr "remote-curl : commande inconnue '%s' depuis git"
-#: list-objects-filter-options.h:61
+#: list-objects-filter-options.h:85
msgid "args"
msgstr "args"
-#: list-objects-filter-options.h:62
+#: list-objects-filter-options.h:86
msgid "object filtering"
msgstr "filtrage d'objet"
-#: parse-options.h:170
+#: parse-options.h:179
msgid "expiry-date"
msgstr "date-d'expiration"
-#: parse-options.h:184
+#: parse-options.h:193
msgid "no-op (backward compatibility)"
msgstr "sans action (rétrocompatibilité)"
diff --git a/po/git.pot b/po/git.pot
index d799696..ff00bc2 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: 2019-08-10 20:12+0800\n"
+"POT-Creation-Date: 2019-10-28 13:19+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"
@@ -58,7 +58,7 @@ msgstr ""
msgid "Exiting because of an unresolved conflict."
msgstr ""
-#: advice.c:193 builtin/merge.c:1327
+#: advice.c:193 builtin/merge.c:1332
msgid "You have not concluded your merge (MERGE_HEAD exists)."
msgstr ""
@@ -176,17 +176,7 @@ msgstr ""
msgid "inconsistent header lines %d and %d"
msgstr ""
-#: apply.c:1460
-#, c-format
-msgid "recount: unexpected line: %.*s"
-msgstr ""
-
-#: apply.c:1529
-#, c-format
-msgid "patch fragment without header at line %d: %.*s"
-msgstr ""
-
-#: apply.c:1551
+#: apply.c:1372
#, c-format
msgid ""
"git diff header lacks filename information when removing %d leading pathname "
@@ -197,527 +187,537 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: apply.c:1564
+#: apply.c:1385
#, c-format
msgid "git diff header lacks filename information (line %d)"
msgstr ""
-#: apply.c:1752
+#: apply.c:1481
+#, c-format
+msgid "recount: unexpected line: %.*s"
+msgstr ""
+
+#: apply.c:1550
+#, c-format
+msgid "patch fragment without header at line %d: %.*s"
+msgstr ""
+
+#: apply.c:1753
msgid "new file depends on old contents"
msgstr ""
-#: apply.c:1754
+#: apply.c:1755
msgid "deleted file still has contents"
msgstr ""
-#: apply.c:1788
+#: apply.c:1789
#, c-format
msgid "corrupt patch at line %d"
msgstr ""
-#: apply.c:1825
+#: apply.c:1826
#, c-format
msgid "new file %s depends on old contents"
msgstr ""
-#: apply.c:1827
+#: apply.c:1828
#, c-format
msgid "deleted file %s still has contents"
msgstr ""
-#: apply.c:1830
+#: apply.c:1831
#, c-format
msgid "** warning: file %s becomes empty but is not deleted"
msgstr ""
-#: apply.c:1977
+#: apply.c:1978
#, c-format
msgid "corrupt binary patch at line %d: %.*s"
msgstr ""
-#: apply.c:2014
+#: apply.c:2015
#, c-format
msgid "unrecognized binary patch at line %d"
msgstr ""
-#: apply.c:2176
+#: apply.c:2177
#, c-format
msgid "patch with only garbage at line %d"
msgstr ""
-#: apply.c:2262
+#: apply.c:2263
#, c-format
msgid "unable to read symlink %s"
msgstr ""
-#: apply.c:2266
+#: apply.c:2267
#, c-format
msgid "unable to open or read %s"
msgstr ""
-#: apply.c:2925
+#: apply.c:2926
#, c-format
msgid "invalid start of line: '%c'"
msgstr ""
-#: apply.c:3046
+#: apply.c:3047
#, 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:3058
+#: apply.c:3059
#, c-format
msgid "Context reduced to (%ld/%ld) to apply fragment at %d"
msgstr ""
-#: apply.c:3064
+#: apply.c:3065
#, c-format
msgid ""
"while searching for:\n"
"%.*s"
msgstr ""
-#: apply.c:3086
+#: apply.c:3087
#, c-format
msgid "missing binary patch data for '%s'"
msgstr ""
-#: apply.c:3094
+#: apply.c:3095
#, c-format
msgid "cannot reverse-apply a binary patch without the reverse hunk to '%s'"
msgstr ""
-#: apply.c:3141
+#: apply.c:3142
#, c-format
msgid "cannot apply binary patch to '%s' without full index line"
msgstr ""
-#: apply.c:3151
+#: apply.c:3152
#, c-format
msgid ""
"the patch applies to '%s' (%s), which does not match the current contents."
msgstr ""
-#: apply.c:3159
+#: apply.c:3160
#, c-format
msgid "the patch applies to an empty '%s' but it is not empty"
msgstr ""
-#: apply.c:3177
+#: apply.c:3178
#, c-format
msgid "the necessary postimage %s for '%s' cannot be read"
msgstr ""
-#: apply.c:3190
+#: apply.c:3191
#, c-format
msgid "binary patch does not apply to '%s'"
msgstr ""
-#: apply.c:3196
+#: apply.c:3197
#, c-format
msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)"
msgstr ""
-#: apply.c:3217
+#: apply.c:3218
#, c-format
msgid "patch failed: %s:%ld"
msgstr ""
-#: apply.c:3340
+#: apply.c:3341
#, c-format
msgid "cannot checkout %s"
msgstr ""
-#: apply.c:3392 apply.c:3403 apply.c:3449 midx.c:62 setup.c:279
+#: apply.c:3393 apply.c:3404 apply.c:3450 midx.c:61 setup.c:280
#, c-format
msgid "failed to read %s"
msgstr ""
-#: apply.c:3400
+#: apply.c:3401
#, c-format
msgid "reading from '%s' beyond a symbolic link"
msgstr ""
-#: apply.c:3429 apply.c:3672
+#: apply.c:3430 apply.c:3673
#, c-format
msgid "path %s has been renamed/deleted"
msgstr ""
-#: apply.c:3515 apply.c:3687
+#: apply.c:3516 apply.c:3688
#, c-format
msgid "%s: does not exist in index"
msgstr ""
-#: apply.c:3524 apply.c:3695
+#: apply.c:3525 apply.c:3696
#, c-format
msgid "%s: does not match index"
msgstr ""
-#: apply.c:3559
+#: apply.c:3560
msgid "repository lacks the necessary blob to fall back on 3-way merge."
msgstr ""
-#: apply.c:3562
+#: apply.c:3563
#, c-format
msgid "Falling back to three-way merge...\n"
msgstr ""
-#: apply.c:3578 apply.c:3582
+#: apply.c:3579 apply.c:3583
#, c-format
msgid "cannot read the current contents of '%s'"
msgstr ""
-#: apply.c:3594
+#: apply.c:3595
#, c-format
msgid "Failed to fall back on three-way merge...\n"
msgstr ""
-#: apply.c:3608
+#: apply.c:3609
#, c-format
msgid "Applied patch to '%s' with conflicts.\n"
msgstr ""
-#: apply.c:3613
+#: apply.c:3614
#, c-format
msgid "Applied patch to '%s' cleanly.\n"
msgstr ""
-#: apply.c:3639
+#: apply.c:3640
msgid "removal patch leaves file contents"
msgstr ""
-#: apply.c:3712
+#: apply.c:3713
#, c-format
msgid "%s: wrong type"
msgstr ""
-#: apply.c:3714
+#: apply.c:3715
#, c-format
msgid "%s has type %o, expected %o"
msgstr ""
-#: apply.c:3865 apply.c:3867 read-cache.c:830 read-cache.c:856
+#: apply.c:3866 apply.c:3868 read-cache.c:830 read-cache.c:856
#: read-cache.c:1309
#, c-format
msgid "invalid path '%s'"
msgstr ""
-#: apply.c:3923
+#: apply.c:3924
#, c-format
msgid "%s: already exists in index"
msgstr ""
-#: apply.c:3926
+#: apply.c:3927
#, c-format
msgid "%s: already exists in working directory"
msgstr ""
-#: apply.c:3946
+#: apply.c:3947
#, c-format
msgid "new mode (%o) of %s does not match old mode (%o)"
msgstr ""
-#: apply.c:3951
+#: apply.c:3952
#, c-format
msgid "new mode (%o) of %s does not match old mode (%o) of %s"
msgstr ""
-#: apply.c:3971
+#: apply.c:3972
#, c-format
msgid "affected file '%s' is beyond a symbolic link"
msgstr ""
-#: apply.c:3975
+#: apply.c:3976
#, c-format
msgid "%s: patch does not apply"
msgstr ""
-#: apply.c:3990
+#: apply.c:3991
#, c-format
msgid "Checking patch %s..."
msgstr ""
-#: apply.c:4082
+#: apply.c:4083
#, c-format
msgid "sha1 information is lacking or useless for submodule %s"
msgstr ""
-#: apply.c:4089
+#: apply.c:4090
#, c-format
msgid "mode change for %s, which is not in current HEAD"
msgstr ""
-#: apply.c:4092
+#: apply.c:4093
#, c-format
msgid "sha1 information is lacking or useless (%s)."
msgstr ""
-#: apply.c:4097 builtin/checkout.c:278 builtin/reset.c:143
+#: apply.c:4098 builtin/checkout.c:279 builtin/reset.c:143
#, c-format
msgid "make_cache_entry failed for path '%s'"
msgstr ""
-#: apply.c:4101
+#: apply.c:4102
#, c-format
msgid "could not add %s to temporary index"
msgstr ""
-#: apply.c:4111
+#: apply.c:4112
#, c-format
msgid "could not write temporary index to %s"
msgstr ""
-#: apply.c:4249
+#: apply.c:4250
#, c-format
msgid "unable to remove %s from index"
msgstr ""
-#: apply.c:4283
+#: apply.c:4284
#, c-format
msgid "corrupt patch for submodule %s"
msgstr ""
-#: apply.c:4289
+#: apply.c:4290
#, c-format
msgid "unable to stat newly created file '%s'"
msgstr ""
-#: apply.c:4297
+#: apply.c:4298
#, c-format
msgid "unable to create backing store for newly created file %s"
msgstr ""
-#: apply.c:4303 apply.c:4448
+#: apply.c:4304 apply.c:4449
#, c-format
msgid "unable to add cache entry for %s"
msgstr ""
-#: apply.c:4346
+#: apply.c:4347
#, c-format
msgid "failed to write to '%s'"
msgstr ""
-#: apply.c:4350
+#: apply.c:4351
#, c-format
msgid "closing file '%s'"
msgstr ""
-#: apply.c:4420
+#: apply.c:4421
#, c-format
msgid "unable to write file '%s' mode %o"
msgstr ""
-#: apply.c:4518
+#: apply.c:4519
#, c-format
msgid "Applied patch %s cleanly."
msgstr ""
-#: apply.c:4526
+#: apply.c:4527
msgid "internal error"
msgstr ""
-#: apply.c:4529
+#: apply.c:4530
#, c-format
msgid "Applying patch %%s with %d reject..."
msgid_plural "Applying patch %%s with %d rejects..."
msgstr[0] ""
msgstr[1] ""
-#: apply.c:4540
+#: apply.c:4541
#, c-format
msgid "truncating .rej filename to %.*s.rej"
msgstr ""
-#: apply.c:4548 builtin/fetch.c:878 builtin/fetch.c:1168
+#: apply.c:4549 builtin/fetch.c:898 builtin/fetch.c:1194
#, c-format
msgid "cannot open %s"
msgstr ""
-#: apply.c:4562
+#: apply.c:4563
#, c-format
msgid "Hunk #%d applied cleanly."
msgstr ""
-#: apply.c:4566
+#: apply.c:4567
#, c-format
msgid "Rejected hunk #%d."
msgstr ""
-#: apply.c:4676
+#: apply.c:4686
#, c-format
msgid "Skipped patch '%s'."
msgstr ""
-#: apply.c:4684
+#: apply.c:4694
msgid "unrecognized input"
msgstr ""
-#: apply.c:4704
+#: apply.c:4714
msgid "unable to read index file"
msgstr ""
-#: apply.c:4859
+#: apply.c:4871
#, c-format
msgid "can't open patch '%s': %s"
msgstr ""
-#: apply.c:4886
+#: apply.c:4898
#, c-format
msgid "squelched %d whitespace error"
msgid_plural "squelched %d whitespace errors"
msgstr[0] ""
msgstr[1] ""
-#: apply.c:4892 apply.c:4907
+#: apply.c:4904 apply.c:4919
#, c-format
msgid "%d line adds whitespace errors."
msgid_plural "%d lines add whitespace errors."
msgstr[0] ""
msgstr[1] ""
-#: apply.c:4900
+#: apply.c:4912
#, 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:4916 builtin/add.c:540 builtin/mv.c:301 builtin/rm.c:390
+#: apply.c:4928 builtin/add.c:540 builtin/mv.c:301 builtin/rm.c:390
msgid "Unable to write new index file"
msgstr ""
-#: apply.c:4943 apply.c:4946 builtin/am.c:2208 builtin/am.c:2211
-#: builtin/clone.c:123 builtin/fetch.c:128 builtin/merge.c:273
-#: builtin/pull.c:208 builtin/submodule--helper.c:407
+#: apply.c:4955 apply.c:4958 builtin/am.c:2197 builtin/am.c:2200
+#: builtin/clone.c:122 builtin/fetch.c:143 builtin/merge.c:273
+#: builtin/pull.c:209 builtin/submodule--helper.c:407
#: builtin/submodule--helper.c:1367 builtin/submodule--helper.c:1370
#: builtin/submodule--helper.c:1850 builtin/submodule--helper.c:1853
#: builtin/submodule--helper.c:2092 git-add--interactive.perl:211
msgid "path"
msgstr ""
-#: apply.c:4944
+#: apply.c:4956
msgid "don't apply changes matching the given path"
msgstr ""
-#: apply.c:4947
+#: apply.c:4959
msgid "apply changes matching the given path"
msgstr ""
-#: apply.c:4949 builtin/am.c:2217
+#: apply.c:4961 builtin/am.c:2206
msgid "num"
msgstr ""
-#: apply.c:4950
+#: apply.c:4962
msgid "remove <num> leading slashes from traditional diff paths"
msgstr ""
-#: apply.c:4953
+#: apply.c:4965
msgid "ignore additions made by the patch"
msgstr ""
-#: apply.c:4955
+#: apply.c:4967
msgid "instead of applying the patch, output diffstat for the input"
msgstr ""
-#: apply.c:4959
+#: apply.c:4971
msgid "show number of added and deleted lines in decimal notation"
msgstr ""
-#: apply.c:4961
+#: apply.c:4973
msgid "instead of applying the patch, output a summary for the input"
msgstr ""
-#: apply.c:4963
+#: apply.c:4975
msgid "instead of applying the patch, see if the patch is applicable"
msgstr ""
-#: apply.c:4965
+#: apply.c:4977
msgid "make sure the patch is applicable to the current index"
msgstr ""
-#: apply.c:4967
+#: apply.c:4979
msgid "mark new files with `git add --intent-to-add`"
msgstr ""
-#: apply.c:4969
+#: apply.c:4981
msgid "apply a patch without touching the working tree"
msgstr ""
-#: apply.c:4971
+#: apply.c:4983
msgid "accept a patch that touches outside the working area"
msgstr ""
-#: apply.c:4974
+#: apply.c:4986
msgid "also apply the patch (use with --stat/--summary/--check)"
msgstr ""
-#: apply.c:4976
+#: apply.c:4988
msgid "attempt three-way merge if a patch does not apply"
msgstr ""
-#: apply.c:4978
+#: apply.c:4990
msgid "build a temporary index based on embedded index information"
msgstr ""
-#: apply.c:4981 builtin/checkout-index.c:173 builtin/ls-files.c:524
+#: apply.c:4993 builtin/checkout-index.c:173 builtin/ls-files.c:524
msgid "paths are separated with NUL character"
msgstr ""
-#: apply.c:4983
+#: apply.c:4995
msgid "ensure at least <n> lines of context match"
msgstr ""
-#: apply.c:4984 builtin/am.c:2196 builtin/interpret-trailers.c:98
+#: apply.c:4996 builtin/am.c:2185 builtin/interpret-trailers.c:98
#: builtin/interpret-trailers.c:100 builtin/interpret-trailers.c:102
-#: builtin/pack-objects.c:3330 builtin/rebase.c:1421
+#: builtin/pack-objects.c:3310 builtin/rebase.c:1445
msgid "action"
msgstr ""
-#: apply.c:4985
+#: apply.c:4997
msgid "detect new or modified lines that have whitespace errors"
msgstr ""
-#: apply.c:4988 apply.c:4991
+#: apply.c:5000 apply.c:5003
msgid "ignore changes in whitespace when finding context"
msgstr ""
-#: apply.c:4994
+#: apply.c:5006
msgid "apply the patch in reverse"
msgstr ""
-#: apply.c:4996
+#: apply.c:5008
msgid "don't expect at least one line of context"
msgstr ""
-#: apply.c:4998
+#: apply.c:5010
msgid "leave the rejected hunks in corresponding *.rej files"
msgstr ""
-#: apply.c:5000
+#: apply.c:5012
msgid "allow overlapping hunks"
msgstr ""
-#: apply.c:5001 builtin/add.c:291 builtin/check-ignore.c:22
+#: apply.c:5013 builtin/add.c:291 builtin/check-ignore.c:22
#: builtin/commit.c:1337 builtin/count-objects.c:98 builtin/fsck.c:786
-#: builtin/log.c:2068 builtin/mv.c:123 builtin/read-tree.c:128
+#: builtin/log.c:2085 builtin/mv.c:123 builtin/read-tree.c:128
msgid "be verbose"
msgstr ""
-#: apply.c:5003
+#: apply.c:5015
msgid "tolerate incorrectly detected missing new-line at the end of file"
msgstr ""
-#: apply.c:5006
+#: apply.c:5018
msgid "do not trust the line counts in the hunk headers"
msgstr ""
-#: apply.c:5008 builtin/am.c:2205
+#: apply.c:5020 builtin/am.c:2194
msgid "root"
msgstr ""
-#: apply.c:5009
+#: apply.c:5021
msgid "prepend <root> to all filenames"
msgstr ""
@@ -770,7 +770,7 @@ msgstr ""
msgid "archive format"
msgstr ""
-#: archive.c:458 builtin/log.c:1580
+#: archive.c:458 builtin/log.c:1581
msgid "prefix"
msgstr ""
@@ -778,11 +778,12 @@ msgstr ""
msgid "prepend prefix to each pathname in the archive"
msgstr ""
-#: archive.c:460 builtin/blame.c:862 builtin/blame.c:874 builtin/blame.c:875
-#: builtin/commit-tree.c:117 builtin/config.c:129 builtin/fast-export.c:1134
-#: builtin/fast-export.c:1136 builtin/grep.c:897 builtin/hash-object.c:105
-#: builtin/ls-files.c:560 builtin/ls-files.c:563 builtin/notes.c:412
-#: builtin/notes.c:578 builtin/read-tree.c:123 parse-options.h:177
+#: archive.c:460 builtin/blame.c:861 builtin/blame.c:873 builtin/blame.c:874
+#: builtin/commit-tree.c:117 builtin/config.c:129 builtin/fast-export.c:1162
+#: builtin/fast-export.c:1164 builtin/fast-export.c:1168 builtin/grep.c:899
+#: builtin/hash-object.c:105 builtin/ls-files.c:560 builtin/ls-files.c:563
+#: builtin/notes.c:412 builtin/notes.c:578 builtin/read-tree.c:123
+#: parse-options.h:186
msgid "file"
msgstr ""
@@ -814,7 +815,7 @@ msgstr ""
msgid "list supported archive formats"
msgstr ""
-#: archive.c:479 builtin/archive.c:91 builtin/clone.c:113 builtin/clone.c:116
+#: archive.c:479 builtin/archive.c:91 builtin/clone.c:112 builtin/clone.c:115
#: builtin/submodule--helper.c:1379 builtin/submodule--helper.c:1859
msgid "repo"
msgstr ""
@@ -823,7 +824,7 @@ msgstr ""
msgid "retrieve the archive from remote repository <repo>"
msgstr ""
-#: archive.c:481 builtin/archive.c:93 builtin/difftool.c:707
+#: archive.c:481 builtin/archive.c:93 builtin/difftool.c:715
#: builtin/notes.c:498
msgid "command"
msgstr ""
@@ -859,26 +860,26 @@ msgstr ""
msgid "cannot stream blob %s"
msgstr ""
-#: archive-tar.c:260 archive-zip.c:363
+#: archive-tar.c:266 archive-zip.c:363
#, c-format
msgid "unsupported file mode: 0%o (SHA1: %s)"
msgstr ""
-#: archive-tar.c:287 archive-zip.c:353
+#: archive-tar.c:293 archive-zip.c:353
#, c-format
msgid "cannot read %s"
msgstr ""
-#: archive-tar.c:459
+#: archive-tar.c:465
#, c-format
msgid "unable to start '%s' filter"
msgstr ""
-#: archive-tar.c:462
+#: archive-tar.c:468
msgid "unable to redirect descriptor"
msgstr ""
-#: archive-tar.c:469
+#: archive-tar.c:475
#, c-format
msgid "'%s' filter reported error"
msgstr ""
@@ -903,17 +904,17 @@ msgstr ""
msgid "timestamp too large for this system: %<PRIuMAX>"
msgstr ""
-#: attr.c:211
+#: attr.c:213
#, c-format
msgid "%.*s is not a valid attribute name"
msgstr ""
-#: attr.c:368
+#: attr.c:370
#, c-format
msgid "%s not allowed: %s:%d"
msgstr ""
-#: attr.c:408
+#: attr.c:410
msgid ""
"Negative patterns are ignored in git attributes\n"
"Use '\\!' for literal leading exclamation."
@@ -1024,37 +1025,37 @@ msgid_plural "Bisecting: %d revisions left to test after this %s\n"
msgstr[0] ""
msgstr[1] ""
-#: blame.c:2697
+#: blame.c:2700
msgid "--contents and --reverse do not blend well."
msgstr ""
-#: blame.c:2711
+#: blame.c:2714
msgid "cannot use --contents with final commit object name"
msgstr ""
-#: blame.c:2732
+#: blame.c:2735
msgid "--reverse and --first-parent together require specified latest commit"
msgstr ""
-#: blame.c:2741 bundle.c:167 ref-filter.c:2196 remote.c:1938 sequencer.c:2033
-#: sequencer.c:4348 builtin/commit.c:1020 builtin/log.c:387 builtin/log.c:963
-#: builtin/log.c:1451 builtin/log.c:1827 builtin/log.c:2117 builtin/merge.c:411
-#: builtin/pack-objects.c:3148 builtin/pack-objects.c:3163
+#: blame.c:2744 bundle.c:167 ref-filter.c:2203 remote.c:1941 sequencer.c:1971
+#: sequencer.c:4305 builtin/commit.c:1020 builtin/log.c:387 builtin/log.c:964
+#: builtin/log.c:1452 builtin/log.c:1844 builtin/log.c:2134 builtin/merge.c:411
+#: builtin/pack-objects.c:3128 builtin/pack-objects.c:3143
#: builtin/shortlog.c:192
msgid "revision walk setup failed"
msgstr ""
-#: blame.c:2759
+#: blame.c:2762
msgid ""
"--reverse --first-parent together require range along first-parent chain"
msgstr ""
-#: blame.c:2770
+#: blame.c:2773
#, c-format
msgid "no such path %s in %s"
msgstr ""
-#: blame.c:2781
+#: blame.c:2784
#, c-format
msgid "cannot read blob %s for path %s"
msgstr ""
@@ -1193,7 +1194,7 @@ msgstr ""
msgid "unrecognized header: %s%s (%d)"
msgstr ""
-#: bundle.c:90 rerere.c:480 rerere.c:690 sequencer.c:2283 sequencer.c:3024
+#: bundle.c:90 rerere.c:480 rerere.c:690 sequencer.c:2221 sequencer.c:2962
#: builtin/commit.c:791
#, c-format
msgid "could not open '%s'"
@@ -1246,7 +1247,7 @@ msgstr ""
msgid "ref '%s' is excluded by the rev-list options"
msgstr ""
-#: bundle.c:460 builtin/log.c:202 builtin/log.c:1732 builtin/shortlog.c:306
+#: bundle.c:460 builtin/log.c:202 builtin/log.c:1733 builtin/shortlog.c:306
#, c-format
msgid "unrecognized argument: %s"
msgstr ""
@@ -1269,8 +1270,8 @@ msgstr ""
msgid "invalid color value: %.*s"
msgstr ""
-#: commit.c:50 sequencer.c:2727 builtin/am.c:355 builtin/am.c:399
-#: builtin/am.c:1378 builtin/am.c:2020 builtin/replace.c:455
+#: commit.c:50 sequencer.c:2665 builtin/am.c:354 builtin/am.c:398
+#: builtin/am.c:1366 builtin/am.c:2009 builtin/replace.c:456
#, c-format
msgid "could not parse %s"
msgstr ""
@@ -1292,27 +1293,27 @@ msgid ""
"\"git config advice.graftFileDeprecated false\""
msgstr ""
-#: commit.c:1127
+#: commit.c:1128
#, c-format
msgid "Commit %s has an untrusted GPG signature, allegedly by %s."
msgstr ""
-#: commit.c:1130
+#: commit.c:1131
#, c-format
msgid "Commit %s has a bad GPG signature allegedly by %s."
msgstr ""
-#: commit.c:1133
+#: commit.c:1134
#, c-format
msgid "Commit %s does not have a GPG signature."
msgstr ""
-#: commit.c:1136
+#: commit.c:1137
#, c-format
msgid "Commit %s has a good GPG signature by %s\n"
msgstr ""
-#: commit.c:1390
+#: commit.c:1391
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"
@@ -1369,193 +1370,208 @@ msgstr ""
msgid "unable to find all commit-graph files"
msgstr ""
-#: commit-graph.c:554 commit-graph.c:614
+#: commit-graph.c:561 commit-graph.c:621
msgid "invalid commit position. commit-graph is likely corrupt"
msgstr ""
-#: commit-graph.c:575
+#: commit-graph.c:582
#, c-format
msgid "could not find commit %s"
msgstr ""
-#: commit-graph.c:1002 builtin/pack-objects.c:2657
+#: commit-graph.c:855 builtin/am.c:1287
+#, c-format
+msgid "unable to parse commit %s"
+msgstr ""
+
+#: commit-graph.c:859
+#, c-format
+msgid "unable to get tree for %s"
+msgstr ""
+
+#: commit-graph.c:1017 builtin/pack-objects.c:2641
#, c-format
msgid "unable to get type of object %s"
msgstr ""
-#: commit-graph.c:1034
+#: commit-graph.c:1049
msgid "Loading known commits in commit graph"
msgstr ""
-#: commit-graph.c:1051
+#: commit-graph.c:1066
msgid "Expanding reachable commits in commit graph"
msgstr ""
-#: commit-graph.c:1070
+#: commit-graph.c:1085
msgid "Clearing commit marks in commit graph"
msgstr ""
-#: commit-graph.c:1089
+#: commit-graph.c:1104
msgid "Computing commit graph generation numbers"
msgstr ""
-#: commit-graph.c:1163
+#: commit-graph.c:1179
#, c-format
msgid "Finding commits for commit graph in %d pack"
msgid_plural "Finding commits for commit graph in %d packs"
msgstr[0] ""
msgstr[1] ""
-#: commit-graph.c:1176
+#: commit-graph.c:1192
#, c-format
msgid "error adding pack %s"
msgstr ""
-#: commit-graph.c:1180
+#: commit-graph.c:1196
#, c-format
msgid "error opening index for %s"
msgstr ""
-#: commit-graph.c:1204
+#: commit-graph.c:1220
#, c-format
msgid "Finding commits for commit graph from %d ref"
msgid_plural "Finding commits for commit graph from %d refs"
msgstr[0] ""
msgstr[1] ""
-#: commit-graph.c:1238
+#: commit-graph.c:1240
+#, c-format
+msgid "invalid commit object id: %s"
+msgstr ""
+
+#: commit-graph.c:1255
msgid "Finding commits for commit graph among packed objects"
msgstr ""
-#: commit-graph.c:1253
+#: commit-graph.c:1270
msgid "Counting distinct commits in commit graph"
msgstr ""
-#: commit-graph.c:1284
+#: commit-graph.c:1300
msgid "Finding extra edges in commit graph"
msgstr ""
-#: commit-graph.c:1332
+#: commit-graph.c:1346
msgid "failed to write correct number of base graph ids"
msgstr ""
-#: commit-graph.c:1365 midx.c:811
+#: commit-graph.c:1379 midx.c:810
#, c-format
msgid "unable to create leading directories of %s"
msgstr ""
-#: commit-graph.c:1377 builtin/index-pack.c:306 builtin/repack.c:240
+#: commit-graph.c:1391 builtin/index-pack.c:306 builtin/repack.c:241
#, c-format
msgid "unable to create '%s'"
msgstr ""
-#: commit-graph.c:1437
+#: commit-graph.c:1451
#, 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:1478
+#: commit-graph.c:1492
msgid "unable to open commit-graph chain file"
msgstr ""
-#: commit-graph.c:1490
+#: commit-graph.c:1504
msgid "failed to rename base commit-graph file"
msgstr ""
-#: commit-graph.c:1510
+#: commit-graph.c:1524
msgid "failed to rename temporary commit-graph file"
msgstr ""
-#: commit-graph.c:1621
+#: commit-graph.c:1635
msgid "Scanning merged commits"
msgstr ""
-#: commit-graph.c:1632
+#: commit-graph.c:1646
#, c-format
msgid "unexpected duplicate commit id %s"
msgstr ""
-#: commit-graph.c:1657
+#: commit-graph.c:1670
msgid "Merging commit-graph"
msgstr ""
-#: commit-graph.c:1844
+#: commit-graph.c:1860
#, c-format
msgid "the commit graph format cannot write %d commits"
msgstr ""
-#: commit-graph.c:1855
+#: commit-graph.c:1871
msgid "too many commits to write graph"
msgstr ""
-#: commit-graph.c:1945
+#: commit-graph.c:1961
msgid "the commit-graph file has incorrect checksum and is likely corrupt"
msgstr ""
-#: commit-graph.c:1955
+#: commit-graph.c:1971
#, c-format
msgid "commit-graph has incorrect OID order: %s then %s"
msgstr ""
-#: commit-graph.c:1965 commit-graph.c:1980
+#: commit-graph.c:1981 commit-graph.c:1996
#, c-format
msgid "commit-graph has incorrect fanout value: fanout[%d] = %u != %u"
msgstr ""
-#: commit-graph.c:1972
+#: commit-graph.c:1988
#, c-format
msgid "failed to parse commit %s from commit-graph"
msgstr ""
-#: commit-graph.c:1989
+#: commit-graph.c:2006
msgid "Verifying commits in commit graph"
msgstr ""
-#: commit-graph.c:2002
+#: commit-graph.c:2020
#, c-format
msgid "failed to parse commit %s from object database for commit-graph"
msgstr ""
-#: commit-graph.c:2009
+#: commit-graph.c:2027
#, c-format
msgid "root tree OID for commit %s in commit-graph is %s != %s"
msgstr ""
-#: commit-graph.c:2019
+#: commit-graph.c:2037
#, c-format
msgid "commit-graph parent list for commit %s is too long"
msgstr ""
-#: commit-graph.c:2028
+#: commit-graph.c:2046
#, c-format
msgid "commit-graph parent for %s is %s != %s"
msgstr ""
-#: commit-graph.c:2041
+#: commit-graph.c:2059
#, c-format
msgid "commit-graph parent list for commit %s terminates early"
msgstr ""
-#: commit-graph.c:2046
+#: commit-graph.c:2064
#, c-format
msgid ""
"commit-graph has generation number zero for commit %s, but non-zero elsewhere"
msgstr ""
-#: commit-graph.c:2050
+#: commit-graph.c:2068
#, c-format
msgid ""
"commit-graph has non-zero generation number for commit %s, but zero elsewhere"
msgstr ""
-#: commit-graph.c:2065
+#: commit-graph.c:2083
#, c-format
msgid "commit-graph generation for commit %s is %u != %u"
msgstr ""
-#: commit-graph.c:2071
+#: commit-graph.c:2089
#, c-format
msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>"
msgstr ""
@@ -1597,7 +1613,7 @@ msgstr ""
msgid "key does not contain variable name: %s"
msgstr ""
-#: config.c:406 sequencer.c:2463
+#: config.c:406 sequencer.c:2401
#, c-format
msgid "invalid key: %s"
msgstr ""
@@ -1719,149 +1735,144 @@ msgstr ""
msgid "invalid mode for object creation: %s"
msgstr ""
-#: config.c:1430
+#: config.c:1425
#, c-format
msgid "malformed value for %s"
msgstr ""
-#: config.c:1456
+#: config.c:1451
#, c-format
msgid "malformed value for %s: %s"
msgstr ""
-#: config.c:1457
+#: config.c:1452
msgid "must be one of nothing, matching, simple, upstream or current"
msgstr ""
-#: config.c:1518 builtin/pack-objects.c:3410
+#: config.c:1513 builtin/pack-objects.c:3394
#, c-format
msgid "bad pack compression level %d"
msgstr ""
-#: config.c:1639
+#: config.c:1634
#, c-format
msgid "unable to load config blob object '%s'"
msgstr ""
-#: config.c:1642
+#: config.c:1637
#, c-format
msgid "reference '%s' does not point to a blob"
msgstr ""
-#: config.c:1659
+#: config.c:1654
#, c-format
msgid "unable to resolve config blob '%s'"
msgstr ""
-#: config.c:1689
+#: config.c:1684
#, c-format
msgid "failed to parse %s"
msgstr ""
-#: config.c:1745
+#: config.c:1740
msgid "unable to parse command-line config"
msgstr ""
-#: config.c:2094
+#: config.c:2091
msgid "unknown error occurred while reading the configuration files"
msgstr ""
-#: config.c:2264
+#: config.c:2261
#, c-format
msgid "Invalid %s: '%s'"
msgstr ""
-#: config.c:2307
-#, c-format
-msgid "unknown core.untrackedCache value '%s'; using 'keep' default value"
-msgstr ""
-
-#: config.c:2333
+#: config.c:2306
#, c-format
msgid "splitIndex.maxPercentChange value '%d' should be between 0 and 100"
msgstr ""
-#: config.c:2379
+#: config.c:2352
#, c-format
msgid "unable to parse '%s' from command-line config"
msgstr ""
-#: config.c:2381
+#: config.c:2354
#, c-format
msgid "bad config variable '%s' in file '%s' at line %d"
msgstr ""
-#: config.c:2462
+#: config.c:2435
#, c-format
msgid "invalid section name '%s'"
msgstr ""
-#: config.c:2494
+#: config.c:2467
#, c-format
msgid "%s has multiple values"
msgstr ""
-#: config.c:2523
+#: config.c:2496
#, c-format
msgid "failed to write new configuration file %s"
msgstr ""
-#: config.c:2775 config.c:3099
+#: config.c:2748 config.c:3072
#, c-format
msgid "could not lock config file %s"
msgstr ""
-#: config.c:2786
+#: config.c:2759
#, c-format
msgid "opening %s"
msgstr ""
-#: config.c:2821 builtin/config.c:328
+#: config.c:2794 builtin/config.c:328
#, c-format
msgid "invalid pattern: %s"
msgstr ""
-#: config.c:2846
+#: config.c:2819
#, c-format
msgid "invalid config file %s"
msgstr ""
-#: config.c:2859 config.c:3112
+#: config.c:2832 config.c:3085
#, c-format
msgid "fstat on %s failed"
msgstr ""
-#: config.c:2870
+#: config.c:2843
#, c-format
msgid "unable to mmap '%s'"
msgstr ""
-#: config.c:2879 config.c:3117
+#: config.c:2852 config.c:3090
#, c-format
msgid "chmod on %s failed"
msgstr ""
-#: config.c:2964 config.c:3214
+#: config.c:2937 config.c:3187
#, c-format
msgid "could not write config file %s"
msgstr ""
-#: config.c:2998
+#: config.c:2971
#, c-format
msgid "could not set '%s' to '%s'"
msgstr ""
-#: config.c:3000 builtin/remote.c:782
+#: config.c:2973 builtin/remote.c:782
#, c-format
msgid "could not unset '%s'"
msgstr ""
-#: config.c:3090
+#: config.c:3063
#, c-format
msgid "invalid section name: %s"
msgstr ""
-#: config.c:3257
+#: config.c:3230
#, c-format
msgid "missing value for '%s'"
msgstr ""
@@ -1977,7 +1988,7 @@ msgstr ""
msgid "unknown port %s"
msgstr ""
-#: connect.c:845 connect.c:1171
+#: connect.c:845 connect.c:1175
#, c-format
msgid "strange hostname '%s' blocked"
msgstr ""
@@ -1992,211 +2003,211 @@ msgstr ""
msgid "cannot start proxy %s"
msgstr ""
-#: connect.c:924
+#: connect.c:928
msgid "no path specified; see 'git help pull' for valid url syntax"
msgstr ""
-#: connect.c:1119
+#: connect.c:1123
msgid "ssh variant 'simple' does not support -4"
msgstr ""
-#: connect.c:1131
+#: connect.c:1135
msgid "ssh variant 'simple' does not support -6"
msgstr ""
-#: connect.c:1148
+#: connect.c:1152
msgid "ssh variant 'simple' does not support setting port"
msgstr ""
-#: connect.c:1260
+#: connect.c:1264
#, c-format
msgid "strange pathname '%s' blocked"
msgstr ""
-#: connect.c:1307
+#: connect.c:1311
msgid "unable to fork"
msgstr ""
-#: connected.c:86 builtin/fsck.c:221 builtin/prune.c:43
+#: connected.c:88 builtin/fsck.c:221 builtin/prune.c:43
msgid "Checking connectivity"
msgstr ""
-#: connected.c:98
+#: connected.c:100
msgid "Could not run 'git rev-list'"
msgstr ""
-#: connected.c:118
+#: connected.c:120
msgid "failed write to rev-list"
msgstr ""
-#: connected.c:125
+#: connected.c:127
msgid "failed to close rev-list's stdin"
msgstr ""
-#: convert.c:193
+#: convert.c:194
#, c-format
msgid "illegal crlf_action %d"
msgstr ""
-#: convert.c:206
+#: convert.c:207
#, c-format
msgid "CRLF would be replaced by LF in %s"
msgstr ""
-#: convert.c:208
+#: convert.c:209
#, c-format
msgid ""
"CRLF will be replaced by LF in %s.\n"
"The file will have its original line endings in your working directory"
msgstr ""
-#: convert.c:216
+#: convert.c:217
#, c-format
msgid "LF would be replaced by CRLF in %s"
msgstr ""
-#: convert.c:218
+#: convert.c:219
#, c-format
msgid ""
"LF will be replaced by CRLF in %s.\n"
"The file will have its original line endings in your working directory"
msgstr ""
-#: convert.c:279
+#: convert.c:280
#, c-format
msgid "BOM is prohibited in '%s' if encoded as %s"
msgstr ""
-#: convert.c:286
+#: convert.c:287
#, c-format
msgid ""
"The file '%s' contains a byte order mark (BOM). Please use UTF-%s as working-"
"tree-encoding."
msgstr ""
-#: convert.c:304
+#: convert.c:305
#, c-format
msgid "BOM is required in '%s' if encoded as %s"
msgstr ""
-#: convert.c:306
+#: convert.c:307
#, c-format
msgid ""
"The file '%s' is missing a byte order mark (BOM). Please use UTF-%sBE or UTF-"
"%sLE (depending on the byte order) as working-tree-encoding."
msgstr ""
-#: convert.c:424 convert.c:495
+#: convert.c:425 convert.c:496
#, c-format
msgid "failed to encode '%s' from %s to %s"
msgstr ""
-#: convert.c:467
+#: convert.c:468
#, c-format
msgid "encoding '%s' from %s to %s and back is not the same"
msgstr ""
-#: convert.c:673
+#: convert.c:674
#, c-format
msgid "cannot fork to run external filter '%s'"
msgstr ""
-#: convert.c:693
+#: convert.c:694
#, c-format
msgid "cannot feed the input to external filter '%s'"
msgstr ""
-#: convert.c:700
+#: convert.c:701
#, c-format
msgid "external filter '%s' failed %d"
msgstr ""
-#: convert.c:735 convert.c:738
+#: convert.c:736 convert.c:739
#, c-format
msgid "read from external filter '%s' failed"
msgstr ""
-#: convert.c:741 convert.c:796
+#: convert.c:742 convert.c:797
#, c-format
msgid "external filter '%s' failed"
msgstr ""
-#: convert.c:844
+#: convert.c:845
msgid "unexpected filter type"
msgstr ""
-#: convert.c:855
+#: convert.c:856
msgid "path name too long for external filter"
msgstr ""
-#: convert.c:929
+#: convert.c:930
#, c-format
msgid ""
"external filter '%s' is not available anymore although not all paths have "
"been filtered"
msgstr ""
-#: convert.c:1228
+#: convert.c:1229
msgid "true/false are no valid working-tree-encodings"
msgstr ""
-#: convert.c:1398 convert.c:1432
+#: convert.c:1417 convert.c:1451
#, c-format
msgid "%s: clean filter '%s' failed"
msgstr ""
-#: convert.c:1476
+#: convert.c:1495
#, c-format
msgid "%s: smudge filter %s failed"
msgstr ""
-#: date.c:137
+#: date.c:138
msgid "in the future"
msgstr ""
-#: date.c:143
+#: date.c:144
#, c-format
msgid "%<PRIuMAX> second ago"
msgid_plural "%<PRIuMAX> seconds ago"
msgstr[0] ""
msgstr[1] ""
-#: date.c:150
+#: date.c:151
#, c-format
msgid "%<PRIuMAX> minute ago"
msgid_plural "%<PRIuMAX> minutes ago"
msgstr[0] ""
msgstr[1] ""
-#: date.c:157
+#: date.c:158
#, c-format
msgid "%<PRIuMAX> hour ago"
msgid_plural "%<PRIuMAX> hours ago"
msgstr[0] ""
msgstr[1] ""
-#: date.c:164
+#: date.c:165
#, c-format
msgid "%<PRIuMAX> day ago"
msgid_plural "%<PRIuMAX> days ago"
msgstr[0] ""
msgstr[1] ""
-#: date.c:170
+#: date.c:171
#, c-format
msgid "%<PRIuMAX> week ago"
msgid_plural "%<PRIuMAX> weeks ago"
msgstr[0] ""
msgstr[1] ""
-#: date.c:177
+#: date.c:178
#, c-format
msgid "%<PRIuMAX> month ago"
msgid_plural "%<PRIuMAX> months ago"
msgstr[0] ""
msgstr[1] ""
-#: date.c:188
+#: date.c:189
#, c-format
msgid "%<PRIuMAX> year"
msgid_plural "%<PRIuMAX> years"
@@ -2204,14 +2215,14 @@ msgstr[0] ""
msgstr[1] ""
#. TRANSLATORS: "%s" is "<n> years"
-#: date.c:191
+#: date.c:192
#, c-format
msgid "%s, %<PRIuMAX> month ago"
msgid_plural "%s, %<PRIuMAX> months ago"
msgstr[0] ""
msgstr[1] ""
-#: date.c:196 date.c:201
+#: date.c:197 date.c:202
#, c-format
msgid "%<PRIuMAX> year ago"
msgid_plural "%<PRIuMAX> years ago"
@@ -2247,7 +2258,7 @@ msgstr ""
msgid "failed to read orderfile '%s'"
msgstr ""
-#: diffcore-rename.c:544
+#: diffcore-rename.c:543
msgid "Performing inexact rename detection"
msgstr ""
@@ -2302,562 +2313,562 @@ msgid ""
"%s"
msgstr ""
-#: diff.c:4215
+#: diff.c:4218
#, c-format
msgid "external diff died, stopping at %s"
msgstr ""
-#: diff.c:4560
+#: diff.c:4563
msgid "--name-only, --name-status, --check and -s are mutually exclusive"
msgstr ""
-#: diff.c:4563
+#: diff.c:4566
msgid "-G, -S and --find-object are mutually exclusive"
msgstr ""
-#: diff.c:4641
+#: diff.c:4644
msgid "--follow requires exactly one pathspec"
msgstr ""
-#: diff.c:4689
+#: diff.c:4692
#, c-format
msgid "invalid --stat value: %s"
msgstr ""
-#: diff.c:4694 diff.c:4699 diff.c:4704 diff.c:4709 diff.c:5222
+#: diff.c:4697 diff.c:4702 diff.c:4707 diff.c:4712 diff.c:5225
#: parse-options.c:199 parse-options.c:203
#, c-format
msgid "%s expects a numerical value"
msgstr ""
-#: diff.c:4726
+#: diff.c:4729
#, c-format
msgid ""
"Failed to parse --dirstat/-X option parameter:\n"
"%s"
msgstr ""
-#: diff.c:4811
+#: diff.c:4814
#, c-format
msgid "unknown change class '%c' in --diff-filter=%s"
msgstr ""
-#: diff.c:4835
+#: diff.c:4838
#, c-format
msgid "unknown value after ws-error-highlight=%.*s"
msgstr ""
-#: diff.c:4849
+#: diff.c:4852
#, c-format
msgid "unable to resolve '%s'"
msgstr ""
-#: diff.c:4899 diff.c:4905
+#: diff.c:4902 diff.c:4908
#, c-format
msgid "%s expects <n>/<m> form"
msgstr ""
-#: diff.c:4917
+#: diff.c:4920
#, c-format
msgid "%s expects a character, got '%s'"
msgstr ""
-#: diff.c:4938
+#: diff.c:4941
#, c-format
msgid "bad --color-moved argument: %s"
msgstr ""
-#: diff.c:4957
+#: diff.c:4960
#, c-format
msgid "invalid mode '%s' in --color-moved-ws"
msgstr ""
-#: diff.c:4997
+#: diff.c:5000
msgid ""
"option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and "
"\"histogram\""
msgstr ""
-#: diff.c:5033 diff.c:5053
+#: diff.c:5036 diff.c:5056
#, c-format
msgid "invalid argument to %s"
msgstr ""
-#: diff.c:5191
+#: diff.c:5194
#, c-format
msgid "failed to parse --submodule option parameter: '%s'"
msgstr ""
-#: diff.c:5247
+#: diff.c:5250
#, c-format
msgid "bad --word-diff argument: %s"
msgstr ""
-#: diff.c:5270
+#: diff.c:5273
msgid "Diff output format options"
msgstr ""
-#: diff.c:5272 diff.c:5278
+#: diff.c:5275 diff.c:5281
msgid "generate patch"
msgstr ""
-#: diff.c:5275 builtin/log.c:172
+#: diff.c:5278 builtin/log.c:172
msgid "suppress diff output"
msgstr ""
-#: diff.c:5280 diff.c:5394 diff.c:5401
+#: diff.c:5283 diff.c:5397 diff.c:5404
msgid "<n>"
msgstr ""
-#: diff.c:5281 diff.c:5284
+#: diff.c:5284 diff.c:5287
msgid "generate diffs with <n> lines context"
msgstr ""
-#: diff.c:5286
+#: diff.c:5289
msgid "generate the diff in raw format"
msgstr ""
-#: diff.c:5289
+#: diff.c:5292
msgid "synonym for '-p --raw'"
msgstr ""
-#: diff.c:5293
+#: diff.c:5296
msgid "synonym for '-p --stat'"
msgstr ""
-#: diff.c:5297
+#: diff.c:5300
msgid "machine friendly --stat"
msgstr ""
-#: diff.c:5300
+#: diff.c:5303
msgid "output only the last line of --stat"
msgstr ""
-#: diff.c:5302 diff.c:5310
+#: diff.c:5305 diff.c:5313
msgid "<param1,param2>..."
msgstr ""
-#: diff.c:5303
+#: diff.c:5306
msgid ""
"output the distribution of relative amount of changes for each sub-directory"
msgstr ""
-#: diff.c:5307
+#: diff.c:5310
msgid "synonym for --dirstat=cumulative"
msgstr ""
-#: diff.c:5311
+#: diff.c:5314
msgid "synonym for --dirstat=files,param1,param2..."
msgstr ""
-#: diff.c:5315
+#: diff.c:5318
msgid "warn if changes introduce conflict markers or whitespace errors"
msgstr ""
-#: diff.c:5318
+#: diff.c:5321
msgid "condensed summary such as creations, renames and mode changes"
msgstr ""
-#: diff.c:5321
+#: diff.c:5324
msgid "show only names of changed files"
msgstr ""
-#: diff.c:5324
+#: diff.c:5327
msgid "show only names and status of changed files"
msgstr ""
-#: diff.c:5326
+#: diff.c:5329
msgid "<width>[,<name-width>[,<count>]]"
msgstr ""
-#: diff.c:5327
+#: diff.c:5330
msgid "generate diffstat"
msgstr ""
-#: diff.c:5329 diff.c:5332 diff.c:5335
+#: diff.c:5332 diff.c:5335 diff.c:5338
msgid "<width>"
msgstr ""
-#: diff.c:5330
+#: diff.c:5333
msgid "generate diffstat with a given width"
msgstr ""
-#: diff.c:5333
+#: diff.c:5336
msgid "generate diffstat with a given name width"
msgstr ""
-#: diff.c:5336
+#: diff.c:5339
msgid "generate diffstat with a given graph width"
msgstr ""
-#: diff.c:5338
+#: diff.c:5341
msgid "<count>"
msgstr ""
-#: diff.c:5339
+#: diff.c:5342
msgid "generate diffstat with limited lines"
msgstr ""
-#: diff.c:5342
+#: diff.c:5345
msgid "generate compact summary in diffstat"
msgstr ""
-#: diff.c:5345
+#: diff.c:5348
msgid "output a binary diff that can be applied"
msgstr ""
-#: diff.c:5348
+#: diff.c:5351
msgid "show full pre- and post-image object names on the \"index\" lines"
msgstr ""
-#: diff.c:5350
+#: diff.c:5353
msgid "show colored diff"
msgstr ""
-#: diff.c:5351
+#: diff.c:5354
msgid "<kind>"
msgstr ""
-#: diff.c:5352
+#: diff.c:5355
msgid ""
"highlight whitespace errors in the 'context', 'old' or 'new' lines in the "
"diff"
msgstr ""
-#: diff.c:5355
+#: diff.c:5358
msgid ""
"do not munge pathnames and use NULs as output field terminators in --raw or "
"--numstat"
msgstr ""
-#: diff.c:5358 diff.c:5361 diff.c:5364 diff.c:5470
+#: diff.c:5361 diff.c:5364 diff.c:5367 diff.c:5473
msgid "<prefix>"
msgstr ""
-#: diff.c:5359
+#: diff.c:5362
msgid "show the given source prefix instead of \"a/\""
msgstr ""
-#: diff.c:5362
+#: diff.c:5365
msgid "show the given destination prefix instead of \"b/\""
msgstr ""
-#: diff.c:5365
+#: diff.c:5368
msgid "prepend an additional prefix to every line of output"
msgstr ""
-#: diff.c:5368
+#: diff.c:5371
msgid "do not show any source or destination prefix"
msgstr ""
-#: diff.c:5371
+#: diff.c:5374
msgid "show context between diff hunks up to the specified number of lines"
msgstr ""
-#: diff.c:5375 diff.c:5380 diff.c:5385
+#: diff.c:5378 diff.c:5383 diff.c:5388
msgid "<char>"
msgstr ""
-#: diff.c:5376
+#: diff.c:5379
msgid "specify the character to indicate a new line instead of '+'"
msgstr ""
-#: diff.c:5381
+#: diff.c:5384
msgid "specify the character to indicate an old line instead of '-'"
msgstr ""
-#: diff.c:5386
+#: diff.c:5389
msgid "specify the character to indicate a context instead of ' '"
msgstr ""
-#: diff.c:5389
+#: diff.c:5392
msgid "Diff rename options"
msgstr ""
-#: diff.c:5390
+#: diff.c:5393
msgid "<n>[/<m>]"
msgstr ""
-#: diff.c:5391
+#: diff.c:5394
msgid "break complete rewrite changes into pairs of delete and create"
msgstr ""
-#: diff.c:5395
+#: diff.c:5398
msgid "detect renames"
msgstr ""
-#: diff.c:5399
+#: diff.c:5402
msgid "omit the preimage for deletes"
msgstr ""
-#: diff.c:5402
+#: diff.c:5405
msgid "detect copies"
msgstr ""
-#: diff.c:5406
+#: diff.c:5409
msgid "use unmodified files as source to find copies"
msgstr ""
-#: diff.c:5408
+#: diff.c:5411
msgid "disable rename detection"
msgstr ""
-#: diff.c:5411
+#: diff.c:5414
msgid "use empty blobs as rename source"
msgstr ""
-#: diff.c:5413
+#: diff.c:5416
msgid "continue listing the history of a file beyond renames"
msgstr ""
-#: diff.c:5416
+#: diff.c:5419
msgid ""
"prevent rename/copy detection if the number of rename/copy targets exceeds "
"given limit"
msgstr ""
-#: diff.c:5418
+#: diff.c:5421
msgid "Diff algorithm options"
msgstr ""
-#: diff.c:5420
+#: diff.c:5423
msgid "produce the smallest possible diff"
msgstr ""
-#: diff.c:5423
+#: diff.c:5426
msgid "ignore whitespace when comparing lines"
msgstr ""
-#: diff.c:5426
+#: diff.c:5429
msgid "ignore changes in amount of whitespace"
msgstr ""
-#: diff.c:5429
+#: diff.c:5432
msgid "ignore changes in whitespace at EOL"
msgstr ""
-#: diff.c:5432
+#: diff.c:5435
msgid "ignore carrier-return at the end of line"
msgstr ""
-#: diff.c:5435
+#: diff.c:5438
msgid "ignore changes whose lines are all blank"
msgstr ""
-#: diff.c:5438
+#: diff.c:5441
msgid "heuristic to shift diff hunk boundaries for easy reading"
msgstr ""
-#: diff.c:5441
+#: diff.c:5444
msgid "generate diff using the \"patience diff\" algorithm"
msgstr ""
-#: diff.c:5445
+#: diff.c:5448
msgid "generate diff using the \"histogram diff\" algorithm"
msgstr ""
-#: diff.c:5447
+#: diff.c:5450
msgid "<algorithm>"
msgstr ""
-#: diff.c:5448
+#: diff.c:5451
msgid "choose a diff algorithm"
msgstr ""
-#: diff.c:5450
+#: diff.c:5453
msgid "<text>"
msgstr ""
-#: diff.c:5451
+#: diff.c:5454
msgid "generate diff using the \"anchored diff\" algorithm"
msgstr ""
-#: diff.c:5453 diff.c:5462 diff.c:5465
+#: diff.c:5456 diff.c:5465 diff.c:5468
msgid "<mode>"
msgstr ""
-#: diff.c:5454
+#: diff.c:5457
msgid "show word diff, using <mode> to delimit changed words"
msgstr ""
-#: diff.c:5456 diff.c:5459 diff.c:5504
+#: diff.c:5459 diff.c:5462 diff.c:5507
msgid "<regex>"
msgstr ""
-#: diff.c:5457
+#: diff.c:5460
msgid "use <regex> to decide what a word is"
msgstr ""
-#: diff.c:5460
+#: diff.c:5463
msgid "equivalent to --word-diff=color --word-diff-regex=<regex>"
msgstr ""
-#: diff.c:5463
+#: diff.c:5466
msgid "moved lines of code are colored differently"
msgstr ""
-#: diff.c:5466
+#: diff.c:5469
msgid "how white spaces are ignored in --color-moved"
msgstr ""
-#: diff.c:5469
+#: diff.c:5472
msgid "Other diff options"
msgstr ""
-#: diff.c:5471
+#: diff.c:5474
msgid "when run from subdir, exclude changes outside and show relative paths"
msgstr ""
-#: diff.c:5475
+#: diff.c:5478
msgid "treat all files as text"
msgstr ""
-#: diff.c:5477
+#: diff.c:5480
msgid "swap two inputs, reverse the diff"
msgstr ""
-#: diff.c:5479
+#: diff.c:5482
msgid "exit with 1 if there were differences, 0 otherwise"
msgstr ""
-#: diff.c:5481
+#: diff.c:5484
msgid "disable all output of the program"
msgstr ""
-#: diff.c:5483
+#: diff.c:5486
msgid "allow an external diff helper to be executed"
msgstr ""
-#: diff.c:5485
+#: diff.c:5488
msgid "run external text conversion filters when comparing binary files"
msgstr ""
-#: diff.c:5487
+#: diff.c:5490
msgid "<when>"
msgstr ""
-#: diff.c:5488
+#: diff.c:5491
msgid "ignore changes to submodules in the diff generation"
msgstr ""
-#: diff.c:5491
+#: diff.c:5494
msgid "<format>"
msgstr ""
-#: diff.c:5492
+#: diff.c:5495
msgid "specify how differences in submodules are shown"
msgstr ""
-#: diff.c:5496
+#: diff.c:5499
msgid "hide 'git add -N' entries from the index"
msgstr ""
-#: diff.c:5499
+#: diff.c:5502
msgid "treat 'git add -N' entries as real in the index"
msgstr ""
-#: diff.c:5501
+#: diff.c:5504
msgid "<string>"
msgstr ""
-#: diff.c:5502
+#: diff.c:5505
msgid ""
"look for differences that change the number of occurrences of the specified "
"string"
msgstr ""
-#: diff.c:5505
+#: diff.c:5508
msgid ""
"look for differences that change the number of occurrences of the specified "
"regex"
msgstr ""
-#: diff.c:5508
+#: diff.c:5511
msgid "show all changes in the changeset with -S or -G"
msgstr ""
-#: diff.c:5511
+#: diff.c:5514
msgid "treat <string> in -S as extended POSIX regular expression"
msgstr ""
-#: diff.c:5514
+#: diff.c:5517
msgid "control the order in which files appear in the output"
msgstr ""
-#: diff.c:5515
+#: diff.c:5518
msgid "<object-id>"
msgstr ""
-#: diff.c:5516
+#: diff.c:5519
msgid ""
"look for differences that change the number of occurrences of the specified "
"object"
msgstr ""
-#: diff.c:5518
+#: diff.c:5521
msgid "[(A|C|D|M|R|T|U|X|B)...[*]]"
msgstr ""
-#: diff.c:5519
+#: diff.c:5522
msgid "select files by diff type"
msgstr ""
-#: diff.c:5521
+#: diff.c:5524
msgid "<file>"
msgstr ""
-#: diff.c:5522
+#: diff.c:5525
msgid "Output to a specific file"
msgstr ""
-#: diff.c:6177
+#: diff.c:6180
msgid "inexact rename detection was skipped due to too many files."
msgstr ""
-#: diff.c:6180
+#: diff.c:6183
msgid "only found copies from modified paths due to too many files."
msgstr ""
-#: diff.c:6183
+#: diff.c:6186
#, c-format
msgid ""
"you may want to set your %s variable to at least %d and retry the command."
msgstr ""
-#: dir.c:537
+#: dir.c:549
#, c-format
msgid "pathspec '%s' did not match any file(s) known to git"
msgstr ""
-#: dir.c:926
+#: dir.c:938
#, c-format
msgid "cannot use %s as an exclude file"
msgstr ""
-#: dir.c:1843
+#: dir.c:1877
#, c-format
msgid "could not open directory '%s'"
msgstr ""
-#: dir.c:2085
+#: dir.c:2128
msgid "failed to get kernel name and information"
msgstr ""
-#: dir.c:2209
+#: dir.c:2252
msgid "untracked cache is disabled on this system or location"
msgstr ""
-#: dir.c:3013
+#: dir.c:3056
#, c-format
msgid "index file corrupt in repo %s"
msgstr ""
-#: dir.c:3058 dir.c:3063
+#: dir.c:3101 dir.c:3106
#, c-format
msgid "could not create directories for %s"
msgstr ""
-#: dir.c:3092
+#: dir.c:3135
#, c-format
msgid "could not migrate git directory from '%s' to '%s'"
msgstr ""
@@ -2876,12 +2887,12 @@ msgstr ""
msgid "could not stat file '%s'"
msgstr ""
-#: environment.c:150
+#: environment.c:148
#, c-format
msgid "bad git namespace path \"%s\""
msgstr ""
-#: environment.c:332
+#: environment.c:330
#, c-format
msgid "could not set GIT_DIR to '%s'"
msgstr ""
@@ -2891,158 +2902,154 @@ msgstr ""
msgid "too many args to run %s"
msgstr ""
-#: fetch-object.c:17
-msgid "Remote with no URL"
-msgstr ""
-
-#: fetch-pack.c:151
+#: fetch-pack.c:150
msgid "git fetch-pack: expected shallow list"
msgstr ""
-#: fetch-pack.c:154
+#: fetch-pack.c:153
msgid "git fetch-pack: expected a flush packet after shallow list"
msgstr ""
-#: fetch-pack.c:165
+#: fetch-pack.c:164
msgid "git fetch-pack: expected ACK/NAK, got a flush packet"
msgstr ""
-#: fetch-pack.c:185
+#: fetch-pack.c:184
#, c-format
msgid "git fetch-pack: expected ACK/NAK, got '%s'"
msgstr ""
-#: fetch-pack.c:196
+#: fetch-pack.c:195
msgid "unable to write to remote"
msgstr ""
-#: fetch-pack.c:258
+#: fetch-pack.c:257
msgid "--stateless-rpc requires multi_ack_detailed"
msgstr ""
-#: fetch-pack.c:360 fetch-pack.c:1284
+#: fetch-pack.c:356 fetch-pack.c:1280
#, c-format
msgid "invalid shallow line: %s"
msgstr ""
-#: fetch-pack.c:366 fetch-pack.c:1290
+#: fetch-pack.c:362 fetch-pack.c:1286
#, c-format
msgid "invalid unshallow line: %s"
msgstr ""
-#: fetch-pack.c:368 fetch-pack.c:1292
+#: fetch-pack.c:364 fetch-pack.c:1288
#, c-format
msgid "object not found: %s"
msgstr ""
-#: fetch-pack.c:371 fetch-pack.c:1295
+#: fetch-pack.c:367 fetch-pack.c:1291
#, c-format
msgid "error in object: %s"
msgstr ""
-#: fetch-pack.c:373 fetch-pack.c:1297
+#: fetch-pack.c:369 fetch-pack.c:1293
#, c-format
msgid "no shallow found: %s"
msgstr ""
-#: fetch-pack.c:376 fetch-pack.c:1301
+#: fetch-pack.c:372 fetch-pack.c:1297
#, c-format
msgid "expected shallow/unshallow, got %s"
msgstr ""
-#: fetch-pack.c:417
+#: fetch-pack.c:414
#, c-format
msgid "got %s %d %s"
msgstr ""
-#: fetch-pack.c:434
+#: fetch-pack.c:431
#, c-format
msgid "invalid commit %s"
msgstr ""
-#: fetch-pack.c:465
+#: fetch-pack.c:462
msgid "giving up"
msgstr ""
-#: fetch-pack.c:477 progress.c:277
+#: fetch-pack.c:475 progress.c:312
msgid "done"
msgstr ""
-#: fetch-pack.c:489
+#: fetch-pack.c:487
#, c-format
msgid "got %s (%d) %s"
msgstr ""
-#: fetch-pack.c:535
+#: fetch-pack.c:533
#, c-format
msgid "Marking %s as complete"
msgstr ""
-#: fetch-pack.c:744
+#: fetch-pack.c:742
#, c-format
msgid "already have %s (%s)"
msgstr ""
-#: fetch-pack.c:783
+#: fetch-pack.c:781
msgid "fetch-pack: unable to fork off sideband demultiplexer"
msgstr ""
-#: fetch-pack.c:791
+#: fetch-pack.c:789
msgid "protocol error: bad pack header"
msgstr ""
-#: fetch-pack.c:859
+#: fetch-pack.c:857
#, c-format
msgid "fetch-pack: unable to fork off %s"
msgstr ""
-#: fetch-pack.c:875
+#: fetch-pack.c:873
#, c-format
msgid "%s failed"
msgstr ""
-#: fetch-pack.c:877
+#: fetch-pack.c:875
msgid "error in sideband demultiplexer"
msgstr ""
-#: fetch-pack.c:908
+#: fetch-pack.c:907
#, c-format
msgid "Server version is %.*s"
msgstr ""
-#: fetch-pack.c:913 fetch-pack.c:919 fetch-pack.c:922 fetch-pack.c:928
-#: fetch-pack.c:932 fetch-pack.c:936 fetch-pack.c:940 fetch-pack.c:944
-#: fetch-pack.c:948 fetch-pack.c:952 fetch-pack.c:956 fetch-pack.c:960
-#: fetch-pack.c:966 fetch-pack.c:972 fetch-pack.c:977 fetch-pack.c:982
+#: fetch-pack.c:912 fetch-pack.c:918 fetch-pack.c:921 fetch-pack.c:927
+#: fetch-pack.c:931 fetch-pack.c:935 fetch-pack.c:939 fetch-pack.c:943
+#: fetch-pack.c:947 fetch-pack.c:951 fetch-pack.c:955 fetch-pack.c:959
+#: fetch-pack.c:965 fetch-pack.c:971 fetch-pack.c:976 fetch-pack.c:981
#, c-format
msgid "Server supports %s"
msgstr ""
-#: fetch-pack.c:915
+#: fetch-pack.c:914
msgid "Server does not support shallow clients"
msgstr ""
-#: fetch-pack.c:975
+#: fetch-pack.c:974
msgid "Server does not support --shallow-since"
msgstr ""
-#: fetch-pack.c:980
+#: fetch-pack.c:979
msgid "Server does not support --shallow-exclude"
msgstr ""
-#: fetch-pack.c:984
+#: fetch-pack.c:983
msgid "Server does not support --deepen"
msgstr ""
-#: fetch-pack.c:1001
+#: fetch-pack.c:1000
msgid "no common commits"
msgstr ""
-#: fetch-pack.c:1013 fetch-pack.c:1462
+#: fetch-pack.c:1012 fetch-pack.c:1468
msgid "git fetch-pack: fetch failed."
msgstr ""
-#: fetch-pack.c:1151
+#: fetch-pack.c:1150
msgid "Server does not support shallow requests"
msgstr ""
@@ -3050,72 +3057,72 @@ msgstr ""
msgid "Server supports filter"
msgstr ""
-#: fetch-pack.c:1184
+#: fetch-pack.c:1180
msgid "unable to write request to remote"
msgstr ""
-#: fetch-pack.c:1202
+#: fetch-pack.c:1198
#, c-format
msgid "error reading section header '%s'"
msgstr ""
-#: fetch-pack.c:1208
+#: fetch-pack.c:1204
#, c-format
msgid "expected '%s', received '%s'"
msgstr ""
-#: fetch-pack.c:1247
+#: fetch-pack.c:1243
#, c-format
msgid "unexpected acknowledgment line: '%s'"
msgstr ""
-#: fetch-pack.c:1252
+#: fetch-pack.c:1248
#, c-format
msgid "error processing acks: %d"
msgstr ""
-#: fetch-pack.c:1262
+#: fetch-pack.c:1258
msgid "expected packfile to be sent after 'ready'"
msgstr ""
-#: fetch-pack.c:1264
+#: fetch-pack.c:1260
msgid "expected no other sections to be sent after no 'ready'"
msgstr ""
-#: fetch-pack.c:1306
+#: fetch-pack.c:1302
#, c-format
msgid "error processing shallow info: %d"
msgstr ""
-#: fetch-pack.c:1353
+#: fetch-pack.c:1349
#, c-format
msgid "expected wanted-ref, got '%s'"
msgstr ""
-#: fetch-pack.c:1358
+#: fetch-pack.c:1354
#, c-format
msgid "unexpected wanted-ref: '%s'"
msgstr ""
-#: fetch-pack.c:1363
+#: fetch-pack.c:1359
#, c-format
msgid "error processing wanted refs: %d"
msgstr ""
-#: fetch-pack.c:1689
+#: fetch-pack.c:1693
msgid "no matching remote head"
msgstr ""
-#: fetch-pack.c:1712 builtin/clone.c:686
+#: fetch-pack.c:1716 builtin/clone.c:685
msgid "remote did not send all necessary objects"
msgstr ""
-#: fetch-pack.c:1739
+#: fetch-pack.c:1743
#, c-format
msgid "no such remote ref %s"
msgstr ""
-#: fetch-pack.c:1742
+#: fetch-pack.c:1746
#, c-format
msgid "Server does not allow request for unadvertised object %s"
msgstr ""
@@ -3138,18 +3145,24 @@ msgstr ""
msgid "ignore invalid color '%.*s' in log.graphColors"
msgstr ""
-#: grep.c:2117
+#: grep.c:668
+msgid ""
+"given pattern contains NULL byte (via -f <file>). This is only supported "
+"with -P under PCRE v2"
+msgstr ""
+
+#: grep.c:2124
#, c-format
msgid "'%s': unable to read %s"
msgstr ""
-#: grep.c:2134 setup.c:164 builtin/clone.c:409 builtin/diff.c:82
+#: grep.c:2141 setup.c:165 builtin/clone.c:408 builtin/diff.c:82
#: builtin/rm.c:135
#, c-format
msgid "failed to stat '%s'"
msgstr ""
-#: grep.c:2145
+#: grep.c:2152
#, c-format
msgid "'%s': short read"
msgstr ""
@@ -3285,12 +3298,12 @@ msgstr[1] ""
msgid "git version [<options>]"
msgstr ""
-#: help.c:782
+#: help.c:783
#, c-format
msgid "%s: %s - %s"
msgstr ""
-#: help.c:786
+#: help.c:787
msgid ""
"\n"
"Did you mean this?"
@@ -3348,40 +3361,55 @@ msgstr ""
msgid "invalid date format: %s"
msgstr ""
-#: list-objects.c:129
+#: list-objects.c:127
#, c-format
msgid "entry '%s' in tree %s has tree mode, but is not a tree"
msgstr ""
-#: list-objects.c:142
+#: list-objects.c:140
#, c-format
msgid "entry '%s' in tree %s has blob mode, but is not a blob"
msgstr ""
-#: list-objects.c:378
+#: list-objects.c:375
#, c-format
msgid "unable to load root tree for commit %s"
msgstr ""
-#: list-objects-filter-options.c:36
-msgid "multiple filter-specs cannot be combined"
+#: list-objects-filter.c:492
+#, c-format
+msgid "unable to access sparse blob in '%s'"
+msgstr ""
+
+#: list-objects-filter.c:495
+#, c-format
+msgid "unable to parse sparse filter data in %s"
msgstr ""
#: list-objects-filter-options.c:58
msgid "expected 'tree:<depth>'"
msgstr ""
-#: list-objects-filter-options.c:84
+#: list-objects-filter-options.c:73
msgid "sparse:path filters support has been dropped"
msgstr ""
-#: list-objects-filter-options.c:94
+#: list-objects-filter-options.c:86
#, c-format
msgid "invalid filter-spec '%s'"
msgstr ""
-#: list-objects-filter-options.c:158
-msgid "cannot change partial clone promisor remote"
+#: list-objects-filter-options.c:102
+#, c-format
+msgid "must escape char in sub-filter-spec: '%c'"
+msgstr ""
+
+#: list-objects-filter-options.c:144
+msgid "expected something after combine:"
+msgstr ""
+
+#: list-objects-filter-options.c:226
+msgid "multiple filter-specs cannot be combined"
msgstr ""
#: lockfile.c:151
@@ -3405,114 +3433,110 @@ msgstr ""
msgid "failed to read the cache"
msgstr ""
-#: merge.c:107 rerere.c:720 builtin/am.c:1885 builtin/am.c:1919
-#: builtin/checkout.c:536 builtin/checkout.c:796 builtin/clone.c:786
+#: merge.c:107 rerere.c:720 builtin/am.c:1874 builtin/am.c:1908
+#: builtin/checkout.c:537 builtin/checkout.c:796 builtin/clone.c:785
#: builtin/stash.c:264
msgid "unable to write new index file"
msgstr ""
-#: merge-recursive.c:322
+#: merge-recursive.c:367
msgid "(bad commit)\n"
msgstr ""
-#: merge-recursive.c:345
+#: merge-recursive.c:390
#, c-format
msgid "add_cacheinfo failed for path '%s'; merge aborting."
msgstr ""
-#: merge-recursive.c:354
+#: merge-recursive.c:399
#, c-format
msgid "add_cacheinfo failed to refresh for path '%s'; merge aborting."
msgstr ""
-#: merge-recursive.c:437
-msgid "error building trees"
-msgstr ""
-
-#: merge-recursive.c:863
+#: merge-recursive.c:885
#, c-format
msgid "failed to create path '%s'%s"
msgstr ""
-#: merge-recursive.c:874
+#: merge-recursive.c:896
#, c-format
msgid "Removing %s to make room for subdirectory\n"
msgstr ""
-#: merge-recursive.c:888 merge-recursive.c:907
+#: merge-recursive.c:910 merge-recursive.c:929
msgid ": perhaps a D/F conflict?"
msgstr ""
-#: merge-recursive.c:897
+#: merge-recursive.c:919
#, c-format
msgid "refusing to lose untracked file at '%s'"
msgstr ""
-#: merge-recursive.c:938 builtin/cat-file.c:40
+#: merge-recursive.c:960 builtin/cat-file.c:41
#, c-format
msgid "cannot read object %s '%s'"
msgstr ""
-#: merge-recursive.c:941
+#: merge-recursive.c:965
#, c-format
msgid "blob expected for %s '%s'"
msgstr ""
-#: merge-recursive.c:965
+#: merge-recursive.c:990
#, c-format
msgid "failed to open '%s': %s"
msgstr ""
-#: merge-recursive.c:976
+#: merge-recursive.c:1001
#, c-format
msgid "failed to symlink '%s': %s"
msgstr ""
-#: merge-recursive.c:981
+#: merge-recursive.c:1006
#, c-format
msgid "do not know what to do with %06o %s '%s'"
msgstr ""
-#: merge-recursive.c:1177
+#: merge-recursive.c:1199
#, c-format
msgid "Failed to merge submodule %s (not checked out)"
msgstr ""
-#: merge-recursive.c:1184
+#: merge-recursive.c:1206
#, c-format
msgid "Failed to merge submodule %s (commits not present)"
msgstr ""
-#: merge-recursive.c:1191
+#: merge-recursive.c:1213
#, c-format
msgid "Failed to merge submodule %s (commits don't follow merge-base)"
msgstr ""
-#: merge-recursive.c:1199 merge-recursive.c:1211
+#: merge-recursive.c:1221 merge-recursive.c:1233
#, c-format
msgid "Fast-forwarding submodule %s to the following commit:"
msgstr ""
-#: merge-recursive.c:1202 merge-recursive.c:1214
+#: merge-recursive.c:1224 merge-recursive.c:1236
#, c-format
msgid "Fast-forwarding submodule %s"
msgstr ""
-#: merge-recursive.c:1237
+#: merge-recursive.c:1259
#, c-format
msgid "Failed to merge submodule %s (merge following commits not found)"
msgstr ""
-#: merge-recursive.c:1241
+#: merge-recursive.c:1263
#, c-format
msgid "Failed to merge submodule %s (not fast-forward)"
msgstr ""
-#: merge-recursive.c:1242
+#: merge-recursive.c:1264
msgid "Found a possible merge resolution for the submodule:\n"
msgstr ""
-#: merge-recursive.c:1245
+#: merge-recursive.c:1267
#, c-format
msgid ""
"If this is correct simply add it to the index for example\n"
@@ -3523,108 +3547,108 @@ msgid ""
"which will accept this suggestion.\n"
msgstr ""
-#: merge-recursive.c:1254
+#: merge-recursive.c:1276
#, c-format
msgid "Failed to merge submodule %s (multiple merges found)"
msgstr ""
-#: merge-recursive.c:1327
+#: merge-recursive.c:1349
msgid "Failed to execute internal merge"
msgstr ""
-#: merge-recursive.c:1332
+#: merge-recursive.c:1354
#, c-format
msgid "Unable to add %s to database"
msgstr ""
-#: merge-recursive.c:1364
+#: merge-recursive.c:1386
#, c-format
msgid "Auto-merging %s"
msgstr ""
-#: merge-recursive.c:1387
+#: merge-recursive.c:1410
#, c-format
msgid "Error: Refusing to lose untracked file at %s; writing to %s instead."
msgstr ""
-#: merge-recursive.c:1459
+#: merge-recursive.c:1482
#, 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:1464
+#: merge-recursive.c:1487
#, 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:1471
+#: merge-recursive.c:1494
#, 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:1476
+#: merge-recursive.c:1499
#, 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:1511
+#: merge-recursive.c:1534
msgid "rename"
msgstr ""
-#: merge-recursive.c:1511
+#: merge-recursive.c:1534
msgid "renamed"
msgstr ""
-#: merge-recursive.c:1591 merge-recursive.c:2450 merge-recursive.c:3094
+#: merge-recursive.c:1614 merge-recursive.c:2472 merge-recursive.c:3117
#, c-format
msgid "Refusing to lose dirty file at %s"
msgstr ""
-#: merge-recursive.c:1601
+#: merge-recursive.c:1624
#, c-format
msgid "Refusing to lose untracked file at %s, even though it's in the way."
msgstr ""
-#: merge-recursive.c:1659
+#: merge-recursive.c:1682
#, c-format
msgid "CONFLICT (rename/add): Rename %s->%s in %s. Added %s in %s"
msgstr ""
-#: merge-recursive.c:1690
+#: merge-recursive.c:1713
#, c-format
msgid "%s is a directory in %s adding as %s instead"
msgstr ""
-#: merge-recursive.c:1695
+#: merge-recursive.c:1718
#, c-format
msgid "Refusing to lose untracked file at %s; adding as %s instead"
msgstr ""
-#: merge-recursive.c:1714
+#: merge-recursive.c:1737
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
"\"->\"%s\" in \"%s\"%s"
msgstr ""
-#: merge-recursive.c:1719
+#: merge-recursive.c:1742
msgid " (left unresolved)"
msgstr ""
-#: merge-recursive.c:1828
+#: merge-recursive.c:1851
#, c-format
msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
msgstr ""
-#: merge-recursive.c:2035
+#: merge-recursive.c:2056
#, c-format
msgid ""
"CONFLICT (directory rename split): Unclear where to place %s because "
@@ -3632,323 +3656,323 @@ msgid ""
"getting a majority of the files."
msgstr ""
-#: merge-recursive.c:2067
+#: merge-recursive.c:2088
#, 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-recursive.c:2077
+#: merge-recursive.c:2098
#, 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-recursive.c:2169
+#: merge-recursive.c:2190
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename directory %s->%s in %s. Rename directory %s-"
">%s in %s"
msgstr ""
-#: merge-recursive.c:2413
+#: merge-recursive.c:2435
#, c-format
msgid ""
"WARNING: Avoiding applying %s -> %s rename to %s, because %s itself was "
"renamed."
msgstr ""
-#: merge-recursive.c:2938
+#: merge-recursive.c:2961
#, c-format
msgid "cannot read object %s"
msgstr ""
-#: merge-recursive.c:2941
+#: merge-recursive.c:2964
#, c-format
msgid "object %s is not a blob"
msgstr ""
-#: merge-recursive.c:3005
+#: merge-recursive.c:3028
msgid "modify"
msgstr ""
-#: merge-recursive.c:3005
+#: merge-recursive.c:3028
msgid "modified"
msgstr ""
-#: merge-recursive.c:3017
+#: merge-recursive.c:3040
msgid "content"
msgstr ""
-#: merge-recursive.c:3021
+#: merge-recursive.c:3044
msgid "add/add"
msgstr ""
-#: merge-recursive.c:3044
+#: merge-recursive.c:3067
#, c-format
msgid "Skipped %s (merged same as existing)"
msgstr ""
-#: merge-recursive.c:3066 git-submodule.sh:937
+#: merge-recursive.c:3089 git-submodule.sh:937
msgid "submodule"
msgstr ""
-#: merge-recursive.c:3067
+#: merge-recursive.c:3090
#, c-format
msgid "CONFLICT (%s): Merge conflict in %s"
msgstr ""
-#: merge-recursive.c:3097
+#: merge-recursive.c:3120
#, c-format
msgid "Adding as %s instead"
msgstr ""
-#: merge-recursive.c:3179
+#: merge-recursive.c:3203
#, c-format
msgid ""
"Path updated: %s added in %s inside a directory that was renamed in %s; "
"moving it to %s."
msgstr ""
-#: merge-recursive.c:3182
+#: merge-recursive.c:3206
#, 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-recursive.c:3186
+#: merge-recursive.c:3210
#, 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-recursive.c:3189
+#: merge-recursive.c:3213
#, 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-recursive.c:3303
+#: merge-recursive.c:3327
#, c-format
msgid "Removing %s"
msgstr ""
-#: merge-recursive.c:3326
+#: merge-recursive.c:3350
msgid "file/directory"
msgstr ""
-#: merge-recursive.c:3331
+#: merge-recursive.c:3355
msgid "directory/file"
msgstr ""
-#: merge-recursive.c:3338
+#: merge-recursive.c:3362
#, c-format
msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
msgstr ""
-#: merge-recursive.c:3347
+#: merge-recursive.c:3371
#, c-format
msgid "Adding %s"
msgstr ""
-#: merge-recursive.c:3356
+#: merge-recursive.c:3380
#, c-format
msgid "CONFLICT (add/add): Merge conflict in %s"
msgstr ""
-#: merge-recursive.c:3394
-#, c-format
-msgid ""
-"Your local changes to the following files would be overwritten by merge:\n"
-" %s"
-msgstr ""
-
-#: merge-recursive.c:3405
+#: merge-recursive.c:3424
msgid "Already up to date!"
msgstr ""
-#: merge-recursive.c:3414
+#: merge-recursive.c:3433
#, c-format
msgid "merging of trees %s and %s failed"
msgstr ""
-#: merge-recursive.c:3513
+#: merge-recursive.c:3537
msgid "Merging:"
msgstr ""
-#: merge-recursive.c:3526
+#: merge-recursive.c:3550
#, c-format
msgid "found %u common ancestor:"
msgid_plural "found %u common ancestors:"
msgstr[0] ""
msgstr[1] ""
-#: merge-recursive.c:3565
+#: merge-recursive.c:3600
msgid "merge returned no commit"
msgstr ""
-#: merge-recursive.c:3631
+#: merge-recursive.c:3659
+#, c-format
+msgid ""
+"Your local changes to the following files would be overwritten by merge:\n"
+" %s"
+msgstr ""
+
+#: merge-recursive.c:3756
#, c-format
msgid "Could not parse object '%s'"
msgstr ""
-#: merge-recursive.c:3647 builtin/merge.c:698 builtin/merge.c:869
+#: merge-recursive.c:3774 builtin/merge.c:694 builtin/merge.c:874
msgid "Unable to write index."
msgstr ""
-#: midx.c:69
+#: midx.c:68
#, c-format
msgid "multi-pack-index file %s is too small"
msgstr ""
-#: midx.c:85
+#: midx.c:84
#, c-format
msgid "multi-pack-index signature 0x%08x does not match signature 0x%08x"
msgstr ""
-#: midx.c:90
+#: midx.c:89
#, c-format
msgid "multi-pack-index version %d not recognized"
msgstr ""
-#: midx.c:95
+#: midx.c:94
#, c-format
msgid "hash version %u does not match"
msgstr ""
-#: midx.c:109
+#: midx.c:108
msgid "invalid chunk offset (too large)"
msgstr ""
-#: midx.c:133
+#: midx.c:132
msgid "terminating multi-pack-index chunk id appears earlier than expected"
msgstr ""
-#: midx.c:146
+#: midx.c:145
msgid "multi-pack-index missing required pack-name chunk"
msgstr ""
-#: midx.c:148
+#: midx.c:147
msgid "multi-pack-index missing required OID fanout chunk"
msgstr ""
-#: midx.c:150
+#: midx.c:149
msgid "multi-pack-index missing required OID lookup chunk"
msgstr ""
-#: midx.c:152
+#: midx.c:151
msgid "multi-pack-index missing required object offsets chunk"
msgstr ""
-#: midx.c:166
+#: midx.c:165
#, c-format
msgid "multi-pack-index pack names out of order: '%s' before '%s'"
msgstr ""
-#: midx.c:211
+#: midx.c:210
#, c-format
msgid "bad pack-int-id: %u (%u total packs)"
msgstr ""
-#: midx.c:261
+#: midx.c:260
msgid "multi-pack-index stores a 64-bit offset, but off_t is too small"
msgstr ""
-#: midx.c:289
+#: midx.c:288
msgid "error preparing packfile from multi-pack-index"
msgstr ""
-#: midx.c:470
+#: midx.c:469
#, c-format
msgid "failed to add packfile '%s'"
msgstr ""
-#: midx.c:476
+#: midx.c:475
#, c-format
msgid "failed to open pack-index '%s'"
msgstr ""
-#: midx.c:536
+#: midx.c:535
#, c-format
msgid "failed to locate object %d in packfile"
msgstr ""
-#: midx.c:865
+#: midx.c:864
#, c-format
msgid "did not see pack-file %s to drop"
msgstr ""
-#: midx.c:1036
+#: midx.c:1035
#, c-format
msgid "failed to clear multi-pack-index at %s"
msgstr ""
-#: midx.c:1091
+#: midx.c:1090
msgid "Looking for referenced packfiles"
msgstr ""
-#: midx.c:1106
+#: midx.c:1105
#, c-format
msgid ""
"oid fanout out of order: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
msgstr ""
-#: midx.c:1110
+#: midx.c:1109
msgid "Verifying OID order in MIDX"
msgstr ""
-#: midx.c:1119
+#: midx.c:1118
#, c-format
msgid "oid lookup out of order: oid[%d] = %s >= %s = oid[%d]"
msgstr ""
-#: midx.c:1138
+#: midx.c:1137
msgid "Sorting objects by packfile"
msgstr ""
-#: midx.c:1144
+#: midx.c:1143
msgid "Verifying object offsets"
msgstr ""
-#: midx.c:1160
+#: midx.c:1159
#, c-format
msgid "failed to load pack entry for oid[%d] = %s"
msgstr ""
-#: midx.c:1166
+#: midx.c:1165
#, c-format
msgid "failed to load pack-index for packfile %s"
msgstr ""
-#: midx.c:1175
+#: midx.c:1174
#, c-format
msgid "incorrect object offset for oid[%d] = %s: %<PRIx64> != %<PRIx64>"
msgstr ""
-#: midx.c:1350
+#: midx.c:1349
msgid "could not start pack-objects"
msgstr ""
-#: midx.c:1369
+#: midx.c:1368
msgid "could not finish pack-objects"
msgstr ""
-#: name-hash.c:532
+#: name-hash.c:537
#, c-format
msgid "unable to create lazy_dir thread: %s"
msgstr ""
-#: name-hash.c:554
+#: name-hash.c:559
#, c-format
msgid "unable to create lazy_name thread: %s"
msgstr ""
-#: name-hash.c:560
+#: name-hash.c:565
#, c-format
msgid "unable to join lazy_name thread: %s"
msgstr ""
@@ -3989,41 +4013,41 @@ msgstr ""
msgid "Bad %s value: '%s'"
msgstr ""
-#: object.c:54
+#: object.c:53
#, c-format
msgid "invalid object type \"%s\""
msgstr ""
-#: object.c:174
+#: object.c:173
#, c-format
msgid "object %s is a %s, not a %s"
msgstr ""
-#: object.c:234
+#: object.c:233
#, c-format
msgid "object %s has unknown type id %d"
msgstr ""
-#: object.c:247
+#: object.c:246
#, c-format
msgid "unable to parse object: %s"
msgstr ""
-#: object.c:267 object.c:278
+#: object.c:266 object.c:277
#, c-format
msgid "hash mismatch %s"
msgstr ""
-#: packfile.c:648
+#: packfile.c:641
msgid "offset before end of packfile (broken .idx?)"
msgstr ""
-#: packfile.c:1899
+#: packfile.c:1887
#, c-format
msgid "offset before start of pack index for %s (corrupt index?)"
msgstr ""
-#: packfile.c:1903
+#: packfile.c:1891
#, c-format
msgid "offset beyond end of pack index for %s (truncated index?)"
msgstr ""
@@ -4068,26 +4092,26 @@ msgstr ""
msgid "did you mean `--%s` (with two dashes ?)"
msgstr ""
-#: parse-options.c:859
+#: parse-options.c:860
#, c-format
msgid "unknown option `%s'"
msgstr ""
-#: parse-options.c:861
+#: parse-options.c:862
#, c-format
msgid "unknown switch `%c'"
msgstr ""
-#: parse-options.c:863
+#: parse-options.c:864
#, c-format
msgid "unknown non-ascii option in string: `%s'"
msgstr ""
-#: parse-options.c:887
+#: parse-options.c:888
msgid "..."
msgstr ""
-#: parse-options.c:906
+#: parse-options.c:907
#, c-format
msgid "usage: %s"
msgstr ""
@@ -4095,21 +4119,21 @@ msgstr ""
#. TRANSLATORS: the colon here should align with the
#. one in "usage: %s" translation.
#.
-#: parse-options.c:912
+#: parse-options.c:913
#, c-format
msgid " or: %s"
msgstr ""
-#: parse-options.c:915
+#: parse-options.c:916
#, c-format
msgid " %s"
msgstr ""
-#: parse-options.c:954
+#: parse-options.c:955
msgid "-NUM"
msgstr ""
-#: parse-options.c:968
+#: parse-options.c:969
#, c-format
msgid "alias of --%s"
msgstr ""
@@ -4274,29 +4298,38 @@ msgstr ""
msgid "unable to parse --pretty format"
msgstr ""
-#: range-diff.c:70
+#: promisor-remote.c:25
+msgid "Remote with no URL"
+msgstr ""
+
+#: promisor-remote.c:61
+#, c-format
+msgid "promisor remote name cannot begin with '/': %s"
+msgstr ""
+
+#: range-diff.c:71
msgid "could not start `log`"
msgstr ""
-#: range-diff.c:72
+#: range-diff.c:73
msgid "could not read `log` output"
msgstr ""
-#: range-diff.c:91 sequencer.c:5021
+#: range-diff.c:92 sequencer.c:4985
#, c-format
msgid "could not parse commit '%s'"
msgstr ""
-#: range-diff.c:117
+#: range-diff.c:118
#, c-format
msgid "could not parse git header '%.*s'"
msgstr ""
-#: range-diff.c:274
+#: range-diff.c:275
msgid "failed to generate diff"
msgstr ""
-#: range-diff.c:506 range-diff.c:508
+#: range-diff.c:507 range-diff.c:509
#, c-format
msgid "could not parse log for '%s'"
msgstr ""
@@ -4340,156 +4373,156 @@ msgstr ""
msgid "'%s' appears as both a file and as a directory"
msgstr ""
-#: read-cache.c:1499
+#: read-cache.c:1520
msgid "Refresh index"
msgstr ""
-#: read-cache.c:1613
+#: read-cache.c:1635
#, c-format
msgid ""
"index.version set, but the value is invalid.\n"
"Using version %i"
msgstr ""
-#: read-cache.c:1623
+#: read-cache.c:1645
#, c-format
msgid ""
"GIT_INDEX_VERSION set, but the value is invalid.\n"
"Using version %i"
msgstr ""
-#: read-cache.c:1679
+#: read-cache.c:1701
#, c-format
msgid "bad signature 0x%08x"
msgstr ""
-#: read-cache.c:1682
+#: read-cache.c:1704
#, c-format
msgid "bad index version %d"
msgstr ""
-#: read-cache.c:1691
+#: read-cache.c:1713
msgid "bad index file sha1 signature"
msgstr ""
-#: read-cache.c:1721
+#: read-cache.c:1743
#, c-format
msgid "index uses %.4s extension, which we do not understand"
msgstr ""
-#: read-cache.c:1723
+#: read-cache.c:1745
#, c-format
msgid "ignoring %.4s extension"
msgstr ""
-#: read-cache.c:1760
+#: read-cache.c:1782
#, c-format
msgid "unknown index entry format 0x%08x"
msgstr ""
-#: read-cache.c:1776
+#: read-cache.c:1798
#, c-format
msgid "malformed name field in the index, near path '%s'"
msgstr ""
-#: read-cache.c:1833
+#: read-cache.c:1855
msgid "unordered stage entries in index"
msgstr ""
-#: read-cache.c:1836
+#: read-cache.c:1858
#, c-format
msgid "multiple stage entries for merged file '%s'"
msgstr ""
-#: read-cache.c:1839
+#: read-cache.c:1861
#, c-format
msgid "unordered stage entries for '%s'"
msgstr ""
-#: read-cache.c:1946 read-cache.c:2234 rerere.c:565 rerere.c:599 rerere.c:1111
-#: builtin/add.c:460 builtin/check-ignore.c:178 builtin/checkout.c:467
-#: builtin/checkout.c:651 builtin/clean.c:956 builtin/commit.c:347
+#: read-cache.c:1967 read-cache.c:2255 rerere.c:565 rerere.c:599 rerere.c:1111
+#: builtin/add.c:460 builtin/check-ignore.c:178 builtin/checkout.c:468
+#: builtin/checkout.c:652 builtin/clean.c:967 builtin/commit.c:347
#: builtin/diff-tree.c:120 builtin/grep.c:499 builtin/mv.c:145
#: builtin/reset.c:245 builtin/rm.c:271 builtin/submodule--helper.c:330
msgid "index file corrupt"
msgstr ""
-#: read-cache.c:2087
+#: read-cache.c:2108
#, c-format
msgid "unable to create load_cache_entries thread: %s"
msgstr ""
-#: read-cache.c:2100
+#: read-cache.c:2121
#, c-format
msgid "unable to join load_cache_entries thread: %s"
msgstr ""
-#: read-cache.c:2133
+#: read-cache.c:2154
#, c-format
msgid "%s: index file open failed"
msgstr ""
-#: read-cache.c:2137
+#: read-cache.c:2158
#, c-format
msgid "%s: cannot stat the open index"
msgstr ""
-#: read-cache.c:2141
+#: read-cache.c:2162
#, c-format
msgid "%s: index file smaller than expected"
msgstr ""
-#: read-cache.c:2145
+#: read-cache.c:2166
#, c-format
msgid "%s: unable to map index file"
msgstr ""
-#: read-cache.c:2187
+#: read-cache.c:2208
#, c-format
msgid "unable to create load_index_extensions thread: %s"
msgstr ""
-#: read-cache.c:2214
+#: read-cache.c:2235
#, c-format
msgid "unable to join load_index_extensions thread: %s"
msgstr ""
-#: read-cache.c:2246
+#: read-cache.c:2267
#, c-format
msgid "could not freshen shared index '%s'"
msgstr ""
-#: read-cache.c:2293
+#: read-cache.c:2314
#, c-format
msgid "broken index, expect %s in %s, got %s"
msgstr ""
-#: read-cache.c:2989 wrapper.c:658 builtin/merge.c:1114
+#: read-cache.c:3010 wrapper.c:622 builtin/merge.c:1119
#, c-format
msgid "could not close '%s'"
msgstr ""
-#: read-cache.c:3092 sequencer.c:2358 sequencer.c:3928
+#: read-cache.c:3113 sequencer.c:2296 sequencer.c:3917
#, c-format
msgid "could not stat '%s'"
msgstr ""
-#: read-cache.c:3105
+#: read-cache.c:3126
#, c-format
msgid "unable to open git dir: %s"
msgstr ""
-#: read-cache.c:3117
+#: read-cache.c:3138
#, c-format
msgid "unable to unlink: %s"
msgstr ""
-#: read-cache.c:3142
+#: read-cache.c:3163
#, c-format
msgid "cannot fix permission bits on '%s'"
msgstr ""
-#: read-cache.c:3291
+#: read-cache.c:3312
#, c-format
msgid "%s: cannot drop to stage #0"
msgstr ""
@@ -4561,8 +4594,8 @@ msgstr ""
msgid "Note that empty commits are commented out"
msgstr ""
-#: rebase-interactive.c:105 rerere.c:485 rerere.c:692 sequencer.c:3447
-#: sequencer.c:3473 sequencer.c:5120 builtin/fsck.c:356 builtin/rebase.c:235
+#: rebase-interactive.c:105 rerere.c:485 rerere.c:692 sequencer.c:3388
+#: sequencer.c:3414 sequencer.c:5084 builtin/fsck.c:356 builtin/rebase.c:235
#, c-format
msgid "could not write '%s'"
msgstr ""
@@ -4600,7 +4633,7 @@ msgstr ""
msgid "ignoring dangling symref %s"
msgstr ""
-#: refs.c:669 ref-filter.c:2092
+#: refs.c:669 ref-filter.c:2098
#, c-format
msgid "ignoring broken ref %s"
msgstr ""
@@ -4625,14 +4658,14 @@ msgstr ""
msgid "unexpected object ID when writing '%s'"
msgstr ""
-#: refs.c:833 sequencer.c:403 sequencer.c:2709 sequencer.c:2913
-#: sequencer.c:2927 sequencer.c:3184 sequencer.c:5037 wrapper.c:656
+#: refs.c:833 sequencer.c:403 sequencer.c:2647 sequencer.c:2851
+#: sequencer.c:2865 sequencer.c:3122 sequencer.c:5001 wrapper.c:620
#, c-format
msgid "could not write to '%s'"
msgstr ""
-#: refs.c:860 wrapper.c:225 wrapper.c:395 builtin/am.c:715
-#: builtin/rebase.c:1003
+#: refs.c:860 wrapper.c:188 wrapper.c:358 builtin/am.c:714
+#: builtin/rebase.c:1004
#, c-format
msgid "could not open '%s' for writing"
msgstr ""
@@ -4667,21 +4700,21 @@ msgstr ""
msgid "update_ref failed for ref '%s': %s"
msgstr ""
-#: refs.c:2012
+#: refs.c:2023
#, c-format
msgid "multiple updates for ref '%s' not allowed"
msgstr ""
-#: refs.c:2044
+#: refs.c:2055
msgid "ref updates forbidden inside quarantine environment"
msgstr ""
-#: refs.c:2140 refs.c:2170
+#: refs.c:2151 refs.c:2181
#, c-format
msgid "'%s' exists; cannot create '%s'"
msgstr ""
-#: refs.c:2146 refs.c:2181
+#: refs.c:2157 refs.c:2192
#, c-format
msgid "cannot process '%s' and '%s' at the same time"
msgstr ""
@@ -4691,13 +4724,13 @@ msgstr ""
msgid "could not remove reference %s"
msgstr ""
-#: refs/files-backend.c:1248 refs/packed-backend.c:1532
-#: refs/packed-backend.c:1542
+#: refs/files-backend.c:1248 refs/packed-backend.c:1541
+#: refs/packed-backend.c:1551
#, c-format
msgid "could not delete reference %s: %s"
msgstr ""
-#: refs/files-backend.c:1251 refs/packed-backend.c:1545
+#: refs/files-backend.c:1251 refs/packed-backend.c:1554
#, c-format
msgid "could not delete references: %s"
msgstr ""
@@ -4707,7 +4740,7 @@ msgstr ""
msgid "invalid refspec '%s'"
msgstr ""
-#: ref-filter.c:42 wt-status.c:1934
+#: ref-filter.c:42 wt-status.c:1938
msgid "gone"
msgstr ""
@@ -4726,280 +4759,280 @@ msgstr ""
msgid "ahead %d, behind %d"
msgstr ""
-#: ref-filter.c:162
+#: ref-filter.c:165
#, c-format
msgid "expected format: %%(color:<color>)"
msgstr ""
-#: ref-filter.c:164
+#: ref-filter.c:167
#, c-format
msgid "unrecognized color: %%(color:%s)"
msgstr ""
-#: ref-filter.c:186
+#: ref-filter.c:189
#, c-format
msgid "Integer value expected refname:lstrip=%s"
msgstr ""
-#: ref-filter.c:190
+#: ref-filter.c:193
#, c-format
msgid "Integer value expected refname:rstrip=%s"
msgstr ""
-#: ref-filter.c:192
+#: ref-filter.c:195
#, c-format
msgid "unrecognized %%(%s) argument: %s"
msgstr ""
-#: ref-filter.c:247
+#: ref-filter.c:250
#, c-format
msgid "%%(objecttype) does not take arguments"
msgstr ""
-#: ref-filter.c:269
+#: ref-filter.c:272
#, c-format
msgid "unrecognized %%(objectsize) argument: %s"
msgstr ""
-#: ref-filter.c:277
+#: ref-filter.c:280
#, c-format
msgid "%%(deltabase) does not take arguments"
msgstr ""
-#: ref-filter.c:289
+#: ref-filter.c:292
#, c-format
msgid "%%(body) does not take arguments"
msgstr ""
-#: ref-filter.c:298
+#: ref-filter.c:301
#, c-format
msgid "%%(subject) does not take arguments"
msgstr ""
-#: ref-filter.c:320
+#: ref-filter.c:323
#, c-format
msgid "unknown %%(trailers) argument: %s"
msgstr ""
-#: ref-filter.c:349
+#: ref-filter.c:352
#, c-format
msgid "positive value expected contents:lines=%s"
msgstr ""
-#: ref-filter.c:351
+#: ref-filter.c:354
#, c-format
msgid "unrecognized %%(contents) argument: %s"
msgstr ""
-#: ref-filter.c:366
+#: ref-filter.c:369
#, c-format
msgid "positive value expected objectname:short=%s"
msgstr ""
-#: ref-filter.c:370
+#: ref-filter.c:373
#, c-format
msgid "unrecognized %%(objectname) argument: %s"
msgstr ""
-#: ref-filter.c:400
+#: ref-filter.c:403
#, c-format
msgid "expected format: %%(align:<width>,<position>)"
msgstr ""
-#: ref-filter.c:412
+#: ref-filter.c:415
#, c-format
msgid "unrecognized position:%s"
msgstr ""
-#: ref-filter.c:419
+#: ref-filter.c:422
#, c-format
msgid "unrecognized width:%s"
msgstr ""
-#: ref-filter.c:428
+#: ref-filter.c:431
#, c-format
msgid "unrecognized %%(align) argument: %s"
msgstr ""
-#: ref-filter.c:436
+#: ref-filter.c:439
#, c-format
msgid "positive width expected with the %%(align) atom"
msgstr ""
-#: ref-filter.c:454
+#: ref-filter.c:457
#, c-format
msgid "unrecognized %%(if) argument: %s"
msgstr ""
-#: ref-filter.c:556
+#: ref-filter.c:559
#, c-format
msgid "malformed field name: %.*s"
msgstr ""
-#: ref-filter.c:583
+#: ref-filter.c:586
#, c-format
msgid "unknown field name: %.*s"
msgstr ""
-#: ref-filter.c:587
+#: ref-filter.c:590
#, c-format
msgid ""
"not a git repository, but the field '%.*s' requires access to object data"
msgstr ""
-#: ref-filter.c:711
+#: ref-filter.c:714
#, c-format
msgid "format: %%(if) atom used without a %%(then) atom"
msgstr ""
-#: ref-filter.c:774
+#: ref-filter.c:777
#, c-format
msgid "format: %%(then) atom used without an %%(if) atom"
msgstr ""
-#: ref-filter.c:776
+#: ref-filter.c:779
#, c-format
msgid "format: %%(then) atom used more than once"
msgstr ""
-#: ref-filter.c:778
+#: ref-filter.c:781
#, c-format
msgid "format: %%(then) atom used after %%(else)"
msgstr ""
-#: ref-filter.c:806
+#: ref-filter.c:809
#, c-format
msgid "format: %%(else) atom used without an %%(if) atom"
msgstr ""
-#: ref-filter.c:808
+#: ref-filter.c:811
#, c-format
msgid "format: %%(else) atom used without a %%(then) atom"
msgstr ""
-#: ref-filter.c:810
+#: ref-filter.c:813
#, c-format
msgid "format: %%(else) atom used more than once"
msgstr ""
-#: ref-filter.c:825
+#: ref-filter.c:828
#, c-format
msgid "format: %%(end) atom used without corresponding atom"
msgstr ""
-#: ref-filter.c:882
+#: ref-filter.c:885
#, c-format
msgid "malformed format string %s"
msgstr ""
-#: ref-filter.c:1485
+#: ref-filter.c:1488
#, c-format
msgid "no branch, rebasing %s"
msgstr ""
-#: ref-filter.c:1488
+#: ref-filter.c:1491
#, c-format
msgid "no branch, rebasing detached HEAD %s"
msgstr ""
-#: ref-filter.c:1491
+#: ref-filter.c:1494
#, c-format
msgid "no branch, bisect started on %s"
msgstr ""
-#: ref-filter.c:1501
+#: ref-filter.c:1504
msgid "no branch"
msgstr ""
-#: ref-filter.c:1537 ref-filter.c:1743
+#: ref-filter.c:1540 ref-filter.c:1749
#, c-format
msgid "missing object %s for %s"
msgstr ""
-#: ref-filter.c:1547
+#: ref-filter.c:1550
#, c-format
msgid "parse_object_buffer failed on %s for %s"
msgstr ""
-#: ref-filter.c:1998
+#: ref-filter.c:2004
#, c-format
msgid "malformed object at '%s'"
msgstr ""
-#: ref-filter.c:2087
+#: ref-filter.c:2093
#, c-format
msgid "ignoring ref with broken name %s"
msgstr ""
-#: ref-filter.c:2382
+#: ref-filter.c:2389
#, c-format
msgid "format: %%(end) atom missing"
msgstr ""
-#: ref-filter.c:2482
+#: ref-filter.c:2489
#, c-format
msgid "option `%s' is incompatible with --merged"
msgstr ""
-#: ref-filter.c:2485
+#: ref-filter.c:2492
#, c-format
msgid "option `%s' is incompatible with --no-merged"
msgstr ""
-#: ref-filter.c:2495
+#: ref-filter.c:2502
#, c-format
msgid "malformed object name %s"
msgstr ""
-#: ref-filter.c:2500
+#: ref-filter.c:2507
#, c-format
msgid "option `%s' must point to a commit"
msgstr ""
-#: remote.c:363
+#: remote.c:366
#, c-format
msgid "config remote shorthand cannot begin with '/': %s"
msgstr ""
-#: remote.c:410
+#: remote.c:413
msgid "more than one receivepack given, using the first"
msgstr ""
-#: remote.c:418
+#: remote.c:421
msgid "more than one uploadpack given, using the first"
msgstr ""
-#: remote.c:608
+#: remote.c:611
#, c-format
msgid "Cannot fetch both %s and %s to %s"
msgstr ""
-#: remote.c:612
+#: remote.c:615
#, c-format
msgid "%s usually tracks %s, not %s"
msgstr ""
-#: remote.c:616
+#: remote.c:619
#, c-format
msgid "%s tracks both %s and %s"
msgstr ""
-#: remote.c:684
+#: remote.c:687
#, c-format
msgid "key '%s' of pattern had no '*'"
msgstr ""
-#: remote.c:694
+#: remote.c:697
#, c-format
msgid "value '%s' of pattern has no '*'"
msgstr ""
-#: remote.c:1000
+#: remote.c:1003
#, c-format
msgid "src refspec %s does not match any"
msgstr ""
-#: remote.c:1005
+#: remote.c:1008
#, c-format
msgid "src refspec %s matches more than one"
msgstr ""
@@ -5008,7 +5041,7 @@ msgstr ""
#. <remote> <src>:<dst>" push, and "being pushed ('%s')" is
#. the <src>.
#.
-#: remote.c:1020
+#: remote.c:1023
#, c-format
msgid ""
"The destination you provided is not a full refname (i.e.,\n"
@@ -5022,7 +5055,7 @@ msgid ""
"Neither worked, so we gave up. You must fully qualify the ref."
msgstr ""
-#: remote.c:1040
+#: remote.c:1043
#, c-format
msgid ""
"The <src> part of the refspec is a commit object.\n"
@@ -5030,7 +5063,7 @@ msgid ""
"'%s:refs/heads/%s'?"
msgstr ""
-#: remote.c:1045
+#: remote.c:1048
#, c-format
msgid ""
"The <src> part of the refspec is a tag object.\n"
@@ -5038,7 +5071,7 @@ msgid ""
"'%s:refs/tags/%s'?"
msgstr ""
-#: remote.c:1050
+#: remote.c:1053
#, c-format
msgid ""
"The <src> part of the refspec is a tree object.\n"
@@ -5046,7 +5079,7 @@ msgid ""
"'%s:refs/tags/%s'?"
msgstr ""
-#: remote.c:1055
+#: remote.c:1058
#, c-format
msgid ""
"The <src> part of the refspec is a blob object.\n"
@@ -5054,114 +5087,114 @@ msgid ""
"'%s:refs/tags/%s'?"
msgstr ""
-#: remote.c:1091
+#: remote.c:1094
#, c-format
msgid "%s cannot be resolved to branch"
msgstr ""
-#: remote.c:1102
+#: remote.c:1105
#, c-format
msgid "unable to delete '%s': remote ref does not exist"
msgstr ""
-#: remote.c:1114
+#: remote.c:1117
#, c-format
msgid "dst refspec %s matches more than one"
msgstr ""
-#: remote.c:1121
+#: remote.c:1124
#, c-format
msgid "dst ref %s receives from more than one src"
msgstr ""
-#: remote.c:1624 remote.c:1725
+#: remote.c:1627 remote.c:1728
msgid "HEAD does not point to a branch"
msgstr ""
-#: remote.c:1633
+#: remote.c:1636
#, c-format
msgid "no such branch: '%s'"
msgstr ""
-#: remote.c:1636
+#: remote.c:1639
#, c-format
msgid "no upstream configured for branch '%s'"
msgstr ""
-#: remote.c:1642
+#: remote.c:1645
#, c-format
msgid "upstream branch '%s' not stored as a remote-tracking branch"
msgstr ""
-#: remote.c:1657
+#: remote.c:1660
#, c-format
msgid "push destination '%s' on remote '%s' has no local tracking branch"
msgstr ""
-#: remote.c:1669
+#: remote.c:1672
#, c-format
msgid "branch '%s' has no remote for pushing"
msgstr ""
-#: remote.c:1679
+#: remote.c:1682
#, c-format
msgid "push refspecs for '%s' do not include '%s'"
msgstr ""
-#: remote.c:1692
+#: remote.c:1695
msgid "push has no destination (push.default is 'nothing')"
msgstr ""
-#: remote.c:1714
+#: remote.c:1717
msgid "cannot resolve 'simple' push to a single destination"
msgstr ""
-#: remote.c:1840
+#: remote.c:1843
#, c-format
msgid "couldn't find remote ref %s"
msgstr ""
-#: remote.c:1853
+#: remote.c:1856
#, c-format
msgid "* Ignoring funny ref '%s' locally"
msgstr ""
-#: remote.c:2016
+#: remote.c:2019
#, c-format
msgid "Your branch is based on '%s', but the upstream is gone.\n"
msgstr ""
-#: remote.c:2020
+#: remote.c:2023
msgid " (use \"git branch --unset-upstream\" to fixup)\n"
msgstr ""
-#: remote.c:2023
+#: remote.c:2026
#, c-format
msgid "Your branch is up to date with '%s'.\n"
msgstr ""
-#: remote.c:2027
+#: remote.c:2030
#, c-format
msgid "Your branch and '%s' refer to different commits.\n"
msgstr ""
-#: remote.c:2030
+#: remote.c:2033
#, c-format
msgid " (use \"%s\" for details)\n"
msgstr ""
-#: remote.c:2034
+#: remote.c:2037
#, 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:2040
+#: remote.c:2043
msgid " (use \"git push\" to publish your local commits)\n"
msgstr ""
-#: remote.c:2043
+#: remote.c:2046
#, c-format
msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
msgid_plural ""
@@ -5169,11 +5202,11 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: remote.c:2051
+#: remote.c:2054
msgid " (use \"git pull\" to update your local branch)\n"
msgstr ""
-#: remote.c:2054
+#: remote.c:2057
#, c-format
msgid ""
"Your branch and '%s' have diverged,\n"
@@ -5184,11 +5217,11 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: remote.c:2064
+#: remote.c:2067
msgid " (use \"git pull\" to merge the remote branch into yours)\n"
msgstr ""
-#: remote.c:2247
+#: remote.c:2250
#, c-format
msgid "cannot parse expected object name '%s'"
msgstr ""
@@ -5266,7 +5299,7 @@ msgstr ""
msgid "Recorded preimage for '%s'"
msgstr ""
-#: rerere.c:881 submodule.c:2023 builtin/log.c:1773
+#: rerere.c:881 submodule.c:2023 builtin/log.c:1790
#: builtin/submodule--helper.c:1418 builtin/submodule--helper.c:1428
#, c-format
msgid "could not create directory '%s'"
@@ -5301,20 +5334,20 @@ msgstr ""
msgid "unable to open rr-cache directory"
msgstr ""
-#: revision.c:2507
+#: revision.c:2509
msgid "your current branch appears to be broken"
msgstr ""
-#: revision.c:2510
+#: revision.c:2512
#, c-format
msgid "your current branch '%s' does not have any commits yet"
msgstr ""
-#: revision.c:2710
+#: revision.c:2720
msgid "--first-parent is incompatible with --bisect"
msgstr ""
-#: revision.c:2714
+#: revision.c:2724
msgid "-L does not yet support diff formats besides -p and -s"
msgstr ""
@@ -5334,39 +5367,39 @@ msgid ""
"You can disable this warning with `git config advice.ignoredHook false`."
msgstr ""
-#: send-pack.c:141
+#: send-pack.c:142
msgid "unexpected flush packet while reading remote unpack status"
msgstr ""
-#: send-pack.c:143
+#: send-pack.c:144
#, c-format
msgid "unable to parse remote unpack status: %s"
msgstr ""
-#: send-pack.c:145
+#: send-pack.c:146
#, c-format
msgid "remote unpack failed: %s"
msgstr ""
-#: send-pack.c:306
+#: send-pack.c:307
msgid "failed to sign the push certificate"
msgstr ""
-#: send-pack.c:420
+#: send-pack.c:421
msgid "the receiving end does not support --signed push"
msgstr ""
-#: send-pack.c:422
+#: send-pack.c:423
msgid ""
"not sending a push certificate since the receiving end does not support --"
"signed push"
msgstr ""
-#: send-pack.c:434
+#: send-pack.c:435
msgid "the receiving end does not support --atomic push"
msgstr ""
-#: send-pack.c:439
+#: send-pack.c:440
msgid "the receiving end does not support push options"
msgstr ""
@@ -5380,7 +5413,7 @@ msgstr ""
msgid "could not delete '%s'"
msgstr ""
-#: sequencer.c:311 builtin/rebase.c:759 builtin/rebase.c:1645 builtin/rm.c:369
+#: sequencer.c:311 builtin/rebase.c:760 builtin/rebase.c:1676 builtin/rm.c:369
#, c-format
msgid "could not remove '%s'"
msgstr ""
@@ -5415,7 +5448,7 @@ msgid ""
"and commit the result with 'git commit'"
msgstr ""
-#: sequencer.c:401 sequencer.c:2909
+#: sequencer.c:401 sequencer.c:2847
#, c-format
msgid "could not lock '%s'"
msgstr ""
@@ -5425,15 +5458,15 @@ msgstr ""
msgid "could not write eol to '%s'"
msgstr ""
-#: sequencer.c:413 sequencer.c:2714 sequencer.c:2915 sequencer.c:2929
-#: sequencer.c:3192
+#: sequencer.c:413 sequencer.c:2652 sequencer.c:2853 sequencer.c:2867
+#: sequencer.c:3130
#, c-format
msgid "failed to finalize '%s'"
msgstr ""
-#: sequencer.c:436 sequencer.c:981 sequencer.c:1655 sequencer.c:2734
-#: sequencer.c:3174 sequencer.c:3283 builtin/am.c:245 builtin/commit.c:763
-#: builtin/merge.c:1112 builtin/rebase.c:567
+#: sequencer.c:436 sequencer.c:1585 sequencer.c:2672 sequencer.c:3112
+#: sequencer.c:3221 builtin/am.c:244 builtin/commit.c:763 builtin/merge.c:1117
+#: builtin/rebase.c:568
#, c-format
msgid "could not read '%s'"
msgstr ""
@@ -5460,70 +5493,65 @@ msgstr ""
#. TRANSLATORS: %s will be "revert", "cherry-pick" or
#. "rebase -i".
#.
-#: sequencer.c:632
+#: sequencer.c:631
#, c-format
msgid "%s: Unable to write new index file"
msgstr ""
-#: sequencer.c:649
+#: sequencer.c:648
msgid "unable to update cache tree"
msgstr ""
-#: sequencer.c:663
+#: sequencer.c:662
msgid "could not resolve HEAD commit"
msgstr ""
-#: sequencer.c:743
+#: sequencer.c:742
#, c-format
msgid "no key present in '%.*s'"
msgstr ""
-#: sequencer.c:754
+#: sequencer.c:753
#, c-format
msgid "unable to dequote value of '%s'"
msgstr ""
-#: sequencer.c:791 wrapper.c:227 wrapper.c:397 builtin/am.c:706
-#: builtin/am.c:798 builtin/merge.c:1109 builtin/rebase.c:1045
+#: sequencer.c:790 wrapper.c:190 wrapper.c:360 builtin/am.c:705
+#: builtin/am.c:797 builtin/merge.c:1114 builtin/rebase.c:1046
#, c-format
msgid "could not open '%s' for reading"
msgstr ""
-#: sequencer.c:801
+#: sequencer.c:800
msgid "'GIT_AUTHOR_NAME' already given"
msgstr ""
-#: sequencer.c:806
+#: sequencer.c:805
msgid "'GIT_AUTHOR_EMAIL' already given"
msgstr ""
-#: sequencer.c:811
+#: sequencer.c:810
msgid "'GIT_AUTHOR_DATE' already given"
msgstr ""
-#: sequencer.c:815
+#: sequencer.c:814
#, c-format
msgid "unknown variable '%s'"
msgstr ""
-#: sequencer.c:820
+#: sequencer.c:819
msgid "missing 'GIT_AUTHOR_NAME'"
msgstr ""
-#: sequencer.c:822
+#: sequencer.c:821
msgid "missing 'GIT_AUTHOR_EMAIL'"
msgstr ""
-#: sequencer.c:824
+#: sequencer.c:823
msgid "missing 'GIT_AUTHOR_DATE'"
msgstr ""
-#: sequencer.c:884
-#, c-format
-msgid "invalid date format '%s' in '%s'"
-msgstr ""
-
-#: sequencer.c:901
+#: sequencer.c:872
#, c-format
msgid ""
"you have staged changes in your working tree\n"
@@ -5540,15 +5568,11 @@ msgid ""
" git rebase --continue\n"
msgstr ""
-#: sequencer.c:995
-msgid "writing root commit"
-msgstr ""
-
-#: sequencer.c:1216
+#: sequencer.c:1146
msgid "'prepare-commit-msg' hook failed"
msgstr ""
-#: sequencer.c:1223
+#: sequencer.c:1153
msgid ""
"Your name and email address were configured automatically based\n"
"on your username and hostname. Please check that they are accurate.\n"
@@ -5563,7 +5587,7 @@ msgid ""
" git commit --amend --reset-author\n"
msgstr ""
-#: sequencer.c:1236
+#: sequencer.c:1166
msgid ""
"Your name and email address were configured automatically based\n"
"on your username and hostname. Please check that they are accurate.\n"
@@ -5577,346 +5601,346 @@ msgid ""
" git commit --amend --reset-author\n"
msgstr ""
-#: sequencer.c:1278
+#: sequencer.c:1208
msgid "couldn't look up newly created commit"
msgstr ""
-#: sequencer.c:1280
+#: sequencer.c:1210
msgid "could not parse newly created commit"
msgstr ""
-#: sequencer.c:1326
+#: sequencer.c:1256
msgid "unable to resolve HEAD after creating commit"
msgstr ""
-#: sequencer.c:1328
+#: sequencer.c:1258
msgid "detached HEAD"
msgstr ""
-#: sequencer.c:1332
+#: sequencer.c:1262
msgid " (root-commit)"
msgstr ""
-#: sequencer.c:1353
+#: sequencer.c:1283
msgid "could not parse HEAD"
msgstr ""
-#: sequencer.c:1355
+#: sequencer.c:1285
#, c-format
msgid "HEAD %s is not a commit!"
msgstr ""
-#: sequencer.c:1359 builtin/commit.c:1571
+#: sequencer.c:1289 builtin/commit.c:1571
msgid "could not parse HEAD commit"
msgstr ""
-#: sequencer.c:1411 sequencer.c:2004
+#: sequencer.c:1341 sequencer.c:1933
msgid "unable to parse commit author"
msgstr ""
-#: sequencer.c:1421 builtin/am.c:1573 builtin/merge.c:684
+#: sequencer.c:1352 builtin/am.c:1561 builtin/merge.c:684
msgid "git write-tree failed to write a tree"
msgstr ""
-#: sequencer.c:1438 sequencer.c:1499
+#: sequencer.c:1369 sequencer.c:1429
#, c-format
msgid "unable to read commit message from '%s'"
msgstr ""
-#: sequencer.c:1465 builtin/am.c:1595 builtin/commit.c:1670 builtin/merge.c:878
-#: builtin/merge.c:903
+#: sequencer.c:1396 builtin/am.c:1583 builtin/commit.c:1670 builtin/merge.c:883
+#: builtin/merge.c:908
msgid "failed to write commit object"
msgstr ""
-#: sequencer.c:1526
+#: sequencer.c:1456
#, c-format
msgid "could not parse commit %s"
msgstr ""
-#: sequencer.c:1531
+#: sequencer.c:1461
#, c-format
msgid "could not parse parent commit %s"
msgstr ""
-#: sequencer.c:1605 sequencer.c:1715
+#: sequencer.c:1535 sequencer.c:1645
#, c-format
msgid "unknown command: %d"
msgstr ""
-#: sequencer.c:1662 sequencer.c:1687
+#: sequencer.c:1592 sequencer.c:1617
#, c-format
msgid "This is a combination of %d commits."
msgstr ""
-#: sequencer.c:1672
+#: sequencer.c:1602
msgid "need a HEAD to fixup"
msgstr ""
-#: sequencer.c:1674 sequencer.c:3219
+#: sequencer.c:1604 sequencer.c:3157
msgid "could not read HEAD"
msgstr ""
-#: sequencer.c:1676
+#: sequencer.c:1606
msgid "could not read HEAD's commit message"
msgstr ""
-#: sequencer.c:1682
+#: sequencer.c:1612
#, c-format
msgid "cannot write '%s'"
msgstr ""
-#: sequencer.c:1689 git-rebase--preserve-merges.sh:496
+#: sequencer.c:1619 git-rebase--preserve-merges.sh:496
msgid "This is the 1st commit message:"
msgstr ""
-#: sequencer.c:1697
+#: sequencer.c:1627
#, c-format
msgid "could not read commit message of %s"
msgstr ""
-#: sequencer.c:1704
+#: sequencer.c:1634
#, c-format
msgid "This is the commit message #%d:"
msgstr ""
-#: sequencer.c:1710
+#: sequencer.c:1640
#, c-format
msgid "The commit message #%d will be skipped:"
msgstr ""
-#: sequencer.c:1798
+#: sequencer.c:1728
msgid "your index file is unmerged."
msgstr ""
-#: sequencer.c:1805
+#: sequencer.c:1735
msgid "cannot fixup root commit"
msgstr ""
-#: sequencer.c:1824
+#: sequencer.c:1754
#, c-format
msgid "commit %s is a merge but no -m option was given."
msgstr ""
-#: sequencer.c:1832 sequencer.c:1840
+#: sequencer.c:1762 sequencer.c:1770
#, c-format
msgid "commit %s does not have parent %d"
msgstr ""
-#: sequencer.c:1846
+#: sequencer.c:1776
#, 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:1865
+#: sequencer.c:1795
#, c-format
msgid "%s: cannot parse parent commit %s"
msgstr ""
-#: sequencer.c:1930
+#: sequencer.c:1860
#, c-format
msgid "could not rename '%s' to '%s'"
msgstr ""
-#: sequencer.c:1985
+#: sequencer.c:1915
#, c-format
msgid "could not revert %s... %s"
msgstr ""
-#: sequencer.c:1986
+#: sequencer.c:1916
#, c-format
msgid "could not apply %s... %s"
msgstr ""
-#: sequencer.c:2045
+#: sequencer.c:1983
#, c-format
msgid "git %s: failed to read the index"
msgstr ""
-#: sequencer.c:2052
+#: sequencer.c:1990
#, c-format
msgid "git %s: failed to refresh the index"
msgstr ""
-#: sequencer.c:2128
+#: sequencer.c:2066
#, c-format
msgid "%s does not accept arguments: '%s'"
msgstr ""
-#: sequencer.c:2137
+#: sequencer.c:2075
#, c-format
msgid "missing arguments for %s"
msgstr ""
-#: sequencer.c:2174
+#: sequencer.c:2112
#, c-format
msgid "could not parse '%.*s'"
msgstr ""
-#: sequencer.c:2228
+#: sequencer.c:2166
#, c-format
msgid "invalid line %d: %.*s"
msgstr ""
-#: sequencer.c:2239
+#: sequencer.c:2177
#, c-format
msgid "cannot '%s' without a previous commit"
msgstr ""
-#: sequencer.c:2287 builtin/rebase.c:153 builtin/rebase.c:178
+#: sequencer.c:2225 builtin/rebase.c:153 builtin/rebase.c:178
#: builtin/rebase.c:204 builtin/rebase.c:229
#, c-format
msgid "could not read '%s'."
msgstr ""
-#: sequencer.c:2323
+#: sequencer.c:2261
msgid "cancelling a cherry picking in progress"
msgstr ""
-#: sequencer.c:2330
+#: sequencer.c:2268
msgid "cancelling a revert in progress"
msgstr ""
-#: sequencer.c:2364
+#: sequencer.c:2302
msgid "please fix this using 'git rebase --edit-todo'."
msgstr ""
-#: sequencer.c:2366
+#: sequencer.c:2304
#, c-format
msgid "unusable instruction sheet: '%s'"
msgstr ""
-#: sequencer.c:2371
+#: sequencer.c:2309
msgid "no commits parsed."
msgstr ""
-#: sequencer.c:2382
+#: sequencer.c:2320
msgid "cannot cherry-pick during a revert."
msgstr ""
-#: sequencer.c:2384
+#: sequencer.c:2322
msgid "cannot revert during a cherry-pick."
msgstr ""
-#: sequencer.c:2466
+#: sequencer.c:2404
#, c-format
msgid "invalid value for %s: %s"
msgstr ""
-#: sequencer.c:2553
+#: sequencer.c:2491
msgid "unusable squash-onto"
msgstr ""
-#: sequencer.c:2569
+#: sequencer.c:2507
#, c-format
msgid "malformed options sheet: '%s'"
msgstr ""
-#: sequencer.c:2652 sequencer.c:4351
+#: sequencer.c:2590 sequencer.c:4308
msgid "empty commit set passed"
msgstr ""
-#: sequencer.c:2668
+#: sequencer.c:2606
msgid "revert is already in progress"
msgstr ""
-#: sequencer.c:2670
+#: sequencer.c:2608
#, c-format
msgid "try \"git revert (--continue | %s--abort | --quit)\""
msgstr ""
-#: sequencer.c:2673
+#: sequencer.c:2611
msgid "cherry-pick is already in progress"
msgstr ""
-#: sequencer.c:2675
+#: sequencer.c:2613
#, c-format
msgid "try \"git cherry-pick (--continue | %s--abort | --quit)\""
msgstr ""
-#: sequencer.c:2689
+#: sequencer.c:2627
#, c-format
msgid "could not create sequencer directory '%s'"
msgstr ""
-#: sequencer.c:2704
+#: sequencer.c:2642
msgid "could not lock HEAD"
msgstr ""
-#: sequencer.c:2764 sequencer.c:4103
+#: sequencer.c:2702 sequencer.c:4057
msgid "no cherry-pick or revert in progress"
msgstr ""
-#: sequencer.c:2766 sequencer.c:2777
+#: sequencer.c:2704 sequencer.c:2715
msgid "cannot resolve HEAD"
msgstr ""
-#: sequencer.c:2768 sequencer.c:2812
+#: sequencer.c:2706 sequencer.c:2750
msgid "cannot abort from a branch yet to be born"
msgstr ""
-#: sequencer.c:2798 builtin/grep.c:734
+#: sequencer.c:2736 builtin/grep.c:736
#, c-format
msgid "cannot open '%s'"
msgstr ""
-#: sequencer.c:2800
+#: sequencer.c:2738
#, c-format
msgid "cannot read '%s': %s"
msgstr ""
-#: sequencer.c:2801
+#: sequencer.c:2739
msgid "unexpected end of file"
msgstr ""
-#: sequencer.c:2807
+#: sequencer.c:2745
#, c-format
msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
msgstr ""
-#: sequencer.c:2818
+#: sequencer.c:2756
msgid "You seem to have moved HEAD. Not rewinding, check your HEAD!"
msgstr ""
-#: sequencer.c:2859
+#: sequencer.c:2797
msgid "no revert in progress"
msgstr ""
-#: sequencer.c:2867
+#: sequencer.c:2805
msgid "no cherry-pick in progress"
msgstr ""
-#: sequencer.c:2877
+#: sequencer.c:2815
msgid "failed to skip the commit"
msgstr ""
-#: sequencer.c:2884
+#: sequencer.c:2822
msgid "there is nothing to skip"
msgstr ""
-#: sequencer.c:2887
+#: sequencer.c:2825
#, c-format
msgid ""
"have you committed already?\n"
"try \"git %s --continue\""
msgstr ""
-#: sequencer.c:3011 sequencer.c:4015
+#: sequencer.c:2949 sequencer.c:3969
#, c-format
msgid "could not update %s"
msgstr ""
-#: sequencer.c:3049 sequencer.c:3995
+#: sequencer.c:2987 sequencer.c:3949
msgid "cannot read HEAD"
msgstr ""
-#: sequencer.c:3066
+#: sequencer.c:3004
#, c-format
msgid "unable to copy '%s' to '%s'"
msgstr ""
-#: sequencer.c:3074
+#: sequencer.c:3012
#, c-format
msgid ""
"You can amend the commit now, with\n"
@@ -5928,27 +5952,27 @@ msgid ""
" git rebase --continue\n"
msgstr ""
-#: sequencer.c:3084
+#: sequencer.c:3022
#, c-format
msgid "Could not apply %s... %.*s"
msgstr ""
-#: sequencer.c:3091
+#: sequencer.c:3029
#, c-format
msgid "Could not merge %.*s"
msgstr ""
-#: sequencer.c:3105 sequencer.c:3109 builtin/difftool.c:633
+#: sequencer.c:3043 sequencer.c:3047 builtin/difftool.c:641
#, c-format
msgid "could not copy '%s' to '%s'"
msgstr ""
-#: sequencer.c:3131 sequencer.c:3558 builtin/rebase.c:849 builtin/rebase.c:1582
-#: builtin/rebase.c:1953 builtin/rebase.c:2008
+#: sequencer.c:3069 sequencer.c:3506 builtin/rebase.c:850 builtin/rebase.c:1613
+#: builtin/rebase.c:1987 builtin/rebase.c:2031
msgid "could not read index"
msgstr ""
-#: sequencer.c:3136
+#: sequencer.c:3074
#, c-format
msgid ""
"execution failed: %s\n"
@@ -5958,11 +5982,11 @@ msgid ""
"\n"
msgstr ""
-#: sequencer.c:3142
+#: sequencer.c:3080
msgid "and made changes to the index and/or the working tree\n"
msgstr ""
-#: sequencer.c:3148
+#: sequencer.c:3086
#, c-format
msgid ""
"execution succeeded: %s\n"
@@ -5973,76 +5997,76 @@ msgid ""
"\n"
msgstr ""
-#: sequencer.c:3209
+#: sequencer.c:3147
#, c-format
msgid "illegal label name: '%.*s'"
msgstr ""
-#: sequencer.c:3263
+#: sequencer.c:3201
msgid "writing fake root commit"
msgstr ""
-#: sequencer.c:3268
+#: sequencer.c:3206
msgid "writing squash-onto"
msgstr ""
-#: sequencer.c:3306 builtin/rebase.c:854 builtin/rebase.c:860
+#: sequencer.c:3244 builtin/rebase.c:855 builtin/rebase.c:861
#, c-format
msgid "failed to find tree of %s"
msgstr ""
-#: sequencer.c:3324 builtin/rebase.c:873
+#: sequencer.c:3262 builtin/rebase.c:874
msgid "could not write index"
msgstr ""
-#: sequencer.c:3351
+#: sequencer.c:3289
#, c-format
msgid "could not resolve '%s'"
msgstr ""
-#: sequencer.c:3379
+#: sequencer.c:3320
msgid "cannot merge without a current revision"
msgstr ""
-#: sequencer.c:3401
+#: sequencer.c:3342
#, c-format
msgid "unable to parse '%.*s'"
msgstr ""
-#: sequencer.c:3410
+#: sequencer.c:3351
#, c-format
msgid "nothing to merge: '%.*s'"
msgstr ""
-#: sequencer.c:3422
+#: sequencer.c:3363
msgid "octopus merge cannot be executed on top of a [new root]"
msgstr ""
-#: sequencer.c:3437
+#: sequencer.c:3378
#, c-format
msgid "could not get commit message of '%s'"
msgstr ""
-#: sequencer.c:3590
+#: sequencer.c:3538
#, c-format
msgid "could not even attempt to merge '%.*s'"
msgstr ""
-#: sequencer.c:3606
+#: sequencer.c:3554
msgid "merge: Unable to write new index file"
msgstr ""
-#: sequencer.c:3675 builtin/rebase.c:711
+#: sequencer.c:3623 builtin/rebase.c:712
#, c-format
msgid "Applied autostash.\n"
msgstr ""
-#: sequencer.c:3687
+#: sequencer.c:3635
#, c-format
msgid "cannot store %s"
msgstr ""
-#: sequencer.c:3690 builtin/rebase.c:727 git-rebase--preserve-merges.sh:113
+#: sequencer.c:3638 builtin/rebase.c:728 git-rebase--preserve-merges.sh:113
#, c-format
msgid ""
"Applying autostash resulted in conflicts.\n"
@@ -6050,31 +6074,31 @@ msgid ""
"You can run \"git stash pop\" or \"git stash drop\" at any time.\n"
msgstr ""
-#: sequencer.c:3751
+#: sequencer.c:3699
#, c-format
msgid "could not checkout %s"
msgstr ""
-#: sequencer.c:3765
+#: sequencer.c:3713
#, c-format
msgid "%s: not a valid OID"
msgstr ""
-#: sequencer.c:3770 git-rebase--preserve-merges.sh:779
+#: sequencer.c:3718 git-rebase--preserve-merges.sh:779
msgid "could not detach HEAD"
msgstr ""
-#: sequencer.c:3785
+#: sequencer.c:3733
#, c-format
msgid "Stopped at HEAD\n"
msgstr ""
-#: sequencer.c:3787
+#: sequencer.c:3735
#, c-format
msgid "Stopped at %s\n"
msgstr ""
-#: sequencer.c:3795
+#: sequencer.c:3743
#, c-format
msgid ""
"Could not execute the todo command\n"
@@ -6087,121 +6111,121 @@ msgid ""
" git rebase --continue\n"
msgstr ""
-#: sequencer.c:3877
+#: sequencer.c:3827
#, c-format
msgid "Stopped at %s... %.*s\n"
msgstr ""
-#: sequencer.c:3958
+#: sequencer.c:3898
#, c-format
msgid "unknown command %d"
msgstr ""
-#: sequencer.c:4003
+#: sequencer.c:3957
msgid "could not read orig-head"
msgstr ""
-#: sequencer.c:4008
+#: sequencer.c:3962
msgid "could not read 'onto'"
msgstr ""
-#: sequencer.c:4022
+#: sequencer.c:3976
#, c-format
msgid "could not update HEAD to %s"
msgstr ""
-#: sequencer.c:4115
+#: sequencer.c:4069
msgid "cannot rebase: You have unstaged changes."
msgstr ""
-#: sequencer.c:4124
+#: sequencer.c:4078
msgid "cannot amend non-existing commit"
msgstr ""
-#: sequencer.c:4126
+#: sequencer.c:4080
#, c-format
msgid "invalid file: '%s'"
msgstr ""
-#: sequencer.c:4128
+#: sequencer.c:4082
#, c-format
msgid "invalid contents: '%s'"
msgstr ""
-#: sequencer.c:4131
+#: sequencer.c:4085
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:4167 sequencer.c:4205
+#: sequencer.c:4121 sequencer.c:4159
#, c-format
msgid "could not write file: '%s'"
msgstr ""
-#: sequencer.c:4220
+#: sequencer.c:4174
msgid "could not remove CHERRY_PICK_HEAD"
msgstr ""
-#: sequencer.c:4227
+#: sequencer.c:4181
msgid "could not commit staged changes."
msgstr ""
-#: sequencer.c:4328
+#: sequencer.c:4285
#, c-format
msgid "%s: can't cherry-pick a %s"
msgstr ""
-#: sequencer.c:4332
+#: sequencer.c:4289
#, c-format
msgid "%s: bad revision"
msgstr ""
-#: sequencer.c:4367
+#: sequencer.c:4324
msgid "can't revert as initial commit"
msgstr ""
-#: sequencer.c:4810
+#: sequencer.c:4774
msgid "make_script: unhandled options"
msgstr ""
-#: sequencer.c:4813
+#: sequencer.c:4777
msgid "make_script: error preparing revisions"
msgstr ""
-#: sequencer.c:4971
+#: sequencer.c:4935
msgid ""
"You can fix this with 'git rebase --edit-todo' and then run 'git rebase --"
"continue'.\n"
"Or you can abort the rebase with 'git rebase --abort'.\n"
msgstr ""
-#: sequencer.c:5083 sequencer.c:5100
+#: sequencer.c:5047 sequencer.c:5064
msgid "nothing to do"
msgstr ""
-#: sequencer.c:5114
+#: sequencer.c:5078
msgid "could not skip unnecessary pick commands"
msgstr ""
-#: sequencer.c:5197
+#: sequencer.c:5166
msgid "the script was already rearranged."
msgstr ""
-#: setup.c:123
+#: setup.c:124
#, c-format
msgid "'%s' is outside repository"
msgstr ""
-#: setup.c:173
+#: setup.c:174
#, 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:186
+#: setup.c:187
#, c-format
msgid ""
"ambiguous argument '%s': unknown revision or path not in the working tree.\n"
@@ -6209,12 +6233,12 @@ msgid ""
"'git <command> [<revision>...] -- [<file>...]'"
msgstr ""
-#: setup.c:235
+#: setup.c:236
#, c-format
msgid "option '%s' must come before non-option arguments"
msgstr ""
-#: setup.c:254
+#: setup.c:255
#, c-format
msgid ""
"ambiguous argument '%s': both revision and filename\n"
@@ -6222,381 +6246,381 @@ msgid ""
"'git <command> [<revision>...] -- [<file>...]'"
msgstr ""
-#: setup.c:390
+#: setup.c:391
msgid "unable to set up work tree using invalid config"
msgstr ""
-#: setup.c:394
+#: setup.c:395
msgid "this operation must be run in a work tree"
msgstr ""
-#: setup.c:540
+#: setup.c:541
#, c-format
msgid "Expected git repo version <= %d, found %d"
msgstr ""
-#: setup.c:548
+#: setup.c:549
msgid "unknown repository extensions found:"
msgstr ""
-#: setup.c:567
+#: setup.c:568
#, c-format
msgid "error opening '%s'"
msgstr ""
-#: setup.c:569
+#: setup.c:570
#, c-format
msgid "too large to be a .git file: '%s'"
msgstr ""
-#: setup.c:571
+#: setup.c:572
#, c-format
msgid "error reading %s"
msgstr ""
-#: setup.c:573
+#: setup.c:574
#, c-format
msgid "invalid gitfile format: %s"
msgstr ""
-#: setup.c:575
+#: setup.c:576
#, c-format
msgid "no path in gitfile: %s"
msgstr ""
-#: setup.c:577
+#: setup.c:578
#, c-format
msgid "not a git repository: %s"
msgstr ""
-#: setup.c:676
+#: setup.c:677
#, c-format
msgid "'$%s' too big"
msgstr ""
-#: setup.c:690
+#: setup.c:691
#, c-format
msgid "not a git repository: '%s'"
msgstr ""
-#: setup.c:719 setup.c:721 setup.c:752
+#: setup.c:720 setup.c:722 setup.c:753
#, c-format
msgid "cannot chdir to '%s'"
msgstr ""
-#: setup.c:724 setup.c:780 setup.c:790 setup.c:829 setup.c:837
+#: setup.c:725 setup.c:781 setup.c:791 setup.c:830 setup.c:838
msgid "cannot come back to cwd"
msgstr ""
-#: setup.c:851
+#: setup.c:852
#, c-format
msgid "failed to stat '%*s%s%s'"
msgstr ""
-#: setup.c:1083
+#: setup.c:1090
msgid "Unable to read current working directory"
msgstr ""
-#: setup.c:1092 setup.c:1098
+#: setup.c:1099 setup.c:1105
#, c-format
msgid "cannot change to '%s'"
msgstr ""
-#: setup.c:1103
+#: setup.c:1110
#, c-format
msgid "not a git repository (or any of the parent directories): %s"
msgstr ""
-#: setup.c:1109
+#: setup.c:1116
#, 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:1220
+#: setup.c:1227
#, 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:1264
+#: setup.c:1271
msgid "open /dev/null or dup failed"
msgstr ""
-#: setup.c:1279
+#: setup.c:1286
msgid "fork failed"
msgstr ""
-#: setup.c:1284
+#: setup.c:1291
msgid "setsid failed"
msgstr ""
-#: sha1-file.c:453
+#: sha1-file.c:452
#, c-format
msgid "object directory %s does not exist; check .git/objects/info/alternates"
msgstr ""
-#: sha1-file.c:504
+#: sha1-file.c:503
#, c-format
msgid "unable to normalize alternate object path: %s"
msgstr ""
-#: sha1-file.c:576
+#: sha1-file.c:575
#, c-format
msgid "%s: ignoring alternate object stores, nesting too deep"
msgstr ""
-#: sha1-file.c:583
+#: sha1-file.c:582
#, c-format
msgid "unable to normalize object directory: %s"
msgstr ""
-#: sha1-file.c:626
+#: sha1-file.c:625
msgid "unable to fdopen alternates lockfile"
msgstr ""
-#: sha1-file.c:644
+#: sha1-file.c:643
msgid "unable to read alternates file"
msgstr ""
-#: sha1-file.c:651
+#: sha1-file.c:650
msgid "unable to move new alternates file into place"
msgstr ""
-#: sha1-file.c:686
+#: sha1-file.c:685
#, c-format
msgid "path '%s' does not exist"
msgstr ""
-#: sha1-file.c:712
+#: sha1-file.c:711
#, c-format
msgid "reference repository '%s' as a linked checkout is not supported yet."
msgstr ""
-#: sha1-file.c:718
+#: sha1-file.c:717
#, c-format
msgid "reference repository '%s' is not a local repository."
msgstr ""
-#: sha1-file.c:724
+#: sha1-file.c:723
#, c-format
msgid "reference repository '%s' is shallow"
msgstr ""
-#: sha1-file.c:732
+#: sha1-file.c:731
#, c-format
msgid "reference repository '%s' is grafted"
msgstr ""
-#: sha1-file.c:792
+#: sha1-file.c:791
#, c-format
msgid "invalid line while parsing alternate refs: %s"
msgstr ""
-#: sha1-file.c:944
+#: sha1-file.c:943
#, c-format
msgid "attempting to mmap %<PRIuMAX> over limit %<PRIuMAX>"
msgstr ""
-#: sha1-file.c:969
+#: sha1-file.c:964
msgid "mmap failed"
msgstr ""
-#: sha1-file.c:1133
+#: sha1-file.c:1128
#, c-format
msgid "object file %s is empty"
msgstr ""
-#: sha1-file.c:1257 sha1-file.c:2396
+#: sha1-file.c:1252 sha1-file.c:2392
#, c-format
msgid "corrupt loose object '%s'"
msgstr ""
-#: sha1-file.c:1259 sha1-file.c:2400
+#: sha1-file.c:1254 sha1-file.c:2396
#, c-format
msgid "garbage at end of loose object '%s'"
msgstr ""
-#: sha1-file.c:1301
+#: sha1-file.c:1296
msgid "invalid object type"
msgstr ""
-#: sha1-file.c:1385
+#: sha1-file.c:1380
#, c-format
msgid "unable to unpack %s header with --allow-unknown-type"
msgstr ""
-#: sha1-file.c:1388
+#: sha1-file.c:1383
#, c-format
msgid "unable to unpack %s header"
msgstr ""
-#: sha1-file.c:1394
+#: sha1-file.c:1389
#, c-format
msgid "unable to parse %s header with --allow-unknown-type"
msgstr ""
-#: sha1-file.c:1397
+#: sha1-file.c:1392
#, c-format
msgid "unable to parse %s header"
msgstr ""
-#: sha1-file.c:1588
+#: sha1-file.c:1584
#, c-format
msgid "failed to read object %s"
msgstr ""
-#: sha1-file.c:1592
+#: sha1-file.c:1588
#, c-format
msgid "replacement %s not found for %s"
msgstr ""
-#: sha1-file.c:1596
+#: sha1-file.c:1592
#, c-format
msgid "loose object %s (stored in %s) is corrupt"
msgstr ""
-#: sha1-file.c:1600
+#: sha1-file.c:1596
#, c-format
msgid "packed object %s (stored in %s) is corrupt"
msgstr ""
-#: sha1-file.c:1703
+#: sha1-file.c:1699
#, c-format
msgid "unable to write file %s"
msgstr ""
-#: sha1-file.c:1710
+#: sha1-file.c:1706
#, c-format
msgid "unable to set permission to '%s'"
msgstr ""
-#: sha1-file.c:1717
+#: sha1-file.c:1713
msgid "file write error"
msgstr ""
-#: sha1-file.c:1736
+#: sha1-file.c:1732
msgid "error when closing loose object file"
msgstr ""
-#: sha1-file.c:1801
+#: sha1-file.c:1797
#, c-format
msgid "insufficient permission for adding an object to repository database %s"
msgstr ""
-#: sha1-file.c:1803
+#: sha1-file.c:1799
msgid "unable to create temporary file"
msgstr ""
-#: sha1-file.c:1827
+#: sha1-file.c:1823
msgid "unable to write loose object file"
msgstr ""
-#: sha1-file.c:1833
+#: sha1-file.c:1829
#, c-format
msgid "unable to deflate new object %s (%d)"
msgstr ""
-#: sha1-file.c:1837
+#: sha1-file.c:1833
#, c-format
msgid "deflateEnd on object %s failed (%d)"
msgstr ""
-#: sha1-file.c:1841
+#: sha1-file.c:1837
#, c-format
msgid "confused by unstable object source data for %s"
msgstr ""
-#: sha1-file.c:1851 builtin/pack-objects.c:925
+#: sha1-file.c:1847 builtin/pack-objects.c:925
#, c-format
msgid "failed utime() on %s"
msgstr ""
-#: sha1-file.c:1926
+#: sha1-file.c:1922
#, c-format
msgid "cannot read object for %s"
msgstr ""
-#: sha1-file.c:1966
+#: sha1-file.c:1962
msgid "corrupt commit"
msgstr ""
-#: sha1-file.c:1974
+#: sha1-file.c:1970
msgid "corrupt tag"
msgstr ""
-#: sha1-file.c:2073
+#: sha1-file.c:2069
#, c-format
msgid "read error while indexing %s"
msgstr ""
-#: sha1-file.c:2076
+#: sha1-file.c:2072
#, c-format
msgid "short read while indexing %s"
msgstr ""
-#: sha1-file.c:2149 sha1-file.c:2158
+#: sha1-file.c:2145 sha1-file.c:2154
#, c-format
msgid "%s: failed to insert into database"
msgstr ""
-#: sha1-file.c:2164
+#: sha1-file.c:2160
#, c-format
msgid "%s: unsupported file type"
msgstr ""
-#: sha1-file.c:2188
+#: sha1-file.c:2184
#, c-format
msgid "%s is not a valid object"
msgstr ""
-#: sha1-file.c:2190
+#: sha1-file.c:2186
#, c-format
msgid "%s is not a valid '%s' object"
msgstr ""
-#: sha1-file.c:2217 builtin/index-pack.c:155
+#: sha1-file.c:2213 builtin/index-pack.c:155
#, c-format
msgid "unable to open %s"
msgstr ""
-#: sha1-file.c:2407 sha1-file.c:2459
+#: sha1-file.c:2403 sha1-file.c:2455
#, c-format
msgid "hash mismatch for %s (expected %s)"
msgstr ""
-#: sha1-file.c:2431
+#: sha1-file.c:2427
#, c-format
msgid "unable to mmap %s"
msgstr ""
-#: sha1-file.c:2436
+#: sha1-file.c:2432
#, c-format
msgid "unable to unpack header of %s"
msgstr ""
-#: sha1-file.c:2442
+#: sha1-file.c:2438
#, c-format
msgid "unable to parse header of %s"
msgstr ""
-#: sha1-file.c:2453
+#: sha1-file.c:2449
#, c-format
msgid "unable to unpack contents of %s"
msgstr ""
-#: sha1-name.c:490
+#: sha1-name.c:487
#, c-format
msgid "short SHA1 %s is ambiguous"
msgstr ""
-#: sha1-name.c:501
+#: sha1-name.c:498
msgid "The candidates are:"
msgstr ""
-#: sha1-name.c:800
+#: sha1-name.c:797
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"
@@ -6610,43 +6634,43 @@ msgid ""
msgstr ""
#. TRANSLATORS: IEC 80000-13:2008 gibibyte
-#: strbuf.c:821
+#: strbuf.c:822
#, c-format
msgid "%u.%2.2u GiB"
msgstr ""
#. TRANSLATORS: IEC 80000-13:2008 gibibyte/second
-#: strbuf.c:823
+#: strbuf.c:824
#, c-format
msgid "%u.%2.2u GiB/s"
msgstr ""
#. TRANSLATORS: IEC 80000-13:2008 mebibyte
-#: strbuf.c:831
+#: strbuf.c:832
#, c-format
msgid "%u.%2.2u MiB"
msgstr ""
#. TRANSLATORS: IEC 80000-13:2008 mebibyte/second
-#: strbuf.c:833
+#: strbuf.c:834
#, c-format
msgid "%u.%2.2u MiB/s"
msgstr ""
#. TRANSLATORS: IEC 80000-13:2008 kibibyte
-#: strbuf.c:840
+#: strbuf.c:841
#, c-format
msgid "%u.%2.2u KiB"
msgstr ""
#. TRANSLATORS: IEC 80000-13:2008 kibibyte/second
-#: strbuf.c:842
+#: strbuf.c:843
#, c-format
msgid "%u.%2.2u KiB/s"
msgstr ""
#. TRANSLATORS: IEC 80000-13:2008 byte
-#: strbuf.c:848
+#: strbuf.c:849
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -6654,7 +6678,7 @@ msgstr[0] ""
msgstr[1] ""
#. TRANSLATORS: IEC 80000-13:2008 byte/second
-#: strbuf.c:850
+#: strbuf.c:851
#, c-format
msgid "%u byte/s"
msgid_plural "%u bytes/s"
@@ -6766,26 +6790,26 @@ msgstr ""
msgid "ls-tree returned unexpected return code %d"
msgstr ""
-#: submodule-config.c:232
+#: submodule-config.c:236
#, c-format
msgid "ignoring suspicious submodule name: %s"
msgstr ""
-#: submodule-config.c:299
+#: submodule-config.c:303
msgid "negative values not allowed for submodule.fetchjobs"
msgstr ""
-#: submodule-config.c:397
+#: submodule-config.c:401
#, c-format
msgid "ignoring '%s' which may be interpreted as a command-line option: %s"
msgstr ""
-#: submodule-config.c:486
+#: submodule-config.c:490
#, c-format
msgid "invalid value for %s"
msgstr ""
-#: submodule-config.c:755
+#: submodule-config.c:761
#, c-format
msgid "Could not update .gitmodules entry %s"
msgstr ""
@@ -6820,7 +6844,7 @@ msgstr ""
msgid "could not read from stdin"
msgstr ""
-#: trailer.c:1011 wrapper.c:701
+#: trailer.c:1011 wrapper.c:665
#, c-format
msgid "could not stat %s"
msgstr ""
@@ -6849,54 +6873,54 @@ msgstr ""
msgid "Would set upstream of '%s' to '%s' of '%s'\n"
msgstr ""
-#: transport.c:142
+#: transport.c:145
#, c-format
msgid "could not read bundle '%s'"
msgstr ""
-#: transport.c:208
+#: transport.c:214
#, c-format
msgid "transport: invalid depth option '%s'"
msgstr ""
-#: transport.c:259
+#: transport.c:266
msgid "see protocol.version in 'git help config' for more details"
msgstr ""
-#: transport.c:260
+#: transport.c:267
msgid "server options require protocol version 2 or later"
msgstr ""
-#: transport.c:625
+#: transport.c:632
msgid "could not parse transport.color.* config"
msgstr ""
-#: transport.c:698
+#: transport.c:705
msgid "support for protocol v2 not implemented yet"
msgstr ""
-#: transport.c:825
+#: transport.c:831
#, c-format
msgid "unknown value for config '%s': %s"
msgstr ""
-#: transport.c:891
+#: transport.c:897
#, c-format
msgid "transport '%s' not allowed"
msgstr ""
-#: transport.c:945
+#: transport.c:949
msgid "git-over-rsync is no longer supported"
msgstr ""
-#: transport.c:1040
+#: transport.c:1044
#, c-format
msgid ""
"The following submodule paths contain changes that can\n"
"not be found on any remote:\n"
msgstr ""
-#: transport.c:1044
+#: transport.c:1048
#, c-format
msgid ""
"\n"
@@ -6912,178 +6936,183 @@ msgid ""
"\n"
msgstr ""
-#: transport.c:1052
+#: transport.c:1056
msgid "Aborting."
msgstr ""
-#: transport.c:1193
+#: transport.c:1201
msgid "failed to push all needed submodules"
msgstr ""
-#: transport.c:1340 transport-helper.c:645
+#: transport.c:1345 transport-helper.c:655
msgid "operation not supported by protocol"
msgstr ""
-#: transport-helper.c:51 transport-helper.c:80
+#: transport-helper.c:61 transport-helper.c:90
msgid "full write to remote helper failed"
msgstr ""
-#: transport-helper.c:134
+#: transport-helper.c:144
#, c-format
msgid "unable to find remote helper for '%s'"
msgstr ""
-#: transport-helper.c:150 transport-helper.c:559
+#: transport-helper.c:160 transport-helper.c:569
msgid "can't dup helper output fd"
msgstr ""
-#: transport-helper.c:201
+#: transport-helper.c:211
#, c-format
msgid ""
"unknown mandatory capability %s; this remote helper probably needs newer "
"version of Git"
msgstr ""
-#: transport-helper.c:207
+#: transport-helper.c:217
msgid "this remote helper should implement refspec capability"
msgstr ""
-#: transport-helper.c:274 transport-helper.c:414
+#: transport-helper.c:284 transport-helper.c:424
#, c-format
msgid "%s unexpectedly said: '%s'"
msgstr ""
-#: transport-helper.c:403
+#: transport-helper.c:413
#, c-format
msgid "%s also locked %s"
msgstr ""
-#: transport-helper.c:481
+#: transport-helper.c:491
msgid "couldn't run fast-import"
msgstr ""
-#: transport-helper.c:504
+#: transport-helper.c:514
msgid "error while running fast-import"
msgstr ""
-#: transport-helper.c:533 transport-helper.c:1105
+#: transport-helper.c:543 transport-helper.c:1132
#, c-format
msgid "could not read ref %s"
msgstr ""
-#: transport-helper.c:578
+#: transport-helper.c:588
#, c-format
msgid "unknown response to connect: %s"
msgstr ""
-#: transport-helper.c:600
+#: transport-helper.c:610
msgid "setting remote service path not supported by protocol"
msgstr ""
-#: transport-helper.c:602
+#: transport-helper.c:612
msgid "invalid remote service path"
msgstr ""
-#: transport-helper.c:648
+#: transport-helper.c:658
#, c-format
msgid "can't connect to subservice %s"
msgstr ""
-#: transport-helper.c:720
+#: transport-helper.c:734
#, c-format
msgid "expected ok/error, helper said '%s'"
msgstr ""
-#: transport-helper.c:773
+#: transport-helper.c:787
#, c-format
msgid "helper reported unexpected status of %s"
msgstr ""
-#: transport-helper.c:834
+#: transport-helper.c:848
#, c-format
msgid "helper %s does not support dry-run"
msgstr ""
-#: transport-helper.c:837
+#: transport-helper.c:851
#, c-format
msgid "helper %s does not support --signed"
msgstr ""
-#: transport-helper.c:840
+#: transport-helper.c:854
#, c-format
msgid "helper %s does not support --signed=if-asked"
msgstr ""
-#: transport-helper.c:847
+#: transport-helper.c:859
+#, c-format
+msgid "helper %s does not support --atomic"
+msgstr ""
+
+#: transport-helper.c:865
#, c-format
msgid "helper %s does not support 'push-option'"
msgstr ""
-#: transport-helper.c:945
+#: transport-helper.c:963
msgid "remote-helper doesn't support push; refspec needed"
msgstr ""
-#: transport-helper.c:950
+#: transport-helper.c:968
#, c-format
msgid "helper %s does not support 'force'"
msgstr ""
-#: transport-helper.c:997
+#: transport-helper.c:1015
msgid "couldn't run fast-export"
msgstr ""
-#: transport-helper.c:1002
+#: transport-helper.c:1020
msgid "error while running fast-export"
msgstr ""
-#: transport-helper.c:1027
+#: transport-helper.c:1045
#, c-format
msgid ""
"No refs in common and none specified; doing nothing.\n"
"Perhaps you should specify a branch such as 'master'.\n"
msgstr ""
-#: transport-helper.c:1091
+#: transport-helper.c:1118
#, c-format
msgid "malformed response in ref list: %s"
msgstr ""
-#: transport-helper.c:1244
+#: transport-helper.c:1270
#, c-format
msgid "read(%s) failed"
msgstr ""
-#: transport-helper.c:1271
+#: transport-helper.c:1297
#, c-format
msgid "write(%s) failed"
msgstr ""
-#: transport-helper.c:1320
+#: transport-helper.c:1346
#, c-format
msgid "%s thread failed"
msgstr ""
-#: transport-helper.c:1324
+#: transport-helper.c:1350
#, c-format
msgid "%s thread failed to join: %s"
msgstr ""
-#: transport-helper.c:1343 transport-helper.c:1347
+#: transport-helper.c:1369 transport-helper.c:1373
#, c-format
msgid "can't start thread for copying data: %s"
msgstr ""
-#: transport-helper.c:1384
+#: transport-helper.c:1410
#, c-format
msgid "%s process failed to wait"
msgstr ""
-#: transport-helper.c:1388
+#: transport-helper.c:1414
#, c-format
msgid "%s process failed"
msgstr ""
-#: transport-helper.c:1406 transport-helper.c:1415
+#: transport-helper.c:1432 transport-helper.c:1441
msgid "can't start thread for copying data"
msgstr ""
@@ -7103,98 +7132,98 @@ msgstr ""
msgid "too-short tree file"
msgstr ""
-#: unpack-trees.c:111
+#: unpack-trees.c:110
#, 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 ""
-#: unpack-trees.c:113
+#: unpack-trees.c:112
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by checkout:\n"
"%%s"
msgstr ""
-#: unpack-trees.c:116
+#: unpack-trees.c:115
#, 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 ""
-#: unpack-trees.c:118
+#: unpack-trees.c:117
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by merge:\n"
"%%s"
msgstr ""
-#: unpack-trees.c:121
+#: unpack-trees.c:120
#, 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 ""
-#: unpack-trees.c:123
+#: unpack-trees.c:122
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by %s:\n"
"%%s"
msgstr ""
-#: unpack-trees.c:128
+#: unpack-trees.c:127
#, c-format
msgid ""
"Updating the following directories would lose untracked files in them:\n"
"%s"
msgstr ""
-#: unpack-trees.c:132
+#: unpack-trees.c:131
#, 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 ""
-#: unpack-trees.c:134
+#: unpack-trees.c:133
#, c-format
msgid ""
"The following untracked working tree files would be removed by checkout:\n"
"%%s"
msgstr ""
-#: unpack-trees.c:137
+#: unpack-trees.c:136
#, c-format
msgid ""
"The following untracked working tree files would be removed by merge:\n"
"%%sPlease move or remove them before you merge."
msgstr ""
-#: unpack-trees.c:139
+#: unpack-trees.c:138
#, c-format
msgid ""
"The following untracked working tree files would be removed by merge:\n"
"%%s"
msgstr ""
-#: unpack-trees.c:142
+#: unpack-trees.c:141
#, c-format
msgid ""
"The following untracked working tree files would be removed by %s:\n"
"%%sPlease move or remove them before you %s."
msgstr ""
-#: unpack-trees.c:144
+#: unpack-trees.c:143
#, c-format
msgid ""
"The following untracked working tree files would be removed by %s:\n"
"%%s"
msgstr ""
-#: unpack-trees.c:150
+#: unpack-trees.c:149
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by "
@@ -7202,7 +7231,7 @@ msgid ""
"%%sPlease move or remove them before you switch branches."
msgstr ""
-#: unpack-trees.c:152
+#: unpack-trees.c:151
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by "
@@ -7210,47 +7239,47 @@ msgid ""
"%%s"
msgstr ""
-#: unpack-trees.c:155
+#: unpack-trees.c:154
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by merge:\n"
"%%sPlease move or remove them before you merge."
msgstr ""
-#: unpack-trees.c:157
+#: unpack-trees.c:156
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by merge:\n"
"%%s"
msgstr ""
-#: unpack-trees.c:160
+#: unpack-trees.c:159
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by %s:\n"
"%%sPlease move or remove them before you %s."
msgstr ""
-#: unpack-trees.c:162
+#: unpack-trees.c:161
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by %s:\n"
"%%s"
msgstr ""
-#: unpack-trees.c:170
+#: unpack-trees.c:169
#, c-format
msgid "Entry '%s' overlaps with '%s'. Cannot bind."
msgstr ""
-#: unpack-trees.c:173
+#: unpack-trees.c:172
#, c-format
msgid ""
"Cannot update sparse checkout: the following entries are not up to date:\n"
"%s"
msgstr ""
-#: unpack-trees.c:175
+#: unpack-trees.c:174
#, c-format
msgid ""
"The following working tree files would be overwritten by sparse checkout "
@@ -7258,7 +7287,7 @@ msgid ""
"%s"
msgstr ""
-#: unpack-trees.c:177
+#: unpack-trees.c:176
#, c-format
msgid ""
"The following working tree files would be removed by sparse checkout "
@@ -7266,23 +7295,23 @@ msgid ""
"%s"
msgstr ""
-#: unpack-trees.c:179
+#: unpack-trees.c:178
#, c-format
msgid ""
"Cannot update submodule:\n"
"%s"
msgstr ""
-#: unpack-trees.c:256
+#: unpack-trees.c:255
#, c-format
msgid "Aborting\n"
msgstr ""
-#: unpack-trees.c:318
+#: unpack-trees.c:317
msgid "Updating files"
msgstr ""
-#: unpack-trees.c:350
+#: unpack-trees.c:349
msgid ""
"the following paths have collided (e.g. case-sensitive paths\n"
"on a case-insensitive filesystem) and only one from the same\n"
@@ -7318,7 +7347,7 @@ msgstr ""
msgid "invalid '..' path segment"
msgstr ""
-#: worktree.c:258 builtin/am.c:2095
+#: worktree.c:258 builtin/am.c:2084
#, c-format
msgid "failed to read '%s'"
msgstr ""
@@ -7348,17 +7377,17 @@ msgstr ""
msgid "'%s' does not point back to '%s'"
msgstr ""
-#: wrapper.c:223 wrapper.c:393
+#: wrapper.c:186 wrapper.c:356
#, c-format
msgid "could not open '%s' for reading and writing"
msgstr ""
-#: wrapper.c:424 wrapper.c:624
+#: wrapper.c:387 wrapper.c:588
#, c-format
msgid "unable to access '%s'"
msgstr ""
-#: wrapper.c:632
+#: wrapper.c:596
msgid "unable to get current working directory"
msgstr ""
@@ -7676,80 +7705,88 @@ msgid " (all conflicts fixed: run \"git cherry-pick --continue\")"
msgstr ""
#: wt-status.c:1437
+msgid " (use \"git cherry-pick --skip\" to skip this patch)"
+msgstr ""
+
+#: wt-status.c:1439
msgid " (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)"
msgstr ""
-#: wt-status.c:1447
+#: wt-status.c:1449
msgid "Revert currently in progress."
msgstr ""
-#: wt-status.c:1450
+#: wt-status.c:1452
#, c-format
msgid "You are currently reverting commit %s."
msgstr ""
-#: wt-status.c:1456
+#: wt-status.c:1458
msgid " (fix conflicts and run \"git revert --continue\")"
msgstr ""
-#: wt-status.c:1459
+#: wt-status.c:1461
msgid " (run \"git revert --continue\" to continue)"
msgstr ""
-#: wt-status.c:1462
+#: wt-status.c:1464
msgid " (all conflicts fixed: run \"git revert --continue\")"
msgstr ""
-#: wt-status.c:1464
+#: wt-status.c:1466
+msgid " (use \"git revert --skip\" to skip this patch)"
+msgstr ""
+
+#: wt-status.c:1468
msgid " (use \"git revert --abort\" to cancel the revert operation)"
msgstr ""
-#: wt-status.c:1474
+#: wt-status.c:1478
#, c-format
msgid "You are currently bisecting, started from branch '%s'."
msgstr ""
-#: wt-status.c:1478
+#: wt-status.c:1482
msgid "You are currently bisecting."
msgstr ""
-#: wt-status.c:1481
+#: wt-status.c:1485
msgid " (use \"git bisect reset\" to get back to the original branch)"
msgstr ""
-#: wt-status.c:1690
+#: wt-status.c:1694
msgid "On branch "
msgstr ""
-#: wt-status.c:1697
+#: wt-status.c:1701
msgid "interactive rebase in progress; onto "
msgstr ""
-#: wt-status.c:1699
+#: wt-status.c:1703
msgid "rebase in progress; onto "
msgstr ""
-#: wt-status.c:1709
+#: wt-status.c:1713
msgid "Not currently on any branch."
msgstr ""
-#: wt-status.c:1726
+#: wt-status.c:1730
msgid "Initial commit"
msgstr ""
-#: wt-status.c:1727
+#: wt-status.c:1731
msgid "No commits yet"
msgstr ""
-#: wt-status.c:1741
+#: wt-status.c:1745
msgid "Untracked files"
msgstr ""
-#: wt-status.c:1743
+#: wt-status.c:1747
msgid "Ignored files"
msgstr ""
-#: wt-status.c:1747
+#: wt-status.c:1751
#, c-format
msgid ""
"It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
@@ -7757,96 +7794,101 @@ msgid ""
"new files yourself (see 'git help status')."
msgstr ""
-#: wt-status.c:1753
+#: wt-status.c:1757
#, c-format
msgid "Untracked files not listed%s"
msgstr ""
-#: wt-status.c:1755
+#: wt-status.c:1759
msgid " (use -u option to show untracked files)"
msgstr ""
-#: wt-status.c:1761
+#: wt-status.c:1765
msgid "No changes"
msgstr ""
-#: wt-status.c:1766
+#: wt-status.c:1770
#, c-format
msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n"
msgstr ""
-#: wt-status.c:1769
+#: wt-status.c:1773
#, c-format
msgid "no changes added to commit\n"
msgstr ""
-#: wt-status.c:1772
+#: wt-status.c:1776
#, c-format
msgid ""
"nothing added to commit but untracked files present (use \"git add\" to "
"track)\n"
msgstr ""
-#: wt-status.c:1775
+#: wt-status.c:1779
#, c-format
msgid "nothing added to commit but untracked files present\n"
msgstr ""
-#: wt-status.c:1778
+#: wt-status.c:1782
#, c-format
msgid "nothing to commit (create/copy files and use \"git add\" to track)\n"
msgstr ""
-#: wt-status.c:1781 wt-status.c:1786
+#: wt-status.c:1785 wt-status.c:1790
#, c-format
msgid "nothing to commit\n"
msgstr ""
-#: wt-status.c:1784
+#: wt-status.c:1788
#, c-format
msgid "nothing to commit (use -u to show untracked files)\n"
msgstr ""
-#: wt-status.c:1788
+#: wt-status.c:1792
#, c-format
msgid "nothing to commit, working tree clean\n"
msgstr ""
-#: wt-status.c:1901
+#: wt-status.c:1905
msgid "No commits yet on "
msgstr ""
-#: wt-status.c:1905
+#: wt-status.c:1909
msgid "HEAD (no branch)"
msgstr ""
-#: wt-status.c:1936
+#: wt-status.c:1940
msgid "different"
msgstr ""
-#: wt-status.c:1938 wt-status.c:1946
+#: wt-status.c:1942 wt-status.c:1950
msgid "behind "
msgstr ""
-#: wt-status.c:1941 wt-status.c:1944
+#: wt-status.c:1945 wt-status.c:1948
msgid "ahead "
msgstr ""
#. TRANSLATORS: the action is e.g. "pull with rebase"
-#: wt-status.c:2466
+#: wt-status.c:2470
#, c-format
msgid "cannot %s: You have unstaged changes."
msgstr ""
-#: wt-status.c:2472
+#: wt-status.c:2476
msgid "additionally, your index contains uncommitted changes."
msgstr ""
-#: wt-status.c:2474
+#: wt-status.c:2478
#, c-format
msgid "cannot %s: Your index contains uncommitted changes."
msgstr ""
+#: compat/precompose_utf8.c:58 builtin/clone.c:452
+#, c-format
+msgid "failed to unlink '%s'"
+msgstr ""
+
#: builtin/add.c:25
msgid "git add [<options>] [--] <pathspec>..."
msgstr ""
@@ -7869,7 +7911,7 @@ msgstr ""
msgid "Unstaged changes after refreshing the index:"
msgstr ""
-#: builtin/add.c:234 builtin/rev-parse.c:896
+#: builtin/add.c:234 builtin/rev-parse.c:897
msgid "Could not read the index"
msgstr ""
@@ -7904,8 +7946,8 @@ msgstr ""
msgid "The following paths are ignored by one of your .gitignore files:\n"
msgstr ""
-#: builtin/add.c:290 builtin/clean.c:909 builtin/fetch.c:147 builtin/mv.c:124
-#: builtin/prune-packed.c:56 builtin/pull.c:222 builtin/push.c:560
+#: builtin/add.c:290 builtin/clean.c:910 builtin/fetch.c:162 builtin/mv.c:124
+#: builtin/prune-packed.c:56 builtin/pull.c:223 builtin/push.c:547
#: builtin/remote.c:1345 builtin/rm.c:241 builtin/send-pack.c:165
msgid "dry run"
msgstr ""
@@ -7958,7 +8000,7 @@ msgstr ""
msgid "check if - even missing - files are ignored in dry run"
msgstr ""
-#: builtin/add.c:309 builtin/update-index.c:1001
+#: builtin/add.c:309 builtin/update-index.c:1002
msgid "override the executable bit of the listed files"
msgstr ""
@@ -8021,132 +8063,128 @@ msgstr ""
msgid "Maybe you wanted to say 'git add .'?\n"
msgstr ""
-#: builtin/am.c:348
+#: builtin/am.c:347
msgid "could not parse author script"
msgstr ""
-#: builtin/am.c:432
+#: builtin/am.c:431
#, c-format
msgid "'%s' was deleted by the applypatch-msg hook"
msgstr ""
-#: builtin/am.c:474
+#: builtin/am.c:473
#, c-format
msgid "Malformed input line: '%s'."
msgstr ""
-#: builtin/am.c:512
+#: builtin/am.c:511
#, c-format
msgid "Failed to copy notes from '%s' to '%s'"
msgstr ""
-#: builtin/am.c:538
+#: builtin/am.c:537
msgid "fseek failed"
msgstr ""
-#: builtin/am.c:726
+#: builtin/am.c:725
#, c-format
msgid "could not parse patch '%s'"
msgstr ""
-#: builtin/am.c:791
+#: builtin/am.c:790
msgid "Only one StGIT patch series can be applied at once"
msgstr ""
-#: builtin/am.c:839
+#: builtin/am.c:838
msgid "invalid timestamp"
msgstr ""
-#: builtin/am.c:844 builtin/am.c:856
+#: builtin/am.c:843 builtin/am.c:855
msgid "invalid Date line"
msgstr ""
-#: builtin/am.c:851
+#: builtin/am.c:850
msgid "invalid timezone offset"
msgstr ""
-#: builtin/am.c:944
+#: builtin/am.c:943
msgid "Patch format detection failed."
msgstr ""
-#: builtin/am.c:949 builtin/clone.c:407
+#: builtin/am.c:948 builtin/clone.c:406
#, c-format
msgid "failed to create directory '%s'"
msgstr ""
-#: builtin/am.c:954
+#: builtin/am.c:953
msgid "Failed to split patches."
msgstr ""
-#: builtin/am.c:1084 builtin/commit.c:374
-msgid "unable to write index file"
-msgstr ""
-
-#: builtin/am.c:1098
+#: builtin/am.c:1084
#, c-format
msgid "When you have resolved this problem, run \"%s --continue\"."
msgstr ""
-#: builtin/am.c:1099
+#: builtin/am.c:1085
#, c-format
msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
msgstr ""
-#: builtin/am.c:1100
+#: builtin/am.c:1086
#, c-format
msgid "To restore the original branch and stop patching, run \"%s --abort\"."
msgstr ""
-#: builtin/am.c:1183
+#: builtin/am.c:1169
msgid "Patch sent with format=flowed; space at the end of lines might be lost."
msgstr ""
-#: builtin/am.c:1211
+#: builtin/am.c:1197
msgid "Patch is empty."
msgstr ""
-#: builtin/am.c:1277
+#: builtin/am.c:1262
#, c-format
-msgid "invalid ident line: %.*s"
+msgid "missing author line in commit %s"
msgstr ""
-#: builtin/am.c:1299
+#: builtin/am.c:1265
#, c-format
-msgid "unable to parse commit %s"
+msgid "invalid ident line: %.*s"
msgstr ""
-#: builtin/am.c:1496
+#: builtin/am.c:1484
msgid "Repository lacks necessary blobs to fall back on 3-way merge."
msgstr ""
-#: builtin/am.c:1498
+#: builtin/am.c:1486
msgid "Using index info to reconstruct a base tree..."
msgstr ""
-#: builtin/am.c:1517
+#: builtin/am.c:1505
msgid ""
"Did you hand edit your patch?\n"
"It does not apply to blobs recorded in its index."
msgstr ""
-#: builtin/am.c:1523
+#: builtin/am.c:1511
msgid "Falling back to patching base and 3-way merge..."
msgstr ""
-#: builtin/am.c:1549
+#: builtin/am.c:1537
msgid "Failed to merge in the changes."
msgstr ""
-#: builtin/am.c:1581
+#: builtin/am.c:1569
msgid "applying to an empty history"
msgstr ""
-#: builtin/am.c:1628 builtin/am.c:1632
+#: builtin/am.c:1616 builtin/am.c:1620
#, c-format
msgid "cannot resume: %s does not exist."
msgstr ""
-#: builtin/am.c:1650
+#: builtin/am.c:1638
msgid "Commit Body is:"
msgstr ""
@@ -8154,42 +8192,46 @@ msgstr ""
#. in your translation. The program will only accept English
#. input at this point.
#.
-#: builtin/am.c:1660
+#: builtin/am.c:1648
#, c-format
msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
msgstr ""
-#: builtin/am.c:1710
+#: builtin/am.c:1695 builtin/commit.c:374
+msgid "unable to write index file"
+msgstr ""
+
+#: builtin/am.c:1699
#, c-format
msgid "Dirty index: cannot apply patches (dirty: %s)"
msgstr ""
-#: builtin/am.c:1750 builtin/am.c:1818
+#: builtin/am.c:1739 builtin/am.c:1807
#, c-format
msgid "Applying: %.*s"
msgstr ""
-#: builtin/am.c:1767
+#: builtin/am.c:1756
msgid "No changes -- Patch already applied."
msgstr ""
-#: builtin/am.c:1773
+#: builtin/am.c:1762
#, c-format
msgid "Patch failed at %s %.*s"
msgstr ""
-#: builtin/am.c:1777
+#: builtin/am.c:1766
msgid "Use 'git am --show-current-patch' to see the failed patch"
msgstr ""
-#: builtin/am.c:1821
+#: builtin/am.c:1810
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:1828
+#: builtin/am.c:1817
msgid ""
"You still have unmerged paths in your index.\n"
"You should 'git add' each file with resolved conflicts to mark them as "
@@ -8197,185 +8239,185 @@ msgid ""
"You might run `git rm` on a file to accept \"deleted by them\" for it."
msgstr ""
-#: builtin/am.c:1935 builtin/am.c:1939 builtin/am.c:1951 builtin/reset.c:329
+#: builtin/am.c:1924 builtin/am.c:1928 builtin/am.c:1940 builtin/reset.c:329
#: builtin/reset.c:337
#, c-format
msgid "Could not parse object '%s'."
msgstr ""
-#: builtin/am.c:1987
+#: builtin/am.c:1976
msgid "failed to clean index"
msgstr ""
-#: builtin/am.c:2031
+#: builtin/am.c:2020
msgid ""
"You seem to have moved HEAD since the last 'am' failure.\n"
"Not rewinding to ORIG_HEAD"
msgstr ""
-#: builtin/am.c:2128
+#: builtin/am.c:2117
#, c-format
msgid "Invalid value for --patch-format: %s"
msgstr ""
-#: builtin/am.c:2164
+#: builtin/am.c:2153
msgid "git am [<options>] [(<mbox> | <Maildir>)...]"
msgstr ""
-#: builtin/am.c:2165
+#: builtin/am.c:2154
msgid "git am [<options>] (--continue | --skip | --abort)"
msgstr ""
-#: builtin/am.c:2171
+#: builtin/am.c:2160
msgid "run interactively"
msgstr ""
-#: builtin/am.c:2173
+#: builtin/am.c:2162
msgid "historical option -- no-op"
msgstr ""
-#: builtin/am.c:2175
+#: builtin/am.c:2164
msgid "allow fall back on 3way merging if needed"
msgstr ""
-#: builtin/am.c:2176 builtin/init-db.c:494 builtin/prune-packed.c:58
-#: builtin/repack.c:296 builtin/stash.c:806
+#: builtin/am.c:2165 builtin/init-db.c:494 builtin/prune-packed.c:58
+#: builtin/repack.c:297 builtin/stash.c:812
msgid "be quiet"
msgstr ""
-#: builtin/am.c:2178
+#: builtin/am.c:2167
msgid "add a Signed-off-by line to the commit message"
msgstr ""
-#: builtin/am.c:2181
+#: builtin/am.c:2170
msgid "recode into utf8 (default)"
msgstr ""
-#: builtin/am.c:2183
+#: builtin/am.c:2172
msgid "pass -k flag to git-mailinfo"
msgstr ""
-#: builtin/am.c:2185
+#: builtin/am.c:2174
msgid "pass -b flag to git-mailinfo"
msgstr ""
-#: builtin/am.c:2187
+#: builtin/am.c:2176
msgid "pass -m flag to git-mailinfo"
msgstr ""
-#: builtin/am.c:2189
+#: builtin/am.c:2178
msgid "pass --keep-cr flag to git-mailsplit for mbox format"
msgstr ""
-#: builtin/am.c:2192
+#: builtin/am.c:2181
msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
msgstr ""
-#: builtin/am.c:2195
+#: builtin/am.c:2184
msgid "strip everything before a scissors line"
msgstr ""
-#: builtin/am.c:2197 builtin/am.c:2200 builtin/am.c:2203 builtin/am.c:2206
-#: builtin/am.c:2209 builtin/am.c:2212 builtin/am.c:2215 builtin/am.c:2218
-#: builtin/am.c:2224
+#: builtin/am.c:2186 builtin/am.c:2189 builtin/am.c:2192 builtin/am.c:2195
+#: builtin/am.c:2198 builtin/am.c:2201 builtin/am.c:2204 builtin/am.c:2207
+#: builtin/am.c:2213
msgid "pass it through git-apply"
msgstr ""
-#: builtin/am.c:2214 builtin/commit.c:1368 builtin/fmt-merge-msg.c:671
-#: builtin/fmt-merge-msg.c:674 builtin/grep.c:881 builtin/merge.c:249
-#: builtin/pull.c:159 builtin/pull.c:218 builtin/rebase.c:1418
-#: builtin/repack.c:307 builtin/repack.c:311 builtin/repack.c:313
+#: builtin/am.c:2203 builtin/commit.c:1368 builtin/fmt-merge-msg.c:671
+#: builtin/fmt-merge-msg.c:674 builtin/grep.c:883 builtin/merge.c:249
+#: builtin/pull.c:160 builtin/pull.c:219 builtin/rebase.c:1442
+#: builtin/repack.c:308 builtin/repack.c:312 builtin/repack.c:314
#: builtin/show-branch.c:650 builtin/show-ref.c:172 builtin/tag.c:403
-#: parse-options.h:141 parse-options.h:162 parse-options.h:312
+#: parse-options.h:150 parse-options.h:171 parse-options.h:312
msgid "n"
msgstr ""
-#: builtin/am.c:2220 builtin/branch.c:661 builtin/for-each-ref.c:38
-#: builtin/replace.c:554 builtin/tag.c:437 builtin/verify-tag.c:38
+#: builtin/am.c:2209 builtin/branch.c:661 builtin/for-each-ref.c:38
+#: builtin/replace.c:555 builtin/tag.c:437 builtin/verify-tag.c:38
msgid "format"
msgstr ""
-#: builtin/am.c:2221
+#: builtin/am.c:2210
msgid "format the patch(es) are in"
msgstr ""
-#: builtin/am.c:2227
+#: builtin/am.c:2216
msgid "override error message when patch failure occurs"
msgstr ""
-#: builtin/am.c:2229
+#: builtin/am.c:2218
msgid "continue applying patches after resolving a conflict"
msgstr ""
-#: builtin/am.c:2232
+#: builtin/am.c:2221
msgid "synonyms for --continue"
msgstr ""
-#: builtin/am.c:2235
+#: builtin/am.c:2224
msgid "skip the current patch"
msgstr ""
-#: builtin/am.c:2238
+#: builtin/am.c:2227
msgid "restore the original branch and abort the patching operation."
msgstr ""
-#: builtin/am.c:2241
+#: builtin/am.c:2230
msgid "abort the patching operation but keep HEAD where it is."
msgstr ""
-#: builtin/am.c:2244
+#: builtin/am.c:2233
msgid "show the patch being applied."
msgstr ""
-#: builtin/am.c:2248
+#: builtin/am.c:2237
msgid "lie about committer date"
msgstr ""
-#: builtin/am.c:2250
+#: builtin/am.c:2239
msgid "use current timestamp for author date"
msgstr ""
-#: builtin/am.c:2252 builtin/commit-tree.c:120 builtin/commit.c:1511
-#: builtin/merge.c:286 builtin/pull.c:193 builtin/rebase.c:489
-#: builtin/rebase.c:1459 builtin/revert.c:117 builtin/tag.c:418
+#: builtin/am.c:2241 builtin/commit-tree.c:120 builtin/commit.c:1511
+#: builtin/merge.c:286 builtin/pull.c:194 builtin/rebase.c:490
+#: builtin/rebase.c:1483 builtin/revert.c:117 builtin/tag.c:418
msgid "key-id"
msgstr ""
-#: builtin/am.c:2253 builtin/rebase.c:490 builtin/rebase.c:1460
+#: builtin/am.c:2242 builtin/rebase.c:491 builtin/rebase.c:1484
msgid "GPG-sign commits"
msgstr ""
-#: builtin/am.c:2256
+#: builtin/am.c:2245
msgid "(internal use for git-rebase)"
msgstr ""
-#: builtin/am.c:2274
+#: builtin/am.c:2263
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:2281
+#: builtin/am.c:2270
msgid "failed to read the index"
msgstr ""
-#: builtin/am.c:2296
+#: builtin/am.c:2285
#, c-format
msgid "previous rebase directory %s still exists but mbox given."
msgstr ""
-#: builtin/am.c:2320
+#: builtin/am.c:2309
#, c-format
msgid ""
"Stray %s directory found.\n"
"Use \"git am --abort\" to remove it."
msgstr ""
-#: builtin/am.c:2326
+#: builtin/am.c:2315
msgid "Resolve operation not in progress, we are not resuming."
msgstr ""
-#: builtin/am.c:2336
+#: builtin/am.c:2325
msgid "interactive mode requires patches on the command line"
msgstr ""
@@ -8670,154 +8712,154 @@ msgstr ""
msgid "--bisect-terms requires 0 or 1 argument"
msgstr ""
-#: builtin/blame.c:32
+#: builtin/blame.c:31
msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>"
msgstr ""
-#: builtin/blame.c:37
+#: builtin/blame.c:36
msgid "<rev-opts> are documented in git-rev-list(1)"
msgstr ""
-#: builtin/blame.c:410
+#: builtin/blame.c:409
#, c-format
msgid "expecting a color: %s"
msgstr ""
-#: builtin/blame.c:417
+#: builtin/blame.c:416
msgid "must end with a color"
msgstr ""
-#: builtin/blame.c:730
+#: builtin/blame.c:729
#, c-format
msgid "invalid color '%s' in color.blame.repeatedLines"
msgstr ""
-#: builtin/blame.c:748
+#: builtin/blame.c:747
msgid "invalid value for blame.coloring"
msgstr ""
-#: builtin/blame.c:823
+#: builtin/blame.c:822
#, c-format
msgid "cannot find revision %s to ignore"
msgstr ""
-#: builtin/blame.c:845
+#: builtin/blame.c:844
msgid "Show blame entries as we find them, incrementally"
msgstr ""
-#: builtin/blame.c:846
+#: builtin/blame.c:845
msgid "Show blank SHA-1 for boundary commits (Default: off)"
msgstr ""
-#: builtin/blame.c:847
+#: builtin/blame.c:846
msgid "Do not treat root commits as boundaries (Default: off)"
msgstr ""
-#: builtin/blame.c:848
+#: builtin/blame.c:847
msgid "Show work cost statistics"
msgstr ""
-#: builtin/blame.c:849
+#: builtin/blame.c:848
msgid "Force progress reporting"
msgstr ""
-#: builtin/blame.c:850
+#: builtin/blame.c:849
msgid "Show output score for blame entries"
msgstr ""
-#: builtin/blame.c:851
+#: builtin/blame.c:850
msgid "Show original filename (Default: auto)"
msgstr ""
-#: builtin/blame.c:852
+#: builtin/blame.c:851
msgid "Show original linenumber (Default: off)"
msgstr ""
-#: builtin/blame.c:853
+#: builtin/blame.c:852
msgid "Show in a format designed for machine consumption"
msgstr ""
-#: builtin/blame.c:854
+#: builtin/blame.c:853
msgid "Show porcelain format with per-line commit information"
msgstr ""
-#: builtin/blame.c:855
+#: builtin/blame.c:854
msgid "Use the same output mode as git-annotate (Default: off)"
msgstr ""
-#: builtin/blame.c:856
+#: builtin/blame.c:855
msgid "Show raw timestamp (Default: off)"
msgstr ""
-#: builtin/blame.c:857
+#: builtin/blame.c:856
msgid "Show long commit SHA1 (Default: off)"
msgstr ""
-#: builtin/blame.c:858
+#: builtin/blame.c:857
msgid "Suppress author name and timestamp (Default: off)"
msgstr ""
-#: builtin/blame.c:859
+#: builtin/blame.c:858
msgid "Show author email instead of name (Default: off)"
msgstr ""
-#: builtin/blame.c:860
+#: builtin/blame.c:859
msgid "Ignore whitespace differences"
msgstr ""
-#: builtin/blame.c:861 builtin/log.c:1629
+#: builtin/blame.c:860 builtin/log.c:1630
msgid "rev"
msgstr ""
-#: builtin/blame.c:861
+#: builtin/blame.c:860
msgid "Ignore <rev> when blaming"
msgstr ""
-#: builtin/blame.c:862
+#: builtin/blame.c:861
msgid "Ignore revisions from <file>"
msgstr ""
-#: builtin/blame.c:863
+#: builtin/blame.c:862
msgid "color redundant metadata from previous line differently"
msgstr ""
-#: builtin/blame.c:864
+#: builtin/blame.c:863
msgid "color lines by age"
msgstr ""
-#: builtin/blame.c:871
+#: builtin/blame.c:870
msgid "Use an experimental heuristic to improve diffs"
msgstr ""
-#: builtin/blame.c:873
+#: builtin/blame.c:872
msgid "Spend extra cycles to find better match"
msgstr ""
-#: builtin/blame.c:874
+#: builtin/blame.c:873
msgid "Use revisions from <file> instead of calling git-rev-list"
msgstr ""
-#: builtin/blame.c:875
+#: builtin/blame.c:874
msgid "Use <file>'s contents as the final image"
msgstr ""
-#: builtin/blame.c:876 builtin/blame.c:877
+#: builtin/blame.c:875 builtin/blame.c:876
msgid "score"
msgstr ""
-#: builtin/blame.c:876
+#: builtin/blame.c:875
msgid "Find line copies within and across files"
msgstr ""
-#: builtin/blame.c:877
+#: builtin/blame.c:876
msgid "Find line movements within and across files"
msgstr ""
-#: builtin/blame.c:878
+#: builtin/blame.c:877
msgid "n,m"
msgstr ""
-#: builtin/blame.c:878
+#: builtin/blame.c:877
msgid "Process only line range n,m, counting from 1"
msgstr ""
@@ -9044,7 +9086,7 @@ msgstr ""
msgid "do not use"
msgstr ""
-#: builtin/branch.c:626 builtin/rebase.c:485
+#: builtin/branch.c:626 builtin/rebase.c:486
msgid "upstream"
msgstr ""
@@ -9155,7 +9197,7 @@ msgstr ""
msgid "format to use for the output"
msgstr ""
-#: builtin/branch.c:684 builtin/clone.c:761
+#: builtin/branch.c:684 builtin/clone.c:760
msgid "HEAD not found below refs/heads!"
msgstr ""
@@ -9251,83 +9293,83 @@ msgstr ""
msgid "Need a repository to unbundle."
msgstr ""
-#: builtin/cat-file.c:594
+#: builtin/cat-file.c:595
msgid ""
"git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -"
"p | <type> | --textconv | --filters) [--path=<path>] <object>"
msgstr ""
-#: builtin/cat-file.c:595
+#: builtin/cat-file.c:596
msgid ""
"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --"
"filters]"
msgstr ""
-#: builtin/cat-file.c:616
+#: builtin/cat-file.c:617
msgid "only one batch option may be specified"
msgstr ""
-#: builtin/cat-file.c:634
+#: builtin/cat-file.c:635
msgid "<type> can be one of: blob, tree, commit, tag"
msgstr ""
-#: builtin/cat-file.c:635
+#: builtin/cat-file.c:636
msgid "show object type"
msgstr ""
-#: builtin/cat-file.c:636
+#: builtin/cat-file.c:637
msgid "show object size"
msgstr ""
-#: builtin/cat-file.c:638
+#: builtin/cat-file.c:639
msgid "exit with zero when there's no error"
msgstr ""
-#: builtin/cat-file.c:639
+#: builtin/cat-file.c:640
msgid "pretty-print object's content"
msgstr ""
-#: builtin/cat-file.c:641
+#: builtin/cat-file.c:642
msgid "for blob objects, run textconv on object's content"
msgstr ""
-#: builtin/cat-file.c:643
+#: builtin/cat-file.c:644
msgid "for blob objects, run filters on object's content"
msgstr ""
-#: builtin/cat-file.c:644 git-submodule.sh:936
+#: builtin/cat-file.c:645 git-submodule.sh:936
msgid "blob"
msgstr ""
-#: builtin/cat-file.c:645
+#: builtin/cat-file.c:646
msgid "use a specific path for --textconv/--filters"
msgstr ""
-#: builtin/cat-file.c:647
+#: builtin/cat-file.c:648
msgid "allow -s and -t to work with broken/corrupt objects"
msgstr ""
-#: builtin/cat-file.c:648
+#: builtin/cat-file.c:649
msgid "buffer --batch output"
msgstr ""
-#: builtin/cat-file.c:650
+#: builtin/cat-file.c:651
msgid "show info and content of objects fed from the standard input"
msgstr ""
-#: builtin/cat-file.c:654
+#: builtin/cat-file.c:655
msgid "show info about objects fed from the standard input"
msgstr ""
-#: builtin/cat-file.c:658
+#: builtin/cat-file.c:659
msgid "follow in-tree symlinks (used with --batch or --batch-check)"
msgstr ""
-#: builtin/cat-file.c:660
+#: builtin/cat-file.c:661
msgid "show all objects with --batch or --batch-check"
msgstr ""
-#: builtin/cat-file.c:662
+#: builtin/cat-file.c:663
msgid "do not order --batch-all-objects output"
msgstr ""
@@ -9355,8 +9397,8 @@ msgstr ""
msgid "terminate input and output records by a NUL character"
msgstr ""
-#: builtin/check-ignore.c:21 builtin/checkout.c:1433 builtin/gc.c:538
-#: builtin/worktree.c:507
+#: builtin/check-ignore.c:21 builtin/checkout.c:1433 builtin/gc.c:537
+#: builtin/worktree.c:506
msgid "suppress progress reporting"
msgstr ""
@@ -9448,7 +9490,7 @@ msgstr ""
#: builtin/checkout-index.c:178 builtin/column.c:31
#: builtin/submodule--helper.c:1373 builtin/submodule--helper.c:1376
#: builtin/submodule--helper.c:1384 builtin/submodule--helper.c:1857
-#: builtin/worktree.c:680
+#: builtin/worktree.c:679
msgid "string"
msgstr ""
@@ -9476,109 +9518,104 @@ msgstr ""
msgid "git restore [<options>] [--source=<branch>] <file>..."
msgstr ""
-#: builtin/checkout.c:172 builtin/checkout.c:211
+#: builtin/checkout.c:173 builtin/checkout.c:212
#, c-format
msgid "path '%s' does not have our version"
msgstr ""
-#: builtin/checkout.c:174 builtin/checkout.c:213
+#: builtin/checkout.c:175 builtin/checkout.c:214
#, c-format
msgid "path '%s' does not have their version"
msgstr ""
-#: builtin/checkout.c:190
+#: builtin/checkout.c:191
#, c-format
msgid "path '%s' does not have all necessary versions"
msgstr ""
-#: builtin/checkout.c:240
+#: builtin/checkout.c:241
#, c-format
msgid "path '%s' does not have necessary versions"
msgstr ""
-#: builtin/checkout.c:258
+#: builtin/checkout.c:259
#, c-format
msgid "path '%s': cannot merge"
msgstr ""
-#: builtin/checkout.c:274
+#: builtin/checkout.c:275
#, c-format
msgid "Unable to add merge result for '%s'"
msgstr ""
-#: builtin/checkout.c:374
+#: builtin/checkout.c:375
#, c-format
msgid "Recreated %d merge conflict"
msgid_plural "Recreated %d merge conflicts"
msgstr[0] ""
msgstr[1] ""
-#: builtin/checkout.c:379
+#: builtin/checkout.c:380
#, c-format
msgid "Updated %d path from %s"
msgid_plural "Updated %d paths from %s"
msgstr[0] ""
msgstr[1] ""
-#: builtin/checkout.c:386
+#: builtin/checkout.c:387
#, c-format
msgid "Updated %d path from the index"
msgid_plural "Updated %d paths from the index"
msgstr[0] ""
msgstr[1] ""
-#: builtin/checkout.c:409 builtin/checkout.c:412 builtin/checkout.c:415
-#: builtin/checkout.c:419
+#: builtin/checkout.c:410 builtin/checkout.c:413 builtin/checkout.c:416
+#: builtin/checkout.c:420
#, c-format
msgid "'%s' cannot be used with updating paths"
msgstr ""
-#: builtin/checkout.c:422 builtin/checkout.c:425
+#: builtin/checkout.c:423 builtin/checkout.c:426
#, c-format
msgid "'%s' cannot be used with %s"
msgstr ""
-#: builtin/checkout.c:429
+#: builtin/checkout.c:430
#, c-format
msgid "Cannot update paths and switch to branch '%s' at the same time."
msgstr ""
-#: builtin/checkout.c:433
+#: builtin/checkout.c:434
#, c-format
msgid "neither '%s' or '%s' is specified"
msgstr ""
-#: builtin/checkout.c:437
+#: builtin/checkout.c:438
#, c-format
msgid "'%s' must be used when '%s' is not specified"
msgstr ""
-#: builtin/checkout.c:442 builtin/checkout.c:447
+#: builtin/checkout.c:443 builtin/checkout.c:448
#, c-format
msgid "'%s' or '%s' cannot be used with %s"
msgstr ""
-#: builtin/checkout.c:506 builtin/checkout.c:513
+#: builtin/checkout.c:507 builtin/checkout.c:514
#, c-format
msgid "path '%s' is unmerged"
msgstr ""
-#: builtin/checkout.c:679
+#: builtin/checkout.c:680
msgid "you need to resolve your current index first"
msgstr ""
-#: builtin/checkout.c:729
+#: builtin/checkout.c:730
#, c-format
msgid ""
"cannot continue with staged changes in the following files:\n"
"%s"
msgstr ""
-#: builtin/checkout.c:736
-#, c-format
-msgid "staged changes in the following files may be lost: %s"
-msgstr ""
-
#: builtin/checkout.c:833
#, c-format
msgid "Can not do reflog for '%s': %s\n"
@@ -9588,7 +9625,7 @@ msgstr ""
msgid "HEAD is now at"
msgstr ""
-#: builtin/checkout.c:879 builtin/clone.c:714
+#: builtin/checkout.c:879 builtin/clone.c:713
msgid "unable to update HEAD"
msgstr ""
@@ -9682,7 +9719,7 @@ msgid ""
"Please use -- (and optionally --no-guess) to disambiguate"
msgstr ""
-#: builtin/checkout.c:1243 builtin/worktree.c:291 builtin/worktree.c:456
+#: builtin/checkout.c:1243 builtin/worktree.c:290 builtin/worktree.c:455
#, c-format
msgid "invalid reference: %s"
msgstr ""
@@ -9775,9 +9812,9 @@ msgstr ""
msgid "missing branch or commit argument"
msgstr ""
-#: builtin/checkout.c:1437 builtin/clone.c:91 builtin/fetch.c:151
-#: builtin/merge.c:285 builtin/pull.c:137 builtin/push.c:575
-#: builtin/send-pack.c:174
+#: builtin/checkout.c:1437 builtin/clone.c:90 builtin/commit-graph.c:59
+#: builtin/commit-graph.c:180 builtin/fetch.c:166 builtin/merge.c:285
+#: builtin/pull.c:138 builtin/push.c:562 builtin/send-pack.c:174
msgid "force progress reporting"
msgstr ""
@@ -9785,7 +9822,7 @@ msgstr ""
msgid "perform a 3-way merge with the new branch"
msgstr ""
-#: builtin/checkout.c:1439 builtin/log.c:1617 parse-options.h:318
+#: builtin/checkout.c:1439 builtin/log.c:1618 parse-options.h:318
msgid "style"
msgstr ""
@@ -9793,7 +9830,7 @@ msgstr ""
msgid "conflict style (merge or diff3)"
msgstr ""
-#: builtin/checkout.c:1452 builtin/worktree.c:504
+#: builtin/checkout.c:1452 builtin/worktree.c:503
msgid "detach HEAD at named commit"
msgstr ""
@@ -9895,9 +9932,9 @@ msgid ""
"checkout.defaultRemote=origin in your config."
msgstr ""
-#: builtin/checkout.c:1691 builtin/checkout.c:1693 builtin/checkout.c:1733
-#: builtin/checkout.c:1735 builtin/clone.c:121 builtin/remote.c:169
-#: builtin/remote.c:171 builtin/worktree.c:500 builtin/worktree.c:502
+#: builtin/checkout.c:1691 builtin/checkout.c:1693 builtin/checkout.c:1742
+#: builtin/checkout.c:1744 builtin/clone.c:120 builtin/remote.c:169
+#: builtin/remote.c:171 builtin/worktree.c:499 builtin/worktree.c:501
msgid "branch"
msgstr ""
@@ -9921,39 +9958,39 @@ msgstr ""
msgid "use overlay mode (default)"
msgstr ""
-#: builtin/checkout.c:1734
+#: builtin/checkout.c:1743
msgid "create and switch to a new branch"
msgstr ""
-#: builtin/checkout.c:1736
+#: builtin/checkout.c:1745
msgid "create/reset and switch to a branch"
msgstr ""
-#: builtin/checkout.c:1738
+#: builtin/checkout.c:1747
msgid "second guess 'git switch <no-such-branch>'"
msgstr ""
-#: builtin/checkout.c:1740
+#: builtin/checkout.c:1749
msgid "throw away local modifications"
msgstr ""
-#: builtin/checkout.c:1772
+#: builtin/checkout.c:1781
msgid "which tree-ish to checkout from"
msgstr ""
-#: builtin/checkout.c:1774
+#: builtin/checkout.c:1783
msgid "restore the index"
msgstr ""
-#: builtin/checkout.c:1776
+#: builtin/checkout.c:1785
msgid "restore the working tree (default)"
msgstr ""
-#: builtin/checkout.c:1778
+#: builtin/checkout.c:1787
msgid "ignore unmerged entries"
msgstr ""
-#: builtin/checkout.c:1779
+#: builtin/checkout.c:1788
msgid "use overlay mode"
msgstr ""
@@ -9992,7 +10029,7 @@ msgstr ""
msgid "could not lstat %s\n"
msgstr ""
-#: builtin/clean.c:300 git-add--interactive.perl:593
+#: builtin/clean.c:301 git-add--interactive.perl:593
#, c-format
msgid ""
"Prompt help:\n"
@@ -10001,7 +10038,7 @@ msgid ""
" - (empty) select nothing\n"
msgstr ""
-#: builtin/clean.c:304 git-add--interactive.perl:602
+#: builtin/clean.c:305 git-add--interactive.perl:602
#, c-format
msgid ""
"Prompt help:\n"
@@ -10014,38 +10051,38 @@ msgid ""
" - (empty) finish selecting\n"
msgstr ""
-#: builtin/clean.c:520 git-add--interactive.perl:568
+#: builtin/clean.c:521 git-add--interactive.perl:568
#: git-add--interactive.perl:573
#, c-format, perl-format
msgid "Huh (%s)?\n"
msgstr ""
-#: builtin/clean.c:662
+#: builtin/clean.c:663
#, c-format
msgid "Input ignore patterns>> "
msgstr ""
-#: builtin/clean.c:699
+#: builtin/clean.c:700
#, c-format
msgid "WARNING: Cannot find items matched by: %s"
msgstr ""
-#: builtin/clean.c:720
+#: builtin/clean.c:721
msgid "Select items to delete"
msgstr ""
#. TRANSLATORS: Make sure to keep [y/N] as is
-#: builtin/clean.c:761
+#: builtin/clean.c:762
#, c-format
msgid "Remove %s [y/N]? "
msgstr ""
-#: builtin/clean.c:786 git-add--interactive.perl:1763
+#: builtin/clean.c:787 git-add--interactive.perl:1763
#, c-format
msgid "Bye.\n"
msgstr ""
-#: builtin/clean.c:794
+#: builtin/clean.c:795
msgid ""
"clean - start cleaning\n"
"filter by pattern - exclude items from deletion\n"
@@ -10056,405 +10093,400 @@ msgid ""
"? - help for prompt selection"
msgstr ""
-#: builtin/clean.c:821 git-add--interactive.perl:1849
+#: builtin/clean.c:822 git-add--interactive.perl:1849
msgid "*** Commands ***"
msgstr ""
-#: builtin/clean.c:822 git-add--interactive.perl:1846
+#: builtin/clean.c:823 git-add--interactive.perl:1846
msgid "What now"
msgstr ""
-#: builtin/clean.c:830
+#: builtin/clean.c:831
msgid "Would remove the following item:"
msgid_plural "Would remove the following items:"
msgstr[0] ""
msgstr[1] ""
-#: builtin/clean.c:846
+#: builtin/clean.c:847
msgid "No more files to clean, exiting."
msgstr ""
-#: builtin/clean.c:908
+#: builtin/clean.c:909
msgid "do not print names of files removed"
msgstr ""
-#: builtin/clean.c:910
+#: builtin/clean.c:911
msgid "force"
msgstr ""
-#: builtin/clean.c:911
+#: builtin/clean.c:912
msgid "interactive cleaning"
msgstr ""
-#: builtin/clean.c:913
+#: builtin/clean.c:914
msgid "remove whole directories"
msgstr ""
-#: builtin/clean.c:914 builtin/describe.c:546 builtin/describe.c:548
-#: builtin/grep.c:899 builtin/log.c:176 builtin/log.c:178
-#: builtin/ls-files.c:557 builtin/name-rev.c:413 builtin/name-rev.c:415
+#: builtin/clean.c:915 builtin/describe.c:548 builtin/describe.c:550
+#: builtin/grep.c:901 builtin/log.c:176 builtin/log.c:178
+#: builtin/ls-files.c:557 builtin/name-rev.c:417 builtin/name-rev.c:419
#: builtin/show-ref.c:179
msgid "pattern"
msgstr ""
-#: builtin/clean.c:915
+#: builtin/clean.c:916
msgid "add <pattern> to ignore rules"
msgstr ""
-#: builtin/clean.c:916
+#: builtin/clean.c:917
msgid "remove ignored files, too"
msgstr ""
-#: builtin/clean.c:918
+#: builtin/clean.c:919
msgid "remove only ignored files"
msgstr ""
-#: builtin/clean.c:936
+#: builtin/clean.c:937
msgid "-x and -X cannot be used together"
msgstr ""
-#: builtin/clean.c:940
+#: builtin/clean.c:941
msgid ""
"clean.requireForce set to true and neither -i, -n, nor -f given; refusing to "
"clean"
msgstr ""
-#: builtin/clean.c:943
+#: builtin/clean.c:944
msgid ""
"clean.requireForce defaults to true and neither -i, -n, nor -f given; "
"refusing to clean"
msgstr ""
-#: builtin/clone.c:46
+#: builtin/clone.c:45
msgid "git clone [<options>] [--] <repo> [<dir>]"
msgstr ""
-#: builtin/clone.c:93
+#: builtin/clone.c:92
msgid "don't create a checkout"
msgstr ""
-#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:489
+#: builtin/clone.c:93 builtin/clone.c:95 builtin/init-db.c:489
msgid "create a bare repository"
msgstr ""
-#: builtin/clone.c:98
+#: builtin/clone.c:97
msgid "create a mirror repository (implies bare)"
msgstr ""
-#: builtin/clone.c:100
+#: builtin/clone.c:99
msgid "to clone from a local repository"
msgstr ""
-#: builtin/clone.c:102
+#: builtin/clone.c:101
msgid "don't use local hardlinks, always copy"
msgstr ""
-#: builtin/clone.c:104
+#: builtin/clone.c:103
msgid "setup as shared repository"
msgstr ""
-#: builtin/clone.c:107
+#: builtin/clone.c:106
msgid "pathspec"
msgstr ""
-#: builtin/clone.c:107
+#: builtin/clone.c:106
msgid "initialize submodules in the clone"
msgstr ""
-#: builtin/clone.c:110
+#: builtin/clone.c:109
msgid "number of submodules cloned in parallel"
msgstr ""
-#: builtin/clone.c:111 builtin/init-db.c:486
+#: builtin/clone.c:110 builtin/init-db.c:486
msgid "template-directory"
msgstr ""
-#: builtin/clone.c:112 builtin/init-db.c:487
+#: builtin/clone.c:111 builtin/init-db.c:487
msgid "directory from which templates will be used"
msgstr ""
-#: builtin/clone.c:114 builtin/clone.c:116 builtin/submodule--helper.c:1380
+#: builtin/clone.c:113 builtin/clone.c:115 builtin/submodule--helper.c:1380
#: builtin/submodule--helper.c:1860
msgid "reference repository"
msgstr ""
-#: builtin/clone.c:118 builtin/submodule--helper.c:1382
+#: builtin/clone.c:117 builtin/submodule--helper.c:1382
#: builtin/submodule--helper.c:1862
msgid "use --reference only while cloning"
msgstr ""
-#: builtin/clone.c:119 builtin/column.c:27 builtin/merge-file.c:46
-#: builtin/pack-objects.c:3314 builtin/repack.c:319
+#: builtin/clone.c:118 builtin/column.c:27 builtin/merge-file.c:46
+#: builtin/pack-objects.c:3294 builtin/repack.c:320
msgid "name"
msgstr ""
-#: builtin/clone.c:120
+#: builtin/clone.c:119
msgid "use <name> instead of 'origin' to track upstream"
msgstr ""
-#: builtin/clone.c:122
+#: builtin/clone.c:121
msgid "checkout <branch> instead of the remote's HEAD"
msgstr ""
-#: builtin/clone.c:124
+#: builtin/clone.c:123
msgid "path to git-upload-pack on the remote"
msgstr ""
-#: builtin/clone.c:125 builtin/fetch.c:152 builtin/grep.c:838
-#: builtin/pull.c:226
+#: builtin/clone.c:124 builtin/fetch.c:167 builtin/grep.c:840
+#: builtin/pull.c:227
msgid "depth"
msgstr ""
-#: builtin/clone.c:126
+#: builtin/clone.c:125
msgid "create a shallow clone of that depth"
msgstr ""
-#: builtin/clone.c:127 builtin/fetch.c:154 builtin/pack-objects.c:3303
+#: builtin/clone.c:126 builtin/fetch.c:169 builtin/pack-objects.c:3283
msgid "time"
msgstr ""
-#: builtin/clone.c:128
+#: builtin/clone.c:127
msgid "create a shallow clone since a specific time"
msgstr ""
-#: builtin/clone.c:129 builtin/fetch.c:156 builtin/fetch.c:179
-#: builtin/rebase.c:1395
+#: builtin/clone.c:128 builtin/fetch.c:171 builtin/fetch.c:194
+#: builtin/rebase.c:1417
msgid "revision"
msgstr ""
-#: builtin/clone.c:130 builtin/fetch.c:157
+#: builtin/clone.c:129 builtin/fetch.c:172
msgid "deepen history of shallow clone, excluding rev"
msgstr ""
-#: builtin/clone.c:132
+#: builtin/clone.c:131
msgid "clone only one branch, HEAD or --branch"
msgstr ""
-#: builtin/clone.c:134
+#: builtin/clone.c:133
msgid "don't clone any tags, and make later fetches not to follow them"
msgstr ""
-#: builtin/clone.c:136
+#: builtin/clone.c:135
msgid "any cloned submodules will be shallow"
msgstr ""
-#: builtin/clone.c:137 builtin/init-db.c:495
+#: builtin/clone.c:136 builtin/init-db.c:495
msgid "gitdir"
msgstr ""
-#: builtin/clone.c:138 builtin/init-db.c:496
+#: builtin/clone.c:137 builtin/init-db.c:496
msgid "separate git dir from working tree"
msgstr ""
-#: builtin/clone.c:139
+#: builtin/clone.c:138
msgid "key=value"
msgstr ""
-#: builtin/clone.c:140
+#: builtin/clone.c:139
msgid "set config inside the new repository"
msgstr ""
-#: builtin/clone.c:142 builtin/fetch.c:174 builtin/ls-remote.c:76
-#: builtin/push.c:585 builtin/send-pack.c:172
+#: builtin/clone.c:141 builtin/fetch.c:189 builtin/ls-remote.c:76
+#: builtin/push.c:572 builtin/send-pack.c:172
msgid "server-specific"
msgstr ""
-#: builtin/clone.c:142 builtin/fetch.c:174 builtin/ls-remote.c:76
-#: builtin/push.c:585 builtin/send-pack.c:173
+#: builtin/clone.c:141 builtin/fetch.c:189 builtin/ls-remote.c:76
+#: builtin/push.c:572 builtin/send-pack.c:173
msgid "option to transmit"
msgstr ""
-#: builtin/clone.c:143 builtin/fetch.c:175 builtin/pull.c:239
-#: builtin/push.c:586
+#: builtin/clone.c:142 builtin/fetch.c:190 builtin/pull.c:240
+#: builtin/push.c:573
msgid "use IPv4 addresses only"
msgstr ""
-#: builtin/clone.c:145 builtin/fetch.c:177 builtin/pull.c:242
-#: builtin/push.c:588
+#: builtin/clone.c:144 builtin/fetch.c:192 builtin/pull.c:243
+#: builtin/push.c:575
msgid "use IPv6 addresses only"
msgstr ""
-#: builtin/clone.c:149
+#: builtin/clone.c:148
msgid "any cloned submodules will use their remote-tracking branch"
msgstr ""
-#: builtin/clone.c:285
+#: builtin/clone.c:284
msgid ""
"No directory name could be guessed.\n"
"Please specify a directory on the command line"
msgstr ""
-#: builtin/clone.c:338
+#: builtin/clone.c:337
#, c-format
msgid "info: Could not add alternate for '%s': %s\n"
msgstr ""
-#: builtin/clone.c:411
+#: builtin/clone.c:410
#, c-format
msgid "%s exists and is not a directory"
msgstr ""
-#: builtin/clone.c:428
+#: builtin/clone.c:427
#, c-format
msgid "failed to start iterator over '%s'"
msgstr ""
-#: builtin/clone.c:453
-#, c-format
-msgid "failed to unlink '%s'"
-msgstr ""
-
-#: builtin/clone.c:458
+#: builtin/clone.c:457
#, c-format
msgid "failed to create link '%s'"
msgstr ""
-#: builtin/clone.c:462
+#: builtin/clone.c:461
#, c-format
msgid "failed to copy file to '%s'"
msgstr ""
-#: builtin/clone.c:467
+#: builtin/clone.c:466
#, c-format
msgid "failed to iterate over '%s'"
msgstr ""
-#: builtin/clone.c:492
+#: builtin/clone.c:491
#, c-format
msgid "done.\n"
msgstr ""
-#: builtin/clone.c:506
+#: builtin/clone.c:505
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:583
+#: builtin/clone.c:582
#, c-format
msgid "Could not find remote branch %s to clone."
msgstr ""
-#: builtin/clone.c:702
+#: builtin/clone.c:701
#, c-format
msgid "unable to update %s"
msgstr ""
-#: builtin/clone.c:752
+#: builtin/clone.c:751
msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
msgstr ""
-#: builtin/clone.c:783
+#: builtin/clone.c:782
msgid "unable to checkout working tree"
msgstr ""
-#: builtin/clone.c:833
+#: builtin/clone.c:832
msgid "unable to write parameters to config file"
msgstr ""
-#: builtin/clone.c:896
+#: builtin/clone.c:895
msgid "cannot repack to clean up"
msgstr ""
-#: builtin/clone.c:898
+#: builtin/clone.c:897
msgid "cannot unlink temporary alternates file"
msgstr ""
-#: builtin/clone.c:938 builtin/receive-pack.c:1950
+#: builtin/clone.c:937 builtin/receive-pack.c:1948
msgid "Too many arguments."
msgstr ""
-#: builtin/clone.c:942
+#: builtin/clone.c:941
msgid "You must specify a repository to clone."
msgstr ""
-#: builtin/clone.c:955
+#: builtin/clone.c:954
#, c-format
msgid "--bare and --origin %s options are incompatible."
msgstr ""
-#: builtin/clone.c:958
+#: builtin/clone.c:957
msgid "--bare and --separate-git-dir are incompatible."
msgstr ""
-#: builtin/clone.c:971
+#: builtin/clone.c:970
#, c-format
msgid "repository '%s' does not exist"
msgstr ""
-#: builtin/clone.c:977 builtin/fetch.c:1660
+#: builtin/clone.c:976 builtin/fetch.c:1790
#, c-format
msgid "depth %s is not a positive number"
msgstr ""
-#: builtin/clone.c:987
+#: builtin/clone.c:986
#, c-format
msgid "destination path '%s' already exists and is not an empty directory."
msgstr ""
-#: builtin/clone.c:997
+#: builtin/clone.c:996
#, c-format
msgid "working tree '%s' already exists."
msgstr ""
-#: builtin/clone.c:1012 builtin/clone.c:1033 builtin/difftool.c:264
-#: builtin/worktree.c:303 builtin/worktree.c:335
+#: builtin/clone.c:1011 builtin/clone.c:1032 builtin/difftool.c:271
+#: builtin/log.c:1785 builtin/worktree.c:302 builtin/worktree.c:334
#, c-format
msgid "could not create leading directories of '%s'"
msgstr ""
-#: builtin/clone.c:1017
+#: builtin/clone.c:1016
#, c-format
msgid "could not create work tree dir '%s'"
msgstr ""
-#: builtin/clone.c:1037
+#: builtin/clone.c:1036
#, c-format
msgid "Cloning into bare repository '%s'...\n"
msgstr ""
-#: builtin/clone.c:1039
+#: builtin/clone.c:1038
#, c-format
msgid "Cloning into '%s'...\n"
msgstr ""
-#: builtin/clone.c:1063
+#: builtin/clone.c:1062
msgid ""
"clone --recursive is not compatible with both --reference and --reference-if-"
"able"
msgstr ""
-#: builtin/clone.c:1124
+#: builtin/clone.c:1123
msgid "--depth is ignored in local clones; use file:// instead."
msgstr ""
-#: builtin/clone.c:1126
+#: builtin/clone.c:1125
msgid "--shallow-since is ignored in local clones; use file:// instead."
msgstr ""
-#: builtin/clone.c:1128
+#: builtin/clone.c:1127
msgid "--shallow-exclude is ignored in local clones; use file:// instead."
msgstr ""
-#: builtin/clone.c:1130
+#: builtin/clone.c:1129
msgid "--filter is ignored in local clones; use file:// instead."
msgstr ""
-#: builtin/clone.c:1133
+#: builtin/clone.c:1132
msgid "source repository is shallow, ignoring --local"
msgstr ""
-#: builtin/clone.c:1138
+#: builtin/clone.c:1137
msgid "--local is ignored"
msgstr ""
-#: builtin/clone.c:1215 builtin/clone.c:1223
+#: builtin/clone.c:1212 builtin/clone.c:1220
#, c-format
msgid "Remote branch %s not found in upstream %s"
msgstr ""
-#: builtin/clone.c:1226
+#: builtin/clone.c:1223
msgid "You appear to have cloned an empty repository."
msgstr ""
@@ -10530,7 +10562,7 @@ msgid "id of a parent commit object"
msgstr ""
#: builtin/commit-tree.c:114 builtin/commit.c:1500 builtin/merge.c:270
-#: builtin/notes.c:409 builtin/notes.c:575 builtin/stash.c:1460
+#: builtin/notes.c:409 builtin/notes.c:575 builtin/stash.c:1469
#: builtin/tag.c:412
msgid "message"
msgstr ""
@@ -10544,7 +10576,7 @@ msgid "read commit log message from file"
msgstr ""
#: builtin/commit-tree.c:121 builtin/commit.c:1512 builtin/merge.c:287
-#: builtin/pull.c:194 builtin/revert.c:118
+#: builtin/pull.c:195 builtin/revert.c:118
msgid "GPG sign commit"
msgstr ""
@@ -10835,8 +10867,8 @@ msgstr ""
msgid "version"
msgstr ""
-#: builtin/commit.c:1347 builtin/commit.c:1529 builtin/push.c:561
-#: builtin/worktree.c:651
+#: builtin/commit.c:1347 builtin/commit.c:1529 builtin/push.c:548
+#: builtin/worktree.c:650
msgid "machine-readable output"
msgstr ""
@@ -10849,8 +10881,8 @@ msgid "terminate entries with NUL"
msgstr ""
#: builtin/commit.c:1355 builtin/commit.c:1359 builtin/commit.c:1537
-#: builtin/fast-export.c:1125 builtin/fast-export.c:1128
-#: builtin/fast-export.c:1131 builtin/rebase.c:1471 parse-options.h:332
+#: builtin/fast-export.c:1153 builtin/fast-export.c:1156
+#: builtin/fast-export.c:1159 builtin/rebase.c:1495 parse-options.h:332
msgid "mode"
msgstr ""
@@ -10864,7 +10896,7 @@ msgid ""
"traditional)"
msgstr ""
-#: builtin/commit.c:1362 parse-options.h:179
+#: builtin/commit.c:1362 parse-options.h:188
msgid "when"
msgstr ""
@@ -10914,7 +10946,7 @@ msgstr ""
msgid "override author for commit"
msgstr ""
-#: builtin/commit.c:1499 builtin/gc.c:539
+#: builtin/commit.c:1499 builtin/gc.c:538
msgid "date"
msgstr ""
@@ -10947,8 +10979,8 @@ msgstr ""
msgid "the commit is authored by me now (used with -C/-c/--amend)"
msgstr ""
-#: builtin/commit.c:1506 builtin/log.c:1564 builtin/merge.c:289
-#: builtin/pull.c:163 builtin/revert.c:110
+#: builtin/commit.c:1506 builtin/log.c:1565 builtin/merge.c:289
+#: builtin/pull.c:164 builtin/revert.c:110
msgid "add Signed-off-by:"
msgstr ""
@@ -11052,64 +11084,65 @@ msgid "git commit-graph read [--object-dir <objdir>]"
msgstr ""
#: builtin/commit-graph.c:13 builtin/commit-graph.c:19
-msgid "git commit-graph verify [--object-dir <objdir>] [--shallow]"
+msgid ""
+"git commit-graph verify [--object-dir <objdir>] [--shallow] [--[no-]progress]"
msgstr ""
#: builtin/commit-graph.c:14 builtin/commit-graph.c:29
msgid ""
"git commit-graph write [--object-dir <objdir>] [--append|--split] [--"
-"reachable|--stdin-packs|--stdin-commits] <split options>"
+"reachable|--stdin-packs|--stdin-commits] [--[no-]progress] <split options>"
msgstr ""
-#: builtin/commit-graph.c:54 builtin/commit-graph.c:100
-#: builtin/commit-graph.c:161 builtin/commit-graph.c:237 builtin/fetch.c:163
-#: builtin/log.c:1584
+#: builtin/commit-graph.c:55 builtin/commit-graph.c:107
+#: builtin/commit-graph.c:170 builtin/commit-graph.c:254 builtin/fetch.c:178
+#: builtin/log.c:1585
msgid "dir"
msgstr ""
-#: builtin/commit-graph.c:55 builtin/commit-graph.c:101
-#: builtin/commit-graph.c:162 builtin/commit-graph.c:238
+#: builtin/commit-graph.c:56 builtin/commit-graph.c:108
+#: builtin/commit-graph.c:171 builtin/commit-graph.c:255
msgid "The object directory to store the graph"
msgstr ""
-#: builtin/commit-graph.c:57
+#: builtin/commit-graph.c:58
msgid "if the commit-graph is split, only verify the tip file"
msgstr ""
-#: builtin/commit-graph.c:73 builtin/commit-graph.c:116
+#: builtin/commit-graph.c:80 builtin/commit-graph.c:125
#, c-format
msgid "Could not open commit-graph '%s'"
msgstr ""
-#: builtin/commit-graph.c:164
+#: builtin/commit-graph.c:173
msgid "start walk at all refs"
msgstr ""
-#: builtin/commit-graph.c:166
+#: builtin/commit-graph.c:175
msgid "scan pack-indexes listed by stdin for commits"
msgstr ""
-#: builtin/commit-graph.c:168
+#: builtin/commit-graph.c:177
msgid "start walk at commits listed by stdin"
msgstr ""
-#: builtin/commit-graph.c:170
+#: builtin/commit-graph.c:179
msgid "include all commits already in the commit-graph file"
msgstr ""
-#: builtin/commit-graph.c:172
+#: builtin/commit-graph.c:182
msgid "allow writing an incremental commit-graph file"
msgstr ""
-#: builtin/commit-graph.c:174 builtin/commit-graph.c:178
+#: builtin/commit-graph.c:184 builtin/commit-graph.c:188
msgid "maximum number of commits in a non-base split commit-graph"
msgstr ""
-#: builtin/commit-graph.c:176
+#: builtin/commit-graph.c:186
msgid "maximum ratio between two levels of a split commit-graph"
msgstr ""
-#: builtin/commit-graph.c:191
+#: builtin/commit-graph.c:204
msgid "use at most one of --reachable, --stdin-commits, or --stdin-packs"
msgstr ""
@@ -11412,166 +11445,166 @@ msgstr ""
msgid "print sizes in human readable format"
msgstr ""
-#: builtin/describe.c:27
+#: builtin/describe.c:26
msgid "git describe [<options>] [<commit-ish>...]"
msgstr ""
-#: builtin/describe.c:28
+#: builtin/describe.c:27
msgid "git describe [<options>] --dirty"
msgstr ""
-#: builtin/describe.c:63
+#: builtin/describe.c:62
msgid "head"
msgstr ""
-#: builtin/describe.c:63
+#: builtin/describe.c:62
msgid "lightweight"
msgstr ""
-#: builtin/describe.c:63
+#: builtin/describe.c:62
msgid "annotated"
msgstr ""
-#: builtin/describe.c:273
+#: builtin/describe.c:275
#, c-format
msgid "annotated tag %s not available"
msgstr ""
-#: builtin/describe.c:277
+#: builtin/describe.c:279
#, c-format
msgid "annotated tag %s has no embedded name"
msgstr ""
-#: builtin/describe.c:279
+#: builtin/describe.c:281
#, c-format
msgid "tag '%s' is really '%s' here"
msgstr ""
-#: builtin/describe.c:323
+#: builtin/describe.c:325
#, c-format
msgid "no tag exactly matches '%s'"
msgstr ""
-#: builtin/describe.c:325
+#: builtin/describe.c:327
#, c-format
msgid "No exact match on refs or tags, searching to describe\n"
msgstr ""
-#: builtin/describe.c:379
+#: builtin/describe.c:381
#, c-format
msgid "finished search at %s\n"
msgstr ""
-#: builtin/describe.c:405
+#: builtin/describe.c:407
#, c-format
msgid ""
"No annotated tags can describe '%s'.\n"
"However, there were unannotated tags: try --tags."
msgstr ""
-#: builtin/describe.c:409
+#: builtin/describe.c:411
#, c-format
msgid ""
"No tags can describe '%s'.\n"
"Try --always, or create some tags."
msgstr ""
-#: builtin/describe.c:439
+#: builtin/describe.c:441
#, c-format
msgid "traversed %lu commits\n"
msgstr ""
-#: builtin/describe.c:442
+#: builtin/describe.c:444
#, c-format
msgid ""
"more than %i tags found; listed %i most recent\n"
"gave up search at %s\n"
msgstr ""
-#: builtin/describe.c:510
+#: builtin/describe.c:512
#, c-format
msgid "describe %s\n"
msgstr ""
-#: builtin/describe.c:513
+#: builtin/describe.c:515
#, c-format
msgid "Not a valid object name %s"
msgstr ""
-#: builtin/describe.c:521
+#: builtin/describe.c:523
#, c-format
msgid "%s is neither a commit nor blob"
msgstr ""
-#: builtin/describe.c:535
+#: builtin/describe.c:537
msgid "find the tag that comes after the commit"
msgstr ""
-#: builtin/describe.c:536
+#: builtin/describe.c:538
msgid "debug search strategy on stderr"
msgstr ""
-#: builtin/describe.c:537
+#: builtin/describe.c:539
msgid "use any ref"
msgstr ""
-#: builtin/describe.c:538
+#: builtin/describe.c:540
msgid "use any tag, even unannotated"
msgstr ""
-#: builtin/describe.c:539
+#: builtin/describe.c:541
msgid "always use long format"
msgstr ""
-#: builtin/describe.c:540
+#: builtin/describe.c:542
msgid "only follow first parent"
msgstr ""
-#: builtin/describe.c:543
+#: builtin/describe.c:545
msgid "only output exact matches"
msgstr ""
-#: builtin/describe.c:545
+#: builtin/describe.c:547
msgid "consider <n> most recent tags (default: 10)"
msgstr ""
-#: builtin/describe.c:547
+#: builtin/describe.c:549
msgid "only consider tags matching <pattern>"
msgstr ""
-#: builtin/describe.c:549
+#: builtin/describe.c:551
msgid "do not consider tags matching <pattern>"
msgstr ""
-#: builtin/describe.c:551 builtin/name-rev.c:422
+#: builtin/describe.c:553 builtin/name-rev.c:426
msgid "show abbreviated commit object as fallback"
msgstr ""
-#: builtin/describe.c:552 builtin/describe.c:555
+#: builtin/describe.c:554 builtin/describe.c:557
msgid "mark"
msgstr ""
-#: builtin/describe.c:553
+#: builtin/describe.c:555
msgid "append <mark> on dirty working tree (default: \"-dirty\")"
msgstr ""
-#: builtin/describe.c:556
+#: builtin/describe.c:558
msgid "append <mark> on broken working tree (default: \"-broken\")"
msgstr ""
-#: builtin/describe.c:574
+#: builtin/describe.c:576
msgid "--long is incompatible with --abbrev=0"
msgstr ""
-#: builtin/describe.c:603
+#: builtin/describe.c:605
msgid "No names found, cannot describe anything."
msgstr ""
-#: builtin/describe.c:654
+#: builtin/describe.c:656
msgid "--dirty is incompatible with commit-ishes"
msgstr ""
-#: builtin/describe.c:656
+#: builtin/describe.c:658
msgid "--broken is incompatible with commit-ishes"
msgstr ""
@@ -11608,109 +11641,109 @@ msgstr ""
msgid "git difftool [<options>] [<commit> [<commit>]] [--] [<path>...]"
msgstr ""
-#: builtin/difftool.c:253
+#: builtin/difftool.c:260
#, c-format
msgid "failed: %d"
msgstr ""
-#: builtin/difftool.c:295
+#: builtin/difftool.c:302
#, c-format
msgid "could not read symlink %s"
msgstr ""
-#: builtin/difftool.c:297
+#: builtin/difftool.c:304
#, c-format
msgid "could not read symlink file %s"
msgstr ""
-#: builtin/difftool.c:305
+#: builtin/difftool.c:312
#, c-format
msgid "could not read object %s for symlink %s"
msgstr ""
-#: builtin/difftool.c:406
+#: builtin/difftool.c:413
msgid ""
"combined diff formats('-c' and '--cc') are not supported in\n"
"directory diff mode('-d' and '--dir-diff')."
msgstr ""
-#: builtin/difftool.c:626
+#: builtin/difftool.c:634
#, c-format
msgid "both files modified: '%s' and '%s'."
msgstr ""
-#: builtin/difftool.c:628
+#: builtin/difftool.c:636
msgid "working tree file has been left."
msgstr ""
-#: builtin/difftool.c:639
+#: builtin/difftool.c:647
#, c-format
msgid "temporary files exist in '%s'."
msgstr ""
-#: builtin/difftool.c:640
+#: builtin/difftool.c:648
msgid "you may want to cleanup or recover these."
msgstr ""
-#: builtin/difftool.c:689
+#: builtin/difftool.c:697
msgid "use `diff.guitool` instead of `diff.tool`"
msgstr ""
-#: builtin/difftool.c:691
+#: builtin/difftool.c:699
msgid "perform a full-directory diff"
msgstr ""
-#: builtin/difftool.c:693
+#: builtin/difftool.c:701
msgid "do not prompt before launching a diff tool"
msgstr ""
-#: builtin/difftool.c:698
+#: builtin/difftool.c:706
msgid "use symlinks in dir-diff mode"
msgstr ""
-#: builtin/difftool.c:699
+#: builtin/difftool.c:707
msgid "tool"
msgstr ""
-#: builtin/difftool.c:700
+#: builtin/difftool.c:708
msgid "use the specified diff tool"
msgstr ""
-#: builtin/difftool.c:702
+#: builtin/difftool.c:710
msgid "print a list of diff tools that may be used with `--tool`"
msgstr ""
-#: builtin/difftool.c:705
+#: builtin/difftool.c:713
msgid ""
"make 'git-difftool' exit when an invoked diff tool returns a non - zero exit "
"code"
msgstr ""
-#: builtin/difftool.c:708
+#: builtin/difftool.c:716
msgid "specify a custom command for viewing diffs"
msgstr ""
-#: builtin/difftool.c:709
+#: builtin/difftool.c:717
msgid "passed to `diff`"
msgstr ""
-#: builtin/difftool.c:724
+#: builtin/difftool.c:732
msgid "difftool requires worktree or --no-index"
msgstr ""
-#: builtin/difftool.c:731
+#: builtin/difftool.c:739
msgid "--dir-diff is incompatible with --no-index"
msgstr ""
-#: builtin/difftool.c:734
+#: builtin/difftool.c:742
msgid "--gui, --tool and --extcmd are mutually exclusive"
msgstr ""
-#: builtin/difftool.c:742
+#: builtin/difftool.c:750
msgid "no <tool> given for --tool=<tool>"
msgstr ""
-#: builtin/difftool.c:749
+#: builtin/difftool.c:757
msgid "no <cmd> given for --extcmd=<cmd>"
msgstr ""
@@ -11746,251 +11779,275 @@ msgstr ""
msgid "git fast-export [rev-list-opts]"
msgstr ""
-#: builtin/fast-export.c:1124
+#: builtin/fast-export.c:852
+msgid "Error: Cannot export nested tags unless --mark-tags is specified."
+msgstr ""
+
+#: builtin/fast-export.c:1152
msgid "show progress after <n> objects"
msgstr ""
-#: builtin/fast-export.c:1126
+#: builtin/fast-export.c:1154
msgid "select handling of signed tags"
msgstr ""
-#: builtin/fast-export.c:1129
+#: builtin/fast-export.c:1157
msgid "select handling of tags that tag filtered objects"
msgstr ""
-#: builtin/fast-export.c:1132
+#: builtin/fast-export.c:1160
msgid "select handling of commit messages in an alternate encoding"
msgstr ""
-#: builtin/fast-export.c:1135
+#: builtin/fast-export.c:1163
msgid "Dump marks to this file"
msgstr ""
-#: builtin/fast-export.c:1137
+#: builtin/fast-export.c:1165
msgid "Import marks from this file"
msgstr ""
-#: builtin/fast-export.c:1139
+#: builtin/fast-export.c:1169
+msgid "Import marks from this file if it exists"
+msgstr ""
+
+#: builtin/fast-export.c:1171
msgid "Fake a tagger when tags lack one"
msgstr ""
-#: builtin/fast-export.c:1141
+#: builtin/fast-export.c:1173
msgid "Output full tree for each commit"
msgstr ""
-#: builtin/fast-export.c:1143
+#: builtin/fast-export.c:1175
msgid "Use the done feature to terminate the stream"
msgstr ""
-#: builtin/fast-export.c:1144
+#: builtin/fast-export.c:1176
msgid "Skip output of blob data"
msgstr ""
-#: builtin/fast-export.c:1145 builtin/log.c:1632
+#: builtin/fast-export.c:1177 builtin/log.c:1633
msgid "refspec"
msgstr ""
-#: builtin/fast-export.c:1146
+#: builtin/fast-export.c:1178
msgid "Apply refspec to exported refs"
msgstr ""
-#: builtin/fast-export.c:1147
+#: builtin/fast-export.c:1179
msgid "anonymize output"
msgstr ""
-#: builtin/fast-export.c:1149
+#: builtin/fast-export.c:1181
msgid "Reference parents which are not in fast-export stream by object id"
msgstr ""
-#: builtin/fast-export.c:1151
+#: builtin/fast-export.c:1183
msgid "Show original object ids of blobs/commits"
msgstr ""
-#: builtin/fetch.c:30
+#: builtin/fast-export.c:1185
+msgid "Label tags with mark ids"
+msgstr ""
+
+#: builtin/fast-export.c:1220
+msgid "Cannot pass both --import-marks and --import-marks-if-exists"
+msgstr ""
+
+#: builtin/fetch.c:34
msgid "git fetch [<options>] [<repository> [<refspec>...]]"
msgstr ""
-#: builtin/fetch.c:31
+#: builtin/fetch.c:35
msgid "git fetch [<options>] <group>"
msgstr ""
-#: builtin/fetch.c:32
+#: builtin/fetch.c:36
msgid "git fetch --multiple [<options>] [(<repository> | <group>)...]"
msgstr ""
-#: builtin/fetch.c:33
+#: builtin/fetch.c:37
msgid "git fetch --all [<options>]"
msgstr ""
-#: builtin/fetch.c:125 builtin/pull.c:203
+#: builtin/fetch.c:115
+msgid "fetch.parallel cannot be negative"
+msgstr ""
+
+#: builtin/fetch.c:138 builtin/pull.c:204
msgid "fetch from all remotes"
msgstr ""
-#: builtin/fetch.c:127 builtin/pull.c:206
+#: builtin/fetch.c:140 builtin/pull.c:248
+msgid "set upstream for git pull/fetch"
+msgstr ""
+
+#: builtin/fetch.c:142 builtin/pull.c:207
msgid "append to .git/FETCH_HEAD instead of overwriting"
msgstr ""
-#: builtin/fetch.c:129 builtin/pull.c:209
+#: builtin/fetch.c:144 builtin/pull.c:210
msgid "path to upload pack on remote end"
msgstr ""
-#: builtin/fetch.c:130
+#: builtin/fetch.c:145
msgid "force overwrite of local reference"
msgstr ""
-#: builtin/fetch.c:132
+#: builtin/fetch.c:147
msgid "fetch from multiple remotes"
msgstr ""
-#: builtin/fetch.c:134 builtin/pull.c:213
+#: builtin/fetch.c:149 builtin/pull.c:214
msgid "fetch all tags and associated objects"
msgstr ""
-#: builtin/fetch.c:136
+#: builtin/fetch.c:151
msgid "do not fetch all tags (--no-tags)"
msgstr ""
-#: builtin/fetch.c:138
+#: builtin/fetch.c:153
msgid "number of submodules fetched in parallel"
msgstr ""
-#: builtin/fetch.c:140 builtin/pull.c:216
+#: builtin/fetch.c:155 builtin/pull.c:217
msgid "prune remote-tracking branches no longer on remote"
msgstr ""
-#: builtin/fetch.c:142
+#: builtin/fetch.c:157
msgid "prune local tags no longer on remote and clobber changed tags"
msgstr ""
-#: builtin/fetch.c:143 builtin/fetch.c:166 builtin/pull.c:140
+#: builtin/fetch.c:158 builtin/fetch.c:181 builtin/pull.c:141
msgid "on-demand"
msgstr ""
-#: builtin/fetch.c:144
+#: builtin/fetch.c:159
msgid "control recursive fetching of submodules"
msgstr ""
-#: builtin/fetch.c:148 builtin/pull.c:224
+#: builtin/fetch.c:163 builtin/pull.c:225
msgid "keep downloaded pack"
msgstr ""
-#: builtin/fetch.c:150
+#: builtin/fetch.c:165
msgid "allow updating of HEAD ref"
msgstr ""
-#: builtin/fetch.c:153 builtin/fetch.c:159 builtin/pull.c:227
+#: builtin/fetch.c:168 builtin/fetch.c:174 builtin/pull.c:228
msgid "deepen history of shallow clone"
msgstr ""
-#: builtin/fetch.c:155
+#: builtin/fetch.c:170
msgid "deepen history of shallow repository based on time"
msgstr ""
-#: builtin/fetch.c:161 builtin/pull.c:230
+#: builtin/fetch.c:176 builtin/pull.c:231
msgid "convert to a complete repository"
msgstr ""
-#: builtin/fetch.c:164
+#: builtin/fetch.c:179
msgid "prepend this to submodule path output"
msgstr ""
-#: builtin/fetch.c:167
+#: builtin/fetch.c:182
msgid ""
"default for recursive fetching of submodules (lower priority than config "
"files)"
msgstr ""
-#: builtin/fetch.c:171 builtin/pull.c:233
+#: builtin/fetch.c:186 builtin/pull.c:234
msgid "accept refs that update .git/shallow"
msgstr ""
-#: builtin/fetch.c:172 builtin/pull.c:235
+#: builtin/fetch.c:187 builtin/pull.c:236
msgid "refmap"
msgstr ""
-#: builtin/fetch.c:173 builtin/pull.c:236
+#: builtin/fetch.c:188 builtin/pull.c:237
msgid "specify fetch refmap"
msgstr ""
-#: builtin/fetch.c:180
+#: builtin/fetch.c:195
msgid "report that we have only objects reachable from this object"
msgstr ""
-#: builtin/fetch.c:183
+#: builtin/fetch.c:198
msgid "run 'gc --auto' after fetching"
msgstr ""
-#: builtin/fetch.c:185 builtin/pull.c:245
+#: builtin/fetch.c:200 builtin/pull.c:246
msgid "check for forced-updates on all updated branches"
msgstr ""
-#: builtin/fetch.c:491
+#: builtin/fetch.c:510
msgid "Couldn't find remote ref HEAD"
msgstr ""
-#: builtin/fetch.c:630
+#: builtin/fetch.c:650
#, c-format
msgid "configuration fetch.output contains invalid value %s"
msgstr ""
-#: builtin/fetch.c:728
+#: builtin/fetch.c:748
#, c-format
msgid "object %s not found"
msgstr ""
-#: builtin/fetch.c:732
+#: builtin/fetch.c:752
msgid "[up to date]"
msgstr ""
-#: builtin/fetch.c:745 builtin/fetch.c:761 builtin/fetch.c:833
+#: builtin/fetch.c:765 builtin/fetch.c:781 builtin/fetch.c:853
msgid "[rejected]"
msgstr ""
-#: builtin/fetch.c:746
+#: builtin/fetch.c:766
msgid "can't fetch in current branch"
msgstr ""
-#: builtin/fetch.c:756
+#: builtin/fetch.c:776
msgid "[tag update]"
msgstr ""
-#: builtin/fetch.c:757 builtin/fetch.c:794 builtin/fetch.c:816
-#: builtin/fetch.c:828
+#: builtin/fetch.c:777 builtin/fetch.c:814 builtin/fetch.c:836
+#: builtin/fetch.c:848
msgid "unable to update local ref"
msgstr ""
-#: builtin/fetch.c:761
+#: builtin/fetch.c:781
msgid "would clobber existing tag"
msgstr ""
-#: builtin/fetch.c:783
+#: builtin/fetch.c:803
msgid "[new tag]"
msgstr ""
-#: builtin/fetch.c:786
+#: builtin/fetch.c:806
msgid "[new branch]"
msgstr ""
-#: builtin/fetch.c:789
+#: builtin/fetch.c:809
msgid "[new ref]"
msgstr ""
-#: builtin/fetch.c:828
+#: builtin/fetch.c:848
msgid "forced update"
msgstr ""
-#: builtin/fetch.c:833
+#: builtin/fetch.c:853
msgid "non-fast-forward"
msgstr ""
-#: builtin/fetch.c:854
+#: builtin/fetch.c:874
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:858
+#: builtin/fetch.c:878
#, c-format
msgid ""
"It took %.2f seconds to check forced updates. You can use\n"
@@ -11999,121 +12056,142 @@ msgid ""
" to avoid this check.\n"
msgstr ""
-#: builtin/fetch.c:888
+#: builtin/fetch.c:908
#, c-format
msgid "%s did not send all necessary objects\n"
msgstr ""
-#: builtin/fetch.c:909
+#: builtin/fetch.c:929
#, c-format
msgid "reject %s because shallow roots are not allowed to be updated"
msgstr ""
-#: builtin/fetch.c:1000 builtin/fetch.c:1131
+#: builtin/fetch.c:1020 builtin/fetch.c:1157
#, c-format
msgid "From %.*s\n"
msgstr ""
-#: builtin/fetch.c:1011
+#: builtin/fetch.c:1031
#, 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:1101
+#: builtin/fetch.c:1127
#, c-format
msgid " (%s will become dangling)"
msgstr ""
-#: builtin/fetch.c:1102
+#: builtin/fetch.c:1128
#, c-format
msgid " (%s has become dangling)"
msgstr ""
-#: builtin/fetch.c:1134
+#: builtin/fetch.c:1160
msgid "[deleted]"
msgstr ""
-#: builtin/fetch.c:1135 builtin/remote.c:1036
+#: builtin/fetch.c:1161 builtin/remote.c:1036
msgid "(none)"
msgstr ""
-#: builtin/fetch.c:1158
+#: builtin/fetch.c:1184
#, c-format
msgid "Refusing to fetch into current branch %s of non-bare repository"
msgstr ""
-#: builtin/fetch.c:1177
+#: builtin/fetch.c:1203
#, c-format
msgid "Option \"%s\" value \"%s\" is not valid for %s"
msgstr ""
-#: builtin/fetch.c:1180
+#: builtin/fetch.c:1206
#, c-format
msgid "Option \"%s\" is ignored for %s\n"
msgstr ""
-#: builtin/fetch.c:1484
+#: builtin/fetch.c:1414
+msgid "multiple branch detected, incompatible with --set-upstream"
+msgstr ""
+
+#: builtin/fetch.c:1429
+msgid "not setting upstream for a remote remote-tracking branch"
+msgstr ""
+
+#: builtin/fetch.c:1431
+msgid "not setting upstream for a remote tag"
+msgstr ""
+
+#: builtin/fetch.c:1433
+msgid "unknown branch type"
+msgstr ""
+
+#: builtin/fetch.c:1435
+msgid ""
+"no source branch found.\n"
+"you need to specify exactly one branch with the --set-upstream option."
+msgstr ""
+
+#: builtin/fetch.c:1561 builtin/fetch.c:1623
#, c-format
msgid "Fetching %s\n"
msgstr ""
-#: builtin/fetch.c:1486 builtin/remote.c:100
+#: builtin/fetch.c:1571 builtin/fetch.c:1625 builtin/remote.c:100
#, c-format
msgid "Could not fetch %s"
msgstr ""
-#: builtin/fetch.c:1532
-msgid ""
-"--filter can only be used with the remote configured in extensions."
-"partialClone"
+#: builtin/fetch.c:1583
+#, c-format
+msgid "could not fetch '%s' (exit code: %d)\n"
msgstr ""
-#: builtin/fetch.c:1556
+#: builtin/fetch.c:1685
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:1593
+#: builtin/fetch.c:1722
msgid "You need to specify a tag name."
msgstr ""
-#: builtin/fetch.c:1644
+#: builtin/fetch.c:1774
msgid "Negative depth in --deepen is not supported"
msgstr ""
-#: builtin/fetch.c:1646
+#: builtin/fetch.c:1776
msgid "--deepen and --depth are mutually exclusive"
msgstr ""
-#: builtin/fetch.c:1651
+#: builtin/fetch.c:1781
msgid "--depth and --unshallow cannot be used together"
msgstr ""
-#: builtin/fetch.c:1653
+#: builtin/fetch.c:1783
msgid "--unshallow on a complete repository does not make sense"
msgstr ""
-#: builtin/fetch.c:1669
+#: builtin/fetch.c:1799
msgid "fetch --all does not take a repository argument"
msgstr ""
-#: builtin/fetch.c:1671
+#: builtin/fetch.c:1801
msgid "fetch --all does not make sense with refspecs"
msgstr ""
-#: builtin/fetch.c:1680
+#: builtin/fetch.c:1810
#, c-format
msgid "No such remote or remote group: %s"
msgstr ""
-#: builtin/fetch.c:1687
+#: builtin/fetch.c:1817
msgid "Fetching a group and specifying refspecs does not make sense"
msgstr ""
-#: builtin/fetch.c:1703
+#: builtin/fetch.c:1835
msgid ""
"--filter can only be used with the remote configured in extensions."
"partialclone"
@@ -12445,7 +12523,7 @@ msgstr ""
msgid "invalid parameter: expected sha1, got '%s'"
msgstr ""
-#: builtin/gc.c:34
+#: builtin/gc.c:35
msgid "git gc [<options>]"
msgstr ""
@@ -12459,17 +12537,17 @@ msgstr ""
msgid "failed to parse '%s' value '%s'"
msgstr ""
-#: builtin/gc.c:476 builtin/init-db.c:55
+#: builtin/gc.c:475 builtin/init-db.c:55
#, c-format
msgid "cannot stat '%s'"
msgstr ""
-#: builtin/gc.c:485 builtin/notes.c:240 builtin/tag.c:529
+#: builtin/gc.c:484 builtin/notes.c:240 builtin/tag.c:529
#, c-format
msgid "cannot read '%s'"
msgstr ""
-#: builtin/gc.c:492
+#: builtin/gc.c:491
#, c-format
msgid ""
"The last gc run reported the following. Please correct the root cause\n"
@@ -12479,58 +12557,58 @@ msgid ""
"%s"
msgstr ""
-#: builtin/gc.c:540
+#: builtin/gc.c:539
msgid "prune unreferenced objects"
msgstr ""
-#: builtin/gc.c:542
+#: builtin/gc.c:541
msgid "be more thorough (increased runtime)"
msgstr ""
-#: builtin/gc.c:543
+#: builtin/gc.c:542
msgid "enable auto-gc mode"
msgstr ""
-#: builtin/gc.c:546
+#: builtin/gc.c:545
msgid "force running gc even if there may be another gc running"
msgstr ""
-#: builtin/gc.c:549
+#: builtin/gc.c:548
msgid "repack all other packs except the largest pack"
msgstr ""
-#: builtin/gc.c:566
+#: builtin/gc.c:565
#, c-format
msgid "failed to parse gc.logexpiry value %s"
msgstr ""
-#: builtin/gc.c:577
+#: builtin/gc.c:576
#, c-format
msgid "failed to parse prune expiry value %s"
msgstr ""
-#: builtin/gc.c:597
+#: builtin/gc.c:596
#, c-format
msgid "Auto packing the repository in background for optimum performance.\n"
msgstr ""
-#: builtin/gc.c:599
+#: builtin/gc.c:598
#, c-format
msgid "Auto packing the repository for optimum performance.\n"
msgstr ""
-#: builtin/gc.c:600
+#: builtin/gc.c:599
#, c-format
msgid "See \"git help gc\" for manual housekeeping.\n"
msgstr ""
-#: builtin/gc.c:640
+#: builtin/gc.c:639
#, c-format
msgid ""
"gc is already running on machine '%s' pid %<PRIuMAX> (use --force if not)"
msgstr ""
-#: builtin/gc.c:695
+#: builtin/gc.c:694
msgid ""
"There are too many unreachable loose objects; run 'git prune' to remove them."
msgstr ""
@@ -12554,257 +12632,257 @@ msgstr ""
#. grep.threads
#.
#: builtin/grep.c:287 builtin/index-pack.c:1534 builtin/index-pack.c:1727
-#: builtin/pack-objects.c:2728
+#: builtin/pack-objects.c:2708
#, c-format
msgid "no threads support, ignoring %s"
msgstr ""
-#: builtin/grep.c:467 builtin/grep.c:591 builtin/grep.c:633
+#: builtin/grep.c:467 builtin/grep.c:592 builtin/grep.c:635
#, c-format
msgid "unable to read tree (%s)"
msgstr ""
-#: builtin/grep.c:648
+#: builtin/grep.c:650
#, c-format
msgid "unable to grep from object of type %s"
msgstr ""
-#: builtin/grep.c:714
+#: builtin/grep.c:716
#, c-format
msgid "switch `%c' expects a numerical value"
msgstr ""
-#: builtin/grep.c:813
+#: builtin/grep.c:815
msgid "search in index instead of in the work tree"
msgstr ""
-#: builtin/grep.c:815
+#: builtin/grep.c:817
msgid "find in contents not managed by git"
msgstr ""
-#: builtin/grep.c:817
+#: builtin/grep.c:819
msgid "search in both tracked and untracked files"
msgstr ""
-#: builtin/grep.c:819
+#: builtin/grep.c:821
msgid "ignore files specified via '.gitignore'"
msgstr ""
-#: builtin/grep.c:821
+#: builtin/grep.c:823
msgid "recursively search in each submodule"
msgstr ""
-#: builtin/grep.c:824
+#: builtin/grep.c:826
msgid "show non-matching lines"
msgstr ""
-#: builtin/grep.c:826
+#: builtin/grep.c:828
msgid "case insensitive matching"
msgstr ""
-#: builtin/grep.c:828
+#: builtin/grep.c:830
msgid "match patterns only at word boundaries"
msgstr ""
-#: builtin/grep.c:830
+#: builtin/grep.c:832
msgid "process binary files as text"
msgstr ""
-#: builtin/grep.c:832
+#: builtin/grep.c:834
msgid "don't match patterns in binary files"
msgstr ""
-#: builtin/grep.c:835
+#: builtin/grep.c:837
msgid "process binary files with textconv filters"
msgstr ""
-#: builtin/grep.c:837
+#: builtin/grep.c:839
msgid "search in subdirectories (default)"
msgstr ""
-#: builtin/grep.c:839
+#: builtin/grep.c:841
msgid "descend at most <depth> levels"
msgstr ""
-#: builtin/grep.c:843
+#: builtin/grep.c:845
msgid "use extended POSIX regular expressions"
msgstr ""
-#: builtin/grep.c:846
+#: builtin/grep.c:848
msgid "use basic POSIX regular expressions (default)"
msgstr ""
-#: builtin/grep.c:849
+#: builtin/grep.c:851
msgid "interpret patterns as fixed strings"
msgstr ""
-#: builtin/grep.c:852
+#: builtin/grep.c:854
msgid "use Perl-compatible regular expressions"
msgstr ""
-#: builtin/grep.c:855
+#: builtin/grep.c:857
msgid "show line numbers"
msgstr ""
-#: builtin/grep.c:856
+#: builtin/grep.c:858
msgid "show column number of first match"
msgstr ""
-#: builtin/grep.c:857
+#: builtin/grep.c:859
msgid "don't show filenames"
msgstr ""
-#: builtin/grep.c:858
+#: builtin/grep.c:860
msgid "show filenames"
msgstr ""
-#: builtin/grep.c:860
+#: builtin/grep.c:862
msgid "show filenames relative to top directory"
msgstr ""
-#: builtin/grep.c:862
+#: builtin/grep.c:864
msgid "show only filenames instead of matching lines"
msgstr ""
-#: builtin/grep.c:864
+#: builtin/grep.c:866
msgid "synonym for --files-with-matches"
msgstr ""
-#: builtin/grep.c:867
+#: builtin/grep.c:869
msgid "show only the names of files without match"
msgstr ""
-#: builtin/grep.c:869
+#: builtin/grep.c:871
msgid "print NUL after filenames"
msgstr ""
-#: builtin/grep.c:872
+#: builtin/grep.c:874
msgid "show only matching parts of a line"
msgstr ""
-#: builtin/grep.c:874
+#: builtin/grep.c:876
msgid "show the number of matches instead of matching lines"
msgstr ""
-#: builtin/grep.c:875
+#: builtin/grep.c:877
msgid "highlight matches"
msgstr ""
-#: builtin/grep.c:877
+#: builtin/grep.c:879
msgid "print empty line between matches from different files"
msgstr ""
-#: builtin/grep.c:879
+#: builtin/grep.c:881
msgid "show filename only once above matches from same file"
msgstr ""
-#: builtin/grep.c:882
+#: builtin/grep.c:884
msgid "show <n> context lines before and after matches"
msgstr ""
-#: builtin/grep.c:885
+#: builtin/grep.c:887
msgid "show <n> context lines before matches"
msgstr ""
-#: builtin/grep.c:887
+#: builtin/grep.c:889
msgid "show <n> context lines after matches"
msgstr ""
-#: builtin/grep.c:889
+#: builtin/grep.c:891
msgid "use <n> worker threads"
msgstr ""
-#: builtin/grep.c:890
+#: builtin/grep.c:892
msgid "shortcut for -C NUM"
msgstr ""
-#: builtin/grep.c:893
+#: builtin/grep.c:895
msgid "show a line with the function name before matches"
msgstr ""
-#: builtin/grep.c:895
+#: builtin/grep.c:897
msgid "show the surrounding function"
msgstr ""
-#: builtin/grep.c:898
+#: builtin/grep.c:900
msgid "read patterns from file"
msgstr ""
-#: builtin/grep.c:900
+#: builtin/grep.c:902
msgid "match <pattern>"
msgstr ""
-#: builtin/grep.c:902
+#: builtin/grep.c:904
msgid "combine patterns specified with -e"
msgstr ""
-#: builtin/grep.c:914
+#: builtin/grep.c:916
msgid "indicate hit with exit status without output"
msgstr ""
-#: builtin/grep.c:916
+#: builtin/grep.c:918
msgid "show only matches from files that match all patterns"
msgstr ""
-#: builtin/grep.c:918
+#: builtin/grep.c:920
msgid "show parse tree for grep expression"
msgstr ""
-#: builtin/grep.c:922
+#: builtin/grep.c:924
msgid "pager"
msgstr ""
-#: builtin/grep.c:922
+#: builtin/grep.c:924
msgid "show matching files in the pager"
msgstr ""
-#: builtin/grep.c:926
+#: builtin/grep.c:928
msgid "allow calling of grep(1) (ignored by this build)"
msgstr ""
-#: builtin/grep.c:990
+#: builtin/grep.c:992
msgid "no pattern given"
msgstr ""
-#: builtin/grep.c:1026
+#: builtin/grep.c:1028
msgid "--no-index or --untracked cannot be used with revs"
msgstr ""
-#: builtin/grep.c:1034
+#: builtin/grep.c:1036
#, c-format
msgid "unable to resolve revision: %s"
msgstr ""
-#: builtin/grep.c:1065
+#: builtin/grep.c:1067
msgid "invalid option combination, ignoring --threads"
msgstr ""
-#: builtin/grep.c:1068 builtin/pack-objects.c:3416
+#: builtin/grep.c:1070 builtin/pack-objects.c:3400
msgid "no threads support, ignoring --threads"
msgstr ""
-#: builtin/grep.c:1071 builtin/index-pack.c:1531 builtin/pack-objects.c:2725
+#: builtin/grep.c:1073 builtin/index-pack.c:1531 builtin/pack-objects.c:2705
#, c-format
msgid "invalid number of threads specified (%d)"
msgstr ""
-#: builtin/grep.c:1094
+#: builtin/grep.c:1096
msgid "--open-files-in-pager only works on the worktree"
msgstr ""
-#: builtin/grep.c:1117
+#: builtin/grep.c:1119
msgid "option not supported with --recurse-submodules"
msgstr ""
-#: builtin/grep.c:1123
+#: builtin/grep.c:1125
msgid "--cached or --untracked cannot be used with --no-index"
msgstr ""
-#: builtin/grep.c:1129
+#: builtin/grep.c:1131
msgid "--[no-]exclude-standard cannot be used for tracked contents"
msgstr ""
-#: builtin/grep.c:1137
+#: builtin/grep.c:1139
msgid "both --cached and trees are given"
msgstr ""
@@ -13110,7 +13188,7 @@ msgstr ""
msgid "Resolving deltas"
msgstr ""
-#: builtin/index-pack.c:1205 builtin/pack-objects.c:2497
+#: builtin/index-pack.c:1205 builtin/pack-objects.c:2481
#, c-format
msgid "unable to create thread: %s"
msgstr ""
@@ -13175,7 +13253,7 @@ msgstr ""
msgid "cannot store index file"
msgstr ""
-#: builtin/index-pack.c:1525 builtin/pack-objects.c:2736
+#: builtin/index-pack.c:1525 builtin/pack-objects.c:2716
#, c-format
msgid "bad pack.indexversion=%<PRIu32>"
msgstr ""
@@ -13450,341 +13528,341 @@ msgstr ""
msgid "git show %s: bad file"
msgstr ""
-#: builtin/log.c:549 builtin/log.c:643
+#: builtin/log.c:549 builtin/log.c:644
#, c-format
msgid "could not read object %s"
msgstr ""
-#: builtin/log.c:668
+#: builtin/log.c:669
#, c-format
msgid "unknown type: %d"
msgstr ""
-#: builtin/log.c:791
+#: builtin/log.c:792
msgid "format.headers without value"
msgstr ""
-#: builtin/log.c:908
+#: builtin/log.c:909
msgid "name of output directory is too long"
msgstr ""
-#: builtin/log.c:924
+#: builtin/log.c:925
#, c-format
msgid "cannot open patch file %s"
msgstr ""
-#: builtin/log.c:941
+#: builtin/log.c:942
msgid "need exactly one range"
msgstr ""
-#: builtin/log.c:951
+#: builtin/log.c:952
msgid "not a range"
msgstr ""
-#: builtin/log.c:1074
+#: builtin/log.c:1075
msgid "cover letter needs email format"
msgstr ""
-#: builtin/log.c:1080
+#: builtin/log.c:1081
msgid "failed to create cover-letter file"
msgstr ""
-#: builtin/log.c:1159
+#: builtin/log.c:1160
#, c-format
msgid "insane in-reply-to: %s"
msgstr ""
-#: builtin/log.c:1186
+#: builtin/log.c:1187
msgid "git format-patch [<options>] [<since> | <revision-range>]"
msgstr ""
-#: builtin/log.c:1244
+#: builtin/log.c:1245
msgid "two output directories?"
msgstr ""
-#: builtin/log.c:1355 builtin/log.c:2099 builtin/log.c:2101 builtin/log.c:2113
+#: builtin/log.c:1356 builtin/log.c:2116 builtin/log.c:2118 builtin/log.c:2130
#, c-format
msgid "unknown commit %s"
msgstr ""
-#: builtin/log.c:1365 builtin/replace.c:58 builtin/replace.c:207
+#: builtin/log.c:1366 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:1370
+#: builtin/log.c:1371
msgid "could not find exact merge base"
msgstr ""
-#: builtin/log.c:1374
+#: builtin/log.c:1375
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:1394
+#: builtin/log.c:1395
msgid "failed to find exact merge base"
msgstr ""
-#: builtin/log.c:1405
+#: builtin/log.c:1406
msgid "base commit should be the ancestor of revision list"
msgstr ""
-#: builtin/log.c:1409
+#: builtin/log.c:1410
msgid "base commit shouldn't be in revision list"
msgstr ""
-#: builtin/log.c:1462
+#: builtin/log.c:1463
msgid "cannot get patch id"
msgstr ""
-#: builtin/log.c:1514
+#: builtin/log.c:1515
msgid "failed to infer range-diff ranges"
msgstr ""
-#: builtin/log.c:1559
+#: builtin/log.c:1560
msgid "use [PATCH n/m] even with a single patch"
msgstr ""
-#: builtin/log.c:1562
+#: builtin/log.c:1563
msgid "use [PATCH] even with multiple patches"
msgstr ""
-#: builtin/log.c:1566
+#: builtin/log.c:1567
msgid "print patches to standard out"
msgstr ""
-#: builtin/log.c:1568
+#: builtin/log.c:1569
msgid "generate a cover letter"
msgstr ""
-#: builtin/log.c:1570
+#: builtin/log.c:1571
msgid "use simple number sequence for output file names"
msgstr ""
-#: builtin/log.c:1571
+#: builtin/log.c:1572
msgid "sfx"
msgstr ""
-#: builtin/log.c:1572
+#: builtin/log.c:1573
msgid "use <sfx> instead of '.patch'"
msgstr ""
-#: builtin/log.c:1574
+#: builtin/log.c:1575
msgid "start numbering patches at <n> instead of 1"
msgstr ""
-#: builtin/log.c:1576
+#: builtin/log.c:1577
msgid "mark the series as Nth re-roll"
msgstr ""
-#: builtin/log.c:1578
+#: builtin/log.c:1579
msgid "Use [RFC PATCH] instead of [PATCH]"
msgstr ""
-#: builtin/log.c:1581
+#: builtin/log.c:1582
msgid "Use [<prefix>] instead of [PATCH]"
msgstr ""
-#: builtin/log.c:1584
+#: builtin/log.c:1585
msgid "store resulting files in <dir>"
msgstr ""
-#: builtin/log.c:1587
+#: builtin/log.c:1588
msgid "don't strip/add [PATCH]"
msgstr ""
-#: builtin/log.c:1590
+#: builtin/log.c:1591
msgid "don't output binary diffs"
msgstr ""
-#: builtin/log.c:1592
+#: builtin/log.c:1593
msgid "output all-zero hash in From header"
msgstr ""
-#: builtin/log.c:1594
+#: builtin/log.c:1595
msgid "don't include a patch matching a commit upstream"
msgstr ""
-#: builtin/log.c:1596
+#: builtin/log.c:1597
msgid "show patch format instead of default (patch + stat)"
msgstr ""
-#: builtin/log.c:1598
+#: builtin/log.c:1599
msgid "Messaging"
msgstr ""
-#: builtin/log.c:1599
+#: builtin/log.c:1600
msgid "header"
msgstr ""
-#: builtin/log.c:1600
+#: builtin/log.c:1601
msgid "add email header"
msgstr ""
-#: builtin/log.c:1601 builtin/log.c:1603
+#: builtin/log.c:1602 builtin/log.c:1604
msgid "email"
msgstr ""
-#: builtin/log.c:1601
+#: builtin/log.c:1602
msgid "add To: header"
msgstr ""
-#: builtin/log.c:1603
+#: builtin/log.c:1604
msgid "add Cc: header"
msgstr ""
-#: builtin/log.c:1605
+#: builtin/log.c:1606
msgid "ident"
msgstr ""
-#: builtin/log.c:1606
+#: builtin/log.c:1607
msgid "set From address to <ident> (or committer ident if absent)"
msgstr ""
-#: builtin/log.c:1608
+#: builtin/log.c:1609
msgid "message-id"
msgstr ""
-#: builtin/log.c:1609
+#: builtin/log.c:1610
msgid "make first mail a reply to <message-id>"
msgstr ""
-#: builtin/log.c:1610 builtin/log.c:1613
+#: builtin/log.c:1611 builtin/log.c:1614
msgid "boundary"
msgstr ""
-#: builtin/log.c:1611
+#: builtin/log.c:1612
msgid "attach the patch"
msgstr ""
-#: builtin/log.c:1614
+#: builtin/log.c:1615
msgid "inline the patch"
msgstr ""
-#: builtin/log.c:1618
+#: builtin/log.c:1619
msgid "enable message threading, styles: shallow, deep"
msgstr ""
-#: builtin/log.c:1620
+#: builtin/log.c:1621
msgid "signature"
msgstr ""
-#: builtin/log.c:1621
+#: builtin/log.c:1622
msgid "add a signature"
msgstr ""
-#: builtin/log.c:1622
+#: builtin/log.c:1623
msgid "base-commit"
msgstr ""
-#: builtin/log.c:1623
+#: builtin/log.c:1624
msgid "add prerequisite tree info to the patch series"
msgstr ""
-#: builtin/log.c:1625
+#: builtin/log.c:1626
msgid "add a signature from a file"
msgstr ""
-#: builtin/log.c:1626
+#: builtin/log.c:1627
msgid "don't print the patch filenames"
msgstr ""
-#: builtin/log.c:1628
+#: builtin/log.c:1629
msgid "show progress while generating patches"
msgstr ""
-#: builtin/log.c:1630
+#: builtin/log.c:1631
msgid "show changes against <rev> in cover letter or single patch"
msgstr ""
-#: builtin/log.c:1633
+#: builtin/log.c:1634
msgid "show changes against <refspec> in cover letter or single patch"
msgstr ""
-#: builtin/log.c:1635
+#: builtin/log.c:1636
msgid "percentage by which creation is weighted"
msgstr ""
-#: builtin/log.c:1710
+#: builtin/log.c:1711
#, c-format
msgid "invalid ident line: %s"
msgstr ""
-#: builtin/log.c:1725
+#: builtin/log.c:1726
msgid "-n and -k are mutually exclusive"
msgstr ""
-#: builtin/log.c:1727
+#: builtin/log.c:1728
msgid "--subject-prefix/--rfc and -k are mutually exclusive"
msgstr ""
-#: builtin/log.c:1735
+#: builtin/log.c:1736
msgid "--name-only does not make sense"
msgstr ""
-#: builtin/log.c:1737
+#: builtin/log.c:1738
msgid "--name-status does not make sense"
msgstr ""
-#: builtin/log.c:1739
+#: builtin/log.c:1740
msgid "--check does not make sense"
msgstr ""
-#: builtin/log.c:1771
+#: builtin/log.c:1773
msgid "standard output, or directory, which one?"
msgstr ""
-#: builtin/log.c:1860
+#: builtin/log.c:1877
msgid "--interdiff requires --cover-letter or single patch"
msgstr ""
-#: builtin/log.c:1864
+#: builtin/log.c:1881
msgid "Interdiff:"
msgstr ""
-#: builtin/log.c:1865
+#: builtin/log.c:1882
#, c-format
msgid "Interdiff against v%d:"
msgstr ""
-#: builtin/log.c:1871
+#: builtin/log.c:1888
msgid "--creation-factor requires --range-diff"
msgstr ""
-#: builtin/log.c:1875
+#: builtin/log.c:1892
msgid "--range-diff requires --cover-letter or single patch"
msgstr ""
-#: builtin/log.c:1883
+#: builtin/log.c:1900
msgid "Range-diff:"
msgstr ""
-#: builtin/log.c:1884
+#: builtin/log.c:1901
#, c-format
msgid "Range-diff against v%d:"
msgstr ""
-#: builtin/log.c:1895
+#: builtin/log.c:1912
#, c-format
msgid "unable to read signature file '%s'"
msgstr ""
-#: builtin/log.c:1931
+#: builtin/log.c:1948
msgid "Generating patches"
msgstr ""
-#: builtin/log.c:1975
+#: builtin/log.c:1992
msgid "failed to create output files"
msgstr ""
-#: builtin/log.c:2034
+#: builtin/log.c:2051
msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
msgstr ""
-#: builtin/log.c:2088
+#: builtin/log.c:2105
#, c-format
msgid ""
"Could not find a tracked remote branch, please specify <upstream> manually.\n"
@@ -13905,7 +13983,7 @@ msgstr ""
msgid "do not print remote URL"
msgstr ""
-#: builtin/ls-remote.c:60 builtin/ls-remote.c:62 builtin/rebase.c:1464
+#: builtin/ls-remote.c:60 builtin/ls-remote.c:62 builtin/rebase.c:1488
msgid "exec"
msgstr ""
@@ -14014,31 +14092,31 @@ msgstr ""
msgid "Available custom strategies are:"
msgstr ""
-#: builtin/merge.c:244 builtin/pull.c:151
+#: builtin/merge.c:244 builtin/pull.c:152
msgid "do not show a diffstat at the end of the merge"
msgstr ""
-#: builtin/merge.c:247 builtin/pull.c:154
+#: builtin/merge.c:247 builtin/pull.c:155
msgid "show a diffstat at the end of the merge"
msgstr ""
-#: builtin/merge.c:248 builtin/pull.c:157
+#: builtin/merge.c:248 builtin/pull.c:158
msgid "(synonym to --stat)"
msgstr ""
-#: builtin/merge.c:250 builtin/pull.c:160
+#: builtin/merge.c:250 builtin/pull.c:161
msgid "add (at most <n>) entries from shortlog to merge commit message"
msgstr ""
-#: builtin/merge.c:253 builtin/pull.c:166
+#: builtin/merge.c:253 builtin/pull.c:167
msgid "create a single commit instead of doing a merge"
msgstr ""
-#: builtin/merge.c:255 builtin/pull.c:169
+#: builtin/merge.c:255 builtin/pull.c:170
msgid "perform a commit if the merge succeeds (default)"
msgstr ""
-#: builtin/merge.c:257 builtin/pull.c:172
+#: builtin/merge.c:257 builtin/pull.c:173
msgid "edit message before committing"
msgstr ""
@@ -14046,28 +14124,28 @@ msgstr ""
msgid "allow fast-forward (default)"
msgstr ""
-#: builtin/merge.c:261 builtin/pull.c:179
+#: builtin/merge.c:261 builtin/pull.c:180
msgid "abort if fast-forward is not possible"
msgstr ""
-#: builtin/merge.c:265 builtin/pull.c:182
+#: builtin/merge.c:265 builtin/pull.c:183
msgid "verify that the named commit has a valid GPG signature"
msgstr ""
-#: builtin/merge.c:266 builtin/notes.c:787 builtin/pull.c:186
-#: builtin/rebase.c:492 builtin/rebase.c:1477 builtin/revert.c:114
+#: builtin/merge.c:266 builtin/notes.c:787 builtin/pull.c:187
+#: builtin/rebase.c:493 builtin/rebase.c:1501 builtin/revert.c:114
msgid "strategy"
msgstr ""
-#: builtin/merge.c:267 builtin/pull.c:187
+#: builtin/merge.c:267 builtin/pull.c:188
msgid "merge strategy to use"
msgstr ""
-#: builtin/merge.c:268 builtin/pull.c:190
+#: builtin/merge.c:268 builtin/pull.c:191
msgid "option=value"
msgstr ""
-#: builtin/merge.c:269 builtin/pull.c:191
+#: builtin/merge.c:269 builtin/pull.c:192
msgid "option for selected merge strategy"
msgstr ""
@@ -14087,12 +14165,12 @@ msgstr ""
msgid "continue the current in-progress merge"
msgstr ""
-#: builtin/merge.c:284 builtin/pull.c:198
+#: builtin/merge.c:284 builtin/pull.c:199
msgid "allow merging unrelated histories"
msgstr ""
#: builtin/merge.c:290
-msgid "verify commit-msg hook"
+msgid "bypass pre-merge-commit and commit-msg hooks"
msgstr ""
#: builtin/merge.c:307
@@ -14136,215 +14214,215 @@ msgstr ""
msgid "Bad branch.%s.mergeoptions string: %s"
msgstr ""
-#: builtin/merge.c:708
+#: builtin/merge.c:705
msgid "Not handling anything other than two heads merge."
msgstr ""
-#: builtin/merge.c:722
+#: builtin/merge.c:719
#, c-format
msgid "Unknown option for merge-recursive: -X%s"
msgstr ""
-#: builtin/merge.c:737
+#: builtin/merge.c:734
#, c-format
msgid "unable to write %s"
msgstr ""
-#: builtin/merge.c:789
+#: builtin/merge.c:786
#, c-format
msgid "Could not read from '%s'"
msgstr ""
-#: builtin/merge.c:798
+#: builtin/merge.c:795
#, c-format
msgid "Not committing merge; use 'git commit' to complete the merge.\n"
msgstr ""
-#: builtin/merge.c:804
+#: builtin/merge.c:801
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 ""
-#: builtin/merge.c:809
+#: builtin/merge.c:806
msgid "An empty message aborts the commit.\n"
msgstr ""
-#: builtin/merge.c:812
+#: builtin/merge.c:809
#, c-format
msgid ""
"Lines starting with '%c' will be ignored, and an empty message aborts\n"
"the commit.\n"
msgstr ""
-#: builtin/merge.c:853
+#: builtin/merge.c:862
msgid "Empty commit message."
msgstr ""
-#: builtin/merge.c:872
+#: builtin/merge.c:877
#, c-format
msgid "Wonderful.\n"
msgstr ""
-#: builtin/merge.c:933
+#: builtin/merge.c:938
#, c-format
msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
msgstr ""
-#: builtin/merge.c:972
+#: builtin/merge.c:977
msgid "No current branch."
msgstr ""
-#: builtin/merge.c:974
+#: builtin/merge.c:979
msgid "No remote for the current branch."
msgstr ""
-#: builtin/merge.c:976
+#: builtin/merge.c:981
msgid "No default upstream defined for the current branch."
msgstr ""
-#: builtin/merge.c:981
+#: builtin/merge.c:986
#, c-format
msgid "No remote-tracking branch for %s from %s"
msgstr ""
-#: builtin/merge.c:1038
+#: builtin/merge.c:1043
#, c-format
msgid "Bad value '%s' in environment '%s'"
msgstr ""
-#: builtin/merge.c:1141
+#: builtin/merge.c:1146
#, c-format
msgid "not something we can merge in %s: %s"
msgstr ""
-#: builtin/merge.c:1175
+#: builtin/merge.c:1180
msgid "not something we can merge"
msgstr ""
-#: builtin/merge.c:1278
+#: builtin/merge.c:1283
msgid "--abort expects no arguments"
msgstr ""
-#: builtin/merge.c:1282
+#: builtin/merge.c:1287
msgid "There is no merge to abort (MERGE_HEAD missing)."
msgstr ""
-#: builtin/merge.c:1291
+#: builtin/merge.c:1296
msgid "--quit expects no arguments"
msgstr ""
-#: builtin/merge.c:1304
+#: builtin/merge.c:1309
msgid "--continue expects no arguments"
msgstr ""
-#: builtin/merge.c:1308
+#: builtin/merge.c:1313
msgid "There is no merge in progress (MERGE_HEAD missing)."
msgstr ""
-#: builtin/merge.c:1324
+#: builtin/merge.c:1329
msgid ""
"You have not concluded your merge (MERGE_HEAD exists).\n"
"Please, commit your changes before you merge."
msgstr ""
-#: builtin/merge.c:1331
+#: builtin/merge.c:1336
msgid ""
"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
"Please, commit your changes before you merge."
msgstr ""
-#: builtin/merge.c:1334
+#: builtin/merge.c:1339
msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
msgstr ""
-#: builtin/merge.c:1348
+#: builtin/merge.c:1353
msgid "You cannot combine --squash with --no-ff."
msgstr ""
-#: builtin/merge.c:1350
+#: builtin/merge.c:1355
msgid "You cannot combine --squash with --commit."
msgstr ""
-#: builtin/merge.c:1366
+#: builtin/merge.c:1371
msgid "No commit specified and merge.defaultToUpstream not set."
msgstr ""
-#: builtin/merge.c:1383
+#: builtin/merge.c:1388
msgid "Squash commit into empty head not supported yet"
msgstr ""
-#: builtin/merge.c:1385
+#: builtin/merge.c:1390
msgid "Non-fast-forward commit does not make sense into an empty head"
msgstr ""
-#: builtin/merge.c:1390
+#: builtin/merge.c:1395
#, c-format
msgid "%s - not something we can merge"
msgstr ""
-#: builtin/merge.c:1392
+#: builtin/merge.c:1397
msgid "Can merge only exactly one commit into empty head"
msgstr ""
-#: builtin/merge.c:1471
+#: builtin/merge.c:1476
msgid "refusing to merge unrelated histories"
msgstr ""
-#: builtin/merge.c:1480
+#: builtin/merge.c:1485
msgid "Already up to date."
msgstr ""
-#: builtin/merge.c:1490
+#: builtin/merge.c:1495
#, c-format
msgid "Updating %s..%s\n"
msgstr ""
-#: builtin/merge.c:1532
+#: builtin/merge.c:1537
#, c-format
msgid "Trying really trivial in-index merge...\n"
msgstr ""
-#: builtin/merge.c:1539
+#: builtin/merge.c:1544
#, c-format
msgid "Nope.\n"
msgstr ""
-#: builtin/merge.c:1564
+#: builtin/merge.c:1569
msgid "Already up to date. Yeeah!"
msgstr ""
-#: builtin/merge.c:1570
+#: builtin/merge.c:1575
msgid "Not possible to fast-forward, aborting."
msgstr ""
-#: builtin/merge.c:1593 builtin/merge.c:1658
+#: builtin/merge.c:1598 builtin/merge.c:1663
#, c-format
msgid "Rewinding the tree to pristine...\n"
msgstr ""
-#: builtin/merge.c:1597
+#: builtin/merge.c:1602
#, c-format
msgid "Trying merge strategy %s...\n"
msgstr ""
-#: builtin/merge.c:1649
+#: builtin/merge.c:1654
#, c-format
msgid "No merge strategy handled the merge.\n"
msgstr ""
-#: builtin/merge.c:1651
+#: builtin/merge.c:1656
#, c-format
msgid "Merge with strategy %s failed.\n"
msgstr ""
-#: builtin/merge.c:1660
+#: builtin/merge.c:1665
#, c-format
msgid "Using the %s to prepare resolving by hand.\n"
msgstr ""
-#: builtin/merge.c:1672
+#: builtin/merge.c:1677
#, c-format
msgid "Automatic merge went well; stopped before committing as requested\n"
msgstr ""
@@ -14427,33 +14505,33 @@ msgstr ""
msgid "set labels for file1/orig-file/file2"
msgstr ""
-#: builtin/merge-recursive.c:46
+#: builtin/merge-recursive.c:47
#, c-format
msgid "unknown option %s"
msgstr ""
-#: builtin/merge-recursive.c:52
+#: builtin/merge-recursive.c:53
#, c-format
msgid "could not parse object '%s'"
msgstr ""
-#: builtin/merge-recursive.c:56
+#: builtin/merge-recursive.c:57
#, c-format
msgid "cannot handle more than %d base. Ignoring %s."
msgid_plural "cannot handle more than %d bases. Ignoring %s."
msgstr[0] ""
msgstr[1] ""
-#: builtin/merge-recursive.c:64
+#: builtin/merge-recursive.c:65
msgid "not handling anything other than two heads merge."
msgstr ""
-#: builtin/merge-recursive.c:70 builtin/merge-recursive.c:72
+#: builtin/merge-recursive.c:74 builtin/merge-recursive.c:76
#, c-format
msgid "could not resolve ref '%s'"
msgstr ""
-#: builtin/merge-recursive.c:78
+#: builtin/merge-recursive.c:82
#, c-format
msgid "Merging %s with %s\n"
msgstr ""
@@ -14590,52 +14668,52 @@ msgstr ""
msgid "Renaming %s to %s\n"
msgstr ""
-#: builtin/mv.c:277 builtin/remote.c:717 builtin/repack.c:510
+#: builtin/mv.c:277 builtin/remote.c:717 builtin/repack.c:511
#, c-format
msgid "renaming '%s' failed"
msgstr ""
-#: builtin/name-rev.c:352
+#: builtin/name-rev.c:356
msgid "git name-rev [<options>] <commit>..."
msgstr ""
-#: builtin/name-rev.c:353
+#: builtin/name-rev.c:357
msgid "git name-rev [<options>] --all"
msgstr ""
-#: builtin/name-rev.c:354
+#: builtin/name-rev.c:358
msgid "git name-rev [<options>] --stdin"
msgstr ""
-#: builtin/name-rev.c:411
+#: builtin/name-rev.c:415
msgid "print only names (no SHA-1)"
msgstr ""
-#: builtin/name-rev.c:412
+#: builtin/name-rev.c:416
msgid "only use tags to name the commits"
msgstr ""
-#: builtin/name-rev.c:414
+#: builtin/name-rev.c:418
msgid "only use refs matching <pattern>"
msgstr ""
-#: builtin/name-rev.c:416
+#: builtin/name-rev.c:420
msgid "ignore refs matching <pattern>"
msgstr ""
-#: builtin/name-rev.c:418
+#: builtin/name-rev.c:422
msgid "list all commits reachable from all refs"
msgstr ""
-#: builtin/name-rev.c:419
+#: builtin/name-rev.c:423
msgid "read from stdin"
msgstr ""
-#: builtin/name-rev.c:420
+#: builtin/name-rev.c:424
msgid "allow to print `undefined` names (default)"
msgstr ""
-#: builtin/name-rev.c:426
+#: builtin/name-rev.c:430
msgid "dereference tags in the input (internal use)"
msgstr ""
@@ -15014,7 +15092,7 @@ msgstr ""
msgid "read object names from the standard input"
msgstr ""
-#: builtin/notes.c:954 builtin/prune.c:130 builtin/worktree.c:165
+#: builtin/notes.c:954 builtin/prune.c:130 builtin/worktree.c:164
msgid "do not remove, show only"
msgstr ""
@@ -15030,7 +15108,7 @@ msgstr ""
msgid "use notes from <notes-ref>"
msgstr ""
-#: builtin/notes.c:1034 builtin/stash.c:1598
+#: builtin/notes.c:1034 builtin/stash.c:1607
#, c-format
msgid "unknown subcommand: %s"
msgstr ""
@@ -15101,317 +15179,317 @@ msgstr ""
msgid "wrote %<PRIu32> objects while expecting %<PRIu32>"
msgstr ""
-#: builtin/pack-objects.c:1166
+#: builtin/pack-objects.c:1164
msgid "disabling bitmap writing, as some objects are not being packed"
msgstr ""
-#: builtin/pack-objects.c:1597
+#: builtin/pack-objects.c:1592
#, c-format
msgid "delta base offset overflow in pack for %s"
msgstr ""
-#: builtin/pack-objects.c:1606
+#: builtin/pack-objects.c:1601
#, c-format
msgid "delta base offset out of bound for %s"
msgstr ""
-#: builtin/pack-objects.c:1875
+#: builtin/pack-objects.c:1870
msgid "Counting objects"
msgstr ""
-#: builtin/pack-objects.c:2005
+#: builtin/pack-objects.c:2000
#, c-format
msgid "unable to get size of %s"
msgstr ""
-#: builtin/pack-objects.c:2020
+#: builtin/pack-objects.c:2015
#, c-format
msgid "unable to parse object header of %s"
msgstr ""
-#: builtin/pack-objects.c:2090 builtin/pack-objects.c:2106
-#: builtin/pack-objects.c:2116
+#: builtin/pack-objects.c:2085 builtin/pack-objects.c:2101
+#: builtin/pack-objects.c:2111
#, c-format
msgid "object %s cannot be read"
msgstr ""
-#: builtin/pack-objects.c:2093 builtin/pack-objects.c:2120
+#: builtin/pack-objects.c:2088 builtin/pack-objects.c:2115
#, c-format
msgid "object %s inconsistent object length (%<PRIuMAX> vs %<PRIuMAX>)"
msgstr ""
-#: builtin/pack-objects.c:2130
+#: builtin/pack-objects.c:2125
msgid "suboptimal pack - out of memory"
msgstr ""
-#: builtin/pack-objects.c:2456
+#: builtin/pack-objects.c:2440
#, c-format
msgid "Delta compression using up to %d threads"
msgstr ""
-#: builtin/pack-objects.c:2588
+#: builtin/pack-objects.c:2572
#, c-format
msgid "unable to pack objects reachable from tag %s"
msgstr ""
-#: builtin/pack-objects.c:2675
+#: builtin/pack-objects.c:2659
msgid "Compressing objects"
msgstr ""
-#: builtin/pack-objects.c:2681
+#: builtin/pack-objects.c:2665
msgid "inconsistency with delta count"
msgstr ""
-#: builtin/pack-objects.c:2762
+#: builtin/pack-objects.c:2742
#, c-format
msgid ""
"expected edge object ID, got garbage:\n"
" %s"
msgstr ""
-#: builtin/pack-objects.c:2768
+#: builtin/pack-objects.c:2748
#, c-format
msgid ""
"expected object ID, got garbage:\n"
" %s"
msgstr ""
-#: builtin/pack-objects.c:2866
+#: builtin/pack-objects.c:2846
msgid "invalid value for --missing"
msgstr ""
-#: builtin/pack-objects.c:2925 builtin/pack-objects.c:3033
+#: builtin/pack-objects.c:2905 builtin/pack-objects.c:3013
msgid "cannot open pack index"
msgstr ""
-#: builtin/pack-objects.c:2956
+#: builtin/pack-objects.c:2936
#, c-format
msgid "loose object at %s could not be examined"
msgstr ""
-#: builtin/pack-objects.c:3041
+#: builtin/pack-objects.c:3021
msgid "unable to force loose object"
msgstr ""
-#: builtin/pack-objects.c:3133
+#: builtin/pack-objects.c:3113
#, c-format
msgid "not a rev '%s'"
msgstr ""
-#: builtin/pack-objects.c:3136
+#: builtin/pack-objects.c:3116
#, c-format
msgid "bad revision '%s'"
msgstr ""
-#: builtin/pack-objects.c:3161
+#: builtin/pack-objects.c:3141
msgid "unable to add recent objects"
msgstr ""
-#: builtin/pack-objects.c:3214
+#: builtin/pack-objects.c:3194
#, c-format
msgid "unsupported index version %s"
msgstr ""
-#: builtin/pack-objects.c:3218
+#: builtin/pack-objects.c:3198
#, c-format
msgid "bad index version '%s'"
msgstr ""
-#: builtin/pack-objects.c:3248
+#: builtin/pack-objects.c:3228
msgid "do not show progress meter"
msgstr ""
-#: builtin/pack-objects.c:3250
+#: builtin/pack-objects.c:3230
msgid "show progress meter"
msgstr ""
-#: builtin/pack-objects.c:3252
+#: builtin/pack-objects.c:3232
msgid "show progress meter during object writing phase"
msgstr ""
-#: builtin/pack-objects.c:3255
+#: builtin/pack-objects.c:3235
msgid "similar to --all-progress when progress meter is shown"
msgstr ""
-#: builtin/pack-objects.c:3256
+#: builtin/pack-objects.c:3236
msgid "<version>[,<offset>]"
msgstr ""
-#: builtin/pack-objects.c:3257
+#: builtin/pack-objects.c:3237
msgid "write the pack index file in the specified idx format version"
msgstr ""
-#: builtin/pack-objects.c:3260
+#: builtin/pack-objects.c:3240
msgid "maximum size of each output pack file"
msgstr ""
-#: builtin/pack-objects.c:3262
+#: builtin/pack-objects.c:3242
msgid "ignore borrowed objects from alternate object store"
msgstr ""
-#: builtin/pack-objects.c:3264
+#: builtin/pack-objects.c:3244
msgid "ignore packed objects"
msgstr ""
-#: builtin/pack-objects.c:3266
+#: builtin/pack-objects.c:3246
msgid "limit pack window by objects"
msgstr ""
-#: builtin/pack-objects.c:3268
+#: builtin/pack-objects.c:3248
msgid "limit pack window by memory in addition to object limit"
msgstr ""
-#: builtin/pack-objects.c:3270
+#: builtin/pack-objects.c:3250
msgid "maximum length of delta chain allowed in the resulting pack"
msgstr ""
-#: builtin/pack-objects.c:3272
+#: builtin/pack-objects.c:3252
msgid "reuse existing deltas"
msgstr ""
-#: builtin/pack-objects.c:3274
+#: builtin/pack-objects.c:3254
msgid "reuse existing objects"
msgstr ""
-#: builtin/pack-objects.c:3276
+#: builtin/pack-objects.c:3256
msgid "use OFS_DELTA objects"
msgstr ""
-#: builtin/pack-objects.c:3278
+#: builtin/pack-objects.c:3258
msgid "use threads when searching for best delta matches"
msgstr ""
-#: builtin/pack-objects.c:3280
+#: builtin/pack-objects.c:3260
msgid "do not create an empty pack output"
msgstr ""
-#: builtin/pack-objects.c:3282
+#: builtin/pack-objects.c:3262
msgid "read revision arguments from standard input"
msgstr ""
-#: builtin/pack-objects.c:3284
+#: builtin/pack-objects.c:3264
msgid "limit the objects to those that are not yet packed"
msgstr ""
-#: builtin/pack-objects.c:3287
+#: builtin/pack-objects.c:3267
msgid "include objects reachable from any reference"
msgstr ""
-#: builtin/pack-objects.c:3290
+#: builtin/pack-objects.c:3270
msgid "include objects referred by reflog entries"
msgstr ""
-#: builtin/pack-objects.c:3293
+#: builtin/pack-objects.c:3273
msgid "include objects referred to by the index"
msgstr ""
-#: builtin/pack-objects.c:3296
+#: builtin/pack-objects.c:3276
msgid "output pack to stdout"
msgstr ""
-#: builtin/pack-objects.c:3298
+#: builtin/pack-objects.c:3278
msgid "include tag objects that refer to objects to be packed"
msgstr ""
-#: builtin/pack-objects.c:3300
+#: builtin/pack-objects.c:3280
msgid "keep unreachable objects"
msgstr ""
-#: builtin/pack-objects.c:3302
+#: builtin/pack-objects.c:3282
msgid "pack loose unreachable objects"
msgstr ""
-#: builtin/pack-objects.c:3304
+#: builtin/pack-objects.c:3284
msgid "unpack unreachable objects newer than <time>"
msgstr ""
-#: builtin/pack-objects.c:3307
+#: builtin/pack-objects.c:3287
msgid "use the sparse reachability algorithm"
msgstr ""
-#: builtin/pack-objects.c:3309
+#: builtin/pack-objects.c:3289
msgid "create thin packs"
msgstr ""
-#: builtin/pack-objects.c:3311
+#: builtin/pack-objects.c:3291
msgid "create packs suitable for shallow fetches"
msgstr ""
-#: builtin/pack-objects.c:3313
+#: builtin/pack-objects.c:3293
msgid "ignore packs that have companion .keep file"
msgstr ""
-#: builtin/pack-objects.c:3315
+#: builtin/pack-objects.c:3295
msgid "ignore this pack"
msgstr ""
-#: builtin/pack-objects.c:3317
+#: builtin/pack-objects.c:3297
msgid "pack compression level"
msgstr ""
-#: builtin/pack-objects.c:3319
+#: builtin/pack-objects.c:3299
msgid "do not hide commits by grafts"
msgstr ""
-#: builtin/pack-objects.c:3321
+#: builtin/pack-objects.c:3301
msgid "use a bitmap index if available to speed up counting objects"
msgstr ""
-#: builtin/pack-objects.c:3323
+#: builtin/pack-objects.c:3303
msgid "write a bitmap index together with the pack index"
msgstr ""
-#: builtin/pack-objects.c:3327
+#: builtin/pack-objects.c:3307
msgid "write a bitmap index if possible"
msgstr ""
-#: builtin/pack-objects.c:3331
+#: builtin/pack-objects.c:3311
msgid "handling for missing objects"
msgstr ""
-#: builtin/pack-objects.c:3334
+#: builtin/pack-objects.c:3314
msgid "do not pack objects in promisor packfiles"
msgstr ""
-#: builtin/pack-objects.c:3336
+#: builtin/pack-objects.c:3316
msgid "respect islands during delta compression"
msgstr ""
-#: builtin/pack-objects.c:3361
+#: builtin/pack-objects.c:3345
#, c-format
msgid "delta chain depth %d is too deep, forcing %d"
msgstr ""
-#: builtin/pack-objects.c:3366
+#: builtin/pack-objects.c:3350
#, c-format
msgid "pack.deltaCacheLimit is too high, forcing %d"
msgstr ""
-#: builtin/pack-objects.c:3420
+#: builtin/pack-objects.c:3404
msgid "--max-pack-size cannot be used to build a pack for transfer"
msgstr ""
-#: builtin/pack-objects.c:3422
+#: builtin/pack-objects.c:3406
msgid "minimum pack size limit is 1 MiB"
msgstr ""
-#: builtin/pack-objects.c:3427
+#: builtin/pack-objects.c:3411
msgid "--thin cannot be used to build an indexable pack"
msgstr ""
-#: builtin/pack-objects.c:3430
+#: builtin/pack-objects.c:3414
msgid "--keep-unreachable and --unpack-unreachable are incompatible"
msgstr ""
-#: builtin/pack-objects.c:3436
+#: builtin/pack-objects.c:3420
msgid "cannot use --filter without --stdout"
msgstr ""
-#: builtin/pack-objects.c:3497
+#: builtin/pack-objects.c:3481
msgid "Enumerating objects"
msgstr ""
-#: builtin/pack-objects.c:3527
+#: builtin/pack-objects.c:3511
#, c-format
msgid "Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>)"
msgstr ""
@@ -15465,61 +15543,61 @@ msgstr ""
msgid "git pull [<options>] [<repository> [<refspec>...]]"
msgstr ""
-#: builtin/pull.c:141
+#: builtin/pull.c:142
msgid "control for recursive fetching of submodules"
msgstr ""
-#: builtin/pull.c:145
+#: builtin/pull.c:146
msgid "Options related to merging"
msgstr ""
-#: builtin/pull.c:148
+#: builtin/pull.c:149
msgid "incorporate changes by rebasing rather than merging"
msgstr ""
-#: builtin/pull.c:176 builtin/rebase.c:447 builtin/revert.c:126
+#: builtin/pull.c:177 builtin/rebase.c:448 builtin/revert.c:126
msgid "allow fast-forward"
msgstr ""
-#: builtin/pull.c:185
+#: builtin/pull.c:186
msgid "automatically stash/stash pop before and after rebase"
msgstr ""
-#: builtin/pull.c:201
+#: builtin/pull.c:202
msgid "Options related to fetching"
msgstr ""
-#: builtin/pull.c:211
+#: builtin/pull.c:212
msgid "force overwrite of local branch"
msgstr ""
-#: builtin/pull.c:219
+#: builtin/pull.c:220
msgid "number of submodules pulled in parallel"
msgstr ""
-#: builtin/pull.c:316
+#: builtin/pull.c:320
#, c-format
msgid "Invalid value for pull.ff: %s"
msgstr ""
-#: builtin/pull.c:433
+#: builtin/pull.c:437
msgid ""
"There is no candidate for rebasing against among the refs that you just "
"fetched."
msgstr ""
-#: builtin/pull.c:435
+#: builtin/pull.c:439
msgid ""
"There are no candidates for merging among the refs that you just fetched."
msgstr ""
-#: builtin/pull.c:436
+#: builtin/pull.c:440
msgid ""
"Generally this means that you provided a wildcard refspec which had no\n"
"matches on the remote end."
msgstr ""
-#: builtin/pull.c:439
+#: builtin/pull.c:443
#, c-format
msgid ""
"You asked to pull from the remote '%s', but did not specify\n"
@@ -15527,74 +15605,74 @@ msgid ""
"for your current branch, you must specify a branch on the command line."
msgstr ""
-#: builtin/pull.c:444 builtin/rebase.c:1326 git-parse-remote.sh:73
+#: builtin/pull.c:448 builtin/rebase.c:1347 git-parse-remote.sh:73
msgid "You are not currently on a branch."
msgstr ""
-#: builtin/pull.c:446 builtin/pull.c:461 git-parse-remote.sh:79
+#: builtin/pull.c:450 builtin/pull.c:465 git-parse-remote.sh:79
msgid "Please specify which branch you want to rebase against."
msgstr ""
-#: builtin/pull.c:448 builtin/pull.c:463 git-parse-remote.sh:82
+#: builtin/pull.c:452 builtin/pull.c:467 git-parse-remote.sh:82
msgid "Please specify which branch you want to merge with."
msgstr ""
-#: builtin/pull.c:449 builtin/pull.c:464
+#: builtin/pull.c:453 builtin/pull.c:468
msgid "See git-pull(1) for details."
msgstr ""
-#: builtin/pull.c:451 builtin/pull.c:457 builtin/pull.c:466
-#: builtin/rebase.c:1332 git-parse-remote.sh:64
+#: builtin/pull.c:455 builtin/pull.c:461 builtin/pull.c:470
+#: builtin/rebase.c:1353 git-parse-remote.sh:64
msgid "<remote>"
msgstr ""
-#: builtin/pull.c:451 builtin/pull.c:466 builtin/pull.c:471
+#: builtin/pull.c:455 builtin/pull.c:470 builtin/pull.c:475
#: git-parse-remote.sh:65
msgid "<branch>"
msgstr ""
-#: builtin/pull.c:459 builtin/rebase.c:1324 git-parse-remote.sh:75
+#: builtin/pull.c:463 builtin/rebase.c:1345 git-parse-remote.sh:75
msgid "There is no tracking information for the current branch."
msgstr ""
-#: builtin/pull.c:468 git-parse-remote.sh:95
+#: builtin/pull.c:472 git-parse-remote.sh:95
msgid ""
"If you wish to set tracking information for this branch you can do so with:"
msgstr ""
-#: builtin/pull.c:473
+#: builtin/pull.c:477
#, c-format
msgid ""
"Your configuration specifies to merge with the ref '%s'\n"
"from the remote, but no such ref was fetched."
msgstr ""
-#: builtin/pull.c:581
+#: builtin/pull.c:587
#, c-format
msgid "unable to access commit %s"
msgstr ""
-#: builtin/pull.c:861
+#: builtin/pull.c:867
msgid "ignoring --verify-signatures for rebase"
msgstr ""
-#: builtin/pull.c:916
+#: builtin/pull.c:922
msgid "--[no-]autostash option is only valid with --rebase."
msgstr ""
-#: builtin/pull.c:924
+#: builtin/pull.c:930
msgid "Updating an unborn branch with changes added to the index."
msgstr ""
-#: builtin/pull.c:928
+#: builtin/pull.c:934
msgid "pull with rebase"
msgstr ""
-#: builtin/pull.c:929
+#: builtin/pull.c:935
msgid "please commit or stash them."
msgstr ""
-#: builtin/pull.c:954
+#: builtin/pull.c:960
#, c-format
msgid ""
"fetch updated the current branch head.\n"
@@ -15602,7 +15680,7 @@ msgid ""
"commit %s."
msgstr ""
-#: builtin/pull.c:960
+#: builtin/pull.c:966
#, c-format
msgid ""
"Cannot fast-forward your working tree.\n"
@@ -15613,15 +15691,15 @@ msgid ""
"to recover."
msgstr ""
-#: builtin/pull.c:975
+#: builtin/pull.c:981
msgid "Cannot merge multiple branches into empty head."
msgstr ""
-#: builtin/pull.c:979
+#: builtin/pull.c:985
msgid "Cannot rebase onto multiple branches."
msgstr ""
-#: builtin/pull.c:986
+#: builtin/pull.c:992
msgid "cannot rebase with locally recorded submodule modifications"
msgstr ""
@@ -15736,127 +15814,127 @@ msgstr ""
msgid "Pushing to %s\n"
msgstr ""
-#: builtin/push.c:364
+#: builtin/push.c:366
#, c-format
msgid "failed to push some refs to '%s'"
msgstr ""
-#: builtin/push.c:398
-#, c-format
-msgid "bad repository '%s'"
-msgstr ""
-
-#: builtin/push.c:399
-msgid ""
-"No configured push destination.\n"
-"Either specify the URL from the command-line or configure a remote "
-"repository using\n"
-"\n"
-" git remote add <name> <url>\n"
-"\n"
-"and then push using the remote name\n"
-"\n"
-" git push <name>\n"
-msgstr ""
-
-#: builtin/push.c:554
+#: builtin/push.c:541
msgid "repository"
msgstr ""
-#: builtin/push.c:555 builtin/send-pack.c:164
+#: builtin/push.c:542 builtin/send-pack.c:164
msgid "push all refs"
msgstr ""
-#: builtin/push.c:556 builtin/send-pack.c:166
+#: builtin/push.c:543 builtin/send-pack.c:166
msgid "mirror all refs"
msgstr ""
-#: builtin/push.c:558
+#: builtin/push.c:545
msgid "delete refs"
msgstr ""
-#: builtin/push.c:559
+#: builtin/push.c:546
msgid "push tags (can't be used with --all or --mirror)"
msgstr ""
-#: builtin/push.c:562 builtin/send-pack.c:167
+#: builtin/push.c:549 builtin/send-pack.c:167
msgid "force updates"
msgstr ""
-#: builtin/push.c:564 builtin/send-pack.c:181
+#: builtin/push.c:551 builtin/send-pack.c:181
msgid "<refname>:<expect>"
msgstr ""
-#: builtin/push.c:565 builtin/send-pack.c:182
+#: builtin/push.c:552 builtin/send-pack.c:182
msgid "require old value of ref to be at this value"
msgstr ""
-#: builtin/push.c:568
+#: builtin/push.c:555
msgid "control recursive pushing of submodules"
msgstr ""
-#: builtin/push.c:570 builtin/send-pack.c:175
+#: builtin/push.c:557 builtin/send-pack.c:175
msgid "use thin pack"
msgstr ""
-#: builtin/push.c:571 builtin/push.c:572 builtin/send-pack.c:161
+#: builtin/push.c:558 builtin/push.c:559 builtin/send-pack.c:161
#: builtin/send-pack.c:162
msgid "receive pack program"
msgstr ""
-#: builtin/push.c:573
+#: builtin/push.c:560
msgid "set upstream for git pull/status"
msgstr ""
-#: builtin/push.c:576
+#: builtin/push.c:563
msgid "prune locally removed refs"
msgstr ""
-#: builtin/push.c:578
+#: builtin/push.c:565
msgid "bypass pre-push hook"
msgstr ""
-#: builtin/push.c:579
+#: builtin/push.c:566
msgid "push missing but relevant tags"
msgstr ""
-#: builtin/push.c:582 builtin/send-pack.c:169
+#: builtin/push.c:569 builtin/send-pack.c:169
msgid "GPG sign the push"
msgstr ""
-#: builtin/push.c:584 builtin/send-pack.c:176
+#: builtin/push.c:571 builtin/send-pack.c:176
msgid "request atomic transaction on remote side"
msgstr ""
-#: builtin/push.c:602
+#: builtin/push.c:589
msgid "--delete is incompatible with --all, --mirror and --tags"
msgstr ""
-#: builtin/push.c:604
+#: builtin/push.c:591
msgid "--delete doesn't make sense without any refs"
msgstr ""
-#: builtin/push.c:607
+#: builtin/push.c:611
+#, c-format
+msgid "bad repository '%s'"
+msgstr ""
+
+#: builtin/push.c:612
+msgid ""
+"No configured push destination.\n"
+"Either specify the URL from the command-line or configure a remote "
+"repository using\n"
+"\n"
+" git remote add <name> <url>\n"
+"\n"
+"and then push using the remote name\n"
+"\n"
+" git push <name>\n"
+msgstr ""
+
+#: builtin/push.c:627
msgid "--all and --tags are incompatible"
msgstr ""
-#: builtin/push.c:609
+#: builtin/push.c:629
msgid "--all can't be combined with refspecs"
msgstr ""
-#: builtin/push.c:613
+#: builtin/push.c:633
msgid "--mirror and --tags are incompatible"
msgstr ""
-#: builtin/push.c:615
+#: builtin/push.c:635
msgid "--mirror can't be combined with refspecs"
msgstr ""
-#: builtin/push.c:618
+#: builtin/push.c:638
msgid "--all and --mirror are incompatible"
msgstr ""
-#: builtin/push.c:637
+#: builtin/push.c:642
msgid "push options must not have new line characters"
msgstr ""
@@ -15970,8 +16048,8 @@ msgstr ""
#: builtin/rebase.c:32
msgid ""
-"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] [<upstream>] "
-"[<branch>]"
+"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase> | --keep-base] "
+"[<upstream> [<branch>]]"
msgstr ""
#: builtin/rebase.c:34
@@ -16010,189 +16088,189 @@ msgstr ""
msgid "could not generate todo list"
msgstr ""
-#: builtin/rebase.c:382
+#: builtin/rebase.c:383
msgid "a base commit must be provided with --upstream or --onto"
msgstr ""
-#: builtin/rebase.c:437
+#: builtin/rebase.c:438
msgid "git rebase--interactive [<options>]"
msgstr ""
-#: builtin/rebase.c:449
+#: builtin/rebase.c:450
msgid "keep empty commits"
msgstr ""
-#: builtin/rebase.c:451 builtin/revert.c:128
+#: builtin/rebase.c:452 builtin/revert.c:128
msgid "allow commits with empty messages"
msgstr ""
-#: builtin/rebase.c:452
+#: builtin/rebase.c:453
msgid "rebase merge commits"
msgstr ""
-#: builtin/rebase.c:454
+#: builtin/rebase.c:455
msgid "keep original branch points of cousins"
msgstr ""
-#: builtin/rebase.c:456
+#: builtin/rebase.c:457
msgid "move commits that begin with squash!/fixup!"
msgstr ""
-#: builtin/rebase.c:457
+#: builtin/rebase.c:458
msgid "sign commits"
msgstr ""
-#: builtin/rebase.c:459 builtin/rebase.c:1403
+#: builtin/rebase.c:460 builtin/rebase.c:1427
msgid "display a diffstat of what changed upstream"
msgstr ""
-#: builtin/rebase.c:461
+#: builtin/rebase.c:462
msgid "continue rebase"
msgstr ""
-#: builtin/rebase.c:463
+#: builtin/rebase.c:464
msgid "skip commit"
msgstr ""
-#: builtin/rebase.c:464
+#: builtin/rebase.c:465
msgid "edit the todo list"
msgstr ""
-#: builtin/rebase.c:466
+#: builtin/rebase.c:467
msgid "show the current patch"
msgstr ""
-#: builtin/rebase.c:469
+#: builtin/rebase.c:470
msgid "shorten commit ids in the todo list"
msgstr ""
-#: builtin/rebase.c:471
+#: builtin/rebase.c:472
msgid "expand commit ids in the todo list"
msgstr ""
-#: builtin/rebase.c:473
+#: builtin/rebase.c:474
msgid "check the todo list"
msgstr ""
-#: builtin/rebase.c:475
+#: builtin/rebase.c:476
msgid "rearrange fixup/squash lines"
msgstr ""
-#: builtin/rebase.c:477
+#: builtin/rebase.c:478
msgid "insert exec commands in todo list"
msgstr ""
-#: builtin/rebase.c:478
+#: builtin/rebase.c:479
msgid "onto"
msgstr ""
-#: builtin/rebase.c:481
+#: builtin/rebase.c:482
msgid "restrict-revision"
msgstr ""
-#: builtin/rebase.c:481
+#: builtin/rebase.c:482
msgid "restrict revision"
msgstr ""
-#: builtin/rebase.c:483
+#: builtin/rebase.c:484
msgid "squash-onto"
msgstr ""
-#: builtin/rebase.c:484
+#: builtin/rebase.c:485
msgid "squash onto"
msgstr ""
-#: builtin/rebase.c:486
+#: builtin/rebase.c:487
msgid "the upstream commit"
msgstr ""
-#: builtin/rebase.c:488
+#: builtin/rebase.c:489
msgid "head-name"
msgstr ""
-#: builtin/rebase.c:488
+#: builtin/rebase.c:489
msgid "head name"
msgstr ""
-#: builtin/rebase.c:493
+#: builtin/rebase.c:494
msgid "rebase strategy"
msgstr ""
-#: builtin/rebase.c:494
+#: builtin/rebase.c:495
msgid "strategy-opts"
msgstr ""
-#: builtin/rebase.c:495
+#: builtin/rebase.c:496
msgid "strategy options"
msgstr ""
-#: builtin/rebase.c:496
+#: builtin/rebase.c:497
msgid "switch-to"
msgstr ""
-#: builtin/rebase.c:497
+#: builtin/rebase.c:498
msgid "the branch or commit to checkout"
msgstr ""
-#: builtin/rebase.c:498
+#: builtin/rebase.c:499
msgid "onto-name"
msgstr ""
-#: builtin/rebase.c:498
+#: builtin/rebase.c:499
msgid "onto name"
msgstr ""
-#: builtin/rebase.c:499
+#: builtin/rebase.c:500
msgid "cmd"
msgstr ""
-#: builtin/rebase.c:499
+#: builtin/rebase.c:500
msgid "the command to run"
msgstr ""
-#: builtin/rebase.c:502 builtin/rebase.c:1486
+#: builtin/rebase.c:503 builtin/rebase.c:1510
msgid "automatically re-schedule any `exec` that fails"
msgstr ""
-#: builtin/rebase.c:518
+#: builtin/rebase.c:519
msgid "--[no-]rebase-cousins has no effect without --rebase-merges"
msgstr ""
-#: builtin/rebase.c:534
+#: builtin/rebase.c:535
#, c-format
msgid "%s requires an interactive rebase"
msgstr ""
-#: builtin/rebase.c:586
+#: builtin/rebase.c:587
#, c-format
msgid "could not get 'onto': '%s'"
msgstr ""
-#: builtin/rebase.c:601
+#: builtin/rebase.c:602
#, c-format
msgid "invalid orig-head: '%s'"
msgstr ""
-#: builtin/rebase.c:626
+#: builtin/rebase.c:627
#, c-format
msgid "ignoring invalid allow_rerere_autoupdate: '%s'"
msgstr ""
-#: builtin/rebase.c:702
+#: builtin/rebase.c:703
#, c-format
msgid "Could not read '%s'"
msgstr ""
-#: builtin/rebase.c:720
+#: builtin/rebase.c:721
#, c-format
msgid "Cannot store %s"
msgstr ""
-#: builtin/rebase.c:827
+#: builtin/rebase.c:828
msgid "could not determine HEAD revision"
msgstr ""
-#: builtin/rebase.c:950 git-rebase--preserve-merges.sh:81
+#: builtin/rebase.c:951 git-rebase--preserve-merges.sh:81
msgid ""
"Resolve all conflicts manually, mark them as resolved with\n"
"\"git add/rm <conflicted_files>\", then run \"git rebase --continue\".\n"
@@ -16201,7 +16279,7 @@ msgid ""
"abort\"."
msgstr ""
-#: builtin/rebase.c:1031
+#: builtin/rebase.c:1032
#, c-format
msgid ""
"\n"
@@ -16213,7 +16291,7 @@ msgid ""
"As a result, git cannot rebase them."
msgstr ""
-#: builtin/rebase.c:1318
+#: builtin/rebase.c:1339
#, c-format
msgid ""
"%s\n"
@@ -16224,7 +16302,7 @@ msgid ""
"\n"
msgstr ""
-#: builtin/rebase.c:1334
+#: builtin/rebase.c:1355
#, c-format
msgid ""
"If you wish to set tracking information for this branch you can do so with:\n"
@@ -16233,169 +16311,181 @@ msgid ""
"\n"
msgstr ""
-#: builtin/rebase.c:1364
+#: builtin/rebase.c:1385
msgid "exec commands cannot contain newlines"
msgstr ""
-#: builtin/rebase.c:1368
+#: builtin/rebase.c:1389
msgid "empty exec command"
msgstr ""
-#: builtin/rebase.c:1396
+#: builtin/rebase.c:1418
msgid "rebase onto given branch instead of upstream"
msgstr ""
-#: builtin/rebase.c:1398
+#: builtin/rebase.c:1420
+msgid "use the merge-base of upstream and branch as the current base"
+msgstr ""
+
+#: builtin/rebase.c:1422
msgid "allow pre-rebase hook to run"
msgstr ""
-#: builtin/rebase.c:1400
+#: builtin/rebase.c:1424
msgid "be quiet. implies --no-stat"
msgstr ""
-#: builtin/rebase.c:1406
+#: builtin/rebase.c:1430
msgid "do not show diffstat of what changed upstream"
msgstr ""
-#: builtin/rebase.c:1409
+#: builtin/rebase.c:1433
msgid "add a Signed-off-by: line to each commit"
msgstr ""
-#: builtin/rebase.c:1411 builtin/rebase.c:1415 builtin/rebase.c:1417
+#: builtin/rebase.c:1435 builtin/rebase.c:1439 builtin/rebase.c:1441
msgid "passed to 'git am'"
msgstr ""
-#: builtin/rebase.c:1419 builtin/rebase.c:1421
+#: builtin/rebase.c:1443 builtin/rebase.c:1445
msgid "passed to 'git apply'"
msgstr ""
-#: builtin/rebase.c:1423 builtin/rebase.c:1426
+#: builtin/rebase.c:1447 builtin/rebase.c:1450
msgid "cherry-pick all commits, even if unchanged"
msgstr ""
-#: builtin/rebase.c:1428
+#: builtin/rebase.c:1452
msgid "continue"
msgstr ""
-#: builtin/rebase.c:1431
+#: builtin/rebase.c:1455
msgid "skip current patch and continue"
msgstr ""
-#: builtin/rebase.c:1433
+#: builtin/rebase.c:1457
msgid "abort and check out the original branch"
msgstr ""
-#: builtin/rebase.c:1436
+#: builtin/rebase.c:1460
msgid "abort but keep HEAD where it is"
msgstr ""
-#: builtin/rebase.c:1437
+#: builtin/rebase.c:1461
msgid "edit the todo list during an interactive rebase"
msgstr ""
-#: builtin/rebase.c:1440
+#: builtin/rebase.c:1464
msgid "show the patch file being applied or merged"
msgstr ""
-#: builtin/rebase.c:1443
+#: builtin/rebase.c:1467
msgid "use merging strategies to rebase"
msgstr ""
-#: builtin/rebase.c:1447
+#: builtin/rebase.c:1471
msgid "let the user edit the list of commits to rebase"
msgstr ""
-#: builtin/rebase.c:1451
+#: builtin/rebase.c:1475
msgid "(DEPRECATED) try to recreate merges instead of ignoring them"
msgstr ""
-#: builtin/rebase.c:1455
+#: builtin/rebase.c:1479
msgid "preserve empty commits during rebase"
msgstr ""
-#: builtin/rebase.c:1457
+#: builtin/rebase.c:1481
msgid "move commits that begin with squash!/fixup! under -i"
msgstr ""
-#: builtin/rebase.c:1463
+#: builtin/rebase.c:1487
msgid "automatically stash/stash pop before and after"
msgstr ""
-#: builtin/rebase.c:1465
+#: builtin/rebase.c:1489
msgid "add exec lines after each commit of the editable list"
msgstr ""
-#: builtin/rebase.c:1469
+#: builtin/rebase.c:1493
msgid "allow rebasing commits with empty messages"
msgstr ""
-#: builtin/rebase.c:1472
+#: builtin/rebase.c:1496
msgid "try to rebase merges instead of skipping them"
msgstr ""
-#: builtin/rebase.c:1475
+#: builtin/rebase.c:1499
msgid "use 'merge-base --fork-point' to refine upstream"
msgstr ""
-#: builtin/rebase.c:1477
+#: builtin/rebase.c:1501
msgid "use the given merge strategy"
msgstr ""
-#: builtin/rebase.c:1479 builtin/revert.c:115
+#: builtin/rebase.c:1503 builtin/revert.c:115
msgid "option"
msgstr ""
-#: builtin/rebase.c:1480
+#: builtin/rebase.c:1504
msgid "pass the argument through to the merge strategy"
msgstr ""
-#: builtin/rebase.c:1483
+#: builtin/rebase.c:1507
msgid "rebase all reachable commits up to the root(s)"
msgstr ""
-#: builtin/rebase.c:1500
+#: builtin/rebase.c:1524
msgid ""
"the rebase.useBuiltin support has been removed!\n"
"See its entry in 'git help config' for details."
msgstr ""
-#: builtin/rebase.c:1506
+#: builtin/rebase.c:1530
msgid "It looks like 'git am' is in progress. Cannot rebase."
msgstr ""
-#: builtin/rebase.c:1547
+#: builtin/rebase.c:1571
msgid ""
"git rebase --preserve-merges is deprecated. Use --rebase-merges instead."
msgstr ""
-#: builtin/rebase.c:1551
+#: builtin/rebase.c:1576
+msgid "cannot combine '--keep-base' with '--onto'"
+msgstr ""
+
+#: builtin/rebase.c:1578
+msgid "cannot combine '--keep-base' with '--root'"
+msgstr ""
+
+#: builtin/rebase.c:1582
msgid "No rebase in progress?"
msgstr ""
-#: builtin/rebase.c:1555
+#: builtin/rebase.c:1586
msgid "The --edit-todo action can only be used during interactive rebase."
msgstr ""
-#: builtin/rebase.c:1578
+#: builtin/rebase.c:1609
msgid "Cannot read HEAD"
msgstr ""
-#: builtin/rebase.c:1590
+#: builtin/rebase.c:1621
msgid ""
"You must edit all merge conflicts and then\n"
"mark them as resolved using git add"
msgstr ""
-#: builtin/rebase.c:1609
+#: builtin/rebase.c:1640
msgid "could not discard worktree changes"
msgstr ""
-#: builtin/rebase.c:1628
+#: builtin/rebase.c:1659
#, c-format
msgid "could not move back to %s"
msgstr ""
-#: builtin/rebase.c:1673
+#: builtin/rebase.c:1704
#, c-format
msgid ""
"It seems that there is already a %s directory, and\n"
@@ -16408,162 +16498,154 @@ msgid ""
"valuable there.\n"
msgstr ""
-#: builtin/rebase.c:1694
+#: builtin/rebase.c:1725
msgid "switch `C' expects a numerical value"
msgstr ""
-#: builtin/rebase.c:1735
+#: builtin/rebase.c:1766
#, c-format
msgid "Unknown mode: %s"
msgstr ""
-#: builtin/rebase.c:1757
+#: builtin/rebase.c:1788
msgid "--strategy requires --merge or --interactive"
msgstr ""
-#: builtin/rebase.c:1797
+#: builtin/rebase.c:1828
msgid "--reschedule-failed-exec requires --exec or --interactive"
msgstr ""
-#: builtin/rebase.c:1809
+#: builtin/rebase.c:1840
msgid "cannot combine am options with either interactive or merge options"
msgstr ""
-#: builtin/rebase.c:1828
+#: builtin/rebase.c:1859
msgid "cannot combine '--preserve-merges' with '--rebase-merges'"
msgstr ""
-#: builtin/rebase.c:1832
+#: builtin/rebase.c:1863
msgid ""
"error: cannot combine '--preserve-merges' with '--reschedule-failed-exec'"
msgstr ""
-#: builtin/rebase.c:1838
-msgid "cannot combine '--rebase-merges' with '--strategy-option'"
-msgstr ""
-
-#: builtin/rebase.c:1841
-msgid "cannot combine '--rebase-merges' with '--strategy'"
-msgstr ""
-
-#: builtin/rebase.c:1865
+#: builtin/rebase.c:1887
#, c-format
msgid "invalid upstream '%s'"
msgstr ""
-#: builtin/rebase.c:1871
+#: builtin/rebase.c:1893
msgid "Could not create new root commit"
msgstr ""
-#: builtin/rebase.c:1889
+#: builtin/rebase.c:1919
+#, c-format
+msgid "'%s': need exactly one merge base with branch"
+msgstr ""
+
+#: builtin/rebase.c:1922
#, c-format
msgid "'%s': need exactly one merge base"
msgstr ""
-#: builtin/rebase.c:1896
+#: builtin/rebase.c:1930
#, c-format
msgid "Does not point to a valid commit '%s'"
msgstr ""
-#: builtin/rebase.c:1921
+#: builtin/rebase.c:1955
#, c-format
msgid "fatal: no such branch/commit '%s'"
msgstr ""
-#: builtin/rebase.c:1929 builtin/submodule--helper.c:38
+#: builtin/rebase.c:1963 builtin/submodule--helper.c:38
#: builtin/submodule--helper.c:1934
#, c-format
msgid "No such ref: %s"
msgstr ""
-#: builtin/rebase.c:1940
+#: builtin/rebase.c:1974
msgid "Could not resolve HEAD to a revision"
msgstr ""
-#: builtin/rebase.c:1981
+#: builtin/rebase.c:2012
msgid "Cannot autostash"
msgstr ""
-#: builtin/rebase.c:1984
+#: builtin/rebase.c:2015
#, c-format
msgid "Unexpected stash response: '%s'"
msgstr ""
-#: builtin/rebase.c:1990
+#: builtin/rebase.c:2021
#, c-format
msgid "Could not create directory for '%s'"
msgstr ""
-#: builtin/rebase.c:1993
+#: builtin/rebase.c:2024
#, c-format
msgid "Created autostash: %s\n"
msgstr ""
-#: builtin/rebase.c:1996
+#: builtin/rebase.c:2027
msgid "could not reset --hard"
msgstr ""
-#: builtin/rebase.c:1997 builtin/reset.c:114
-#, c-format
-msgid "HEAD is now at %s"
-msgstr ""
-
-#: builtin/rebase.c:2013
+#: builtin/rebase.c:2036
msgid "Please commit or stash them."
msgstr ""
-#: builtin/rebase.c:2040
+#: builtin/rebase.c:2063
#, c-format
msgid "could not parse '%s'"
msgstr ""
-#: builtin/rebase.c:2053
+#: builtin/rebase.c:2076
#, c-format
msgid "could not switch to %s"
msgstr ""
-#: builtin/rebase.c:2064
+#: builtin/rebase.c:2087
msgid "HEAD is up to date."
msgstr ""
-#: builtin/rebase.c:2066
+#: builtin/rebase.c:2089
#, c-format
msgid "Current branch %s is up to date.\n"
msgstr ""
-#: builtin/rebase.c:2074
+#: builtin/rebase.c:2097
msgid "HEAD is up to date, rebase forced."
msgstr ""
-#: builtin/rebase.c:2076
+#: builtin/rebase.c:2099
#, c-format
msgid "Current branch %s is up to date, rebase forced.\n"
msgstr ""
-#: builtin/rebase.c:2084
+#: builtin/rebase.c:2107
msgid "The pre-rebase hook refused to rebase."
msgstr ""
-#: builtin/rebase.c:2091
+#: builtin/rebase.c:2114
#, c-format
msgid "Changes to %s:\n"
msgstr ""
-#: builtin/rebase.c:2094
+#: builtin/rebase.c:2117
#, c-format
msgid "Changes from %s to %s:\n"
msgstr ""
-#: builtin/rebase.c:2119
+#: builtin/rebase.c:2142
#, c-format
msgid "First, rewinding head to replay your work on top of it...\n"
msgstr ""
-#: builtin/rebase.c:2128
+#: builtin/rebase.c:2151
msgid "Could not detach HEAD"
msgstr ""
-#: builtin/rebase.c:2137
+#: builtin/rebase.c:2160
#, c-format
msgid "Fast-forwarded %s to %s.\n"
msgstr ""
@@ -16572,7 +16654,7 @@ msgstr ""
msgid "git receive-pack <git-dir>"
msgstr ""
-#: builtin/receive-pack.c:832
+#: builtin/receive-pack.c:830
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"
@@ -16589,7 +16671,7 @@ msgid ""
"'receive.denyCurrentBranch' configuration variable to 'refuse'."
msgstr ""
-#: builtin/receive-pack.c:852
+#: builtin/receive-pack.c:850
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"
@@ -16601,11 +16683,11 @@ msgid ""
"To squelch this message, you can set it to 'refuse'."
msgstr ""
-#: builtin/receive-pack.c:1938
+#: builtin/receive-pack.c:1936
msgid "quiet"
msgstr ""
-#: builtin/receive-pack.c:1952
+#: builtin/receive-pack.c:1950
msgid "You must specify a directory."
msgstr ""
@@ -17158,121 +17240,121 @@ msgstr ""
msgid "Unknown subcommand: %s"
msgstr ""
-#: builtin/repack.c:22
+#: builtin/repack.c:23
msgid "git repack [<options>]"
msgstr ""
-#: builtin/repack.c:27
+#: builtin/repack.c:28
msgid ""
"Incremental repacks are incompatible with bitmap indexes. Use\n"
"--no-write-bitmap-index or disable the pack.writebitmaps configuration."
msgstr ""
-#: builtin/repack.c:190
+#: builtin/repack.c:191
msgid "could not start pack-objects to repack promisor objects"
msgstr ""
-#: builtin/repack.c:229 builtin/repack.c:408
+#: builtin/repack.c:230 builtin/repack.c:409
msgid "repack: Expecting full hex object ID lines only from pack-objects."
msgstr ""
-#: builtin/repack.c:246
+#: builtin/repack.c:247
msgid "could not finish pack-objects to repack promisor objects"
msgstr ""
-#: builtin/repack.c:284
+#: builtin/repack.c:285
msgid "pack everything in a single pack"
msgstr ""
-#: builtin/repack.c:286
+#: builtin/repack.c:287
msgid "same as -a, and turn unreachable objects loose"
msgstr ""
-#: builtin/repack.c:289
+#: builtin/repack.c:290
msgid "remove redundant packs, and run git-prune-packed"
msgstr ""
-#: builtin/repack.c:291
+#: builtin/repack.c:292
msgid "pass --no-reuse-delta to git-pack-objects"
msgstr ""
-#: builtin/repack.c:293
+#: builtin/repack.c:294
msgid "pass --no-reuse-object to git-pack-objects"
msgstr ""
-#: builtin/repack.c:295
+#: builtin/repack.c:296
msgid "do not run git-update-server-info"
msgstr ""
-#: builtin/repack.c:298
+#: builtin/repack.c:299
msgid "pass --local to git-pack-objects"
msgstr ""
-#: builtin/repack.c:300
+#: builtin/repack.c:301
msgid "write bitmap index"
msgstr ""
-#: builtin/repack.c:302
+#: builtin/repack.c:303
msgid "pass --delta-islands to git-pack-objects"
msgstr ""
-#: builtin/repack.c:303
+#: builtin/repack.c:304
msgid "approxidate"
msgstr ""
-#: builtin/repack.c:304
+#: builtin/repack.c:305
msgid "with -A, do not loosen objects older than this"
msgstr ""
-#: builtin/repack.c:306
+#: builtin/repack.c:307
msgid "with -a, repack unreachable objects"
msgstr ""
-#: builtin/repack.c:308
+#: builtin/repack.c:309
msgid "size of the window used for delta compression"
msgstr ""
-#: builtin/repack.c:309 builtin/repack.c:315
+#: builtin/repack.c:310 builtin/repack.c:316
msgid "bytes"
msgstr ""
-#: builtin/repack.c:310
+#: builtin/repack.c:311
msgid "same as the above, but limit memory size instead of entries count"
msgstr ""
-#: builtin/repack.c:312
+#: builtin/repack.c:313
msgid "limits the maximum delta depth"
msgstr ""
-#: builtin/repack.c:314
+#: builtin/repack.c:315
msgid "limits the maximum number of threads"
msgstr ""
-#: builtin/repack.c:316
+#: builtin/repack.c:317
msgid "maximum size of each packfile"
msgstr ""
-#: builtin/repack.c:318
+#: builtin/repack.c:319
msgid "repack objects in packs marked with .keep"
msgstr ""
-#: builtin/repack.c:320
+#: builtin/repack.c:321
msgid "do not repack this pack"
msgstr ""
-#: builtin/repack.c:330
+#: builtin/repack.c:331
msgid "cannot delete packs in a precious-objects repo"
msgstr ""
-#: builtin/repack.c:334
+#: builtin/repack.c:335
msgid "--keep-unreachable and -A are incompatible"
msgstr ""
-#: builtin/repack.c:417
+#: builtin/repack.c:418
msgid "Nothing new to pack."
msgstr ""
-#: builtin/repack.c:478
+#: builtin/repack.c:479
#, c-format
msgid ""
"WARNING: Some packs in use have been renamed by\n"
@@ -17284,7 +17366,7 @@ msgid ""
"WARNING: Please rename them in %s manually:\n"
msgstr ""
-#: builtin/repack.c:526
+#: builtin/repack.c:527
#, c-format
msgid "failed to remove '%s'"
msgstr ""
@@ -17387,8 +17469,8 @@ msgstr ""
msgid "unable to write object to database"
msgstr ""
-#: builtin/replace.c:322 builtin/replace.c:377 builtin/replace.c:422
-#: builtin/replace.c:452
+#: builtin/replace.c:322 builtin/replace.c:378 builtin/replace.c:423
+#: builtin/replace.c:453
#, c-format
msgid "not a valid object name: '%s'"
msgstr ""
@@ -17407,124 +17489,124 @@ msgstr ""
msgid "new object is the same as the old one: '%s'"
msgstr ""
-#: builtin/replace.c:383
+#: builtin/replace.c:384
#, c-format
msgid "could not parse %s as a commit"
msgstr ""
-#: builtin/replace.c:414
+#: builtin/replace.c:415
#, c-format
msgid "bad mergetag in commit '%s'"
msgstr ""
-#: builtin/replace.c:416
+#: builtin/replace.c:417
#, c-format
msgid "malformed mergetag in commit '%s'"
msgstr ""
-#: builtin/replace.c:428
+#: builtin/replace.c:429
#, c-format
msgid ""
"original commit '%s' contains mergetag '%s' that is discarded; use --edit "
"instead of --graft"
msgstr ""
-#: builtin/replace.c:467
+#: builtin/replace.c:468
#, c-format
msgid "the original commit '%s' has a gpg signature"
msgstr ""
-#: builtin/replace.c:468
+#: builtin/replace.c:469
msgid "the signature will be removed in the replacement commit!"
msgstr ""
-#: builtin/replace.c:478
+#: builtin/replace.c:479
#, c-format
msgid "could not write replacement commit for: '%s'"
msgstr ""
-#: builtin/replace.c:486
+#: builtin/replace.c:487
#, c-format
msgid "graft for '%s' unnecessary"
msgstr ""
-#: builtin/replace.c:490
+#: builtin/replace.c:491
#, c-format
msgid "new commit is the same as the old one: '%s'"
msgstr ""
-#: builtin/replace.c:525
+#: builtin/replace.c:526
#, c-format
msgid ""
"could not convert the following graft(s):\n"
"%s"
msgstr ""
-#: builtin/replace.c:546
+#: builtin/replace.c:547
msgid "list replace refs"
msgstr ""
-#: builtin/replace.c:547
+#: builtin/replace.c:548
msgid "delete replace refs"
msgstr ""
-#: builtin/replace.c:548
+#: builtin/replace.c:549
msgid "edit existing object"
msgstr ""
-#: builtin/replace.c:549
+#: builtin/replace.c:550
msgid "change a commit's parents"
msgstr ""
-#: builtin/replace.c:550
+#: builtin/replace.c:551
msgid "convert existing graft file"
msgstr ""
-#: builtin/replace.c:551
+#: builtin/replace.c:552
msgid "replace the ref if it exists"
msgstr ""
-#: builtin/replace.c:553
+#: builtin/replace.c:554
msgid "do not pretty-print contents for --edit"
msgstr ""
-#: builtin/replace.c:554
+#: builtin/replace.c:555
msgid "use this format"
msgstr ""
-#: builtin/replace.c:567
+#: builtin/replace.c:568
msgid "--format cannot be used when not listing"
msgstr ""
-#: builtin/replace.c:575
+#: builtin/replace.c:576
msgid "-f only makes sense when writing a replacement"
msgstr ""
-#: builtin/replace.c:579
+#: builtin/replace.c:580
msgid "--raw only makes sense with --edit"
msgstr ""
-#: builtin/replace.c:585
+#: builtin/replace.c:586
msgid "-d needs at least one argument"
msgstr ""
-#: builtin/replace.c:591
+#: builtin/replace.c:592
msgid "bad number of arguments"
msgstr ""
-#: builtin/replace.c:597
+#: builtin/replace.c:598
msgid "-e needs exactly one argument"
msgstr ""
-#: builtin/replace.c:603
+#: builtin/replace.c:604
msgid "-g needs at least one argument"
msgstr ""
-#: builtin/replace.c:609
+#: builtin/replace.c:610
msgid "--convert-graft-file takes no argument"
msgstr ""
-#: builtin/replace.c:615
+#: builtin/replace.c:616
msgid "only one pattern can be given with -l"
msgstr ""
@@ -17591,13 +17673,18 @@ msgstr ""
msgid "Failed to find tree of %s."
msgstr ""
+#: builtin/reset.c:114
+#, c-format
+msgid "HEAD is now at %s"
+msgstr ""
+
#: builtin/reset.c:193
#, c-format
msgid "Cannot do a %s reset in the middle of a merge."
msgstr ""
-#: builtin/reset.c:293 builtin/stash.c:514 builtin/stash.c:589
-#: builtin/stash.c:613
+#: builtin/reset.c:293 builtin/stash.c:520 builtin/stash.c:595
+#: builtin/stash.c:619
msgid "be quiet, only report errors"
msgstr ""
@@ -17675,24 +17762,19 @@ msgstr ""
msgid "Could not write new index file."
msgstr ""
-#: builtin/rev-list.c:412
+#: builtin/rev-list.c:411
msgid "cannot combine --exclude-promisor-objects and --missing"
msgstr ""
-#: builtin/rev-list.c:473
+#: builtin/rev-list.c:472
msgid "object filtering requires --objects"
msgstr ""
-#: builtin/rev-list.c:476
-#, c-format
-msgid "invalid sparse value '%s'"
-msgstr ""
-
-#: builtin/rev-list.c:527
+#: builtin/rev-list.c:522
msgid "rev-list does not support display of notes"
msgstr ""
-#: builtin/rev-list.c:530
+#: builtin/rev-list.c:525
msgid "cannot combine --use-bitmap-index with object filtering"
msgstr ""
@@ -18200,134 +18282,134 @@ msgstr ""
msgid "could not save index tree"
msgstr ""
-#: builtin/stash.c:434
+#: builtin/stash.c:436
msgid "could not restore untracked files from stash"
msgstr ""
-#: builtin/stash.c:448
+#: builtin/stash.c:450
#, c-format
msgid "Merging %s with %s"
msgstr ""
-#: builtin/stash.c:458 git-legacy-stash.sh:680
+#: builtin/stash.c:460 git-legacy-stash.sh:680
msgid "Index was not unstashed."
msgstr ""
-#: builtin/stash.c:516 builtin/stash.c:615
+#: builtin/stash.c:522 builtin/stash.c:621
msgid "attempt to recreate the index"
msgstr ""
-#: builtin/stash.c:549
+#: builtin/stash.c:555
#, c-format
msgid "Dropped %s (%s)"
msgstr ""
-#: builtin/stash.c:552
+#: builtin/stash.c:558
#, c-format
msgid "%s: Could not drop stash entry"
msgstr ""
-#: builtin/stash.c:577
+#: builtin/stash.c:583
#, c-format
msgid "'%s' is not a stash reference"
msgstr ""
-#: builtin/stash.c:627 git-legacy-stash.sh:694
+#: builtin/stash.c:633 git-legacy-stash.sh:694
msgid "The stash entry is kept in case you need it again."
msgstr ""
-#: builtin/stash.c:650 git-legacy-stash.sh:712
+#: builtin/stash.c:656 git-legacy-stash.sh:712
msgid "No branch name specified"
msgstr ""
-#: builtin/stash.c:790 builtin/stash.c:827
+#: builtin/stash.c:796 builtin/stash.c:833
#, c-format
msgid "Cannot update %s with %s"
msgstr ""
-#: builtin/stash.c:808 builtin/stash.c:1461 builtin/stash.c:1497
+#: builtin/stash.c:814 builtin/stash.c:1470 builtin/stash.c:1506
msgid "stash message"
msgstr ""
-#: builtin/stash.c:818
+#: builtin/stash.c:824
msgid "\"git stash store\" requires one <commit> argument"
msgstr ""
-#: builtin/stash.c:1040 git-legacy-stash.sh:217
+#: builtin/stash.c:1046 git-legacy-stash.sh:217
msgid "No changes selected"
msgstr ""
-#: builtin/stash.c:1136 git-legacy-stash.sh:150
+#: builtin/stash.c:1145 git-legacy-stash.sh:150
msgid "You do not have the initial commit yet"
msgstr ""
-#: builtin/stash.c:1163 git-legacy-stash.sh:165
+#: builtin/stash.c:1172 git-legacy-stash.sh:165
msgid "Cannot save the current index state"
msgstr ""
-#: builtin/stash.c:1172 git-legacy-stash.sh:180
+#: builtin/stash.c:1181 git-legacy-stash.sh:180
msgid "Cannot save the untracked files"
msgstr ""
-#: builtin/stash.c:1183 builtin/stash.c:1192 git-legacy-stash.sh:200
+#: builtin/stash.c:1192 builtin/stash.c:1201 git-legacy-stash.sh:200
#: git-legacy-stash.sh:213
msgid "Cannot save the current worktree state"
msgstr ""
-#: builtin/stash.c:1220 git-legacy-stash.sh:233
+#: builtin/stash.c:1229 git-legacy-stash.sh:233
msgid "Cannot record working tree state"
msgstr ""
-#: builtin/stash.c:1269 git-legacy-stash.sh:337
+#: builtin/stash.c:1278 git-legacy-stash.sh:337
msgid "Can't use --patch and --include-untracked or --all at the same time"
msgstr ""
-#: builtin/stash.c:1285
+#: builtin/stash.c:1294
msgid "Did you forget to 'git add'?"
msgstr ""
-#: builtin/stash.c:1300 git-legacy-stash.sh:345
+#: builtin/stash.c:1309 git-legacy-stash.sh:345
msgid "No local changes to save"
msgstr ""
-#: builtin/stash.c:1307 git-legacy-stash.sh:350
+#: builtin/stash.c:1316 git-legacy-stash.sh:350
msgid "Cannot initialize stash"
msgstr ""
-#: builtin/stash.c:1322 git-legacy-stash.sh:354
+#: builtin/stash.c:1331 git-legacy-stash.sh:354
msgid "Cannot save the current status"
msgstr ""
-#: builtin/stash.c:1327
+#: builtin/stash.c:1336
#, c-format
msgid "Saved working directory and index state %s"
msgstr ""
-#: builtin/stash.c:1417 git-legacy-stash.sh:384
+#: builtin/stash.c:1426 git-legacy-stash.sh:384
msgid "Cannot remove worktree changes"
msgstr ""
-#: builtin/stash.c:1452 builtin/stash.c:1488
+#: builtin/stash.c:1461 builtin/stash.c:1497
msgid "keep index"
msgstr ""
-#: builtin/stash.c:1454 builtin/stash.c:1490
+#: builtin/stash.c:1463 builtin/stash.c:1499
msgid "stash in patch mode"
msgstr ""
-#: builtin/stash.c:1455 builtin/stash.c:1491
+#: builtin/stash.c:1464 builtin/stash.c:1500
msgid "quiet mode"
msgstr ""
-#: builtin/stash.c:1457 builtin/stash.c:1493
+#: builtin/stash.c:1466 builtin/stash.c:1502
msgid "include untracked files in stash"
msgstr ""
-#: builtin/stash.c:1459 builtin/stash.c:1495
+#: builtin/stash.c:1468 builtin/stash.c:1504
msgid "include ignore files"
msgstr ""
-#: builtin/stash.c:1555
+#: builtin/stash.c:1564
#, c-format
msgid "could not exec %s"
msgstr ""
@@ -18678,7 +18760,7 @@ msgid "don't print cloning progress"
msgstr ""
#: builtin/submodule--helper.c:1877
-msgid "git submodule--helper update_clone [--prefix=<path>] [<path>...]"
+msgid "git submodule--helper update-clone [--prefix=<path>] [<path>...]"
msgstr ""
#: builtin/submodule--helper.c:1890
@@ -18730,7 +18812,7 @@ msgstr ""
msgid "please make sure that the .gitmodules file is in the working tree"
msgstr ""
-#: builtin/submodule--helper.c:2235 git.c:434 git.c:684
+#: builtin/submodule--helper.c:2235 git.c:433 git.c:683
#, c-format
msgid "%s doesn't support --super-prefix"
msgstr ""
@@ -19032,185 +19114,185 @@ msgstr ""
msgid "git update-index [<options>] [--] [<file>...]"
msgstr ""
-#: builtin/update-index.c:971
+#: builtin/update-index.c:972
msgid "continue refresh even when index needs update"
msgstr ""
-#: builtin/update-index.c:974
+#: builtin/update-index.c:975
msgid "refresh: ignore submodules"
msgstr ""
-#: builtin/update-index.c:977
+#: builtin/update-index.c:978
msgid "do not ignore new files"
msgstr ""
-#: builtin/update-index.c:979
+#: builtin/update-index.c:980
msgid "let files replace directories and vice-versa"
msgstr ""
-#: builtin/update-index.c:981
+#: builtin/update-index.c:982
msgid "notice files missing from worktree"
msgstr ""
-#: builtin/update-index.c:983
+#: builtin/update-index.c:984
msgid "refresh even if index contains unmerged entries"
msgstr ""
-#: builtin/update-index.c:986
+#: builtin/update-index.c:987
msgid "refresh stat information"
msgstr ""
-#: builtin/update-index.c:990
+#: builtin/update-index.c:991
msgid "like --refresh, but ignore assume-unchanged setting"
msgstr ""
-#: builtin/update-index.c:994
+#: builtin/update-index.c:995
msgid "<mode>,<object>,<path>"
msgstr ""
-#: builtin/update-index.c:995
+#: builtin/update-index.c:996
msgid "add the specified entry to the index"
msgstr ""
-#: builtin/update-index.c:1005
+#: builtin/update-index.c:1006
msgid "mark files as \"not changing\""
msgstr ""
-#: builtin/update-index.c:1008
+#: builtin/update-index.c:1009
msgid "clear assumed-unchanged bit"
msgstr ""
-#: builtin/update-index.c:1011
+#: builtin/update-index.c:1012
msgid "mark files as \"index-only\""
msgstr ""
-#: builtin/update-index.c:1014
+#: builtin/update-index.c:1015
msgid "clear skip-worktree bit"
msgstr ""
-#: builtin/update-index.c:1017
+#: builtin/update-index.c:1018
msgid "add to index only; do not add content to object database"
msgstr ""
-#: builtin/update-index.c:1019
+#: builtin/update-index.c:1020
msgid "remove named paths even if present in worktree"
msgstr ""
-#: builtin/update-index.c:1021
+#: builtin/update-index.c:1022
msgid "with --stdin: input lines are terminated by null bytes"
msgstr ""
-#: builtin/update-index.c:1023
+#: builtin/update-index.c:1024
msgid "read list of paths to be updated from standard input"
msgstr ""
-#: builtin/update-index.c:1027
+#: builtin/update-index.c:1028
msgid "add entries from standard input to the index"
msgstr ""
-#: builtin/update-index.c:1031
+#: builtin/update-index.c:1032
msgid "repopulate stages #2 and #3 for the listed paths"
msgstr ""
-#: builtin/update-index.c:1035
+#: builtin/update-index.c:1036
msgid "only update entries that differ from HEAD"
msgstr ""
-#: builtin/update-index.c:1039
+#: builtin/update-index.c:1040
msgid "ignore files missing from worktree"
msgstr ""
-#: builtin/update-index.c:1042
+#: builtin/update-index.c:1043
msgid "report actions to standard output"
msgstr ""
-#: builtin/update-index.c:1044
+#: builtin/update-index.c:1045
msgid "(for porcelains) forget saved unresolved conflicts"
msgstr ""
-#: builtin/update-index.c:1048
+#: builtin/update-index.c:1049
msgid "write index in this format"
msgstr ""
-#: builtin/update-index.c:1050
+#: builtin/update-index.c:1051
msgid "enable or disable split index"
msgstr ""
-#: builtin/update-index.c:1052
+#: builtin/update-index.c:1053
msgid "enable/disable untracked cache"
msgstr ""
-#: builtin/update-index.c:1054
+#: builtin/update-index.c:1055
msgid "test if the filesystem supports untracked cache"
msgstr ""
-#: builtin/update-index.c:1056
+#: builtin/update-index.c:1057
msgid "enable untracked cache without testing the filesystem"
msgstr ""
-#: builtin/update-index.c:1058
+#: builtin/update-index.c:1059
msgid "write out the index even if is not flagged as changed"
msgstr ""
-#: builtin/update-index.c:1060
+#: builtin/update-index.c:1061
msgid "enable or disable file system monitor"
msgstr ""
-#: builtin/update-index.c:1062
+#: builtin/update-index.c:1063
msgid "mark files as fsmonitor valid"
msgstr ""
-#: builtin/update-index.c:1065
+#: builtin/update-index.c:1066
msgid "clear fsmonitor valid bit"
msgstr ""
-#: builtin/update-index.c:1168
+#: builtin/update-index.c:1169
msgid ""
"core.splitIndex is set to false; remove or change it, if you really want to "
"enable split index"
msgstr ""
-#: builtin/update-index.c:1177
+#: builtin/update-index.c:1178
msgid ""
"core.splitIndex is set to true; remove or change it, if you really want to "
"disable split index"
msgstr ""
-#: builtin/update-index.c:1188
+#: builtin/update-index.c:1190
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:1192
+#: builtin/update-index.c:1194
msgid "Untracked cache disabled"
msgstr ""
-#: builtin/update-index.c:1200
+#: builtin/update-index.c:1202
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:1204
+#: builtin/update-index.c:1206
#, c-format
msgid "Untracked cache enabled for '%s'"
msgstr ""
-#: builtin/update-index.c:1212
+#: builtin/update-index.c:1214
msgid "core.fsmonitor is unset; set it if you really want to enable fsmonitor"
msgstr ""
-#: builtin/update-index.c:1216
+#: builtin/update-index.c:1218
msgid "fsmonitor enabled"
msgstr ""
-#: builtin/update-index.c:1219
+#: builtin/update-index.c:1221
msgid ""
"core.fsmonitor is set; remove it if you really want to disable fsmonitor"
msgstr ""
-#: builtin/update-index.c:1223
+#: builtin/update-index.c:1225
msgid "fsmonitor disabled"
msgstr ""
@@ -19302,272 +19384,272 @@ msgstr ""
msgid "print tag contents"
msgstr ""
-#: builtin/worktree.c:18
+#: builtin/worktree.c:17
msgid "git worktree add [<options>] <path> [<commit-ish>]"
msgstr ""
-#: builtin/worktree.c:19
+#: builtin/worktree.c:18
msgid "git worktree list [<options>]"
msgstr ""
-#: builtin/worktree.c:20
+#: builtin/worktree.c:19
msgid "git worktree lock [<options>] <path>"
msgstr ""
-#: builtin/worktree.c:21
+#: builtin/worktree.c:20
msgid "git worktree move <worktree> <new-path>"
msgstr ""
-#: builtin/worktree.c:22
+#: builtin/worktree.c:21
msgid "git worktree prune [<options>]"
msgstr ""
-#: builtin/worktree.c:23
+#: builtin/worktree.c:22
msgid "git worktree remove [<options>] <worktree>"
msgstr ""
-#: builtin/worktree.c:24
+#: builtin/worktree.c:23
msgid "git worktree unlock <path>"
msgstr ""
-#: builtin/worktree.c:61 builtin/worktree.c:899
+#: builtin/worktree.c:60 builtin/worktree.c:898
#, c-format
msgid "failed to delete '%s'"
msgstr ""
-#: builtin/worktree.c:80
+#: builtin/worktree.c:79
#, c-format
msgid "Removing worktrees/%s: not a valid directory"
msgstr ""
-#: builtin/worktree.c:86
+#: builtin/worktree.c:85
#, c-format
msgid "Removing worktrees/%s: gitdir file does not exist"
msgstr ""
-#: builtin/worktree.c:91 builtin/worktree.c:100
+#: builtin/worktree.c:90 builtin/worktree.c:99
#, c-format
msgid "Removing worktrees/%s: unable to read gitdir file (%s)"
msgstr ""
-#: builtin/worktree.c:110
+#: builtin/worktree.c:109
#, c-format
msgid ""
"Removing worktrees/%s: short read (expected %<PRIuMAX> bytes, read "
"%<PRIuMAX>)"
msgstr ""
-#: builtin/worktree.c:118
+#: builtin/worktree.c:117
#, c-format
msgid "Removing worktrees/%s: invalid gitdir file"
msgstr ""
-#: builtin/worktree.c:127
+#: builtin/worktree.c:126
#, c-format
msgid "Removing worktrees/%s: gitdir file points to non-existent location"
msgstr ""
-#: builtin/worktree.c:166
+#: builtin/worktree.c:165
msgid "report pruned working trees"
msgstr ""
-#: builtin/worktree.c:168
+#: builtin/worktree.c:167
msgid "expire working trees older than <time>"
msgstr ""
-#: builtin/worktree.c:235
+#: builtin/worktree.c:234
#, c-format
msgid "'%s' already exists"
msgstr ""
-#: builtin/worktree.c:252
+#: builtin/worktree.c:251
#, c-format
msgid "unable to re-add worktree '%s'"
msgstr ""
-#: builtin/worktree.c:257
+#: builtin/worktree.c:256
#, c-format
msgid ""
"'%s' is a missing but locked worktree;\n"
"use 'add -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear"
msgstr ""
-#: builtin/worktree.c:259
+#: builtin/worktree.c:258
#, c-format
msgid ""
"'%s' is a missing but already registered worktree;\n"
"use 'add -f' to override, or 'prune' or 'remove' to clear"
msgstr ""
-#: builtin/worktree.c:309
+#: builtin/worktree.c:308
#, c-format
msgid "could not create directory of '%s'"
msgstr ""
-#: builtin/worktree.c:440 builtin/worktree.c:446
+#: builtin/worktree.c:439 builtin/worktree.c:445
#, c-format
msgid "Preparing worktree (new branch '%s')"
msgstr ""
-#: builtin/worktree.c:442
+#: builtin/worktree.c:441
#, c-format
msgid "Preparing worktree (resetting branch '%s'; was at %s)"
msgstr ""
-#: builtin/worktree.c:451
+#: builtin/worktree.c:450
#, c-format
msgid "Preparing worktree (checking out '%s')"
msgstr ""
-#: builtin/worktree.c:457
+#: builtin/worktree.c:456
#, c-format
msgid "Preparing worktree (detached HEAD %s)"
msgstr ""
-#: builtin/worktree.c:498
+#: builtin/worktree.c:497
msgid "checkout <branch> even if already checked out in other worktree"
msgstr ""
-#: builtin/worktree.c:501
+#: builtin/worktree.c:500
msgid "create a new branch"
msgstr ""
-#: builtin/worktree.c:503
+#: builtin/worktree.c:502
msgid "create or reset a branch"
msgstr ""
-#: builtin/worktree.c:505
+#: builtin/worktree.c:504
msgid "populate the new working tree"
msgstr ""
-#: builtin/worktree.c:506
+#: builtin/worktree.c:505
msgid "keep the new working tree locked"
msgstr ""
-#: builtin/worktree.c:509
+#: builtin/worktree.c:508
msgid "set up tracking mode (see git-branch(1))"
msgstr ""
-#: builtin/worktree.c:512
+#: builtin/worktree.c:511
msgid "try to match the new branch name with a remote-tracking branch"
msgstr ""
-#: builtin/worktree.c:520
+#: builtin/worktree.c:519
msgid "-b, -B, and --detach are mutually exclusive"
msgstr ""
-#: builtin/worktree.c:581
+#: builtin/worktree.c:580
msgid "--[no-]track can only be used if a new branch is created"
msgstr ""
-#: builtin/worktree.c:681
+#: builtin/worktree.c:680
msgid "reason for locking"
msgstr ""
-#: builtin/worktree.c:693 builtin/worktree.c:726 builtin/worktree.c:800
-#: builtin/worktree.c:927
+#: builtin/worktree.c:692 builtin/worktree.c:725 builtin/worktree.c:799
+#: builtin/worktree.c:926
#, c-format
msgid "'%s' is not a working tree"
msgstr ""
-#: builtin/worktree.c:695 builtin/worktree.c:728
+#: builtin/worktree.c:694 builtin/worktree.c:727
msgid "The main working tree cannot be locked or unlocked"
msgstr ""
-#: builtin/worktree.c:700
+#: builtin/worktree.c:699
#, c-format
msgid "'%s' is already locked, reason: %s"
msgstr ""
-#: builtin/worktree.c:702
+#: builtin/worktree.c:701
#, c-format
msgid "'%s' is already locked"
msgstr ""
-#: builtin/worktree.c:730
+#: builtin/worktree.c:729
#, c-format
msgid "'%s' is not locked"
msgstr ""
-#: builtin/worktree.c:771
+#: builtin/worktree.c:770
msgid "working trees containing submodules cannot be moved or removed"
msgstr ""
-#: builtin/worktree.c:779
+#: builtin/worktree.c:778
msgid "force move even if worktree is dirty or locked"
msgstr ""
-#: builtin/worktree.c:802 builtin/worktree.c:929
+#: builtin/worktree.c:801 builtin/worktree.c:928
#, c-format
msgid "'%s' is a main working tree"
msgstr ""
-#: builtin/worktree.c:807
+#: builtin/worktree.c:806
#, c-format
msgid "could not figure out destination name from '%s'"
msgstr ""
-#: builtin/worktree.c:813
+#: builtin/worktree.c:812
#, c-format
msgid "target '%s' already exists"
msgstr ""
-#: builtin/worktree.c:821
+#: builtin/worktree.c:820
#, 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:823
+#: builtin/worktree.c:822
msgid ""
"cannot move a locked working tree;\n"
"use 'move -f -f' to override or unlock first"
msgstr ""
-#: builtin/worktree.c:826
+#: builtin/worktree.c:825
#, c-format
msgid "validation failed, cannot move working tree: %s"
msgstr ""
-#: builtin/worktree.c:831
+#: builtin/worktree.c:830
#, c-format
msgid "failed to move '%s' to '%s'"
msgstr ""
-#: builtin/worktree.c:879
+#: builtin/worktree.c:878
#, c-format
msgid "failed to run 'git status' on '%s'"
msgstr ""
-#: builtin/worktree.c:883
+#: builtin/worktree.c:882
#, c-format
-msgid "'%s' is dirty, use --force to delete it"
+msgid "'%s' contains modified or untracked files, use --force to delete it"
msgstr ""
-#: builtin/worktree.c:888
+#: builtin/worktree.c:887
#, c-format
msgid "failed to run 'git status' on '%s', code %d"
msgstr ""
-#: builtin/worktree.c:911
+#: builtin/worktree.c:910
msgid "force removal even if worktree is dirty or locked"
msgstr ""
-#: builtin/worktree.c:934
+#: builtin/worktree.c:933
#, 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:936
+#: builtin/worktree.c:935
msgid ""
"cannot remove a locked working tree;\n"
"use 'remove -f -f' to override or unlock first"
msgstr ""
-#: builtin/worktree.c:939
+#: builtin/worktree.c:938
#, c-format
msgid "validation failed, cannot remove working tree: %s"
msgstr ""
@@ -19588,6 +19670,16 @@ msgstr ""
msgid "only useful for debugging"
msgstr ""
+#: fast-import.c:3118
+#, c-format
+msgid "Expected 'mark' command, got %s"
+msgstr ""
+
+#: fast-import.c:3123
+#, c-format
+msgid "Expected 'to' command, got %s"
+msgstr ""
+
#: credential-cache--daemon.c:223
#, c-format
msgid ""
@@ -19683,51 +19775,51 @@ msgid ""
"You can use '!git' in the alias to do this"
msgstr ""
-#: git.c:377
+#: git.c:376
#, c-format
msgid "empty alias for %s"
msgstr ""
-#: git.c:380
+#: git.c:379
#, c-format
msgid "recursive alias: %s"
msgstr ""
-#: git.c:460
+#: git.c:459
msgid "write failure on standard output"
msgstr ""
-#: git.c:462
+#: git.c:461
msgid "unknown write failure on standard output"
msgstr ""
-#: git.c:464
+#: git.c:463
msgid "close failed on standard output"
msgstr ""
-#: git.c:793
+#: git.c:792
#, c-format
msgid "alias loop detected: expansion of '%s' does not terminate:%s"
msgstr ""
-#: git.c:843
+#: git.c:842
#, c-format
msgid "cannot handle %s as a builtin"
msgstr ""
-#: git.c:856
+#: git.c:855
#, c-format
msgid ""
"usage: %s\n"
"\n"
msgstr ""
-#: git.c:876
+#: git.c:875
#, c-format
msgid "expansion of alias '%s' failed; '%s' is not a git command\n"
msgstr ""
-#: git.c:888
+#: git.c:887
#, c-format
msgid "failed to run command '%s': %s\n"
msgstr ""
@@ -19745,30 +19837,30 @@ msgstr ""
msgid "Public key pinning not supported with cURL < 7.44.0"
msgstr ""
-#: http.c:876
+#: http.c:878
msgid "CURLSSLOPT_NO_REVOKE not supported with cURL < 7.44.0"
msgstr ""
-#: http.c:949
+#: http.c:951
msgid "Protocol restrictions not supported with cURL < 7.19.4"
msgstr ""
-#: http.c:1085
+#: http.c:1088
#, c-format
msgid "Unsupported SSL backend '%s'. Supported SSL backends:"
msgstr ""
-#: http.c:1092
+#: http.c:1095
#, c-format
msgid "Could not set SSL backend to '%s': cURL was built without SSL backends"
msgstr ""
-#: http.c:1096
+#: http.c:1099
#, c-format
msgid "Could not set SSL backend to '%s': already set"
msgstr ""
-#: http.c:1965
+#: http.c:1968
#, c-format
msgid ""
"unable to update url base from redirection:\n"
@@ -19776,128 +19868,128 @@ msgid ""
" redirect: %s"
msgstr ""
-#: remote-curl.c:157
+#: remote-curl.c:166
#, c-format
msgid "invalid quoting in push-option value: '%s'"
msgstr ""
-#: remote-curl.c:254
+#: remote-curl.c:263
#, c-format
msgid "%sinfo/refs not valid: is this a git repository?"
msgstr ""
-#: remote-curl.c:355
+#: remote-curl.c:364
msgid "invalid server response; expected service, got flush packet"
msgstr ""
-#: remote-curl.c:386
+#: remote-curl.c:395
#, c-format
msgid "invalid server response; got '%s'"
msgstr ""
-#: remote-curl.c:446
+#: remote-curl.c:455
#, c-format
msgid "repository '%s' not found"
msgstr ""
-#: remote-curl.c:450
+#: remote-curl.c:459
#, c-format
msgid "Authentication failed for '%s'"
msgstr ""
-#: remote-curl.c:454
+#: remote-curl.c:463
#, c-format
msgid "unable to access '%s': %s"
msgstr ""
-#: remote-curl.c:460
+#: remote-curl.c:469
#, c-format
msgid "redirecting to %s"
msgstr ""
-#: remote-curl.c:584
+#: remote-curl.c:593
msgid "shouldn't have EOF when not gentle on EOF"
msgstr ""
-#: remote-curl.c:664
+#: remote-curl.c:673
msgid "unable to rewind rpc post data - try increasing http.postBuffer"
msgstr ""
-#: remote-curl.c:724
+#: remote-curl.c:733
#, c-format
msgid "RPC failed; %s"
msgstr ""
-#: remote-curl.c:764
+#: remote-curl.c:773
msgid "cannot handle pushes this big"
msgstr ""
-#: remote-curl.c:879
+#: remote-curl.c:888
#, c-format
msgid "cannot deflate request; zlib deflate error %d"
msgstr ""
-#: remote-curl.c:883
+#: remote-curl.c:892
#, c-format
msgid "cannot deflate request; zlib end error %d"
msgstr ""
-#: remote-curl.c:1014
+#: remote-curl.c:1023
msgid "dumb http transport does not support shallow capabilities"
msgstr ""
-#: remote-curl.c:1028
+#: remote-curl.c:1037
msgid "fetch failed."
msgstr ""
-#: remote-curl.c:1076
+#: remote-curl.c:1085
msgid "cannot fetch by sha1 over smart http"
msgstr ""
-#: remote-curl.c:1120 remote-curl.c:1126
+#: remote-curl.c:1129 remote-curl.c:1135
#, c-format
msgid "protocol error: expected sha/ref, got '%s'"
msgstr ""
-#: remote-curl.c:1138 remote-curl.c:1252
+#: remote-curl.c:1147 remote-curl.c:1261
#, c-format
msgid "http transport does not support %s"
msgstr ""
-#: remote-curl.c:1174
+#: remote-curl.c:1183
msgid "git-http-push failed"
msgstr ""
-#: remote-curl.c:1360
+#: remote-curl.c:1367
msgid "remote-curl: usage: git remote-curl <remote> [<url>]"
msgstr ""
-#: remote-curl.c:1392
+#: remote-curl.c:1399
msgid "remote-curl: error reading command stream from git"
msgstr ""
-#: remote-curl.c:1399
+#: remote-curl.c:1406
msgid "remote-curl: fetch attempted without a local repo"
msgstr ""
-#: remote-curl.c:1439
+#: remote-curl.c:1446
#, c-format
msgid "remote-curl: unknown command '%s' from git"
msgstr ""
-#: list-objects-filter-options.h:61
+#: list-objects-filter-options.h:85
msgid "args"
msgstr ""
-#: list-objects-filter-options.h:62
+#: list-objects-filter-options.h:86
msgid "object filtering"
msgstr ""
-#: parse-options.h:170
+#: parse-options.h:179
msgid "expiry-date"
msgstr ""
-#: parse-options.h:184
+#: parse-options.h:193
msgid "no-op (backward compatibility)"
msgstr ""
diff --git a/po/it.po b/po/it.po
index 30ec99c..036276f 100644
--- a/po/it.po
+++ b/po/it.po
@@ -11,8 +11,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Git\n"
"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2019-08-10 20:12+0800\n"
-"PO-Revision-Date: 2019-08-11 11:48+0200\n"
+"POT-Creation-Date: 2019-10-28 13:19+0800\n"
+"PO-Revision-Date: 2019-10-28 20:11+0100\n"
"Last-Translator: Alessandro Menti <alessandro.menti@alessandromenti.it>\n"
"Language-Team: Italian <>\n"
"Language: it\n"
@@ -20,7 +20,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Lokalize 19.04.3\n"
+"X-Generator: Lokalize 19.08.2\n"
#: advice.c:109
#, c-format
@@ -76,7 +76,7 @@ msgstr ""
msgid "Exiting because of an unresolved conflict."
msgstr "Esco a causa di un conflitto non risolto."
-#: advice.c:193 builtin/merge.c:1327
+#: advice.c:193 builtin/merge.c:1332
msgid "You have not concluded your merge (MERGE_HEAD exists)."
msgstr "Il merge non è stato concluso (esiste MERGE_HEAD)."
@@ -219,17 +219,7 @@ msgstr "modo non valido alla riga %d: %s"
msgid "inconsistent header lines %d and %d"
msgstr "righe di intestazione %d e %d inconsistenti"
-#: apply.c:1460
-#, c-format
-msgid "recount: unexpected line: %.*s"
-msgstr "recount: riga inattesa: %.*s"
-
-#: apply.c:1529
-#, c-format
-msgid "patch fragment without header at line %d: %.*s"
-msgstr "frammento di patch senza intestazione alla riga %d: %.*s"
-
-#: apply.c:1551
+#: apply.c:1372
#, c-format
msgid ""
"git diff header lacks filename information when removing %d leading pathname "
@@ -244,82 +234,92 @@ msgstr[1] ""
"l'intestazione git diff non riporta le informazioni sul file una volta "
"rimossi %d componenti iniziali del percorso (riga %d)"
-#: apply.c:1564
+#: apply.c:1385
#, c-format
msgid "git diff header lacks filename information (line %d)"
msgstr "l'intestazione git diff non riporta le informazioni sul file (riga %d)"
-#: apply.c:1752
+#: apply.c:1481
+#, c-format
+msgid "recount: unexpected line: %.*s"
+msgstr "recount: riga inattesa: %.*s"
+
+#: apply.c:1550
+#, c-format
+msgid "patch fragment without header at line %d: %.*s"
+msgstr "frammento di patch senza intestazione alla riga %d: %.*s"
+
+#: apply.c:1753
msgid "new file depends on old contents"
msgstr "il nuovo file dipende da vecchi contenuti"
-#: apply.c:1754
+#: apply.c:1755
msgid "deleted file still has contents"
msgstr "il file eliminato ha ancora dei contenuti"
-#: apply.c:1788
+#: apply.c:1789
#, c-format
msgid "corrupt patch at line %d"
msgstr "patch corrotta alla riga %d"
-#: apply.c:1825
+#: apply.c:1826
#, c-format
msgid "new file %s depends on old contents"
msgstr "il nuovo file %s dipende da vecchi contenuti"
-#: apply.c:1827
+#: apply.c:1828
#, c-format
msgid "deleted file %s still has contents"
msgstr "il file eliminato %s ha ancora dei contenuti"
-#: apply.c:1830
+#: apply.c:1831
#, c-format
msgid "** warning: file %s becomes empty but is not deleted"
msgstr "** attenzione: il file %s diventa vuoto ma non è eliminato"
-#: apply.c:1977
+#: apply.c:1978
#, c-format
msgid "corrupt binary patch at line %d: %.*s"
msgstr "patch binaria corrotta alla riga %d: %.*s"
-#: apply.c:2014
+#: apply.c:2015
#, c-format
msgid "unrecognized binary patch at line %d"
msgstr "patch binaria non riconosciuta alla riga %d"
-#: apply.c:2176
+#: apply.c:2177
#, c-format
msgid "patch with only garbage at line %d"
msgstr "patch con soli contenuti garbage alla riga %d"
-#: apply.c:2262
+#: apply.c:2263
#, c-format
msgid "unable to read symlink %s"
msgstr "impossibile leggere il collegamento simbolico %s"
-#: apply.c:2266
+#: apply.c:2267
#, c-format
msgid "unable to open or read %s"
msgstr "impossibile aprire o leggere %s"
-#: apply.c:2925
+#: apply.c:2926
#, c-format
msgid "invalid start of line: '%c'"
msgstr "inizio della riga non valido: '%c'"
-#: apply.c:3046
+#: apply.c:3047
#, c-format
msgid "Hunk #%d succeeded at %d (offset %d line)."
msgid_plural "Hunk #%d succeeded at %d (offset %d lines)."
msgstr[0] "Applicazione frammento %d riuscita alla riga %d (offset: %d riga)."
msgstr[1] "Applicazione frammento %d riuscita alla riga %d (offset: %d righe)."
-#: apply.c:3058
+#: apply.c:3059
#, c-format
msgid "Context reduced to (%ld/%ld) to apply fragment at %d"
msgstr "Contesto ridotto a (%ld/%ld) per applicare il frammento alla riga %d"
-#: apply.c:3064
+#: apply.c:3065
#, c-format
msgid ""
"while searching for:\n"
@@ -328,26 +328,26 @@ msgstr ""
"durante la ricerca di:\n"
"%.*s"
-#: apply.c:3086
+#: apply.c:3087
#, c-format
msgid "missing binary patch data for '%s'"
msgstr "dati della patch binaria mancanti per '%s'"
-#: apply.c:3094
+#: apply.c:3095
#, c-format
msgid "cannot reverse-apply a binary patch without the reverse hunk to '%s'"
msgstr ""
"impossibile applicare una patch binaria al contrario senza l'hunk contrario "
"per '%s'"
-#: apply.c:3141
+#: apply.c:3142
#, c-format
msgid "cannot apply binary patch to '%s' without full index line"
msgstr ""
"impossibile applicare una patch binaria a '%s' senza la riga d'indice "
"completa"
-#: apply.c:3151
+#: apply.c:3152
#, c-format
msgid ""
"the patch applies to '%s' (%s), which does not match the current contents."
@@ -355,432 +355,432 @@ msgstr ""
"la patch si applica a '%s' (%s), che non corrisponde ai contenuti correnti "
"del file."
-#: apply.c:3159
+#: apply.c:3160
#, c-format
msgid "the patch applies to an empty '%s' but it is not empty"
msgstr "la patch si applica a un file vuoto '%s' ma il file non è vuoto"
-#: apply.c:3177
+#: apply.c:3178
#, c-format
msgid "the necessary postimage %s for '%s' cannot be read"
msgstr "impossibile leggere la postimmagine %s necessaria per '%s'"
-#: apply.c:3190
+#: apply.c:3191
#, c-format
msgid "binary patch does not apply to '%s'"
msgstr "la patch binaria non si applica correttamente a '%s'"
-#: apply.c:3196
+#: apply.c:3197
#, c-format
msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)"
msgstr ""
"la patch binaria su '%s' crea risultati non corretti (atteso %s, ricevuto %s)"
-#: apply.c:3217
+#: apply.c:3218
#, c-format
msgid "patch failed: %s:%ld"
msgstr "patch non riuscita: %s:%ld"
-#: apply.c:3340
+#: apply.c:3341
#, c-format
msgid "cannot checkout %s"
msgstr "impossibile eseguire il checkout di '%s'"
-#: apply.c:3392 apply.c:3403 apply.c:3449 midx.c:62 setup.c:279
+#: apply.c:3393 apply.c:3404 apply.c:3450 midx.c:61 setup.c:280
#, c-format
msgid "failed to read %s"
msgstr "lettura di %s non riuscita"
-#: apply.c:3400
+#: apply.c:3401
#, c-format
msgid "reading from '%s' beyond a symbolic link"
msgstr "lettura di '%s' oltre un collegamento simbolico"
-#: apply.c:3429 apply.c:3672
+#: apply.c:3430 apply.c:3673
#, c-format
msgid "path %s has been renamed/deleted"
msgstr "il percorso %s è stato rinominato/eliminato"
-#: apply.c:3515 apply.c:3687
+#: apply.c:3516 apply.c:3688
#, c-format
msgid "%s: does not exist in index"
msgstr "%s: non esiste nell'indice"
-#: apply.c:3524 apply.c:3695
+#: apply.c:3525 apply.c:3696
#, c-format
msgid "%s: does not match index"
msgstr "%s: non corrisponde all'indice"
-#: apply.c:3559
+#: apply.c:3560
msgid "repository lacks the necessary blob to fall back on 3-way merge."
msgstr ""
"dal repository manca il blob necessario per ripiegare sul merge a tre vie."
-#: apply.c:3562
+#: apply.c:3563
#, c-format
msgid "Falling back to three-way merge...\n"
msgstr "Ripiego sul merge a tre vie...\n"
-#: apply.c:3578 apply.c:3582
+#: apply.c:3579 apply.c:3583
#, c-format
msgid "cannot read the current contents of '%s'"
msgstr "impossibile leggere i contenuti correnti di '%s'"
-#: apply.c:3594
+#: apply.c:3595
#, c-format
msgid "Failed to fall back on three-way merge...\n"
msgstr "Ripiego sul merge a tre vie non riuscito...\n"
-#: apply.c:3608
+#: apply.c:3609
#, c-format
msgid "Applied patch to '%s' with conflicts.\n"
msgstr "Patch applicata a '%s' con conflitti.\n"
-#: apply.c:3613
+#: apply.c:3614
#, c-format
msgid "Applied patch to '%s' cleanly.\n"
msgstr "Patch '%s' applicata correttamente.\n"
-#: apply.c:3639
+#: apply.c:3640
msgid "removal patch leaves file contents"
msgstr "la rimozione della patch lascia contenuti del file"
-#: apply.c:3712
+#: apply.c:3713
#, c-format
msgid "%s: wrong type"
msgstr "%s: tipo errato"
-#: apply.c:3714
+#: apply.c:3715
#, c-format
msgid "%s has type %o, expected %o"
msgstr "%s ha il tipo %o, atteso %o"
-#: apply.c:3865 apply.c:3867 read-cache.c:830 read-cache.c:856
+#: apply.c:3866 apply.c:3868 read-cache.c:830 read-cache.c:856
#: read-cache.c:1309
#, c-format
msgid "invalid path '%s'"
msgstr "percorso '%s' non valido"
-#: apply.c:3923
+#: apply.c:3924
#, c-format
msgid "%s: already exists in index"
msgstr "%s: esiste già nell'indice"
-#: apply.c:3926
+#: apply.c:3927
#, c-format
msgid "%s: already exists in working directory"
msgstr "%s: esiste già nella directory di lavoro"
-#: apply.c:3946
+#: apply.c:3947
#, c-format
msgid "new mode (%o) of %s does not match old mode (%o)"
msgstr "il nuovo modo (%o) di %s non corrisponde al vecchio modo (%o)"
-#: apply.c:3951
+#: apply.c:3952
#, c-format
msgid "new mode (%o) of %s does not match old mode (%o) of %s"
msgstr "il nuovo modo (%o) di %s non corrisponde al vecchio modo (%o) di %s"
-#: apply.c:3971
+#: apply.c:3972
#, c-format
msgid "affected file '%s' is beyond a symbolic link"
msgstr "il file interessato '%s' si trova oltre un collegamento simbolico"
-#: apply.c:3975
+#: apply.c:3976
#, c-format
msgid "%s: patch does not apply"
msgstr "%s: la patch non si applica correttamente"
-#: apply.c:3990
+#: apply.c:3991
#, c-format
msgid "Checking patch %s..."
msgstr "Controllo della patch %s in corso..."
-#: apply.c:4082
+#: apply.c:4083
#, c-format
msgid "sha1 information is lacking or useless for submodule %s"
msgstr "le informazioni SHA1 per il sottomodulo %s sono mancanti o inutili"
-#: apply.c:4089
+#: apply.c:4090
#, c-format
msgid "mode change for %s, which is not in current HEAD"
msgstr "modifica modo per %s che non è nell'HEAD corrente"
-#: apply.c:4092
+#: apply.c:4093
#, c-format
msgid "sha1 information is lacking or useless (%s)."
msgstr "le informazioni SHA1 sono mancanti o inutili (%s)."
-#: apply.c:4097 builtin/checkout.c:278 builtin/reset.c:143
+#: apply.c:4098 builtin/checkout.c:279 builtin/reset.c:143
#, c-format
msgid "make_cache_entry failed for path '%s'"
msgstr "make_cache_entry non riuscito per il percorso '%s'"
-#: apply.c:4101
+#: apply.c:4102
#, c-format
msgid "could not add %s to temporary index"
msgstr "impossibile aggiungere %s all'indice temporaneo"
-#: apply.c:4111
+#: apply.c:4112
#, c-format
msgid "could not write temporary index to %s"
msgstr "impossibile scrivere l'indice temporaneo in %s"
-#: apply.c:4249
+#: apply.c:4250
#, c-format
msgid "unable to remove %s from index"
msgstr "impossibile rimuovere %s dall'indice"
-#: apply.c:4283
+#: apply.c:4284
#, c-format
msgid "corrupt patch for submodule %s"
msgstr "patch corrotta per il sottomodulo %s"
-#: apply.c:4289
+#: apply.c:4290
#, c-format
msgid "unable to stat newly created file '%s'"
msgstr "impossibile eseguire lo stat del file appena creato '%s'"
-#: apply.c:4297
+#: apply.c:4298
#, c-format
msgid "unable to create backing store for newly created file %s"
msgstr "impossibile creare l'archivio di backup per il file appena creato %s"
-#: apply.c:4303 apply.c:4448
+#: apply.c:4304 apply.c:4449
#, c-format
msgid "unable to add cache entry for %s"
msgstr "impossibile aggiungere la voce della cache per %s"
-#: apply.c:4346
+#: apply.c:4347
#, c-format
msgid "failed to write to '%s'"
msgstr "scrittura in '%s' non riuscita"
-#: apply.c:4350
+#: apply.c:4351
#, c-format
msgid "closing file '%s'"
msgstr "chiusura del file '%s' in corso"
-#: apply.c:4420
+#: apply.c:4421
#, c-format
msgid "unable to write file '%s' mode %o"
msgstr "impossibile scrivere il file '%s' con modo %o"
-#: apply.c:4518
+#: apply.c:4519
#, c-format
msgid "Applied patch %s cleanly."
msgstr "Patch %s applicata correttamente."
-#: apply.c:4526
+#: apply.c:4527
msgid "internal error"
msgstr "errore interno"
-#: apply.c:4529
+#: apply.c:4530
#, c-format
msgid "Applying patch %%s with %d reject..."
msgid_plural "Applying patch %%s with %d rejects..."
msgstr[0] "Applicazione della patch %%s con %d frammento respinto..."
msgstr[1] "Applicazione della patch %%s con %d frammenti respinti..."
-#: apply.c:4540
+#: apply.c:4541
#, c-format
msgid "truncating .rej filename to %.*s.rej"
msgstr "nome file .rej troncato a %.*s.rej"
-#: apply.c:4548 builtin/fetch.c:878 builtin/fetch.c:1168
+#: apply.c:4549 builtin/fetch.c:898 builtin/fetch.c:1194
#, c-format
msgid "cannot open %s"
msgstr "impossibile aprire %s"
-#: apply.c:4562
+#: apply.c:4563
#, c-format
msgid "Hunk #%d applied cleanly."
msgstr "Frammento %d applicato correttamente."
-#: apply.c:4566
+#: apply.c:4567
#, c-format
msgid "Rejected hunk #%d."
msgstr "Frammento %d respinto."
-#: apply.c:4676
+#: apply.c:4686
#, c-format
msgid "Skipped patch '%s'."
msgstr "Patch '%s' ignorata."
-#: apply.c:4684
+#: apply.c:4694
msgid "unrecognized input"
msgstr "input non riconosciuto"
-#: apply.c:4704
+#: apply.c:4714
msgid "unable to read index file"
msgstr "impossibile leggere il file index"
-#: apply.c:4859
+#: apply.c:4871
#, c-format
msgid "can't open patch '%s': %s"
msgstr "impossibile aprire la patch '%s': %s"
-#: apply.c:4886
+#: apply.c:4898
#, c-format
msgid "squelched %d whitespace error"
msgid_plural "squelched %d whitespace errors"
msgstr[0] "%d errore di spazi bianchi soppresso"
msgstr[1] "%d errori di spazi bianchi soppressi"
-#: apply.c:4892 apply.c:4907
+#: apply.c:4904 apply.c:4919
#, c-format
msgid "%d line adds whitespace errors."
msgid_plural "%d lines add whitespace errors."
msgstr[0] "%d riga aggiunge errori di spazi bianchi."
msgstr[1] "%d righe aggiungono errori di spazi bianchi."
-#: apply.c:4900
+#: apply.c:4912
#, c-format
msgid "%d line applied after fixing whitespace errors."
msgid_plural "%d lines applied after fixing whitespace errors."
msgstr[0] "%d riga applicata dopo la correzione di errori di spazi bianchi."
msgstr[1] "%d righe applicate dopo la correzione di errori di spazi bianchi."
-#: apply.c:4916 builtin/add.c:540 builtin/mv.c:301 builtin/rm.c:390
+#: apply.c:4928 builtin/add.c:540 builtin/mv.c:301 builtin/rm.c:390
msgid "Unable to write new index file"
msgstr "Impossibile scrivere il nuovo file index"
-#: apply.c:4943 apply.c:4946 builtin/am.c:2208 builtin/am.c:2211
-#: builtin/clone.c:123 builtin/fetch.c:128 builtin/merge.c:273
-#: builtin/pull.c:208 builtin/submodule--helper.c:407
+#: apply.c:4955 apply.c:4958 builtin/am.c:2197 builtin/am.c:2200
+#: builtin/clone.c:122 builtin/fetch.c:143 builtin/merge.c:273
+#: builtin/pull.c:209 builtin/submodule--helper.c:407
#: builtin/submodule--helper.c:1367 builtin/submodule--helper.c:1370
#: builtin/submodule--helper.c:1850 builtin/submodule--helper.c:1853
#: builtin/submodule--helper.c:2092 git-add--interactive.perl:211
msgid "path"
msgstr "percorso"
-#: apply.c:4944
+#: apply.c:4956
msgid "don't apply changes matching the given path"
msgstr "non applicare le modifiche corrispondenti al percorso specificato"
-#: apply.c:4947
+#: apply.c:4959
msgid "apply changes matching the given path"
msgstr "applica le modifiche corrispondenti al percorso specificato"
-#: apply.c:4949 builtin/am.c:2217
+#: apply.c:4961 builtin/am.c:2206
msgid "num"
msgstr "num"
-#: apply.c:4950
+#: apply.c:4962
msgid "remove <num> leading slashes from traditional diff paths"
msgstr "rimuovi <num> barre iniziali dai percorsi diff tradizionali"
-#: apply.c:4953
+#: apply.c:4965
msgid "ignore additions made by the patch"
msgstr "ignora le aggiunte create dalla patch"
-#: apply.c:4955
+#: apply.c:4967
msgid "instead of applying the patch, output diffstat for the input"
msgstr ""
"invece di applicare la patch, visualizza l'output di diffstat per l'input"
-#: apply.c:4959
+#: apply.c:4971
msgid "show number of added and deleted lines in decimal notation"
msgstr ""
"visualizza il numero di righe aggiunte ed eliminate in notazione decimale"
-#: apply.c:4961
+#: apply.c:4973
msgid "instead of applying the patch, output a summary for the input"
msgstr "invece di applicare la patch, visualizza un riassunto per l'input"
-#: apply.c:4963
+#: apply.c:4975
msgid "instead of applying the patch, see if the patch is applicable"
msgstr "invece di applicare la patch, verifica se può essere applicata"
-#: apply.c:4965
+#: apply.c:4977
msgid "make sure the patch is applicable to the current index"
msgstr "assicura che la patch sia applicabile all'indice corrente"
-#: apply.c:4967
+#: apply.c:4979
msgid "mark new files with `git add --intent-to-add`"
msgstr "contrassegna i nuovi file con `git add --intent-to-add`"
-#: apply.c:4969
+#: apply.c:4981
msgid "apply a patch without touching the working tree"
msgstr "applica una patch senza modificare l'albero di lavoro"
-#: apply.c:4971
+#: apply.c:4983
msgid "accept a patch that touches outside the working area"
msgstr ""
"accetta una patch che apporta modifiche al di fuori dell'area di lavoro"
-#: apply.c:4974
+#: apply.c:4986
msgid "also apply the patch (use with --stat/--summary/--check)"
msgstr "applica anche la patch (da usare con --stat/--summary/--check)"
-#: apply.c:4976
+#: apply.c:4988
msgid "attempt three-way merge if a patch does not apply"
msgstr "prova un merge a tre vie se la patch non si applica correttamente"
-#: apply.c:4978
+#: apply.c:4990
msgid "build a temporary index based on embedded index information"
msgstr "compila un index temporaneo basato sulle informazioni indice incluse"
-#: apply.c:4981 builtin/checkout-index.c:173 builtin/ls-files.c:524
+#: apply.c:4993 builtin/checkout-index.c:173 builtin/ls-files.c:524
msgid "paths are separated with NUL character"
msgstr "i percorsi sono separati con un carattere NUL"
-#: apply.c:4983
+#: apply.c:4995
msgid "ensure at least <n> lines of context match"
msgstr "assicura che almeno <n> righe di contesto corrispondano"
-#: apply.c:4984 builtin/am.c:2196 builtin/interpret-trailers.c:98
+#: apply.c:4996 builtin/am.c:2185 builtin/interpret-trailers.c:98
#: builtin/interpret-trailers.c:100 builtin/interpret-trailers.c:102
-#: builtin/pack-objects.c:3330 builtin/rebase.c:1421
+#: builtin/pack-objects.c:3310 builtin/rebase.c:1445
msgid "action"
msgstr "azione"
-#: apply.c:4985
+#: apply.c:4997
msgid "detect new or modified lines that have whitespace errors"
msgstr "rileva righe nuove o modificate che hanno errori di spazi bianchi"
-#: apply.c:4988 apply.c:4991
+#: apply.c:5000 apply.c:5003
msgid "ignore changes in whitespace when finding context"
msgstr "ignora modifiche agli spazi bianchi durante la ricerca dei contesti"
-#: apply.c:4994
+#: apply.c:5006
msgid "apply the patch in reverse"
msgstr "applica la patch in maniera inversa"
-#: apply.c:4996
+#: apply.c:5008
msgid "don't expect at least one line of context"
msgstr "non aspettare almeno una riga di contesto"
-#: apply.c:4998
+#: apply.c:5010
msgid "leave the rejected hunks in corresponding *.rej files"
msgstr "lascia i frammenti respinti nei file *.rej corrispondenti"
-#: apply.c:5000
+#: apply.c:5012
msgid "allow overlapping hunks"
msgstr "consenti la sovrapposizione dei frammenti"
-#: apply.c:5001 builtin/add.c:291 builtin/check-ignore.c:22
+#: apply.c:5013 builtin/add.c:291 builtin/check-ignore.c:22
#: builtin/commit.c:1337 builtin/count-objects.c:98 builtin/fsck.c:786
-#: builtin/log.c:2068 builtin/mv.c:123 builtin/read-tree.c:128
+#: builtin/log.c:2085 builtin/mv.c:123 builtin/read-tree.c:128
msgid "be verbose"
msgstr "visualizza ulteriori dettagli"
-#: apply.c:5003
+#: apply.c:5015
msgid "tolerate incorrectly detected missing new-line at the end of file"
msgstr ""
"tollera carattere fine riga rilevato erroneamente come mancante alla fine "
"del file"
-#: apply.c:5006
+#: apply.c:5018
msgid "do not trust the line counts in the hunk headers"
msgstr ""
"non fare affidamento sul numero di righe nelle intestazioni dei frammenti"
-#: apply.c:5008 builtin/am.c:2205
+#: apply.c:5020 builtin/am.c:2194
msgid "root"
msgstr "radice"
-#: apply.c:5009
+#: apply.c:5021
msgid "prepend <root> to all filenames"
msgstr "anteponi <radice> a tutti i nomi file"
@@ -835,7 +835,7 @@ msgstr "fmt"
msgid "archive format"
msgstr "formato archivio"
-#: archive.c:458 builtin/log.c:1580
+#: archive.c:458 builtin/log.c:1581
msgid "prefix"
msgstr "prefisso"
@@ -843,11 +843,12 @@ msgstr "prefisso"
msgid "prepend prefix to each pathname in the archive"
msgstr "anteponi <prefisso> a ogni nome percorso nell'archivio"
-#: archive.c:460 builtin/blame.c:862 builtin/blame.c:874 builtin/blame.c:875
-#: builtin/commit-tree.c:117 builtin/config.c:129 builtin/fast-export.c:1134
-#: builtin/fast-export.c:1136 builtin/grep.c:897 builtin/hash-object.c:105
-#: builtin/ls-files.c:560 builtin/ls-files.c:563 builtin/notes.c:412
-#: builtin/notes.c:578 builtin/read-tree.c:123 parse-options.h:177
+#: archive.c:460 builtin/blame.c:861 builtin/blame.c:873 builtin/blame.c:874
+#: builtin/commit-tree.c:117 builtin/config.c:129 builtin/fast-export.c:1162
+#: builtin/fast-export.c:1164 builtin/fast-export.c:1168 builtin/grep.c:899
+#: builtin/hash-object.c:105 builtin/ls-files.c:560 builtin/ls-files.c:563
+#: builtin/notes.c:412 builtin/notes.c:578 builtin/read-tree.c:123
+#: parse-options.h:186
msgid "file"
msgstr "file"
@@ -879,7 +880,7 @@ msgstr "comprimi meglio"
msgid "list supported archive formats"
msgstr "elenca i formati archivio supportati"
-#: archive.c:479 builtin/archive.c:91 builtin/clone.c:113 builtin/clone.c:116
+#: archive.c:479 builtin/archive.c:91 builtin/clone.c:112 builtin/clone.c:115
#: builtin/submodule--helper.c:1379 builtin/submodule--helper.c:1859
msgid "repo"
msgstr "repository"
@@ -888,7 +889,7 @@ msgstr "repository"
msgid "retrieve the archive from remote repository <repo>"
msgstr "recupera l'archivio dal repository remoto <repository>"
-#: archive.c:481 builtin/archive.c:93 builtin/difftool.c:707
+#: archive.c:481 builtin/archive.c:93 builtin/difftool.c:715
#: builtin/notes.c:498
msgid "command"
msgstr "comando"
@@ -924,26 +925,26 @@ msgstr "Argomento non supportato per il formato '%s': -%d"
msgid "cannot stream blob %s"
msgstr "impossibile eseguire lo streaming del blob %s"
-#: archive-tar.c:260 archive-zip.c:363
+#: archive-tar.c:266 archive-zip.c:363
#, c-format
msgid "unsupported file mode: 0%o (SHA1: %s)"
msgstr "modo file non supportato: 0%o (SHA1: %s)"
-#: archive-tar.c:287 archive-zip.c:353
+#: archive-tar.c:293 archive-zip.c:353
#, c-format
msgid "cannot read %s"
msgstr "impossibile leggere %s"
-#: archive-tar.c:459
+#: archive-tar.c:465
#, c-format
msgid "unable to start '%s' filter"
msgstr "impossibile avviare il filtro '%s'"
-#: archive-tar.c:462
+#: archive-tar.c:468
msgid "unable to redirect descriptor"
msgstr "impossibile ridirezionare il descrittore"
-#: archive-tar.c:469
+#: archive-tar.c:475
#, c-format
msgid "'%s' filter reported error"
msgstr "il filtro '%s' ha segnalato un errore"
@@ -968,17 +969,17 @@ msgstr "errore deflate (%d)"
msgid "timestamp too large for this system: %<PRIuMAX>"
msgstr "timestamp troppo grande per questo sistema: %<PRIuMAX>"
-#: attr.c:211
+#: attr.c:213
#, c-format
msgid "%.*s is not a valid attribute name"
msgstr "%.*s non è un nome attributo valido"
-#: attr.c:368
+#: attr.c:370
#, c-format
msgid "%s not allowed: %s:%d"
msgstr "%s non consentito: %s:%d"
-#: attr.c:408
+#: attr.c:410
msgid ""
"Negative patterns are ignored in git attributes\n"
"Use '\\!' for literal leading exclamation."
@@ -1107,41 +1108,41 @@ msgstr[0] ""
msgstr[1] ""
"Bisezione in corso: %d revisioni rimanenti da testare dopo questa %s\n"
-#: blame.c:2697
+#: blame.c:2700
msgid "--contents and --reverse do not blend well."
msgstr "--contents e --reverse non sono compatibili."
-#: blame.c:2711
+#: blame.c:2714
msgid "cannot use --contents with final commit object name"
msgstr "impossibile usare --contents con il nome oggetto del commit finale"
-#: blame.c:2732
+#: blame.c:2735
msgid "--reverse and --first-parent together require specified latest commit"
msgstr ""
"le opzioni --reverse e --first-parent se usate insieme richiedono che sia "
"specificato l'ultimo commit"
-#: blame.c:2741 bundle.c:167 ref-filter.c:2196 remote.c:1938 sequencer.c:2033
-#: sequencer.c:4348 builtin/commit.c:1020 builtin/log.c:387 builtin/log.c:963
-#: builtin/log.c:1451 builtin/log.c:1827 builtin/log.c:2117 builtin/merge.c:411
-#: builtin/pack-objects.c:3148 builtin/pack-objects.c:3163
+#: blame.c:2744 bundle.c:167 ref-filter.c:2203 remote.c:1941 sequencer.c:1971
+#: sequencer.c:4305 builtin/commit.c:1020 builtin/log.c:387 builtin/log.c:964
+#: builtin/log.c:1452 builtin/log.c:1844 builtin/log.c:2134 builtin/merge.c:411
+#: builtin/pack-objects.c:3128 builtin/pack-objects.c:3143
#: builtin/shortlog.c:192
msgid "revision walk setup failed"
msgstr "impostazione percorso revisioni non riuscita"
-#: blame.c:2759
+#: blame.c:2762
msgid ""
"--reverse --first-parent together require range along first-parent chain"
msgstr ""
"le opzioni --reverse e --first-parent se usate insieme richiedono che sia "
"specificato un intervallo nella catena del primo commit genitore"
-#: blame.c:2770
+#: blame.c:2773
#, c-format
msgid "no such path %s in %s"
msgstr "il percorso %s in %s non esiste"
-#: blame.c:2781
+#: blame.c:2784
#, c-format
msgid "cannot read blob %s for path %s"
msgstr "impossibile leggere il blob %s per il percorso %s"
@@ -1303,7 +1304,7 @@ msgstr "'%s' non sembra essere un file bundle v2"
msgid "unrecognized header: %s%s (%d)"
msgstr "intestazione non riconosciuta: %s%s (%d)"
-#: bundle.c:90 rerere.c:480 rerere.c:690 sequencer.c:2283 sequencer.c:3024
+#: bundle.c:90 rerere.c:480 rerere.c:690 sequencer.c:2221 sequencer.c:2962
#: builtin/commit.c:791
#, c-format
msgid "could not open '%s'"
@@ -1356,7 +1357,7 @@ msgstr "comando rev-list morto"
msgid "ref '%s' is excluded by the rev-list options"
msgstr "il riferimento '%s' è escluso dalle opzioni di rev-list"
-#: bundle.c:460 builtin/log.c:202 builtin/log.c:1732 builtin/shortlog.c:306
+#: bundle.c:460 builtin/log.c:202 builtin/log.c:1733 builtin/shortlog.c:306
#, c-format
msgid "unrecognized argument: %s"
msgstr "argomento non riconosciuto: %s"
@@ -1379,8 +1380,8 @@ msgstr "comando index-pack morto"
msgid "invalid color value: %.*s"
msgstr "valore colore non valido: %.*s"
-#: commit.c:50 sequencer.c:2727 builtin/am.c:355 builtin/am.c:399
-#: builtin/am.c:1378 builtin/am.c:2020 builtin/replace.c:455
+#: commit.c:50 sequencer.c:2665 builtin/am.c:354 builtin/am.c:398
+#: builtin/am.c:1366 builtin/am.c:2009 builtin/replace.c:456
#, c-format
msgid "could not parse %s"
msgstr "impossibile analizzare %s"
@@ -1410,27 +1411,27 @@ msgstr ""
"Per disabilitare questo messaggio, esegui\n"
"\"git config advice.graftFileDeprecated false\""
-#: commit.c:1127
+#: commit.c:1128
#, c-format
msgid "Commit %s has an untrusted GPG signature, allegedly by %s."
msgstr "Il commit %s ha una firma GPG non affidabile, presumibilmente di %s."
-#: commit.c:1130
+#: commit.c:1131
#, c-format
msgid "Commit %s has a bad GPG signature allegedly by %s."
msgstr "Il commit %s ha una firma GPG non valida presumibilmente di %s."
-#: commit.c:1133
+#: commit.c:1134
#, c-format
msgid "Commit %s does not have a GPG signature."
msgstr "Il commit %s non ha una firma GPG."
-#: commit.c:1136
+#: commit.c:1137
#, c-format
msgid "Commit %s has a good GPG signature by %s\n"
msgstr "Il commit %s ha una firma GPG valida di %s\n"
-#: commit.c:1390
+#: commit.c:1391
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"
@@ -1494,55 +1495,65 @@ msgstr "catena grafo dei commit non valida: la riga '%s' non è un hash"
msgid "unable to find all commit-graph files"
msgstr "impossibile trovare tutti i file grafo dei commit"
-#: commit-graph.c:554 commit-graph.c:614
+#: commit-graph.c:561 commit-graph.c:621
msgid "invalid commit position. commit-graph is likely corrupt"
msgstr ""
"posizione commit non valida. Il grafo dei commit è probabilmente corrotto"
-#: commit-graph.c:575
+#: commit-graph.c:582
#, c-format
msgid "could not find commit %s"
msgstr "impossibile trovare il commit %s"
-#: commit-graph.c:1002 builtin/pack-objects.c:2657
+#: commit-graph.c:855 builtin/am.c:1287
+#, c-format
+msgid "unable to parse commit %s"
+msgstr "impossibile analizzare il commit %s"
+
+#: commit-graph.c:859
+#, c-format
+msgid "unable to get tree for %s"
+msgstr "impossibile recuperare l'albero per %s"
+
+#: commit-graph.c:1017 builtin/pack-objects.c:2641
#, c-format
msgid "unable to get type of object %s"
msgstr "impossibile recuperare il tipo dell'oggetto %s"
-#: commit-graph.c:1034
+#: commit-graph.c:1049
msgid "Loading known commits in commit graph"
msgstr "Caricamento commit noti nel grafo dei commit in corso"
-#: commit-graph.c:1051
+#: commit-graph.c:1066
msgid "Expanding reachable commits in commit graph"
msgstr "Espansione dei commit raggiungibili nel grafo dei commit in corso"
-#: commit-graph.c:1070
+#: commit-graph.c:1085
msgid "Clearing commit marks in commit graph"
msgstr "Rimozione dei contrassegni commit nel grafo dei commit in corso"
-#: commit-graph.c:1089
+#: commit-graph.c:1104
msgid "Computing commit graph generation numbers"
msgstr "Calcolo numeri generazione del grafo dei commit in corso"
-#: commit-graph.c:1163
+#: commit-graph.c:1179
#, c-format
msgid "Finding commits for commit graph in %d pack"
msgid_plural "Finding commits for commit graph in %d packs"
msgstr[0] "Ricerca dei commit per il grafo dei commit in %d pack in corso"
msgstr[1] "Ricerca dei commit per il grafo dei commit in %d pack in corso"
-#: commit-graph.c:1176
+#: commit-graph.c:1192
#, c-format
msgid "error adding pack %s"
msgstr "errore durante l'aggiunta del pack %s"
-#: commit-graph.c:1180
+#: commit-graph.c:1196
#, c-format
msgid "error opening index for %s"
msgstr "errore durante l'apertura dell'indice per %s"
-#: commit-graph.c:1204
+#: commit-graph.c:1220
#, c-format
msgid "Finding commits for commit graph from %d ref"
msgid_plural "Finding commits for commit graph from %d refs"
@@ -1551,132 +1562,137 @@ msgstr[0] ""
msgstr[1] ""
"Ricerca dei commit per il grafo dei commit da %d riferimenti in corso"
-#: commit-graph.c:1238
+#: commit-graph.c:1240
+#, c-format
+msgid "invalid commit object id: %s"
+msgstr "ID oggetto commit non valido: %s"
+
+#: commit-graph.c:1255
msgid "Finding commits for commit graph among packed objects"
msgstr ""
"Ricerca dei commit per il grafo dei commit fra gli oggetti nei pack in corso"
-#: commit-graph.c:1253
+#: commit-graph.c:1270
msgid "Counting distinct commits in commit graph"
msgstr "Conteggio commit distinti nel grafo dei commit in corso"
-#: commit-graph.c:1284
+#: commit-graph.c:1300
msgid "Finding extra edges in commit graph"
msgstr "Ricerca degli archi aggiuntivi nel grafo dei commit in corso"
-#: commit-graph.c:1332
+#: commit-graph.c:1346
msgid "failed to write correct number of base graph ids"
msgstr "impossibile scrivere il numero esatto degli ID grafo di base"
-#: commit-graph.c:1365 midx.c:811
+#: commit-graph.c:1379 midx.c:810
#, c-format
msgid "unable to create leading directories of %s"
msgstr "impossibile creare le prime directory di %s"
-#: commit-graph.c:1377 builtin/index-pack.c:306 builtin/repack.c:240
+#: commit-graph.c:1391 builtin/index-pack.c:306 builtin/repack.c:241
#, c-format
msgid "unable to create '%s'"
msgstr "impossibile creare '%s'"
-#: commit-graph.c:1437
+#: commit-graph.c:1451
#, c-format
msgid "Writing out commit graph in %d pass"
msgid_plural "Writing out commit graph in %d passes"
msgstr[0] "Scrittura in %d passaggio del grafo dei commit in corso"
msgstr[1] "Scrittura in %d passaggi del grafo dei commit in corso"
-#: commit-graph.c:1478
+#: commit-graph.c:1492
msgid "unable to open commit-graph chain file"
msgstr "impossibile aprire il file catena grafo dei commit"
-#: commit-graph.c:1490
+#: commit-graph.c:1504
msgid "failed to rename base commit-graph file"
msgstr "impossibile ridenominare il file di base grafo dei commit"
-#: commit-graph.c:1510
+#: commit-graph.c:1524
msgid "failed to rename temporary commit-graph file"
msgstr "impossibile ridenominare il file temporaneo grafo dei commit"
-#: commit-graph.c:1621
+#: commit-graph.c:1635
msgid "Scanning merged commits"
msgstr "Scansione dei commit sottoposti a merge in corso"
-#: commit-graph.c:1632
+#: commit-graph.c:1646
#, c-format
msgid "unexpected duplicate commit id %s"
msgstr "ID commit duplicato inatteso: %s"
-#: commit-graph.c:1657
+#: commit-graph.c:1670
msgid "Merging commit-graph"
msgstr "Merge del grafo dei commit in corso"
-#: commit-graph.c:1844
+#: commit-graph.c:1860
#, c-format
msgid "the commit graph format cannot write %d commits"
msgstr ""
"il formato del grafo dei commit non può essere usato per scrivere %d commit"
-#: commit-graph.c:1855
+#: commit-graph.c:1871
msgid "too many commits to write graph"
msgstr "troppi commit da scrivere nel grafo"
-#: commit-graph.c:1945
+#: commit-graph.c:1961
msgid "the commit-graph file has incorrect checksum and is likely corrupt"
msgstr ""
"il file del grafo dei commit ha un checksum non corretto e probabilmente è "
"corrotto"
-#: commit-graph.c:1955
+#: commit-graph.c:1971
#, c-format
msgid "commit-graph has incorrect OID order: %s then %s"
msgstr "il grafo dei commit ha un ordine OID non corretto: %s seguito da %s"
-#: commit-graph.c:1965 commit-graph.c:1980
+#: commit-graph.c:1981 commit-graph.c:1996
#, c-format
msgid "commit-graph has incorrect fanout value: fanout[%d] = %u != %u"
msgstr ""
"il grafo dei commit ha un valore fanout non corretto: fanout[%d] = %u != %u"
-#: commit-graph.c:1972
+#: commit-graph.c:1988
#, c-format
msgid "failed to parse commit %s from commit-graph"
msgstr "impossibile analizzare il commit %s nel grafo dei commit"
-#: commit-graph.c:1989
+#: commit-graph.c:2006
msgid "Verifying commits in commit graph"
msgstr "Verifica dei commit nel grafo dei commit in corso"
-#: commit-graph.c:2002
+#: commit-graph.c:2020
#, c-format
msgid "failed to parse commit %s from object database for commit-graph"
msgstr ""
"impossibile analizzare il commit %s dal database oggetti per il grafo dei "
"commit"
-#: commit-graph.c:2009
+#: commit-graph.c:2027
#, c-format
msgid "root tree OID for commit %s in commit-graph is %s != %s"
msgstr ""
"l'OID dell'albero radice per il commit %s nel grafo dei commit è %s != %s"
-#: commit-graph.c:2019
+#: commit-graph.c:2037
#, c-format
msgid "commit-graph parent list for commit %s is too long"
msgstr "l'elenco genitori nel grafo dei commit per il commit %s è troppo lungo"
-#: commit-graph.c:2028
+#: commit-graph.c:2046
#, c-format
msgid "commit-graph parent for %s is %s != %s"
msgstr "il genitore nel grafo dei commit per %s è %s != %s"
-#: commit-graph.c:2041
+#: commit-graph.c:2059
#, c-format
msgid "commit-graph parent list for commit %s terminates early"
msgstr ""
"l'elenco genitori nel grafo dei commit per il commit %s è finito prima del "
"previsto"
-#: commit-graph.c:2046
+#: commit-graph.c:2064
#, c-format
msgid ""
"commit-graph has generation number zero for commit %s, but non-zero elsewhere"
@@ -1684,7 +1700,7 @@ msgstr ""
"il grafo dei commit ha un numero generazione zero per il commit %s ma non "
"pari a zero per gli altri"
-#: commit-graph.c:2050
+#: commit-graph.c:2068
#, c-format
msgid ""
"commit-graph has non-zero generation number for commit %s, but zero elsewhere"
@@ -1692,12 +1708,12 @@ msgstr ""
"il grafo dei commit ha un numero generazione non pari a zero per il commit "
"%s ma pari a zero per gli altri"
-#: commit-graph.c:2065
+#: commit-graph.c:2083
#, c-format
msgid "commit-graph generation for commit %s is %u != %u"
msgstr "il numero generazione nel grafo dei commit per il commit %s è %u != %u"
-#: commit-graph.c:2071
+#: commit-graph.c:2089
#, c-format
msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>"
msgstr ""
@@ -1746,7 +1762,7 @@ msgstr "la chiave non contiene una sezione: %s"
msgid "key does not contain variable name: %s"
msgstr "la chiave non contiene un nome variabile: %s"
-#: config.c:406 sequencer.c:2463
+#: config.c:406 sequencer.c:2401
#, c-format
msgid "invalid key: %s"
msgstr "chiave non valida: %s"
@@ -1873,155 +1889,148 @@ msgstr "core.commentChar dovrebbe essere composto da un solo carattere"
msgid "invalid mode for object creation: %s"
msgstr "modalità non valida per la creazione di un oggetto: %s"
-#: config.c:1430
+#: config.c:1425
#, c-format
msgid "malformed value for %s"
msgstr "valore malformato per %s"
-#: config.c:1456
+#: config.c:1451
#, c-format
msgid "malformed value for %s: %s"
msgstr "valore malformato per %s: %s"
-#: config.c:1457
+#: config.c:1452
msgid "must be one of nothing, matching, simple, upstream or current"
msgstr "dev'essere nothing, matching, simple, upstream o current"
-#: config.c:1518 builtin/pack-objects.c:3410
+#: config.c:1513 builtin/pack-objects.c:3394
#, c-format
msgid "bad pack compression level %d"
msgstr "livello compressione pack %d non valido"
-#: config.c:1639
+#: config.c:1634
#, c-format
msgid "unable to load config blob object '%s'"
msgstr "impossibile caricare l'oggetto blob configurazione '%s'"
-#: config.c:1642
+#: config.c:1637
#, c-format
msgid "reference '%s' does not point to a blob"
msgstr "il riferimento '%s' non punta ad un blob"
-#: config.c:1659
+#: config.c:1654
#, c-format
msgid "unable to resolve config blob '%s'"
msgstr "impossibile risolvere il blob configurazione '%s'"
-#: config.c:1689
+#: config.c:1684
#, c-format
msgid "failed to parse %s"
msgstr "analisi di %s non riuscita"
-#: config.c:1745
+#: config.c:1740
msgid "unable to parse command-line config"
msgstr "impossibile analizzare la configurazione a riga di comando"
-#: config.c:2094
+#: config.c:2091
msgid "unknown error occurred while reading the configuration files"
msgstr ""
"si è verificato un errore imprevisto durante la lettura dei file di "
"configurazione"
-#: config.c:2264
+#: config.c:2261
#, c-format
msgid "Invalid %s: '%s'"
msgstr "%s non valido: '%s'"
-#: config.c:2307
-#, c-format
-msgid "unknown core.untrackedCache value '%s'; using 'keep' default value"
-msgstr ""
-"valore core.untrackedCache '%s' non valido; utilizzerò il valore predefinito "
-"'keep'"
-
-#: config.c:2333
+#: config.c:2306
#, c-format
msgid "splitIndex.maxPercentChange value '%d' should be between 0 and 100"
msgstr ""
"il valore splitIndex.maxPercentChange '%d' dovrebbe essere compreso fra 0 e "
"100"
-#: config.c:2379
+#: config.c:2352
#, c-format
msgid "unable to parse '%s' from command-line config"
msgstr "impossibile analizzare '%s' dalla configurazione a riga di comando"
-#: config.c:2381
+#: config.c:2354
#, c-format
msgid "bad config variable '%s' in file '%s' at line %d"
msgstr "variabile configurazione '%s' errata nel file '%s' alla riga %d"
-#: config.c:2462
+#: config.c:2435
#, c-format
msgid "invalid section name '%s'"
msgstr "nome sezione '%s' non valido"
-#: config.c:2494
+#: config.c:2467
#, c-format
msgid "%s has multiple values"
msgstr "%s ha più valori"
-#: config.c:2523
+#: config.c:2496
#, c-format
msgid "failed to write new configuration file %s"
msgstr "scrittura del nuovo file di configurazione %s non riuscita"
-#: config.c:2775 config.c:3099
+#: config.c:2748 config.c:3072
#, c-format
msgid "could not lock config file %s"
msgstr "impossibile bloccare il file di configurazione %s"
-#: config.c:2786
+#: config.c:2759
#, c-format
msgid "opening %s"
msgstr "apertura di %s in corso"
-#: config.c:2821 builtin/config.c:328
+#: config.c:2794 builtin/config.c:328
#, c-format
msgid "invalid pattern: %s"
msgstr "pattern non valido: %s"
-#: config.c:2846
+#: config.c:2819
#, c-format
msgid "invalid config file %s"
msgstr "file di configurazione %s non valido"
-#: config.c:2859 config.c:3112
+#: config.c:2832 config.c:3085
#, c-format
msgid "fstat on %s failed"
msgstr "fstat di %s non riuscita"
-#: config.c:2870
+#: config.c:2843
#, c-format
msgid "unable to mmap '%s'"
msgstr "impossibile eseguire mmap su '%s'"
-#: config.c:2879 config.c:3117
+#: config.c:2852 config.c:3090
#, c-format
msgid "chmod on %s failed"
msgstr "esecuzione chmod su %s non riuscita"
-#: config.c:2964 config.c:3214
+#: config.c:2937 config.c:3187
#, c-format
msgid "could not write config file %s"
msgstr "impossibile scrivere il file di configurazione %s"
-#: config.c:2998
+#: config.c:2971
#, c-format
msgid "could not set '%s' to '%s'"
msgstr "impossibile impostare '%s' a '%s'"
-#: config.c:3000 builtin/remote.c:782
+#: config.c:2973 builtin/remote.c:782
#, c-format
msgid "could not unset '%s'"
msgstr "impossibile eliminare l'impostazione di '%s'"
-#: config.c:3090
+#: config.c:3063
#, c-format
msgid "invalid section name: %s"
msgstr "nome sezione non valido: %s"
-#: config.c:3257
+#: config.c:3230
#, c-format
msgid "missing value for '%s'"
msgstr "valore mancante per '%s'"
@@ -2146,7 +2155,7 @@ msgstr "impossibile risolvere %s (%s)"
msgid "unknown port %s"
msgstr "porta %s sconosciuta"
-#: connect.c:845 connect.c:1171
+#: connect.c:845 connect.c:1175
#, c-format
msgid "strange hostname '%s' blocked"
msgstr "nome host strano '%s' bloccato"
@@ -2161,60 +2170,60 @@ msgstr "porta strana '%s' bloccata"
msgid "cannot start proxy %s"
msgstr "impossibile avviare il proxy %s"
-#: connect.c:924
+#: connect.c:928
msgid "no path specified; see 'git help pull' for valid url syntax"
msgstr ""
"nessun percorso specificato; vedere 'git help pull' per le sintassi URL "
"valide"
-#: connect.c:1119
+#: connect.c:1123
msgid "ssh variant 'simple' does not support -4"
msgstr "la variante SSH 'simple' non supporta -4"
-#: connect.c:1131
+#: connect.c:1135
msgid "ssh variant 'simple' does not support -6"
msgstr "la variante SSH 'simple' non supporta -6"
-#: connect.c:1148
+#: connect.c:1152
msgid "ssh variant 'simple' does not support setting port"
msgstr "la variante SSH 'simple' non supporta l'impostazione della porta"
-#: connect.c:1260
+#: connect.c:1264
#, c-format
msgid "strange pathname '%s' blocked"
msgstr "percorso strano '%s' bloccato"
-#: connect.c:1307
+#: connect.c:1311
msgid "unable to fork"
msgstr "impossibile eseguire fork"
-#: connected.c:86 builtin/fsck.c:221 builtin/prune.c:43
+#: connected.c:88 builtin/fsck.c:221 builtin/prune.c:43
msgid "Checking connectivity"
msgstr "Controllo connessione in corso"
-#: connected.c:98
+#: connected.c:100
msgid "Could not run 'git rev-list'"
msgstr "Impossibile eseguire 'git-rev-list'"
-#: connected.c:118
+#: connected.c:120
msgid "failed write to rev-list"
msgstr "scrittura nella rev-list non riuscita"
-#: connected.c:125
+#: connected.c:127
msgid "failed to close rev-list's stdin"
msgstr "chiusura standard input della rev-list non riuscita"
-#: convert.c:193
+#: convert.c:194
#, c-format
msgid "illegal crlf_action %d"
msgstr "crlf_action %d illecita"
-#: convert.c:206
+#: convert.c:207
#, c-format
msgid "CRLF would be replaced by LF in %s"
msgstr "CRLF sarebbe sostituito da LF in %s"
-#: convert.c:208
+#: convert.c:209
#, c-format
msgid ""
"CRLF will be replaced by LF in %s.\n"
@@ -2223,12 +2232,12 @@ msgstr ""
"CRLF sarà sostituito da LF in %s.\n"
"Il file avrà i suoi fine riga originari nella propria directory di lavoro"
-#: convert.c:216
+#: convert.c:217
#, c-format
msgid "LF would be replaced by CRLF in %s"
msgstr "LF sarebbe sostituito da CRLF in %s"
-#: convert.c:218
+#: convert.c:219
#, c-format
msgid ""
"LF will be replaced by CRLF in %s.\n"
@@ -2237,12 +2246,12 @@ msgstr ""
"LF sarà sostituito da CRLF in %s.\n"
"Il file avrà i suoi fine riga originari nella propria directory di lavoro"
-#: convert.c:279
+#: convert.c:280
#, c-format
msgid "BOM is prohibited in '%s' if encoded as %s"
msgstr "Il BOM è vietato in '%s' se il file è codificato come %s"
-#: convert.c:286
+#: convert.c:287
#, c-format
msgid ""
"The file '%s' contains a byte order mark (BOM). Please use UTF-%s as working-"
@@ -2251,12 +2260,12 @@ msgstr ""
"Il file '%s' contiene un indicatore dell'ordine dei byte (BOM). Usare UTF-%s "
"come codifica dell'albero di lavoro."
-#: convert.c:304
+#: convert.c:305
#, c-format
msgid "BOM is required in '%s' if encoded as %s"
msgstr "Il BOM è richiesto in '%s' se il file è codificato come %s"
-#: convert.c:306
+#: convert.c:307
#, c-format
msgid ""
"The file '%s' is missing a byte order mark (BOM). Please use UTF-%sBE or UTF-"
@@ -2266,51 +2275,51 @@ msgstr ""
"o UTF-%sLE (a seconda dell'ordine dei byte) come codifica dell'albero di "
"lavoro."
-#: convert.c:424 convert.c:495
+#: convert.c:425 convert.c:496
#, c-format
msgid "failed to encode '%s' from %s to %s"
msgstr "conversione della codifica '%s' da %s a %s non riuscita"
-#: convert.c:467
+#: convert.c:468
#, c-format
msgid "encoding '%s' from %s to %s and back is not the same"
msgstr ""
"il risultato della codifica di '%s' da %s a %s e viceversa non è lo stesso"
-#: convert.c:673
+#: convert.c:674
#, c-format
msgid "cannot fork to run external filter '%s'"
msgstr "impossibile eseguire fork per eseguire il filtro esterno '%s'"
-#: convert.c:693
+#: convert.c:694
#, c-format
msgid "cannot feed the input to external filter '%s'"
msgstr "impossibile fornire l'input al filtro esterno '%s'"
-#: convert.c:700
+#: convert.c:701
#, c-format
msgid "external filter '%s' failed %d"
msgstr "esecuzione del filtro esterno '%s' non riuscita: %d"
-#: convert.c:735 convert.c:738
+#: convert.c:736 convert.c:739
#, c-format
msgid "read from external filter '%s' failed"
msgstr "lettura dal filtro esterno '%s' non riuscita"
-#: convert.c:741 convert.c:796
+#: convert.c:742 convert.c:797
#, c-format
msgid "external filter '%s' failed"
msgstr "esecuzione del filtro esterno '%s' non riuscita"
-#: convert.c:844
+#: convert.c:845
msgid "unexpected filter type"
msgstr "tipo filtro inatteso"
-#: convert.c:855
+#: convert.c:856
msgid "path name too long for external filter"
msgstr "nome percorso troppo lungo per il filtro esterno"
-#: convert.c:929
+#: convert.c:930
#, c-format
msgid ""
"external filter '%s' is not available anymore although not all paths have "
@@ -2319,67 +2328,67 @@ msgstr ""
"il filtro esterno '%s' non è più disponibile nonostante non tutti i percorsi "
"siano stati filtrati"
-#: convert.c:1228
+#: convert.c:1229
msgid "true/false are no valid working-tree-encodings"
msgstr "true/false non sono codifiche dell'albero di lavoro valide"
-#: convert.c:1398 convert.c:1432
+#: convert.c:1417 convert.c:1451
#, c-format
msgid "%s: clean filter '%s' failed"
msgstr "%s: esecuzione del filtro clean '%s' non riuscita"
-#: convert.c:1476
+#: convert.c:1495
#, c-format
msgid "%s: smudge filter %s failed"
msgstr "%s: esecuzione del filtro smudge '%s' non riuscita"
-#: date.c:137
+#: date.c:138
msgid "in the future"
msgstr "in futuro"
-#: date.c:143
+#: date.c:144
#, c-format
msgid "%<PRIuMAX> second ago"
msgid_plural "%<PRIuMAX> seconds ago"
msgstr[0] "%<PRIuMAX> secondo fa"
msgstr[1] "%<PRIuMAX> secondi fa"
-#: date.c:150
+#: date.c:151
#, c-format
msgid "%<PRIuMAX> minute ago"
msgid_plural "%<PRIuMAX> minutes ago"
msgstr[0] "%<PRIuMAX> minuto fa"
msgstr[1] "%<PRIuMAX> minuti fa"
-#: date.c:157
+#: date.c:158
#, c-format
msgid "%<PRIuMAX> hour ago"
msgid_plural "%<PRIuMAX> hours ago"
msgstr[0] "%<PRIuMAX> ora fa"
msgstr[1] "%<PRIuMAX> ore fa"
-#: date.c:164
+#: date.c:165
#, c-format
msgid "%<PRIuMAX> day ago"
msgid_plural "%<PRIuMAX> days ago"
msgstr[0] "%<PRIuMAX> giorno fa"
msgstr[1] "%<PRIuMAX> giorni fa"
-#: date.c:170
+#: date.c:171
#, c-format
msgid "%<PRIuMAX> week ago"
msgid_plural "%<PRIuMAX> weeks ago"
msgstr[0] "%<PRIuMAX> settimana fa"
msgstr[1] "%<PRIuMAX> settimane fa"
-#: date.c:177
+#: date.c:178
#, c-format
msgid "%<PRIuMAX> month ago"
msgid_plural "%<PRIuMAX> months ago"
msgstr[0] "%<PRIuMAX> mese fa"
msgstr[1] "%<PRIuMAX> mesi fa"
-#: date.c:188
+#: date.c:189
#, c-format
msgid "%<PRIuMAX> year"
msgid_plural "%<PRIuMAX> years"
@@ -2387,14 +2396,14 @@ msgstr[0] "%<PRIuMAX> anno"
msgstr[1] "%<PRIuMAX> anni"
#. TRANSLATORS: "%s" is "<n> years"
-#: date.c:191
+#: date.c:192
#, c-format
msgid "%s, %<PRIuMAX> month ago"
msgid_plural "%s, %<PRIuMAX> months ago"
msgstr[0] "%s, %<PRIuMAX> mese fa"
msgstr[1] "%s, %<PRIuMAX> mesi fa"
-#: date.c:196 date.c:201
+#: date.c:197 date.c:202
#, c-format
msgid "%<PRIuMAX> year ago"
msgid_plural "%<PRIuMAX> years ago"
@@ -2433,7 +2442,7 @@ msgstr "Contrassegnate %d isole, fatto.\n"
msgid "failed to read orderfile '%s'"
msgstr "lettura dell'orderfile '%s' non riuscita"
-#: diffcore-rename.c:544
+#: diffcore-rename.c:543
msgid "Performing inexact rename detection"
msgstr "Rilevamento ridenominazione non esatta in corso"
@@ -2502,36 +2511,36 @@ msgstr ""
"Trovati errori nella variabile di configurazione 'diff.dirstat':\n"
"%s"
-#: diff.c:4215
+#: diff.c:4218
#, c-format
msgid "external diff died, stopping at %s"
msgstr "processo esterno diff morto, mi fermo a %s"
-#: diff.c:4560
+#: diff.c:4563
msgid "--name-only, --name-status, --check and -s are mutually exclusive"
msgstr ""
"le opzioni --name-only, --name-status, --check e -s sono mutuamente esclusive"
-#: diff.c:4563
+#: diff.c:4566
msgid "-G, -S and --find-object are mutually exclusive"
msgstr "le opzioni -G, -S e --find-object sono mutuamente esclusive"
-#: diff.c:4641
+#: diff.c:4644
msgid "--follow requires exactly one pathspec"
msgstr "--follow richiede esattamente uno specificatore percorso"
-#: diff.c:4689
+#: diff.c:4692
#, c-format
msgid "invalid --stat value: %s"
msgstr "valore non valido per --stat: %s"
-#: diff.c:4694 diff.c:4699 diff.c:4704 diff.c:4709 diff.c:5222
+#: diff.c:4697 diff.c:4702 diff.c:4707 diff.c:4712 diff.c:5225
#: parse-options.c:199 parse-options.c:203
#, c-format
msgid "%s expects a numerical value"
msgstr "%s richiede un valore numerico"
-#: diff.c:4726
+#: diff.c:4729
#, c-format
msgid ""
"Failed to parse --dirstat/-X option parameter:\n"
@@ -2540,42 +2549,42 @@ msgstr ""
"Analisi del parametro dell'opzione --dirstat/-X non riuscita:\n"
"%s"
-#: diff.c:4811
+#: diff.c:4814
#, c-format
msgid "unknown change class '%c' in --diff-filter=%s"
msgstr "classe modifica '%c' sconosciuta in --diff-filter=%s"
-#: diff.c:4835
+#: diff.c:4838
#, c-format
msgid "unknown value after ws-error-highlight=%.*s"
msgstr "valore sconosciuto dopo ws-error-highlight=%.*s"
-#: diff.c:4849
+#: diff.c:4852
#, c-format
msgid "unable to resolve '%s'"
msgstr "impossibile risolvere '%s'"
-#: diff.c:4899 diff.c:4905
+#: diff.c:4902 diff.c:4908
#, c-format
msgid "%s expects <n>/<m> form"
msgstr "%s richiede il formato <n>/<m>"
-#: diff.c:4917
+#: diff.c:4920
#, c-format
msgid "%s expects a character, got '%s'"
msgstr "%s richiede un carattere, ricevuto '%s'"
-#: diff.c:4938
+#: diff.c:4941
#, c-format
msgid "bad --color-moved argument: %s"
msgstr "argomento --color-moved errato: %s"
-#: diff.c:4957
+#: diff.c:4960
#, c-format
msgid "invalid mode '%s' in --color-moved-ws"
msgstr "modo non valido '%s' in --color-moved-ws"
-#: diff.c:4997
+#: diff.c:5000
msgid ""
"option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and "
"\"histogram\""
@@ -2583,151 +2592,151 @@ msgstr ""
"l'opzione diff-algorithm accetta i valori \"myers\", \"minimal\", \"patience"
"\" e \"histogram\""
-#: diff.c:5033 diff.c:5053
+#: diff.c:5036 diff.c:5056
#, c-format
msgid "invalid argument to %s"
msgstr "argomento non valido per %s"
-#: diff.c:5191
+#: diff.c:5194
#, c-format
msgid "failed to parse --submodule option parameter: '%s'"
msgstr "analisi del parametro dell'opzione --submodule non riuscita: '%s'"
-#: diff.c:5247
+#: diff.c:5250
#, c-format
msgid "bad --word-diff argument: %s"
msgstr "argomento --word-diff errato: %s"
-#: diff.c:5270
+#: diff.c:5273
msgid "Diff output format options"
msgstr "Opzioni formato output diff"
-#: diff.c:5272 diff.c:5278
+#: diff.c:5275 diff.c:5281
msgid "generate patch"
msgstr "genera patch"
-#: diff.c:5275 builtin/log.c:172
+#: diff.c:5278 builtin/log.c:172
msgid "suppress diff output"
msgstr "non visualizzare l'output del diff"
-#: diff.c:5280 diff.c:5394 diff.c:5401
+#: diff.c:5283 diff.c:5397 diff.c:5404
msgid "<n>"
msgstr "<n>"
-#: diff.c:5281 diff.c:5284
+#: diff.c:5284 diff.c:5287
msgid "generate diffs with <n> lines context"
msgstr "genera diff con <n> righe di contesto"
-#: diff.c:5286
+#: diff.c:5289
msgid "generate the diff in raw format"
msgstr "genera il diff in formato grezzo"
-#: diff.c:5289
+#: diff.c:5292
msgid "synonym for '-p --raw'"
msgstr "sinonimo di '-p --raw'"
-#: diff.c:5293
+#: diff.c:5296
msgid "synonym for '-p --stat'"
msgstr "sinonimo di '-p --stat'"
-#: diff.c:5297
+#: diff.c:5300
msgid "machine friendly --stat"
msgstr "--stat leggibile da una macchina"
-#: diff.c:5300
+#: diff.c:5303
msgid "output only the last line of --stat"
msgstr "emetti in output solo l'ultima riga di --stat"
-#: diff.c:5302 diff.c:5310
+#: diff.c:5305 diff.c:5313
msgid "<param1,param2>..."
msgstr "<parametro1,parametro2>..."
-#: diff.c:5303
+#: diff.c:5306
msgid ""
"output the distribution of relative amount of changes for each sub-directory"
msgstr ""
"emetti in output la distribuzione del numero di modifiche relativo a ogni "
"sottodirectory"
-#: diff.c:5307
+#: diff.c:5310
msgid "synonym for --dirstat=cumulative"
msgstr "sinonimo di --dirstat=cumulative"
-#: diff.c:5311
+#: diff.c:5314
msgid "synonym for --dirstat=files,param1,param2..."
msgstr "sinonimo di --dirstat=files,parametro1,parametro2..."
-#: diff.c:5315
+#: diff.c:5318
msgid "warn if changes introduce conflict markers or whitespace errors"
msgstr ""
"avvisa se le modifiche introducono marcatori conflitto o errori spazi bianchi"
-#: diff.c:5318
+#: diff.c:5321
msgid "condensed summary such as creations, renames and mode changes"
msgstr ""
"riassunto conciso (ad es. elementi creati, ridenominati e modifiche modi)"
-#: diff.c:5321
+#: diff.c:5324
msgid "show only names of changed files"
msgstr "visualizza solo i nomi dei file modificati"
-#: diff.c:5324
+#: diff.c:5327
msgid "show only names and status of changed files"
msgstr "visualizza solo i nomi e lo stato dei file modificati"
-#: diff.c:5326
+#: diff.c:5329
msgid "<width>[,<name-width>[,<count>]]"
msgstr "<ampiezza>[,<ampiezza nome>[,<numero>]]"
-#: diff.c:5327
+#: diff.c:5330
msgid "generate diffstat"
msgstr "genera diffstat"
-#: diff.c:5329 diff.c:5332 diff.c:5335
+#: diff.c:5332 diff.c:5335 diff.c:5338
msgid "<width>"
msgstr "<ampiezza>"
-#: diff.c:5330
+#: diff.c:5333
msgid "generate diffstat with a given width"
msgstr "genera il diffstat con un'ampiezza specificata"
-#: diff.c:5333
+#: diff.c:5336
msgid "generate diffstat with a given name width"
msgstr "genera il diffstat con un'ampiezza nomi specificata"
-#: diff.c:5336
+#: diff.c:5339
msgid "generate diffstat with a given graph width"
msgstr "genera il diffstat con un'ampiezza grafo specificata"
-#: diff.c:5338
+#: diff.c:5341
msgid "<count>"
msgstr "<numero>"
-#: diff.c:5339
+#: diff.c:5342
msgid "generate diffstat with limited lines"
msgstr "genera il diffstat con righe limitate"
-#: diff.c:5342
+#: diff.c:5345
msgid "generate compact summary in diffstat"
msgstr "genera riassunto conciso nel diffstat"
-#: diff.c:5345
+#: diff.c:5348
msgid "output a binary diff that can be applied"
msgstr "stampa in output un diff binario che può essere applicato"
-#: diff.c:5348
+#: diff.c:5351
msgid "show full pre- and post-image object names on the \"index\" lines"
msgstr "visualizza i nomi oggetto pre e post immagine nelle righe \"indice\""
-#: diff.c:5350
+#: diff.c:5353
msgid "show colored diff"
msgstr "visualizza diff colorato"
-#: diff.c:5351
+#: diff.c:5354
msgid "<kind>"
msgstr "<tipo>"
-#: diff.c:5352
+#: diff.c:5355
msgid ""
"highlight whitespace errors in the 'context', 'old' or 'new' lines in the "
"diff"
@@ -2735,7 +2744,7 @@ msgstr ""
"evidenzia gli errori di spazi bianchi nelle righe 'contesto', 'vecchie' o "
"'nuove' nel diff"
-#: diff.c:5355
+#: diff.c:5358
msgid ""
"do not munge pathnames and use NULs as output field terminators in --raw or "
"--numstat"
@@ -2743,91 +2752,91 @@ msgstr ""
"non rimuovere i nomi percorso e usare caratteri NUL come terminatori campo "
"in --raw o --numstat"
-#: diff.c:5358 diff.c:5361 diff.c:5364 diff.c:5470
+#: diff.c:5361 diff.c:5364 diff.c:5367 diff.c:5473
msgid "<prefix>"
msgstr "<prefisso>"
-#: diff.c:5359
+#: diff.c:5362
msgid "show the given source prefix instead of \"a/\""
msgstr "visualizza il prefisso sorgente specificato invece di \"a/\""
-#: diff.c:5362
+#: diff.c:5365
msgid "show the given destination prefix instead of \"b/\""
msgstr "visualizza il prefisso destinazione specificato invece di \"b/\""
-#: diff.c:5365
+#: diff.c:5368
msgid "prepend an additional prefix to every line of output"
msgstr "anteponi un prefisso aggiuntivo ad ogni riga dell'output"
-#: diff.c:5368
+#: diff.c:5371
msgid "do not show any source or destination prefix"
msgstr "non visualizzare alcun prefisso sorgente o destinazione"
-#: diff.c:5371
+#: diff.c:5374
msgid "show context between diff hunks up to the specified number of lines"
msgstr ""
"visualizza il contesto tra gli hunk del diff fino al numero di righe "
"specificato"
-#: diff.c:5375 diff.c:5380 diff.c:5385
+#: diff.c:5378 diff.c:5383 diff.c:5388
msgid "<char>"
msgstr "<carattere>"
-#: diff.c:5376
+#: diff.c:5379
msgid "specify the character to indicate a new line instead of '+'"
msgstr "specifica il carattere che indica una nuova riga al posto di '+'"
-#: diff.c:5381
+#: diff.c:5384
msgid "specify the character to indicate an old line instead of '-'"
msgstr "specifica il carattere che indica una vecchia riga al posto di '-'"
-#: diff.c:5386
+#: diff.c:5389
msgid "specify the character to indicate a context instead of ' '"
msgstr "specifica il carattere che indica un contesto al posto di ' '"
-#: diff.c:5389
+#: diff.c:5392
msgid "Diff rename options"
msgstr "Opzioni rinominazione diff"
-#: diff.c:5390
+#: diff.c:5393
msgid "<n>[/<m>]"
msgstr "<n>[/<m>]"
-#: diff.c:5391
+#: diff.c:5394
msgid "break complete rewrite changes into pairs of delete and create"
msgstr ""
"spezza modifiche di riscrittura completa in coppie eliminazione/creazione"
-#: diff.c:5395
+#: diff.c:5398
msgid "detect renames"
msgstr "rileva le ridenominazioni"
-#: diff.c:5399
+#: diff.c:5402
msgid "omit the preimage for deletes"
msgstr "ometti la preimmagine per le eliminazioni"
-#: diff.c:5402
+#: diff.c:5405
msgid "detect copies"
msgstr "rileva le copie"
-#: diff.c:5406
+#: diff.c:5409
msgid "use unmodified files as source to find copies"
msgstr "usa file non modificati come sorgente per trovare copie"
-#: diff.c:5408
+#: diff.c:5411
msgid "disable rename detection"
msgstr "disabilita rilevamento ridenominazione"
-#: diff.c:5411
+#: diff.c:5414
msgid "use empty blobs as rename source"
msgstr "usa blob vuoti come sorgente ridenominazione"
-#: diff.c:5413
+#: diff.c:5416
msgid "continue listing the history of a file beyond renames"
msgstr ""
"continua a elencare la cronologia di un file al di là delle ridenominazioni"
-#: diff.c:5416
+#: diff.c:5419
msgid ""
"prevent rename/copy detection if the number of rename/copy targets exceeds "
"given limit"
@@ -2835,159 +2844,159 @@ msgstr ""
"impedisci il rilevamento ridenominazione/copia se il numero delle "
"destinazioni ridenominazione/copia eccede il limite specificato"
-#: diff.c:5418
+#: diff.c:5421
msgid "Diff algorithm options"
msgstr "Opzioni algoritmo diff"
-#: diff.c:5420
+#: diff.c:5423
msgid "produce the smallest possible diff"
msgstr "produci il diff più piccolo possibile"
-#: diff.c:5423
+#: diff.c:5426
msgid "ignore whitespace when comparing lines"
msgstr "ignora gli spazi bianchi durante il confronto delle righe"
-#: diff.c:5426
+#: diff.c:5429
msgid "ignore changes in amount of whitespace"
msgstr "ignora le modifiche al numero degli spazi bianchi"
-#: diff.c:5429
+#: diff.c:5432
msgid "ignore changes in whitespace at EOL"
msgstr "ignora modifiche agli spazi bianchi a fine riga"
-#: diff.c:5432
+#: diff.c:5435
msgid "ignore carrier-return at the end of line"
msgstr "ignora carattere ritorno a capo a fine riga"
-#: diff.c:5435
+#: diff.c:5438
msgid "ignore changes whose lines are all blank"
msgstr "ignora modifiche che riguardano solo righe vuote"
-#: diff.c:5438
+#: diff.c:5441
msgid "heuristic to shift diff hunk boundaries for easy reading"
msgstr ""
"euristica per spostare i limiti degli hunk nel diff per una lettura agevole"
-#: diff.c:5441
+#: diff.c:5444
msgid "generate diff using the \"patience diff\" algorithm"
msgstr "genera il diff usando l'algoritmo \"patience diff\""
-#: diff.c:5445
+#: diff.c:5448
msgid "generate diff using the \"histogram diff\" algorithm"
msgstr "genera il diff usando l'algoritmo \"histogram diff\""
-#: diff.c:5447
+#: diff.c:5450
msgid "<algorithm>"
msgstr "<algoritmo>"
-#: diff.c:5448
+#: diff.c:5451
msgid "choose a diff algorithm"
msgstr "seleziona un algoritmo diff"
-#: diff.c:5450
+#: diff.c:5453
msgid "<text>"
msgstr "<testo>"
-#: diff.c:5451
+#: diff.c:5454
msgid "generate diff using the \"anchored diff\" algorithm"
msgstr "genera il diff usando l'algoritmo \"anchored diff\""
-#: diff.c:5453 diff.c:5462 diff.c:5465
+#: diff.c:5456 diff.c:5465 diff.c:5468
msgid "<mode>"
msgstr "<modalità>"
-#: diff.c:5454
+#: diff.c:5457
msgid "show word diff, using <mode> to delimit changed words"
msgstr ""
"visualizza il diff parola per parola usando <modalità> per delimitare le "
"parole modificate"
-#: diff.c:5456 diff.c:5459 diff.c:5504
+#: diff.c:5459 diff.c:5462 diff.c:5507
msgid "<regex>"
msgstr "<espressione regolare>"
-#: diff.c:5457
+#: diff.c:5460
msgid "use <regex> to decide what a word is"
msgstr "usa <espressione regolare> per decidere cosa costituisce una parola"
-#: diff.c:5460
+#: diff.c:5463
msgid "equivalent to --word-diff=color --word-diff-regex=<regex>"
msgstr ""
"equivalente di --word-diff=color --word-diff-regex=<espressione regolare>"
-#: diff.c:5463
+#: diff.c:5466
msgid "moved lines of code are colored differently"
msgstr "le righe di codice spostate sono colorate in modo diverso"
-#: diff.c:5466
+#: diff.c:5469
msgid "how white spaces are ignored in --color-moved"
msgstr "modo in cui sono ignorati gli spazi bianchi in --color-moved"
-#: diff.c:5469
+#: diff.c:5472
msgid "Other diff options"
msgstr "Altre opzioni diff"
-#: diff.c:5471
+#: diff.c:5474
msgid "when run from subdir, exclude changes outside and show relative paths"
msgstr ""
"se eseguito da una sottodirectory, escludi le modifiche esterne ad essa e "
"visualizza i percorsi relativi"
-#: diff.c:5475
+#: diff.c:5478
msgid "treat all files as text"
msgstr "tratta tutti i file come se fossero di testo"
-#: diff.c:5477
+#: diff.c:5480
msgid "swap two inputs, reverse the diff"
msgstr "scambia i due input, genera un diff al contrario"
-#: diff.c:5479
+#: diff.c:5482
msgid "exit with 1 if there were differences, 0 otherwise"
msgstr "esci con codice 1 se ci sono differenze, con 0 altrimenti"
-#: diff.c:5481
+#: diff.c:5484
msgid "disable all output of the program"
msgstr "disabilita l'intero output del programma"
-#: diff.c:5483
+#: diff.c:5486
msgid "allow an external diff helper to be executed"
msgstr "consenti l'esecuzione di un helper diff esterno"
-#: diff.c:5485
+#: diff.c:5488
msgid "run external text conversion filters when comparing binary files"
msgstr ""
"esegui filtri di conversione in testo esterni quando si confrontano file "
"binari"
-#: diff.c:5487
+#: diff.c:5490
msgid "<when>"
msgstr "<quando>"
-#: diff.c:5488
+#: diff.c:5491
msgid "ignore changes to submodules in the diff generation"
msgstr "ignora le modifiche ai sottomoduli durante la generazione del diff"
-#: diff.c:5491
+#: diff.c:5494
msgid "<format>"
msgstr "<formato>"
-#: diff.c:5492
+#: diff.c:5495
msgid "specify how differences in submodules are shown"
msgstr "specifica come verranno visualizzate le differenze nei sottomoduli"
-#: diff.c:5496
+#: diff.c:5499
msgid "hide 'git add -N' entries from the index"
msgstr "nascondi le voci 'git add -N' nell'indice"
-#: diff.c:5499
+#: diff.c:5502
msgid "treat 'git add -N' entries as real in the index"
msgstr "tratta le voci 'git add -N' come reali nell'indice"
-#: diff.c:5501
+#: diff.c:5504
msgid "<string>"
msgstr "<stringa>"
-#: diff.c:5502
+#: diff.c:5505
msgid ""
"look for differences that change the number of occurrences of the specified "
"string"
@@ -2995,7 +3004,7 @@ msgstr ""
"cerca differenze che modificano il numero di occorrenze della stringa "
"specificata"
-#: diff.c:5505
+#: diff.c:5508
msgid ""
"look for differences that change the number of occurrences of the specified "
"regex"
@@ -3003,24 +3012,24 @@ msgstr ""
"cerca differenze che modificano il numero di occorrenze dell'espressione "
"regolare specificata"
-#: diff.c:5508
+#: diff.c:5511
msgid "show all changes in the changeset with -S or -G"
msgstr "visualizza tutte le modifiche nel changeset con -S o -G"
-#: diff.c:5511
+#: diff.c:5514
msgid "treat <string> in -S as extended POSIX regular expression"
msgstr ""
"tratta la <stringa> nell'opzione -S come un'espressione regolare POSIX estesa"
-#: diff.c:5514
+#: diff.c:5517
msgid "control the order in which files appear in the output"
msgstr "controlla l'ordine con cui i file appariranno nell'output"
-#: diff.c:5515
+#: diff.c:5518
msgid "<object-id>"
msgstr "<ID oggetto>"
-#: diff.c:5516
+#: diff.c:5519
msgid ""
"look for differences that change the number of occurrences of the specified "
"object"
@@ -3028,34 +3037,34 @@ msgstr ""
"cerca differenze che modificano il numero di occorrenze dell'oggetto "
"specificato"
-#: diff.c:5518
+#: diff.c:5521
msgid "[(A|C|D|M|R|T|U|X|B)...[*]]"
msgstr "[(A|C|D|M|R|T|U|X|B)...[*]]"
-#: diff.c:5519
+#: diff.c:5522
msgid "select files by diff type"
msgstr "seleziona file in base al tipo diff"
-#: diff.c:5521
+#: diff.c:5524
msgid "<file>"
msgstr "<file>"
-#: diff.c:5522
+#: diff.c:5525
msgid "Output to a specific file"
msgstr "Salva l'output in un file specifico"
-#: diff.c:6177
+#: diff.c:6180
msgid "inexact rename detection was skipped due to too many files."
msgstr ""
"il rilevamento ridenominazione non esatta è stato omesso per la presenza di "
"troppi file."
-#: diff.c:6180
+#: diff.c:6183
msgid "only found copies from modified paths due to too many files."
msgstr ""
"trovate solo copie dai percorsi modificati per la presenza di troppi file."
-#: diff.c:6183
+#: diff.c:6186
#, c-format
msgid ""
"you may want to set your %s variable to at least %d and retry the command."
@@ -3063,41 +3072,41 @@ msgstr ""
"potresti voler impostare la variabile %s ad almeno %d e riprovare ad "
"eseguire il comando."
-#: dir.c:537
+#: dir.c:549
#, c-format
msgid "pathspec '%s' did not match any file(s) known to git"
msgstr ""
"lo specificatore percorso '%s' non corrisponde ad alcun file noto a git"
-#: dir.c:926
+#: dir.c:938
#, c-format
msgid "cannot use %s as an exclude file"
msgstr "impossibile usare %s come file di esclusione"
-#: dir.c:1843
+#: dir.c:1877
#, c-format
msgid "could not open directory '%s'"
msgstr "impossibile aprire la directory '%s'"
-#: dir.c:2085
+#: dir.c:2128
msgid "failed to get kernel name and information"
msgstr "impossibile ottenere il nome e le informazioni sul kernel"
-#: dir.c:2209
+#: dir.c:2252
msgid "untracked cache is disabled on this system or location"
msgstr "la cache non tracciata è disabilitata su questo sistema o percorso"
-#: dir.c:3013
+#: dir.c:3056
#, c-format
msgid "index file corrupt in repo %s"
msgstr "file index corrotto nel repository %s"
-#: dir.c:3058 dir.c:3063
+#: dir.c:3101 dir.c:3106
#, c-format
msgid "could not create directories for %s"
msgstr "impossibile creare le directory per %s"
-#: dir.c:3092
+#: dir.c:3135
#, c-format
msgid "could not migrate git directory from '%s' to '%s'"
msgstr "impossibile migrare la directory git da '%s' a '%s'"
@@ -3117,12 +3126,12 @@ msgstr "Filtraggio contenuto in corso"
msgid "could not stat file '%s'"
msgstr "impossibile eseguire stat sul file '%s'"
-#: environment.c:150
+#: environment.c:148
#, c-format
msgid "bad git namespace path \"%s\""
msgstr "percorso spazio dei nomi git \"%s\" non valido"
-#: environment.c:332
+#: environment.c:330
#, c-format
msgid "could not set GIT_DIR to '%s'"
msgstr "impossibile impostare GIT_DIR a '%s'"
@@ -3132,160 +3141,156 @@ msgstr "impossibile impostare GIT_DIR a '%s'"
msgid "too many args to run %s"
msgstr "troppi argomenti per eseguire %s"
-#: fetch-object.c:17
-msgid "Remote with no URL"
-msgstr "Remoto senza URL"
-
-#: fetch-pack.c:151
+#: fetch-pack.c:150
msgid "git fetch-pack: expected shallow list"
msgstr "git fetch-pack: attesa lista shallow"
-#: fetch-pack.c:154
+#: fetch-pack.c:153
msgid "git fetch-pack: expected a flush packet after shallow list"
msgstr "git fetch-pack: atteso pacchetto flush dopo lista shallow"
-#: fetch-pack.c:165
+#: fetch-pack.c:164
msgid "git fetch-pack: expected ACK/NAK, got a flush packet"
msgstr "git fetch-pack: attesi ACK/NAK, ricevuto pacchetto flush"
-#: fetch-pack.c:185
+#: fetch-pack.c:184
#, c-format
msgid "git fetch-pack: expected ACK/NAK, got '%s'"
msgstr "git fetch-pack: attesi ACK/NAK, ricevuto '%s'"
-#: fetch-pack.c:196
+#: fetch-pack.c:195
msgid "unable to write to remote"
msgstr "impossibile scrivere sul remoto"
-#: fetch-pack.c:258
+#: fetch-pack.c:257
msgid "--stateless-rpc requires multi_ack_detailed"
msgstr "--stateless-rpc richiede multi_ack_detailed"
-#: fetch-pack.c:360 fetch-pack.c:1284
+#: fetch-pack.c:356 fetch-pack.c:1280
#, c-format
msgid "invalid shallow line: %s"
msgstr "riga shallow non valida: '%s'"
-#: fetch-pack.c:366 fetch-pack.c:1290
+#: fetch-pack.c:362 fetch-pack.c:1286
#, c-format
msgid "invalid unshallow line: %s"
msgstr "riga unshallow non valida: '%s'"
-#: fetch-pack.c:368 fetch-pack.c:1292
+#: fetch-pack.c:364 fetch-pack.c:1288
#, c-format
msgid "object not found: %s"
msgstr "oggetto non trovato: %s"
-#: fetch-pack.c:371 fetch-pack.c:1295
+#: fetch-pack.c:367 fetch-pack.c:1291
#, c-format
msgid "error in object: %s"
msgstr "errore nell'oggetto: %s"
-#: fetch-pack.c:373 fetch-pack.c:1297
+#: fetch-pack.c:369 fetch-pack.c:1293
#, c-format
msgid "no shallow found: %s"
msgstr "nessuno shallow trovato: %s"
-#: fetch-pack.c:376 fetch-pack.c:1301
+#: fetch-pack.c:372 fetch-pack.c:1297
#, c-format
msgid "expected shallow/unshallow, got %s"
msgstr "attesi shallow/unshallow, ricevuto %s"
-#: fetch-pack.c:417
+#: fetch-pack.c:414
#, c-format
msgid "got %s %d %s"
msgstr "ricevuto %s %d %s"
-#: fetch-pack.c:434
+#: fetch-pack.c:431
#, c-format
msgid "invalid commit %s"
msgstr "commit non valido: %s"
-#: fetch-pack.c:465
+#: fetch-pack.c:462
msgid "giving up"
msgstr "smetto di provare"
-#: fetch-pack.c:477 progress.c:277
+#: fetch-pack.c:475 progress.c:312
msgid "done"
msgstr "fatto"
-#: fetch-pack.c:489
+#: fetch-pack.c:487
#, c-format
msgid "got %s (%d) %s"
msgstr "ricevuto %s (%d) %s"
-#: fetch-pack.c:535
+#: fetch-pack.c:533
#, c-format
msgid "Marking %s as complete"
msgstr "Contrassegno %s come completo"
-#: fetch-pack.c:744
+#: fetch-pack.c:742
#, c-format
msgid "already have %s (%s)"
msgstr "ho già %s (%s)"
-#: fetch-pack.c:783
+#: fetch-pack.c:781
msgid "fetch-pack: unable to fork off sideband demultiplexer"
msgstr ""
"fetch-pack: impossibile eseguire il fork del demultiplexer della banda "
"laterlae"
-#: fetch-pack.c:791
+#: fetch-pack.c:789
msgid "protocol error: bad pack header"
msgstr "errore protocollo: intestazione pack non valida"
-#: fetch-pack.c:859
+#: fetch-pack.c:857
#, c-format
msgid "fetch-pack: unable to fork off %s"
msgstr "fetch-pack: impossibile eseguire il fork di %s"
-#: fetch-pack.c:875
+#: fetch-pack.c:873
#, c-format
msgid "%s failed"
msgstr "%s non riuscito"
-#: fetch-pack.c:877
+#: fetch-pack.c:875
msgid "error in sideband demultiplexer"
msgstr "errore nel demultiplexer della banda laterale"
-#: fetch-pack.c:908
+#: fetch-pack.c:907
#, c-format
msgid "Server version is %.*s"
msgstr "La versione del server è %.*s"
-#: fetch-pack.c:913 fetch-pack.c:919 fetch-pack.c:922 fetch-pack.c:928
-#: fetch-pack.c:932 fetch-pack.c:936 fetch-pack.c:940 fetch-pack.c:944
-#: fetch-pack.c:948 fetch-pack.c:952 fetch-pack.c:956 fetch-pack.c:960
-#: fetch-pack.c:966 fetch-pack.c:972 fetch-pack.c:977 fetch-pack.c:982
+#: fetch-pack.c:912 fetch-pack.c:918 fetch-pack.c:921 fetch-pack.c:927
+#: fetch-pack.c:931 fetch-pack.c:935 fetch-pack.c:939 fetch-pack.c:943
+#: fetch-pack.c:947 fetch-pack.c:951 fetch-pack.c:955 fetch-pack.c:959
+#: fetch-pack.c:965 fetch-pack.c:971 fetch-pack.c:976 fetch-pack.c:981
#, c-format
msgid "Server supports %s"
msgstr "Il server supporta %s"
-#: fetch-pack.c:915
+#: fetch-pack.c:914
msgid "Server does not support shallow clients"
msgstr "Il server non supporta client shallow"
-#: fetch-pack.c:975
+#: fetch-pack.c:974
msgid "Server does not support --shallow-since"
msgstr "Il server non supporta --shallow-since"
-#: fetch-pack.c:980
+#: fetch-pack.c:979
msgid "Server does not support --shallow-exclude"
msgstr "Il server non supporta --shallow-exclude"
-#: fetch-pack.c:984
+#: fetch-pack.c:983
msgid "Server does not support --deepen"
msgstr "Il server non supporta --deepen"
-#: fetch-pack.c:1001
+#: fetch-pack.c:1000
msgid "no common commits"
msgstr "nessun commit in comune"
-#: fetch-pack.c:1013 fetch-pack.c:1462
+#: fetch-pack.c:1012 fetch-pack.c:1468
msgid "git fetch-pack: fetch failed."
msgstr "git fetch-pack: recupero non riuscito."
-#: fetch-pack.c:1151
+#: fetch-pack.c:1150
msgid "Server does not support shallow requests"
msgstr "Il server non supporta le richieste shallow"
@@ -3293,73 +3298,73 @@ msgstr "Il server non supporta le richieste shallow"
msgid "Server supports filter"
msgstr "Il server supporta filter"
-#: fetch-pack.c:1184
+#: fetch-pack.c:1180
msgid "unable to write request to remote"
msgstr "impossibile scrivere la richiesta sul remoto"
-#: fetch-pack.c:1202
+#: fetch-pack.c:1198
#, c-format
msgid "error reading section header '%s'"
msgstr "errore durante la lettura dell'intestazione di sezione '%s'"
-#: fetch-pack.c:1208
+#: fetch-pack.c:1204
#, c-format
msgid "expected '%s', received '%s'"
msgstr "atteso '%s', ricevuto '%s'"
-#: fetch-pack.c:1247
+#: fetch-pack.c:1243
#, c-format
msgid "unexpected acknowledgment line: '%s'"
msgstr "riga di conferma inattesa: '%s'"
-#: fetch-pack.c:1252
+#: fetch-pack.c:1248
#, c-format
msgid "error processing acks: %d"
msgstr "errore durante l'elaborazione degli ack: %d"
-#: fetch-pack.c:1262
+#: fetch-pack.c:1258
msgid "expected packfile to be sent after 'ready'"
msgstr "ci si attendeva che il packfile fosse inviato dopo 'ready'"
-#: fetch-pack.c:1264
+#: fetch-pack.c:1260
msgid "expected no other sections to be sent after no 'ready'"
msgstr ""
"ci si attendeva che nessun'altra sezione fosse inviata in assenza di 'ready'"
-#: fetch-pack.c:1306
+#: fetch-pack.c:1302
#, c-format
msgid "error processing shallow info: %d"
msgstr "errore durante l'elaborazione delle informazioni shallow: %d"
-#: fetch-pack.c:1353
+#: fetch-pack.c:1349
#, c-format
msgid "expected wanted-ref, got '%s'"
msgstr "atteso wanted-ref, ricevuto '%s'"
-#: fetch-pack.c:1358
+#: fetch-pack.c:1354
#, c-format
msgid "unexpected wanted-ref: '%s'"
msgstr "wanted-ref inatteso: '%s'"
-#: fetch-pack.c:1363
+#: fetch-pack.c:1359
#, c-format
msgid "error processing wanted refs: %d"
msgstr "errore durante l'elaborazione dei riferimenti desiderati: %d"
-#: fetch-pack.c:1689
+#: fetch-pack.c:1693
msgid "no matching remote head"
msgstr "nessun head remoto corrispondente"
-#: fetch-pack.c:1712 builtin/clone.c:686
+#: fetch-pack.c:1716 builtin/clone.c:685
msgid "remote did not send all necessary objects"
msgstr "il remoto non ha inviato tutti gli oggetti necessari"
-#: fetch-pack.c:1739
+#: fetch-pack.c:1743
#, c-format
msgid "no such remote ref %s"
msgstr "riferimento remoto non esistente: %s"
-#: fetch-pack.c:1742
+#: fetch-pack.c:1746
#, c-format
msgid "Server does not allow request for unadvertised object %s"
msgstr "Il server non consente richieste per l'oggetto non pubblicizzato %s"
@@ -3382,18 +3387,26 @@ msgstr "scrittura della firma separata in '%s' non riuscita"
msgid "ignore invalid color '%.*s' in log.graphColors"
msgstr "ignoro il colore non valido '%.*s' in log.graphColors"
-#: grep.c:2117
+#: grep.c:668
+msgid ""
+"given pattern contains NULL byte (via -f <file>). This is only supported "
+"with -P under PCRE v2"
+msgstr ""
+"il pattern fornito (con -f <file>) contiene un byte NULL. Ciò è supportato "
+"solo con -P usando PCRE v2"
+
+#: grep.c:2124
#, c-format
msgid "'%s': unable to read %s"
msgstr "'%s': impossibile leggere %s"
-#: grep.c:2134 setup.c:164 builtin/clone.c:409 builtin/diff.c:82
+#: grep.c:2141 setup.c:165 builtin/clone.c:408 builtin/diff.c:82
#: builtin/rm.c:135
#, c-format
msgid "failed to stat '%s'"
msgstr "stat di '%s' non riuscito"
-#: grep.c:2145
+#: grep.c:2152
#, c-format
msgid "'%s': short read"
msgstr "'%s': lettura troppo breve"
@@ -3536,12 +3549,12 @@ msgstr[1] ""
msgid "git version [<options>]"
msgstr "git version [<opzioni>]"
-#: help.c:782
+#: help.c:783
#, c-format
msgid "%s: %s - %s"
msgstr "%s: %s - %s"
-#: help.c:786
+#: help.c:787
msgid ""
"\n"
"Did you mean this?"
@@ -3616,41 +3629,58 @@ msgstr "il nome è composto solo da caratteri non consentiti: %s"
msgid "invalid date format: %s"
msgstr "formato data non valido: %s"
-#: list-objects.c:129
+#: list-objects.c:127
#, c-format
msgid "entry '%s' in tree %s has tree mode, but is not a tree"
msgstr "la voce '%s' nell'albero %s ha la modalità albero, ma non è un albero"
-#: list-objects.c:142
+#: list-objects.c:140
#, c-format
msgid "entry '%s' in tree %s has blob mode, but is not a blob"
msgstr "la voce '%s' nell'albero %s ha la modalità blob, ma non è un blob"
-#: list-objects.c:378
+#: list-objects.c:375
#, c-format
msgid "unable to load root tree for commit %s"
msgstr "impossibile caricare l'albero radice per il commit %s"
-#: list-objects-filter-options.c:36
-msgid "multiple filter-specs cannot be combined"
-msgstr "non è possibile combinare più specificatori filtro"
+#: list-objects-filter.c:492
+#, c-format
+msgid "unable to access sparse blob in '%s'"
+msgstr "impossibile accedere al blob sparse in '%s'"
+
+#: list-objects-filter.c:495
+#, c-format
+msgid "unable to parse sparse filter data in %s"
+msgstr "impossibile analizzare i dati filtro sparse in %s"
#: list-objects-filter-options.c:58
msgid "expected 'tree:<depth>'"
msgstr "atteso 'tree:<profondità>'"
-#: list-objects-filter-options.c:84
+#: list-objects-filter-options.c:73
msgid "sparse:path filters support has been dropped"
msgstr "il supporto per i filtri sparse:percorso è stato rimosso"
-#: list-objects-filter-options.c:94
+#: list-objects-filter-options.c:86
#, c-format
msgid "invalid filter-spec '%s'"
msgstr "specificatore filtro '%s' non valido"
-#: list-objects-filter-options.c:158
-msgid "cannot change partial clone promisor remote"
-msgstr "impossibile modificare il remoto promettente del clone parziale"
+#: list-objects-filter-options.c:102
+#, c-format
+msgid "must escape char in sub-filter-spec: '%c'"
+msgstr ""
+"è necessario eseguire l'escape del carattere nello specificatore del "
+"sottofiltro: '%c'"
+
+#: list-objects-filter-options.c:144
+msgid "expected something after combine:"
+msgstr "atteso qualcosa dopo la ricombinazione:"
+
+#: list-objects-filter-options.c:226
+msgid "multiple filter-specs cannot be combined"
+msgstr "non è possibile combinare più specificatori filtro"
#: lockfile.c:151
#, c-format
@@ -3681,119 +3711,115 @@ msgstr "Impossibile creare '%s.lock': %s"
msgid "failed to read the cache"
msgstr "lettura della cache non riuscita"
-#: merge.c:107 rerere.c:720 builtin/am.c:1885 builtin/am.c:1919
-#: builtin/checkout.c:536 builtin/checkout.c:796 builtin/clone.c:786
+#: merge.c:107 rerere.c:720 builtin/am.c:1874 builtin/am.c:1908
+#: builtin/checkout.c:537 builtin/checkout.c:796 builtin/clone.c:785
#: builtin/stash.c:264
msgid "unable to write new index file"
msgstr "impossibile scrivere il nuovo file index"
-#: merge-recursive.c:322
+#: merge-recursive.c:367
msgid "(bad commit)\n"
msgstr "(commit non valido)\n"
-#: merge-recursive.c:345
+#: merge-recursive.c:390
#, c-format
msgid "add_cacheinfo failed for path '%s'; merge aborting."
msgstr "add_cacheinfo non riuscito per il percorso '%s'; interrompo il merge."
-#: merge-recursive.c:354
+#: merge-recursive.c:399
#, c-format
msgid "add_cacheinfo failed to refresh for path '%s'; merge aborting."
msgstr ""
"aggiornamento add_cacheinfo non riuscito per il percorso '%s'; interrompo il "
"merge."
-#: merge-recursive.c:437
-msgid "error building trees"
-msgstr "errore durante la costruzione degli alberi"
-
-#: merge-recursive.c:863
+#: merge-recursive.c:885
#, c-format
msgid "failed to create path '%s'%s"
msgstr "creazione del percorso '%s' non riuscita%s"
-#: merge-recursive.c:874
+#: merge-recursive.c:896
#, c-format
msgid "Removing %s to make room for subdirectory\n"
msgstr "Rimuovo %s per fare spazio alla sottodirectory\n"
-#: merge-recursive.c:888 merge-recursive.c:907
+#: merge-recursive.c:910 merge-recursive.c:929
msgid ": perhaps a D/F conflict?"
msgstr ": forse si tratta di un conflitto D/F?"
-#: merge-recursive.c:897
+#: merge-recursive.c:919
#, c-format
msgid "refusing to lose untracked file at '%s'"
msgstr "mi rifiuto di perdere un file non tracciato in '%s'"
-#: merge-recursive.c:938 builtin/cat-file.c:40
+#: merge-recursive.c:960 builtin/cat-file.c:41
#, c-format
msgid "cannot read object %s '%s'"
msgstr "impossibile leggere l'oggetto %s '%s'"
-#: merge-recursive.c:941
+#: merge-recursive.c:965
#, c-format
msgid "blob expected for %s '%s'"
msgstr "atteso blob per %s '%s'"
-#: merge-recursive.c:965
+#: merge-recursive.c:990
#, c-format
msgid "failed to open '%s': %s"
msgstr "apertura di '%s' non riuscita: %s"
-#: merge-recursive.c:976
+#: merge-recursive.c:1001
#, c-format
msgid "failed to symlink '%s': %s"
msgstr "creazione del collegamento simbolico '%s' non riuscita: %s"
-#: merge-recursive.c:981
+#: merge-recursive.c:1006
#, c-format
msgid "do not know what to do with %06o %s '%s'"
msgstr "non so che fare con %06o %s '%s'"
-#: merge-recursive.c:1177
+#: merge-recursive.c:1199
#, c-format
msgid "Failed to merge submodule %s (not checked out)"
msgstr "Merge del sottomodulo %s non riuscito (checkout non eseguito)"
-#: merge-recursive.c:1184
+#: merge-recursive.c:1206
#, c-format
msgid "Failed to merge submodule %s (commits not present)"
msgstr "Merge del sottomodulo %s non riuscito (commit non presenti)"
-#: merge-recursive.c:1191
+#: merge-recursive.c:1213
#, c-format
msgid "Failed to merge submodule %s (commits don't follow merge-base)"
msgstr ""
"Merge del sottomodulo %s non riuscito (i commit non seguono la base del "
"merge)"
-#: merge-recursive.c:1199 merge-recursive.c:1211
+#: merge-recursive.c:1221 merge-recursive.c:1233
#, c-format
msgid "Fast-forwarding submodule %s to the following commit:"
msgstr "Eseguo il fast forward del sottomodulo %s al seguente commit:"
-#: merge-recursive.c:1202 merge-recursive.c:1214
+#: merge-recursive.c:1224 merge-recursive.c:1236
#, c-format
msgid "Fast-forwarding submodule %s"
msgstr "Eseguo il fast forward del sottomodulo %s"
-#: merge-recursive.c:1237
+#: merge-recursive.c:1259
#, c-format
msgid "Failed to merge submodule %s (merge following commits not found)"
msgstr ""
"Merge del sottomodulo %s non riuscito (merge dopo i commit non trovato)"
-#: merge-recursive.c:1241
+#: merge-recursive.c:1263
#, c-format
msgid "Failed to merge submodule %s (not fast-forward)"
msgstr "Merge del sottomodulo %s non riuscito (non fast forward)"
-#: merge-recursive.c:1242
+#: merge-recursive.c:1264
msgid "Found a possible merge resolution for the submodule:\n"
msgstr "Trovata possibile risoluzione merge per il sottomodulo:\n"
-#: merge-recursive.c:1245
+#: merge-recursive.c:1267
#, c-format
msgid ""
"If this is correct simply add it to the index for example\n"
@@ -3810,32 +3836,32 @@ msgstr ""
"\n"
"per accettare questo suggerimento.\n"
-#: merge-recursive.c:1254
+#: merge-recursive.c:1276
#, c-format
msgid "Failed to merge submodule %s (multiple merges found)"
msgstr "Merge del sottomodulo %s non riuscito (più merge trovati)"
-#: merge-recursive.c:1327
+#: merge-recursive.c:1349
msgid "Failed to execute internal merge"
msgstr "Esecuzione del merge interno non riuscita"
-#: merge-recursive.c:1332
+#: merge-recursive.c:1354
#, c-format
msgid "Unable to add %s to database"
msgstr "Impossibile aggiungere %s al database"
-#: merge-recursive.c:1364
+#: merge-recursive.c:1386
#, c-format
msgid "Auto-merging %s"
msgstr "Merge automatico di %s in corso"
-#: merge-recursive.c:1387
+#: merge-recursive.c:1410
#, c-format
msgid "Error: Refusing to lose untracked file at %s; writing to %s instead."
msgstr ""
"Errore: mi rifiuto di perdere il file non tracciato %s; scrivo invece in %s."
-#: merge-recursive.c:1459
+#: merge-recursive.c:1482
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -3844,7 +3870,7 @@ msgstr ""
"CONFLITTO (%s/eliminazione): %s eliminato in %s e %s in %s. Versione %s di "
"%s lasciata nell'albero."
-#: merge-recursive.c:1464
+#: merge-recursive.c:1487
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -3853,7 +3879,7 @@ msgstr ""
"CONFLITTO (%s/eliminazione): %s eliminato in %s e %s come %s in %s. Versione "
"%s di %s lasciata nell'albero."
-#: merge-recursive.c:1471
+#: merge-recursive.c:1494
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -3862,7 +3888,7 @@ msgstr ""
"CONFLITTO (%s/eliminazione): %s eliminato in %s e %s in %s. Versione %s di "
"%s lasciata nell'albero in %s."
-#: merge-recursive.c:1476
+#: merge-recursive.c:1499
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -3871,43 +3897,43 @@ msgstr ""
"CONFLITTO (%s/eliminazione): %s eliminato in %s e %s come %s in %s. Versione "
"%s di %s lasciata nell'albero in %s."
-#: merge-recursive.c:1511
+#: merge-recursive.c:1534
msgid "rename"
msgstr "ridenominazione"
-#: merge-recursive.c:1511
+#: merge-recursive.c:1534
msgid "renamed"
msgstr "rinominato"
-#: merge-recursive.c:1591 merge-recursive.c:2450 merge-recursive.c:3094
+#: merge-recursive.c:1614 merge-recursive.c:2472 merge-recursive.c:3117
#, c-format
msgid "Refusing to lose dirty file at %s"
msgstr "Mi rifiuto di perdere un file sporco in %s"
-#: merge-recursive.c:1601
+#: merge-recursive.c:1624
#, c-format
msgid "Refusing to lose untracked file at %s, even though it's in the way."
msgstr ""
"Mi rifiuto di perdere un file non tracciato in %s, benché sia d'ostacolo."
-#: merge-recursive.c:1659
+#: merge-recursive.c:1682
#, c-format
msgid "CONFLICT (rename/add): Rename %s->%s in %s. Added %s in %s"
msgstr ""
"CONFLITTO (ridenominazione/aggiunta): elemento ridenominato %s->%s in %s. %s "
"aggiunto in %s"
-#: merge-recursive.c:1690
+#: merge-recursive.c:1713
#, c-format
msgid "%s is a directory in %s adding as %s instead"
msgstr "%s è una directory in %s; la aggiungo come %s"
-#: merge-recursive.c:1695
+#: merge-recursive.c:1718
#, c-format
msgid "Refusing to lose untracked file at %s; adding as %s instead"
msgstr "Mi rifiuto di perdere un file non tracciato in %s; lo aggiungo come %s"
-#: merge-recursive.c:1714
+#: merge-recursive.c:1737
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
@@ -3916,18 +3942,18 @@ msgstr ""
"CONFLITTO (ridenominazione/ridenominazione): file ridenominato \"%s\"->\"%s"
"\" nel branch \"%s\", ridenominato \"%s\"->\"%s\" in \"%s\"%s"
-#: merge-recursive.c:1719
+#: merge-recursive.c:1742
msgid " (left unresolved)"
msgstr " (lasciato irrisolto)"
-#: merge-recursive.c:1828
+#: merge-recursive.c:1851
#, c-format
msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
msgstr ""
"CONFLITTO (ridenominazione/ridenominazione): file ridenominato %s->%s in %s. "
"Ridenominato %s->%s in %s"
-#: merge-recursive.c:2035
+#: merge-recursive.c:2056
#, c-format
msgid ""
"CONFLICT (directory rename split): Unclear where to place %s because "
@@ -3938,7 +3964,7 @@ msgstr ""
"perché la directory %s è stata ridenominata in più directory diverse e "
"nessuna directory di destinazione contiene la maggior parte dei file."
-#: merge-recursive.c:2067
+#: merge-recursive.c:2088
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Existing file/dir at %s in the way of "
@@ -3948,7 +3974,7 @@ msgstr ""
"%s è d'ostacolo alle seguenti ridenominazioni directory che spostano in tale "
"posizione i seguenti percorsi: %s."
-#: merge-recursive.c:2077
+#: merge-recursive.c:2098
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Cannot map more than one path to %s; "
@@ -3958,7 +3984,7 @@ msgstr ""
"un percorso in %s; delle ridenominazioni directory implicite hanno tentato "
"di spostare in tale posizione i seguenti percorsi: %s"
-#: merge-recursive.c:2169
+#: merge-recursive.c:2190
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename directory %s->%s in %s. Rename directory %s-"
@@ -3967,7 +3993,7 @@ msgstr ""
"CONFLITTO (ridenominazione/ridenominazione): directory ridenominata %s->%s "
"in %s. Directory ridenominata %s->%s in %s"
-#: merge-recursive.c:2413
+#: merge-recursive.c:2435
#, c-format
msgid ""
"WARNING: Avoiding applying %s -> %s rename to %s, because %s itself was "
@@ -3976,52 +4002,52 @@ msgstr ""
"ATTENZIONE: evito di applicare la ridenominazione %s -> %s a %s perché %s "
"stesso è stato ridenominato."
-#: merge-recursive.c:2938
+#: merge-recursive.c:2961
#, c-format
msgid "cannot read object %s"
msgstr "impossibile leggere l'oggetto %s"
-#: merge-recursive.c:2941
+#: merge-recursive.c:2964
#, c-format
msgid "object %s is not a blob"
msgstr "l'oggetto %s non è un blob"
-#: merge-recursive.c:3005
+#: merge-recursive.c:3028
msgid "modify"
msgstr "modifica"
-#: merge-recursive.c:3005
+#: merge-recursive.c:3028
msgid "modified"
msgstr "modificato"
-#: merge-recursive.c:3017
+#: merge-recursive.c:3040
msgid "content"
msgstr "contenuto"
-#: merge-recursive.c:3021
+#: merge-recursive.c:3044
msgid "add/add"
msgstr "aggiunta/aggiunta"
-#: merge-recursive.c:3044
+#: merge-recursive.c:3067
#, c-format
msgid "Skipped %s (merged same as existing)"
msgstr "Omesso %s (elemento sottoposto a merge uguale a quello esistente)"
-#: merge-recursive.c:3066 git-submodule.sh:937
+#: merge-recursive.c:3089 git-submodule.sh:937
msgid "submodule"
msgstr "sottomodulo"
-#: merge-recursive.c:3067
+#: merge-recursive.c:3090
#, c-format
msgid "CONFLICT (%s): Merge conflict in %s"
msgstr "CONFLITTO (%s): conflitto di merge in %s"
-#: merge-recursive.c:3097
+#: merge-recursive.c:3120
#, c-format
msgid "Adding as %s instead"
msgstr "Lo aggiungo come %s"
-#: merge-recursive.c:3179
+#: merge-recursive.c:3203
#, c-format
msgid ""
"Path updated: %s added in %s inside a directory that was renamed in %s; "
@@ -4030,7 +4056,7 @@ msgstr ""
"Percorso aggiornato: %s aggiunto in %s in una directory ridenominata in %s; "
"lo sposto in %s."
-#: merge-recursive.c:3182
+#: merge-recursive.c:3206
#, c-format
msgid ""
"CONFLICT (file location): %s added in %s inside a directory that was renamed "
@@ -4039,7 +4065,7 @@ msgstr ""
"CONFLITTO (posizione file): %s aggiunto in %s in una directory ridenominata "
"in %s, il che suggerisce che forse dovrebbe essere spostato in %s."
-#: merge-recursive.c:3186
+#: merge-recursive.c:3210
#, c-format
msgid ""
"Path updated: %s renamed to %s in %s, inside a directory that was renamed in "
@@ -4048,7 +4074,7 @@ msgstr ""
"Percorso aggiornato: %s ridenominato in %s in %s in una directory "
"ridenominata in %s; lo sposto in %s."
-#: merge-recursive.c:3189
+#: merge-recursive.c:3213
#, c-format
msgid ""
"CONFLICT (file location): %s renamed to %s in %s, inside a directory that "
@@ -4058,228 +4084,228 @@ msgstr ""
"ridenominata in %s, il che suggerisce che forse dovrebbe essere spostato in "
"%s."
-#: merge-recursive.c:3303
+#: merge-recursive.c:3327
#, c-format
msgid "Removing %s"
msgstr "Rimozione di %s"
-#: merge-recursive.c:3326
+#: merge-recursive.c:3350
msgid "file/directory"
msgstr "file/directory"
-#: merge-recursive.c:3331
+#: merge-recursive.c:3355
msgid "directory/file"
msgstr "directory/file"
-#: merge-recursive.c:3338
+#: merge-recursive.c:3362
#, c-format
msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
msgstr ""
"CONFLITTO (%s): una directory denominata %s esiste già in %s. Aggiungo %s "
"come %s"
-#: merge-recursive.c:3347
+#: merge-recursive.c:3371
#, c-format
msgid "Adding %s"
msgstr "Aggiunta %s"
-#: merge-recursive.c:3356
+#: merge-recursive.c:3380
#, c-format
msgid "CONFLICT (add/add): Merge conflict in %s"
msgstr "CONFLITTO (aggiungi/aggiungi): conflitto di merge in %s"
-#: merge-recursive.c:3394
-#, c-format
-msgid ""
-"Your local changes to the following files would be overwritten by merge:\n"
-" %s"
-msgstr ""
-"Le tue modifiche locali ai seguenti file sarebbero sovrascritte dal merge:\n"
-" %s"
-
-#: merge-recursive.c:3405
+#: merge-recursive.c:3424
msgid "Already up to date!"
msgstr "Già aggiornato!"
-#: merge-recursive.c:3414
+#: merge-recursive.c:3433
#, c-format
msgid "merging of trees %s and %s failed"
msgstr "merge degli alberi %s e %s non riuscito"
-#: merge-recursive.c:3513
+#: merge-recursive.c:3537
msgid "Merging:"
msgstr "Merge in corso:"
-#: merge-recursive.c:3526
+#: merge-recursive.c:3550
#, c-format
msgid "found %u common ancestor:"
msgid_plural "found %u common ancestors:"
msgstr[0] "trovato %u antenato comune:"
msgstr[1] "trovati %u antenati comuni:"
-#: merge-recursive.c:3565
+#: merge-recursive.c:3600
msgid "merge returned no commit"
msgstr "il merge non ha restituito alcun commit"
-#: merge-recursive.c:3631
+#: merge-recursive.c:3659
+#, c-format
+msgid ""
+"Your local changes to the following files would be overwritten by merge:\n"
+" %s"
+msgstr ""
+"Le tue modifiche locali ai seguenti file sarebbero sovrascritte dal merge:\n"
+" %s"
+
+#: merge-recursive.c:3756
#, c-format
msgid "Could not parse object '%s'"
msgstr "Impossibile analizzare l'oggetto '%s'"
-#: merge-recursive.c:3647 builtin/merge.c:698 builtin/merge.c:869
+#: merge-recursive.c:3774 builtin/merge.c:694 builtin/merge.c:874
msgid "Unable to write index."
msgstr "Impossibile scrivere l'indice."
-#: midx.c:69
+#: midx.c:68
#, c-format
msgid "multi-pack-index file %s is too small"
msgstr "il file multi-pack-index %s è troppo piccolo"
-#: midx.c:85
+#: midx.c:84
#, c-format
msgid "multi-pack-index signature 0x%08x does not match signature 0x%08x"
msgstr "la firma del multi-pack-index 0x%08x non corrisponde alla firma 0x%08x"
-#: midx.c:90
+#: midx.c:89
#, c-format
msgid "multi-pack-index version %d not recognized"
msgstr "versione %d multi-pack-index non riconosciuta"
-#: midx.c:95
+#: midx.c:94
#, c-format
msgid "hash version %u does not match"
msgstr "la versione dell'hash %u non corrisponde"
-#: midx.c:109
+#: midx.c:108
msgid "invalid chunk offset (too large)"
msgstr "offset blocco non valido (troppo grande)"
-#: midx.c:133
+#: midx.c:132
msgid "terminating multi-pack-index chunk id appears earlier than expected"
msgstr "l'ID blocco finale multi-pack-index compare prima di quanto previsto"
-#: midx.c:146
+#: midx.c:145
msgid "multi-pack-index missing required pack-name chunk"
msgstr "dal multi-pack-index manca il blocco richiesto pack-name"
-#: midx.c:148
+#: midx.c:147
msgid "multi-pack-index missing required OID fanout chunk"
msgstr "dal multi-pack-index manca il blocco richiesto fanout OID"
-#: midx.c:150
+#: midx.c:149
msgid "multi-pack-index missing required OID lookup chunk"
msgstr "dal multi-pack-index manca il blocco richiesto lookup OID"
-#: midx.c:152
+#: midx.c:151
msgid "multi-pack-index missing required object offsets chunk"
msgstr "dal multi-pack-index manca il blocco richiesto offset oggetti"
-#: midx.c:166
+#: midx.c:165
#, c-format
msgid "multi-pack-index pack names out of order: '%s' before '%s'"
msgstr "nomi pack multi-pack-index in disordine: '%s' appare prima di '%s'"
-#: midx.c:211
+#: midx.c:210
#, c-format
msgid "bad pack-int-id: %u (%u total packs)"
msgstr "pack-int-id non valido: %u (%u pack totali)"
-#: midx.c:261
+#: midx.c:260
msgid "multi-pack-index stores a 64-bit offset, but off_t is too small"
msgstr ""
"nel multi-pack-index è salvato un offset a 64 bit, ma off_t è troppo piccolo"
-#: midx.c:289
+#: midx.c:288
msgid "error preparing packfile from multi-pack-index"
msgstr "errore durante la preparazione del packfile dal multi-pack-index"
-#: midx.c:470
+#: midx.c:469
#, c-format
msgid "failed to add packfile '%s'"
msgstr "aggiunta del packfile '%s' non riuscita"
-#: midx.c:476
+#: midx.c:475
#, c-format
msgid "failed to open pack-index '%s'"
msgstr "apertura del pack-index '%s' non riuscita"
-#: midx.c:536
+#: midx.c:535
#, c-format
msgid "failed to locate object %d in packfile"
msgstr "ricerca dell'oggetto %d nel packfile non riuscita"
-#: midx.c:865
+#: midx.c:864
#, c-format
msgid "did not see pack-file %s to drop"
msgstr "non ho visto il file pack %s da scartare"
-#: midx.c:1036
+#: midx.c:1035
#, c-format
msgid "failed to clear multi-pack-index at %s"
msgstr "pulizia del multi-pack-index %s non riuscita"
-#: midx.c:1091
+#: midx.c:1090
msgid "Looking for referenced packfiles"
msgstr "Ricerca di file pack referenziati in corso"
-#: midx.c:1106
+#: midx.c:1105
#, c-format
msgid ""
"oid fanout out of order: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
msgstr ""
"fanout oid in disordine: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
-#: midx.c:1110
+#: midx.c:1109
msgid "Verifying OID order in MIDX"
msgstr "Verifica ordine OID in MIDX in corso"
-#: midx.c:1119
+#: midx.c:1118
#, c-format
msgid "oid lookup out of order: oid[%d] = %s >= %s = oid[%d]"
msgstr "lookup oid in disordine: oid[%d] = %s >= %s = oid[%d]"
-#: midx.c:1138
+#: midx.c:1137
msgid "Sorting objects by packfile"
msgstr "Ordinamento degli oggetti nel packfile in corso"
-#: midx.c:1144
+#: midx.c:1143
msgid "Verifying object offsets"
msgstr "Verifica offset oggetti in corso"
-#: midx.c:1160
+#: midx.c:1159
#, c-format
msgid "failed to load pack entry for oid[%d] = %s"
msgstr "caricamento voce pack per oid[%d] = %s non riuscito"
-#: midx.c:1166
+#: midx.c:1165
#, c-format
msgid "failed to load pack-index for packfile %s"
msgstr "caricamento pack-index per il packfile %s non riuscito"
-#: midx.c:1175
+#: midx.c:1174
#, c-format
msgid "incorrect object offset for oid[%d] = %s: %<PRIx64> != %<PRIx64>"
msgstr "offset oggetto non corretto per oid[%d] = %s: %<PRIx64> != %<PRIx64>"
-#: midx.c:1350
+#: midx.c:1349
msgid "could not start pack-objects"
msgstr "impossibile avviare pack-objects"
-#: midx.c:1369
+#: midx.c:1368
msgid "could not finish pack-objects"
msgstr "impossibile finire pack-objects"
-#: name-hash.c:532
+#: name-hash.c:537
#, c-format
msgid "unable to create lazy_dir thread: %s"
msgstr "impossibile creare il thread lazy_dir: %s"
-#: name-hash.c:554
+#: name-hash.c:559
#, c-format
msgid "unable to create lazy_name thread: %s"
msgstr "impossibile creare il thread lazy_name: %s"
-#: name-hash.c:560
+#: name-hash.c:565
#, c-format
msgid "unable to join lazy_name thread: %s"
msgstr "impossibile bloccare il thread lazy_name: %s"
@@ -4326,42 +4352,42 @@ msgstr "Mi rifiuto di riscrivere le note in %s (al di fuori di refs/notes/)"
msgid "Bad %s value: '%s'"
msgstr "Valore di %s errato: '%s'"
-#: object.c:54
+#: object.c:53
#, c-format
msgid "invalid object type \"%s\""
msgstr "tipo oggetto \"%s\" non valido"
-#: object.c:174
+#: object.c:173
#, c-format
msgid "object %s is a %s, not a %s"
msgstr "l'oggetto %s è un %s, non un %s"
-#: object.c:234
+#: object.c:233
#, c-format
msgid "object %s has unknown type id %d"
msgstr "l'oggetto %s ha l'ID tipo sconosciuto %d"
-#: object.c:247
+#: object.c:246
#, c-format
msgid "unable to parse object: %s"
msgstr "impossibile analizzare l'oggetto: %s"
-#: object.c:267 object.c:278
+#: object.c:266 object.c:277
#, c-format
msgid "hash mismatch %s"
msgstr "hash non corrispondente: %s"
-#: packfile.c:648
+#: packfile.c:641
msgid "offset before end of packfile (broken .idx?)"
msgstr "offset collocato prima della fine del packfile (.idx corrotto?)"
-#: packfile.c:1899
+#: packfile.c:1887
#, c-format
msgid "offset before start of pack index for %s (corrupt index?)"
msgstr ""
"offset collocato prima dell'inizio dell'indice pack per %s (indice corrotto?)"
-#: packfile.c:1903
+#: packfile.c:1891
#, c-format
msgid "offset beyond end of pack index for %s (truncated index?)"
msgstr ""
@@ -4408,26 +4434,26 @@ msgstr "opzione ambigua: %s (potrebbe essere --%s%s o --%s%s)"
msgid "did you mean `--%s` (with two dashes ?)"
msgstr "forse intendevi `--%s` (con due trattini)?"
-#: parse-options.c:859
+#: parse-options.c:860
#, c-format
msgid "unknown option `%s'"
msgstr "opzione sconosciuta `%s'"
-#: parse-options.c:861
+#: parse-options.c:862
#, c-format
msgid "unknown switch `%c'"
msgstr "opzione `%c` sconosciuta"
-#: parse-options.c:863
+#: parse-options.c:864
#, c-format
msgid "unknown non-ascii option in string: `%s'"
msgstr "opzione non ASCII sconosciuta presente nella stringa: `%s'"
-#: parse-options.c:887
+#: parse-options.c:888
msgid "..."
msgstr "..."
-#: parse-options.c:906
+#: parse-options.c:907
#, c-format
msgid "usage: %s"
msgstr "uso: %s"
@@ -4435,21 +4461,21 @@ msgstr "uso: %s"
#. TRANSLATORS: the colon here should align with the
#. one in "usage: %s" translation.
#.
-#: parse-options.c:912
+#: parse-options.c:913
#, c-format
msgid " or: %s"
msgstr " oppure: %s"
-#: parse-options.c:915
+#: parse-options.c:916
#, c-format
msgid " %s"
msgstr " %s"
-#: parse-options.c:954
+#: parse-options.c:955
msgid "-NUM"
msgstr "-NUM"
-#: parse-options.c:968
+#: parse-options.c:969
#, c-format
msgid "alias of --%s"
msgstr "alias di --%s"
@@ -4623,29 +4649,38 @@ msgstr "impossibile creare lstat in versione threaded: %s"
msgid "unable to parse --pretty format"
msgstr "impossibile analizzare il formato --pretty"
-#: range-diff.c:70
+#: promisor-remote.c:25
+msgid "Remote with no URL"
+msgstr "Remoto senza URL"
+
+#: promisor-remote.c:61
+#, c-format
+msgid "promisor remote name cannot begin with '/': %s"
+msgstr "il nome del remoto promettente non può iniziare con '/': %s"
+
+#: range-diff.c:71
msgid "could not start `log`"
msgstr "impossibile avviare `log`"
-#: range-diff.c:72
+#: range-diff.c:73
msgid "could not read `log` output"
msgstr "impossibile leggere l'output di `log`"
-#: range-diff.c:91 sequencer.c:5021
+#: range-diff.c:92 sequencer.c:4985
#, c-format
msgid "could not parse commit '%s'"
msgstr "impossibile analizzare il commit '%s'"
-#: range-diff.c:117
+#: range-diff.c:118
#, c-format
msgid "could not parse git header '%.*s'"
msgstr "impossibile analizzare l'header Git '%.*s'"
-#: range-diff.c:274
+#: range-diff.c:275
msgid "failed to generate diff"
msgstr "generazione del diff non riuscita"
-#: range-diff.c:506 range-diff.c:508
+#: range-diff.c:507 range-diff.c:509
#, c-format
msgid "could not parse log for '%s'"
msgstr "impossibile analizzare il registro di '%s'"
@@ -4691,11 +4726,11 @@ msgstr "impossibile eseguire stat su '%s'"
msgid "'%s' appears as both a file and as a directory"
msgstr "'%s' compare sia come file sia come directory"
-#: read-cache.c:1499
+#: read-cache.c:1520
msgid "Refresh index"
msgstr "Aggiornamento indice"
-#: read-cache.c:1613
+#: read-cache.c:1635
#, c-format
msgid ""
"index.version set, but the value is invalid.\n"
@@ -4704,7 +4739,7 @@ msgstr ""
"index.version impostato, ma il valore non è valido.\n"
"Uso la versione %i"
-#: read-cache.c:1623
+#: read-cache.c:1645
#, c-format
msgid ""
"GIT_INDEX_VERSION set, but the value is invalid.\n"
@@ -4713,138 +4748,138 @@ msgstr ""
"GIT_INDEX_VERSION impostato, ma il valore non è valido.\n"
"Uso la versione %i"
-#: read-cache.c:1679
+#: read-cache.c:1701
#, c-format
msgid "bad signature 0x%08x"
msgstr "firma non valida: 0x%08x"
-#: read-cache.c:1682
+#: read-cache.c:1704
#, c-format
msgid "bad index version %d"
msgstr "versione indice non valida: %d"
-#: read-cache.c:1691
+#: read-cache.c:1713
msgid "bad index file sha1 signature"
msgstr "firma SHA1 file indice non valida"
-#: read-cache.c:1721
+#: read-cache.c:1743
#, c-format
msgid "index uses %.4s extension, which we do not understand"
msgstr "l'indice usa l'estensione %.4s che non comprendiamo"
-#: read-cache.c:1723
+#: read-cache.c:1745
#, c-format
msgid "ignoring %.4s extension"
msgstr "estensione %.4s ignorata"
-#: read-cache.c:1760
+#: read-cache.c:1782
#, c-format
msgid "unknown index entry format 0x%08x"
msgstr "formato voce indice sconosciuto: 0x%08x"
-#: read-cache.c:1776
+#: read-cache.c:1798
#, c-format
msgid "malformed name field in the index, near path '%s'"
msgstr "campo nome malformato nell'indice, vicino al percorso '%s'"
-#: read-cache.c:1833
+#: read-cache.c:1855
msgid "unordered stage entries in index"
msgstr "voci stage non ordinate nell'indice"
-#: read-cache.c:1836
+#: read-cache.c:1858
#, c-format
msgid "multiple stage entries for merged file '%s'"
msgstr "voci stage multiple per il file sottoposto a merge '%s'"
-#: read-cache.c:1839
+#: read-cache.c:1861
#, c-format
msgid "unordered stage entries for '%s'"
msgstr "voci stage non ordinate per '%s'"
-#: read-cache.c:1946 read-cache.c:2234 rerere.c:565 rerere.c:599 rerere.c:1111
-#: builtin/add.c:460 builtin/check-ignore.c:178 builtin/checkout.c:467
-#: builtin/checkout.c:651 builtin/clean.c:956 builtin/commit.c:347
+#: read-cache.c:1967 read-cache.c:2255 rerere.c:565 rerere.c:599 rerere.c:1111
+#: builtin/add.c:460 builtin/check-ignore.c:178 builtin/checkout.c:468
+#: builtin/checkout.c:652 builtin/clean.c:967 builtin/commit.c:347
#: builtin/diff-tree.c:120 builtin/grep.c:499 builtin/mv.c:145
#: builtin/reset.c:245 builtin/rm.c:271 builtin/submodule--helper.c:330
msgid "index file corrupt"
msgstr "file indice corrotto"
-#: read-cache.c:2087
+#: read-cache.c:2108
#, c-format
msgid "unable to create load_cache_entries thread: %s"
msgstr "impossibile creare il thread load_cache_entries: %s"
-#: read-cache.c:2100
+#: read-cache.c:2121
#, c-format
msgid "unable to join load_cache_entries thread: %s"
msgstr "impossibile bloccare il thread load_cache_entries: %s"
-#: read-cache.c:2133
+#: read-cache.c:2154
#, c-format
msgid "%s: index file open failed"
msgstr "%s: apertura del file indice non riuscita"
-#: read-cache.c:2137
+#: read-cache.c:2158
#, c-format
msgid "%s: cannot stat the open index"
msgstr "%s: impossibile eseguire stat sull'indice aperto"
-#: read-cache.c:2141
+#: read-cache.c:2162
#, c-format
msgid "%s: index file smaller than expected"
msgstr "%s: file indice più piccolo della dimensione attesa"
-#: read-cache.c:2145
+#: read-cache.c:2166
#, c-format
msgid "%s: unable to map index file"
msgstr "%s: impossibile mappare il file indice"
-#: read-cache.c:2187
+#: read-cache.c:2208
#, c-format
msgid "unable to create load_index_extensions thread: %s"
msgstr "impossibile creare il thread load_index_extensions: %s"
-#: read-cache.c:2214
+#: read-cache.c:2235
#, c-format
msgid "unable to join load_index_extensions thread: %s"
msgstr "impossibile bloccare il thread load_index_extensions: %s"
-#: read-cache.c:2246
+#: read-cache.c:2267
#, c-format
msgid "could not freshen shared index '%s'"
msgstr "impossibile aggiornare l'indice condiviso '%s'"
-#: read-cache.c:2293
+#: read-cache.c:2314
#, c-format
msgid "broken index, expect %s in %s, got %s"
msgstr "indice corrotto, atteso %s in %s, presente %s"
-#: read-cache.c:2989 wrapper.c:658 builtin/merge.c:1114
+#: read-cache.c:3010 wrapper.c:622 builtin/merge.c:1119
#, c-format
msgid "could not close '%s'"
msgstr "impossibile chiudere '%s'"
-#: read-cache.c:3092 sequencer.c:2358 sequencer.c:3928
+#: read-cache.c:3113 sequencer.c:2296 sequencer.c:3917
#, c-format
msgid "could not stat '%s'"
msgstr "impossibile eseguire lo stat di '%s'"
-#: read-cache.c:3105
+#: read-cache.c:3126
#, c-format
msgid "unable to open git dir: %s"
msgstr "impossibile aprire la directory git: %s"
-#: read-cache.c:3117
+#: read-cache.c:3138
#, c-format
msgid "unable to unlink: %s"
msgstr "impossibile eseguire unlink: %s"
-#: read-cache.c:3142
+#: read-cache.c:3163
#, c-format
msgid "cannot fix permission bits on '%s'"
msgstr "impossibile correggere i permessi di '%s'"
-#: read-cache.c:3291
+#: read-cache.c:3312
#, c-format
msgid "%s: cannot drop to stage #0"
msgstr "%s: impossibile ripiegare sullo stadio 0"
@@ -4954,8 +4989,8 @@ msgstr ""
msgid "Note that empty commits are commented out"
msgstr "Nota che i commit vuoti sono commentati"
-#: rebase-interactive.c:105 rerere.c:485 rerere.c:692 sequencer.c:3447
-#: sequencer.c:3473 sequencer.c:5120 builtin/fsck.c:356 builtin/rebase.c:235
+#: rebase-interactive.c:105 rerere.c:485 rerere.c:692 sequencer.c:3388
+#: sequencer.c:3414 sequencer.c:5084 builtin/fsck.c:356 builtin/rebase.c:235
#, c-format
msgid "could not write '%s'"
msgstr "impossibile scrivere '%s'"
@@ -5003,7 +5038,7 @@ msgstr "%s non punta a un oggetto valido!"
msgid "ignoring dangling symref %s"
msgstr "ignoro il riferimento simbolico pendente %s"
-#: refs.c:669 ref-filter.c:2092
+#: refs.c:669 ref-filter.c:2098
#, c-format
msgid "ignoring broken ref %s"
msgstr "ignoro il riferimento rotto %s"
@@ -5028,14 +5063,14 @@ msgstr "il riferimento '%s' esiste già"
msgid "unexpected object ID when writing '%s'"
msgstr "ID oggetto inatteso durante la scrittura di '%s'"
-#: refs.c:833 sequencer.c:403 sequencer.c:2709 sequencer.c:2913
-#: sequencer.c:2927 sequencer.c:3184 sequencer.c:5037 wrapper.c:656
+#: refs.c:833 sequencer.c:403 sequencer.c:2647 sequencer.c:2851
+#: sequencer.c:2865 sequencer.c:3122 sequencer.c:5001 wrapper.c:620
#, c-format
msgid "could not write to '%s'"
msgstr "impossibile scrivere su '%s'"
-#: refs.c:860 wrapper.c:225 wrapper.c:395 builtin/am.c:715
-#: builtin/rebase.c:1003
+#: refs.c:860 wrapper.c:188 wrapper.c:358 builtin/am.c:714
+#: builtin/rebase.c:1004
#, c-format
msgid "could not open '%s' for writing"
msgstr "impossibile aprire '%s' in scrittura"
@@ -5070,21 +5105,21 @@ msgstr "mi rifiuto di aggiornare il riferimento con il nome non valido '%s'"
msgid "update_ref failed for ref '%s': %s"
msgstr "update_ref per il riferimento '%s' non riuscita: %s"
-#: refs.c:2012
+#: refs.c:2023
#, c-format
msgid "multiple updates for ref '%s' not allowed"
msgstr "aggiornamenti multipli per il riferimento '%s' non consentiti"
-#: refs.c:2044
+#: refs.c:2055
msgid "ref updates forbidden inside quarantine environment"
msgstr "aggiornamenti riferimento vietati nell'ambiente quarantena"
-#: refs.c:2140 refs.c:2170
+#: refs.c:2151 refs.c:2181
#, c-format
msgid "'%s' exists; cannot create '%s'"
msgstr "'%s' esiste già; impossibile creare '%s'"
-#: refs.c:2146 refs.c:2181
+#: refs.c:2157 refs.c:2192
#, c-format
msgid "cannot process '%s' and '%s' at the same time"
msgstr "impossibile gestire '%s' e '%s' contemporaneamente"
@@ -5094,13 +5129,13 @@ msgstr "impossibile gestire '%s' e '%s' contemporaneamente"
msgid "could not remove reference %s"
msgstr "impossibile rimuovere il riferimento %s"
-#: refs/files-backend.c:1248 refs/packed-backend.c:1532
-#: refs/packed-backend.c:1542
+#: refs/files-backend.c:1248 refs/packed-backend.c:1541
+#: refs/packed-backend.c:1551
#, c-format
msgid "could not delete reference %s: %s"
msgstr "impossibile eliminare il riferimento %s: %s"
-#: refs/files-backend.c:1251 refs/packed-backend.c:1545
+#: refs/files-backend.c:1251 refs/packed-backend.c:1554
#, c-format
msgid "could not delete references: %s"
msgstr "impossibile eliminare i riferimenti: %s"
@@ -5110,7 +5145,7 @@ msgstr "impossibile eliminare i riferimenti: %s"
msgid "invalid refspec '%s'"
msgstr "specificatore riferimento '%s' non valido"
-#: ref-filter.c:42 wt-status.c:1934
+#: ref-filter.c:42 wt-status.c:1938
msgid "gone"
msgstr "sparito"
@@ -5129,122 +5164,122 @@ msgstr "prima di %d"
msgid "ahead %d, behind %d"
msgstr "dopo %d, prima di %d"
-#: ref-filter.c:162
+#: ref-filter.c:165
#, c-format
msgid "expected format: %%(color:<color>)"
msgstr "formato atteso: %%(color:<colore>)"
-#: ref-filter.c:164
+#: ref-filter.c:167
#, c-format
msgid "unrecognized color: %%(color:%s)"
msgstr "colore non riconosciuto: %%(color:%s)"
-#: ref-filter.c:186
+#: ref-filter.c:189
#, c-format
msgid "Integer value expected refname:lstrip=%s"
msgstr "Atteso valore intero: refname:lstrip=%s"
-#: ref-filter.c:190
+#: ref-filter.c:193
#, c-format
msgid "Integer value expected refname:rstrip=%s"
msgstr "Atteso valore intero: refname:rstrip=%s"
-#: ref-filter.c:192
+#: ref-filter.c:195
#, c-format
msgid "unrecognized %%(%s) argument: %s"
msgstr "argomento %%(%s) non riconosciuto: %s"
-#: ref-filter.c:247
+#: ref-filter.c:250
#, c-format
msgid "%%(objecttype) does not take arguments"
msgstr "%%(objecttype) non accetta argomenti"
-#: ref-filter.c:269
+#: ref-filter.c:272
#, c-format
msgid "unrecognized %%(objectsize) argument: %s"
msgstr "argomento %%(objectsize) non riconosciuto: %s"
-#: ref-filter.c:277
+#: ref-filter.c:280
#, c-format
msgid "%%(deltabase) does not take arguments"
msgstr "%%(deltabase) non accetta argomenti"
-#: ref-filter.c:289
+#: ref-filter.c:292
#, c-format
msgid "%%(body) does not take arguments"
msgstr "%%(body) non accetta argomenti"
-#: ref-filter.c:298
+#: ref-filter.c:301
#, c-format
msgid "%%(subject) does not take arguments"
msgstr "%%(subject) non accetta argomenti"
-#: ref-filter.c:320
+#: ref-filter.c:323
#, c-format
msgid "unknown %%(trailers) argument: %s"
msgstr "argomento %%(trailers) sconosciuto: %s"
-#: ref-filter.c:349
+#: ref-filter.c:352
#, c-format
msgid "positive value expected contents:lines=%s"
msgstr "atteso valore positivo in contents:lines=%s"
-#: ref-filter.c:351
+#: ref-filter.c:354
#, c-format
msgid "unrecognized %%(contents) argument: %s"
msgstr "argomento %%(contents) non riconosciuto: %s"
-#: ref-filter.c:366
+#: ref-filter.c:369
#, c-format
msgid "positive value expected objectname:short=%s"
msgstr "atteso valore positivo in objectname:short=%s"
-#: ref-filter.c:370
+#: ref-filter.c:373
#, c-format
msgid "unrecognized %%(objectname) argument: %s"
msgstr "argomento %%(objectname) non riconosciuto: %s"
-#: ref-filter.c:400
+#: ref-filter.c:403
#, c-format
msgid "expected format: %%(align:<width>,<position>)"
msgstr "formato atteso: %%(align:<ampiezza>,<posizione>)"
-#: ref-filter.c:412
+#: ref-filter.c:415
#, c-format
msgid "unrecognized position:%s"
msgstr "valore non riconosciuto: position:%s"
-#: ref-filter.c:419
+#: ref-filter.c:422
#, c-format
msgid "unrecognized width:%s"
msgstr "valore non riconosciuto: width:%s"
-#: ref-filter.c:428
+#: ref-filter.c:431
#, c-format
msgid "unrecognized %%(align) argument: %s"
msgstr "argomento %%(align) non riconosciuto: %s"
-#: ref-filter.c:436
+#: ref-filter.c:439
#, c-format
msgid "positive width expected with the %%(align) atom"
msgstr "attesa ampiezza positiva con l'atom %%(align)"
-#: ref-filter.c:454
+#: ref-filter.c:457
#, c-format
msgid "unrecognized %%(if) argument: %s"
msgstr "argomento %%(if) non riconosciuto: %s"
-#: ref-filter.c:556
+#: ref-filter.c:559
#, c-format
msgid "malformed field name: %.*s"
msgstr "nome campo malformato: %.*s"
-#: ref-filter.c:583
+#: ref-filter.c:586
#, c-format
msgid "unknown field name: %.*s"
msgstr "nome campo sconosciuto: %.*s"
-#: ref-filter.c:587
+#: ref-filter.c:590
#, c-format
msgid ""
"not a git repository, but the field '%.*s' requires access to object data"
@@ -5252,160 +5287,160 @@ msgstr ""
"non è un repository git, ma il campo '%.*s' richiede l'accesso ai dati "
"oggetto"
-#: ref-filter.c:711
+#: ref-filter.c:714
#, c-format
msgid "format: %%(if) atom used without a %%(then) atom"
msgstr "formato: atomo %%(if) usato senza un atomo %%(then)"
-#: ref-filter.c:774
+#: ref-filter.c:777
#, c-format
msgid "format: %%(then) atom used without an %%(if) atom"
msgstr "formato: atomo %%(then) usato senza un atomo %%(if)"
-#: ref-filter.c:776
+#: ref-filter.c:779
#, c-format
msgid "format: %%(then) atom used more than once"
msgstr "formato: atomo %%(then) usato più di una volta"
-#: ref-filter.c:778
+#: ref-filter.c:781
#, c-format
msgid "format: %%(then) atom used after %%(else)"
msgstr "formato: atomo %%(then) usato dopo %%(else)"
-#: ref-filter.c:806
+#: ref-filter.c:809
#, c-format
msgid "format: %%(else) atom used without an %%(if) atom"
msgstr "formato: atomo %%(else) usato senza un atomo %%(if)"
-#: ref-filter.c:808
+#: ref-filter.c:811
#, c-format
msgid "format: %%(else) atom used without a %%(then) atom"
msgstr "formato: atomo %%(else) usato senza un atomo %%(then)"
-#: ref-filter.c:810
+#: ref-filter.c:813
#, c-format
msgid "format: %%(else) atom used more than once"
msgstr "formato: atomo %%(else) usato più di una volta"
-#: ref-filter.c:825
+#: ref-filter.c:828
#, c-format
msgid "format: %%(end) atom used without corresponding atom"
msgstr "formato: atomo %%(end) usato senza l'atomo corrispondente"
-#: ref-filter.c:882
+#: ref-filter.c:885
#, c-format
msgid "malformed format string %s"
msgstr "stringa di formato %s malformata"
-#: ref-filter.c:1485
+#: ref-filter.c:1488
#, c-format
msgid "no branch, rebasing %s"
msgstr "nessun branch, eseguo il rebase di %s"
-#: ref-filter.c:1488
+#: ref-filter.c:1491
#, c-format
msgid "no branch, rebasing detached HEAD %s"
msgstr "nessun branch, eseguo il rebase dell'HEAD scollegato %s"
-#: ref-filter.c:1491
+#: ref-filter.c:1494
#, c-format
msgid "no branch, bisect started on %s"
msgstr "nessun branch, bisezione avviata su %s"
-#: ref-filter.c:1501
+#: ref-filter.c:1504
msgid "no branch"
msgstr "nessun branch"
-#: ref-filter.c:1537 ref-filter.c:1743
+#: ref-filter.c:1540 ref-filter.c:1749
#, c-format
msgid "missing object %s for %s"
msgstr "oggetto %s mancante per %s"
-#: ref-filter.c:1547
+#: ref-filter.c:1550
#, c-format
msgid "parse_object_buffer failed on %s for %s"
msgstr "parse_object_buffer non riuscito su %s per %s"
-#: ref-filter.c:1998
+#: ref-filter.c:2004
#, c-format
msgid "malformed object at '%s'"
msgstr "oggetto malformato in '%s'"
-#: ref-filter.c:2087
+#: ref-filter.c:2093
#, c-format
msgid "ignoring ref with broken name %s"
msgstr "ignoro il riferimento con il nome malformato %s"
-#: ref-filter.c:2382
+#: ref-filter.c:2389
#, c-format
msgid "format: %%(end) atom missing"
msgstr "formato: atomo %%(end) mancante"
-#: ref-filter.c:2482
+#: ref-filter.c:2489
#, c-format
msgid "option `%s' is incompatible with --merged"
msgstr "l'opzione `%s' non è compatibile con --merged"
-#: ref-filter.c:2485
+#: ref-filter.c:2492
#, c-format
msgid "option `%s' is incompatible with --no-merged"
msgstr "l'opzione `%s' non è compatibile con --no-merged"
-#: ref-filter.c:2495
+#: ref-filter.c:2502
#, c-format
msgid "malformed object name %s"
msgstr "nome dell'oggetto %s malformato"
-#: ref-filter.c:2500
+#: ref-filter.c:2507
#, c-format
msgid "option `%s' must point to a commit"
msgstr "l'opzione `%s' deve puntare ad un commit"
-#: remote.c:363
+#: remote.c:366
#, c-format
msgid "config remote shorthand cannot begin with '/': %s"
msgstr ""
"la forma breve della configurazione del remoto non può iniziare con '/': %s"
-#: remote.c:410
+#: remote.c:413
msgid "more than one receivepack given, using the first"
msgstr "è stata specificata più di una direttiva receivepack, uso la prima"
-#: remote.c:418
+#: remote.c:421
msgid "more than one uploadpack given, using the first"
msgstr "è stata specificata più di una direttiva uploadpack, uso la prima"
-#: remote.c:608
+#: remote.c:611
#, c-format
msgid "Cannot fetch both %s and %s to %s"
msgstr "Impossibile recuperare sia %s sia %s in %s"
-#: remote.c:612
+#: remote.c:615
#, c-format
msgid "%s usually tracks %s, not %s"
msgstr "%s solitamente traccia %s, non %s"
-#: remote.c:616
+#: remote.c:619
#, c-format
msgid "%s tracks both %s and %s"
msgstr "%s traccia sia %s sia %s"
-#: remote.c:684
+#: remote.c:687
#, c-format
msgid "key '%s' of pattern had no '*'"
msgstr "la chiave '%s' del pattern non aveva un '*'"
-#: remote.c:694
+#: remote.c:697
#, c-format
msgid "value '%s' of pattern has no '*'"
msgstr "il valore '%s' del pattern non ha un '*'"
-#: remote.c:1000
+#: remote.c:1003
#, c-format
msgid "src refspec %s does not match any"
msgstr "nessuna corrispondenza per lo specificatore riferimento sorgente %s"
-#: remote.c:1005
+#: remote.c:1008
#, c-format
msgid "src refspec %s matches more than one"
msgstr ""
@@ -5416,7 +5451,7 @@ msgstr ""
#. <remote> <src>:<dst>" push, and "being pushed ('%s')" is
#. the <src>.
#.
-#: remote.c:1020
+#: remote.c:1023
#, c-format
msgid ""
"The destination you provided is not a full refname (i.e.,\n"
@@ -5442,7 +5477,7 @@ msgstr ""
"Nessuna delle due opzioni ha funzionato, quindi ci siamo arresi.\n"
"Devi specificare un riferimento completamente qualificato."
-#: remote.c:1040
+#: remote.c:1043
#, c-format
msgid ""
"The <src> part of the refspec is a commit object.\n"
@@ -5453,7 +5488,7 @@ msgstr ""
"è un oggetto tag. Forse intendevi creare un nuovo\n"
"branch eseguendo il push a '%s:refs/heads/%s'?"
-#: remote.c:1045
+#: remote.c:1048
#, c-format
msgid ""
"The <src> part of the refspec is a tag object.\n"
@@ -5464,7 +5499,7 @@ msgstr ""
"è un oggetto tag. Forse intendevi creare un nuovo\n"
"branch eseguendo il push a '%s:refs/tags/%s'?"
-#: remote.c:1050
+#: remote.c:1053
#, c-format
msgid ""
"The <src> part of the refspec is a tree object.\n"
@@ -5476,7 +5511,7 @@ msgstr ""
"tag a un nuovo albero eseguendo il push a\n"
"'%s:refs/tags/%s'?"
-#: remote.c:1055
+#: remote.c:1058
#, c-format
msgid ""
"The <src> part of the refspec is a blob object.\n"
@@ -5488,121 +5523,121 @@ msgstr ""
"tag a un nuovo blob eseguendo il push a\n"
"'%s:refs/tags/%s'?"
-#: remote.c:1091
+#: remote.c:1094
#, c-format
msgid "%s cannot be resolved to branch"
msgstr "%s non può essere risolto in un branch"
-#: remote.c:1102
+#: remote.c:1105
#, c-format
msgid "unable to delete '%s': remote ref does not exist"
msgstr "impossibile eliminare '%s': il riferimento remoto non esiste"
-#: remote.c:1114
+#: remote.c:1117
#, c-format
msgid "dst refspec %s matches more than one"
msgstr ""
"sono state trovate più corrispondenze per lo specificatore riferimento "
"destinazione %s"
-#: remote.c:1121
+#: remote.c:1124
#, c-format
msgid "dst ref %s receives from more than one src"
msgstr ""
"lo specificatore riferimento destinazione %s riceve dati da più di una "
"sorgente"
-#: remote.c:1624 remote.c:1725
+#: remote.c:1627 remote.c:1728
msgid "HEAD does not point to a branch"
msgstr "HEAD non punta ad un branch"
-#: remote.c:1633
+#: remote.c:1636
#, c-format
msgid "no such branch: '%s'"
msgstr "branch '%s' non esistente"
-#: remote.c:1636
+#: remote.c:1639
#, c-format
msgid "no upstream configured for branch '%s'"
msgstr "nessun upstream configurato per il branch '%s'"
-#: remote.c:1642
+#: remote.c:1645
#, c-format
msgid "upstream branch '%s' not stored as a remote-tracking branch"
msgstr ""
"branch upstream '%s' non memorizzato come branch che ne traccia uno remoto"
-#: remote.c:1657
+#: remote.c:1660
#, c-format
msgid "push destination '%s' on remote '%s' has no local tracking branch"
msgstr ""
"la destinazione del push '%s' sul remoto '%s' non ha un branch locale che la "
"traccia"
-#: remote.c:1669
+#: remote.c:1672
#, c-format
msgid "branch '%s' has no remote for pushing"
msgstr "il branch '%s' non ha un remoto per il push"
-#: remote.c:1679
+#: remote.c:1682
#, c-format
msgid "push refspecs for '%s' do not include '%s'"
msgstr "gli specificatori riferimento per '%s' non includono '%s'"
-#: remote.c:1692
+#: remote.c:1695
msgid "push has no destination (push.default is 'nothing')"
msgstr "il push non ha una destinazione (push.default è 'nothing')"
-#: remote.c:1714
+#: remote.c:1717
msgid "cannot resolve 'simple' push to a single destination"
msgstr "impossibile risolvere il push 'simple' a una singola destinazione"
-#: remote.c:1840
+#: remote.c:1843
#, c-format
msgid "couldn't find remote ref %s"
msgstr "impossibile trovare il riferimento remoto %s"
-#: remote.c:1853
+#: remote.c:1856
#, c-format
msgid "* Ignoring funny ref '%s' locally"
msgstr "* Ignoro localmente il riferimento strano '%s'"
-#: remote.c:2016
+#: remote.c:2019
#, c-format
msgid "Your branch is based on '%s', but the upstream is gone.\n"
msgstr "Il tuo branch è basato su '%s', ma l'upstream è scomparso.\n"
-#: remote.c:2020
+#: remote.c:2023
msgid " (use \"git branch --unset-upstream\" to fixup)\n"
msgstr " (usa \"git branch --unset-upstream\" per correggere la situazione)\n"
-#: remote.c:2023
+#: remote.c:2026
#, c-format
msgid "Your branch is up to date with '%s'.\n"
msgstr "Il tuo branch è aggiornato rispetto a '%s'.\n"
-#: remote.c:2027
+#: remote.c:2030
#, c-format
msgid "Your branch and '%s' refer to different commits.\n"
msgstr "Il tuo branch e '%s' fanno riferimento a commit differenti.\n"
-#: remote.c:2030
+#: remote.c:2033
#, c-format
msgid " (use \"%s\" for details)\n"
msgstr " (usa \"%s\" per visualizzare i dettagli)\n"
-#: remote.c:2034
+#: remote.c:2037
#, 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] "Il tuo branch è avanti rispetto a '%s' di %d commit.\n"
msgstr[1] "Il tuo branch è avanti rispetto a '%s' di %d commit.\n"
-#: remote.c:2040
+#: remote.c:2043
msgid " (use \"git push\" to publish your local commits)\n"
msgstr " (usa \"git push\" per pubblicare i tuoi commit locali)\n"
-#: remote.c:2043
+#: remote.c:2046
#, c-format
msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
msgid_plural ""
@@ -5614,11 +5649,11 @@ msgstr[1] ""
"Il tuo branch, rispetto a '%s', è indietro di %d commit e ne posso eseguire "
"il fast forward.\n"
-#: remote.c:2051
+#: remote.c:2054
msgid " (use \"git pull\" to update your local branch)\n"
msgstr " (usa \"git pull\" per aggiornare il tuo branch locale)\n"
-#: remote.c:2054
+#: remote.c:2057
#, c-format
msgid ""
"Your branch and '%s' have diverged,\n"
@@ -5633,11 +5668,11 @@ msgstr[1] ""
"Il tuo branch e '%s' sono diventati divergenti\n"
"e hanno rispettivamente %d e %d commit differenti.\n"
-#: remote.c:2064
+#: remote.c:2067
msgid " (use \"git pull\" to merge the remote branch into yours)\n"
msgstr " (usa \"git pull\" per eseguire il merge del branch remoto nel tuo)\n"
-#: remote.c:2247
+#: remote.c:2250
#, c-format
msgid "cannot parse expected object name '%s'"
msgstr "impossibile analizzare il nome oggetto atteso '%s'"
@@ -5715,7 +5750,7 @@ msgstr "impossibile eseguire l'unlink dell'oggetto smarrito '%s'"
msgid "Recorded preimage for '%s'"
msgstr "Salvata preimmagine di '%s'"
-#: rerere.c:881 submodule.c:2023 builtin/log.c:1773
+#: rerere.c:881 submodule.c:2023 builtin/log.c:1790
#: builtin/submodule--helper.c:1418 builtin/submodule--helper.c:1428
#, c-format
msgid "could not create directory '%s'"
@@ -5750,20 +5785,20 @@ msgstr "Risoluzione per '%s' dimenticata\n"
msgid "unable to open rr-cache directory"
msgstr "impossibile aprire la directory cache rr"
-#: revision.c:2507
+#: revision.c:2509
msgid "your current branch appears to be broken"
msgstr "sembra che il tuo branch corrente sia rotto"
-#: revision.c:2510
+#: revision.c:2512
#, c-format
msgid "your current branch '%s' does not have any commits yet"
msgstr "il tuo branch corrente '%s' non ha ancora commit"
-#: revision.c:2710
+#: revision.c:2720
msgid "--first-parent is incompatible with --bisect"
msgstr "--first-parent non è compatibile con --bisect"
-#: revision.c:2714
+#: revision.c:2724
msgid "-L does not yet support diff formats besides -p and -s"
msgstr "-L non supporta ancora formati diff oltre a -p e -s"
@@ -5785,31 +5820,31 @@ msgstr ""
"L'hook '%s' è stato ignorato perché non è impostato come eseguibile.\n"
"Puoi disabilitare quest'avviso con `git config advice.ignoredHook false`."
-#: send-pack.c:141
+#: send-pack.c:142
msgid "unexpected flush packet while reading remote unpack status"
msgstr ""
"pacchetto flush inatteso durante la lettura dello stato decompressione del "
"remoto"
-#: send-pack.c:143
+#: send-pack.c:144
#, c-format
msgid "unable to parse remote unpack status: %s"
msgstr "impossibile analizzare lo stato decompressione del remoto: %s"
-#: send-pack.c:145
+#: send-pack.c:146
#, c-format
msgid "remote unpack failed: %s"
msgstr "decompressione sul remoto non riuscita: %s"
-#: send-pack.c:306
+#: send-pack.c:307
msgid "failed to sign the push certificate"
msgstr "firma del certificato per il push non riuscita"
-#: send-pack.c:420
+#: send-pack.c:421
msgid "the receiving end does not support --signed push"
msgstr "il ricevente non supporta i push --signed"
-#: send-pack.c:422
+#: send-pack.c:423
msgid ""
"not sending a push certificate since the receiving end does not support --"
"signed push"
@@ -5817,11 +5852,11 @@ msgstr ""
"non invio un certificato push perché il ricevente non supporta i push --"
"signed"
-#: send-pack.c:434
+#: send-pack.c:435
msgid "the receiving end does not support --atomic push"
msgstr "il ricevente non supporta i push --atomic"
-#: send-pack.c:439
+#: send-pack.c:440
msgid "the receiving end does not support push options"
msgstr "il ricevente non supporta le opzioni push"
@@ -5835,7 +5870,7 @@ msgstr "modalità pulizia messaggio commit non valida: '%s'"
msgid "could not delete '%s'"
msgstr "impossibile eliminare '%s'"
-#: sequencer.c:311 builtin/rebase.c:759 builtin/rebase.c:1645 builtin/rm.c:369
+#: sequencer.c:311 builtin/rebase.c:760 builtin/rebase.c:1676 builtin/rm.c:369
#, c-format
msgid "could not remove '%s'"
msgstr "impossibile rimuovere '%s'"
@@ -5875,7 +5910,7 @@ msgstr ""
"con 'git add <path>' o 'git rm <path>' ed esegui\n"
"il commit del risultato con 'git commit'"
-#: sequencer.c:401 sequencer.c:2909
+#: sequencer.c:401 sequencer.c:2847
#, c-format
msgid "could not lock '%s'"
msgstr "impossibile bloccare '%s'"
@@ -5885,15 +5920,15 @@ msgstr "impossibile bloccare '%s'"
msgid "could not write eol to '%s'"
msgstr "impossibile scrivere il carattere di fine riga in '%s'"
-#: sequencer.c:413 sequencer.c:2714 sequencer.c:2915 sequencer.c:2929
-#: sequencer.c:3192
+#: sequencer.c:413 sequencer.c:2652 sequencer.c:2853 sequencer.c:2867
+#: sequencer.c:3130
#, c-format
msgid "failed to finalize '%s'"
msgstr "finalizzazione di '%s' non riuscita"
-#: sequencer.c:436 sequencer.c:981 sequencer.c:1655 sequencer.c:2734
-#: sequencer.c:3174 sequencer.c:3283 builtin/am.c:245 builtin/commit.c:763
-#: builtin/merge.c:1112 builtin/rebase.c:567
+#: sequencer.c:436 sequencer.c:1585 sequencer.c:2672 sequencer.c:3112
+#: sequencer.c:3221 builtin/am.c:244 builtin/commit.c:763 builtin/merge.c:1117
+#: builtin/rebase.c:568
#, c-format
msgid "could not read '%s'"
msgstr "impossibile leggere '%s'"
@@ -5920,70 +5955,65 @@ msgstr "Modalità pulizia non valida: %s"
#. TRANSLATORS: %s will be "revert", "cherry-pick" or
#. "rebase -i".
#.
-#: sequencer.c:632
+#: sequencer.c:631
#, c-format
msgid "%s: Unable to write new index file"
msgstr "%s: impossibile scrivere il nuovo file indice"
-#: sequencer.c:649
+#: sequencer.c:648
msgid "unable to update cache tree"
msgstr "impossibile aggiornare l'albero cache"
-#: sequencer.c:663
+#: sequencer.c:662
msgid "could not resolve HEAD commit"
msgstr "impossibile risolvere il commit HEAD"
-#: sequencer.c:743
+#: sequencer.c:742
#, c-format
msgid "no key present in '%.*s'"
msgstr "nessuna chiave presente in '%.*s'"
-#: sequencer.c:754
+#: sequencer.c:753
#, c-format
msgid "unable to dequote value of '%s'"
msgstr "impossibile rimuovere gli apici dal valore di '%s'"
-#: sequencer.c:791 wrapper.c:227 wrapper.c:397 builtin/am.c:706
-#: builtin/am.c:798 builtin/merge.c:1109 builtin/rebase.c:1045
+#: sequencer.c:790 wrapper.c:190 wrapper.c:360 builtin/am.c:705
+#: builtin/am.c:797 builtin/merge.c:1114 builtin/rebase.c:1046
#, c-format
msgid "could not open '%s' for reading"
msgstr "impossibile aprire '%s' in lettura"
-#: sequencer.c:801
+#: sequencer.c:800
msgid "'GIT_AUTHOR_NAME' already given"
msgstr "'GIT_AUTHOR_NAME' già specificato"
-#: sequencer.c:806
+#: sequencer.c:805
msgid "'GIT_AUTHOR_EMAIL' already given"
msgstr "'GIT_AUTHOR_EMAIL' già specificato"
-#: sequencer.c:811
+#: sequencer.c:810
msgid "'GIT_AUTHOR_DATE' already given"
msgstr "'GIT_AUTHOR_DATE' già specificato"
-#: sequencer.c:815
+#: sequencer.c:814
#, c-format
msgid "unknown variable '%s'"
msgstr "variabile '%s' sconosciuta"
-#: sequencer.c:820
+#: sequencer.c:819
msgid "missing 'GIT_AUTHOR_NAME'"
msgstr "'GIT_AUTHOR_NAME' mancante"
-#: sequencer.c:822
+#: sequencer.c:821
msgid "missing 'GIT_AUTHOR_EMAIL'"
msgstr "'GIT_AUTHOR_EMAIL' mancante"
-#: sequencer.c:824
+#: sequencer.c:823
msgid "missing 'GIT_AUTHOR_DATE'"
msgstr "'GIT_AUTHOR_DATE' mancante"
-#: sequencer.c:884
-#, c-format
-msgid "invalid date format '%s' in '%s'"
-msgstr "formato data '%s' non valido in '%s'"
-
-#: sequencer.c:901
+#: sequencer.c:872
#, c-format
msgid ""
"you have staged changes in your working tree\n"
@@ -6013,15 +6043,11 @@ msgstr ""
"\n"
" git rebase --continue\n"
-#: sequencer.c:995
-msgid "writing root commit"
-msgstr "scrittura commit radice in corso"
-
-#: sequencer.c:1216
+#: sequencer.c:1146
msgid "'prepare-commit-msg' hook failed"
msgstr "hook 'prepare-commit-msg' non riuscito"
-#: sequencer.c:1223
+#: sequencer.c:1153
msgid ""
"Your name and email address were configured automatically based\n"
"on your username and hostname. Please check that they are accurate.\n"
@@ -6048,7 +6074,7 @@ msgstr ""
"\n"
" git commit --amend --reset-author\n"
-#: sequencer.c:1236
+#: sequencer.c:1166
msgid ""
"Your name and email address were configured automatically based\n"
"on your username and hostname. Please check that they are accurate.\n"
@@ -6074,329 +6100,329 @@ msgstr ""
"\n"
" git commit --amend --reset-author\n"
-#: sequencer.c:1278
+#: sequencer.c:1208
msgid "couldn't look up newly created commit"
msgstr "impossibile trovare il commit appena creato"
-#: sequencer.c:1280
+#: sequencer.c:1210
msgid "could not parse newly created commit"
msgstr "impossibile analizzare il commit appena creato"
-#: sequencer.c:1326
+#: sequencer.c:1256
msgid "unable to resolve HEAD after creating commit"
msgstr "impossibile risolvere HEAD dopo la creazione del commit"
-#: sequencer.c:1328
+#: sequencer.c:1258
msgid "detached HEAD"
msgstr "HEAD scollegato"
-#: sequencer.c:1332
+#: sequencer.c:1262
msgid " (root-commit)"
msgstr " (commit radice)"
-#: sequencer.c:1353
+#: sequencer.c:1283
msgid "could not parse HEAD"
msgstr "impossibile analizzare HEAD"
-#: sequencer.c:1355
+#: sequencer.c:1285
#, c-format
msgid "HEAD %s is not a commit!"
msgstr "L'HEAD %s non è un commit!"
-#: sequencer.c:1359 builtin/commit.c:1571
+#: sequencer.c:1289 builtin/commit.c:1571
msgid "could not parse HEAD commit"
msgstr "impossibile analizzare il commit HEAD"
-#: sequencer.c:1411 sequencer.c:2004
+#: sequencer.c:1341 sequencer.c:1933
msgid "unable to parse commit author"
msgstr "impossibile analizzare l'autore del commit"
-#: sequencer.c:1421 builtin/am.c:1573 builtin/merge.c:684
+#: sequencer.c:1352 builtin/am.c:1561 builtin/merge.c:684
msgid "git write-tree failed to write a tree"
msgstr "git write-tree non è riuscito a scrivere un albero"
-#: sequencer.c:1438 sequencer.c:1499
+#: sequencer.c:1369 sequencer.c:1429
#, c-format
msgid "unable to read commit message from '%s'"
msgstr "impossibile leggere il messaggio di commit da '%s'"
-#: sequencer.c:1465 builtin/am.c:1595 builtin/commit.c:1670 builtin/merge.c:878
-#: builtin/merge.c:903
+#: sequencer.c:1396 builtin/am.c:1583 builtin/commit.c:1670 builtin/merge.c:883
+#: builtin/merge.c:908
msgid "failed to write commit object"
msgstr "scrittura dell'oggetto del commit non riuscita"
-#: sequencer.c:1526
+#: sequencer.c:1456
#, c-format
msgid "could not parse commit %s"
msgstr "impossibile analizzare il commit %s"
-#: sequencer.c:1531
+#: sequencer.c:1461
#, c-format
msgid "could not parse parent commit %s"
msgstr "impossibile analizzare il commit genitore %s"
-#: sequencer.c:1605 sequencer.c:1715
+#: sequencer.c:1535 sequencer.c:1645
#, c-format
msgid "unknown command: %d"
msgstr "comando sconosciuto: %d"
-#: sequencer.c:1662 sequencer.c:1687
+#: sequencer.c:1592 sequencer.c:1617
#, c-format
msgid "This is a combination of %d commits."
msgstr "Questa è una combinazione di %d commit."
-#: sequencer.c:1672
+#: sequencer.c:1602
msgid "need a HEAD to fixup"
msgstr "è necessaria un'HEAD per il fixup"
-#: sequencer.c:1674 sequencer.c:3219
+#: sequencer.c:1604 sequencer.c:3157
msgid "could not read HEAD"
msgstr "impossibile leggere l'HEAD"
-#: sequencer.c:1676
+#: sequencer.c:1606
msgid "could not read HEAD's commit message"
msgstr "impossibile leggere il messaggio di commit dell'HEAD"
-#: sequencer.c:1682
+#: sequencer.c:1612
#, c-format
msgid "cannot write '%s'"
msgstr "impossibile scrivere '%s'"
-#: sequencer.c:1689 git-rebase--preserve-merges.sh:496
+#: sequencer.c:1619 git-rebase--preserve-merges.sh:496
msgid "This is the 1st commit message:"
msgstr "Questo è il primo messaggio di commit:"
-#: sequencer.c:1697
+#: sequencer.c:1627
#, c-format
msgid "could not read commit message of %s"
msgstr "impossibile leggere il messaggio di commit di %s"
-#: sequencer.c:1704
+#: sequencer.c:1634
#, c-format
msgid "This is the commit message #%d:"
msgstr "Questo è il messaggio di commit numero %d:"
-#: sequencer.c:1710
+#: sequencer.c:1640
#, c-format
msgid "The commit message #%d will be skipped:"
msgstr "Il messaggio di commit numero %d sarà saltato:"
-#: sequencer.c:1798
+#: sequencer.c:1728
msgid "your index file is unmerged."
msgstr "il file indice non è stato sottoposto a merge."
-#: sequencer.c:1805
+#: sequencer.c:1735
msgid "cannot fixup root commit"
msgstr "impossibile eseguire il fixup sul commit radice"
-#: sequencer.c:1824
+#: sequencer.c:1754
#, c-format
msgid "commit %s is a merge but no -m option was given."
msgstr "il commit %s è un merge ma non è stata specificata l'opzione -m."
-#: sequencer.c:1832 sequencer.c:1840
+#: sequencer.c:1762 sequencer.c:1770
#, c-format
msgid "commit %s does not have parent %d"
msgstr "il commit %s non ha il genitore %d"
-#: sequencer.c:1846
+#: sequencer.c:1776
#, c-format
msgid "cannot get commit message for %s"
msgstr "impossibile ottenere il messaggio di commit per %s"
#. TRANSLATORS: The first %s will be a "todo" command like
#. "revert" or "pick", the second %s a SHA1.
-#: sequencer.c:1865
+#: sequencer.c:1795
#, c-format
msgid "%s: cannot parse parent commit %s"
msgstr "%s: impossibile analizzare il commit genitore %s"
-#: sequencer.c:1930
+#: sequencer.c:1860
#, c-format
msgid "could not rename '%s' to '%s'"
msgstr "impossibile ridenominare '%s' in '%s'"
-#: sequencer.c:1985
+#: sequencer.c:1915
#, c-format
msgid "could not revert %s... %s"
msgstr "non è stato possibile eseguire il revert di %s... %s"
-#: sequencer.c:1986
+#: sequencer.c:1916
#, c-format
msgid "could not apply %s... %s"
msgstr "non è stato possibile applicare %s... %s"
-#: sequencer.c:2045
+#: sequencer.c:1983
#, c-format
msgid "git %s: failed to read the index"
msgstr "git %s: lettura dell'indice non riuscita"
-#: sequencer.c:2052
+#: sequencer.c:1990
#, c-format
msgid "git %s: failed to refresh the index"
msgstr "git %s: aggiornamento dell'indice non riuscito"
-#: sequencer.c:2128
+#: sequencer.c:2066
#, c-format
msgid "%s does not accept arguments: '%s'"
msgstr "%s non accetta argomenti: '%s'"
-#: sequencer.c:2137
+#: sequencer.c:2075
#, c-format
msgid "missing arguments for %s"
msgstr "argomenti mancanti per %s"
-#: sequencer.c:2174
+#: sequencer.c:2112
#, c-format
msgid "could not parse '%.*s'"
msgstr "impossibile analizzare '%.*s'"
-#: sequencer.c:2228
+#: sequencer.c:2166
#, c-format
msgid "invalid line %d: %.*s"
msgstr "riga %d non valida: %.*s"
-#: sequencer.c:2239
+#: sequencer.c:2177
#, c-format
msgid "cannot '%s' without a previous commit"
msgstr "impossibile eseguire '%s' senza un commit precedente"
-#: sequencer.c:2287 builtin/rebase.c:153 builtin/rebase.c:178
+#: sequencer.c:2225 builtin/rebase.c:153 builtin/rebase.c:178
#: builtin/rebase.c:204 builtin/rebase.c:229
#, c-format
msgid "could not read '%s'."
msgstr "impossibile leggere '%s'."
-#: sequencer.c:2323
+#: sequencer.c:2261
msgid "cancelling a cherry picking in progress"
msgstr "annullo un'operazione di cherry-pick in corso"
-#: sequencer.c:2330
+#: sequencer.c:2268
msgid "cancelling a revert in progress"
msgstr "annullo un'operazione di revert in corso"
-#: sequencer.c:2364
+#: sequencer.c:2302
msgid "please fix this using 'git rebase --edit-todo'."
msgstr "correggi la situazione usando 'git rebase --edit-todo'."
-#: sequencer.c:2366
+#: sequencer.c:2304
#, c-format
msgid "unusable instruction sheet: '%s'"
msgstr "foglio istruzioni inutilizzabile: '%s'"
-#: sequencer.c:2371
+#: sequencer.c:2309
msgid "no commits parsed."
msgstr "nessun commit analizzato."
-#: sequencer.c:2382
+#: sequencer.c:2320
msgid "cannot cherry-pick during a revert."
msgstr "impossibile eseguire un cherry-pick durante un revert."
-#: sequencer.c:2384
+#: sequencer.c:2322
msgid "cannot revert during a cherry-pick."
msgstr "impossibile eseguire un revert durante un cherry-pick."
-#: sequencer.c:2466
+#: sequencer.c:2404
#, c-format
msgid "invalid value for %s: %s"
msgstr "valore non valido per %s: %s"
-#: sequencer.c:2553
+#: sequencer.c:2491
msgid "unusable squash-onto"
msgstr "squash-onto inutilizzabile"
-#: sequencer.c:2569
+#: sequencer.c:2507
#, c-format
msgid "malformed options sheet: '%s'"
msgstr "foglio opzioni malformati: '%s'"
-#: sequencer.c:2652 sequencer.c:4351
+#: sequencer.c:2590 sequencer.c:4308
msgid "empty commit set passed"
msgstr "è stato passato un insieme di commit vuoto"
-#: sequencer.c:2668
+#: sequencer.c:2606
msgid "revert is already in progress"
msgstr "un'operazione di revert è già in corso"
-#: sequencer.c:2670
+#: sequencer.c:2608
#, c-format
msgid "try \"git revert (--continue | %s--abort | --quit)\""
msgstr "prova \"git revert (--continue | %s--abort | --quit)\""
-#: sequencer.c:2673
+#: sequencer.c:2611
msgid "cherry-pick is already in progress"
msgstr "un'operazione di cherry-pick è già in corso"
-#: sequencer.c:2675
+#: sequencer.c:2613
#, c-format
msgid "try \"git cherry-pick (--continue | %s--abort | --quit)\""
msgstr "prova \"git cherry-pick (--continue | %s--abort | --quit)\""
-#: sequencer.c:2689
+#: sequencer.c:2627
#, c-format
msgid "could not create sequencer directory '%s'"
msgstr "impossibile creare la directory sequencer '%s'"
-#: sequencer.c:2704
+#: sequencer.c:2642
msgid "could not lock HEAD"
msgstr "impossibile bloccare HEAD"
-#: sequencer.c:2764 sequencer.c:4103
+#: sequencer.c:2702 sequencer.c:4057
msgid "no cherry-pick or revert in progress"
msgstr "nessuna operazione di cherry-pick o revert in corso"
-#: sequencer.c:2766 sequencer.c:2777
+#: sequencer.c:2704 sequencer.c:2715
msgid "cannot resolve HEAD"
msgstr "impossibile risolvere HEAD"
-#: sequencer.c:2768 sequencer.c:2812
+#: sequencer.c:2706 sequencer.c:2750
msgid "cannot abort from a branch yet to be born"
msgstr ""
"impossibile interrompere l'operazione da un branch che deve essere ancora "
"creato"
-#: sequencer.c:2798 builtin/grep.c:734
+#: sequencer.c:2736 builtin/grep.c:736
#, c-format
msgid "cannot open '%s'"
msgstr "impossibile aprire '%s'"
-#: sequencer.c:2800
+#: sequencer.c:2738
#, c-format
msgid "cannot read '%s': %s"
msgstr "impossibile leggere '%s': %s"
-#: sequencer.c:2801
+#: sequencer.c:2739
msgid "unexpected end of file"
msgstr "fine del file inattesa"
-#: sequencer.c:2807
+#: sequencer.c:2745
#, c-format
msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
msgstr ""
"il file '%s' in cui è stato salvato l'HEAD prima del cherry pick è corrotto"
-#: sequencer.c:2818
+#: sequencer.c:2756
msgid "You seem to have moved HEAD. Not rewinding, check your HEAD!"
msgstr ""
"Sembra che tu abbia spostato l'HEAD. Non eseguo il rewind, controlla l'HEAD!"
-#: sequencer.c:2859
+#: sequencer.c:2797
msgid "no revert in progress"
msgstr "nessun revert in corso"
-#: sequencer.c:2867
+#: sequencer.c:2805
msgid "no cherry-pick in progress"
msgstr "nessun cherry-pick in corso"
-#: sequencer.c:2877
+#: sequencer.c:2815
msgid "failed to skip the commit"
msgstr "salto del commit non riuscito"
-#: sequencer.c:2884
+#: sequencer.c:2822
msgid "there is nothing to skip"
msgstr "non c'è nulla da saltare"
-#: sequencer.c:2887
+#: sequencer.c:2825
#, c-format
msgid ""
"have you committed already?\n"
@@ -6405,21 +6431,21 @@ msgstr ""
"hai già eseguito il commit?\n"
"prova \"git %s --continue\""
-#: sequencer.c:3011 sequencer.c:4015
+#: sequencer.c:2949 sequencer.c:3969
#, c-format
msgid "could not update %s"
msgstr "impossibile aggiornare %s"
-#: sequencer.c:3049 sequencer.c:3995
+#: sequencer.c:2987 sequencer.c:3949
msgid "cannot read HEAD"
msgstr "impossibile leggere l'HEAD"
-#: sequencer.c:3066
+#: sequencer.c:3004
#, c-format
msgid "unable to copy '%s' to '%s'"
msgstr "impossibile copiare '%s' in '%s'"
-#: sequencer.c:3074
+#: sequencer.c:3012
#, c-format
msgid ""
"You can amend the commit now, with\n"
@@ -6438,27 +6464,27 @@ msgstr ""
"\n"
" git rebase --continue\n"
-#: sequencer.c:3084
+#: sequencer.c:3022
#, c-format
msgid "Could not apply %s... %.*s"
msgstr "Impossibile applicare %s... %.*s"
-#: sequencer.c:3091
+#: sequencer.c:3029
#, c-format
msgid "Could not merge %.*s"
msgstr "Impossibile eseguire il merge di %.*s"
-#: sequencer.c:3105 sequencer.c:3109 builtin/difftool.c:633
+#: sequencer.c:3043 sequencer.c:3047 builtin/difftool.c:641
#, c-format
msgid "could not copy '%s' to '%s'"
msgstr "impossibile copiare '%s' in '%s'"
-#: sequencer.c:3131 sequencer.c:3558 builtin/rebase.c:849 builtin/rebase.c:1582
-#: builtin/rebase.c:1953 builtin/rebase.c:2008
+#: sequencer.c:3069 sequencer.c:3506 builtin/rebase.c:850 builtin/rebase.c:1613
+#: builtin/rebase.c:1987 builtin/rebase.c:2031
msgid "could not read index"
msgstr "impossibile leggere l'indice"
-#: sequencer.c:3136
+#: sequencer.c:3074
#, c-format
msgid ""
"execution failed: %s\n"
@@ -6473,11 +6499,11 @@ msgstr ""
" git rebase --continue\n"
"\n"
-#: sequencer.c:3142
+#: sequencer.c:3080
msgid "and made changes to the index and/or the working tree\n"
msgstr "e sono state apportate modifiche all'indice e/o all'albero di lavoro\n"
-#: sequencer.c:3148
+#: sequencer.c:3086
#, c-format
msgid ""
"execution succeeded: %s\n"
@@ -6494,76 +6520,76 @@ msgstr ""
" git rebase --continue\n"
"\n"
-#: sequencer.c:3209
+#: sequencer.c:3147
#, c-format
msgid "illegal label name: '%.*s'"
msgstr "nome etichetta illecito: '%.*s'"
-#: sequencer.c:3263
+#: sequencer.c:3201
msgid "writing fake root commit"
msgstr "scrittura commit radice falso in corso"
-#: sequencer.c:3268
+#: sequencer.c:3206
msgid "writing squash-onto"
msgstr "scrittura squash-onto in corso"
-#: sequencer.c:3306 builtin/rebase.c:854 builtin/rebase.c:860
+#: sequencer.c:3244 builtin/rebase.c:855 builtin/rebase.c:861
#, c-format
msgid "failed to find tree of %s"
msgstr "impossibile trovare l'albero di %s"
-#: sequencer.c:3324 builtin/rebase.c:873
+#: sequencer.c:3262 builtin/rebase.c:874
msgid "could not write index"
msgstr "impossibile scrivere l'indice"
-#: sequencer.c:3351
+#: sequencer.c:3289
#, c-format
msgid "could not resolve '%s'"
msgstr "impossibile risolvere '%s'"
-#: sequencer.c:3379
+#: sequencer.c:3320
msgid "cannot merge without a current revision"
msgstr "impossibile eseguire il merge senza una revisione corrente"
-#: sequencer.c:3401
+#: sequencer.c:3342
#, c-format
msgid "unable to parse '%.*s'"
msgstr "impossibile analizzare '%.*s'"
-#: sequencer.c:3410
+#: sequencer.c:3351
#, c-format
msgid "nothing to merge: '%.*s'"
msgstr "non c'è nulla di cui eseguire il merge: '%.*s'"
-#: sequencer.c:3422
+#: sequencer.c:3363
msgid "octopus merge cannot be executed on top of a [new root]"
msgstr "il merge octopus non può essere eseguito su un [nuovo commit radice]"
-#: sequencer.c:3437
+#: sequencer.c:3378
#, c-format
msgid "could not get commit message of '%s'"
msgstr "impossibile ottenere il messaggio di commit per '%s'"
-#: sequencer.c:3590
+#: sequencer.c:3538
#, c-format
msgid "could not even attempt to merge '%.*s'"
msgstr "non è stato nemmeno possibile tentare di eseguire il merge di '%.*s'"
-#: sequencer.c:3606
+#: sequencer.c:3554
msgid "merge: Unable to write new index file"
msgstr "merge: impossibile scrivere il nuovo file indice"
-#: sequencer.c:3675 builtin/rebase.c:711
+#: sequencer.c:3623 builtin/rebase.c:712
#, c-format
msgid "Applied autostash.\n"
msgstr "Stash automatico applicato.\n"
-#: sequencer.c:3687
+#: sequencer.c:3635
#, c-format
msgid "cannot store %s"
msgstr "impossibile memorizzare %s"
-#: sequencer.c:3690 builtin/rebase.c:727 git-rebase--preserve-merges.sh:113
+#: sequencer.c:3638 builtin/rebase.c:728 git-rebase--preserve-merges.sh:113
#, c-format
msgid ""
"Applying autostash resulted in conflicts.\n"
@@ -6574,31 +6600,31 @@ msgstr ""
"Le tue modifiche sono al sicuro nello stash.\n"
"Puoi eseguire \"git stash pop\" o \"git stash drop\" in qualunque momento.\n"
-#: sequencer.c:3751
+#: sequencer.c:3699
#, c-format
msgid "could not checkout %s"
msgstr "impossibile eseguire il checkout di %s"
-#: sequencer.c:3765
+#: sequencer.c:3713
#, c-format
msgid "%s: not a valid OID"
msgstr "%s: non è un OID valido"
-#: sequencer.c:3770 git-rebase--preserve-merges.sh:779
+#: sequencer.c:3718 git-rebase--preserve-merges.sh:779
msgid "could not detach HEAD"
msgstr "impossibile scollegare l'HEAD"
-#: sequencer.c:3785
+#: sequencer.c:3733
#, c-format
msgid "Stopped at HEAD\n"
msgstr "Fermato a HEAD\n"
-#: sequencer.c:3787
+#: sequencer.c:3735
#, c-format
msgid "Stopped at %s\n"
msgstr "Fermato a %s\n"
-#: sequencer.c:3795
+#: sequencer.c:3743
#, c-format
msgid ""
"Could not execute the todo command\n"
@@ -6620,49 +6646,49 @@ msgstr ""
" git rebase --edit-todo\n"
" git rebase --continue\n"
-#: sequencer.c:3877
+#: sequencer.c:3827
#, c-format
msgid "Stopped at %s... %.*s\n"
msgstr "Fermato a %s... %.*s\n"
-#: sequencer.c:3958
+#: sequencer.c:3898
#, c-format
msgid "unknown command %d"
msgstr "comando %d sconosciuto"
-#: sequencer.c:4003
+#: sequencer.c:3957
msgid "could not read orig-head"
msgstr "impossibile leggere orig-head"
-#: sequencer.c:4008
+#: sequencer.c:3962
msgid "could not read 'onto'"
msgstr "impossibile leggere 'onto'"
-#: sequencer.c:4022
+#: sequencer.c:3976
#, c-format
msgid "could not update HEAD to %s"
msgstr "impossibile aggiornare l'HEAD a %s"
-#: sequencer.c:4115
+#: sequencer.c:4069
msgid "cannot rebase: You have unstaged changes."
msgstr ""
"impossibile eseguire il rebase: ci sono delle modifiche non in staging."
-#: sequencer.c:4124
+#: sequencer.c:4078
msgid "cannot amend non-existing commit"
msgstr "impossibile modificare un commit inesistente"
-#: sequencer.c:4126
+#: sequencer.c:4080
#, c-format
msgid "invalid file: '%s'"
msgstr "file non valido: '%s'"
-#: sequencer.c:4128
+#: sequencer.c:4082
#, c-format
msgid "invalid contents: '%s'"
msgstr "contenuti non validi: '%s'"
-#: sequencer.c:4131
+#: sequencer.c:4085
msgid ""
"\n"
"You have uncommitted changes in your working tree. Please, commit them\n"
@@ -6673,42 +6699,42 @@ msgstr ""
"di lavoro. Eseguine prima il commit e quindi esegui nuovamente 'git rebase\n"
"--continue'."
-#: sequencer.c:4167 sequencer.c:4205
+#: sequencer.c:4121 sequencer.c:4159
#, c-format
msgid "could not write file: '%s'"
msgstr "impossibile scrivere il file: '%s'"
-#: sequencer.c:4220
+#: sequencer.c:4174
msgid "could not remove CHERRY_PICK_HEAD"
msgstr "impossibile rimuovere CHERRY_PICK_HEAD"
-#: sequencer.c:4227
+#: sequencer.c:4181
msgid "could not commit staged changes."
msgstr "impossibile eseguire il commit delle modifiche in staging."
-#: sequencer.c:4328
+#: sequencer.c:4285
#, c-format
msgid "%s: can't cherry-pick a %s"
msgstr "%s: impossibile eseguire il cherry pick di un %s"
-#: sequencer.c:4332
+#: sequencer.c:4289
#, c-format
msgid "%s: bad revision"
msgstr "%s: revisione non valida"
-#: sequencer.c:4367
+#: sequencer.c:4324
msgid "can't revert as initial commit"
msgstr "impossibile eseguire il revert come commit iniziale"
-#: sequencer.c:4810
+#: sequencer.c:4774
msgid "make_script: unhandled options"
msgstr "make_script: opzioni non gestite"
-#: sequencer.c:4813
+#: sequencer.c:4777
msgid "make_script: error preparing revisions"
msgstr "make_script: errore durante la preparazione delle revisioni"
-#: sequencer.c:4971
+#: sequencer.c:4935
msgid ""
"You can fix this with 'git rebase --edit-todo' and then run 'git rebase --"
"continue'.\n"
@@ -6718,24 +6744,24 @@ msgstr ""
"eseguire 'git rebase --continue'.\n"
"Oppure puoi interrompere il rebase con 'git rebase --abort'.\n"
-#: sequencer.c:5083 sequencer.c:5100
+#: sequencer.c:5047 sequencer.c:5064
msgid "nothing to do"
msgstr "nulla da fare"
-#: sequencer.c:5114
+#: sequencer.c:5078
msgid "could not skip unnecessary pick commands"
msgstr "impossibile saltare i comandi pick non necessari"
-#: sequencer.c:5197
+#: sequencer.c:5166
msgid "the script was already rearranged."
msgstr "lo script è già stato riordinato."
-#: setup.c:123
+#: setup.c:124
#, c-format
msgid "'%s' is outside repository"
msgstr "'%s' è al di fuori del repository"
-#: setup.c:173
+#: setup.c:174
#, c-format
msgid ""
"%s: no such path in the working tree.\n"
@@ -6745,7 +6771,7 @@ msgstr ""
"Usa 'git <comando> -- <percorso>...' per specificare percorsi non esistenti "
"localmente."
-#: setup.c:186
+#: setup.c:187
#, c-format
msgid ""
"ambiguous argument '%s': unknown revision or path not in the working tree.\n"
@@ -6757,14 +6783,14 @@ msgstr ""
"Usa '--' per separare i percorsi dalle revisioni, come segue:\n"
"'git <comando> [<revisione>...] -- [<file>...]'"
-#: setup.c:235
+#: setup.c:236
#, c-format
msgid "option '%s' must come before non-option arguments"
msgstr ""
"l'opzione '%s' deve essere specificata prima degli argomenti che non "
"costituiscono un'opzione"
-#: setup.c:254
+#: setup.c:255
#, c-format
msgid ""
"ambiguous argument '%s': both revision and filename\n"
@@ -6775,93 +6801,93 @@ msgstr ""
"Usa '--' per separare i percorsi dalle revisioni, come segue:\n"
"'git <comando> [<revisione>...] -- [<file>...]'"
-#: setup.c:390
+#: setup.c:391
msgid "unable to set up work tree using invalid config"
msgstr ""
"impossibile preparare l'albero di lavoro usando una configurazione non valida"
-#: setup.c:394
+#: setup.c:395
msgid "this operation must be run in a work tree"
msgstr "quest'operazione deve essere eseguita in un albero di lavoro"
-#: setup.c:540
+#: setup.c:541
#, c-format
msgid "Expected git repo version <= %d, found %d"
msgstr "Attesa versione repository Git <= %d, trovata %d"
-#: setup.c:548
+#: setup.c:549
msgid "unknown repository extensions found:"
msgstr "trovate estensioni repository sconosciute:"
-#: setup.c:567
+#: setup.c:568
#, c-format
msgid "error opening '%s'"
msgstr "errore durante l'apertura di '%s'"
-#: setup.c:569
+#: setup.c:570
#, c-format
msgid "too large to be a .git file: '%s'"
msgstr "'%s' troppo grande per essere un file .git"
-#: setup.c:571
+#: setup.c:572
#, c-format
msgid "error reading %s"
msgstr "errore durante la lettura di %s"
-#: setup.c:573
+#: setup.c:574
#, c-format
msgid "invalid gitfile format: %s"
msgstr "formato file Git non valido: %s"
-#: setup.c:575
+#: setup.c:576
#, c-format
msgid "no path in gitfile: %s"
msgstr "nessun percorso presente nel file Git: %s"
-#: setup.c:577
+#: setup.c:578
#, c-format
msgid "not a git repository: %s"
msgstr "%s non è un repository Git"
-#: setup.c:676
+#: setup.c:677
#, c-format
msgid "'$%s' too big"
msgstr "'$%s' è troppo grande"
-#: setup.c:690
+#: setup.c:691
#, c-format
msgid "not a git repository: '%s'"
msgstr "'%s' non è un repository Git"
-#: setup.c:719 setup.c:721 setup.c:752
+#: setup.c:720 setup.c:722 setup.c:753
#, c-format
msgid "cannot chdir to '%s'"
msgstr "impossibile modificare la directory corrente in '%s'"
-#: setup.c:724 setup.c:780 setup.c:790 setup.c:829 setup.c:837
+#: setup.c:725 setup.c:781 setup.c:791 setup.c:830 setup.c:838
msgid "cannot come back to cwd"
msgstr "impossibile tornare alla directory di lavoro corrente"
-#: setup.c:851
+#: setup.c:852
#, c-format
msgid "failed to stat '%*s%s%s'"
msgstr "stat di '%*s%s%s' non riuscito"
-#: setup.c:1083
+#: setup.c:1090
msgid "Unable to read current working directory"
msgstr "Impossibile leggere la directory di lavoro corrente"
-#: setup.c:1092 setup.c:1098
+#: setup.c:1099 setup.c:1105
#, c-format
msgid "cannot change to '%s'"
msgstr "impossibile entrare in '%s'"
-#: setup.c:1103
+#: setup.c:1110
#, c-format
msgid "not a git repository (or any of the parent directories): %s"
msgstr "%s non è un repository Git (né lo è alcuna delle directory genitrici)"
-#: setup.c:1109
+#: setup.c:1116
#, c-format
msgid ""
"not a git repository (or any parent up to mount point %s)\n"
@@ -6871,7 +6897,7 @@ msgstr ""
"Mi fermo al limite del filesystem (l'opzione GIT_DISCOVERY_ACROSS_FILESYSTEM "
"non è impostata)."
-#: setup.c:1220
+#: setup.c:1227
#, c-format
msgid ""
"problem with core.sharedRepository filemode value (0%.3o).\n"
@@ -6881,289 +6907,289 @@ msgstr ""
"(0%.3o).\n"
"Il proprietario dei file deve avere sempre i permessi di lettura e scrittura."
-#: setup.c:1264
+#: setup.c:1271
msgid "open /dev/null or dup failed"
msgstr "apertura di /dev/null o dup non riuscita"
-#: setup.c:1279
+#: setup.c:1286
msgid "fork failed"
msgstr "fork non riuscita"
-#: setup.c:1284
+#: setup.c:1291
msgid "setsid failed"
msgstr "setsid non riuscita"
-#: sha1-file.c:453
+#: sha1-file.c:452
#, c-format
msgid "object directory %s does not exist; check .git/objects/info/alternates"
msgstr ""
"la directory oggetti %s non esiste; controlla .git/objects/info/alternates"
-#: sha1-file.c:504
+#: sha1-file.c:503
#, c-format
msgid "unable to normalize alternate object path: %s"
msgstr "impossibile normalizzare il percorso alternativo oggetto: %s"
-#: sha1-file.c:576
+#: sha1-file.c:575
#, c-format
msgid "%s: ignoring alternate object stores, nesting too deep"
msgstr ""
"%s: ignoro gli archivi oggetto alternativi, la nidificazione è troppo "
"profonda"
-#: sha1-file.c:583
+#: sha1-file.c:582
#, c-format
msgid "unable to normalize object directory: %s"
msgstr "impossibile normalizzare la directory oggetti: %s"
-#: sha1-file.c:626
+#: sha1-file.c:625
msgid "unable to fdopen alternates lockfile"
msgstr "impossibile eseguire fdopen sul file di lock alternates"
-#: sha1-file.c:644
+#: sha1-file.c:643
msgid "unable to read alternates file"
msgstr "impossibile leggere il file alternates"
-#: sha1-file.c:651
+#: sha1-file.c:650
msgid "unable to move new alternates file into place"
msgstr "impossibile spostare il nuovo file alternates nella posizione corretta"
-#: sha1-file.c:686
+#: sha1-file.c:685
#, c-format
msgid "path '%s' does not exist"
msgstr "il percorso '%s' non esiste"
-#: sha1-file.c:712
+#: sha1-file.c:711
#, c-format
msgid "reference repository '%s' as a linked checkout is not supported yet."
msgstr ""
"l'aggiunta del repository di riferimento '%s' come checkout collegato non è "
"ancora supportata."
-#: sha1-file.c:718
+#: sha1-file.c:717
#, c-format
msgid "reference repository '%s' is not a local repository."
msgstr "il repository di riferimento '%s' non è un repository locale."
-#: sha1-file.c:724
+#: sha1-file.c:723
#, c-format
msgid "reference repository '%s' is shallow"
msgstr "il repository di riferimento '%s' è shallow"
-#: sha1-file.c:732
+#: sha1-file.c:731
#, c-format
msgid "reference repository '%s' is grafted"
msgstr "il repository di riferimento '%s' è un graft"
-#: sha1-file.c:792
+#: sha1-file.c:791
#, c-format
msgid "invalid line while parsing alternate refs: %s"
msgstr "riga non valida durante l'analisi dei riferimenti degli alternati: %s"
-#: sha1-file.c:944
+#: sha1-file.c:943
#, c-format
msgid "attempting to mmap %<PRIuMAX> over limit %<PRIuMAX>"
msgstr "tento di eseguire mmap %<PRIuMAX> al di sopra del limite %<PRIuMAX>"
-#: sha1-file.c:969
+#: sha1-file.c:964
msgid "mmap failed"
msgstr "mmap non riuscita"
-#: sha1-file.c:1133
+#: sha1-file.c:1128
#, c-format
msgid "object file %s is empty"
msgstr "l'oggetto %s è vuoto"
-#: sha1-file.c:1257 sha1-file.c:2396
+#: sha1-file.c:1252 sha1-file.c:2392
#, c-format
msgid "corrupt loose object '%s'"
msgstr "oggetto sciolto '%s' corrotto"
-#: sha1-file.c:1259 sha1-file.c:2400
+#: sha1-file.c:1254 sha1-file.c:2396
#, c-format
msgid "garbage at end of loose object '%s'"
msgstr "dati inutilizzabili presenti alla fine dell'oggetto sciolto '%s'"
-#: sha1-file.c:1301
+#: sha1-file.c:1296
msgid "invalid object type"
msgstr "tipo oggetto non valido"
-#: sha1-file.c:1385
+#: sha1-file.c:1380
#, c-format
msgid "unable to unpack %s header with --allow-unknown-type"
msgstr "impossibile decomprimere l'intestazione %s con --allow-unknown-type"
-#: sha1-file.c:1388
+#: sha1-file.c:1383
#, c-format
msgid "unable to unpack %s header"
msgstr "impossibile decomprimere l'intestazione %s"
-#: sha1-file.c:1394
+#: sha1-file.c:1389
#, c-format
msgid "unable to parse %s header with --allow-unknown-type"
msgstr "impossibile analizzare l'intestazione %s con --allow-unknown-type"
-#: sha1-file.c:1397
+#: sha1-file.c:1392
#, c-format
msgid "unable to parse %s header"
msgstr "impossibile analizzare l'intestazione %s"
-#: sha1-file.c:1588
+#: sha1-file.c:1584
#, c-format
msgid "failed to read object %s"
msgstr "lettura dell'oggetto %s non riuscita"
-#: sha1-file.c:1592
+#: sha1-file.c:1588
#, c-format
msgid "replacement %s not found for %s"
msgstr "%s sostitutivo non trovato per %s"
-#: sha1-file.c:1596
+#: sha1-file.c:1592
#, c-format
msgid "loose object %s (stored in %s) is corrupt"
msgstr "l'oggetto sciolto %s (salvato in %s) è corrotto"
-#: sha1-file.c:1600
+#: sha1-file.c:1596
#, c-format
msgid "packed object %s (stored in %s) is corrupt"
msgstr "l'oggetto archiviato %s (salvato in %s) è corrotto"
-#: sha1-file.c:1703
+#: sha1-file.c:1699
#, c-format
msgid "unable to write file %s"
msgstr "impossibile scrivere il file %s"
-#: sha1-file.c:1710
+#: sha1-file.c:1706
#, c-format
msgid "unable to set permission to '%s'"
msgstr "impossibile impostare i permessi a '%s'"
-#: sha1-file.c:1717
+#: sha1-file.c:1713
msgid "file write error"
msgstr "errore di scrittura del file"
-#: sha1-file.c:1736
+#: sha1-file.c:1732
msgid "error when closing loose object file"
msgstr "errore durante la chiusura del file oggetto sciolto"
-#: sha1-file.c:1801
+#: sha1-file.c:1797
#, c-format
msgid "insufficient permission for adding an object to repository database %s"
msgstr ""
"permessi non sufficienti per l'aggiunta di un oggetto al database repository "
"%s"
-#: sha1-file.c:1803
+#: sha1-file.c:1799
msgid "unable to create temporary file"
msgstr "impossibile creare il file temporaneo"
-#: sha1-file.c:1827
+#: sha1-file.c:1823
msgid "unable to write loose object file"
msgstr "impossibile scrivere il file oggetto sciolto"
-#: sha1-file.c:1833
+#: sha1-file.c:1829
#, c-format
msgid "unable to deflate new object %s (%d)"
msgstr "impossibile comprimere con deflate il nuovo oggetto %s (%d)"
-#: sha1-file.c:1837
+#: sha1-file.c:1833
#, c-format
msgid "deflateEnd on object %s failed (%d)"
msgstr "deflateEnd non riuscita sull'oggetto %s (%d)"
-#: sha1-file.c:1841
+#: sha1-file.c:1837
#, c-format
msgid "confused by unstable object source data for %s"
msgstr "sono confuso dall'origine dati oggetto non stabile per %s"
-#: sha1-file.c:1851 builtin/pack-objects.c:925
+#: sha1-file.c:1847 builtin/pack-objects.c:925
#, c-format
msgid "failed utime() on %s"
msgstr "utime() di %s non riuscita"
-#: sha1-file.c:1926
+#: sha1-file.c:1922
#, c-format
msgid "cannot read object for %s"
msgstr "impossibile leggere l'oggetto per %s"
-#: sha1-file.c:1966
+#: sha1-file.c:1962
msgid "corrupt commit"
msgstr "commit corrotto"
-#: sha1-file.c:1974
+#: sha1-file.c:1970
msgid "corrupt tag"
msgstr "tag corrotto"
-#: sha1-file.c:2073
+#: sha1-file.c:2069
#, c-format
msgid "read error while indexing %s"
msgstr "errore di lettura durante l'indicizzazione di %s"
-#: sha1-file.c:2076
+#: sha1-file.c:2072
#, c-format
msgid "short read while indexing %s"
msgstr "lettura troppo breve durante l'indicizzazione di %s"
-#: sha1-file.c:2149 sha1-file.c:2158
+#: sha1-file.c:2145 sha1-file.c:2154
#, c-format
msgid "%s: failed to insert into database"
msgstr "%s: inserimento del record nel database non riuscito"
-#: sha1-file.c:2164
+#: sha1-file.c:2160
#, c-format
msgid "%s: unsupported file type"
msgstr "%s: tipo di file non supportato"
-#: sha1-file.c:2188
+#: sha1-file.c:2184
#, c-format
msgid "%s is not a valid object"
msgstr "%s non è un oggetto valido"
-#: sha1-file.c:2190
+#: sha1-file.c:2186
#, c-format
msgid "%s is not a valid '%s' object"
msgstr "%s non è un oggetto '%s' valido"
-#: sha1-file.c:2217 builtin/index-pack.c:155
+#: sha1-file.c:2213 builtin/index-pack.c:155
#, c-format
msgid "unable to open %s"
msgstr "impossibile aprire %s"
-#: sha1-file.c:2407 sha1-file.c:2459
+#: sha1-file.c:2403 sha1-file.c:2455
#, c-format
msgid "hash mismatch for %s (expected %s)"
msgstr "mancata corrispondenza per %s (atteso %s)"
-#: sha1-file.c:2431
+#: sha1-file.c:2427
#, c-format
msgid "unable to mmap %s"
msgstr "impossibile eseguire mmap su %s"
-#: sha1-file.c:2436
+#: sha1-file.c:2432
#, c-format
msgid "unable to unpack header of %s"
msgstr "impossibile decomprimere l'intestazione di %s"
-#: sha1-file.c:2442
+#: sha1-file.c:2438
#, c-format
msgid "unable to parse header of %s"
msgstr "impossibile analizzare l'intestazione di %s"
-#: sha1-file.c:2453
+#: sha1-file.c:2449
#, c-format
msgid "unable to unpack contents of %s"
msgstr "impossibile decomprimere i contenuti di %s"
-#: sha1-name.c:490
+#: sha1-name.c:487
#, c-format
msgid "short SHA1 %s is ambiguous"
msgstr "lo SHA1 breve %s è ambiguo"
-#: sha1-name.c:501
+#: sha1-name.c:498
msgid "The candidates are:"
msgstr "I candidati sono:"
-#: sha1-name.c:800
+#: sha1-name.c:797
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"
@@ -7188,43 +7214,43 @@ msgstr ""
"messaggio eseguendo \"git config advice.objectNameWarning false\""
#. TRANSLATORS: IEC 80000-13:2008 gibibyte
-#: strbuf.c:821
+#: strbuf.c:822
#, c-format
msgid "%u.%2.2u GiB"
msgstr "%u.%2.2u GiB"
#. TRANSLATORS: IEC 80000-13:2008 gibibyte/second
-#: strbuf.c:823
+#: strbuf.c:824
#, c-format
msgid "%u.%2.2u GiB/s"
msgstr "%u.%2.2u GiB/s"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte
-#: strbuf.c:831
+#: strbuf.c:832
#, c-format
msgid "%u.%2.2u MiB"
msgstr "%u.%2.2u MiB"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte/second
-#: strbuf.c:833
+#: strbuf.c:834
#, c-format
msgid "%u.%2.2u MiB/s"
msgstr "%u.%2.2u MiB/s"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte
-#: strbuf.c:840
+#: strbuf.c:841
#, c-format
msgid "%u.%2.2u KiB"
msgstr "%u.%2.2u KiB"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte/second
-#: strbuf.c:842
+#: strbuf.c:843
#, c-format
msgid "%u.%2.2u KiB/s"
msgstr "%u.%2.2u KiB/s"
#. TRANSLATORS: IEC 80000-13:2008 byte
-#: strbuf.c:848
+#: strbuf.c:849
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -7232,7 +7258,7 @@ msgstr[0] "%u byte"
msgstr[1] "%u byte"
#. TRANSLATORS: IEC 80000-13:2008 byte/second
-#: strbuf.c:850
+#: strbuf.c:851
#, c-format
msgid "%u byte/s"
msgid_plural "%u bytes/s"
@@ -7353,28 +7379,28 @@ msgstr "impossibile avviare ls-files in .."
msgid "ls-tree returned unexpected return code %d"
msgstr "ls-tree ha restituito il valore di ritorno inatteso %d"
-#: submodule-config.c:232
+#: submodule-config.c:236
#, c-format
msgid "ignoring suspicious submodule name: %s"
msgstr "ignoro un nome sottomodulo sospetto: %s"
-#: submodule-config.c:299
+#: submodule-config.c:303
msgid "negative values not allowed for submodule.fetchjobs"
msgstr "i valori negativi non sono consentiti per submodule.fetchjobs"
-#: submodule-config.c:397
+#: submodule-config.c:401
#, c-format
msgid "ignoring '%s' which may be interpreted as a command-line option: %s"
msgstr ""
"ignoro '%s' che potrebbe essere interpretato come argomento della riga di "
"comando: %s"
-#: submodule-config.c:486
+#: submodule-config.c:490
#, c-format
msgid "invalid value for %s"
msgstr "valore non valido per %s"
-#: submodule-config.c:755
+#: submodule-config.c:761
#, c-format
msgid "Could not update .gitmodules entry %s"
msgstr "Impossibile aggiornare la voce .gitmodules %s"
@@ -7409,7 +7435,7 @@ msgstr "impossibile leggere il file di input '%s'"
msgid "could not read from stdin"
msgstr "impossibile leggere dallo standard input"
-#: trailer.c:1011 wrapper.c:701
+#: trailer.c:1011 wrapper.c:665
#, c-format
msgid "could not stat %s"
msgstr "impossibile eseguire lo stat di '%s'"
@@ -7438,47 +7464,47 @@ msgstr "impossibile ridenominare il file temporaneo in %s"
msgid "Would set upstream of '%s' to '%s' of '%s'\n"
msgstr "L'upstream di '%s' sarebbe impostato a '%s' di '%s'\n"
-#: transport.c:142
+#: transport.c:145
#, c-format
msgid "could not read bundle '%s'"
msgstr "impossibile leggere il bundle '%s'"
-#: transport.c:208
+#: transport.c:214
#, c-format
msgid "transport: invalid depth option '%s'"
msgstr "trasporto: opzione profondità '%s' non valida"
-#: transport.c:259
+#: transport.c:266
msgid "see protocol.version in 'git help config' for more details"
msgstr "vedi protocol.version in 'git help config' per maggiori dettagli"
-#: transport.c:260
+#: transport.c:267
msgid "server options require protocol version 2 or later"
msgstr "le opzioni server richiedono la versione 2 o successiva del protocollo"
-#: transport.c:625
+#: transport.c:632
msgid "could not parse transport.color.* config"
msgstr "impossibile analizzare la configurazione transport.color.*"
-#: transport.c:698
+#: transport.c:705
msgid "support for protocol v2 not implemented yet"
msgstr "supporto alla versione 2 del protocollo non ancora implementato"
-#: transport.c:825
+#: transport.c:831
#, c-format
msgid "unknown value for config '%s': %s"
msgstr "valore sconosciuto per la configurazione '%s': %s"
-#: transport.c:891
+#: transport.c:897
#, c-format
msgid "transport '%s' not allowed"
msgstr "trasporto '%s' non consentito"
-#: transport.c:945
+#: transport.c:949
msgid "git-over-rsync is no longer supported"
msgstr "git-over-rsync non è più supportato"
-#: transport.c:1040
+#: transport.c:1044
#, c-format
msgid ""
"The following submodule paths contain changes that can\n"
@@ -7487,7 +7513,7 @@ msgstr ""
"I seguenti percorsi sottomodulo contengono modifiche\n"
"non trovate su nessun remoto:\n"
-#: transport.c:1044
+#: transport.c:1048
#, c-format
msgid ""
"\n"
@@ -7514,32 +7540,32 @@ msgstr ""
"per eseguirne il push a un remoto.\n"
"\n"
-#: transport.c:1052
+#: transport.c:1056
msgid "Aborting."
msgstr "Interrompo l'operazione."
-#: transport.c:1193
+#: transport.c:1201
msgid "failed to push all needed submodules"
msgstr "push di tutti i sottomoduli richiesti non riuscito"
-#: transport.c:1340 transport-helper.c:645
+#: transport.c:1345 transport-helper.c:655
msgid "operation not supported by protocol"
msgstr "operazione non supportata dal protocollo"
-#: transport-helper.c:51 transport-helper.c:80
+#: transport-helper.c:61 transport-helper.c:90
msgid "full write to remote helper failed"
msgstr "scrittura completa verso l'helper remoto non riuscita"
-#: transport-helper.c:134
+#: transport-helper.c:144
#, c-format
msgid "unable to find remote helper for '%s'"
msgstr "impossibile trovare l'helper remoto per '%s'"
-#: transport-helper.c:150 transport-helper.c:559
+#: transport-helper.c:160 transport-helper.c:569
msgid "can't dup helper output fd"
msgstr "impossibile duplicare il descrittore file dell'output helper"
-#: transport-helper.c:201
+#: transport-helper.c:211
#, c-format
msgid ""
"unknown mandatory capability %s; this remote helper probably needs newer "
@@ -7548,103 +7574,108 @@ msgstr ""
"capability necessaria %s sconosciuta; quest'helper remoto probabilmente "
"richiede una versione di Git più recente"
-#: transport-helper.c:207
+#: transport-helper.c:217
msgid "this remote helper should implement refspec capability"
msgstr "questo helper remoto dovrebbe implementare la capability refspec"
-#: transport-helper.c:274 transport-helper.c:414
+#: transport-helper.c:284 transport-helper.c:424
#, c-format
msgid "%s unexpectedly said: '%s'"
msgstr "%s ha inviato un messaggio inatteso: '%s'"
-#: transport-helper.c:403
+#: transport-helper.c:413
#, c-format
msgid "%s also locked %s"
msgstr "%s ha bloccato anche %s"
-#: transport-helper.c:481
+#: transport-helper.c:491
msgid "couldn't run fast-import"
msgstr "impossibile eseguire fast-import"
-#: transport-helper.c:504
+#: transport-helper.c:514
msgid "error while running fast-import"
msgstr "errore durante l'esecuzione di fast-import"
-#: transport-helper.c:533 transport-helper.c:1105
+#: transport-helper.c:543 transport-helper.c:1132
#, c-format
msgid "could not read ref %s"
msgstr "impossibile leggere il riferimento %s"
-#: transport-helper.c:578
+#: transport-helper.c:588
#, c-format
msgid "unknown response to connect: %s"
msgstr "risposta inattesa a connect: %s"
-#: transport-helper.c:600
+#: transport-helper.c:610
msgid "setting remote service path not supported by protocol"
msgstr ""
"l'impostazione del percorso del servizio remoto non è supportata dal "
"protocollo"
-#: transport-helper.c:602
+#: transport-helper.c:612
msgid "invalid remote service path"
msgstr "percorso servizio remoto non valido"
-#: transport-helper.c:648
+#: transport-helper.c:658
#, c-format
msgid "can't connect to subservice %s"
msgstr "impossibile connettersi al sottoservizio %s"
-#: transport-helper.c:720
+#: transport-helper.c:734
#, c-format
msgid "expected ok/error, helper said '%s'"
msgstr "attesi ok/error, l'helper ha inviato '%s'"
-#: transport-helper.c:773
+#: transport-helper.c:787
#, c-format
msgid "helper reported unexpected status of %s"
msgstr "l'helper ha segnalato uno stato inatteso di %s"
-#: transport-helper.c:834
+#: transport-helper.c:848
#, c-format
msgid "helper %s does not support dry-run"
msgstr "l'helper %s non supporta dry-run"
-#: transport-helper.c:837
+#: transport-helper.c:851
#, c-format
msgid "helper %s does not support --signed"
msgstr "l'helper %s non supporta --signed"
-#: transport-helper.c:840
+#: transport-helper.c:854
#, c-format
msgid "helper %s does not support --signed=if-asked"
msgstr "l'helper %s non supporta --signed=if-asked"
-#: transport-helper.c:847
+#: transport-helper.c:859
+#, c-format
+msgid "helper %s does not support --atomic"
+msgstr "l'helper %s non supporta --atomic"
+
+#: transport-helper.c:865
#, c-format
msgid "helper %s does not support 'push-option'"
msgstr "l'helper %s non supporta 'push-option'"
-#: transport-helper.c:945
+#: transport-helper.c:963
msgid "remote-helper doesn't support push; refspec needed"
msgstr ""
"l'helper remoto non supporta il push; è necessario uno specificatore "
"riferimento"
-#: transport-helper.c:950
+#: transport-helper.c:968
#, c-format
msgid "helper %s does not support 'force'"
msgstr "l'helper %s non supporta 'force'"
-#: transport-helper.c:997
+#: transport-helper.c:1015
msgid "couldn't run fast-export"
msgstr "impossibile eseguire fast-export"
-#: transport-helper.c:1002
+#: transport-helper.c:1020
msgid "error while running fast-export"
msgstr "errore durante l'esecuzione di fast-export"
-#: transport-helper.c:1027
+#: transport-helper.c:1045
#, c-format
msgid ""
"No refs in common and none specified; doing nothing.\n"
@@ -7653,47 +7684,47 @@ msgstr ""
"Nessun riferimento in comune e nessuno specificato; non eseguo nulla.\n"
"Forse dovresti specificare un branch come 'master'.\n"
-#: transport-helper.c:1091
+#: transport-helper.c:1118
#, c-format
msgid "malformed response in ref list: %s"
msgstr "risposta malformata nell'elenco riferimenti: %s"
-#: transport-helper.c:1244
+#: transport-helper.c:1270
#, c-format
msgid "read(%s) failed"
msgstr "read(%s) non riuscita"
-#: transport-helper.c:1271
+#: transport-helper.c:1297
#, c-format
msgid "write(%s) failed"
msgstr "write(%s) non riuscita"
-#: transport-helper.c:1320
+#: transport-helper.c:1346
#, c-format
msgid "%s thread failed"
msgstr "thread %s non riuscito"
-#: transport-helper.c:1324
+#: transport-helper.c:1350
#, c-format
msgid "%s thread failed to join: %s"
msgstr "join non riuscita per il thread %s: %s"
-#: transport-helper.c:1343 transport-helper.c:1347
+#: transport-helper.c:1369 transport-helper.c:1373
#, c-format
msgid "can't start thread for copying data: %s"
msgstr "impossibile avviare il thread per la copia dei dati: %s"
-#: transport-helper.c:1384
+#: transport-helper.c:1410
#, c-format
msgid "%s process failed to wait"
msgstr "wait non riuscita per il processo %s"
-#: transport-helper.c:1388
+#: transport-helper.c:1414
#, c-format
msgid "%s process failed"
msgstr "processo %s non riuscito"
-#: transport-helper.c:1406 transport-helper.c:1415
+#: transport-helper.c:1432 transport-helper.c:1441
msgid "can't start thread for copying data"
msgstr "impossibile avviare il thread per la copia dei dati"
@@ -7713,7 +7744,7 @@ msgstr "nome file vuoto nella voce dell'albero"
msgid "too-short tree file"
msgstr "file alber troppo corto"
-#: unpack-trees.c:111
+#: unpack-trees.c:110
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by checkout:\n"
@@ -7723,7 +7754,7 @@ msgstr ""
"checkout:\n"
"%%sEsegui il commit o lo stash delle modifiche prima di cambiare branch."
-#: unpack-trees.c:113
+#: unpack-trees.c:112
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by checkout:\n"
@@ -7733,7 +7764,7 @@ msgstr ""
"checkout:\n"
"%%s"
-#: unpack-trees.c:116
+#: unpack-trees.c:115
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by merge:\n"
@@ -7743,7 +7774,7 @@ msgstr ""
"merge:\n"
"%%sEsegui il commit o lo stash delle modifiche prima di eseguire il merge."
-#: unpack-trees.c:118
+#: unpack-trees.c:117
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by merge:\n"
@@ -7753,7 +7784,7 @@ msgstr ""
"merge:\n"
"%%s"
-#: unpack-trees.c:121
+#: unpack-trees.c:120
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by %s:\n"
@@ -7764,7 +7795,7 @@ msgstr ""
"%%sEsegui il commit o lo stash delle modifiche prima di eseguire "
"l'operazione di %s."
-#: unpack-trees.c:123
+#: unpack-trees.c:122
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by %s:\n"
@@ -7774,7 +7805,7 @@ msgstr ""
"l'operazione di %s:\n"
"%%s"
-#: unpack-trees.c:128
+#: unpack-trees.c:127
#, c-format
msgid ""
"Updating the following directories would lose untracked files in them:\n"
@@ -7784,7 +7815,7 @@ msgstr ""
"tracciati in esse contenuti vengano persi:\n"
"%s"
-#: unpack-trees.c:132
+#: unpack-trees.c:131
#, c-format
msgid ""
"The following untracked working tree files would be removed by checkout:\n"
@@ -7794,7 +7825,7 @@ msgstr ""
"eliminati con il checkout:\n"
"%%sSpostali o eliminali prima di cambiare branch."
-#: unpack-trees.c:134
+#: unpack-trees.c:133
#, c-format
msgid ""
"The following untracked working tree files would be removed by checkout:\n"
@@ -7804,7 +7835,7 @@ msgstr ""
"eliminati con il checkout:\n"
"%%s"
-#: unpack-trees.c:137
+#: unpack-trees.c:136
#, c-format
msgid ""
"The following untracked working tree files would be removed by merge:\n"
@@ -7814,7 +7845,7 @@ msgstr ""
"eliminati dal merge:\n"
"%%sSpostali o eliminali prima di eseguire il merge."
-#: unpack-trees.c:139
+#: unpack-trees.c:138
#, c-format
msgid ""
"The following untracked working tree files would be removed by merge:\n"
@@ -7824,7 +7855,7 @@ msgstr ""
"eliminati dal merge:\n"
"%%s"
-#: unpack-trees.c:142
+#: unpack-trees.c:141
#, c-format
msgid ""
"The following untracked working tree files would be removed by %s:\n"
@@ -7834,7 +7865,7 @@ msgstr ""
"eliminati con l'operazione di %s:\n"
"%%sSpostali o eliminali prima di eseguire l'operazione di %s."
-#: unpack-trees.c:144
+#: unpack-trees.c:143
#, c-format
msgid ""
"The following untracked working tree files would be removed by %s:\n"
@@ -7844,7 +7875,7 @@ msgstr ""
"eliminati con l'operazione di %s:\n"
"%%s"
-#: unpack-trees.c:150
+#: unpack-trees.c:149
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by "
@@ -7855,7 +7886,7 @@ msgstr ""
"sovrascritti con il checkout:\n"
"%%sSpostali o eliminali prima di cambiare branch."
-#: unpack-trees.c:152
+#: unpack-trees.c:151
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by "
@@ -7866,7 +7897,7 @@ msgstr ""
"sovrascritti con il checkout:\n"
"%%s"
-#: unpack-trees.c:155
+#: unpack-trees.c:154
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by merge:\n"
@@ -7876,7 +7907,7 @@ msgstr ""
"sovrascritti dal merge:\n"
"%%sSpostali o eliminali prima di eseguire il merge."
-#: unpack-trees.c:157
+#: unpack-trees.c:156
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by merge:\n"
@@ -7886,7 +7917,7 @@ msgstr ""
"sovrascritti dal merge:\n"
"%%s"
-#: unpack-trees.c:160
+#: unpack-trees.c:159
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by %s:\n"
@@ -7896,7 +7927,7 @@ msgstr ""
"sovrascritti con l'operazione di %s:\n"
"%%sSpostali o eliminali prima di eseguire l'operazione di %s."
-#: unpack-trees.c:162
+#: unpack-trees.c:161
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by %s:\n"
@@ -7906,13 +7937,13 @@ msgstr ""
"sovrascritti con l'operazione di %s:\n"
"%%s"
-#: unpack-trees.c:170
+#: unpack-trees.c:169
#, c-format
msgid "Entry '%s' overlaps with '%s'. Cannot bind."
msgstr ""
"La voce '%s' si sovrappone a '%s'. Impossibile eseguire il collegamento."
-#: unpack-trees.c:173
+#: unpack-trees.c:172
#, c-format
msgid ""
"Cannot update sparse checkout: the following entries are not up to date:\n"
@@ -7922,7 +7953,7 @@ msgstr ""
"aggiornate:\n"
"%s"
-#: unpack-trees.c:175
+#: unpack-trees.c:174
#, c-format
msgid ""
"The following working tree files would be overwritten by sparse checkout "
@@ -7933,7 +7964,7 @@ msgstr ""
"l'aggiornamento del checkout sparse:\n"
"%s"
-#: unpack-trees.c:177
+#: unpack-trees.c:176
#, c-format
msgid ""
"The following working tree files would be removed by sparse checkout "
@@ -7944,7 +7975,7 @@ msgstr ""
"l'aggiornamento del checkout sparse:\n"
"%s"
-#: unpack-trees.c:179
+#: unpack-trees.c:178
#, c-format
msgid ""
"Cannot update submodule:\n"
@@ -7953,16 +7984,16 @@ msgstr ""
"Impossibile aggiornare il sottomodulo:\n"
"%s"
-#: unpack-trees.c:256
+#: unpack-trees.c:255
#, c-format
msgid "Aborting\n"
msgstr "Interrompo l'operazione\n"
-#: unpack-trees.c:318
+#: unpack-trees.c:317
msgid "Updating files"
msgstr "Aggiornamento dei file in corso"
-#: unpack-trees.c:350
+#: unpack-trees.c:349
msgid ""
"the following paths have collided (e.g. case-sensitive paths\n"
"on a case-insensitive filesystem) and only one from the same\n"
@@ -8002,7 +8033,7 @@ msgstr "numero di porta non valido"
msgid "invalid '..' path segment"
msgstr "parte percorso '..' non valida"
-#: worktree.c:258 builtin/am.c:2095
+#: worktree.c:258 builtin/am.c:2084
#, c-format
msgid "failed to read '%s'"
msgstr "lettura di '%s' non riuscita"
@@ -8035,17 +8066,17 @@ msgstr "'%s' non è un file .git, codice d'errore %d"
msgid "'%s' does not point back to '%s'"
msgstr "'%s' non punta a '%s'"
-#: wrapper.c:223 wrapper.c:393
+#: wrapper.c:186 wrapper.c:356
#, c-format
msgid "could not open '%s' for reading and writing"
msgstr "impossibile aprire '%s' in lettura e scrittura"
-#: wrapper.c:424 wrapper.c:624
+#: wrapper.c:387 wrapper.c:588
#, c-format
msgid "unable to access '%s'"
msgstr "impossibile accedere a '%s'"
-#: wrapper.c:632
+#: wrapper.c:596
msgid "unable to get current working directory"
msgstr "impossibile ottenere la directory di lavoro corrente"
@@ -8402,82 +8433,90 @@ msgstr ""
"\")"
#: wt-status.c:1437
+msgid " (use \"git cherry-pick --skip\" to skip this patch)"
+msgstr " (usa \"git cherry-pick --skip\" per saltare questa patch)"
+
+#: wt-status.c:1439
msgid " (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)"
msgstr ""
" (usa \"git cherry-pick --abort\" per annullare l'operazione di cherry-pick)"
-#: wt-status.c:1447
+#: wt-status.c:1449
msgid "Revert currently in progress."
msgstr "Revert in corso."
-#: wt-status.c:1450
+#: wt-status.c:1452
#, c-format
msgid "You are currently reverting commit %s."
msgstr "Attualmente stai eseguendo il revert del commit %s."
-#: wt-status.c:1456
+#: wt-status.c:1458
msgid " (fix conflicts and run \"git revert --continue\")"
msgstr " (risolvi i conflitti ed esegui \"git revert --continue\")"
-#: wt-status.c:1459
+#: wt-status.c:1461
msgid " (run \"git revert --continue\" to continue)"
msgstr " (esegui \"git revert --continue\" per continuare)"
-#: wt-status.c:1462
+#: wt-status.c:1464
msgid " (all conflicts fixed: run \"git revert --continue\")"
msgstr ""
" (tutti i conflitti sono stati risolti: esegui \"git revert --continue\")"
-#: wt-status.c:1464
+#: wt-status.c:1466
+msgid " (use \"git revert --skip\" to skip this patch)"
+msgstr " (usa \"git revert --skip\" per saltare questa patch)"
+
+#: wt-status.c:1468
msgid " (use \"git revert --abort\" to cancel the revert operation)"
msgstr " (usa \"git revert --abort\" per annullare l'operazione di revert)"
-#: wt-status.c:1474
+#: wt-status.c:1478
#, c-format
msgid "You are currently bisecting, started from branch '%s'."
msgstr "Attualmente stai eseguendo una bisezione partendo dal branch '%s'."
-#: wt-status.c:1478
+#: wt-status.c:1482
msgid "You are currently bisecting."
msgstr "Attualmente stai eseguendo una bisezione."
-#: wt-status.c:1481
+#: wt-status.c:1485
msgid " (use \"git bisect reset\" to get back to the original branch)"
msgstr " (usa \"git bisect reset\" per tornare al branch originario)"
-#: wt-status.c:1690
+#: wt-status.c:1694
msgid "On branch "
msgstr "Sul branch "
-#: wt-status.c:1697
+#: wt-status.c:1701
msgid "interactive rebase in progress; onto "
msgstr "rebase interattivo in corso su "
-#: wt-status.c:1699
+#: wt-status.c:1703
msgid "rebase in progress; onto "
msgstr "rebase in corso su "
-#: wt-status.c:1709
+#: wt-status.c:1713
msgid "Not currently on any branch."
msgstr "Attualmente non sei su alcun branch."
-#: wt-status.c:1726
+#: wt-status.c:1730
msgid "Initial commit"
msgstr "Commit iniziale"
-#: wt-status.c:1727
+#: wt-status.c:1731
msgid "No commits yet"
msgstr "Non ci sono ancora commit"
-#: wt-status.c:1741
+#: wt-status.c:1745
msgid "Untracked files"
msgstr "File non tracciati"
-#: wt-status.c:1743
+#: wt-status.c:1747
msgid "Ignored files"
msgstr "File ignorati"
-#: wt-status.c:1747
+#: wt-status.c:1751
#, c-format
msgid ""
"It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
@@ -8489,31 +8528,31 @@ msgstr ""
"ma devi stare attento a non dimenticarti di aggiungere\n"
"autonomamente i file nuovi (vedi 'git help status')."
-#: wt-status.c:1753
+#: wt-status.c:1757
#, c-format
msgid "Untracked files not listed%s"
msgstr "File non tracciati non elencati%s"
-#: wt-status.c:1755
+#: wt-status.c:1759
msgid " (use -u option to show untracked files)"
msgstr " (usa l'opzione -u per visualizzare i file non tracciati)"
-#: wt-status.c:1761
+#: wt-status.c:1765
msgid "No changes"
msgstr "Nessuna modifica"
-#: wt-status.c:1766
+#: wt-status.c:1770
#, c-format
msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n"
msgstr ""
"nessuna modifica aggiunta al commit (usa \"git add\" e/o \"git commit -a\")\n"
-#: wt-status.c:1769
+#: wt-status.c:1773
#, c-format
msgid "no changes added to commit\n"
msgstr "nessuna modifica aggiunta al commit\n"
-#: wt-status.c:1772
+#: wt-status.c:1776
#, c-format
msgid ""
"nothing added to commit but untracked files present (use \"git add\" to "
@@ -8522,74 +8561,79 @@ msgstr ""
"non è stato aggiunto nulla al commit ma sono presenti file non tracciati "
"(usa \"git add\" per tracciarli)\n"
-#: wt-status.c:1775
+#: wt-status.c:1779
#, c-format
msgid "nothing added to commit but untracked files present\n"
msgstr ""
"non è stato aggiunto nulla al commit ma sono presenti file non tracciati\n"
-#: wt-status.c:1778
+#: wt-status.c:1782
#, c-format
msgid "nothing to commit (create/copy files and use \"git add\" to track)\n"
msgstr ""
"non c'è nulla di cui eseguire il commit (crea/copia dei file e usa \"git add"
"\" per tracciarli)\n"
-#: wt-status.c:1781 wt-status.c:1786
+#: wt-status.c:1785 wt-status.c:1790
#, c-format
msgid "nothing to commit\n"
msgstr "non c'è nulla di cui eseguire il commit\n"
-#: wt-status.c:1784
+#: wt-status.c:1788
#, c-format
msgid "nothing to commit (use -u to show untracked files)\n"
msgstr ""
"non c'è nulla di cui eseguire il commit (usa -u per visualizzare i file non "
"tracciati)\n"
-#: wt-status.c:1788
+#: wt-status.c:1792
#, c-format
msgid "nothing to commit, working tree clean\n"
msgstr "non c'è nulla di cui eseguire il commit, l'albero di lavoro è pulito\n"
-#: wt-status.c:1901
+#: wt-status.c:1905
msgid "No commits yet on "
msgstr "Non ci sono ancora commit su"
-#: wt-status.c:1905
+#: wt-status.c:1909
msgid "HEAD (no branch)"
msgstr "HEAD (nessun branch)"
-#: wt-status.c:1936
+#: wt-status.c:1940
msgid "different"
msgstr "differente"
-#: wt-status.c:1938 wt-status.c:1946
+#: wt-status.c:1942 wt-status.c:1950
msgid "behind "
msgstr "indietro "
-#: wt-status.c:1941 wt-status.c:1944
+#: wt-status.c:1945 wt-status.c:1948
msgid "ahead "
msgstr "avanti "
#. TRANSLATORS: the action is e.g. "pull with rebase"
-#: wt-status.c:2466
+#: wt-status.c:2470
#, c-format
msgid "cannot %s: You have unstaged changes."
msgstr "impossibile eseguire %s: ci sono delle modifiche non in staging."
-#: wt-status.c:2472
+#: wt-status.c:2476
msgid "additionally, your index contains uncommitted changes."
msgstr ""
"inoltre, l'indice contiene modifiche di cui non è stato eseguito il commit."
-#: wt-status.c:2474
+#: wt-status.c:2478
#, c-format
msgid "cannot %s: Your index contains uncommitted changes."
msgstr ""
"impossibile eseguire %s: l'indice contiene modifiche di cui non è stato "
"eseguito il commit."
+#: compat/precompose_utf8.c:58 builtin/clone.c:452
+#, c-format
+msgid "failed to unlink '%s'"
+msgstr "unlink di '%s' non riuscito"
+
#: builtin/add.c:25
msgid "git add [<options>] [--] <pathspec>..."
msgstr "git add [<opzioni>] [--] <specificatore percorso>..."
@@ -8612,7 +8656,7 @@ msgstr "elimina '%s'\n"
msgid "Unstaged changes after refreshing the index:"
msgstr "Modifiche non nell'area di staging dopo l'aggiornamento dell'indice:"
-#: builtin/add.c:234 builtin/rev-parse.c:896
+#: builtin/add.c:234 builtin/rev-parse.c:897
msgid "Could not read the index"
msgstr "Impossibile leggere l'indice"
@@ -8647,8 +8691,8 @@ msgstr "Impossibile applicare '%s'"
msgid "The following paths are ignored by one of your .gitignore files:\n"
msgstr "I seguenti percorsi sono ignorati da uno dei file .gitignore:\n"
-#: builtin/add.c:290 builtin/clean.c:909 builtin/fetch.c:147 builtin/mv.c:124
-#: builtin/prune-packed.c:56 builtin/pull.c:222 builtin/push.c:560
+#: builtin/add.c:290 builtin/clean.c:910 builtin/fetch.c:162 builtin/mv.c:124
+#: builtin/prune-packed.c:56 builtin/pull.c:223 builtin/push.c:547
#: builtin/remote.c:1345 builtin/rm.c:241 builtin/send-pack.c:165
msgid "dry run"
msgstr "test controllato"
@@ -8704,7 +8748,7 @@ msgstr ""
"controlla se i file - anche quelli mancanti - sono ignorati durante il test "
"controllato"
-#: builtin/add.c:309 builtin/update-index.c:1001
+#: builtin/add.c:309 builtin/update-index.c:1002
msgid "override the executable bit of the listed files"
msgstr "esegui l'override del bit eseguibile dei file elencati"
@@ -8780,115 +8824,111 @@ msgstr "Non è stato specificato nulla, non è stato aggiunto nulla.\n"
msgid "Maybe you wanted to say 'git add .'?\n"
msgstr "Forse intendevi dire 'git add .'?\n"
-#: builtin/am.c:348
+#: builtin/am.c:347
msgid "could not parse author script"
msgstr "impossibile analizzare lo script author"
-#: builtin/am.c:432
+#: builtin/am.c:431
#, c-format
msgid "'%s' was deleted by the applypatch-msg hook"
msgstr "'%s' è stato eliminato dall'hook applypatch-msg"
-#: builtin/am.c:474
+#: builtin/am.c:473
#, c-format
msgid "Malformed input line: '%s'."
msgstr "Riga di input malformata: '%s'."
-#: builtin/am.c:512
+#: builtin/am.c:511
#, c-format
msgid "Failed to copy notes from '%s' to '%s'"
msgstr "Copia delle note da '%s' a '%s' non riuscita"
-#: builtin/am.c:538
+#: builtin/am.c:537
msgid "fseek failed"
msgstr "fseek non riuscita"
-#: builtin/am.c:726
+#: builtin/am.c:725
#, c-format
msgid "could not parse patch '%s'"
msgstr "impossibile analizzare la patch '%s'"
-#: builtin/am.c:791
+#: builtin/am.c:790
msgid "Only one StGIT patch series can be applied at once"
msgstr "Può essere applicata solo una serie di patch StGIT per volta"
-#: builtin/am.c:839
+#: builtin/am.c:838
msgid "invalid timestamp"
msgstr "timestamp non valido"
-#: builtin/am.c:844 builtin/am.c:856
+#: builtin/am.c:843 builtin/am.c:855
msgid "invalid Date line"
msgstr "riga Date non valida"
-#: builtin/am.c:851
+#: builtin/am.c:850
msgid "invalid timezone offset"
msgstr "offset fuso orario non valido"
-#: builtin/am.c:944
+#: builtin/am.c:943
msgid "Patch format detection failed."
msgstr "Rilevamento del formato della patch non riuscito."
-#: builtin/am.c:949 builtin/clone.c:407
+#: builtin/am.c:948 builtin/clone.c:406
#, c-format
msgid "failed to create directory '%s'"
msgstr "creazione della directory '%s' non riuscita"
-#: builtin/am.c:954
+#: builtin/am.c:953
msgid "Failed to split patches."
msgstr "Divisione delle patch non riuscita."
-#: builtin/am.c:1084 builtin/commit.c:374
-msgid "unable to write index file"
-msgstr "impossibile scrivere il file indice"
-
-#: builtin/am.c:1098
+#: builtin/am.c:1084
#, c-format
msgid "When you have resolved this problem, run \"%s --continue\"."
msgstr "Una volta risolto questo problema, esegui \"%s --continue\"."
-#: builtin/am.c:1099
+#: builtin/am.c:1085
#, c-format
msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
msgstr "Se preferisci saltare questa patch, esegui invece \"%s --skip\"."
-#: builtin/am.c:1100
+#: builtin/am.c:1086
#, c-format
msgid "To restore the original branch and stop patching, run \"%s --abort\"."
msgstr ""
"Per ripristinare il branch originario e terminare il patching, esegui \"%s --"
"abort\"."
-#: builtin/am.c:1183
+#: builtin/am.c:1169
msgid "Patch sent with format=flowed; space at the end of lines might be lost."
msgstr ""
"Patch inviata con format=flowed; gli spazi al termine delle righe potrebbero "
"essere andati perduti."
-#: builtin/am.c:1211
+#: builtin/am.c:1197
msgid "Patch is empty."
msgstr "La patch è vuota."
-#: builtin/am.c:1277
+#: builtin/am.c:1262
#, c-format
-msgid "invalid ident line: %.*s"
-msgstr "riga ident non valida: %.*s"
+msgid "missing author line in commit %s"
+msgstr "riga autore mancante nel commit %s"
-#: builtin/am.c:1299
+#: builtin/am.c:1265
#, c-format
-msgid "unable to parse commit %s"
-msgstr "impossibile analizzare il commit %s"
+msgid "invalid ident line: %.*s"
+msgstr "riga ident non valida: %.*s"
-#: builtin/am.c:1496
+#: builtin/am.c:1484
msgid "Repository lacks necessary blobs to fall back on 3-way merge."
msgstr ""
"Dal repository mancano i blob necessari per ripiegare sul merge a tre vie."
-#: builtin/am.c:1498
+#: builtin/am.c:1486
msgid "Using index info to reconstruct a base tree..."
msgstr ""
"Utilizzo le informazioni dell'indice per ricostruire un albero di base..."
-#: builtin/am.c:1517
+#: builtin/am.c:1505
msgid ""
"Did you hand edit your patch?\n"
"It does not apply to blobs recorded in its index."
@@ -8896,24 +8936,24 @@ msgstr ""
"Hai modificato manualmente la patch?\n"
"Non può essere applicata ai blob registrati nel suo indice."
-#: builtin/am.c:1523
+#: builtin/am.c:1511
msgid "Falling back to patching base and 3-way merge..."
msgstr "Ripiego sul patching della base e sul merge a tre vie..."
-#: builtin/am.c:1549
+#: builtin/am.c:1537
msgid "Failed to merge in the changes."
msgstr "Merge delle modifiche non riuscito."
-#: builtin/am.c:1581
+#: builtin/am.c:1569
msgid "applying to an empty history"
msgstr "applicazione a una cronologia vuota"
-#: builtin/am.c:1628 builtin/am.c:1632
+#: builtin/am.c:1616 builtin/am.c:1620
#, c-format
msgid "cannot resume: %s does not exist."
msgstr "impossibile riprendere l'attività: %s non esiste."
-#: builtin/am.c:1650
+#: builtin/am.c:1638
msgid "Commit Body is:"
msgstr "Il corpo del commit è:"
@@ -8921,37 +8961,41 @@ msgstr "Il corpo del commit è:"
#. in your translation. The program will only accept English
#. input at this point.
#.
-#: builtin/am.c:1660
+#: builtin/am.c:1648
#, c-format
msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
msgstr ""
"Applico? Sì [y]/No [n]/Modifica [e]/[V]isualizza patch/[A]ccetta tutto:"
-#: builtin/am.c:1710
+#: builtin/am.c:1695 builtin/commit.c:374
+msgid "unable to write index file"
+msgstr "impossibile scrivere il file indice"
+
+#: builtin/am.c:1699
#, c-format
msgid "Dirty index: cannot apply patches (dirty: %s)"
msgstr "Indice sporco: impossibile applicare le patch (elemento sporco: %s)"
-#: builtin/am.c:1750 builtin/am.c:1818
+#: builtin/am.c:1739 builtin/am.c:1807
#, c-format
msgid "Applying: %.*s"
msgstr "Applicazione in corso: %.*s"
-#: builtin/am.c:1767
+#: builtin/am.c:1756
msgid "No changes -- Patch already applied."
msgstr "Nessuna modifica -- patch già applicata."
-#: builtin/am.c:1773
+#: builtin/am.c:1762
#, c-format
msgid "Patch failed at %s %.*s"
msgstr "Patch non riuscita a %s %.*s"
-#: builtin/am.c:1777
+#: builtin/am.c:1766
msgid "Use 'git am --show-current-patch' to see the failed patch"
msgstr ""
"Usa 'git am --show-current-patch' per visualizzare la patch non riuscita"
-#: builtin/am.c:1821
+#: builtin/am.c:1810
msgid ""
"No changes - did you forget to use 'git add'?\n"
"If there is nothing left to stage, chances are that something else\n"
@@ -8961,7 +9005,7 @@ msgstr ""
"Se non rimane nulla da aggiungere all'area di staging, forse qualcos'altro\n"
"ha già introdotto le stesse modifiche; potresti voler saltare questa patch."
-#: builtin/am.c:1828
+#: builtin/am.c:1817
msgid ""
"You still have unmerged paths in your index.\n"
"You should 'git add' each file with resolved conflicts to mark them as "
@@ -8974,17 +9018,17 @@ msgstr ""
"Potresti eseguire `git rm` su un file per accettarne la risoluzione "
"\"eliminato da loro\"."
-#: builtin/am.c:1935 builtin/am.c:1939 builtin/am.c:1951 builtin/reset.c:329
+#: builtin/am.c:1924 builtin/am.c:1928 builtin/am.c:1940 builtin/reset.c:329
#: builtin/reset.c:337
#, c-format
msgid "Could not parse object '%s'."
msgstr "Impossibile analizzare l'oggetto '%s'."
-#: builtin/am.c:1987
+#: builtin/am.c:1976
msgid "failed to clean index"
msgstr "pulizia dell'indice non riuscita"
-#: builtin/am.c:2031
+#: builtin/am.c:2020
msgid ""
"You seem to have moved HEAD since the last 'am' failure.\n"
"Not rewinding to ORIG_HEAD"
@@ -8993,148 +9037,148 @@ msgstr ""
"'am'.\n"
"Non ritorno indietro a ORIG_HEAD"
-#: builtin/am.c:2128
+#: builtin/am.c:2117
#, c-format
msgid "Invalid value for --patch-format: %s"
msgstr "Valore non valido per --patch-format: %s"
-#: builtin/am.c:2164
+#: builtin/am.c:2153
msgid "git am [<options>] [(<mbox> | <Maildir>)...]"
msgstr "git am [<opzioni>] [(<mbox> | <Maildir>)...]"
-#: builtin/am.c:2165
+#: builtin/am.c:2154
msgid "git am [<options>] (--continue | --skip | --abort)"
msgstr "git am [<opzioni>] (--continue | --skip | --abort)"
-#: builtin/am.c:2171
+#: builtin/am.c:2160
msgid "run interactively"
msgstr "esegui in modalità interattiva"
-#: builtin/am.c:2173
+#: builtin/am.c:2162
msgid "historical option -- no-op"
msgstr "opzione storica -- non esegue nulla"
-#: builtin/am.c:2175
+#: builtin/am.c:2164
msgid "allow fall back on 3way merging if needed"
msgstr "consenti il ripiego sul merge a tre vie se necessario"
-#: builtin/am.c:2176 builtin/init-db.c:494 builtin/prune-packed.c:58
-#: builtin/repack.c:296 builtin/stash.c:806
+#: builtin/am.c:2165 builtin/init-db.c:494 builtin/prune-packed.c:58
+#: builtin/repack.c:297 builtin/stash.c:812
msgid "be quiet"
msgstr "non visualizzare messaggi"
-#: builtin/am.c:2178
+#: builtin/am.c:2167
msgid "add a Signed-off-by line to the commit message"
msgstr "aggiungi una riga Signed-off-by al messaggio di commit"
-#: builtin/am.c:2181
+#: builtin/am.c:2170
msgid "recode into utf8 (default)"
msgstr "converti codifica in UTF-8 (impostazione predefinita)"
-#: builtin/am.c:2183
+#: builtin/am.c:2172
msgid "pass -k flag to git-mailinfo"
msgstr "fornisci l'argomento -k a git-mailinfo"
-#: builtin/am.c:2185
+#: builtin/am.c:2174
msgid "pass -b flag to git-mailinfo"
msgstr "fornisci l'argomento -b a git-mailinfo"
-#: builtin/am.c:2187
+#: builtin/am.c:2176
msgid "pass -m flag to git-mailinfo"
msgstr "fornisci l'argomento -m a git-mailinfo"
-#: builtin/am.c:2189
+#: builtin/am.c:2178
msgid "pass --keep-cr flag to git-mailsplit for mbox format"
msgstr "fornisci a git-mailsplit l'argomento --keep-cr per il formato mbox"
-#: builtin/am.c:2192
+#: builtin/am.c:2181
msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
msgstr ""
"non fornire l'argomento --keep-cr a git-mailsplit indipendentemente dal "
"valore di am.keepcr"
-#: builtin/am.c:2195
+#: builtin/am.c:2184
msgid "strip everything before a scissors line"
msgstr "rimuovi tutte le righe prima di una riga \"taglia qui\""
-#: builtin/am.c:2197 builtin/am.c:2200 builtin/am.c:2203 builtin/am.c:2206
-#: builtin/am.c:2209 builtin/am.c:2212 builtin/am.c:2215 builtin/am.c:2218
-#: builtin/am.c:2224
+#: builtin/am.c:2186 builtin/am.c:2189 builtin/am.c:2192 builtin/am.c:2195
+#: builtin/am.c:2198 builtin/am.c:2201 builtin/am.c:2204 builtin/am.c:2207
+#: builtin/am.c:2213
msgid "pass it through git-apply"
msgstr "passa l'argomento a git-apply"
-#: builtin/am.c:2214 builtin/commit.c:1368 builtin/fmt-merge-msg.c:671
-#: builtin/fmt-merge-msg.c:674 builtin/grep.c:881 builtin/merge.c:249
-#: builtin/pull.c:159 builtin/pull.c:218 builtin/rebase.c:1418
-#: builtin/repack.c:307 builtin/repack.c:311 builtin/repack.c:313
+#: builtin/am.c:2203 builtin/commit.c:1368 builtin/fmt-merge-msg.c:671
+#: builtin/fmt-merge-msg.c:674 builtin/grep.c:883 builtin/merge.c:249
+#: builtin/pull.c:160 builtin/pull.c:219 builtin/rebase.c:1442
+#: builtin/repack.c:308 builtin/repack.c:312 builtin/repack.c:314
#: builtin/show-branch.c:650 builtin/show-ref.c:172 builtin/tag.c:403
-#: parse-options.h:141 parse-options.h:162 parse-options.h:312
+#: parse-options.h:150 parse-options.h:171 parse-options.h:312
msgid "n"
msgstr "n"
-#: builtin/am.c:2220 builtin/branch.c:661 builtin/for-each-ref.c:38
-#: builtin/replace.c:554 builtin/tag.c:437 builtin/verify-tag.c:38
+#: builtin/am.c:2209 builtin/branch.c:661 builtin/for-each-ref.c:38
+#: builtin/replace.c:555 builtin/tag.c:437 builtin/verify-tag.c:38
msgid "format"
msgstr "formato"
-#: builtin/am.c:2221
+#: builtin/am.c:2210
msgid "format the patch(es) are in"
msgstr "il formato delle patch"
-#: builtin/am.c:2227
+#: builtin/am.c:2216
msgid "override error message when patch failure occurs"
msgstr ""
"esegui l'override del messaggio d'errore quando si verifica un errore legato "
"alle patch"
-#: builtin/am.c:2229
+#: builtin/am.c:2218
msgid "continue applying patches after resolving a conflict"
msgstr ""
"continua l'applicazione delle patch dopo la risoluzione di un conflitto"
-#: builtin/am.c:2232
+#: builtin/am.c:2221
msgid "synonyms for --continue"
msgstr "sinonimi di --continue"
-#: builtin/am.c:2235
+#: builtin/am.c:2224
msgid "skip the current patch"
msgstr "salta la patch corrente"
-#: builtin/am.c:2238
+#: builtin/am.c:2227
msgid "restore the original branch and abort the patching operation."
msgstr "ripristina il branch originario e interrompi l'operazione di patching."
-#: builtin/am.c:2241
+#: builtin/am.c:2230
msgid "abort the patching operation but keep HEAD where it is."
msgstr "interrompi l'operazione di patching ma mantieni HEAD dov'è."
-#: builtin/am.c:2244
+#: builtin/am.c:2233
msgid "show the patch being applied."
msgstr "visualizza la patch in fase di applicazione."
-#: builtin/am.c:2248
+#: builtin/am.c:2237
msgid "lie about committer date"
msgstr "menti sulla data del commit"
-#: builtin/am.c:2250
+#: builtin/am.c:2239
msgid "use current timestamp for author date"
msgstr "usa il timestamp corrente come data autore"
-#: builtin/am.c:2252 builtin/commit-tree.c:120 builtin/commit.c:1511
-#: builtin/merge.c:286 builtin/pull.c:193 builtin/rebase.c:489
-#: builtin/rebase.c:1459 builtin/revert.c:117 builtin/tag.c:418
+#: builtin/am.c:2241 builtin/commit-tree.c:120 builtin/commit.c:1511
+#: builtin/merge.c:286 builtin/pull.c:194 builtin/rebase.c:490
+#: builtin/rebase.c:1483 builtin/revert.c:117 builtin/tag.c:418
msgid "key-id"
msgstr "ID chiave"
-#: builtin/am.c:2253 builtin/rebase.c:490 builtin/rebase.c:1460
+#: builtin/am.c:2242 builtin/rebase.c:491 builtin/rebase.c:1484
msgid "GPG-sign commits"
msgstr "firma i commit con GPG"
-#: builtin/am.c:2256
+#: builtin/am.c:2245
msgid "(internal use for git-rebase)"
msgstr "(a uso interno per git-rebase)"
-#: builtin/am.c:2274
+#: builtin/am.c:2263
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."
@@ -9142,18 +9186,18 @@ msgstr ""
"L'opzione -b/--binary non esegue nulla da molto tempo e\n"
"sarà rimossa. Non usarla più."
-#: builtin/am.c:2281
+#: builtin/am.c:2270
msgid "failed to read the index"
msgstr "lettura dell'indice non riuscita"
-#: builtin/am.c:2296
+#: builtin/am.c:2285
#, c-format
msgid "previous rebase directory %s still exists but mbox given."
msgstr ""
"la directory di rebase precedente %s esiste ancora ma è stata specificata "
"un'mbox."
-#: builtin/am.c:2320
+#: builtin/am.c:2309
#, c-format
msgid ""
"Stray %s directory found.\n"
@@ -9162,11 +9206,11 @@ msgstr ""
"Trovata directory smarrita %s.\n"
"Usa \"git am --abort\" per eliminarla."
-#: builtin/am.c:2326
+#: builtin/am.c:2315
msgid "Resolve operation not in progress, we are not resuming."
msgstr "Operazione di risoluzione non in corso, non riprendiamo."
-#: builtin/am.c:2336
+#: builtin/am.c:2325
msgid "interactive mode requires patches on the command line"
msgstr ""
"la modalità interattiva richiede che le patch siano fornite sulla riga di "
@@ -9489,172 +9533,172 @@ msgstr "--bisect-next-check richiede due o tre argomenti"
msgid "--bisect-terms requires 0 or 1 argument"
msgstr "--bisect-terms richiede zero o un argomento"
-#: builtin/blame.c:32
+#: builtin/blame.c:31
msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>"
msgstr "git blame [<opzioni>] [<opzioni revisione>] [<revisione>] [--] <file>"
-#: builtin/blame.c:37
+#: builtin/blame.c:36
msgid "<rev-opts> are documented in git-rev-list(1)"
msgstr "le <opzioni revisione> sono documentate in git-rev-list(1)"
-#: builtin/blame.c:410
+#: builtin/blame.c:409
#, c-format
msgid "expecting a color: %s"
msgstr "atteso colore: %s"
-#: builtin/blame.c:417
+#: builtin/blame.c:416
msgid "must end with a color"
msgstr "deve terminare con un colore"
-#: builtin/blame.c:730
+#: builtin/blame.c:729
#, c-format
msgid "invalid color '%s' in color.blame.repeatedLines"
msgstr "colore '%s' non valido in color.blame.repeatedLines"
-#: builtin/blame.c:748
+#: builtin/blame.c:747
msgid "invalid value for blame.coloring"
msgstr "valore non valido per blame.coloring"
-#: builtin/blame.c:823
+#: builtin/blame.c:822
#, c-format
msgid "cannot find revision %s to ignore"
msgstr "impossibile trovare la revisione %s da ignorare"
-#: builtin/blame.c:845
+#: builtin/blame.c:844
msgid "Show blame entries as we find them, incrementally"
msgstr ""
"Visualizza le voci blame incrementalmente, a mano a mano che le troviamo"
-#: builtin/blame.c:846
+#: builtin/blame.c:845
msgid "Show blank SHA-1 for boundary commits (Default: off)"
msgstr ""
"Visualizza un hash SHA-1 vuoto per i commit limite (impostazione "
"predefinita: off)"
-#: builtin/blame.c:847
+#: builtin/blame.c:846
msgid "Do not treat root commits as boundaries (Default: off)"
msgstr ""
"Non gestire i commit radice come commit limite (impostazione predefinita: "
"off)"
-#: builtin/blame.c:848
+#: builtin/blame.c:847
msgid "Show work cost statistics"
msgstr "Visualizza le statistiche sul costo dell'operazione"
-#: builtin/blame.c:849
+#: builtin/blame.c:848
msgid "Force progress reporting"
msgstr "Forza l'indicazione d'avanzamento dell'operazione"
-#: builtin/blame.c:850
+#: builtin/blame.c:849
msgid "Show output score for blame entries"
msgstr "Visualizza il punteggio di output per le voci blame"
-#: builtin/blame.c:851
+#: builtin/blame.c:850
msgid "Show original filename (Default: auto)"
msgstr ""
"Visualizza il nome file originario (impostazione predefinita: automatico)"
-#: builtin/blame.c:852
+#: builtin/blame.c:851
msgid "Show original linenumber (Default: off)"
msgstr ""
"Visualizza il numero di riga originario (impostazione predefinita: off)"
-#: builtin/blame.c:853
+#: builtin/blame.c:852
msgid "Show in a format designed for machine consumption"
msgstr ""
"Visualizza l'output in un formato progettato per l'utilizzo da parte di una "
"macchina"
-#: builtin/blame.c:854
+#: builtin/blame.c:853
msgid "Show porcelain format with per-line commit information"
msgstr ""
"Visualizza il formato porcelain con le informazioni sul commit per ogni riga"
-#: builtin/blame.c:855
+#: builtin/blame.c:854
msgid "Use the same output mode as git-annotate (Default: off)"
msgstr ""
"Usa la stessa modalità di output di git-annotate (impostazione predefinita: "
"off)"
-#: builtin/blame.c:856
+#: builtin/blame.c:855
msgid "Show raw timestamp (Default: off)"
msgstr "Visualizza il timestamp grezzo (impostazione predefinita: off)"
-#: builtin/blame.c:857
+#: builtin/blame.c:856
msgid "Show long commit SHA1 (Default: off)"
msgstr ""
"Visualizza l'hash SHA1 del commit in forma lunga (impostazione predefinita: "
"off)"
-#: builtin/blame.c:858
+#: builtin/blame.c:857
msgid "Suppress author name and timestamp (Default: off)"
msgstr ""
"Non visualizzare il nome autore e il timestamp (impostazione predefinita: "
"off)"
-#: builtin/blame.c:859
+#: builtin/blame.c:858
msgid "Show author email instead of name (Default: off)"
msgstr ""
"Visualizza l'indirizzo e-mail dell'autore invece del nome (impostazione "
"predefinita: off)"
-#: builtin/blame.c:860
+#: builtin/blame.c:859
msgid "Ignore whitespace differences"
msgstr "Ignora le differenze relative agli spazi bianchi"
-#: builtin/blame.c:861 builtin/log.c:1629
+#: builtin/blame.c:860 builtin/log.c:1630
msgid "rev"
msgstr "revisione"
-#: builtin/blame.c:861
+#: builtin/blame.c:860
msgid "Ignore <rev> when blaming"
msgstr "Ignora <revisione> durante l'esecuzione del blame"
-#: builtin/blame.c:862
+#: builtin/blame.c:861
msgid "Ignore revisions from <file>"
msgstr "Ignora le revisioni specificate in <file>"
-#: builtin/blame.c:863
+#: builtin/blame.c:862
msgid "color redundant metadata from previous line differently"
msgstr "colora in modo differente i metadati ridondanti della riga precedente"
-#: builtin/blame.c:864
+#: builtin/blame.c:863
msgid "color lines by age"
msgstr "colora le righe in base all'età"
-#: builtin/blame.c:871
+#: builtin/blame.c:870
msgid "Use an experimental heuristic to improve diffs"
msgstr "Usa un'euristica sperimentale per migliorare i diff"
-#: builtin/blame.c:873
+#: builtin/blame.c:872
msgid "Spend extra cycles to find better match"
msgstr "Usa cicli extra per trovare una corrispondenza migliore"
-#: builtin/blame.c:874
+#: builtin/blame.c:873
msgid "Use revisions from <file> instead of calling git-rev-list"
msgstr "Usa le revisioni salvate in <file> anziché richiamare git-rev-list"
-#: builtin/blame.c:875
+#: builtin/blame.c:874
msgid "Use <file>'s contents as the final image"
msgstr "Usa i contenuti di <file> come immagine finale"
-#: builtin/blame.c:876 builtin/blame.c:877
+#: builtin/blame.c:875 builtin/blame.c:876
msgid "score"
msgstr "punteggio"
-#: builtin/blame.c:876
+#: builtin/blame.c:875
msgid "Find line copies within and across files"
msgstr "Trova copie delle righe all'interno e fra file"
-#: builtin/blame.c:877
+#: builtin/blame.c:876
msgid "Find line movements within and across files"
msgstr "Trova righe spostate all'interno e fra file"
-#: builtin/blame.c:878
+#: builtin/blame.c:877
msgid "n,m"
msgstr "n,m"
-#: builtin/blame.c:878
+#: builtin/blame.c:877
msgid "Process only line range n,m, counting from 1"
msgstr "Elabora solo l'intervallo righe n,m, contandole da 1"
@@ -9900,7 +9944,7 @@ msgstr "imposta la modalità tracking (vedi git-pull(1))"
msgid "do not use"
msgstr "non usare"
-#: builtin/branch.c:626 builtin/rebase.c:485
+#: builtin/branch.c:626 builtin/rebase.c:486
msgid "upstream"
msgstr "upstream"
@@ -10012,7 +10056,7 @@ msgstr ""
msgid "format to use for the output"
msgstr "formato da usare per l'output"
-#: builtin/branch.c:684 builtin/clone.c:761
+#: builtin/branch.c:684 builtin/clone.c:760
msgid "HEAD not found below refs/heads!"
msgstr "HEAD non trovato fra i riferimenti/head!"
@@ -10121,7 +10165,7 @@ msgstr "Per creare un bundle è necessario un repository."
msgid "Need a repository to unbundle."
msgstr "Per decomprimere un bundle è necessario un repository."
-#: builtin/cat-file.c:594
+#: builtin/cat-file.c:595
msgid ""
"git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -"
"p | <type> | --textconv | --filters) [--path=<path>] <object>"
@@ -10129,7 +10173,7 @@ msgstr ""
"git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -"
"p | <tipo> | --textconv | --filters) [--path=<percorso>] <oggetto>"
-#: builtin/cat-file.c:595
+#: builtin/cat-file.c:596
msgid ""
"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --"
"filters]"
@@ -10137,75 +10181,75 @@ msgstr ""
"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --"
"filters]"
-#: builtin/cat-file.c:616
+#: builtin/cat-file.c:617
msgid "only one batch option may be specified"
msgstr "può essere specificata solo un'opzione batch"
-#: builtin/cat-file.c:634
+#: builtin/cat-file.c:635
msgid "<type> can be one of: blob, tree, commit, tag"
msgstr "<tipo> può essere uno fra blob, tree, commit, tag"
-#: builtin/cat-file.c:635
+#: builtin/cat-file.c:636
msgid "show object type"
msgstr "visualizza tipo oggetto"
-#: builtin/cat-file.c:636
+#: builtin/cat-file.c:637
msgid "show object size"
msgstr "visualizza dimensioni oggetto"
-#: builtin/cat-file.c:638
+#: builtin/cat-file.c:639
msgid "exit with zero when there's no error"
msgstr "esci con codice d'uscita zero se non si sono verificati errori"
-#: builtin/cat-file.c:639
+#: builtin/cat-file.c:640
msgid "pretty-print object's content"
msgstr "stampa il contenuto dell'oggetto con un formato leggibile"
-#: builtin/cat-file.c:641
+#: builtin/cat-file.c:642
msgid "for blob objects, run textconv on object's content"
msgstr "esegui textconv sul contenuto dell'oggetto (per gli oggetti blob)"
-#: builtin/cat-file.c:643
+#: builtin/cat-file.c:644
msgid "for blob objects, run filters on object's content"
msgstr "esegui i filtri sul contenuto dell'oggetto (per gli oggetti blob)"
-#: builtin/cat-file.c:644 git-submodule.sh:936
+#: builtin/cat-file.c:645 git-submodule.sh:936
msgid "blob"
msgstr "blob"
-#: builtin/cat-file.c:645
+#: builtin/cat-file.c:646
msgid "use a specific path for --textconv/--filters"
msgstr "usa un percorso specifico per --textconv/--filters"
-#: builtin/cat-file.c:647
+#: builtin/cat-file.c:648
msgid "allow -s and -t to work with broken/corrupt objects"
msgstr "consenti a -s e -t di funzionare con oggetti malformati/corrotti"
-#: builtin/cat-file.c:648
+#: builtin/cat-file.c:649
msgid "buffer --batch output"
msgstr "esegui il buffering dell'output di --batch"
-#: builtin/cat-file.c:650
+#: builtin/cat-file.c:651
msgid "show info and content of objects fed from the standard input"
msgstr ""
"visualizza le informazioni e il contenuto degli oggetti forniti nello "
"standard input"
-#: builtin/cat-file.c:654
+#: builtin/cat-file.c:655
msgid "show info about objects fed from the standard input"
msgstr "visualizza le informazioni degli oggetti forniti nello standard input"
-#: builtin/cat-file.c:658
+#: builtin/cat-file.c:659
msgid "follow in-tree symlinks (used with --batch or --batch-check)"
msgstr ""
"segui i collegamenti simbolici entro l'albero (usato con --batch o --batch-"
"check)"
-#: builtin/cat-file.c:660
+#: builtin/cat-file.c:661
msgid "show all objects with --batch or --batch-check"
msgstr "visualizza tutti gli oggetti con --batch o --batch-check"
-#: builtin/cat-file.c:662
+#: builtin/cat-file.c:663
msgid "do not order --batch-all-objects output"
msgstr "non ordinare l'output di --batch-all-objects"
@@ -10233,8 +10277,8 @@ msgstr "leggi i nomi dei file dallo standard input"
msgid "terminate input and output records by a NUL character"
msgstr "termina i record di input e output con un carattere NUL"
-#: builtin/check-ignore.c:21 builtin/checkout.c:1433 builtin/gc.c:538
-#: builtin/worktree.c:507
+#: builtin/check-ignore.c:21 builtin/checkout.c:1433 builtin/gc.c:537
+#: builtin/worktree.c:506
msgid "suppress progress reporting"
msgstr "non visualizzare l'avanzamento dell'operazione"
@@ -10326,7 +10370,7 @@ msgstr "scrivi il contenuto in file temporanei"
#: builtin/checkout-index.c:178 builtin/column.c:31
#: builtin/submodule--helper.c:1373 builtin/submodule--helper.c:1376
#: builtin/submodule--helper.c:1384 builtin/submodule--helper.c:1857
-#: builtin/worktree.c:680
+#: builtin/worktree.c:679
msgid "string"
msgstr "stringa"
@@ -10354,100 +10398,100 @@ msgstr "git switch [<opzioni>] <branch>"
msgid "git restore [<options>] [--source=<branch>] <file>..."
msgstr "git restore [<opzioni>] [--source=<branch>] <file>..."
-#: builtin/checkout.c:172 builtin/checkout.c:211
+#: builtin/checkout.c:173 builtin/checkout.c:212
#, c-format
msgid "path '%s' does not have our version"
msgstr "il percorso '%s' non ha la nostra versione"
-#: builtin/checkout.c:174 builtin/checkout.c:213
+#: builtin/checkout.c:175 builtin/checkout.c:214
#, c-format
msgid "path '%s' does not have their version"
msgstr "il percorso '%s' non ha la loro versione"
-#: builtin/checkout.c:190
+#: builtin/checkout.c:191
#, c-format
msgid "path '%s' does not have all necessary versions"
msgstr "il percorso '%s' non ha tutte le versioni necessarie"
-#: builtin/checkout.c:240
+#: builtin/checkout.c:241
#, c-format
msgid "path '%s' does not have necessary versions"
msgstr "il percorso '%s' non ha le versioni necessarie"
-#: builtin/checkout.c:258
+#: builtin/checkout.c:259
#, c-format
msgid "path '%s': cannot merge"
msgstr "percorso '%s': impossibile eseguire il merge"
-#: builtin/checkout.c:274
+#: builtin/checkout.c:275
#, c-format
msgid "Unable to add merge result for '%s'"
msgstr "Impossibile aggiungere il risultato del merge per '%s'"
-#: builtin/checkout.c:374
+#: builtin/checkout.c:375
#, c-format
msgid "Recreated %d merge conflict"
msgid_plural "Recreated %d merge conflicts"
msgstr[0] "Ricreato %d conflitto di merge"
msgstr[1] "Ricreati %d conflitti di merge"
-#: builtin/checkout.c:379
+#: builtin/checkout.c:380
#, c-format
msgid "Updated %d path from %s"
msgid_plural "Updated %d paths from %s"
msgstr[0] "Aggiornato %d percorso da %s"
msgstr[1] "Aggiornati %d percorsi da %s"
-#: builtin/checkout.c:386
+#: builtin/checkout.c:387
#, c-format
msgid "Updated %d path from the index"
msgid_plural "Updated %d paths from the index"
msgstr[0] "Aggiornato %d percorso dall'indice"
msgstr[1] "Aggiornati %d percorsi dall'indice"
-#: builtin/checkout.c:409 builtin/checkout.c:412 builtin/checkout.c:415
-#: builtin/checkout.c:419
+#: builtin/checkout.c:410 builtin/checkout.c:413 builtin/checkout.c:416
+#: builtin/checkout.c:420
#, c-format
msgid "'%s' cannot be used with updating paths"
msgstr "'%s' non può essere usato con i percorsi in fase di aggiornamento"
-#: builtin/checkout.c:422 builtin/checkout.c:425
+#: builtin/checkout.c:423 builtin/checkout.c:426
#, c-format
msgid "'%s' cannot be used with %s"
msgstr "'%s' non può essere usato con %s"
-#: builtin/checkout.c:429
+#: builtin/checkout.c:430
#, c-format
msgid "Cannot update paths and switch to branch '%s' at the same time."
msgstr ""
"Impossibile aggiornare dei percorsi e passare al branch '%s' "
"contemporaneamente."
-#: builtin/checkout.c:433
+#: builtin/checkout.c:434
#, c-format
msgid "neither '%s' or '%s' is specified"
msgstr "né '%s' né '%s' sono stati specificati"
-#: builtin/checkout.c:437
+#: builtin/checkout.c:438
#, c-format
msgid "'%s' must be used when '%s' is not specified"
msgstr "'%s' dev'essere usato quando '%s' non è specificato"
-#: builtin/checkout.c:442 builtin/checkout.c:447
+#: builtin/checkout.c:443 builtin/checkout.c:448
#, c-format
msgid "'%s' or '%s' cannot be used with %s"
msgstr "'%s' o '%s' non possono essere usati con %s"
-#: builtin/checkout.c:506 builtin/checkout.c:513
+#: builtin/checkout.c:507 builtin/checkout.c:514
#, c-format
msgid "path '%s' is unmerged"
msgstr "il percorso '%s' non è stato sottoposto a merge"
-#: builtin/checkout.c:679
+#: builtin/checkout.c:680
msgid "you need to resolve your current index first"
msgstr "prima devi risolvere l'indice corrente"
-#: builtin/checkout.c:729
+#: builtin/checkout.c:730
#, c-format
msgid ""
"cannot continue with staged changes in the following files:\n"
@@ -10456,11 +10500,6 @@ msgstr ""
"impossibile continuare con modifiche in stage nei file seguenti:\n"
"%s"
-#: builtin/checkout.c:736
-#, c-format
-msgid "staged changes in the following files may be lost: %s"
-msgstr "le modifiche in stage nei seguenti file potrebbero andare perdute: %s"
-
#: builtin/checkout.c:833
#, c-format
msgid "Can not do reflog for '%s': %s\n"
@@ -10470,7 +10509,7 @@ msgstr "Impossibile esaminare il registro dei riferimenti per '%s': %s\n"
msgid "HEAD is now at"
msgstr "HEAD si trova ora a"
-#: builtin/checkout.c:879 builtin/clone.c:714
+#: builtin/checkout.c:879 builtin/clone.c:713
msgid "unable to update HEAD"
msgstr "impossibile aggiornare HEAD"
@@ -10584,7 +10623,7 @@ msgstr ""
"'%s' potrebbe essere sia un file locale, sia un branch da tracciare.\n"
"Usa -- (e facoltativamente --no-guess) per rimuovere l'ambiguità"
-#: builtin/checkout.c:1243 builtin/worktree.c:291 builtin/worktree.c:456
+#: builtin/checkout.c:1243 builtin/worktree.c:290 builtin/worktree.c:455
#, c-format
msgid "invalid reference: %s"
msgstr "riferimento non valido: %s"
@@ -10687,9 +10726,9 @@ msgstr "Impossibile cambiare branch per passare a '%s' che non è un commit"
msgid "missing branch or commit argument"
msgstr "argomento branch o commit mancante"
-#: builtin/checkout.c:1437 builtin/clone.c:91 builtin/fetch.c:151
-#: builtin/merge.c:285 builtin/pull.c:137 builtin/push.c:575
-#: builtin/send-pack.c:174
+#: builtin/checkout.c:1437 builtin/clone.c:90 builtin/commit-graph.c:59
+#: builtin/commit-graph.c:180 builtin/fetch.c:166 builtin/merge.c:285
+#: builtin/pull.c:138 builtin/push.c:562 builtin/send-pack.c:174
msgid "force progress reporting"
msgstr "forza l'indicazione d'avanzamento dell'operazione"
@@ -10697,7 +10736,7 @@ msgstr "forza l'indicazione d'avanzamento dell'operazione"
msgid "perform a 3-way merge with the new branch"
msgstr "esegui un merge a tre vie con il nuovo branch"
-#: builtin/checkout.c:1439 builtin/log.c:1617 parse-options.h:318
+#: builtin/checkout.c:1439 builtin/log.c:1618 parse-options.h:318
msgid "style"
msgstr "stile"
@@ -10705,7 +10744,7 @@ msgstr "stile"
msgid "conflict style (merge or diff3)"
msgstr "stile conflitti (merge o diff3)"
-#: builtin/checkout.c:1452 builtin/worktree.c:504
+#: builtin/checkout.c:1452 builtin/worktree.c:503
msgid "detach HEAD at named commit"
msgstr "scollega l'HEAD al commit specificato"
@@ -10828,9 +10867,9 @@ msgstr ""
"rispetto a un particolare remoto, ad es. 'origin', potresti voler\n"
"impostare checkout.defaultRemote=origin nel tuo file di configurazione."
-#: builtin/checkout.c:1691 builtin/checkout.c:1693 builtin/checkout.c:1733
-#: builtin/checkout.c:1735 builtin/clone.c:121 builtin/remote.c:169
-#: builtin/remote.c:171 builtin/worktree.c:500 builtin/worktree.c:502
+#: builtin/checkout.c:1691 builtin/checkout.c:1693 builtin/checkout.c:1742
+#: builtin/checkout.c:1744 builtin/clone.c:120 builtin/remote.c:169
+#: builtin/remote.c:171 builtin/worktree.c:499 builtin/worktree.c:501
msgid "branch"
msgstr "branch"
@@ -10854,39 +10893,39 @@ msgstr "prevedi 'git checkout <branch inesistente>' (impostazione predefinita)"
msgid "use overlay mode (default)"
msgstr "usa modalità overlay (impostazione predefinita)"
-#: builtin/checkout.c:1734
+#: builtin/checkout.c:1743
msgid "create and switch to a new branch"
msgstr "crea un nuovo branch e passa a quest'ultimo"
-#: builtin/checkout.c:1736
+#: builtin/checkout.c:1745
msgid "create/reset and switch to a branch"
msgstr "crea/reimposta un branch e passa a quest'ultimo"
-#: builtin/checkout.c:1738
+#: builtin/checkout.c:1747
msgid "second guess 'git switch <no-such-branch>'"
msgstr "prevedi 'git switch <branch inesistente>'"
-#: builtin/checkout.c:1740
+#: builtin/checkout.c:1749
msgid "throw away local modifications"
msgstr "scarta le modifiche locali"
-#: builtin/checkout.c:1772
+#: builtin/checkout.c:1781
msgid "which tree-ish to checkout from"
msgstr "albero da cui eseguire il checkout"
-#: builtin/checkout.c:1774
+#: builtin/checkout.c:1783
msgid "restore the index"
msgstr "ripristina l'indice"
-#: builtin/checkout.c:1776
+#: builtin/checkout.c:1785
msgid "restore the working tree (default)"
msgstr "ripristina l'albero di lavoro (impostazione predefinita)"
-#: builtin/checkout.c:1778
+#: builtin/checkout.c:1787
msgid "ignore unmerged entries"
msgstr "ignora voci non sottoposte a merge"
-#: builtin/checkout.c:1779
+#: builtin/checkout.c:1788
msgid "use overlay mode"
msgstr "usa modalità overlay"
@@ -10927,7 +10966,7 @@ msgstr "eliminazione di %s non riuscita"
msgid "could not lstat %s\n"
msgstr "impossibile eseguire l'lstat di %s\n"
-#: builtin/clean.c:300 git-add--interactive.perl:593
+#: builtin/clean.c:301 git-add--interactive.perl:593
#, c-format
msgid ""
"Prompt help:\n"
@@ -10940,7 +10979,7 @@ msgstr ""
"pippo - seleziona un elemento basandoti su un prefisso univoco\n"
" - (vuoto) non selezionare niente\n"
-#: builtin/clean.c:304 git-add--interactive.perl:602
+#: builtin/clean.c:305 git-add--interactive.perl:602
#, c-format
msgid ""
"Prompt help:\n"
@@ -10961,38 +11000,38 @@ msgstr ""
"* - seleziona tutti gli elementi\n"
" - (vuoto) termina il processo di selezione\n"
-#: builtin/clean.c:520 git-add--interactive.perl:568
+#: builtin/clean.c:521 git-add--interactive.perl:568
#: git-add--interactive.perl:573
#, c-format, perl-format
msgid "Huh (%s)?\n"
msgstr "Eh (%s)?\n"
-#: builtin/clean.c:662
+#: builtin/clean.c:663
#, c-format
msgid "Input ignore patterns>> "
msgstr "Immetti i pattern da ignorare>> "
-#: builtin/clean.c:699
+#: builtin/clean.c:700
#, c-format
msgid "WARNING: Cannot find items matched by: %s"
msgstr "ATTENZIONE: Impossibile trovare elementi corrispondenti a %s"
-#: builtin/clean.c:720
+#: builtin/clean.c:721
msgid "Select items to delete"
msgstr "Seleziona gli elementi da eliminare"
#. TRANSLATORS: Make sure to keep [y/N] as is
-#: builtin/clean.c:761
+#: builtin/clean.c:762
#, c-format
msgid "Remove %s [y/N]? "
msgstr "Eliminare %s [y/N]? "
-#: builtin/clean.c:786 git-add--interactive.perl:1763
+#: builtin/clean.c:787 git-add--interactive.perl:1763
#, c-format
msgid "Bye.\n"
msgstr "Ciao.\n"
-#: builtin/clean.c:794
+#: builtin/clean.c:795
msgid ""
"clean - start cleaning\n"
"filter by pattern - exclude items from deletion\n"
@@ -11011,64 +11050,64 @@ msgstr ""
"help - visualizza questa schermata\n"
"? - guida al prompt di selezione"
-#: builtin/clean.c:821 git-add--interactive.perl:1849
+#: builtin/clean.c:822 git-add--interactive.perl:1849
msgid "*** Commands ***"
msgstr "*** Comandi ***"
-#: builtin/clean.c:822 git-add--interactive.perl:1846
+#: builtin/clean.c:823 git-add--interactive.perl:1846
msgid "What now"
msgstr "Cosa faccio ora"
-#: builtin/clean.c:830
+#: builtin/clean.c:831
msgid "Would remove the following item:"
msgid_plural "Would remove the following items:"
msgstr[0] "Eliminerei il seguente elemento:"
msgstr[1] "Eliminerei i seguenti elementi:"
-#: builtin/clean.c:846
+#: builtin/clean.c:847
msgid "No more files to clean, exiting."
msgstr "Non ci sono più file da ripulire, esco."
-#: builtin/clean.c:908
+#: builtin/clean.c:909
msgid "do not print names of files removed"
msgstr "non stampare i nomi dei file eliminati"
-#: builtin/clean.c:910
+#: builtin/clean.c:911
msgid "force"
msgstr "forza l'operazione"
-#: builtin/clean.c:911
+#: builtin/clean.c:912
msgid "interactive cleaning"
msgstr "pulizia interattiva"
-#: builtin/clean.c:913
+#: builtin/clean.c:914
msgid "remove whole directories"
msgstr "rimuovi intere directory"
-#: builtin/clean.c:914 builtin/describe.c:546 builtin/describe.c:548
-#: builtin/grep.c:899 builtin/log.c:176 builtin/log.c:178
-#: builtin/ls-files.c:557 builtin/name-rev.c:413 builtin/name-rev.c:415
+#: builtin/clean.c:915 builtin/describe.c:548 builtin/describe.c:550
+#: builtin/grep.c:901 builtin/log.c:176 builtin/log.c:178
+#: builtin/ls-files.c:557 builtin/name-rev.c:417 builtin/name-rev.c:419
#: builtin/show-ref.c:179
msgid "pattern"
msgstr "pattern"
-#: builtin/clean.c:915
+#: builtin/clean.c:916
msgid "add <pattern> to ignore rules"
msgstr "aggiungi <pattern> alle regole usate per ignorare i file"
-#: builtin/clean.c:916
+#: builtin/clean.c:917
msgid "remove ignored files, too"
msgstr "elimina anche i file ignorati"
-#: builtin/clean.c:918
+#: builtin/clean.c:919
msgid "remove only ignored files"
msgstr "elimina solo i file ignorati"
-#: builtin/clean.c:936
+#: builtin/clean.c:937
msgid "-x and -X cannot be used together"
msgstr "-x e -X non possono essere usati insieme"
-#: builtin/clean.c:940
+#: builtin/clean.c:941
msgid ""
"clean.requireForce set to true and neither -i, -n, nor -f given; refusing to "
"clean"
@@ -11076,7 +11115,7 @@ msgstr ""
"clean.requireForce è impostato a true e né -i, né -n, né -f sono stati "
"specificati; mi rifiuto di eseguire la pulizia"
-#: builtin/clean.c:943
+#: builtin/clean.c:944
msgid ""
"clean.requireForce defaults to true and neither -i, -n, nor -f given; "
"refusing to clean"
@@ -11084,164 +11123,164 @@ msgstr ""
"clean.requireForce è true per impostazione predefinita e né -i, né -n, né -f "
"sono stati specificati; mi rifiuto di eseguire la pulizia"
-#: builtin/clone.c:46
+#: builtin/clone.c:45
msgid "git clone [<options>] [--] <repo> [<dir>]"
msgstr "git clone [<opzioni>] [--] <repository> [<directory>]"
-#: builtin/clone.c:93
+#: builtin/clone.c:92
msgid "don't create a checkout"
msgstr "non creare un checkout"
-#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:489
+#: builtin/clone.c:93 builtin/clone.c:95 builtin/init-db.c:489
msgid "create a bare repository"
msgstr "crea un repository spoglio"
-#: builtin/clone.c:98
+#: builtin/clone.c:97
msgid "create a mirror repository (implies bare)"
msgstr "crea un repository mirror (implica che sia spoglio)"
-#: builtin/clone.c:100
+#: builtin/clone.c:99
msgid "to clone from a local repository"
msgstr "per clonare da un repository locale"
-#: builtin/clone.c:102
+#: builtin/clone.c:101
msgid "don't use local hardlinks, always copy"
msgstr "non usare i collegamenti reali locali, copia sempre i file"
-#: builtin/clone.c:104
+#: builtin/clone.c:103
msgid "setup as shared repository"
msgstr "imposta il repository come condiviso"
-#: builtin/clone.c:107
+#: builtin/clone.c:106
msgid "pathspec"
msgstr "specificatore percorso"
-#: builtin/clone.c:107
+#: builtin/clone.c:106
msgid "initialize submodules in the clone"
msgstr "inizializza sottomoduli durante la clonazione"
-#: builtin/clone.c:110
+#: builtin/clone.c:109
msgid "number of submodules cloned in parallel"
msgstr "numero di sottomoduli clonati in parallelo"
-#: builtin/clone.c:111 builtin/init-db.c:486
+#: builtin/clone.c:110 builtin/init-db.c:486
msgid "template-directory"
msgstr "directory modelli"
-#: builtin/clone.c:112 builtin/init-db.c:487
+#: builtin/clone.c:111 builtin/init-db.c:487
msgid "directory from which templates will be used"
msgstr "directory da cui saranno recuperati i modelli"
-#: builtin/clone.c:114 builtin/clone.c:116 builtin/submodule--helper.c:1380
+#: builtin/clone.c:113 builtin/clone.c:115 builtin/submodule--helper.c:1380
#: builtin/submodule--helper.c:1860
msgid "reference repository"
msgstr "repository di riferimento"
-#: builtin/clone.c:118 builtin/submodule--helper.c:1382
+#: builtin/clone.c:117 builtin/submodule--helper.c:1382
#: builtin/submodule--helper.c:1862
msgid "use --reference only while cloning"
msgstr "usa --reference solo durante la clonazione"
-#: builtin/clone.c:119 builtin/column.c:27 builtin/merge-file.c:46
-#: builtin/pack-objects.c:3314 builtin/repack.c:319
+#: builtin/clone.c:118 builtin/column.c:27 builtin/merge-file.c:46
+#: builtin/pack-objects.c:3294 builtin/repack.c:320
msgid "name"
msgstr "nome"
-#: builtin/clone.c:120
+#: builtin/clone.c:119
msgid "use <name> instead of 'origin' to track upstream"
msgstr "usa <nome> anziché 'origin' per tracciare l'upstream"
-#: builtin/clone.c:122
+#: builtin/clone.c:121
msgid "checkout <branch> instead of the remote's HEAD"
msgstr "esegui il checkout di <branch> anziché dell'HEAD del remoto"
-#: builtin/clone.c:124
+#: builtin/clone.c:123
msgid "path to git-upload-pack on the remote"
msgstr "percorso al comando remoto git-upload-pack"
-#: builtin/clone.c:125 builtin/fetch.c:152 builtin/grep.c:838
-#: builtin/pull.c:226
+#: builtin/clone.c:124 builtin/fetch.c:167 builtin/grep.c:840
+#: builtin/pull.c:227
msgid "depth"
msgstr "profondità"
-#: builtin/clone.c:126
+#: builtin/clone.c:125
msgid "create a shallow clone of that depth"
msgstr "crea un clone shallow con questa profondità"
-#: builtin/clone.c:127 builtin/fetch.c:154 builtin/pack-objects.c:3303
+#: builtin/clone.c:126 builtin/fetch.c:169 builtin/pack-objects.c:3283
msgid "time"
msgstr "tempo"
-#: builtin/clone.c:128
+#: builtin/clone.c:127
msgid "create a shallow clone since a specific time"
msgstr "crea un clone shallow a partire dall'istante specificato"
-#: builtin/clone.c:129 builtin/fetch.c:156 builtin/fetch.c:179
-#: builtin/rebase.c:1395
+#: builtin/clone.c:128 builtin/fetch.c:171 builtin/fetch.c:194
+#: builtin/rebase.c:1417
msgid "revision"
msgstr "revisione"
-#: builtin/clone.c:130 builtin/fetch.c:157
+#: builtin/clone.c:129 builtin/fetch.c:172
msgid "deepen history of shallow clone, excluding rev"
msgstr ""
"aumenta la profondità della cronologia del clone shallow fino alla revisione "
"specificata esclusa"
-#: builtin/clone.c:132
+#: builtin/clone.c:131
msgid "clone only one branch, HEAD or --branch"
msgstr "clona solo un branch, HEAD o quello specificato con --branch"
-#: builtin/clone.c:134
+#: builtin/clone.c:133
msgid "don't clone any tags, and make later fetches not to follow them"
msgstr "non clonare alcun tag e fai sì che i fetch successivi non li seguano"
-#: builtin/clone.c:136
+#: builtin/clone.c:135
msgid "any cloned submodules will be shallow"
msgstr "tutti i sottomoduli clonati saranno shallow"
-#: builtin/clone.c:137 builtin/init-db.c:495
+#: builtin/clone.c:136 builtin/init-db.c:495
msgid "gitdir"
msgstr "directory Git"
-#: builtin/clone.c:138 builtin/init-db.c:496
+#: builtin/clone.c:137 builtin/init-db.c:496
msgid "separate git dir from working tree"
msgstr "separa la directory Git dall'albero di lavoro"
-#: builtin/clone.c:139
+#: builtin/clone.c:138
msgid "key=value"
msgstr "chiave=valore"
-#: builtin/clone.c:140
+#: builtin/clone.c:139
msgid "set config inside the new repository"
msgstr "imposta la configurazione nel nuovo repository"
-#: builtin/clone.c:142 builtin/fetch.c:174 builtin/ls-remote.c:76
-#: builtin/push.c:585 builtin/send-pack.c:172
+#: builtin/clone.c:141 builtin/fetch.c:189 builtin/ls-remote.c:76
+#: builtin/push.c:572 builtin/send-pack.c:172
msgid "server-specific"
msgstr "specifica del server"
-#: builtin/clone.c:142 builtin/fetch.c:174 builtin/ls-remote.c:76
-#: builtin/push.c:585 builtin/send-pack.c:173
+#: builtin/clone.c:141 builtin/fetch.c:189 builtin/ls-remote.c:76
+#: builtin/push.c:572 builtin/send-pack.c:173
msgid "option to transmit"
msgstr "opzione da trasmettere"
-#: builtin/clone.c:143 builtin/fetch.c:175 builtin/pull.c:239
-#: builtin/push.c:586
+#: builtin/clone.c:142 builtin/fetch.c:190 builtin/pull.c:240
+#: builtin/push.c:573
msgid "use IPv4 addresses only"
msgstr "usa solo indirizzi IPv4"
-#: builtin/clone.c:145 builtin/fetch.c:177 builtin/pull.c:242
-#: builtin/push.c:588
+#: builtin/clone.c:144 builtin/fetch.c:192 builtin/pull.c:243
+#: builtin/push.c:575
msgid "use IPv6 addresses only"
msgstr "usa solo indirizzi IPv6"
-#: builtin/clone.c:149
+#: builtin/clone.c:148
msgid "any cloned submodules will use their remote-tracking branch"
msgstr ""
"tutti i sottomoduli clonati useranno il loro rispettivo branch remoto "
"tracciato"
-#: builtin/clone.c:285
+#: builtin/clone.c:284
msgid ""
"No directory name could be guessed.\n"
"Please specify a directory on the command line"
@@ -11249,47 +11288,42 @@ msgstr ""
"Non è stato possibile indovinare alcun nome directory.\n"
"Specifica una directory tramite la riga di comando"
-#: builtin/clone.c:338
+#: builtin/clone.c:337
#, c-format
msgid "info: Could not add alternate for '%s': %s\n"
msgstr "informazione: Impossibile aggiungere un alternato a '%s': %s\n"
-#: builtin/clone.c:411
+#: builtin/clone.c:410
#, c-format
msgid "%s exists and is not a directory"
msgstr "%s esiste e non è una directory"
-#: builtin/clone.c:428
+#: builtin/clone.c:427
#, c-format
msgid "failed to start iterator over '%s'"
msgstr "impossibile avviare l'iteratore su '%s'"
-#: builtin/clone.c:453
-#, c-format
-msgid "failed to unlink '%s'"
-msgstr "unlink di '%s' non riuscito"
-
-#: builtin/clone.c:458
+#: builtin/clone.c:457
#, c-format
msgid "failed to create link '%s'"
msgstr "creazione del collegamento '%s' non riuscita"
-#: builtin/clone.c:462
+#: builtin/clone.c:461
#, c-format
msgid "failed to copy file to '%s'"
msgstr "copia del file in '%s' non riuscita"
-#: builtin/clone.c:467
+#: builtin/clone.c:466
#, c-format
msgid "failed to iterate over '%s'"
msgstr "iterazione su '%s' non riuscita"
-#: builtin/clone.c:492
+#: builtin/clone.c:491
#, c-format
msgid "done.\n"
msgstr "fatto.\n"
-#: builtin/clone.c:506
+#: builtin/clone.c:505
msgid ""
"Clone succeeded, but checkout failed.\n"
"You can inspect what was checked out with 'git status'\n"
@@ -11300,98 +11334,98 @@ msgstr ""
"con 'git status' e riprovare ad eseguire il checkout con\n"
"'git restore --source=HEAD :/'\n"
-#: builtin/clone.c:583
+#: builtin/clone.c:582
#, c-format
msgid "Could not find remote branch %s to clone."
msgstr "Impossibile trovare il branch remoto %s da clonare."
-#: builtin/clone.c:702
+#: builtin/clone.c:701
#, c-format
msgid "unable to update %s"
msgstr "impossibile aggiornare %s"
-#: builtin/clone.c:752
+#: builtin/clone.c:751
msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
msgstr ""
"l'HEAD remoto fa riferimento a un riferimento inesistente, impossibile "
"eseguire il checkout.\n"
-#: builtin/clone.c:783
+#: builtin/clone.c:782
msgid "unable to checkout working tree"
msgstr "impossibile eseguire il checkout dell'albero di lavoro"
-#: builtin/clone.c:833
+#: builtin/clone.c:832
msgid "unable to write parameters to config file"
msgstr "impossibile scrivere i parametri nel file di configurazione"
-#: builtin/clone.c:896
+#: builtin/clone.c:895
msgid "cannot repack to clean up"
msgstr "impossibile eseguire il repack per pulire l'area di lavoro"
-#: builtin/clone.c:898
+#: builtin/clone.c:897
msgid "cannot unlink temporary alternates file"
msgstr "impossibile eseguire l'unlink del file alternates temporaneo"
-#: builtin/clone.c:938 builtin/receive-pack.c:1950
+#: builtin/clone.c:937 builtin/receive-pack.c:1948
msgid "Too many arguments."
msgstr "Troppi argomenti."
-#: builtin/clone.c:942
+#: builtin/clone.c:941
msgid "You must specify a repository to clone."
msgstr "Devi specificare un repository da clonare."
-#: builtin/clone.c:955
+#: builtin/clone.c:954
#, c-format
msgid "--bare and --origin %s options are incompatible."
msgstr "le opzioni --bare e --origin %s non sono compatibili."
-#: builtin/clone.c:958
+#: builtin/clone.c:957
msgid "--bare and --separate-git-dir are incompatible."
msgstr "le opzioni --bare e --separate-git-dir non sono compatibili."
-#: builtin/clone.c:971
+#: builtin/clone.c:970
#, c-format
msgid "repository '%s' does not exist"
msgstr "il repository '%s' non esiste"
-#: builtin/clone.c:977 builtin/fetch.c:1660
+#: builtin/clone.c:976 builtin/fetch.c:1790
#, c-format
msgid "depth %s is not a positive number"
msgstr "la profondità %s non è un numero positivo"
-#: builtin/clone.c:987
+#: builtin/clone.c:986
#, c-format
msgid "destination path '%s' already exists and is not an empty directory."
msgstr ""
"il percorso di destinazione '%s' esiste già e non è una directory vuota."
-#: builtin/clone.c:997
+#: builtin/clone.c:996
#, c-format
msgid "working tree '%s' already exists."
msgstr "l'albero di lavoro '%s' esiste già."
-#: builtin/clone.c:1012 builtin/clone.c:1033 builtin/difftool.c:264
-#: builtin/worktree.c:303 builtin/worktree.c:335
+#: builtin/clone.c:1011 builtin/clone.c:1032 builtin/difftool.c:271
+#: builtin/log.c:1785 builtin/worktree.c:302 builtin/worktree.c:334
#, c-format
msgid "could not create leading directories of '%s'"
msgstr "impossibile creare le prime directory di '%s'"
-#: builtin/clone.c:1017
+#: builtin/clone.c:1016
#, c-format
msgid "could not create work tree dir '%s'"
msgstr "impossibile creare la directory dell'albero di lavoro '%s'"
-#: builtin/clone.c:1037
+#: builtin/clone.c:1036
#, c-format
msgid "Cloning into bare repository '%s'...\n"
msgstr "Clone nel repository spoglio '%s' in corso...\n"
-#: builtin/clone.c:1039
+#: builtin/clone.c:1038
#, c-format
msgid "Cloning into '%s'...\n"
msgstr "Clone in '%s' in corso...\n"
-#: builtin/clone.c:1063
+#: builtin/clone.c:1062
msgid ""
"clone --recursive is not compatible with both --reference and --reference-if-"
"able"
@@ -11399,36 +11433,36 @@ msgstr ""
"il clone --recursive non è compatibile né con --reference né con --reference-"
"if-able"
-#: builtin/clone.c:1124
+#: builtin/clone.c:1123
msgid "--depth is ignored in local clones; use file:// instead."
msgstr "L'opzione --depth è ignorata nei cloni locali; usa file://."
-#: builtin/clone.c:1126
+#: builtin/clone.c:1125
msgid "--shallow-since is ignored in local clones; use file:// instead."
msgstr "L'opzione --shallow-since è ignorata nei cloni locali; usa file://."
-#: builtin/clone.c:1128
+#: builtin/clone.c:1127
msgid "--shallow-exclude is ignored in local clones; use file:// instead."
msgstr "L'opzione --shallow-exclude è ignorata nei cloni locali; usa file://."
-#: builtin/clone.c:1130
+#: builtin/clone.c:1129
msgid "--filter is ignored in local clones; use file:// instead."
msgstr "L'opzione --filter è ignorata nei cloni locali; usa file://."
-#: builtin/clone.c:1133
+#: builtin/clone.c:1132
msgid "source repository is shallow, ignoring --local"
msgstr "il repository sorgente è shallow, ignoro l'opzione --local"
-#: builtin/clone.c:1138
+#: builtin/clone.c:1137
msgid "--local is ignored"
msgstr "l'opzione --local è ignorata"
-#: builtin/clone.c:1215 builtin/clone.c:1223
+#: builtin/clone.c:1212 builtin/clone.c:1220
#, c-format
msgid "Remote branch %s not found in upstream %s"
msgstr "Il branch remoto %s non è stato trovato nell'upstream %s"
-#: builtin/clone.c:1226
+#: builtin/clone.c:1223
msgid "You appear to have cloned an empty repository."
msgstr "Sembra che tu abbia clonato un repository vuoto."
@@ -11506,7 +11540,7 @@ msgid "id of a parent commit object"
msgstr "ID di un oggetto commit genitore"
#: builtin/commit-tree.c:114 builtin/commit.c:1500 builtin/merge.c:270
-#: builtin/notes.c:409 builtin/notes.c:575 builtin/stash.c:1460
+#: builtin/notes.c:409 builtin/notes.c:575 builtin/stash.c:1469
#: builtin/tag.c:412
msgid "message"
msgstr "messaggio"
@@ -11520,7 +11554,7 @@ msgid "read commit log message from file"
msgstr "leggi il messaggio di log del commit da un file"
#: builtin/commit-tree.c:121 builtin/commit.c:1512 builtin/merge.c:287
-#: builtin/pull.c:194 builtin/revert.c:118
+#: builtin/pull.c:195 builtin/revert.c:118
msgid "GPG sign commit"
msgstr "firma il commit con GPG"
@@ -11852,8 +11886,8 @@ msgstr "calcola tutti i valori dopo/prima di"
msgid "version"
msgstr "versione"
-#: builtin/commit.c:1347 builtin/commit.c:1529 builtin/push.c:561
-#: builtin/worktree.c:651
+#: builtin/commit.c:1347 builtin/commit.c:1529 builtin/push.c:548
+#: builtin/worktree.c:650
msgid "machine-readable output"
msgstr "output leggibile da una macchina"
@@ -11866,8 +11900,8 @@ msgid "terminate entries with NUL"
msgstr "termina le voci con NUL"
#: builtin/commit.c:1355 builtin/commit.c:1359 builtin/commit.c:1537
-#: builtin/fast-export.c:1125 builtin/fast-export.c:1128
-#: builtin/fast-export.c:1131 builtin/rebase.c:1471 parse-options.h:332
+#: builtin/fast-export.c:1153 builtin/fast-export.c:1156
+#: builtin/fast-export.c:1159 builtin/rebase.c:1495 parse-options.h:332
msgid "mode"
msgstr "modo"
@@ -11885,7 +11919,7 @@ msgstr ""
"visualizza file ignorati, modalità facoltative: traditional, matching, no. "
"(Impostazione predefinita: traditional)"
-#: builtin/commit.c:1362 parse-options.h:179
+#: builtin/commit.c:1362 parse-options.h:188
msgid "when"
msgstr "quando"
@@ -11940,7 +11974,7 @@ msgstr "autore"
msgid "override author for commit"
msgstr "sovrascrivi l'autore per il commit"
-#: builtin/commit.c:1499 builtin/gc.c:539
+#: builtin/commit.c:1499 builtin/gc.c:538
msgid "date"
msgstr "data"
@@ -11976,8 +12010,8 @@ msgstr ""
msgid "the commit is authored by me now (used with -C/-c/--amend)"
msgstr "il commit ora ha me come autore (opzione usata con -C/-c/--amend)"
-#: builtin/commit.c:1506 builtin/log.c:1564 builtin/merge.c:289
-#: builtin/pull.c:163 builtin/revert.c:110
+#: builtin/commit.c:1506 builtin/log.c:1565 builtin/merge.c:289
+#: builtin/pull.c:164 builtin/revert.c:110
msgid "add Signed-off-by:"
msgstr "aggiungi Signed-off-by:"
@@ -12086,67 +12120,70 @@ msgid "git commit-graph read [--object-dir <objdir>]"
msgstr "git commit-graph read [--object-dir <directory oggetti>]"
#: builtin/commit-graph.c:13 builtin/commit-graph.c:19
-msgid "git commit-graph verify [--object-dir <objdir>] [--shallow]"
-msgstr "git commit-graph verify [--object-dir <directory oggetti>] [--shallow]"
+msgid ""
+"git commit-graph verify [--object-dir <objdir>] [--shallow] [--[no-]progress]"
+msgstr ""
+"git commit-graph verify [--object-dir <directory oggetti>] [--shallow] [--"
+"[no-]progress]"
#: builtin/commit-graph.c:14 builtin/commit-graph.c:29
msgid ""
"git commit-graph write [--object-dir <objdir>] [--append|--split] [--"
-"reachable|--stdin-packs|--stdin-commits] <split options>"
+"reachable|--stdin-packs|--stdin-commits] [--[no-]progress] <split options>"
msgstr ""
"git commit-graph write [--object-dir <directory oggetti>] [--append|--split] "
-"[--reachable|--stdin-packs|--stdin-commits] <opzioni split>"
+"[--reachable|--stdin-packs|--stdin-commits] [--[no-]progress] <opzioni split>"
-#: builtin/commit-graph.c:54 builtin/commit-graph.c:100
-#: builtin/commit-graph.c:161 builtin/commit-graph.c:237 builtin/fetch.c:163
-#: builtin/log.c:1584
+#: builtin/commit-graph.c:55 builtin/commit-graph.c:107
+#: builtin/commit-graph.c:170 builtin/commit-graph.c:254 builtin/fetch.c:178
+#: builtin/log.c:1585
msgid "dir"
msgstr "directory"
-#: builtin/commit-graph.c:55 builtin/commit-graph.c:101
-#: builtin/commit-graph.c:162 builtin/commit-graph.c:238
+#: builtin/commit-graph.c:56 builtin/commit-graph.c:108
+#: builtin/commit-graph.c:171 builtin/commit-graph.c:255
msgid "The object directory to store the graph"
msgstr "La directory oggetti in cui memorizzare il grafo"
-#: builtin/commit-graph.c:57
+#: builtin/commit-graph.c:58
msgid "if the commit-graph is split, only verify the tip file"
msgstr "se il grafo dei commit è diviso, verifica solo l'ultimo file"
-#: builtin/commit-graph.c:73 builtin/commit-graph.c:116
+#: builtin/commit-graph.c:80 builtin/commit-graph.c:125
#, c-format
msgid "Could not open commit-graph '%s'"
msgstr "Impossibile aprire il grafo dei commit '%s'"
-#: builtin/commit-graph.c:164
+#: builtin/commit-graph.c:173
msgid "start walk at all refs"
msgstr "inizia la visita da tutti i riferimenti"
-#: builtin/commit-graph.c:166
+#: builtin/commit-graph.c:175
msgid "scan pack-indexes listed by stdin for commits"
msgstr ""
"esamina i pack-index elencati sullo standard input alla ricerca di commit"
-#: builtin/commit-graph.c:168
+#: builtin/commit-graph.c:177
msgid "start walk at commits listed by stdin"
msgstr "inizia la visita ai commit elencati sullo standard input"
-#: builtin/commit-graph.c:170
+#: builtin/commit-graph.c:179
msgid "include all commits already in the commit-graph file"
msgstr "includi tutti i commit già presenti nel file commit-graph"
-#: builtin/commit-graph.c:172
+#: builtin/commit-graph.c:182
msgid "allow writing an incremental commit-graph file"
msgstr "consenti la scrittura di un file grafo dei commit incrementale"
-#: builtin/commit-graph.c:174 builtin/commit-graph.c:178
+#: builtin/commit-graph.c:184 builtin/commit-graph.c:188
msgid "maximum number of commits in a non-base split commit-graph"
msgstr "numero massimo di commit in un grafo dei commit diviso non di base"
-#: builtin/commit-graph.c:176
+#: builtin/commit-graph.c:186
msgid "maximum ratio between two levels of a split commit-graph"
msgstr "rapporto massimo fra due livelli di un grafo dei commit diviso"
-#: builtin/commit-graph.c:191
+#: builtin/commit-graph.c:204
msgid "use at most one of --reachable, --stdin-commits, or --stdin-packs"
msgstr "usa al più un'opzione fra --reachable, --stdin-commits o --stdin-packs"
@@ -12468,59 +12505,59 @@ msgstr "git count-objects [-v] [-H | --human-readable]"
msgid "print sizes in human readable format"
msgstr "stampa le dimensioni in un formato leggibile"
-#: builtin/describe.c:27
+#: builtin/describe.c:26
msgid "git describe [<options>] [<commit-ish>...]"
msgstr "git describe [<opzioni>] [<espressione commit>...]"
-#: builtin/describe.c:28
+#: builtin/describe.c:27
msgid "git describe [<options>] --dirty"
msgstr "git describe [<opzioni>] --dirty"
-#: builtin/describe.c:63
+#: builtin/describe.c:62
msgid "head"
msgstr "head"
-#: builtin/describe.c:63
+#: builtin/describe.c:62
msgid "lightweight"
msgstr "leggero"
-#: builtin/describe.c:63
+#: builtin/describe.c:62
msgid "annotated"
msgstr "annotato"
-#: builtin/describe.c:273
+#: builtin/describe.c:275
#, c-format
msgid "annotated tag %s not available"
msgstr "il tag annotato %s non è disponibile"
-#: builtin/describe.c:277
+#: builtin/describe.c:279
#, c-format
msgid "annotated tag %s has no embedded name"
msgstr "il tag annotato %s non ha un nome incorporato"
-#: builtin/describe.c:279
+#: builtin/describe.c:281
#, c-format
msgid "tag '%s' is really '%s' here"
msgstr "il tag '%s' in realtà qui è '%s'"
-#: builtin/describe.c:323
+#: builtin/describe.c:325
#, c-format
msgid "no tag exactly matches '%s'"
msgstr "nessun tag corrisponde esattamente a '%s'"
-#: builtin/describe.c:325
+#: builtin/describe.c:327
#, c-format
msgid "No exact match on refs or tags, searching to describe\n"
msgstr ""
"Nessuna corrispondenza esatta sui riferimenti o sui tag, sto eseguendo una "
"ricerca per descrivere il commit\n"
-#: builtin/describe.c:379
+#: builtin/describe.c:381
#, c-format
msgid "finished search at %s\n"
msgstr "ricerca terminata in %s\n"
-#: builtin/describe.c:405
+#: builtin/describe.c:407
#, c-format
msgid ""
"No annotated tags can describe '%s'.\n"
@@ -12529,7 +12566,7 @@ msgstr ""
"Nessun tag annotato può descrivere '%s'.\n"
"Ciò nonostante, c'erano dei tag non annotati: prova con --tags."
-#: builtin/describe.c:409
+#: builtin/describe.c:411
#, c-format
msgid ""
"No tags can describe '%s'.\n"
@@ -12538,12 +12575,12 @@ msgstr ""
"Nessun tag può descrivere '%s'.\n"
"Prova con --always o crea dei tag."
-#: builtin/describe.c:439
+#: builtin/describe.c:441
#, c-format
msgid "traversed %lu commits\n"
msgstr "ho attraversato %lu commit\n"
-#: builtin/describe.c:442
+#: builtin/describe.c:444
#, c-format
msgid ""
"more than %i tags found; listed %i most recent\n"
@@ -12552,94 +12589,94 @@ msgstr ""
"trovati più di %i tag; ho elencato i %i più recenti\n"
"ho terminato la ricerca in %s\n"
-#: builtin/describe.c:510
+#: builtin/describe.c:512
#, c-format
msgid "describe %s\n"
msgstr "descrivi %s\n"
-#: builtin/describe.c:513
+#: builtin/describe.c:515
#, c-format
msgid "Not a valid object name %s"
msgstr "%s non è un nome oggetto valido"
-#: builtin/describe.c:521
+#: builtin/describe.c:523
#, c-format
msgid "%s is neither a commit nor blob"
msgstr "%s non è né un commit né un blob"
-#: builtin/describe.c:535
+#: builtin/describe.c:537
msgid "find the tag that comes after the commit"
msgstr "trova il tag successivo al commit"
-#: builtin/describe.c:536
+#: builtin/describe.c:538
msgid "debug search strategy on stderr"
msgstr "esegui il debug della strategia di ricerca sullo standard error"
-#: builtin/describe.c:537
+#: builtin/describe.c:539
msgid "use any ref"
msgstr "usa qualunque riferimento"
-#: builtin/describe.c:538
+#: builtin/describe.c:540
msgid "use any tag, even unannotated"
msgstr "usa qualunque tag, anche quelli non annotati"
-#: builtin/describe.c:539
+#: builtin/describe.c:541
msgid "always use long format"
msgstr "usa sempre il formato lungo"
-#: builtin/describe.c:540
+#: builtin/describe.c:542
msgid "only follow first parent"
msgstr "segui solo il primo genitore"
-#: builtin/describe.c:543
+#: builtin/describe.c:545
msgid "only output exact matches"
msgstr "visualizza solo le corrispondenze esatte"
-#: builtin/describe.c:545
+#: builtin/describe.c:547
msgid "consider <n> most recent tags (default: 10)"
msgstr "considera gli <n> tag più recenti (impostazione predefinita: 10)"
-#: builtin/describe.c:547
+#: builtin/describe.c:549
msgid "only consider tags matching <pattern>"
msgstr "considera solo i tag corrispondenti al <pattern>"
-#: builtin/describe.c:549
+#: builtin/describe.c:551
msgid "do not consider tags matching <pattern>"
msgstr "non considerare i tag corrispondenti al <pattern>"
-#: builtin/describe.c:551 builtin/name-rev.c:422
+#: builtin/describe.c:553 builtin/name-rev.c:426
msgid "show abbreviated commit object as fallback"
msgstr "visualizza l'oggetto commit abbreviato come fallback"
-#: builtin/describe.c:552 builtin/describe.c:555
+#: builtin/describe.c:554 builtin/describe.c:557
msgid "mark"
msgstr "contrassegno"
-#: builtin/describe.c:553
+#: builtin/describe.c:555
msgid "append <mark> on dirty working tree (default: \"-dirty\")"
msgstr ""
"aggiungi <contrassegno> all'albero di lavoro sporco (impostazione "
"predefinita: \"-dirty\")"
-#: builtin/describe.c:556
+#: builtin/describe.c:558
msgid "append <mark> on broken working tree (default: \"-broken\")"
msgstr ""
"aggiungi <contrassegno> all'albero di lavoro rotto (impostazione "
"predefinita: \"-broken\")"
-#: builtin/describe.c:574
+#: builtin/describe.c:576
msgid "--long is incompatible with --abbrev=0"
msgstr "--long non è compatibile con --abbrev=0"
-#: builtin/describe.c:603
+#: builtin/describe.c:605
msgid "No names found, cannot describe anything."
msgstr "Nessun nome trovato, non è possibile descrivere nulla."
-#: builtin/describe.c:654
+#: builtin/describe.c:656
msgid "--dirty is incompatible with commit-ishes"
msgstr "--dirty non è compatibile con le espressioni commit"
-#: builtin/describe.c:656
+#: builtin/describe.c:658
msgid "--broken is incompatible with commit-ishes"
msgstr "--broken non è compatibile con le espressioni commit"
@@ -12676,27 +12713,27 @@ msgstr "specificato oggetto non gestito '%s'."
msgid "git difftool [<options>] [<commit> [<commit>]] [--] [<path>...]"
msgstr "git difftool [<opzioni>] [<commit> [<commit>]] [--] [<percorso>...]"
-#: builtin/difftool.c:253
+#: builtin/difftool.c:260
#, c-format
msgid "failed: %d"
msgstr "non riuscito: %d"
-#: builtin/difftool.c:295
+#: builtin/difftool.c:302
#, c-format
msgid "could not read symlink %s"
msgstr "impossibile leggere il collegamento simbolico %s"
-#: builtin/difftool.c:297
+#: builtin/difftool.c:304
#, c-format
msgid "could not read symlink file %s"
msgstr "impossibile leggere il file collegamento simbolico %s"
-#: builtin/difftool.c:305
+#: builtin/difftool.c:312
#, c-format
msgid "could not read object %s for symlink %s"
msgstr "impossibile leggere l'oggetto %s per il collegamento simbolico %s"
-#: builtin/difftool.c:406
+#: builtin/difftool.c:413
msgid ""
"combined diff formats('-c' and '--cc') are not supported in\n"
"directory diff mode('-d' and '--dir-diff')."
@@ -12704,54 +12741,54 @@ msgstr ""
"i formati diff combinati ('-c' e '--cc') non sono supportati in\n"
"modalità diff directory ('-d' e '--dir-diff')."
-#: builtin/difftool.c:626
+#: builtin/difftool.c:634
#, c-format
msgid "both files modified: '%s' and '%s'."
msgstr "entrambi i file risultano modificati: '%s' e '%s'."
-#: builtin/difftool.c:628
+#: builtin/difftool.c:636
msgid "working tree file has been left."
msgstr "il file nell'albero di lavoro è stato mantenuto."
-#: builtin/difftool.c:639
+#: builtin/difftool.c:647
#, c-format
msgid "temporary files exist in '%s'."
msgstr "esistono file temporanei in '%s'."
-#: builtin/difftool.c:640
+#: builtin/difftool.c:648
msgid "you may want to cleanup or recover these."
msgstr "potresti voler ripulirli o ripristinarli."
-#: builtin/difftool.c:689
+#: builtin/difftool.c:697
msgid "use `diff.guitool` instead of `diff.tool`"
msgstr "usa `diff.guitool` anziché `diff.tool`"
-#: builtin/difftool.c:691
+#: builtin/difftool.c:699
msgid "perform a full-directory diff"
msgstr "esegui un diff directory completo"
-#: builtin/difftool.c:693
+#: builtin/difftool.c:701
msgid "do not prompt before launching a diff tool"
msgstr "non chiedere conferma prima di lanciare un tool diff"
-#: builtin/difftool.c:698
+#: builtin/difftool.c:706
msgid "use symlinks in dir-diff mode"
msgstr "usa collegamenti simbolici in modalità diff directory"
-#: builtin/difftool.c:699
+#: builtin/difftool.c:707
msgid "tool"
msgstr "strumento"
-#: builtin/difftool.c:700
+#: builtin/difftool.c:708
msgid "use the specified diff tool"
msgstr "usa lo strumento diff specificato"
-#: builtin/difftool.c:702
+#: builtin/difftool.c:710
msgid "print a list of diff tools that may be used with `--tool`"
msgstr ""
"stampa un elenco di strumenti diff che possono essere usati con `--tool`"
-#: builtin/difftool.c:705
+#: builtin/difftool.c:713
msgid ""
"make 'git-difftool' exit when an invoked diff tool returns a non - zero exit "
"code"
@@ -12759,31 +12796,31 @@ msgstr ""
"fai sì che 'git-difftool' esca quando uno strumento diff invocato "
"restituisce un codice d'uscita diverso da zero"
-#: builtin/difftool.c:708
+#: builtin/difftool.c:716
msgid "specify a custom command for viewing diffs"
msgstr "specifica un comando personalizzato per visualizzare i diff"
-#: builtin/difftool.c:709
+#: builtin/difftool.c:717
msgid "passed to `diff`"
msgstr "fornito a `diff`"
-#: builtin/difftool.c:724
+#: builtin/difftool.c:732
msgid "difftool requires worktree or --no-index"
msgstr "difftool richiede un albero di lavoro o --no-index"
-#: builtin/difftool.c:731
+#: builtin/difftool.c:739
msgid "--dir-diff is incompatible with --no-index"
msgstr "--dir-diff non è compatibile con --no-index"
-#: builtin/difftool.c:734
+#: builtin/difftool.c:742
msgid "--gui, --tool and --extcmd are mutually exclusive"
msgstr "le opzioni --gui, --tool ed --extcmd sono mutualmente esclusive"
-#: builtin/difftool.c:742
+#: builtin/difftool.c:750
msgid "no <tool> given for --tool=<tool>"
msgstr "nessuno <strumento> specificato per --tool=<strumento>"
-#: builtin/difftool.c:749
+#: builtin/difftool.c:757
msgid "no <cmd> given for --extcmd=<cmd>"
msgstr "nessun <comando> specificato per --extcmd=<comando>"
@@ -12825,161 +12862,189 @@ msgstr ""
msgid "git fast-export [rev-list-opts]"
msgstr "git fast-export [opzioni-elenco-rev]"
-#: builtin/fast-export.c:1124
+#: builtin/fast-export.c:852
+msgid "Error: Cannot export nested tags unless --mark-tags is specified."
+msgstr ""
+"Errore: Impossibile esportare i tag nidificati a meno che non sia "
+"specificata l'opzione --mark-tags."
+
+#: builtin/fast-export.c:1152
msgid "show progress after <n> objects"
msgstr "visualizza l'avanzamento dopo <n> oggetti"
-#: builtin/fast-export.c:1126
+#: builtin/fast-export.c:1154
msgid "select handling of signed tags"
msgstr "seleziona la gestione dei tag firmati"
-#: builtin/fast-export.c:1129
+#: builtin/fast-export.c:1157
msgid "select handling of tags that tag filtered objects"
msgstr "seleziona la gestione dei tag che contrassegnano oggetti filtrati"
-#: builtin/fast-export.c:1132
+#: builtin/fast-export.c:1160
msgid "select handling of commit messages in an alternate encoding"
msgstr ""
"seleziona la gestione dei messaggi di commit in una codifica alternativa"
-#: builtin/fast-export.c:1135
+#: builtin/fast-export.c:1163
msgid "Dump marks to this file"
msgstr "Esegui il dump dei contrassegni in questo file"
-#: builtin/fast-export.c:1137
+#: builtin/fast-export.c:1165
msgid "Import marks from this file"
msgstr "Importa i contrassegni da questo file"
-#: builtin/fast-export.c:1139
+#: builtin/fast-export.c:1169
+msgid "Import marks from this file if it exists"
+msgstr "Importa i contrassegni da questo file se esiste"
+
+#: builtin/fast-export.c:1171
msgid "Fake a tagger when tags lack one"
msgstr "Usa un tagger falso se i tag non ne hanno uno"
-#: builtin/fast-export.c:1141
+#: builtin/fast-export.c:1173
msgid "Output full tree for each commit"
msgstr "Visualizza in output l'albero completo per ogni commit"
-#: builtin/fast-export.c:1143
+#: builtin/fast-export.c:1175
msgid "Use the done feature to terminate the stream"
msgstr "Usa la funzionalità \"fatto\" per terminare il flusso"
-#: builtin/fast-export.c:1144
+#: builtin/fast-export.c:1176
msgid "Skip output of blob data"
msgstr "Ometti l'output dei dati dei blob"
-#: builtin/fast-export.c:1145 builtin/log.c:1632
+#: builtin/fast-export.c:1177 builtin/log.c:1633
msgid "refspec"
msgstr "specificatore riferimento"
-#: builtin/fast-export.c:1146
+#: builtin/fast-export.c:1178
msgid "Apply refspec to exported refs"
msgstr "Applica lo specificatore riferimento ai riferimenti esportati"
-#: builtin/fast-export.c:1147
+#: builtin/fast-export.c:1179
msgid "anonymize output"
msgstr "rendi anonimo l'output"
-#: builtin/fast-export.c:1149
+#: builtin/fast-export.c:1181
msgid "Reference parents which are not in fast-export stream by object id"
msgstr ""
"Fai riferimento ai genitori non nel flusso fast-export tramite l'ID oggetto"
-#: builtin/fast-export.c:1151
+#: builtin/fast-export.c:1183
msgid "Show original object ids of blobs/commits"
msgstr "Visualizza gli ID oggetto originari dei blob/commit"
-#: builtin/fetch.c:30
+#: builtin/fast-export.c:1185
+msgid "Label tags with mark ids"
+msgstr "Etichetta i tag con ID contrassegno"
+
+#: builtin/fast-export.c:1220
+msgid "Cannot pass both --import-marks and --import-marks-if-exists"
+msgstr ""
+"Impossibile fornire entrambe le opzioni --import-marks e --import-marks-if-"
+"exists"
+
+#: builtin/fetch.c:34
msgid "git fetch [<options>] [<repository> [<refspec>...]]"
msgstr "git fetch [<opzioni>] [<repository> [<specificatore riferimento>...]]"
-#: builtin/fetch.c:31
+#: builtin/fetch.c:35
msgid "git fetch [<options>] <group>"
msgstr "git fetch [<opzioni>] <gruppo>"
-#: builtin/fetch.c:32
+#: builtin/fetch.c:36
msgid "git fetch --multiple [<options>] [(<repository> | <group>)...]"
msgstr "git fetch --multiple [<opzioni>] [(<repository> | <gruppo>)...]"
-#: builtin/fetch.c:33
+#: builtin/fetch.c:37
msgid "git fetch --all [<options>]"
msgstr "git fetch --all [<opzioni>]"
-#: builtin/fetch.c:125 builtin/pull.c:203
+#: builtin/fetch.c:115
+msgid "fetch.parallel cannot be negative"
+msgstr "fetch.parallel non può essere negativo"
+
+#: builtin/fetch.c:138 builtin/pull.c:204
msgid "fetch from all remotes"
msgstr "esegui il fetch da tutti i remoti"
-#: builtin/fetch.c:127 builtin/pull.c:206
+#: builtin/fetch.c:140 builtin/pull.c:248
+msgid "set upstream for git pull/fetch"
+msgstr "imposta l'upstream per git pull/fetch"
+
+#: builtin/fetch.c:142 builtin/pull.c:207
msgid "append to .git/FETCH_HEAD instead of overwriting"
msgstr "aggiungi i dati a .git/FETCH_HEAD anziché sovrascriverli"
-#: builtin/fetch.c:129 builtin/pull.c:209
+#: builtin/fetch.c:144 builtin/pull.c:210
msgid "path to upload pack on remote end"
msgstr "percorso in cui caricare il pack sul remoto"
-#: builtin/fetch.c:130
+#: builtin/fetch.c:145
msgid "force overwrite of local reference"
msgstr "forza la sovrascrittura del riferimento locale"
-#: builtin/fetch.c:132
+#: builtin/fetch.c:147
msgid "fetch from multiple remotes"
msgstr "esegui il fetch da più remoti"
-#: builtin/fetch.c:134 builtin/pull.c:213
+#: builtin/fetch.c:149 builtin/pull.c:214
msgid "fetch all tags and associated objects"
msgstr "esegui il fetch di tutti i tag e degli oggetti associati"
-#: builtin/fetch.c:136
+#: builtin/fetch.c:151
msgid "do not fetch all tags (--no-tags)"
msgstr "non eseguire il fetch di alcun tag (--no-tags)"
-#: builtin/fetch.c:138
+#: builtin/fetch.c:153
msgid "number of submodules fetched in parallel"
msgstr "numero di sottomoduli recuperati in parallelo"
-#: builtin/fetch.c:140 builtin/pull.c:216
+#: builtin/fetch.c:155 builtin/pull.c:217
msgid "prune remote-tracking branches no longer on remote"
msgstr ""
"elimina i branch che ne tracciano uno remoto ma non più presenti sul remoto"
-#: builtin/fetch.c:142
+#: builtin/fetch.c:157
msgid "prune local tags no longer on remote and clobber changed tags"
msgstr ""
"elimina i tag locali non più presenti sul remoto e sovrascrivi i tag "
"modificati"
-#: builtin/fetch.c:143 builtin/fetch.c:166 builtin/pull.c:140
+#: builtin/fetch.c:158 builtin/fetch.c:181 builtin/pull.c:141
msgid "on-demand"
msgstr "a richiesta"
-#: builtin/fetch.c:144
+#: builtin/fetch.c:159
msgid "control recursive fetching of submodules"
msgstr "controlla il recupero ricorsivo dei sottomoduli"
-#: builtin/fetch.c:148 builtin/pull.c:224
+#: builtin/fetch.c:163 builtin/pull.c:225
msgid "keep downloaded pack"
msgstr "mantieni il pack scaricato"
-#: builtin/fetch.c:150
+#: builtin/fetch.c:165
msgid "allow updating of HEAD ref"
msgstr "consenti l'aggiornamento del riferimento HEAD"
-#: builtin/fetch.c:153 builtin/fetch.c:159 builtin/pull.c:227
+#: builtin/fetch.c:168 builtin/fetch.c:174 builtin/pull.c:228
msgid "deepen history of shallow clone"
msgstr "aumenta la profondità della cronologia di un clone shallow"
-#: builtin/fetch.c:155
+#: builtin/fetch.c:170
msgid "deepen history of shallow repository based on time"
msgstr ""
"aumenta la profondità della cronologia di un clone shallow in base al tempo"
-#: builtin/fetch.c:161 builtin/pull.c:230
+#: builtin/fetch.c:176 builtin/pull.c:231
msgid "convert to a complete repository"
msgstr "converti in un repository completo"
-#: builtin/fetch.c:164
+#: builtin/fetch.c:179
msgid "prepend this to submodule path output"
msgstr "anteponi questo prefisso all'output del percorso del sottomodulo"
-#: builtin/fetch.c:167
+#: builtin/fetch.c:182
msgid ""
"default for recursive fetching of submodules (lower priority than config "
"files)"
@@ -12987,90 +13052,90 @@ msgstr ""
"impostazione predefinita per il recupero ricorsivo dei sottomoduli (a "
"priorità minore rispetto ai file di configurazione)"
-#: builtin/fetch.c:171 builtin/pull.c:233
+#: builtin/fetch.c:186 builtin/pull.c:234
msgid "accept refs that update .git/shallow"
msgstr "accetta i riferimenti che aggiornano .git/shallow"
-#: builtin/fetch.c:172 builtin/pull.c:235
+#: builtin/fetch.c:187 builtin/pull.c:236
msgid "refmap"
msgstr "mappa riferimenti"
-#: builtin/fetch.c:173 builtin/pull.c:236
+#: builtin/fetch.c:188 builtin/pull.c:237
msgid "specify fetch refmap"
msgstr "specifica la mappa dei riferimenti per il fetch"
-#: builtin/fetch.c:180
+#: builtin/fetch.c:195
msgid "report that we have only objects reachable from this object"
msgstr "segnala che abbiamo solo oggetti raggiungibili da quest'oggetto"
-#: builtin/fetch.c:183
+#: builtin/fetch.c:198
msgid "run 'gc --auto' after fetching"
msgstr "esegui 'gc --auto' dopo il fetch"
-#: builtin/fetch.c:185 builtin/pull.c:245
+#: builtin/fetch.c:200 builtin/pull.c:246
msgid "check for forced-updates on all updated branches"
msgstr "controlla aggiornamenti forzati su tutti i branch aggiornati"
-#: builtin/fetch.c:491
+#: builtin/fetch.c:510
msgid "Couldn't find remote ref HEAD"
msgstr "Impossibile trovare l'HEAD del riferimento remoto"
-#: builtin/fetch.c:630
+#: builtin/fetch.c:650
#, c-format
msgid "configuration fetch.output contains invalid value %s"
msgstr "il valore dell'opzione fetch.output contiene il valore non valido %s"
-#: builtin/fetch.c:728
+#: builtin/fetch.c:748
#, c-format
msgid "object %s not found"
msgstr "oggetto %s non trovato"
-#: builtin/fetch.c:732
+#: builtin/fetch.c:752
msgid "[up to date]"
msgstr "[aggiornato]"
-#: builtin/fetch.c:745 builtin/fetch.c:761 builtin/fetch.c:833
+#: builtin/fetch.c:765 builtin/fetch.c:781 builtin/fetch.c:853
msgid "[rejected]"
msgstr "[rifiutato]"
-#: builtin/fetch.c:746
+#: builtin/fetch.c:766
msgid "can't fetch in current branch"
msgstr "impossibile eseguire il fetch nel branch corrente"
-#: builtin/fetch.c:756
+#: builtin/fetch.c:776
msgid "[tag update]"
msgstr "[tag aggiornato]"
-#: builtin/fetch.c:757 builtin/fetch.c:794 builtin/fetch.c:816
-#: builtin/fetch.c:828
+#: builtin/fetch.c:777 builtin/fetch.c:814 builtin/fetch.c:836
+#: builtin/fetch.c:848
msgid "unable to update local ref"
msgstr "impossibile aggiornare il riferimento locale"
-#: builtin/fetch.c:761
+#: builtin/fetch.c:781
msgid "would clobber existing tag"
msgstr "sovrascriverebbe il tag esistente"
-#: builtin/fetch.c:783
+#: builtin/fetch.c:803
msgid "[new tag]"
msgstr "[nuovo tag]"
-#: builtin/fetch.c:786
+#: builtin/fetch.c:806
msgid "[new branch]"
msgstr "[nuovo branch]"
-#: builtin/fetch.c:789
+#: builtin/fetch.c:809
msgid "[new ref]"
msgstr "[nuovo riferimento]"
-#: builtin/fetch.c:828
+#: builtin/fetch.c:848
msgid "forced update"
msgstr "aggiornamento forzato"
-#: builtin/fetch.c:833
+#: builtin/fetch.c:853
msgid "non-fast-forward"
msgstr "non fast forward"
-#: builtin/fetch.c:854
+#: builtin/fetch.c:874
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"
@@ -13081,7 +13146,7 @@ msgstr ""
"riabilitarlo, usa l'opzione '--show-forced-updates' o esegui 'git config\n"
"fetch.showForcedUpdates true'."
-#: builtin/fetch.c:858
+#: builtin/fetch.c:878
#, c-format
msgid ""
"It took %.2f seconds to check forced updates. You can use\n"
@@ -13093,22 +13158,22 @@ msgstr ""
"aggiornamenti forzati. Puoi usare '--no-show-forced-updates' o eseguire\n"
"'git config fetch.showForcedUpdates false' per omettere questo controllo.\n"
-#: builtin/fetch.c:888
+#: builtin/fetch.c:908
#, c-format
msgid "%s did not send all necessary objects\n"
msgstr "%s non ha inviato tutti gli oggetti necessari\n"
-#: builtin/fetch.c:909
+#: builtin/fetch.c:929
#, c-format
msgid "reject %s because shallow roots are not allowed to be updated"
msgstr "%s rifiutato perché non è consentito aggiornare radici shallow"
-#: builtin/fetch.c:1000 builtin/fetch.c:1131
+#: builtin/fetch.c:1020 builtin/fetch.c:1157
#, c-format
msgid "From %.*s\n"
msgstr "Da %.*s\n"
-#: builtin/fetch.c:1011
+#: builtin/fetch.c:1031
#, c-format
msgid ""
"some local refs could not be updated; try running\n"
@@ -13118,60 +13183,81 @@ msgstr ""
"eseguire\n"
" 'git remote prune %s' per rimuovere ogni branch vecchio in conflitto"
-#: builtin/fetch.c:1101
+#: builtin/fetch.c:1127
#, c-format
msgid " (%s will become dangling)"
msgstr " (%s diventerà pendente)"
-#: builtin/fetch.c:1102
+#: builtin/fetch.c:1128
#, c-format
msgid " (%s has become dangling)"
msgstr " (%s è diventato pendente)"
-#: builtin/fetch.c:1134
+#: builtin/fetch.c:1160
msgid "[deleted]"
msgstr "[eliminato]"
-#: builtin/fetch.c:1135 builtin/remote.c:1036
+#: builtin/fetch.c:1161 builtin/remote.c:1036
msgid "(none)"
msgstr "(nessuno)"
-#: builtin/fetch.c:1158
+#: builtin/fetch.c:1184
#, c-format
msgid "Refusing to fetch into current branch %s of non-bare repository"
msgstr ""
"Mi rifiuto di eseguire il fetch nel branch corrente %s di un repository non "
"bare"
-#: builtin/fetch.c:1177
+#: builtin/fetch.c:1203
#, c-format
msgid "Option \"%s\" value \"%s\" is not valid for %s"
msgstr "L'opzione \"%s\" con il valore \"%s\" non è valida per %s"
-#: builtin/fetch.c:1180
+#: builtin/fetch.c:1206
#, c-format
msgid "Option \"%s\" is ignored for %s\n"
msgstr "L'opzione \"%s\" è ignorata per %s\n"
-#: builtin/fetch.c:1484
+#: builtin/fetch.c:1414
+msgid "multiple branch detected, incompatible with --set-upstream"
+msgstr "rilevati branch multipli, stato incompatibile con --set-upstream"
+
+#: builtin/fetch.c:1429
+msgid "not setting upstream for a remote remote-tracking branch"
+msgstr "non imposto l'upstream per un branch remoto che ne traccia uno remoto"
+
+#: builtin/fetch.c:1431
+msgid "not setting upstream for a remote tag"
+msgstr "non imposto l'upstream per un tag remoto"
+
+#: builtin/fetch.c:1433
+msgid "unknown branch type"
+msgstr "tipo branch sconosciuto"
+
+#: builtin/fetch.c:1435
+msgid ""
+"no source branch found.\n"
+"you need to specify exactly one branch with the --set-upstream option."
+msgstr ""
+"nessun branch sorgente trovato.\n"
+"devi specificare esattamente un branch con l'opzione --set-upstream."
+
+#: builtin/fetch.c:1561 builtin/fetch.c:1623
#, c-format
msgid "Fetching %s\n"
msgstr "Recupero di %s in corso\n"
-#: builtin/fetch.c:1486 builtin/remote.c:100
+#: builtin/fetch.c:1571 builtin/fetch.c:1625 builtin/remote.c:100
#, c-format
msgid "Could not fetch %s"
msgstr "Impossibile recuperare %s"
-#: builtin/fetch.c:1532
-msgid ""
-"--filter can only be used with the remote configured in extensions."
-"partialClone"
-msgstr ""
-"--filter può essere usato solo con il remoto configurato nelle estensioni."
-"partialClone"
+#: builtin/fetch.c:1583
+#, c-format
+msgid "could not fetch '%s' (exit code: %d)\n"
+msgstr "impossibile recuperare '%s' (codice di uscita: %d)\n"
-#: builtin/fetch.c:1556
+#: builtin/fetch.c:1685
msgid ""
"No remote repository specified. Please, specify either a URL or a\n"
"remote name from which new revisions should be fetched."
@@ -13179,45 +13265,45 @@ msgstr ""
"Non è stato specificato alcun repository remoto. Specifica un URL o il\n"
"nome di un remoto da cui dovranno essere recuperate le nuove revisioni."
-#: builtin/fetch.c:1593
+#: builtin/fetch.c:1722
msgid "You need to specify a tag name."
msgstr "Devi specificare il nome di un tag."
-#: builtin/fetch.c:1644
+#: builtin/fetch.c:1774
msgid "Negative depth in --deepen is not supported"
msgstr "Le profondità negative in --deepen non sono supportate"
-#: builtin/fetch.c:1646
+#: builtin/fetch.c:1776
msgid "--deepen and --depth are mutually exclusive"
msgstr "le opzioni --deepen e --depth sono mutualmente esclusive"
-#: builtin/fetch.c:1651
+#: builtin/fetch.c:1781
msgid "--depth and --unshallow cannot be used together"
msgstr "--depth e --unshallow non possono essere usati insieme."
-#: builtin/fetch.c:1653
+#: builtin/fetch.c:1783
msgid "--unshallow on a complete repository does not make sense"
msgstr "--unshallow su un repository completo non ha senso"
-#: builtin/fetch.c:1669
+#: builtin/fetch.c:1799
msgid "fetch --all does not take a repository argument"
msgstr "fetch --all non richiede un repository come argomento"
-#: builtin/fetch.c:1671
+#: builtin/fetch.c:1801
msgid "fetch --all does not make sense with refspecs"
msgstr "fetch --all non ha senso con degli specificatori riferimento"
-#: builtin/fetch.c:1680
+#: builtin/fetch.c:1810
#, c-format
msgid "No such remote or remote group: %s"
msgstr "Remoto o gruppo remoti non esistente: %s"
-#: builtin/fetch.c:1687
+#: builtin/fetch.c:1817
msgid "Fetching a group and specifying refspecs does not make sense"
msgstr ""
"Recuperare un gruppo e specificare gli specificatori riferimento non ha senso"
-#: builtin/fetch.c:1703
+#: builtin/fetch.c:1835
msgid ""
"--filter can only be used with the remote configured in extensions."
"partialclone"
@@ -13557,7 +13643,7 @@ msgstr "%s: oggetto mancante"
msgid "invalid parameter: expected sha1, got '%s'"
msgstr "parametro non valido: atteso SHA1, presente '%s'"
-#: builtin/gc.c:34
+#: builtin/gc.c:35
msgid "git gc [<options>]"
msgstr "git gc [<opzioni>]"
@@ -13571,17 +13657,17 @@ msgstr "fstat di %s non riuscito: %s"
msgid "failed to parse '%s' value '%s'"
msgstr "analisi dell'opzione '%s' con valore '%s' non riuscita"
-#: builtin/gc.c:476 builtin/init-db.c:55
+#: builtin/gc.c:475 builtin/init-db.c:55
#, c-format
msgid "cannot stat '%s'"
msgstr "impossibile eseguire lo stat di '%s'"
-#: builtin/gc.c:485 builtin/notes.c:240 builtin/tag.c:529
+#: builtin/gc.c:484 builtin/notes.c:240 builtin/tag.c:529
#, c-format
msgid "cannot read '%s'"
msgstr "impossibile leggere '%s'"
-#: builtin/gc.c:492
+#: builtin/gc.c:491
#, c-format
msgid ""
"The last gc run reported the following. Please correct the root cause\n"
@@ -13597,56 +13683,56 @@ msgstr ""
"\n"
"%s"
-#: builtin/gc.c:540
+#: builtin/gc.c:539
msgid "prune unreferenced objects"
msgstr "elimina oggetti non referenziati"
-#: builtin/gc.c:542
+#: builtin/gc.c:541
msgid "be more thorough (increased runtime)"
msgstr "sii più accurato (tempi di esecuzione maggiori)"
-#: builtin/gc.c:543
+#: builtin/gc.c:542
msgid "enable auto-gc mode"
msgstr "abilita modalità garbage collector automatica"
-#: builtin/gc.c:546
+#: builtin/gc.c:545
msgid "force running gc even if there may be another gc running"
msgstr ""
"forza l'esecuzione del garbage collector anche nel caso in cui ve ne "
"potrebbe essere un altro in esecuzione"
-#: builtin/gc.c:549
+#: builtin/gc.c:548
msgid "repack all other packs except the largest pack"
msgstr ""
"esegui il repack di tutti gli altri pack ad eccezione di quello più grande"
-#: builtin/gc.c:566
+#: builtin/gc.c:565
#, c-format
msgid "failed to parse gc.logexpiry value %s"
msgstr "analisi del valore %s di gc.logexpiry non riuscita"
-#: builtin/gc.c:577
+#: builtin/gc.c:576
#, c-format
msgid "failed to parse prune expiry value %s"
msgstr "analisi del valore %s per la scadenza delle eliminazioni non riuscita"
-#: builtin/gc.c:597
+#: builtin/gc.c:596
#, c-format
msgid "Auto packing the repository in background for optimum performance.\n"
msgstr ""
"Comprimo il repository in background per ottenere le migliori prestazioni.\n"
-#: builtin/gc.c:599
+#: builtin/gc.c:598
#, c-format
msgid "Auto packing the repository for optimum performance.\n"
msgstr "Comprimo il repository per ottenere le migliori prestazioni.\n"
-#: builtin/gc.c:600
+#: builtin/gc.c:599
#, c-format
msgid "See \"git help gc\" for manual housekeeping.\n"
msgstr "Vedi \"git help gc\" per le operazioni di manutenzione manuali.\n"
-#: builtin/gc.c:640
+#: builtin/gc.c:639
#, c-format
msgid ""
"gc is already running on machine '%s' pid %<PRIuMAX> (use --force if not)"
@@ -13654,7 +13740,7 @@ msgstr ""
"gc è già in esecuzione sul computer '%s' con PID %<PRIuMAX> (usa --force se "
"non lo è)"
-#: builtin/gc.c:695
+#: builtin/gc.c:694
msgid ""
"There are too many unreachable loose objects; run 'git prune' to remove them."
msgstr ""
@@ -13681,262 +13767,262 @@ msgstr "specificato numero non valido di thread (%d) per %s"
#. grep.threads
#.
#: builtin/grep.c:287 builtin/index-pack.c:1534 builtin/index-pack.c:1727
-#: builtin/pack-objects.c:2728
+#: builtin/pack-objects.c:2708
#, c-format
msgid "no threads support, ignoring %s"
msgstr "non vi è supporto per i thread, ignoro %s"
-#: builtin/grep.c:467 builtin/grep.c:591 builtin/grep.c:633
+#: builtin/grep.c:467 builtin/grep.c:592 builtin/grep.c:635
#, c-format
msgid "unable to read tree (%s)"
msgstr "impossibile leggere il tree (%s)"
-#: builtin/grep.c:648
+#: builtin/grep.c:650
#, c-format
msgid "unable to grep from object of type %s"
msgstr "impossibile eseguire grep su un oggetto di tipo %s"
-#: builtin/grep.c:714
+#: builtin/grep.c:716
#, c-format
msgid "switch `%c' expects a numerical value"
msgstr "switch '%c' richiede un valore numerico"
-#: builtin/grep.c:813
+#: builtin/grep.c:815
msgid "search in index instead of in the work tree"
msgstr "cerca nell'index anziché nell'albero di lavoro"
-#: builtin/grep.c:815
+#: builtin/grep.c:817
msgid "find in contents not managed by git"
msgstr "la ricerca nei contenuti non è gestita da Git"
-#: builtin/grep.c:817
+#: builtin/grep.c:819
msgid "search in both tracked and untracked files"
msgstr "cerca sia nei file tracciati sia in quelli non tracciati"
-#: builtin/grep.c:819
+#: builtin/grep.c:821
msgid "ignore files specified via '.gitignore'"
msgstr "ignora i file specificati in '.gitignore'"
-#: builtin/grep.c:821
+#: builtin/grep.c:823
msgid "recursively search in each submodule"
msgstr "cerca ricorsivamente in ogni sottomodulo"
-#: builtin/grep.c:824
+#: builtin/grep.c:826
msgid "show non-matching lines"
msgstr "visualizza le righe non corrispondenti"
-#: builtin/grep.c:826
+#: builtin/grep.c:828
msgid "case insensitive matching"
msgstr "ricerca corrispondenze senza differenze maiuscole/minuscole"
-#: builtin/grep.c:828
+#: builtin/grep.c:830
msgid "match patterns only at word boundaries"
msgstr "cerca corrispondenze ai pattern solo a inizio/fine parola"
-#: builtin/grep.c:830
+#: builtin/grep.c:832
msgid "process binary files as text"
msgstr "elabora i file binari come testuali"
-#: builtin/grep.c:832
+#: builtin/grep.c:834
msgid "don't match patterns in binary files"
msgstr "non cercare corrispondenze ai pattern nei file binari"
-#: builtin/grep.c:835
+#: builtin/grep.c:837
msgid "process binary files with textconv filters"
msgstr "elabora i file binari con filtri di conversione in testo"
-#: builtin/grep.c:837
+#: builtin/grep.c:839
msgid "search in subdirectories (default)"
msgstr "cerca nelle sottodirectory (impostazione predefinita)"
-#: builtin/grep.c:839
+#: builtin/grep.c:841
msgid "descend at most <depth> levels"
msgstr "scendi al più di <profondità> livelli"
-#: builtin/grep.c:843
+#: builtin/grep.c:845
msgid "use extended POSIX regular expressions"
msgstr "usa espressioni regolari POSIX estese"
-#: builtin/grep.c:846
+#: builtin/grep.c:848
msgid "use basic POSIX regular expressions (default)"
msgstr "usa espressioni regolari POSIX di base (impostazione predefinita)"
-#: builtin/grep.c:849
+#: builtin/grep.c:851
msgid "interpret patterns as fixed strings"
msgstr "interpreta i pattern come stringhe fisse"
-#: builtin/grep.c:852
+#: builtin/grep.c:854
msgid "use Perl-compatible regular expressions"
msgstr "usa espressioni regolari compatibili con Perl"
-#: builtin/grep.c:855
+#: builtin/grep.c:857
msgid "show line numbers"
msgstr "visualizza numeri di riga"
-#: builtin/grep.c:856
+#: builtin/grep.c:858
msgid "show column number of first match"
msgstr "visualizza il numero di colonna della prima corrispondenza"
-#: builtin/grep.c:857
+#: builtin/grep.c:859
msgid "don't show filenames"
msgstr "non visualizzare i nomi file"
-#: builtin/grep.c:858
+#: builtin/grep.c:860
msgid "show filenames"
msgstr "visualizza i nomi file"
-#: builtin/grep.c:860
+#: builtin/grep.c:862
msgid "show filenames relative to top directory"
msgstr "visualizza i nomi file relativi alla directory di primo livello"
-#: builtin/grep.c:862
+#: builtin/grep.c:864
msgid "show only filenames instead of matching lines"
msgstr "visualizza solo i nomi file anziché le righe corrispondenti"
-#: builtin/grep.c:864
+#: builtin/grep.c:866
msgid "synonym for --files-with-matches"
msgstr "sinonimo di --files-with-matches"
-#: builtin/grep.c:867
+#: builtin/grep.c:869
msgid "show only the names of files without match"
msgstr "visualizza solo i nomi dei file non corrispondenti"
-#: builtin/grep.c:869
+#: builtin/grep.c:871
msgid "print NUL after filenames"
msgstr "stampa NUL dopo i nomi file"
-#: builtin/grep.c:872
+#: builtin/grep.c:874
msgid "show only matching parts of a line"
msgstr "visualizza solo le parti corrispondenti di una riga"
-#: builtin/grep.c:874
+#: builtin/grep.c:876
msgid "show the number of matches instead of matching lines"
msgstr "visualizza il numero di corrispondenze anziché le righe corrispondenti"
-#: builtin/grep.c:875
+#: builtin/grep.c:877
msgid "highlight matches"
msgstr "evidenzia corrispondenze"
-#: builtin/grep.c:877
+#: builtin/grep.c:879
msgid "print empty line between matches from different files"
msgstr "stampa una riga vuota fra le corrispondenze in file differenti"
-#: builtin/grep.c:879
+#: builtin/grep.c:881
msgid "show filename only once above matches from same file"
msgstr ""
"visualizza il nome file solo una volta prima delle corrispondenze nello "
"stesso file"
-#: builtin/grep.c:882
+#: builtin/grep.c:884
msgid "show <n> context lines before and after matches"
msgstr "visualizza <n> righe di contesto prima e dopo le corrispondenze"
-#: builtin/grep.c:885
+#: builtin/grep.c:887
msgid "show <n> context lines before matches"
msgstr "visualizza <n> righe di contesto prima delle corrispondenze"
-#: builtin/grep.c:887
+#: builtin/grep.c:889
msgid "show <n> context lines after matches"
msgstr "visualizza <n> righe di contesto dopo le corrispondenze"
-#: builtin/grep.c:889
+#: builtin/grep.c:891
msgid "use <n> worker threads"
msgstr "usa <n> thread di lavoro"
-#: builtin/grep.c:890
+#: builtin/grep.c:892
msgid "shortcut for -C NUM"
msgstr "scorciatoia per -C NUM"
-#: builtin/grep.c:893
+#: builtin/grep.c:895
msgid "show a line with the function name before matches"
msgstr "visualizza una riga con il nome funzione prima delle corrispondenze"
-#: builtin/grep.c:895
+#: builtin/grep.c:897
msgid "show the surrounding function"
msgstr "visualizza la funzione circostante"
-#: builtin/grep.c:898
+#: builtin/grep.c:900
msgid "read patterns from file"
msgstr "leggi le corrispondenze da un file"
-#: builtin/grep.c:900
+#: builtin/grep.c:902
msgid "match <pattern>"
msgstr "cerca corrispondenze con <pattern>"
-#: builtin/grep.c:902
+#: builtin/grep.c:904
msgid "combine patterns specified with -e"
msgstr "combina i pattern specificati con -e"
-#: builtin/grep.c:914
+#: builtin/grep.c:916
msgid "indicate hit with exit status without output"
msgstr ""
"segnala una corrispondenza con il codice di uscita senza emettere output"
-#: builtin/grep.c:916
+#: builtin/grep.c:918
msgid "show only matches from files that match all patterns"
msgstr ""
"visualizza solo le corrispondenze nei file in cui vi sono corrispondenze per "
"tutti i pattern"
-#: builtin/grep.c:918
+#: builtin/grep.c:920
msgid "show parse tree for grep expression"
msgstr "visualizza l'albero di analisi per l'espressione grep"
-#: builtin/grep.c:922
+#: builtin/grep.c:924
msgid "pager"
msgstr "pager"
-#: builtin/grep.c:922
+#: builtin/grep.c:924
msgid "show matching files in the pager"
msgstr "visualizza i file corrispondenti nel pager"
-#: builtin/grep.c:926
+#: builtin/grep.c:928
msgid "allow calling of grep(1) (ignored by this build)"
msgstr "consenti"
-#: builtin/grep.c:990
+#: builtin/grep.c:992
msgid "no pattern given"
msgstr "nessun pattern specificato"
-#: builtin/grep.c:1026
+#: builtin/grep.c:1028
msgid "--no-index or --untracked cannot be used with revs"
msgstr "--no-index o --untracked non possono essere usate con le revisioni"
-#: builtin/grep.c:1034
+#: builtin/grep.c:1036
#, c-format
msgid "unable to resolve revision: %s"
msgstr "impossibile risolvere la revisione %s"
-#: builtin/grep.c:1065
+#: builtin/grep.c:1067
msgid "invalid option combination, ignoring --threads"
msgstr "combinazione di opzioni non valida, ignoro --threads"
-#: builtin/grep.c:1068 builtin/pack-objects.c:3416
+#: builtin/grep.c:1070 builtin/pack-objects.c:3400
msgid "no threads support, ignoring --threads"
msgstr "non vi è supporto per i thread, ignoro --threads"
-#: builtin/grep.c:1071 builtin/index-pack.c:1531 builtin/pack-objects.c:2725
+#: builtin/grep.c:1073 builtin/index-pack.c:1531 builtin/pack-objects.c:2705
#, c-format
msgid "invalid number of threads specified (%d)"
msgstr "specificato numero non valido di thread (%d)"
-#: builtin/grep.c:1094
+#: builtin/grep.c:1096
msgid "--open-files-in-pager only works on the worktree"
msgstr "--open-files-in-pager funziona solo sull'albero di lavoro"
-#: builtin/grep.c:1117
+#: builtin/grep.c:1119
msgid "option not supported with --recurse-submodules"
msgstr "opzione non supportata con --recurse-submodules"
-#: builtin/grep.c:1123
+#: builtin/grep.c:1125
msgid "--cached or --untracked cannot be used with --no-index"
msgstr "--cached o --untracked non possono essere usate con --no-index"
-#: builtin/grep.c:1129
+#: builtin/grep.c:1131
msgid "--[no-]exclude-standard cannot be used for tracked contents"
msgstr "--[no-]exclude-standard non può essere usata per i contenuti tracciati"
-#: builtin/grep.c:1137
+#: builtin/grep.c:1139
msgid "both --cached and trees are given"
msgstr "sono specificati sia --cached sia degli alberi"
@@ -14250,7 +14336,7 @@ msgstr "confusione oltre ogni follia in parse_pack_objects()"
msgid "Resolving deltas"
msgstr "Risoluzione dei delta"
-#: builtin/index-pack.c:1205 builtin/pack-objects.c:2497
+#: builtin/index-pack.c:1205 builtin/pack-objects.c:2481
#, c-format
msgid "unable to create thread: %s"
msgstr "impossibile creare il thread: %s"
@@ -14315,7 +14401,7 @@ msgstr "impossibile archiviare il file pack"
msgid "cannot store index file"
msgstr "impossibile archiviare index file"
-#: builtin/index-pack.c:1525 builtin/pack-objects.c:2736
+#: builtin/index-pack.c:1525 builtin/pack-objects.c:2716
#, c-format
msgid "bad pack.indexversion=%<PRIu32>"
msgstr "pack.indexversion=%<PRIu32> non valida"
@@ -14596,74 +14682,74 @@ msgstr "Output finale: %d %s\n"
msgid "git show %s: bad file"
msgstr "git show %s: file non valido"
-#: builtin/log.c:549 builtin/log.c:643
+#: builtin/log.c:549 builtin/log.c:644
#, c-format
msgid "could not read object %s"
msgstr "impossibile leggere l'oggetto %s"
-#: builtin/log.c:668
+#: builtin/log.c:669
#, c-format
msgid "unknown type: %d"
msgstr "tipo sconosciuto: %d"
-#: builtin/log.c:791
+#: builtin/log.c:792
msgid "format.headers without value"
msgstr "format.headers non ha alcun valore"
-#: builtin/log.c:908
+#: builtin/log.c:909
msgid "name of output directory is too long"
msgstr "il nome della directory di output è troppo lungo"
-#: builtin/log.c:924
+#: builtin/log.c:925
#, c-format
msgid "cannot open patch file %s"
msgstr "impossibile aprire il file patch %s"
-#: builtin/log.c:941
+#: builtin/log.c:942
msgid "need exactly one range"
msgstr "è necessario specificare esattamente un intervallo"
-#: builtin/log.c:951
+#: builtin/log.c:952
msgid "not a range"
msgstr "il valore non è un intervallo"
-#: builtin/log.c:1074
+#: builtin/log.c:1075
msgid "cover letter needs email format"
msgstr "la lettera di accompagnamento dev'essere in formato e-mail"
-#: builtin/log.c:1080
+#: builtin/log.c:1081
msgid "failed to create cover-letter file"
msgstr "creazione del file lettera di accompagnamento non riuscita"
-#: builtin/log.c:1159
+#: builtin/log.c:1160
#, c-format
msgid "insane in-reply-to: %s"
msgstr "valore in-reply-to folle: %s"
-#: builtin/log.c:1186
+#: builtin/log.c:1187
msgid "git format-patch [<options>] [<since> | <revision-range>]"
msgstr "git format-patch [<opzioni>] [<da> | <intervallo revisioni>]"
-#: builtin/log.c:1244
+#: builtin/log.c:1245
msgid "two output directories?"
msgstr "due directory di output?"
-#: builtin/log.c:1355 builtin/log.c:2099 builtin/log.c:2101 builtin/log.c:2113
+#: builtin/log.c:1356 builtin/log.c:2116 builtin/log.c:2118 builtin/log.c:2130
#, c-format
msgid "unknown commit %s"
msgstr "commit %s sconosciuto"
-#: builtin/log.c:1365 builtin/replace.c:58 builtin/replace.c:207
+#: builtin/log.c:1366 builtin/replace.c:58 builtin/replace.c:207
#: builtin/replace.c:210
#, c-format
msgid "failed to resolve '%s' as a valid ref"
msgstr "impossibile risolvere '%s' come riferimento valido"
-#: builtin/log.c:1370
+#: builtin/log.c:1371
msgid "could not find exact merge base"
msgstr "impossibile trovare esattamente la base del merge"
-#: builtin/log.c:1374
+#: builtin/log.c:1375
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"
@@ -14675,278 +14761,278 @@ msgstr ""
"In alternativa puoi specificare manualmente il commit di base con\n"
"--base=<ID commit di base>"
-#: builtin/log.c:1394
+#: builtin/log.c:1395
msgid "failed to find exact merge base"
msgstr "impossibile trovare esattamente la base del merge"
-#: builtin/log.c:1405
+#: builtin/log.c:1406
msgid "base commit should be the ancestor of revision list"
msgstr "il commit di base dovrebbe essere l'antenato dell'elenco revisioni"
-#: builtin/log.c:1409
+#: builtin/log.c:1410
msgid "base commit shouldn't be in revision list"
msgstr "il commit di base non dovrebbe essere nell'elenco revisioni"
-#: builtin/log.c:1462
+#: builtin/log.c:1463
msgid "cannot get patch id"
msgstr "impossibile ottenere l'ID della patch"
-#: builtin/log.c:1514
+#: builtin/log.c:1515
msgid "failed to infer range-diff ranges"
msgstr "inferenza degli intervalli range-diff non riuscita"
-#: builtin/log.c:1559
+#: builtin/log.c:1560
msgid "use [PATCH n/m] even with a single patch"
msgstr "usa [PATCH n/m] anche con una singola patch"
-#: builtin/log.c:1562
+#: builtin/log.c:1563
msgid "use [PATCH] even with multiple patches"
msgstr "usa [PATCH] anche con più patch"
-#: builtin/log.c:1566
+#: builtin/log.c:1567
msgid "print patches to standard out"
msgstr "stampa le patch sullo standard output"
-#: builtin/log.c:1568
+#: builtin/log.c:1569
msgid "generate a cover letter"
msgstr "genera una lettera di accompagnamento"
-#: builtin/log.c:1570
+#: builtin/log.c:1571
msgid "use simple number sequence for output file names"
msgstr "usa una sequenza numerica semplice per i nomi file di output"
-#: builtin/log.c:1571
+#: builtin/log.c:1572
msgid "sfx"
msgstr "suff"
-#: builtin/log.c:1572
+#: builtin/log.c:1573
msgid "use <sfx> instead of '.patch'"
msgstr "usa <suff> anziché '.patch'"
-#: builtin/log.c:1574
+#: builtin/log.c:1575
msgid "start numbering patches at <n> instead of 1"
msgstr "inizia a numerare le patch da <n> anziché da 1"
-#: builtin/log.c:1576
+#: builtin/log.c:1577
msgid "mark the series as Nth re-roll"
msgstr "contrassegna la serie come l'n-esima versione revisionata"
-#: builtin/log.c:1578
+#: builtin/log.c:1579
msgid "Use [RFC PATCH] instead of [PATCH]"
msgstr "Usa [RFC PATCH] anziché [PATCH]"
-#: builtin/log.c:1581
+#: builtin/log.c:1582
msgid "Use [<prefix>] instead of [PATCH]"
msgstr "Usa [<prefisso>] anziché [PATCH]"
-#: builtin/log.c:1584
+#: builtin/log.c:1585
msgid "store resulting files in <dir>"
msgstr "salva i file risultanti in <dir>"
-#: builtin/log.c:1587
+#: builtin/log.c:1588
msgid "don't strip/add [PATCH]"
msgstr "non eliminare/aggiungere [PATCH]"
-#: builtin/log.c:1590
+#: builtin/log.c:1591
msgid "don't output binary diffs"
msgstr "non mandare in output diff binari"
-#: builtin/log.c:1592
+#: builtin/log.c:1593
msgid "output all-zero hash in From header"
msgstr "manda in output un hash costituito da soli zeri nell'intestazione From"
-#: builtin/log.c:1594
+#: builtin/log.c:1595
msgid "don't include a patch matching a commit upstream"
msgstr "non includere una patch corrispondente a un commit upstream"
-#: builtin/log.c:1596
+#: builtin/log.c:1597
msgid "show patch format instead of default (patch + stat)"
msgstr ""
"visualizza il formato della patch anziché l'impostazione predefinita (patch "
"+ stat)"
-#: builtin/log.c:1598
+#: builtin/log.c:1599
msgid "Messaging"
msgstr "Messaggistica"
-#: builtin/log.c:1599
+#: builtin/log.c:1600
msgid "header"
msgstr "intestazione"
-#: builtin/log.c:1600
+#: builtin/log.c:1601
msgid "add email header"
msgstr "aggiungi intestazione e-mail"
-#: builtin/log.c:1601 builtin/log.c:1603
+#: builtin/log.c:1602 builtin/log.c:1604
msgid "email"
msgstr "e-mail"
-#: builtin/log.c:1601
+#: builtin/log.c:1602
msgid "add To: header"
msgstr "aggiungi intestazione A:"
-#: builtin/log.c:1603
+#: builtin/log.c:1604
msgid "add Cc: header"
msgstr "aggiungi intestazione Cc:"
-#: builtin/log.c:1605
+#: builtin/log.c:1606
msgid "ident"
msgstr "identità"
-#: builtin/log.c:1606
+#: builtin/log.c:1607
msgid "set From address to <ident> (or committer ident if absent)"
msgstr ""
"imposta l'indirizzo Da a <identità> (o all'identità di chi ha creato il "
"commit se assente)"
-#: builtin/log.c:1608
+#: builtin/log.c:1609
msgid "message-id"
msgstr "ID messaggio"
-#: builtin/log.c:1609
+#: builtin/log.c:1610
msgid "make first mail a reply to <message-id>"
msgstr "rendi la prima e-mail una risposta a <ID messaggio>"
-#: builtin/log.c:1610 builtin/log.c:1613
+#: builtin/log.c:1611 builtin/log.c:1614
msgid "boundary"
msgstr "delimitatore"
-#: builtin/log.c:1611
+#: builtin/log.c:1612
msgid "attach the patch"
msgstr "allega la patch"
-#: builtin/log.c:1614
+#: builtin/log.c:1615
msgid "inline the patch"
msgstr "includi la patch nel messaggio"
-#: builtin/log.c:1618
+#: builtin/log.c:1619
msgid "enable message threading, styles: shallow, deep"
msgstr ""
"abilita il raggruppamento messaggi per conversazione, stili: superficiale, "
"profondo"
-#: builtin/log.c:1620
+#: builtin/log.c:1621
msgid "signature"
msgstr "firma"
-#: builtin/log.c:1621
+#: builtin/log.c:1622
msgid "add a signature"
msgstr "aggiungi una firma"
-#: builtin/log.c:1622
+#: builtin/log.c:1623
msgid "base-commit"
msgstr "commit di base"
-#: builtin/log.c:1623
+#: builtin/log.c:1624
msgid "add prerequisite tree info to the patch series"
msgstr ""
"aggiungi le informazioni prerequisito per l'albero alla serie delle patch"
-#: builtin/log.c:1625
+#: builtin/log.c:1626
msgid "add a signature from a file"
msgstr "aggiungi una firma da file"
-#: builtin/log.c:1626
+#: builtin/log.c:1627
msgid "don't print the patch filenames"
msgstr "non stampare i nomi file delle patch"
-#: builtin/log.c:1628
+#: builtin/log.c:1629
msgid "show progress while generating patches"
msgstr "visualizza l'avanzamento dell'operazione di generazione patch"
-#: builtin/log.c:1630
+#: builtin/log.c:1631
msgid "show changes against <rev> in cover letter or single patch"
msgstr ""
"visualizza le modifiche rispetto a <revisione> nella lettera di "
"accompagnamento o in una patch singola"
-#: builtin/log.c:1633
+#: builtin/log.c:1634
msgid "show changes against <refspec> in cover letter or single patch"
msgstr ""
"visualizza le modifiche rispetto a <specificatore revisione> nella lettera "
"di accompagnamento o in una patch singola"
-#: builtin/log.c:1635
+#: builtin/log.c:1636
msgid "percentage by which creation is weighted"
msgstr "percentuale in base a cui viene pesata la creazione"
-#: builtin/log.c:1710
+#: builtin/log.c:1711
#, c-format
msgid "invalid ident line: %s"
msgstr "riga ident non valida: %s"
-#: builtin/log.c:1725
+#: builtin/log.c:1726
msgid "-n and -k are mutually exclusive"
msgstr "le opzioni -n e -k sono mutuamente esclusive"
-#: builtin/log.c:1727
+#: builtin/log.c:1728
msgid "--subject-prefix/--rfc and -k are mutually exclusive"
msgstr "le opzioni --subject-prefix/--rfc e -k sono mutuamente esclusive"
-#: builtin/log.c:1735
+#: builtin/log.c:1736
msgid "--name-only does not make sense"
msgstr "--name-only non ha senso"
-#: builtin/log.c:1737
+#: builtin/log.c:1738
msgid "--name-status does not make sense"
msgstr "--name-status non ha senso"
-#: builtin/log.c:1739
+#: builtin/log.c:1740
msgid "--check does not make sense"
msgstr "--check non ha senso"
-#: builtin/log.c:1771
+#: builtin/log.c:1773
msgid "standard output, or directory, which one?"
msgstr "standard output, o directory, quale dei due?"
-#: builtin/log.c:1860
+#: builtin/log.c:1877
msgid "--interdiff requires --cover-letter or single patch"
msgstr "--interdiff richiede --cover-letter o una singola patch"
-#: builtin/log.c:1864
+#: builtin/log.c:1881
msgid "Interdiff:"
msgstr "Interdiff:"
-#: builtin/log.c:1865
+#: builtin/log.c:1882
#, c-format
msgid "Interdiff against v%d:"
msgstr "Interdiff rispetto alla versione %d:"
-#: builtin/log.c:1871
+#: builtin/log.c:1888
msgid "--creation-factor requires --range-diff"
msgstr "--creation-factor richiede --range-diff"
-#: builtin/log.c:1875
+#: builtin/log.c:1892
msgid "--range-diff requires --cover-letter or single patch"
msgstr "--range-diff richiede --cover-letter o una singola patch"
-#: builtin/log.c:1883
+#: builtin/log.c:1900
msgid "Range-diff:"
msgstr "Range-diff:"
-#: builtin/log.c:1884
+#: builtin/log.c:1901
#, c-format
msgid "Range-diff against v%d:"
msgstr "Range-diff rispetto alla versione %d:"
-#: builtin/log.c:1895
+#: builtin/log.c:1912
#, c-format
msgid "unable to read signature file '%s'"
msgstr "impossibile leggere il file firma '%s'"
-#: builtin/log.c:1931
+#: builtin/log.c:1948
msgid "Generating patches"
msgstr "Generazione delle patch in corso"
-#: builtin/log.c:1975
+#: builtin/log.c:1992
msgid "failed to create output files"
msgstr "creazione dei file di output non riuscita"
-#: builtin/log.c:2034
+#: builtin/log.c:2051
msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
msgstr "git cherry [-v] [<upstream> [<head> [<limite>]]]"
-#: builtin/log.c:2088
+#: builtin/log.c:2105
#, c-format
msgid ""
"Could not find a tracked remote branch, please specify <upstream> manually.\n"
@@ -15078,7 +15164,7 @@ msgstr ""
msgid "do not print remote URL"
msgstr "non stampare l'URL del remoto"
-#: builtin/ls-remote.c:60 builtin/ls-remote.c:62 builtin/rebase.c:1464
+#: builtin/ls-remote.c:60 builtin/ls-remote.c:62 builtin/rebase.c:1488
msgid "exec"
msgstr "eseguibile"
@@ -15190,33 +15276,33 @@ msgstr "Le strategie disponibili sono:"
msgid "Available custom strategies are:"
msgstr "Le strategie personalizzate disponibili sono:"
-#: builtin/merge.c:244 builtin/pull.c:151
+#: builtin/merge.c:244 builtin/pull.c:152
msgid "do not show a diffstat at the end of the merge"
msgstr "non visualizzare un diffstat al termine del merge"
-#: builtin/merge.c:247 builtin/pull.c:154
+#: builtin/merge.c:247 builtin/pull.c:155
msgid "show a diffstat at the end of the merge"
msgstr "visualizza un diffstat al termine del merge"
-#: builtin/merge.c:248 builtin/pull.c:157
+#: builtin/merge.c:248 builtin/pull.c:158
msgid "(synonym to --stat)"
msgstr "(sinonimo di --stat)"
-#: builtin/merge.c:250 builtin/pull.c:160
+#: builtin/merge.c:250 builtin/pull.c:161
msgid "add (at most <n>) entries from shortlog to merge commit message"
msgstr ""
"aggiungi (al più <n>) voci dal registro breve al messaggio di commit del "
"merge"
-#: builtin/merge.c:253 builtin/pull.c:166
+#: builtin/merge.c:253 builtin/pull.c:167
msgid "create a single commit instead of doing a merge"
msgstr "crea un singolo commit anziché eseguire un merge"
-#: builtin/merge.c:255 builtin/pull.c:169
+#: builtin/merge.c:255 builtin/pull.c:170
msgid "perform a commit if the merge succeeds (default)"
msgstr "esegui un commit se il merge ha successo (impostazione predefinita)"
-#: builtin/merge.c:257 builtin/pull.c:172
+#: builtin/merge.c:257 builtin/pull.c:173
msgid "edit message before committing"
msgstr "modifica il messaggio prima di eseguire il commit"
@@ -15224,28 +15310,28 @@ msgstr "modifica il messaggio prima di eseguire il commit"
msgid "allow fast-forward (default)"
msgstr "consenti fast forward (impostazione predefinita)"
-#: builtin/merge.c:261 builtin/pull.c:179
+#: builtin/merge.c:261 builtin/pull.c:180
msgid "abort if fast-forward is not possible"
msgstr "interrompi se il fast forward non è possibile"
-#: builtin/merge.c:265 builtin/pull.c:182
+#: builtin/merge.c:265 builtin/pull.c:183
msgid "verify that the named commit has a valid GPG signature"
msgstr "verifica che il commit specificato abbia una firma GPG valida"
-#: builtin/merge.c:266 builtin/notes.c:787 builtin/pull.c:186
-#: builtin/rebase.c:492 builtin/rebase.c:1477 builtin/revert.c:114
+#: builtin/merge.c:266 builtin/notes.c:787 builtin/pull.c:187
+#: builtin/rebase.c:493 builtin/rebase.c:1501 builtin/revert.c:114
msgid "strategy"
msgstr "strategia"
-#: builtin/merge.c:267 builtin/pull.c:187
+#: builtin/merge.c:267 builtin/pull.c:188
msgid "merge strategy to use"
msgstr "strategia di merge da usare"
-#: builtin/merge.c:268 builtin/pull.c:190
+#: builtin/merge.c:268 builtin/pull.c:191
msgid "option=value"
msgstr "opzione=valore"
-#: builtin/merge.c:269 builtin/pull.c:191
+#: builtin/merge.c:269 builtin/pull.c:192
msgid "option for selected merge strategy"
msgstr "opzione per la strategia di merge selezionata"
@@ -15265,13 +15351,13 @@ msgstr "esegui --abort ma mantieni immutati l'indice e l'albero di lavoro"
msgid "continue the current in-progress merge"
msgstr "continua il merge attualmente in corso"
-#: builtin/merge.c:284 builtin/pull.c:198
+#: builtin/merge.c:284 builtin/pull.c:199
msgid "allow merging unrelated histories"
msgstr "consenti di unire cronologie non correlate"
#: builtin/merge.c:290
-msgid "verify commit-msg hook"
-msgstr "verifica hook commit-msg"
+msgid "bypass pre-merge-commit and commit-msg hooks"
+msgstr "ignora gli hook pre-merge-commit e commit-msg"
#: builtin/merge.c:307
msgid "could not run stash."
@@ -15314,32 +15400,32 @@ msgstr "'%s' non punta ad un commit"
msgid "Bad branch.%s.mergeoptions string: %s"
msgstr "Stringa branch.%s.mergeoptions errata: %s"
-#: builtin/merge.c:708
+#: builtin/merge.c:705
msgid "Not handling anything other than two heads merge."
msgstr "Non gestisco nulla che non sia il merge di due head."
-#: builtin/merge.c:722
+#: builtin/merge.c:719
#, c-format
msgid "Unknown option for merge-recursive: -X%s"
msgstr "Opzione sconosciuta per merge-recursive: -X%s"
-#: builtin/merge.c:737
+#: builtin/merge.c:734
#, c-format
msgid "unable to write %s"
msgstr "impossibile scrivere %s"
-#: builtin/merge.c:789
+#: builtin/merge.c:786
#, c-format
msgid "Could not read from '%s'"
msgstr "Non è stato possibile leggere da '%s'"
-#: builtin/merge.c:798
+#: builtin/merge.c:795
#, c-format
msgid "Not committing merge; use 'git commit' to complete the merge.\n"
msgstr ""
"Non eseguo il commit del merge; usa 'git commit' per completare il merge.\n"
-#: builtin/merge.c:804
+#: builtin/merge.c:801
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"
@@ -15350,11 +15436,11 @@ msgstr ""
"aggiornato in un topic branch.\n"
"\n"
-#: builtin/merge.c:809
+#: builtin/merge.c:806
msgid "An empty message aborts the commit.\n"
msgstr "Un messaggio vuoto interromperà il commit.\n"
-#: builtin/merge.c:812
+#: builtin/merge.c:809
#, c-format
msgid ""
"Lines starting with '%c' will be ignored, and an empty message aborts\n"
@@ -15363,74 +15449,74 @@ msgstr ""
"Le righe che iniziano con '%c' saranno ignorate e un messaggio vuoto\n"
"interromperà il commit.\n"
-#: builtin/merge.c:853
+#: builtin/merge.c:862
msgid "Empty commit message."
msgstr "Messaggio di commit vuoto."
-#: builtin/merge.c:872
+#: builtin/merge.c:877
#, c-format
msgid "Wonderful.\n"
msgstr "Splendido.\n"
-#: builtin/merge.c:933
+#: builtin/merge.c:938
#, c-format
msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
msgstr ""
"Merge automatico fallito; risolvi i conflitti ed esegui il commit\n"
"del risultato.\n"
-#: builtin/merge.c:972
+#: builtin/merge.c:977
msgid "No current branch."
msgstr "Nessun branch corrente."
-#: builtin/merge.c:974
+#: builtin/merge.c:979
msgid "No remote for the current branch."
msgstr "Nessun remote per il branch corrente."
-#: builtin/merge.c:976
+#: builtin/merge.c:981
msgid "No default upstream defined for the current branch."
msgstr "Nessun upstream di default definito per il branch corrente."
-#: builtin/merge.c:981
+#: builtin/merge.c:986
#, c-format
msgid "No remote-tracking branch for %s from %s"
msgstr "Nessun branch che tracci un remoto per %s da %s"
-#: builtin/merge.c:1038
+#: builtin/merge.c:1043
#, c-format
msgid "Bad value '%s' in environment '%s'"
msgstr "Valore errato '%s' nell'ambiente '%s'"
-#: builtin/merge.c:1141
+#: builtin/merge.c:1146
#, c-format
msgid "not something we can merge in %s: %s"
msgstr "non è qualcosa di cui possiamo eseguire il merge in %s: %s"
-#: builtin/merge.c:1175
+#: builtin/merge.c:1180
msgid "not something we can merge"
msgstr "non è qualcosa di cui possiamo eseguire il merge"
-#: builtin/merge.c:1278
+#: builtin/merge.c:1283
msgid "--abort expects no arguments"
msgstr "--abort non richiede argomenti"
-#: builtin/merge.c:1282
+#: builtin/merge.c:1287
msgid "There is no merge to abort (MERGE_HEAD missing)."
msgstr "Non c'è nessun merge da interrompere (MERGE_HEAD mancante)."
-#: builtin/merge.c:1291
+#: builtin/merge.c:1296
msgid "--quit expects no arguments"
msgstr "--quit non richiede argomenti"
-#: builtin/merge.c:1304
+#: builtin/merge.c:1309
msgid "--continue expects no arguments"
msgstr "--continue non richiede argomenti"
-#: builtin/merge.c:1308
+#: builtin/merge.c:1313
msgid "There is no merge in progress (MERGE_HEAD missing)."
msgstr "Non c'è nessun merge in corso (MERGE_HEAD mancante)."
-#: builtin/merge.c:1324
+#: builtin/merge.c:1329
msgid ""
"You have not concluded your merge (MERGE_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -15438,7 +15524,7 @@ msgstr ""
"Non hai concluso il merge (MERGE_HEAD esiste).\n"
"Esegui il commit delle modifiche prima di eseguire il merge."
-#: builtin/merge.c:1331
+#: builtin/merge.c:1336
msgid ""
"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -15446,96 +15532,96 @@ msgstr ""
"Non hai concluso il cherry-pick (CHERRY_PICK_HEAD esiste).\n"
"Esegui il commit delle modifiche prima di eseguire il merge."
-#: builtin/merge.c:1334
+#: builtin/merge.c:1339
msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
msgstr "Il cherry-pick non è stato concluso (CHERRY_PICK_HEAD esiste)."
-#: builtin/merge.c:1348
+#: builtin/merge.c:1353
msgid "You cannot combine --squash with --no-ff."
msgstr "Non è possibile combinare --squash con --no-ff."
-#: builtin/merge.c:1350
+#: builtin/merge.c:1355
msgid "You cannot combine --squash with --commit."
msgstr "Non è possibile combinare --squash con --commit."
-#: builtin/merge.c:1366
+#: builtin/merge.c:1371
msgid "No commit specified and merge.defaultToUpstream not set."
msgstr "Nessun commit specificato e merge.defaultToUpstream non impostato."
-#: builtin/merge.c:1383
+#: builtin/merge.c:1388
msgid "Squash commit into empty head not supported yet"
msgstr "Lo squash di un commit in un'head vuota non è ancora supportato"
-#: builtin/merge.c:1385
+#: builtin/merge.c:1390
msgid "Non-fast-forward commit does not make sense into an empty head"
msgstr "Un commit non fast forward non ha senso in un'head vuota"
-#: builtin/merge.c:1390
+#: builtin/merge.c:1395
#, c-format
msgid "%s - not something we can merge"
msgstr "%s - non è qualcosa per cui possiamo eseguire il merge"
-#: builtin/merge.c:1392
+#: builtin/merge.c:1397
msgid "Can merge only exactly one commit into empty head"
msgstr "Si può eseguire solo il merge di uno e un solo commit in un'head vuota"
-#: builtin/merge.c:1471
+#: builtin/merge.c:1476
msgid "refusing to merge unrelated histories"
msgstr "mi rifiuto di eseguire il merge di cronologie non correlate"
-#: builtin/merge.c:1480
+#: builtin/merge.c:1485
msgid "Already up to date."
msgstr "Già aggiornato."
-#: builtin/merge.c:1490
+#: builtin/merge.c:1495
#, c-format
msgid "Updating %s..%s\n"
msgstr "Aggiornamento di %s..%s\n"
-#: builtin/merge.c:1532
+#: builtin/merge.c:1537
#, c-format
msgid "Trying really trivial in-index merge...\n"
msgstr "Provo con un merge veramente banale dentro l'indice...\n"
-#: builtin/merge.c:1539
+#: builtin/merge.c:1544
#, c-format
msgid "Nope.\n"
msgstr "No.\n"
-#: builtin/merge.c:1564
+#: builtin/merge.c:1569
msgid "Already up to date. Yeeah!"
msgstr "Già aggiornato. Oh sì!"
-#: builtin/merge.c:1570
+#: builtin/merge.c:1575
msgid "Not possible to fast-forward, aborting."
msgstr "Fast forward non possibile, interrompo l'operazione."
-#: builtin/merge.c:1593 builtin/merge.c:1658
+#: builtin/merge.c:1598 builtin/merge.c:1663
#, c-format
msgid "Rewinding the tree to pristine...\n"
msgstr "Ripristino l'albero in uno stato pulito...\n"
-#: builtin/merge.c:1597
+#: builtin/merge.c:1602
#, c-format
msgid "Trying merge strategy %s...\n"
msgstr "Tentativo con la strategia di merge %s...\n"
-#: builtin/merge.c:1649
+#: builtin/merge.c:1654
#, c-format
msgid "No merge strategy handled the merge.\n"
msgstr "Nessuna strategia di merge ha gestito il merge.\n"
-#: builtin/merge.c:1651
+#: builtin/merge.c:1656
#, c-format
msgid "Merge with strategy %s failed.\n"
msgstr "Merge con la strategia %s fallito.\n"
-#: builtin/merge.c:1660
+#: builtin/merge.c:1665
#, c-format
msgid "Using the %s to prepare resolving by hand.\n"
msgstr "Uso %s per preparare una risoluzione manuale.\n"
-#: builtin/merge.c:1672
+#: builtin/merge.c:1677
#, c-format
msgid "Automatic merge went well; stopped before committing as requested\n"
msgstr ""
@@ -15624,33 +15710,33 @@ msgstr "non emettere avvisi in caso di conflitti"
msgid "set labels for file1/orig-file/file2"
msgstr "imposta etichette per file1/file originale/file2"
-#: builtin/merge-recursive.c:46
+#: builtin/merge-recursive.c:47
#, c-format
msgid "unknown option %s"
msgstr "opzione sconosciuta %s"
-#: builtin/merge-recursive.c:52
+#: builtin/merge-recursive.c:53
#, c-format
msgid "could not parse object '%s'"
msgstr "impossibile analizzare l'oggetto '%s'"
-#: builtin/merge-recursive.c:56
+#: builtin/merge-recursive.c:57
#, c-format
msgid "cannot handle more than %d base. Ignoring %s."
msgid_plural "cannot handle more than %d bases. Ignoring %s."
msgstr[0] "impossibile gestire più di %d base. Ignoro %s."
msgstr[1] "impossibile gestire più di %d basi. Ignoro %s."
-#: builtin/merge-recursive.c:64
+#: builtin/merge-recursive.c:65
msgid "not handling anything other than two heads merge."
msgstr "non gestisco nulla che non sia il merge di due head."
-#: builtin/merge-recursive.c:70 builtin/merge-recursive.c:72
+#: builtin/merge-recursive.c:74 builtin/merge-recursive.c:76
#, c-format
msgid "could not resolve ref '%s'"
msgstr "impossibile risolvere il riferimento '%s'"
-#: builtin/merge-recursive.c:78
+#: builtin/merge-recursive.c:82
#, c-format
msgid "Merging %s with %s\n"
msgstr "Merge di %s con %s in corso\n"
@@ -15794,52 +15880,52 @@ msgstr "%s, sorgente=%s, destinazione=%s"
msgid "Renaming %s to %s\n"
msgstr "Rinominazione di %s in %s in corso\n"
-#: builtin/mv.c:277 builtin/remote.c:717 builtin/repack.c:510
+#: builtin/mv.c:277 builtin/remote.c:717 builtin/repack.c:511
#, c-format
msgid "renaming '%s' failed"
msgstr "rinomina di '%s' non riuscita"
-#: builtin/name-rev.c:352
+#: builtin/name-rev.c:356
msgid "git name-rev [<options>] <commit>..."
msgstr "git name-rev [<opzioni>] <commit>..."
-#: builtin/name-rev.c:353
+#: builtin/name-rev.c:357
msgid "git name-rev [<options>] --all"
msgstr "git name-rev [<opzioni>] --all"
-#: builtin/name-rev.c:354
+#: builtin/name-rev.c:358
msgid "git name-rev [<options>] --stdin"
msgstr "git name-rev [<opzioni>] --stdin"
-#: builtin/name-rev.c:411
+#: builtin/name-rev.c:415
msgid "print only names (no SHA-1)"
msgstr "stampa solo i nomi (non lo SHA-1)"
-#: builtin/name-rev.c:412
+#: builtin/name-rev.c:416
msgid "only use tags to name the commits"
msgstr "usa solo tag per denominare i commit"
-#: builtin/name-rev.c:414
+#: builtin/name-rev.c:418
msgid "only use refs matching <pattern>"
msgstr "usa solo i riferimenti corrispondenti a <pattern>"
-#: builtin/name-rev.c:416
+#: builtin/name-rev.c:420
msgid "ignore refs matching <pattern>"
msgstr "ignora i riferimenti corrispondenti a <pattern>"
-#: builtin/name-rev.c:418
+#: builtin/name-rev.c:422
msgid "list all commits reachable from all refs"
msgstr "elenca tutti i commit raggiungibili da tutti i riferimenti"
-#: builtin/name-rev.c:419
+#: builtin/name-rev.c:423
msgid "read from stdin"
msgstr "leggi dallo standard input"
-#: builtin/name-rev.c:420
+#: builtin/name-rev.c:424
msgid "allow to print `undefined` names (default)"
msgstr "consenti di stampare nomi `non definito` (impostazione predefinita)"
-#: builtin/name-rev.c:426
+#: builtin/name-rev.c:430
msgid "dereference tags in the input (internal use)"
msgstr "dereferenzia tag nell'input (uso interno)"
@@ -16243,7 +16329,7 @@ msgstr "il tentativo di rimuovere una nota inesistente non è un errore"
msgid "read object names from the standard input"
msgstr "leggi i nomi degli oggetti dallo standard input"
-#: builtin/notes.c:954 builtin/prune.c:130 builtin/worktree.c:165
+#: builtin/notes.c:954 builtin/prune.c:130 builtin/worktree.c:164
msgid "do not remove, show only"
msgstr "non rimuovere, limitati a visualizzare"
@@ -16259,7 +16345,7 @@ msgstr "riferimento note"
msgid "use notes from <notes-ref>"
msgstr "usa le note in <riferimento note>"
-#: builtin/notes.c:1034 builtin/stash.c:1598
+#: builtin/notes.c:1034 builtin/stash.c:1607
#, c-format
msgid "unknown subcommand: %s"
msgstr "sottocomando sconosciuto: %s"
@@ -16336,71 +16422,71 @@ msgstr "stat di %s non riuscito"
msgid "wrote %<PRIu32> objects while expecting %<PRIu32>"
msgstr "scritti %<PRIu32> oggetti quando me ne attendevo %<PRIu32>"
-#: builtin/pack-objects.c:1166
+#: builtin/pack-objects.c:1164
msgid "disabling bitmap writing, as some objects are not being packed"
msgstr ""
"disabilito la scrittura delle bitmap perché alcuni oggetti non saranno "
"sottoposti a pack"
-#: builtin/pack-objects.c:1597
+#: builtin/pack-objects.c:1592
#, c-format
msgid "delta base offset overflow in pack for %s"
msgstr "overflow dell'offset base del delta nel pack per %s"
-#: builtin/pack-objects.c:1606
+#: builtin/pack-objects.c:1601
#, c-format
msgid "delta base offset out of bound for %s"
msgstr "offset base del delta fuori dall'intervallo consentito per %s"
-#: builtin/pack-objects.c:1875
+#: builtin/pack-objects.c:1870
msgid "Counting objects"
msgstr "Conteggio degli oggetti in corso"
-#: builtin/pack-objects.c:2005
+#: builtin/pack-objects.c:2000
#, c-format
msgid "unable to get size of %s"
msgstr "impossibile recuperare le dimensioni di %s"
-#: builtin/pack-objects.c:2020
+#: builtin/pack-objects.c:2015
#, c-format
msgid "unable to parse object header of %s"
msgstr "impossibile analizzare l'intestazione oggetto di %s"
-#: builtin/pack-objects.c:2090 builtin/pack-objects.c:2106
-#: builtin/pack-objects.c:2116
+#: builtin/pack-objects.c:2085 builtin/pack-objects.c:2101
+#: builtin/pack-objects.c:2111
#, c-format
msgid "object %s cannot be read"
msgstr "impossibile leggere l'oggetto %s"
-#: builtin/pack-objects.c:2093 builtin/pack-objects.c:2120
+#: builtin/pack-objects.c:2088 builtin/pack-objects.c:2115
#, c-format
msgid "object %s inconsistent object length (%<PRIuMAX> vs %<PRIuMAX>)"
msgstr ""
"oggetto %s: lunghezza oggetto inconsistente (%<PRIuMAX> contro %<PRIuMAX>)"
-#: builtin/pack-objects.c:2130
+#: builtin/pack-objects.c:2125
msgid "suboptimal pack - out of memory"
msgstr "pack subottimo - memoria esaurita"
-#: builtin/pack-objects.c:2456
+#: builtin/pack-objects.c:2440
#, c-format
msgid "Delta compression using up to %d threads"
msgstr "Compressione delta in corso, uso fino a %d thread"
-#: builtin/pack-objects.c:2588
+#: builtin/pack-objects.c:2572
#, c-format
msgid "unable to pack objects reachable from tag %s"
msgstr "impossibile eseguire il pack degli oggetti raggiungibili dal tag %s"
-#: builtin/pack-objects.c:2675
+#: builtin/pack-objects.c:2659
msgid "Compressing objects"
msgstr "Compressione oggetti in corso"
-#: builtin/pack-objects.c:2681
+#: builtin/pack-objects.c:2665
msgid "inconsistency with delta count"
msgstr "inconsistenza con il numero dei delta"
-#: builtin/pack-objects.c:2762
+#: builtin/pack-objects.c:2742
#, c-format
msgid ""
"expected edge object ID, got garbage:\n"
@@ -16409,7 +16495,7 @@ msgstr ""
"atteso ID oggetto arco, ricevuti dati errati:\n"
" %s"
-#: builtin/pack-objects.c:2768
+#: builtin/pack-objects.c:2748
#, c-format
msgid ""
"expected object ID, got garbage:\n"
@@ -16418,251 +16504,251 @@ msgstr ""
"atteso ID oggetto, ricevuti dati errati:\n"
" %s"
-#: builtin/pack-objects.c:2866
+#: builtin/pack-objects.c:2846
msgid "invalid value for --missing"
msgstr "valore non valido per --missing"
-#: builtin/pack-objects.c:2925 builtin/pack-objects.c:3033
+#: builtin/pack-objects.c:2905 builtin/pack-objects.c:3013
msgid "cannot open pack index"
msgstr "impossibile aprire l'indice pack"
-#: builtin/pack-objects.c:2956
+#: builtin/pack-objects.c:2936
#, c-format
msgid "loose object at %s could not be examined"
msgstr "impossibile esaminare l'oggetto sciolto %s"
-#: builtin/pack-objects.c:3041
+#: builtin/pack-objects.c:3021
msgid "unable to force loose object"
msgstr "impossibile forzare l'oggetto sciolto"
-#: builtin/pack-objects.c:3133
+#: builtin/pack-objects.c:3113
#, c-format
msgid "not a rev '%s'"
msgstr "'%s' non è una revisione"
-#: builtin/pack-objects.c:3136
+#: builtin/pack-objects.c:3116
#, c-format
msgid "bad revision '%s'"
msgstr "revisione '%s' errata"
-#: builtin/pack-objects.c:3161
+#: builtin/pack-objects.c:3141
msgid "unable to add recent objects"
msgstr "impossibile aggiungere gli oggetti recenti"
-#: builtin/pack-objects.c:3214
+#: builtin/pack-objects.c:3194
#, c-format
msgid "unsupported index version %s"
msgstr "versione %s di index non supportata"
-#: builtin/pack-objects.c:3218
+#: builtin/pack-objects.c:3198
#, c-format
msgid "bad index version '%s'"
msgstr "versione '%s' di index errata"
-#: builtin/pack-objects.c:3248
+#: builtin/pack-objects.c:3228
msgid "do not show progress meter"
msgstr "non visualizzare la barra di avanzamento"
-#: builtin/pack-objects.c:3250
+#: builtin/pack-objects.c:3230
msgid "show progress meter"
msgstr "visualizza la barra di avanzamento"
-#: builtin/pack-objects.c:3252
+#: builtin/pack-objects.c:3232
msgid "show progress meter during object writing phase"
msgstr ""
"visualizza la barra di avanzamento durante la fase di scrittura oggetti"
-#: builtin/pack-objects.c:3255
+#: builtin/pack-objects.c:3235
msgid "similar to --all-progress when progress meter is shown"
msgstr "simile a --all-progress quando è visualizzata la barra di avanzamento"
-#: builtin/pack-objects.c:3256
+#: builtin/pack-objects.c:3236
msgid "<version>[,<offset>]"
msgstr "<versione>[,<offset>]"
-#: builtin/pack-objects.c:3257
+#: builtin/pack-objects.c:3237
msgid "write the pack index file in the specified idx format version"
msgstr "scrivi il file indice pack usando la versione formato idx specificata"
-#: builtin/pack-objects.c:3260
+#: builtin/pack-objects.c:3240
msgid "maximum size of each output pack file"
msgstr "dimensione massima di ogni file pack in output"
-#: builtin/pack-objects.c:3262
+#: builtin/pack-objects.c:3242
msgid "ignore borrowed objects from alternate object store"
msgstr "ignora gli oggetti presi in prestito dallo store oggetti alternativo"
-#: builtin/pack-objects.c:3264
+#: builtin/pack-objects.c:3244
msgid "ignore packed objects"
msgstr "ignora gli oggetti sottoposti a pack"
-#: builtin/pack-objects.c:3266
+#: builtin/pack-objects.c:3246
msgid "limit pack window by objects"
msgstr "limita la finestra di pack al numero di oggetti specificato"
-#: builtin/pack-objects.c:3268
+#: builtin/pack-objects.c:3248
msgid "limit pack window by memory in addition to object limit"
msgstr ""
"limita la finestra di pack alla memoria specificata in aggiunta al limite "
"sugli oggetti"
-#: builtin/pack-objects.c:3270
+#: builtin/pack-objects.c:3250
msgid "maximum length of delta chain allowed in the resulting pack"
msgstr "lunghezza massima della catena di delta consentita nel pack risultante"
-#: builtin/pack-objects.c:3272
+#: builtin/pack-objects.c:3252
msgid "reuse existing deltas"
msgstr "riusa i delta esistenti"
-#: builtin/pack-objects.c:3274
+#: builtin/pack-objects.c:3254
msgid "reuse existing objects"
msgstr "riusa gli oggetti esistenti"
-#: builtin/pack-objects.c:3276
+#: builtin/pack-objects.c:3256
msgid "use OFS_DELTA objects"
msgstr "usa oggetti OFS_DELTA"
-#: builtin/pack-objects.c:3278
+#: builtin/pack-objects.c:3258
msgid "use threads when searching for best delta matches"
msgstr ""
"usa più thread durante la ricerca delle migliori corrispondenze per i delta"
-#: builtin/pack-objects.c:3280
+#: builtin/pack-objects.c:3260
msgid "do not create an empty pack output"
msgstr "non creare un output pack vuoto"
-#: builtin/pack-objects.c:3282
+#: builtin/pack-objects.c:3262
msgid "read revision arguments from standard input"
msgstr "leggi gli argomenti revisione dallo standard input"
-#: builtin/pack-objects.c:3284
+#: builtin/pack-objects.c:3264
msgid "limit the objects to those that are not yet packed"
msgstr "limita gli oggetti a quelli non ancora sottoposti a pack"
-#: builtin/pack-objects.c:3287
+#: builtin/pack-objects.c:3267
msgid "include objects reachable from any reference"
msgstr "includi gli oggetti raggiungibili da qualunque riferimento"
-#: builtin/pack-objects.c:3290
+#: builtin/pack-objects.c:3270
msgid "include objects referred by reflog entries"
msgstr "includi gli oggetti referenziati da voci del log riferimenti"
-#: builtin/pack-objects.c:3293
+#: builtin/pack-objects.c:3273
msgid "include objects referred to by the index"
msgstr "includi gli oggetti referenziati dall'indice"
-#: builtin/pack-objects.c:3296
+#: builtin/pack-objects.c:3276
msgid "output pack to stdout"
msgstr "invia il pack in output sullo standard output"
-#: builtin/pack-objects.c:3298
+#: builtin/pack-objects.c:3278
msgid "include tag objects that refer to objects to be packed"
msgstr ""
"includi gli oggetti tag che fanno riferimento agli oggetti da sottoporre a "
"pack"
-#: builtin/pack-objects.c:3300
+#: builtin/pack-objects.c:3280
msgid "keep unreachable objects"
msgstr "mantieni gli oggetti non raggiungibili"
-#: builtin/pack-objects.c:3302
+#: builtin/pack-objects.c:3282
msgid "pack loose unreachable objects"
msgstr "esegui il pack degli oggetti non raggiungibili sciolti"
-#: builtin/pack-objects.c:3304
+#: builtin/pack-objects.c:3284
msgid "unpack unreachable objects newer than <time>"
msgstr "decomprimi gli oggetti non raggiungibili più recenti di <tempo>"
-#: builtin/pack-objects.c:3307
+#: builtin/pack-objects.c:3287
msgid "use the sparse reachability algorithm"
msgstr "usa l'algoritmo di raggiungibilità sparse"
-#: builtin/pack-objects.c:3309
+#: builtin/pack-objects.c:3289
msgid "create thin packs"
msgstr "crea pack thin"
-#: builtin/pack-objects.c:3311
+#: builtin/pack-objects.c:3291
msgid "create packs suitable for shallow fetches"
msgstr "crea pack adatti per fetch shallow"
-#: builtin/pack-objects.c:3313
+#: builtin/pack-objects.c:3293
msgid "ignore packs that have companion .keep file"
msgstr "ignora i pack che hanno un file .keep che li accompagna"
-#: builtin/pack-objects.c:3315
+#: builtin/pack-objects.c:3295
msgid "ignore this pack"
msgstr "ignora questo pack"
-#: builtin/pack-objects.c:3317
+#: builtin/pack-objects.c:3297
msgid "pack compression level"
msgstr "livello compressione pack"
-#: builtin/pack-objects.c:3319
+#: builtin/pack-objects.c:3299
msgid "do not hide commits by grafts"
msgstr "non nascondere i commit innestati"
-#: builtin/pack-objects.c:3321
+#: builtin/pack-objects.c:3301
msgid "use a bitmap index if available to speed up counting objects"
msgstr ""
"usa un indice bitmap se disponibile per velocizzare il conteggio degli "
"oggetti"
-#: builtin/pack-objects.c:3323
+#: builtin/pack-objects.c:3303
msgid "write a bitmap index together with the pack index"
msgstr "scrivi un indice bitmap insieme all'indice pack"
-#: builtin/pack-objects.c:3327
+#: builtin/pack-objects.c:3307
msgid "write a bitmap index if possible"
msgstr "scrivi un indice bitmap se possibile"
-#: builtin/pack-objects.c:3331
+#: builtin/pack-objects.c:3311
msgid "handling for missing objects"
msgstr "azione da eseguire sugli oggetti mancanti"
-#: builtin/pack-objects.c:3334
+#: builtin/pack-objects.c:3314
msgid "do not pack objects in promisor packfiles"
msgstr "non eseguire il pack degli oggetti nei file pack promettenti"
-#: builtin/pack-objects.c:3336
+#: builtin/pack-objects.c:3316
msgid "respect islands during delta compression"
msgstr "rispetta le isole durante la compressione delta"
-#: builtin/pack-objects.c:3361
+#: builtin/pack-objects.c:3345
#, c-format
msgid "delta chain depth %d is too deep, forcing %d"
msgstr "la profondità della catena dei delta (%d) è troppo elevata, forzo %d"
-#: builtin/pack-objects.c:3366
+#: builtin/pack-objects.c:3350
#, c-format
msgid "pack.deltaCacheLimit is too high, forcing %d"
msgstr "il valore pack.deltaCacheLimit è troppo elevato, forzo %d"
-#: builtin/pack-objects.c:3420
+#: builtin/pack-objects.c:3404
msgid "--max-pack-size cannot be used to build a pack for transfer"
msgstr ""
"--max-pack-size non può essere usato per generare un pack da trasferire"
-#: builtin/pack-objects.c:3422
+#: builtin/pack-objects.c:3406
msgid "minimum pack size limit is 1 MiB"
msgstr "il limite minimo delle dimensioni dei pack è 1 MiB"
-#: builtin/pack-objects.c:3427
+#: builtin/pack-objects.c:3411
msgid "--thin cannot be used to build an indexable pack"
msgstr "--thin non può essere usato per generare un pack indicizzabile"
-#: builtin/pack-objects.c:3430
+#: builtin/pack-objects.c:3414
msgid "--keep-unreachable and --unpack-unreachable are incompatible"
msgstr "--keep-unreachable e --unpack-unreachable non sono compatibili"
-#: builtin/pack-objects.c:3436
+#: builtin/pack-objects.c:3420
msgid "cannot use --filter without --stdout"
msgstr "impossibile usare --filter senza --stdout"
-#: builtin/pack-objects.c:3497
+#: builtin/pack-objects.c:3481
msgid "Enumerating objects"
msgstr "Enumerazione degli oggetti in corso"
-#: builtin/pack-objects.c:3527
+#: builtin/pack-objects.c:3511
#, c-format
msgid "Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>)"
msgstr ""
@@ -16719,44 +16805,44 @@ msgstr "Valore non valido per %s: %s"
msgid "git pull [<options>] [<repository> [<refspec>...]]"
msgstr "git pull [<opzioni>] [<repository> [<specificatore riferimento>...]]"
-#: builtin/pull.c:141
+#: builtin/pull.c:142
msgid "control for recursive fetching of submodules"
msgstr "controlla il recupero ricorsivo dei sottomoduli"
-#: builtin/pull.c:145
+#: builtin/pull.c:146
msgid "Options related to merging"
msgstr "Opzioni relative al merge"
-#: builtin/pull.c:148
+#: builtin/pull.c:149
msgid "incorporate changes by rebasing rather than merging"
msgstr "incorpora le modifiche eseguendo un rebase anziché un merge"
-#: builtin/pull.c:176 builtin/rebase.c:447 builtin/revert.c:126
+#: builtin/pull.c:177 builtin/rebase.c:448 builtin/revert.c:126
msgid "allow fast-forward"
msgstr "consenti fast forward"
-#: builtin/pull.c:185
+#: builtin/pull.c:186
msgid "automatically stash/stash pop before and after rebase"
msgstr "esegui stash/stash pop automaticamente prima e dopo il rebase"
-#: builtin/pull.c:201
+#: builtin/pull.c:202
msgid "Options related to fetching"
msgstr "Opzioni relative al fetch"
-#: builtin/pull.c:211
+#: builtin/pull.c:212
msgid "force overwrite of local branch"
msgstr "forza la sovrascrittura del branch locale"
-#: builtin/pull.c:219
+#: builtin/pull.c:220
msgid "number of submodules pulled in parallel"
msgstr "numero di sottomoduli recuperati in parallelo"
-#: builtin/pull.c:316
+#: builtin/pull.c:320
#, c-format
msgid "Invalid value for pull.ff: %s"
msgstr "Valore non valido per pull.ff: %s"
-#: builtin/pull.c:433
+#: builtin/pull.c:437
msgid ""
"There is no candidate for rebasing against among the refs that you just "
"fetched."
@@ -16764,14 +16850,14 @@ msgstr ""
"Non ci sono candidati in base ai quali eseguire il rebase fra i riferimenti "
"appena recuperati."
-#: builtin/pull.c:435
+#: builtin/pull.c:439
msgid ""
"There are no candidates for merging among the refs that you just fetched."
msgstr ""
"Non ci sono candidati in base ai quali eseguire il merge fra i riferimenti "
"appena recuperati."
-#: builtin/pull.c:436
+#: builtin/pull.c:440
msgid ""
"Generally this means that you provided a wildcard refspec which had no\n"
"matches on the remote end."
@@ -16779,7 +16865,7 @@ msgstr ""
"In generale, questo significa che hai fornito uno specificatore\n"
"riferimento che non aveva corrispondenze nel remoto."
-#: builtin/pull.c:439
+#: builtin/pull.c:443
#, c-format
msgid ""
"You asked to pull from the remote '%s', but did not specify\n"
@@ -16791,44 +16877,44 @@ msgstr ""
"configurato come predefinito per il branch corrente, devi\n"
"specificare un branch sulla riga di comando."
-#: builtin/pull.c:444 builtin/rebase.c:1326 git-parse-remote.sh:73
+#: builtin/pull.c:448 builtin/rebase.c:1347 git-parse-remote.sh:73
msgid "You are not currently on a branch."
msgstr "Attualmente non sei su un branch."
-#: builtin/pull.c:446 builtin/pull.c:461 git-parse-remote.sh:79
+#: builtin/pull.c:450 builtin/pull.c:465 git-parse-remote.sh:79
msgid "Please specify which branch you want to rebase against."
msgstr "Specifica il branch in base a cui vuoi effettuare il rebase."
-#: builtin/pull.c:448 builtin/pull.c:463 git-parse-remote.sh:82
+#: builtin/pull.c:452 builtin/pull.c:467 git-parse-remote.sh:82
msgid "Please specify which branch you want to merge with."
msgstr "Specifica il branch in base a cui vuoi effettuare il merge."
-#: builtin/pull.c:449 builtin/pull.c:464
+#: builtin/pull.c:453 builtin/pull.c:468
msgid "See git-pull(1) for details."
msgstr "Vedi git-pull(1) per ulteriori dettagli."
-#: builtin/pull.c:451 builtin/pull.c:457 builtin/pull.c:466
-#: builtin/rebase.c:1332 git-parse-remote.sh:64
+#: builtin/pull.c:455 builtin/pull.c:461 builtin/pull.c:470
+#: builtin/rebase.c:1353 git-parse-remote.sh:64
msgid "<remote>"
msgstr "<remoto>"
-#: builtin/pull.c:451 builtin/pull.c:466 builtin/pull.c:471
+#: builtin/pull.c:455 builtin/pull.c:470 builtin/pull.c:475
#: git-parse-remote.sh:65
msgid "<branch>"
msgstr "<branch>"
-#: builtin/pull.c:459 builtin/rebase.c:1324 git-parse-remote.sh:75
+#: builtin/pull.c:463 builtin/rebase.c:1345 git-parse-remote.sh:75
msgid "There is no tracking information for the current branch."
msgstr "Non ci sono informazioni di tracciamento per il branch corrente."
-#: builtin/pull.c:468 git-parse-remote.sh:95
+#: builtin/pull.c:472 git-parse-remote.sh:95
msgid ""
"If you wish to set tracking information for this branch you can do so with:"
msgstr ""
"Se vuoi impostare le informazioni di tracciamento per questo branch puoi "
"farlo con:"
-#: builtin/pull.c:473
+#: builtin/pull.c:477
#, c-format
msgid ""
"Your configuration specifies to merge with the ref '%s'\n"
@@ -16838,32 +16924,32 @@ msgstr ""
"il merge con il riferimento '%s' del remoto, ma un tale\n"
"riferimento non è stato recuperato."
-#: builtin/pull.c:581
+#: builtin/pull.c:587
#, c-format
msgid "unable to access commit %s"
msgstr "impossibile accedere al commit %s"
-#: builtin/pull.c:861
+#: builtin/pull.c:867
msgid "ignoring --verify-signatures for rebase"
msgstr "ignoro --verify-signature per il rebase"
-#: builtin/pull.c:916
+#: builtin/pull.c:922
msgid "--[no-]autostash option is only valid with --rebase."
msgstr "l'opzione --[no-]autostash option è valida solo con --rebase."
-#: builtin/pull.c:924
+#: builtin/pull.c:930
msgid "Updating an unborn branch with changes added to the index."
msgstr "Aggiorno un branch non nato con le modifiche aggiunte all'indice."
-#: builtin/pull.c:928
+#: builtin/pull.c:934
msgid "pull with rebase"
msgstr "pull con rebase"
-#: builtin/pull.c:929
+#: builtin/pull.c:935
msgid "please commit or stash them."
msgstr "eseguine il commit o lo stash."
-#: builtin/pull.c:954
+#: builtin/pull.c:960
#, c-format
msgid ""
"fetch updated the current branch head.\n"
@@ -16875,7 +16961,7 @@ msgstr ""
"Eseguo il fast forward dell'albero\n"
"di lavoro dal commit %s."
-#: builtin/pull.c:960
+#: builtin/pull.c:966
#, c-format
msgid ""
"Cannot fast-forward your working tree.\n"
@@ -16894,15 +16980,15 @@ msgstr ""
"$ git reset --hard\n"
"per eseguire il ripristino."
-#: builtin/pull.c:975
+#: builtin/pull.c:981
msgid "Cannot merge multiple branches into empty head."
msgstr "Impossibile eseguire il merge di più branch in un head vuoto."
-#: builtin/pull.c:979
+#: builtin/pull.c:985
msgid "Cannot rebase onto multiple branches."
msgstr "Impossibile eseguire il rebase su più branch."
-#: builtin/pull.c:986
+#: builtin/pull.c:992
msgid "cannot rebase with locally recorded submodule modifications"
msgstr ""
"impossibile eseguire il rebase se ci sono delle modifiche registrate "
@@ -17073,137 +17159,137 @@ msgstr ""
msgid "Pushing to %s\n"
msgstr "Push su %s in corso\n"
-#: builtin/push.c:364
+#: builtin/push.c:366
#, c-format
msgid "failed to push some refs to '%s'"
msgstr "push di alcuni riferimenti su '%s' non riuscito"
-#: builtin/push.c:398
-#, c-format
-msgid "bad repository '%s'"
-msgstr "repository '%s' errato"
-
-#: builtin/push.c:399
-msgid ""
-"No configured push destination.\n"
-"Either specify the URL from the command-line or configure a remote "
-"repository using\n"
-"\n"
-" git remote add <name> <url>\n"
-"\n"
-"and then push using the remote name\n"
-"\n"
-" git push <name>\n"
-msgstr ""
-"Nessuna destinazione per il push configurata.\n"
-"Specifica un URL dalla riga di comando oppure configurare un repository "
-"remoto usando\n"
-"\n"
-" git remote add <nome> <url>\n"
-"\n"
-"e poi eseguire il push usando il nome del remote\n"
-"\n"
-" git push <nome>\n"
-
-#: builtin/push.c:554
+#: builtin/push.c:541
msgid "repository"
msgstr "repository"
-#: builtin/push.c:555 builtin/send-pack.c:164
+#: builtin/push.c:542 builtin/send-pack.c:164
msgid "push all refs"
msgstr "esegui il push di tutti i riferimenti"
-#: builtin/push.c:556 builtin/send-pack.c:166
+#: builtin/push.c:543 builtin/send-pack.c:166
msgid "mirror all refs"
msgstr "esegui il mirror di tutti i riferimenti"
-#: builtin/push.c:558
+#: builtin/push.c:545
msgid "delete refs"
msgstr "elimina riferimenti"
-#: builtin/push.c:559
+#: builtin/push.c:546
msgid "push tags (can't be used with --all or --mirror)"
msgstr "esegui il push dei tag (non può essere usato con --all o --mirror)"
-#: builtin/push.c:562 builtin/send-pack.c:167
+#: builtin/push.c:549 builtin/send-pack.c:167
msgid "force updates"
msgstr "forza gli aggiornamenti"
-#: builtin/push.c:564 builtin/send-pack.c:181
+#: builtin/push.c:551 builtin/send-pack.c:181
msgid "<refname>:<expect>"
msgstr "<nome riferimento>:<valore atteso>"
-#: builtin/push.c:565 builtin/send-pack.c:182
+#: builtin/push.c:552 builtin/send-pack.c:182
msgid "require old value of ref to be at this value"
msgstr ""
"richiedi che il vecchio valore del riferimento corrisponda a questo valore"
-#: builtin/push.c:568
+#: builtin/push.c:555
msgid "control recursive pushing of submodules"
msgstr "controlla il push ricorsivo dei sottomoduli"
-#: builtin/push.c:570 builtin/send-pack.c:175
+#: builtin/push.c:557 builtin/send-pack.c:175
msgid "use thin pack"
msgstr "usa un thin pack"
-#: builtin/push.c:571 builtin/push.c:572 builtin/send-pack.c:161
+#: builtin/push.c:558 builtin/push.c:559 builtin/send-pack.c:161
#: builtin/send-pack.c:162
msgid "receive pack program"
msgstr "programma ricezione pack"
-#: builtin/push.c:573
+#: builtin/push.c:560
msgid "set upstream for git pull/status"
msgstr "imposta l'upstream per git pull/status"
-#: builtin/push.c:576
+#: builtin/push.c:563
msgid "prune locally removed refs"
msgstr "elimina i riferimenti rimossi localmente"
-#: builtin/push.c:578
+#: builtin/push.c:565
msgid "bypass pre-push hook"
msgstr "ignora l'hook pre-push"
-#: builtin/push.c:579
+#: builtin/push.c:566
msgid "push missing but relevant tags"
msgstr "esegui il push dei tag mancanti ma rilevanti"
-#: builtin/push.c:582 builtin/send-pack.c:169
+#: builtin/push.c:569 builtin/send-pack.c:169
msgid "GPG sign the push"
msgstr "firma il push con GPG"
-#: builtin/push.c:584 builtin/send-pack.c:176
+#: builtin/push.c:571 builtin/send-pack.c:176
msgid "request atomic transaction on remote side"
msgstr "richiedi l'atomicità della transazione al remoto"
-#: builtin/push.c:602
+#: builtin/push.c:589
msgid "--delete is incompatible with --all, --mirror and --tags"
msgstr "--delete non è compatibile con --all, --mirror e --tags"
-#: builtin/push.c:604
+#: builtin/push.c:591
msgid "--delete doesn't make sense without any refs"
msgstr "--delete non ha senso senza alcun ref"
-#: builtin/push.c:607
+#: builtin/push.c:611
+#, c-format
+msgid "bad repository '%s'"
+msgstr "repository '%s' errato"
+
+#: builtin/push.c:612
+msgid ""
+"No configured push destination.\n"
+"Either specify the URL from the command-line or configure a remote "
+"repository using\n"
+"\n"
+" git remote add <name> <url>\n"
+"\n"
+"and then push using the remote name\n"
+"\n"
+" git push <name>\n"
+msgstr ""
+"Nessuna destinazione per il push configurata.\n"
+"Specifica un URL dalla riga di comando oppure configurare un repository "
+"remoto usando\n"
+"\n"
+" git remote add <nome> <url>\n"
+"\n"
+"e poi eseguire il push usando il nome del remote\n"
+"\n"
+" git push <nome>\n"
+
+#: builtin/push.c:627
msgid "--all and --tags are incompatible"
msgstr "--all e --tags non sono compatibili"
-#: builtin/push.c:609
+#: builtin/push.c:629
msgid "--all can't be combined with refspecs"
msgstr "--all non può essere combinato con degli specificatori riferimento"
-#: builtin/push.c:613
+#: builtin/push.c:633
msgid "--mirror and --tags are incompatible"
msgstr "--mirror e --tags non sono compatibili"
-#: builtin/push.c:615
+#: builtin/push.c:635
msgid "--mirror can't be combined with refspecs"
msgstr "--mirror non può essere combinato con degli specificatori riferimento"
-#: builtin/push.c:618
+#: builtin/push.c:638
msgid "--all and --mirror are incompatible"
msgstr "--all e --mirror non sono compatibili"
-#: builtin/push.c:637
+#: builtin/push.c:642
msgid "push options must not have new line characters"
msgstr "le opzioni push non devono avere caratteri di fine riga"
@@ -17326,11 +17412,11 @@ msgstr "non visualizzare i messaggi di feedback"
#: builtin/rebase.c:32
msgid ""
-"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] [<upstream>] "
-"[<branch>]"
+"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase> | --keep-base] "
+"[<upstream> [<branch>]]"
msgstr ""
-"git rebase [-i] [options] [--exec <comando>] [--onto <nuova base>] "
-"[<upstream>] [<branch>]"
+"git rebase [-i] [opzioni] [--exec <comando>] [--onto <nuova base> | --keep-"
+"base] [<upstream> [<branch>]]"
#: builtin/rebase.c:34
msgid ""
@@ -17370,190 +17456,190 @@ msgstr "impossibile contrassegnare come interattivo"
msgid "could not generate todo list"
msgstr "impossibile generare l'elenco todo"
-#: builtin/rebase.c:382
+#: builtin/rebase.c:383
msgid "a base commit must be provided with --upstream or --onto"
msgstr ""
"le opzioni --upstream o --onto richiedono che sia fornito un commit di base"
-#: builtin/rebase.c:437
+#: builtin/rebase.c:438
msgid "git rebase--interactive [<options>]"
msgstr "git rebase --interactive [<opzioni>]"
-#: builtin/rebase.c:449
+#: builtin/rebase.c:450
msgid "keep empty commits"
msgstr "mantieni i commit vuoti"
-#: builtin/rebase.c:451 builtin/revert.c:128
+#: builtin/rebase.c:452 builtin/revert.c:128
msgid "allow commits with empty messages"
msgstr "consenti commit con messaggi vuoti"
-#: builtin/rebase.c:452
+#: builtin/rebase.c:453
msgid "rebase merge commits"
msgstr "esegui il rebase dei commit di merge"
-#: builtin/rebase.c:454
+#: builtin/rebase.c:455
msgid "keep original branch points of cousins"
msgstr "mantieni i punti di branch originali dei cugini"
-#: builtin/rebase.c:456
+#: builtin/rebase.c:457
msgid "move commits that begin with squash!/fixup!"
msgstr "sposta i commit che iniziano con squash!/fixup!"
-#: builtin/rebase.c:457
+#: builtin/rebase.c:458
msgid "sign commits"
msgstr "firma i commit"
-#: builtin/rebase.c:459 builtin/rebase.c:1403
+#: builtin/rebase.c:460 builtin/rebase.c:1427
msgid "display a diffstat of what changed upstream"
msgstr "visualizza un diffstat delle modifiche upstream"
-#: builtin/rebase.c:461
+#: builtin/rebase.c:462
msgid "continue rebase"
msgstr "continua il rebase"
-#: builtin/rebase.c:463
+#: builtin/rebase.c:464
msgid "skip commit"
msgstr "salta il commit"
-#: builtin/rebase.c:464
+#: builtin/rebase.c:465
msgid "edit the todo list"
msgstr "modifica l'elenco todo"
-#: builtin/rebase.c:466
+#: builtin/rebase.c:467
msgid "show the current patch"
msgstr "visualizza la patch corrente"
-#: builtin/rebase.c:469
+#: builtin/rebase.c:470
msgid "shorten commit ids in the todo list"
msgstr "abbrevia gli ID dei commit nell'elenco todo"
-#: builtin/rebase.c:471
+#: builtin/rebase.c:472
msgid "expand commit ids in the todo list"
msgstr "espandi gli ID dei commit nell'elenco todo"
-#: builtin/rebase.c:473
+#: builtin/rebase.c:474
msgid "check the todo list"
msgstr "controlla l'elenco todo"
-#: builtin/rebase.c:475
+#: builtin/rebase.c:476
msgid "rearrange fixup/squash lines"
msgstr "ridisponi le righe fixup/squash"
-#: builtin/rebase.c:477
+#: builtin/rebase.c:478
msgid "insert exec commands in todo list"
msgstr "inserisci i comandi exec nell'elenco todo"
-#: builtin/rebase.c:478
+#: builtin/rebase.c:479
msgid "onto"
msgstr "su"
-#: builtin/rebase.c:481
+#: builtin/rebase.c:482
msgid "restrict-revision"
msgstr "revisioni-limite"
-#: builtin/rebase.c:481
+#: builtin/rebase.c:482
msgid "restrict revision"
msgstr "limita la revisione"
-#: builtin/rebase.c:483
+#: builtin/rebase.c:484
msgid "squash-onto"
msgstr "squash-su"
-#: builtin/rebase.c:484
+#: builtin/rebase.c:485
msgid "squash onto"
msgstr "esegui lo squash su"
-#: builtin/rebase.c:486
+#: builtin/rebase.c:487
msgid "the upstream commit"
msgstr "il commit upstream"
-#: builtin/rebase.c:488
+#: builtin/rebase.c:489
msgid "head-name"
msgstr "nome head"
-#: builtin/rebase.c:488
+#: builtin/rebase.c:489
msgid "head name"
msgstr "nome head"
-#: builtin/rebase.c:493
+#: builtin/rebase.c:494
msgid "rebase strategy"
msgstr "strategia di rebase"
-#: builtin/rebase.c:494
+#: builtin/rebase.c:495
msgid "strategy-opts"
msgstr "opzioni strategia"
-#: builtin/rebase.c:495
+#: builtin/rebase.c:496
msgid "strategy options"
msgstr "opzioni strategia"
-#: builtin/rebase.c:496
+#: builtin/rebase.c:497
msgid "switch-to"
msgstr "passa a"
-#: builtin/rebase.c:497
+#: builtin/rebase.c:498
msgid "the branch or commit to checkout"
msgstr "il branch o il commit di cui eseguire il checkout"
-#: builtin/rebase.c:498
+#: builtin/rebase.c:499
msgid "onto-name"
msgstr "nome"
-#: builtin/rebase.c:498
+#: builtin/rebase.c:499
msgid "onto name"
msgstr "sul nome"
-#: builtin/rebase.c:499
+#: builtin/rebase.c:500
msgid "cmd"
msgstr "comando"
-#: builtin/rebase.c:499
+#: builtin/rebase.c:500
msgid "the command to run"
msgstr "il comando da eseguire"
-#: builtin/rebase.c:502 builtin/rebase.c:1486
+#: builtin/rebase.c:503 builtin/rebase.c:1510
msgid "automatically re-schedule any `exec` that fails"
msgstr "schedula nuovamente le operazioni `exec` non riuscite automaticamente"
-#: builtin/rebase.c:518
+#: builtin/rebase.c:519
msgid "--[no-]rebase-cousins has no effect without --rebase-merges"
msgstr "--[no-]rebase-cousins non ha effetto senza --rebase-merges"
-#: builtin/rebase.c:534
+#: builtin/rebase.c:535
#, c-format
msgid "%s requires an interactive rebase"
msgstr "%s richiede un rebase interattivo"
-#: builtin/rebase.c:586
+#: builtin/rebase.c:587
#, c-format
msgid "could not get 'onto': '%s'"
msgstr "impossibile ottenere 'onto': '%s'"
-#: builtin/rebase.c:601
+#: builtin/rebase.c:602
#, c-format
msgid "invalid orig-head: '%s'"
msgstr "orig-head non valida: '%s'"
-#: builtin/rebase.c:626
+#: builtin/rebase.c:627
#, c-format
msgid "ignoring invalid allow_rerere_autoupdate: '%s'"
msgstr "ignoro il valore non valido per allow_rerere_autoupdate: '%s'"
-#: builtin/rebase.c:702
+#: builtin/rebase.c:703
#, c-format
msgid "Could not read '%s'"
msgstr "Impossibile leggere '%s'"
-#: builtin/rebase.c:720
+#: builtin/rebase.c:721
#, c-format
msgid "Cannot store %s"
msgstr "Impossibile memorizzare %s"
-#: builtin/rebase.c:827
+#: builtin/rebase.c:828
msgid "could not determine HEAD revision"
msgstr "impossibile determinare la revisione HEAD"
-#: builtin/rebase.c:950 git-rebase--preserve-merges.sh:81
+#: builtin/rebase.c:951 git-rebase--preserve-merges.sh:81
msgid ""
"Resolve all conflicts manually, mark them as resolved with\n"
"\"git add/rm <conflicted_files>\", then run \"git rebase --continue\".\n"
@@ -17569,7 +17655,7 @@ msgstr ""
"Per interrompere l'operazione e tornare allo stato precedente\n"
"il \"git rebase\", esegui \"git rebase --abort\"."
-#: builtin/rebase.c:1031
+#: builtin/rebase.c:1032
#, c-format
msgid ""
"\n"
@@ -17588,7 +17674,7 @@ msgstr ""
"\n"
"Di conseguenza, Git non può eseguirne il rebase."
-#: builtin/rebase.c:1318
+#: builtin/rebase.c:1339
#, c-format
msgid ""
"%s\n"
@@ -17605,7 +17691,7 @@ msgstr ""
" git rebase '<branch>'\n"
"\n"
-#: builtin/rebase.c:1334
+#: builtin/rebase.c:1355
#, c-format
msgid ""
"If you wish to set tracking information for this branch you can do so with:\n"
@@ -17619,131 +17705,135 @@ msgstr ""
" git branch --set-upstream-to=%s/<branch> %s\n"
"\n"
-#: builtin/rebase.c:1364
+#: builtin/rebase.c:1385
msgid "exec commands cannot contain newlines"
msgstr "i comandi exec non possono contenere caratteri di fine riga"
-#: builtin/rebase.c:1368
+#: builtin/rebase.c:1389
msgid "empty exec command"
msgstr "comando exec vuoto"
-#: builtin/rebase.c:1396
+#: builtin/rebase.c:1418
msgid "rebase onto given branch instead of upstream"
msgstr "esegui il rebase sul branch specificato anziché su quello upstream"
-#: builtin/rebase.c:1398
+#: builtin/rebase.c:1420
+msgid "use the merge-base of upstream and branch as the current base"
+msgstr "usa la base del merge dell'upstream e del branch come base corrente"
+
+#: builtin/rebase.c:1422
msgid "allow pre-rebase hook to run"
msgstr "consenti l'esecuzione dell'hook pre-rebase"
-#: builtin/rebase.c:1400
+#: builtin/rebase.c:1424
msgid "be quiet. implies --no-stat"
msgstr "sii silenzioso. implica --no-stat"
-#: builtin/rebase.c:1406
+#: builtin/rebase.c:1430
msgid "do not show diffstat of what changed upstream"
msgstr "non visualizzare un diffstat delle modifiche upstream"
-#: builtin/rebase.c:1409
+#: builtin/rebase.c:1433
msgid "add a Signed-off-by: line to each commit"
msgstr "aggiungi una riga Signed-off-by: a ogni commit"
-#: builtin/rebase.c:1411 builtin/rebase.c:1415 builtin/rebase.c:1417
+#: builtin/rebase.c:1435 builtin/rebase.c:1439 builtin/rebase.c:1441
msgid "passed to 'git am'"
msgstr "passato a 'git am'"
-#: builtin/rebase.c:1419 builtin/rebase.c:1421
+#: builtin/rebase.c:1443 builtin/rebase.c:1445
msgid "passed to 'git apply'"
msgstr "passato a 'git apply'"
-#: builtin/rebase.c:1423 builtin/rebase.c:1426
+#: builtin/rebase.c:1447 builtin/rebase.c:1450
msgid "cherry-pick all commits, even if unchanged"
msgstr "esegui il cherry-pick di tutti i commit, anche se non modificati"
-#: builtin/rebase.c:1428
+#: builtin/rebase.c:1452
msgid "continue"
msgstr "continua"
-#: builtin/rebase.c:1431
+#: builtin/rebase.c:1455
msgid "skip current patch and continue"
msgstr "salta la patch corrente e continua"
-#: builtin/rebase.c:1433
+#: builtin/rebase.c:1457
msgid "abort and check out the original branch"
msgstr "interrompi ed esegui il checkout del branch originario"
-#: builtin/rebase.c:1436
+#: builtin/rebase.c:1460
msgid "abort but keep HEAD where it is"
msgstr "interrompi ma mantieni l'HEAD dov'è"
-#: builtin/rebase.c:1437
+#: builtin/rebase.c:1461
msgid "edit the todo list during an interactive rebase"
msgstr "modifica l'elenco todo durante un rebase interattivo"
-#: builtin/rebase.c:1440
+#: builtin/rebase.c:1464
msgid "show the patch file being applied or merged"
msgstr ""
"visualizza il file patch che sta per essere applicato o sottoposto a merge"
-#: builtin/rebase.c:1443
+#: builtin/rebase.c:1467
msgid "use merging strategies to rebase"
msgstr "usa le strategie di merge per eseguire il rebase"
-#: builtin/rebase.c:1447
+#: builtin/rebase.c:1471
msgid "let the user edit the list of commits to rebase"
msgstr ""
"consenti all'utente di modificare l'elenco dei commit di cui eseguire il "
"rebase"
-#: builtin/rebase.c:1451
+#: builtin/rebase.c:1475
msgid "(DEPRECATED) try to recreate merges instead of ignoring them"
msgstr "(DEPRECATO) prova a ricreare i merge anziché ignorarli"
-#: builtin/rebase.c:1455
+#: builtin/rebase.c:1479
msgid "preserve empty commits during rebase"
msgstr "mantieni i commit vuoti durante il rebase"
-#: builtin/rebase.c:1457
+#: builtin/rebase.c:1481
msgid "move commits that begin with squash!/fixup! under -i"
msgstr "sposta i commit che iniziano con squash!/fixup! in -i"
-#: builtin/rebase.c:1463
+#: builtin/rebase.c:1487
msgid "automatically stash/stash pop before and after"
msgstr "esegui stash/stash pop automaticamente prima e dopo"
-#: builtin/rebase.c:1465
+#: builtin/rebase.c:1489
msgid "add exec lines after each commit of the editable list"
msgstr "aggiungi righe exec dopo ogni commit della lista modificabile"
-#: builtin/rebase.c:1469
+#: builtin/rebase.c:1493
msgid "allow rebasing commits with empty messages"
msgstr "consenti il rebase di commit con messaggi vuoti"
-#: builtin/rebase.c:1472
+#: builtin/rebase.c:1496
msgid "try to rebase merges instead of skipping them"
msgstr "prova ad eseguire il rebase dei merge anziché saltarli"
-#: builtin/rebase.c:1475
+#: builtin/rebase.c:1499
msgid "use 'merge-base --fork-point' to refine upstream"
msgstr ""
"usa 'merge-base --fork-point' per ridefinire più precisamente l'upstream"
-#: builtin/rebase.c:1477
+#: builtin/rebase.c:1501
msgid "use the given merge strategy"
msgstr "usa la strategia di merge specificata"
-#: builtin/rebase.c:1479 builtin/revert.c:115
+#: builtin/rebase.c:1503 builtin/revert.c:115
msgid "option"
msgstr "opzione"
-#: builtin/rebase.c:1480
+#: builtin/rebase.c:1504
msgid "pass the argument through to the merge strategy"
msgstr "passa l'argomento alla strategia di merge"
-#: builtin/rebase.c:1483
+#: builtin/rebase.c:1507
msgid "rebase all reachable commits up to the root(s)"
msgstr "esegui il rebase di tutti i commit raggiungibili fino a quelli radice"
-#: builtin/rebase.c:1500
+#: builtin/rebase.c:1524
msgid ""
"the rebase.useBuiltin support has been removed!\n"
"See its entry in 'git help config' for details."
@@ -17751,29 +17841,37 @@ msgstr ""
"il supporto per rebase.useBuiltin è stato rimosso!\n"
"Vedi la voce relativa in 'git help config' per i dettagli."
-#: builtin/rebase.c:1506
+#: builtin/rebase.c:1530
msgid "It looks like 'git am' is in progress. Cannot rebase."
msgstr "Sembra che 'git am' sia in corso. Impossibile eseguire il rebase."
-#: builtin/rebase.c:1547
+#: builtin/rebase.c:1571
msgid ""
"git rebase --preserve-merges is deprecated. Use --rebase-merges instead."
msgstr "git rebase --preserve-merges è deprecato. Usa --rebase-merges."
-#: builtin/rebase.c:1551
+#: builtin/rebase.c:1576
+msgid "cannot combine '--keep-base' with '--onto'"
+msgstr "impossibile combinare '--keep-base' con '--onto'"
+
+#: builtin/rebase.c:1578
+msgid "cannot combine '--keep-base' with '--root'"
+msgstr "impossibile combinare '--keep-base' con '--root'"
+
+#: builtin/rebase.c:1582
msgid "No rebase in progress?"
msgstr "Nessun rebase in corso?"
-#: builtin/rebase.c:1555
+#: builtin/rebase.c:1586
msgid "The --edit-todo action can only be used during interactive rebase."
msgstr ""
"L'azione --edit-todo può essere usata solo durante un rebase interattivo."
-#: builtin/rebase.c:1578
+#: builtin/rebase.c:1609
msgid "Cannot read HEAD"
msgstr "Impossibile leggere l'HEAD"
-#: builtin/rebase.c:1590
+#: builtin/rebase.c:1621
msgid ""
"You must edit all merge conflicts and then\n"
"mark them as resolved using git add"
@@ -17782,16 +17880,16 @@ msgstr ""
"quindi contrassegnarli come risolti usando\n"
"git add"
-#: builtin/rebase.c:1609
+#: builtin/rebase.c:1640
msgid "could not discard worktree changes"
msgstr "impossibile scartare le modifiche all'albero di lavoro"
-#: builtin/rebase.c:1628
+#: builtin/rebase.c:1659
#, c-format
msgid "could not move back to %s"
msgstr "impossibile ritornare a %s"
-#: builtin/rebase.c:1673
+#: builtin/rebase.c:1704
#, c-format
msgid ""
"It seems that there is already a %s directory, and\n"
@@ -17812,166 +17910,160 @@ msgstr ""
"ed eseguimi di nuovo. Mi fermo nel caso in cui tu abbia ancora\n"
"salvato qualcosa di importante lì.\n"
-#: builtin/rebase.c:1694
+#: builtin/rebase.c:1725
msgid "switch `C' expects a numerical value"
msgstr "l'opzione `C` richiede un valore numerico"
-#: builtin/rebase.c:1735
+#: builtin/rebase.c:1766
#, c-format
msgid "Unknown mode: %s"
msgstr "Modo sconosciuto: %s"
-#: builtin/rebase.c:1757
+#: builtin/rebase.c:1788
msgid "--strategy requires --merge or --interactive"
msgstr "--strategy richiede --merge o --interactive"
-#: builtin/rebase.c:1797
+#: builtin/rebase.c:1828
msgid "--reschedule-failed-exec requires --exec or --interactive"
msgstr "--reschedule-failed-exec richiede --exec o --interactive"
-#: builtin/rebase.c:1809
+#: builtin/rebase.c:1840
msgid "cannot combine am options with either interactive or merge options"
msgstr "non è possibile combinare le opzioni am con quelle interactive o merge"
-#: builtin/rebase.c:1828
+#: builtin/rebase.c:1859
msgid "cannot combine '--preserve-merges' with '--rebase-merges'"
msgstr "impossibile combinare '--preserve-merges' con '--rebase-merges'"
-#: builtin/rebase.c:1832
+#: builtin/rebase.c:1863
msgid ""
"error: cannot combine '--preserve-merges' with '--reschedule-failed-exec'"
msgstr ""
"errore: impossibile combinare '--preserve-merges' con '--reschedule-failed-"
"exec'"
-#: builtin/rebase.c:1838
-msgid "cannot combine '--rebase-merges' with '--strategy-option'"
-msgstr "impossibile combinare '--rebase-merges' con '--strategy-option'"
-
-#: builtin/rebase.c:1841
-msgid "cannot combine '--rebase-merges' with '--strategy'"
-msgstr "impossibile combinare '--rebase-merges' con '--strategy'"
-
-#: builtin/rebase.c:1865
+#: builtin/rebase.c:1887
#, c-format
msgid "invalid upstream '%s'"
msgstr "upstream non valido: '%s'"
-#: builtin/rebase.c:1871
+#: builtin/rebase.c:1893
msgid "Could not create new root commit"
msgstr "Impossibile creare il nuovo commit radice"
-#: builtin/rebase.c:1889
+#: builtin/rebase.c:1919
+#, c-format
+msgid "'%s': need exactly one merge base with branch"
+msgstr ""
+"'%s': è necessario specificare esattamente una base per il merge con il "
+"branch"
+
+#: builtin/rebase.c:1922
#, c-format
msgid "'%s': need exactly one merge base"
msgstr "'%s': è necessario specificare esattamente una base per il merge"
-#: builtin/rebase.c:1896
+#: builtin/rebase.c:1930
#, c-format
msgid "Does not point to a valid commit '%s'"
msgstr "'%s' non punta a un commit valido"
-#: builtin/rebase.c:1921
+#: builtin/rebase.c:1955
#, c-format
msgid "fatal: no such branch/commit '%s'"
msgstr "errore fatale: branch/commit '%s' inesistente"
-#: builtin/rebase.c:1929 builtin/submodule--helper.c:38
+#: builtin/rebase.c:1963 builtin/submodule--helper.c:38
#: builtin/submodule--helper.c:1934
#, c-format
msgid "No such ref: %s"
msgstr "Riferimento non esistente: %s"
-#: builtin/rebase.c:1940
+#: builtin/rebase.c:1974
msgid "Could not resolve HEAD to a revision"
msgstr "Impossibile risolvere HEAD come revisione"
-#: builtin/rebase.c:1981
+#: builtin/rebase.c:2012
msgid "Cannot autostash"
msgstr "Impossibile eseguire lo stash automatico"
-#: builtin/rebase.c:1984
+#: builtin/rebase.c:2015
#, c-format
msgid "Unexpected stash response: '%s'"
msgstr "Risposta stash non attesa: '%s'"
-#: builtin/rebase.c:1990
+#: builtin/rebase.c:2021
#, c-format
msgid "Could not create directory for '%s'"
msgstr "Impossibile creare la directory '%s'"
-#: builtin/rebase.c:1993
+#: builtin/rebase.c:2024
#, c-format
msgid "Created autostash: %s\n"
msgstr "Stash automatico creato: %s\n"
-#: builtin/rebase.c:1996
+#: builtin/rebase.c:2027
msgid "could not reset --hard"
msgstr "impossibile eseguire reset --hard"
-#: builtin/rebase.c:1997 builtin/reset.c:114
-#, c-format
-msgid "HEAD is now at %s"
-msgstr "HEAD ora si trova a %s"
-
-#: builtin/rebase.c:2013
+#: builtin/rebase.c:2036
msgid "Please commit or stash them."
msgstr "Eseguine il commit o lo stash."
-#: builtin/rebase.c:2040
+#: builtin/rebase.c:2063
#, c-format
msgid "could not parse '%s'"
msgstr "impossibile analizzare '%s'"
-#: builtin/rebase.c:2053
+#: builtin/rebase.c:2076
#, c-format
msgid "could not switch to %s"
msgstr "impossibile passare a %s"
-#: builtin/rebase.c:2064
+#: builtin/rebase.c:2087
msgid "HEAD is up to date."
msgstr "HEAD è aggiornato."
-#: builtin/rebase.c:2066
+#: builtin/rebase.c:2089
#, c-format
msgid "Current branch %s is up to date.\n"
msgstr "Il branch corrente %s è aggiornato.\n"
-#: builtin/rebase.c:2074
+#: builtin/rebase.c:2097
msgid "HEAD is up to date, rebase forced."
msgstr "HEAD è aggiornato, forzo il rebase."
-#: builtin/rebase.c:2076
+#: builtin/rebase.c:2099
#, c-format
msgid "Current branch %s is up to date, rebase forced.\n"
msgstr "Il branch corrente %s è aggiornato, forzo il rebase.\n"
-#: builtin/rebase.c:2084
+#: builtin/rebase.c:2107
msgid "The pre-rebase hook refused to rebase."
msgstr "L'hook pre-rebase ha rifiutato di consentire il rebase."
-#: builtin/rebase.c:2091
+#: builtin/rebase.c:2114
#, c-format
msgid "Changes to %s:\n"
msgstr "Modifiche a %s:\n"
-#: builtin/rebase.c:2094
+#: builtin/rebase.c:2117
#, c-format
msgid "Changes from %s to %s:\n"
msgstr "Modifiche da %s a %s:\n"
-#: builtin/rebase.c:2119
+#: builtin/rebase.c:2142
#, c-format
msgid "First, rewinding head to replay your work on top of it...\n"
msgstr ""
"Per prima cosa, ripristino l'head per riapplicare le tue modifiche su di "
"esso...\n"
-#: builtin/rebase.c:2128
+#: builtin/rebase.c:2151
msgid "Could not detach HEAD"
msgstr "Impossibile scollegare l'HEAD"
-#: builtin/rebase.c:2137
+#: builtin/rebase.c:2160
#, c-format
msgid "Fast-forwarded %s to %s.\n"
msgstr "Fast forward da %s a %s eseguito.\n"
@@ -17980,7 +18072,7 @@ msgstr "Fast forward da %s a %s eseguito.\n"
msgid "git receive-pack <git-dir>"
msgstr "git receive-pack <directory Git>"
-#: builtin/receive-pack.c:832
+#: builtin/receive-pack.c:830
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"
@@ -18013,7 +18105,7 @@ msgstr ""
"il comportamento predefinito, imposta la variabile di\n"
"configurazione 'receive.denyCurrentBranch' a 'refuse'."
-#: builtin/receive-pack.c:852
+#: builtin/receive-pack.c:850
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"
@@ -18036,11 +18128,11 @@ msgstr ""
"Per non visualizzare più questo messaggio, puoi impostarla a\n"
"'refuse'."
-#: builtin/receive-pack.c:1938
+#: builtin/receive-pack.c:1936
msgid "quiet"
msgstr "non visualizzare messaggi"
-#: builtin/receive-pack.c:1952
+#: builtin/receive-pack.c:1950
msgid "You must specify a directory."
msgstr "Devi specificare una directory."
@@ -18622,11 +18714,11 @@ msgstr ""
msgid "Unknown subcommand: %s"
msgstr "Sottocomando sconosciuto: %s"
-#: builtin/repack.c:22
+#: builtin/repack.c:23
msgid "git repack [<options>]"
msgstr "git repack [<opzioni>]"
-#: builtin/repack.c:27
+#: builtin/repack.c:28
msgid ""
"Incremental repacks are incompatible with bitmap indexes. Use\n"
"--no-write-bitmap-index or disable the pack.writebitmaps configuration."
@@ -18635,118 +18727,118 @@ msgstr ""
"Usa --no-write-bitmap-index o disabilita l'opzione di configurazione\n"
"pack.writebitmaps."
-#: builtin/repack.c:190
+#: builtin/repack.c:191
msgid "could not start pack-objects to repack promisor objects"
msgstr ""
"impossibile avviare pack-objects per eseguire il repack degli oggetti "
"promettenti"
-#: builtin/repack.c:229 builtin/repack.c:408
+#: builtin/repack.c:230 builtin/repack.c:409
msgid "repack: Expecting full hex object ID lines only from pack-objects."
msgstr ""
"repack: Da pack-objects mi attendevo solo righe con gli ID completi "
"esadecimali degli oggetti."
-#: builtin/repack.c:246
+#: builtin/repack.c:247
msgid "could not finish pack-objects to repack promisor objects"
msgstr ""
"impossibile portare a termine pack-objects per eseguire il repack degli "
"oggetti promettenti"
-#: builtin/repack.c:284
+#: builtin/repack.c:285
msgid "pack everything in a single pack"
msgstr "esegui il pack di tutto in un singolo pack"
-#: builtin/repack.c:286
+#: builtin/repack.c:287
msgid "same as -a, and turn unreachable objects loose"
msgstr "come -a e rendi sciolti gli oggetti non raggiungibili"
-#: builtin/repack.c:289
+#: builtin/repack.c:290
msgid "remove redundant packs, and run git-prune-packed"
msgstr "rimuovi i pack ridondanti ed esegui git-prune-packed"
-#: builtin/repack.c:291
+#: builtin/repack.c:292
msgid "pass --no-reuse-delta to git-pack-objects"
msgstr "fornisci l'opzione --no-reuse-delta a git-pack-objects"
-#: builtin/repack.c:293
+#: builtin/repack.c:294
msgid "pass --no-reuse-object to git-pack-objects"
msgstr "fornisci l'opzione --no-reuse-object a git-pack-objects"
-#: builtin/repack.c:295
+#: builtin/repack.c:296
msgid "do not run git-update-server-info"
msgstr "non eseguire git-update-server-info"
-#: builtin/repack.c:298
+#: builtin/repack.c:299
msgid "pass --local to git-pack-objects"
msgstr "fornisci l'opzione --local a git-pack-objects"
-#: builtin/repack.c:300
+#: builtin/repack.c:301
msgid "write bitmap index"
msgstr "scrivi l'indice bitmap"
-#: builtin/repack.c:302
+#: builtin/repack.c:303
msgid "pass --delta-islands to git-pack-objects"
msgstr "fornisci l'opzione --delta-islands a git-pack-objects"
-#: builtin/repack.c:303
+#: builtin/repack.c:304
msgid "approxidate"
msgstr "data approssimativa"
-#: builtin/repack.c:304
+#: builtin/repack.c:305
msgid "with -A, do not loosen objects older than this"
msgstr "con -A, non rendere sciolti gli oggetti meno recenti di questa data"
-#: builtin/repack.c:306
+#: builtin/repack.c:307
msgid "with -a, repack unreachable objects"
msgstr "con -a, esegui il repack degli oggetti non raggiungibili"
-#: builtin/repack.c:308
+#: builtin/repack.c:309
msgid "size of the window used for delta compression"
msgstr "dimensione della finestra usata per la compressione delta"
-#: builtin/repack.c:309 builtin/repack.c:315
+#: builtin/repack.c:310 builtin/repack.c:316
msgid "bytes"
msgstr "byte"
-#: builtin/repack.c:310
+#: builtin/repack.c:311
msgid "same as the above, but limit memory size instead of entries count"
msgstr ""
"come sopra, ma limita le dimensioni della memoria invece del numero di voci"
-#: builtin/repack.c:312
+#: builtin/repack.c:313
msgid "limits the maximum delta depth"
msgstr "limita la profondità massima dei delta"
-#: builtin/repack.c:314
+#: builtin/repack.c:315
msgid "limits the maximum number of threads"
msgstr "limita il numero massimo di thread"
-#: builtin/repack.c:316
+#: builtin/repack.c:317
msgid "maximum size of each packfile"
msgstr "dimensione massima di ogni file pack"
-#: builtin/repack.c:318
+#: builtin/repack.c:319
msgid "repack objects in packs marked with .keep"
msgstr "esegui il repack degli oggetti nei pack contrassegnati con .keep"
-#: builtin/repack.c:320
+#: builtin/repack.c:321
msgid "do not repack this pack"
msgstr "non eseguire il repack di questo pack"
-#: builtin/repack.c:330
+#: builtin/repack.c:331
msgid "cannot delete packs in a precious-objects repo"
msgstr "impossibile eliminare i pack in un repository 'oggetti preziosi'"
-#: builtin/repack.c:334
+#: builtin/repack.c:335
msgid "--keep-unreachable and -A are incompatible"
msgstr "--keep-unreachable e -A non sono compatibili"
-#: builtin/repack.c:417
+#: builtin/repack.c:418
msgid "Nothing new to pack."
msgstr "Non ci sono oggetti nuovi di cui eseguire il pack."
-#: builtin/repack.c:478
+#: builtin/repack.c:479
#, c-format
msgid ""
"WARNING: Some packs in use have been renamed by\n"
@@ -18766,7 +18858,7 @@ msgstr ""
"AVVISO: non è riuscito. Ridenominali manualmente\n"
"AVVISO: entro %s:\n"
-#: builtin/repack.c:526
+#: builtin/repack.c:527
#, c-format
msgid "failed to remove '%s'"
msgstr "eliminazione di '%s' non riuscita"
@@ -18874,8 +18966,8 @@ msgstr "impossibile eseguire fstat su %s"
msgid "unable to write object to database"
msgstr "impossibile scrivere l'oggetto nel database"
-#: builtin/replace.c:322 builtin/replace.c:377 builtin/replace.c:422
-#: builtin/replace.c:452
+#: builtin/replace.c:322 builtin/replace.c:378 builtin/replace.c:423
+#: builtin/replace.c:453
#, c-format
msgid "not a valid object name: '%s'"
msgstr "nome oggetto non valido: '%s'"
@@ -18894,22 +18986,22 @@ msgstr "modifica del file oggetto non riuscita"
msgid "new object is the same as the old one: '%s'"
msgstr "il nuovo oggetto è lo stesso di quello vecchio: '%s'"
-#: builtin/replace.c:383
+#: builtin/replace.c:384
#, c-format
msgid "could not parse %s as a commit"
msgstr "impossibile analizzare %s come commit"
-#: builtin/replace.c:414
+#: builtin/replace.c:415
#, c-format
msgid "bad mergetag in commit '%s'"
msgstr "tag merge non valido nel commit '%s'"
-#: builtin/replace.c:416
+#: builtin/replace.c:417
#, c-format
msgid "malformed mergetag in commit '%s'"
msgstr "tag merge malformato nel commit '%s'"
-#: builtin/replace.c:428
+#: builtin/replace.c:429
#, c-format
msgid ""
"original commit '%s' contains mergetag '%s' that is discarded; use --edit "
@@ -18918,31 +19010,31 @@ msgstr ""
"il commit originario '%s' contiene il tag merge '%s' che è stato scartato; "
"usa --edit anziché --graft"
-#: builtin/replace.c:467
+#: builtin/replace.c:468
#, c-format
msgid "the original commit '%s' has a gpg signature"
msgstr "il commit originario '%s' ha una firma GPG"
-#: builtin/replace.c:468
+#: builtin/replace.c:469
msgid "the signature will be removed in the replacement commit!"
msgstr "la firma sarà rimossa nel commit sostitutivo!"
-#: builtin/replace.c:478
+#: builtin/replace.c:479
#, c-format
msgid "could not write replacement commit for: '%s'"
msgstr "impossibile scrivere il commit sostitutivo per '%s'"
-#: builtin/replace.c:486
+#: builtin/replace.c:487
#, c-format
msgid "graft for '%s' unnecessary"
msgstr "graft per '%s' non necessario"
-#: builtin/replace.c:490
+#: builtin/replace.c:491
#, c-format
msgid "new commit is the same as the old one: '%s'"
msgstr "il nuovo commit è lo stesso di quello vecchio: '%s'"
-#: builtin/replace.c:525
+#: builtin/replace.c:526
#, c-format
msgid ""
"could not convert the following graft(s):\n"
@@ -18951,71 +19043,71 @@ msgstr ""
"impossibile convertire i seguenti graft:\n"
"%s"
-#: builtin/replace.c:546
+#: builtin/replace.c:547
msgid "list replace refs"
msgstr "elenca i riferimenti sostitutivi"
-#: builtin/replace.c:547
+#: builtin/replace.c:548
msgid "delete replace refs"
msgstr "elimina i riferimenti sostitutivi"
-#: builtin/replace.c:548
+#: builtin/replace.c:549
msgid "edit existing object"
msgstr "modifica l'oggetto esistente"
-#: builtin/replace.c:549
+#: builtin/replace.c:550
msgid "change a commit's parents"
msgstr "cambia i genitori di un commit"
-#: builtin/replace.c:550
+#: builtin/replace.c:551
msgid "convert existing graft file"
msgstr "converti un file graft esistente"
-#: builtin/replace.c:551
+#: builtin/replace.c:552
msgid "replace the ref if it exists"
msgstr "sostituisci il riferimento se esiste"
-#: builtin/replace.c:553
+#: builtin/replace.c:554
msgid "do not pretty-print contents for --edit"
msgstr "non stampare i contenuti in un formato leggibile (per --edit)"
-#: builtin/replace.c:554
+#: builtin/replace.c:555
msgid "use this format"
msgstr "usa questo formato"
-#: builtin/replace.c:567
+#: builtin/replace.c:568
msgid "--format cannot be used when not listing"
msgstr "--format non può essere usato quando non si elencano voci"
-#: builtin/replace.c:575
+#: builtin/replace.c:576
msgid "-f only makes sense when writing a replacement"
msgstr "-f ha senso solo se si sta scrivendo un oggetto sostitutivo"
-#: builtin/replace.c:579
+#: builtin/replace.c:580
msgid "--raw only makes sense with --edit"
msgstr "--raw ha senso solo con --edit"
-#: builtin/replace.c:585
+#: builtin/replace.c:586
msgid "-d needs at least one argument"
msgstr "-d richiede almeno un argomento"
-#: builtin/replace.c:591
+#: builtin/replace.c:592
msgid "bad number of arguments"
msgstr "numero di argomenti errato"
-#: builtin/replace.c:597
+#: builtin/replace.c:598
msgid "-e needs exactly one argument"
msgstr "-e richiede esattamente un argomento"
-#: builtin/replace.c:603
+#: builtin/replace.c:604
msgid "-g needs at least one argument"
msgstr "-g richiede almeno un argomento"
-#: builtin/replace.c:609
+#: builtin/replace.c:610
msgid "--convert-graft-file takes no argument"
msgstr "--convert-graft-file non richiede argomenti"
-#: builtin/replace.c:615
+#: builtin/replace.c:616
msgid "only one pattern can be given with -l"
msgstr "con -l può essere specificato solo un pattern"
@@ -19084,13 +19176,18 @@ msgstr "Impossibile trovare l'albero di HEAD."
msgid "Failed to find tree of %s."
msgstr "Impossibile trovare l'albero di %s."
+#: builtin/reset.c:114
+#, c-format
+msgid "HEAD is now at %s"
+msgstr "HEAD ora si trova a %s"
+
#: builtin/reset.c:193
#, c-format
msgid "Cannot do a %s reset in the middle of a merge."
msgstr "Impossibile eseguire un %s reset nel corso di un merge."
-#: builtin/reset.c:293 builtin/stash.c:514 builtin/stash.c:589
-#: builtin/stash.c:613
+#: builtin/reset.c:293 builtin/stash.c:520 builtin/stash.c:595
+#: builtin/stash.c:619
msgid "be quiet, only report errors"
msgstr "non visualizzare messaggi, segnala solo gli errori"
@@ -19174,24 +19271,19 @@ msgstr "Impossibile ripristinare il file indice alla revisione '%s'."
msgid "Could not write new index file."
msgstr "Impossibile scrivere il nuovo file indice."
-#: builtin/rev-list.c:412
+#: builtin/rev-list.c:411
msgid "cannot combine --exclude-promisor-objects and --missing"
msgstr "impossibile combinare --exclude-promisor-objects e --missing"
-#: builtin/rev-list.c:473
+#: builtin/rev-list.c:472
msgid "object filtering requires --objects"
msgstr "il filtraggio oggetti richiede --objects"
-#: builtin/rev-list.c:476
-#, c-format
-msgid "invalid sparse value '%s'"
-msgstr "valore sparse non valido: '%s'"
-
-#: builtin/rev-list.c:527
+#: builtin/rev-list.c:522
msgid "rev-list does not support display of notes"
msgstr "rev-list non supporta la visualizzazione delle note"
-#: builtin/rev-list.c:530
+#: builtin/rev-list.c:525
msgid "cannot combine --use-bitmap-index with object filtering"
msgstr "impossibile combinare --use-bitmap-index con il filtraggio oggetti"
@@ -19742,136 +19834,136 @@ msgstr "ci sono conflitti nell'indice. Prova senza --index."
msgid "could not save index tree"
msgstr "impossibile salvare l'albero indice"
-#: builtin/stash.c:434
+#: builtin/stash.c:436
msgid "could not restore untracked files from stash"
msgstr "non è stato possibile ripristinare i file non tracciati dallo stash"
-#: builtin/stash.c:448
+#: builtin/stash.c:450
#, c-format
msgid "Merging %s with %s"
msgstr "Merge di %s con %s in corso"
-#: builtin/stash.c:458 git-legacy-stash.sh:680
+#: builtin/stash.c:460 git-legacy-stash.sh:680
msgid "Index was not unstashed."
msgstr "L'indice non è stato rimosso dallo stash."
-#: builtin/stash.c:516 builtin/stash.c:615
+#: builtin/stash.c:522 builtin/stash.c:621
msgid "attempt to recreate the index"
msgstr "tenta di ricreare l'indice"
-#: builtin/stash.c:549
+#: builtin/stash.c:555
#, c-format
msgid "Dropped %s (%s)"
msgstr "Ho scartato %s (%s)"
-#: builtin/stash.c:552
+#: builtin/stash.c:558
#, c-format
msgid "%s: Could not drop stash entry"
msgstr "%s: Impossibile scartare la voce di stash"
-#: builtin/stash.c:577
+#: builtin/stash.c:583
#, c-format
msgid "'%s' is not a stash reference"
msgstr "'%s' non è un riferimento stash"
-#: builtin/stash.c:627 git-legacy-stash.sh:694
+#: builtin/stash.c:633 git-legacy-stash.sh:694
msgid "The stash entry is kept in case you need it again."
msgstr ""
"La voce di stash è mantenuta nel caso in cui tu ne abbia nuovamente bisogno."
-#: builtin/stash.c:650 git-legacy-stash.sh:712
+#: builtin/stash.c:656 git-legacy-stash.sh:712
msgid "No branch name specified"
msgstr "Nome del branch non specificato"
-#: builtin/stash.c:790 builtin/stash.c:827
+#: builtin/stash.c:796 builtin/stash.c:833
#, c-format
msgid "Cannot update %s with %s"
msgstr "Impossibile aggiornare %s con %s"
-#: builtin/stash.c:808 builtin/stash.c:1461 builtin/stash.c:1497
+#: builtin/stash.c:814 builtin/stash.c:1470 builtin/stash.c:1506
msgid "stash message"
msgstr "messaggio di stash"
-#: builtin/stash.c:818
+#: builtin/stash.c:824
msgid "\"git stash store\" requires one <commit> argument"
msgstr "\"git stash store\" richiede un argomento <commit>"
-#: builtin/stash.c:1040 git-legacy-stash.sh:217
+#: builtin/stash.c:1046 git-legacy-stash.sh:217
msgid "No changes selected"
msgstr "Nessuna modifica selezionata"
-#: builtin/stash.c:1136 git-legacy-stash.sh:150
+#: builtin/stash.c:1145 git-legacy-stash.sh:150
msgid "You do not have the initial commit yet"
msgstr "Non hai ancora un commit iniziale"
-#: builtin/stash.c:1163 git-legacy-stash.sh:165
+#: builtin/stash.c:1172 git-legacy-stash.sh:165
msgid "Cannot save the current index state"
msgstr "Impossibile salvare lo stato corrente di index"
-#: builtin/stash.c:1172 git-legacy-stash.sh:180
+#: builtin/stash.c:1181 git-legacy-stash.sh:180
msgid "Cannot save the untracked files"
msgstr "Impossibile salvare i file non tracciati"
-#: builtin/stash.c:1183 builtin/stash.c:1192 git-legacy-stash.sh:200
+#: builtin/stash.c:1192 builtin/stash.c:1201 git-legacy-stash.sh:200
#: git-legacy-stash.sh:213
msgid "Cannot save the current worktree state"
msgstr "Impossibile salvare lo stato corrente dell'albero di lavoro"
-#: builtin/stash.c:1220 git-legacy-stash.sh:233
+#: builtin/stash.c:1229 git-legacy-stash.sh:233
msgid "Cannot record working tree state"
msgstr "Impossibile registrare lo stato dell'albero di lavoro"
-#: builtin/stash.c:1269 git-legacy-stash.sh:337
+#: builtin/stash.c:1278 git-legacy-stash.sh:337
msgid "Can't use --patch and --include-untracked or --all at the same time"
msgstr ""
"Impossibile usare --patch e --include-untracked o --all allo stesso tempo"
-#: builtin/stash.c:1285
+#: builtin/stash.c:1294
msgid "Did you forget to 'git add'?"
msgstr "Ti sei scordato di eseguire 'git add'?"
-#: builtin/stash.c:1300 git-legacy-stash.sh:345
+#: builtin/stash.c:1309 git-legacy-stash.sh:345
msgid "No local changes to save"
msgstr "Nessuna modifica locale da salvare"
-#: builtin/stash.c:1307 git-legacy-stash.sh:350
+#: builtin/stash.c:1316 git-legacy-stash.sh:350
msgid "Cannot initialize stash"
msgstr "Impossibile inizializzare stash"
-#: builtin/stash.c:1322 git-legacy-stash.sh:354
+#: builtin/stash.c:1331 git-legacy-stash.sh:354
msgid "Cannot save the current status"
msgstr "Impossibile salvare lo stato attuale"
-#: builtin/stash.c:1327
+#: builtin/stash.c:1336
#, c-format
msgid "Saved working directory and index state %s"
msgstr "Directory di lavoro e stato indice salvati: %s"
-#: builtin/stash.c:1417 git-legacy-stash.sh:384
+#: builtin/stash.c:1426 git-legacy-stash.sh:384
msgid "Cannot remove worktree changes"
msgstr "Impossibile rimuovere le modifiche all'albero di lavoro"
-#: builtin/stash.c:1452 builtin/stash.c:1488
+#: builtin/stash.c:1461 builtin/stash.c:1497
msgid "keep index"
msgstr "mantieni l'indice"
-#: builtin/stash.c:1454 builtin/stash.c:1490
+#: builtin/stash.c:1463 builtin/stash.c:1499
msgid "stash in patch mode"
msgstr "esegui lo stash in modalità patch"
-#: builtin/stash.c:1455 builtin/stash.c:1491
+#: builtin/stash.c:1464 builtin/stash.c:1500
msgid "quiet mode"
msgstr "modalità silenziosa"
-#: builtin/stash.c:1457 builtin/stash.c:1493
+#: builtin/stash.c:1466 builtin/stash.c:1502
msgid "include untracked files in stash"
msgstr "includi i file non tracciati nello stash"
-#: builtin/stash.c:1459 builtin/stash.c:1495
+#: builtin/stash.c:1468 builtin/stash.c:1504
msgid "include ignore files"
msgstr "includi i file ignorati"
-#: builtin/stash.c:1555
+#: builtin/stash.c:1564
#, c-format
msgid "could not exec %s"
msgstr "impossibile eseguire %s"
@@ -20250,9 +20342,9 @@ msgid "don't print cloning progress"
msgstr "non stampare l'indicazione di avanzamento della clonazione"
#: builtin/submodule--helper.c:1877
-msgid "git submodule--helper update_clone [--prefix=<path>] [<path>...]"
+msgid "git submodule--helper update-clone [--prefix=<path>] [<path>...]"
msgstr ""
-"git submodule--helper update_clone [--prefix=<percorso>] [<percorso>...]"
+"git submodule--helper update-clone [--prefix=<percorso>] [<percorso>...]"
#: builtin/submodule--helper.c:1890
msgid "bad value for update parameter"
@@ -20305,7 +20397,7 @@ msgstr "git submodule--helper config --check-writeable"
msgid "please make sure that the .gitmodules file is in the working tree"
msgstr "assicurati che il file .gitmodules sia nell'albero di lavoro"
-#: builtin/submodule--helper.c:2235 git.c:434 git.c:684
+#: builtin/submodule--helper.c:2235 git.c:433 git.c:683
#, c-format
msgid "%s doesn't support --super-prefix"
msgstr "%s non supporta --super-prefix"
@@ -20640,146 +20732,146 @@ msgstr " OK"
msgid "git update-index [<options>] [--] [<file>...]"
msgstr "git update-index [<opzioni>] [--] [<file>...]"
-#: builtin/update-index.c:971
+#: builtin/update-index.c:972
msgid "continue refresh even when index needs update"
msgstr ""
"continua l'aggiornamento anche nel caso in cui l'indice richieda di essere "
"aggiornato"
-#: builtin/update-index.c:974
+#: builtin/update-index.c:975
msgid "refresh: ignore submodules"
msgstr "aggiornamento: ignora i sottomoduli"
-#: builtin/update-index.c:977
+#: builtin/update-index.c:978
msgid "do not ignore new files"
msgstr "non ignorare i nuovi file"
-#: builtin/update-index.c:979
+#: builtin/update-index.c:980
msgid "let files replace directories and vice-versa"
msgstr "consenti che dei file sostituiscano delle directory e viceversa"
-#: builtin/update-index.c:981
+#: builtin/update-index.c:982
msgid "notice files missing from worktree"
msgstr "nota se dei file mancano dall'albero di lavoro"
-#: builtin/update-index.c:983
+#: builtin/update-index.c:984
msgid "refresh even if index contains unmerged entries"
msgstr ""
"esegui l'aggiornamento anche se l'indice contiene delle voci non sottoposte "
"a merge"
-#: builtin/update-index.c:986
+#: builtin/update-index.c:987
msgid "refresh stat information"
msgstr "aggiorna le informazioni stat"
-#: builtin/update-index.c:990
+#: builtin/update-index.c:991
msgid "like --refresh, but ignore assume-unchanged setting"
msgstr "come --refresh, ma ignora l'impostazione assume-unchanged"
-#: builtin/update-index.c:994
+#: builtin/update-index.c:995
msgid "<mode>,<object>,<path>"
msgstr "<modo>,<oggetto>,<percorso>"
-#: builtin/update-index.c:995
+#: builtin/update-index.c:996
msgid "add the specified entry to the index"
msgstr "aggiunge la voce specificata all'indice"
-#: builtin/update-index.c:1005
+#: builtin/update-index.c:1006
msgid "mark files as \"not changing\""
msgstr "contrassegna i file come \"non saranno modificati\""
-#: builtin/update-index.c:1008
+#: builtin/update-index.c:1009
msgid "clear assumed-unchanged bit"
msgstr "reimposta a zero il bit \"non saranno modificati\""
-#: builtin/update-index.c:1011
+#: builtin/update-index.c:1012
msgid "mark files as \"index-only\""
msgstr "contrassegna i file come \"solamente da indicizzare\""
-#: builtin/update-index.c:1014
+#: builtin/update-index.c:1015
msgid "clear skip-worktree bit"
msgstr "reimposta a zero il bit \"solamente da indicizzare\""
-#: builtin/update-index.c:1017
+#: builtin/update-index.c:1018
msgid "add to index only; do not add content to object database"
msgstr ""
"aggiungi solo all'indice; non aggiungere il contenuto al database oggetti"
-#: builtin/update-index.c:1019
+#: builtin/update-index.c:1020
msgid "remove named paths even if present in worktree"
msgstr "rimuovi i percorsi specificati anche se presenti nell'albero di lavoro"
-#: builtin/update-index.c:1021
+#: builtin/update-index.c:1022
msgid "with --stdin: input lines are terminated by null bytes"
msgstr "con --stdin: le righe di input sono terminate da byte NULL"
-#: builtin/update-index.c:1023
+#: builtin/update-index.c:1024
msgid "read list of paths to be updated from standard input"
msgstr "leggi l'elenco dei percorsi da aggiornare dallo standard input"
-#: builtin/update-index.c:1027
+#: builtin/update-index.c:1028
msgid "add entries from standard input to the index"
msgstr "aggiungi le voci specificate sullo standard input all'indice"
-#: builtin/update-index.c:1031
+#: builtin/update-index.c:1032
msgid "repopulate stages #2 and #3 for the listed paths"
msgstr "ripopola le fasi 2 e 3 per i percorsi elencati"
-#: builtin/update-index.c:1035
+#: builtin/update-index.c:1036
msgid "only update entries that differ from HEAD"
msgstr "aggiorna solo le voci differenti rispetto all'HEAD"
-#: builtin/update-index.c:1039
+#: builtin/update-index.c:1040
msgid "ignore files missing from worktree"
msgstr "ignora i file mancanti nell'albero di lavoro"
-#: builtin/update-index.c:1042
+#: builtin/update-index.c:1043
msgid "report actions to standard output"
msgstr "stampa le azioni sullo standard output"
-#: builtin/update-index.c:1044
+#: builtin/update-index.c:1045
msgid "(for porcelains) forget saved unresolved conflicts"
msgstr ""
"(per i comandi ad alto livello) dimentica i conflitti non risolti salvati"
-#: builtin/update-index.c:1048
+#: builtin/update-index.c:1049
msgid "write index in this format"
msgstr "scrivi l'indice in questo formato"
-#: builtin/update-index.c:1050
+#: builtin/update-index.c:1051
msgid "enable or disable split index"
msgstr "abilita o disabilita l'indice suddiviso"
-#: builtin/update-index.c:1052
+#: builtin/update-index.c:1053
msgid "enable/disable untracked cache"
msgstr "abilita/disabilita la cache non tracciata"
-#: builtin/update-index.c:1054
+#: builtin/update-index.c:1055
msgid "test if the filesystem supports untracked cache"
msgstr "verifica se il filesystem supporta la cache non tracciata"
-#: builtin/update-index.c:1056
+#: builtin/update-index.c:1057
msgid "enable untracked cache without testing the filesystem"
msgstr "abilita la cache non tracciata senza testare il filesystem"
-#: builtin/update-index.c:1058
+#: builtin/update-index.c:1059
msgid "write out the index even if is not flagged as changed"
msgstr "scrivi l'indice anche se non è stato contrassegnato come modificato"
-#: builtin/update-index.c:1060
+#: builtin/update-index.c:1061
msgid "enable or disable file system monitor"
msgstr "abilita o disabilita il monitor del filesystem"
-#: builtin/update-index.c:1062
+#: builtin/update-index.c:1063
msgid "mark files as fsmonitor valid"
msgstr "contrassegna i file come validi rispetto al monitor del filesystem"
-#: builtin/update-index.c:1065
+#: builtin/update-index.c:1066
msgid "clear fsmonitor valid bit"
msgstr ""
"reimposta a zero il bit \"file validi rispetto al monitor del filesystem\""
-#: builtin/update-index.c:1168
+#: builtin/update-index.c:1169
msgid ""
"core.splitIndex is set to false; remove or change it, if you really want to "
"enable split index"
@@ -20787,7 +20879,7 @@ msgstr ""
"core.splitIndex è impostato a false; rimuovilo o modificalo se vuoi "
"veramente abilitare l'indice suddiviso"
-#: builtin/update-index.c:1177
+#: builtin/update-index.c:1178
msgid ""
"core.splitIndex is set to true; remove or change it, if you really want to "
"disable split index"
@@ -20795,7 +20887,7 @@ msgstr ""
"core.splitIndex è impostato a true; rimuovilo o modificalo se vuoi veramente "
"disabilitare l'indice suddiviso"
-#: builtin/update-index.c:1188
+#: builtin/update-index.c:1190
msgid ""
"core.untrackedCache is set to true; remove or change it, if you really want "
"to disable the untracked cache"
@@ -20803,11 +20895,11 @@ msgstr ""
"core.untrackedCache è impostato a true; rimuovilo o modificalo se vuoi "
"veramente disabilitare la cache non tracciata"
-#: builtin/update-index.c:1192
+#: builtin/update-index.c:1194
msgid "Untracked cache disabled"
msgstr "Cache non tracciata disabilitata"
-#: builtin/update-index.c:1200
+#: builtin/update-index.c:1202
msgid ""
"core.untrackedCache is set to false; remove or change it, if you really want "
"to enable the untracked cache"
@@ -20815,29 +20907,29 @@ msgstr ""
"core.untrackedCache è impostato a false; rimuovilo o modificalo se vuoi "
"veramente abilitare la cache non tracciata"
-#: builtin/update-index.c:1204
+#: builtin/update-index.c:1206
#, c-format
msgid "Untracked cache enabled for '%s'"
msgstr "Cache non tracciata abilitata per '%s'"
-#: builtin/update-index.c:1212
+#: builtin/update-index.c:1214
msgid "core.fsmonitor is unset; set it if you really want to enable fsmonitor"
msgstr ""
"core.fsmonitor non è impostato; impostalo se vuoi veramente abilitare il "
"monitor del filesystem"
-#: builtin/update-index.c:1216
+#: builtin/update-index.c:1218
msgid "fsmonitor enabled"
msgstr "monitor filesystem abilitato"
-#: builtin/update-index.c:1219
+#: builtin/update-index.c:1221
msgid ""
"core.fsmonitor is set; remove it if you really want to disable fsmonitor"
msgstr ""
"core.fsmonitor è impostato; rimuovi tale impostazione se vuoi veramente "
"disabilitare il monitor del filesystem"
-#: builtin/update-index.c:1223
+#: builtin/update-index.c:1225
msgid "fsmonitor disabled"
msgstr "monitor filesystem disabilitato"
@@ -20933,55 +21025,55 @@ msgstr "git verify-tag [-v | --verbose] [--format=<formato>] <tag>..."
msgid "print tag contents"
msgstr "stampa i contenuti del tag"
-#: builtin/worktree.c:18
+#: builtin/worktree.c:17
msgid "git worktree add [<options>] <path> [<commit-ish>]"
msgstr "git worktree add [<opzioni>] <percorso> [<espressione commit>]"
-#: builtin/worktree.c:19
+#: builtin/worktree.c:18
msgid "git worktree list [<options>]"
msgstr "git worktree list [<opzioni>]"
-#: builtin/worktree.c:20
+#: builtin/worktree.c:19
msgid "git worktree lock [<options>] <path>"
msgstr "git worktree lock [<opzioni>] <percorso>"
-#: builtin/worktree.c:21
+#: builtin/worktree.c:20
msgid "git worktree move <worktree> <new-path>"
msgstr "git worktree move <albero di lavoro> <nuovo percorso>"
-#: builtin/worktree.c:22
+#: builtin/worktree.c:21
msgid "git worktree prune [<options>]"
msgstr "git worktree prune [<opzioni>]"
-#: builtin/worktree.c:23
+#: builtin/worktree.c:22
msgid "git worktree remove [<options>] <worktree>"
msgstr "git worktree remove [<opzioni>] <albero di lavoro>"
-#: builtin/worktree.c:24
+#: builtin/worktree.c:23
msgid "git worktree unlock <path>"
msgstr "git worktree unlock <percorso>"
-#: builtin/worktree.c:61 builtin/worktree.c:899
+#: builtin/worktree.c:60 builtin/worktree.c:898
#, c-format
msgid "failed to delete '%s'"
msgstr "eliminazione di '%s' non riuscita"
-#: builtin/worktree.c:80
+#: builtin/worktree.c:79
#, c-format
msgid "Removing worktrees/%s: not a valid directory"
msgstr "Rimuovo worktrees/%s: non è una directory valida"
-#: builtin/worktree.c:86
+#: builtin/worktree.c:85
#, c-format
msgid "Removing worktrees/%s: gitdir file does not exist"
msgstr "Rimuovo worktrees/%s: il file gitdir non esiste"
-#: builtin/worktree.c:91 builtin/worktree.c:100
+#: builtin/worktree.c:90 builtin/worktree.c:99
#, c-format
msgid "Removing worktrees/%s: unable to read gitdir file (%s)"
msgstr "Rimuovo worktrees/%s: impossibile leggere il file gitdir (%s)"
-#: builtin/worktree.c:110
+#: builtin/worktree.c:109
#, c-format
msgid ""
"Removing worktrees/%s: short read (expected %<PRIuMAX> bytes, read "
@@ -20990,35 +21082,35 @@ msgstr ""
"Rimuovo worktrees/%s: letti meno dati del previsto (attesi %<PRIuMAX>byte, "
"%<PRIuMAX> letti)"
-#: builtin/worktree.c:118
+#: builtin/worktree.c:117
#, c-format
msgid "Removing worktrees/%s: invalid gitdir file"
msgstr "Rimuovo worktrees/%s: file gitdir non valido"
-#: builtin/worktree.c:127
+#: builtin/worktree.c:126
#, c-format
msgid "Removing worktrees/%s: gitdir file points to non-existent location"
msgstr "Rimuovo worktrees/%s: il file gitdir punta a un percorso non esistente"
-#: builtin/worktree.c:166
+#: builtin/worktree.c:165
msgid "report pruned working trees"
msgstr "segnala gli alberi di lavoro eliminati"
-#: builtin/worktree.c:168
+#: builtin/worktree.c:167
msgid "expire working trees older than <time>"
msgstr "fai scadere gli alberi di lavoro più vecchi di <tempo>"
-#: builtin/worktree.c:235
+#: builtin/worktree.c:234
#, c-format
msgid "'%s' already exists"
msgstr "'%s' esiste già"
-#: builtin/worktree.c:252
+#: builtin/worktree.c:251
#, c-format
msgid "unable to re-add worktree '%s'"
msgstr "impossibile aggiungere nuovamente l'albero di lavoro '%s'"
-#: builtin/worktree.c:257
+#: builtin/worktree.c:256
#, c-format
msgid ""
"'%s' is a missing but locked worktree;\n"
@@ -21028,7 +21120,7 @@ msgstr ""
"usa 'add -f -f' per eseguire l'override, o 'unlock' e 'prune' o 'remove' per "
"rimuoverlo"
-#: builtin/worktree.c:259
+#: builtin/worktree.c:258
#, c-format
msgid ""
"'%s' is a missing but already registered worktree;\n"
@@ -21037,129 +21129,129 @@ msgstr ""
"'%s' è un albero di lavoro mancante ma già registrato;\n"
"usa 'add -f' per eseguire l'override, o 'prune' o 'remove' per rimuoverlo"
-#: builtin/worktree.c:309
+#: builtin/worktree.c:308
#, c-format
msgid "could not create directory of '%s'"
msgstr "impossibile creare la directory di '%s'"
-#: builtin/worktree.c:440 builtin/worktree.c:446
+#: builtin/worktree.c:439 builtin/worktree.c:445
#, c-format
msgid "Preparing worktree (new branch '%s')"
msgstr "Preparazione dell'albero di lavoro in corso (nuovo branch '%s')"
-#: builtin/worktree.c:442
+#: builtin/worktree.c:441
#, c-format
msgid "Preparing worktree (resetting branch '%s'; was at %s)"
msgstr ""
"Preparazione dell'albero di lavoro in corso (reimposto il branch '%s'; era a "
"%s)"
-#: builtin/worktree.c:451
+#: builtin/worktree.c:450
#, c-format
msgid "Preparing worktree (checking out '%s')"
msgstr "Preparazione dell'albero di lavoro in corso (checkout di '%s')"
-#: builtin/worktree.c:457
+#: builtin/worktree.c:456
#, c-format
msgid "Preparing worktree (detached HEAD %s)"
msgstr "Preparazione dell'albero di lavoro in corso (HEAD scollegato %s)"
-#: builtin/worktree.c:498
+#: builtin/worktree.c:497
msgid "checkout <branch> even if already checked out in other worktree"
msgstr ""
"esegui il checkout di <branch> anche se tale operazione è stata eseguita in "
"un altro albero di lavoro"
-#: builtin/worktree.c:501
+#: builtin/worktree.c:500
msgid "create a new branch"
msgstr "crea un nuovo branch"
-#: builtin/worktree.c:503
+#: builtin/worktree.c:502
msgid "create or reset a branch"
msgstr "crea o reimposta un branch"
-#: builtin/worktree.c:505
+#: builtin/worktree.c:504
msgid "populate the new working tree"
msgstr "popola il nuovo albero di lavoro"
-#: builtin/worktree.c:506
+#: builtin/worktree.c:505
msgid "keep the new working tree locked"
msgstr "mantieni bloccato il nuovo albero di lavoro"
-#: builtin/worktree.c:509
+#: builtin/worktree.c:508
msgid "set up tracking mode (see git-branch(1))"
msgstr "imposta la modalità tracking (vedi git-branch(1))"
-#: builtin/worktree.c:512
+#: builtin/worktree.c:511
msgid "try to match the new branch name with a remote-tracking branch"
msgstr ""
"tenta di cercare una corrispondenza fra il nome del nuovo branch e un branch "
"remoto da tracciare"
-#: builtin/worktree.c:520
+#: builtin/worktree.c:519
msgid "-b, -B, and --detach are mutually exclusive"
msgstr "le opzioni -b, -B e --detach sono mutualmente esclusive"
-#: builtin/worktree.c:581
+#: builtin/worktree.c:580
msgid "--[no-]track can only be used if a new branch is created"
msgstr ""
"l'opzione --[no-]track può essere usata solo se viene creato un nuovo branch"
-#: builtin/worktree.c:681
+#: builtin/worktree.c:680
msgid "reason for locking"
msgstr "motivo di blocco"
-#: builtin/worktree.c:693 builtin/worktree.c:726 builtin/worktree.c:800
-#: builtin/worktree.c:927
+#: builtin/worktree.c:692 builtin/worktree.c:725 builtin/worktree.c:799
+#: builtin/worktree.c:926
#, c-format
msgid "'%s' is not a working tree"
msgstr "'%s' non è un albero di lavoro"
-#: builtin/worktree.c:695 builtin/worktree.c:728
+#: builtin/worktree.c:694 builtin/worktree.c:727
msgid "The main working tree cannot be locked or unlocked"
msgstr "Non è possibile bloccare o sbloccare l'albero di lavoro principale"
-#: builtin/worktree.c:700
+#: builtin/worktree.c:699
#, c-format
msgid "'%s' is already locked, reason: %s"
msgstr "'%s' è già bloccato per questo motivo: %s"
-#: builtin/worktree.c:702
+#: builtin/worktree.c:701
#, c-format
msgid "'%s' is already locked"
msgstr "'%s' è già bloccato"
-#: builtin/worktree.c:730
+#: builtin/worktree.c:729
#, c-format
msgid "'%s' is not locked"
msgstr "'%s' non è bloccato"
-#: builtin/worktree.c:771
+#: builtin/worktree.c:770
msgid "working trees containing submodules cannot be moved or removed"
msgstr ""
"gli alberi di lavoro contenenti sottomoduli non possono essere spostati o "
"rimossi"
-#: builtin/worktree.c:779
+#: builtin/worktree.c:778
msgid "force move even if worktree is dirty or locked"
msgstr "forza lo spostamento anche se l'albero di lavoro è sporco o bloccato"
-#: builtin/worktree.c:802 builtin/worktree.c:929
+#: builtin/worktree.c:801 builtin/worktree.c:928
#, c-format
msgid "'%s' is a main working tree"
msgstr "'%s' è un albero di lavoro principale"
-#: builtin/worktree.c:807
+#: builtin/worktree.c:806
#, c-format
msgid "could not figure out destination name from '%s'"
msgstr "impossibile determinare il nome destinazione da '%s'"
-#: builtin/worktree.c:813
+#: builtin/worktree.c:812
#, c-format
msgid "target '%s' already exists"
msgstr "la destinazione '%s' esiste già"
-#: builtin/worktree.c:821
+#: builtin/worktree.c:820
#, c-format
msgid ""
"cannot move a locked working tree, lock reason: %s\n"
@@ -21169,7 +21261,7 @@ msgstr ""
"usa 'move -f -f' per eseguirne l'override o sbloccalo prima di eseguire "
"l'operazione"
-#: builtin/worktree.c:823
+#: builtin/worktree.c:822
msgid ""
"cannot move a locked working tree;\n"
"use 'move -f -f' to override or unlock first"
@@ -21178,36 +21270,37 @@ msgstr ""
"usa 'move -f -f' per eseguirne l'override o sbloccalo prima di eseguire "
"l'operazione"
-#: builtin/worktree.c:826
+#: builtin/worktree.c:825
#, c-format
msgid "validation failed, cannot move working tree: %s"
msgstr "validazione non riuscita, impossibile spostare l'albero di lavoro: %s"
-#: builtin/worktree.c:831
+#: builtin/worktree.c:830
#, c-format
msgid "failed to move '%s' to '%s'"
msgstr "spostamento di '%s' in '%s' non riuscito"
-#: builtin/worktree.c:879
+#: builtin/worktree.c:878
#, c-format
msgid "failed to run 'git status' on '%s'"
msgstr "esecuzione di 'git status' su '%s' non riuscita"
-#: builtin/worktree.c:883
+#: builtin/worktree.c:882
#, c-format
-msgid "'%s' is dirty, use --force to delete it"
-msgstr "'%s' è sporco, usa --force per eliminarlo"
+msgid "'%s' contains modified or untracked files, use --force to delete it"
+msgstr ""
+"'%s' contiene file modificati o non tracciati, usa --force per eliminarlo"
-#: builtin/worktree.c:888
+#: builtin/worktree.c:887
#, c-format
msgid "failed to run 'git status' on '%s', code %d"
msgstr "esecuzione di 'git status' su '%s' non riuscita, codice %d"
-#: builtin/worktree.c:911
+#: builtin/worktree.c:910
msgid "force removal even if worktree is dirty or locked"
msgstr "forza la rimozione anche se l'albero di lavoro è sporco o bloccato"
-#: builtin/worktree.c:934
+#: builtin/worktree.c:933
#, c-format
msgid ""
"cannot remove a locked working tree, lock reason: %s\n"
@@ -21217,7 +21310,7 @@ msgstr ""
"usa 'remove -f -f' per eseguirne l'override o sbloccalo prima di eseguire "
"l'operazione"
-#: builtin/worktree.c:936
+#: builtin/worktree.c:935
msgid ""
"cannot remove a locked working tree;\n"
"use 'remove -f -f' to override or unlock first"
@@ -21226,7 +21319,7 @@ msgstr ""
"usa 'remove -f -f' per eseguirne l'override o sbloccalo prima di eseguire "
"l'operazione"
-#: builtin/worktree.c:939
+#: builtin/worktree.c:938
#, c-format
msgid "validation failed, cannot remove working tree: %s"
msgstr "validazione non riuscita, impossibile rimuovere l'albero di lavoro: %s"
@@ -21247,6 +21340,16 @@ msgstr "scrivi l'oggetto albero per una sottodirectory <prefisso>"
msgid "only useful for debugging"
msgstr "utile solo per il debug"
+#: fast-import.c:3118
+#, c-format
+msgid "Expected 'mark' command, got %s"
+msgstr "Atteso comando 'mark', ricevuto %s"
+
+#: fast-import.c:3123
+#, c-format
+msgid "Expected 'to' command, got %s"
+msgstr "Atteso comando 'to', ricevuto %s"
+
#: credential-cache--daemon.c:223
#, c-format
msgid ""
@@ -21362,39 +21465,39 @@ msgstr ""
"l'alias '%s' modifica le variabili d'ambiente.\n"
"Puoi usare '!git' nell'alias per farlo"
-#: git.c:377
+#: git.c:376
#, c-format
msgid "empty alias for %s"
msgstr "alias vuoto per %s"
-#: git.c:380
+#: git.c:379
#, c-format
msgid "recursive alias: %s"
msgstr "alias ricorsivo: %s"
-#: git.c:460
+#: git.c:459
msgid "write failure on standard output"
msgstr "errore di scrittura sullo standard output"
-#: git.c:462
+#: git.c:461
msgid "unknown write failure on standard output"
msgstr "errore di scrittura sconosciuto sullo standard output"
-#: git.c:464
+#: git.c:463
msgid "close failed on standard output"
msgstr "chiusura dello standard output non riuscita"
-#: git.c:793
+#: git.c:792
#, c-format
msgid "alias loop detected: expansion of '%s' does not terminate:%s"
msgstr "rilevato ciclo alias: l'espansione di '%s' non termina:%s"
-#: git.c:843
+#: git.c:842
#, c-format
msgid "cannot handle %s as a builtin"
msgstr "impossibile gestire %s come comando incorporato"
-#: git.c:856
+#: git.c:855
#, c-format
msgid ""
"usage: %s\n"
@@ -21403,12 +21506,12 @@ msgstr ""
"uso: %s\n"
"\n"
-#: git.c:876
+#: git.c:875
#, c-format
msgid "expansion of alias '%s' failed; '%s' is not a git command\n"
msgstr "espansione dell'alias '%s' non riuscita; '%s' non è un comando Git\n"
-#: git.c:888
+#: git.c:887
#, c-format
msgid "failed to run command '%s': %s\n"
msgstr "esecuzione del comando '%s' non riuscita: %s\n"
@@ -21426,32 +21529,32 @@ msgstr "Il controllo delegazione non è supportato con cURL < 7.22.0"
msgid "Public key pinning not supported with cURL < 7.44.0"
msgstr "Il pinning delle chiavi pubbliche non è supportato con cURL < 7.44.0"
-#: http.c:876
+#: http.c:878
msgid "CURLSSLOPT_NO_REVOKE not supported with cURL < 7.44.0"
msgstr "CURLSSLOPT_NO_REVOKE non è supportato con cURL < 7.44.0"
-#: http.c:949
+#: http.c:951
msgid "Protocol restrictions not supported with cURL < 7.19.4"
msgstr "Le restrizioni protocollo non sono supportate con cURL < 7.19.4"
-#: http.c:1085
+#: http.c:1088
#, c-format
msgid "Unsupported SSL backend '%s'. Supported SSL backends:"
msgstr "Backend SSL '%s' non supportato. Backend SSL supportati:"
-#: http.c:1092
+#: http.c:1095
#, c-format
msgid "Could not set SSL backend to '%s': cURL was built without SSL backends"
msgstr ""
"Impossibile impostare il backend SSL a '%s': cURL è stato compilato senza "
"backend SSL"
-#: http.c:1096
+#: http.c:1099
#, c-format
msgid "Could not set SSL backend to '%s': already set"
msgstr "Impossibile impostare il backend SSL a '%s': già impostato"
-#: http.c:1965
+#: http.c:1968
#, c-format
msgid ""
"unable to update url base from redirection:\n"
@@ -21462,136 +21565,136 @@ msgstr ""
" richiesta: %s\n"
" redirect: %s"
-#: remote-curl.c:157
+#: remote-curl.c:166
#, c-format
msgid "invalid quoting in push-option value: '%s'"
msgstr "virgolette non valide nel valore push-option: '%s'"
-#: remote-curl.c:254
+#: remote-curl.c:263
#, c-format
msgid "%sinfo/refs not valid: is this a git repository?"
msgstr "%sinfo/refs non valido: è un repository Git?"
-#: remote-curl.c:355
+#: remote-curl.c:364
msgid "invalid server response; expected service, got flush packet"
msgstr ""
"risposta del server non valida; atteso servizio, ricevuto pacchetto flush"
-#: remote-curl.c:386
+#: remote-curl.c:395
#, c-format
msgid "invalid server response; got '%s'"
msgstr "risposta del server non valida; ricevuto '%s'"
-#: remote-curl.c:446
+#: remote-curl.c:455
#, c-format
msgid "repository '%s' not found"
msgstr "repository '%s' non trovato"
-#: remote-curl.c:450
+#: remote-curl.c:459
#, c-format
msgid "Authentication failed for '%s'"
msgstr "Autenticazione non riuscita per '%s'"
-#: remote-curl.c:454
+#: remote-curl.c:463
#, c-format
msgid "unable to access '%s': %s"
msgstr "impossibile accedere a '%s': %s"
-#: remote-curl.c:460
+#: remote-curl.c:469
#, c-format
msgid "redirecting to %s"
msgstr "redirezione a %s in corso"
-#: remote-curl.c:584
+#: remote-curl.c:593
msgid "shouldn't have EOF when not gentle on EOF"
msgstr ""
"non dovrebbe esserci un pacchetto fine file se non si è accomodanti con "
"questi ultimi"
-#: remote-curl.c:664
+#: remote-curl.c:673
msgid "unable to rewind rpc post data - try increasing http.postBuffer"
msgstr ""
"impossibile ritornare a un punto precedente dei dati POST RPC - prova ad "
"aumentare il valore di http.postBuffer"
-#: remote-curl.c:724
+#: remote-curl.c:733
#, c-format
msgid "RPC failed; %s"
msgstr "RPC non riuscita; %s"
-#: remote-curl.c:764
+#: remote-curl.c:773
msgid "cannot handle pushes this big"
msgstr "impossibile gestire push così grandi"
-#: remote-curl.c:879
+#: remote-curl.c:888
#, c-format
msgid "cannot deflate request; zlib deflate error %d"
msgstr ""
"impossibile eseguire il deflate della richiesta; errore deflate zlib %d"
-#: remote-curl.c:883
+#: remote-curl.c:892
#, c-format
msgid "cannot deflate request; zlib end error %d"
msgstr "impossibile eseguire il deflate della richiesta; errore fine zlib %d"
-#: remote-curl.c:1014
+#: remote-curl.c:1023
msgid "dumb http transport does not support shallow capabilities"
msgstr "il trasporto http stupido non supporta le funzionalità shallow"
-#: remote-curl.c:1028
+#: remote-curl.c:1037
msgid "fetch failed."
msgstr "recupero non riuscito."
-#: remote-curl.c:1076
+#: remote-curl.c:1085
msgid "cannot fetch by sha1 over smart http"
msgstr ""
"impossibile recuperare i dati in base allo SHA1 con il trasporto HTTP "
"intelligente"
-#: remote-curl.c:1120 remote-curl.c:1126
+#: remote-curl.c:1129 remote-curl.c:1135
#, c-format
msgid "protocol error: expected sha/ref, got '%s'"
msgstr "errore protocollo: atteso SHA/riferimento, ricevuto '%s'"
-#: remote-curl.c:1138 remote-curl.c:1252
+#: remote-curl.c:1147 remote-curl.c:1261
#, c-format
msgid "http transport does not support %s"
msgstr "il trasporto HTTP non supporta %s"
-#: remote-curl.c:1174
+#: remote-curl.c:1183
msgid "git-http-push failed"
msgstr "git-http-push non riuscito"
-#: remote-curl.c:1360
+#: remote-curl.c:1367
msgid "remote-curl: usage: git remote-curl <remote> [<url>]"
msgstr "remote-curl: uso: git remote-curl <remoto> [<URL>]"
-#: remote-curl.c:1392
+#: remote-curl.c:1399
msgid "remote-curl: error reading command stream from git"
msgstr "remote-curl: errore durante la lettura del flusso dei comandi da Git"
-#: remote-curl.c:1399
+#: remote-curl.c:1406
msgid "remote-curl: fetch attempted without a local repo"
msgstr "remote-curl: tentato un fetch senza un repository locale"
-#: remote-curl.c:1439
+#: remote-curl.c:1446
#, c-format
msgid "remote-curl: unknown command '%s' from git"
msgstr "remote-curl: ricevuto comando sconosciuto '%s' da Git"
-#: list-objects-filter-options.h:61
+#: list-objects-filter-options.h:85
msgid "args"
msgstr "argomenti"
-#: list-objects-filter-options.h:62
+#: list-objects-filter-options.h:86
msgid "object filtering"
msgstr "filtraggio oggetti"
-#: parse-options.h:170
+#: parse-options.h:179
msgid "expiry-date"
msgstr "data-scadenza"
-#: parse-options.h:184
+#: parse-options.h:193
msgid "no-op (backward compatibility)"
msgstr "no-op (retrocompatibilità)"
@@ -24060,6 +24163,47 @@ msgstr "Salto %s con il suffisso di backup '%s'.\n"
msgid "Do you really want to send %s? [y|N]: "
msgstr "Inviare %s? [y|N]: "
+#, c-format
+#~ msgid "unknown core.untrackedCache value '%s'; using 'keep' default value"
+#~ msgstr ""
+#~ "valore core.untrackedCache '%s' non valido; utilizzerò il valore "
+#~ "predefinito 'keep'"
+
+#~ msgid "cannot change partial clone promisor remote"
+#~ msgstr "impossibile modificare il remoto promettente del clone parziale"
+
+#~ msgid "error building trees"
+#~ msgstr "errore durante la costruzione degli alberi"
+
+#, c-format
+#~ msgid "invalid date format '%s' in '%s'"
+#~ msgstr "formato data '%s' non valido in '%s'"
+
+#~ msgid "writing root commit"
+#~ msgstr "scrittura commit radice in corso"
+
+#, c-format
+#~ msgid "staged changes in the following files may be lost: %s"
+#~ msgstr ""
+#~ "le modifiche in stage nei seguenti file potrebbero andare perdute: %s"
+
+#~ msgid ""
+#~ "--filter can only be used with the remote configured in extensions."
+#~ "partialClone"
+#~ msgstr ""
+#~ "--filter può essere usato solo con il remoto configurato nelle estensioni."
+#~ "partialClone"
+
+#~ msgid "verify commit-msg hook"
+#~ msgstr "verifica hook commit-msg"
+
+#~ msgid "cannot combine '--rebase-merges' with '--strategy-option'"
+#~ msgstr "impossibile combinare '--rebase-merges' con '--strategy-option'"
+
+#, c-format
+#~ msgid "invalid sparse value '%s'"
+#~ msgstr "valore sparse non valido: '%s'"
+
#~ msgid ""
#~ "Fetch normally indicates which branches had a forced update, but that "
#~ "check has been disabled."
diff --git a/po/sv.po b/po/sv.po
index 4ad206d..25f245e 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -5,10 +5,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: git 2.23.0\n"
+"Project-Id-Version: git 2.24.0\n"
"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2019-07-30 09:59+0800\n"
-"PO-Revision-Date: 2019-07-31 12:40+0200\n"
+"POT-Creation-Date: 2019-10-28 13:19+0800\n"
+"PO-Revision-Date: 2019-10-30 23:18+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,7 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 2.0.2\n"
+"X-Generator: Gtranslator 2.91.7\n"
#: advice.c:109
#, c-format
@@ -70,7 +70,7 @@ msgstr ""
msgid "Exiting because of an unresolved conflict."
msgstr "Avslutar på grund av olöst konflikgt."
-#: advice.c:193 builtin/merge.c:1327
+#: advice.c:193 builtin/merge.c:1332
msgid "You have not concluded your merge (MERGE_HEAD exists)."
msgstr "Du har inte avslutat sammanslagningen (MERGE_HEAD finns)."
@@ -208,17 +208,7 @@ msgstr "ogiltigt läge på rad %d: %s"
msgid "inconsistent header lines %d and %d"
msgstr "huvudet är inkonsekvent mellan rad %d och %d"
-#: apply.c:1460
-#, c-format
-msgid "recount: unexpected line: %.*s"
-msgstr "recount: förväntade rad: %.*s"
-
-#: apply.c:1529
-#, c-format
-msgid "patch fragment without header at line %d: %.*s"
-msgstr "patch-fragment utan huvud på rad %d: %.*s"
-
-#: apply.c:1551
+#: apply.c:1372
#, c-format
msgid ""
"git diff header lacks filename information when removing %d leading pathname "
@@ -234,82 +224,92 @@ msgstr[1] ""
"sökvägskomponenter\n"
"tas bort (rad %d)"
-#: apply.c:1564
+#: apply.c:1385
#, c-format
msgid "git diff header lacks filename information (line %d)"
msgstr "git-diff-huvudet saknar filnamnsinformation (rad %d)"
-#: apply.c:1752
+#: apply.c:1481
+#, c-format
+msgid "recount: unexpected line: %.*s"
+msgstr "recount: förväntade rad: %.*s"
+
+#: apply.c:1550
+#, c-format
+msgid "patch fragment without header at line %d: %.*s"
+msgstr "patch-fragment utan huvud på rad %d: %.*s"
+
+#: apply.c:1753
msgid "new file depends on old contents"
msgstr "ny fil beror på gammalt innehåll"
-#: apply.c:1754
+#: apply.c:1755
msgid "deleted file still has contents"
msgstr "borttagen fil har fortfarande innehåll"
-#: apply.c:1788
+#: apply.c:1789
#, c-format
msgid "corrupt patch at line %d"
msgstr "trasig patch på rad %d"
-#: apply.c:1825
+#: apply.c:1826
#, c-format
msgid "new file %s depends on old contents"
msgstr "nya filen %s beror på gammalt innehåll"
-#: apply.c:1827
+#: apply.c:1828
#, c-format
msgid "deleted file %s still has contents"
msgstr "borttagna filen %s har fortfarande innehåll"
-#: apply.c:1830
+#: apply.c:1831
#, 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:1977
+#: apply.c:1978
#, c-format
msgid "corrupt binary patch at line %d: %.*s"
msgstr "trasig binärpatch på rad %d: %.*s"
-#: apply.c:2014
+#: apply.c:2015
#, c-format
msgid "unrecognized binary patch at line %d"
msgstr "binärpatchen på rad %d känns inte igen"
-#: apply.c:2176
+#: apply.c:2177
#, c-format
msgid "patch with only garbage at line %d"
msgstr "patch med bara skräp på rad %d"
-#: apply.c:2262
+#: apply.c:2263
#, c-format
msgid "unable to read symlink %s"
msgstr "kunde inte läsa symboliska länken %s"
-#: apply.c:2266
+#: apply.c:2267
#, c-format
msgid "unable to open or read %s"
msgstr "kunde inte öppna eller läsa %s"
-#: apply.c:2925
+#: apply.c:2926
#, c-format
msgid "invalid start of line: '%c'"
msgstr "felaktig inledning på rad: \"%c\""
-#: apply.c:3046
+#: apply.c:3047
#, 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:3058
+#: apply.c:3059
#, 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:3064
+#: apply.c:3065
#, c-format
msgid ""
"while searching for:\n"
@@ -318,25 +318,25 @@ msgstr ""
"vid sökning efter:\n"
"%.*s"
-#: apply.c:3086
+#: apply.c:3087
#, c-format
msgid "missing binary patch data for '%s'"
msgstr "saknar binära patchdata för \"%s\""
-#: apply.c:3094
+#: apply.c:3095
#, 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:3141
+#: apply.c:3142
#, 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:3151
+#: apply.c:3152
#, c-format
msgid ""
"the patch applies to '%s' (%s), which does not match the current contents."
@@ -344,426 +344,426 @@ msgstr ""
"patchen appliceras på \"%s\" (%s), som inte motsvarar det nuvarande "
"innehållet."
-#: apply.c:3159
+#: apply.c:3160
#, 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:3177
+#: apply.c:3178
#, 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:3190
+#: apply.c:3191
#, c-format
msgid "binary patch does not apply to '%s'"
msgstr "binärpatchen kan inte tillämpas på \"%s\""
-#: apply.c:3196
+#: apply.c:3197
#, 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:3217
+#: apply.c:3218
#, c-format
msgid "patch failed: %s:%ld"
msgstr "patch misslyckades: %s:%ld"
-#: apply.c:3340
+#: apply.c:3341
#, c-format
msgid "cannot checkout %s"
msgstr "kan inte checka ut %s"
-#: apply.c:3392 apply.c:3403 apply.c:3449 midx.c:62 setup.c:279
+#: apply.c:3393 apply.c:3404 apply.c:3450 midx.c:61 setup.c:280
#, c-format
msgid "failed to read %s"
msgstr "misslyckades läsa %s"
-#: apply.c:3400
+#: apply.c:3401
#, 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:3429 apply.c:3672
+#: apply.c:3430 apply.c:3673
#, c-format
msgid "path %s has been renamed/deleted"
msgstr "sökvägen %s har ändrat namn/tagits bort"
-#: apply.c:3515 apply.c:3687
+#: apply.c:3516 apply.c:3688
#, c-format
msgid "%s: does not exist in index"
msgstr "%s: finns inte i indexet"
-#: apply.c:3524 apply.c:3695
+#: apply.c:3525 apply.c:3696
#, c-format
msgid "%s: does not match index"
msgstr "%s: motsvarar inte indexet"
-#: apply.c:3559
+#: apply.c:3560
msgid "repository lacks the necessary blob to fall back on 3-way merge."
msgstr ""
"arkivet saknar objekt som behövs för att falla tillbaka på 3-"
"vägssammanslagning."
-#: apply.c:3562
+#: apply.c:3563
#, c-format
msgid "Falling back to three-way merge...\n"
msgstr "Faller tillbaka på trevägssammanslagning...\n"
-#: apply.c:3578 apply.c:3582
+#: apply.c:3579 apply.c:3583
#, c-format
msgid "cannot read the current contents of '%s'"
msgstr "kunde inte läsa aktuellt innehåll i \"%s\""
-#: apply.c:3594
+#: apply.c:3595
#, c-format
msgid "Failed to fall back on three-way merge...\n"
msgstr "Misslyckades falla tillbaka på trevägssammanslagning...\n"
-#: apply.c:3608
+#: apply.c:3609
#, c-format
msgid "Applied patch to '%s' with conflicts.\n"
msgstr "Applicerade patchen på \"%s\" med konflikter.\n"
-#: apply.c:3613
+#: apply.c:3614
#, c-format
msgid "Applied patch to '%s' cleanly.\n"
msgstr "Tillämpade patchen på \"%s\" rent.\n"
-#: apply.c:3639
+#: apply.c:3640
msgid "removal patch leaves file contents"
msgstr "patch för borttagning lämnar kvar filinnehåll"
-#: apply.c:3712
+#: apply.c:3713
#, c-format
msgid "%s: wrong type"
msgstr "%s: fel typ"
-#: apply.c:3714
+#: apply.c:3715
#, c-format
msgid "%s has type %o, expected %o"
msgstr "%s har typen %o, förväntade %o"
-#: apply.c:3865 apply.c:3867 read-cache.c:830 read-cache.c:856
+#: apply.c:3866 apply.c:3868 read-cache.c:830 read-cache.c:856
#: read-cache.c:1309
#, c-format
msgid "invalid path '%s'"
msgstr "ogiltig sökväg \"%s\""
-#: apply.c:3923
+#: apply.c:3924
#, c-format
msgid "%s: already exists in index"
msgstr "%s: finns redan i indexet"
-#: apply.c:3926
+#: apply.c:3927
#, c-format
msgid "%s: already exists in working directory"
msgstr "%s: finns redan i arbetskatalogen"
-#: apply.c:3946
+#: apply.c:3947
#, 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:3951
+#: apply.c:3952
#, 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:3971
+#: apply.c:3972
#, 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:3975
+#: apply.c:3976
#, c-format
msgid "%s: patch does not apply"
msgstr "%s: patchen kan inte tillämpas"
-#: apply.c:3990
+#: apply.c:3991
#, c-format
msgid "Checking patch %s..."
msgstr "Kontrollerar patchen %s..."
-#: apply.c:4082
+#: apply.c:4083
#, 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:4089
+#: apply.c:4090
#, 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:4092
+#: apply.c:4093
#, c-format
msgid "sha1 information is lacking or useless (%s)."
msgstr "sha1-informationen saknas eller är oanvändbar (%s)."
-#: apply.c:4097 builtin/checkout.c:278 builtin/reset.c:143
+#: apply.c:4098 builtin/checkout.c:279 builtin/reset.c:143
#, c-format
msgid "make_cache_entry failed for path '%s'"
msgstr "make_cache_entry misslyckades för sökvägen \"%s\""
-#: apply.c:4101
+#: apply.c:4102
#, c-format
msgid "could not add %s to temporary index"
msgstr "kunde inte lägga till %s till temporärt index"
-#: apply.c:4111
+#: apply.c:4112
#, c-format
msgid "could not write temporary index to %s"
msgstr "kunde inte skriva temporärt index till %s"
-#: apply.c:4249
+#: apply.c:4250
#, c-format
msgid "unable to remove %s from index"
msgstr "kan inte ta bort %s från indexet"
-#: apply.c:4283
+#: apply.c:4284
#, c-format
msgid "corrupt patch for submodule %s"
msgstr "trasig patch för undermodulen %s"
-#: apply.c:4289
+#: apply.c:4290
#, c-format
msgid "unable to stat newly created file '%s'"
msgstr "kan inte ta status på nyligen skapade filen \"%s\""
-#: apply.c:4297
+#: apply.c:4298
#, 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:4303 apply.c:4448
+#: apply.c:4304 apply.c:4449
#, c-format
msgid "unable to add cache entry for %s"
msgstr "kan inte lägga till cachepost för %s"
-#: apply.c:4346
+#: apply.c:4347
#, c-format
msgid "failed to write to '%s'"
msgstr "misslyckades skriva till \"%s\""
-#: apply.c:4350
+#: apply.c:4351
#, c-format
msgid "closing file '%s'"
msgstr "stänger filen \"%s\""
-#: apply.c:4420
+#: apply.c:4421
#, c-format
msgid "unable to write file '%s' mode %o"
msgstr "kan inte skriva filen \"%s\" läge %o"
-#: apply.c:4518
+#: apply.c:4519
#, c-format
msgid "Applied patch %s cleanly."
msgstr "Tillämpade patchen %s rent."
-#: apply.c:4526
+#: apply.c:4527
msgid "internal error"
msgstr "internt fel"
-#: apply.c:4529
+#: apply.c:4530
#, 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:4540
+#: apply.c:4541
#, c-format
msgid "truncating .rej filename to %.*s.rej"
msgstr "trunkerar .rej-filnamnet till %.*s.rej"
-#: apply.c:4548 builtin/fetch.c:869 builtin/fetch.c:1161
+#: apply.c:4549 builtin/fetch.c:898 builtin/fetch.c:1194
#, c-format
msgid "cannot open %s"
msgstr "kan inte öppna %s"
-#: apply.c:4562
+#: apply.c:4563
#, c-format
msgid "Hunk #%d applied cleanly."
msgstr "Stycke %d tillämpades rent."
-#: apply.c:4566
+#: apply.c:4567
#, c-format
msgid "Rejected hunk #%d."
msgstr "Refuserar stycke %d."
-#: apply.c:4676
+#: apply.c:4686
#, c-format
msgid "Skipped patch '%s'."
msgstr "Ignorerar patch \"%s\"."
-#: apply.c:4684
+#: apply.c:4694
msgid "unrecognized input"
msgstr "indata känns inte igen"
-#: apply.c:4704
+#: apply.c:4714
msgid "unable to read index file"
msgstr "kan inte läsa indexfilen"
-#: apply.c:4859
+#: apply.c:4871
#, c-format
msgid "can't open patch '%s': %s"
msgstr "kan inte öppna patchen \"%s\": %s"
-#: apply.c:4886
+#: apply.c:4898
#, 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:4892 apply.c:4907
+#: apply.c:4904 apply.c:4919
#, 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:4900
+#: apply.c:4912
#, 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:4916 builtin/add.c:540 builtin/mv.c:301 builtin/rm.c:390
+#: apply.c:4928 builtin/add.c:540 builtin/mv.c:301 builtin/rm.c:390
msgid "Unable to write new index file"
msgstr "Kunde inte skriva ny indexfil"
-#: apply.c:4943 apply.c:4946 builtin/am.c:2208 builtin/am.c:2211
-#: builtin/clone.c:123 builtin/fetch.c:128 builtin/merge.c:273
-#: builtin/pull.c:208 builtin/submodule--helper.c:407
+#: apply.c:4955 apply.c:4958 builtin/am.c:2197 builtin/am.c:2200
+#: builtin/clone.c:122 builtin/fetch.c:143 builtin/merge.c:273
+#: builtin/pull.c:209 builtin/submodule--helper.c:407
#: builtin/submodule--helper.c:1367 builtin/submodule--helper.c:1370
#: builtin/submodule--helper.c:1850 builtin/submodule--helper.c:1853
#: builtin/submodule--helper.c:2092 git-add--interactive.perl:211
msgid "path"
msgstr "sökväg"
-#: apply.c:4944
+#: apply.c:4956
msgid "don't apply changes matching the given path"
msgstr "tillämpa inte ändringar som motsvarar given sökväg"
-#: apply.c:4947
+#: apply.c:4959
msgid "apply changes matching the given path"
msgstr "tillämpa ändringar som motsvarar given sökväg"
-#: apply.c:4949 builtin/am.c:2217
+#: apply.c:4961 builtin/am.c:2206
msgid "num"
msgstr "antal"
-#: apply.c:4950
+#: apply.c:4962
msgid "remove <num> leading slashes from traditional diff paths"
msgstr "ta bort <antal> inledande snedstreck från traditionella diff-sökvägar"
-#: apply.c:4953
+#: apply.c:4965
msgid "ignore additions made by the patch"
msgstr "ignorera tillägg gjorda av patchen"
-#: apply.c:4955
+#: apply.c:4967
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:4959
+#: apply.c:4971
msgid "show number of added and deleted lines in decimal notation"
msgstr "visa antal tillagda och borttagna rader decimalt"
-#: apply.c:4961
+#: apply.c:4973
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:4963
+#: apply.c:4975
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:4965
+#: apply.c:4977
msgid "make sure the patch is applicable to the current index"
msgstr "se till att patchen kan tillämpas på aktuellt index"
-#: apply.c:4967
+#: apply.c:4979
msgid "mark new files with `git add --intent-to-add`"
msgstr "markera nya filer med \"git add --intent-to-add\""
-#: apply.c:4969
+#: apply.c:4981
msgid "apply a patch without touching the working tree"
msgstr "tillämpa en patch utan att röra arbetskatalogen"
-#: apply.c:4971
+#: apply.c:4983
msgid "accept a patch that touches outside the working area"
msgstr "godta en patch som rör filer utanför arbetskatalogen"
-#: apply.c:4974
+#: apply.c:4986
msgid "also apply the patch (use with --stat/--summary/--check)"
msgstr "tillämpa också patchen (använd med --stat/--summary/--check)"
-#: apply.c:4976
+#: apply.c:4988
msgid "attempt three-way merge if a patch does not apply"
msgstr "försök en trevägssammanslagning om patchen inte kan tillämpas"
-#: apply.c:4978
+#: apply.c:4990
msgid "build a temporary index based on embedded index information"
msgstr "bygg ett temporärt index baserat på inbyggd indexinformation"
-#: apply.c:4981 builtin/checkout-index.c:173 builtin/ls-files.c:524
+#: apply.c:4993 builtin/checkout-index.c:173 builtin/ls-files.c:524
msgid "paths are separated with NUL character"
msgstr "sökvägar avdelas med NUL-tecken"
-#: apply.c:4983
+#: apply.c:4995
msgid "ensure at least <n> lines of context match"
msgstr "se till att åtminstone <n> rader sammanhang är lika"
-#: apply.c:4984 builtin/am.c:2196 builtin/interpret-trailers.c:98
+#: apply.c:4996 builtin/am.c:2185 builtin/interpret-trailers.c:98
#: builtin/interpret-trailers.c:100 builtin/interpret-trailers.c:102
-#: builtin/pack-objects.c:3319 builtin/rebase.c:1421
+#: builtin/pack-objects.c:3310 builtin/rebase.c:1445
msgid "action"
msgstr "åtgärd"
-#: apply.c:4985
+#: apply.c:4997
msgid "detect new or modified lines that have whitespace errors"
msgstr "detektera nya eller ändrade rader som har fel i blanktecken"
-#: apply.c:4988 apply.c:4991
+#: apply.c:5000 apply.c:5003
msgid "ignore changes in whitespace when finding context"
msgstr "ignorera ändringar i blanktecken för sammanhang"
-#: apply.c:4994
+#: apply.c:5006
msgid "apply the patch in reverse"
msgstr "tillämpa patchen baklänges"
-#: apply.c:4996
+#: apply.c:5008
msgid "don't expect at least one line of context"
msgstr "förvänta inte minst en rad sammanhang"
-#: apply.c:4998
+#: apply.c:5010
msgid "leave the rejected hunks in corresponding *.rej files"
msgstr "lämna refuserade stycken i motsvarande *.rej-filer"
-#: apply.c:5000
+#: apply.c:5012
msgid "allow overlapping hunks"
msgstr "tillåt överlappande stycken"
-#: apply.c:5001 builtin/add.c:291 builtin/check-ignore.c:22
+#: apply.c:5013 builtin/add.c:291 builtin/check-ignore.c:22
#: builtin/commit.c:1337 builtin/count-objects.c:98 builtin/fsck.c:786
#: builtin/log.c:2085 builtin/mv.c:123 builtin/read-tree.c:128
msgid "be verbose"
msgstr "var pratsam"
-#: apply.c:5003
+#: apply.c:5015
msgid "tolerate incorrectly detected missing new-line at the end of file"
msgstr "tolerera felaktigt detekterade saknade nyradstecken vid filslut"
-#: apply.c:5006
+#: apply.c:5018
msgid "do not trust the line counts in the hunk headers"
msgstr "lite inte på antalet linjer i styckehuvuden"
-#: apply.c:5008 builtin/am.c:2205
+#: apply.c:5020 builtin/am.c:2194
msgid "root"
msgstr "rot"
-#: apply.c:5009
+#: apply.c:5021
msgid "prepend <root> to all filenames"
msgstr "lägg till <rot> i alla filnamn"
@@ -818,7 +818,7 @@ msgstr "fmt"
msgid "archive format"
msgstr "arkivformat"
-#: archive.c:458 builtin/log.c:1597
+#: archive.c:458 builtin/log.c:1581
msgid "prefix"
msgstr "prefix"
@@ -826,11 +826,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:460 builtin/blame.c:862 builtin/blame.c:874 builtin/blame.c:875
-#: builtin/commit-tree.c:117 builtin/config.c:129 builtin/fast-export.c:1134
-#: builtin/fast-export.c:1136 builtin/grep.c:897 builtin/hash-object.c:105
-#: builtin/ls-files.c:560 builtin/ls-files.c:563 builtin/notes.c:412
-#: builtin/notes.c:578 builtin/read-tree.c:123 parse-options.h:177
+#: archive.c:460 builtin/blame.c:861 builtin/blame.c:873 builtin/blame.c:874
+#: builtin/commit-tree.c:117 builtin/config.c:129 builtin/fast-export.c:1162
+#: builtin/fast-export.c:1164 builtin/fast-export.c:1168 builtin/grep.c:899
+#: builtin/hash-object.c:105 builtin/ls-files.c:560 builtin/ls-files.c:563
+#: builtin/notes.c:412 builtin/notes.c:578 builtin/read-tree.c:123
+#: parse-options.h:186
msgid "file"
msgstr "fil"
@@ -862,7 +863,7 @@ msgstr "komprimera bättre"
msgid "list supported archive formats"
msgstr "visa understödda arkivformat"
-#: archive.c:479 builtin/archive.c:91 builtin/clone.c:113 builtin/clone.c:116
+#: archive.c:479 builtin/archive.c:91 builtin/clone.c:112 builtin/clone.c:115
#: builtin/submodule--helper.c:1379 builtin/submodule--helper.c:1859
msgid "repo"
msgstr "arkiv"
@@ -871,7 +872,7 @@ msgstr "arkiv"
msgid "retrieve the archive from remote repository <repo>"
msgstr "hämta arkivet från fjärrarkivet <arkiv>"
-#: archive.c:481 builtin/archive.c:93 builtin/difftool.c:707
+#: archive.c:481 builtin/archive.c:93 builtin/difftool.c:715
#: builtin/notes.c:498
msgid "command"
msgstr "kommando"
@@ -907,26 +908,26 @@ msgstr "Argumentet stöd inte för formatet \"%s\": -%d"
msgid "cannot stream blob %s"
msgstr "kan inte strömma blob:en %s"
-#: archive-tar.c:260 archive-zip.c:363
+#: archive-tar.c:266 archive-zip.c:363
#, c-format
msgid "unsupported file mode: 0%o (SHA1: %s)"
msgstr "filens läge stöds ej: 0%o (SHA1: %s)"
-#: archive-tar.c:287 archive-zip.c:353
+#: archive-tar.c:293 archive-zip.c:353
#, c-format
msgid "cannot read %s"
msgstr "kan inte läsa %s"
-#: archive-tar.c:459
+#: archive-tar.c:465
#, c-format
msgid "unable to start '%s' filter"
msgstr "kunde inte starta filtret \"%s\""
-#: archive-tar.c:462
+#: archive-tar.c:468
msgid "unable to redirect descriptor"
msgstr "kan inte omdirigera handtag"
-#: archive-tar.c:469
+#: archive-tar.c:475
#, c-format
msgid "'%s' filter reported error"
msgstr "filtret \"%s\" rapporterade fel"
@@ -941,7 +942,7 @@ msgstr "sökvägen är inte giltig UTF-8: %s"
msgid "path too long (%d chars, SHA1: %s): %s"
msgstr "sökvägen för lång (%d tecken, SHA1: %s): %s"
-#: archive-zip.c:474 builtin/pack-objects.c:226 builtin/pack-objects.c:229
+#: archive-zip.c:474 builtin/pack-objects.c:230 builtin/pack-objects.c:233
#, c-format
msgid "deflate error (%d)"
msgstr "fel i deflate (%d)"
@@ -951,17 +952,17 @@ msgstr "fel i deflate (%d)"
msgid "timestamp too large for this system: %<PRIuMAX>"
msgstr "tidsstämpeln för stor för detta system: %<PRIuMAX>"
-#: attr.c:211
+#: attr.c:213
#, c-format
msgid "%.*s is not a valid attribute name"
msgstr "%-*s är inte ett giltigt namn på attribut"
-#: attr.c:368
+#: attr.c:370
#, c-format
msgid "%s not allowed: %s:%d"
msgstr "%s inte tillåtet: %s:%d"
-#: attr.c:408
+#: attr.c:410
msgid ""
"Negative patterns are ignored in git attributes\n"
"Use '\\!' for literal leading exclamation."
@@ -1089,41 +1090,41 @@ 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:2697
+#: blame.c:2700
msgid "--contents and --reverse do not blend well."
msgstr "--contents och --reverse fungerar inte så bra tillsammans."
-#: blame.c:2711
+#: blame.c:2714
msgid "cannot use --contents with final commit object name"
msgstr "kan inte använda --contents med namn på slutgiltigt incheckningsobjekt"
-#: blame.c:2732
+#: blame.c:2735
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:2741 bundle.c:167 ref-filter.c:2196 remote.c:1938 sequencer.c:2033
-#: sequencer.c:4348 builtin/commit.c:1020 builtin/log.c:404 builtin/log.c:980
-#: builtin/log.c:1468 builtin/log.c:1844 builtin/log.c:2134 builtin/merge.c:411
-#: builtin/pack-objects.c:3142 builtin/pack-objects.c:3157
+#: blame.c:2744 bundle.c:167 ref-filter.c:2203 remote.c:1941 sequencer.c:1971
+#: sequencer.c:4305 builtin/commit.c:1020 builtin/log.c:387 builtin/log.c:964
+#: builtin/log.c:1452 builtin/log.c:1844 builtin/log.c:2134 builtin/merge.c:411
+#: builtin/pack-objects.c:3128 builtin/pack-objects.c:3143
#: builtin/shortlog.c:192
msgid "revision walk setup failed"
msgstr "misslyckades skapa revisionstraversering"
-#: blame.c:2759
+#: blame.c:2762
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:2770
+#: blame.c:2773
#, c-format
msgid "no such path %s in %s"
msgstr "sökvägen %s i %s finns inte"
-#: blame.c:2781
+#: blame.c:2784
#, c-format
msgid "cannot read blob %s for path %s"
msgstr "kan inte läsa objektet %s för sökvägen %s"
@@ -1281,7 +1282,7 @@ msgstr "'%s' ser inte ut som en v2-bundle-fil"
msgid "unrecognized header: %s%s (%d)"
msgstr "okänt huvud: %s%s (%d)"
-#: bundle.c:90 rerere.c:480 rerere.c:690 sequencer.c:2283 sequencer.c:3024
+#: bundle.c:90 rerere.c:480 rerere.c:690 sequencer.c:2221 sequencer.c:2962
#: builtin/commit.c:791
#, c-format
msgid "could not open '%s'"
@@ -1334,7 +1335,7 @@ msgstr "rev-list dog"
msgid "ref '%s' is excluded by the rev-list options"
msgstr "referensen \"%s\" exkluderas av argumenten till rev-list"
-#: bundle.c:460 builtin/log.c:212 builtin/log.c:1749 builtin/shortlog.c:306
+#: bundle.c:460 builtin/log.c:202 builtin/log.c:1733 builtin/shortlog.c:306
#, c-format
msgid "unrecognized argument: %s"
msgstr "okänt argument: %s"
@@ -1357,8 +1358,8 @@ msgstr "index-pack dog"
msgid "invalid color value: %.*s"
msgstr "felaktigt färgvärde: %.*s"
-#: commit.c:50 sequencer.c:2727 builtin/am.c:355 builtin/am.c:399
-#: builtin/am.c:1378 builtin/am.c:2020 builtin/replace.c:455
+#: commit.c:50 sequencer.c:2665 builtin/am.c:354 builtin/am.c:398
+#: builtin/am.c:1366 builtin/am.c:2009 builtin/replace.c:456
#, c-format
msgid "could not parse %s"
msgstr "kunde inte tolka %s"
@@ -1388,29 +1389,29 @@ msgstr ""
"Slå av detta meddelande genom att skriva\n"
"\"git config advice.graftFileDeprecated false\""
-#: commit.c:1127
+#: commit.c:1128
#, 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:1130
+#: commit.c:1131
#, 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:1133
+#: commit.c:1134
#, c-format
msgid "Commit %s does not have a GPG signature."
msgstr "Incheckning %s har inte någon GPG-signatur."
-#: commit.c:1136
+#: commit.c:1137
#, 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:1390
+#: commit.c:1391
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"
@@ -1472,180 +1473,195 @@ msgstr "ogiltig incheckingsgrafkedja: rad \"%s\" är inte ett hash-värde"
msgid "unable to find all commit-graph files"
msgstr "kan inte hitta alla incheckingsgraffiler"
-#: commit-graph.c:553 commit-graph.c:613
+#: commit-graph.c:561 commit-graph.c:621
msgid "invalid commit position. commit-graph is likely corrupt"
msgstr "ogiltig incheckningsposition. incheckningsgrafen är troligtvis trasig"
-#: commit-graph.c:574
+#: commit-graph.c:582
#, c-format
msgid "could not find commit %s"
msgstr "kunde inte hitta incheckningen %s"
-#: commit-graph.c:1001 builtin/pack-objects.c:2651
+#: commit-graph.c:855 builtin/am.c:1287
+#, c-format
+msgid "unable to parse commit %s"
+msgstr "kunde inte tolka incheckningen %s"
+
+#: commit-graph.c:859
+#, c-format
+msgid "unable to get tree for %s"
+msgstr "kunde inte hämta trädet på %s"
+
+#: commit-graph.c:1017 builtin/pack-objects.c:2641
#, c-format
msgid "unable to get type of object %s"
msgstr "kunde inte hämta typ för objektet %s"
-#: commit-graph.c:1033
+#: commit-graph.c:1049
msgid "Loading known commits in commit graph"
msgstr "Läser in kända incheckningar i incheckningsgraf"
-#: commit-graph.c:1050
+#: commit-graph.c:1066
msgid "Expanding reachable commits in commit graph"
msgstr "Expanderar nåbara incheckningar i incheckningsgraf"
-#: commit-graph.c:1069
+#: commit-graph.c:1085
msgid "Clearing commit marks in commit graph"
msgstr "Rensar incheckningsmärken i incheckningsgraf"
-#: commit-graph.c:1088
+#: commit-graph.c:1104
msgid "Computing commit graph generation numbers"
msgstr "Beräknar generationsvärden för incheckningsgraf"
-#: commit-graph.c:1162
+#: commit-graph.c:1179
#, c-format
msgid "Finding commits for commit graph in %d pack"
msgid_plural "Finding commits for commit graph in %d packs"
msgstr[0] "Söker incheckningar för incheckingsgraf i %d paket"
msgstr[1] "Söker incheckningar för incheckingsgraf i %d paket"
-#: commit-graph.c:1175
+#: commit-graph.c:1192
#, c-format
msgid "error adding pack %s"
msgstr "fel vid tillägg av paketet %s"
-#: commit-graph.c:1179
+#: commit-graph.c:1196
#, c-format
msgid "error opening index for %s"
msgstr "fel vid öppning av indexet för %s"
-#: commit-graph.c:1203
+#: commit-graph.c:1220
#, c-format
msgid "Finding commits for commit graph from %d ref"
msgid_plural "Finding commits for commit graph from %d refs"
msgstr[0] "Söker incheckningar för incheckingsgraf från %d referens"
msgstr[1] "Söker incheckningar för incheckingsgraf från %d referenser"
-#: commit-graph.c:1237
+#: commit-graph.c:1240
+#, c-format
+msgid "invalid commit object id: %s"
+msgstr "ogiltigt inchecknings-objekt-id %s"
+
+#: commit-graph.c:1255
msgid "Finding commits for commit graph among packed objects"
msgstr "Söker incheckningar för incheckingsgraf i packade objekt"
-#: commit-graph.c:1252
+#: commit-graph.c:1270
msgid "Counting distinct commits in commit graph"
msgstr "Räknar olika incheckningar i incheckningsgraf"
-#: commit-graph.c:1283
+#: commit-graph.c:1300
msgid "Finding extra edges in commit graph"
msgstr "Söker ytterligare kanter i incheckingsgraf"
-#: commit-graph.c:1331
+#: commit-graph.c:1346
msgid "failed to write correct number of base graph ids"
msgstr "kunde inte skriva korrekt antal bas-graf-id:n"
-#: commit-graph.c:1364 midx.c:811
+#: commit-graph.c:1379 midx.c:810
#, c-format
msgid "unable to create leading directories of %s"
msgstr "kunde inte skapa inledande kataloger för %s"
-#: commit-graph.c:1376 builtin/index-pack.c:306 builtin/repack.c:251
+#: commit-graph.c:1391 builtin/index-pack.c:306 builtin/repack.c:241
#, c-format
msgid "unable to create '%s'"
msgstr "kunde inte skapa \"%s\""
-#: commit-graph.c:1436
+#: commit-graph.c:1451
#, 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:1477
+#: commit-graph.c:1492
msgid "unable to open commit-graph chain file"
msgstr "Kunde inte öppna incheckningsgrafkedjefilen"
-#: commit-graph.c:1489
+#: commit-graph.c:1504
msgid "failed to rename base commit-graph file"
msgstr "kunde inte byta namn på bas-incheckingsgraffilen"
-#: commit-graph.c:1509
+#: commit-graph.c:1524
msgid "failed to rename temporary commit-graph file"
msgstr "kunde inte byta namn på temporär incheckningsgraffil"
-#: commit-graph.c:1620
+#: commit-graph.c:1635
msgid "Scanning merged commits"
msgstr "Söker sammanslagna incheckningar"
-#: commit-graph.c:1631
+#: commit-graph.c:1646
#, c-format
msgid "unexpected duplicate commit id %s"
msgstr "oväntat duplicerat inchecknings-id %s"
-#: commit-graph.c:1656
+#: commit-graph.c:1670
msgid "Merging commit-graph"
msgstr "Slår ihop incheckningsgraf"
-#: commit-graph.c:1842
+#: commit-graph.c:1860
#, c-format
msgid "the commit graph format cannot write %d commits"
msgstr "formatet på incheckningsgrafen kan inte visa %d incheckningar"
-#: commit-graph.c:1853
+#: commit-graph.c:1871
msgid "too many commits to write graph"
msgstr "för många incheckningar för att skriva graf"
-#: commit-graph.c:1943
+#: commit-graph.c:1961
msgid "the commit-graph file has incorrect checksum and is likely corrupt"
msgstr ""
"filen med incheckningsgraf har felaktig checksumma och är troligtvis trasig"
-#: commit-graph.c:1953
+#: commit-graph.c:1971
#, c-format
msgid "commit-graph has incorrect OID order: %s then %s"
msgstr "incheckningsgrafen har felaktig OID-ordning: %s så %s"
-#: commit-graph.c:1963 commit-graph.c:1978
+#: commit-graph.c:1981 commit-graph.c:1996
#, 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:1970
+#: commit-graph.c:1988
#, c-format
msgid "failed to parse commit %s from commit-graph"
msgstr "kunde inte tolka incheckning %s från incheckningsgraf"
-#: commit-graph.c:1987
+#: commit-graph.c:2006
msgid "Verifying commits in commit graph"
msgstr "Bekräftar incheckningar i incheckningsgrafen"
-#: commit-graph.c:2000
+#: commit-graph.c:2020
#, 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:2007
+#: commit-graph.c:2027
#, 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:2017
+#: commit-graph.c:2037
#, 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:2026
+#: commit-graph.c:2046
#, 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:2039
+#: commit-graph.c:2059
#, 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:2044
+#: commit-graph.c:2064
#, c-format
msgid ""
"commit-graph has generation number zero for commit %s, but non-zero elsewhere"
@@ -1653,7 +1669,7 @@ msgstr ""
"incheckningsgrafen har generationsnummer noll för incheckningen %s, men icke-"
"noll på annan plats"
-#: commit-graph.c:2048
+#: commit-graph.c:2068
#, c-format
msgid ""
"commit-graph has non-zero generation number for commit %s, but zero elsewhere"
@@ -1661,12 +1677,12 @@ msgstr ""
"incheckningsgrafen har generationsnummer skilt från noll för incheckningen "
"%s, men noll på annan plats"
-#: commit-graph.c:2063
+#: commit-graph.c:2083
#, c-format
msgid "commit-graph generation for commit %s is %u != %u"
msgstr "incheckningsgrafens generation för incheckningen %s är %u != %u"
-#: commit-graph.c:2069
+#: commit-graph.c:2089
#, c-format
msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>"
msgstr ""
@@ -1705,289 +1721,283 @@ msgstr "relativa konfigureringsinkluderingar måste komma från filer"
msgid "relative config include conditionals must come from files"
msgstr "relativa konfigureringsinkluderingsvillkor måste komma från filer"
-#: config.c:375
+#: config.c:376
#, c-format
msgid "key does not contain a section: %s"
msgstr "nyckeln innehåller inte ett stycke: %s"
-#: config.c:381
+#: config.c:382
#, c-format
msgid "key does not contain variable name: %s"
msgstr "nyckeln innehåller inte variabelnamn: %s"
-#: config.c:405 sequencer.c:2463
+#: config.c:406 sequencer.c:2401
#, c-format
msgid "invalid key: %s"
msgstr "felaktig nyckel: %s"
-#: config.c:411
+#: config.c:412
#, c-format
msgid "invalid key (newline): %s"
msgstr "ogiltig nyckel (nyradstecken): %s"
-#: config.c:447 config.c:459
+#: config.c:448 config.c:460
#, c-format
msgid "bogus config parameter: %s"
msgstr "falsk konfigureringsparameter: %s"
-#: config.c:494
+#: config.c:495
#, c-format
msgid "bogus format in %s"
msgstr "felaktigt format i %s"
-#: config.c:820
+#: config.c:821
#, c-format
msgid "bad config line %d in blob %s"
msgstr "felaktig konfigurationsfil rad %d i blob:en %s"
-#: config.c:824
+#: config.c:825
#, c-format
msgid "bad config line %d in file %s"
msgstr "felaktig konfigurationsfil rad %d i filen %s"
-#: config.c:828
+#: config.c:829
#, c-format
msgid "bad config line %d in standard input"
msgstr "felaktig konfigurationsfil rad %d i standard in"
-#: config.c:832
+#: config.c:833
#, c-format
msgid "bad config line %d in submodule-blob %s"
msgstr "felaktig konfigurationsfil rad %d i undermoduls-blob:en %s"
-#: config.c:836
+#: config.c:837
#, c-format
msgid "bad config line %d in command line %s"
msgstr "felaktig konfigurationsfil rad %d i kommandoraden %s"
-#: config.c:840
+#: config.c:841
#, c-format
msgid "bad config line %d in %s"
msgstr "felaktig konfigurationsfil rad %d i %s"
-#: config.c:977
+#: config.c:978
msgid "out of range"
msgstr "utanför intervallet"
-#: config.c:977
+#: config.c:978
msgid "invalid unit"
msgstr "ogiltig enhet"
-#: config.c:978
+#: config.c:979
#, c-format
msgid "bad numeric config value '%s' for '%s': %s"
msgstr "felaktigt numeriskt konfigurationsvärde \"%s\" för \"%s\": %s"
-#: config.c:997
+#: config.c:998
#, 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:1000
+#: config.c:1001
#, 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:1003
+#: config.c:1004
#, 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:1006
+#: config.c:1007
#, 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:1009
+#: config.c:1010
#, 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:1012
+#: config.c:1013
#, 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:1107
+#: config.c:1108
#, c-format
msgid "failed to expand user dir in: '%s'"
msgstr "misslyckades expandera användarkatalog i: \"%s\""
-#: config.c:1116
+#: config.c:1117
#, c-format
msgid "'%s' for '%s' is not a valid timestamp"
msgstr "\"%s\" för \"%s\" är inte en giltig tidsstämpel"
-#: config.c:1207
+#: config.c:1208
#, c-format
msgid "abbrev length out of range: %d"
msgstr "förkortningslängd utanför intervallet: %d"
-#: config.c:1221 config.c:1232
+#: config.c:1222 config.c:1233
#, c-format
msgid "bad zlib compression level %d"
msgstr "felaktigt zlib-komprimeringsgrad %d"
-#: config.c:1324
+#: config.c:1325
msgid "core.commentChar should only be one character"
msgstr "core.commentChar kan bara vara ett tecken"
-#: config.c:1357
+#: config.c:1358
#, c-format
msgid "invalid mode for object creation: %s"
msgstr "felaktigt läge för skapande av objekt: %s"
-#: config.c:1429
+#: config.c:1425
#, c-format
msgid "malformed value for %s"
msgstr "felformat värde för %s"
-#: config.c:1455
+#: config.c:1451
#, c-format
msgid "malformed value for %s: %s"
msgstr "felformat värde för %s: %s"
-#: config.c:1456
+#: config.c:1452
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:1517 builtin/pack-objects.c:3399
+#: config.c:1513 builtin/pack-objects.c:3394
#, c-format
msgid "bad pack compression level %d"
msgstr "felaktig paketkomprimeringsgrad %d"
-#: config.c:1638
+#: config.c:1634
#, c-format
msgid "unable to load config blob object '%s'"
msgstr "kunde inte läsa konfigurerings-blobobjektet \"%s\""
-#: config.c:1641
+#: config.c:1637
#, c-format
msgid "reference '%s' does not point to a blob"
msgstr "referensen \"%s\" pekar inte på en blob"
-#: config.c:1658
+#: config.c:1654
#, c-format
msgid "unable to resolve config blob '%s'"
msgstr "kan inte slå upp konfigurerings-bloben \"%s\""
-#: config.c:1688
+#: config.c:1684
#, c-format
msgid "failed to parse %s"
msgstr "kunde inte tolka %s"
-#: config.c:1744
+#: config.c:1740
msgid "unable to parse command-line config"
msgstr "kan inte tolka kommandoradskonfiguration"
-#: config.c:2093
+#: config.c:2091
msgid "unknown error occurred while reading the configuration files"
msgstr "okänt fel uppstod vid läsning av konfigurationsfilerna"
-#: config.c:2263
+#: config.c:2261
#, c-format
msgid "Invalid %s: '%s'"
msgstr "Felaktigt %s: \"%s\""
#: config.c:2306
#, c-format
-msgid "unknown core.untrackedCache value '%s'; using 'keep' default value"
-msgstr ""
-"okänt värde \"%s\" för core.untrackedCache; använder standardvärdet \"keep\""
-
-#: config.c:2332
-#, c-format
msgid "splitIndex.maxPercentChange value '%d' should be between 0 and 100"
msgstr "värdet \"%d\" för splitIndex.maxPercentage borde vara mellan 0 och 100"
-#: config.c:2378
+#: config.c:2352
#, c-format
msgid "unable to parse '%s' from command-line config"
msgstr "kunde inte tolka värdet \"%s\" från kommandoradskonfiguration"
-#: config.c:2380
+#: config.c:2354
#, 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:2461
+#: config.c:2435
#, c-format
msgid "invalid section name '%s'"
msgstr "felaktigt sektionsnamn \"%s\""
-#: config.c:2493
+#: config.c:2467
#, c-format
msgid "%s has multiple values"
msgstr "%s har flera värden"
-#: config.c:2522
+#: config.c:2496
#, c-format
msgid "failed to write new configuration file %s"
msgstr "kan inte skriva nya konfigurationsfilen \"%s\""
-#: config.c:2774 config.c:3098
+#: config.c:2748 config.c:3072
#, c-format
msgid "could not lock config file %s"
msgstr "kunde inte låsa konfigurationsfilen %s"
-#: config.c:2785
+#: config.c:2759
#, c-format
msgid "opening %s"
msgstr "öppnar %s"
-#: config.c:2820 builtin/config.c:328
+#: config.c:2794 builtin/config.c:328
#, c-format
msgid "invalid pattern: %s"
msgstr "ogiltigt mönster: %s"
-#: config.c:2845
+#: config.c:2819
#, c-format
msgid "invalid config file %s"
msgstr "ogiltig konfigurationsfil: \"%s\""
-#: config.c:2858 config.c:3111
+#: config.c:2832 config.c:3085
#, c-format
msgid "fstat on %s failed"
msgstr "fstat misslyckades på %s"
-#: config.c:2869
+#: config.c:2843
#, c-format
msgid "unable to mmap '%s'"
msgstr "kunde inte utföra mmap på \"%s\""
-#: config.c:2878 config.c:3116
+#: config.c:2852 config.c:3090
#, c-format
msgid "chmod on %s failed"
msgstr "chmod misslyckades på %s"
-#: config.c:2963 config.c:3213
+#: config.c:2937 config.c:3187
#, c-format
msgid "could not write config file %s"
msgstr "kunde inte skriva konfigurationsfilen %s"
-#: config.c:2997
+#: config.c:2971
#, c-format
msgid "could not set '%s' to '%s'"
msgstr "kunde inte ställa in \"%s\" till \"%s\""
-#: config.c:2999 builtin/remote.c:782
+#: config.c:2973 builtin/remote.c:782
#, c-format
msgid "could not unset '%s'"
msgstr "kunde inte ta bort inställning för \"%s\""
-#: config.c:3089
+#: config.c:3063
#, c-format
msgid "invalid section name: %s"
msgstr "felaktigt namn på stycke: %s"
-#: config.c:3256
+#: config.c:3230
#, c-format
msgid "missing value for '%s'"
msgstr "värde saknas för \"%s\""
@@ -2111,7 +2121,7 @@ msgstr "kunde inte slå upp %s (%s)"
msgid "unknown port %s"
msgstr "okänd port %s"
-#: connect.c:845 connect.c:1171
+#: connect.c:845 connect.c:1175
#, c-format
msgid "strange hostname '%s' blocked"
msgstr "konstigt värdnamn \"%s\" blockerat"
@@ -2126,60 +2136,60 @@ msgstr "konstig port \"%s\" blockerad"
msgid "cannot start proxy %s"
msgstr "kan inte starta mellanserver (proxy) %s"
-#: connect.c:924
+#: connect.c:928
msgid "no path specified; see 'git help pull' for valid url syntax"
msgstr "ingen sökväg angavs; se \"git help pull\" för giltig URL-syntax"
-#: connect.c:1119
+#: connect.c:1123
msgid "ssh variant 'simple' does not support -4"
msgstr "ssh-varianten \"simple\" stöder inte -4"
-#: connect.c:1131
+#: connect.c:1135
msgid "ssh variant 'simple' does not support -6"
msgstr "ssh-varianten \"simple\" stöder inte -6"
-#: connect.c:1148
+#: connect.c:1152
msgid "ssh variant 'simple' does not support setting port"
msgstr "ssh-varianten \"simple\" stöder inte val av port"
-#: connect.c:1260
+#: connect.c:1264
#, c-format
msgid "strange pathname '%s' blocked"
msgstr "konstigt sökvägsnamn \"%s\" blockerat"
-#: connect.c:1307
+#: connect.c:1311
msgid "unable to fork"
msgstr "kunde inte grena (fork)"
# Vague original, not networking-related, but rather related to the actual
# objects in the database.
-#: connected.c:86 builtin/fsck.c:221 builtin/prune.c:43
+#: connected.c:88 builtin/fsck.c:221 builtin/prune.c:43
msgid "Checking connectivity"
msgstr "Kontrollerar konnektivitet"
-#: connected.c:98
+#: connected.c:100
msgid "Could not run 'git rev-list'"
msgstr "Kunde inte köra \"git rev-list\""
-#: connected.c:118
+#: connected.c:120
msgid "failed write to rev-list"
msgstr "kunde inte skriva till rev-list"
-#: connected.c:125
+#: connected.c:127
msgid "failed to close rev-list's stdin"
msgstr "kunde inte stänga rev-list:s standard in"
-#: convert.c:193
+#: convert.c:194
#, c-format
msgid "illegal crlf_action %d"
msgstr "felaktig crlf_action %d"
-#: convert.c:206
+#: convert.c:207
#, c-format
msgid "CRLF would be replaced by LF in %s"
msgstr "CRLF skulle ersättas av LF i %s"
-#: convert.c:208
+#: convert.c:209
#, c-format
msgid ""
"CRLF will be replaced by LF in %s.\n"
@@ -2188,12 +2198,12 @@ msgstr ""
"CRLF kommer att ersättas av LF i %s.\n"
"Filen kommer att ha sina ursprungliga radbrytningar i din arbetskatalog"
-#: convert.c:216
+#: convert.c:217
#, c-format
msgid "LF would be replaced by CRLF in %s"
msgstr "LF skulle ersättas av CRLF i %s"
-#: convert.c:218
+#: convert.c:219
#, c-format
msgid ""
"LF will be replaced by CRLF in %s.\n"
@@ -2202,12 +2212,12 @@ msgstr ""
"LF kommer att ersättas av CRLF i %s.\n"
"Filen kommer att ha sina ursprungliga radbrytningar i din arbetskatalog"
-#: convert.c:279
+#: convert.c:280
#, c-format
msgid "BOM is prohibited in '%s' if encoded as %s"
msgstr "BOM är förbjudet i \"%s\" om kodat som %s"
-#: convert.c:286
+#: convert.c:287
#, c-format
msgid ""
"The file '%s' contains a byte order mark (BOM). Please use UTF-%s as working-"
@@ -2216,12 +2226,12 @@ msgstr ""
"Filen \"%s\" innehåller byte order mark (BOM). Använd UTF-%s som "
"teckenkodning i arbetskatalogen."
-#: convert.c:304
+#: convert.c:305
#, c-format
msgid "BOM is required in '%s' if encoded as %s"
msgstr "BOM krävs om \"%s\" kodas som %s"
-#: convert.c:306
+#: convert.c:307
#, c-format
msgid ""
"The file '%s' is missing a byte order mark (BOM). Please use UTF-%sBE or UTF-"
@@ -2230,51 +2240,51 @@ msgstr ""
"Filen \"%s\" saknar byte order mark (BOM). Använd UTF-%sBE eller UTF-%sLE "
"(beroende på byteordning) som teckenkodning i arbetskatalogen."
-#: convert.c:424 convert.c:495
+#: convert.c:425 convert.c:496
#, c-format
msgid "failed to encode '%s' from %s to %s"
msgstr "misslyckades omkoda \"%s\" från %s till %s"
-#: convert.c:467
+#: convert.c:468
#, c-format
msgid "encoding '%s' from %s to %s and back is not the same"
msgstr ""
"omkodning av \"%s\" från %s till %s och tillbaka ger inte samma resultat"
-#: convert.c:673
+#: convert.c:674
#, c-format
msgid "cannot fork to run external filter '%s'"
msgstr "kan inte grena (fork) för att köra externt filter \"%s\""
-#: convert.c:693
+#: convert.c:694
#, c-format
msgid "cannot feed the input to external filter '%s'"
msgstr "kunde inte skicka indata till externt filter \"%s\""
-#: convert.c:700
+#: convert.c:701
#, c-format
msgid "external filter '%s' failed %d"
msgstr "externt filter \"%s\" misslyckades %d"
-#: convert.c:735 convert.c:738
+#: convert.c:736 convert.c:739
#, c-format
msgid "read from external filter '%s' failed"
msgstr "läsning från externt filter \"%s\" misslyckades"
-#: convert.c:741 convert.c:796
+#: convert.c:742 convert.c:797
#, c-format
msgid "external filter '%s' failed"
msgstr "externt filter \"%s\" misslyckades"
-#: convert.c:844
+#: convert.c:845
msgid "unexpected filter type"
msgstr "oväntad filtertyp"
-#: convert.c:855
+#: convert.c:856
msgid "path name too long for external filter"
msgstr "sökvägen för lång för externt filter"
-#: convert.c:929
+#: convert.c:930
#, c-format
msgid ""
"external filter '%s' is not available anymore although not all paths have "
@@ -2283,67 +2293,67 @@ msgstr ""
"externt filter \"%s\" är inte längre tillgängligt trots att alla sökvägar "
"inte har filtrerats"
-#: convert.c:1228
+#: convert.c:1229
msgid "true/false are no valid working-tree-encodings"
msgstr "true/false är inte giltig teckenkodning för arbetskatalogen"
-#: convert.c:1398 convert.c:1432
+#: convert.c:1417 convert.c:1451
#, c-format
msgid "%s: clean filter '%s' failed"
msgstr "%s: \"clean\"-filtret \"%s\" misslyckades"
-#: convert.c:1476
+#: convert.c:1495
#, c-format
msgid "%s: smudge filter %s failed"
msgstr "%s: \"smudge\"-filtret \"%s\" misslyckades"
-#: date.c:137
+#: date.c:138
msgid "in the future"
msgstr "i framtiden"
-#: date.c:143
+#: date.c:144
#, c-format
msgid "%<PRIuMAX> second ago"
msgid_plural "%<PRIuMAX> seconds ago"
msgstr[0] "%<PRIuMAX> sekund sedan"
msgstr[1] "%<PRIuMAX> sekunder sedan"
-#: date.c:150
+#: date.c:151
#, c-format
msgid "%<PRIuMAX> minute ago"
msgid_plural "%<PRIuMAX> minutes ago"
msgstr[0] "%<PRIuMAX> minut sedan"
msgstr[1] "%<PRIuMAX> minuter sedan"
-#: date.c:157
+#: date.c:158
#, c-format
msgid "%<PRIuMAX> hour ago"
msgid_plural "%<PRIuMAX> hours ago"
msgstr[0] "%<PRIuMAX> timme sedan"
msgstr[1] "%<PRIuMAX> timmar sedan"
-#: date.c:164
+#: date.c:165
#, c-format
msgid "%<PRIuMAX> day ago"
msgid_plural "%<PRIuMAX> days ago"
msgstr[0] "%<PRIuMAX> dag sedan"
msgstr[1] "%<PRIuMAX> dagar sedan"
-#: date.c:170
+#: date.c:171
#, c-format
msgid "%<PRIuMAX> week ago"
msgid_plural "%<PRIuMAX> weeks ago"
msgstr[0] "%<PRIuMAX> vecka sedan"
msgstr[1] "%<PRIuMAX> veckor sedan"
-#: date.c:177
+#: date.c:178
#, 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:188
+#: date.c:189
#, c-format
msgid "%<PRIuMAX> year"
msgid_plural "%<PRIuMAX> years"
@@ -2351,14 +2361,14 @@ msgstr[0] "%<PRIuMAX> år"
msgstr[1] "%<PRIuMAX> år"
#. TRANSLATORS: "%s" is "<n> years"
-#: date.c:191
+#: date.c:192
#, 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:196 date.c:201
+#: date.c:197 date.c:202
#, c-format
msgid "%<PRIuMAX> year ago"
msgid_plural "%<PRIuMAX> years ago"
@@ -2394,7 +2404,7 @@ msgstr "Markerade %d öar, klar.\n"
msgid "failed to read orderfile '%s'"
msgstr "kunde inte läsa orderfilen \"%s\""
-#: diffcore-rename.c:544
+#: diffcore-rename.c:543
msgid "Performing inexact rename detection"
msgstr "Utför onöjaktig namnbytesdetektering"
@@ -2460,35 +2470,35 @@ msgstr ""
"Hittade fel i konfigurationsvariabeln \"diff.dirstat\":\n"
"%s"
-#: diff.c:4215
+#: diff.c:4218
#, c-format
msgid "external diff died, stopping at %s"
msgstr "extern diff dog, stannar vid %s"
-#: diff.c:4560
+#: diff.c:4563
msgid "--name-only, --name-status, --check and -s are mutually exclusive"
msgstr "--name-only, --name-status, -check och -s är ömsesidigt uteslutande"
-#: diff.c:4563
+#: diff.c:4566
msgid "-G, -S and --find-object are mutually exclusive"
msgstr "-G, -S och --find-object är ömsesidigt uteslutande"
-#: diff.c:4641
+#: diff.c:4644
msgid "--follow requires exactly one pathspec"
msgstr "--follow kräver exakt en sökvägsangivelse"
-#: diff.c:4689
+#: diff.c:4692
#, c-format
msgid "invalid --stat value: %s"
msgstr "ogiltigt värde för --stat: %s"
-#: diff.c:4694 diff.c:4699 diff.c:4704 diff.c:4709 diff.c:5222
+#: diff.c:4697 diff.c:4702 diff.c:4707 diff.c:4712 diff.c:5225
#: parse-options.c:199 parse-options.c:203
#, c-format
msgid "%s expects a numerical value"
msgstr "%s förväntar ett numeriskt värde"
-#: diff.c:4726
+#: diff.c:4729
#, c-format
msgid ""
"Failed to parse --dirstat/-X option parameter:\n"
@@ -2497,42 +2507,42 @@ msgstr ""
"Misslyckades tolka argument till flaggan --dirstat/-X;\n"
"%s"
-#: diff.c:4811
+#: diff.c:4814
#, c-format
msgid "unknown change class '%c' in --diff-filter=%s"
msgstr "okänd ändringsklass \"%c\" i --diff-filter=%s"
-#: diff.c:4835
+#: diff.c:4838
#, c-format
msgid "unknown value after ws-error-highlight=%.*s"
msgstr "okänt värde efter ws-error-highlight=%.*s"
-#: diff.c:4849
+#: diff.c:4852
#, c-format
msgid "unable to resolve '%s'"
msgstr "kunde inte slå upp \"%s\""
-#: diff.c:4899 diff.c:4905
+#: diff.c:4902 diff.c:4908
#, c-format
msgid "%s expects <n>/<m> form"
msgstr "%s förväntar formen <n>/<m>"
-#: diff.c:4917
+#: diff.c:4920
#, c-format
msgid "%s expects a character, got '%s'"
msgstr "%s förväntar ett tecken, fick \"%s\""
-#: diff.c:4938
+#: diff.c:4941
#, c-format
msgid "bad --color-moved argument: %s"
msgstr "felaktigt argument till --color-moved: %s"
-#: diff.c:4957
+#: diff.c:4960
#, c-format
msgid "invalid mode '%s' in --color-moved-ws"
msgstr "ogiltigt läge %s\" i --color-moved-ws"
-#: diff.c:4997
+#: diff.c:5000
msgid ""
"option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and "
"\"histogram\""
@@ -2540,149 +2550,149 @@ msgstr ""
"flaggan diff-algorithm godtar\"myers\", \"minimal\", \"patience\" och "
"\"histogram\""
-#: diff.c:5033 diff.c:5053
+#: diff.c:5036 diff.c:5056
#, c-format
msgid "invalid argument to %s"
msgstr "ogiltigt argument för %s"
-#: diff.c:5191
+#: diff.c:5194
#, c-format
msgid "failed to parse --submodule option parameter: '%s'"
msgstr "misslyckades tolka argument till flaggan --submodule: \"%s\""
-#: diff.c:5247
+#: diff.c:5250
#, c-format
msgid "bad --word-diff argument: %s"
msgstr "felaktigt argument --word-diff: %s"
-#: diff.c:5270
+#: diff.c:5273
msgid "Diff output format options"
msgstr "Formatflaggor för diff-utdata"
-#: diff.c:5272 diff.c:5278
+#: diff.c:5275 diff.c:5281
msgid "generate patch"
msgstr "skapar patch"
-#: diff.c:5275 builtin/log.c:182
+#: diff.c:5278 builtin/log.c:172
msgid "suppress diff output"
msgstr "undertryck diff-utdata"
-#: diff.c:5280 diff.c:5394 diff.c:5401
+#: diff.c:5283 diff.c:5397 diff.c:5404
msgid "<n>"
msgstr "<n>"
-#: diff.c:5281 diff.c:5284
+#: diff.c:5284 diff.c:5287
msgid "generate diffs with <n> lines context"
msgstr "skapa diffar med <n> rader sammanhang"
-#: diff.c:5286
+#: diff.c:5289
msgid "generate the diff in raw format"
msgstr "generera diff i råformat"
-#: diff.c:5289
+#: diff.c:5292
msgid "synonym for '-p --raw'"
msgstr "synonym till \"-p --raw\""
-#: diff.c:5293
+#: diff.c:5296
msgid "synonym for '-p --stat'"
msgstr "synonym till \"-p --stat\""
-#: diff.c:5297
+#: diff.c:5300
msgid "machine friendly --stat"
msgstr "maskinläsbar --stat"
-#: diff.c:5300
+#: diff.c:5303
msgid "output only the last line of --stat"
msgstr "skriv bara ut den sista raden för --stat"
-#: diff.c:5302 diff.c:5310
+#: diff.c:5305 diff.c:5313
msgid "<param1,param2>..."
msgstr "<param1,param2>..."
-#: diff.c:5303
+#: diff.c:5306
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:5307
+#: diff.c:5310
msgid "synonym for --dirstat=cumulative"
msgstr "synonym för --dirstat=cumulative"
-#: diff.c:5311
+#: diff.c:5314
msgid "synonym for --dirstat=files,param1,param2..."
msgstr "synonym för --dirstat=filer,param1,param2..."
-#: diff.c:5315
+#: diff.c:5318
msgid "warn if changes introduce conflict markers or whitespace errors"
msgstr "varna om ändringar introducerar konfliktmarkörer eller blankstegsfel"
-#: diff.c:5318
+#: diff.c:5321
msgid "condensed summary such as creations, renames and mode changes"
msgstr "kortfattad summering såsom skapade, namnbyten och ändrade lägen"
-#: diff.c:5321
+#: diff.c:5324
msgid "show only names of changed files"
msgstr "visa endast namnen på ändrade filer"
-#: diff.c:5324
+#: diff.c:5327
msgid "show only names and status of changed files"
msgstr "visa endast namn och status för ändrade filer"
-#: diff.c:5326
+#: diff.c:5329
msgid "<width>[,<name-width>[,<count>]]"
msgstr "<bredd>[,<namn-bredd>[,<antal>]]"
-#: diff.c:5327
+#: diff.c:5330
msgid "generate diffstat"
msgstr "skapa diffstat"
-#: diff.c:5329 diff.c:5332 diff.c:5335
+#: diff.c:5332 diff.c:5335 diff.c:5338
msgid "<width>"
msgstr "<bredd>"
-#: diff.c:5330
+#: diff.c:5333
msgid "generate diffstat with a given width"
msgstr "generera en diffstat med given bredd"
-#: diff.c:5333
+#: diff.c:5336
msgid "generate diffstat with a given name width"
msgstr "generera en diffstat med given namnbredd"
-#: diff.c:5336
+#: diff.c:5339
msgid "generate diffstat with a given graph width"
msgstr "generera en diffstat med given grafbredd"
-#: diff.c:5338
+#: diff.c:5341
msgid "<count>"
msgstr "<antal>"
-#: diff.c:5339
+#: diff.c:5342
msgid "generate diffstat with limited lines"
msgstr "generera diffstat med begränsade rader"
-#: diff.c:5342
+#: diff.c:5345
msgid "generate compact summary in diffstat"
msgstr "skapa kompakt översikt i diffstat"
-#: diff.c:5345
+#: diff.c:5348
msgid "output a binary diff that can be applied"
msgstr "skapa en binärdiff som kan appliceras"
-#: diff.c:5348
+#: diff.c:5351
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:5350
+#: diff.c:5353
msgid "show colored diff"
msgstr "visa färgad diff"
-#: diff.c:5351
+#: diff.c:5354
msgid "<kind>"
msgstr "<typ>"
-#: diff.c:5352
+#: diff.c:5355
msgid ""
"highlight whitespace errors in the 'context', 'old' or 'new' lines in the "
"diff"
@@ -2690,7 +2700,7 @@ msgstr ""
"ljusmarkera blankstegsfel i \"context\" (sammanhang), \"old\" (gamla) eller "
"\"new\" (nya) rader i diffen"
-#: diff.c:5355
+#: diff.c:5358
msgid ""
"do not munge pathnames and use NULs as output field terminators in --raw or "
"--numstat"
@@ -2698,87 +2708,87 @@ msgstr ""
"skriv inte om sökvägsnamn och använd NUL-tecken som fältseparerare i --raw "
"eller --numstat"
-#: diff.c:5358 diff.c:5361 diff.c:5364 diff.c:5470
+#: diff.c:5361 diff.c:5364 diff.c:5367 diff.c:5473
msgid "<prefix>"
msgstr "<prefix>"
-#: diff.c:5359
+#: diff.c:5362
msgid "show the given source prefix instead of \"a/\""
msgstr "visa givet källprefix istället för \"a/\""
-#: diff.c:5362
+#: diff.c:5365
msgid "show the given destination prefix instead of \"b/\""
msgstr "visa givet målprefix istället för \"b/\""
-#: diff.c:5365
+#: diff.c:5368
msgid "prepend an additional prefix to every line of output"
msgstr "lägg till ytterligare prefix på alla rader i utdata"
-#: diff.c:5368
+#: diff.c:5371
msgid "do not show any source or destination prefix"
msgstr "visa inte käll- eller målprefix"
-#: diff.c:5371
+#: diff.c:5374
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:5375 diff.c:5380 diff.c:5385
+#: diff.c:5378 diff.c:5383 diff.c:5388
msgid "<char>"
msgstr "<tecken>"
-#: diff.c:5376
+#: diff.c:5379
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:5381
+#: diff.c:5384
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:5386
+#: diff.c:5389
msgid "specify the character to indicate a context instead of ' '"
msgstr "ange tecken för att ange sammanhang istället för \" \""
-#: diff.c:5389
+#: diff.c:5392
msgid "Diff rename options"
msgstr "Diff-namnbytesflaggor"
-#: diff.c:5390
+#: diff.c:5393
msgid "<n>[/<m>]"
msgstr "<n>[/<m>]"
-#: diff.c:5391
+#: diff.c:5394
msgid "break complete rewrite changes into pairs of delete and create"
msgstr "dela upp kompletta omskrivningar till ta bort och skapa-par"
-#: diff.c:5395
+#: diff.c:5398
msgid "detect renames"
msgstr "detektera namnändringar"
-#: diff.c:5399
+#: diff.c:5402
msgid "omit the preimage for deletes"
msgstr "ta bort för-version för borttagningar"
-#: diff.c:5402
+#: diff.c:5405
msgid "detect copies"
msgstr "detektera kopior"
-#: diff.c:5406
+#: diff.c:5409
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:5408
+#: diff.c:5411
msgid "disable rename detection"
msgstr "inaktivera detektering av namnbyten"
-#: diff.c:5411
+#: diff.c:5414
msgid "use empty blobs as rename source"
msgstr "använd tomma blob:ar som namnändringskälla"
-#: diff.c:5413
+#: diff.c:5416
msgid "continue listing the history of a file beyond renames"
msgstr "fortsätt lista historiken för en fil bortom namnändringar"
-#: diff.c:5416
+#: diff.c:5419
msgid ""
"prevent rename/copy detection if the number of rename/copy targets exceeds "
"given limit"
@@ -2786,159 +2796,159 @@ msgstr ""
"förhindra namnbyte/kopie-detektering om antalet namnbyten/kopior överskriver "
"given gräns"
-#: diff.c:5418
+#: diff.c:5421
msgid "Diff algorithm options"
msgstr "Alternativ för diff-algoritm"
-#: diff.c:5420
+#: diff.c:5423
msgid "produce the smallest possible diff"
msgstr "skapa minsta möjliga diff"
-#: diff.c:5423
+#: diff.c:5426
msgid "ignore whitespace when comparing lines"
msgstr "ignorera blanktecken vid radjämförelse"
-#: diff.c:5426
+#: diff.c:5429
msgid "ignore changes in amount of whitespace"
msgstr "ignorera ändringar i antal blanktecken vid radjämförelse"
-#: diff.c:5429
+#: diff.c:5432
msgid "ignore changes in whitespace at EOL"
msgstr "ignorera blanktecken vid radslut"
-#: diff.c:5432
+#: diff.c:5435
msgid "ignore carrier-return at the end of line"
msgstr "ignorera CR-tecken vid radslut"
-#: diff.c:5435
+#: diff.c:5438
msgid "ignore changes whose lines are all blank"
msgstr "ignorera ändringar i rader som är helt blanka"
-#: diff.c:5438
+#: diff.c:5441
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:5441
+#: diff.c:5444
msgid "generate diff using the \"patience diff\" algorithm"
msgstr "skapa diffar med algoritmen \"patience diff\""
-#: diff.c:5445
+#: diff.c:5448
msgid "generate diff using the \"histogram diff\" algorithm"
msgstr "skapa diffar med algoritmen \"histogram diff\""
-#: diff.c:5447
+#: diff.c:5450
msgid "<algorithm>"
msgstr "<algoritm>"
-#: diff.c:5448
+#: diff.c:5451
msgid "choose a diff algorithm"
msgstr "välj en diff-algoritm"
-#: diff.c:5450
+#: diff.c:5453
msgid "<text>"
msgstr "<text>"
-#: diff.c:5451
+#: diff.c:5454
msgid "generate diff using the \"anchored diff\" algorithm"
msgstr "skapa diffar med algoritmen \"anchored diff\""
-#: diff.c:5453 diff.c:5462 diff.c:5465
+#: diff.c:5456 diff.c:5465 diff.c:5468
msgid "<mode>"
msgstr "<läge>"
-#: diff.c:5454
+#: diff.c:5457
msgid "show word diff, using <mode> to delimit changed words"
msgstr "visa orddiff, där <läge> avgränsar ändrade ord"
-#: diff.c:5456 diff.c:5459 diff.c:5504
+#: diff.c:5459 diff.c:5462 diff.c:5507
msgid "<regex>"
msgstr "<reguttr>"
-#: diff.c:5457
+#: diff.c:5460
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:5460
+#: diff.c:5463
msgid "equivalent to --word-diff=color --word-diff-regex=<regex>"
msgstr "motsvarar --word-diff=color --word-diff-regex=<reguttr>"
-#: diff.c:5463
+#: diff.c:5466
msgid "moved lines of code are colored differently"
msgstr "flyttade kodrader färgas på annat sätt"
-#: diff.c:5466
+#: diff.c:5469
msgid "how white spaces are ignored in --color-moved"
msgstr "hur blanktecken ignoreras i --color-moved"
-#: diff.c:5469
+#: diff.c:5472
msgid "Other diff options"
msgstr "Andra diff-flaggor"
-#: diff.c:5471
+#: diff.c:5474
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:5475
+#: diff.c:5478
msgid "treat all files as text"
msgstr "hantera alla filer som text"
-#: diff.c:5477
+#: diff.c:5480
msgid "swap two inputs, reverse the diff"
msgstr "växla två indatafiler, vänd diffen"
-#: diff.c:5479
+#: diff.c:5482
msgid "exit with 1 if there were differences, 0 otherwise"
msgstr "avsluta med 1 vid ändringar, annars 0"
-#: diff.c:5481
+#: diff.c:5484
msgid "disable all output of the program"
msgstr "slå av alla utdata från programmet"
-#: diff.c:5483
+#: diff.c:5486
msgid "allow an external diff helper to be executed"
msgstr "tillåt köra en extern diff-hjälpare"
-#: diff.c:5485
+#: diff.c:5488
msgid "run external text conversion filters when comparing binary files"
msgstr "kör externt textkonverteringsfiler när binärfiler jämförs"
-#: diff.c:5487
+#: diff.c:5490
msgid "<when>"
msgstr "<när>"
-#: diff.c:5488
+#: diff.c:5491
msgid "ignore changes to submodules in the diff generation"
msgstr "ignorera ändringar i undermoduler när diffen skapas"
-#: diff.c:5491
+#: diff.c:5494
msgid "<format>"
msgstr "<format>"
-#: diff.c:5492
+#: diff.c:5495
msgid "specify how differences in submodules are shown"
msgstr "ange hur ändringar i undermoduler visas"
-#: diff.c:5496
+#: diff.c:5499
msgid "hide 'git add -N' entries from the index"
msgstr "dölj \"git add -N\"-poster från indexet"
-#: diff.c:5499
+#: diff.c:5502
msgid "treat 'git add -N' entries as real in the index"
msgstr "tolka \"git add -N\"-poster som äkta i indexet"
-#: diff.c:5501
+#: diff.c:5504
msgid "<string>"
msgstr "<sträng>"
-#: diff.c:5502
+#: diff.c:5505
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:5505
+#: diff.c:5508
msgid ""
"look for differences that change the number of occurrences of the specified "
"regex"
@@ -2946,94 +2956,94 @@ msgstr ""
"se efter ändringar som ändrar antalet förekomster av angivet reguljärt "
"uttryck"
-#: diff.c:5508
+#: diff.c:5511
msgid "show all changes in the changeset with -S or -G"
msgstr "visa alla ändringar i ändringsuppsättningen med -S eller -G"
-#: diff.c:5511
+#: diff.c:5514
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:5514
+#: diff.c:5517
msgid "control the order in which files appear in the output"
msgstr "styr ordningen i vilken filer visas i utdata"
-#: diff.c:5515
+#: diff.c:5518
msgid "<object-id>"
msgstr "<objekt-id>"
-#: diff.c:5516
+#: diff.c:5519
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:5518
+#: diff.c:5521
msgid "[(A|C|D|M|R|T|U|X|B)...[*]]"
msgstr "[(A|C|D|M|R|T|U|X|B)...[*]]"
-#: diff.c:5519
+#: diff.c:5522
msgid "select files by diff type"
msgstr "välj filter efter diff-typ"
-#: diff.c:5521
+#: diff.c:5524
msgid "<file>"
msgstr "<fil>"
-#: diff.c:5522
+#: diff.c:5525
msgid "Output to a specific file"
msgstr "Skriv utdata till en specifik fil"
-#: diff.c:6177
+#: diff.c:6180
msgid "inexact rename detection was skipped due to too many files."
msgstr ""
"onöjaktig namnbytesdetektering utfördes inte på grund av för många filer."
-#: diff.c:6180
+#: diff.c:6183
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:6183
+#: diff.c:6186
#, c-format
msgid ""
"you may want to set your %s variable to at least %d and retry the command."
msgstr ""
"du kan sätta variabeln %s till åtminstone %d och försöka kommandot på nytt."
-#: dir.c:537
+#: dir.c:549
#, c-format
msgid "pathspec '%s' did not match any file(s) known to git"
msgstr "sökvägsangivelsen \"%s\" motsvarade inte några av git kända filer"
-#: dir.c:926
+#: dir.c:938
#, c-format
msgid "cannot use %s as an exclude file"
msgstr "kan inte använda %s som exkluderingsfil"
-#: dir.c:1843
+#: dir.c:1877
#, c-format
msgid "could not open directory '%s'"
msgstr "kunde inte öppna katalogen \"%s\""
-#: dir.c:2085
+#: dir.c:2128
msgid "failed to get kernel name and information"
msgstr "misslyckades hämta kärnans namn och information"
-#: dir.c:2209
+#: dir.c:2252
msgid "untracked cache is disabled on this system or location"
msgstr "ospårad cache är inaktiverad på systemet eller platsen"
-#: dir.c:3013
+#: dir.c:3056
#, c-format
msgid "index file corrupt in repo %s"
msgstr "indexfilen trasig i arkivet %s"
-#: dir.c:3058 dir.c:3063
+#: dir.c:3101 dir.c:3106
#, c-format
msgid "could not create directories for %s"
msgstr "kunde inte skapa kataloger för %s"
-#: dir.c:3092
+#: dir.c:3135
#, c-format
msgid "could not migrate git directory from '%s' to '%s'"
msgstr "kunde inte migrera git-katalog från \"%s\" till \"%s\""
@@ -3052,12 +3062,12 @@ msgstr "Filtrerar innehåll"
msgid "could not stat file '%s'"
msgstr "kunde inte ta status på filen \"%s\""
-#: environment.c:150
+#: environment.c:148
#, c-format
msgid "bad git namespace path \"%s\""
msgstr "felaktig git-namnrymdssökväg \"%s\""
-#: environment.c:332
+#: environment.c:330
#, c-format
msgid "could not set GIT_DIR to '%s'"
msgstr "kunde inte ställa in GIT_DIR till \"%s\""
@@ -3067,158 +3077,154 @@ msgstr "kunde inte ställa in GIT_DIR till \"%s\""
msgid "too many args to run %s"
msgstr "för många flaggor för att köra %s"
-#: fetch-object.c:17
-msgid "Remote with no URL"
-msgstr "Fjärr utan URL"
-
-#: fetch-pack.c:151
+#: fetch-pack.c:150
msgid "git fetch-pack: expected shallow list"
msgstr "git fetch-pack: förväntade grund lista"
-#: fetch-pack.c:154
+#: fetch-pack.c:153
msgid "git fetch-pack: expected a flush packet after shallow list"
msgstr "git fetch-pack: förväntade ett flush-paket efter grund lista"
-#: fetch-pack.c:165
+#: fetch-pack.c:164
msgid "git fetch-pack: expected ACK/NAK, got a flush packet"
msgstr "git fetch-pack: förväntade ACK/NAK, fick flush-paket"
-#: fetch-pack.c:185
+#: fetch-pack.c:184
#, c-format
msgid "git fetch-pack: expected ACK/NAK, got '%s'"
msgstr "git fetch-pack: förväntade ACK/NAK, fick \"%s\""
-#: fetch-pack.c:196
+#: fetch-pack.c:195
msgid "unable to write to remote"
msgstr "kunde inte skriva till fjärren"
-#: fetch-pack.c:258
+#: fetch-pack.c:257
msgid "--stateless-rpc requires multi_ack_detailed"
msgstr "--stateless-rpc kräver \"multi_ack_detailed\""
-#: fetch-pack.c:360 fetch-pack.c:1284
+#: fetch-pack.c:356 fetch-pack.c:1280
#, c-format
msgid "invalid shallow line: %s"
msgstr "ogiltig \"shallow\"-rad: %s"
-#: fetch-pack.c:366 fetch-pack.c:1290
+#: fetch-pack.c:362 fetch-pack.c:1286
#, c-format
msgid "invalid unshallow line: %s"
msgstr "ogiltig \"unshallow\"-rad: %s"
-#: fetch-pack.c:368 fetch-pack.c:1292
+#: fetch-pack.c:364 fetch-pack.c:1288
#, c-format
msgid "object not found: %s"
msgstr "objektet hittades inte: %s"
-#: fetch-pack.c:371 fetch-pack.c:1295
+#: fetch-pack.c:367 fetch-pack.c:1291
#, c-format
msgid "error in object: %s"
msgstr "fel i objekt: %s"
-#: fetch-pack.c:373 fetch-pack.c:1297
+#: fetch-pack.c:369 fetch-pack.c:1293
#, c-format
msgid "no shallow found: %s"
msgstr "ingen \"shallow\" hittades: %s"
-#: fetch-pack.c:376 fetch-pack.c:1301
+#: fetch-pack.c:372 fetch-pack.c:1297
#, c-format
msgid "expected shallow/unshallow, got %s"
msgstr "förväntade shallow/unshallow, fick %s"
-#: fetch-pack.c:417
+#: fetch-pack.c:414
#, c-format
msgid "got %s %d %s"
msgstr "fick %s %d %s"
-#: fetch-pack.c:434
+#: fetch-pack.c:431
#, c-format
msgid "invalid commit %s"
msgstr "ogiltig incheckning %s"
-#: fetch-pack.c:465
+#: fetch-pack.c:462
msgid "giving up"
msgstr "ger upp"
-#: fetch-pack.c:477 progress.c:277
+#: fetch-pack.c:475 progress.c:312
msgid "done"
msgstr "klart"
-#: fetch-pack.c:489
+#: fetch-pack.c:487
#, c-format
msgid "got %s (%d) %s"
msgstr "fick %s (%d) %s"
-#: fetch-pack.c:535
+#: fetch-pack.c:533
#, c-format
msgid "Marking %s as complete"
msgstr "Markerar %s som komplett"
-#: fetch-pack.c:744
+#: fetch-pack.c:742
#, c-format
msgid "already have %s (%s)"
msgstr "har redan %s (%s)"
-#: fetch-pack.c:783
+#: fetch-pack.c:781
msgid "fetch-pack: unable to fork off sideband demultiplexer"
msgstr "fetch-patch: kunde inte grena av sidbandsmultiplexare"
-#: fetch-pack.c:791
+#: fetch-pack.c:789
msgid "protocol error: bad pack header"
msgstr "protokollfel: felaktigt packhuvud"
-#: fetch-pack.c:859
+#: fetch-pack.c:857
#, c-format
msgid "fetch-pack: unable to fork off %s"
msgstr "fetch-patch: kunde inte grena av %s"
-#: fetch-pack.c:875
+#: fetch-pack.c:873
#, c-format
msgid "%s failed"
msgstr "%s misslyckades"
-#: fetch-pack.c:877
+#: fetch-pack.c:875
msgid "error in sideband demultiplexer"
msgstr "fel i sidbands-avmultiplexare"
-#: fetch-pack.c:908
+#: fetch-pack.c:907
#, c-format
msgid "Server version is %.*s"
msgstr "Serverversionen är %.*s"
-#: fetch-pack.c:913 fetch-pack.c:919 fetch-pack.c:922 fetch-pack.c:928
-#: fetch-pack.c:932 fetch-pack.c:936 fetch-pack.c:940 fetch-pack.c:944
-#: fetch-pack.c:948 fetch-pack.c:952 fetch-pack.c:956 fetch-pack.c:960
-#: fetch-pack.c:966 fetch-pack.c:972 fetch-pack.c:977 fetch-pack.c:982
+#: fetch-pack.c:912 fetch-pack.c:918 fetch-pack.c:921 fetch-pack.c:927
+#: fetch-pack.c:931 fetch-pack.c:935 fetch-pack.c:939 fetch-pack.c:943
+#: fetch-pack.c:947 fetch-pack.c:951 fetch-pack.c:955 fetch-pack.c:959
+#: fetch-pack.c:965 fetch-pack.c:971 fetch-pack.c:976 fetch-pack.c:981
#, c-format
msgid "Server supports %s"
msgstr "Servern stöder %s"
-#: fetch-pack.c:915
+#: fetch-pack.c:914
msgid "Server does not support shallow clients"
msgstr "Servern stöder inte klienter med grunda arkiv"
-#: fetch-pack.c:975
+#: fetch-pack.c:974
msgid "Server does not support --shallow-since"
msgstr "Servern stöder inte --shallow-since"
-#: fetch-pack.c:980
+#: fetch-pack.c:979
msgid "Server does not support --shallow-exclude"
msgstr "Servern stöder inte --shallow-exclude"
-#: fetch-pack.c:984
+#: fetch-pack.c:983
msgid "Server does not support --deepen"
msgstr "Servern stöder inte --deepen"
-#: fetch-pack.c:1001
+#: fetch-pack.c:1000
msgid "no common commits"
msgstr "inga gemensamma incheckningar"
-#: fetch-pack.c:1013 fetch-pack.c:1462
+#: fetch-pack.c:1012 fetch-pack.c:1468
msgid "git fetch-pack: fetch failed."
msgstr "git fetch-patch: hämtning misslyckades."
-#: fetch-pack.c:1151
+#: fetch-pack.c:1150
msgid "Server does not support shallow requests"
msgstr "Servern stöder inte grunda förfrågningar"
@@ -3226,73 +3232,73 @@ msgstr "Servern stöder inte grunda förfrågningar"
msgid "Server supports filter"
msgstr "Servern stöder filter"
-#: fetch-pack.c:1184
+#: fetch-pack.c:1180
msgid "unable to write request to remote"
msgstr "kunde inte skriva anrop till fjärren"
-#: fetch-pack.c:1202
+#: fetch-pack.c:1198
#, c-format
msgid "error reading section header '%s'"
msgstr "fel vid läsning av styckehuvudet \"%s\""
-#: fetch-pack.c:1208
+#: fetch-pack.c:1204
#, c-format
msgid "expected '%s', received '%s'"
msgstr "förväntade \"%s\", tog emot \"%s\""
-#: fetch-pack.c:1247
+#: fetch-pack.c:1243
#, c-format
msgid "unexpected acknowledgment line: '%s'"
msgstr "förväntade bekräftelserad: \"%s\""
-#: fetch-pack.c:1252
+#: fetch-pack.c:1248
#, c-format
msgid "error processing acks: %d"
msgstr "fel vid hantering av bekräftelser: %d"
-#: fetch-pack.c:1262
+#: fetch-pack.c:1258
msgid "expected packfile to be sent after 'ready'"
msgstr "väntade att paketfil skulle sändas efter \"ready\""
-#: fetch-pack.c:1264
+#: fetch-pack.c:1260
msgid "expected no other sections to be sent after no 'ready'"
msgstr ""
"väntade inte att några ytterligare sektioner skulle sändas efter \"ready\""
-#: fetch-pack.c:1306
+#: fetch-pack.c:1302
#, c-format
msgid "error processing shallow info: %d"
msgstr "fel vid hantering av grund (\"shallow\") info: %d"
-#: fetch-pack.c:1353
+#: fetch-pack.c:1349
#, c-format
msgid "expected wanted-ref, got '%s'"
msgstr "förväntade wanted-ref, fick %s"
-#: fetch-pack.c:1358
+#: fetch-pack.c:1354
#, c-format
msgid "unexpected wanted-ref: '%s'"
msgstr "oväntad wanted-ref: \"%s\""
-#: fetch-pack.c:1363
+#: fetch-pack.c:1359
#, c-format
msgid "error processing wanted refs: %d"
msgstr "fel vid hantering av önskade referenser: %d"
-#: fetch-pack.c:1689
+#: fetch-pack.c:1693
msgid "no matching remote head"
msgstr "inget motsvarande fjärrhuvud"
-#: fetch-pack.c:1712 builtin/clone.c:686
+#: fetch-pack.c:1716 builtin/clone.c:685
msgid "remote did not send all necessary objects"
msgstr "fjärren sände inte alla nödvändiga objekt"
-#: fetch-pack.c:1739
+#: fetch-pack.c:1743
#, c-format
msgid "no such remote ref %s"
msgstr "ingen sådan fjärreferens: %s"
-#: fetch-pack.c:1742
+#: fetch-pack.c:1746
#, 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"
@@ -3315,18 +3321,26 @@ msgstr "misslyckades skriva fristående signatur till \"%s\""
msgid "ignore invalid color '%.*s' in log.graphColors"
msgstr "ignorera felaktig färg \"%.*s\" i log.graphColors"
-#: grep.c:2117
+#: grep.c:668
+msgid ""
+"given pattern contains NULL byte (via -f <file>). This is only supported "
+"with -P under PCRE v2"
+msgstr ""
+"angivet mönster innehåller NULL-byte (via -f <fil>). Detta stöds endast med -"
+"P under PCRE v2"
+
+#: grep.c:2124
#, c-format
msgid "'%s': unable to read %s"
msgstr "\"%s\" kunde inte läsa %s"
-#: grep.c:2134 setup.c:164 builtin/clone.c:409 builtin/diff.c:82
+#: grep.c:2141 setup.c:165 builtin/clone.c:408 builtin/diff.c:82
#: builtin/rm.c:135
#, c-format
msgid "failed to stat '%s'"
msgstr "misslyckades ta status på \"%s\""
-#: grep.c:2145
+#: grep.c:2152
#, c-format
msgid "'%s': short read"
msgstr "\"%s\": kort läsning"
@@ -3469,12 +3483,12 @@ msgstr[1] ""
msgid "git version [<options>]"
msgstr "git version [<flaggor>]"
-#: help.c:782
+#: help.c:783
#, c-format
msgid "%s: %s - %s"
msgstr "%s: %s - %s"
-#: help.c:786
+#: help.c:787
msgid ""
"\n"
"Did you mean this?"
@@ -3547,41 +3561,56 @@ msgstr "namnet består enbart av ej tillåtna tecken: %s"
msgid "invalid date format: %s"
msgstr "felaktigt datumformat: %s"
-#: list-objects.c:129
+#: list-objects.c:127
#, 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:142
+#: list-objects.c:140
#, 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:378
+#: list-objects.c:375
#, c-format
msgid "unable to load root tree for commit %s"
msgstr "kunde inte läsa in rot-trädet för incheckningen %s"
-#: list-objects-filter-options.c:36
-msgid "multiple filter-specs cannot be combined"
-msgstr "flera filterspecifikationer kan inte kombineras"
+#: list-objects-filter.c:492
+#, c-format
+msgid "unable to access sparse blob in '%s'"
+msgstr "kunde inte nå gles blob på \"%s\""
+
+#: list-objects-filter.c:495
+#, c-format
+msgid "unable to parse sparse filter data in %s"
+msgstr "kunde inte tolka gles filterdata i %s"
#: list-objects-filter-options.c:58
msgid "expected 'tree:<depth>'"
msgstr "förväntade \"tree:<djup>\""
-#: list-objects-filter-options.c:84
+#: list-objects-filter-options.c:73
msgid "sparse:path filters support has been dropped"
msgstr "sparse:sökväg-filter stöds inte längre"
-#: list-objects-filter-options.c:94
+#: list-objects-filter-options.c:86
#, c-format
msgid "invalid filter-spec '%s'"
msgstr "felaktig filterspecifikation: \"%s\""
-#: list-objects-filter-options.c:158
-msgid "cannot change partial clone promisor remote"
-msgstr "kan inte ändra kontraktsfjärr för delvis kloning"
+#: list-objects-filter-options.c:102
+#, 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:144
+msgid "expected something after combine:"
+msgstr "förväntade någonting efter combine:"
+
+#: list-objects-filter-options.c:226
+msgid "multiple filter-specs cannot be combined"
+msgstr "flera filterspecifikationer kan inte kombineras"
#: lockfile.c:151
#, c-format
@@ -3612,121 +3641,117 @@ msgstr "Kunde inte skapa \"%s.lock\": %s"
msgid "failed to read the cache"
msgstr "misslyckades läsa cachen"
-#: merge.c:107 rerere.c:720 builtin/am.c:1885 builtin/am.c:1919
-#: builtin/checkout.c:536 builtin/checkout.c:796 builtin/clone.c:786
+#: merge.c:107 rerere.c:720 builtin/am.c:1874 builtin/am.c:1908
+#: builtin/checkout.c:537 builtin/checkout.c:796 builtin/clone.c:785
#: builtin/stash.c:264
msgid "unable to write new index file"
msgstr "kunde inte skriva ny indexfil"
-#: merge-recursive.c:322
+#: merge-recursive.c:367
msgid "(bad commit)\n"
msgstr "(felaktig incheckning)\n"
-#: merge-recursive.c:345
+#: merge-recursive.c:390
#, c-format
msgid "add_cacheinfo failed for path '%s'; merge aborting."
msgstr ""
"add_cahceinfo misslyckades för sökvägen \"%s\"; avslutar sammanslagningen."
-#: merge-recursive.c:354
+#: merge-recursive.c:399
#, c-format
msgid "add_cacheinfo failed to refresh for path '%s'; merge aborting."
msgstr ""
"add_cacheinfo misslyckades uppdatera för sökvägen \"%s\"; avslutar "
"sammanslagningen."
-#: merge-recursive.c:437
-msgid "error building trees"
-msgstr "fel vid byggande av träd"
-
-#: merge-recursive.c:863
+#: merge-recursive.c:885
#, c-format
msgid "failed to create path '%s'%s"
msgstr "misslyckades skapa sökvägen \"%s\"%s"
-#: merge-recursive.c:874
+#: merge-recursive.c:896
#, c-format
msgid "Removing %s to make room for subdirectory\n"
msgstr "Tar bort %s för att göra plats för underkatalog\n"
-#: merge-recursive.c:888 merge-recursive.c:907
+#: merge-recursive.c:910 merge-recursive.c:929
msgid ": perhaps a D/F conflict?"
msgstr ": kanske en K/F-konflikt?"
-#: merge-recursive.c:897
+#: merge-recursive.c:919
#, c-format
msgid "refusing to lose untracked file at '%s'"
msgstr "vägrar förlora ospårad fil vid \"%s\""
-#: merge-recursive.c:938 builtin/cat-file.c:40
+#: merge-recursive.c:960 builtin/cat-file.c:41
#, c-format
msgid "cannot read object %s '%s'"
msgstr "kan inte läsa objektet %s: \"%s\""
-#: merge-recursive.c:941
+#: merge-recursive.c:965
#, c-format
msgid "blob expected for %s '%s'"
msgstr "blob förväntades för %s \"%s\""
-#: merge-recursive.c:965
+#: merge-recursive.c:990
#, c-format
msgid "failed to open '%s': %s"
msgstr "misslyckades öppna \"%s\": %s"
-#: merge-recursive.c:976
+#: merge-recursive.c:1001
#, c-format
msgid "failed to symlink '%s': %s"
msgstr "misslyckades skapa symboliska länken \"%s\": %s"
-#: merge-recursive.c:981
+#: merge-recursive.c:1006
#, c-format
msgid "do not know what to do with %06o %s '%s'"
msgstr "vet inte hur %06o %s \"%s\" skall hanteras"
-#: merge-recursive.c:1177
+#: merge-recursive.c:1199
#, c-format
msgid "Failed to merge submodule %s (not checked out)"
msgstr "Misslyckades slå ihop undermodulen %s (ej utcheckad)"
-#: merge-recursive.c:1184
+#: merge-recursive.c:1206
#, c-format
msgid "Failed to merge submodule %s (commits not present)"
msgstr "Misslyckades slå ihop undermodulen %s (incheckningar saknas)"
-#: merge-recursive.c:1191
+#: merge-recursive.c:1213
#, 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-recursive.c:1199 merge-recursive.c:1211
+#: merge-recursive.c:1221 merge-recursive.c:1233
#, c-format
msgid "Fast-forwarding submodule %s to the following commit:"
msgstr "Snabbspolar undermodulen %s till följande incheckning:"
-#: merge-recursive.c:1202 merge-recursive.c:1214
+#: merge-recursive.c:1224 merge-recursive.c:1236
#, c-format
msgid "Fast-forwarding submodule %s"
msgstr "Snabbspolar undermodulen %s"
-#: merge-recursive.c:1237
+#: merge-recursive.c:1259
#, 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:1241
+#: merge-recursive.c:1263
#, c-format
msgid "Failed to merge submodule %s (not fast-forward)"
msgstr "Misslyckades slå ihop undermodulen %s (ej snabbspolning)"
-#: merge-recursive.c:1242
+#: merge-recursive.c:1264
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:1245
+#: merge-recursive.c:1267
#, c-format
msgid ""
"If this is correct simply add it to the index for example\n"
@@ -3743,32 +3768,32 @@ msgstr ""
"\n"
"vilket godtar lösningen.\n"
-#: merge-recursive.c:1254
+#: merge-recursive.c:1276
#, c-format
msgid "Failed to merge submodule %s (multiple merges found)"
msgstr ""
"Misslyckades slå ihop undermodulen %s (flera sammanslagningar hittades)"
-#: merge-recursive.c:1327
+#: merge-recursive.c:1349
msgid "Failed to execute internal merge"
msgstr "Misslyckades exekvera intern sammanslagning"
-#: merge-recursive.c:1332
+#: merge-recursive.c:1354
#, c-format
msgid "Unable to add %s to database"
msgstr "Kunde inte lägga till %s till databasen"
-#: merge-recursive.c:1364
+#: merge-recursive.c:1386
#, c-format
msgid "Auto-merging %s"
msgstr "Slår ihop %s automatiskt"
-#: merge-recursive.c:1387
+#: merge-recursive.c:1410
#, 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:1459
+#: merge-recursive.c:1482
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -3777,7 +3802,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:1464
+#: merge-recursive.c:1487
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -3786,7 +3811,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:1471
+#: merge-recursive.c:1494
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -3795,7 +3820,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:1476
+#: merge-recursive.c:1499
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -3804,40 +3829,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:1511
+#: merge-recursive.c:1534
msgid "rename"
msgstr "namnbyte"
-#: merge-recursive.c:1511
+#: merge-recursive.c:1534
msgid "renamed"
msgstr "namnbytt"
-#: merge-recursive.c:1591 merge-recursive.c:2450 merge-recursive.c:3093
+#: merge-recursive.c:1614 merge-recursive.c:2472 merge-recursive.c:3117
#, c-format
msgid "Refusing to lose dirty file at %s"
msgstr "Vägrar förlora lortig fil vid \"%s\""
-#: merge-recursive.c:1601
+#: merge-recursive.c:1624
#, 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:1659
+#: merge-recursive.c:1682
#, 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:1690
+#: merge-recursive.c:1713
#, 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:1695
+#: merge-recursive.c:1718
#, 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:1714
+#: merge-recursive.c:1737
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
@@ -3846,17 +3871,17 @@ msgstr ""
"KONFLIKT (namnbyte/namnbyte): Namnbyte \"%s\"->\"%s\" på grenen \"%s\" "
"namnbyte \"%s\"->\"%s\" i \"%s\"%s"
-#: merge-recursive.c:1719
+#: merge-recursive.c:1742
msgid " (left unresolved)"
msgstr " (lämnad olöst)"
-#: merge-recursive.c:1828
+#: merge-recursive.c:1851
#, 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:2035
+#: merge-recursive.c:2056
#, c-format
msgid ""
"CONFLICT (directory rename split): Unclear where to place %s because "
@@ -3867,7 +3892,7 @@ msgstr ""
"katalogen %s bytte namn till flera andra kataloger, utan att någon "
"destination fick en majoritet av filerna."
-#: merge-recursive.c:2067
+#: merge-recursive.c:2088
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Existing file/dir at %s in the way of "
@@ -3876,7 +3901,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-recursive.c:2077
+#: merge-recursive.c:2098
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Cannot map more than one path to %s; "
@@ -3885,7 +3910,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-recursive.c:2169
+#: merge-recursive.c:2190
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename directory %s->%s in %s. Rename directory %s-"
@@ -3894,7 +3919,7 @@ msgstr ""
"KONFLIKT (namnbyte/namnbyte): Namnbytt katalog %s->%s i %s. Namnbytt katalog "
"%s->%s i %s"
-#: merge-recursive.c:2413
+#: merge-recursive.c:2435
#, c-format
msgid ""
"WARNING: Avoiding applying %s -> %s rename to %s, because %s itself was "
@@ -3903,52 +3928,52 @@ msgstr ""
"VARNING: Undviker att applicera namnändring %s -> %s på %s, då %s själv har "
"bytt namn."
-#: merge-recursive.c:2937
+#: merge-recursive.c:2961
#, c-format
msgid "cannot read object %s"
msgstr "kan inte läsa objektet %s"
-#: merge-recursive.c:2940
+#: merge-recursive.c:2964
#, c-format
msgid "object %s is not a blob"
msgstr "objektet %s är inte en blob"
-#: merge-recursive.c:3004
+#: merge-recursive.c:3028
msgid "modify"
msgstr "ändra"
-#: merge-recursive.c:3004
+#: merge-recursive.c:3028
msgid "modified"
msgstr "ändrad"
-#: merge-recursive.c:3016
+#: merge-recursive.c:3040
msgid "content"
msgstr "innehåll"
-#: merge-recursive.c:3020
+#: merge-recursive.c:3044
msgid "add/add"
msgstr "tillägg/tillägg"
-#: merge-recursive.c:3043
+#: merge-recursive.c:3067
#, c-format
msgid "Skipped %s (merged same as existing)"
msgstr "Hoppade över %s (sammanslagen samma som befintlig)"
-#: merge-recursive.c:3065 git-submodule.sh:937
+#: merge-recursive.c:3089 git-submodule.sh:937
msgid "submodule"
msgstr "undermodul"
-#: merge-recursive.c:3066
+#: merge-recursive.c:3090
#, c-format
msgid "CONFLICT (%s): Merge conflict in %s"
msgstr "KONFLIKT (%s): Sammanslagningskonflikt i %s"
-#: merge-recursive.c:3096
+#: merge-recursive.c:3120
#, c-format
msgid "Adding as %s instead"
msgstr "Lägger till som %s istället"
-#: merge-recursive.c:3178
+#: merge-recursive.c:3203
#, c-format
msgid ""
"Path updated: %s added in %s inside a directory that was renamed in %s; "
@@ -3957,7 +3982,7 @@ msgstr ""
"Uppdaterad sökväg: %s lade till %s inuti en katalog som bytte namn i %s; "
"flyttar den till %s."
-#: merge-recursive.c:3181
+#: merge-recursive.c:3206
#, c-format
msgid ""
"CONFLICT (file location): %s added in %s inside a directory that was renamed "
@@ -3966,7 +3991,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-recursive.c:3185
+#: merge-recursive.c:3210
#, c-format
msgid ""
"Path updated: %s renamed to %s in %s, inside a directory that was renamed in "
@@ -3975,7 +4000,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-recursive.c:3188
+#: merge-recursive.c:3213
#, c-format
msgid ""
"CONFLICT (file location): %s renamed to %s in %s, inside a directory that "
@@ -3984,227 +4009,227 @@ msgstr ""
"KONFLIKT (filplacering): %s bytte namn till %s i %s, inuti en katalog som "
"bytte namn i %s; flyttar den till %s."
-#: merge-recursive.c:3302
+#: merge-recursive.c:3327
#, c-format
msgid "Removing %s"
msgstr "Tar bort %s"
-#: merge-recursive.c:3325
+#: merge-recursive.c:3350
msgid "file/directory"
msgstr "fil/katalog"
-#: merge-recursive.c:3330
+#: merge-recursive.c:3355
msgid "directory/file"
msgstr "katalog/fil"
-#: merge-recursive.c:3337
+#: merge-recursive.c:3362
#, 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:3346
+#: merge-recursive.c:3371
#, c-format
msgid "Adding %s"
msgstr "Lägger till %s"
-#: merge-recursive.c:3355
+#: merge-recursive.c:3380
#, c-format
msgid "CONFLICT (add/add): Merge conflict in %s"
msgstr "KONFLIKT (tillägg/tillägg): Sammanslagningskonflikt i %s"
-#: merge-recursive.c:3393
-#, c-format
-msgid ""
-"Your local changes to the following files would be overwritten by merge:\n"
-" %s"
-msgstr ""
-"Dina lokala ändringar av följande filer skulle skrivas över av "
-"sammanslagning:\n"
-" %s"
-
-#: merge-recursive.c:3404
+#: merge-recursive.c:3424
msgid "Already up to date!"
msgstr "Redan à jour!"
-#: merge-recursive.c:3413
+#: merge-recursive.c:3433
#, c-format
msgid "merging of trees %s and %s failed"
msgstr "sammanslagning av träden %s och %s misslyckades"
-#: merge-recursive.c:3512
+#: merge-recursive.c:3537
msgid "Merging:"
msgstr "Slår ihop:"
-#: merge-recursive.c:3525
+#: merge-recursive.c:3550
#, 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:3564
+#: merge-recursive.c:3600
msgid "merge returned no commit"
msgstr "sammanslagningen returnerade ingen incheckning"
-#: merge-recursive.c:3630
+#: merge-recursive.c:3659
+#, c-format
+msgid ""
+"Your local changes to the following files would be overwritten by merge:\n"
+" %s"
+msgstr ""
+"Dina lokala ändringar av följande filer skulle skrivas över av "
+"sammanslagning:\n"
+" %s"
+
+#: merge-recursive.c:3756
#, c-format
msgid "Could not parse object '%s'"
msgstr "Kunde inte tolka objektet \"%s\""
-#: merge-recursive.c:3646 builtin/merge.c:698 builtin/merge.c:869
+#: merge-recursive.c:3774 builtin/merge.c:694 builtin/merge.c:874
msgid "Unable to write index."
msgstr "Kunde inte skriva indexet."
-#: midx.c:69
+#: midx.c:68
#, c-format
msgid "multi-pack-index file %s is too small"
msgstr "multi-pack-indexfilen %s är för liten"
-#: midx.c:85
+#: midx.c:84
#, 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:90
+#: midx.c:89
#, c-format
msgid "multi-pack-index version %d not recognized"
msgstr "multi-pack-indexversionen %d stöds inte"
-#: midx.c:95
+#: midx.c:94
#, c-format
msgid "hash version %u does not match"
msgstr "hash-versionen %u stämmer inte"
-#: midx.c:109
+#: midx.c:108
msgid "invalid chunk offset (too large)"
msgstr "felaktigt offset för stycke (för stort)"
-#: midx.c:133
+#: midx.c:132
msgid "terminating multi-pack-index chunk id appears earlier than expected"
-msgstr "avslutande multi-pack-index-stycke-ID förekommer tidigare än förväntat"
+msgstr "avslutande multi-pack-index-stycke-id förekommer tidigare än förväntat"
-#: midx.c:146
+#: midx.c:145
msgid "multi-pack-index missing required pack-name chunk"
msgstr "multi-pack-index saknar krävd paketnamn-stycke"
-#: midx.c:148
+#: midx.c:147
msgid "multi-pack-index missing required OID fanout chunk"
msgstr "multi-pack-index saknar krävt OID-utbredningsstycke"
-#: midx.c:150
+#: midx.c:149
msgid "multi-pack-index missing required OID lookup chunk"
msgstr "multi-pack-index saknar krävt OID-uppslagnignsstycke"
-#: midx.c:152
+#: midx.c:151
msgid "multi-pack-index missing required object offsets chunk"
msgstr "multi-pack-index saknar krävt objekt-offsetstycke"
-#: midx.c:166
+#: midx.c:165
#, 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:211
+#: midx.c:210
#, c-format
msgid "bad pack-int-id: %u (%u total packs)"
msgstr "bad pack-int-id: %u (%u paket totalt)"
-#: midx.c:261
+#: midx.c:260
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:289
+#: midx.c:288
msgid "error preparing packfile from multi-pack-index"
msgstr "fel när paketfiler från multi-pack-index skulle förberedas"
-#: midx.c:470
+#: midx.c:469
#, c-format
msgid "failed to add packfile '%s'"
msgstr "misslyckades läsa paketfilen \"%s\""
-#: midx.c:476
+#: midx.c:475
#, c-format
msgid "failed to open pack-index '%s'"
msgstr "misslyckades öppna paketindexet \"%s\""
-#: midx.c:536
+#: midx.c:535
#, c-format
msgid "failed to locate object %d in packfile"
msgstr "misslyckades hitta objekt %d i paketfilen"
-#: midx.c:865
+#: midx.c:864
#, c-format
msgid "did not see pack-file %s to drop"
msgstr "såg inte paketfilen %s som skulle kastas"
-#: midx.c:1036
+#: midx.c:1035
#, c-format
msgid "failed to clear multi-pack-index at %s"
msgstr "misslyckades städa multi-pack-index på %s"
-#: midx.c:1091
+#: midx.c:1090
msgid "Looking for referenced packfiles"
msgstr "Ser efter refererade packfiler"
-#: midx.c:1106
+#: midx.c:1105
#, 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:1110
+#: midx.c:1109
msgid "Verifying OID order in MIDX"
msgstr "Bekräftar OID-ordning i MIDX"
-#: midx.c:1119
+#: midx.c:1118
#, 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:1138
+#: midx.c:1137
msgid "Sorting objects by packfile"
msgstr "Sorterar objekt efter packfil"
-#: midx.c:1144
+#: midx.c:1143
msgid "Verifying object offsets"
msgstr "Bekräftar offset för objekt"
-#: midx.c:1160
+#: midx.c:1159
#, c-format
msgid "failed to load pack entry for oid[%d] = %s"
msgstr "misslyckades läsa paketpost för oid[%d] = %s"
-#: midx.c:1166
+#: midx.c:1165
#, c-format
msgid "failed to load pack-index for packfile %s"
msgstr "misslyckades läsa paketindex för paketfil %s"
-#: midx.c:1175
+#: midx.c:1174
#, 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:1350
+#: midx.c:1349
msgid "could not start pack-objects"
msgstr "kunde inte starta pack-objects"
-#: midx.c:1369
+#: midx.c:1368
msgid "could not finish pack-objects"
msgstr "kunde inte avsluta pack-objects"
-#: name-hash.c:532
+#: name-hash.c:537
#, c-format
msgid "unable to create lazy_dir thread: %s"
msgstr "misslyckades skapa lazy_dir-tråd: %s"
-#: name-hash.c:554
+#: name-hash.c:559
#, c-format
msgid "unable to create lazy_name thread: %s"
msgstr "misslyckades skapa lazy_name-tråd: %s"
-#: name-hash.c:560
+#: name-hash.c:565
#, c-format
msgid "unable to join lazy_name thread: %s"
msgstr "misslyckades utföra join på lazy_name-tråd: %s"
@@ -4249,41 +4274,41 @@ 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.c:54
+#: object.c:53
#, c-format
msgid "invalid object type \"%s\""
msgstr "ogiltig objekttyp \"%s\""
-#: object.c:174
+#: object.c:173
#, c-format
msgid "object %s is a %s, not a %s"
msgstr "objektet %s är en %s, inte en %s"
-#: object.c:234
+#: object.c:233
#, c-format
msgid "object %s has unknown type id %d"
msgstr "objektet %s har okänd typ-id %d"
-#: object.c:247
+#: object.c:246
#, c-format
msgid "unable to parse object: %s"
msgstr "kunde inte tolka objektet: %s"
-#: object.c:267 object.c:278
+#: object.c:266 object.c:277
#, c-format
msgid "hash mismatch %s"
msgstr "hashvärde stämmer inte överens %s"
-#: packfile.c:648
+#: packfile.c:641
msgid "offset before end of packfile (broken .idx?)"
msgstr "offset före slutet av packfilen (trasig .idx?)"
-#: packfile.c:1899
+#: packfile.c:1887
#, c-format
msgid "offset before start of pack index for %s (corrupt index?)"
msgstr "offset före slutet av packindex för %s (trasigt index?)"
-#: packfile.c:1903
+#: packfile.c:1891
#, c-format
msgid "offset beyond end of pack index for %s (truncated index?)"
msgstr "offset borton slutet av packindex för %s (trunkerat index?)"
@@ -4328,26 +4353,26 @@ msgstr "tvetydig flagga: %s (kan vara --%s%s eller --%s%s)"
msgid "did you mean `--%s` (with two dashes ?)"
msgstr "menade du \"--%s\" (med två bindestreck?)"
-#: parse-options.c:859
+#: parse-options.c:860
#, c-format
msgid "unknown option `%s'"
msgstr "okänd flagga \"%s\""
-#: parse-options.c:861
+#: parse-options.c:862
#, c-format
msgid "unknown switch `%c'"
msgstr "okänd flagga \"%c\""
-#: parse-options.c:863
+#: parse-options.c:864
#, c-format
msgid "unknown non-ascii option in string: `%s'"
msgstr "okänd icke-ascii-flagga i strängen: \"%s\""
-#: parse-options.c:887
+#: parse-options.c:888
msgid "..."
msgstr "..."
-#: parse-options.c:906
+#: parse-options.c:907
#, c-format
msgid "usage: %s"
msgstr "användning: %s"
@@ -4355,21 +4380,21 @@ msgstr "användning: %s"
#. TRANSLATORS: the colon here should align with the
#. one in "usage: %s" translation.
#.
-#: parse-options.c:912
+#: parse-options.c:913
#, c-format
msgid " or: %s"
msgstr " eller: %s"
-#: parse-options.c:915
+#: parse-options.c:916
#, c-format
msgid " %s"
msgstr " %s"
-#: parse-options.c:954
+#: parse-options.c:955
msgid "-NUM"
msgstr "-TAL"
-#: parse-options.c:968
+#: parse-options.c:969
#, c-format
msgid "alias of --%s"
msgstr "alias för --%s"
@@ -4538,29 +4563,38 @@ msgstr "kunde inte skapa trådad lstat: %s"
msgid "unable to parse --pretty format"
msgstr "kunde inte tolka format för --pretty"
-#: range-diff.c:70
+#: promisor-remote.c:25
+msgid "Remote with no URL"
+msgstr "Fjärr utan URL"
+
+#: promisor-remote.c:61
+#, c-format
+msgid "promisor remote name cannot begin with '/': %s"
+msgstr "kontraktsfjärr kan inte börja med \"/\": %s"
+
+#: range-diff.c:71
msgid "could not start `log`"
msgstr "kunde inte starta \"log\""
-#: range-diff.c:72
+#: range-diff.c:73
msgid "could not read `log` output"
msgstr "kunde inte läsa utdata från \"log\""
-#: range-diff.c:91 sequencer.c:5021
+#: range-diff.c:92 sequencer.c:4985
#, c-format
msgid "could not parse commit '%s'"
msgstr "kunde inte tolka incheckningen \"%s\""
-#: range-diff.c:117
+#: range-diff.c:118
#, c-format
msgid "could not parse git header '%.*s'"
msgstr "kunde inte tolka git-huvudet \"%.*s\""
-#: range-diff.c:274
+#: range-diff.c:275
msgid "failed to generate diff"
msgstr "misslyckades skapa diff"
-#: range-diff.c:506 range-diff.c:508
+#: range-diff.c:507 range-diff.c:509
#, c-format
msgid "could not parse log for '%s'"
msgstr "kunde inte tolka loggen för \"%s\""
@@ -4605,11 +4639,11 @@ msgstr "kan inte ta status på \"%s\""
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:1499
+#: read-cache.c:1520
msgid "Refresh index"
msgstr "Uppdatera indexet"
-#: read-cache.c:1613
+#: read-cache.c:1635
#, c-format
msgid ""
"index.version set, but the value is invalid.\n"
@@ -4618,7 +4652,7 @@ msgstr ""
"index.version satt, men värdet är ogiltigt.\n"
"Använder version %i"
-#: read-cache.c:1623
+#: read-cache.c:1645
#, c-format
msgid ""
"GIT_INDEX_VERSION set, but the value is invalid.\n"
@@ -4627,138 +4661,138 @@ msgstr ""
"GIT_INDEX_VERSION satt, men värdet är ogiltigt.\n"
"Använder version %i"
-#: read-cache.c:1679
+#: read-cache.c:1701
#, c-format
msgid "bad signature 0x%08x"
msgstr "felaktig signatur 0x%08x"
-#: read-cache.c:1682
+#: read-cache.c:1704
#, c-format
msgid "bad index version %d"
msgstr "felaktig indexversion %d"
-#: read-cache.c:1691
+#: read-cache.c:1713
msgid "bad index file sha1 signature"
msgstr "felaktig sha1-signatur för indexfil"
-#: read-cache.c:1721
+#: read-cache.c:1743
#, 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:1723
+#: read-cache.c:1745
#, c-format
msgid "ignoring %.4s extension"
msgstr "ignorerar filtillägget %.4s"
-#: read-cache.c:1760
+#: read-cache.c:1782
#, c-format
msgid "unknown index entry format 0x%08x"
msgstr "okänt format 0x%08x på indexpost"
-#: read-cache.c:1776
+#: read-cache.c:1798
#, 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:1833
+#: read-cache.c:1855
msgid "unordered stage entries in index"
msgstr "osorterade köposter i index"
-#: read-cache.c:1836
+#: read-cache.c:1858
#, c-format
msgid "multiple stage entries for merged file '%s'"
msgstr "flera köposter för den sammanslagna filen \"%s\""
-#: read-cache.c:1839
+#: read-cache.c:1861
#, c-format
msgid "unordered stage entries for '%s'"
msgstr "osorterade köposter för \"%s\""
-#: read-cache.c:1946 read-cache.c:2234 rerere.c:565 rerere.c:599 rerere.c:1111
-#: builtin/add.c:460 builtin/check-ignore.c:178 builtin/checkout.c:467
-#: builtin/checkout.c:651 builtin/clean.c:956 builtin/commit.c:347
+#: read-cache.c:1967 read-cache.c:2255 rerere.c:565 rerere.c:599 rerere.c:1111
+#: builtin/add.c:460 builtin/check-ignore.c:178 builtin/checkout.c:468
+#: builtin/checkout.c:652 builtin/clean.c:967 builtin/commit.c:347
#: builtin/diff-tree.c:120 builtin/grep.c:499 builtin/mv.c:145
#: builtin/reset.c:245 builtin/rm.c:271 builtin/submodule--helper.c:330
msgid "index file corrupt"
msgstr "indexfilen trasig"
-#: read-cache.c:2087
+#: read-cache.c:2108
#, c-format
msgid "unable to create load_cache_entries thread: %s"
msgstr "kunde inte läsa in cache_entries-tråden: %s"
-#: read-cache.c:2100
+#: read-cache.c:2121
#, c-format
msgid "unable to join load_cache_entries thread: %s"
msgstr "kunde inte utföra join på cache_entries-tråden: %s"
-#: read-cache.c:2133
+#: read-cache.c:2154
#, c-format
msgid "%s: index file open failed"
msgstr "%s: öppning av indexfilen misslyckades"
-#: read-cache.c:2137
+#: read-cache.c:2158
#, c-format
msgid "%s: cannot stat the open index"
msgstr "%s: kan inte ta startus på det öppna indexet"
-#: read-cache.c:2141
+#: read-cache.c:2162
#, c-format
msgid "%s: index file smaller than expected"
msgstr "%s: indexfilen mindre än förväntat"
-#: read-cache.c:2145
+#: read-cache.c:2166
#, c-format
msgid "%s: unable to map index file"
msgstr "%s: kan inte koppla indexfilen"
-#: read-cache.c:2187
+#: read-cache.c:2208
#, c-format
msgid "unable to create load_index_extensions thread: %s"
msgstr "kunde inte skapa load_index_extensions-tråden: %s"
-#: read-cache.c:2214
+#: read-cache.c:2235
#, 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:2246
+#: read-cache.c:2267
#, c-format
msgid "could not freshen shared index '%s'"
msgstr "kunde inte uppdatera delat index \"%s\""
-#: read-cache.c:2293
+#: read-cache.c:2314
#, 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:2989 wrapper.c:658 builtin/merge.c:1114
+#: read-cache.c:3010 wrapper.c:622 builtin/merge.c:1119
#, c-format
msgid "could not close '%s'"
msgstr "kunde inte stänga \"%s\""
-#: read-cache.c:3092 sequencer.c:2358 sequencer.c:3928
+#: read-cache.c:3113 sequencer.c:2296 sequencer.c:3917
#, c-format
msgid "could not stat '%s'"
msgstr "kunde inte ta status på \"%s\""
-#: read-cache.c:3105
+#: read-cache.c:3126
#, c-format
msgid "unable to open git dir: %s"
msgstr "kunde inte öppna git-katalog: %s"
-#: read-cache.c:3117
+#: read-cache.c:3138
#, c-format
msgid "unable to unlink: %s"
msgstr "misslyckades ta bort länken: %s"
-#: read-cache.c:3142
+#: read-cache.c:3163
#, c-format
msgid "cannot fix permission bits on '%s'"
msgstr "kan inte rätta behörighetsbitar på \"%s\""
-#: read-cache.c:3291
+#: read-cache.c:3312
#, c-format
msgid "%s: cannot drop to stage #0"
msgstr "%s: kan inte återgå till kö 0"
@@ -4866,8 +4900,8 @@ msgstr ""
msgid "Note that empty commits are commented out"
msgstr "Observera att tomma incheckningar är utkommenterade"
-#: rebase-interactive.c:105 rerere.c:485 rerere.c:692 sequencer.c:3447
-#: sequencer.c:3473 sequencer.c:5120 builtin/fsck.c:356 builtin/rebase.c:235
+#: rebase-interactive.c:105 rerere.c:485 rerere.c:692 sequencer.c:3388
+#: sequencer.c:3414 sequencer.c:5084 builtin/fsck.c:356 builtin/rebase.c:235
#, c-format
msgid "could not write '%s'"
msgstr "kunde inte skriva \"%s\""
@@ -4916,7 +4950,7 @@ msgstr "\"%s\" pekar inte på ett giltigt objekt!"
msgid "ignoring dangling symref %s"
msgstr "ignorerar dinglande symbolisk referens %s"
-#: refs.c:669 ref-filter.c:2092
+#: refs.c:669 ref-filter.c:2098
#, c-format
msgid "ignoring broken ref %s"
msgstr "ignorerar trasig referens %s"
@@ -4941,14 +4975,14 @@ msgstr "referensen \"%s\" finns redan"
msgid "unexpected object ID when writing '%s'"
msgstr "oväntat objekt-id vid skrivning \"%s\""
-#: refs.c:833 sequencer.c:403 sequencer.c:2709 sequencer.c:2913
-#: sequencer.c:2927 sequencer.c:3184 sequencer.c:5037 wrapper.c:656
+#: refs.c:833 sequencer.c:403 sequencer.c:2647 sequencer.c:2851
+#: sequencer.c:2865 sequencer.c:3122 sequencer.c:5001 wrapper.c:620
#, c-format
msgid "could not write to '%s'"
msgstr "kunde inte skriva till \"%s\""
-#: refs.c:860 wrapper.c:225 wrapper.c:395 builtin/am.c:715
-#: builtin/rebase.c:1003
+#: refs.c:860 wrapper.c:188 wrapper.c:358 builtin/am.c:714
+#: builtin/rebase.c:1004
#, c-format
msgid "could not open '%s' for writing"
msgstr "kunde inte öppna \"%s\" för skrivning"
@@ -4983,21 +5017,21 @@ msgstr "vägrar uppdatera referens med trasigt namn \"%s\""
msgid "update_ref failed for ref '%s': %s"
msgstr "update_ref misslyckades för referensen \"%s\": %s"
-#: refs.c:2012
+#: refs.c:2023
#, c-format
msgid "multiple updates for ref '%s' not allowed"
msgstr "flera uppdateringar för referensen \"%s\" tillåts inte"
-#: refs.c:2044
+#: refs.c:2055
msgid "ref updates forbidden inside quarantine environment"
msgstr "referensuppdateringar förbjudna i karantänmiljö"
-#: refs.c:2140 refs.c:2170
+#: refs.c:2151 refs.c:2181
#, c-format
msgid "'%s' exists; cannot create '%s'"
msgstr "\"%s\" finns; kan inte skapa \"%s\""
-#: refs.c:2146 refs.c:2181
+#: refs.c:2157 refs.c:2192
#, c-format
msgid "cannot process '%s' and '%s' at the same time"
msgstr "kan inte hantera \"%s\" och \"%s\" samtidigt"
@@ -5007,13 +5041,13 @@ msgstr "kan inte hantera \"%s\" och \"%s\" samtidigt"
msgid "could not remove reference %s"
msgstr "kunde inte ta bort referensen %s"
-#: refs/files-backend.c:1248 refs/packed-backend.c:1532
-#: refs/packed-backend.c:1542
+#: refs/files-backend.c:1248 refs/packed-backend.c:1541
+#: refs/packed-backend.c:1551
#, c-format
msgid "could not delete reference %s: %s"
msgstr "kunde inte ta bort referensen %s: %s"
-#: refs/files-backend.c:1251 refs/packed-backend.c:1545
+#: refs/files-backend.c:1251 refs/packed-backend.c:1554
#, c-format
msgid "could not delete references: %s"
msgstr "kunde inte ta bort referenser: %s"
@@ -5023,7 +5057,7 @@ msgstr "kunde inte ta bort referenser: %s"
msgid "invalid refspec '%s'"
msgstr "felaktig referensspecifikation: \"%s\""
-#: ref-filter.c:42 wt-status.c:1934
+#: ref-filter.c:42 wt-status.c:1938
msgid "gone"
msgstr "försvunnen"
@@ -5042,281 +5076,281 @@ msgstr "bakom %d"
msgid "ahead %d, behind %d"
msgstr "före %d, bakom %d"
-#: ref-filter.c:162
+#: ref-filter.c:165
#, c-format
msgid "expected format: %%(color:<color>)"
msgstr "förväntat format: %%(color:<color>)"
-#: ref-filter.c:164
+#: ref-filter.c:167
#, c-format
msgid "unrecognized color: %%(color:%s)"
msgstr "okänd färg: %%(color:%s)"
-#: ref-filter.c:186
+#: ref-filter.c:189
#, c-format
msgid "Integer value expected refname:lstrip=%s"
msgstr "Heltalsvärde förväntades refname:lstrip=%s"
-#: ref-filter.c:190
+#: ref-filter.c:193
#, c-format
msgid "Integer value expected refname:rstrip=%s"
msgstr "Heltalsvärde förväntades refname:rstrip=%s"
-#: ref-filter.c:192
+#: ref-filter.c:195
#, c-format
msgid "unrecognized %%(%s) argument: %s"
msgstr "okänt %%(%s)-argument: %s"
-#: ref-filter.c:247
+#: ref-filter.c:250
#, c-format
msgid "%%(objecttype) does not take arguments"
msgstr "%%(objecttype) tar inte argument"
-#: ref-filter.c:269
+#: ref-filter.c:272
#, c-format
msgid "unrecognized %%(objectsize) argument: %s"
msgstr "okänt %%(objectsize)-argument: %s"
-#: ref-filter.c:277
+#: ref-filter.c:280
#, c-format
msgid "%%(deltabase) does not take arguments"
msgstr "%%(deltabase) tar inte argument"
-#: ref-filter.c:289
+#: ref-filter.c:292
#, c-format
msgid "%%(body) does not take arguments"
msgstr "%%(body) tar inte argument"
-#: ref-filter.c:298
+#: ref-filter.c:301
#, c-format
msgid "%%(subject) does not take arguments"
msgstr "%%(subject) tar inte argument"
-#: ref-filter.c:320
+#: ref-filter.c:323
#, c-format
msgid "unknown %%(trailers) argument: %s"
msgstr "okänt %%(trailers)-argument: %s"
-#: ref-filter.c:349
+#: ref-filter.c:352
#, c-format
msgid "positive value expected contents:lines=%s"
msgstr "positivt värde förväntat contents:lines=%s"
-#: ref-filter.c:351
+#: ref-filter.c:354
#, c-format
msgid "unrecognized %%(contents) argument: %s"
msgstr "okänt %%(contents)-argument: %s"
-#: ref-filter.c:366
+#: ref-filter.c:369
#, c-format
msgid "positive value expected objectname:short=%s"
msgstr "positivt värde förväntat objectname:short=%s"
-#: ref-filter.c:370
+#: ref-filter.c:373
#, c-format
msgid "unrecognized %%(objectname) argument: %s"
msgstr "okänt %%(objectname)-argument: %s"
-#: ref-filter.c:400
+#: ref-filter.c:403
#, c-format
msgid "expected format: %%(align:<width>,<position>)"
msgstr "förväntat format: %%(align:<bredd>,<position>)"
-#: ref-filter.c:412
+#: ref-filter.c:415
#, c-format
msgid "unrecognized position:%s"
msgstr "okänd position:%s"
-#: ref-filter.c:419
+#: ref-filter.c:422
#, c-format
msgid "unrecognized width:%s"
msgstr "okänd bredd:%s"
-#: ref-filter.c:428
+#: ref-filter.c:431
#, c-format
msgid "unrecognized %%(align) argument: %s"
msgstr "okänt %%(align)-argument: %s"
-#: ref-filter.c:436
+#: ref-filter.c:439
#, c-format
msgid "positive width expected with the %%(align) atom"
msgstr "positiv bredd förväntad med atomen %%(align)"
-#: ref-filter.c:454
+#: ref-filter.c:457
#, c-format
msgid "unrecognized %%(if) argument: %s"
msgstr "okänt %%(if)-argument: %s"
-#: ref-filter.c:556
+#: ref-filter.c:559
#, c-format
msgid "malformed field name: %.*s"
msgstr "felformat fältnamn: %.*s"
-#: ref-filter.c:583
+#: ref-filter.c:586
#, c-format
msgid "unknown field name: %.*s"
msgstr "okänt fältnamn: %.*s"
-#: ref-filter.c:587
+#: ref-filter.c:590
#, c-format
msgid ""
"not a git repository, but the field '%.*s' requires access to object data"
msgstr ""
"inte ett git-arkiv, men fältet \"%.*s\" kräver tillgång till objektdata"
-#: ref-filter.c:711
+#: ref-filter.c:714
#, c-format
msgid "format: %%(if) atom used without a %%(then) atom"
msgstr "format: atomen %%(if) använd utan en %%(then)-atom"
-#: ref-filter.c:774
+#: ref-filter.c:777
#, c-format
msgid "format: %%(then) atom used without an %%(if) atom"
msgstr "format: atomen %%(then) använd utan en %%(if)-atom"
-#: ref-filter.c:776
+#: ref-filter.c:779
#, c-format
msgid "format: %%(then) atom used more than once"
msgstr "format: atomen %%(then) använd mer än en gång"
-#: ref-filter.c:778
+#: ref-filter.c:781
#, c-format
msgid "format: %%(then) atom used after %%(else)"
msgstr "format: atomen %%(then) använd efter %%(else)"
-#: ref-filter.c:806
+#: ref-filter.c:809
#, c-format
msgid "format: %%(else) atom used without an %%(if) atom"
msgstr "format: atomen %%(else) använd utan en %%(if)-atom"
-#: ref-filter.c:808
+#: ref-filter.c:811
#, c-format
msgid "format: %%(else) atom used without a %%(then) atom"
msgstr "format: atomen %%(else) använd utan en %%(then)-atom"
-#: ref-filter.c:810
+#: ref-filter.c:813
#, c-format
msgid "format: %%(else) atom used more than once"
msgstr "format: atomen %%(else) använd mer än en gång"
-#: ref-filter.c:825
+#: ref-filter.c:828
#, c-format
msgid "format: %%(end) atom used without corresponding atom"
msgstr "format: atomen %%(end) använd utan motsvarande atom"
-#: ref-filter.c:882
+#: ref-filter.c:885
#, c-format
msgid "malformed format string %s"
msgstr "felformad formatsträng %s"
-#: ref-filter.c:1485
+#: ref-filter.c:1488
#, c-format
msgid "no branch, rebasing %s"
msgstr "ingen gren, ombaserar %s"
-#: ref-filter.c:1488
+#: ref-filter.c:1491
#, c-format
msgid "no branch, rebasing detached HEAD %s"
msgstr "ingen gren, ombaserar frånkopplat HEAD %s"
-#: ref-filter.c:1491
+#: ref-filter.c:1494
#, c-format
msgid "no branch, bisect started on %s"
msgstr "ingen gren, \"bisect\" startad på %s"
-#: ref-filter.c:1501
+#: ref-filter.c:1504
msgid "no branch"
msgstr "ingen gren"
-#: ref-filter.c:1537 ref-filter.c:1743
+#: ref-filter.c:1540 ref-filter.c:1749
#, c-format
msgid "missing object %s for %s"
msgstr "objektet %s saknas för %s"
-#: ref-filter.c:1547
+#: ref-filter.c:1550
#, c-format
msgid "parse_object_buffer failed on %s for %s"
msgstr "parse_object_buffer misslyckades på %s för %s"
-#: ref-filter.c:1998
+#: ref-filter.c:2004
#, c-format
msgid "malformed object at '%s'"
msgstr "felformat objekt vid \"%s\""
-#: ref-filter.c:2087
+#: ref-filter.c:2093
#, c-format
msgid "ignoring ref with broken name %s"
msgstr "ignorerar referens med trasigt namn %s"
-#: ref-filter.c:2382
+#: ref-filter.c:2389
#, c-format
msgid "format: %%(end) atom missing"
msgstr "format: atomen %%(end) saknas"
-#: ref-filter.c:2482
+#: ref-filter.c:2489
#, c-format
msgid "option `%s' is incompatible with --merged"
msgstr "flaggan \"%s\" är inkompatibel med --merged"
-#: ref-filter.c:2485
+#: ref-filter.c:2492
#, c-format
msgid "option `%s' is incompatible with --no-merged"
msgstr "flaggan \"%s\" är inkompatibel med --no-merged"
-#: ref-filter.c:2495
+#: ref-filter.c:2502
#, c-format
msgid "malformed object name %s"
msgstr "felformat objektnamn %s"
-#: ref-filter.c:2500
+#: ref-filter.c:2507
#, c-format
msgid "option `%s' must point to a commit"
msgstr "flaggan \"%s\" måste peka på en incheckning"
-#: remote.c:363
+#: remote.c:366
#, c-format
msgid "config remote shorthand cannot begin with '/': %s"
msgstr "konfigurerad kortform för fjärr kan inte börja med \"/\": %s"
-#: remote.c:410
+#: remote.c:413
msgid "more than one receivepack given, using the first"
msgstr "mer än en receivepack angavs, använder den första"
-#: remote.c:418
+#: remote.c:421
msgid "more than one uploadpack given, using the first"
msgstr "mer än en uploadpack angavs, använder den första"
-#: remote.c:608
+#: remote.c:611
#, 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:612
+#: remote.c:615
#, c-format
msgid "%s usually tracks %s, not %s"
msgstr "%s spårar vanligtvis %s, inte %s"
-#: remote.c:616
+#: remote.c:619
#, c-format
msgid "%s tracks both %s and %s"
msgstr "%s spårar både %s och %s"
-#: remote.c:684
+#: remote.c:687
#, c-format
msgid "key '%s' of pattern had no '*'"
msgstr "nyckeln \"%s\" i mönstret innehåller ingen \"*\""
-#: remote.c:694
+#: remote.c:697
#, c-format
msgid "value '%s' of pattern has no '*'"
msgstr "värdet \"%s\" i mönstret innehåller ingen \"*\""
-#: remote.c:1000
+#: remote.c:1003
#, c-format
msgid "src refspec %s does not match any"
msgstr "käll-referensspecifikationen %s motsvarar ingen"
-#: remote.c:1005
+#: remote.c:1008
#, c-format
msgid "src refspec %s matches more than one"
msgstr "käll-referensspecifikationen %s motsvarar mer än en"
@@ -5325,7 +5359,7 @@ msgstr "käll-referensspecifikationen %s motsvarar mer än en"
#. <remote> <src>:<dst>" push, and "being pushed ('%s')" is
#. the <src>.
#.
-#: remote.c:1020
+#: remote.c:1023
#, c-format
msgid ""
"The destination you provided is not a full refname (i.e.,\n"
@@ -5348,7 +5382,7 @@ msgstr ""
"\n"
"Inget av dem fungerade, så vi gav upp. Ange fullständig referens."
-#: remote.c:1040
+#: remote.c:1043
#, c-format
msgid ""
"The <src> part of the refspec is a commit object.\n"
@@ -5359,7 +5393,7 @@ msgstr ""
"Var det meningen att skapa en ny gren genom att sända\n"
"till \"%s:refs/heads/%s\"?"
-#: remote.c:1045
+#: remote.c:1048
#, c-format
msgid ""
"The <src> part of the refspec is a tag object.\n"
@@ -5370,7 +5404,7 @@ msgstr ""
"Var det meningen att skapa en ny tagg genom att sända\n"
"till \"%s:refs/tags/%s\"?"
-#: remote.c:1050
+#: remote.c:1053
#, c-format
msgid ""
"The <src> part of the refspec is a tree object.\n"
@@ -5381,7 +5415,7 @@ msgstr ""
"Var det meningen att tagga ett nytt träd genom att sända\n"
"till \"%s:refs/tags/%s\"?"
-#: remote.c:1055
+#: remote.c:1058
#, c-format
msgid ""
"The <src> part of the refspec is a blob object.\n"
@@ -5392,114 +5426,114 @@ msgstr ""
"Var det meningen att tagga en ny blob genom att sända\n"
"till \"%s:refs/tags/%s\"?"
-#: remote.c:1091
+#: remote.c:1094
#, c-format
msgid "%s cannot be resolved to branch"
msgstr "%s kan inte slås upp till en gren"
-#: remote.c:1102
+#: remote.c:1105
#, c-format
msgid "unable to delete '%s': remote ref does not exist"
msgstr "kan inte ta bort \"%s\": fjärreferensen finns inte"
-#: remote.c:1114
+#: remote.c:1117
#, c-format
msgid "dst refspec %s matches more than one"
msgstr "fjärr-referensspecifikationen \"%s\" motsvarar mer än en"
-#: remote.c:1121
+#: remote.c:1124
#, 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:1624 remote.c:1725
+#: remote.c:1627 remote.c:1728
msgid "HEAD does not point to a branch"
msgstr "HEAD pekar inte på en gren"
-#: remote.c:1633
+#: remote.c:1636
#, c-format
msgid "no such branch: '%s'"
msgstr "okänd gren: \"%s\""
-#: remote.c:1636
+#: remote.c:1639
#, c-format
msgid "no upstream configured for branch '%s'"
msgstr "ingen standarduppström angiven för grenen \"%s\""
-#: remote.c:1642
+#: remote.c:1645
#, 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:1657
+#: remote.c:1660
#, 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:1669
+#: remote.c:1672
#, c-format
msgid "branch '%s' has no remote for pushing"
msgstr "grenen \"%s\" har ingen fjärr för \"push\""
-#: remote.c:1679
+#: remote.c:1682
#, c-format
msgid "push refspecs for '%s' do not include '%s'"
msgstr "\"push\"-referensspecifikation för \"%s\" innehåller inte \"%s\""
-#: remote.c:1692
+#: remote.c:1695
msgid "push has no destination (push.default is 'nothing')"
msgstr "\"push\" har inget mål (push.default är \"ingenting\")"
-#: remote.c:1714
+#: remote.c:1717
msgid "cannot resolve 'simple' push to a single destination"
msgstr "\"enkel push\" motsvarar flera olika mål"
-#: remote.c:1840
+#: remote.c:1843
#, c-format
msgid "couldn't find remote ref %s"
msgstr "Kunde inte hitta fjärr-referensen %s"
-#: remote.c:1853
+#: remote.c:1856
#, c-format
msgid "* Ignoring funny ref '%s' locally"
msgstr "* Ignorerar märklig referens \"%s\" lokalt"
-#: remote.c:2016
+#: remote.c:2019
#, 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:2020
+#: remote.c:2023
msgid " (use \"git branch --unset-upstream\" to fixup)\n"
msgstr " (använd \"git branch --unset-upstream\" för att rätta)\n"
-#: remote.c:2023
+#: remote.c:2026
#, c-format
msgid "Your branch is up to date with '%s'.\n"
msgstr "Din gren är à jour med \"%s\".\n"
-#: remote.c:2027
+#: remote.c:2030
#, c-format
msgid "Your branch and '%s' refer to different commits.\n"
msgstr "Din gren och \"%s\" pekar på olika incheckningar.\n"
-#: remote.c:2030
+#: remote.c:2033
#, c-format
msgid " (use \"%s\" for details)\n"
msgstr " (använd \"%s\" för detaljer)\n"
-#: remote.c:2034
+#: remote.c:2037
#, 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:2040
+#: remote.c:2043
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:2043
+#: remote.c:2046
#, c-format
msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
msgid_plural ""
@@ -5509,11 +5543,11 @@ msgstr[0] ""
msgstr[1] ""
"Din gren ligger efter \"%s\" med %d incheckningar, och kan snabbspolas.\n"
-#: remote.c:2051
+#: remote.c:2054
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:2054
+#: remote.c:2057
#, c-format
msgid ""
"Your branch and '%s' have diverged,\n"
@@ -5528,11 +5562,11 @@ msgstr[1] ""
"Din gren och \"%s\" har divergerat,\n"
"och har %d respektive %d olika incheckningar.\n"
-#: remote.c:2064
+#: remote.c:2067
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:2247
+#: remote.c:2250
#, c-format
msgid "cannot parse expected object name '%s'"
msgstr "kan inte tolka förväntat objektnamn \"%s\""
@@ -5645,20 +5679,20 @@ msgstr "Glömde lösning för \"%s\"\n"
msgid "unable to open rr-cache directory"
msgstr "kan inte uppdatera katalogen rr-cache"
-#: revision.c:2507
+#: revision.c:2509
msgid "your current branch appears to be broken"
msgstr "din nuvarande gren verkar vara trasig"
-#: revision.c:2510
+#: revision.c:2512
#, 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:2710
+#: revision.c:2720
msgid "--first-parent is incompatible with --bisect"
msgstr "--first-parent är inkompatibelt med --bisect"
-#: revision.c:2714
+#: revision.c:2724
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"
@@ -5680,29 +5714,29 @@ msgstr ""
"Kroken \"%s\" ignorerades eftersom den inte är markerad som körbar.\n"
"Du kan inaktivera varningen med \"git config advice.ignoredHook false\"."
-#: send-pack.c:141
+#: send-pack.c:142
msgid "unexpected flush packet while reading remote unpack status"
msgstr "oväntat flush-paket vid läsning av fjärruppackningsstatus"
-#: send-pack.c:143
+#: send-pack.c:144
#, c-format
msgid "unable to parse remote unpack status: %s"
msgstr "kunde inte tolka fjärruppackningsstatus: %s"
-#: send-pack.c:145
+#: send-pack.c:146
#, c-format
msgid "remote unpack failed: %s"
msgstr "fjärruppackning misslyckades: %s"
-#: send-pack.c:306
+#: send-pack.c:307
msgid "failed to sign the push certificate"
msgstr "misslyckades underteckna push-certifikatet"
-#: send-pack.c:420
+#: send-pack.c:421
msgid "the receiving end does not support --signed push"
msgstr "mottagarsidan stöder inte push med --signed"
-#: send-pack.c:422
+#: send-pack.c:423
msgid ""
"not sending a push certificate since the receiving end does not support --"
"signed push"
@@ -5710,11 +5744,11 @@ msgstr ""
"sänder inte push-certifikat eftersom mottagarsidan inte stlder push med --"
"signed"
-#: send-pack.c:434
+#: send-pack.c:435
msgid "the receiving end does not support --atomic push"
msgstr "mottagarsidan stöder inte push med --atomic"
-#: send-pack.c:439
+#: send-pack.c:440
msgid "the receiving end does not support push options"
msgstr "mottagarsidan stöder inte push-flaggor"
@@ -5728,7 +5762,7 @@ msgstr "felaktigt incheckningsmeddelandestädningsläge \"%s\""
msgid "could not delete '%s'"
msgstr "kunde inte ta bort \"%s\""
-#: sequencer.c:311 builtin/rebase.c:759 builtin/rebase.c:1645 builtin/rm.c:369
+#: sequencer.c:311 builtin/rebase.c:760 builtin/rebase.c:1676 builtin/rm.c:369
#, c-format
msgid "could not remove '%s'"
msgstr "kunde inte ta bort \"%s\""
@@ -5768,7 +5802,7 @@ msgstr ""
"med \"git add <sökvägar>\" eller \"git rm <sökvägar>\"\n"
"och checka in resultatet med \"git commit\""
-#: sequencer.c:401 sequencer.c:2909
+#: sequencer.c:401 sequencer.c:2847
#, c-format
msgid "could not lock '%s'"
msgstr "kunde inte låsa \"%s\""
@@ -5778,15 +5812,15 @@ msgstr "kunde inte låsa \"%s\""
msgid "could not write eol to '%s'"
msgstr "kunde inte skriva radslut till \"%s\""
-#: sequencer.c:413 sequencer.c:2714 sequencer.c:2915 sequencer.c:2929
-#: sequencer.c:3192
+#: sequencer.c:413 sequencer.c:2652 sequencer.c:2853 sequencer.c:2867
+#: sequencer.c:3130
#, c-format
msgid "failed to finalize '%s'"
msgstr "misslyckades färdigställa \"%s\""
-#: sequencer.c:436 sequencer.c:981 sequencer.c:1655 sequencer.c:2734
-#: sequencer.c:3174 sequencer.c:3283 builtin/am.c:245 builtin/commit.c:763
-#: builtin/merge.c:1112 builtin/rebase.c:567
+#: sequencer.c:436 sequencer.c:1585 sequencer.c:2672 sequencer.c:3112
+#: sequencer.c:3221 builtin/am.c:244 builtin/commit.c:763 builtin/merge.c:1117
+#: builtin/rebase.c:568
#, c-format
msgid "could not read '%s'"
msgstr "kunde inte läsa \"%s\""
@@ -5813,70 +5847,65 @@ msgstr "Felaktigt städningsläge %s"
#. TRANSLATORS: %s will be "revert", "cherry-pick" or
#. "rebase -i".
#.
-#: sequencer.c:632
+#: sequencer.c:631
#, c-format
msgid "%s: Unable to write new index file"
msgstr "%s: Kunde inte skriva ny indexfil"
-#: sequencer.c:649
+#: sequencer.c:648
msgid "unable to update cache tree"
msgstr "kan inte uppdatera cacheträd"
-#: sequencer.c:663
+#: sequencer.c:662
msgid "could not resolve HEAD commit"
msgstr "kunde inte bestämma HEAD:s incheckning"
-#: sequencer.c:743
+#: sequencer.c:742
#, c-format
msgid "no key present in '%.*s'"
msgstr "ingen nyckel i \"%.*s\""
-#: sequencer.c:754
+#: sequencer.c:753
#, c-format
msgid "unable to dequote value of '%s'"
msgstr "kan inte ta bort citering av värdet \"%s\""
-#: sequencer.c:791 wrapper.c:227 wrapper.c:397 builtin/am.c:706
-#: builtin/am.c:798 builtin/merge.c:1109 builtin/rebase.c:1045
+#: sequencer.c:790 wrapper.c:190 wrapper.c:360 builtin/am.c:705
+#: builtin/am.c:797 builtin/merge.c:1114 builtin/rebase.c:1046
#, c-format
msgid "could not open '%s' for reading"
msgstr "kunde inte öppna \"%s\" för läsning"
-#: sequencer.c:801
+#: sequencer.c:800
msgid "'GIT_AUTHOR_NAME' already given"
msgstr "\"GIT_AUTHOR_NAME\" har redan angivits"
-#: sequencer.c:806
+#: sequencer.c:805
msgid "'GIT_AUTHOR_EMAIL' already given"
msgstr "\"GIT_AUTHOR_EMAIL\" har redan angivits"
-#: sequencer.c:811
+#: sequencer.c:810
msgid "'GIT_AUTHOR_DATE' already given"
msgstr "\"GIT_AUTHOR_DATE\" har redan angivits"
-#: sequencer.c:815
+#: sequencer.c:814
#, c-format
msgid "unknown variable '%s'"
msgstr "okänd variabel \"%s\""
-#: sequencer.c:820
+#: sequencer.c:819
msgid "missing 'GIT_AUTHOR_NAME'"
msgstr "\"GIT_AUTHOR_NAME\" saknas"
-#: sequencer.c:822
+#: sequencer.c:821
msgid "missing 'GIT_AUTHOR_EMAIL'"
msgstr "\"GIT_AUTHOR_EMAIL\" saknas"
-#: sequencer.c:824
+#: sequencer.c:823
msgid "missing 'GIT_AUTHOR_DATE'"
msgstr "\"GIT_AUTHOR_DATE\" saknas"
-#: sequencer.c:884
-#, c-format
-msgid "invalid date format '%s' in '%s'"
-msgstr "ogiltigt datumformat \"%s\" i \"%s\""
-
-#: sequencer.c:901
+#: sequencer.c:872
#, c-format
msgid ""
"you have staged changes in your working tree\n"
@@ -5905,15 +5934,11 @@ msgstr ""
"\n"
" git rebase --continue\n"
-#: sequencer.c:995
-msgid "writing root commit"
-msgstr "skriver rotincheckning"
-
-#: sequencer.c:1216
+#: sequencer.c:1146
msgid "'prepare-commit-msg' hook failed"
msgstr "kroken \"prepare-commit-msg\" misslyckades"
-#: sequencer.c:1223
+#: sequencer.c:1153
msgid ""
"Your name and email address were configured automatically based\n"
"on your username and hostname. Please check that they are accurate.\n"
@@ -5940,7 +5965,7 @@ msgstr ""
"\n"
" git commit --amend --reset-author\n"
-#: sequencer.c:1236
+#: sequencer.c:1166
msgid ""
"Your name and email address were configured automatically based\n"
"on your username and hostname. Please check that they are accurate.\n"
@@ -5965,327 +5990,327 @@ msgstr ""
"\n"
" git commit --amend --reset-author\n"
-#: sequencer.c:1278
+#: sequencer.c:1208
msgid "couldn't look up newly created commit"
msgstr "kunde inte slå upp en precis skapad incheckning"
-#: sequencer.c:1280
+#: sequencer.c:1210
msgid "could not parse newly created commit"
msgstr "kunde inte tolka en precis skapad incheckning"
-#: sequencer.c:1326
+#: sequencer.c:1256
msgid "unable to resolve HEAD after creating commit"
msgstr "kunde inte bestämma HEAD efter att ha skapat incheckning"
-#: sequencer.c:1328
+#: sequencer.c:1258
msgid "detached HEAD"
msgstr "frånkopplad HEAD"
-#: sequencer.c:1332
+#: sequencer.c:1262
msgid " (root-commit)"
msgstr " (rotincheckning)"
-#: sequencer.c:1353
+#: sequencer.c:1283
msgid "could not parse HEAD"
msgstr "kunde inte tolka HEAD"
-#: sequencer.c:1355
+#: sequencer.c:1285
#, c-format
msgid "HEAD %s is not a commit!"
msgstr "HEAD %s är inte en incheckning!"
-#: sequencer.c:1359 builtin/commit.c:1571
+#: sequencer.c:1289 builtin/commit.c:1571
msgid "could not parse HEAD commit"
msgstr "kunde inte tolka HEAD:s incheckning"
-#: sequencer.c:1411 sequencer.c:2004
+#: sequencer.c:1341 sequencer.c:1933
msgid "unable to parse commit author"
msgstr "kunde inte tolka incheckningens författare"
-#: sequencer.c:1421 builtin/am.c:1573 builtin/merge.c:684
+#: sequencer.c:1352 builtin/am.c:1561 builtin/merge.c:684
msgid "git write-tree failed to write a tree"
msgstr "git write-tree misslyckades skriva ett träd"
-#: sequencer.c:1438 sequencer.c:1499
+#: sequencer.c:1369 sequencer.c:1429
#, c-format
msgid "unable to read commit message from '%s'"
msgstr "kunde inte läsa incheckningsmeddelande från \"%s\""
-#: sequencer.c:1465 builtin/am.c:1595 builtin/commit.c:1670 builtin/merge.c:878
-#: builtin/merge.c:903
+#: sequencer.c:1396 builtin/am.c:1583 builtin/commit.c:1670 builtin/merge.c:883
+#: builtin/merge.c:908
msgid "failed to write commit object"
msgstr "kunde inte skriva incheckningsobjekt"
-#: sequencer.c:1526
+#: sequencer.c:1456
#, c-format
msgid "could not parse commit %s"
msgstr "kunde inte tolka incheckningen %s"
-#: sequencer.c:1531
+#: sequencer.c:1461
#, c-format
msgid "could not parse parent commit %s"
msgstr "kunde inte tolka föräldraincheckningen %s"
-#: sequencer.c:1605 sequencer.c:1715
+#: sequencer.c:1535 sequencer.c:1645
#, c-format
msgid "unknown command: %d"
msgstr "okänt kommando: %d"
-#: sequencer.c:1662 sequencer.c:1687
+#: sequencer.c:1592 sequencer.c:1617
#, c-format
msgid "This is a combination of %d commits."
msgstr "Det här är en kombination av %d incheckningar."
-#: sequencer.c:1672
+#: sequencer.c:1602
msgid "need a HEAD to fixup"
msgstr "behöver en HEAD-incheckning att rätta"
-#: sequencer.c:1674 sequencer.c:3219
+#: sequencer.c:1604 sequencer.c:3157
msgid "could not read HEAD"
msgstr "kunde inte läsa HEAD"
-#: sequencer.c:1676
+#: sequencer.c:1606
msgid "could not read HEAD's commit message"
msgstr "kunde inte läsa HEAD:s incheckningsmeddelande"
-#: sequencer.c:1682
+#: sequencer.c:1612
#, c-format
msgid "cannot write '%s'"
msgstr "kan inte skriva \"%s\""
-#: sequencer.c:1689 git-rebase--preserve-merges.sh:496
+#: sequencer.c:1619 git-rebase--preserve-merges.sh:496
msgid "This is the 1st commit message:"
msgstr "Det här är 1:a incheckningsmeddelandet:"
-#: sequencer.c:1697
+#: sequencer.c:1627
#, c-format
msgid "could not read commit message of %s"
msgstr "kunde inte läsa incheckningsmeddelande för %s"
-#: sequencer.c:1704
+#: sequencer.c:1634
#, c-format
msgid "This is the commit message #%d:"
msgstr "Det här är incheckningsmeddelande %d:"
-#: sequencer.c:1710
+#: sequencer.c:1640
#, c-format
msgid "The commit message #%d will be skipped:"
msgstr "Incheckningsmeddelande %d kommer hoppas över:"
-#: sequencer.c:1798
+#: sequencer.c:1728
msgid "your index file is unmerged."
msgstr "din indexfil har inte slagits ihop."
-#: sequencer.c:1805
+#: sequencer.c:1735
msgid "cannot fixup root commit"
msgstr "kan inte göra \"fixup\" på rotincheckning"
-#: sequencer.c:1824
+#: sequencer.c:1754
#, 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:1832 sequencer.c:1840
+#: sequencer.c:1762 sequencer.c:1770
#, c-format
msgid "commit %s does not have parent %d"
msgstr "incheckning %s har inte förälder %d"
-#: sequencer.c:1846
+#: sequencer.c:1776
#, 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:1865
+#: sequencer.c:1795
#, c-format
msgid "%s: cannot parse parent commit %s"
msgstr "%s: kan inte tolka föräldraincheckningen %s"
-#: sequencer.c:1930
+#: sequencer.c:1860
#, c-format
msgid "could not rename '%s' to '%s'"
msgstr "kunde inte byta namn på \"%s\" till \"%s\""
-#: sequencer.c:1985
+#: sequencer.c:1915
#, c-format
msgid "could not revert %s... %s"
msgstr "kunde inte ångra %s... %s"
-#: sequencer.c:1986
+#: sequencer.c:1916
#, c-format
msgid "could not apply %s... %s"
msgstr "kunde inte tillämpa %s... %s"
-#: sequencer.c:2045
+#: sequencer.c:1983
#, c-format
msgid "git %s: failed to read the index"
msgstr "git %s: misslyckades läsa indexet"
-#: sequencer.c:2052
+#: sequencer.c:1990
#, c-format
msgid "git %s: failed to refresh the index"
msgstr "git %s: misslyckades uppdatera indexet"
-#: sequencer.c:2128
+#: sequencer.c:2066
#, c-format
msgid "%s does not accept arguments: '%s'"
msgstr "%s tar inte argument: \"%s\""
-#: sequencer.c:2137
+#: sequencer.c:2075
#, c-format
msgid "missing arguments for %s"
msgstr "argument saknas för %s"
-#: sequencer.c:2174
+#: sequencer.c:2112
#, c-format
msgid "could not parse '%.*s'"
msgstr "kunde inte tolka \"%.*s\""
-#: sequencer.c:2228
+#: sequencer.c:2166
#, c-format
msgid "invalid line %d: %.*s"
msgstr "ogiltig rad %d: %.*s"
-#: sequencer.c:2239
+#: sequencer.c:2177
#, c-format
msgid "cannot '%s' without a previous commit"
msgstr "kan inte utföra \"%s\" utan en föregående incheckning"
-#: sequencer.c:2287 builtin/rebase.c:153 builtin/rebase.c:178
+#: sequencer.c:2225 builtin/rebase.c:153 builtin/rebase.c:178
#: builtin/rebase.c:204 builtin/rebase.c:229
#, c-format
msgid "could not read '%s'."
msgstr "kunde inte läsa \"%s\"."
-#: sequencer.c:2323
+#: sequencer.c:2261
msgid "cancelling a cherry picking in progress"
msgstr "avbryter pågående \"cherry-pick\""
-#: sequencer.c:2330
+#: sequencer.c:2268
msgid "cancelling a revert in progress"
msgstr "avbryter pågående \"revert\""
-#: sequencer.c:2364
+#: sequencer.c:2302
msgid "please fix this using 'git rebase --edit-todo'."
msgstr "rätta det med \"git rebase --edit-todo\"."
-#: sequencer.c:2366
+#: sequencer.c:2304
#, c-format
msgid "unusable instruction sheet: '%s'"
msgstr "oanvändbart manus: \"%s\""
-#: sequencer.c:2371
+#: sequencer.c:2309
msgid "no commits parsed."
msgstr "inga incheckningar lästes."
-#: sequencer.c:2382
+#: sequencer.c:2320
msgid "cannot cherry-pick during a revert."
msgstr "kan inte utföra \"cherry-pick\" under en \"revert\"."
-#: sequencer.c:2384
+#: sequencer.c:2322
msgid "cannot revert during a cherry-pick."
msgstr "kan inte utföra \"revert\" under en \"cherry-pick\"."
-#: sequencer.c:2466
+#: sequencer.c:2404
#, c-format
msgid "invalid value for %s: %s"
msgstr "felaktigt värde för %s: %s"
-#: sequencer.c:2553
+#: sequencer.c:2491
msgid "unusable squash-onto"
msgstr "oanvändbar squash-onto"
-#: sequencer.c:2569
+#: sequencer.c:2507
#, c-format
msgid "malformed options sheet: '%s'"
msgstr "trasigt manus: \"%s\""
-#: sequencer.c:2652 sequencer.c:4351
+#: sequencer.c:2590 sequencer.c:4308
msgid "empty commit set passed"
msgstr "den angivna uppsättningen incheckningar är tom"
-#: sequencer.c:2668
+#: sequencer.c:2606
msgid "revert is already in progress"
msgstr "en \"revert\" pågår redan"
-#: sequencer.c:2670
+#: sequencer.c:2608
#, c-format
msgid "try \"git revert (--continue | %s--abort | --quit)\""
msgstr "testa \"git revert (--continue | %s--abort | --quit)\""
-#: sequencer.c:2673
+#: sequencer.c:2611
msgid "cherry-pick is already in progress"
msgstr "en \"cherry-pick\" pågår redan"
-#: sequencer.c:2675
+#: sequencer.c:2613
#, c-format
msgid "try \"git cherry-pick (--continue | %s--abort | --quit)\""
msgstr "testa \"git cherry-pick (--continue | %s--abort | --quit)\""
-#: sequencer.c:2689
+#: sequencer.c:2627
#, c-format
msgid "could not create sequencer directory '%s'"
msgstr "kunde inte skapa \"sequencer\"-katalogen \"%s\""
-#: sequencer.c:2704
+#: sequencer.c:2642
msgid "could not lock HEAD"
msgstr "kunde inte låsa HEAD"
-#: sequencer.c:2764 sequencer.c:4103
+#: sequencer.c:2702 sequencer.c:4057
msgid "no cherry-pick or revert in progress"
msgstr "ingen \"cherry-pick\" eller \"revert\" pågår"
-#: sequencer.c:2766 sequencer.c:2777
+#: sequencer.c:2704 sequencer.c:2715
msgid "cannot resolve HEAD"
msgstr "kan inte bestämma HEAD"
-#: sequencer.c:2768 sequencer.c:2812
+#: sequencer.c:2706 sequencer.c:2750
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:2798 builtin/grep.c:734
+#: sequencer.c:2736 builtin/grep.c:736
#, c-format
msgid "cannot open '%s'"
msgstr "kan inte öppna \"%s\""
-#: sequencer.c:2800
+#: sequencer.c:2738
#, c-format
msgid "cannot read '%s': %s"
msgstr "kan inte läsa \"%s\": %s"
-#: sequencer.c:2801
+#: sequencer.c:2739
msgid "unexpected end of file"
msgstr "oväntat filslut"
-#: sequencer.c:2807
+#: sequencer.c:2745
#, 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:2818
+#: sequencer.c:2756
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:2859
+#: sequencer.c:2797
msgid "no revert in progress"
msgstr "ingen \"revers\" pågår"
-#: sequencer.c:2867
+#: sequencer.c:2805
msgid "no cherry-pick in progress"
msgstr "ingen \"cherry-pick\" pågår"
-#: sequencer.c:2877
+#: sequencer.c:2815
msgid "failed to skip the commit"
msgstr "kunde inte hoppa över incheckningen"
-#: sequencer.c:2884
+#: sequencer.c:2822
msgid "there is nothing to skip"
msgstr "ingenting att hoppa över"
-#: sequencer.c:2887
+#: sequencer.c:2825
#, c-format
msgid ""
"have you committed already?\n"
@@ -6294,21 +6319,21 @@ msgstr ""
"har du redan checkat in?\n"
"testa \"git %s --continue\""
-#: sequencer.c:3011 sequencer.c:4015
+#: sequencer.c:2949 sequencer.c:3969
#, c-format
msgid "could not update %s"
msgstr "kunde inte uppdatera %s"
-#: sequencer.c:3049 sequencer.c:3995
+#: sequencer.c:2987 sequencer.c:3949
msgid "cannot read HEAD"
msgstr "kan inte läsa HEAD"
-#: sequencer.c:3066
+#: sequencer.c:3004
#, c-format
msgid "unable to copy '%s' to '%s'"
msgstr "kan inte kopiera in \"%s\" till \"%s\""
-#: sequencer.c:3074
+#: sequencer.c:3012
#, c-format
msgid ""
"You can amend the commit now, with\n"
@@ -6327,27 +6352,27 @@ msgstr ""
"\n"
"\tgit rebase --continue\n"
-#: sequencer.c:3084
+#: sequencer.c:3022
#, c-format
msgid "Could not apply %s... %.*s"
msgstr "Kunde inte tillämpa %s... %.*s"
-#: sequencer.c:3091
+#: sequencer.c:3029
#, c-format
msgid "Could not merge %.*s"
msgstr "Kunde inte slå ihop %.*s"
-#: sequencer.c:3105 sequencer.c:3109 builtin/difftool.c:633
+#: sequencer.c:3043 sequencer.c:3047 builtin/difftool.c:641
#, c-format
msgid "could not copy '%s' to '%s'"
msgstr "kunde inte kopiera in \"%s\" till \"%s\""
-#: sequencer.c:3131 sequencer.c:3558 builtin/rebase.c:849 builtin/rebase.c:1582
-#: builtin/rebase.c:1953 builtin/rebase.c:2008
+#: sequencer.c:3069 sequencer.c:3506 builtin/rebase.c:850 builtin/rebase.c:1613
+#: builtin/rebase.c:1987 builtin/rebase.c:2031
msgid "could not read index"
msgstr "kunde inte läsa indexet"
-#: sequencer.c:3136
+#: sequencer.c:3074
#, c-format
msgid ""
"execution failed: %s\n"
@@ -6362,11 +6387,11 @@ msgstr ""
"\tgit rebase --continue\n"
"\n"
-#: sequencer.c:3142
+#: sequencer.c:3080
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:3148
+#: sequencer.c:3086
#, c-format
msgid ""
"execution succeeded: %s\n"
@@ -6383,76 +6408,76 @@ msgstr ""
"\tgit rebase --continue\n"
"\n"
-#: sequencer.c:3209
+#: sequencer.c:3147
#, c-format
msgid "illegal label name: '%.*s'"
msgstr "ogiltigt etikettnamn: \"%.*s\""
-#: sequencer.c:3263
+#: sequencer.c:3201
msgid "writing fake root commit"
msgstr "skriver fejkad rotincheckning"
-#: sequencer.c:3268
+#: sequencer.c:3206
msgid "writing squash-onto"
msgstr "skriver squash-onto"
-#: sequencer.c:3306 builtin/rebase.c:854 builtin/rebase.c:860
+#: sequencer.c:3244 builtin/rebase.c:855 builtin/rebase.c:861
#, c-format
msgid "failed to find tree of %s"
msgstr "kunde inte hitta trädet för %s."
-#: sequencer.c:3324 builtin/rebase.c:873
+#: sequencer.c:3262 builtin/rebase.c:874
msgid "could not write index"
msgstr "kunde inte skriva indexet"
-#: sequencer.c:3351
+#: sequencer.c:3289
#, c-format
msgid "could not resolve '%s'"
msgstr "kunde inte upplösa \"%s\""
-#: sequencer.c:3379
+#: sequencer.c:3320
msgid "cannot merge without a current revision"
msgstr "kan inte slå ihop utan en aktuell incheckning"
-#: sequencer.c:3401
+#: sequencer.c:3342
#, c-format
msgid "unable to parse '%.*s'"
msgstr "kan inte tolka \"%.*s\""
-#: sequencer.c:3410
+#: sequencer.c:3351
#, c-format
msgid "nothing to merge: '%.*s'"
msgstr "inget att slå samman: \"%.*s\""
-#: sequencer.c:3422
+#: sequencer.c:3363
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:3437
+#: sequencer.c:3378
#, c-format
msgid "could not get commit message of '%s'"
msgstr "kunde inte läsa incheckningsmeddelande för \"%s\""
-#: sequencer.c:3590
+#: sequencer.c:3538
#, c-format
msgid "could not even attempt to merge '%.*s'"
msgstr "kunde inte ens försöka slå ihop \"%.*s\""
-#: sequencer.c:3606
+#: sequencer.c:3554
msgid "merge: Unable to write new index file"
msgstr "sammanslagning: Kunde inte skriva ny indexfil"
-#: sequencer.c:3675 builtin/rebase.c:711
+#: sequencer.c:3623 builtin/rebase.c:712
#, c-format
msgid "Applied autostash.\n"
msgstr "Tillämpade autostash.\n"
-#: sequencer.c:3687
+#: sequencer.c:3635
#, c-format
msgid "cannot store %s"
msgstr "kan inte spara %s"
-#: sequencer.c:3690 builtin/rebase.c:727 git-rebase--preserve-merges.sh:113
+#: sequencer.c:3638 builtin/rebase.c:728 git-rebase--preserve-merges.sh:113
#, c-format
msgid ""
"Applying autostash resulted in conflicts.\n"
@@ -6463,31 +6488,31 @@ 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:3751
+#: sequencer.c:3699
#, c-format
msgid "could not checkout %s"
msgstr "kunde inte checka ut %s"
-#: sequencer.c:3765
+#: sequencer.c:3713
#, c-format
msgid "%s: not a valid OID"
msgstr "%s: inte ett giltigt OID"
-#: sequencer.c:3770 git-rebase--preserve-merges.sh:779
+#: sequencer.c:3718 git-rebase--preserve-merges.sh:779
msgid "could not detach HEAD"
msgstr "kunde inte koppla från HEAD"
-#: sequencer.c:3785
+#: sequencer.c:3733
#, c-format
msgid "Stopped at HEAD\n"
msgstr "Stoppade på HEAD\n"
-#: sequencer.c:3787
+#: sequencer.c:3735
#, c-format
msgid "Stopped at %s\n"
msgstr "Stoppade på %s\n"
-#: sequencer.c:3795
+#: sequencer.c:3743
#, c-format
msgid ""
"Could not execute the todo command\n"
@@ -6508,48 +6533,48 @@ msgstr ""
" git rebase --edit-todo\n"
" git rebase --continue\n"
-#: sequencer.c:3877
+#: sequencer.c:3827
#, c-format
msgid "Stopped at %s... %.*s\n"
msgstr "Stoppade på %s... %.*s\n"
-#: sequencer.c:3958
+#: sequencer.c:3898
#, c-format
msgid "unknown command %d"
msgstr "okänt kommando %d"
-#: sequencer.c:4003
+#: sequencer.c:3957
msgid "could not read orig-head"
msgstr "kunde inte läsa orig-head"
-#: sequencer.c:4008
+#: sequencer.c:3962
msgid "could not read 'onto'"
msgstr "kunde inte läsa \"onto\""
-#: sequencer.c:4022
+#: sequencer.c:3976
#, c-format
msgid "could not update HEAD to %s"
msgstr "kunde inte uppdatera HEAD till %s"
-#: sequencer.c:4115
+#: sequencer.c:4069
msgid "cannot rebase: You have unstaged changes."
msgstr "kan inte ombasera: Du har oköade ändringar."
-#: sequencer.c:4124
+#: sequencer.c:4078
msgid "cannot amend non-existing commit"
msgstr "kan inte lägga till incheckning som inte finns"
-#: sequencer.c:4126
+#: sequencer.c:4080
#, c-format
msgid "invalid file: '%s'"
msgstr "ogiltig fil: \"%s\""
-#: sequencer.c:4128
+#: sequencer.c:4082
#, c-format
msgid "invalid contents: '%s'"
msgstr "ogiltigt innehåll: \"%s\""
-#: sequencer.c:4131
+#: sequencer.c:4085
msgid ""
"\n"
"You have uncommitted changes in your working tree. Please, commit them\n"
@@ -6559,42 +6584,42 @@ 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:4167 sequencer.c:4205
+#: sequencer.c:4121 sequencer.c:4159
#, c-format
msgid "could not write file: '%s'"
msgstr "kunde inte skriva fil: \"%s\""
-#: sequencer.c:4220
+#: sequencer.c:4174
msgid "could not remove CHERRY_PICK_HEAD"
msgstr "kunde inte ta bort CHERRY_PICK_HEAD"
-#: sequencer.c:4227
+#: sequencer.c:4181
msgid "could not commit staged changes."
msgstr "kunde inte checka in köade ändringar."
-#: sequencer.c:4328
+#: sequencer.c:4285
#, c-format
msgid "%s: can't cherry-pick a %s"
msgstr "%s: kan inte göra \"cherry-pick\" på typen \"%s\""
-#: sequencer.c:4332
+#: sequencer.c:4289
#, c-format
msgid "%s: bad revision"
msgstr "%s: felaktig revision"
-#: sequencer.c:4367
+#: sequencer.c:4324
msgid "can't revert as initial commit"
msgstr "kan inte ångra som första incheckning"
-#: sequencer.c:4810
+#: sequencer.c:4774
msgid "make_script: unhandled options"
msgstr "make_script: flaggor som inte stöds"
-#: sequencer.c:4813
+#: sequencer.c:4777
msgid "make_script: error preparing revisions"
msgstr "make_script: fel när revisioner skulle förberedas"
-#: sequencer.c:4971
+#: sequencer.c:4935
msgid ""
"You can fix this with 'git rebase --edit-todo' and then run 'git rebase --"
"continue'.\n"
@@ -6604,24 +6629,24 @@ msgstr ""
"continue\".\n"
"Avbryt ombaseringen med \"git rebase --abort\".\n"
-#: sequencer.c:5083 sequencer.c:5100
+#: sequencer.c:5047 sequencer.c:5064
msgid "nothing to do"
msgstr "inget att göra"
-#: sequencer.c:5114
+#: sequencer.c:5078
msgid "could not skip unnecessary pick commands"
msgstr "kunde inte hoppa över onödiga \"pick\"-kommandon"
-#: sequencer.c:5197
+#: sequencer.c:5166
msgid "the script was already rearranged."
msgstr "skriptet har redan omordnats."
-#: setup.c:123
+#: setup.c:124
#, c-format
msgid "'%s' is outside repository"
msgstr "\"%s\" är utanför arkivet"
-#: setup.c:173
+#: setup.c:174
#, c-format
msgid ""
"%s: no such path in the working tree.\n"
@@ -6631,7 +6656,7 @@ msgstr ""
"Använd \"git <kommando> -- <sökväg>..\" för att ange sökvägar som inte finns "
"lokalt."
-#: setup.c:186
+#: setup.c:187
#, c-format
msgid ""
"ambiguous argument '%s': unknown revision or path not in the working tree.\n"
@@ -6643,12 +6668,12 @@ msgstr ""
"Använd \"--\" för att skilja sökvägar från revisioner, så här:\n"
"\"git <kommando> [<revision>...] -- [<fil>...]\""
-#: setup.c:235
+#: setup.c:236
#, 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:254
+#: setup.c:255
#, c-format
msgid ""
"ambiguous argument '%s': both revision and filename\n"
@@ -6659,92 +6684,92 @@ msgstr ""
"Använd \"--\" för att skilja sökvägar från revisioner, så här:\n"
"\"git <kommando> [<revision>...] -- [<fil>...]\""
-#: setup.c:390
+#: setup.c:391
msgid "unable to set up work tree using invalid config"
msgstr "kan inte skapa arbetskatalog med felaktig konfiguration"
-#: setup.c:394
+#: setup.c:395
msgid "this operation must be run in a work tree"
msgstr "funktionen måste köras i en arbetskatalog"
-#: setup.c:540
+#: setup.c:541
#, c-format
msgid "Expected git repo version <= %d, found %d"
msgstr "Förväntade git-arkivversion <= %d, hittade %d"
-#: setup.c:548
+#: setup.c:549
msgid "unknown repository extensions found:"
msgstr "okända arkivutökningar hittades:"
-#: setup.c:567
+#: setup.c:568
#, c-format
msgid "error opening '%s'"
msgstr "fel vid öppning av \"%s\""
-#: setup.c:569
+#: setup.c:570
#, 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:571
+#: setup.c:572
#, c-format
msgid "error reading %s"
msgstr "fel vid läsning av %s"
-#: setup.c:573
+#: setup.c:574
#, c-format
msgid "invalid gitfile format: %s"
msgstr "ogiltigt gitfilformat: %s"
-#: setup.c:575
+#: setup.c:576
#, c-format
msgid "no path in gitfile: %s"
msgstr "ingen sökväg i gitfil: %s"
-#: setup.c:577
+#: setup.c:578
#, c-format
msgid "not a git repository: %s"
msgstr "inte ett git-arkiv: %s"
-#: setup.c:676
+#: setup.c:677
#, c-format
msgid "'$%s' too big"
msgstr "\"$%s\" för stor"
-#: setup.c:690
+#: setup.c:691
#, c-format
msgid "not a git repository: '%s'"
msgstr "inte ett git-arkiv: \"%s\""
-#: setup.c:719 setup.c:721 setup.c:752
+#: setup.c:720 setup.c:722 setup.c:753
#, c-format
msgid "cannot chdir to '%s'"
msgstr "kan inte byta katalog (chdir) till \"%s\""
-#: setup.c:724 setup.c:780 setup.c:790 setup.c:829 setup.c:837
+#: setup.c:725 setup.c:781 setup.c:791 setup.c:830 setup.c:838
msgid "cannot come back to cwd"
msgstr "kan inte gå tillbaka till arbetskatalogen (cwd)"
-#: setup.c:851
+#: setup.c:852
#, c-format
msgid "failed to stat '%*s%s%s'"
msgstr "misslyckades ta status på \"%*ss%s%s\""
-#: setup.c:1083
+#: setup.c:1090
msgid "Unable to read current working directory"
msgstr "Kan inte läsa aktuell arbetskatalog"
-#: setup.c:1092 setup.c:1098
+#: setup.c:1099 setup.c:1105
#, c-format
msgid "cannot change to '%s'"
msgstr "kan inte byta till \"%s\""
-#: setup.c:1103
+#: setup.c:1110
#, 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:1109
+#: setup.c:1116
#, c-format
msgid ""
"not a git repository (or any parent up to mount point %s)\n"
@@ -6754,7 +6779,7 @@ msgstr ""
"monteringspunkten %s)\n"
"Stoppar vid filsystemsgräns (GIT_DISCOVERY_ACROSS_FILESYSTEM är inte satt)."
-#: setup.c:1220
+#: setup.c:1227
#, c-format
msgid ""
"problem with core.sharedRepository filemode value (0%.3o).\n"
@@ -6763,76 +6788,76 @@ 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:1264
+#: setup.c:1271
msgid "open /dev/null or dup failed"
msgstr "misslyckades öppna /dev/null eller \"dup\""
-#: setup.c:1279
+#: setup.c:1286
msgid "fork failed"
msgstr "\"fork\" misslyckades"
-#: setup.c:1284
+#: setup.c:1291
msgid "setsid failed"
msgstr "\"setsid\" misslyckades"
-#: sha1-file.c:453
+#: sha1-file.c:452
#, c-format
msgid "object directory %s does not exist; check .git/objects/info/alternates"
msgstr "objektkatalogen %s finns inte; se .git/objects/info/alternates"
-#: sha1-file.c:504
+#: sha1-file.c:503
#, c-format
msgid "unable to normalize alternate object path: %s"
msgstr "kunde inte normalisera alternativ objektsökväg: %s"
-#: sha1-file.c:576
+#: sha1-file.c:575
#, c-format
msgid "%s: ignoring alternate object stores, nesting too deep"
msgstr "%s: ignorerar alternativa objektlagringar, för djup nästling"
-#: sha1-file.c:583
+#: sha1-file.c:582
#, c-format
msgid "unable to normalize object directory: %s"
msgstr "kan inte normalisera objektkatalogen: %s"
-#: sha1-file.c:626
+#: sha1-file.c:625
msgid "unable to fdopen alternates lockfile"
msgstr "kan inte utföra \"fdopen\" på låsfil för \"alternates\""
-#: sha1-file.c:644
+#: sha1-file.c:643
msgid "unable to read alternates file"
msgstr "kan inte läsa \"alternates\"-filen"
-#: sha1-file.c:651
+#: sha1-file.c:650
msgid "unable to move new alternates file into place"
msgstr "kan inte flytta ny \"alternates\"-fil på plats"
-#: sha1-file.c:686
+#: sha1-file.c:685
#, c-format
msgid "path '%s' does not exist"
msgstr "sökvägen \"%s\" finns inte"
-#: sha1-file.c:712
+#: sha1-file.c:711
#, 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."
-#: sha1-file.c:718
+#: sha1-file.c:717
#, c-format
msgid "reference repository '%s' is not a local repository."
msgstr "referensarkivet \"%s\" är inte ett lokalt arkiv."
-#: sha1-file.c:724
+#: sha1-file.c:723
#, c-format
msgid "reference repository '%s' is shallow"
msgstr "referensarkivet \"%s\" är grunt"
-#: sha1-file.c:732
+#: sha1-file.c:731
#, c-format
msgid "reference repository '%s' is grafted"
msgstr "referensarkivet \"%s\" är ympat"
-#: sha1-file.c:792
+#: sha1-file.c:791
#, c-format
msgid "invalid line while parsing alternate refs: %s"
msgstr "felaktig rad vid tolkning av alternativa referenser: %s"
@@ -6842,204 +6867,204 @@ msgstr "felaktig rad vid tolkning av alternativa referenser: %s"
msgid "attempting to mmap %<PRIuMAX> over limit %<PRIuMAX>"
msgstr "försök att utföra \"mmap\" på %<PRIuMAX> över gränsen %<PRIuMAX>"
-#: sha1-file.c:968
+#: sha1-file.c:964
msgid "mmap failed"
msgstr "mmap misslyckades"
-#: sha1-file.c:1132
+#: sha1-file.c:1128
#, c-format
msgid "object file %s is empty"
msgstr "objektfilen %s är tom"
-#: sha1-file.c:1256 sha1-file.c:2395
+#: sha1-file.c:1252 sha1-file.c:2392
#, c-format
msgid "corrupt loose object '%s'"
msgstr "trasigt löst objekt \"%s\""
-#: sha1-file.c:1258 sha1-file.c:2399
+#: sha1-file.c:1254 sha1-file.c:2396
#, c-format
msgid "garbage at end of loose object '%s'"
msgstr "skräp i slutet av löst objekt \"%s\""
-#: sha1-file.c:1300
+#: sha1-file.c:1296
msgid "invalid object type"
msgstr "felaktig objekttyp"
-#: sha1-file.c:1384
+#: sha1-file.c:1380
#, c-format
msgid "unable to unpack %s header with --allow-unknown-type"
msgstr "kan inte packa upp %s-huvud med --allow-unknown-type"
-#: sha1-file.c:1387
+#: sha1-file.c:1383
#, c-format
msgid "unable to unpack %s header"
msgstr "kan inte packa upp %s-huvudet"
-#: sha1-file.c:1393
+#: sha1-file.c:1389
#, c-format
msgid "unable to parse %s header with --allow-unknown-type"
msgstr "kan inte tolka %s-huvud med --allow-unknown-type"
-#: sha1-file.c:1396
+#: sha1-file.c:1392
#, c-format
msgid "unable to parse %s header"
msgstr "kan inte tolka %s-huvud"
-#: sha1-file.c:1587
+#: sha1-file.c:1584
#, c-format
msgid "failed to read object %s"
msgstr "misslyckades läsa objektet %s"
-#: sha1-file.c:1591
+#: sha1-file.c:1588
#, c-format
msgid "replacement %s not found for %s"
msgstr "ersättningen %s hittades inte för %s"
-#: sha1-file.c:1595
+#: sha1-file.c:1592
#, c-format
msgid "loose object %s (stored in %s) is corrupt"
msgstr "löst objekt %s (lagrat i %s) är trasigt"
-#: sha1-file.c:1599
+#: sha1-file.c:1596
#, c-format
msgid "packed object %s (stored in %s) is corrupt"
msgstr "packat objekt %s (lagrat i %s) är trasigt"
-#: sha1-file.c:1702
+#: sha1-file.c:1699
#, c-format
msgid "unable to write file %s"
msgstr "kunde inte skriva filen %s"
-#: sha1-file.c:1709
+#: sha1-file.c:1706
#, c-format
msgid "unable to set permission to '%s'"
msgstr "kan inte sätta behörigheten till \"%s\""
-#: sha1-file.c:1716
+#: sha1-file.c:1713
msgid "file write error"
msgstr "fel vid skrivning av fil"
-#: sha1-file.c:1735
+#: sha1-file.c:1732
msgid "error when closing loose object file"
msgstr "fel vid stängning av fil för löst objekt"
-#: sha1-file.c:1800
+#: sha1-file.c:1797
#, 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"
-#: sha1-file.c:1802
+#: sha1-file.c:1799
msgid "unable to create temporary file"
msgstr "kan inte skapa temporär fil"
-#: sha1-file.c:1826
+#: sha1-file.c:1823
msgid "unable to write loose object file"
msgstr "kunde inte skriva fil för löst objekt"
-#: sha1-file.c:1832
+#: sha1-file.c:1829
#, c-format
msgid "unable to deflate new object %s (%d)"
msgstr "kan inte utföra \"deflate\" på nytt objekt %s (%d)"
-#: sha1-file.c:1836
+#: sha1-file.c:1833
#, c-format
msgid "deflateEnd on object %s failed (%d)"
msgstr "\"deflateend\" på objektet %s misslyckades (%d)"
-#: sha1-file.c:1840
+#: sha1-file.c:1837
#, c-format
msgid "confused by unstable object source data for %s"
msgstr "förvirrad av instabil objektkälldata för %s"
-#: sha1-file.c:1850 builtin/pack-objects.c:920
+#: sha1-file.c:1847 builtin/pack-objects.c:925
#, c-format
msgid "failed utime() on %s"
msgstr "\"utime()\" misslyckades på %s"
-#: sha1-file.c:1925
+#: sha1-file.c:1922
#, c-format
msgid "cannot read object for %s"
msgstr "kan inte läsa objekt för %s"
-#: sha1-file.c:1965
+#: sha1-file.c:1962
msgid "corrupt commit"
msgstr "trasik incheckning"
-#: sha1-file.c:1973
+#: sha1-file.c:1970
msgid "corrupt tag"
msgstr "trasig tagg"
-#: sha1-file.c:2072
+#: sha1-file.c:2069
#, c-format
msgid "read error while indexing %s"
msgstr "läsfel vid indexering av %s"
-#: sha1-file.c:2075
+#: sha1-file.c:2072
#, c-format
msgid "short read while indexing %s"
msgstr "för lite lästes vid indexering av %s"
-#: sha1-file.c:2148 sha1-file.c:2157
+#: sha1-file.c:2145 sha1-file.c:2154
#, c-format
msgid "%s: failed to insert into database"
msgstr "%s: misslyckades lägga in i databasen"
-#: sha1-file.c:2163
+#: sha1-file.c:2160
#, c-format
msgid "%s: unsupported file type"
msgstr "%s: filtypen stöds ej"
-#: sha1-file.c:2187
+#: sha1-file.c:2184
#, c-format
msgid "%s is not a valid object"
msgstr "%s är inte ett giltigt objekt"
-#: sha1-file.c:2189
+#: sha1-file.c:2186
#, c-format
msgid "%s is not a valid '%s' object"
msgstr "%s är inte ett giltigt \"%s\"-objekt"
-#: sha1-file.c:2216 builtin/index-pack.c:155
+#: sha1-file.c:2213 builtin/index-pack.c:155
#, c-format
msgid "unable to open %s"
msgstr "kan inte öppna %s"
-#: sha1-file.c:2406 sha1-file.c:2458
+#: sha1-file.c:2403 sha1-file.c:2455
#, c-format
msgid "hash mismatch for %s (expected %s)"
msgstr "hash stämmer inte för %s (förväntade %s)"
-#: sha1-file.c:2430
+#: sha1-file.c:2427
#, c-format
msgid "unable to mmap %s"
msgstr "kan inte utföra \"mmap\" för %s"
-#: sha1-file.c:2435
+#: sha1-file.c:2432
#, c-format
msgid "unable to unpack header of %s"
msgstr "kan inte packa upp huvud för %s"
-#: sha1-file.c:2441
+#: sha1-file.c:2438
#, c-format
msgid "unable to parse header of %s"
msgstr "kan inte tolka huvud för %s"
-#: sha1-file.c:2452
+#: sha1-file.c:2449
#, c-format
msgid "unable to unpack contents of %s"
msgstr "kan inte tolka innehåll i %s"
-#: sha1-name.c:490
+#: sha1-name.c:487
#, c-format
msgid "short SHA1 %s is ambiguous"
msgstr "kort SHA1 %s är tvetydig"
-#: sha1-name.c:501
+#: sha1-name.c:498
msgid "The candidates are:"
msgstr "Kandidaterna är:"
-#: sha1-name.c:800
+#: sha1-name.c:797
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"
@@ -7062,43 +7087,43 @@ msgstr ""
"genom att köra \"git config advice.objectNameWarning false\""
#. TRANSLATORS: IEC 80000-13:2008 gibibyte
-#: strbuf.c:821
+#: strbuf.c:822
#, c-format
msgid "%u.%2.2u GiB"
msgstr "%u,%2.2u GiB"
#. TRANSLATORS: IEC 80000-13:2008 gibibyte/second
-#: strbuf.c:823
+#: strbuf.c:824
#, c-format
msgid "%u.%2.2u GiB/s"
msgstr "%u,%2.2u GiB/s"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte
-#: strbuf.c:831
+#: strbuf.c:832
#, c-format
msgid "%u.%2.2u MiB"
msgstr "%u,%2.2u MiB"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte/second
-#: strbuf.c:833
+#: strbuf.c:834
#, c-format
msgid "%u.%2.2u MiB/s"
msgstr "%u,%2.2u MiB/s"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte
-#: strbuf.c:840
+#: strbuf.c:841
#, c-format
msgid "%u.%2.2u KiB"
msgstr "%u,%2.2u KiB"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte/second
-#: strbuf.c:842
+#: strbuf.c:843
#, c-format
msgid "%u.%2.2u KiB/s"
msgstr "%u,%2.2u KiB/s"
#. TRANSLATORS: IEC 80000-13:2008 byte
-#: strbuf.c:848
+#: strbuf.c:849
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -7106,7 +7131,7 @@ msgstr[0] "%u byte"
msgstr[1] "%u bytes"
#. TRANSLATORS: IEC 80000-13:2008 byte/second
-#: strbuf.c:850
+#: strbuf.c:851
#, c-format
msgid "%u byte/s"
msgid_plural "%u bytes/s"
@@ -7225,26 +7250,26 @@ msgstr "kunde inte starta ls-files i .."
msgid "ls-tree returned unexpected return code %d"
msgstr "ls-tree returnerade en oväntad returkod %d"
-#: submodule-config.c:232
+#: submodule-config.c:236
#, c-format
msgid "ignoring suspicious submodule name: %s"
msgstr "ignorerar misstänkt undermodulnamn: %s"
-#: submodule-config.c:299
+#: submodule-config.c:303
msgid "negative values not allowed for submodule.fetchjobs"
msgstr "negativa värden är inte tillåtna för submodule.fetchjobs"
-#: submodule-config.c:397
+#: submodule-config.c:401
#, 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:486
+#: submodule-config.c:490
#, c-format
msgid "invalid value for %s"
msgstr "ogiltigt värde för %s"
-#: submodule-config.c:755
+#: submodule-config.c:761
#, c-format
msgid "Could not update .gitmodules entry %s"
msgstr "Kunde inte uppdatera .gitmodules-posten %s"
@@ -7279,7 +7304,7 @@ msgstr "kunde inte läsa indatafilen \"%s\""
msgid "could not read from stdin"
msgstr "kunde inte läsa från standard in"
-#: trailer.c:1011 wrapper.c:701
+#: trailer.c:1011 wrapper.c:665
#, c-format
msgid "could not stat %s"
msgstr "kunde inte ta status på %s"
@@ -7308,47 +7333,47 @@ msgstr "kunde inte byta namn på temporär fil till %s"
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:142
+#: transport.c:145
#, c-format
msgid "could not read bundle '%s'"
msgstr "kunde inte läsa paketet (bundlen) \"%s\""
-#: transport.c:208
+#: transport.c:214
#, c-format
msgid "transport: invalid depth option '%s'"
msgstr "transport: ogiltig flagga för depth: \"%s\""
-#: transport.c:259
+#: transport.c:266
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:260
+#: transport.c:267
msgid "server options require protocol version 2 or later"
msgstr "serverflaggor kräver protokollversion 2 eller senare"
-#: transport.c:625
+#: transport.c:632
msgid "could not parse transport.color.* config"
msgstr "kunde inte tolka inställningen för transport.color.*"
-#: transport.c:698
+#: transport.c:705
msgid "support for protocol v2 not implemented yet"
msgstr "stöd för protokoll v2 ännu ej implementerat"
-#: transport.c:825
+#: transport.c:831
#, c-format
msgid "unknown value for config '%s': %s"
msgstr "okänt värde för inställningen \"%s\": %s"
-#: transport.c:891
+#: transport.c:897
#, c-format
msgid "transport '%s' not allowed"
msgstr "transporten \"%s\" tillåts inte"
-#: transport.c:945
+#: transport.c:949
msgid "git-over-rsync is no longer supported"
msgstr "git-over-rsync stöds inte längre"
-#: transport.c:1040
+#: transport.c:1044
#, c-format
msgid ""
"The following submodule paths contain changes that can\n"
@@ -7357,7 +7382,7 @@ msgstr ""
"Följande undermodulsökvägar innehåller ändringar som\n"
"inte kan hittas av fjärrarna:\n"
-#: transport.c:1044
+#: transport.c:1048
#, c-format
msgid ""
"\n"
@@ -7384,32 +7409,32 @@ msgstr ""
"för att sända dem till fjärren.\n"
"\n"
-#: transport.c:1052
+#: transport.c:1056
msgid "Aborting."
msgstr "Avbryter."
-#: transport.c:1193
+#: transport.c:1201
msgid "failed to push all needed submodules"
msgstr "kunde inte sända alla nödvändiga undermoduler"
-#: transport.c:1340 transport-helper.c:645
+#: transport.c:1345 transport-helper.c:655
msgid "operation not supported by protocol"
msgstr "funktionen stöds inte av protokollet"
-#: transport-helper.c:51 transport-helper.c:80
+#: transport-helper.c:61 transport-helper.c:90
msgid "full write to remote helper failed"
msgstr "komplett skrivning till fjärrhjälpare misslyckades"
-#: transport-helper.c:134
+#: transport-helper.c:144
#, c-format
msgid "unable to find remote helper for '%s'"
msgstr "kan inte hitta fjärrhjälpare för \"%s\""
-#: transport-helper.c:150 transport-helper.c:559
+#: transport-helper.c:160 transport-helper.c:569
msgid "can't dup helper output fd"
msgstr "kunde inte duplicera utdata-filhandtag"
-#: transport-helper.c:201
+#: transport-helper.c:211
#, c-format
msgid ""
"unknown mandatory capability %s; this remote helper probably needs newer "
@@ -7418,101 +7443,106 @@ msgstr ""
"okänd krävd förmåga (capability) %s; fjärrhjälparen behöver antagligen en "
"nyare version av Git"
-#: transport-helper.c:207
+#: transport-helper.c:217
msgid "this remote helper should implement refspec capability"
msgstr ""
"fjärrhjälparen behöver implementera förmåga för referensspecifikationer "
"(refspec)"
-#: transport-helper.c:274 transport-helper.c:414
+#: transport-helper.c:284 transport-helper.c:424
#, c-format
msgid "%s unexpectedly said: '%s'"
msgstr "%s sade oväntat: \"%s\""
-#: transport-helper.c:403
+#: transport-helper.c:413
#, c-format
msgid "%s also locked %s"
msgstr "%s låste också %s"
-#: transport-helper.c:481
+#: transport-helper.c:491
msgid "couldn't run fast-import"
msgstr "kunde inte köra fast-import"
-#: transport-helper.c:504
+#: transport-helper.c:514
msgid "error while running fast-import"
msgstr "fel när fast-import kördes"
-#: transport-helper.c:533 transport-helper.c:1105
+#: transport-helper.c:543 transport-helper.c:1132
#, c-format
msgid "could not read ref %s"
msgstr "kunde inte läsa referensen %s"
-#: transport-helper.c:578
+#: transport-helper.c:588
#, c-format
msgid "unknown response to connect: %s"
msgstr "okänt svar på ansluntning: %s"
-#: transport-helper.c:600
+#: transport-helper.c:610
msgid "setting remote service path not supported by protocol"
msgstr "protkollet stöder inte att sätta sökväg till fjärrtjänst"
-#: transport-helper.c:602
+#: transport-helper.c:612
msgid "invalid remote service path"
msgstr "felaktig sökväg till fjärrtjänst"
-#: transport-helper.c:648
+#: transport-helper.c:658
#, c-format
msgid "can't connect to subservice %s"
msgstr "kan inte ansluta till undertjänsten %s"
-#: transport-helper.c:720
+#: transport-helper.c:734
#, c-format
msgid "expected ok/error, helper said '%s'"
msgstr "förväntade ok/error, hjälpprogrammet svarade \"%s\""
-#: transport-helper.c:773
+#: transport-helper.c:787
#, c-format
msgid "helper reported unexpected status of %s"
msgstr "hjälparen returnerade oväntad status %s"
-#: transport-helper.c:834
+#: transport-helper.c:848
#, c-format
msgid "helper %s does not support dry-run"
msgstr "hjälparen %s stöder inte dry-run"
-#: transport-helper.c:837
+#: transport-helper.c:851
#, c-format
msgid "helper %s does not support --signed"
msgstr "hjälparen %s stöder inte --signed"
-#: transport-helper.c:840
+#: transport-helper.c:854
#, c-format
msgid "helper %s does not support --signed=if-asked"
msgstr "hjälparen %s stöder inte --signed=if-asked"
-#: transport-helper.c:847
+#: transport-helper.c:859
+#, c-format
+msgid "helper %s does not support --atomic"
+msgstr "hjälparen %s stöder inte --atomic"
+
+#: transport-helper.c:865
#, c-format
msgid "helper %s does not support 'push-option'"
msgstr "hjälparen %s stöder inte \"push-option\""
-#: transport-helper.c:945
+#: transport-helper.c:963
msgid "remote-helper doesn't support push; refspec needed"
msgstr "fjärrhjälparen stöder inte push; referensspecifikation krävs"
-#: transport-helper.c:950
+#: transport-helper.c:968
#, c-format
msgid "helper %s does not support 'force'"
msgstr "hjälparen %s stöder inte \"force\""
-#: transport-helper.c:997
+#: transport-helper.c:1015
msgid "couldn't run fast-export"
msgstr "kunde inte köra fast-export"
-#: transport-helper.c:1002
+#: transport-helper.c:1020
msgid "error while running fast-export"
msgstr "fel vid körning av fast-export"
-#: transport-helper.c:1027
+#: transport-helper.c:1045
#, c-format
msgid ""
"No refs in common and none specified; doing nothing.\n"
@@ -7521,47 +7551,47 @@ msgstr ""
"Inga gemensamma referenser och inga angavs; gör inget.\n"
"Du kanske borde ange en gren såsom \"master\".\n"
-#: transport-helper.c:1091
+#: transport-helper.c:1118
#, c-format
msgid "malformed response in ref list: %s"
msgstr "felformat svar i referenslistan: %s"
-#: transport-helper.c:1244
+#: transport-helper.c:1270
#, c-format
msgid "read(%s) failed"
msgstr "läs(%s) misslyckades"
-#: transport-helper.c:1271
+#: transport-helper.c:1297
#, c-format
msgid "write(%s) failed"
msgstr "skriv(%s) misslyckades"
-#: transport-helper.c:1320
+#: transport-helper.c:1346
#, c-format
msgid "%s thread failed"
msgstr "%s-tråden misslyckades"
-#: transport-helper.c:1324
+#: transport-helper.c:1350
#, c-format
msgid "%s thread failed to join: %s"
msgstr "%s-tråden misslyckades ansluta: %s"
-#: transport-helper.c:1343 transport-helper.c:1347
+#: transport-helper.c:1369 transport-helper.c:1373
#, 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:1384
+#: transport-helper.c:1410
#, c-format
msgid "%s process failed to wait"
msgstr "processen %s misslyckades vänta"
-#: transport-helper.c:1388
+#: transport-helper.c:1414
#, c-format
msgid "%s process failed"
msgstr "processen %s misslyckades"
-#: transport-helper.c:1406 transport-helper.c:1415
+#: transport-helper.c:1432 transport-helper.c:1441
msgid "can't start thread for copying data"
msgstr "kan inte skapa tråd för kopiering av data"
@@ -7581,7 +7611,7 @@ msgstr "tomt filnamn i trädpost"
msgid "too-short tree file"
msgstr "trädfil för kort"
-#: unpack-trees.c:111
+#: unpack-trees.c:110
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by checkout:\n"
@@ -7590,7 +7620,7 @@ msgstr ""
"Dina lokala ändringar av följande filer skulle skrivas över av utcheckning:\n"
"%%sChecka in dina ändringar eller använd \"stash\" innan du byter gren."
-#: unpack-trees.c:113
+#: unpack-trees.c:112
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by checkout:\n"
@@ -7599,7 +7629,7 @@ msgstr ""
"Dina lokala ändringar av följande filer skulle skrivas över av utcheckning:\n"
"%%s"
-#: unpack-trees.c:116
+#: unpack-trees.c:115
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by merge:\n"
@@ -7609,7 +7639,7 @@ msgstr ""
"sammanslagning:\n"
"%%sChecka in dina ändringar eller använd \"stash\" innan du byter gren."
-#: unpack-trees.c:118
+#: unpack-trees.c:117
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by merge:\n"
@@ -7619,7 +7649,7 @@ msgstr ""
"sammanslagning:\n"
"%%s"
-#: unpack-trees.c:121
+#: unpack-trees.c:120
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by %s:\n"
@@ -7628,7 +7658,7 @@ msgstr ""
"Dina lokala ändringar av följande filer skulle skrivas över av \"%s\":\n"
"%%sChecka in dina ändringar eller använd \"stash\" innan du \"%s\"."
-#: unpack-trees.c:123
+#: unpack-trees.c:122
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by %s:\n"
@@ -7637,7 +7667,7 @@ msgstr ""
"Dina lokala ändringar av följande filer skulle skrivas över av \"%s\":\n"
"%%s"
-#: unpack-trees.c:128
+#: unpack-trees.c:127
#, c-format
msgid ""
"Updating the following directories would lose untracked files in them:\n"
@@ -7647,7 +7677,7 @@ msgstr ""
"dem:\n"
"%s"
-#: unpack-trees.c:132
+#: unpack-trees.c:131
#, c-format
msgid ""
"The following untracked working tree files would be removed by checkout:\n"
@@ -7656,7 +7686,7 @@ msgstr ""
"Följande ospårade filer i arbetskatalogen skulle tas bort av utcheckningen:\n"
"%%sFlytta eller ta bort dem innan du byter gren."
-#: unpack-trees.c:134
+#: unpack-trees.c:133
#, c-format
msgid ""
"The following untracked working tree files would be removed by checkout:\n"
@@ -7665,7 +7695,7 @@ msgstr ""
"Följande ospårade filer i arbetskatalogen skulle tas bort av utcheckningen:\n"
"%%s"
-#: unpack-trees.c:137
+#: unpack-trees.c:136
#, c-format
msgid ""
"The following untracked working tree files would be removed by merge:\n"
@@ -7675,7 +7705,7 @@ msgstr ""
"sammanslagningen:\n"
"%%sFlytta eller ta bort dem innan du slår samman."
-#: unpack-trees.c:139
+#: unpack-trees.c:138
#, c-format
msgid ""
"The following untracked working tree files would be removed by merge:\n"
@@ -7685,7 +7715,7 @@ msgstr ""
"sammanslagningen:\n"
"%%s"
-#: unpack-trees.c:142
+#: unpack-trees.c:141
#, c-format
msgid ""
"The following untracked working tree files would be removed by %s:\n"
@@ -7694,7 +7724,7 @@ msgstr ""
"Följande ospårade filer i arbetskatalogen skulle tas bort av \"%s\":\n"
"%%sFlytta eller ta bort dem innan du \"%s\"."
-#: unpack-trees.c:144
+#: unpack-trees.c:143
#, c-format
msgid ""
"The following untracked working tree files would be removed by %s:\n"
@@ -7703,7 +7733,7 @@ msgstr ""
"Följande ospårade filer i arbetskatalogen skulle tas bort av \"%s\":\n"
"%%s"
-#: unpack-trees.c:150
+#: unpack-trees.c:149
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by "
@@ -7714,7 +7744,7 @@ msgstr ""
"utcheckningen:\n"
"%%sFlytta eller ta bort dem innan du byter gren."
-#: unpack-trees.c:152
+#: unpack-trees.c:151
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by "
@@ -7725,7 +7755,7 @@ msgstr ""
"utcheckningen:\n"
"%%s"
-#: unpack-trees.c:155
+#: unpack-trees.c:154
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by merge:\n"
@@ -7735,7 +7765,7 @@ msgstr ""
"sammanslagningen:\n"
"%%sFlytta eller ta bort dem innan du byter gren."
-#: unpack-trees.c:157
+#: unpack-trees.c:156
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by merge:\n"
@@ -7745,7 +7775,7 @@ msgstr ""
"sammanslagningen:\n"
"%%s"
-#: unpack-trees.c:160
+#: unpack-trees.c:159
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by %s:\n"
@@ -7754,7 +7784,7 @@ msgstr ""
"Följande ospårade filer i arbetskatalogen skulle skrivas över av \"%s\":\n"
"%%sFlytta eller ta bort dem innan du \"%s\"."
-#: unpack-trees.c:162
+#: unpack-trees.c:161
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by %s:\n"
@@ -7763,12 +7793,12 @@ msgstr ""
"Följande ospårade filer i arbetskatalogen skulle skrivas över av \"%s\":\n"
"%%s"
-#: unpack-trees.c:170
+#: unpack-trees.c:169
#, c-format
msgid "Entry '%s' overlaps with '%s'. Cannot bind."
msgstr "Posten \"%s\" överlappar \"%s\". Kan inte binda."
-#: unpack-trees.c:173
+#: unpack-trees.c:172
#, c-format
msgid ""
"Cannot update sparse checkout: the following entries are not up to date:\n"
@@ -7777,7 +7807,7 @@ msgstr ""
"Kan inte uppdatera gles utcheckning: följande poster är inte à jour:\n"
"%s"
-#: unpack-trees.c:175
+#: unpack-trees.c:174
#, c-format
msgid ""
"The following working tree files would be overwritten by sparse checkout "
@@ -7788,7 +7818,7 @@ msgstr ""
"utcheckning:\n"
"%s"
-#: unpack-trees.c:177
+#: unpack-trees.c:176
#, c-format
msgid ""
"The following working tree files would be removed by sparse checkout "
@@ -7799,7 +7829,7 @@ msgstr ""
"utcheckning:\n"
"%s"
-#: unpack-trees.c:179
+#: unpack-trees.c:178
#, c-format
msgid ""
"Cannot update submodule:\n"
@@ -7808,16 +7838,16 @@ msgstr ""
"Kan inte uppdatera undermodul:\n"
"%s"
-#: unpack-trees.c:256
+#: unpack-trees.c:255
#, c-format
msgid "Aborting\n"
msgstr "Avbryter\n"
-#: unpack-trees.c:318
+#: unpack-trees.c:317
msgid "Updating files"
msgstr "Uppdaterar filer"
-#: unpack-trees.c:350
+#: unpack-trees.c:349
msgid ""
"the following paths have collided (e.g. case-sensitive paths\n"
"on a case-insensitive filesystem) and only one from the same\n"
@@ -7856,7 +7886,7 @@ msgstr "felaktigt portnummer"
msgid "invalid '..' path segment"
msgstr "felaktigt \"..\"-sökvägssegment"
-#: worktree.c:258 builtin/am.c:2095
+#: worktree.c:258 builtin/am.c:2084
#, c-format
msgid "failed to read '%s'"
msgstr "misslyckades läsa \"%s\""
@@ -7886,17 +7916,17 @@ msgstr "\"%s\" är inte en .git-fil, felkod %d"
msgid "'%s' does not point back to '%s'"
msgstr "\"%s\" pekar inte tillbaka till \"%s\""
-#: wrapper.c:223 wrapper.c:393
+#: wrapper.c:186 wrapper.c:356
#, c-format
msgid "could not open '%s' for reading and writing"
msgstr "kunde inte öppna \"%s\" för läsning och skrivning"
-#: wrapper.c:424 wrapper.c:624
+#: wrapper.c:387 wrapper.c:588
#, c-format
msgid "unable to access '%s'"
msgstr "kan inte komma åt \"%s\""
-#: wrapper.c:632
+#: wrapper.c:596
msgid "unable to get current working directory"
msgstr "kan inte hämta aktuell arbetskatalog"
@@ -8232,83 +8262,91 @@ msgid " (all conflicts fixed: run \"git cherry-pick --continue\")"
msgstr " (alla konflikter rättade: kör \"git cherry-pick --continue\")"
#: wt-status.c:1437
+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:1439
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:1447
+#: wt-status.c:1449
msgid "Revert currently in progress."
msgstr "Ångring pågår."
-#: wt-status.c:1450
+#: wt-status.c:1452
#, c-format
msgid "You are currently reverting commit %s."
msgstr "Du håller på med att ångra incheckningen %s."
-#: wt-status.c:1456
+#: wt-status.c:1458
msgid " (fix conflicts and run \"git revert --continue\")"
msgstr " (rätta konflikter och kör sedan \"git revert --continue\")"
-#: wt-status.c:1459
+#: wt-status.c:1461
msgid " (run \"git revert --continue\" to continue)"
msgstr " (kör \"git revert --continue\" för att fortsätta)"
-#: wt-status.c:1462
+#: wt-status.c:1464
msgid " (all conflicts fixed: run \"git revert --continue\")"
msgstr " (alla konflikter rättade: kör \"git revert --continue\")"
-#: wt-status.c:1464
+#: wt-status.c:1466
+msgid " (use \"git revert --skip\" to skip this patch)"
+msgstr " (använd \"git revert --skip\" för att hoppa över patchen)"
+
+#: wt-status.c:1468
msgid " (use \"git revert --abort\" to cancel the revert operation)"
msgstr " (använd \"git revert --abort\" för att avbryta ångrandet)"
-#: wt-status.c:1474
+#: wt-status.c:1478
#, 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:1478
+#: wt-status.c:1482
msgid "You are currently bisecting."
msgstr "Du håller på med en \"bisect\"."
-#: wt-status.c:1481
+#: wt-status.c:1485
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:1690
+#: wt-status.c:1694
msgid "On branch "
msgstr "PÃ¥ grenen "
-#: wt-status.c:1697
+#: wt-status.c:1701
msgid "interactive rebase in progress; onto "
msgstr "interaktiv ombasering pågår; ovanpå "
-#: wt-status.c:1699
+#: wt-status.c:1703
msgid "rebase in progress; onto "
msgstr "ombasering pågår; ovanpå "
-#: wt-status.c:1709
+#: wt-status.c:1713
msgid "Not currently on any branch."
msgstr "Inte på någon gren för närvarande."
-#: wt-status.c:1726
+#: wt-status.c:1730
msgid "Initial commit"
msgstr "Första incheckning"
-#: wt-status.c:1727
+#: wt-status.c:1731
msgid "No commits yet"
msgstr "Inga incheckningar ännu"
-#: wt-status.c:1741
+#: wt-status.c:1745
msgid "Untracked files"
msgstr "Ospårade filer"
-#: wt-status.c:1743
+#: wt-status.c:1747
msgid "Ignored files"
msgstr "Ignorerade filer"
-#: wt-status.c:1747
+#: wt-status.c:1751
#, c-format
msgid ""
"It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
@@ -8320,32 +8358,32 @@ msgstr ""
"lägga till nya filer själv (se \"git help status\")."
# %s är nästa sträng eller tom.
-#: wt-status.c:1753
+#: wt-status.c:1757
#, c-format
msgid "Untracked files not listed%s"
msgstr "Ospårade filer visas ej%s"
-#: wt-status.c:1755
+#: wt-status.c:1759
msgid " (use -u option to show untracked files)"
msgstr " (använd flaggan -u för att visa ospårade filer)"
-#: wt-status.c:1761
+#: wt-status.c:1765
msgid "No changes"
msgstr "Inga ändringar"
-#: wt-status.c:1766
+#: wt-status.c:1770
#, 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:1769
+#: wt-status.c:1773
#, c-format
msgid "no changes added to commit\n"
msgstr "inga ändringar att checka in\n"
-#: wt-status.c:1772
+#: wt-status.c:1776
#, c-format
msgid ""
"nothing added to commit but untracked files present (use \"git add\" to "
@@ -8354,66 +8392,71 @@ msgstr ""
"inget köat för incheckning, men ospårade filer finns (spåra med \"git add"
"\")\n"
-#: wt-status.c:1775
+#: wt-status.c:1779
#, 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:1778
+#: wt-status.c:1782
#, 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:1781 wt-status.c:1786
+#: wt-status.c:1785 wt-status.c:1790
#, c-format
msgid "nothing to commit\n"
msgstr "inget att checka in\n"
-#: wt-status.c:1784
+#: wt-status.c:1788
#, 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:1788
+#: wt-status.c:1792
#, c-format
msgid "nothing to commit, working tree clean\n"
msgstr "inget att checka in, arbetskatalogen ren\n"
-#: wt-status.c:1901
+#: wt-status.c:1905
msgid "No commits yet on "
msgstr "Inga incheckningar ännu på "
-#: wt-status.c:1905
+#: wt-status.c:1909
msgid "HEAD (no branch)"
msgstr "HEAD (ingen gren)"
-#: wt-status.c:1936
+#: wt-status.c:1940
msgid "different"
msgstr "olika"
-#: wt-status.c:1938 wt-status.c:1946
+#: wt-status.c:1942 wt-status.c:1950
msgid "behind "
msgstr "efter "
-#: wt-status.c:1941 wt-status.c:1944
+#: wt-status.c:1945 wt-status.c:1948
msgid "ahead "
msgstr "före "
#. TRANSLATORS: the action is e.g. "pull with rebase"
-#: wt-status.c:2466
+#: wt-status.c:2470
#, c-format
msgid "cannot %s: You have unstaged changes."
msgstr "kan inte %s: Du har oköade ändringar."
-#: wt-status.c:2472
+#: wt-status.c:2476
msgid "additionally, your index contains uncommitted changes."
msgstr "dessutom innehåller dit index ändringar som inte har checkats in."
-#: wt-status.c:2474
+#: wt-status.c:2478
#, c-format
msgid "cannot %s: Your index contains uncommitted changes."
msgstr "kan inte %s: Ditt index innehåller ändringar som inte checkats in."
+#: compat/precompose_utf8.c:58 builtin/clone.c:452
+#, c-format
+msgid "failed to unlink '%s'"
+msgstr "misslyckades ta bort länken \"%s\""
+
#: builtin/add.c:25
msgid "git add [<options>] [--] <pathspec>..."
msgstr "git add [<flaggor>] [--] <sökväg>..."
@@ -8436,7 +8479,7 @@ msgstr "ta bort \"%s\"\n"
msgid "Unstaged changes after refreshing the index:"
msgstr "Oköade ändringar efter att ha uppdaterat indexet:"
-#: builtin/add.c:234 builtin/rev-parse.c:896
+#: builtin/add.c:234 builtin/rev-parse.c:897
msgid "Could not read the index"
msgstr "Kunde inte läsa indexet"
@@ -8471,8 +8514,8 @@ msgstr "Kunde inte tillämpa \"%s\""
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:290 builtin/clean.c:909 builtin/fetch.c:147 builtin/mv.c:124
-#: builtin/prune-packed.c:56 builtin/pull.c:222 builtin/push.c:560
+#: builtin/add.c:290 builtin/clean.c:910 builtin/fetch.c:162 builtin/mv.c:124
+#: builtin/prune-packed.c:56 builtin/pull.c:223 builtin/push.c:547
#: builtin/remote.c:1345 builtin/rm.c:241 builtin/send-pack.c:165
msgid "dry run"
msgstr "testkörning"
@@ -8525,7 +8568,7 @@ msgstr "hoppa bara över filer som inte kan läggas till på grund av fel"
msgid "check if - even missing - files are ignored in dry run"
msgstr "se om - även saknade - filer ignoreras i testkörning"
-#: builtin/add.c:309 builtin/update-index.c:1001
+#: builtin/add.c:309 builtin/update-index.c:1002
msgid "override the executable bit of the listed files"
msgstr "överstyr exekveringsbiten för angivna filer"
@@ -8601,113 +8644,109 @@ msgstr "Inget angivet, inget tillagt.\n"
msgid "Maybe you wanted to say 'git add .'?\n"
msgstr "Kanske menade du att skriva \"git add .\"?\n"
-#: builtin/am.c:348
+#: builtin/am.c:347
msgid "could not parse author script"
msgstr "kunde inte tolka författarskript"
-#: builtin/am.c:432
+#: builtin/am.c:431
#, c-format
msgid "'%s' was deleted by the applypatch-msg hook"
msgstr "\"%s\" togs bort av kroken applypatch-msg"
-#: builtin/am.c:474
+#: builtin/am.c:473
#, c-format
msgid "Malformed input line: '%s'."
msgstr "Felaktig indatarad: \"%s\"."
-#: builtin/am.c:512
+#: builtin/am.c:511
#, c-format
msgid "Failed to copy notes from '%s' to '%s'"
msgstr "Misslyckades kopiera anteckningar från \"%s\" till \"%s\""
-#: builtin/am.c:538
+#: builtin/am.c:537
msgid "fseek failed"
msgstr "\"fseek\" misslyckades"
-#: builtin/am.c:726
+#: builtin/am.c:725
#, c-format
msgid "could not parse patch '%s'"
msgstr "kunde inte tolka patchen \"%s\""
-#: builtin/am.c:791
+#: builtin/am.c:790
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:839
+#: builtin/am.c:838
msgid "invalid timestamp"
msgstr "ogiltig tidsstämpel"
-#: builtin/am.c:844 builtin/am.c:856
+#: builtin/am.c:843 builtin/am.c:855
msgid "invalid Date line"
msgstr "ogiltig \"Date\"-rad"
-#: builtin/am.c:851
+#: builtin/am.c:850
msgid "invalid timezone offset"
msgstr "ogiltig tidszons-offset"
-#: builtin/am.c:944
+#: builtin/am.c:943
msgid "Patch format detection failed."
msgstr "Misslyckades detektera patchformat."
-#: builtin/am.c:949 builtin/clone.c:407
+#: builtin/am.c:948 builtin/clone.c:406
#, c-format
msgid "failed to create directory '%s'"
msgstr "misslyckades skapa katalogen \"%s\""
-#: builtin/am.c:954
+#: builtin/am.c:953
msgid "Failed to split patches."
msgstr "Misslyckades dela patchar."
-#: builtin/am.c:1084 builtin/commit.c:374
-msgid "unable to write index file"
-msgstr "kan inte skriva indexfil"
-
-#: builtin/am.c:1098
+#: builtin/am.c:1084
#, 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:1099
+#: builtin/am.c:1085
#, 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:1100
+#: builtin/am.c:1086
#, 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:1183
+#: builtin/am.c:1169
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:1211
+#: builtin/am.c:1197
msgid "Patch is empty."
msgstr "Patchen är tom."
-#: builtin/am.c:1277
+#: builtin/am.c:1262
#, c-format
-msgid "invalid ident line: %.*s"
-msgstr "ogiltig ident-rad: %.*s"
+msgid "missing author line in commit %s"
+msgstr "saknad \"author\"-rad i incheckningen %s"
-#: builtin/am.c:1299
+#: builtin/am.c:1265
#, c-format
-msgid "unable to parse commit %s"
-msgstr "kunde inte tolka incheckningen %s"
+msgid "invalid ident line: %.*s"
+msgstr "ogiltig ident-rad: %.*s"
-#: builtin/am.c:1496
+#: builtin/am.c:1484
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:1498
+#: builtin/am.c:1486
msgid "Using index info to reconstruct a base tree..."
msgstr "Använder indexinfo för att återskapa ett basträd..."
-#: builtin/am.c:1517
+#: builtin/am.c:1505
msgid ""
"Did you hand edit your patch?\n"
"It does not apply to blobs recorded in its index."
@@ -8715,25 +8754,25 @@ msgstr ""
"Har du handredigerat din patch?\n"
"Den kan inte tillämpas på blobbar som antecknats i dess index."
-#: builtin/am.c:1523
+#: builtin/am.c:1511
msgid "Falling back to patching base and 3-way merge..."
msgstr ""
"Faller tillbaka på att patcha grundversionen och trevägssammanslagning..."
-#: builtin/am.c:1549
+#: builtin/am.c:1537
msgid "Failed to merge in the changes."
msgstr "Misslyckades slå ihop ändringarna."
-#: builtin/am.c:1581
+#: builtin/am.c:1569
msgid "applying to an empty history"
msgstr "tillämpar på en tom historik"
-#: builtin/am.c:1628 builtin/am.c:1632
+#: builtin/am.c:1616 builtin/am.c:1620
#, c-format
msgid "cannot resume: %s does not exist."
msgstr "kan inte återuppta: %s finns inte."
-#: builtin/am.c:1650
+#: builtin/am.c:1638
msgid "Commit Body is:"
msgstr "Incheckningskroppen är:"
@@ -8741,36 +8780,40 @@ msgstr "Incheckningskroppen är:"
#. in your translation. The program will only accept English
#. input at this point.
#.
-#: builtin/am.c:1660
+#: builtin/am.c:1648
#, 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:1710
+#: builtin/am.c:1695 builtin/commit.c:374
+msgid "unable to write index file"
+msgstr "kan inte skriva indexfil"
+
+#: builtin/am.c:1699
#, c-format
msgid "Dirty index: cannot apply patches (dirty: %s)"
msgstr "Smutsigt index: kan inte tillämpa patchar (smutsiga: %s)"
-#: builtin/am.c:1750 builtin/am.c:1818
+#: builtin/am.c:1739 builtin/am.c:1807
#, c-format
msgid "Applying: %.*s"
msgstr "Tillämpar: %.*s"
-#: builtin/am.c:1767
+#: builtin/am.c:1756
msgid "No changes -- Patch already applied."
msgstr "Inga ändringar -- Patchen har redan tillämpats."
-#: builtin/am.c:1773
+#: builtin/am.c:1762
#, c-format
msgid "Patch failed at %s %.*s"
msgstr "Patch misslyckades på %s %.*s"
-#: builtin/am.c:1777
+#: builtin/am.c:1766
msgid "Use 'git am --show-current-patch' to see the failed patch"
msgstr ""
"Använd \"git am --show-current-patch\" för att se patchen som misslyckades"
-#: builtin/am.c:1821
+#: builtin/am.c:1810
msgid ""
"No changes - did you forget to use 'git add'?\n"
"If there is nothing left to stage, chances are that something else\n"
@@ -8780,7 +8823,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:1828
+#: builtin/am.c:1817
msgid ""
"You still have unmerged paths in your index.\n"
"You should 'git add' each file with resolved conflicts to mark them as "
@@ -8792,17 +8835,17 @@ msgstr ""
"lösta.\n"
"Du kan köra \"git rm\" för att godta \"borttagen av dem\" för den."
-#: builtin/am.c:1935 builtin/am.c:1939 builtin/am.c:1951 builtin/reset.c:329
+#: builtin/am.c:1924 builtin/am.c:1928 builtin/am.c:1940 builtin/reset.c:329
#: builtin/reset.c:337
#, c-format
msgid "Could not parse object '%s'."
msgstr "Kan inte tolka objektet \"%s\"."
-#: builtin/am.c:1987
+#: builtin/am.c:1976
msgid "failed to clean index"
msgstr "misslyckades städa upp indexet"
-#: builtin/am.c:2031
+#: builtin/am.c:2020
msgid ""
"You seem to have moved HEAD since the last 'am' failure.\n"
"Not rewinding to ORIG_HEAD"
@@ -8810,143 +8853,143 @@ msgstr ""
"Du verkar ha flyttat HEAD sedan \"am\" sist misslyckades.\n"
"Återställer inte till ORIG_HEAD"
-#: builtin/am.c:2128
+#: builtin/am.c:2117
#, c-format
msgid "Invalid value for --patch-format: %s"
msgstr "Felaktigt värde för --patch-format: %s"
-#: builtin/am.c:2164
+#: builtin/am.c:2153
msgid "git am [<options>] [(<mbox> | <Maildir>)...]"
msgstr "git am [<flaggor>] [(<mbox> | <Maildir>)...]"
-#: builtin/am.c:2165
+#: builtin/am.c:2154
msgid "git am [<options>] (--continue | --skip | --abort)"
msgstr "git am [<flaggor>] (--continue | --skip | --abort)"
-#: builtin/am.c:2171
+#: builtin/am.c:2160
msgid "run interactively"
msgstr "kör interaktivt"
-#: builtin/am.c:2173
+#: builtin/am.c:2162
msgid "historical option -- no-op"
msgstr "historisk flagga -- no-op"
-#: builtin/am.c:2175
+#: builtin/am.c:2164
msgid "allow fall back on 3way merging if needed"
msgstr "tillåt falla tillbaka på trevägssammanslagning om nödvändigt"
-#: builtin/am.c:2176 builtin/init-db.c:494 builtin/prune-packed.c:58
-#: builtin/repack.c:307 builtin/stash.c:806
+#: builtin/am.c:2165 builtin/init-db.c:494 builtin/prune-packed.c:58
+#: builtin/repack.c:297 builtin/stash.c:812
msgid "be quiet"
msgstr "var tyst"
-#: builtin/am.c:2178
+#: builtin/am.c:2167
msgid "add a Signed-off-by line to the commit message"
msgstr "lägg till \"Signed-off-by\"-rad i incheckningsmeddelandet"
-#: builtin/am.c:2181
+#: builtin/am.c:2170
msgid "recode into utf8 (default)"
msgstr "koda om till utf8 (standard)"
-#: builtin/am.c:2183
+#: builtin/am.c:2172
msgid "pass -k flag to git-mailinfo"
msgstr "sänd flaggan -k till git-mailinfo"
-#: builtin/am.c:2185
+#: builtin/am.c:2174
msgid "pass -b flag to git-mailinfo"
msgstr "sänd flaggan -b till git-mailinfo"
-#: builtin/am.c:2187
+#: builtin/am.c:2176
msgid "pass -m flag to git-mailinfo"
msgstr "sänd flaggan -m till git-mailinfo"
-#: builtin/am.c:2189
+#: builtin/am.c:2178
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:2192
+#: builtin/am.c:2181
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:2195
+#: builtin/am.c:2184
msgid "strip everything before a scissors line"
msgstr "ta bort allting före en saxlinje"
-#: builtin/am.c:2197 builtin/am.c:2200 builtin/am.c:2203 builtin/am.c:2206
-#: builtin/am.c:2209 builtin/am.c:2212 builtin/am.c:2215 builtin/am.c:2218
-#: builtin/am.c:2224
+#: builtin/am.c:2186 builtin/am.c:2189 builtin/am.c:2192 builtin/am.c:2195
+#: builtin/am.c:2198 builtin/am.c:2201 builtin/am.c:2204 builtin/am.c:2207
+#: builtin/am.c:2213
msgid "pass it through git-apply"
msgstr "sänd det genom git-apply"
-#: builtin/am.c:2214 builtin/commit.c:1368 builtin/fmt-merge-msg.c:671
-#: builtin/fmt-merge-msg.c:674 builtin/grep.c:881 builtin/merge.c:249
-#: builtin/pull.c:159 builtin/pull.c:218 builtin/rebase.c:1418
-#: builtin/repack.c:318 builtin/repack.c:322 builtin/repack.c:324
+#: builtin/am.c:2203 builtin/commit.c:1368 builtin/fmt-merge-msg.c:671
+#: builtin/fmt-merge-msg.c:674 builtin/grep.c:883 builtin/merge.c:249
+#: builtin/pull.c:160 builtin/pull.c:219 builtin/rebase.c:1442
+#: builtin/repack.c:308 builtin/repack.c:312 builtin/repack.c:314
#: builtin/show-branch.c:650 builtin/show-ref.c:172 builtin/tag.c:403
-#: parse-options.h:141 parse-options.h:162 parse-options.h:312
+#: parse-options.h:150 parse-options.h:171 parse-options.h:312
msgid "n"
msgstr "n"
-#: builtin/am.c:2220 builtin/branch.c:661 builtin/for-each-ref.c:38
-#: builtin/replace.c:554 builtin/tag.c:437 builtin/verify-tag.c:39
+#: builtin/am.c:2209 builtin/branch.c:661 builtin/for-each-ref.c:38
+#: builtin/replace.c:555 builtin/tag.c:437 builtin/verify-tag.c:38
msgid "format"
msgstr "format"
-#: builtin/am.c:2221
+#: builtin/am.c:2210
msgid "format the patch(es) are in"
msgstr "format för patch(ar)"
-#: builtin/am.c:2227
+#: builtin/am.c:2216
msgid "override error message when patch failure occurs"
msgstr "överstyr felmeddelanden när patchfel uppstår"
-#: builtin/am.c:2229
+#: builtin/am.c:2218
msgid "continue applying patches after resolving a conflict"
msgstr "fortsätt applicera patchar efter att ha löst en konflikt"
-#: builtin/am.c:2232
+#: builtin/am.c:2221
msgid "synonyms for --continue"
msgstr "synonymer till --continue"
-#: builtin/am.c:2235
+#: builtin/am.c:2224
msgid "skip the current patch"
msgstr "hoppa över den aktuella grenen"
-#: builtin/am.c:2238
+#: builtin/am.c:2227
msgid "restore the original branch and abort the patching operation."
msgstr "återställ originalgrenen och avbryt patchningen."
-#: builtin/am.c:2241
+#: builtin/am.c:2230
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:2244
+#: builtin/am.c:2233
msgid "show the patch being applied."
msgstr "visa patchen som tillämpas."
-#: builtin/am.c:2248
+#: builtin/am.c:2237
msgid "lie about committer date"
msgstr "ljug om incheckningsdatum"
-#: builtin/am.c:2250
+#: builtin/am.c:2239
msgid "use current timestamp for author date"
msgstr "använd nuvarande tidsstämpel för författardatum"
-#: builtin/am.c:2252 builtin/commit-tree.c:120 builtin/commit.c:1511
-#: builtin/merge.c:286 builtin/pull.c:193 builtin/rebase.c:489
-#: builtin/rebase.c:1459 builtin/revert.c:117 builtin/tag.c:418
+#: builtin/am.c:2241 builtin/commit-tree.c:120 builtin/commit.c:1511
+#: builtin/merge.c:286 builtin/pull.c:194 builtin/rebase.c:490
+#: builtin/rebase.c:1483 builtin/revert.c:117 builtin/tag.c:418
msgid "key-id"
msgstr "nyckel-id"
-#: builtin/am.c:2253 builtin/rebase.c:490 builtin/rebase.c:1460
+#: builtin/am.c:2242 builtin/rebase.c:491 builtin/rebase.c:1484
msgid "GPG-sign commits"
msgstr "GPG-signera incheckningar"
-#: builtin/am.c:2256
+#: builtin/am.c:2245
msgid "(internal use for git-rebase)"
msgstr "(används internt av git-rebase)"
-#: builtin/am.c:2274
+#: builtin/am.c:2263
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."
@@ -8954,16 +8997,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:2281
+#: builtin/am.c:2270
msgid "failed to read the index"
msgstr "misslyckades läsa indexet"
-#: builtin/am.c:2296
+#: builtin/am.c:2285
#, 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:2320
+#: builtin/am.c:2309
#, c-format
msgid ""
"Stray %s directory found.\n"
@@ -8972,11 +9015,11 @@ msgstr ""
"Kvarbliven katalog %s hittades.\n"
"Använd \"git am --abort\" för att ta bort den."
-#: builtin/am.c:2326
+#: builtin/am.c:2315
msgid "Resolve operation not in progress, we are not resuming."
msgstr "Lösningsoperation pågår inte, vi återupptar inte."
-#: builtin/am.c:2336
+#: builtin/am.c:2325
msgid "interactive mode requires patches on the command line"
msgstr "interaktivt läge kräver patchar på kommandoraden"
@@ -9200,7 +9243,8 @@ msgstr "felaktigt HEAD - Jag behöver ett HEAD"
#: builtin/bisect--helper.c:526
#, c-format
msgid "checking out '%s' failed. Try 'git bisect start <valid-branch>'."
-msgstr "misslyckades checka ut \"%s\". Försök \"git bisect reset <giltig_gren>\"."
+msgstr ""
+"misslyckades checka ut \"%s\". Försök \"git bisect reset <giltig_gren>\"."
# cogito-relaterat
#: builtin/bisect--helper.c:547
@@ -9292,154 +9336,154 @@ msgstr "--bisect-next-check kräver 2 eller 3 argument"
msgid "--bisect-terms requires 0 or 1 argument"
msgstr "--bisect-terms kräver noll eller ett argument"
-#: builtin/blame.c:32
+#: builtin/blame.c:31
msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>"
msgstr "git blame [<flaggor>] [<rev-flaggor>] [<rev>] [--] <fil>"
-#: builtin/blame.c:37
+#: builtin/blame.c:36
msgid "<rev-opts> are documented in git-rev-list(1)"
msgstr "<rev-flaggor> dokumenteras i git-rev-list(1)"
-#: builtin/blame.c:410
+#: builtin/blame.c:409
#, c-format
msgid "expecting a color: %s"
msgstr "förväntade en färg: %s"
-#: builtin/blame.c:417
+#: builtin/blame.c:416
msgid "must end with a color"
msgstr "måste sluta med en färg"
-#: builtin/blame.c:730
+#: builtin/blame.c:729
#, c-format
msgid "invalid color '%s' in color.blame.repeatedLines"
msgstr "felaktig färg \"%s\" i color.blame.repeatedLines"
-#: builtin/blame.c:748
+#: builtin/blame.c:747
msgid "invalid value for blame.coloring"
msgstr "ogiltigt värde för blame.coloring"
-#: builtin/blame.c:823
+#: builtin/blame.c:822
#, c-format
msgid "cannot find revision %s to ignore"
msgstr "kan inte hitta revision %s att ignorera"
-#: builtin/blame.c:845
+#: builtin/blame.c:844
msgid "Show blame entries as we find them, incrementally"
msgstr "Visa klandringsposter när vi hittar dem, interaktivt"
-#: builtin/blame.c:846
+#: builtin/blame.c:845
msgid "Show blank SHA-1 for boundary commits (Default: off)"
msgstr "Visa blank SHA-1 för gränsincheckningar (Standard: av)"
-#: builtin/blame.c:847
+#: builtin/blame.c:846
msgid "Do not treat root commits as boundaries (Default: off)"
msgstr "Behandla inte rotincheckningar som gränser (Standard: av)"
-#: builtin/blame.c:848
+#: builtin/blame.c:847
msgid "Show work cost statistics"
msgstr "Visa statistik över arbetskostnad"
-#: builtin/blame.c:849
+#: builtin/blame.c:848
msgid "Force progress reporting"
msgstr "Tvinga förloppsrapportering"
-#: builtin/blame.c:850
+#: builtin/blame.c:849
msgid "Show output score for blame entries"
msgstr "Visa utdatapoäng för klandringsposter"
-#: builtin/blame.c:851
+#: builtin/blame.c:850
msgid "Show original filename (Default: auto)"
msgstr "Visa originalfilnamn (Standard: auto)"
-#: builtin/blame.c:852
+#: builtin/blame.c:851
msgid "Show original linenumber (Default: off)"
msgstr "Visa ursprungligt radnummer (Standard: av)"
-#: builtin/blame.c:853
+#: builtin/blame.c:852
msgid "Show in a format designed for machine consumption"
msgstr "Visa i ett format avsett för maskinkonsumtion"
-#: builtin/blame.c:854
+#: builtin/blame.c:853
msgid "Show porcelain format with per-line commit information"
msgstr "Visa porslinsformat med per-rad-incheckningsinformation"
-#: builtin/blame.c:855
+#: builtin/blame.c:854
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:856
+#: builtin/blame.c:855
msgid "Show raw timestamp (Default: off)"
msgstr "Visa rå tidsstämpel (Standard: av)"
-#: builtin/blame.c:857
+#: builtin/blame.c:856
msgid "Show long commit SHA1 (Default: off)"
msgstr "Visa lång inchecknings-SHA1 (Standard: av)"
-#: builtin/blame.c:858
+#: builtin/blame.c:857
msgid "Suppress author name and timestamp (Default: off)"
msgstr "Undertryck författarnamn och tidsstämpel (Standard: av)"
-#: builtin/blame.c:859
+#: builtin/blame.c:858
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:860
+#: builtin/blame.c:859
msgid "Ignore whitespace differences"
msgstr "Ignorera ändringar i blanksteg"
-#: builtin/blame.c:861 builtin/log.c:1646
+#: builtin/blame.c:860 builtin/log.c:1630
msgid "rev"
msgstr "rev"
-#: builtin/blame.c:861
+#: builtin/blame.c:860
msgid "Ignore <rev> when blaming"
msgstr "ignorera <rev> vid klandren"
-#: builtin/blame.c:862
+#: builtin/blame.c:861
msgid "Ignore revisions from <file>"
msgstr "ignorera revisioner från <fil>"
-#: builtin/blame.c:863
+#: builtin/blame.c:862
msgid "color redundant metadata from previous line differently"
msgstr "färglägg redundant metadata från tidigare rader annorlunda"
-#: builtin/blame.c:864
+#: builtin/blame.c:863
msgid "color lines by age"
msgstr "färglägg rader efter ålder"
-#: builtin/blame.c:871
+#: builtin/blame.c:870
msgid "Use an experimental heuristic to improve diffs"
msgstr "Använd en experimentell algoritm för att förbättra diffar"
-#: builtin/blame.c:873
+#: builtin/blame.c:872
msgid "Spend extra cycles to find better match"
msgstr "Slösa extra cykler med att hitta bättre träff"
-#: builtin/blame.c:874
+#: builtin/blame.c:873
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:875
+#: builtin/blame.c:874
msgid "Use <file>'s contents as the final image"
msgstr "Använd <fil>s innehåll som slutgiltig bild"
-#: builtin/blame.c:876 builtin/blame.c:877
+#: builtin/blame.c:875 builtin/blame.c:876
msgid "score"
msgstr "poäng"
-#: builtin/blame.c:876
+#: builtin/blame.c:875
msgid "Find line copies within and across files"
msgstr "Hitta kopierade rader inuti och mellan filer"
-#: builtin/blame.c:877
+#: builtin/blame.c:876
msgid "Find line movements within and across files"
msgstr "Hitta flyttade rader inuti och mellan filer"
-#: builtin/blame.c:878
+#: builtin/blame.c:877
msgid "n,m"
msgstr "n,m"
-#: builtin/blame.c:878
+#: builtin/blame.c:877
msgid "Process only line range n,m, counting from 1"
msgstr "Behandla endast radintervallet n,m, med början på 1"
@@ -9676,7 +9720,7 @@ msgstr "ställ in spårningsläge (se git-pull(1))"
msgid "do not use"
msgstr "använd ej"
-#: builtin/branch.c:626 builtin/rebase.c:485
+#: builtin/branch.c:626 builtin/rebase.c:486
msgid "upstream"
msgstr "uppströms"
@@ -9783,11 +9827,11 @@ msgid "sorting and filtering are case insensitive"
msgstr "sortering och filtrering skiljer gemener och VERSALER"
#: builtin/branch.c:661 builtin/for-each-ref.c:38 builtin/tag.c:438
-#: builtin/verify-tag.c:39
+#: builtin/verify-tag.c:38
msgid "format to use for the output"
msgstr "format att använda för utdata"
-#: builtin/branch.c:684 builtin/clone.c:761
+#: builtin/branch.c:684 builtin/clone.c:760
msgid "HEAD not found below refs/heads!"
msgstr "HEAD hittades inte under refs/heads!"
@@ -9889,7 +9933,7 @@ msgstr "Behöver ett arkiv för att skapa ett paket (bundle)."
msgid "Need a repository to unbundle."
msgstr "Behöver ett arkiv för att packa upp ett paket (bundle)."
-#: builtin/cat-file.c:594
+#: builtin/cat-file.c:595
msgid ""
"git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -"
"p | <type> | --textconv | --filters) [--path=<path>] <object>"
@@ -9897,7 +9941,7 @@ msgstr ""
"git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -"
"p | <typ> | --textconv | --filters) [--path=<sökväg>] <objekt>"
-#: builtin/cat-file.c:595
+#: builtin/cat-file.c:596
msgid ""
"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --"
"filters]"
@@ -9905,72 +9949,72 @@ msgstr ""
"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --"
"filters]"
-#: builtin/cat-file.c:616
+#: builtin/cat-file.c:617
msgid "only one batch option may be specified"
msgstr "endast en buntflagga kan anges"
-#: builtin/cat-file.c:634
+#: builtin/cat-file.c:635
msgid "<type> can be one of: blob, tree, commit, tag"
msgstr "<typ> kan vara en av: blob, tree, commit, tag"
-#: builtin/cat-file.c:635
+#: builtin/cat-file.c:636
msgid "show object type"
msgstr "visa objekttyp"
-#: builtin/cat-file.c:636
+#: builtin/cat-file.c:637
msgid "show object size"
msgstr "visa objektstorlek"
-#: builtin/cat-file.c:638
+#: builtin/cat-file.c:639
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:639
+#: builtin/cat-file.c:640
msgid "pretty-print object's content"
msgstr "visa objektets innehåll snyggt"
-#: builtin/cat-file.c:641
+#: builtin/cat-file.c:642
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:643
+#: builtin/cat-file.c:644
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:644 git-submodule.sh:936
+#: builtin/cat-file.c:645 git-submodule.sh:936
msgid "blob"
msgstr "blob"
-#: builtin/cat-file.c:645
+#: builtin/cat-file.c:646
msgid "use a specific path for --textconv/--filters"
msgstr "använd specifik sökväg för --textconv/--filters"
-#: builtin/cat-file.c:647
+#: builtin/cat-file.c:648
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:648
+#: builtin/cat-file.c:649
msgid "buffer --batch output"
msgstr "buffra utdata från --batch"
-#: builtin/cat-file.c:650
+#: builtin/cat-file.c:651
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:654
+#: builtin/cat-file.c:655
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:658
+#: builtin/cat-file.c:659
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)"
-#: builtin/cat-file.c:660
+#: builtin/cat-file.c:661
msgid "show all objects with --batch or --batch-check"
msgstr "visa alla objekt med --batch eller --batch-check"
-#: builtin/cat-file.c:662
+#: builtin/cat-file.c:663
msgid "do not order --batch-all-objects output"
msgstr "ordna inte --batch-all-objects output"
@@ -9998,8 +10042,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:1433 builtin/gc.c:538
-#: builtin/worktree.c:507
+#: builtin/check-ignore.c:21 builtin/checkout.c:1433 builtin/gc.c:537
+#: builtin/worktree.c:506
msgid "suppress progress reporting"
msgstr "undertryck förloppsrapportering"
@@ -10091,7 +10135,7 @@ msgstr "skriv innehåll till temporära filer"
#: builtin/checkout-index.c:178 builtin/column.c:31
#: builtin/submodule--helper.c:1373 builtin/submodule--helper.c:1376
#: builtin/submodule--helper.c:1384 builtin/submodule--helper.c:1857
-#: builtin/worktree.c:680
+#: builtin/worktree.c:679
msgid "string"
msgstr "sträng"
@@ -10119,98 +10163,98 @@ msgstr "git switch [<flaggor>] [<gren>]"
msgid "git restore [<options>] [--source=<branch>] <file>..."
msgstr "git restore [<flaggor>] [--source=<gren>] <fil>..."
-#: builtin/checkout.c:172 builtin/checkout.c:211
+#: builtin/checkout.c:173 builtin/checkout.c:212
#, c-format
msgid "path '%s' does not have our version"
msgstr "sökvägen \"%s\" har inte vår version"
-#: builtin/checkout.c:174 builtin/checkout.c:213
+#: builtin/checkout.c:175 builtin/checkout.c:214
#, c-format
msgid "path '%s' does not have their version"
msgstr "sökvägen \"%s\" har inte deras version"
-#: builtin/checkout.c:190
+#: builtin/checkout.c:191
#, 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:240
+#: builtin/checkout.c:241
#, 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:258
+#: builtin/checkout.c:259
#, c-format
msgid "path '%s': cannot merge"
msgstr "sökväg \"%s\": kan inte slå ihop"
-#: builtin/checkout.c:274
+#: builtin/checkout.c:275
#, c-format
msgid "Unable to add merge result for '%s'"
msgstr "Kunde inte lägga till sammanslagningsresultat för \"%s\""
-#: builtin/checkout.c:374
+#: builtin/checkout.c:375
#, 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:379
+#: builtin/checkout.c:380
#, 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:386
+#: builtin/checkout.c:387
#, 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:409 builtin/checkout.c:412 builtin/checkout.c:415
-#: builtin/checkout.c:419
+#: builtin/checkout.c:410 builtin/checkout.c:413 builtin/checkout.c:416
+#: builtin/checkout.c:420
#, 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:422 builtin/checkout.c:425
+#: builtin/checkout.c:423 builtin/checkout.c:426
#, c-format
msgid "'%s' cannot be used with %s"
msgstr "\"%s\" kan inte användas med %s"
-#: builtin/checkout.c:429
+#: builtin/checkout.c:430
#, 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:433
+#: builtin/checkout.c:434
#, c-format
msgid "neither '%s' or '%s' is specified"
msgstr "varken \"%s\" eller \"%s\" har angivits"
-#: builtin/checkout.c:437
+#: builtin/checkout.c:438
#, 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:442 builtin/checkout.c:447
+#: builtin/checkout.c:443 builtin/checkout.c:448
#, c-format
msgid "'%s' or '%s' cannot be used with %s"
msgstr "\"%s\" eller \"%s\" kan inte användas med %s"
-#: builtin/checkout.c:506 builtin/checkout.c:513
+#: builtin/checkout.c:507 builtin/checkout.c:514
#, c-format
msgid "path '%s' is unmerged"
msgstr "sökvägen \"%s\" har inte slagits ihop"
-#: builtin/checkout.c:679
+#: builtin/checkout.c:680
msgid "you need to resolve your current index first"
msgstr "du måste lösa ditt befintliga index först"
-#: builtin/checkout.c:729
+#: builtin/checkout.c:730
#, c-format
msgid ""
"cannot continue with staged changes in the following files:\n"
@@ -10219,11 +10263,6 @@ msgstr ""
"kan inte fortsätta med köade ändringar i följande filer:\n"
"%s"
-#: builtin/checkout.c:736
-#, c-format
-msgid "staged changes in the following files may be lost: %s"
-msgstr "köade ändringar i följande filer kan gå förlorade: %s"
-
#: builtin/checkout.c:833
#, c-format
msgid "Can not do reflog for '%s': %s\n"
@@ -10233,7 +10272,7 @@ msgstr "Kan inte skapa referenslogg för \"%s\": %s\n"
msgid "HEAD is now at"
msgstr "HEAD är nu på"
-#: builtin/checkout.c:879 builtin/clone.c:714
+#: builtin/checkout.c:879 builtin/clone.c:713
msgid "unable to update HEAD"
msgstr "kan inte uppdatera HEAD"
@@ -10347,7 +10386,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:1243 builtin/worktree.c:291 builtin/worktree.c:456
+#: builtin/checkout.c:1243 builtin/worktree.c:290 builtin/worktree.c:455
#, c-format
msgid "invalid reference: %s"
msgstr "felaktig referens: %s"
@@ -10450,9 +10489,9 @@ msgstr "Kan inte växla gren till icke-incheckningen \"%s\""
msgid "missing branch or commit argument"
msgstr "saknar gren- eller incheckingsargument"
-#: builtin/checkout.c:1437 builtin/clone.c:91 builtin/fetch.c:151
-#: builtin/merge.c:285 builtin/pull.c:137 builtin/push.c:575
-#: builtin/send-pack.c:174
+#: builtin/checkout.c:1437 builtin/clone.c:90 builtin/commit-graph.c:59
+#: builtin/commit-graph.c:180 builtin/fetch.c:166 builtin/merge.c:285
+#: builtin/pull.c:138 builtin/push.c:562 builtin/send-pack.c:174
msgid "force progress reporting"
msgstr "tvinga förloppsrapportering"
@@ -10460,7 +10499,7 @@ msgstr "tvinga förloppsrapportering"
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:1439 builtin/log.c:1634 parse-options.h:318
+#: builtin/checkout.c:1439 builtin/log.c:1618 parse-options.h:318
msgid "style"
msgstr "stil"
@@ -10468,7 +10507,7 @@ msgstr "stil"
msgid "conflict style (merge or diff3)"
msgstr "konfliktstil (merge eller diff3)"
-#: builtin/checkout.c:1452 builtin/worktree.c:504
+#: builtin/checkout.c:1452 builtin/worktree.c:503
msgid "detach HEAD at named commit"
msgstr "koppla från HEAD vid namngiven incheckning"
@@ -10541,7 +10580,8 @@ msgstr "felaktig sökvägsangivelse"
#: builtin/checkout.c:1638
#, 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"
+msgstr ""
+"\"%s\" är inte en incheckning och grenen \"%s\" kan inte skapas från den"
#: builtin/checkout.c:1642
#, c-format
@@ -10585,9 +10625,9 @@ 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:1691 builtin/checkout.c:1693 builtin/checkout.c:1733
-#: builtin/checkout.c:1735 builtin/clone.c:121 builtin/remote.c:169
-#: builtin/remote.c:171 builtin/worktree.c:500 builtin/worktree.c:502
+#: builtin/checkout.c:1691 builtin/checkout.c:1693 builtin/checkout.c:1742
+#: builtin/checkout.c:1744 builtin/clone.c:120 builtin/remote.c:169
+#: builtin/remote.c:171 builtin/worktree.c:499 builtin/worktree.c:501
msgid "branch"
msgstr "gren"
@@ -10611,39 +10651,39 @@ msgstr "förutspå \"git checkout <gren-saknas>\" (förval)"
msgid "use overlay mode (default)"
msgstr "använd överläggsläge (standard)"
-#: builtin/checkout.c:1734
+#: builtin/checkout.c:1743
msgid "create and switch to a new branch"
msgstr "skapa och växla till en ny gren"
-#: builtin/checkout.c:1736
+#: builtin/checkout.c:1745
msgid "create/reset and switch to a branch"
msgstr "skapa/nollställ och växla till en gren"
-#: builtin/checkout.c:1738
+#: builtin/checkout.c:1747
msgid "second guess 'git switch <no-such-branch>'"
msgstr "förutspå \"git checkout <gren-saknas>\""
-#: builtin/checkout.c:1740
+#: builtin/checkout.c:1749
msgid "throw away local modifications"
msgstr "kasta bort lokala ändringar"
-#: builtin/checkout.c:1772
-msgid "where the checkout from"
-msgstr "källa till utcheckning"
+#: builtin/checkout.c:1781
+msgid "which tree-ish to checkout from"
+msgstr "vilken träd-igt att checka ut från"
-#: builtin/checkout.c:1774
+#: builtin/checkout.c:1783
msgid "restore the index"
msgstr "återställ indexet"
-#: builtin/checkout.c:1776
+#: builtin/checkout.c:1785
msgid "restore the working tree (default)"
msgstr "återställ arbetskatalogen (förval)"
-#: builtin/checkout.c:1778
+#: builtin/checkout.c:1787
msgid "ignore unmerged entries"
msgstr "ignorera ej sammanslagna poster"
-#: builtin/checkout.c:1779
+#: builtin/checkout.c:1788
msgid "use overlay mode"
msgstr "använd överläggsläge"
@@ -10684,7 +10724,7 @@ msgstr "misslyckades ta bort %s"
msgid "could not lstat %s\n"
msgstr "kunde inte ta status (\"lstat\") på %s\n"
-#: builtin/clean.c:300 git-add--interactive.perl:593
+#: builtin/clean.c:301 git-add--interactive.perl:593
#, c-format
msgid ""
"Prompt help:\n"
@@ -10697,7 +10737,7 @@ msgstr ""
"foo - markera post baserad på unikt prefix\n"
" - (tomt) markera ingenting\n"
-#: builtin/clean.c:304 git-add--interactive.perl:602
+#: builtin/clean.c:305 git-add--interactive.perl:602
#, c-format
msgid ""
"Prompt help:\n"
@@ -10718,38 +10758,38 @@ msgstr ""
"* - välj alla poster\n"
" - (tomt) avsluta markering\n"
-#: builtin/clean.c:520 git-add--interactive.perl:568
+#: builtin/clean.c:521 git-add--interactive.perl:568
#: git-add--interactive.perl:573
#, c-format, perl-format
msgid "Huh (%s)?\n"
msgstr "Vadå (%s)?\n"
-#: builtin/clean.c:662
+#: builtin/clean.c:663
#, c-format
msgid "Input ignore patterns>> "
msgstr "Ange ignoreringsmönster>>"
-#: builtin/clean.c:699
+#: builtin/clean.c:700
#, c-format
msgid "WARNING: Cannot find items matched by: %s"
msgstr "VARNING: Hittar inte poster som motsvarar: %s"
-#: builtin/clean.c:720
+#: builtin/clean.c:721
msgid "Select items to delete"
msgstr "Välj poster att ta bort"
#. TRANSLATORS: Make sure to keep [y/N] as is
-#: builtin/clean.c:761
+#: builtin/clean.c:762
#, c-format
msgid "Remove %s [y/N]? "
msgstr "Ta bort %s [Y=ja / N=nej]? "
-#: builtin/clean.c:786 git-add--interactive.perl:1763
+#: builtin/clean.c:787 git-add--interactive.perl:1763
#, c-format
msgid "Bye.\n"
msgstr "Hej då.\n"
-#: builtin/clean.c:794
+#: builtin/clean.c:795
msgid ""
"clean - start cleaning\n"
"filter by pattern - exclude items from deletion\n"
@@ -10767,64 +10807,64 @@ msgstr ""
"help - denna skärm\n"
"? - hjälp för kommandoval"
-#: builtin/clean.c:821 git-add--interactive.perl:1849
+#: builtin/clean.c:822 git-add--interactive.perl:1849
msgid "*** Commands ***"
msgstr "*** Kommandon ***"
-#: builtin/clean.c:822 git-add--interactive.perl:1846
+#: builtin/clean.c:823 git-add--interactive.perl:1846
msgid "What now"
msgstr "Vad nu"
-#: builtin/clean.c:830
+#: builtin/clean.c:831
msgid "Would remove the following item:"
msgid_plural "Would remove the following items:"
msgstr[0] "Skulle ta bort följande post:"
msgstr[1] "Skulle ta bort följande poster:"
-#: builtin/clean.c:846
+#: builtin/clean.c:847
msgid "No more files to clean, exiting."
msgstr "Inga fler filer att städa, avslutar."
-#: builtin/clean.c:908
+#: builtin/clean.c:909
msgid "do not print names of files removed"
msgstr "skriv inte ut namn på borttagna filer"
-#: builtin/clean.c:910
+#: builtin/clean.c:911
msgid "force"
msgstr "tvinga"
-#: builtin/clean.c:911
+#: builtin/clean.c:912
msgid "interactive cleaning"
msgstr "städa interaktivt"
-#: builtin/clean.c:913
+#: builtin/clean.c:914
msgid "remove whole directories"
msgstr "ta bort hela kataloger"
-#: builtin/clean.c:914 builtin/describe.c:546 builtin/describe.c:548
-#: builtin/grep.c:899 builtin/log.c:186 builtin/log.c:188
-#: builtin/ls-files.c:557 builtin/name-rev.c:413 builtin/name-rev.c:415
+#: builtin/clean.c:915 builtin/describe.c:548 builtin/describe.c:550
+#: builtin/grep.c:901 builtin/log.c:176 builtin/log.c:178
+#: builtin/ls-files.c:557 builtin/name-rev.c:417 builtin/name-rev.c:419
#: builtin/show-ref.c:179
msgid "pattern"
msgstr "mönster"
-#: builtin/clean.c:915
+#: builtin/clean.c:916
msgid "add <pattern> to ignore rules"
msgstr "lägg till <mönster> till ignoreringsregler"
-#: builtin/clean.c:916
+#: builtin/clean.c:917
msgid "remove ignored files, too"
msgstr "ta även bort ignorerade filer"
-#: builtin/clean.c:918
+#: builtin/clean.c:919
msgid "remove only ignored files"
msgstr "ta endast bort ignorerade filer"
-#: builtin/clean.c:936
+#: builtin/clean.c:937
msgid "-x and -X cannot be used together"
msgstr "-x och -X kan inte användas samtidigt"
-#: builtin/clean.c:940
+#: builtin/clean.c:941
msgid ""
"clean.requireForce set to true and neither -i, -n, nor -f given; refusing to "
"clean"
@@ -10832,7 +10872,7 @@ msgstr ""
"clean.requireForce satt till true, men varken -i, -n eller -f angavs; vägrar "
"städa"
-#: builtin/clean.c:943
+#: builtin/clean.c:944
msgid ""
"clean.requireForce defaults to true and neither -i, -n, nor -f given; "
"refusing to clean"
@@ -10840,162 +10880,162 @@ msgstr ""
"clean.requireForce har standardvärdet true och varken -i, -n eller -f "
"angavs; vägrar städa"
-#: builtin/clone.c:46
+#: builtin/clone.c:45
msgid "git clone [<options>] [--] <repo> [<dir>]"
msgstr "git clone [<flaggor>] [--] <arkiv> [<kat>]"
-#: builtin/clone.c:93
+#: builtin/clone.c:92
msgid "don't create a checkout"
msgstr "skapa inte någon utcheckning"
-#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:489
+#: builtin/clone.c:93 builtin/clone.c:95 builtin/init-db.c:489
msgid "create a bare repository"
msgstr "skapa ett naket (\"bare\") arkiv"
-#: builtin/clone.c:98
+#: builtin/clone.c:97
msgid "create a mirror repository (implies bare)"
msgstr "skapa ett spegelarkiv (implicerar \"bare\")"
-#: builtin/clone.c:100
+#: builtin/clone.c:99
msgid "to clone from a local repository"
msgstr "för att klona från ett lokalt arkiv"
-#: builtin/clone.c:102
+#: builtin/clone.c:101
msgid "don't use local hardlinks, always copy"
msgstr "skapa inte lokala hårda länkar, kopiera alltid"
-#: builtin/clone.c:104
+#: builtin/clone.c:103
msgid "setup as shared repository"
msgstr "skapa som ett delat arkiv"
-#: builtin/clone.c:107
+#: builtin/clone.c:106
msgid "pathspec"
msgstr "sökvägsangivelse"
-#: builtin/clone.c:107
+#: builtin/clone.c:106
msgid "initialize submodules in the clone"
msgstr "initiera undermoduler i klonen"
-#: builtin/clone.c:110
+#: builtin/clone.c:109
msgid "number of submodules cloned in parallel"
msgstr "antal undermoduler som klonas parallellt"
-#: builtin/clone.c:111 builtin/init-db.c:486
+#: builtin/clone.c:110 builtin/init-db.c:486
msgid "template-directory"
msgstr "mallkatalog"
-#: builtin/clone.c:112 builtin/init-db.c:487
+#: builtin/clone.c:111 builtin/init-db.c:487
msgid "directory from which templates will be used"
msgstr "katalog att använda mallar från"
-#: builtin/clone.c:114 builtin/clone.c:116 builtin/submodule--helper.c:1380
+#: builtin/clone.c:113 builtin/clone.c:115 builtin/submodule--helper.c:1380
#: builtin/submodule--helper.c:1860
msgid "reference repository"
msgstr "referensarkiv"
-#: builtin/clone.c:118 builtin/submodule--helper.c:1382
+#: builtin/clone.c:117 builtin/submodule--helper.c:1382
#: builtin/submodule--helper.c:1862
msgid "use --reference only while cloning"
msgstr "använd --reference endast under kloningen"
-#: builtin/clone.c:119 builtin/column.c:27 builtin/merge-file.c:46
-#: builtin/pack-objects.c:3308 builtin/repack.c:330
+#: builtin/clone.c:118 builtin/column.c:27 builtin/merge-file.c:46
+#: builtin/pack-objects.c:3294 builtin/repack.c:320
msgid "name"
msgstr "namn"
-#: builtin/clone.c:120
+#: builtin/clone.c:119
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:122
+#: builtin/clone.c:121
msgid "checkout <branch> instead of the remote's HEAD"
msgstr "checka ut <gren> istället för fjärrens HEAD"
-#: builtin/clone.c:124
+#: builtin/clone.c:123
msgid "path to git-upload-pack on the remote"
msgstr "sökväg till git-upload-pack på fjärren"
-#: builtin/clone.c:125 builtin/fetch.c:152 builtin/grep.c:838
-#: builtin/pull.c:226
+#: builtin/clone.c:124 builtin/fetch.c:167 builtin/grep.c:840
+#: builtin/pull.c:227
msgid "depth"
msgstr "djup"
-#: builtin/clone.c:126
+#: builtin/clone.c:125
msgid "create a shallow clone of that depth"
msgstr "skapa en grund klon på detta djup"
-#: builtin/clone.c:127 builtin/fetch.c:154 builtin/pack-objects.c:3297
+#: builtin/clone.c:126 builtin/fetch.c:169 builtin/pack-objects.c:3283
msgid "time"
msgstr "tid"
-#: builtin/clone.c:128
+#: builtin/clone.c:127
msgid "create a shallow clone since a specific time"
msgstr "skapa en grund klon från en angiven tidpunkt"
-#: builtin/clone.c:129 builtin/fetch.c:156 builtin/fetch.c:179
-#: builtin/rebase.c:1395
+#: builtin/clone.c:128 builtin/fetch.c:171 builtin/fetch.c:194
+#: builtin/rebase.c:1417
msgid "revision"
msgstr "revision"
-#: builtin/clone.c:130 builtin/fetch.c:157
+#: builtin/clone.c:129 builtin/fetch.c:172
msgid "deepen history of shallow clone, excluding rev"
msgstr "fördjupa historik för grund klon, exkludera revisionen"
-#: builtin/clone.c:132
+#: builtin/clone.c:131
msgid "clone only one branch, HEAD or --branch"
msgstr "klona endast en gren, HEAD eller --branch"
-#: builtin/clone.c:134
+#: builtin/clone.c:133
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:136
+#: builtin/clone.c:135
msgid "any cloned submodules will be shallow"
msgstr "klonade undermoduler kommer vara grunda"
-#: builtin/clone.c:137 builtin/init-db.c:495
+#: builtin/clone.c:136 builtin/init-db.c:495
msgid "gitdir"
msgstr "gitkat"
-#: builtin/clone.c:138 builtin/init-db.c:496
+#: builtin/clone.c:137 builtin/init-db.c:496
msgid "separate git dir from working tree"
msgstr "separera gitkatalogen från arbetskatalogen"
-#: builtin/clone.c:139
+#: builtin/clone.c:138
msgid "key=value"
msgstr "nyckel=värde"
-#: builtin/clone.c:140
+#: builtin/clone.c:139
msgid "set config inside the new repository"
msgstr "ställ in konfiguration i det nya arkivet"
-#: builtin/clone.c:142 builtin/fetch.c:174 builtin/ls-remote.c:76
-#: builtin/push.c:585 builtin/send-pack.c:172
+#: builtin/clone.c:141 builtin/fetch.c:189 builtin/ls-remote.c:76
+#: builtin/push.c:572 builtin/send-pack.c:172
msgid "server-specific"
msgstr "serverspecifik"
-#: builtin/clone.c:142 builtin/fetch.c:174 builtin/ls-remote.c:76
-#: builtin/push.c:585 builtin/send-pack.c:173
+#: builtin/clone.c:141 builtin/fetch.c:189 builtin/ls-remote.c:76
+#: builtin/push.c:572 builtin/send-pack.c:173
msgid "option to transmit"
msgstr ""
"inget att checka in\n"
"flagga att sända"
-#: builtin/clone.c:143 builtin/fetch.c:175 builtin/pull.c:239
-#: builtin/push.c:586
+#: builtin/clone.c:142 builtin/fetch.c:190 builtin/pull.c:240
+#: builtin/push.c:573
msgid "use IPv4 addresses only"
msgstr "använd endast IPv4-adresser"
-#: builtin/clone.c:145 builtin/fetch.c:177 builtin/pull.c:242
-#: builtin/push.c:588
+#: builtin/clone.c:144 builtin/fetch.c:192 builtin/pull.c:243
+#: builtin/push.c:575
msgid "use IPv6 addresses only"
msgstr "använd endast IPv6-adresser"
-#: builtin/clone.c:149
+#: builtin/clone.c:148
msgid "any cloned submodules will use their remote-tracking branch"
msgstr "klonade undermoduler kommer använda sin fjärrspårningsgren"
-#: builtin/clone.c:285
+#: builtin/clone.c:284
msgid ""
"No directory name could be guessed.\n"
"Please specify a directory on the command line"
@@ -11003,47 +11043,42 @@ msgstr ""
"Kunde inte gissa katalognamn.\n"
"Ange en katalog på kommandoraden"
-#: builtin/clone.c:338
+#: builtin/clone.c:337
#, c-format
msgid "info: Could not add alternate for '%s': %s\n"
msgstr "info: Kan inte skapa alternativ för \"%s\": %s\n"
-#: builtin/clone.c:411
+#: builtin/clone.c:410
#, c-format
msgid "%s exists and is not a directory"
msgstr "%s finns och är ingen katalog"
-#: builtin/clone.c:428
+#: builtin/clone.c:427
#, c-format
msgid "failed to start iterator over '%s'"
msgstr "misslyckades starta iterator över \"%s\""
-#: builtin/clone.c:453
-#, c-format
-msgid "failed to unlink '%s'"
-msgstr "misslyckades ta bort länken \"%s\""
-
-#: builtin/clone.c:458
+#: builtin/clone.c:457
#, c-format
msgid "failed to create link '%s'"
msgstr "misslyckades skapa länken \"%s\""
-#: builtin/clone.c:462
+#: builtin/clone.c:461
#, c-format
msgid "failed to copy file to '%s'"
msgstr "misslyckades kopiera filen till \"%s\""
-#: builtin/clone.c:467
+#: builtin/clone.c:466
#, c-format
msgid "failed to iterate over '%s'"
msgstr "misslyckades iterera över \"%s\""
-#: builtin/clone.c:492
+#: builtin/clone.c:491
#, c-format
msgid "done.\n"
msgstr "klart.\n"
-#: builtin/clone.c:506
+#: builtin/clone.c:505
msgid ""
"Clone succeeded, but checkout failed.\n"
"You can inspect what was checked out with 'git status'\n"
@@ -11053,133 +11088,133 @@ 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:583
+#: builtin/clone.c:582
#, 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:702
+#: builtin/clone.c:701
#, c-format
msgid "unable to update %s"
msgstr "kan inte uppdatera %s"
-#: builtin/clone.c:752
+#: builtin/clone.c:751
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:783
+#: builtin/clone.c:782
msgid "unable to checkout working tree"
msgstr "kunde inte checka ut arbetskatalogen"
-#: builtin/clone.c:833
+#: builtin/clone.c:832
msgid "unable to write parameters to config file"
msgstr "kunde inte skriva parametrar till konfigurationsfilen"
-#: builtin/clone.c:896
+#: builtin/clone.c:895
msgid "cannot repack to clean up"
msgstr "kan inte packa om för att städa upp"
-#: builtin/clone.c:898
+#: builtin/clone.c:897
msgid "cannot unlink temporary alternates file"
msgstr "kunde inte ta bort temporär \"alternates\"-fil"
-#: builtin/clone.c:938 builtin/receive-pack.c:1950
+#: builtin/clone.c:937 builtin/receive-pack.c:1948
msgid "Too many arguments."
msgstr "För många argument."
-#: builtin/clone.c:942
+#: builtin/clone.c:941
msgid "You must specify a repository to clone."
msgstr "Du måste ange ett arkiv att klona."
-#: builtin/clone.c:955
+#: builtin/clone.c:954
#, c-format
msgid "--bare and --origin %s options are incompatible."
msgstr "flaggorna --bare och --origin %s är inkompatibla."
-#: builtin/clone.c:958
+#: builtin/clone.c:957
msgid "--bare and --separate-git-dir are incompatible."
msgstr "flaggorna --bare och --separate-git-dir är inkompatibla."
-#: builtin/clone.c:971
+#: builtin/clone.c:970
#, c-format
msgid "repository '%s' does not exist"
msgstr "arkivet \"%s\" finns inte"
-#: builtin/clone.c:977 builtin/fetch.c:1653
+#: builtin/clone.c:976 builtin/fetch.c:1790
#, c-format
msgid "depth %s is not a positive number"
msgstr "djupet %s är inte ett positivt tal"
-#: builtin/clone.c:987
+#: builtin/clone.c:986
#, 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:997
+#: builtin/clone.c:996
#, c-format
msgid "working tree '%s' already exists."
msgstr "arbetsträdet \"%s\" finns redan."
-#: builtin/clone.c:1012 builtin/clone.c:1033 builtin/difftool.c:264
-#: builtin/worktree.c:303 builtin/worktree.c:335
+#: builtin/clone.c:1011 builtin/clone.c:1032 builtin/difftool.c:271
+#: builtin/log.c:1785 builtin/worktree.c:302 builtin/worktree.c:334
#, c-format
msgid "could not create leading directories of '%s'"
msgstr "kunde inte skapa inledande kataloger för \"%s\""
-#: builtin/clone.c:1017
+#: builtin/clone.c:1016
#, c-format
msgid "could not create work tree dir '%s'"
msgstr "kunde inte skapa arbetskatalogen \"%s\""
-#: builtin/clone.c:1037
+#: builtin/clone.c:1036
#, c-format
msgid "Cloning into bare repository '%s'...\n"
msgstr "Klonar till ett naket arkiv \"%s\"...\n"
-#: builtin/clone.c:1039
+#: builtin/clone.c:1038
#, c-format
msgid "Cloning into '%s'...\n"
msgstr "Klonar till \"%s\"...\n"
-#: builtin/clone.c:1063
+#: builtin/clone.c:1062
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:1124
+#: builtin/clone.c:1123
msgid "--depth is ignored in local clones; use file:// instead."
msgstr "--depth ignoreras i lokala kloningar; använd file:// istället."
-#: builtin/clone.c:1126
+#: builtin/clone.c:1125
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:1128
+#: builtin/clone.c:1127
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:1130
+#: builtin/clone.c:1129
msgid "--filter is ignored in local clones; use file:// instead."
msgstr "--filter ignoreras i lokala kloningar; använd file:// istället."
-#: builtin/clone.c:1133
+#: builtin/clone.c:1132
msgid "source repository is shallow, ignoring --local"
msgstr "källarkivet är grunt, ignorerar --local"
-#: builtin/clone.c:1138
+#: builtin/clone.c:1137
msgid "--local is ignored"
msgstr "--local ignoreras"
-#: builtin/clone.c:1215 builtin/clone.c:1223
+#: builtin/clone.c:1212 builtin/clone.c:1220
#, c-format
msgid "Remote branch %s not found in upstream %s"
msgstr "Fjärrgrenen %s hittades inte i uppströmsarkivet %s"
-#: builtin/clone.c:1226
+#: builtin/clone.c:1223
msgid "You appear to have cloned an empty repository."
msgstr "Du verkar ha klonat ett tomt arkiv."
@@ -11228,7 +11263,7 @@ msgstr ""
msgid "duplicate parent %s ignored"
msgstr "duplicerad förälder %s ignorerades"
-#: builtin/commit-tree.c:56 builtin/commit-tree.c:136 builtin/log.c:542
+#: builtin/commit-tree.c:56 builtin/commit-tree.c:136 builtin/log.c:525
#, c-format
msgid "not a valid object name %s"
msgstr "objektnamnet är inte giltigt: %s"
@@ -11257,7 +11292,7 @@ msgid "id of a parent commit object"
msgstr "id på ett förälderincheckningsobjekt"
#: builtin/commit-tree.c:114 builtin/commit.c:1500 builtin/merge.c:270
-#: builtin/notes.c:409 builtin/notes.c:575 builtin/stash.c:1460
+#: builtin/notes.c:409 builtin/notes.c:575 builtin/stash.c:1469
#: builtin/tag.c:412
msgid "message"
msgstr "meddelande"
@@ -11271,7 +11306,7 @@ msgid "read commit log message from file"
msgstr "läs incheckningsloggmeddelande från fil"
#: builtin/commit-tree.c:121 builtin/commit.c:1512 builtin/merge.c:287
-#: builtin/pull.c:194 builtin/revert.c:118
+#: builtin/pull.c:195 builtin/revert.c:118
msgid "GPG sign commit"
msgstr "GPG-signera incheckning"
@@ -11599,8 +11634,8 @@ msgstr "beräkna fullständiga före-/efter-värden"
msgid "version"
msgstr "version"
-#: builtin/commit.c:1347 builtin/commit.c:1529 builtin/push.c:561
-#: builtin/worktree.c:651
+#: builtin/commit.c:1347 builtin/commit.c:1529 builtin/push.c:548
+#: builtin/worktree.c:650
msgid "machine-readable output"
msgstr "maskinläsbar utdata"
@@ -11613,8 +11648,8 @@ msgid "terminate entries with NUL"
msgstr "terminera poster med NUL"
#: builtin/commit.c:1355 builtin/commit.c:1359 builtin/commit.c:1537
-#: builtin/fast-export.c:1125 builtin/fast-export.c:1128
-#: builtin/fast-export.c:1131 builtin/rebase.c:1471 parse-options.h:332
+#: builtin/fast-export.c:1153 builtin/fast-export.c:1156
+#: builtin/fast-export.c:1159 builtin/rebase.c:1495 parse-options.h:332
msgid "mode"
msgstr "läge"
@@ -11630,7 +11665,7 @@ msgstr ""
"visa ignorerade filer, valfria lägen: traditional, matching, no (Standard: "
"traditional)"
-#: builtin/commit.c:1362 parse-options.h:179
+#: builtin/commit.c:1362 parse-options.h:188
msgid "when"
msgstr "när"
@@ -11682,7 +11717,7 @@ msgstr "författare"
msgid "override author for commit"
msgstr "överstyr författare för incheckningen"
-#: builtin/commit.c:1499 builtin/gc.c:539
+#: builtin/commit.c:1499 builtin/gc.c:538
msgid "date"
msgstr "datum"
@@ -11718,8 +11753,8 @@ msgstr ""
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:1506 builtin/log.c:1581 builtin/merge.c:289
-#: builtin/pull.c:163 builtin/revert.c:110
+#: builtin/commit.c:1506 builtin/log.c:1565 builtin/merge.c:289
+#: builtin/pull.c:164 builtin/revert.c:110
msgid "add Signed-off-by:"
msgstr "lägg till Signed-off-by:"
@@ -11827,67 +11862,69 @@ msgid "git commit-graph read [--object-dir <objdir>]"
msgstr "git commit-graph read [--object-dir <objkat>]"
#: builtin/commit-graph.c:13 builtin/commit-graph.c:19
-msgid "git commit-graph verify [--object-dir <objdir>] [--shallow]"
-msgstr "git commit-graph verify [--object-dir <objkat>] [--shallow]"
+msgid ""
+"git commit-graph verify [--object-dir <objdir>] [--shallow] [--[no-]progress]"
+msgstr ""
+"git commit-graph verify [--object-dir <objkat>] [--shallow] [--[no-]progress]"
#: builtin/commit-graph.c:14 builtin/commit-graph.c:29
msgid ""
"git commit-graph write [--object-dir <objdir>] [--append|--split] [--"
-"reachable|--stdin-packs|--stdin-commits] <split options>"
+"reachable|--stdin-packs|--stdin-commits] [--[no-]progress] <split options>"
msgstr ""
"git commit-graph write [--object-dir <objkat>] [--append|--split] [--"
-"reachable|--stdin-packs|--stdin-commits] <delnings-flaggor>"
+"reachable|--stdin-packs|--stdin-commits] [--[no-]progress] <delnings-flaggor>"
-#: builtin/commit-graph.c:54 builtin/commit-graph.c:100
-#: builtin/commit-graph.c:161 builtin/commit-graph.c:237 builtin/fetch.c:163
-#: builtin/log.c:1601
+#: builtin/commit-graph.c:55 builtin/commit-graph.c:107
+#: builtin/commit-graph.c:170 builtin/commit-graph.c:254 builtin/fetch.c:178
+#: builtin/log.c:1585
msgid "dir"
msgstr "kat"
-#: builtin/commit-graph.c:55 builtin/commit-graph.c:101
-#: builtin/commit-graph.c:162 builtin/commit-graph.c:238
+#: builtin/commit-graph.c:56 builtin/commit-graph.c:108
+#: builtin/commit-graph.c:171 builtin/commit-graph.c:255
msgid "The object directory to store the graph"
msgstr "Objektkatalogen där grafen skall lagras"
-#: builtin/commit-graph.c:57
+#: builtin/commit-graph.c:58
msgid "if the commit-graph is split, only verify the tip file"
msgstr "om inchecknignsgrafen är delad, kontrollera bara spetsfilen"
-#: builtin/commit-graph.c:73 builtin/commit-graph.c:116
+#: builtin/commit-graph.c:80 builtin/commit-graph.c:125
#, c-format
msgid "Could not open commit-graph '%s'"
msgstr "Kunde inte öppna incheckningsgrafen \"%s\""
-#: builtin/commit-graph.c:164
+#: builtin/commit-graph.c:173
msgid "start walk at all refs"
msgstr "starta traversering vid alla referenser"
-#: builtin/commit-graph.c:166
+#: builtin/commit-graph.c:175
msgid "scan pack-indexes listed by stdin for commits"
msgstr "sök paketindex listade på standard in efter incheckningar"
-#: builtin/commit-graph.c:168
+#: builtin/commit-graph.c:177
msgid "start walk at commits listed by stdin"
msgstr "börja gå genom incheckningar listade på standard in"
-#: builtin/commit-graph.c:170
+#: builtin/commit-graph.c:179
msgid "include all commits already in the commit-graph file"
msgstr "ta med alla incheckningar redan i filen commit-graph"
-#: builtin/commit-graph.c:172
+#: builtin/commit-graph.c:182
msgid "allow writing an incremental commit-graph file"
msgstr "tillåt skriva en inkrementell incheckningsgraffil"
-#: builtin/commit-graph.c:174 builtin/commit-graph.c:178
+#: builtin/commit-graph.c:184 builtin/commit-graph.c:188
msgid "maximum number of commits in a non-base split commit-graph"
msgstr ""
"maximalt antal incheckningar i en delad incheckingsgraf som inte är bad"
-#: builtin/commit-graph.c:176
+#: builtin/commit-graph.c:186
msgid "maximum ratio between two levels of a split commit-graph"
msgstr "maximalt förhållande mellan två nivåer av en delad incheckningsgraf"
-#: builtin/commit-graph.c:191
+#: builtin/commit-graph.c:204
msgid "use at most one of --reachable, --stdin-commits, or --stdin-packs"
msgstr "använd som mest en av --reachable, --stdin-commit och --stdin-packs"
@@ -12201,58 +12238,58 @@ msgstr "git count-objects [-v] [-H | --human-readable]"
msgid "print sizes in human readable format"
msgstr "skriv storlekar i människoläsbart format"
-#: builtin/describe.c:27
+#: builtin/describe.c:26
msgid "git describe [<options>] [<commit-ish>...]"
msgstr "git describe [<flaggor>] [<incheckning-igt>...]"
-#: builtin/describe.c:28
+#: builtin/describe.c:27
msgid "git describe [<options>] --dirty"
msgstr "git describe [<flaggor>] --dirty"
-#: builtin/describe.c:63
+#: builtin/describe.c:62
msgid "head"
msgstr "huvud"
-#: builtin/describe.c:63
+#: builtin/describe.c:62
msgid "lightweight"
msgstr "lättviktig"
-#: builtin/describe.c:63
+#: builtin/describe.c:62
msgid "annotated"
msgstr "annoterad"
-#: builtin/describe.c:273
+#: builtin/describe.c:275
#, c-format
msgid "annotated tag %s not available"
msgstr "den annoterade taggen %s inte tillgänglig"
-#: builtin/describe.c:277
+#: builtin/describe.c:279
#, c-format
msgid "annotated tag %s has no embedded name"
msgstr "den annoterade taggen %s har inget inbäddat namn"
-#: builtin/describe.c:279
+#: builtin/describe.c:281
#, c-format
msgid "tag '%s' is really '%s' here"
msgstr "taggen \"%s\" är i verkligheten \"%s\" här"
-#: builtin/describe.c:323
+#: builtin/describe.c:325
#, c-format
msgid "no tag exactly matches '%s'"
msgstr "ingen tagg motsvarar \"%s\" exakt"
-#: builtin/describe.c:325
+#: builtin/describe.c:327
#, c-format
msgid "No exact match on refs or tags, searching to describe\n"
msgstr ""
"Ingen exakt träff mot referenser eller taggar, söker för att beskriva\n"
-#: builtin/describe.c:379
+#: builtin/describe.c:381
#, c-format
msgid "finished search at %s\n"
msgstr "avslutade sökning på %s\n"
-#: builtin/describe.c:405
+#: builtin/describe.c:407
#, c-format
msgid ""
"No annotated tags can describe '%s'.\n"
@@ -12261,7 +12298,7 @@ msgstr ""
"Inga annoterade taggar kan beskriva \"%s\".\n"
"Det finns dock oannoterade taggar: testa --tags."
-#: builtin/describe.c:409
+#: builtin/describe.c:411
#, c-format
msgid ""
"No tags can describe '%s'.\n"
@@ -12270,12 +12307,12 @@ msgstr ""
"Inga taggar kan beskriva \"%s\".\n"
"Testa --always, eller skapa några taggar."
-#: builtin/describe.c:439
+#: builtin/describe.c:441
#, c-format
msgid "traversed %lu commits\n"
msgstr "traverserade %lu incheckningar\n"
-#: builtin/describe.c:442
+#: builtin/describe.c:444
#, c-format
msgid ""
"more than %i tags found; listed %i most recent\n"
@@ -12284,90 +12321,90 @@ msgstr ""
"mer än %i taggar hittades; listar de %i senaste\n"
"gav upp sökningen vid %s\n"
-#: builtin/describe.c:510
+#: builtin/describe.c:512
#, c-format
msgid "describe %s\n"
msgstr "beskriva %s\n"
-#: builtin/describe.c:513
+#: builtin/describe.c:515
#, c-format
msgid "Not a valid object name %s"
msgstr "Objektnamnet är inte giltigt: %s"
-#: builtin/describe.c:521
+#: builtin/describe.c:523
#, c-format
msgid "%s is neither a commit nor blob"
msgstr "%s är varken incheckning eller blob"
-#: builtin/describe.c:535
+#: builtin/describe.c:537
msgid "find the tag that comes after the commit"
msgstr "hitta taggen som kommer efter incheckningen"
-#: builtin/describe.c:536
+#: builtin/describe.c:538
msgid "debug search strategy on stderr"
msgstr "felsök sökstrategin på standard fel"
-#: builtin/describe.c:537
+#: builtin/describe.c:539
msgid "use any ref"
msgstr "använd alla referenser"
-#: builtin/describe.c:538
+#: builtin/describe.c:540
msgid "use any tag, even unannotated"
msgstr "använd alla taggar, även oannoterade"
-#: builtin/describe.c:539
+#: builtin/describe.c:541
msgid "always use long format"
msgstr "använd alltid långt format"
-#: builtin/describe.c:540
+#: builtin/describe.c:542
msgid "only follow first parent"
msgstr "följ endast första föräldern"
-#: builtin/describe.c:543
+#: builtin/describe.c:545
msgid "only output exact matches"
msgstr "skriv endast ut exakta träffar"
-#: builtin/describe.c:545
+#: builtin/describe.c:547
msgid "consider <n> most recent tags (default: 10)"
msgstr "överväg de <n> nyaste taggarna (standard: 10)"
-#: builtin/describe.c:547
+#: builtin/describe.c:549
msgid "only consider tags matching <pattern>"
msgstr "överväg endast taggar som motsvarar <mönster>"
-#: builtin/describe.c:549
+#: builtin/describe.c:551
msgid "do not consider tags matching <pattern>"
msgstr "överväg inte taggar som motsvarar <mönster>"
-#: builtin/describe.c:551 builtin/name-rev.c:422
+#: builtin/describe.c:553 builtin/name-rev.c:426
msgid "show abbreviated commit object as fallback"
msgstr "visa förkortade incheckningsobjekt som standard"
-#: builtin/describe.c:552 builtin/describe.c:555
+#: builtin/describe.c:554 builtin/describe.c:557
msgid "mark"
msgstr "märke"
-#: builtin/describe.c:553
+#: builtin/describe.c:555
msgid "append <mark> on dirty working tree (default: \"-dirty\")"
msgstr "lägg till <märke> på lortigt arbetsträd (standard: \"-dirty\")"
-#: builtin/describe.c:556
+#: builtin/describe.c:558
msgid "append <mark> on broken working tree (default: \"-broken\")"
msgstr "lägg till <märke> på trasigt arbetsträd (standard: \"-broken\")"
-#: builtin/describe.c:574
+#: builtin/describe.c:576
msgid "--long is incompatible with --abbrev=0"
msgstr "--long är inkompatibel med --abbrev=0"
-#: builtin/describe.c:603
+#: builtin/describe.c:605
msgid "No names found, cannot describe anything."
msgstr "Inga namn hittades, kan inte beskriva något."
-#: builtin/describe.c:654
+#: builtin/describe.c:656
msgid "--dirty is incompatible with commit-ishes"
msgstr "--dirty är inkompatibelt med \"commit-ish\"-värden"
-#: builtin/describe.c:656
+#: builtin/describe.c:658
msgid "--broken is incompatible with commit-ishes"
msgstr "--broken är inkompatibelt med \"commit-ish\"-värden"
@@ -12405,27 +12442,27 @@ msgid "git difftool [<options>] [<commit> [<commit>]] [--] [<path>...]"
msgstr ""
"git difftool [<flaggor>] [<incheckning> [<incheckning>]] [--] [<sökväg>...]"
-#: builtin/difftool.c:253
+#: builtin/difftool.c:260
#, c-format
msgid "failed: %d"
msgstr "misslyckades: %d"
-#: builtin/difftool.c:295
+#: builtin/difftool.c:302
#, c-format
msgid "could not read symlink %s"
msgstr "kunde inte läsa symboliska länken %s"
-#: builtin/difftool.c:297
+#: builtin/difftool.c:304
#, c-format
msgid "could not read symlink file %s"
msgstr "kunde inte läsa symbolisk länk-fil %s"
-#: builtin/difftool.c:305
+#: builtin/difftool.c:312
#, c-format
msgid "could not read object %s for symlink %s"
msgstr "kunde inte läsa objektet %s för symboliska länken %s"
-#: builtin/difftool.c:406
+#: builtin/difftool.c:413
msgid ""
"combined diff formats('-c' and '--cc') are not supported in\n"
"directory diff mode('-d' and '--dir-diff')."
@@ -12433,53 +12470,53 @@ msgstr ""
"kombinerade diff-format (\"-c\" och \"--cc\") stöds inte i\n"
"katalogdiffläge (\"-d\" och \"--dir-diff\")."
-#: builtin/difftool.c:626
+#: builtin/difftool.c:634
#, c-format
msgid "both files modified: '%s' and '%s'."
msgstr "bägge filerna ändrade: \"%s\" och \"%s\"."
-#: builtin/difftool.c:628
+#: builtin/difftool.c:636
msgid "working tree file has been left."
msgstr "filen i arbetskatalogen lämnades kvar."
-#: builtin/difftool.c:639
+#: builtin/difftool.c:647
#, c-format
msgid "temporary files exist in '%s'."
msgstr "temporära filer finns i \"%s\"."
-#: builtin/difftool.c:640
+#: builtin/difftool.c:648
msgid "you may want to cleanup or recover these."
msgstr "du kanske vill städa eller rädda dem."
-#: builtin/difftool.c:689
+#: builtin/difftool.c:697
msgid "use `diff.guitool` instead of `diff.tool`"
msgstr "använd \"diff.guitool\" istället för \"diff.tool\""
-#: builtin/difftool.c:691
+#: builtin/difftool.c:699
msgid "perform a full-directory diff"
msgstr "utför diff för hela katalogen"
-#: builtin/difftool.c:693
+#: builtin/difftool.c:701
msgid "do not prompt before launching a diff tool"
msgstr "fråga inte vid start av diff-verktyg"
-#: builtin/difftool.c:698
+#: builtin/difftool.c:706
msgid "use symlinks in dir-diff mode"
msgstr "använd symboliska länkar i katalogdiffläge"
-#: builtin/difftool.c:699
+#: builtin/difftool.c:707
msgid "tool"
msgstr "verktyg"
-#: builtin/difftool.c:700
+#: builtin/difftool.c:708
msgid "use the specified diff tool"
msgstr "använd angivet diff-verktyg"
-#: builtin/difftool.c:702
+#: builtin/difftool.c:710
msgid "print a list of diff tools that may be used with `--tool`"
msgstr "visa en lista över diff-verktyg som kan användas med \"--tool\""
-#: builtin/difftool.c:705
+#: builtin/difftool.c:713
msgid ""
"make 'git-difftool' exit when an invoked diff tool returns a non - zero exit "
"code"
@@ -12487,31 +12524,31 @@ msgstr ""
"låt \"git-difftool\" avbryta när ett anropat diff-verktyg ger returvärde "
"skilt från noll"
-#: builtin/difftool.c:708
+#: builtin/difftool.c:716
msgid "specify a custom command for viewing diffs"
msgstr "ange eget kommando för att visa diffar"
-#: builtin/difftool.c:709
+#: builtin/difftool.c:717
msgid "passed to `diff`"
msgstr "sändes till \"diff\""
-#: builtin/difftool.c:724
+#: builtin/difftool.c:732
msgid "difftool requires worktree or --no-index"
msgstr "difftool kräver en arbetskatalog eller --no-index"
-#: builtin/difftool.c:731
+#: builtin/difftool.c:739
msgid "--dir-diff is incompatible with --no-index"
msgstr "--dir-diff är inkompatibelt med --no-index"
-#: builtin/difftool.c:734
+#: builtin/difftool.c:742
msgid "--gui, --tool and --extcmd are mutually exclusive"
msgstr "--gui, --tool och --extcmd är ömsesidigt uteslutande"
-#: builtin/difftool.c:742
+#: builtin/difftool.c:750
msgid "no <tool> given for --tool=<tool>"
msgstr "inget <verktyg> angavs för --tool=<verktyg>"
-#: builtin/difftool.c:749
+#: builtin/difftool.c:757
msgid "no <cmd> given for --extcmd=<cmd>"
msgstr "inget <kommando> angavs för --extcmd=<kommando>"
@@ -12551,156 +12588,180 @@ msgstr ""
msgid "git fast-export [rev-list-opts]"
msgstr "git fast-export [rev-list-flaggor]"
-#: builtin/fast-export.c:1124
+#: builtin/fast-export.c:852
+msgid "Error: Cannot export nested tags unless --mark-tags is specified."
+msgstr "Fel: Kan inte exportera nästlade taggar såvida inte --mark-tags anges."
+
+#: builtin/fast-export.c:1152
msgid "show progress after <n> objects"
msgstr "visa förlopp efter <n> objekt"
-#: builtin/fast-export.c:1126
+#: builtin/fast-export.c:1154
msgid "select handling of signed tags"
msgstr "välj hantering av signerade taggar"
-#: builtin/fast-export.c:1129
+#: builtin/fast-export.c:1157
msgid "select handling of tags that tag filtered objects"
msgstr "välj hantering av taggar som har taggfiltrerade objekt"
-#: builtin/fast-export.c:1132
+#: builtin/fast-export.c:1160
msgid "select handling of commit messages in an alternate encoding"
msgstr "välj hantering av incheckningsmeddelanden i alternativ teckenkodning"
-#: builtin/fast-export.c:1135
+#: builtin/fast-export.c:1163
msgid "Dump marks to this file"
msgstr "Dumpa märken till filen"
-#: builtin/fast-export.c:1137
+#: builtin/fast-export.c:1165
msgid "Import marks from this file"
msgstr "Importera märken från filen"
-#: builtin/fast-export.c:1139
+#: builtin/fast-export.c:1169
+msgid "Import marks from this file if it exists"
+msgstr "Importera märken från filen, om den finns"
+
+#: builtin/fast-export.c:1171
msgid "Fake a tagger when tags lack one"
msgstr "Fejka taggare när taggen saknar en"
-#: builtin/fast-export.c:1141
+#: builtin/fast-export.c:1173
msgid "Output full tree for each commit"
msgstr "Skriv ut hela trädet för varje incheckning"
-#: builtin/fast-export.c:1143
+#: builtin/fast-export.c:1175
msgid "Use the done feature to terminate the stream"
msgstr "Använd done-funktionen för att avsluta strömmen"
-#: builtin/fast-export.c:1144
+#: builtin/fast-export.c:1176
msgid "Skip output of blob data"
msgstr "Hoppa över skrivning av blob-data"
-#: builtin/fast-export.c:1145 builtin/log.c:1649
+#: builtin/fast-export.c:1177 builtin/log.c:1633
msgid "refspec"
msgstr "referensspecifikation"
-#: builtin/fast-export.c:1146
+#: builtin/fast-export.c:1178
msgid "Apply refspec to exported refs"
msgstr "Applicera referensspecifikation på exporterade referenser"
-#: builtin/fast-export.c:1147
+#: builtin/fast-export.c:1179
msgid "anonymize output"
msgstr "anonymisera utdata"
-#: builtin/fast-export.c:1149
+#: builtin/fast-export.c:1181
msgid "Reference parents which are not in fast-export stream by object id"
msgstr "Referera föräldrar som inte finns i fast-export-ström med objekt-id"
-#: builtin/fast-export.c:1151
+#: builtin/fast-export.c:1183
msgid "Show original object ids of blobs/commits"
-msgstr "Visa ursprungliga objekt-ID för blobbar/incheckningar"
+msgstr "Visa ursprungliga objekt-id för blobbar/incheckningar"
+
+#: builtin/fast-export.c:1185
+msgid "Label tags with mark ids"
+msgstr "Märk taggar med märke-id"
-#: builtin/fetch.c:30
+#: builtin/fast-export.c:1220
+msgid "Cannot pass both --import-marks and --import-marks-if-exists"
+msgstr "Kan inte ange både --import-marks och --import-marks-if-exists"
+
+#: builtin/fetch.c:34
msgid "git fetch [<options>] [<repository> [<refspec>...]]"
msgstr "git fetch [<flaggor>] [<arkiv> [<refspec>...]]"
-#: builtin/fetch.c:31
+#: builtin/fetch.c:35
msgid "git fetch [<options>] <group>"
msgstr "git fetch [<flaggor>] <grupp>"
-#: builtin/fetch.c:32
+#: builtin/fetch.c:36
msgid "git fetch --multiple [<options>] [(<repository> | <group>)...]"
msgstr "git fetch --multiple [<flaggor>] [(<arkiv> | <grupp>)...]"
-#: builtin/fetch.c:33
+#: builtin/fetch.c:37
msgid "git fetch --all [<options>]"
msgstr "git fetch --all [<flaggor>]"
-#: builtin/fetch.c:125 builtin/pull.c:203
+#: builtin/fetch.c:115
+msgid "fetch.parallel cannot be negative"
+msgstr "fetch.parallel kan inte vara negativt"
+
+#: builtin/fetch.c:138 builtin/pull.c:204
msgid "fetch from all remotes"
msgstr "hämta från alla fjärrar"
-#: builtin/fetch.c:127 builtin/pull.c:206
+#: builtin/fetch.c:140 builtin/pull.c:248
+msgid "set upstream for git pull/fetch"
+msgstr "ställ in uppström för git pull/fetch"
+
+#: builtin/fetch.c:142 builtin/pull.c:207
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:129 builtin/pull.c:209
+#: builtin/fetch.c:144 builtin/pull.c:210
msgid "path to upload pack on remote end"
msgstr "sökväg till upload pack på fjärren"
-#: builtin/fetch.c:130
+#: builtin/fetch.c:145
msgid "force overwrite of local reference"
msgstr "tvinga överskrivning av lokal referens"
-#: builtin/fetch.c:132
+#: builtin/fetch.c:147
msgid "fetch from multiple remotes"
msgstr "hämta från flera fjärrar"
-#: builtin/fetch.c:134 builtin/pull.c:213
+#: builtin/fetch.c:149 builtin/pull.c:214
msgid "fetch all tags and associated objects"
msgstr "hämta alla taggar och associerade objekt"
-#: builtin/fetch.c:136
+#: builtin/fetch.c:151
msgid "do not fetch all tags (--no-tags)"
msgstr "hämta inte alla taggar (--no-tags)"
-#: builtin/fetch.c:138
+#: builtin/fetch.c:153
msgid "number of submodules fetched in parallel"
msgstr "antal undermoduler som hämtas parallellt"
-#: builtin/fetch.c:140 builtin/pull.c:216
+#: builtin/fetch.c:155 builtin/pull.c:217
msgid "prune remote-tracking branches no longer on remote"
msgstr "rensa fjärrspårande grenar ej längre på fjärren"
-#: builtin/fetch.c:142
+#: builtin/fetch.c:157
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:143 builtin/fetch.c:166 builtin/pull.c:140
+#: builtin/fetch.c:158 builtin/fetch.c:181 builtin/pull.c:141
msgid "on-demand"
msgstr "on-demand"
-#: builtin/fetch.c:144
+#: builtin/fetch.c:159
msgid "control recursive fetching of submodules"
msgstr "styr rekursiv hämtning av undermoduler"
-#: builtin/fetch.c:148 builtin/pull.c:224
+#: builtin/fetch.c:163 builtin/pull.c:225
msgid "keep downloaded pack"
msgstr "behåll hämtade paket"
-#: builtin/fetch.c:150
+#: builtin/fetch.c:165
msgid "allow updating of HEAD ref"
msgstr "tillåt uppdatering av HEAD-referens"
-#: builtin/fetch.c:153 builtin/fetch.c:159 builtin/pull.c:227
+#: builtin/fetch.c:168 builtin/fetch.c:174 builtin/pull.c:228
msgid "deepen history of shallow clone"
msgstr "fördjupa historik för grund klon"
-#: builtin/fetch.c:155
+#: builtin/fetch.c:170
msgid "deepen history of shallow repository based on time"
msgstr "fördjupa historik för grund klon baserad på tid"
-#: builtin/fetch.c:161 builtin/pull.c:230
+#: builtin/fetch.c:176 builtin/pull.c:231
msgid "convert to a complete repository"
msgstr "konvertera till komplett arkiv"
-#: builtin/fetch.c:164
+#: builtin/fetch.c:179
msgid "prepend this to submodule path output"
msgstr "lägg till i början av undermodulens sökvägsutdata"
-#: builtin/fetch.c:167
+#: builtin/fetch.c:182
msgid ""
"default for recursive fetching of submodules (lower priority than config "
"files)"
@@ -12708,105 +12769,129 @@ msgstr ""
"standard för rekursiv hämtning av undermoduler (lägre prioritet än "
"konfigurationsfiler)"
-#: builtin/fetch.c:171 builtin/pull.c:233
+#: builtin/fetch.c:186 builtin/pull.c:234
msgid "accept refs that update .git/shallow"
msgstr "tar emot referenser som uppdaterar .git/shallow"
-#: builtin/fetch.c:172 builtin/pull.c:235
+#: builtin/fetch.c:187 builtin/pull.c:236
msgid "refmap"
msgstr "referenskarta"
-#: builtin/fetch.c:173 builtin/pull.c:236
+#: builtin/fetch.c:188 builtin/pull.c:237
msgid "specify fetch refmap"
msgstr "ange referenskarta för \"fetch\""
-#: builtin/fetch.c:180
+#: builtin/fetch.c:195
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:183
+#: builtin/fetch.c:198
msgid "run 'gc --auto' after fetching"
msgstr "kör \"gc --auto\" efter hämtning"
-#: builtin/fetch.c:185 builtin/pull.c:245
+#: builtin/fetch.c:200 builtin/pull.c:246
msgid "check for forced-updates on all updated branches"
msgstr "se efter tvingade uppdateringar i alla uppdaterade grenar"
-#: builtin/fetch.c:491
+#: builtin/fetch.c:510
msgid "Couldn't find remote ref HEAD"
msgstr "Kunde inte hitta fjärr-referensen HEAD"
-#: builtin/fetch.c:630
+#: builtin/fetch.c:650
#, 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:728
+#: builtin/fetch.c:748
#, c-format
msgid "object %s not found"
msgstr "objektet %s hittades inte"
-#: builtin/fetch.c:732
+#: builtin/fetch.c:752
msgid "[up to date]"
msgstr "[àjour]"
-#: builtin/fetch.c:745 builtin/fetch.c:761 builtin/fetch.c:833
+#: builtin/fetch.c:765 builtin/fetch.c:781 builtin/fetch.c:853
msgid "[rejected]"
msgstr "[refuserad]"
-#: builtin/fetch.c:746
+#: builtin/fetch.c:766
msgid "can't fetch in current branch"
msgstr "kan inte hämta i aktuell gren"
-#: builtin/fetch.c:756
+#: builtin/fetch.c:776
msgid "[tag update]"
msgstr "[uppdaterad tagg]"
-#: builtin/fetch.c:757 builtin/fetch.c:794 builtin/fetch.c:816
-#: builtin/fetch.c:828
+#: builtin/fetch.c:777 builtin/fetch.c:814 builtin/fetch.c:836
+#: builtin/fetch.c:848
msgid "unable to update local ref"
msgstr "kunde inte uppdatera lokal ref"
-#: builtin/fetch.c:761
+#: builtin/fetch.c:781
msgid "would clobber existing tag"
msgstr "skulle skriva över befintlig tagg"
-#: builtin/fetch.c:783
+#: builtin/fetch.c:803
msgid "[new tag]"
msgstr "[ny tagg]"
-#: builtin/fetch.c:786
+#: builtin/fetch.c:806
msgid "[new branch]"
msgstr "[ny gren]"
-#: builtin/fetch.c:789
+#: builtin/fetch.c:809
msgid "[new ref]"
msgstr "[ny ref]"
-#: builtin/fetch.c:828
+#: builtin/fetch.c:848
msgid "forced update"
msgstr "tvingad uppdatering"
-#: builtin/fetch.c:833
+#: builtin/fetch.c:853
msgid "non-fast-forward"
msgstr "ej snabbspolad"
-#: builtin/fetch.c:879
+#: builtin/fetch.c:874
+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 ""
+"Fetch visar normalt vilka grenar som tvångsuppdaterats, men testet har "
+"slagits\n"
+"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:878
+#, c-format
+msgid ""
+"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"
+msgstr ""
+"Det tog %.2f sekunder att se efter tvångsuppdateringar. Du kan använda\n"
+"\"--no-show-forced-updates\" eller köra \"git config fetch."
+"showForcedUpdates\n"
+"false\" för att undvika testet.\n"
+
+#: builtin/fetch.c:908
#, 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:900
+#: builtin/fetch.c:929
#, c-format
msgid "reject %s because shallow roots are not allowed to be updated"
msgstr "avvisa %s då grunda rötter inte kan uppdateras"
-#: builtin/fetch.c:991 builtin/fetch.c:1124
+#: builtin/fetch.c:1020 builtin/fetch.c:1157
#, c-format
msgid "From %.*s\n"
msgstr "Från %.*s\n"
-#: builtin/fetch.c:1002
+#: builtin/fetch.c:1031
#, c-format
msgid ""
"some local refs could not be updated; try running\n"
@@ -12815,89 +12900,79 @@ 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:1008
-msgid ""
-"Fetch normally indicates which branches had a forced update, but that check "
-"has been disabled."
-msgstr ""
-"Hämtning visar vanligtvis vilka grenar som har en tvingad uppdatering, men "
-"det testet har slagits av."
-
-#: builtin/fetch.c:1009
-msgid ""
-"To re-enable, use '--show-forced-updates' flag or run 'git config fetch."
-"showForcedUpdates true'."
-msgstr ""
-"För att slå på igen, använd flaggan \"--show-forced-updates\" eller kör "
-"\"git config fetch.showForcedUpdates true\"."
-
-#: builtin/fetch.c:1011
-#, c-format
-msgid ""
-"It took %.2f seconds to check forced updates. You can use '--no-show-forced-"
-"updates'\n"
-msgstr ""
-"Det tog %.2f sekunder att se efter tvingade uppdateringar. Du kan använda "
-"\"--no-show-forced-updates\"\n"
-
-#: builtin/fetch.c:1013
-msgid ""
-"or run 'git config fetch.showForcedUpdates false' to avoid this check.\n"
-msgstr ""
-"eller kör \"git config fetch.showForcedUpdates false\" för undvika testet.\n"
-
-#: builtin/fetch.c:1094
+#: builtin/fetch.c:1127
#, c-format
msgid " (%s will become dangling)"
msgstr " (%s kommer bli dinglande)"
-#: builtin/fetch.c:1095
+#: builtin/fetch.c:1128
#, c-format
msgid " (%s has become dangling)"
msgstr " (%s har blivit dinglande)"
-#: builtin/fetch.c:1127
+#: builtin/fetch.c:1160
msgid "[deleted]"
msgstr "[borttagen]"
-#: builtin/fetch.c:1128 builtin/remote.c:1036
+#: builtin/fetch.c:1161 builtin/remote.c:1036
msgid "(none)"
msgstr "(ingen)"
-#: builtin/fetch.c:1151
+#: builtin/fetch.c:1184
#, c-format
msgid "Refusing to fetch into current branch %s of non-bare repository"
msgstr "Vägrar hämta till aktuell gren %s i ett icke-naket arkiv"
-#: builtin/fetch.c:1170
+#: builtin/fetch.c:1203
#, c-format
msgid "Option \"%s\" value \"%s\" is not valid for %s"
msgstr "Flaggan \"%s\" och värdet \"%s\" är inte giltigt för %s"
-#: builtin/fetch.c:1173
+#: builtin/fetch.c:1206
#, c-format
msgid "Option \"%s\" is ignored for %s\n"
msgstr "Flaggan \"%s\" ignoreras för %s\n"
-#: builtin/fetch.c:1477
+#: builtin/fetch.c:1414
+msgid "multiple branch detected, incompatible with --set-upstream"
+msgstr "flera grenar upptäcktes, inkompatibelt med --set-upstream"
+
+#: builtin/fetch.c:1429
+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:1431
+msgid "not setting upstream for a remote tag"
+msgstr "ställer inte in uppström för en fjärrtag"
+
+#: builtin/fetch.c:1433
+msgid "unknown branch type"
+msgstr "okänd grentyp"
+
+#: builtin/fetch.c:1435
+msgid ""
+"no source branch found.\n"
+"you need to specify exactly one branch with the --set-upstream option."
+msgstr ""
+"hittade ingen källgren.\n"
+"du måste ange exakt en gren med flaggan --set-upstream."
+
+#: builtin/fetch.c:1561 builtin/fetch.c:1623
#, c-format
msgid "Fetching %s\n"
msgstr "Hämtar %s\n"
-#: builtin/fetch.c:1479 builtin/remote.c:100
+#: builtin/fetch.c:1571 builtin/fetch.c:1625 builtin/remote.c:100
#, c-format
msgid "Could not fetch %s"
msgstr "Kunde inte hämta %s"
-#: builtin/fetch.c:1525
-msgid ""
-"--filter can only be used with the remote configured in extensions."
-"partialClone"
-msgstr ""
-"--filter kan endast användas med fjärren konfigurerad i extensions."
-"partialClone"
+#: builtin/fetch.c:1583
+#, c-format
+msgid "could not fetch '%s' (exit code: %d)\n"
+msgstr "kunde inte hämta \"%s\" (felkod: %d)\n"
-#: builtin/fetch.c:1549
+#: builtin/fetch.c:1685
msgid ""
"No remote repository specified. Please, specify either a URL or a\n"
"remote name from which new revisions should be fetched."
@@ -12905,44 +12980,44 @@ msgstr ""
"Inget fjärrarkiv angavs. Ange antingen en URL eller namnet på ett\n"
"fjärrarkiv som nya incheckningar skall hämtas från."
-#: builtin/fetch.c:1586
+#: builtin/fetch.c:1722
msgid "You need to specify a tag name."
msgstr "Du måste ange namnet på en tagg."
-#: builtin/fetch.c:1637
+#: builtin/fetch.c:1774
msgid "Negative depth in --deepen is not supported"
msgstr "Negativa djup stöds inte i --deepen"
-#: builtin/fetch.c:1639
+#: builtin/fetch.c:1776
msgid "--deepen and --depth are mutually exclusive"
msgstr "--deepen och --depth är ömsesidigt uteslutande"
-#: builtin/fetch.c:1644
+#: builtin/fetch.c:1781
msgid "--depth and --unshallow cannot be used together"
msgstr "--depth och --unshallow kan inte användas samtidigt"
-#: builtin/fetch.c:1646
+#: builtin/fetch.c:1783
msgid "--unshallow on a complete repository does not make sense"
msgstr "--unshallow kan inte användas på ett komplett arkiv"
-#: builtin/fetch.c:1662
+#: builtin/fetch.c:1799
msgid "fetch --all does not take a repository argument"
msgstr "fetch --all tar inte namnet på ett arkiv som argument"
-#: builtin/fetch.c:1664
+#: builtin/fetch.c:1801
msgid "fetch --all does not make sense with refspecs"
msgstr "fetch --all kan inte anges med referensspecifikationer"
-#: builtin/fetch.c:1673
+#: builtin/fetch.c:1810
#, c-format
msgid "No such remote or remote group: %s"
msgstr "Fjärren eller fjärrgruppen finns inte: %s"
-#: builtin/fetch.c:1680
+#: builtin/fetch.c:1817
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:1696
+#: builtin/fetch.c:1835
msgid ""
"--filter can only be used with the remote configured in extensions."
"partialclone"
@@ -13284,7 +13359,7 @@ msgstr "%s: objekt saknas"
msgid "invalid parameter: expected sha1, got '%s'"
msgstr "ogiltig parameter: förväntade sha1, fick \"%s\""
-#: builtin/gc.c:34
+#: builtin/gc.c:35
msgid "git gc [<options>]"
msgstr "git gc [<flaggor>]"
@@ -13298,17 +13373,17 @@ msgstr "Misslyckades ta status (fstat) på %s: %s"
msgid "failed to parse '%s' value '%s'"
msgstr "misslyckades tolka \"%s\" värde \"%s\""
-#: builtin/gc.c:476 builtin/init-db.c:55
+#: builtin/gc.c:475 builtin/init-db.c:55
#, c-format
msgid "cannot stat '%s'"
msgstr "kan inte ta status på \"%s\""
-#: builtin/gc.c:485 builtin/notes.c:240 builtin/tag.c:529
+#: builtin/gc.c:484 builtin/notes.c:240 builtin/tag.c:529
#, c-format
msgid "cannot read '%s'"
msgstr "kunde inte läsa \"%s\""
-#: builtin/gc.c:492
+#: builtin/gc.c:491
#, c-format
msgid ""
"The last gc run reported the following. Please correct the root cause\n"
@@ -13323,52 +13398,52 @@ msgstr ""
"\n"
"%s"
-#: builtin/gc.c:540
+#: builtin/gc.c:539
msgid "prune unreferenced objects"
msgstr "rensa ej refererade objekt"
-#: builtin/gc.c:542
+#: builtin/gc.c:541
msgid "be more thorough (increased runtime)"
msgstr "var mer grundlig (ökar körtiden)"
-#: builtin/gc.c:543
+#: builtin/gc.c:542
msgid "enable auto-gc mode"
msgstr "aktivera auto-gc-läge"
-#: builtin/gc.c:546
+#: builtin/gc.c:545
msgid "force running gc even if there may be another gc running"
msgstr "tvinga gc-körning även om en annan gc kanske körs"
-#: builtin/gc.c:549
+#: builtin/gc.c:548
msgid "repack all other packs except the largest pack"
msgstr "packa om alla paket förutom det största paketet"
-#: builtin/gc.c:566
+#: builtin/gc.c:565
#, c-format
msgid "failed to parse gc.logexpiry value %s"
msgstr "kunde inte tolka värdet %s för gc.logexpiry"
-#: builtin/gc.c:577
+#: builtin/gc.c:576
#, c-format
msgid "failed to parse prune expiry value %s"
msgstr "kunde inte tolka värdet %s för prune expiry"
-#: builtin/gc.c:597
+#: builtin/gc.c:596
#, c-format
msgid "Auto packing the repository in background for optimum performance.\n"
msgstr "Packar arkivet automatiskt i bakgrunden för optimal prestanda.\n"
-#: builtin/gc.c:599
+#: builtin/gc.c:598
#, c-format
msgid "Auto packing the repository for optimum performance.\n"
msgstr "Packar arkivet automatiskt för optimal prestanda.\n"
-#: builtin/gc.c:600
+#: builtin/gc.c:599
#, c-format
msgid "See \"git help gc\" for manual housekeeping.\n"
msgstr "Se \"git help gc\" för manuell hushållning.\n"
-#: builtin/gc.c:640
+#: builtin/gc.c:639
#, c-format
msgid ""
"gc is already running on machine '%s' pid %<PRIuMAX> (use --force if not)"
@@ -13376,7 +13451,7 @@ msgstr ""
"gc körs redan på maskinen \"%s\" pid %<PRIuMAX> (använd --force om så inte "
"är fallet)"
-#: builtin/gc.c:695
+#: builtin/gc.c:694
msgid ""
"There are too many unreachable loose objects; run 'git prune' to remove them."
msgstr ""
@@ -13402,257 +13477,257 @@ msgstr "felaktigt antal trådar angivet (%d) för %s"
#. grep.threads
#.
#: builtin/grep.c:287 builtin/index-pack.c:1534 builtin/index-pack.c:1727
-#: builtin/pack-objects.c:2722
+#: builtin/pack-objects.c:2708
#, c-format
msgid "no threads support, ignoring %s"
msgstr "trådstöd saknas, ignorerar %s"
-#: builtin/grep.c:467 builtin/grep.c:591 builtin/grep.c:633
+#: builtin/grep.c:467 builtin/grep.c:592 builtin/grep.c:635
#, c-format
msgid "unable to read tree (%s)"
msgstr "kunde inte läsa träd (%s)"
-#: builtin/grep.c:648
+#: builtin/grep.c:650
#, c-format
msgid "unable to grep from object of type %s"
msgstr "kunde inte \"grep\" från objekt av typen %s"
-#: builtin/grep.c:714
+#: builtin/grep.c:716
#, c-format
msgid "switch `%c' expects a numerical value"
msgstr "flaggan \"%c\" antar ett numeriskt värde"
-#: builtin/grep.c:813
+#: builtin/grep.c:815
msgid "search in index instead of in the work tree"
msgstr "sök i indexet istället för i arbetskatalogen"
-#: builtin/grep.c:815
+#: builtin/grep.c:817
msgid "find in contents not managed by git"
msgstr "sök i innehåll som inte hanteras av git"
-#: builtin/grep.c:817
+#: builtin/grep.c:819
msgid "search in both tracked and untracked files"
msgstr "sök i både spårade och ospårade filer"
-#: builtin/grep.c:819
+#: builtin/grep.c:821
msgid "ignore files specified via '.gitignore'"
msgstr "ignorera filer angivna i \".gitignore\""
-#: builtin/grep.c:821
+#: builtin/grep.c:823
msgid "recursively search in each submodule"
msgstr "sök varje undermodul rekursivt"
-#: builtin/grep.c:824
+#: builtin/grep.c:826
msgid "show non-matching lines"
msgstr "visa rader som inte träffas"
-#: builtin/grep.c:826
+#: builtin/grep.c:828
msgid "case insensitive matching"
msgstr "skiftlägesokänslig sökning"
-#: builtin/grep.c:828
+#: builtin/grep.c:830
msgid "match patterns only at word boundaries"
msgstr "matcha endast mönster vid ordgränser"
-#: builtin/grep.c:830
+#: builtin/grep.c:832
msgid "process binary files as text"
msgstr "hantera binärfiler som text"
-#: builtin/grep.c:832
+#: builtin/grep.c:834
msgid "don't match patterns in binary files"
msgstr "träffa inte mönster i binärfiler"
-#: builtin/grep.c:835
+#: builtin/grep.c:837
msgid "process binary files with textconv filters"
msgstr "hantera binärfiler med textconv-filter"
-#: builtin/grep.c:837
+#: builtin/grep.c:839
msgid "search in subdirectories (default)"
msgstr "sök i underkataloger (standard)"
-#: builtin/grep.c:839
+#: builtin/grep.c:841
msgid "descend at most <depth> levels"
msgstr "gå som mest ned <djup> nivåer"
-#: builtin/grep.c:843
+#: builtin/grep.c:845
msgid "use extended POSIX regular expressions"
msgstr "använd utökade POSIX-reguljära uttryck"
-#: builtin/grep.c:846
+#: builtin/grep.c:848
msgid "use basic POSIX regular expressions (default)"
msgstr "använd grundläggande POSIX-reguljära uttryck (standard)"
-#: builtin/grep.c:849
+#: builtin/grep.c:851
msgid "interpret patterns as fixed strings"
msgstr "tolka mönster som fixerade strängar"
-#: builtin/grep.c:852
+#: builtin/grep.c:854
msgid "use Perl-compatible regular expressions"
msgstr "använd Perlkompatibla reguljära uttryck"
-#: builtin/grep.c:855
+#: builtin/grep.c:857
msgid "show line numbers"
msgstr "visa radnummer"
-#: builtin/grep.c:856
+#: builtin/grep.c:858
msgid "show column number of first match"
msgstr "visa kolumnnummer för första träff"
-#: builtin/grep.c:857
+#: builtin/grep.c:859
msgid "don't show filenames"
msgstr "visa inte filnamn"
-#: builtin/grep.c:858
+#: builtin/grep.c:860
msgid "show filenames"
msgstr "visa filnamn"
-#: builtin/grep.c:860
+#: builtin/grep.c:862
msgid "show filenames relative to top directory"
msgstr "visa filnamn relativa till toppkatalogen"
-#: builtin/grep.c:862
+#: builtin/grep.c:864
msgid "show only filenames instead of matching lines"
msgstr "visa endast filnamn istället för träffade rader"
-#: builtin/grep.c:864
+#: builtin/grep.c:866
msgid "synonym for --files-with-matches"
msgstr "synonym för --files-with-matches"
-#: builtin/grep.c:867
+#: builtin/grep.c:869
msgid "show only the names of files without match"
msgstr "visa endast namn på filer utan träffar"
-#: builtin/grep.c:869
+#: builtin/grep.c:871
msgid "print NUL after filenames"
msgstr "skriv NUL efter filnamn"
-#: builtin/grep.c:872
+#: builtin/grep.c:874
msgid "show only matching parts of a line"
msgstr "visa endast träffade delar av rader"
-#: builtin/grep.c:874
+#: builtin/grep.c:876
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:875
+#: builtin/grep.c:877
msgid "highlight matches"
msgstr "ljusmarkera träffar"
-#: builtin/grep.c:877
+#: builtin/grep.c:879
msgid "print empty line between matches from different files"
msgstr "skriv tomma rader mellan träffar från olika filer"
-#: builtin/grep.c:879
+#: builtin/grep.c:881
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:882
+#: builtin/grep.c:884
msgid "show <n> context lines before and after matches"
msgstr "visa <n> rader sammanhang före och efter träffar"
-#: builtin/grep.c:885
+#: builtin/grep.c:887
msgid "show <n> context lines before matches"
msgstr "visa <n> rader sammanhang före träffar"
-#: builtin/grep.c:887
+#: builtin/grep.c:889
msgid "show <n> context lines after matches"
msgstr "visa <n> rader sammanhang efter träffar"
-#: builtin/grep.c:889
+#: builtin/grep.c:891
msgid "use <n> worker threads"
msgstr "använd <n> jobbtrådar"
-#: builtin/grep.c:890
+#: builtin/grep.c:892
msgid "shortcut for -C NUM"
msgstr "genväg för -C NUM"
-#: builtin/grep.c:893
+#: builtin/grep.c:895
msgid "show a line with the function name before matches"
msgstr "visa en rad med funktionsnamnet före träffen"
-#: builtin/grep.c:895
+#: builtin/grep.c:897
msgid "show the surrounding function"
msgstr "visa den omkringliggande funktionen"
-#: builtin/grep.c:898
+#: builtin/grep.c:900
msgid "read patterns from file"
msgstr "läs mönster från fil"
-#: builtin/grep.c:900
+#: builtin/grep.c:902
msgid "match <pattern>"
msgstr "träffa <mönster>"
-#: builtin/grep.c:902
+#: builtin/grep.c:904
msgid "combine patterns specified with -e"
msgstr "kombinera mönster som anges med -e"
-#: builtin/grep.c:914
+#: builtin/grep.c:916
msgid "indicate hit with exit status without output"
msgstr "ange träff med slutstatuskod utan utdata"
-#: builtin/grep.c:916
+#: builtin/grep.c:918
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:918
+#: builtin/grep.c:920
msgid "show parse tree for grep expression"
msgstr "visa analysträd för grep-uttryck"
-#: builtin/grep.c:922
+#: builtin/grep.c:924
msgid "pager"
msgstr "bläddrare"
-#: builtin/grep.c:922
+#: builtin/grep.c:924
msgid "show matching files in the pager"
msgstr "visa träffade filer i filbläddraren"
-#: builtin/grep.c:926
+#: builtin/grep.c:928
msgid "allow calling of grep(1) (ignored by this build)"
msgstr "tillåt anropa grep(1) (ignoreras av detta bygge)"
-#: builtin/grep.c:990
+#: builtin/grep.c:992
msgid "no pattern given"
msgstr "inget mönster angavs"
-#: builtin/grep.c:1026
+#: builtin/grep.c:1028
msgid "--no-index or --untracked cannot be used with revs"
msgstr "--no-index och --untracked kan inte användas med revisioner"
-#: builtin/grep.c:1034
+#: builtin/grep.c:1036
#, c-format
msgid "unable to resolve revision: %s"
msgstr "kan inte slå upp revision: %s"
-#: builtin/grep.c:1065
+#: builtin/grep.c:1067
msgid "invalid option combination, ignoring --threads"
msgstr "ogiltig kombination av flaggor, ignorerar --threads"
-#: builtin/grep.c:1068 builtin/pack-objects.c:3405
+#: builtin/grep.c:1070 builtin/pack-objects.c:3400
msgid "no threads support, ignoring --threads"
msgstr "trådstöd saknas, ignorerar --threads"
-#: builtin/grep.c:1071 builtin/index-pack.c:1531 builtin/pack-objects.c:2719
+#: builtin/grep.c:1073 builtin/index-pack.c:1531 builtin/pack-objects.c:2705
#, c-format
msgid "invalid number of threads specified (%d)"
msgstr "felaktigt antal trådar angivet (%d)"
-#: builtin/grep.c:1094
+#: builtin/grep.c:1096
msgid "--open-files-in-pager only works on the worktree"
msgstr "--open-files-in-pager fungerar endast i arbetskatalogen"
-#: builtin/grep.c:1117
+#: builtin/grep.c:1119
msgid "option not supported with --recurse-submodules"
msgstr "flaggan stöds inte med --recurse-submodules"
-#: builtin/grep.c:1123
+#: builtin/grep.c:1125
msgid "--cached or --untracked cannot be used with --no-index"
msgstr "--cached och --untracked kan inte användas med --no-index"
-#: builtin/grep.c:1129
+#: builtin/grep.c:1131
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:1137
+#: builtin/grep.c:1139
msgid "both --cached and trees are given"
msgstr "både --cached och träd angavs"
@@ -13837,7 +13912,7 @@ msgstr "indataläsfel"
msgid "used more bytes than were available"
msgstr "använde fler byte än tillgängligt"
-#: builtin/index-pack.c:288 builtin/pack-objects.c:600
+#: builtin/index-pack.c:288 builtin/pack-objects.c:604
msgid "pack too large for current definition of off_t"
msgstr "paket för stort för nuvarande definition av off_t"
@@ -13903,8 +13978,8 @@ msgstr "allvarlig inflate-inkonsekvens"
msgid "SHA1 COLLISION FOUND WITH %s !"
msgstr "SHA1-KOLLISION UPPTÄCKT VID %s !"
-#: builtin/index-pack.c:738 builtin/pack-objects.c:153
-#: builtin/pack-objects.c:213 builtin/pack-objects.c:307
+#: builtin/index-pack.c:738 builtin/pack-objects.c:157
+#: builtin/pack-objects.c:217 builtin/pack-objects.c:311
#, c-format
msgid "unable to read %s"
msgstr "kunde inte läsa %s"
@@ -13965,7 +14040,7 @@ msgstr "förvirrad bortom vanvett i parse_pack_objects()"
msgid "Resolving deltas"
msgstr "Analyserar delta"
-#: builtin/index-pack.c:1205 builtin/pack-objects.c:2491
+#: builtin/index-pack.c:1205 builtin/pack-objects.c:2481
#, c-format
msgid "unable to create thread: %s"
msgstr "kunde inte skapa tråd: %s"
@@ -14030,7 +14105,7 @@ msgstr "kan inte spara paketfil"
msgid "cannot store index file"
msgstr "kan inte spara indexfil"
-#: builtin/index-pack.c:1525 builtin/pack-objects.c:2730
+#: builtin/index-pack.c:1525 builtin/pack-objects.c:2716
#, c-format
msgid "bad pack.indexversion=%<PRIu32>"
msgstr "felaktig pack.indexversion=%<PRIu32>"
@@ -14277,128 +14352,108 @@ msgstr "git show [<flaggor>] <objekt>..."
msgid "invalid --decorate option: %s"
msgstr "ogiltig flagga för --decorate: %s"
-#: builtin/log.c:160
-msgid ""
-"log.mailmap is not set; its implicit value will change in an\n"
-"upcoming release. To squelch this message and preserve current\n"
-"behaviour, set the log.mailmap configuration value to false.\n"
-"\n"
-"To squelch this message and adopt the new behaviour now, set the\n"
-"log.mailmap configuration value to true.\n"
-"\n"
-"See 'git help config' and search for 'log.mailmap' for further information."
-msgstr ""
-"log.mailmap har inte satts: förvalet kommer ändras i en kommande\n"
-"version. För att dölja det här meddelandet och behålla nuvarande\n"
-"beteende, sätt konfigurationsvariabeln log.mailmap till false.\n"
-"\n"
-"För att dölja det här meddelandet och använda det nya beteendet,\n"
-"sätt konfigurationsvariabeln log.mailmap till true.\n"
-"\n"
-"Se \"git help config\" och sök efter \"log.mailmap\" för mer information."
-
-#: builtin/log.c:183
+#: builtin/log.c:173
msgid "show source"
msgstr "visa källkod"
-#: builtin/log.c:184
+#: builtin/log.c:174
msgid "Use mail map file"
msgstr "Använd e-postmappningsfil"
-#: builtin/log.c:186
+#: builtin/log.c:176
msgid "only decorate refs that match <pattern>"
msgstr "dekorera endast referenser som motsvarar <mönster>"
-#: builtin/log.c:188
+#: builtin/log.c:178
msgid "do not decorate refs that match <pattern>"
msgstr "dekorera inte referenser som motsvarar <mönster>"
-#: builtin/log.c:189
+#: builtin/log.c:179
msgid "decorate options"
msgstr "dekoreringsflaggor"
-#: builtin/log.c:192
+#: builtin/log.c:182
msgid "Process line range n,m in file, counting from 1"
msgstr "Behandla radintervallet n,m i filen, med början på 1"
-#: builtin/log.c:297
+#: builtin/log.c:280
#, c-format
msgid "Final output: %d %s\n"
msgstr "Slututdata: %d %s\n"
-#: builtin/log.c:551
+#: builtin/log.c:534
#, c-format
msgid "git show %s: bad file"
msgstr "git show %s: felaktig fil"
-#: builtin/log.c:566 builtin/log.c:660
+#: builtin/log.c:549 builtin/log.c:644
#, c-format
msgid "could not read object %s"
msgstr "kunde inte läsa objektet %s"
-#: builtin/log.c:685
+#: builtin/log.c:669
#, c-format
msgid "unknown type: %d"
msgstr "okänd typ: %d"
-#: builtin/log.c:808
+#: builtin/log.c:792
msgid "format.headers without value"
msgstr "format.headers utan värde"
-#: builtin/log.c:925
+#: builtin/log.c:909
msgid "name of output directory is too long"
msgstr "namnet på utdatakatalogen är för långt"
-#: builtin/log.c:941
+#: builtin/log.c:925
#, c-format
msgid "cannot open patch file %s"
msgstr "kan inte öppna patchfilen %s"
-#: builtin/log.c:958
+#: builtin/log.c:942
msgid "need exactly one range"
msgstr "behöver precis ett intervall"
-#: builtin/log.c:968
+#: builtin/log.c:952
msgid "not a range"
msgstr "inte ett intervall"
-#: builtin/log.c:1091
+#: builtin/log.c:1075
msgid "cover letter needs email format"
msgstr "omslagsbrevet behöver e-postformat"
-#: builtin/log.c:1097
+#: builtin/log.c:1081
msgid "failed to create cover-letter file"
msgstr "misslyckades skapa fil för omslagsbrev"
-#: builtin/log.c:1176
+#: builtin/log.c:1160
#, c-format
msgid "insane in-reply-to: %s"
msgstr "tokigt in-reply-to: %s"
-#: builtin/log.c:1203
+#: builtin/log.c:1187
msgid "git format-patch [<options>] [<since> | <revision-range>]"
msgstr "git format-patch [<flaggor>] [<sedan> | <revisionsintervall>]"
-#: builtin/log.c:1261
+#: builtin/log.c:1245
msgid "two output directories?"
msgstr "två utdatakataloger?"
-#: builtin/log.c:1372 builtin/log.c:2116 builtin/log.c:2118 builtin/log.c:2130
+#: builtin/log.c:1356 builtin/log.c:2116 builtin/log.c:2118 builtin/log.c:2130
#, c-format
msgid "unknown commit %s"
msgstr "okänd incheckning %s"
-#: builtin/log.c:1382 builtin/replace.c:58 builtin/replace.c:207
+#: builtin/log.c:1366 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:1387
+#: builtin/log.c:1371
msgid "could not find exact merge base"
msgstr "kunde inte hitta exakt sammanslagningsbas"
-#: builtin/log.c:1391
+#: builtin/log.c:1375
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"
@@ -14408,216 +14463,216 @@ 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:1411
+#: builtin/log.c:1395
msgid "failed to find exact merge base"
msgstr "kunde inte hitta exakt sammanslagningsbas"
-#: builtin/log.c:1422
+#: builtin/log.c:1406
msgid "base commit should be the ancestor of revision list"
msgstr "basincheckningen bör vara förfader till revisionslistan"
-#: builtin/log.c:1426
+#: builtin/log.c:1410
msgid "base commit shouldn't be in revision list"
msgstr "basincheckningen bör inte vara i revisionslistan"
-#: builtin/log.c:1479
+#: builtin/log.c:1463
msgid "cannot get patch id"
msgstr "kan inte hämta patch-id"
-#: builtin/log.c:1531
+#: builtin/log.c:1515
msgid "failed to infer range-diff ranges"
msgstr "misslyckades räkna ut intervall range-diff"
-#: builtin/log.c:1576
+#: builtin/log.c:1560
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:1579
+#: builtin/log.c:1563
msgid "use [PATCH] even with multiple patches"
msgstr "använd [PATCH] även för flera patchar"
-#: builtin/log.c:1583
+#: builtin/log.c:1567
msgid "print patches to standard out"
msgstr "skriv patcharna på standard ut"
-#: builtin/log.c:1585
+#: builtin/log.c:1569
msgid "generate a cover letter"
msgstr "generera ett följebrev"
-#: builtin/log.c:1587
+#: builtin/log.c:1571
msgid "use simple number sequence for output file names"
msgstr "använd enkel nummersekvens för utdatafilnamn"
-#: builtin/log.c:1588
+#: builtin/log.c:1572
msgid "sfx"
msgstr "sfx"
-#: builtin/log.c:1589
+#: builtin/log.c:1573
msgid "use <sfx> instead of '.patch'"
msgstr "använd <sfx> istället för \".patch\""
-#: builtin/log.c:1591
+#: builtin/log.c:1575
msgid "start numbering patches at <n> instead of 1"
msgstr "börja numrera patchar på <n> istället för 1"
-#: builtin/log.c:1593
+#: builtin/log.c:1577
msgid "mark the series as Nth re-roll"
msgstr "markera serien som N:te försök"
-#: builtin/log.c:1595
+#: builtin/log.c:1579
msgid "Use [RFC PATCH] instead of [PATCH]"
msgstr "Använd [RFC PATCH] istället för [PATCH]"
-#: builtin/log.c:1598
+#: builtin/log.c:1582
msgid "Use [<prefix>] instead of [PATCH]"
msgstr "Använd [<prefix>] istället för [PATCH]"
-#: builtin/log.c:1601
+#: builtin/log.c:1585
msgid "store resulting files in <dir>"
msgstr "spara filerna i <katalog>"
-#: builtin/log.c:1604
+#: builtin/log.c:1588
msgid "don't strip/add [PATCH]"
msgstr "ta inte bort eller lägg till [PATCH]"
-#: builtin/log.c:1607
+#: builtin/log.c:1591
msgid "don't output binary diffs"
msgstr "skriv inte binära diffar"
-#: builtin/log.c:1609
+#: builtin/log.c:1593
msgid "output all-zero hash in From header"
msgstr "använd hashvärde med nollor i From-huvud"
-#: builtin/log.c:1611
+#: builtin/log.c:1595
msgid "don't include a patch matching a commit upstream"
msgstr "ta inte med patchar som motsvarar en uppströmsincheckning"
-#: builtin/log.c:1613
+#: builtin/log.c:1597
msgid "show patch format instead of default (patch + stat)"
msgstr "visa patchformat istället för standard (patch + stat)"
-#: builtin/log.c:1615
+#: builtin/log.c:1599
msgid "Messaging"
msgstr "E-post"
-#: builtin/log.c:1616
+#: builtin/log.c:1600
msgid "header"
msgstr "huvud"
-#: builtin/log.c:1617
+#: builtin/log.c:1601
msgid "add email header"
msgstr "lägg till e-posthuvud"
-#: builtin/log.c:1618 builtin/log.c:1620
+#: builtin/log.c:1602 builtin/log.c:1604
msgid "email"
msgstr "epost"
-#: builtin/log.c:1618
+#: builtin/log.c:1602
msgid "add To: header"
msgstr "lägg till mottagarhuvud (\"To:\")"
-#: builtin/log.c:1620
+#: builtin/log.c:1604
msgid "add Cc: header"
msgstr "lägg till kopiehuvud (\"Cc:\")"
-#: builtin/log.c:1622
+#: builtin/log.c:1606
msgid "ident"
msgstr "ident"
-#: builtin/log.c:1623
+#: builtin/log.c:1607
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:1625
+#: builtin/log.c:1609
msgid "message-id"
msgstr "meddelande-id"
-#: builtin/log.c:1626
+#: builtin/log.c:1610
msgid "make first mail a reply to <message-id>"
msgstr "gör det första brevet ett svar till <meddelande-id>"
-#: builtin/log.c:1627 builtin/log.c:1630
+#: builtin/log.c:1611 builtin/log.c:1614
msgid "boundary"
msgstr "gräns"
-#: builtin/log.c:1628
+#: builtin/log.c:1612
msgid "attach the patch"
msgstr "bifoga patchen"
-#: builtin/log.c:1631
+#: builtin/log.c:1615
msgid "inline the patch"
msgstr "gör patchen ett inline-objekt"
-#: builtin/log.c:1635
+#: builtin/log.c:1619
msgid "enable message threading, styles: shallow, deep"
msgstr "aktivera brevtrådning, typer: shallow, deep"
-#: builtin/log.c:1637
+#: builtin/log.c:1621
msgid "signature"
msgstr "signatur"
-#: builtin/log.c:1638
+#: builtin/log.c:1622
msgid "add a signature"
msgstr "lägg till signatur"
-#: builtin/log.c:1639
+#: builtin/log.c:1623
msgid "base-commit"
msgstr "basincheckning"
-#: builtin/log.c:1640
+#: builtin/log.c:1624
msgid "add prerequisite tree info to the patch series"
msgstr "lägg till förhandskrävd trädinfo i patchserien"
-#: builtin/log.c:1642
+#: builtin/log.c:1626
msgid "add a signature from a file"
msgstr "lägg till signatur från fil"
-#: builtin/log.c:1643
+#: builtin/log.c:1627
msgid "don't print the patch filenames"
msgstr "visa inte filnamn för patchar"
-#: builtin/log.c:1645
+#: builtin/log.c:1629
msgid "show progress while generating patches"
msgstr "visa förloppsindikator medan patchar skapas"
-#: builtin/log.c:1647
+#: builtin/log.c:1631
msgid "show changes against <rev> in cover letter or single patch"
msgstr "visa ändringar mot <rev> i omslagsbrev eller ensam patch"
-#: builtin/log.c:1650
+#: builtin/log.c:1634
msgid "show changes against <refspec> in cover letter or single patch"
msgstr "visa ändringar mot <refspec> i omslagsbrev eller ensam patch"
-#: builtin/log.c:1652
+#: builtin/log.c:1636
msgid "percentage by which creation is weighted"
msgstr "procent som skapelse vägs med"
-#: builtin/log.c:1727
+#: builtin/log.c:1711
#, c-format
msgid "invalid ident line: %s"
msgstr "ogiltig ident-rad: %s"
-#: builtin/log.c:1742
+#: builtin/log.c:1726
msgid "-n and -k are mutually exclusive"
msgstr "-n och -k kan inte användas samtidigt"
-#: builtin/log.c:1744
+#: builtin/log.c:1728
msgid "--subject-prefix/--rfc and -k are mutually exclusive"
msgstr "--subject-prefix/--rfc och -k kan inte användas samtidigt"
-#: builtin/log.c:1752
+#: builtin/log.c:1736
msgid "--name-only does not make sense"
msgstr "kan inte använda --name-only"
-#: builtin/log.c:1754
+#: builtin/log.c:1738
msgid "--name-status does not make sense"
msgstr "kan inte använda --name-status"
-#: builtin/log.c:1756
+#: builtin/log.c:1740
msgid "--check does not make sense"
msgstr "kan inte använda --check"
-#: builtin/log.c:1788
+#: builtin/log.c:1773
msgid "standard output, or directory, which one?"
msgstr "standard ut, eller katalog, vilken skall det vara?"
@@ -14792,7 +14847,7 @@ msgstr ""
msgid "do not print remote URL"
msgstr "visa inte fjärr-URL"
-#: builtin/ls-remote.c:60 builtin/ls-remote.c:62 builtin/rebase.c:1464
+#: builtin/ls-remote.c:60 builtin/ls-remote.c:62 builtin/rebase.c:1488
msgid "exec"
msgstr "exec"
@@ -14901,32 +14956,32 @@ msgstr "Tillgängliga strategier är:"
msgid "Available custom strategies are:"
msgstr "Tillgängliga skräddarsydda strategier är:"
-#: builtin/merge.c:244 builtin/pull.c:151
+#: builtin/merge.c:244 builtin/pull.c:152
msgid "do not show a diffstat at the end of the merge"
msgstr "visa inte en diffstat när sammanslagningen är färdig"
-#: builtin/merge.c:247 builtin/pull.c:154
+#: builtin/merge.c:247 builtin/pull.c:155
msgid "show a diffstat at the end of the merge"
msgstr "visa en diffstat när sammanslagningen är färdig"
-#: builtin/merge.c:248 builtin/pull.c:157
+#: builtin/merge.c:248 builtin/pull.c:158
msgid "(synonym to --stat)"
msgstr "(synonym till --stat)"
-#: builtin/merge.c:250 builtin/pull.c:160
+#: builtin/merge.c:250 builtin/pull.c:161
msgid "add (at most <n>) entries from shortlog to merge commit message"
msgstr ""
"lägg till (som mest <n>) poster från shortlog till incheckningsmeddelandet"
-#: builtin/merge.c:253 builtin/pull.c:166
+#: builtin/merge.c:253 builtin/pull.c:167
msgid "create a single commit instead of doing a merge"
msgstr "skapa en ensam incheckning istället för en sammanslagning"
-#: builtin/merge.c:255 builtin/pull.c:169
+#: builtin/merge.c:255 builtin/pull.c:170
msgid "perform a commit if the merge succeeds (default)"
msgstr "utför en incheckning om sammanslagningen lyckades (standard)"
-#: builtin/merge.c:257 builtin/pull.c:172
+#: builtin/merge.c:257 builtin/pull.c:173
msgid "edit message before committing"
msgstr "redigera meddelande innan incheckning"
@@ -14934,28 +14989,28 @@ msgstr "redigera meddelande innan incheckning"
msgid "allow fast-forward (default)"
msgstr "tillåt snabbspolning (standard)"
-#: builtin/merge.c:261 builtin/pull.c:179
+#: builtin/merge.c:261 builtin/pull.c:180
msgid "abort if fast-forward is not possible"
msgstr "avbryt om snabbspolning inte är möjlig"
-#: builtin/merge.c:265 builtin/pull.c:182
+#: builtin/merge.c:265 builtin/pull.c:183
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:266 builtin/notes.c:787 builtin/pull.c:186
-#: builtin/rebase.c:492 builtin/rebase.c:1477 builtin/revert.c:114
+#: builtin/merge.c:266 builtin/notes.c:787 builtin/pull.c:187
+#: builtin/rebase.c:493 builtin/rebase.c:1501 builtin/revert.c:114
msgid "strategy"
msgstr "strategi"
-#: builtin/merge.c:267 builtin/pull.c:187
+#: builtin/merge.c:267 builtin/pull.c:188
msgid "merge strategy to use"
msgstr "sammanslagningsstrategi att använda"
-#: builtin/merge.c:268 builtin/pull.c:190
+#: builtin/merge.c:268 builtin/pull.c:191
msgid "option=value"
msgstr "alternativ=värde"
-#: builtin/merge.c:269 builtin/pull.c:191
+#: builtin/merge.c:269 builtin/pull.c:192
msgid "option for selected merge strategy"
msgstr "alternativ för vald sammanslagningsstrategi"
@@ -14975,13 +15030,13 @@ msgstr "--abort men lämna index och arbetskatalog ensamma"
msgid "continue the current in-progress merge"
msgstr "fortsätt den pågående sammanslagningen"
-#: builtin/merge.c:284 builtin/pull.c:198
+#: builtin/merge.c:284 builtin/pull.c:199
msgid "allow merging unrelated histories"
msgstr "tillåt sammanslagning av orelaterade historier"
#: builtin/merge.c:290
-msgid "verify commit-msg hook"
-msgstr "bekräfta commit-msg-krok"
+msgid "bypass pre-merge-commit and commit-msg hooks"
+msgstr "förbigå pre-merge-commit- och commit-msg-krokar"
#: builtin/merge.c:307
msgid "could not run stash."
@@ -15024,33 +15079,33 @@ msgstr "\"%s\" verkar inte peka på en incheckning"
msgid "Bad branch.%s.mergeoptions string: %s"
msgstr "Felaktig branch.%s.mergeoptions-sträng: %s"
-#: builtin/merge.c:708
+#: builtin/merge.c:705
msgid "Not handling anything other than two heads merge."
msgstr "Hanterar inte något annat än en sammanslagning av två huvuden."
-#: builtin/merge.c:722
+#: builtin/merge.c:719
#, c-format
msgid "Unknown option for merge-recursive: -X%s"
msgstr "Felaktig flagga för merge-recursive: -X%s"
-#: builtin/merge.c:737
+#: builtin/merge.c:734
#, c-format
msgid "unable to write %s"
msgstr "kunde inte skriva %s"
-#: builtin/merge.c:789
+#: builtin/merge.c:786
#, c-format
msgid "Could not read from '%s'"
msgstr "Kunde inte läsa från \"%s\""
-#: builtin/merge.c:798
+#: builtin/merge.c:795
#, c-format
msgid "Not committing merge; use 'git commit' to complete the merge.\n"
msgstr ""
"Checkar inte in sammanslagningen; använd \"git commit\" för att slutföra "
"den.\n"
-#: builtin/merge.c:804
+#: builtin/merge.c:801
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"
@@ -15061,11 +15116,11 @@ msgstr ""
"temagren.\n"
"\n"
-#: builtin/merge.c:809
+#: builtin/merge.c:806
msgid "An empty message aborts the commit.\n"
msgstr "Ett tomt meddelande avbryter incheckningen.\n"
-#: builtin/merge.c:812
+#: builtin/merge.c:809
#, c-format
msgid ""
"Lines starting with '%c' will be ignored, and an empty message aborts\n"
@@ -15074,73 +15129,73 @@ msgstr ""
"Rader som inleds med \"%c\" kommer ignoreras, och ett tomt meddelande\n"
"avbryter incheckningen.\n"
-#: builtin/merge.c:853
+#: builtin/merge.c:862
msgid "Empty commit message."
msgstr "Tomt incheckningsmeddelande."
-#: builtin/merge.c:872
+#: builtin/merge.c:877
#, c-format
msgid "Wonderful.\n"
msgstr "Underbart.\n"
-#: builtin/merge.c:933
+#: builtin/merge.c:938
#, 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:972
+#: builtin/merge.c:977
msgid "No current branch."
msgstr "Inte på någon gren."
-#: builtin/merge.c:974
+#: builtin/merge.c:979
msgid "No remote for the current branch."
msgstr "Ingen fjärr för aktuell gren."
-#: builtin/merge.c:976
+#: builtin/merge.c:981
msgid "No default upstream defined for the current branch."
msgstr "Ingen standarduppström angiven för aktuell gren."
-#: builtin/merge.c:981
+#: builtin/merge.c:986
#, 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:1038
+#: builtin/merge.c:1043
#, c-format
msgid "Bad value '%s' in environment '%s'"
msgstr "Felaktigt värde \"%s\" i miljövariabeln \"%s\""
-#: builtin/merge.c:1141
+#: builtin/merge.c:1146
#, 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:1175
+#: builtin/merge.c:1180
msgid "not something we can merge"
msgstr "inte något vi kan slå ihop"
-#: builtin/merge.c:1278
+#: builtin/merge.c:1283
msgid "--abort expects no arguments"
msgstr "--abort tar inga argument"
-#: builtin/merge.c:1282
+#: builtin/merge.c:1287
msgid "There is no merge to abort (MERGE_HEAD missing)."
msgstr "Ingen sammanslagning att avbryta (MERGE_HEAD saknas)."
-#: builtin/merge.c:1291
+#: builtin/merge.c:1296
msgid "--quit expects no arguments"
msgstr "--quit tar inga argument"
-#: builtin/merge.c:1304
+#: builtin/merge.c:1309
msgid "--continue expects no arguments"
msgstr "--continue tar inga argument"
-#: builtin/merge.c:1308
+#: builtin/merge.c:1313
msgid "There is no merge in progress (MERGE_HEAD missing)."
msgstr "Ingen sammanslagning pågår (MERGE_HEAD saknas)."
-#: builtin/merge.c:1324
+#: builtin/merge.c:1329
msgid ""
"You have not concluded your merge (MERGE_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -15148,7 +15203,7 @@ msgstr ""
"Du har inte avslutat sammanslagningen (MERGE_HEAD finns).\n"
"Checka in dina ändringar innan du slår ihop."
-#: builtin/merge.c:1331
+#: builtin/merge.c:1336
msgid ""
"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -15156,96 +15211,96 @@ 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:1334
+#: builtin/merge.c:1339
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:1348
+#: builtin/merge.c:1353
msgid "You cannot combine --squash with --no-ff."
msgstr "Du kan inte kombinera --squash med --no-ff."
-#: builtin/merge.c:1350
+#: builtin/merge.c:1355
msgid "You cannot combine --squash with --commit."
msgstr "Du kan inte kombinera --squash med --commit."
-#: builtin/merge.c:1366
+#: builtin/merge.c:1371
msgid "No commit specified and merge.defaultToUpstream not set."
msgstr "Ingen incheckning angiven och merge.defaultToUpstream är ej satt."
-#: builtin/merge.c:1383
+#: builtin/merge.c:1388
msgid "Squash commit into empty head not supported yet"
msgstr "Stöder inte en tillplattningsincheckning på ett tomt huvud ännu"
-#: builtin/merge.c:1385
+#: builtin/merge.c:1390
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:1390
+#: builtin/merge.c:1395
#, c-format
msgid "%s - not something we can merge"
msgstr "%s - inte något vi kan slå ihop"
-#: builtin/merge.c:1392
+#: builtin/merge.c:1397
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:1471
+#: builtin/merge.c:1476
msgid "refusing to merge unrelated histories"
msgstr "vägrar slå samman orelaterad historik"
-#: builtin/merge.c:1480
+#: builtin/merge.c:1485
msgid "Already up to date."
msgstr "Redan à jour."
-#: builtin/merge.c:1490
+#: builtin/merge.c:1495
#, c-format
msgid "Updating %s..%s\n"
msgstr "Uppdaterar %s..%s\n"
-#: builtin/merge.c:1532
+#: builtin/merge.c:1537
#, c-format
msgid "Trying really trivial in-index merge...\n"
msgstr "Försöker riktigt enkel sammanslagning i indexet...\n"
-#: builtin/merge.c:1539
+#: builtin/merge.c:1544
#, c-format
msgid "Nope.\n"
msgstr "Nej.\n"
-#: builtin/merge.c:1564
+#: builtin/merge.c:1569
msgid "Already up to date. Yeeah!"
msgstr "Redan à jour. Toppen!"
-#: builtin/merge.c:1570
+#: builtin/merge.c:1575
msgid "Not possible to fast-forward, aborting."
msgstr "Kan inte snabbspola, avbryter."
-#: builtin/merge.c:1593 builtin/merge.c:1658
+#: builtin/merge.c:1598 builtin/merge.c:1663
#, c-format
msgid "Rewinding the tree to pristine...\n"
msgstr "Återspolar trädet till orört...\n"
-#: builtin/merge.c:1597
+#: builtin/merge.c:1602
#, c-format
msgid "Trying merge strategy %s...\n"
msgstr "Försöker sammanslagningsstrategin %s...\n"
-#: builtin/merge.c:1649
+#: builtin/merge.c:1654
#, c-format
msgid "No merge strategy handled the merge.\n"
msgstr "Ingen sammanslagningsstrategi hanterade sammanslagningen.\n"
-#: builtin/merge.c:1651
+#: builtin/merge.c:1656
#, c-format
msgid "Merge with strategy %s failed.\n"
msgstr "Sammanslagning med strategin %s misslyckades.\n"
-#: builtin/merge.c:1660
+#: builtin/merge.c:1665
#, c-format
msgid "Using the %s to prepare resolving by hand.\n"
msgstr "Använder %s för att förbereda lösning för hand.\n"
-#: builtin/merge.c:1672
+#: builtin/merge.c:1677
#, c-format
msgid "Automatic merge went well; stopped before committing as requested\n"
msgstr ""
@@ -15331,33 +15386,33 @@ msgstr "varna inte om konflikter"
msgid "set labels for file1/orig-file/file2"
msgstr "sätt etiketter för fil1/origfil/fil2"
-#: builtin/merge-recursive.c:46
+#: builtin/merge-recursive.c:47
#, c-format
msgid "unknown option %s"
msgstr "okänd flagga %s"
-#: builtin/merge-recursive.c:52
+#: builtin/merge-recursive.c:53
#, c-format
msgid "could not parse object '%s'"
msgstr "kunde inte tolka objektet \"%s\""
-#: builtin/merge-recursive.c:56
+#: builtin/merge-recursive.c:57
#, c-format
msgid "cannot handle more than %d base. Ignoring %s."
msgid_plural "cannot handle more than %d bases. Ignoring %s."
msgstr[0] "kan inte hantera mer än %d bas. Ignorerar %s."
msgstr[1] "kan inte hantera mer än %d baser. Ignorerar %s."
-#: builtin/merge-recursive.c:64
+#: builtin/merge-recursive.c:65
msgid "not handling anything other than two heads merge."
msgstr "hanterar inte något annat än en sammanslagning av två huvuden."
-#: builtin/merge-recursive.c:70 builtin/merge-recursive.c:72
+#: builtin/merge-recursive.c:74 builtin/merge-recursive.c:76
#, c-format
msgid "could not resolve ref '%s'"
msgstr "kunde inte bestämma referensen \"%s\""
-#: builtin/merge-recursive.c:78
+#: builtin/merge-recursive.c:82
#, c-format
msgid "Merging %s with %s\n"
msgstr "Slår ihop %s med %s\n"
@@ -15499,52 +15554,52 @@ 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:277 builtin/remote.c:717 builtin/repack.c:520
+#: builtin/mv.c:277 builtin/remote.c:717 builtin/repack.c:511
#, c-format
msgid "renaming '%s' failed"
msgstr "misslyckades byta namn på \"%s\""
-#: builtin/name-rev.c:352
+#: builtin/name-rev.c:356
msgid "git name-rev [<options>] <commit>..."
msgstr "git name-rev [<flaggor>] <incheckning>..."
-#: builtin/name-rev.c:353
+#: builtin/name-rev.c:357
msgid "git name-rev [<options>] --all"
msgstr "git name-rev [<flaggor>] --all"
-#: builtin/name-rev.c:354
+#: builtin/name-rev.c:358
msgid "git name-rev [<options>] --stdin"
msgstr "git name-rev [<flaggor>] --stdin"
-#: builtin/name-rev.c:411
+#: builtin/name-rev.c:415
msgid "print only names (no SHA-1)"
msgstr "skriv endast namn (ingen SHA-1)"
-#: builtin/name-rev.c:412
+#: builtin/name-rev.c:416
msgid "only use tags to name the commits"
msgstr "använd endast taggar för att namnge incheckningar"
-#: builtin/name-rev.c:414
+#: builtin/name-rev.c:418
msgid "only use refs matching <pattern>"
msgstr "använd endast referenser som motsvarar <mönster>"
-#: builtin/name-rev.c:416
+#: builtin/name-rev.c:420
msgid "ignore refs matching <pattern>"
msgstr "ignorera referenser som motsvarar <mönster>"
-#: builtin/name-rev.c:418
+#: builtin/name-rev.c:422
msgid "list all commits reachable from all refs"
msgstr "lista alla incheckningar som kan nås alla referenser"
-#: builtin/name-rev.c:419
+#: builtin/name-rev.c:423
msgid "read from stdin"
msgstr "läs från standard in"
-#: builtin/name-rev.c:420
+#: builtin/name-rev.c:424
msgid "allow to print `undefined` names (default)"
msgstr "tillåt att skriva \"odefinierade\" namn (standard)"
-#: builtin/name-rev.c:426
+#: builtin/name-rev.c:430
msgid "dereference tags in the input (internal use)"
msgstr "avreferera taggar i indata (används internt)"
@@ -15943,7 +15998,7 @@ msgstr "försök att ta bort icke-existerande anteckningar är inte ett fel"
msgid "read object names from the standard input"
msgstr "läs objektnamn från standard in"
-#: builtin/notes.c:954 builtin/prune.c:130 builtin/worktree.c:165
+#: builtin/notes.c:954 builtin/prune.c:130 builtin/worktree.c:164
msgid "do not remove, show only"
msgstr "ta inte bort, bara visa"
@@ -15959,7 +16014,7 @@ msgstr "anteckningar-ref"
msgid "use notes from <notes-ref>"
msgstr "använd anteckningar från <anteckningsref>"
-#: builtin/notes.c:1034 builtin/stash.c:1598
+#: builtin/notes.c:1034 builtin/stash.c:1607
#, c-format
msgid "unknown subcommand: %s"
msgstr "okänt underkommando: %s"
@@ -15976,125 +16031,125 @@ msgid ""
msgstr ""
"git pack-objects [<flaggor>...] <basnamn> [< <reflista> | < <objektlista>]"
-#: builtin/pack-objects.c:424
+#: builtin/pack-objects.c:428
#, c-format
msgid "bad packed object CRC for %s"
msgstr "felaktig CRC för packat objekt %s"
-#: builtin/pack-objects.c:435
+#: builtin/pack-objects.c:439
#, c-format
msgid "corrupt packed object for %s"
msgstr "trasigt packat objekt för %s"
-#: builtin/pack-objects.c:566
+#: builtin/pack-objects.c:570
#, c-format
msgid "recursive delta detected for object %s"
msgstr "rekursivt delta upptäcktes för objektet %s"
-#: builtin/pack-objects.c:777
+#: builtin/pack-objects.c:781
#, c-format
msgid "ordered %u objects, expected %<PRIu32>"
msgstr "ordnade %u objekt, förväntade %<PRIu32>"
-#: builtin/pack-objects.c:790
+#: builtin/pack-objects.c:794
#, c-format
msgid "packfile is invalid: %s"
msgstr "packfil är ogiltig: %s"
-#: builtin/pack-objects.c:794
+#: builtin/pack-objects.c:798
#, c-format
msgid "unable to open packfile for reuse: %s"
msgstr "kan inte öppna packfil för återanvändning: %s"
-#: builtin/pack-objects.c:798
+#: builtin/pack-objects.c:802
msgid "unable to seek in reused packfile"
msgstr "kan inte söka i återanvänd packfil"
-#: builtin/pack-objects.c:809
+#: builtin/pack-objects.c:813
msgid "unable to read from reused packfile"
msgstr "kan inte läsa från återanvänd packfil"
-#: builtin/pack-objects.c:837
+#: builtin/pack-objects.c:841
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:850
+#: builtin/pack-objects.c:854
msgid "Writing objects"
msgstr "Skriver objekt"
-#: builtin/pack-objects.c:912 builtin/update-index.c:89
+#: builtin/pack-objects.c:917 builtin/update-index.c:89
#, c-format
msgid "failed to stat %s"
msgstr "misslyckades ta status på %s"
-#: builtin/pack-objects.c:965
+#: builtin/pack-objects.c:970
#, c-format
msgid "wrote %<PRIu32> objects while expecting %<PRIu32>"
msgstr "skrev %<PRIu32> objekt medan %<PRIu32> förväntades"
-#: builtin/pack-objects.c:1161
+#: builtin/pack-objects.c:1164
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:1591
+#: builtin/pack-objects.c:1592
#, 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:1600
+#: builtin/pack-objects.c:1601
#, 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:1869
+#: builtin/pack-objects.c:1870
msgid "Counting objects"
msgstr "Räknar objekt"
-#: builtin/pack-objects.c:1999
+#: builtin/pack-objects.c:2000
#, c-format
msgid "unable to get size of %s"
msgstr "kan inte hämta storlek på %s"
-#: builtin/pack-objects.c:2014
+#: builtin/pack-objects.c:2015
#, c-format
msgid "unable to parse object header of %s"
msgstr "kunde inte tolka objekthuvud för %s"
-#: builtin/pack-objects.c:2084 builtin/pack-objects.c:2100
-#: builtin/pack-objects.c:2110
+#: builtin/pack-objects.c:2085 builtin/pack-objects.c:2101
+#: builtin/pack-objects.c:2111
#, c-format
msgid "object %s cannot be read"
msgstr "objektet %s kunde inte läsas"
-#: builtin/pack-objects.c:2087 builtin/pack-objects.c:2114
+#: builtin/pack-objects.c:2088 builtin/pack-objects.c:2115
#, 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:2124
+#: builtin/pack-objects.c:2125
msgid "suboptimal pack - out of memory"
msgstr "icke-optimalt pack - minnet slut"
-#: builtin/pack-objects.c:2450
+#: builtin/pack-objects.c:2440
#, c-format
msgid "Delta compression using up to %d threads"
msgstr "Deltakomprimering använder upp till %d trådar"
-#: builtin/pack-objects.c:2582
+#: builtin/pack-objects.c:2572
#, 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:2669
+#: builtin/pack-objects.c:2659
msgid "Compressing objects"
msgstr "Komprimerar objekt"
-#: builtin/pack-objects.c:2675
+#: builtin/pack-objects.c:2665
msgid "inconsistency with delta count"
msgstr "deltaräknaren är inkonsekvent"
-#: builtin/pack-objects.c:2756
+#: builtin/pack-objects.c:2742
#, c-format
msgid ""
"expected edge object ID, got garbage:\n"
@@ -16103,7 +16158,7 @@ msgstr ""
"förväntade kant-objekt-id, fick skräp:\n"
" %s"
-#: builtin/pack-objects.c:2762
+#: builtin/pack-objects.c:2748
#, c-format
msgid ""
"expected object ID, got garbage:\n"
@@ -16112,239 +16167,243 @@ msgstr ""
"förväntade objekt-id, fick skräp:\n"
" %s"
-#: builtin/pack-objects.c:2860
+#: builtin/pack-objects.c:2846
msgid "invalid value for --missing"
msgstr "ogiltigt värde för --missing"
-#: builtin/pack-objects.c:2919 builtin/pack-objects.c:3027
+#: builtin/pack-objects.c:2905 builtin/pack-objects.c:3013
msgid "cannot open pack index"
msgstr "kan inte öppna paketfilen"
-#: builtin/pack-objects.c:2950
+#: builtin/pack-objects.c:2936
#, 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:3035
+#: builtin/pack-objects.c:3021
msgid "unable to force loose object"
msgstr "kan inte tvinga lösa objekt"
-#: builtin/pack-objects.c:3127
+#: builtin/pack-objects.c:3113
#, c-format
msgid "not a rev '%s'"
msgstr "inte en referens \"%s\""
-#: builtin/pack-objects.c:3130
+#: builtin/pack-objects.c:3116
#, c-format
msgid "bad revision '%s'"
msgstr "felaktig revision \"%s\""
-#: builtin/pack-objects.c:3155
+#: builtin/pack-objects.c:3141
msgid "unable to add recent objects"
msgstr "kan inte lägga till nya objekt"
-#: builtin/pack-objects.c:3208
+#: builtin/pack-objects.c:3194
#, c-format
msgid "unsupported index version %s"
msgstr "indexversionen %s stöds ej"
-#: builtin/pack-objects.c:3212
+#: builtin/pack-objects.c:3198
#, c-format
msgid "bad index version '%s'"
msgstr "felaktig indexversion \"%s\""
-#: builtin/pack-objects.c:3242
+#: builtin/pack-objects.c:3228
msgid "do not show progress meter"
msgstr "visa inte förloppsindikator"
-#: builtin/pack-objects.c:3244
+#: builtin/pack-objects.c:3230
msgid "show progress meter"
msgstr "visa förloppsindikator"
-#: builtin/pack-objects.c:3246
+#: builtin/pack-objects.c:3232
msgid "show progress meter during object writing phase"
msgstr "visa förloppsindikator under objektskrivningsfasen"
-#: builtin/pack-objects.c:3249
+#: builtin/pack-objects.c:3235
msgid "similar to --all-progress when progress meter is shown"
msgstr "som --all-progress när förloppsindikatorn visas"
-#: builtin/pack-objects.c:3250
+#: builtin/pack-objects.c:3236
msgid "<version>[,<offset>]"
msgstr "<version>[,<offset>]"
-#: builtin/pack-objects.c:3251
+#: builtin/pack-objects.c:3237
msgid "write the pack index file in the specified idx format version"
msgstr "skriv paketindexfilen i angiven indexformatversion"
-#: builtin/pack-objects.c:3254
+#: builtin/pack-objects.c:3240
msgid "maximum size of each output pack file"
msgstr "maximal storlek på varje utdatapaketfil"
-#: builtin/pack-objects.c:3256
+#: builtin/pack-objects.c:3242
msgid "ignore borrowed objects from alternate object store"
msgstr "ignorera lånade objekt från alternativa objektlager"
-#: builtin/pack-objects.c:3258
+#: builtin/pack-objects.c:3244
msgid "ignore packed objects"
msgstr "ignorera packade objekt"
-#: builtin/pack-objects.c:3260
+#: builtin/pack-objects.c:3246
msgid "limit pack window by objects"
msgstr "begränsa paketfönster efter objekt"
-#: builtin/pack-objects.c:3262
+#: builtin/pack-objects.c:3248
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:3264
+#: builtin/pack-objects.c:3250
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:3266
+#: builtin/pack-objects.c:3252
msgid "reuse existing deltas"
msgstr "återanvänd befintliga delta"
-#: builtin/pack-objects.c:3268
+#: builtin/pack-objects.c:3254
msgid "reuse existing objects"
msgstr "återanvänd befintliga objekt"
-#: builtin/pack-objects.c:3270
+#: builtin/pack-objects.c:3256
msgid "use OFS_DELTA objects"
msgstr "använd OFS_DELTA-objekt"
-#: builtin/pack-objects.c:3272
+#: builtin/pack-objects.c:3258
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:3274
+#: builtin/pack-objects.c:3260
msgid "do not create an empty pack output"
msgstr "försök inte skapa tom paketutdata"
-#: builtin/pack-objects.c:3276
+#: builtin/pack-objects.c:3262
msgid "read revision arguments from standard input"
msgstr "läs revisionsargument från standard in"
-#: builtin/pack-objects.c:3278
+#: builtin/pack-objects.c:3264
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:3281
+#: builtin/pack-objects.c:3267
msgid "include objects reachable from any reference"
msgstr "inkludera objekt som kan nås från någon referens"
-#: builtin/pack-objects.c:3284
+#: builtin/pack-objects.c:3270
msgid "include objects referred by reflog entries"
msgstr "inkludera objekt som refereras från referensloggposter"
-#: builtin/pack-objects.c:3287
+#: builtin/pack-objects.c:3273
msgid "include objects referred to by the index"
msgstr "inkludera objekt som refereras från indexet"
-#: builtin/pack-objects.c:3290
+#: builtin/pack-objects.c:3276
msgid "output pack to stdout"
msgstr "skriv paket på standard ut"
-#: builtin/pack-objects.c:3292
+#: builtin/pack-objects.c:3278
msgid "include tag objects that refer to objects to be packed"
msgstr "inkludera taggobjekt som refererar objekt som skall packas"
-#: builtin/pack-objects.c:3294
+#: builtin/pack-objects.c:3280
msgid "keep unreachable objects"
msgstr "behåll onåbara objekt"
-#: builtin/pack-objects.c:3296
+#: builtin/pack-objects.c:3282
msgid "pack loose unreachable objects"
msgstr "packa lösa onåbara objekt"
-#: builtin/pack-objects.c:3298
+#: builtin/pack-objects.c:3284
msgid "unpack unreachable objects newer than <time>"
msgstr "packa upp onåbara objekt nyare än <tid>"
-#: builtin/pack-objects.c:3301
+#: builtin/pack-objects.c:3287
msgid "use the sparse reachability algorithm"
msgstr "använd gles-nåbarhetsalgoritmen"
-#: builtin/pack-objects.c:3303
+#: builtin/pack-objects.c:3289
msgid "create thin packs"
msgstr "skapa tunna paket"
-#: builtin/pack-objects.c:3305
+#: builtin/pack-objects.c:3291
msgid "create packs suitable for shallow fetches"
msgstr "skapa packfiler lämpade för grunda hämtningar"
-#: builtin/pack-objects.c:3307
+#: builtin/pack-objects.c:3293
msgid "ignore packs that have companion .keep file"
msgstr "ignorera paket som har tillhörande .keep-fil"
-#: builtin/pack-objects.c:3309
+#: builtin/pack-objects.c:3295
msgid "ignore this pack"
msgstr "ignorera detta paket"
-#: builtin/pack-objects.c:3311
+#: builtin/pack-objects.c:3297
msgid "pack compression level"
msgstr "komprimeringsgrad för paket"
-#: builtin/pack-objects.c:3313
+#: builtin/pack-objects.c:3299
msgid "do not hide commits by grafts"
msgstr "göm inte incheckningar med ympningar (\"grafts\")"
-#: builtin/pack-objects.c:3315
+#: builtin/pack-objects.c:3301
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:3317
+#: builtin/pack-objects.c:3303
msgid "write a bitmap index together with the pack index"
msgstr "använd bitkartindex tillsammans med packindexet"
-#: builtin/pack-objects.c:3320
+#: builtin/pack-objects.c:3307
+msgid "write a bitmap index if possible"
+msgstr "skriv bitkartindex om möjligt"
+
+#: builtin/pack-objects.c:3311
msgid "handling for missing objects"
msgstr "hantering av saknade objekt"
-#: builtin/pack-objects.c:3323
+#: builtin/pack-objects.c:3314
msgid "do not pack objects in promisor packfiles"
msgstr "packa inte objekt i kontraktspackfiler"
-#: builtin/pack-objects.c:3325
+#: builtin/pack-objects.c:3316
msgid "respect islands during delta compression"
msgstr "respektera öar under deltakomprimering"
-#: builtin/pack-objects.c:3350
+#: builtin/pack-objects.c:3345
#, 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:3355
+#: builtin/pack-objects.c:3350
#, 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:3409
+#: builtin/pack-objects.c:3404
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 skall överföras"
-#: builtin/pack-objects.c:3411
+#: builtin/pack-objects.c:3406
msgid "minimum pack size limit is 1 MiB"
msgstr "minsta packstorlek är 1 MiB"
-#: builtin/pack-objects.c:3416
+#: builtin/pack-objects.c:3411
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:3419
+#: builtin/pack-objects.c:3414
msgid "--keep-unreachable and --unpack-unreachable are incompatible"
msgstr "--keep-unreachable och -unpack-unreachable kan inte användas samtidigt"
-#: builtin/pack-objects.c:3425
+#: builtin/pack-objects.c:3420
msgid "cannot use --filter without --stdout"
msgstr "kan inte använda --filter utan --stdout"
-#: builtin/pack-objects.c:3486
+#: builtin/pack-objects.c:3481
msgid "Enumerating objects"
msgstr "Räknar upp objekt"
-#: builtin/pack-objects.c:3516
+#: builtin/pack-objects.c:3511
#, c-format
msgid "Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>)"
msgstr ""
@@ -16399,44 +16458,44 @@ msgstr "Felaktigt värde för %s: %s"
msgid "git pull [<options>] [<repository> [<refspec>...]]"
msgstr "git pull [<flaggor>] [<arkiv> [<refspec>...]]"
-#: builtin/pull.c:141
+#: builtin/pull.c:142
msgid "control for recursive fetching of submodules"
msgstr "styrning för rekursiv hämtning av undermoduler"
-#: builtin/pull.c:145
+#: builtin/pull.c:146
msgid "Options related to merging"
msgstr "Alternativ gällande sammanslagning"
-#: builtin/pull.c:148
+#: builtin/pull.c:149
msgid "incorporate changes by rebasing rather than merging"
msgstr "inlemma ändringar genom ombasering i stället för sammanslagning"
-#: builtin/pull.c:176 builtin/rebase.c:447 builtin/revert.c:126
+#: builtin/pull.c:177 builtin/rebase.c:448 builtin/revert.c:126
msgid "allow fast-forward"
msgstr "tillåt snabbspolning"
-#: builtin/pull.c:185
+#: builtin/pull.c:186
msgid "automatically stash/stash pop before and after rebase"
msgstr "utför automatiskt stash/stash pop före och efter ombasering"
-#: builtin/pull.c:201
+#: builtin/pull.c:202
msgid "Options related to fetching"
msgstr "Alternativ gällande hämtningar"
-#: builtin/pull.c:211
+#: builtin/pull.c:212
msgid "force overwrite of local branch"
msgstr "tvinga överskrivning av lokal gren"
-#: builtin/pull.c:219
+#: builtin/pull.c:220
msgid "number of submodules pulled in parallel"
msgstr "antal undermoduler som hämtas parallellt"
-#: builtin/pull.c:316
+#: builtin/pull.c:320
#, c-format
msgid "Invalid value for pull.ff: %s"
msgstr "Felaktigt värde för pull.ff: %s"
-#: builtin/pull.c:433
+#: builtin/pull.c:437
msgid ""
"There is no candidate for rebasing against among the refs that you just "
"fetched."
@@ -16444,14 +16503,14 @@ msgstr ""
"Det finns ingen kandidat för ombasering bland referenserna du precis har "
"hämtat."
-#: builtin/pull.c:435
+#: builtin/pull.c:439
msgid ""
"There are no candidates for merging among the refs that you just fetched."
msgstr ""
"Det finns ingen kandidat för sammanslagning bland referenserna du precis har "
"hämtat."
-#: builtin/pull.c:436
+#: builtin/pull.c:440
msgid ""
"Generally this means that you provided a wildcard refspec which had no\n"
"matches on the remote end."
@@ -16459,7 +16518,7 @@ msgstr ""
"Det betyder vanligtvis att du använt en jokertecken-refspec som inte\n"
"motsvarade något i fjärränden."
-#: builtin/pull.c:439
+#: builtin/pull.c:443
#, c-format
msgid ""
"You asked to pull from the remote '%s', but did not specify\n"
@@ -16470,42 +16529,42 @@ 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:444 builtin/rebase.c:1326 git-parse-remote.sh:73
+#: builtin/pull.c:448 builtin/rebase.c:1347 git-parse-remote.sh:73
msgid "You are not currently on a branch."
msgstr "Du är inte på någon gren för närvarande."
-#: builtin/pull.c:446 builtin/pull.c:461 git-parse-remote.sh:79
+#: builtin/pull.c:450 builtin/pull.c:465 git-parse-remote.sh:79
msgid "Please specify which branch you want to rebase against."
msgstr "Ange vilken gren du vill ombasera mot."
-#: builtin/pull.c:448 builtin/pull.c:463 git-parse-remote.sh:82
+#: builtin/pull.c:452 builtin/pull.c:467 git-parse-remote.sh:82
msgid "Please specify which branch you want to merge with."
msgstr "Ange vilken gren du vill slå samman med."
-#: builtin/pull.c:449 builtin/pull.c:464
+#: builtin/pull.c:453 builtin/pull.c:468
msgid "See git-pull(1) for details."
msgstr "Se git-pull(1) för detaljer."
-#: builtin/pull.c:451 builtin/pull.c:457 builtin/pull.c:466
-#: builtin/rebase.c:1332 git-parse-remote.sh:64
+#: builtin/pull.c:455 builtin/pull.c:461 builtin/pull.c:470
+#: builtin/rebase.c:1353 git-parse-remote.sh:64
msgid "<remote>"
msgstr "<fjärr>"
-#: builtin/pull.c:451 builtin/pull.c:466 builtin/pull.c:471
+#: builtin/pull.c:455 builtin/pull.c:470 builtin/pull.c:475
#: git-parse-remote.sh:65
msgid "<branch>"
msgstr "<gren>"
-#: builtin/pull.c:459 builtin/rebase.c:1324 git-parse-remote.sh:75
+#: builtin/pull.c:463 builtin/rebase.c:1345 git-parse-remote.sh:75
msgid "There is no tracking information for the current branch."
msgstr "Det finns ingen spårningsinformation för aktuell gren."
-#: builtin/pull.c:468 git-parse-remote.sh:95
+#: builtin/pull.c:472 git-parse-remote.sh:95
msgid ""
"If you wish to set tracking information for this branch you can do so with:"
msgstr "Om du vill ange spårningsinformation för grenen kan du göra det med:"
-#: builtin/pull.c:473
+#: builtin/pull.c:477
#, c-format
msgid ""
"Your configuration specifies to merge with the ref '%s'\n"
@@ -16514,32 +16573,32 @@ msgstr ""
"Dina inställningar anger sammanslagning med referensen \"%s\"\n"
"från fjärren, men någon sådan referens togs inte emot."
-#: builtin/pull.c:581
+#: builtin/pull.c:587
#, c-format
msgid "unable to access commit %s"
msgstr "kunde inte komma åt incheckningen %s"
-#: builtin/pull.c:861
+#: builtin/pull.c:867
msgid "ignoring --verify-signatures for rebase"
msgstr "ignorera --verify-signatures för ombasering"
-#: builtin/pull.c:916
+#: builtin/pull.c:922
msgid "--[no-]autostash option is only valid with --rebase."
msgstr "--[no-]autostash är endast giltig med --rebase."
-#: builtin/pull.c:924
+#: builtin/pull.c:930
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:928
+#: builtin/pull.c:934
msgid "pull with rebase"
msgstr "pull med ombasering"
-#: builtin/pull.c:929
+#: builtin/pull.c:935
msgid "please commit or stash them."
msgstr "checka in eller använd \"stash\" på dem."
-#: builtin/pull.c:954
+#: builtin/pull.c:960
#, c-format
msgid ""
"fetch updated the current branch head.\n"
@@ -16550,7 +16609,7 @@ msgstr ""
"snabbspolar din arbetskatalog från\n"
"incheckningen %s."
-#: builtin/pull.c:960
+#: builtin/pull.c:966
#, c-format
msgid ""
"Cannot fast-forward your working tree.\n"
@@ -16567,15 +16626,15 @@ msgstr ""
"$ git reset --hard\n"
"för att återgå."
-#: builtin/pull.c:975
+#: builtin/pull.c:981
msgid "Cannot merge multiple branches into empty head."
msgstr "Kan inte slå ihop flera grenar i ett tomt huvud."
-#: builtin/pull.c:979
+#: builtin/pull.c:985
msgid "Cannot rebase onto multiple branches."
msgstr "Kan inte ombasera ovanpå flera grenar."
-#: builtin/pull.c:986
+#: builtin/pull.c:992
msgid "cannot rebase with locally recorded submodule modifications"
msgstr "kan inte ombasera med lokalt lagrade ändringar i undermoful"
@@ -16734,135 +16793,135 @@ msgstr ""
msgid "Pushing to %s\n"
msgstr "Sänder till %s\n"
-#: builtin/push.c:364
+#: builtin/push.c:366
#, c-format
msgid "failed to push some refs to '%s'"
msgstr "misslyckades sända vissa referenser till \"%s\""
-#: builtin/push.c:398
-#, c-format
-msgid "bad repository '%s'"
-msgstr "felaktigt arkiv \"%s\""
-
-#: builtin/push.c:399
-msgid ""
-"No configured push destination.\n"
-"Either specify the URL from the command-line or configure a remote "
-"repository using\n"
-"\n"
-" git remote add <name> <url>\n"
-"\n"
-"and then push using the remote name\n"
-"\n"
-" git push <name>\n"
-msgstr ""
-"Ingen destination har angivits.\n"
-"Ange antingen URL:en på kommandoraden eller ställ in ett uppströmsarkiv med\n"
-"\n"
-" git remote add <namn> <url>\n"
-"\n"
-"och sänd sedan med hjälp av fjärrnamnet\n"
-"\n"
-" git push <namn>\n"
-
-#: builtin/push.c:554
+#: builtin/push.c:541
msgid "repository"
msgstr "arkiv"
-#: builtin/push.c:555 builtin/send-pack.c:164
+#: builtin/push.c:542 builtin/send-pack.c:164
msgid "push all refs"
msgstr "sänd alla referenser"
-#: builtin/push.c:556 builtin/send-pack.c:166
+#: builtin/push.c:543 builtin/send-pack.c:166
msgid "mirror all refs"
msgstr "spegla alla referenser"
-#: builtin/push.c:558
+#: builtin/push.c:545
msgid "delete refs"
msgstr "ta bort referenser"
-#: builtin/push.c:559
+#: builtin/push.c:546
msgid "push tags (can't be used with --all or --mirror)"
msgstr "sänd taggar (kan inte användas med --all eller --mirror)"
-#: builtin/push.c:562 builtin/send-pack.c:167
+#: builtin/push.c:549 builtin/send-pack.c:167
msgid "force updates"
msgstr "tvinga uppdateringar"
-#: builtin/push.c:564 builtin/send-pack.c:181
+#: builtin/push.c:551 builtin/send-pack.c:181
msgid "<refname>:<expect>"
msgstr "<refnamn>:<förvänta>"
-#: builtin/push.c:565 builtin/send-pack.c:182
+#: builtin/push.c:552 builtin/send-pack.c:182
msgid "require old value of ref to be at this value"
msgstr "kräv att ref:s tidigare värde är detta"
-#: builtin/push.c:568
+#: builtin/push.c:555
msgid "control recursive pushing of submodules"
msgstr "styr rekursiv insändning av undermoduler"
-#: builtin/push.c:570 builtin/send-pack.c:175
+#: builtin/push.c:557 builtin/send-pack.c:175
msgid "use thin pack"
msgstr "använd tunna paket"
-#: builtin/push.c:571 builtin/push.c:572 builtin/send-pack.c:161
+#: builtin/push.c:558 builtin/push.c:559 builtin/send-pack.c:161
#: builtin/send-pack.c:162
msgid "receive pack program"
msgstr "program för att ta emot paket"
-#: builtin/push.c:573
+#: builtin/push.c:560
msgid "set upstream for git pull/status"
msgstr "ställ in uppström för git pull/status"
-#: builtin/push.c:576
+#: builtin/push.c:563
msgid "prune locally removed refs"
msgstr "ta bort lokalt borttagna referenser"
-#: builtin/push.c:578
+#: builtin/push.c:565
msgid "bypass pre-push hook"
msgstr "förbigå pre-push-krok"
-#: builtin/push.c:579
+#: builtin/push.c:566
msgid "push missing but relevant tags"
msgstr "sänd in saknade men relevanta taggar"
-#: builtin/push.c:582 builtin/send-pack.c:169
+#: builtin/push.c:569 builtin/send-pack.c:169
msgid "GPG sign the push"
msgstr "GPG-signera insändningen"
-#: builtin/push.c:584 builtin/send-pack.c:176
+#: builtin/push.c:571 builtin/send-pack.c:176
msgid "request atomic transaction on remote side"
msgstr "begär atomiska transaktioner på fjärrsidan"
-#: builtin/push.c:602
+#: builtin/push.c:589
msgid "--delete is incompatible with --all, --mirror and --tags"
msgstr "--delete är inkompatibel med --all, --mirror och --tags"
-#: builtin/push.c:604
+#: builtin/push.c:591
msgid "--delete doesn't make sense without any refs"
msgstr "--delete kan inte användas utan referenser"
-#: builtin/push.c:607
+#: builtin/push.c:611
+#, c-format
+msgid "bad repository '%s'"
+msgstr "felaktigt arkiv \"%s\""
+
+#: builtin/push.c:612
+msgid ""
+"No configured push destination.\n"
+"Either specify the URL from the command-line or configure a remote "
+"repository using\n"
+"\n"
+" git remote add <name> <url>\n"
+"\n"
+"and then push using the remote name\n"
+"\n"
+" git push <name>\n"
+msgstr ""
+"Ingen destination har angivits.\n"
+"Ange antingen URL:en på kommandoraden eller ställ in ett uppströmsarkiv med\n"
+"\n"
+" git remote add <namn> <url>\n"
+"\n"
+"och sänd sedan med hjälp av fjärrnamnet\n"
+"\n"
+" git push <namn>\n"
+
+#: builtin/push.c:627
msgid "--all and --tags are incompatible"
msgstr "--all och --tags är inkompatibla"
-#: builtin/push.c:609
+#: builtin/push.c:629
msgid "--all can't be combined with refspecs"
msgstr "--all kan inte kombineras med referensspecifikationer"
-#: builtin/push.c:613
+#: builtin/push.c:633
msgid "--mirror and --tags are incompatible"
msgstr "--mirror och --tags är inkompatibla"
-#: builtin/push.c:615
+#: builtin/push.c:635
msgid "--mirror can't be combined with refspecs"
msgstr "--mirror kan inte kombineras med referensspecifikationer"
-#: builtin/push.c:618
+#: builtin/push.c:638
msgid "--all and --mirror are incompatible"
msgstr "--all och --mirror är inkompatibla"
-#: builtin/push.c:637
+#: builtin/push.c:642
msgid "push options must not have new line characters"
msgstr "push-flaggor kan inte innehålla radbrytning"
@@ -16980,11 +17039,11 @@ msgstr "undertryck återkopplingsmeddelanden"
#: builtin/rebase.c:32
msgid ""
-"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] [<upstream>] "
-"[<branch>]"
+"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase> | --keep-base] "
+"[<upstream> [<branch>]]"
msgstr ""
-"git rebase [-i] [flaggor] [--exec <kmd>] [--onto <nybas>] [<uppström>] "
-"[<gren>]"
+"git rebase [-i] [flaggor] [--exec <kmd>] [--onto <nybas> | --keep-base] "
+"[<uppström> [<gren>]]"
#: builtin/rebase.c:34
msgid ""
@@ -17023,189 +17082,189 @@ msgstr "kunde inte markera som interaktiv"
msgid "could not generate todo list"
msgstr "Kunde inte skapa attgöra-lista"
-#: builtin/rebase.c:382
+#: builtin/rebase.c:383
msgid "a base commit must be provided with --upstream or --onto"
msgstr "en basincheckning måste anges med --upstream eller --onto"
-#: builtin/rebase.c:437
+#: builtin/rebase.c:438
msgid "git rebase--interactive [<options>]"
msgstr "git rebase--interactive [<flaggor>]"
-#: builtin/rebase.c:449
+#: builtin/rebase.c:450
msgid "keep empty commits"
msgstr "behåll tomma incheckningar"
-#: builtin/rebase.c:451 builtin/revert.c:128
+#: builtin/rebase.c:452 builtin/revert.c:128
msgid "allow commits with empty messages"
msgstr "tillåt incheckningar med tomt meddelande"
-#: builtin/rebase.c:452
+#: builtin/rebase.c:453
msgid "rebase merge commits"
msgstr "ombasera sammanslagningar"
-#: builtin/rebase.c:454
+#: builtin/rebase.c:455
msgid "keep original branch points of cousins"
msgstr "behåll ursprungliga förgreningspunkter för kusiner"
-#: builtin/rebase.c:456
+#: builtin/rebase.c:457
msgid "move commits that begin with squash!/fixup!"
msgstr "flytta incheckningar som inleds med squash!/fixup!"
-#: builtin/rebase.c:457
+#: builtin/rebase.c:458
msgid "sign commits"
msgstr "signera incheckningar"
-#: builtin/rebase.c:459 builtin/rebase.c:1403
+#: builtin/rebase.c:460 builtin/rebase.c:1427
msgid "display a diffstat of what changed upstream"
msgstr "vis diffstat för vad som ändrats uppströms"
-#: builtin/rebase.c:461
+#: builtin/rebase.c:462
msgid "continue rebase"
msgstr "fortsätt ombasering"
-#: builtin/rebase.c:463
+#: builtin/rebase.c:464
msgid "skip commit"
msgstr "hoppa över incheckning"
-#: builtin/rebase.c:464
+#: builtin/rebase.c:465
msgid "edit the todo list"
msgstr "redigera attgöra-listan"
-#: builtin/rebase.c:466
+#: builtin/rebase.c:467
msgid "show the current patch"
msgstr "visa nuvarande patch"
-#: builtin/rebase.c:469
+#: builtin/rebase.c:470
msgid "shorten commit ids in the todo list"
msgstr "förkorta inchecknings-id i todo-listan"
-#: builtin/rebase.c:471
+#: builtin/rebase.c:472
msgid "expand commit ids in the todo list"
msgstr "utöka inchecknings-id i todo-listan"
-#: builtin/rebase.c:473
+#: builtin/rebase.c:474
msgid "check the todo list"
msgstr "kontrollera todo-listan"
-#: builtin/rebase.c:475
+#: builtin/rebase.c:476
msgid "rearrange fixup/squash lines"
msgstr "ordna om fixup-/squash-rader"
-#: builtin/rebase.c:477
+#: builtin/rebase.c:478
msgid "insert exec commands in todo list"
msgstr "lägg in exec-kommandon i todo-listan"
-#: builtin/rebase.c:478
+#: builtin/rebase.c:479
msgid "onto"
msgstr "ovanpå"
-#: builtin/rebase.c:481
+#: builtin/rebase.c:482
msgid "restrict-revision"
msgstr "restrict-revision"
-#: builtin/rebase.c:481
+#: builtin/rebase.c:482
msgid "restrict revision"
msgstr "begränsa revision"
-#: builtin/rebase.c:483
+#: builtin/rebase.c:484
msgid "squash-onto"
msgstr "squash-onto"
-#: builtin/rebase.c:484
+#: builtin/rebase.c:485
msgid "squash onto"
msgstr "tryck ihop ovanpå"
-#: builtin/rebase.c:486
+#: builtin/rebase.c:487
msgid "the upstream commit"
msgstr "uppströmsincheckningen"
-#: builtin/rebase.c:488
+#: builtin/rebase.c:489
msgid "head-name"
msgstr "head-name"
-#: builtin/rebase.c:488
+#: builtin/rebase.c:489
msgid "head name"
msgstr "namn på huvud"
-#: builtin/rebase.c:493
+#: builtin/rebase.c:494
msgid "rebase strategy"
msgstr "sammanslagningsstrategi"
-#: builtin/rebase.c:494
+#: builtin/rebase.c:495
msgid "strategy-opts"
msgstr "strategy-opts"
-#: builtin/rebase.c:495
+#: builtin/rebase.c:496
msgid "strategy options"
msgstr "strategiflaggor"
-#: builtin/rebase.c:496
+#: builtin/rebase.c:497
msgid "switch-to"
msgstr "switch-to"
-#: builtin/rebase.c:497
+#: builtin/rebase.c:498
msgid "the branch or commit to checkout"
msgstr "gren eller inchecking att checka ut"
-#: builtin/rebase.c:498
+#: builtin/rebase.c:499
msgid "onto-name"
msgstr "onto-name"
-#: builtin/rebase.c:498
+#: builtin/rebase.c:499
msgid "onto name"
msgstr "på-namn"
-#: builtin/rebase.c:499
+#: builtin/rebase.c:500
msgid "cmd"
msgstr "kmd"
-#: builtin/rebase.c:499
+#: builtin/rebase.c:500
msgid "the command to run"
msgstr "kommando att köra"
-#: builtin/rebase.c:502 builtin/rebase.c:1486
+#: builtin/rebase.c:503 builtin/rebase.c:1510
msgid "automatically re-schedule any `exec` that fails"
msgstr "kör automatiskt alla \"exec\" som misslyckas på nytt"
-#: builtin/rebase.c:518
+#: builtin/rebase.c:519
msgid "--[no-]rebase-cousins has no effect without --rebase-merges"
msgstr "--[no-]rebase-cousins har ingen effekt utan --rebase-merges"
-#: builtin/rebase.c:534
+#: builtin/rebase.c:535
#, c-format
msgid "%s requires an interactive rebase"
msgstr "%s kräver en interaktiv ombasering"
-#: builtin/rebase.c:586
+#: builtin/rebase.c:587
#, c-format
msgid "could not get 'onto': '%s'"
msgstr "kunde inte hämta \"onto\": \"%s\""
-#: builtin/rebase.c:601
+#: builtin/rebase.c:602
#, c-format
msgid "invalid orig-head: '%s'"
msgstr "ogiltigt orig-head: \"%s\""
-#: builtin/rebase.c:626
+#: builtin/rebase.c:627
#, c-format
msgid "ignoring invalid allow_rerere_autoupdate: '%s'"
msgstr "ignorera ogiltigt allow_rerere_autoupdate: \"%s\""
-#: builtin/rebase.c:702
+#: builtin/rebase.c:703
#, c-format
msgid "Could not read '%s'"
msgstr "Kunde inte läsa \"%s\""
-#: builtin/rebase.c:720
+#: builtin/rebase.c:721
#, c-format
msgid "Cannot store %s"
msgstr "Kan inte spara %s"
-#: builtin/rebase.c:827
+#: builtin/rebase.c:828
msgid "could not determine HEAD revision"
msgstr "kunde inte bestämma HEAD-revision"
-#: builtin/rebase.c:950 git-rebase--preserve-merges.sh:81
+#: builtin/rebase.c:951 git-rebase--preserve-merges.sh:81
msgid ""
"Resolve all conflicts manually, mark them as resolved with\n"
"\"git add/rm <conflicted_files>\", then run \"git rebase --continue\".\n"
@@ -17219,7 +17278,7 @@ msgstr ""
"För att avbryta och återgå till där du var före ombaseringen, kör \"git "
"rebase --abort\"."
-#: builtin/rebase.c:1031
+#: builtin/rebase.c:1032
#, c-format
msgid ""
"\n"
@@ -17238,7 +17297,7 @@ msgstr ""
"\n"
"Därför kan inte git ombasera dessa."
-#: builtin/rebase.c:1318
+#: builtin/rebase.c:1339
#, c-format
msgid ""
"%s\n"
@@ -17255,7 +17314,7 @@ msgstr ""
" git rebase '<gren>'\n"
"\n"
-#: builtin/rebase.c:1334
+#: builtin/rebase.c:1355
#, c-format
msgid ""
"If you wish to set tracking information for this branch you can do so with:\n"
@@ -17268,128 +17327,132 @@ msgstr ""
" git branch --set-upstream-to=%s/<gren> %s\n"
"\n"
-#: builtin/rebase.c:1364
+#: builtin/rebase.c:1385
msgid "exec commands cannot contain newlines"
msgstr "exec-kommandon kan inte innehålla nyradstecken"
-#: builtin/rebase.c:1368
+#: builtin/rebase.c:1389
msgid "empty exec command"
msgstr "tomt exec-kommando"
-#: builtin/rebase.c:1396
+#: builtin/rebase.c:1418
msgid "rebase onto given branch instead of upstream"
msgstr "ombasera mot given grenen istället för uppström"
-#: builtin/rebase.c:1398
+#: builtin/rebase.c:1420
+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:1422
msgid "allow pre-rebase hook to run"
msgstr "tillåt pre-rebase-krok att köra"
-#: builtin/rebase.c:1400
+#: builtin/rebase.c:1424
msgid "be quiet. implies --no-stat"
msgstr "var tyst. implicerar --no-stat"
-#: builtin/rebase.c:1406
+#: builtin/rebase.c:1430
msgid "do not show diffstat of what changed upstream"
msgstr "visa inte en diffstat för vad som ändrats uppströms"
-#: builtin/rebase.c:1409
+#: builtin/rebase.c:1433
msgid "add a Signed-off-by: line to each commit"
msgstr "lägg \"Signed-off-by:\"-rad till varje incheckning"
-#: builtin/rebase.c:1411 builtin/rebase.c:1415 builtin/rebase.c:1417
+#: builtin/rebase.c:1435 builtin/rebase.c:1439 builtin/rebase.c:1441
msgid "passed to 'git am'"
msgstr "sänds till \"git am\""
-#: builtin/rebase.c:1419 builtin/rebase.c:1421
+#: builtin/rebase.c:1443 builtin/rebase.c:1445
msgid "passed to 'git apply'"
msgstr "sänds till \"git apply\""
-#: builtin/rebase.c:1423 builtin/rebase.c:1426
+#: builtin/rebase.c:1447 builtin/rebase.c:1450
msgid "cherry-pick all commits, even if unchanged"
msgstr "utför cherry-pick på alla incheckningar, även om oändrad"
-#: builtin/rebase.c:1428
+#: builtin/rebase.c:1452
msgid "continue"
msgstr "fortsätt"
-#: builtin/rebase.c:1431
+#: builtin/rebase.c:1455
msgid "skip current patch and continue"
msgstr "hoppa över nuvarande patch och fortsätt"
-#: builtin/rebase.c:1433
+#: builtin/rebase.c:1457
msgid "abort and check out the original branch"
msgstr "avbryt och checka ut ursprungsgrenen"
-#: builtin/rebase.c:1436
+#: builtin/rebase.c:1460
msgid "abort but keep HEAD where it is"
msgstr "avbryt men behåll HEAD där det är"
-#: builtin/rebase.c:1437
+#: builtin/rebase.c:1461
msgid "edit the todo list during an interactive rebase"
msgstr "redigera attgöra-listan under interaktiv ombasering."
-#: builtin/rebase.c:1440
+#: builtin/rebase.c:1464
msgid "show the patch file being applied or merged"
msgstr "visa patchen som tillämpas eller slås samman"
-#: builtin/rebase.c:1443
+#: builtin/rebase.c:1467
msgid "use merging strategies to rebase"
msgstr "använd sammanslagningsstrategier för sammanslagning"
-#: builtin/rebase.c:1447
+#: builtin/rebase.c:1471
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:1451
+#: builtin/rebase.c:1475
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:1455
+#: builtin/rebase.c:1479
msgid "preserve empty commits during rebase"
msgstr "behåll tomma incheckningar under ombasering"
-#: builtin/rebase.c:1457
+#: builtin/rebase.c:1481
msgid "move commits that begin with squash!/fixup! under -i"
msgstr "flytta incheckningar som börjar med squash!/fixup! under -i"
-#: builtin/rebase.c:1463
+#: builtin/rebase.c:1487
msgid "automatically stash/stash pop before and after"
msgstr "utför automatiskt stash/stash pop före och efter"
-#: builtin/rebase.c:1465
+#: builtin/rebase.c:1489
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:1469
+#: builtin/rebase.c:1493
msgid "allow rebasing commits with empty messages"
msgstr "tillåt ombasering av incheckningar med tomt meddelande"
-#: builtin/rebase.c:1472
+#: builtin/rebase.c:1496
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:1475
+#: builtin/rebase.c:1499
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:1477
+#: builtin/rebase.c:1501
msgid "use the given merge strategy"
msgstr "använd angiven sammanslagningsstrategi"
-#: builtin/rebase.c:1479 builtin/revert.c:115
+#: builtin/rebase.c:1503 builtin/revert.c:115
msgid "option"
msgstr "alternativ"
-#: builtin/rebase.c:1480
+#: builtin/rebase.c:1504
msgid "pass the argument through to the merge strategy"
msgstr "sänd flaggan till sammanslagningsstrategin"
-#: builtin/rebase.c:1483
+#: builtin/rebase.c:1507
msgid "rebase all reachable commits up to the root(s)"
msgstr "ombasera alla nåbara incheckningar upp till roten/rötterna"
-#: builtin/rebase.c:1500
+#: builtin/rebase.c:1524
msgid ""
"the rebase.useBuiltin support has been removed!\n"
"See its entry in 'git help config' for details."
@@ -17397,29 +17460,37 @@ msgstr ""
"stödet för rebase.useBuiltin har tagits bort!\n"
"Se posten för det i \"git help config\" för detaljer."
-#: builtin/rebase.c:1506
+#: builtin/rebase.c:1530
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:1547
+#: builtin/rebase.c:1571
msgid ""
"git rebase --preserve-merges is deprecated. Use --rebase-merges instead."
msgstr ""
"git rebase --preserve-merges avråds från. Använd --rebase-merges istället."
-#: builtin/rebase.c:1551
+#: builtin/rebase.c:1576
+msgid "cannot combine '--keep-base' with '--onto'"
+msgstr "kan inte kombinera \"--keep-base\" med \"--onto\""
+
+#: builtin/rebase.c:1578
+msgid "cannot combine '--keep-base' with '--root'"
+msgstr "kan inte kombinera \"--keep-base\" med \"--root\""
+
+#: builtin/rebase.c:1582
msgid "No rebase in progress?"
msgstr "Ingen ombasering pågår?"
-#: builtin/rebase.c:1555
+#: builtin/rebase.c:1586
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:1578
+#: builtin/rebase.c:1609
msgid "Cannot read HEAD"
msgstr "Kan inte läsa HEAD"
-#: builtin/rebase.c:1590
+#: builtin/rebase.c:1621
msgid ""
"You must edit all merge conflicts and then\n"
"mark them as resolved using git add"
@@ -17427,16 +17498,16 @@ msgstr ""
"Du måste redigera alla sammanslagningskonflikter och\n"
"därefter markera dem som lösta med git add"
-#: builtin/rebase.c:1609
+#: builtin/rebase.c:1640
msgid "could not discard worktree changes"
msgstr "kunde inte kasta ändringar i arbetskatalogen"
-#: builtin/rebase.c:1628
+#: builtin/rebase.c:1659
#, c-format
msgid "could not move back to %s"
msgstr "kunde inte flytta tillbaka till %s"
-#: builtin/rebase.c:1673
+#: builtin/rebase.c:1704
#, c-format
msgid ""
"It seems that there is already a %s directory, and\n"
@@ -17457,167 +17528,159 @@ msgstr ""
"och kör programmet igen. Jag avslutar ifall du fortfarande har\n"
"något av värde där.\n"
-#: builtin/rebase.c:1694
+#: builtin/rebase.c:1725
msgid "switch `C' expects a numerical value"
msgstr "flaggan \"C\" förväntar ett numeriskt värde"
-#: builtin/rebase.c:1735
+#: builtin/rebase.c:1766
#, c-format
msgid "Unknown mode: %s"
msgstr "Okänt läge: %s"
-#: builtin/rebase.c:1757
+#: builtin/rebase.c:1788
msgid "--strategy requires --merge or --interactive"
msgstr "--strategy kräver --merge eller --interactive"
-#: builtin/rebase.c:1797
+#: builtin/rebase.c:1828
msgid "--reschedule-failed-exec requires --exec or --interactive"
msgstr "--reschedule-failed-exec kräver --exec eller --interactive"
-#: builtin/rebase.c:1809
+#: builtin/rebase.c:1840
msgid "cannot combine am options with either interactive or merge options"
msgstr ""
"kan inte kombinera am-flaggor med varken interaktiv- eller "
"sammanslagningsflaggor"
-#: builtin/rebase.c:1828
+#: builtin/rebase.c:1859
msgid "cannot combine '--preserve-merges' with '--rebase-merges'"
msgstr "kan inte kombinera \"--preserve-merges\" med \"--rebase-merges\""
-#: builtin/rebase.c:1832
+#: builtin/rebase.c:1863
msgid ""
"error: cannot combine '--preserve-merges' with '--reschedule-failed-exec'"
msgstr ""
"fel: kan inte kombinera \"--preserve-merges\" med \"--reschedule-failed-exec"
"\""
-#: builtin/rebase.c:1838
-msgid "cannot combine '--rebase-merges' with '--strategy-option'"
-msgstr "kan inte kombinera \"--rebase-merges\" med \"--strategy-option\""
-
-#: builtin/rebase.c:1841
-msgid "cannot combine '--rebase-merges' with '--strategy'"
-msgstr "kan inte kombinera \"--rebase-merges\" med \"--strategy\""
-
-#: builtin/rebase.c:1865
+#: builtin/rebase.c:1887
#, c-format
msgid "invalid upstream '%s'"
msgstr "felaktig uppström \"%s\""
-#: builtin/rebase.c:1871
+#: builtin/rebase.c:1893
msgid "Could not create new root commit"
msgstr "kunde inte skapa ny rotincheckning"
-#: builtin/rebase.c:1889
+#: builtin/rebase.c:1919
+#, c-format
+msgid "'%s': need exactly one merge base with branch"
+msgstr "\"%s\": behöver precis en sammanslagningsbas med gren"
+
+#: builtin/rebase.c:1922
#, c-format
msgid "'%s': need exactly one merge base"
msgstr "\"%s\": behöver precis en sammanslagningsbas"
-#: builtin/rebase.c:1896
+#: builtin/rebase.c:1930
#, c-format
msgid "Does not point to a valid commit '%s'"
msgstr "Pekar inte på en giltig incheckning: \"%s\""
-#: builtin/rebase.c:1921
+#: builtin/rebase.c:1955
#, c-format
msgid "fatal: no such branch/commit '%s'"
msgstr "ödesdigert: ingen sådan gren/incheckning: \"%s\""
-#: builtin/rebase.c:1929 builtin/submodule--helper.c:38
+#: builtin/rebase.c:1963 builtin/submodule--helper.c:38
#: builtin/submodule--helper.c:1934
#, c-format
msgid "No such ref: %s"
msgstr "Ingen sådan referens: %s"
-#: builtin/rebase.c:1940
+#: builtin/rebase.c:1974
msgid "Could not resolve HEAD to a revision"
msgstr "Kunde inte bestämma HEAD:s incheckning"
-#: builtin/rebase.c:1981
+#: builtin/rebase.c:2012
msgid "Cannot autostash"
msgstr "Kan inte utföra \"autostash\""
-#: builtin/rebase.c:1984
+#: builtin/rebase.c:2015
#, c-format
msgid "Unexpected stash response: '%s'"
msgstr "Oväntat svar från stash: \"%s\""
-#: builtin/rebase.c:1990
+#: builtin/rebase.c:2021
#, c-format
msgid "Could not create directory for '%s'"
msgstr "Kunde inte skapa katalog för \"%s\""
-#: builtin/rebase.c:1993
+#: builtin/rebase.c:2024
#, c-format
msgid "Created autostash: %s\n"
msgstr "Skapade autostash: %s\n"
-#: builtin/rebase.c:1996
+#: builtin/rebase.c:2027
msgid "could not reset --hard"
msgstr "kunde inte utföra \"reset --hard\""
-#: builtin/rebase.c:1997 builtin/reset.c:114
-#, c-format
-msgid "HEAD is now at %s"
-msgstr "HEAD är nu på %s"
-
-#: builtin/rebase.c:2013
+#: builtin/rebase.c:2036
msgid "Please commit or stash them."
msgstr "Checka in eller använd \"stash\" på dem."
-#: builtin/rebase.c:2040
+#: builtin/rebase.c:2063
#, c-format
msgid "could not parse '%s'"
msgstr "kunde inte tolka \"%s\""
-#: builtin/rebase.c:2053
+#: builtin/rebase.c:2076
#, c-format
msgid "could not switch to %s"
msgstr "kunde inte växla till %s"
-#: builtin/rebase.c:2064
+#: builtin/rebase.c:2087
msgid "HEAD is up to date."
msgstr "HEAD är à jour."
-#: builtin/rebase.c:2066
+#: builtin/rebase.c:2089
#, c-format
msgid "Current branch %s is up to date.\n"
msgstr "Aktuell gren %s är à jour.\n"
-#: builtin/rebase.c:2074
+#: builtin/rebase.c:2097
msgid "HEAD is up to date, rebase forced."
msgstr "HEAD är à jour, ombasering framtvingad."
-#: builtin/rebase.c:2076
+#: builtin/rebase.c:2099
#, 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:2084
+#: builtin/rebase.c:2107
msgid "The pre-rebase hook refused to rebase."
msgstr "Kroken pre-rebase vägrade ombaseringen."
-#: builtin/rebase.c:2091
+#: builtin/rebase.c:2114
#, c-format
msgid "Changes to %s:\n"
msgstr "Ändringar till %s:\n"
-#: builtin/rebase.c:2094
+#: builtin/rebase.c:2117
#, c-format
msgid "Changes from %s to %s:\n"
msgstr "Ändringar från %s till %s:\n"
-#: builtin/rebase.c:2119
+#: builtin/rebase.c:2142
#, 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:2128
+#: builtin/rebase.c:2151
msgid "Could not detach HEAD"
msgstr "Kunde inte koppla från HEAD"
-#: builtin/rebase.c:2137
+#: builtin/rebase.c:2160
#, c-format
msgid "Fast-forwarded %s to %s.\n"
msgstr "Snabbspolade %s till %s.\n"
@@ -17626,7 +17689,7 @@ msgstr "Snabbspolade %s till %s.\n"
msgid "git receive-pack <git-dir>"
msgstr "git receive-pack <git-katalog>"
-#: builtin/receive-pack.c:832
+#: builtin/receive-pack.c:830
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"
@@ -17656,7 +17719,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:852
+#: builtin/receive-pack.c:850
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"
@@ -17677,11 +17740,11 @@ msgstr ""
"\n"
"För att undvika detta meddelande kan du sätta det till \"refuse\"."
-#: builtin/receive-pack.c:1938
+#: builtin/receive-pack.c:1936
msgid "quiet"
msgstr "tyst"
-#: builtin/receive-pack.c:1952
+#: builtin/receive-pack.c:1950
msgid "You must specify a directory."
msgstr "Du måste ange en katalog."
@@ -18251,11 +18314,11 @@ msgstr "var pratsam; måste skrivas före ett underkommando"
msgid "Unknown subcommand: %s"
msgstr "Okänt underkommando: %s"
-#: builtin/repack.c:22
+#: builtin/repack.c:23
msgid "git repack [<options>]"
msgstr "git repack [<flaggor>]"
-#: builtin/repack.c:27
+#: builtin/repack.c:28
msgid ""
"Incremental repacks are incompatible with bitmap indexes. Use\n"
"--no-write-bitmap-index or disable the pack.writebitmaps configuration."
@@ -18264,112 +18327,112 @@ msgstr ""
"Använd --no-write-bitmap-index eller inaktivera inställningen\n"
"pack.writebitmaps"
-#: builtin/repack.c:201
+#: builtin/repack.c:191
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:240 builtin/repack.c:418
+#: builtin/repack.c:230 builtin/repack.c:409
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."
+"repack: Förväntar kompletta hex-objekt-id-rader endast från pack-objects."
-#: builtin/repack.c:257
+#: builtin/repack.c:247
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:295
+#: builtin/repack.c:285
msgid "pack everything in a single pack"
msgstr "packa allt i ett enda paket"
-#: builtin/repack.c:297
+#: builtin/repack.c:287
msgid "same as -a, and turn unreachable objects loose"
msgstr "samma som -a, och gör onåbara objekt lösa"
-#: builtin/repack.c:300
+#: builtin/repack.c:290
msgid "remove redundant packs, and run git-prune-packed"
msgstr "ta bort överflödiga paket, och kör git-prune-packed"
-#: builtin/repack.c:302
+#: builtin/repack.c:292
msgid "pass --no-reuse-delta to git-pack-objects"
msgstr "sänd --no-reuse-delta till git-pack-objects"
-#: builtin/repack.c:304
+#: builtin/repack.c:294
msgid "pass --no-reuse-object to git-pack-objects"
msgstr "sänd --no-reuse-object till git-pack-objects"
-#: builtin/repack.c:306
+#: builtin/repack.c:296
msgid "do not run git-update-server-info"
msgstr "kör inte git-update-server-info"
-#: builtin/repack.c:309
+#: builtin/repack.c:299
msgid "pass --local to git-pack-objects"
msgstr "sänd --local till git-pack-objects"
-#: builtin/repack.c:311
+#: builtin/repack.c:301
msgid "write bitmap index"
msgstr "skriv bitkartindex"
-#: builtin/repack.c:313
+#: builtin/repack.c:303
msgid "pass --delta-islands to git-pack-objects"
msgstr "sänd --delta-islands till git-pack-objects"
-#: builtin/repack.c:314
+#: builtin/repack.c:304
msgid "approxidate"
msgstr "cirkadatum"
-#: builtin/repack.c:315
+#: builtin/repack.c:305
msgid "with -A, do not loosen objects older than this"
msgstr "med -A, lös inte upp objekt äldre än detta"
-#: builtin/repack.c:317
+#: builtin/repack.c:307
msgid "with -a, repack unreachable objects"
msgstr "med -a, packa om onåbara objekt"
-#: builtin/repack.c:319
+#: builtin/repack.c:309
msgid "size of the window used for delta compression"
msgstr "storlek på fönster använt för deltakomprimering"
-#: builtin/repack.c:320 builtin/repack.c:326
+#: builtin/repack.c:310 builtin/repack.c:316
msgid "bytes"
msgstr "byte"
-#: builtin/repack.c:321
+#: builtin/repack.c:311
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:323
+#: builtin/repack.c:313
msgid "limits the maximum delta depth"
msgstr "begränsa maximalt deltadjup"
-#: builtin/repack.c:325
+#: builtin/repack.c:315
msgid "limits the maximum number of threads"
msgstr "begränsar maximalt antal trådar"
-#: builtin/repack.c:327
+#: builtin/repack.c:317
msgid "maximum size of each packfile"
msgstr "maximal storlek på varje paketfil"
-#: builtin/repack.c:329
+#: builtin/repack.c:319
msgid "repack objects in packs marked with .keep"
msgstr "packa om objekt i paket märkta med .keep"
-#: builtin/repack.c:331
+#: builtin/repack.c:321
msgid "do not repack this pack"
msgstr "packa inte om detta paket"
-#: builtin/repack.c:341
+#: builtin/repack.c:331
msgid "cannot delete packs in a precious-objects repo"
msgstr "kan inte ta bort paket i ett \"precious-objects\"-arkiv"
-#: builtin/repack.c:345
+#: builtin/repack.c:335
msgid "--keep-unreachable and -A are incompatible"
msgstr "--keep-unreachable och -A kan inte användas samtidigt"
-#: builtin/repack.c:427
+#: builtin/repack.c:418
msgid "Nothing new to pack."
msgstr "Inget nytt att packa."
-#: builtin/repack.c:488
+#: builtin/repack.c:479
#, c-format
msgid ""
"WARNING: Some packs in use have been renamed by\n"
@@ -18388,7 +18451,7 @@ msgstr ""
"VARNING: namnet misslyckades också.\n"
"VARNING: Byt namn på dem i %s manuellt:\n"
-#: builtin/repack.c:536
+#: builtin/repack.c:527
#, c-format
msgid "failed to remove '%s'"
msgstr "misslyckades ta bort \"%s\""
@@ -18496,8 +18559,8 @@ msgstr "kan inte utföra \"fstat\" på %s"
msgid "unable to write object to database"
msgstr "kan inte skriva objektet till databasen"
-#: builtin/replace.c:322 builtin/replace.c:377 builtin/replace.c:422
-#: builtin/replace.c:452
+#: builtin/replace.c:322 builtin/replace.c:378 builtin/replace.c:423
+#: builtin/replace.c:453
#, c-format
msgid "not a valid object name: '%s'"
msgstr "objektnamnet är inte giltigt: \"%s\""
@@ -18516,22 +18579,22 @@ msgstr "misslyckades redigera objektfilen"
msgid "new object is the same as the old one: '%s'"
msgstr "nytt objekt är samma som det gamla: \"%s\""
-#: builtin/replace.c:383
+#: builtin/replace.c:384
#, c-format
msgid "could not parse %s as a commit"
msgstr "kunde inte tolka %s som incheckning"
-#: builtin/replace.c:414
+#: builtin/replace.c:415
#, c-format
msgid "bad mergetag in commit '%s'"
msgstr "felaktig sammanslagningstagg i incheckningen \"%s\""
-#: builtin/replace.c:416
+#: builtin/replace.c:417
#, c-format
msgid "malformed mergetag in commit '%s'"
msgstr "felformad sammanslagningstagg i incheckningen \"%s\""
-#: builtin/replace.c:428
+#: builtin/replace.c:429
#, c-format
msgid ""
"original commit '%s' contains mergetag '%s' that is discarded; use --edit "
@@ -18540,31 +18603,31 @@ msgstr ""
"den ursprungliga incheckningen \"%s\" innehåller sammanslagningstaggen \"%s"
"\" som har förkastats; använd --edit istället för --graft"
-#: builtin/replace.c:467
+#: builtin/replace.c:468
#, c-format
msgid "the original commit '%s' has a gpg signature"
msgstr "den ursprungliga incheckningen \"%s\" har en gpg-signatur"
-#: builtin/replace.c:468
+#: builtin/replace.c:469
msgid "the signature will be removed in the replacement commit!"
msgstr "signaturen kommer att tas bort i ersättningsincheckningen!"
-#: builtin/replace.c:478
+#: builtin/replace.c:479
#, c-format
msgid "could not write replacement commit for: '%s'"
msgstr "kunde inte skriva ersättningsincheckning för: \"%s\""
-#: builtin/replace.c:486
+#: builtin/replace.c:487
#, c-format
msgid "graft for '%s' unnecessary"
msgstr "ympning för \"%s\" behövs inte"
-#: builtin/replace.c:490
+#: builtin/replace.c:491
#, c-format
msgid "new commit is the same as the old one: '%s'"
msgstr "ny incheckning är samma som den gamla: \"%s\""
-#: builtin/replace.c:525
+#: builtin/replace.c:526
#, c-format
msgid ""
"could not convert the following graft(s):\n"
@@ -18573,71 +18636,71 @@ msgstr ""
"kunde inte konvertera följande ympning(ar):\n"
"%s"
-#: builtin/replace.c:546
+#: builtin/replace.c:547
msgid "list replace refs"
msgstr "visa ersättningsreferenser"
-#: builtin/replace.c:547
+#: builtin/replace.c:548
msgid "delete replace refs"
msgstr "ta bort ersättningsreferenser"
-#: builtin/replace.c:548
+#: builtin/replace.c:549
msgid "edit existing object"
msgstr "redigera befintligt objekt"
-#: builtin/replace.c:549
+#: builtin/replace.c:550
msgid "change a commit's parents"
msgstr "ändra en inchecknings föräldrar"
-#: builtin/replace.c:550
+#: builtin/replace.c:551
msgid "convert existing graft file"
msgstr "konvertera befintlig ympningsfil"
-#: builtin/replace.c:551
+#: builtin/replace.c:552
msgid "replace the ref if it exists"
msgstr "ersätt referensen om den finns"
-#: builtin/replace.c:553
+#: builtin/replace.c:554
msgid "do not pretty-print contents for --edit"
msgstr "använd inte snygg visning av innehåll för --edit"
-#: builtin/replace.c:554
+#: builtin/replace.c:555
msgid "use this format"
msgstr "använd detta format"
-#: builtin/replace.c:567
+#: builtin/replace.c:568
msgid "--format cannot be used when not listing"
msgstr "--format kan inte användas utanför listning"
-#: builtin/replace.c:575
+#: builtin/replace.c:576
msgid "-f only makes sense when writing a replacement"
msgstr "-f kan endast användas vid skrivning av ersättning"
-#: builtin/replace.c:579
+#: builtin/replace.c:580
msgid "--raw only makes sense with --edit"
msgstr "--raw kan bara användas med --edit"
-#: builtin/replace.c:585
+#: builtin/replace.c:586
msgid "-d needs at least one argument"
msgstr "-d behöver minst ett argument"
-#: builtin/replace.c:591
+#: builtin/replace.c:592
msgid "bad number of arguments"
msgstr "fel antal argument"
-#: builtin/replace.c:597
+#: builtin/replace.c:598
msgid "-e needs exactly one argument"
msgstr "-e tar exakt ett argument"
-#: builtin/replace.c:603
+#: builtin/replace.c:604
msgid "-g needs at least one argument"
msgstr "-g tar minst ett argument"
-#: builtin/replace.c:609
+#: builtin/replace.c:610
msgid "--convert-graft-file takes no argument"
msgstr "--convert-graft-file tar inga argument"
-#: builtin/replace.c:615
+#: builtin/replace.c:616
msgid "only one pattern can be given with -l"
msgstr "endast ett mönster kan anges med -l"
@@ -18705,13 +18768,18 @@ msgstr "Kunde inte hitta trädet för HEAD."
msgid "Failed to find tree of %s."
msgstr "Kunde inte hitta trädet för %s."
+#: builtin/reset.c:114
+#, c-format
+msgid "HEAD is now at %s"
+msgstr "HEAD är nu på %s"
+
#: builtin/reset.c:193
#, 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:293 builtin/stash.c:514 builtin/stash.c:589
-#: builtin/stash.c:613
+#: builtin/reset.c:293 builtin/stash.c:520 builtin/stash.c:595
+#: builtin/stash.c:619
msgid "be quiet, only report errors"
msgstr "var tyst, rapportera endast fel"
@@ -18795,24 +18863,19 @@ msgstr "Kunde inte återställa indexfilen till versionen \"%s\"."
msgid "Could not write new index file."
msgstr "Kunde inte skriva ny indexfil."
-#: builtin/rev-list.c:412
+#: builtin/rev-list.c:411
msgid "cannot combine --exclude-promisor-objects and --missing"
msgstr "kan inte kombinera --exclude-promisor-objects och --missing"
-#: builtin/rev-list.c:473
+#: builtin/rev-list.c:472
msgid "object filtering requires --objects"
msgstr "objektfiltrering kräver --objects"
-#: builtin/rev-list.c:476
-#, c-format
-msgid "invalid sparse value '%s'"
-msgstr "ogiltigt värde för sparse: \"%s\""
-
-#: builtin/rev-list.c:527
+#: builtin/rev-list.c:522
msgid "rev-list does not support display of notes"
msgstr "rev-list stöder inte visning av anteckningar"
-#: builtin/rev-list.c:530
+#: builtin/rev-list.c:525
msgid "cannot combine --use-bitmap-index with object filtering"
msgstr "kan inte kombinera --use-bitmap-index med objektfiltrering"
@@ -19350,134 +19413,134 @@ msgstr "konflikter i indexet. Testa utan --index."
msgid "could not save index tree"
msgstr "kunde inte spara indexträd"
-#: builtin/stash.c:434
+#: builtin/stash.c:436
msgid "could not restore untracked files from stash"
msgstr "kunde inte återställa ospårade filer från stash-post"
-#: builtin/stash.c:448
+#: builtin/stash.c:450
#, c-format
msgid "Merging %s with %s"
msgstr "Slår ihop %s med %s"
-#: builtin/stash.c:458 git-legacy-stash.sh:680
+#: builtin/stash.c:460 git-legacy-stash.sh:680
msgid "Index was not unstashed."
msgstr "Indexet har inte tagits upp ur \"stash\":en"
-#: builtin/stash.c:516 builtin/stash.c:615
+#: builtin/stash.c:522 builtin/stash.c:621
msgid "attempt to recreate the index"
msgstr "försök återskapa indexet"
-#: builtin/stash.c:549
+#: builtin/stash.c:555
#, c-format
msgid "Dropped %s (%s)"
msgstr "Kastade %s (%s)"
-#: builtin/stash.c:552
+#: builtin/stash.c:558
#, c-format
msgid "%s: Could not drop stash entry"
msgstr "%s: Kunde inte kasta \"stash\"-post"
-#: builtin/stash.c:577
+#: builtin/stash.c:583
#, c-format
msgid "'%s' is not a stash reference"
msgstr "\"%s\" är inte en \"stash\"-referens"
-#: builtin/stash.c:627 git-legacy-stash.sh:694
+#: builtin/stash.c:633 git-legacy-stash.sh:694
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:650 git-legacy-stash.sh:712
+#: builtin/stash.c:656 git-legacy-stash.sh:712
msgid "No branch name specified"
msgstr "Inget grennamn angavs"
-#: builtin/stash.c:790 builtin/stash.c:827
+#: builtin/stash.c:796 builtin/stash.c:833
#, c-format
msgid "Cannot update %s with %s"
msgstr "Kan inte uppdatera %s med %s"
-#: builtin/stash.c:808 builtin/stash.c:1461 builtin/stash.c:1497
+#: builtin/stash.c:814 builtin/stash.c:1470 builtin/stash.c:1506
msgid "stash message"
msgstr "\"stash\"-meddelande"
-#: builtin/stash.c:818
+#: builtin/stash.c:824
msgid "\"git stash store\" requires one <commit> argument"
msgstr "\"git stash store\" kräver ett <incheckning>-argument"
-#: builtin/stash.c:1040 git-legacy-stash.sh:217
+#: builtin/stash.c:1046 git-legacy-stash.sh:217
msgid "No changes selected"
msgstr "Inga ändringar valda"
-#: builtin/stash.c:1136 git-legacy-stash.sh:150
+#: builtin/stash.c:1145 git-legacy-stash.sh:150
msgid "You do not have the initial commit yet"
msgstr "Du har inte den första incheckningen ännu"
-#: builtin/stash.c:1163 git-legacy-stash.sh:165
+#: builtin/stash.c:1172 git-legacy-stash.sh:165
msgid "Cannot save the current index state"
msgstr "Kan inte spara aktuellt tillstånd för indexet"
-#: builtin/stash.c:1172 git-legacy-stash.sh:180
+#: builtin/stash.c:1181 git-legacy-stash.sh:180
msgid "Cannot save the untracked files"
msgstr "Kan inte spara ospårade filer"
-#: builtin/stash.c:1183 builtin/stash.c:1192 git-legacy-stash.sh:200
+#: builtin/stash.c:1192 builtin/stash.c:1201 git-legacy-stash.sh:200
#: git-legacy-stash.sh:213
msgid "Cannot save the current worktree state"
msgstr "Kan inte spara aktuellt tillstånd för arbetskatalogen"
-#: builtin/stash.c:1220 git-legacy-stash.sh:233
+#: builtin/stash.c:1229 git-legacy-stash.sh:233
msgid "Cannot record working tree state"
msgstr "Kan inte registrera tillstånd för arbetskatalog"
-#: builtin/stash.c:1269 git-legacy-stash.sh:337
+#: builtin/stash.c:1278 git-legacy-stash.sh:337
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:1285
+#: builtin/stash.c:1294
msgid "Did you forget to 'git add'?"
msgstr "Glömde du använda \"git add\"?"
-#: builtin/stash.c:1300 git-legacy-stash.sh:345
+#: builtin/stash.c:1309 git-legacy-stash.sh:345
msgid "No local changes to save"
msgstr "Inga lokala ändringar att spara"
-#: builtin/stash.c:1307 git-legacy-stash.sh:350
+#: builtin/stash.c:1316 git-legacy-stash.sh:350
msgid "Cannot initialize stash"
msgstr "Kan inte initiera \"stash\""
-#: builtin/stash.c:1322 git-legacy-stash.sh:354
+#: builtin/stash.c:1331 git-legacy-stash.sh:354
msgid "Cannot save the current status"
msgstr "Kan inte spara aktuell status"
-#: builtin/stash.c:1327
+#: builtin/stash.c:1336
#, c-format
msgid "Saved working directory and index state %s"
msgstr "Sparade arbetskatalogen och indexstatus %s"
-#: builtin/stash.c:1417 git-legacy-stash.sh:384
+#: builtin/stash.c:1426 git-legacy-stash.sh:384
msgid "Cannot remove worktree changes"
msgstr "Kan inte ta bort ändringar i arbetskatalogen"
-#: builtin/stash.c:1452 builtin/stash.c:1488
+#: builtin/stash.c:1461 builtin/stash.c:1497
msgid "keep index"
msgstr "behåll indexet"
-#: builtin/stash.c:1454 builtin/stash.c:1490
+#: builtin/stash.c:1463 builtin/stash.c:1499
msgid "stash in patch mode"
msgstr "\"stash\" i \"patch\"-läge"
-#: builtin/stash.c:1455 builtin/stash.c:1491
+#: builtin/stash.c:1464 builtin/stash.c:1500
msgid "quiet mode"
msgstr "tyst läge"
-#: builtin/stash.c:1457 builtin/stash.c:1493
+#: builtin/stash.c:1466 builtin/stash.c:1502
msgid "include untracked files in stash"
msgstr "ta med ospårade filer i \"stash\""
-#: builtin/stash.c:1459 builtin/stash.c:1495
+#: builtin/stash.c:1468 builtin/stash.c:1504
msgid "include ignore files"
msgstr "ta med ignorerade filer"
-#: builtin/stash.c:1555
+#: builtin/stash.c:1564
#, c-format
msgid "could not exec %s"
msgstr "kunde inte köra %s"
@@ -19846,8 +19909,8 @@ msgid "don't print cloning progress"
msgstr "skriv inte klonförlopp"
#: builtin/submodule--helper.c:1877
-msgid "git submodule--helper update_clone [--prefix=<path>] [<path>...]"
-msgstr "git submodule--helper update_clone [--prefix=<sökväg>] [<sökväg>...]"
+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:1890
msgid "bad value for update parameter"
@@ -19900,7 +19963,7 @@ msgstr "git submodule--helper config --check-writeable"
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:2235 git.c:434 git.c:684
+#: builtin/submodule--helper.c:2235 git.c:433 git.c:683
#, c-format
msgid "%s doesn't support --super-prefix"
msgstr "%s stöder inte --super-prefix"
@@ -20224,139 +20287,139 @@ msgstr " OK"
msgid "git update-index [<options>] [--] [<file>...]"
msgstr "git update-index [<flaggor>] [--] [<fil>...]"
-#: builtin/update-index.c:971
+#: builtin/update-index.c:972
msgid "continue refresh even when index needs update"
msgstr "fortsätt uppdatera även när index inte är àjour"
-#: builtin/update-index.c:974
+#: builtin/update-index.c:975
msgid "refresh: ignore submodules"
msgstr "refresh: ignorera undermoduler"
-#: builtin/update-index.c:977
+#: builtin/update-index.c:978
msgid "do not ignore new files"
msgstr "ignorera inte nya filer"
-#: builtin/update-index.c:979
+#: builtin/update-index.c:980
msgid "let files replace directories and vice-versa"
msgstr "låt filer ersätta kataloger och omvänt"
-#: builtin/update-index.c:981
+#: builtin/update-index.c:982
msgid "notice files missing from worktree"
msgstr "lägg märke till filer som saknas i arbetskatalogen"
-#: builtin/update-index.c:983
+#: builtin/update-index.c:984
msgid "refresh even if index contains unmerged entries"
msgstr "uppdatera även om indexet innehåller ej sammanslagna poster"
-#: builtin/update-index.c:986
+#: builtin/update-index.c:987
msgid "refresh stat information"
msgstr "uppdatera statusinformation"
-#: builtin/update-index.c:990
+#: builtin/update-index.c:991
msgid "like --refresh, but ignore assume-unchanged setting"
msgstr "som --refresh, men ignorera assume-unchanged-inställning"
-#: builtin/update-index.c:994
+#: builtin/update-index.c:995
msgid "<mode>,<object>,<path>"
msgstr "<läge>,<objekt>,<sökväg>"
-#: builtin/update-index.c:995
+#: builtin/update-index.c:996
msgid "add the specified entry to the index"
msgstr "lägg till angiven post i indexet"
-#: builtin/update-index.c:1005
+#: builtin/update-index.c:1006
msgid "mark files as \"not changing\""
msgstr "markera filer som \"ändras inte\""
-#: builtin/update-index.c:1008
+#: builtin/update-index.c:1009
msgid "clear assumed-unchanged bit"
msgstr "rensa \"assume-unchanged\"-biten"
-#: builtin/update-index.c:1011
+#: builtin/update-index.c:1012
msgid "mark files as \"index-only\""
msgstr "markera filer som \"endast index\""
-#: builtin/update-index.c:1014
+#: builtin/update-index.c:1015
msgid "clear skip-worktree bit"
msgstr "töm \"skip-worktree\"-biten"
-#: builtin/update-index.c:1017
+#: builtin/update-index.c:1018
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:1019
+#: builtin/update-index.c:1020
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:1021
+#: builtin/update-index.c:1022
msgid "with --stdin: input lines are terminated by null bytes"
msgstr "med --stdin: indatarader termineras med null-byte"
-#: builtin/update-index.c:1023
+#: builtin/update-index.c:1024
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:1027
+#: builtin/update-index.c:1028
msgid "add entries from standard input to the index"
msgstr "lägg poster från standard in till indexet"
-#: builtin/update-index.c:1031
+#: builtin/update-index.c:1032
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:1035
+#: builtin/update-index.c:1036
msgid "only update entries that differ from HEAD"
msgstr "uppdatera endast poster som skiljer sig från HEAD"
-#: builtin/update-index.c:1039
+#: builtin/update-index.c:1040
msgid "ignore files missing from worktree"
msgstr "ignorera filer som saknas i arbetskatalogen"
-#: builtin/update-index.c:1042
+#: builtin/update-index.c:1043
msgid "report actions to standard output"
msgstr "rapportera åtgärder på standard ut"
-#: builtin/update-index.c:1044
+#: builtin/update-index.c:1045
msgid "(for porcelains) forget saved unresolved conflicts"
msgstr "(för porslin) glöm sparade olösta konflikter"
-#: builtin/update-index.c:1048
+#: builtin/update-index.c:1049
msgid "write index in this format"
msgstr "skriv index i detta format"
-#: builtin/update-index.c:1050
+#: builtin/update-index.c:1051
msgid "enable or disable split index"
msgstr "aktivera eller inaktivera delat index"
-#: builtin/update-index.c:1052
+#: builtin/update-index.c:1053
msgid "enable/disable untracked cache"
msgstr "aktivera/inaktivera ospårad cache"
-#: builtin/update-index.c:1054
+#: builtin/update-index.c:1055
msgid "test if the filesystem supports untracked cache"
msgstr "testa om filsystemet stöder ospårad cache"
-#: builtin/update-index.c:1056
+#: builtin/update-index.c:1057
msgid "enable untracked cache without testing the filesystem"
msgstr "aktivera ospårad cache utan att testa filsystemet"
-#: builtin/update-index.c:1058
+#: builtin/update-index.c:1059
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:1060
+#: builtin/update-index.c:1061
msgid "enable or disable file system monitor"
msgstr "aktivera eller inaktivera filsystemsövervakning"
-#: builtin/update-index.c:1062
+#: builtin/update-index.c:1063
msgid "mark files as fsmonitor valid"
msgstr "markera filer som \"fsmonitor valid\""
-#: builtin/update-index.c:1065
+#: builtin/update-index.c:1066
msgid "clear fsmonitor valid bit"
msgstr "töm \"fsmonitor valid\"-bit"
-#: builtin/update-index.c:1168
+#: builtin/update-index.c:1169
msgid ""
"core.splitIndex is set to false; remove or change it, if you really want to "
"enable split index"
@@ -20364,7 +20427,7 @@ msgstr ""
"core.splitIndex är satt till false; ta bort eller ändra det om du verkligen "
"vill aktivera delat index"
-#: builtin/update-index.c:1177
+#: builtin/update-index.c:1178
msgid ""
"core.splitIndex is set to true; remove or change it, if you really want to "
"disable split index"
@@ -20372,7 +20435,7 @@ msgstr ""
"core.splitIndex är satt till true; ta bort eller ändra det om du verkligen "
"vill inaktivera delat index"
-#: builtin/update-index.c:1188
+#: builtin/update-index.c:1190
msgid ""
"core.untrackedCache is set to true; remove or change it, if you really want "
"to disable the untracked cache"
@@ -20380,11 +20443,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:1192
+#: builtin/update-index.c:1194
msgid "Untracked cache disabled"
msgstr "Ospårad cache är inaktiverad"
-#: builtin/update-index.c:1200
+#: builtin/update-index.c:1202
msgid ""
"core.untrackedCache is set to false; remove or change it, if you really want "
"to enable the untracked cache"
@@ -20392,26 +20455,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:1204
+#: builtin/update-index.c:1206
#, c-format
msgid "Untracked cache enabled for '%s'"
msgstr "Ospårad cache är aktiverad för \"%s\""
-#: builtin/update-index.c:1212
+#: builtin/update-index.c:1214
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:1216
+#: builtin/update-index.c:1218
msgid "fsmonitor enabled"
msgstr "fsmonitor aktiverat"
-#: builtin/update-index.c:1219
+#: builtin/update-index.c:1221
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:1223
+#: builtin/update-index.c:1225
msgid "fsmonitor disabled"
msgstr "fsmonitor inaktiverat"
@@ -20471,15 +20534,15 @@ msgstr "testa inte <katalog>/.git/ om <katalog> inte är en Git-katalog"
msgid "interrupt transfer after <n> seconds of inactivity"
msgstr "avbryt överföringen efter <n> sekunders inaktivitet"
-#: builtin/verify-commit.c:20
+#: builtin/verify-commit.c:19
msgid "git verify-commit [-v | --verbose] <commit>..."
msgstr "git verify-commit [-v | --verbose] <incheckning>..."
-#: builtin/verify-commit.c:69
+#: builtin/verify-commit.c:68
msgid "print commit contents"
msgstr "visa innehåll för incheckning"
-#: builtin/verify-commit.c:70 builtin/verify-tag.c:38
+#: builtin/verify-commit.c:69 builtin/verify-tag.c:37
msgid "print raw gpg status output"
msgstr "visa råa gpg-statusdata"
@@ -20495,63 +20558,63 @@ msgstr "pratsam"
msgid "show statistics only"
msgstr "visa endast statistik"
-#: builtin/verify-tag.c:19
+#: builtin/verify-tag.c:18
msgid "git verify-tag [-v | --verbose] [--format=<format>] <tag>..."
msgstr "git verify-tag [-v | --verbose] [--format=<format] <tagg>..."
-#: builtin/verify-tag.c:37
+#: builtin/verify-tag.c:36
msgid "print tag contents"
msgstr "visa innehåll för tag"
-#: builtin/worktree.c:18
+#: builtin/worktree.c:17
msgid "git worktree add [<options>] <path> [<commit-ish>]"
msgstr "git worktree add [<flaggor>] <sökväg> [<incheckning-igt>]"
-#: builtin/worktree.c:19
+#: builtin/worktree.c:18
msgid "git worktree list [<options>]"
msgstr "git worktree list [<flaggor>]"
-#: builtin/worktree.c:20
+#: builtin/worktree.c:19
msgid "git worktree lock [<options>] <path>"
msgstr "git worktree lock [<flaggor>] <sökväg>"
-#: builtin/worktree.c:21
+#: builtin/worktree.c:20
msgid "git worktree move <worktree> <new-path>"
msgstr "git worktree move <arbetskatalog> <ny-sökväg>"
-#: builtin/worktree.c:22
+#: builtin/worktree.c:21
msgid "git worktree prune [<options>]"
msgstr "git worktree prune [<flaggor>]"
-#: builtin/worktree.c:23
+#: builtin/worktree.c:22
msgid "git worktree remove [<options>] <worktree>"
msgstr "git worktree remove [<flaggor>] <arbetskatalog>"
-#: builtin/worktree.c:24
+#: builtin/worktree.c:23
msgid "git worktree unlock <path>"
msgstr "git worktree unlock <sökväg>"
-#: builtin/worktree.c:61 builtin/worktree.c:899
+#: builtin/worktree.c:60 builtin/worktree.c:898
#, c-format
msgid "failed to delete '%s'"
msgstr "misslyckades ta bort \"%s\""
-#: builtin/worktree.c:80
+#: builtin/worktree.c:79
#, c-format
msgid "Removing worktrees/%s: not a valid directory"
msgstr "Tar bort worktrees/%s: inte en giltig katalog"
-#: builtin/worktree.c:86
+#: builtin/worktree.c:85
#, c-format
msgid "Removing worktrees/%s: gitdir file does not exist"
msgstr "Tar bort worktrees/%s: gitdir-filen existerar inte"
-#: builtin/worktree.c:91 builtin/worktree.c:100
+#: builtin/worktree.c:90 builtin/worktree.c:99
#, c-format
msgid "Removing worktrees/%s: unable to read gitdir file (%s)"
msgstr "Tar bort worktrees/%s: kan inte läsa gitdir-filen (%s)"
-#: builtin/worktree.c:110
+#: builtin/worktree.c:109
#, c-format
msgid ""
"Removing worktrees/%s: short read (expected %<PRIuMAX> bytes, read "
@@ -20560,35 +20623,35 @@ msgstr ""
"Tar bort worktrees/%s: kort läsning (förväntade %<PRIuMAX> byte, läste "
"%<PRIuMAX>)"
-#: builtin/worktree.c:118
+#: builtin/worktree.c:117
#, c-format
msgid "Removing worktrees/%s: invalid gitdir file"
msgstr "Tar bort worktrees/%s: felaktig gitdir-fil"
-#: builtin/worktree.c:127
+#: builtin/worktree.c:126
#, c-format
msgid "Removing worktrees/%s: gitdir file points to non-existent location"
msgstr "Tar bort worktrees/%s: gitdir-filen pekar på en ickeexisterande plats"
-#: builtin/worktree.c:166
+#: builtin/worktree.c:165
msgid "report pruned working trees"
msgstr "rapportera borttagna arbetskataloger"
-#: builtin/worktree.c:168
+#: builtin/worktree.c:167
msgid "expire working trees older than <time>"
msgstr "låt tid gå ut för arbetskataloger äldre än <tid>"
-#: builtin/worktree.c:235
+#: builtin/worktree.c:234
#, c-format
msgid "'%s' already exists"
msgstr "\"%s\" finns redan"
-#: builtin/worktree.c:252
+#: builtin/worktree.c:251
#, c-format
msgid "unable to re-add worktree '%s'"
msgstr "kunde inte lägga in arbetskatalogen \"%s\" igen"
-#: builtin/worktree.c:257
+#: builtin/worktree.c:256
#, c-format
msgid ""
"'%s' is a missing but locked worktree;\n"
@@ -20598,7 +20661,7 @@ msgstr ""
"använd \"add -f -f\" för att överstyra, eller \"unlock\" och \"prune\" eller "
"\"remove\" för att rensa"
-#: builtin/worktree.c:259
+#: builtin/worktree.c:258
#, c-format
msgid ""
"'%s' is a missing but already registered worktree;\n"
@@ -20608,121 +20671,121 @@ msgstr ""
"använd \"add -f\" för att överstyra, eller \"prune\" eller \"remove\" för "
"att rensa"
-#: builtin/worktree.c:309
+#: builtin/worktree.c:308
#, c-format
msgid "could not create directory of '%s'"
msgstr "kunde inte skapa katalogen \"%s\""
-#: builtin/worktree.c:440 builtin/worktree.c:446
+#: builtin/worktree.c:439 builtin/worktree.c:445
#, c-format
msgid "Preparing worktree (new branch '%s')"
msgstr "Förbereder arbetskatalog (ny gren \"%s\")"
-#: builtin/worktree.c:442
+#: builtin/worktree.c:441
#, 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:451
+#: builtin/worktree.c:450
#, c-format
msgid "Preparing worktree (checking out '%s')"
msgstr "Förbereder arbetskatalog (checkar ut \"%s\")"
-#: builtin/worktree.c:457
+#: builtin/worktree.c:456
#, c-format
msgid "Preparing worktree (detached HEAD %s)"
msgstr "Förbereder arbetskatalog (frånkopplat HEAD %s)"
-#: builtin/worktree.c:498
+#: builtin/worktree.c:497
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:501
+#: builtin/worktree.c:500
msgid "create a new branch"
msgstr "skapa en ny gren"
-#: builtin/worktree.c:503
+#: builtin/worktree.c:502
msgid "create or reset a branch"
msgstr "skapa eller återställ en gren"
-#: builtin/worktree.c:505
+#: builtin/worktree.c:504
msgid "populate the new working tree"
msgstr "befolka den nya arbetskatalogen"
-#: builtin/worktree.c:506
+#: builtin/worktree.c:505
msgid "keep the new working tree locked"
msgstr "låt arbetskatalogen förbli låst"
-#: builtin/worktree.c:509
+#: builtin/worktree.c:508
msgid "set up tracking mode (see git-branch(1))"
msgstr "ställ in spårningsläge (se git-branch(1))"
-#: builtin/worktree.c:512
+#: builtin/worktree.c:511
msgid "try to match the new branch name with a remote-tracking branch"
msgstr "försök matcha namn på ny gren mot en fjärrspårande gren"
-#: builtin/worktree.c:520
+#: builtin/worktree.c:519
msgid "-b, -B, and --detach are mutually exclusive"
msgstr "-b, -B och --detach är ömsesidigt uteslutande"
-#: builtin/worktree.c:581
+#: builtin/worktree.c:580
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:681
+#: builtin/worktree.c:680
msgid "reason for locking"
msgstr "orsak till lås"
-#: builtin/worktree.c:693 builtin/worktree.c:726 builtin/worktree.c:800
-#: builtin/worktree.c:927
+#: builtin/worktree.c:692 builtin/worktree.c:725 builtin/worktree.c:799
+#: builtin/worktree.c:926
#, c-format
msgid "'%s' is not a working tree"
msgstr "\"%s\" är inte en arbetskatalog"
-#: builtin/worktree.c:695 builtin/worktree.c:728
+#: builtin/worktree.c:694 builtin/worktree.c:727
msgid "The main working tree cannot be locked or unlocked"
msgstr "Huvudarbetskatalogen kan inte låsas eller låsas upp"
-#: builtin/worktree.c:700
+#: builtin/worktree.c:699
#, c-format
msgid "'%s' is already locked, reason: %s"
msgstr "\"%s\" är redan låst, orsak: %s"
-#: builtin/worktree.c:702
+#: builtin/worktree.c:701
#, c-format
msgid "'%s' is already locked"
msgstr "\"%s\" är redan låst"
-#: builtin/worktree.c:730
+#: builtin/worktree.c:729
#, c-format
msgid "'%s' is not locked"
msgstr "\"%s\" är inte låst"
-#: builtin/worktree.c:771
+#: builtin/worktree.c:770
msgid "working trees containing submodules cannot be moved or removed"
msgstr "arbetskataloger med undermoduler kan inte flyttas eller tas bort"
-#: builtin/worktree.c:779
+#: builtin/worktree.c:778
msgid "force move even if worktree is dirty or locked"
msgstr "tvinga flyttning även om arbetskatalogen är smutsig eller låst"
-#: builtin/worktree.c:802 builtin/worktree.c:929
+#: builtin/worktree.c:801 builtin/worktree.c:928
#, c-format
msgid "'%s' is a main working tree"
msgstr "\"%s\" är inte en huvudarbetskatalog"
-#: builtin/worktree.c:807
+#: builtin/worktree.c:806
#, c-format
msgid "could not figure out destination name from '%s'"
msgstr "kunde inte lista ut målnamn från \"%s\""
-#: builtin/worktree.c:813
+#: builtin/worktree.c:812
#, c-format
msgid "target '%s' already exists"
msgstr "målet \"%s\" finns redan"
-#: builtin/worktree.c:821
+#: builtin/worktree.c:820
#, c-format
msgid ""
"cannot move a locked working tree, lock reason: %s\n"
@@ -20731,7 +20794,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:823
+#: builtin/worktree.c:822
msgid ""
"cannot move a locked working tree;\n"
"use 'move -f -f' to override or unlock first"
@@ -20739,36 +20802,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:826
+#: builtin/worktree.c:825
#, c-format
msgid "validation failed, cannot move working tree: %s"
msgstr "kontroll misslyckades, kan inte flytta arbetskatalog: %s"
-#: builtin/worktree.c:831
+#: builtin/worktree.c:830
#, c-format
msgid "failed to move '%s' to '%s'"
msgstr "misslyckades flytta \"%s\" till \"%s\""
-#: builtin/worktree.c:879
+#: builtin/worktree.c:878
#, c-format
msgid "failed to run 'git status' on '%s'"
msgstr "misslyckades köra \"git status\" på \"%s\""
-#: builtin/worktree.c:883
+#: builtin/worktree.c:882
#, c-format
-msgid "'%s' is dirty, use --force to delete it"
-msgstr "\"%s\" är smutsigt, använd --force för att ta bort det"
+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:888
+#: builtin/worktree.c:887
#, 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:911
+#: builtin/worktree.c:910
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:934
+#: builtin/worktree.c:933
#, c-format
msgid ""
"cannot remove a locked working tree, lock reason: %s\n"
@@ -20777,7 +20842,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:936
+#: builtin/worktree.c:935
msgid ""
"cannot remove a locked working tree;\n"
"use 'remove -f -f' to override or unlock first"
@@ -20785,7 +20850,7 @@ msgstr ""
"kan inte ta bort en låst arbetskatalog;\n"
"använd \"remove -f -f\" för att överstyra, eller lås upp först"
-#: builtin/worktree.c:939
+#: builtin/worktree.c:938
#, c-format
msgid "validation failed, cannot remove working tree: %s"
msgstr "kontroll misslyckades, kan inte ta bort arbetskatalog: %s"
@@ -20806,6 +20871,16 @@ msgstr "visa trädobjekt för underkatalogen <prefix>"
msgid "only useful for debugging"
msgstr "endast användbart vid felsökning"
+#: fast-import.c:3118
+#, c-format
+msgid "Expected 'mark' command, got %s"
+msgstr "Förväntade \"mark\"-kommando, fick %s"
+
+#: fast-import.c:3123
+#, c-format
+msgid "Expected 'to' command, got %s"
+msgstr "Förväntade \"to\"-kommando, fick %s"
+
#: credential-cache--daemon.c:223
#, c-format
msgid ""
@@ -20918,39 +20993,39 @@ msgstr ""
"aliaset \"%s\" ändrar miljövariabler.\n"
"Du kan använda \"!git\" i aliaset för att göra det"
-#: git.c:377
+#: git.c:376
#, c-format
msgid "empty alias for %s"
msgstr "tomt alias för %s"
-#: git.c:380
+#: git.c:379
#, c-format
msgid "recursive alias: %s"
msgstr "rekursivt alias: %s"
-#: git.c:460
+#: git.c:459
msgid "write failure on standard output"
msgstr "skrivfel på standard ut"
-#: git.c:462
+#: git.c:461
msgid "unknown write failure on standard output"
msgstr "okänt skrivfel på standard ut"
-#: git.c:464
+#: git.c:463
msgid "close failed on standard output"
msgstr "stäng misslyckades på standard ut"
-#: git.c:796
+#: git.c:792
#, 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:846
+#: git.c:842
#, c-format
msgid "cannot handle %s as a builtin"
msgstr "kan inte hantera %s som inbyggd"
-#: git.c:859
+#: git.c:855
#, c-format
msgid ""
"usage: %s\n"
@@ -20959,13 +21034,13 @@ msgstr ""
"användning: %s\n"
"\n"
-#: git.c:879
+#: git.c:875
#, 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:891
+#: git.c:887
#, c-format
msgid "failed to run command '%s': %s\n"
msgstr "misslyckades köra kommandot \"%s\": %s\n"
@@ -20983,30 +21058,30 @@ msgstr "Delegerad styrning stöds inte av cURL < 7.22.0"
msgid "Public key pinning not supported with cURL < 7.44.0"
msgstr "Fastnålning av öppen nyckel stöds inte av cURL < 7.44.0"
-#: http.c:876
+#: http.c:878
msgid "CURLSSLOPT_NO_REVOKE not supported with cURL < 7.44.0"
msgstr "CURLSSLOPT_NO_REVOKE stöds inte av cURL < 7.44.0"
-#: http.c:949
+#: http.c:951
msgid "Protocol restrictions not supported with cURL < 7.19.4"
msgstr "Prtokollbegränsningar stöds inte av cURL < 7.19.4"
-#: http.c:1085
+#: http.c:1088
#, c-format
msgid "Unsupported SSL backend '%s'. Supported SSL backends:"
msgstr "SSL-bakändan \"%s\" stöds inte. Dessa SSL-bakändor stöds:"
-#: http.c:1092
+#: http.c:1095
#, c-format
msgid "Could not set SSL backend to '%s': cURL was built without SSL backends"
msgstr "Kan inte sätta SSL-bakända till \"%s\": cURL byggdes utan SSL-bakändor"
-#: http.c:1096
+#: http.c:1099
#, c-format
msgid "Could not set SSL backend to '%s': already set"
msgstr "Kunde inte sätta SSL-bakända till \"%s\": redan valt"
-#: http.c:1965
+#: http.c:1968
#, c-format
msgid ""
"unable to update url base from redirection:\n"
@@ -21017,128 +21092,128 @@ msgstr ""
" bad om: %s\n"
" omdirigering: %s"
-#: remote-curl.c:157
+#: remote-curl.c:166
#, c-format
msgid "invalid quoting in push-option value: '%s'"
msgstr "felaktig citering på värde för push-option: \"%s\""
-#: remote-curl.c:254
+#: remote-curl.c:263
#, 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:355
+#: remote-curl.c:364
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:386
+#: remote-curl.c:395
#, c-format
msgid "invalid server response; got '%s'"
msgstr "ogiltigt svar från servern; fick \"%s\""
-#: remote-curl.c:446
+#: remote-curl.c:455
#, c-format
msgid "repository '%s' not found"
msgstr "arkivet \"%s\" hittades inte"
-#: remote-curl.c:450
+#: remote-curl.c:459
#, c-format
msgid "Authentication failed for '%s'"
msgstr "Autentisering misslyckades \"%s\""
-#: remote-curl.c:454
+#: remote-curl.c:463
#, c-format
msgid "unable to access '%s': %s"
msgstr "kan inte komma åt \"%s\": %s"
-#: remote-curl.c:460
+#: remote-curl.c:469
#, c-format
msgid "redirecting to %s"
msgstr "omdirigerar till %s"
-#: remote-curl.c:584
+#: remote-curl.c:593
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:664
+#: remote-curl.c:673
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:724
+#: remote-curl.c:733
#, c-format
msgid "RPC failed; %s"
msgstr "RPC misslyckades; %s"
-#: remote-curl.c:764
+#: remote-curl.c:773
msgid "cannot handle pushes this big"
msgstr "kan inte hantera så stora sändningar"
-#: remote-curl.c:879
+#: remote-curl.c:888
#, c-format
msgid "cannot deflate request; zlib deflate error %d"
msgstr "kan inte packa upp anrop; zlib-deflate-fel %d"
-#: remote-curl.c:883
+#: remote-curl.c:892
#, c-format
msgid "cannot deflate request; zlib end error %d"
msgstr "kan inte packa upp anrop; zlib-slutfel %d"
-#: remote-curl.c:1014
+#: remote-curl.c:1023
msgid "dumb http transport does not support shallow capabilities"
msgstr "dum http-transport stöder inte grunda arkiv"
-#: remote-curl.c:1028
+#: remote-curl.c:1037
msgid "fetch failed."
msgstr "mottagning misslyckades."
-#: remote-curl.c:1076
+#: remote-curl.c:1085
msgid "cannot fetch by sha1 over smart http"
msgstr "kan inte hämta med sha1 över smart http"
-#: remote-curl.c:1120 remote-curl.c:1126
+#: remote-curl.c:1129 remote-curl.c:1135
#, c-format
msgid "protocol error: expected sha/ref, got '%s'"
msgstr "protokollfel: förväntade sha/ref, fick \"%s\""
-#: remote-curl.c:1138 remote-curl.c:1252
+#: remote-curl.c:1147 remote-curl.c:1261
#, c-format
msgid "http transport does not support %s"
msgstr "http-transporten stöder inte %s"
-#: remote-curl.c:1174
+#: remote-curl.c:1183
msgid "git-http-push failed"
msgstr "git-http-push misslyckades"
-#: remote-curl.c:1360
+#: remote-curl.c:1367
msgid "remote-curl: usage: git remote-curl <remote> [<url>]"
msgstr "remote-curl: användning: git remote-curl <fjärr> [<url>]"
-#: remote-curl.c:1392
+#: remote-curl.c:1399
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:1399
+#: remote-curl.c:1406
msgid "remote-curl: fetch attempted without a local repo"
msgstr "remote-curl: försökte ta emot utan lokalt arkiv"
-#: remote-curl.c:1439
+#: remote-curl.c:1446
#, c-format
msgid "remote-curl: unknown command '%s' from git"
msgstr "remote-curl: okänt kommando \"%s\" från git"
-#: list-objects-filter-options.h:61
+#: list-objects-filter-options.h:85
msgid "args"
msgstr "argument"
-#: list-objects-filter-options.h:62
+#: list-objects-filter-options.h:86
msgid "object filtering"
msgstr "objektfiltrering"
-#: parse-options.h:170
+#: parse-options.h:179
msgid "expiry-date"
msgstr "giltig-till"
-#: parse-options.h:184
+#: parse-options.h:193
msgid "no-op (backward compatibility)"
msgstr "ingen funktion (bakåtkompatibilitet)"
@@ -21170,11 +21245,11 @@ msgstr "fältnamn att sortera på"
msgid "update the index with reused conflict resolution if possible"
msgstr "uppdatera indexet med återanvänd konfliktlösning om möjligt"
-#: wt-status.h:68
+#: wt-status.h:67
msgid "HEAD detached at "
msgstr "HEAD frånkopplad vid "
-#: wt-status.h:69
+#: wt-status.h:68
msgid "HEAD detached from "
msgstr "HEAD frånkopplad från "
@@ -21385,7 +21460,7 @@ msgstr "Städa onödiga filer och optimera det lokala arkivet"
#: command-list.h:101
msgid "Extract commit ID from an archive created using git-archive"
-msgstr "Hämta inchecknings-ID från ett arkiv skapat med git-archive"
+msgstr "Hämta inchecknings-id från ett arkiv skapat med git-archive"
#: command-list.h:102
msgid "Print lines matching a pattern"
@@ -21397,7 +21472,7 @@ msgstr "Ett portabelt grafiskt gränssnitt för Git"
#: command-list.h:104
msgid "Compute object ID and optionally creates a blob from a file"
-msgstr "Beräkna objekt-ID och möjligen skapa en blob från en fil"
+msgstr "Beräkna objekt-id och möjligen skapa en blob från en fil"
#: command-list.h:105
msgid "Display help information about Git"
@@ -23524,6 +23599,75 @@ msgstr ""
msgid "Do you really want to send %s? [y|N]: "
msgstr "Vill du verkligen sända %s? [y=ja, n=nej]: "
+#~ msgid "unknown core.untrackedCache value '%s'; using 'keep' default value"
+#~ msgstr ""
+#~ "okänt värde \"%s\" för core.untrackedCache; använder standardvärdet \"keep"
+#~ "\""
+
+#~ msgid "cannot change partial clone promisor remote"
+#~ msgstr "kan inte ändra kontraktsfjärr för delvis kloning"
+
+#~ 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"
+
+#~ msgid "staged changes in the following files may be lost: %s"
+#~ msgstr "köade ändringar i följande filer kan gå förlorade: %s"
+
+#~ msgid ""
+#~ "--filter can only be used with the remote configured in extensions."
+#~ "partialClone"
+#~ msgstr ""
+#~ "--filter kan endast användas med fjärren konfigurerad i extensions."
+#~ "partialClone"
+
+#~ msgid "verify commit-msg hook"
+#~ msgstr "bekräfta commit-msg-krok"
+
+#~ msgid "cannot combine '--rebase-merges' with '--strategy-option'"
+#~ msgstr "kan inte kombinera \"--rebase-merges\" med \"--strategy-option\""
+
+#~ msgid "invalid sparse value '%s'"
+#~ msgstr "ogiltigt värde för sparse: \"%s\""
+
+#~ msgid ""
+#~ "Fetch normally indicates which branches had a forced update, but that "
+#~ "check has been disabled."
+#~ msgstr ""
+#~ "Hämtning visar vanligtvis vilka grenar som har en tvingad uppdatering, "
+#~ "men det testet har slagits av."
+
+#~ msgid ""
+#~ "or run 'git config fetch.showForcedUpdates false' to avoid this check.\n"
+#~ msgstr ""
+#~ "eller kör \"git config fetch.showForcedUpdates false\" för undvika "
+#~ "testet.\n"
+
+#~ msgid ""
+#~ "log.mailmap is not set; its implicit value will change in an\n"
+#~ "upcoming release. To squelch this message and preserve current\n"
+#~ "behaviour, set the log.mailmap configuration value to false.\n"
+#~ "\n"
+#~ "To squelch this message and adopt the new behaviour now, set the\n"
+#~ "log.mailmap configuration value to true.\n"
+#~ "\n"
+#~ "See 'git help config' and search for 'log.mailmap' for further "
+#~ "information."
+#~ msgstr ""
+#~ "log.mailmap har inte satts: förvalet kommer ändras i en kommande\n"
+#~ "version. För att dölja det här meddelandet och behålla nuvarande\n"
+#~ "beteende, sätt konfigurationsvariabeln log.mailmap till false.\n"
+#~ "\n"
+#~ "För att dölja det här meddelandet och använda det nya beteendet,\n"
+#~ "sätt konfigurationsvariabeln log.mailmap till true.\n"
+#~ "\n"
+#~ "Se \"git help config\" och sök efter \"log.mailmap\" för mer information."
+
#~ msgid "Server supports multi_ack_detailed"
#~ msgstr "Servern stöder \"multi_ack_detailed\""
@@ -24405,9 +24549,6 @@ msgstr "Vill du verkligen sända %s? [y=ja, n=nej]: "
#~ msgid "Could not append '%s'"
#~ msgstr "Kunde inte lägga till på \"%s\""
-#~ msgid "Missing author: %s"
-#~ msgstr "Författare saknas: %s"
-
#~ msgid "Testing "
#~ msgstr "Testar"
@@ -24465,9 +24606,6 @@ msgstr "Vill du verkligen sända %s? [y=ja, n=nej]: "
#~ msgid "option %s does not accept negative form"
#~ msgstr "flaggan %s godtar inte negativ form"
-#~ msgid "unable to parse value '%s' for option %s"
-#~ msgstr "kunde inte tolka värdet \"%s\" för flaggan %s"
-
#~ msgid "-b and -B are mutually exclusive"
#~ msgstr "-b och -B kan inte användas samtidigt"
diff --git a/po/vi.po b/po/vi.po
index b8aa93a..a00211f 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -6,10 +6,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: git v2.23.0-rc2\n"
+"Project-Id-Version: git v2.24.0\n"
"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2019-08-10 20:12+0800\n"
-"PO-Revision-Date: 2019-08-11 07:08+0700\n"
+"POT-Creation-Date: 2019-10-28 13:19+0800\n"
+"PO-Revision-Date: 2019-10-29 14:35+0700\n"
"Last-Translator: Trần Ngá»c Quân <vnwildman@gmail.com>\n"
"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
"Language: vi\n"
@@ -72,7 +72,7 @@ msgstr ""
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:193 builtin/merge.c:1327
+#: advice.c:193 builtin/merge.c:1332
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)."
@@ -212,17 +212,7 @@ msgstr "chế độ không hợp lệ trên dòng %d: %s"
msgid "inconsistent header lines %d and %d"
msgstr "phần đầu mâu thuẫn dòng %d và %d"
-#: apply.c:1460
-#, c-format
-msgid "recount: unexpected line: %.*s"
-msgstr "chi tiết: dòng không cần: %.*s"
-
-#: apply.c:1529
-#, 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:1551
+#: apply.c:1372
#, c-format
msgid ""
"git diff header lacks filename information when removing %d leading pathname "
@@ -234,81 +224,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:1564
+#: apply.c:1385
#, 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:1752
+#: apply.c:1481
+#, c-format
+msgid "recount: unexpected line: %.*s"
+msgstr "chi tiết: dòng không cần: %.*s"
+
+#: apply.c:1550
+#, 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:1753
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:1755
msgid "deleted file still has contents"
msgstr "tập tin đã xóa vẫn còn nội dung"
-#: apply.c:1788
+#: apply.c:1789
#, c-format
msgid "corrupt patch at line %d"
msgstr "miếng vá há»ng tại dòng %d"
-#: apply.c:1825
+#: apply.c:1826
#, 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:1828
#, 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:1831
#, 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:1977
+#: apply.c:1978
#, 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:2014
+#: apply.c:2015
#, 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:2176
+#: apply.c:2177
#, c-format
msgid "patch with only garbage at line %d"
msgstr "vá chỉ với “rác†tại dòng %d"
-#: apply.c:2262
+#: apply.c:2263
#, c-format
msgid "unable to read symlink %s"
msgstr "không thể Ä‘á»c liên kết má»m %s"
-#: apply.c:2266
+#: apply.c:2267
#, c-format
msgid "unable to open or read %s"
msgstr "không thể mở hay Ä‘á»c %s"
-#: apply.c:2925
+#: apply.c:2926
#, c-format
msgid "invalid start of line: '%c'"
msgstr "sai khởi đầu dòng: “%câ€"
-#: apply.c:3046
+#: apply.c:3047
#, 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:3058
+#: apply.c:3059
#, c-format
msgid "Context reduced to (%ld/%ld) to apply fragment at %d"
msgstr "Nội dung bị giảm xuống còn (%ld/%ld) để áp dụng mảnh dữ liệu tại %d"
-#: apply.c:3064
+#: apply.c:3065
#, c-format
msgid ""
"while searching for:\n"
@@ -317,453 +317,453 @@ msgstr ""
"trong khi đang tìm kiếm cho:\n"
"%.*s"
-#: apply.c:3086
+#: apply.c:3087
#, 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:3094
+#: apply.c:3095
#, 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:3141
+#: apply.c:3142
#, 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:3151
+#: apply.c:3152
#, 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:3159
+#: apply.c:3160
#, 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:3177
+#: apply.c:3178
#, 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:3190
+#: apply.c:3191
#, 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:3196
+#: apply.c:3197
#, 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:3217
+#: apply.c:3218
#, c-format
msgid "patch failed: %s:%ld"
msgstr "gặp lỗi khi vá: %s:%ld"
-#: apply.c:3340
+#: apply.c:3341
#, c-format
msgid "cannot checkout %s"
msgstr "không thể lấy ra %s"
-#: apply.c:3392 apply.c:3403 apply.c:3449 midx.c:62 setup.c:279
+#: apply.c:3393 apply.c:3404 apply.c:3450 midx.c:61 setup.c:280
#, c-format
msgid "failed to read %s"
msgstr "gặp lá»—i khi Ä‘á»c %s"
-#: apply.c:3400
+#: apply.c:3401
#, 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:3429 apply.c:3672
+#: apply.c:3430 apply.c:3673
#, c-format
msgid "path %s has been renamed/deleted"
msgstr "Ä‘Æ°á»ng dẫn %s đã bị xóa hoặc đổi tên"
-#: apply.c:3515 apply.c:3687
+#: apply.c:3516 apply.c:3688
#, 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:3524 apply.c:3695
+#: apply.c:3525 apply.c:3696
#, c-format
msgid "%s: does not match index"
msgstr "%s: không khớp trong mục lục"
-#: apply.c:3559
+#: apply.c:3560
msgid "repository lacks the necessary blob to fall back on 3-way merge."
msgstr "kho thiếu đối tượng blob cần thiết để trở vá» trên “3-way mergeâ€."
-#: apply.c:3562
+#: apply.c:3563
#, c-format
msgid "Falling back to three-way merge...\n"
msgstr "Äang trở lại hòa trá»™n “3-Ä‘Æ°á»ngâ€â€¦\n"
-#: apply.c:3578 apply.c:3582
+#: apply.c:3579 apply.c:3583
#, 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:3594
+#: apply.c:3595
#, c-format
msgid "Failed to fall back on three-way merge...\n"
msgstr "Gặp lá»—i khi quay trở lại để hòa trá»™n kiểu “three-wayâ€â€¦\n"
-#: apply.c:3608
+#: apply.c:3609
#, 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:3613
+#: apply.c:3614
#, 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:3639
+#: apply.c:3640
msgid "removal patch leaves file contents"
msgstr "loại bỠmiếng vá để lại nội dung tập tin"
-#: apply.c:3712
+#: apply.c:3713
#, c-format
msgid "%s: wrong type"
msgstr "%s: sai kiểu"
-#: apply.c:3714
+#: apply.c:3715
#, c-format
msgid "%s has type %o, expected %o"
msgstr "%s có kiểu %o, cần %o"
-#: apply.c:3865 apply.c:3867 read-cache.c:830 read-cache.c:856
+#: apply.c:3866 apply.c:3868 read-cache.c:830 read-cache.c:856
#: read-cache.c:1309
#, c-format
msgid "invalid path '%s'"
msgstr "Ä‘Æ°á»ng dẫn không hợp lệ “%sâ€"
-#: apply.c:3923
+#: apply.c:3924
#, c-format
msgid "%s: already exists in index"
msgstr "%s: đã có từ trước trong bảng mục lục"
-#: apply.c:3926
+#: apply.c:3927
#, 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:3946
+#: apply.c:3947
#, 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:3951
+#: apply.c:3952
#, 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:3971
+#: apply.c:3972
#, 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:3975
+#: apply.c:3976
#, c-format
msgid "%s: patch does not apply"
msgstr "%s: miếng vá không được áp dụng"
-#: apply.c:3990
+#: apply.c:3991
#, c-format
msgid "Checking patch %s..."
msgstr "Äang kiểm tra miếng vá %s…"
-#: apply.c:4082
+#: apply.c:4083
#, 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:4089
+#: apply.c:4090
#, 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:4092
+#: apply.c:4093
#, 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:4097 builtin/checkout.c:278 builtin/reset.c:143
+#: apply.c:4098 builtin/checkout.c:279 builtin/reset.c:143
#, 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â€"
-#: apply.c:4101
+#: apply.c:4102
#, 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:4111
+#: apply.c:4112
#, 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:4249
+#: apply.c:4250
#, c-format
msgid "unable to remove %s from index"
msgstr "không thể gỡ bỠ%s từ mục lục"
-#: apply.c:4283
+#: apply.c:4284
#, c-format
msgid "corrupt patch for submodule %s"
msgstr "miếng vá sai há»ng cho mô-Ä‘un-con %s"
-#: apply.c:4289
+#: apply.c:4290
#, 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:4297
+#: apply.c:4298
#, 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:4303 apply.c:4448
+#: apply.c:4304 apply.c:4449
#, c-format
msgid "unable to add cache entry for %s"
msgstr "không thể thêm mục nhớ đệm cho %s"
-#: apply.c:4346
+#: apply.c:4347
#, c-format
msgid "failed to write to '%s'"
msgstr "gặp lá»—i khi ghi vào “%sâ€"
-#: apply.c:4350
+#: apply.c:4351
#, c-format
msgid "closing file '%s'"
msgstr "Ä‘ang đóng tập tin “%sâ€"
-#: apply.c:4420
+#: apply.c:4421
#, 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:4518
+#: apply.c:4519
#, c-format
msgid "Applied patch %s cleanly."
msgstr "Äã áp dụng miếng vá %s má»™t cách sạch sẽ."
-#: apply.c:4526
+#: apply.c:4527
msgid "internal error"
msgstr "lá»—i ná»™i bá»™"
-#: apply.c:4529
+#: apply.c:4530
#, 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:4540
+#: apply.c:4541
#, 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:4548 builtin/fetch.c:878 builtin/fetch.c:1168
+#: apply.c:4549 builtin/fetch.c:898 builtin/fetch.c:1194
#, c-format
msgid "cannot open %s"
msgstr "không mở được “%sâ€"
-#: apply.c:4562
+#: apply.c:4563
#, c-format
msgid "Hunk #%d applied cleanly."
msgstr "Khối nhá»› #%d được áp dụng gá»n gàng."
-#: apply.c:4566
+#: apply.c:4567
#, c-format
msgid "Rejected hunk #%d."
msgstr "Äoạn dữ liệu #%d bị từ chối."
-#: apply.c:4676
+#: apply.c:4686
#, c-format
msgid "Skipped patch '%s'."
msgstr "Bá» qua Ä‘Æ°á»ng dẫn “%sâ€."
-#: apply.c:4684
+#: apply.c:4694
msgid "unrecognized input"
msgstr "không thừa nhận đầu vào"
-#: apply.c:4704
+#: apply.c:4714
msgid "unable to read index file"
msgstr "không thể Ä‘á»c tập tin lÆ°u bảng mục lục"
-#: apply.c:4859
+#: apply.c:4871
#, c-format
msgid "can't open patch '%s': %s"
msgstr "không thể mở miếng vá “%sâ€: %s"
-#: apply.c:4886
+#: apply.c:4898
#, 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:4892 apply.c:4907
+#: apply.c:4904 apply.c:4919
#, 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:4900
+#: apply.c:4912
#, 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:4916 builtin/add.c:540 builtin/mv.c:301 builtin/rm.c:390
+#: apply.c:4928 builtin/add.c:540 builtin/mv.c:301 builtin/rm.c:390
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:4943 apply.c:4946 builtin/am.c:2208 builtin/am.c:2211
-#: builtin/clone.c:123 builtin/fetch.c:128 builtin/merge.c:273
-#: builtin/pull.c:208 builtin/submodule--helper.c:407
+#: apply.c:4955 apply.c:4958 builtin/am.c:2197 builtin/am.c:2200
+#: builtin/clone.c:122 builtin/fetch.c:143 builtin/merge.c:273
+#: builtin/pull.c:209 builtin/submodule--helper.c:407
#: builtin/submodule--helper.c:1367 builtin/submodule--helper.c:1370
#: builtin/submodule--helper.c:1850 builtin/submodule--helper.c:1853
#: builtin/submodule--helper.c:2092 git-add--interactive.perl:211
msgid "path"
msgstr "Ä‘Æ°á»ng-dẫn"
-#: apply.c:4944
+#: apply.c:4956
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:4947
+#: apply.c:4959
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:4949 builtin/am.c:2217
+#: apply.c:4961 builtin/am.c:2206
msgid "num"
msgstr "số"
-#: apply.c:4950
+#: apply.c:4962
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:4953
+#: apply.c:4965
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:4955
+#: apply.c:4967
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:4959
+#: apply.c:4971
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:4961
+#: apply.c:4973
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:4963
+#: apply.c:4975
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:4965
+#: apply.c:4977
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:4967
+#: apply.c:4979
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:4969
+#: apply.c:4981
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:4971
+#: apply.c:4983
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:4974
+#: apply.c:4986
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:4976
+#: apply.c:4988
msgid "attempt three-way merge if a patch does not apply"
msgstr "thử hòa trộn kiểu three-way nếu việc vá không thể thực hiện được"
-#: apply.c:4978
+#: apply.c:4990
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:4981 builtin/checkout-index.c:173 builtin/ls-files.c:524
+#: apply.c:4993 builtin/checkout-index.c:173 builtin/ls-files.c:524
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:4983
+#: apply.c:4995
msgid "ensure at least <n> lines of context match"
msgstr "đảm bảo rằng có ít nhất <n> dòng nội dung khớp"
-#: apply.c:4984 builtin/am.c:2196 builtin/interpret-trailers.c:98
+#: apply.c:4996 builtin/am.c:2185 builtin/interpret-trailers.c:98
#: builtin/interpret-trailers.c:100 builtin/interpret-trailers.c:102
-#: builtin/pack-objects.c:3330 builtin/rebase.c:1421
+#: builtin/pack-objects.c:3310 builtin/rebase.c:1445
msgid "action"
msgstr "hành động"
-#: apply.c:4985
+#: apply.c:4997
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:4988 apply.c:4991
+#: apply.c:5000 apply.c:5003
msgid "ignore changes in whitespace when finding context"
msgstr "lỠđi sự thay đổi do khoảng trắng gây ra khi quét nội dung"
-#: apply.c:4994
+#: apply.c:5006
msgid "apply the patch in reverse"
msgstr "áp dụng miếng vá theo chiá»u ngược"
-#: apply.c:4996
+#: apply.c:5008
msgid "don't expect at least one line of context"
msgstr "đừng hy vá»ng có ít nhất má»™t dòng ná»™i dung"
-#: apply.c:4998
+#: apply.c:5010
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:5000
+#: apply.c:5012
msgid "allow overlapping hunks"
msgstr "cho phép chồng khối nhớ"
-#: apply.c:5001 builtin/add.c:291 builtin/check-ignore.c:22
+#: apply.c:5013 builtin/add.c:291 builtin/check-ignore.c:22
#: builtin/commit.c:1337 builtin/count-objects.c:98 builtin/fsck.c:786
-#: builtin/log.c:2068 builtin/mv.c:123 builtin/read-tree.c:128
+#: builtin/log.c:2085 builtin/mv.c:123 builtin/read-tree.c:128
msgid "be verbose"
msgstr "chi tiết"
-#: apply.c:5003
+#: apply.c:5015
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:5006
+#: apply.c:5018
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:5008 builtin/am.c:2205
+#: apply.c:5020 builtin/am.c:2194
msgid "root"
msgstr "gốc"
-#: apply.c:5009
+#: apply.c:5021
msgid "prepend <root> to all filenames"
msgstr "treo thêm <root> vào tất cả các tên tập tin"
@@ -818,7 +818,7 @@ msgstr "định_dạng"
msgid "archive format"
msgstr "định dạng lưu trữ"
-#: archive.c:458 builtin/log.c:1580
+#: archive.c:458 builtin/log.c:1581
msgid "prefix"
msgstr "tiá»n_tố"
@@ -826,11 +826,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:460 builtin/blame.c:862 builtin/blame.c:874 builtin/blame.c:875
-#: builtin/commit-tree.c:117 builtin/config.c:129 builtin/fast-export.c:1134
-#: builtin/fast-export.c:1136 builtin/grep.c:897 builtin/hash-object.c:105
-#: builtin/ls-files.c:560 builtin/ls-files.c:563 builtin/notes.c:412
-#: builtin/notes.c:578 builtin/read-tree.c:123 parse-options.h:177
+#: archive.c:460 builtin/blame.c:861 builtin/blame.c:873 builtin/blame.c:874
+#: builtin/commit-tree.c:117 builtin/config.c:129 builtin/fast-export.c:1162
+#: builtin/fast-export.c:1164 builtin/fast-export.c:1168 builtin/grep.c:899
+#: builtin/hash-object.c:105 builtin/ls-files.c:560 builtin/ls-files.c:563
+#: builtin/notes.c:412 builtin/notes.c:578 builtin/read-tree.c:123
+#: parse-options.h:186
msgid "file"
msgstr "tập_tin"
@@ -862,7 +863,7 @@ msgstr "nén nhỠhơn"
msgid "list supported archive formats"
msgstr "liệt kê các kiểu nén được hỗ trợ"
-#: archive.c:479 builtin/archive.c:91 builtin/clone.c:113 builtin/clone.c:116
+#: archive.c:479 builtin/archive.c:91 builtin/clone.c:112 builtin/clone.c:115
#: builtin/submodule--helper.c:1379 builtin/submodule--helper.c:1859
msgid "repo"
msgstr "kho"
@@ -871,7 +872,7 @@ msgstr "kho"
msgid "retrieve the archive from remote repository <repo>"
msgstr "nhận kho nén từ kho chứa <kho> trên máy chủ"
-#: archive.c:481 builtin/archive.c:93 builtin/difftool.c:707
+#: archive.c:481 builtin/archive.c:93 builtin/difftool.c:715
#: builtin/notes.c:498
msgid "command"
msgstr "lệnh"
@@ -907,26 +908,26 @@ msgstr "Tham số không được há»— trợ cho định dạng “%sâ€: -%d"
msgid "cannot stream blob %s"
msgstr "không thể stream blob “%sâ€"
-#: archive-tar.c:260 archive-zip.c:363
+#: archive-tar.c:266 archive-zip.c:363
#, c-format
msgid "unsupported file mode: 0%o (SHA1: %s)"
msgstr "chế độ tập tin lục không được hỗ trợ: 0%o (SHA1: %s)"
-#: archive-tar.c:287 archive-zip.c:353
+#: archive-tar.c:293 archive-zip.c:353
#, c-format
msgid "cannot read %s"
msgstr "không thể Ä‘á»c %s"
-#: archive-tar.c:459
+#: archive-tar.c:465
#, c-format
msgid "unable to start '%s' filter"
msgstr "không thể bắt đầu bá»™ lá»c “%sâ€"
-#: archive-tar.c:462
+#: archive-tar.c:468
msgid "unable to redirect descriptor"
msgstr "không thể chuyển hướng mô tả"
-#: archive-tar.c:469
+#: archive-tar.c:475
#, c-format
msgid "'%s' filter reported error"
msgstr "bá»™ lá»c “%s†đã báo cáo lá»—i"
@@ -951,17 +952,17 @@ msgstr "lỗi giải nén (%d)"
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>"
-#: attr.c:211
+#: attr.c:213
#, 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:368
+#: attr.c:370
#, c-format
msgid "%s not allowed: %s:%d"
msgstr "%s không được phép: %s:%d"
-#: attr.c:408
+#: attr.c:410
msgid ""
"Negative patterns are ignored in git attributes\n"
"Use '\\!' for literal leading exclamation."
@@ -1087,40 +1088,40 @@ 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:2697
+#: blame.c:2700
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:2711
+#: blame.c:2714
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:2732
+#: blame.c:2735
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:2741 bundle.c:167 ref-filter.c:2196 remote.c:1938 sequencer.c:2033
-#: sequencer.c:4348 builtin/commit.c:1020 builtin/log.c:387 builtin/log.c:963
-#: builtin/log.c:1451 builtin/log.c:1827 builtin/log.c:2117 builtin/merge.c:411
-#: builtin/pack-objects.c:3148 builtin/pack-objects.c:3163
+#: blame.c:2744 bundle.c:167 ref-filter.c:2203 remote.c:1941 sequencer.c:1971
+#: sequencer.c:4305 builtin/commit.c:1020 builtin/log.c:387 builtin/log.c:964
+#: builtin/log.c:1452 builtin/log.c:1844 builtin/log.c:2134 builtin/merge.c:411
+#: builtin/pack-objects.c:3128 builtin/pack-objects.c:3143
#: builtin/shortlog.c:192
msgid "revision walk setup failed"
msgstr "cài đặt việc di chuyển qua các điểm xét duyệt gặp lỗi"
-#: blame.c:2759
+#: blame.c:2762
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:2770
+#: blame.c:2773
#, c-format
msgid "no such path %s in %s"
msgstr "không có Ä‘Æ°á»ng dẫn %s trong “%sâ€"
-#: blame.c:2781
+#: blame.c:2784
#, c-format
msgid "cannot read blob %s for path %s"
msgstr "không thể Ä‘á»c blob %s cho Ä‘Æ°á»ng dẫn “%sâ€"
@@ -1276,7 +1277,7 @@ msgstr "“%s†không giống nhÆ° tập tin v2 bundle (định dạng dump cá
msgid "unrecognized header: %s%s (%d)"
msgstr "phần đầu không được thừa nhận: %s%s (%d)"
-#: bundle.c:90 rerere.c:480 rerere.c:690 sequencer.c:2283 sequencer.c:3024
+#: bundle.c:90 rerere.c:480 rerere.c:690 sequencer.c:2221 sequencer.c:2962
#: builtin/commit.c:791
#, c-format
msgid "could not open '%s'"
@@ -1327,7 +1328,7 @@ msgstr "rev-list đã chết"
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:460 builtin/log.c:202 builtin/log.c:1732 builtin/shortlog.c:306
+#: bundle.c:460 builtin/log.c:202 builtin/log.c:1733 builtin/shortlog.c:306
#, c-format
msgid "unrecognized argument: %s"
msgstr "đối số không được thừa nhận: %s"
@@ -1350,8 +1351,8 @@ msgstr "mục lục gói đã chết"
msgid "invalid color value: %.*s"
msgstr "giá trị màu không hợp lệ: %.*s"
-#: commit.c:50 sequencer.c:2727 builtin/am.c:355 builtin/am.c:399
-#: builtin/am.c:1378 builtin/am.c:2020 builtin/replace.c:455
+#: commit.c:50 sequencer.c:2665 builtin/am.c:354 builtin/am.c:398
+#: builtin/am.c:1366 builtin/am.c:2009 builtin/replace.c:456
#, c-format
msgid "could not parse %s"
msgstr "không thể phân tích cú pháp %s"
@@ -1381,28 +1382,28 @@ msgstr ""
"Tắt lá»i nhắn này bằng cách chạy\n"
"\"git config advice.graftFileDeprecated false\""
-#: commit.c:1127
+#: commit.c:1128
#, 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:1130
+#: commit.c:1131
#, 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:1133
+#: commit.c:1134
#, 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:1136
+#: commit.c:1137
#, 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:1390
+#: commit.c:1391
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"
@@ -1466,192 +1467,207 @@ msgstr ""
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:554 commit-graph.c:614
+#: commit-graph.c:561 commit-graph.c:621
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:575
+#: commit-graph.c:582
#, 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:1002 builtin/pack-objects.c:2657
+#: commit-graph.c:855 builtin/am.c:1287
+#, 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:859
+#, c-format
+msgid "unable to get tree for %s"
+msgstr "không thể lấy cây cho %s"
+
+#: commit-graph.c:1017 builtin/pack-objects.c:2641
#, 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:1034
+#: commit-graph.c:1049
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:1051
+#: commit-graph.c:1066
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:1070
+#: commit-graph.c:1085
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:1089
+#: commit-graph.c:1104
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:1163
+#: commit-graph.c:1179
#, c-format
msgid "Finding commits for commit graph in %d pack"
msgid_plural "Finding commits for commit graph in %d packs"
msgstr[0] ""
"Äang tìm các lần chuyển giao cho đồ thị lần chuyển giao trong %d gói"
-#: commit-graph.c:1176
+#: commit-graph.c:1192
#, c-format
msgid "error adding pack %s"
msgstr "gặp lỗi thêm gói %s"
-#: commit-graph.c:1180
+#: commit-graph.c:1196
#, c-format
msgid "error opening index for %s"
msgstr "gặp lá»—i khi mở mục lục cho “%sâ€"
-#: commit-graph.c:1204
+#: commit-graph.c:1220
#, c-format
msgid "Finding commits for commit graph from %d ref"
msgid_plural "Finding commits for commit graph from %d refs"
msgstr[0] ""
"Äang tìm các lần chuyển giao cho đồ thị lần chuyển giao từ %d tham chiếu"
-#: commit-graph.c:1238
+#: commit-graph.c:1240
+#, c-format
+msgid "invalid commit object id: %s"
+msgstr "mã số đối tượng lần chuyển giao không hợp lệ: %s"
+
+#: commit-graph.c:1255
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:1253
+#: commit-graph.c:1270
msgid "Counting distinct commits in commit graph"
msgstr "Äang đếm các lần chuyển giao khác nhau trong đồ thị lần chuyển giao"
-#: commit-graph.c:1284
+#: commit-graph.c:1300
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:1332
+#: commit-graph.c:1346
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:1365 midx.c:811
+#: commit-graph.c:1379 midx.c:810
#, 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:1377 builtin/index-pack.c:306 builtin/repack.c:240
+#: commit-graph.c:1391 builtin/index-pack.c:306 builtin/repack.c:241
#, c-format
msgid "unable to create '%s'"
msgstr "không thể tạo “%sâ€"
-#: commit-graph.c:1437
+#: commit-graph.c:1451
#, 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:1478
+#: commit-graph.c:1492
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:1490
+#: commit-graph.c:1504
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:1510
+#: commit-graph.c:1524
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:1621
+#: commit-graph.c:1635
msgid "Scanning merged commits"
msgstr "Äang quét các lần chuyển giao đã hòa trá»™n"
-#: commit-graph.c:1632
+#: commit-graph.c:1646
#, c-format
msgid "unexpected duplicate commit id %s"
msgstr "gặp mã số tích lần chuyển giao bị trùng lặp “%sâ€"
-#: commit-graph.c:1657
+#: commit-graph.c:1670
msgid "Merging commit-graph"
msgstr "Äang hòa trá»™n đồ-thị-các-lần-chuyển-giao"
-#: commit-graph.c:1844
+#: commit-graph.c:1860
#, c-format
msgid "the commit graph format cannot write %d commits"
msgstr "định dạng đồ há»a các lần chuyển giao không thể ghi %d lần chuyển giao"
-#: commit-graph.c:1855
+#: commit-graph.c:1871
msgid "too many commits to write graph"
msgstr "có quá nhiá»u lần chuyển giao để ghi đồ thị"
-#: commit-graph.c:1945
+#: commit-graph.c:1961
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:1955
+#: commit-graph.c:1971
#, 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:1965 commit-graph.c:1980
+#: commit-graph.c:1981 commit-graph.c:1996
#, 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:1972
+#: commit-graph.c:1988
#, 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:1989
+#: commit-graph.c:2006
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:2002
+#: commit-graph.c:2020
#, 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:2009
+#: commit-graph.c:2027
#, 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:2019
+#: commit-graph.c:2037
#, 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:2028
+#: commit-graph.c:2046
#, 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:2041
+#: commit-graph.c:2059
#, 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:2046
+#: commit-graph.c:2064
#, c-format
msgid ""
"commit-graph has generation number zero for commit %s, but non-zero elsewhere"
@@ -1659,7 +1675,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:2050
+#: commit-graph.c:2068
#, c-format
msgid ""
"commit-graph has non-zero generation number for commit %s, but zero elsewhere"
@@ -1667,12 +1683,12 @@ msgstr ""
"đồ-thị-các-lần-chuyển-giao có con số không phải không lần tạo cho lần chuyển "
"giao %s, nhưng số không ở chỗ khác"
-#: commit-graph.c:2065
+#: commit-graph.c:2083
#, c-format
msgid "commit-graph generation for commit %s is %u != %u"
msgstr "tạo đồ-thị-các-lần-chuyển-giao cho lần chuyển giao %s là %u != %u"
-#: commit-graph.c:2071
+#: commit-graph.c:2089
#, c-format
msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>"
msgstr ""
@@ -1721,7 +1737,7 @@ msgstr "khóa không chứa một phần: %s"
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:406 sequencer.c:2463
+#: config.c:406 sequencer.c:2401
#, c-format
msgid "invalid key: %s"
msgstr "khóa không đúng: %s"
@@ -1845,150 +1861,144 @@ msgstr "core.commentChar chỉ được có một ký tự"
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:1430
+#: config.c:1425
#, c-format
msgid "malformed value for %s"
msgstr "giá trị cho %s sai dạng"
-#: config.c:1456
+#: config.c:1451
#, c-format
msgid "malformed value for %s: %s"
msgstr "giá trị cho %s sai dạng: %s"
-#: config.c:1457
+#: config.c:1452
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:1518 builtin/pack-objects.c:3410
+#: config.c:1513 builtin/pack-objects.c:3394
#, c-format
msgid "bad pack compression level %d"
msgstr "mức nén gói %d không hợp lệ"
-#: config.c:1639
+#: config.c:1634
#, 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:1642
+#: config.c:1637
#, 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:1659
+#: config.c:1654
#, 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:1689
+#: config.c:1684
#, c-format
msgid "failed to parse %s"
msgstr "gặp lỗi khi phân tích cú pháp %s"
-#: config.c:1745
+#: config.c:1740
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:2094
+#: config.c:2091
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:2264
+#: config.c:2261
#, c-format
msgid "Invalid %s: '%s'"
msgstr "%s không hợp lệ: “%sâ€"
-#: config.c:2307
-#, c-format
-msgid "unknown core.untrackedCache value '%s'; using 'keep' default value"
-msgstr ""
-"không hiểu giá trị core.untrackedCache “%sâ€; dùng giá trị mặc định “keepâ€"
-
-#: config.c:2333
+#: config.c:2306
#, 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:2379
+#: config.c:2352
#, 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:2381
+#: config.c:2354
#, 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:2462
+#: config.c:2435
#, c-format
msgid "invalid section name '%s'"
msgstr "tên của phần không hợp lệ “%sâ€"
-#: config.c:2494
+#: config.c:2467
#, c-format
msgid "%s has multiple values"
msgstr "%s có đa giá trị"
-#: config.c:2523
+#: config.c:2496
#, 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:2775 config.c:3099
+#: config.c:2748 config.c:3072
#, 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:2786
+#: config.c:2759
#, c-format
msgid "opening %s"
msgstr "Ä‘ang mở “%sâ€"
-#: config.c:2821 builtin/config.c:328
+#: config.c:2794 builtin/config.c:328
#, c-format
msgid "invalid pattern: %s"
msgstr "mẫu không hợp lệ: %s"
-#: config.c:2846
+#: config.c:2819
#, c-format
msgid "invalid config file %s"
msgstr "tập tin cấu hình “%s†không hợp lệ"
-#: config.c:2859 config.c:3112
+#: config.c:2832 config.c:3085
#, c-format
msgid "fstat on %s failed"
msgstr "fstat trên %s gặp lỗi"
-#: config.c:2870
+#: config.c:2843
#, c-format
msgid "unable to mmap '%s'"
msgstr "không thể mmap “%sâ€"
-#: config.c:2879 config.c:3117
+#: config.c:2852 config.c:3090
#, c-format
msgid "chmod on %s failed"
msgstr "chmod trên %s gặp lỗi"
-#: config.c:2964 config.c:3214
+#: config.c:2937 config.c:3187
#, c-format
msgid "could not write config file %s"
msgstr "không thể ghi tập tin cấu hình “%sâ€"
-#: config.c:2998
+#: config.c:2971
#, c-format
msgid "could not set '%s' to '%s'"
msgstr "không thể đặt “%s†thành “%sâ€"
-#: config.c:3000 builtin/remote.c:782
+#: config.c:2973 builtin/remote.c:782
#, c-format
msgid "could not unset '%s'"
msgstr "không thể thôi đặt “%sâ€"
-#: config.c:3090
+#: config.c:3063
#, c-format
msgid "invalid section name: %s"
msgstr "tên của phần không hợp lệ: %s"
-#: config.c:3257
+#: config.c:3230
#, c-format
msgid "missing value for '%s'"
msgstr "thiếu giá trị cho cho “%sâ€"
@@ -2112,7 +2122,7 @@ msgstr "không thể tìm thấy %s (%s)"
msgid "unknown port %s"
msgstr "không hiểu cổng %s"
-#: connect.c:845 connect.c:1171
+#: connect.c:845 connect.c:1175
#, c-format
msgid "strange hostname '%s' blocked"
msgstr "đã khóa tên máy lạ “%sâ€"
@@ -2127,58 +2137,58 @@ msgstr "đã khóa cổng lạ “%sâ€"
msgid "cannot start proxy %s"
msgstr "không thể khởi chạy ủy nhiệm “%sâ€"
-#: connect.c:924
+#: connect.c:928
msgid "no path specified; see 'git help pull' for valid url syntax"
msgstr "chÆ°a chỉ định Ä‘Æ°á»ng dẫn; xem'git help pull†để biết cú pháp url hợp lệ"
-#: connect.c:1119
+#: connect.c:1123
msgid "ssh variant 'simple' does not support -4"
msgstr "ssh biến thể “simple†không hỗ trợ -4"
-#: connect.c:1131
+#: connect.c:1135
msgid "ssh variant 'simple' does not support -6"
msgstr "ssh biến thể “simple†không hỗ trợ -6"
-#: connect.c:1148
+#: connect.c:1152
msgid "ssh variant 'simple' does not support setting port"
msgstr "ssh biến thể “simple†không hỗ trợ đặt cổng"
-#: connect.c:1260
+#: connect.c:1264
#, c-format
msgid "strange pathname '%s' blocked"
msgstr "đã khóa tên Ä‘Æ°á»ng dẫn lạ “%sâ€"
-#: connect.c:1307
+#: connect.c:1311
msgid "unable to fork"
msgstr "không thể rẽ nhánh tiến trình con"
-#: connected.c:86 builtin/fsck.c:221 builtin/prune.c:43
+#: connected.c:88 builtin/fsck.c:221 builtin/prune.c:43
msgid "Checking connectivity"
msgstr "Äang kiểm tra kết nối"
-#: connected.c:98
+#: connected.c:100
msgid "Could not run 'git rev-list'"
msgstr "Không thể chạy “git rev-listâ€"
-#: connected.c:118
+#: connected.c:120
msgid "failed write to rev-list"
msgstr "gặp lỗi khi ghi vào rev-list"
-#: connected.c:125
+#: connected.c:127
msgid "failed to close rev-list's stdin"
msgstr "gặp lỗi khi đóng đầu vào chuẩn stdin của rev-list"
-#: convert.c:193
+#: convert.c:194
#, c-format
msgid "illegal crlf_action %d"
msgstr "crlf_action %d không hợp lệ"
-#: convert.c:206
+#: convert.c:207
#, c-format
msgid "CRLF would be replaced by LF in %s"
msgstr "CRLF nên được thay bằng LF trong %s"
-#: convert.c:208
+#: convert.c:209
#, c-format
msgid ""
"CRLF will be replaced by LF in %s.\n"
@@ -2187,12 +2197,12 @@ msgstr ""
"CRLF sẽ bị thay thế bằng LF trong %s.\n"
"Tập tin sẽ có kiểu xuống dòng như bản gốc trong thư mục làm việc của bạn"
-#: convert.c:216
+#: convert.c:217
#, c-format
msgid "LF would be replaced by CRLF in %s"
msgstr "LF nên thay bằng CRLF trong %s"
-#: convert.c:218
+#: convert.c:219
#, c-format
msgid ""
"LF will be replaced by CRLF in %s.\n"
@@ -2201,12 +2211,12 @@ msgstr ""
"LF sẽ bị thay thế bằng CRLF trong %s.\n"
"Tập tin sẽ có kiểu xuống dòng như bản gốc trong thư mục làm việc của bạn"
-#: convert.c:279
+#: convert.c:280
#, c-format
msgid "BOM is prohibited in '%s' if encoded as %s"
msgstr "BOM bị cấm trong “%s†nếu được mã hóa là %s"
-#: convert.c:286
+#: convert.c:287
#, c-format
msgid ""
"The file '%s' contains a byte order mark (BOM). Please use UTF-%s as working-"
@@ -2215,12 +2225,12 @@ msgstr ""
"Tập tin “%s†có chứa ký hiệu thứ tự byte (BOM). Vui lòng dùng UTF-%s như là "
"bảng mã cây làm việc."
-#: convert.c:304
+#: convert.c:305
#, c-format
msgid "BOM is required in '%s' if encoded as %s"
msgstr "BOM là bắt buộc trong “%s†nếu được mã hóa là %s"
-#: convert.c:306
+#: convert.c:307
#, c-format
msgid ""
"The file '%s' is missing a byte order mark (BOM). Please use UTF-%sBE or UTF-"
@@ -2229,50 +2239,50 @@ msgstr ""
"Tập tin “%s†còn thiếu ký hiệu thứ tự byte (BOM). Vui lòng dùng UTF-%sBE hay "
"UTF-%sLE (còn phục thuộc vào thứ tự byte) như là bảng mã cây làm việc."
-#: convert.c:424 convert.c:495
+#: convert.c:425 convert.c:496
#, c-format
msgid "failed to encode '%s' from %s to %s"
msgstr "gặp lá»—i khi mã hóa “%s†từ “%s†sang “%sâ€"
-#: convert.c:467
+#: convert.c:468
#, c-format
msgid "encoding '%s' from %s to %s and back is not the same"
msgstr "mã hóa “%s†từ %s thành %s và ngược trở lại không phải là cùng"
-#: convert.c:673
+#: convert.c:674
#, c-format
msgid "cannot fork to run external filter '%s'"
msgstr "không thể rẽ nhánh tiến trình để chạy bá»™ lá»c bên ngoài “%sâ€"
-#: convert.c:693
+#: convert.c:694
#, c-format
msgid "cannot feed the input to external filter '%s'"
msgstr "không thể cấp đầu vào cho bá»™ lá»c bên ngoài “%sâ€"
-#: convert.c:700
+#: convert.c:701
#, c-format
msgid "external filter '%s' failed %d"
msgstr "chạy bá»™ lá»c bên ngoài “%s†gặp lá»—i %d"
-#: convert.c:735 convert.c:738
+#: convert.c:736 convert.c:739
#, c-format
msgid "read from external filter '%s' failed"
msgstr "Ä‘á»c từ bá»™ lá»c bên ngoài “%s†gặp lá»—i"
-#: convert.c:741 convert.c:796
+#: convert.c:742 convert.c:797
#, c-format
msgid "external filter '%s' failed"
msgstr "gặp lá»—i khi chạy bá»™ lá»c bên ngoài “%sâ€"
-#: convert.c:844
+#: convert.c:845
msgid "unexpected filter type"
msgstr "gặp kiểu bá»™ lá»c thừa"
-#: convert.c:855
+#: convert.c:856
msgid "path name too long for external filter"
msgstr "tên Ä‘Æ°á»ng dẫn quá dài cho bá»™ lá»c bên ngoài"
-#: convert.c:929
+#: convert.c:930
#, c-format
msgid ""
"external filter '%s' is not available anymore although not all paths have "
@@ -2281,74 +2291,74 @@ msgstr ""
"bá»™ lá»c bên ngoài “%s†không sẵn sàng nữa mặc dù không phải tất cả các Ä‘Æ°á»ng "
"dẫn đã được lá»c"
-#: convert.c:1228
+#: convert.c:1229
msgid "true/false are no valid working-tree-encodings"
msgstr "true/false là không phải bảng-mã-cây-làm-việc hợp lệ"
-#: convert.c:1398 convert.c:1432
+#: convert.c:1417 convert.c:1451
#, c-format
msgid "%s: clean filter '%s' failed"
msgstr "%s: gặp lá»—i khi xóa bá»™ lá»c “%sâ€"
-#: convert.c:1476
+#: convert.c:1495
#, c-format
msgid "%s: smudge filter %s failed"
msgstr "%s: smudge bá»™ lá»c %s gặp lá»—i"
-#: date.c:137
+#: date.c:138
msgid "in the future"
msgstr "ở thá»i tÆ°Æ¡ng lai"
-#: date.c:143
+#: date.c:144
#, c-format
msgid "%<PRIuMAX> second ago"
msgid_plural "%<PRIuMAX> seconds ago"
msgstr[0] "%<PRIuMAX> giây trước"
-#: date.c:150
+#: date.c:151
#, c-format
msgid "%<PRIuMAX> minute ago"
msgid_plural "%<PRIuMAX> minutes ago"
msgstr[0] "%<PRIuMAX> phút trước"
-#: date.c:157
+#: date.c:158
#, c-format
msgid "%<PRIuMAX> hour ago"
msgid_plural "%<PRIuMAX> hours ago"
msgstr[0] "%<PRIuMAX> giá» trÆ°á»›c"
-#: date.c:164
+#: date.c:165
#, c-format
msgid "%<PRIuMAX> day ago"
msgid_plural "%<PRIuMAX> days ago"
msgstr[0] "%<PRIuMAX> ngày trước"
-#: date.c:170
+#: date.c:171
#, c-format
msgid "%<PRIuMAX> week ago"
msgid_plural "%<PRIuMAX> weeks ago"
msgstr[0] "%<PRIuMAX> tuần trước"
-#: date.c:177
+#: date.c:178
#, c-format
msgid "%<PRIuMAX> month ago"
msgid_plural "%<PRIuMAX> months ago"
msgstr[0] "%<PRIuMAX> tháng trước"
-#: date.c:188
+#: date.c:189
#, c-format
msgid "%<PRIuMAX> year"
msgid_plural "%<PRIuMAX> years"
msgstr[0] "%<PRIuMAX> năm"
#. TRANSLATORS: "%s" is "<n> years"
-#: date.c:191
+#: date.c:192
#, c-format
msgid "%s, %<PRIuMAX> month ago"
msgid_plural "%s, %<PRIuMAX> months ago"
msgstr[0] "%s, %<PRIuMAX> tháng trước"
-#: date.c:196 date.c:201
+#: date.c:197 date.c:202
#, c-format
msgid "%<PRIuMAX> year ago"
msgid_plural "%<PRIuMAX> years ago"
@@ -2384,7 +2394,7 @@ msgstr "Äã đánh dấu %d island, xong.\n"
msgid "failed to read orderfile '%s'"
msgstr "gặp lá»—i khi Ä‘á»c tập-tin-thứ-tá»± “%sâ€"
-#: diffcore-rename.c:544
+#: diffcore-rename.c:543
msgid "Performing inexact rename detection"
msgstr "Äang thá»±c hiện dò tìm đổi tên không chính xác"
@@ -2450,35 +2460,35 @@ msgstr ""
"Tìm thấy các lá»—i trong biến cấu hình “diff.dirstatâ€:\n"
"%s"
-#: diff.c:4215
+#: diff.c:4218
#, 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:4560
+#: diff.c:4563
msgid "--name-only, --name-status, --check and -s are mutually exclusive"
msgstr "--name-only, --name-status, --check và -s loại từ lẫn nhau"
-#: diff.c:4563
+#: diff.c:4566
msgid "-G, -S and --find-object are mutually exclusive"
msgstr "Các tùy chá»n -G, -S, và --find-object loại từ lẫn nhau"
-#: diff.c:4641
+#: diff.c:4644
msgid "--follow requires exactly one pathspec"
msgstr "--follow cần chính xác má»™t đặc tả Ä‘Æ°á»ng dẫn"
-#: diff.c:4689
+#: diff.c:4692
#, c-format
msgid "invalid --stat value: %s"
msgstr "giá trị --stat không hợp lệ: “%sâ€"
-#: diff.c:4694 diff.c:4699 diff.c:4704 diff.c:4709 diff.c:5222
+#: diff.c:4697 diff.c:4702 diff.c:4707 diff.c:4712 diff.c:5225
#: parse-options.c:199 parse-options.c:203
#, 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:4726
+#: diff.c:4729
#, c-format
msgid ""
"Failed to parse --dirstat/-X option parameter:\n"
@@ -2487,42 +2497,42 @@ msgstr ""
"Gặp lá»—i khi phân tích đối số tùy chá»n --dirstat/-X:\n"
"%s"
-#: diff.c:4811
+#: diff.c:4814
#, 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:4835
+#: diff.c:4838
#, c-format
msgid "unknown value after ws-error-highlight=%.*s"
msgstr "không hiểu giá trị sau ws-error-highlight=%.*s"
-#: diff.c:4849
+#: diff.c:4852
#, c-format
msgid "unable to resolve '%s'"
msgstr "không thể phân giải “%sâ€"
-#: diff.c:4899 diff.c:4905
+#: diff.c:4902 diff.c:4908
#, c-format
msgid "%s expects <n>/<m> form"
msgstr "%s cần dạng <n>/<m>"
-#: diff.c:4917
+#: diff.c:4920
#, 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:4938
+#: diff.c:4941
#, c-format
msgid "bad --color-moved argument: %s"
msgstr "đối số --color-moved sai: %s"
-#: diff.c:4957
+#: diff.c:4960
#, c-format
msgid "invalid mode '%s' in --color-moved-ws"
msgstr "chế độ “%s†không hợp lệ trong --color-moved-ws"
-#: diff.c:4997
+#: diff.c:5000
msgid ""
"option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and "
"\"histogram\""
@@ -2530,150 +2540,150 @@ msgstr ""
"tùy chá»n diff-algorithm chấp nhận \"myers\", \"minimal\", \"patience\" và "
"\"histogram\""
-#: diff.c:5033 diff.c:5053
+#: diff.c:5036 diff.c:5056
#, c-format
msgid "invalid argument to %s"
msgstr "tham số cho %s không hợp lệ"
-#: diff.c:5191
+#: diff.c:5194
#, 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:5247
+#: diff.c:5250
#, c-format
msgid "bad --word-diff argument: %s"
msgstr "đối số --word-diff sai: %s"
-#: diff.c:5270
+#: diff.c:5273
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:5272 diff.c:5278
+#: diff.c:5275 diff.c:5281
msgid "generate patch"
msgstr "tạo miếng vá"
-#: diff.c:5275 builtin/log.c:172
+#: diff.c:5278 builtin/log.c:172
msgid "suppress diff output"
msgstr "chặn má»i kết xuất từ diff"
-#: diff.c:5280 diff.c:5394 diff.c:5401
+#: diff.c:5283 diff.c:5397 diff.c:5404
msgid "<n>"
msgstr "<n>"
-#: diff.c:5281 diff.c:5284
+#: diff.c:5284 diff.c:5287
msgid "generate diffs with <n> lines context"
msgstr "tạo khác biệt với <n> dòng ngữ cảnh"
-#: diff.c:5286
+#: diff.c:5289
msgid "generate the diff in raw format"
msgstr "tạo khác biệt ở định dạng thô"
-#: diff.c:5289
+#: diff.c:5292
msgid "synonym for '-p --raw'"
msgstr "đồng nghÄ©a vá»›i “-p --rawâ€"
-#: diff.c:5293
+#: diff.c:5296
msgid "synonym for '-p --stat'"
msgstr "đồng nghÄ©a vá»›i “-p --statâ€"
-#: diff.c:5297
+#: diff.c:5300
msgid "machine friendly --stat"
msgstr "--stat thuận tiện cho máy Ä‘á»c"
-#: diff.c:5300
+#: diff.c:5303
msgid "output only the last line of --stat"
msgstr "chỉ xuất những dòng cuối của --stat"
-#: diff.c:5302 diff.c:5310
+#: diff.c:5305 diff.c:5313
msgid "<param1,param2>..."
msgstr "<tham_số_1,tham_số_2>…"
-#: diff.c:5303
+#: diff.c:5306
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:5307
+#: diff.c:5310
msgid "synonym for --dirstat=cumulative"
msgstr "đồng nghĩa với --dirstat=cumulative"
-#: diff.c:5311
+#: diff.c:5314
msgid "synonym for --dirstat=files,param1,param2..."
msgstr "đồng nghĩa với --dirstat=files,param1,param2…"
-#: diff.c:5315
+#: diff.c:5318
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:5318
+#: diff.c:5321
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:5321
+#: diff.c:5324
msgid "show only names of changed files"
msgstr "chỉ hiển thị tên của các tập tin đổi"
-#: diff.c:5324
+#: diff.c:5327
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:5326
+#: diff.c:5329
msgid "<width>[,<name-width>[,<count>]]"
msgstr "<rộng>[,<name-width>[,<số-lượng>]]"
-#: diff.c:5327
+#: diff.c:5330
msgid "generate diffstat"
msgstr "tạo diffstat"
-#: diff.c:5329 diff.c:5332 diff.c:5335
+#: diff.c:5332 diff.c:5335 diff.c:5338
msgid "<width>"
msgstr "<rá»™ng>"
-#: diff.c:5330
+#: diff.c:5333
msgid "generate diffstat with a given width"
msgstr "tạo diffstat với độ rộng đã cho"
-#: diff.c:5333
+#: diff.c:5336
msgid "generate diffstat with a given name width"
msgstr "tạo diffstat với tên độ rộng đã cho"
-#: diff.c:5336
+#: diff.c:5339
msgid "generate diffstat with a given graph width"
msgstr "tạo diffstat với độ rộng đồ thị đã cho"
-#: diff.c:5338
+#: diff.c:5341
msgid "<count>"
msgstr "<số_lượng>"
-#: diff.c:5339
+#: diff.c:5342
msgid "generate diffstat with limited lines"
msgstr "tạo diffstat với các dòng bị giới hạn"
-#: diff.c:5342
+#: diff.c:5345
msgid "generate compact summary in diffstat"
msgstr "tạo tổng hợp xúc tích trong diffstat"
-#: diff.c:5345
+#: diff.c:5348
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:5348
+#: diff.c:5351
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:5350
+#: diff.c:5353
msgid "show colored diff"
msgstr "hiển thị thay đổi được tô màu"
-#: diff.c:5351
+#: diff.c:5354
msgid "<kind>"
msgstr "<kiểu>"
-#: diff.c:5352
+#: diff.c:5355
msgid ""
"highlight whitespace errors in the 'context', 'old' or 'new' lines in the "
"diff"
@@ -2681,7 +2691,7 @@ msgstr ""
"tô sang 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:5355
+#: diff.c:5358
msgid ""
"do not munge pathnames and use NULs as output field terminators in --raw or "
"--numstat"
@@ -2689,89 +2699,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:5358 diff.c:5361 diff.c:5364 diff.c:5470
+#: diff.c:5361 diff.c:5364 diff.c:5367 diff.c:5473
msgid "<prefix>"
msgstr "<tiá»n_tố>"
-#: diff.c:5359
+#: diff.c:5362
msgid "show the given source prefix instead of \"a/\""
msgstr "hiển thị tiá»n tố nguồn đã cho thay cho \"a/\""
-#: diff.c:5362
+#: diff.c:5365
msgid "show the given destination prefix instead of \"b/\""
msgstr "hiển thị tiá»n tố đích đã cho thay cho \"b/\""
-#: diff.c:5365
+#: diff.c:5368
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:5368
+#: diff.c:5371
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:5371
+#: diff.c:5374
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:5375 diff.c:5380 diff.c:5385
+#: diff.c:5378 diff.c:5383 diff.c:5388
msgid "<char>"
msgstr "<ký_tự>"
-#: diff.c:5376
+#: diff.c:5379
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:5381
+#: diff.c:5384
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:5386
+#: diff.c:5389
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:5389
+#: diff.c:5392
msgid "Diff rename options"
msgstr "Tùy chá»n khác biệt đổi tên"
-#: diff.c:5390
+#: diff.c:5393
msgid "<n>[/<m>]"
msgstr "<n>[/<m>]"
-#: diff.c:5391
+#: diff.c:5394
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:5395
+#: diff.c:5398
msgid "detect renames"
msgstr "dò tìm các tên thay đổi"
-#: diff.c:5399
+#: diff.c:5402
msgid "omit the preimage for deletes"
msgstr "bá» qua preimage (tiá»n ảnh??) cho các việc xóa"
-#: diff.c:5402
+#: diff.c:5405
msgid "detect copies"
msgstr "dò bản sao"
-#: diff.c:5406
+#: diff.c:5409
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:5408
+#: diff.c:5411
msgid "disable rename detection"
msgstr "tắt dò tìm đổi tên"
-#: diff.c:5411
+#: diff.c:5414
msgid "use empty blobs as rename source"
msgstr "dung các blob trống rống như là nguồn đổi tên"
-#: diff.c:5413
+#: diff.c:5416
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:5416
+#: diff.c:5419
msgid ""
"prevent rename/copy detection if the number of rename/copy targets exceeds "
"given limit"
@@ -2779,156 +2789,156 @@ msgstr ""
"ngăn cản dò tìm đổi tên/bản sao nếu số lượng của đích đổi tên/bản sao vượt "
"quá giới hạn đưa ra"
-#: diff.c:5418
+#: diff.c:5421
msgid "Diff algorithm options"
msgstr "Tùy chá»n thuật toán khác biệt"
-#: diff.c:5420
+#: diff.c:5423
msgid "produce the smallest possible diff"
msgstr "sản sinh khác biệt ít nhất có thể"
-#: diff.c:5423
+#: diff.c:5426
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:5426
+#: diff.c:5429
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:5429
+#: diff.c:5432
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:5432
+#: diff.c:5435
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:5435
+#: diff.c:5438
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:5438
+#: diff.c:5441
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:5441
+#: diff.c:5444
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:5445
+#: diff.c:5448
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:5447
+#: diff.c:5450
msgid "<algorithm>"
msgstr "<thuật toán>"
-#: diff.c:5448
+#: diff.c:5451
msgid "choose a diff algorithm"
msgstr "chá»n má»™t thuật toán khác biệt"
-#: diff.c:5450
+#: diff.c:5453
msgid "<text>"
msgstr "<văn bản>"
-#: diff.c:5451
+#: diff.c:5454
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:5453 diff.c:5462 diff.c:5465
+#: diff.c:5456 diff.c:5465 diff.c:5468
msgid "<mode>"
msgstr "<chế độ>"
-#: diff.c:5454
+#: diff.c:5457
msgid "show word diff, using <mode> to delimit changed words"
msgstr ""
"hiển thị khác biệt từ, sử dung <chế độ> để bỠgiới hạn các từ bị thay đổi"
-#: diff.c:5456 diff.c:5459 diff.c:5504
+#: diff.c:5459 diff.c:5462 diff.c:5507
msgid "<regex>"
msgstr "<regex>"
-#: diff.c:5457
+#: diff.c:5460
msgid "use <regex> to decide what a word is"
msgstr "dùng <regex> để quyết định từ là cái gì"
-#: diff.c:5460
+#: diff.c:5463
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:5463
+#: diff.c:5466
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:5466
+#: diff.c:5469
msgid "how white spaces are ignored in --color-moved"
msgstr "bỠqua khoảng trắng như thế nào trong --color-moved"
-#: diff.c:5469
+#: diff.c:5472
msgid "Other diff options"
msgstr "Các tùy chá»n khác biệt khác"
-#: diff.c:5471
+#: diff.c:5474
msgid "when run from subdir, exclude changes outside and show relative paths"
msgstr ""
"khi chạy từ thư mục con, thự thi các thay đổi bên ngoài và hiển thị các "
"Ä‘Æ°á»ng dẫn liên quan"
-#: diff.c:5475
+#: diff.c:5478
msgid "treat all files as text"
msgstr "coi má»i tập tin là dạng văn bản thÆ°á»ng"
-#: diff.c:5477
+#: diff.c:5480
msgid "swap two inputs, reverse the diff"
msgstr "tráo đổi hai đầu vào, đảo ngược khác biệt"
-#: diff.c:5479
+#: diff.c:5482
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:5481
+#: diff.c:5484
msgid "disable all output of the program"
msgstr "tắt má»i kết xuất của chÆ°Æ¡ng trình"
-#: diff.c:5483
+#: diff.c:5486
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:5485
+#: diff.c:5488
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:5487
+#: diff.c:5490
msgid "<when>"
msgstr "<khi>"
-#: diff.c:5488
+#: diff.c:5491
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:5491
+#: diff.c:5494
msgid "<format>"
msgstr "<định dạng>"
-#: diff.c:5492
+#: diff.c:5495
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:5496
+#: diff.c:5499
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:5499
+#: diff.c:5502
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:5501
+#: diff.c:5504
msgid "<string>"
msgstr "<chuá»—i>"
-#: diff.c:5502
+#: diff.c:5505
msgid ""
"look for differences that change the number of occurrences of the specified "
"string"
@@ -2936,7 +2946,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:5505
+#: diff.c:5508
msgid ""
"look for differences that change the number of occurrences of the specified "
"regex"
@@ -2944,23 +2954,23 @@ msgstr ""
"tìm các khác biệt cái mà thay đổi số lượng xảy ra của các phát sinh của biểu "
"thức chính quy được chỉ ra"
-#: diff.c:5508
+#: diff.c:5511
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:5511
+#: diff.c:5514
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:5514
+#: diff.c:5517
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:5515
+#: diff.c:5518
msgid "<object-id>"
msgstr "<mã-số-đối-tượng>"
-#: diff.c:5516
+#: diff.c:5519
msgid ""
"look for differences that change the number of occurrences of the specified "
"object"
@@ -2968,33 +2978,33 @@ msgstr ""
"tìm các khác biệt cái mà thay đổi số lượng xảy ra của các phát sinh của đối "
"tượng được chỉ ra"
-#: diff.c:5518
+#: diff.c:5521
msgid "[(A|C|D|M|R|T|U|X|B)...[*]]"
msgstr "[(A|C|D|M|R|T|U|X|B)…[*]]"
-#: diff.c:5519
+#: diff.c:5522
msgid "select files by diff type"
msgstr "chá»n các tập tin theo kiểu khác biệt"
-#: diff.c:5521
+#: diff.c:5524
msgid "<file>"
msgstr "<tập_tin>"
-#: diff.c:5522
+#: diff.c:5525
msgid "Output to a specific file"
msgstr "Xuất ra một tập tin cụ thể"
-#: diff.c:6177
+#: diff.c:6180
msgid "inexact rename detection was skipped due to too many files."
msgstr ""
"nhận thấy đổi tên không chính xác đã bị bá» qua bởi có quá nhiá»u tập tin."
-#: diff.c:6180
+#: diff.c:6183
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:6183
+#: diff.c:6186
#, c-format
msgid ""
"you may want to set your %s variable to at least %d and retry the command."
@@ -3002,40 +3012,40 @@ msgstr ""
"bạn có lẽ muốn đặt biến %s của bạn thành ít nhất là %d và thử lại lệnh lần "
"nữa."
-#: dir.c:537
+#: dir.c:549
#, c-format
msgid "pathspec '%s' did not match any file(s) known to git"
msgstr "đặc tả Ä‘Æ°á»ng dẫn “%s†không khá»›p vá»›i bất kỳ tập tin nào mà git biết"
-#: dir.c:926
+#: dir.c:938
#, c-format
msgid "cannot use %s as an exclude file"
msgstr "không thể dùng %s như là một tập tin loại trừ"
-#: dir.c:1843
+#: dir.c:1877
#, c-format
msgid "could not open directory '%s'"
msgstr "không thể mở thÆ° mục “%sâ€"
-#: dir.c:2085
+#: dir.c:2128
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:2209
+#: dir.c:2252
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:3013
+#: dir.c:3056
#, 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:3058 dir.c:3063
+#: dir.c:3101 dir.c:3106
#, c-format
msgid "could not create directories for %s"
msgstr "không thể tạo thư mục cho %s"
-#: dir.c:3092
+#: dir.c:3135
#, c-format
msgid "could not migrate git directory from '%s' to '%s'"
msgstr "không thể di cÆ° thÆ° mục git từ “%s†sang “%sâ€"
@@ -3054,12 +3064,12 @@ 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:150
+#: environment.c:148
#, c-format
msgid "bad git namespace path \"%s\""
msgstr "Ä‘Æ°á»ng dẫn không gian tên git \"%s\" sai"
-#: environment.c:332
+#: environment.c:330
#, c-format
msgid "could not set GIT_DIR to '%s'"
msgstr "không thể đặt GIT_DIR thành “%sâ€"
@@ -3069,158 +3079,154 @@ msgstr "không thể đặt GIT_DIR thành “%sâ€"
msgid "too many args to run %s"
msgstr "quá nhiá»u tham số để chạy %s"
-#: fetch-object.c:17
-msgid "Remote with no URL"
-msgstr "Máy chủ không có địa chỉ URL"
-
-#: fetch-pack.c:151
+#: fetch-pack.c:150
msgid "git fetch-pack: expected shallow list"
msgstr "git fetch-pack: cần danh sách shallow"
-#: fetch-pack.c:154
+#: fetch-pack.c:153
msgid "git fetch-pack: expected a flush packet after shallow list"
msgstr "git fetch-pack: cần một gói đẩy sau danh sách shallow"
-#: fetch-pack.c:165
+#: fetch-pack.c:164
msgid "git fetch-pack: expected ACK/NAK, got a flush packet"
msgstr "git fetch-pack: cần ACK/NAK, nhưng lại nhận được một gói flush"
-#: fetch-pack.c:185
+#: fetch-pack.c:184
#, c-format
msgid "git fetch-pack: expected ACK/NAK, got '%s'"
msgstr "git fetch-pack: cần ACK/NAK, nhÆ°ng lại nhận được “%sâ€"
-#: fetch-pack.c:196
+#: fetch-pack.c:195
msgid "unable to write to remote"
msgstr "không thể ghi lên máy phục vụ"
-#: fetch-pack.c:258
+#: fetch-pack.c:257
msgid "--stateless-rpc requires multi_ack_detailed"
msgstr "--stateless-rpc cần multi_ack_detailed"
-#: fetch-pack.c:360 fetch-pack.c:1284
+#: fetch-pack.c:356 fetch-pack.c:1280
#, c-format
msgid "invalid shallow line: %s"
msgstr "dòng shallow không hợp lệ: %s"
-#: fetch-pack.c:366 fetch-pack.c:1290
+#: fetch-pack.c:362 fetch-pack.c:1286
#, c-format
msgid "invalid unshallow line: %s"
msgstr "dòng unshallow không hợp lệ: %s"
-#: fetch-pack.c:368 fetch-pack.c:1292
+#: fetch-pack.c:364 fetch-pack.c:1288
#, c-format
msgid "object not found: %s"
msgstr "không tìm thấy đối tượng: %s"
-#: fetch-pack.c:371 fetch-pack.c:1295
+#: fetch-pack.c:367 fetch-pack.c:1291
#, c-format
msgid "error in object: %s"
msgstr "lỗi trong đối tượng: %s"
-#: fetch-pack.c:373 fetch-pack.c:1297
+#: fetch-pack.c:369 fetch-pack.c:1293
#, c-format
msgid "no shallow found: %s"
msgstr "không tìm shallow nào: %s"
-#: fetch-pack.c:376 fetch-pack.c:1301
+#: fetch-pack.c:372 fetch-pack.c:1297
#, c-format
msgid "expected shallow/unshallow, got %s"
msgstr "cần shallow/unshallow, nhưng lại nhận được %s"
-#: fetch-pack.c:417
+#: fetch-pack.c:414
#, c-format
msgid "got %s %d %s"
msgstr "nhận %s %d - %s"
-#: fetch-pack.c:434
+#: fetch-pack.c:431
#, c-format
msgid "invalid commit %s"
msgstr "lần chuyển giao %s không hợp lệ"
-#: fetch-pack.c:465
+#: fetch-pack.c:462
msgid "giving up"
msgstr "chịu thua"
-#: fetch-pack.c:477 progress.c:277
+#: fetch-pack.c:475 progress.c:312
msgid "done"
msgstr "xong"
-#: fetch-pack.c:489
+#: fetch-pack.c:487
#, c-format
msgid "got %s (%d) %s"
msgstr "nhận %s (%d) %s"
-#: fetch-pack.c:535
+#: fetch-pack.c:533
#, c-format
msgid "Marking %s as complete"
msgstr "Äánh dấu %s là đã hoàn thành"
-#: fetch-pack.c:744
+#: fetch-pack.c:742
#, c-format
msgid "already have %s (%s)"
msgstr "đã sẵn có %s (%s)"
-#: fetch-pack.c:783
+#: fetch-pack.c:781
msgid "fetch-pack: unable to fork off sideband demultiplexer"
msgstr "fetch-pack: không thể rẽ nhánh sideband demultiplexer"
-#: fetch-pack.c:791
+#: fetch-pack.c:789
msgid "protocol error: bad pack header"
msgstr "lỗi giao thức: phần đầu gói bị sai"
-#: fetch-pack.c:859
+#: fetch-pack.c:857
#, c-format
msgid "fetch-pack: unable to fork off %s"
msgstr "fetch-pack: không thể rẽ nhánh %s"
-#: fetch-pack.c:875
+#: fetch-pack.c:873
#, c-format
msgid "%s failed"
msgstr "%s gặp lỗi"
-#: fetch-pack.c:877
+#: fetch-pack.c:875
msgid "error in sideband demultiplexer"
msgstr "có lỗi trong sideband demultiplexer"
-#: fetch-pack.c:908
+#: fetch-pack.c:907
#, c-format
msgid "Server version is %.*s"
msgstr "Phiên bản máy chủ là %.*s"
-#: fetch-pack.c:913 fetch-pack.c:919 fetch-pack.c:922 fetch-pack.c:928
-#: fetch-pack.c:932 fetch-pack.c:936 fetch-pack.c:940 fetch-pack.c:944
-#: fetch-pack.c:948 fetch-pack.c:952 fetch-pack.c:956 fetch-pack.c:960
-#: fetch-pack.c:966 fetch-pack.c:972 fetch-pack.c:977 fetch-pack.c:982
+#: fetch-pack.c:912 fetch-pack.c:918 fetch-pack.c:921 fetch-pack.c:927
+#: fetch-pack.c:931 fetch-pack.c:935 fetch-pack.c:939 fetch-pack.c:943
+#: fetch-pack.c:947 fetch-pack.c:951 fetch-pack.c:955 fetch-pack.c:959
+#: fetch-pack.c:965 fetch-pack.c:971 fetch-pack.c:976 fetch-pack.c:981
#, c-format
msgid "Server supports %s"
msgstr "Máy chủ hỗ trợ %s"
-#: fetch-pack.c:915
+#: fetch-pack.c:914
msgid "Server does not support shallow clients"
msgstr "Máy chủ không hỗ trợ máy khách shallow"
-#: fetch-pack.c:975
+#: fetch-pack.c:974
msgid "Server does not support --shallow-since"
msgstr "Máy chủ không hỗ trợ --shallow-since"
-#: fetch-pack.c:980
+#: fetch-pack.c:979
msgid "Server does not support --shallow-exclude"
msgstr "Máy chủ không hỗ trợ --shallow-exclude"
-#: fetch-pack.c:984
+#: fetch-pack.c:983
msgid "Server does not support --deepen"
msgstr "Máy chủ không hỗ trợ --deepen"
-#: fetch-pack.c:1001
+#: fetch-pack.c:1000
msgid "no common commits"
msgstr "không có lần chuyển giao chung nào"
-#: fetch-pack.c:1013 fetch-pack.c:1462
+#: fetch-pack.c:1012 fetch-pack.c:1468
msgid "git fetch-pack: fetch failed."
msgstr "git fetch-pack: fetch gặp lỗi."
-#: fetch-pack.c:1151
+#: fetch-pack.c:1150
msgid "Server does not support shallow requests"
msgstr "Máy chủ không hỗ trợ yêu cầu shallow"
@@ -3228,72 +3234,72 @@ msgstr "Máy chủ không hỗ trợ yêu cầu shallow"
msgid "Server supports filter"
msgstr "Máy chủ há»— trợ bá»™ lá»c"
-#: fetch-pack.c:1184
+#: fetch-pack.c:1180
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:1202
+#: fetch-pack.c:1198
#, 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:1208
+#: fetch-pack.c:1204
#, c-format
msgid "expected '%s', received '%s'"
msgstr "cần “%sâ€, nhÆ°ng lại nhận “%sâ€"
-#: fetch-pack.c:1247
+#: fetch-pack.c:1243
#, c-format
msgid "unexpected acknowledgment line: '%s'"
msgstr "gặp dòng không được thừa nhận: “%sâ€"
-#: fetch-pack.c:1252
+#: fetch-pack.c:1248
#, 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:1262
+#: fetch-pack.c:1258
msgid "expected packfile to be sent after 'ready'"
msgstr "cần tập tin gói để gá»­i sau “readyâ€"
-#: fetch-pack.c:1264
+#: fetch-pack.c:1260
msgid "expected no other sections to be sent after no 'ready'"
msgstr "không cần thêm phần nào để gá»­i sau “readyâ€"
-#: fetch-pack.c:1306
+#: fetch-pack.c:1302
#, c-format
msgid "error processing shallow info: %d"
msgstr "lỗi xử lý thông tin shallow: %d"
-#: fetch-pack.c:1353
+#: fetch-pack.c:1349
#, c-format
msgid "expected wanted-ref, got '%s'"
msgstr "cần wanted-ref, nhÆ°ng lại nhận được “%sâ€"
-#: fetch-pack.c:1358
+#: fetch-pack.c:1354
#, c-format
msgid "unexpected wanted-ref: '%s'"
msgstr "không cần wanted-ref: “%sâ€"
-#: fetch-pack.c:1363
+#: fetch-pack.c:1359
#, c-format
msgid "error processing wanted refs: %d"
msgstr "lỗi khi xử lý wanted refs: %d"
-#: fetch-pack.c:1689
+#: fetch-pack.c:1693
msgid "no matching remote head"
msgstr "không khớp phần đầu máy chủ"
-#: fetch-pack.c:1712 builtin/clone.c:686
+#: fetch-pack.c:1716 builtin/clone.c:685
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:1739
+#: fetch-pack.c:1743
#, 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:1742
+#: fetch-pack.c:1746
#, c-format
msgid "Server does not allow request for unadvertised object %s"
msgstr ""
@@ -3317,18 +3323,26 @@ msgstr "gặp lá»—i khi ghi chữ ký đính kèm vào “%sâ€"
msgid "ignore invalid color '%.*s' in log.graphColors"
msgstr "bỠqua màu không hợp lệ “%.*s†trong log.graphColors"
-#: grep.c:2117
+#: grep.c:668
+msgid ""
+"given pattern contains NULL byte (via -f <file>). This is only supported "
+"with -P under PCRE v2"
+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:2124
#, c-format
msgid "'%s': unable to read %s"
msgstr "“%sâ€: không thể Ä‘á»c %s"
-#: grep.c:2134 setup.c:164 builtin/clone.c:409 builtin/diff.c:82
+#: grep.c:2141 setup.c:165 builtin/clone.c:408 builtin/diff.c:82
#: builtin/rm.c:135
#, c-format
msgid "failed to stat '%s'"
msgstr "gặp lá»—i khi lấy thống kê vỠ“%sâ€"
-#: grep.c:2145
+#: grep.c:2152
#, c-format
msgid "'%s': short read"
msgstr "“%sâ€: Ä‘á»c ngắn"
@@ -3467,12 +3481,12 @@ msgstr[0] ""
msgid "git version [<options>]"
msgstr "git version [<các tùy chá»n>]"
-#: help.c:782
+#: help.c:783
#, c-format
msgid "%s: %s - %s"
msgstr "%s: %s - %s"
-#: help.c:786
+#: help.c:787
msgid ""
"\n"
"Did you mean this?"
@@ -3542,41 +3556,56 @@ msgstr "tên chỉ được phép bao gồm các ký tự sau: %s"
msgid "invalid date format: %s"
msgstr "ngày tháng không hợp lệ: %s"
-#: list-objects.c:129
+#: list-objects.c:127
#, 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:142
+#: list-objects.c:140
#, 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:378
+#: list-objects.c:375
#, 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â€"
-#: list-objects-filter-options.c:36
-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.c:492
+#, c-format
+msgid "unable to access sparse blob in '%s'"
+msgstr "không thể truy cập các blob rải rác trong '%s'"
+
+#: list-objects-filter.c:495
+#, c-format
+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-filter-options.c:58
msgid "expected 'tree:<depth>'"
msgstr "cần “tree:<depth>â€"
-#: list-objects-filter-options.c:84
+#: list-objects-filter-options.c:73
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:94
+#: list-objects-filter-options.c:86
#, c-format
msgid "invalid filter-spec '%s'"
msgstr "đặc tả bá»™ lá»c không hợp lệ “%sâ€"
-#: list-objects-filter-options.c:158
-msgid "cannot change partial clone promisor remote"
-msgstr "không thể thay đổi nhân bản từng phần máy chủ promisor"
+#: list-objects-filter-options.c:102
+#, 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:144
+msgid "expected something after combine:"
+msgstr "mong đợi một cái gì đó sau khi kết hợp:"
+
+#: list-objects-filter-options.c:226
+msgid "multiple filter-specs cannot be combined"
+msgstr "không thể tổ hợp nhiá»u đặc tả kiểu lá»c"
#: lockfile.c:151
#, c-format
@@ -3606,120 +3635,116 @@ msgstr "Không thể tạo “%s.lockâ€: %s"
msgid "failed to read the cache"
msgstr "gặp lá»—i khi Ä‘á»c bá»™ nhá»› đệm"
-#: merge.c:107 rerere.c:720 builtin/am.c:1885 builtin/am.c:1919
-#: builtin/checkout.c:536 builtin/checkout.c:796 builtin/clone.c:786
+#: merge.c:107 rerere.c:720 builtin/am.c:1874 builtin/am.c:1908
+#: builtin/checkout.c:537 builtin/checkout.c:796 builtin/clone.c:785
#: builtin/stash.c:264
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"
-#: merge-recursive.c:322
+#: merge-recursive.c:367
msgid "(bad commit)\n"
msgstr "(commit sai)\n"
-#: merge-recursive.c:345
+#: merge-recursive.c:390
#, c-format
msgid "add_cacheinfo failed for path '%s'; merge aborting."
msgstr "addinfo_cache gặp lá»—i đối vá»›i Ä‘Æ°á»ng dẫn “%sâ€; việc hòa trá»™n bị bãi bá»."
-#: merge-recursive.c:354
+#: merge-recursive.c:399
#, c-format
msgid "add_cacheinfo failed to refresh for path '%s'; merge aborting."
msgstr ""
"addinfo_cache gặp lá»—i khi làm má»›i đối vá»›i Ä‘Æ°á»ng dẫn “%sâ€; việc hòa trá»™n bị "
"bãi bá»."
-#: merge-recursive.c:437
-msgid "error building trees"
-msgstr "gặp lỗi khi xây dựng cây"
-
-#: merge-recursive.c:863
+#: merge-recursive.c:885
#, c-format
msgid "failed to create path '%s'%s"
msgstr "gặp lá»—i khi tạo Ä‘Æ°á»ng dẫn “%sâ€%s"
-#: merge-recursive.c:874
+#: merge-recursive.c:896
#, c-format
msgid "Removing %s to make room for subdirectory\n"
msgstr "Gỡ bỠ%s để tạo chỗ (room) cho thư mục con\n"
-#: merge-recursive.c:888 merge-recursive.c:907
+#: merge-recursive.c:910 merge-recursive.c:929
msgid ": perhaps a D/F conflict?"
msgstr ": có lẽ là một xung đột D/F?"
-#: merge-recursive.c:897
+#: merge-recursive.c:919
#, c-format
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:938 builtin/cat-file.c:40
+#: merge-recursive.c:960 builtin/cat-file.c:41
#, c-format
msgid "cannot read object %s '%s'"
msgstr "không thể Ä‘á»c đối tượng %s “%sâ€"
-#: merge-recursive.c:941
+#: merge-recursive.c:965
#, c-format
msgid "blob expected for %s '%s'"
msgstr "mong đợi đối tượng blob cho %s “%sâ€"
-#: merge-recursive.c:965
+#: merge-recursive.c:990
#, c-format
msgid "failed to open '%s': %s"
msgstr "gặp lá»—i khi mở “%sâ€: %s"
-#: merge-recursive.c:976
+#: merge-recursive.c:1001
#, c-format
msgid "failed to symlink '%s': %s"
msgstr "gặp lá»—i khi tạo liên kết má»m (symlink) “%sâ€: %s"
-#: merge-recursive.c:981
+#: merge-recursive.c:1006
#, c-format
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:1177
+#: merge-recursive.c:1199
#, 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-recursive.c:1184
+#: merge-recursive.c:1206
#, 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-recursive.c:1191
+#: merge-recursive.c:1213
#, 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-recursive.c:1199 merge-recursive.c:1211
+#: merge-recursive.c:1221 merge-recursive.c:1233
#, 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:1202 merge-recursive.c:1214
+#: merge-recursive.c:1224 merge-recursive.c:1236
#, c-format
msgid "Fast-forwarding submodule %s"
msgstr "Chuyển-tiếp-nhanh mô-Ä‘un-con “%sâ€"
-#: merge-recursive.c:1237
+#: merge-recursive.c:1259
#, 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:1241
+#: merge-recursive.c:1263
#, 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:1242
+#: merge-recursive.c:1264
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:1245
+#: merge-recursive.c:1267
#, c-format
msgid ""
"If this is correct simply add it to the index for example\n"
@@ -3736,33 +3761,33 @@ msgstr ""
"\n"
"cái mà sẽ chấp nhận gợi ý này.\n"
-#: merge-recursive.c:1254
+#: merge-recursive.c:1276
#, 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:1327
+#: merge-recursive.c:1349
msgid "Failed to execute internal merge"
msgstr "Gặp lỗi khi thực hiện trộn nội bộ"
-#: merge-recursive.c:1332
+#: merge-recursive.c:1354
#, c-format
msgid "Unable to add %s to database"
msgstr "Không thể thêm %s vào cơ sở dữ liệu"
-#: merge-recursive.c:1364
+#: merge-recursive.c:1386
#, c-format
msgid "Auto-merging %s"
msgstr "Tự-động-hòa-trộn %s"
-#: merge-recursive.c:1387
+#: merge-recursive.c:1410
#, 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:1459
+#: merge-recursive.c:1482
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -3771,7 +3796,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:1464
+#: merge-recursive.c:1487
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -3780,7 +3805,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:1471
+#: merge-recursive.c:1494
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -3789,7 +3814,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:1476
+#: merge-recursive.c:1499
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -3798,45 +3823,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:1511
+#: merge-recursive.c:1534
msgid "rename"
msgstr "đổi tên"
-#: merge-recursive.c:1511
+#: merge-recursive.c:1534
msgid "renamed"
msgstr "đã đổi tên"
-#: merge-recursive.c:1591 merge-recursive.c:2450 merge-recursive.c:3094
+#: merge-recursive.c:1614 merge-recursive.c:2472 merge-recursive.c:3117
#, 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:1601
+#: merge-recursive.c:1624
#, 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:1659
+#: merge-recursive.c:1682
#, 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:1690
+#: merge-recursive.c:1713
#, 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:1695
+#: merge-recursive.c:1718
#, 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:1714
+#: merge-recursive.c:1737
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
@@ -3845,17 +3870,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:1719
+#: merge-recursive.c:1742
msgid " (left unresolved)"
msgstr " (cần giải quyết)"
-#: merge-recursive.c:1828
+#: merge-recursive.c:1851
#, 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:2035
+#: merge-recursive.c:2056
#, c-format
msgid ""
"CONFLICT (directory rename split): Unclear where to place %s because "
@@ -3866,7 +3891,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:2067
+#: merge-recursive.c:2088
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Existing file/dir at %s in the way of "
@@ -3875,7 +3900,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-recursive.c:2077
+#: merge-recursive.c:2098
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Cannot map more than one path to %s; "
@@ -3884,7 +3909,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-recursive.c:2169
+#: merge-recursive.c:2190
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename directory %s->%s in %s. Rename directory %s-"
@@ -3893,7 +3918,7 @@ 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:2413
+#: merge-recursive.c:2435
#, c-format
msgid ""
"WARNING: Avoiding applying %s -> %s rename to %s, because %s itself was "
@@ -3902,52 +3927,52 @@ 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-recursive.c:2938
+#: merge-recursive.c:2961
#, c-format
msgid "cannot read object %s"
msgstr "không thể Ä‘á»c đối tượng %s"
-#: merge-recursive.c:2941
+#: merge-recursive.c:2964
#, c-format
msgid "object %s is not a blob"
msgstr "đối tượng %s không phải là một blob"
-#: merge-recursive.c:3005
+#: merge-recursive.c:3028
msgid "modify"
msgstr "sửa đổi"
-#: merge-recursive.c:3005
+#: merge-recursive.c:3028
msgid "modified"
msgstr "đã sửa"
-#: merge-recursive.c:3017
+#: merge-recursive.c:3040
msgid "content"
msgstr "ná»™i dung"
-#: merge-recursive.c:3021
+#: merge-recursive.c:3044
msgid "add/add"
msgstr "thêm/thêm"
-#: merge-recursive.c:3044
+#: merge-recursive.c:3067
#, 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:3066 git-submodule.sh:937
+#: merge-recursive.c:3089 git-submodule.sh:937
msgid "submodule"
msgstr "mô-đun-con"
-#: merge-recursive.c:3067
+#: merge-recursive.c:3090
#, c-format
msgid "CONFLICT (%s): Merge conflict in %s"
msgstr "XUNG ÄỘT (%s): Xung Ä‘á»™t hòa trá»™n trong %s"
-#: merge-recursive.c:3097
+#: merge-recursive.c:3120
#, c-format
msgid "Adding as %s instead"
msgstr "Thay vào đó thêm vào %s"
-#: merge-recursive.c:3179
+#: merge-recursive.c:3203
#, c-format
msgid ""
"Path updated: %s added in %s inside a directory that was renamed in %s; "
@@ -3956,7 +3981,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-recursive.c:3182
+#: merge-recursive.c:3206
#, c-format
msgid ""
"CONFLICT (file location): %s added in %s inside a directory that was renamed "
@@ -3965,7 +3990,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-recursive.c:3186
+#: merge-recursive.c:3210
#, c-format
msgid ""
"Path updated: %s renamed to %s in %s, inside a directory that was renamed in "
@@ -3974,7 +3999,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-recursive.c:3189
+#: merge-recursive.c:3213
#, c-format
msgid ""
"CONFLICT (file location): %s renamed to %s in %s, inside a directory that "
@@ -3983,227 +4008,227 @@ 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-recursive.c:3303
+#: merge-recursive.c:3327
#, c-format
msgid "Removing %s"
msgstr "Äang xóa %s"
-#: merge-recursive.c:3326
+#: merge-recursive.c:3350
msgid "file/directory"
msgstr "tập-tin/thư-mục"
-#: merge-recursive.c:3331
+#: merge-recursive.c:3355
msgid "directory/file"
msgstr "thư-mục/tập-tin"
-#: merge-recursive.c:3338
+#: merge-recursive.c:3362
#, 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:3347
+#: merge-recursive.c:3371
#, c-format
msgid "Adding %s"
msgstr "Thêm \"%s\""
-#: merge-recursive.c:3356
+#: merge-recursive.c:3380
#, 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:3394
-#, c-format
-msgid ""
-"Your local changes to the following files would be overwritten by merge:\n"
-" %s"
-msgstr ""
-"Các thay đổi nội bộ của bạn với các tập tin sau đây sẽ bị ghi đè bởi lệnh "
-"hòa trộn:\n"
-" %s"
-
-#: merge-recursive.c:3405
+#: merge-recursive.c:3424
msgid "Already up to date!"
msgstr "Äã cập nhật rồi!"
-#: merge-recursive.c:3414
+#: merge-recursive.c:3433
#, 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:3513
+#: merge-recursive.c:3537
msgid "Merging:"
msgstr "Äang trá»™n:"
-#: merge-recursive.c:3526
+#: merge-recursive.c:3550
#, 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:3565
+#: merge-recursive.c:3600
msgid "merge returned no commit"
msgstr "hòa trộn không trả vỠlần chuyển giao nào"
-#: merge-recursive.c:3631
+#: merge-recursive.c:3659
+#, c-format
+msgid ""
+"Your local changes to the following files would be overwritten by merge:\n"
+" %s"
+msgstr ""
+"Các thay đổi nội bộ của bạn với các tập tin sau đây sẽ bị ghi đè bởi lệnh "
+"hòa trộn:\n"
+" %s"
+
+#: merge-recursive.c:3756
#, c-format
msgid "Could not parse object '%s'"
msgstr "Không thể phân tích đối tượng “%sâ€"
-#: merge-recursive.c:3647 builtin/merge.c:698 builtin/merge.c:869
+#: merge-recursive.c:3774 builtin/merge.c:694 builtin/merge.c:874
msgid "Unable to write index."
msgstr "Không thể ghi bảng mục lục."
-#: midx.c:69
+#: midx.c:68
#, c-format
msgid "multi-pack-index file %s is too small"
msgstr "tập tin đồ thị multi-pack-index %s quá nhá»"
-#: midx.c:85
+#: midx.c:84
#, 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:90
+#: midx.c:89
#, 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:95
+#: midx.c:94
#, c-format
msgid "hash version %u does not match"
msgstr "phiên bản băm “%u†không khớp"
-#: midx.c:109
+#: midx.c:108
msgid "invalid chunk offset (too large)"
msgstr "khoảng bù đoạn không hợp lệ (quá lớn)"
-#: midx.c:133
+#: midx.c:132
msgid "terminating multi-pack-index chunk id appears earlier than expected"
msgstr "mã mảnh kết thúc multi-pack-index xuất hiện sá»›m hÆ¡n bình thÆ°á»ng"
-#: midx.c:146
+#: midx.c:145
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:148
+#: midx.c:147
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:150
+#: midx.c:149
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:152
+#: midx.c:151
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:166
+#: midx.c:165
#, 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:211
+#: midx.c:210
#, 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:261
+#: midx.c:260
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:289
+#: midx.c:288
msgid "error preparing packfile from multi-pack-index"
msgstr "lỗi chuẩn bị tập tin gói từ multi-pack-index"
-#: midx.c:470
+#: midx.c:469
#, c-format
msgid "failed to add packfile '%s'"
msgstr "gặp lá»—i khi thêm tập tin gói “%sâ€"
-#: midx.c:476
+#: midx.c:475
#, c-format
msgid "failed to open pack-index '%s'"
msgstr "gặp lá»—i khi mở pack-index “%sâ€"
-#: midx.c:536
+#: midx.c:535
#, 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:865
+#: midx.c:864
#, 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:1036
+#: midx.c:1035
#, 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:1091
+#: midx.c:1090
msgid "Looking for referenced packfiles"
msgstr "Äang khóa cho các gói bị tham chiếu"
-#: midx.c:1106
+#: midx.c:1105
#, 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:1110
+#: midx.c:1109
msgid "Verifying OID order in MIDX"
msgstr "Thẩm tra thứ tự OID trong MIDX"
-#: midx.c:1119
+#: midx.c:1118
#, 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:1138
+#: midx.c:1137
msgid "Sorting objects by packfile"
msgstr "Äang sắp xếp các đối tượng theo tập tin gói"
-#: midx.c:1144
+#: midx.c:1143
msgid "Verifying object offsets"
msgstr "Äang thẩm tra các khoảng bù đối tượng"
-#: midx.c:1160
+#: midx.c:1159
#, 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:1166
+#: midx.c:1165
#, 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:1175
+#: midx.c:1174
#, 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:1350
+#: midx.c:1349
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:1369
+#: midx.c:1368
msgid "could not finish pack-objects"
msgstr "không thể hoàn thiện các đối tượng gói"
-#: name-hash.c:532
+#: name-hash.c:537
#, c-format
msgid "unable to create lazy_dir thread: %s"
msgstr "không thể tạo tuyến lazy_dir: %s"
-#: name-hash.c:554
+#: name-hash.c:559
#, c-format
msgid "unable to create lazy_name thread: %s"
msgstr "không thể tạo tuyến lazy_name: %s"
-#: name-hash.c:560
+#: name-hash.c:565
#, c-format
msgid "unable to join lazy_name thread: %s"
msgstr "không thể gia nhập tuyến lazy_name: %s"
@@ -4250,41 +4275,41 @@ 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.c:54
+#: object.c:53
#, c-format
msgid "invalid object type \"%s\""
msgstr "kiểu đối tượng \"%s\" không hợp lệ"
-#: object.c:174
+#: object.c:173
#, c-format
msgid "object %s is a %s, not a %s"
msgstr "đối tượng %s là một %s, không phải là một %s"
-#: object.c:234
+#: object.c:233
#, c-format
msgid "object %s has unknown type id %d"
msgstr "đối tượng %s có mã kiểu %d chưa biết"
-#: object.c:247
+#: object.c:246
#, c-format
msgid "unable to parse object: %s"
msgstr "không thể phân tích đối tượng: “%sâ€"
-#: object.c:267 object.c:278
+#: object.c:266 object.c:277
#, c-format
msgid "hash mismatch %s"
msgstr "mã băm không khớp %s"
-#: packfile.c:648
+#: packfile.c:641
msgid "offset before end of packfile (broken .idx?)"
msgstr "vị trí tÆ°Æ¡ng đối trÆ°á»›c Ä‘iểm kết thúc của tập tin gói (.idx há»ng à?)"
-#: packfile.c:1899
+#: packfile.c:1887
#, c-format
msgid "offset before start of pack index for %s (corrupt index?)"
msgstr "vị trí tÆ°Æ¡ng đối nằm trÆ°á»›c chỉ mục gói cho %s (mục lục bị há»ng à?)"
-#: packfile.c:1903
+#: packfile.c:1891
#, c-format
msgid "offset beyond end of pack index for %s (truncated index?)"
msgstr ""
@@ -4330,26 +4355,26 @@ msgstr "tùy chá»n chÆ°a rõ rang: %s (nên là --%s%s hay --%s%s)"
msgid "did you mean `--%s` (with two dashes ?)"
msgstr "có phải ý bạn là “--%s“ (với hai dấu gạch ngang?)"
-#: parse-options.c:859
+#: parse-options.c:860
#, c-format
msgid "unknown option `%s'"
msgstr "không hiểu tùy chá»n “%sâ€"
-#: parse-options.c:861
+#: parse-options.c:862
#, c-format
msgid "unknown switch `%c'"
msgstr "không hiểu tùy chá»n “%câ€"
-#: parse-options.c:863
+#: parse-options.c:864
#, c-format
msgid "unknown non-ascii option in string: `%s'"
msgstr "không hiểu tùy chá»n non-ascii trong chuá»—i: “%sâ€"
-#: parse-options.c:887
+#: parse-options.c:888
msgid "..."
msgstr "…"
-#: parse-options.c:906
+#: parse-options.c:907
#, c-format
msgid "usage: %s"
msgstr "cách dùng: %s"
@@ -4357,21 +4382,21 @@ msgstr "cách dùng: %s"
#. TRANSLATORS: the colon here should align with the
#. one in "usage: %s" translation.
#.
-#: parse-options.c:912
+#: parse-options.c:913
#, c-format
msgid " or: %s"
msgstr " hoặc: %s"
-#: parse-options.c:915
+#: parse-options.c:916
#, c-format
msgid " %s"
msgstr " %s"
-#: parse-options.c:954
+#: parse-options.c:955
msgid "-NUM"
msgstr "-Sá»"
-#: parse-options.c:968
+#: parse-options.c:969
#, c-format
msgid "alias of --%s"
msgstr "bí danh của --%s"
@@ -4540,29 +4565,38 @@ msgstr "không thể tạo tuyến trình lstat: %s"
msgid "unable to parse --pretty format"
msgstr "không thể phân tích định dạng --pretty"
-#: range-diff.c:70
+#: promisor-remote.c:25
+msgid "Remote with no URL"
+msgstr "Máy chủ không có địa chỉ URL"
+
+#: promisor-remote.c:61
+#, c-format
+msgid "promisor remote name cannot begin with '/': %s"
+msgstr "tên máy chủ hứa hẹn không thể bắt đầu bằng '/': %s"
+
+#: range-diff.c:71
msgid "could not start `log`"
msgstr "không thể lấy thông tin thống kê vỠ“log“"
-#: range-diff.c:72
+#: range-diff.c:73
msgid "could not read `log` output"
msgstr "không thể Ä‘á»c kết xuất “logâ€"
-#: range-diff.c:91 sequencer.c:5021
+#: range-diff.c:92 sequencer.c:4985
#, 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:117
+#: range-diff.c:118
#, 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:274
+#: range-diff.c:275
msgid "failed to generate diff"
msgstr "gặp lỗi khi tạo khác biệt"
-#: range-diff.c:506 range-diff.c:508
+#: range-diff.c:507 range-diff.c:509
#, c-format
msgid "could not parse log for '%s'"
msgstr "không thể phân tích nhật ký cho “%sâ€"
@@ -4608,11 +4642,11 @@ msgstr "không thể lấy thống kê “%sâ€"
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:1499
+#: read-cache.c:1520
msgid "Refresh index"
msgstr "Làm tươi mới bảng mục lục"
-#: read-cache.c:1613
+#: read-cache.c:1635
#, c-format
msgid ""
"index.version set, but the value is invalid.\n"
@@ -4621,7 +4655,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:1623
+#: read-cache.c:1645
#, c-format
msgid ""
"GIT_INDEX_VERSION set, but the value is invalid.\n"
@@ -4630,138 +4664,138 @@ 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:1679
+#: read-cache.c:1701
#, c-format
msgid "bad signature 0x%08x"
msgstr "chữ ký sai 0x%08x"
-#: read-cache.c:1682
+#: read-cache.c:1704
#, c-format
msgid "bad index version %d"
msgstr "phiên bản mục lục sai %d"
-#: read-cache.c:1691
+#: read-cache.c:1713
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:1721
+#: read-cache.c:1743
#, 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:1723
+#: read-cache.c:1745
#, c-format
msgid "ignoring %.4s extension"
msgstr "đang lỠđi phần mở rộng %.4s"
-#: read-cache.c:1760
+#: read-cache.c:1782
#, 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:1776
+#: read-cache.c:1798
#, 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:1833
+#: read-cache.c:1855
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:1836
+#: read-cache.c:1858
#, 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:1839
+#: read-cache.c:1861
#, 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:1946 read-cache.c:2234 rerere.c:565 rerere.c:599 rerere.c:1111
-#: builtin/add.c:460 builtin/check-ignore.c:178 builtin/checkout.c:467
-#: builtin/checkout.c:651 builtin/clean.c:956 builtin/commit.c:347
+#: read-cache.c:1967 read-cache.c:2255 rerere.c:565 rerere.c:599 rerere.c:1111
+#: builtin/add.c:460 builtin/check-ignore.c:178 builtin/checkout.c:468
+#: builtin/checkout.c:652 builtin/clean.c:967 builtin/commit.c:347
#: builtin/diff-tree.c:120 builtin/grep.c:499 builtin/mv.c:145
#: builtin/reset.c:245 builtin/rm.c:271 builtin/submodule--helper.c:330
msgid "index file corrupt"
msgstr "tập tin ghi bảng mục lục bị há»ng"
-#: read-cache.c:2087
+#: read-cache.c:2108
#, 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:2100
+#: read-cache.c:2121
#, 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:2133
+#: read-cache.c:2154
#, 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:2137
+#: read-cache.c:2158
#, 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:2141
+#: read-cache.c:2162
#, 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:2145
+#: read-cache.c:2166
#, c-format
msgid "%s: unable to map index file"
msgstr "%s: không thể ánh xạ tập tin mục lục"
-#: read-cache.c:2187
+#: read-cache.c:2208
#, 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:2214
+#: read-cache.c:2235
#, 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:2246
+#: read-cache.c:2267
#, 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:2293
+#: read-cache.c:2314
#, 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:2989 wrapper.c:658 builtin/merge.c:1114
+#: read-cache.c:3010 wrapper.c:622 builtin/merge.c:1119
#, c-format
msgid "could not close '%s'"
msgstr "không thể đóng “%sâ€"
-#: read-cache.c:3092 sequencer.c:2358 sequencer.c:3928
+#: read-cache.c:3113 sequencer.c:2296 sequencer.c:3917
#, c-format
msgid "could not stat '%s'"
msgstr "không thể lấy thông tin thống kê vỠ“%sâ€"
-#: read-cache.c:3105
+#: read-cache.c:3126
#, c-format
msgid "unable to open git dir: %s"
msgstr "không thể mở thư mục git: %s"
-#: read-cache.c:3117
+#: read-cache.c:3138
#, c-format
msgid "unable to unlink: %s"
msgstr "không thể bá» liên kết (unlink): “%sâ€"
-#: read-cache.c:3142
+#: read-cache.c:3163
#, 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:3291
+#: read-cache.c:3312
#, c-format
msgid "%s: cannot drop to stage #0"
msgstr "%s: không thể xóa bỠstage #0"
@@ -4870,8 +4904,8 @@ msgstr ""
msgid "Note that empty commits are commented out"
msgstr "Chú ý rằng lần chuyển giao trống rỗng là ghi chú"
-#: rebase-interactive.c:105 rerere.c:485 rerere.c:692 sequencer.c:3447
-#: sequencer.c:3473 sequencer.c:5120 builtin/fsck.c:356 builtin/rebase.c:235
+#: rebase-interactive.c:105 rerere.c:485 rerere.c:692 sequencer.c:3388
+#: sequencer.c:3414 sequencer.c:5084 builtin/fsck.c:356 builtin/rebase.c:235
#, c-format
msgid "could not write '%s'"
msgstr "không thể ghi “%sâ€"
@@ -4918,7 +4952,7 @@ msgstr "“%s†không chỉ đến một lần chuyển giao hợp lệ nào c
msgid "ignoring dangling symref %s"
msgstr "Ä‘ang lá» Ä‘i tham chiếu má»m thừa %s"
-#: refs.c:669 ref-filter.c:2092
+#: refs.c:669 ref-filter.c:2098
#, c-format
msgid "ignoring broken ref %s"
msgstr "Ä‘ang lá» Ä‘i tham chiếu há»ng %s"
@@ -4943,14 +4977,14 @@ msgstr "tham chiếu “%s†đã có từ trước rồi"
msgid "unexpected object ID when writing '%s'"
msgstr "không cần ID đối tượng khi ghi “%sâ€"
-#: refs.c:833 sequencer.c:403 sequencer.c:2709 sequencer.c:2913
-#: sequencer.c:2927 sequencer.c:3184 sequencer.c:5037 wrapper.c:656
+#: refs.c:833 sequencer.c:403 sequencer.c:2647 sequencer.c:2851
+#: sequencer.c:2865 sequencer.c:3122 sequencer.c:5001 wrapper.c:620
#, c-format
msgid "could not write to '%s'"
msgstr "không thể ghi vào “%sâ€"
-#: refs.c:860 wrapper.c:225 wrapper.c:395 builtin/am.c:715
-#: builtin/rebase.c:1003
+#: refs.c:860 wrapper.c:188 wrapper.c:358 builtin/am.c:714
+#: builtin/rebase.c:1004
#, c-format
msgid "could not open '%s' for writing"
msgstr "không thể mở “%s†để ghi"
@@ -4985,21 +5019,21 @@ msgstr "từ chối cập nhật tham chiếu vá»›i tên sai “%sâ€"
msgid "update_ref failed for ref '%s': %s"
msgstr "update_ref bị lá»—i cho ref “%sâ€: %s"
-#: refs.c:2012
+#: refs.c:2023
#, 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:2044
+#: refs.c:2055
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:2140 refs.c:2170
+#: refs.c:2151 refs.c:2181
#, c-format
msgid "'%s' exists; cannot create '%s'"
msgstr "“%s†sẵn có; không thể tạo “%sâ€"
-#: refs.c:2146 refs.c:2181
+#: refs.c:2157 refs.c:2192
#, 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"
@@ -5009,13 +5043,13 @@ msgstr "không thể xử lý “%s†và “%s†cùng một lúc"
msgid "could not remove reference %s"
msgstr "không thể gỡ bỠtham chiếu: %s"
-#: refs/files-backend.c:1248 refs/packed-backend.c:1532
-#: refs/packed-backend.c:1542
+#: refs/files-backend.c:1248 refs/packed-backend.c:1541
+#: refs/packed-backend.c:1551
#, 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:1251 refs/packed-backend.c:1545
+#: refs/files-backend.c:1251 refs/packed-backend.c:1554
#, c-format
msgid "could not delete references: %s"
msgstr "không thể xóa bỠtham chiếu: %s"
@@ -5025,7 +5059,7 @@ msgstr "không thể xóa bỠtham chiếu: %s"
msgid "invalid refspec '%s'"
msgstr "refspec không hợp lệ “%sâ€"
-#: ref-filter.c:42 wt-status.c:1934
+#: ref-filter.c:42 wt-status.c:1938
msgid "gone"
msgstr "đã ra đi"
@@ -5044,122 +5078,122 @@ msgstr "đằng sau %d"
msgid "ahead %d, behind %d"
msgstr "trÆ°á»›c %d, sau %d"
-#: ref-filter.c:162
+#: ref-filter.c:165
#, c-format
msgid "expected format: %%(color:<color>)"
msgstr "cần định dạng: %%(color:<color>)"
-#: ref-filter.c:164
+#: ref-filter.c:167
#, c-format
msgid "unrecognized color: %%(color:%s)"
msgstr "không nhận ra màu: %%(màu:%s)"
-#: ref-filter.c:186
+#: ref-filter.c:189
#, c-format
msgid "Integer value expected refname:lstrip=%s"
msgstr "Giá trị nguyên cần tên tham chiếu:lstrip=%s"
-#: ref-filter.c:190
+#: ref-filter.c:193
#, c-format
msgid "Integer value expected refname:rstrip=%s"
msgstr "Giá trị nguyên cần tên tham chiếu:rstrip=%s"
-#: ref-filter.c:192
+#: ref-filter.c:195
#, c-format
msgid "unrecognized %%(%s) argument: %s"
msgstr "đối số không được thừa nhận %%(%s): %s"
-#: ref-filter.c:247
+#: ref-filter.c:250
#, c-format
msgid "%%(objecttype) does not take arguments"
msgstr "%%(objecttype) không nhận các đối số"
-#: ref-filter.c:269
+#: ref-filter.c:272
#, c-format
msgid "unrecognized %%(objectsize) argument: %s"
msgstr "tham số không được thừa nhận %%(objectname): %s"
-#: ref-filter.c:277
+#: ref-filter.c:280
#, c-format
msgid "%%(deltabase) does not take arguments"
msgstr "%%(deltabase) không nhận các đối số"
-#: ref-filter.c:289
+#: ref-filter.c:292
#, c-format
msgid "%%(body) does not take arguments"
msgstr "%%(body) không nhận các đối số"
-#: ref-filter.c:298
+#: ref-filter.c:301
#, c-format
msgid "%%(subject) does not take arguments"
msgstr "%%(subject) không nhận các đối số"
-#: ref-filter.c:320
+#: ref-filter.c:323
#, c-format
msgid "unknown %%(trailers) argument: %s"
msgstr "không hiểu tham số %%(trailers): %s"
-#: ref-filter.c:349
+#: ref-filter.c:352
#, c-format
msgid "positive value expected contents:lines=%s"
msgstr "cần nội dung mang giá trị dương:lines=%s"
-#: ref-filter.c:351
+#: ref-filter.c:354
#, c-format
msgid "unrecognized %%(contents) argument: %s"
msgstr "đối số không được thừa nhận %%(contents): %s"
-#: ref-filter.c:366
+#: ref-filter.c:369
#, c-format
msgid "positive value expected objectname:short=%s"
msgstr "cần nội dung mang giá trị dương:shot=%s"
-#: ref-filter.c:370
+#: ref-filter.c:373
#, c-format
msgid "unrecognized %%(objectname) argument: %s"
msgstr "đối số không được thừa nhận %%(objectname): %s"
-#: ref-filter.c:400
+#: ref-filter.c:403
#, c-format
msgid "expected format: %%(align:<width>,<position>)"
msgstr "cần định dạng: %%(align:<width>,<position>)"
-#: ref-filter.c:412
+#: ref-filter.c:415
#, c-format
msgid "unrecognized position:%s"
msgstr "vị trí không được thừa nhận:%s"
-#: ref-filter.c:419
+#: ref-filter.c:422
#, c-format
msgid "unrecognized width:%s"
msgstr "chiá»u rá»™ng không được thừa nhận:%s"
-#: ref-filter.c:428
+#: ref-filter.c:431
#, c-format
msgid "unrecognized %%(align) argument: %s"
msgstr "đối số không được thừa nhận %%(align): %s"
-#: ref-filter.c:436
+#: ref-filter.c:439
#, c-format
msgid "positive width expected with the %%(align) atom"
msgstr "cần giá trị độ rộng dương với nguyên tử %%(align)"
-#: ref-filter.c:454
+#: ref-filter.c:457
#, c-format
msgid "unrecognized %%(if) argument: %s"
msgstr "đối số không được thừa nhận %%(if): %s"
-#: ref-filter.c:556
+#: ref-filter.c:559
#, c-format
msgid "malformed field name: %.*s"
msgstr "tên trÆ°á»ng dị hình: %.*s"
-#: ref-filter.c:583
+#: ref-filter.c:586
#, c-format
msgid "unknown field name: %.*s"
msgstr "không hiểu tên trÆ°á»ng: %.*s"
-#: ref-filter.c:587
+#: ref-filter.c:590
#, c-format
msgid ""
"not a git repository, but the field '%.*s' requires access to object data"
@@ -5167,159 +5201,159 @@ msgstr ""
"không phải là má»™t kho git, nhÆ°ng trÆ°á»ng “%.*s†yêu cầu truy cập vào dữ liệu "
"đối tượng"
-#: ref-filter.c:711
+#: ref-filter.c:714
#, c-format
msgid "format: %%(if) atom used without a %%(then) atom"
msgstr "định dạng: nguyên tử %%(if) được dùng mà không có nguyên tử %%(then)"
-#: ref-filter.c:774
+#: ref-filter.c:777
#, c-format
msgid "format: %%(then) atom used without an %%(if) atom"
msgstr "định dạng: nguyên tử %%(then) được dùng mà không có nguyên tử %%(if)"
-#: ref-filter.c:776
+#: ref-filter.c:779
#, c-format
msgid "format: %%(then) atom used more than once"
msgstr "định dạng: nguyên tá»­ %%(then) được dùng nhiá»u hÆ¡n má»™t lần"
-#: ref-filter.c:778
+#: ref-filter.c:781
#, c-format
msgid "format: %%(then) atom used after %%(else)"
msgstr "định dạng: nguyên tử %%(then) được dùng sau %%(else)"
-#: ref-filter.c:806
+#: ref-filter.c:809
#, c-format
msgid "format: %%(else) atom used without an %%(if) atom"
msgstr "định dạng: nguyên tử %%(else) được dùng mà không có nguyên tử %%(if)"
-#: ref-filter.c:808
+#: ref-filter.c:811
#, c-format
msgid "format: %%(else) atom used without a %%(then) atom"
msgstr "định dạng: nguyên tử %%(else) được dùng mà không có nguyên tử %%(then)"
-#: ref-filter.c:810
+#: ref-filter.c:813
#, c-format
msgid "format: %%(else) atom used more than once"
msgstr "định dạng: nguyên tá»­ %%(else) được dùng nhiá»u hÆ¡n má»™t lần"
-#: ref-filter.c:825
+#: ref-filter.c:828
#, c-format
msgid "format: %%(end) atom used without corresponding atom"
msgstr "định dạng: nguyên tử %%(end) được dùng mà không có nguyên tử tương ứng"
-#: ref-filter.c:882
+#: ref-filter.c:885
#, c-format
msgid "malformed format string %s"
msgstr "chuỗi định dạng dị hình %s"
-#: ref-filter.c:1485
+#: ref-filter.c:1488
#, c-format
msgid "no branch, rebasing %s"
msgstr "không nhánh, đang cải tổ %s"
-#: ref-filter.c:1488
+#: ref-filter.c:1491
#, 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:1491
+#: ref-filter.c:1494
#, 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:1501
+#: ref-filter.c:1504
msgid "no branch"
msgstr "không nhánh"
-#: ref-filter.c:1537 ref-filter.c:1743
+#: ref-filter.c:1540 ref-filter.c:1749
#, c-format
msgid "missing object %s for %s"
msgstr "thiếu đối tượng %s cho %s"
-#: ref-filter.c:1547
+#: ref-filter.c:1550
#, 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:1998
+#: ref-filter.c:2004
#, c-format
msgid "malformed object at '%s'"
msgstr "đối tượng dị hình tại “%sâ€"
-#: ref-filter.c:2087
+#: ref-filter.c:2093
#, 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:2382
+#: ref-filter.c:2389
#, c-format
msgid "format: %%(end) atom missing"
msgstr "định dạng: thiếu nguyên tử %%(end)"
-#: ref-filter.c:2482
+#: ref-filter.c:2489
#, c-format
msgid "option `%s' is incompatible with --merged"
msgstr "tùy chá»n “%s†là xung khắc vá»›i tùy chá»n --merged"
-#: ref-filter.c:2485
+#: ref-filter.c:2492
#, c-format
msgid "option `%s' is incompatible with --no-merged"
msgstr "tùy chá»n “%s†là xung khắc vá»›i tùy chá»n --no-merged"
-#: ref-filter.c:2495
+#: ref-filter.c:2502
#, c-format
msgid "malformed object name %s"
msgstr "tên đối tượng dị hình %s"
-#: ref-filter.c:2500
+#: ref-filter.c:2507
#, 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"
-#: remote.c:363
+#: remote.c:366
#, c-format
msgid "config remote shorthand cannot begin with '/': %s"
msgstr "cấu hình viết tắt máy chủ không thể bắt đầu bằng “/â€: %s"
-#: remote.c:410
+#: remote.c:413
msgid "more than one receivepack given, using the first"
msgstr "đã Ä‘Æ°a ra nhiá»u hÆ¡n má»™t gói nhận vá», Ä‘ang sá»­ dụng cái đầu tiên"
-#: remote.c:418
+#: remote.c:421
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:608
+#: remote.c:611
#, 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:612
+#: remote.c:615
#, c-format
msgid "%s usually tracks %s, not %s"
msgstr "%s thÆ°á»ng theo dõi %s, không phải %s"
-#: remote.c:616
+#: remote.c:619
#, c-format
msgid "%s tracks both %s and %s"
msgstr "%s theo dõi cả %s và %s"
-#: remote.c:684
+#: remote.c:687
#, c-format
msgid "key '%s' of pattern had no '*'"
msgstr "khóa “%s†của mẫu k có “*â€"
-#: remote.c:694
+#: remote.c:697
#, c-format
msgid "value '%s' of pattern has no '*'"
msgstr "giá trị “%s†của mẫu k có “*â€"
-#: remote.c:1000
+#: remote.c:1003
#, 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:1005
+#: remote.c:1008
#, c-format
msgid "src refspec %s matches more than one"
msgstr "refspec %s nguồn khá»›p nhiá»u hÆ¡n má»™t"
@@ -5328,7 +5362,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:1020
+#: remote.c:1023
#, c-format
msgid ""
"The destination you provided is not a full refname (i.e.,\n"
@@ -5353,7 +5387,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:1040
+#: remote.c:1043
#, c-format
msgid ""
"The <src> part of the refspec is a commit object.\n"
@@ -5364,7 +5398,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:1045
+#: remote.c:1048
#, c-format
msgid ""
"The <src> part of the refspec is a tag object.\n"
@@ -5375,7 +5409,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:1050
+#: remote.c:1053
#, c-format
msgid ""
"The <src> part of the refspec is a tree object.\n"
@@ -5386,7 +5420,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:1055
+#: remote.c:1058
#, c-format
msgid ""
"The <src> part of the refspec is a blob object.\n"
@@ -5397,115 +5431,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:1091
+#: remote.c:1094
#, 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:1102
+#: remote.c:1105
#, 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:1114
+#: remote.c:1117
#, c-format
msgid "dst refspec %s matches more than one"
msgstr "dst refspec %s khá»›p nhiá»u hÆ¡n má»™t"
-#: remote.c:1121
+#: remote.c:1124
#, 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:1624 remote.c:1725
+#: remote.c:1627 remote.c:1728
msgid "HEAD does not point to a branch"
msgstr "HEAD không chỉ đến một nhánh nào cả"
-#: remote.c:1633
+#: remote.c:1636
#, c-format
msgid "no such branch: '%s'"
msgstr "không có nhánh nào nhÆ° thế: “%sâ€"
-#: remote.c:1636
+#: remote.c:1639
#, 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:1642
+#: remote.c:1645
#, 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:1657
+#: remote.c:1660
#, 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:1669
+#: remote.c:1672
#, 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:1679
+#: remote.c:1682
#, c-format
msgid "push refspecs for '%s' do not include '%s'"
msgstr "đẩy refspecs cho “%s†không bao gồm “%sâ€"
-#: remote.c:1692
+#: remote.c:1695
msgid "push has no destination (push.default is 'nothing')"
msgstr "đẩy lên mà không có đích (push.default là “nothingâ€)"
-#: remote.c:1714
+#: remote.c:1717
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:1840
+#: remote.c:1843
#, 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:1853
+#: remote.c:1856
#, c-format
msgid "* Ignoring funny ref '%s' locally"
msgstr "* Äang bá» qua tham chiếu thú vị ná»™i bá»™ “%sâ€"
-#: remote.c:2016
+#: remote.c:2019
#, 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:2020
+#: remote.c:2023
msgid " (use \"git branch --unset-upstream\" to fixup)\n"
msgstr " (dùng \" git branch --unset-upstream\" để sửa)\n"
-#: remote.c:2023
+#: remote.c:2026
#, 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:2027
+#: remote.c:2030
#, 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:2030
+#: remote.c:2033
#, c-format
msgid " (use \"%s\" for details)\n"
msgstr " (dùng \"%s\" để biết thêm chi tiết)\n"
-#: remote.c:2034
+#: remote.c:2037
#, 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:2040
+#: remote.c:2043
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:2043
+#: remote.c:2046
#, c-format
msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
msgid_plural ""
@@ -5514,11 +5548,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:2051
+#: remote.c:2054
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:2054
+#: remote.c:2057
#, c-format
msgid ""
"Your branch and '%s' have diverged,\n"
@@ -5531,13 +5565,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:2064
+#: remote.c:2067
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:2247
+#: remote.c:2250
#, 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â€"
@@ -5615,7 +5649,7 @@ msgstr "không thể unlink stray “%sâ€"
msgid "Recorded preimage for '%s'"
msgstr "Preimage đã được ghi lại cho “%sâ€"
-#: rerere.c:881 submodule.c:2023 builtin/log.c:1773
+#: rerere.c:881 submodule.c:2023 builtin/log.c:1790
#: builtin/submodule--helper.c:1418 builtin/submodule--helper.c:1428
#, c-format
msgid "could not create directory '%s'"
@@ -5650,20 +5684,20 @@ msgstr "Quên phân giải cho “%sâ€\n"
msgid "unable to open rr-cache directory"
msgstr "không thể mở thư mục rr-cache"
-#: revision.c:2507
+#: revision.c:2509
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:2510
+#: revision.c:2512
#, 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:2710
+#: revision.c:2720
msgid "--first-parent is incompatible with --bisect"
msgstr "--first-parent xung khắc với --bisect"
-#: revision.c:2714
+#: revision.c:2724
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"
@@ -5685,30 +5719,30 @@ 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“."
-#: send-pack.c:141
+#: send-pack.c:142
msgid "unexpected flush packet while reading remote unpack status"
msgstr ""
"gặp gói flush không cần trong khi Ä‘á»c tình trạng giải nén gói trên máy chủ"
-#: send-pack.c:143
+#: send-pack.c:144
#, c-format
msgid "unable to parse remote unpack status: %s"
msgstr "không thể phân tích tình trạng unpack máy chủ: %s"
-#: send-pack.c:145
+#: send-pack.c:146
#, c-format
msgid "remote unpack failed: %s"
msgstr "máy chủ gặp lỗi unpack: %s"
-#: send-pack.c:306
+#: send-pack.c:307
msgid "failed to sign the push certificate"
msgstr "gặp lỗi khi ký chứng thực đẩy"
-#: send-pack.c:420
+#: send-pack.c:421
msgid "the receiving end does not support --signed push"
msgstr "kết thúc nhận không hỗ trợ đẩy --signed"
-#: send-pack.c:422
+#: send-pack.c:423
msgid ""
"not sending a push certificate since the receiving end does not support --"
"signed push"
@@ -5716,11 +5750,11 @@ msgstr ""
"đừng gửi giấy chứng nhận đẩy trước khi kết thúc nhận không hỗ trợ đẩy --"
"signed"
-#: send-pack.c:434
+#: send-pack.c:435
msgid "the receiving end does not support --atomic push"
msgstr "kết thúc nhận không hỗ trợ đẩy --atomic"
-#: send-pack.c:439
+#: send-pack.c:440
msgid "the receiving end does not support push options"
msgstr "kết thúc nhận không há»— trợ các tùy chá»n của lệnh push"
@@ -5734,7 +5768,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:311 builtin/rebase.c:759 builtin/rebase.c:1645 builtin/rm.c:369
+#: sequencer.c:311 builtin/rebase.c:760 builtin/rebase.c:1676 builtin/rm.c:369
#, c-format
msgid "could not remove '%s'"
msgstr "không thể gỡ bỠ“%sâ€"
@@ -5774,7 +5808,7 @@ msgstr ""
"vá»›i lệnh “git add </các/Ä‘Æ°á»ng/dẫn>†hoặc “git rm </các/Ä‘Æ°á»ng/dẫn>â€\n"
"và chuyển giao kết quả bằng lệnh “git commitâ€"
-#: sequencer.c:401 sequencer.c:2909
+#: sequencer.c:401 sequencer.c:2847
#, c-format
msgid "could not lock '%s'"
msgstr "không thể khóa “%sâ€"
@@ -5784,15 +5818,15 @@ msgstr "không thể khóa “%sâ€"
msgid "could not write eol to '%s'"
msgstr "không thể ghi eol vào “%sâ€"
-#: sequencer.c:413 sequencer.c:2714 sequencer.c:2915 sequencer.c:2929
-#: sequencer.c:3192
+#: sequencer.c:413 sequencer.c:2652 sequencer.c:2853 sequencer.c:2867
+#: sequencer.c:3130
#, c-format
msgid "failed to finalize '%s'"
msgstr "gặp lá»—i khi hoàn thành “%sâ€"
-#: sequencer.c:436 sequencer.c:981 sequencer.c:1655 sequencer.c:2734
-#: sequencer.c:3174 sequencer.c:3283 builtin/am.c:245 builtin/commit.c:763
-#: builtin/merge.c:1112 builtin/rebase.c:567
+#: sequencer.c:436 sequencer.c:1585 sequencer.c:2672 sequencer.c:3112
+#: sequencer.c:3221 builtin/am.c:244 builtin/commit.c:763 builtin/merge.c:1117
+#: builtin/rebase.c:568
#, c-format
msgid "could not read '%s'"
msgstr "không thể Ä‘á»c “%sâ€"
@@ -5819,70 +5853,65 @@ msgstr "Chế Ä‘á»™ dá»n dẹp không hợp lệ %s"
#. TRANSLATORS: %s will be "revert", "cherry-pick" or
#. "rebase -i".
#.
-#: sequencer.c:632
+#: sequencer.c:631
#, c-format
msgid "%s: Unable to write new index file"
msgstr "%s: Không thể ghi tập tin lưu bảng mục lục mới"
-#: sequencer.c:649
+#: sequencer.c:648
msgid "unable to update cache tree"
msgstr "không thể cập nhật cây bộ nhớ đệm"
-#: sequencer.c:663
+#: sequencer.c:662
msgid "could not resolve HEAD commit"
msgstr "không thể phân giải lần chuyển giao HEAD"
-#: sequencer.c:743
+#: sequencer.c:742
#, c-format
msgid "no key present in '%.*s'"
msgstr "không có khóa hiện diện trong “%.*sâ€"
-#: sequencer.c:754
+#: sequencer.c:753
#, c-format
msgid "unable to dequote value of '%s'"
msgstr "không thể giải trích dẫn giá trị của “%sâ€"
-#: sequencer.c:791 wrapper.c:227 wrapper.c:397 builtin/am.c:706
-#: builtin/am.c:798 builtin/merge.c:1109 builtin/rebase.c:1045
+#: sequencer.c:790 wrapper.c:190 wrapper.c:360 builtin/am.c:705
+#: builtin/am.c:797 builtin/merge.c:1114 builtin/rebase.c:1046
#, c-format
msgid "could not open '%s' for reading"
msgstr "không thể mở “%s†để Ä‘á»c"
-#: sequencer.c:801
+#: sequencer.c:800
msgid "'GIT_AUTHOR_NAME' already given"
msgstr "“GIT_AUTHOR_NAME†đã sẵn đưa ra rồi"
-#: sequencer.c:806
+#: sequencer.c:805
msgid "'GIT_AUTHOR_EMAIL' already given"
msgstr "“GIT_AUTHOR_EMAIL†đã sẵn đưa ra rồi"
-#: sequencer.c:811
+#: sequencer.c:810
msgid "'GIT_AUTHOR_DATE' already given"
msgstr "“GIT_AUTHOR_DATE†đã sẵn đưa ra rồi"
-#: sequencer.c:815
+#: sequencer.c:814
#, c-format
msgid "unknown variable '%s'"
msgstr "không hiểu biến “%sâ€"
-#: sequencer.c:820
+#: sequencer.c:819
msgid "missing 'GIT_AUTHOR_NAME'"
msgstr "thiếu “GIT_AUTHOR_NAMEâ€"
-#: sequencer.c:822
+#: sequencer.c:821
msgid "missing 'GIT_AUTHOR_EMAIL'"
msgstr "thiếu “GIT_AUTHOR_EMAILâ€"
-#: sequencer.c:824
+#: sequencer.c:823
msgid "missing 'GIT_AUTHOR_DATE'"
msgstr "thiếu “GIT_AUTHOR_DATEâ€"
-#: sequencer.c:884
-#, c-format
-msgid "invalid date format '%s' in '%s'"
-msgstr "định dạng ngày tháng không hợp lệ “%s†trong “%sâ€"
-
-#: sequencer.c:901
+#: sequencer.c:872
#, c-format
msgid ""
"you have staged changes in your working tree\n"
@@ -5911,15 +5940,11 @@ msgstr ""
"\n"
" git rebase --continue\n"
-#: sequencer.c:995
-msgid "writing root commit"
-msgstr "ghi chuyển giao gốc"
-
-#: sequencer.c:1216
+#: sequencer.c:1146
msgid "'prepare-commit-msg' hook failed"
msgstr "móc “prepare-commit-msg†bị lỗi"
-#: sequencer.c:1223
+#: sequencer.c:1153
msgid ""
"Your name and email address were configured automatically based\n"
"on your username and hostname. Please check that they are accurate.\n"
@@ -5950,7 +5975,7 @@ msgstr ""
"\n"
" git commit --amend --reset-author\n"
-#: sequencer.c:1236
+#: sequencer.c:1166
msgid ""
"Your name and email address were configured automatically based\n"
"on your username and hostname. Please check that they are accurate.\n"
@@ -5978,328 +6003,328 @@ msgstr ""
"\n"
" git commit --amend --reset-author\n"
-#: sequencer.c:1278
+#: sequencer.c:1208
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:1280
+#: sequencer.c:1210
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:1326
+#: sequencer.c:1256
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:1328
+#: sequencer.c:1258
msgid "detached HEAD"
msgstr "đã rá»i khá»i HEAD"
-#: sequencer.c:1332
+#: sequencer.c:1262
msgid " (root-commit)"
msgstr " (root-commit)"
-#: sequencer.c:1353
+#: sequencer.c:1283
msgid "could not parse HEAD"
msgstr "không thể phân tích HEAD"
-#: sequencer.c:1355
+#: sequencer.c:1285
#, 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:1359 builtin/commit.c:1571
+#: sequencer.c:1289 builtin/commit.c:1571
msgid "could not parse HEAD commit"
msgstr "không thể phân tích commit (lần chuyển giao) HEAD"
-#: sequencer.c:1411 sequencer.c:2004
+#: sequencer.c:1341 sequencer.c:1933
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:1421 builtin/am.c:1573 builtin/merge.c:684
+#: sequencer.c:1352 builtin/am.c:1561 builtin/merge.c:684
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:1438 sequencer.c:1499
+#: sequencer.c:1369 sequencer.c:1429
#, 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:1465 builtin/am.c:1595 builtin/commit.c:1670 builtin/merge.c:878
-#: builtin/merge.c:903
+#: sequencer.c:1396 builtin/am.c:1583 builtin/commit.c:1670 builtin/merge.c:883
+#: builtin/merge.c:908
msgid "failed to write commit object"
msgstr "gặp lỗi khi ghi đối tượng chuyển giao"
-#: sequencer.c:1526
+#: sequencer.c:1456
#, c-format
msgid "could not parse commit %s"
msgstr "không thể phân tích lần chuyển giao %s"
-#: sequencer.c:1531
+#: sequencer.c:1461
#, 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:1605 sequencer.c:1715
+#: sequencer.c:1535 sequencer.c:1645
#, c-format
msgid "unknown command: %d"
msgstr "không hiểu câu lệnh %d"
-#: sequencer.c:1662 sequencer.c:1687
+#: sequencer.c:1592 sequencer.c:1617
#, 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:1672
+#: sequencer.c:1602
msgid "need a HEAD to fixup"
msgstr "cần một HEAD để sửa"
-#: sequencer.c:1674 sequencer.c:3219
+#: sequencer.c:1604 sequencer.c:3157
msgid "could not read HEAD"
msgstr "không thể Ä‘á»c HEAD"
-#: sequencer.c:1676
+#: sequencer.c:1606
msgid "could not read HEAD's commit message"
msgstr "không thể Ä‘á»c phần chú thích (message) của HEAD"
-#: sequencer.c:1682
+#: sequencer.c:1612
#, c-format
msgid "cannot write '%s'"
msgstr "không thể ghi “%sâ€"
-#: sequencer.c:1689 git-rebase--preserve-merges.sh:496
+#: sequencer.c:1619 git-rebase--preserve-merges.sh:496
msgid "This is the 1st commit message:"
msgstr "Äây là chú thích cho lần chuyển giao thứ nhất:"
-#: sequencer.c:1697
+#: sequencer.c:1627
#, 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:1704
+#: sequencer.c:1634
#, 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:1710
+#: sequencer.c:1640
#, 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:1798
+#: sequencer.c:1728
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:1805
+#: sequencer.c:1735
msgid "cannot fixup root commit"
msgstr "không thể sửa chữa lần chuyển giao gốc"
-#: sequencer.c:1824
+#: sequencer.c:1754
#, 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:1832 sequencer.c:1840
+#: sequencer.c:1762 sequencer.c:1770
#, 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:1846
+#: sequencer.c:1776
#, 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:1865
+#: sequencer.c:1795
#, 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:1930
+#: sequencer.c:1860
#, c-format
msgid "could not rename '%s' to '%s'"
msgstr "không thể đổi tên “%s†thành “%sâ€"
-#: sequencer.c:1985
+#: sequencer.c:1915
#, c-format
msgid "could not revert %s... %s"
msgstr "không thể hoàn nguyên %s… %s"
-#: sequencer.c:1986
+#: sequencer.c:1916
#, c-format
msgid "could not apply %s... %s"
msgstr "không thể áp dụng miếng vá %s… %s"
-#: sequencer.c:2045
+#: sequencer.c:1983
#, 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:2052
+#: sequencer.c:1990
#, 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:2128
+#: sequencer.c:2066
#, c-format
msgid "%s does not accept arguments: '%s'"
msgstr "%s không nhận các đối số: “%sâ€"
-#: sequencer.c:2137
+#: sequencer.c:2075
#, c-format
msgid "missing arguments for %s"
msgstr "thiếu đối số cho %s"
-#: sequencer.c:2174
+#: sequencer.c:2112
#, c-format
msgid "could not parse '%.*s'"
msgstr "không thể phân tích cú pháp “%.*sâ€"
-#: sequencer.c:2228
+#: sequencer.c:2166
#, c-format
msgid "invalid line %d: %.*s"
msgstr "dòng không hợp lệ %d: %.*s"
-#: sequencer.c:2239
+#: sequencer.c:2177
#, 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:2287 builtin/rebase.c:153 builtin/rebase.c:178
+#: sequencer.c:2225 builtin/rebase.c:153 builtin/rebase.c:178
#: builtin/rebase.c:204 builtin/rebase.c:229
#, c-format
msgid "could not read '%s'."
msgstr "không thể Ä‘á»c “%sâ€."
-#: sequencer.c:2323
+#: sequencer.c:2261
msgid "cancelling a cherry picking in progress"
msgstr "đang hủy bỠthao tác cherry pick đang thực hiện"
-#: sequencer.c:2330
+#: sequencer.c:2268
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:2364
+#: sequencer.c:2302
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:2366
+#: sequencer.c:2304
#, c-format
msgid "unusable instruction sheet: '%s'"
msgstr "bảng chỉ thị không thể dùng được: %s"
-#: sequencer.c:2371
+#: sequencer.c:2309
msgid "no commits parsed."
msgstr "không có lần chuyển giao nào được phân tích."
-#: sequencer.c:2382
+#: sequencer.c:2320
msgid "cannot cherry-pick during a revert."
msgstr "không thể cherry-pick trong khi hoàn nguyên."
-#: sequencer.c:2384
+#: sequencer.c:2322
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:2466
+#: sequencer.c:2404
#, c-format
msgid "invalid value for %s: %s"
msgstr "giá trị cho %s không hợp lệ: %s"
-#: sequencer.c:2553
+#: sequencer.c:2491
msgid "unusable squash-onto"
msgstr "squash-onto không dùng được"
-#: sequencer.c:2569
+#: sequencer.c:2507
#, c-format
msgid "malformed options sheet: '%s'"
msgstr "bảng tùy chá»n dị hình: “%sâ€"
-#: sequencer.c:2652 sequencer.c:4351
+#: sequencer.c:2590 sequencer.c:4308
msgid "empty commit set passed"
msgstr "lần chuyển giao trống rỗng đặt là hợp quy cách"
-#: sequencer.c:2668
+#: sequencer.c:2606
msgid "revert is already in progress"
msgstr "có thao tác hoàn nguyên đang được thực hiện"
-#: sequencer.c:2670
+#: sequencer.c:2608
#, c-format
msgid "try \"git revert (--continue | %s--abort | --quit)\""
msgstr "hãy thử \"git revert (--continue | %s--abort | --quit)\""
-#: sequencer.c:2673
+#: sequencer.c:2611
msgid "cherry-pick is already in progress"
msgstr "có thao tác “cherry-pick†đang được thực hiện"
-#: sequencer.c:2675
+#: sequencer.c:2613
#, c-format
msgid "try \"git cherry-pick (--continue | %s--abort | --quit)\""
msgstr "hãy thử \"git cherry-pick (--continue | %s--abort | --quit)\""
-#: sequencer.c:2689
+#: sequencer.c:2627
#, 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:2704
+#: sequencer.c:2642
msgid "could not lock HEAD"
msgstr "không thể khóa HEAD"
-#: sequencer.c:2764 sequencer.c:4103
+#: sequencer.c:2702 sequencer.c:4057
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:2766 sequencer.c:2777
+#: sequencer.c:2704 sequencer.c:2715
msgid "cannot resolve HEAD"
msgstr "không thể phân giải HEAD"
-#: sequencer.c:2768 sequencer.c:2812
+#: sequencer.c:2706 sequencer.c:2750
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:2798 builtin/grep.c:734
+#: sequencer.c:2736 builtin/grep.c:736
#, c-format
msgid "cannot open '%s'"
msgstr "không mở được “%sâ€"
-#: sequencer.c:2800
+#: sequencer.c:2738
#, c-format
msgid "cannot read '%s': %s"
msgstr "không thể Ä‘á»c “%sâ€: %s"
-#: sequencer.c:2801
+#: sequencer.c:2739
msgid "unexpected end of file"
msgstr "gặp kết thúc tập tin đột xuất"
-#: sequencer.c:2807
+#: sequencer.c:2745
#, 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:2818
+#: sequencer.c:2756
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:2859
+#: sequencer.c:2797
msgid "no revert in progress"
msgstr "không có tiến trình hoàn nguyên nào"
-#: sequencer.c:2867
+#: sequencer.c:2805
msgid "no cherry-pick in progress"
msgstr "không có cherry-pick đang được thực hiện"
-#: sequencer.c:2877
+#: sequencer.c:2815
msgid "failed to skip the commit"
msgstr "gặp lỗi khi bỠqua đối tượng chuyển giao"
-#: sequencer.c:2884
+#: sequencer.c:2822
msgid "there is nothing to skip"
msgstr "ở đây không có gì để mà bỠqua cả"
-#: sequencer.c:2887
+#: sequencer.c:2825
#, c-format
msgid ""
"have you committed already?\n"
@@ -6308,21 +6333,21 @@ msgstr ""
"bạn đã sẵn sàng chuyển giao chưa?\n"
"thá»­ \"git %s --continue\""
-#: sequencer.c:3011 sequencer.c:4015
+#: sequencer.c:2949 sequencer.c:3969
#, c-format
msgid "could not update %s"
msgstr "không thể cập nhật %s"
-#: sequencer.c:3049 sequencer.c:3995
+#: sequencer.c:2987 sequencer.c:3949
msgid "cannot read HEAD"
msgstr "không thể Ä‘á»c HEAD"
-#: sequencer.c:3066
+#: sequencer.c:3004
#, c-format
msgid "unable to copy '%s' to '%s'"
msgstr "không thể chép “%s†sang “%sâ€"
-#: sequencer.c:3074
+#: sequencer.c:3012
#, c-format
msgid ""
"You can amend the commit now, with\n"
@@ -6341,27 +6366,27 @@ msgstr ""
"\n"
" git rebase --continue\n"
-#: sequencer.c:3084
+#: sequencer.c:3022
#, c-format
msgid "Could not apply %s... %.*s"
msgstr "Không thể áp dụng %s… %.*s"
-#: sequencer.c:3091
+#: sequencer.c:3029
#, c-format
msgid "Could not merge %.*s"
msgstr "Không hòa trộn %.*s"
-#: sequencer.c:3105 sequencer.c:3109 builtin/difftool.c:633
+#: sequencer.c:3043 sequencer.c:3047 builtin/difftool.c:641
#, c-format
msgid "could not copy '%s' to '%s'"
msgstr "không thể chép “%s†sang “%sâ€"
-#: sequencer.c:3131 sequencer.c:3558 builtin/rebase.c:849 builtin/rebase.c:1582
-#: builtin/rebase.c:1953 builtin/rebase.c:2008
+#: sequencer.c:3069 sequencer.c:3506 builtin/rebase.c:850 builtin/rebase.c:1613
+#: builtin/rebase.c:1987 builtin/rebase.c:2031
msgid "could not read index"
msgstr "không thể Ä‘á»c bảng mục lục"
-#: sequencer.c:3136
+#: sequencer.c:3074
#, c-format
msgid ""
"execution failed: %s\n"
@@ -6376,11 +6401,11 @@ msgstr ""
" git rebase --continue\n"
"\n"
-#: sequencer.c:3142
+#: sequencer.c:3080
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:3148
+#: sequencer.c:3086
#, c-format
msgid ""
"execution succeeded: %s\n"
@@ -6397,76 +6422,76 @@ msgstr ""
" git rebase --continue\n"
"\n"
-#: sequencer.c:3209
+#: sequencer.c:3147
#, c-format
msgid "illegal label name: '%.*s'"
msgstr "tên nhãn dị hình: “%.*sâ€"
-#: sequencer.c:3263
+#: sequencer.c:3201
msgid "writing fake root commit"
msgstr "ghi lần chuyển giao gốc giả"
-#: sequencer.c:3268
+#: sequencer.c:3206
msgid "writing squash-onto"
msgstr "Ä‘ang ghi squash-onto"
-#: sequencer.c:3306 builtin/rebase.c:854 builtin/rebase.c:860
+#: sequencer.c:3244 builtin/rebase.c:855 builtin/rebase.c:861
#, c-format
msgid "failed to find tree of %s"
msgstr "gặp lỗi khi tìm cây của %s"
-#: sequencer.c:3324 builtin/rebase.c:873
+#: sequencer.c:3262 builtin/rebase.c:874
msgid "could not write index"
msgstr "không thể ghi bảng mục lục"
-#: sequencer.c:3351
+#: sequencer.c:3289
#, c-format
msgid "could not resolve '%s'"
msgstr "không thể phân giải “%sâ€"
-#: sequencer.c:3379
+#: sequencer.c:3320
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:3401
+#: sequencer.c:3342
#, c-format
msgid "unable to parse '%.*s'"
msgstr "không thể phân tích “%.*sâ€"
-#: sequencer.c:3410
+#: sequencer.c:3351
#, c-format
msgid "nothing to merge: '%.*s'"
msgstr "chẳng có gì để hòa trá»™n: “%.*sâ€"
-#: sequencer.c:3422
+#: sequencer.c:3363
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:3437
+#: sequencer.c:3378
#, 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:3590
+#: sequencer.c:3538
#, 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:3606
+#: sequencer.c:3554
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:3675 builtin/rebase.c:711
+#: sequencer.c:3623 builtin/rebase.c:712
#, c-format
msgid "Applied autostash.\n"
msgstr "Äã áp dụng autostash.\n"
-#: sequencer.c:3687
+#: sequencer.c:3635
#, c-format
msgid "cannot store %s"
msgstr "không thá»­ lÆ°u “%sâ€"
-#: sequencer.c:3690 builtin/rebase.c:727 git-rebase--preserve-merges.sh:113
+#: sequencer.c:3638 builtin/rebase.c:728 git-rebase--preserve-merges.sh:113
#, c-format
msgid ""
"Applying autostash resulted in conflicts.\n"
@@ -6478,31 +6503,31 @@ 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:3751
+#: sequencer.c:3699
#, c-format
msgid "could not checkout %s"
msgstr "không thể lấy ra %s"
-#: sequencer.c:3765
+#: sequencer.c:3713
#, c-format
msgid "%s: not a valid OID"
msgstr "%s không phải là một OID hợp lệ"
-#: sequencer.c:3770 git-rebase--preserve-merges.sh:779
+#: sequencer.c:3718 git-rebase--preserve-merges.sh:779
msgid "could not detach HEAD"
msgstr "không thể tách rá»i HEAD"
-#: sequencer.c:3785
+#: sequencer.c:3733
#, c-format
msgid "Stopped at HEAD\n"
msgstr "Dừng lại ở HEAD\n"
-#: sequencer.c:3787
+#: sequencer.c:3735
#, c-format
msgid "Stopped at %s\n"
msgstr "Dừng lại ở %s\n"
-#: sequencer.c:3795
+#: sequencer.c:3743
#, c-format
msgid ""
"Could not execute the todo command\n"
@@ -6523,48 +6548,48 @@ msgstr ""
" git rebase --edit-todo\n"
" git rebase --continue\n"
-#: sequencer.c:3877
+#: sequencer.c:3827
#, c-format
msgid "Stopped at %s... %.*s\n"
msgstr "Dừng lại ở %s… %.*s\n"
-#: sequencer.c:3958
+#: sequencer.c:3898
#, c-format
msgid "unknown command %d"
msgstr "không hiểu câu lệnh %d"
-#: sequencer.c:4003
+#: sequencer.c:3957
msgid "could not read orig-head"
msgstr "không thể Ä‘á»c orig-head"
-#: sequencer.c:4008
+#: sequencer.c:3962
msgid "could not read 'onto'"
msgstr "không thể Ä‘á»c “ontoâ€."
-#: sequencer.c:4022
+#: sequencer.c:3976
#, c-format
msgid "could not update HEAD to %s"
msgstr "không thể cập nhật HEAD thành %s"
-#: sequencer.c:4115
+#: sequencer.c:4069
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:4124
+#: sequencer.c:4078
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:4126
+#: sequencer.c:4080
#, c-format
msgid "invalid file: '%s'"
msgstr "tập tin không hợp lệ: “%sâ€"
-#: sequencer.c:4128
+#: sequencer.c:4082
#, c-format
msgid "invalid contents: '%s'"
msgstr "ná»™i dung không hợp lệ: “%sâ€"
-#: sequencer.c:4131
+#: sequencer.c:4085
msgid ""
"\n"
"You have uncommitted changes in your working tree. Please, commit them\n"
@@ -6574,42 +6599,42 @@ 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:4167 sequencer.c:4205
+#: sequencer.c:4121 sequencer.c:4159
#, c-format
msgid "could not write file: '%s'"
msgstr "không thể ghi tập tin: “%sâ€"
-#: sequencer.c:4220
+#: sequencer.c:4174
msgid "could not remove CHERRY_PICK_HEAD"
msgstr "không thể xóa bỠCHERRY_PICK_HEAD"
-#: sequencer.c:4227
+#: sequencer.c:4181
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:4328
+#: sequencer.c:4285
#, c-format
msgid "%s: can't cherry-pick a %s"
msgstr "%s: không thể cherry-pick một %s"
-#: sequencer.c:4332
+#: sequencer.c:4289
#, c-format
msgid "%s: bad revision"
msgstr "%s: điểm xét duyệt sai"
-#: sequencer.c:4367
+#: sequencer.c:4324
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:4810
+#: sequencer.c:4774
msgid "make_script: unhandled options"
msgstr "make_script: các tùy chá»n được không xá»­ lý"
-#: sequencer.c:4813
+#: sequencer.c:4777
msgid "make_script: error preparing revisions"
msgstr "make_script: lỗi chuẩn bị điểm hiệu chỉnh"
-#: sequencer.c:4971
+#: sequencer.c:4935
msgid ""
"You can fix this with 'git rebase --edit-todo' and then run 'git rebase --"
"continue'.\n"
@@ -6619,24 +6644,24 @@ msgstr ""
"continueâ€.\n"
"Hoặc là bạn có thể bãi bá» việc cải tổ bằng “git rebase --abortâ€.\n"
-#: sequencer.c:5083 sequencer.c:5100
+#: sequencer.c:5047 sequencer.c:5064
msgid "nothing to do"
msgstr "không có gì để làm"
-#: sequencer.c:5114
+#: sequencer.c:5078
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:5197
+#: sequencer.c:5166
msgid "the script was already rearranged."
msgstr "văn lệnh đã sẵn được sắp đặt rồi."
-#: setup.c:123
+#: setup.c:124
#, c-format
msgid "'%s' is outside repository"
msgstr "“%s†ở ngoài một kho chứa"
-#: setup.c:173
+#: setup.c:174
#, c-format
msgid ""
"%s: no such path in the working tree.\n"
@@ -6646,7 +6671,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:186
+#: setup.c:187
#, c-format
msgid ""
"ambiguous argument '%s': unknown revision or path not in the working tree.\n"
@@ -6658,12 +6683,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:235
+#: setup.c:236
#, 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:254
+#: setup.c:255
#, c-format
msgid ""
"ambiguous argument '%s': both revision and filename\n"
@@ -6674,92 +6699,92 @@ 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:390
+#: setup.c:391
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:394
+#: setup.c:395
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:540
+#: setup.c:541
#, 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:548
+#: setup.c:549
msgid "unknown repository extensions found:"
msgstr "tìm thấy phần mở rộng kho chưa biết:"
-#: setup.c:567
+#: setup.c:568
#, c-format
msgid "error opening '%s'"
msgstr "gặp lá»—i khi mở “%sâ€"
-#: setup.c:569
+#: setup.c:570
#, c-format
msgid "too large to be a .git file: '%s'"
msgstr "tập tin .git là quá lá»›n: “%sâ€"
-#: setup.c:571
+#: setup.c:572
#, c-format
msgid "error reading %s"
msgstr "gặp lá»—i khi Ä‘á»c %s"
-#: setup.c:573
+#: setup.c:574
#, c-format
msgid "invalid gitfile format: %s"
msgstr "định dạng tập tin git không hợp lệ: %s"
-#: setup.c:575
+#: setup.c:576
#, c-format
msgid "no path in gitfile: %s"
msgstr "không có Ä‘Æ°á»ng dẫn trong tập tin git: %s"
-#: setup.c:577
+#: setup.c:578
#, c-format
msgid "not a git repository: %s"
msgstr "không phải là kho git: %s"
-#: setup.c:676
+#: setup.c:677
#, c-format
msgid "'$%s' too big"
msgstr "“$%s†quá lớn"
-#: setup.c:690
+#: setup.c:691
#, c-format
msgid "not a git repository: '%s'"
msgstr "không phải là kho git: “%sâ€"
-#: setup.c:719 setup.c:721 setup.c:752
+#: setup.c:720 setup.c:722 setup.c:753
#, c-format
msgid "cannot chdir to '%s'"
msgstr "không thể chdir (chuyển đổi thÆ° mục) sang “%sâ€"
-#: setup.c:724 setup.c:780 setup.c:790 setup.c:829 setup.c:837
+#: setup.c:725 setup.c:781 setup.c:791 setup.c:830 setup.c:838
msgid "cannot come back to cwd"
msgstr "không thể quay lại cwd"
-#: setup.c:851
+#: setup.c:852
#, 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:1083
+#: setup.c:1090
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:1092 setup.c:1098
+#: setup.c:1099 setup.c:1105
#, c-format
msgid "cannot change to '%s'"
msgstr "không thể chuyển sang “%sâ€"
-#: setup.c:1103
+#: setup.c:1110
#, 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:1109
+#: setup.c:1116
#, c-format
msgid ""
"not a git repository (or any parent up to mount point %s)\n"
@@ -6769,7 +6794,7 @@ msgstr ""
"Dừng tại biên của hệ thống tập tin (GIT_DISCOVERY_ACROSS_FILESYSTEM chưa "
"đặt)."
-#: setup.c:1220
+#: setup.c:1227
#, c-format
msgid ""
"problem with core.sharedRepository filemode value (0%.3o).\n"
@@ -6778,284 +6803,284 @@ 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:1264
+#: setup.c:1271
msgid "open /dev/null or dup failed"
msgstr "gặp lỗi khi mở “/dev/null†hay dup"
-#: setup.c:1279
+#: setup.c:1286
msgid "fork failed"
msgstr "gặp lỗi khi rẽ nhánh tiến trình"
-#: setup.c:1284
+#: setup.c:1291
msgid "setsid failed"
msgstr "setsid gặp lỗi"
-#: sha1-file.c:453
+#: sha1-file.c:452
#, 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"
-#: sha1-file.c:504
+#: sha1-file.c:503
#, 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â€"
-#: sha1-file.c:576
+#: sha1-file.c:575
#, 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"
-#: sha1-file.c:583
+#: sha1-file.c:582
#, c-format
msgid "unable to normalize object directory: %s"
msgstr "không thể chuẩn hóa thÆ° mục đối tượng: “%sâ€"
-#: sha1-file.c:626
+#: sha1-file.c:625
msgid "unable to fdopen alternates lockfile"
msgstr "không thể fdopen tập tin khóa thay thế"
-#: sha1-file.c:644
+#: sha1-file.c:643
msgid "unable to read alternates file"
msgstr "không thể Ä‘á»c tập tin thay thế"
-#: sha1-file.c:651
+#: sha1-file.c:650
msgid "unable to move new alternates file into place"
msgstr "không thể di chuyển tập tin thay thế vào chỗ"
-#: sha1-file.c:686
+#: sha1-file.c:685
#, c-format
msgid "path '%s' does not exist"
msgstr "Ä‘Æ°á»ng dẫn “%s†không tồn tại"
-#: sha1-file.c:712
+#: sha1-file.c:711
#, 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ợ."
-#: sha1-file.c:718
+#: sha1-file.c:717
#, 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ộ."
-#: sha1-file.c:724
+#: sha1-file.c:723
#, c-format
msgid "reference repository '%s' is shallow"
msgstr "kho tham chiếu “%s†là nông"
-#: sha1-file.c:732
+#: sha1-file.c:731
#, c-format
msgid "reference repository '%s' is grafted"
msgstr "kho tham chiếu “%s†bị cấy ghép"
-#: sha1-file.c:792
+#: sha1-file.c:791
#, 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"
-#: sha1-file.c:944
+#: sha1-file.c:943
#, c-format
msgid "attempting to mmap %<PRIuMAX> over limit %<PRIuMAX>"
msgstr "đang cố để mmap %<PRIuMAX> vượt quá giới hạn %<PRIuMAX>"
-#: sha1-file.c:969
+#: sha1-file.c:964
msgid "mmap failed"
msgstr "mmap gặp lỗi"
-#: sha1-file.c:1133
+#: sha1-file.c:1128
#, c-format
msgid "object file %s is empty"
msgstr "tập tin đối tượng %s trống rỗng"
-#: sha1-file.c:1257 sha1-file.c:2396
+#: sha1-file.c:1252 sha1-file.c:2392
#, c-format
msgid "corrupt loose object '%s'"
msgstr "đối tượng mất há»ng “%sâ€"
-#: sha1-file.c:1259 sha1-file.c:2400
+#: sha1-file.c:1254 sha1-file.c:2396
#, 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â€"
-#: sha1-file.c:1301
+#: sha1-file.c:1296
msgid "invalid object type"
msgstr "kiểu đối tượng không hợp lệ"
-#: sha1-file.c:1385
+#: sha1-file.c:1380
#, c-format
msgid "unable to unpack %s header with --allow-unknown-type"
msgstr "không thể giải nén phần đầu gói %s với --allow-unknown-type"
-#: sha1-file.c:1388
+#: sha1-file.c:1383
#, c-format
msgid "unable to unpack %s header"
msgstr "không thể giải gói phần đầu %s"
-#: sha1-file.c:1394
+#: sha1-file.c:1389
#, c-format
msgid "unable to parse %s header with --allow-unknown-type"
msgstr "không thể phân tích phần đầu gói %s với --allow-unknown-type"
-#: sha1-file.c:1397
+#: sha1-file.c:1392
#, c-format
msgid "unable to parse %s header"
msgstr "không thể phân tích phần đầu của “%sâ€"
-#: sha1-file.c:1588
+#: sha1-file.c:1584
#, c-format
msgid "failed to read object %s"
msgstr "gặp lá»—i khi Ä‘á»c đối tượng “%sâ€"
-#: sha1-file.c:1592
+#: sha1-file.c:1588
#, c-format
msgid "replacement %s not found for %s"
msgstr "c%s thay thế không được tìm thấy cho %s"
-#: sha1-file.c:1596
+#: sha1-file.c:1592
#, 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"
-#: sha1-file.c:1600
+#: sha1-file.c:1596
#, 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"
-#: sha1-file.c:1703
+#: sha1-file.c:1699
#, c-format
msgid "unable to write file %s"
msgstr "không thể ghi tập tin %s"
-#: sha1-file.c:1710
+#: sha1-file.c:1706
#, c-format
msgid "unable to set permission to '%s'"
msgstr "không thể đặt quyá»n thành “%sâ€"
-#: sha1-file.c:1717
+#: sha1-file.c:1713
msgid "file write error"
msgstr "lỗi ghi tập tin"
-#: sha1-file.c:1736
+#: sha1-file.c:1732
msgid "error when closing loose object file"
msgstr "gặp lỗi trong khi đóng tập tin đối tượng"
-#: sha1-file.c:1801
+#: sha1-file.c:1797
#, 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"
-#: sha1-file.c:1803
+#: sha1-file.c:1799
msgid "unable to create temporary file"
msgstr "không thể tạo tập tin tạm thá»i"
-#: sha1-file.c:1827
+#: sha1-file.c:1823
msgid "unable to write loose object file"
msgstr "không thể ghi tập tin đối tượng đã mất"
-#: sha1-file.c:1833
+#: sha1-file.c:1829
#, c-format
msgid "unable to deflate new object %s (%d)"
msgstr "không thể xả nén đối tượng mới %s (%d)"
-#: sha1-file.c:1837
+#: sha1-file.c:1833
#, c-format
msgid "deflateEnd on object %s failed (%d)"
msgstr "deflateEnd trên đối tượng %s gặp lỗi (%d)"
-#: sha1-file.c:1841
+#: sha1-file.c:1837
#, 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"
-#: sha1-file.c:1851 builtin/pack-objects.c:925
+#: sha1-file.c:1847 builtin/pack-objects.c:925
#, c-format
msgid "failed utime() on %s"
msgstr "gặp lá»—i utime() trên “%sâ€"
-#: sha1-file.c:1926
+#: sha1-file.c:1922
#, c-format
msgid "cannot read object for %s"
msgstr "không thể Ä‘á»c đối tượng cho %s"
-#: sha1-file.c:1966
+#: sha1-file.c:1962
msgid "corrupt commit"
msgstr "lần chuyển giao sai há»ng"
-#: sha1-file.c:1974
+#: sha1-file.c:1970
msgid "corrupt tag"
msgstr "thẻ sai há»ng"
-#: sha1-file.c:2073
+#: sha1-file.c:2069
#, c-format
msgid "read error while indexing %s"
msgstr "gặp lá»—i Ä‘á»c khi đánh mục lục %s"
-#: sha1-file.c:2076
+#: sha1-file.c:2072
#, c-format
msgid "short read while indexing %s"
msgstr "không Ä‘á»c ngắn khi đánh mục lục %s"
-#: sha1-file.c:2149 sha1-file.c:2158
+#: sha1-file.c:2145 sha1-file.c:2154
#, 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"
-#: sha1-file.c:2164
+#: sha1-file.c:2160
#, c-format
msgid "%s: unsupported file type"
msgstr "%s: kiểu tập tin không được hỗ trợ"
-#: sha1-file.c:2188
+#: sha1-file.c:2184
#, c-format
msgid "%s is not a valid object"
msgstr "%s không phải là một đối tượng hợp lệ"
-#: sha1-file.c:2190
+#: sha1-file.c:2186
#, 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ệ"
-#: sha1-file.c:2217 builtin/index-pack.c:155
+#: sha1-file.c:2213 builtin/index-pack.c:155
#, c-format
msgid "unable to open %s"
msgstr "không thể mở %s"
-#: sha1-file.c:2407 sha1-file.c:2459
+#: sha1-file.c:2403 sha1-file.c:2455
#, c-format
msgid "hash mismatch for %s (expected %s)"
msgstr "mã băm không khớp cho %s (cần %s)"
-#: sha1-file.c:2431
+#: sha1-file.c:2427
#, c-format
msgid "unable to mmap %s"
msgstr "không thể mmap %s"
-#: sha1-file.c:2436
+#: sha1-file.c:2432
#, c-format
msgid "unable to unpack header of %s"
msgstr "không thể giải gói phần đầu của “%sâ€"
-#: sha1-file.c:2442
+#: sha1-file.c:2438
#, c-format
msgid "unable to parse header of %s"
msgstr "không thể phân tích phần đầu của “%sâ€"
-#: sha1-file.c:2453
+#: sha1-file.c:2449
#, c-format
msgid "unable to unpack contents of %s"
msgstr "không thể giải gói ná»™i dung của “%sâ€"
-#: sha1-name.c:490
+#: sha1-name.c:487
#, c-format
msgid "short SHA1 %s is ambiguous"
msgstr "tóm lược SHA1 %s chưa rõ ràng"
-#: sha1-name.c:501
+#: sha1-name.c:498
msgid "The candidates are:"
msgstr "Các ứng cử là:"
-#: sha1-name.c:800
+#: sha1-name.c:797
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"
@@ -7080,50 +7105,50 @@ msgstr ""
"bằng cách chạy lệnh \"git config advice.objectNameWarning false\""
#. TRANSLATORS: IEC 80000-13:2008 gibibyte
-#: strbuf.c:821
+#: strbuf.c:822
#, c-format
msgid "%u.%2.2u GiB"
msgstr "%u.%2.2u GiB"
#. TRANSLATORS: IEC 80000-13:2008 gibibyte/second
-#: strbuf.c:823
+#: strbuf.c:824
#, c-format
msgid "%u.%2.2u GiB/s"
msgstr "%u.%2.2u GiB/giây"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte
-#: strbuf.c:831
+#: strbuf.c:832
#, c-format
msgid "%u.%2.2u MiB"
msgstr "%u.%2.2u MiB"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte/second
-#: strbuf.c:833
+#: strbuf.c:834
#, c-format
msgid "%u.%2.2u MiB/s"
msgstr "%u.%2.2u MiB/giây"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte
-#: strbuf.c:840
+#: strbuf.c:841
#, c-format
msgid "%u.%2.2u KiB"
msgstr "%u.%2.2u KiB"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte/second
-#: strbuf.c:842
+#: strbuf.c:843
#, c-format
msgid "%u.%2.2u KiB/s"
msgstr "%u.%2.2u KiB/giây"
#. TRANSLATORS: IEC 80000-13:2008 byte
-#: strbuf.c:848
+#: strbuf.c:849
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
msgstr[0] "%u byte"
#. TRANSLATORS: IEC 80000-13:2008 byte/second
-#: strbuf.c:850
+#: strbuf.c:851
#, c-format
msgid "%u byte/s"
msgid_plural "%u bytes/s"
@@ -7242,28 +7267,28 @@ msgstr "không thể lấy thông tin thống kê vỠls-files trong .."
msgid "ls-tree returned unexpected return code %d"
msgstr "ls-tree trả vỠmã không như mong đợi %d"
-#: submodule-config.c:232
+#: submodule-config.c:236
#, c-format
msgid "ignoring suspicious submodule name: %s"
msgstr "Ä‘ang lá» Ä‘i tên mô-Ä‘un-con mập má»: %s"
-#: submodule-config.c:299
+#: submodule-config.c:303
msgid "negative values not allowed for submodule.fetchjobs"
msgstr "không cho phép giá trị âm ở submodule.fetchJobs"
-#: submodule-config.c:397
+#: submodule-config.c:401
#, 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:486
+#: submodule-config.c:490
#, c-format
msgid "invalid value for %s"
msgstr "giá trị cho %s không hợp lệ"
-#: submodule-config.c:755
+#: submodule-config.c:761
#, c-format
msgid "Could not update .gitmodules entry %s"
msgstr "Không thể cập nhật mục .gitmodules %s"
@@ -7298,7 +7323,7 @@ msgstr "không Ä‘á»c được tập tin đầu vào “%sâ€"
msgid "could not read from stdin"
msgstr "không thể Ä‘á»c từ đầu vào tiêu chuẩn"
-#: trailer.c:1011 wrapper.c:701
+#: trailer.c:1011 wrapper.c:665
#, c-format
msgid "could not stat %s"
msgstr "không thể lấy thông tin thống kê vỠ%s"
@@ -7327,47 +7352,47 @@ msgstr "không thể đổi tên tập tin tạm thá»i thành %s"
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:142
+#: transport.c:145
#, c-format
msgid "could not read bundle '%s'"
msgstr "không thể Ä‘á»c bó “%sâ€"
-#: transport.c:208
+#: transport.c:214
#, 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:259
+#: transport.c:266
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:260
+#: transport.c:267
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:625
+#: transport.c:632
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:698
+#: transport.c:705
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:825
+#: transport.c:831
#, 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:891
+#: transport.c:897
#, c-format
msgid "transport '%s' not allowed"
msgstr "không cho phép phÆ°Æ¡ng thức vận chuyển “%sâ€"
-#: transport.c:945
+#: transport.c:949
msgid "git-over-rsync is no longer supported"
msgstr "git-over-rsync không còn được hỗ trợ nữa"
-#: transport.c:1040
+#: transport.c:1044
#, c-format
msgid ""
"The following submodule paths contain changes that can\n"
@@ -7376,7 +7401,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:1044
+#: transport.c:1048
#, c-format
msgid ""
"\n"
@@ -7403,32 +7428,32 @@ msgstr ""
"để đẩy chúng lên máy phục vụ.\n"
"\n"
-#: transport.c:1052
+#: transport.c:1056
msgid "Aborting."
msgstr "Bãi bá»."
-#: transport.c:1193
+#: transport.c:1201
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"
-#: transport.c:1340 transport-helper.c:645
+#: transport.c:1345 transport-helper.c:655
msgid "operation not supported by protocol"
msgstr "thao tác không được gia thức hỗ trợ"
-#: transport-helper.c:51 transport-helper.c:80
+#: transport-helper.c:61 transport-helper.c:90
msgid "full write to remote helper failed"
msgstr "ghi đầy đủ lên bộ hỗ trợ máy chủ gặp lỗi"
-#: transport-helper.c:134
+#: transport-helper.c:144
#, c-format
msgid "unable to find remote helper for '%s'"
msgstr "không thể tìm thấy bá»™ há»— trợ máy chủ cho “%sâ€"
-#: transport-helper.c:150 transport-helper.c:559
+#: transport-helper.c:160 transport-helper.c:569
msgid "can't dup helper output fd"
msgstr "không thể nhân đôi fd dầu ra bộ hỗ trợ"
-#: transport-helper.c:201
+#: transport-helper.c:211
#, c-format
msgid ""
"unknown mandatory capability %s; this remote helper probably needs newer "
@@ -7437,99 +7462,104 @@ msgstr ""
"không hiểu capability bắt buộc %s; bộ hỗ trợ máy chủ này gần như chắc chắn "
"là cần phiên bản Git mới hơn"
-#: transport-helper.c:207
+#: transport-helper.c:217
msgid "this remote helper should implement refspec capability"
msgstr "bộ hỗ trợ máy chủ này cần phải thực thi capability đặc tả tham chiếu"
-#: transport-helper.c:274 transport-helper.c:414
+#: transport-helper.c:284 transport-helper.c:424
#, c-format
msgid "%s unexpectedly said: '%s'"
msgstr "%s said bất ngá»: “%sâ€"
-#: transport-helper.c:403
+#: transport-helper.c:413
#, c-format
msgid "%s also locked %s"
msgstr "%s cũng khóa %s"
-#: transport-helper.c:481
+#: transport-helper.c:491
msgid "couldn't run fast-import"
msgstr "không thể chạy fast-import"
-#: transport-helper.c:504
+#: transport-helper.c:514
msgid "error while running fast-import"
msgstr "gặp lỗi trong khi chạy fast-import"
-#: transport-helper.c:533 transport-helper.c:1105
+#: transport-helper.c:543 transport-helper.c:1132
#, c-format
msgid "could not read ref %s"
msgstr "không thể Ä‘á»c tham chiếu %s"
-#: transport-helper.c:578
+#: transport-helper.c:588
#, c-format
msgid "unknown response to connect: %s"
msgstr "không hiểu đáp ứng để kết nối: %s"
-#: transport-helper.c:600
+#: transport-helper.c:610
msgid "setting remote service path not supported by protocol"
msgstr "giao thức này không há»— trợ cài đặt Ä‘Æ°á»ng dẫn dịch vụ máy chủ"
-#: transport-helper.c:602
+#: transport-helper.c:612
msgid "invalid remote service path"
msgstr "Ä‘Æ°á»ng dẫn dịch vụ máy chủ không hợp lệ"
-#: transport-helper.c:648
+#: transport-helper.c:658
#, c-format
msgid "can't connect to subservice %s"
msgstr "không thể kết nối đến dịch vụ phụ %s"
-#: transport-helper.c:720
+#: transport-helper.c:734
#, 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:773
+#: transport-helper.c:787
#, 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:834
+#: transport-helper.c:848
#, c-format
msgid "helper %s does not support dry-run"
msgstr "helper %s không hỗ trợ dry-run"
-#: transport-helper.c:837
+#: transport-helper.c:851
#, c-format
msgid "helper %s does not support --signed"
msgstr "helper %s không hỗ trợ --signed"
-#: transport-helper.c:840
+#: transport-helper.c:854
#, c-format
msgid "helper %s does not support --signed=if-asked"
msgstr "helper %s không hỗ trợ --signed=if-asked"
-#: transport-helper.c:847
+#: transport-helper.c:859
+#, c-format
+msgid "helper %s does not support --atomic"
+msgstr "helper %s không hỗ trợ --atomic"
+
+#: transport-helper.c:865
#, c-format
msgid "helper %s does not support 'push-option'"
msgstr "helper %s không há»— trợ “push-optionâ€"
-#: transport-helper.c:945
+#: transport-helper.c:963
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:950
+#: transport-helper.c:968
#, c-format
msgid "helper %s does not support 'force'"
msgstr "helper %s không há»— trợ “forceâ€"
-#: transport-helper.c:997
+#: transport-helper.c:1015
msgid "couldn't run fast-export"
msgstr "không thể chạy fast-export"
-#: transport-helper.c:1002
+#: transport-helper.c:1020
msgid "error while running fast-export"
msgstr "gặp lỗi trong khi chạy fast-export"
-#: transport-helper.c:1027
+#: transport-helper.c:1045
#, c-format
msgid ""
"No refs in common and none specified; doing nothing.\n"
@@ -7539,47 +7569,47 @@ msgstr ""
"cả.\n"
"Tuy nhiên bạn nên chỉ định một nhánh như “master†chẳng hạn.\n"
-#: transport-helper.c:1091
+#: transport-helper.c:1118
#, 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:1244
+#: transport-helper.c:1270
#, c-format
msgid "read(%s) failed"
msgstr "read(%s) gặp lỗi"
-#: transport-helper.c:1271
+#: transport-helper.c:1297
#, c-format
msgid "write(%s) failed"
msgstr "write(%s) gặp lỗi"
-#: transport-helper.c:1320
+#: transport-helper.c:1346
#, c-format
msgid "%s thread failed"
msgstr "tuyến trình %s gặp lỗi"
-#: transport-helper.c:1324
+#: transport-helper.c:1350
#, 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:1343 transport-helper.c:1347
+#: transport-helper.c:1369 transport-helper.c:1373
#, 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:1384
+#: transport-helper.c:1410
#, c-format
msgid "%s process failed to wait"
msgstr "xử lý %s gặp lỗi khi đợi"
-#: transport-helper.c:1388
+#: transport-helper.c:1414
#, c-format
msgid "%s process failed"
msgstr "xử lý %s gặp lỗi"
-#: transport-helper.c:1406 transport-helper.c:1415
+#: transport-helper.c:1432 transport-helper.c:1441
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"
@@ -7599,7 +7629,7 @@ msgstr "tên tập tin trống rỗng trong mục tin cây"
msgid "too-short tree file"
msgstr "tập tin cây quá ngắn"
-#: unpack-trees.c:111
+#: unpack-trees.c:110
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by checkout:\n"
@@ -7610,7 +7640,7 @@ msgstr ""
"%%sVui lòng chuyển giao các thay đổi hay tạm cất chúng đi trước khi bạn "
"chuyển nhánh."
-#: unpack-trees.c:113
+#: unpack-trees.c:112
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by checkout:\n"
@@ -7620,7 +7650,7 @@ msgstr ""
"checkout:\n"
"%%s"
-#: unpack-trees.c:116
+#: unpack-trees.c:115
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by merge:\n"
@@ -7631,7 +7661,7 @@ msgstr ""
"%%sVui lòng chuyển giao các thay đổi hay tạm cất chúng đi trước khi bạn hòa "
"trá»™n."
-#: unpack-trees.c:118
+#: unpack-trees.c:117
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by merge:\n"
@@ -7641,7 +7671,7 @@ msgstr ""
"hòa trộn:\n"
"%%s"
-#: unpack-trees.c:121
+#: unpack-trees.c:120
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by %s:\n"
@@ -7651,7 +7681,7 @@ msgstr ""
"%s:\n"
"%%sVui lòng chuyển giao các thay đổi hay tạm cất chúng đi trước khi bạn %s."
-#: unpack-trees.c:123
+#: unpack-trees.c:122
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by %s:\n"
@@ -7661,7 +7691,7 @@ msgstr ""
"%s:\n"
"%%s"
-#: unpack-trees.c:128
+#: unpack-trees.c:127
#, c-format
msgid ""
"Updating the following directories would lose untracked files in them:\n"
@@ -7671,7 +7701,7 @@ msgstr ""
"trong nó:\n"
"%s"
-#: unpack-trees.c:132
+#: unpack-trees.c:131
#, c-format
msgid ""
"The following untracked working tree files would be removed by checkout:\n"
@@ -7681,7 +7711,7 @@ msgstr ""
"checkout:\n"
"%%sVui lòng di chuyển hay gỡ bỠchúng trước khi bạn chuyển nhánh."
-#: unpack-trees.c:134
+#: unpack-trees.c:133
#, c-format
msgid ""
"The following untracked working tree files would be removed by checkout:\n"
@@ -7691,7 +7721,7 @@ msgstr ""
"checkout:\n"
"%%s"
-#: unpack-trees.c:137
+#: unpack-trees.c:136
#, c-format
msgid ""
"The following untracked working tree files would be removed by merge:\n"
@@ -7701,7 +7731,7 @@ msgstr ""
"trá»™n:\n"
"%%sVui lòng di chuyển hay gỡ bỠchúng trước khi bạn hòa trộn."
-#: unpack-trees.c:139
+#: unpack-trees.c:138
#, c-format
msgid ""
"The following untracked working tree files would be removed by merge:\n"
@@ -7711,7 +7741,7 @@ msgstr ""
"trá»™n:\n"
"%%s"
-#: unpack-trees.c:142
+#: unpack-trees.c:141
#, c-format
msgid ""
"The following untracked working tree files would be removed by %s:\n"
@@ -7720,7 +7750,7 @@ msgstr ""
"Các tập tin cây làm việc chưa được theo dõi sau đây sẽ bị gỡ bỠbởi %s:\n"
"%%sVui lòng di chuyển hay gỡ bỠchúng trước khi bạn %s."
-#: unpack-trees.c:144
+#: unpack-trees.c:143
#, c-format
msgid ""
"The following untracked working tree files would be removed by %s:\n"
@@ -7729,7 +7759,7 @@ msgstr ""
"Các tập tin cây làm việc chưa được theo dõi sau đây sẽ bị gỡ bỠbởi %s:\n"
"%%s"
-#: unpack-trees.c:150
+#: unpack-trees.c:149
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by "
@@ -7740,7 +7770,7 @@ msgstr ""
"checkout:\n"
"%%sVui lòng di chuyển hay gỡ bỠchúng trước khi bạn chuyển nhánh."
-#: unpack-trees.c:152
+#: unpack-trees.c:151
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by "
@@ -7751,7 +7781,7 @@ msgstr ""
"checkout:\n"
"%%s"
-#: unpack-trees.c:155
+#: unpack-trees.c:154
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by merge:\n"
@@ -7761,7 +7791,7 @@ msgstr ""
"hòa trộn:\n"
"%%sVui lòng di chuyển hay gỡ bỠchúng trước khi bạn hòa trộn."
-#: unpack-trees.c:157
+#: unpack-trees.c:156
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by merge:\n"
@@ -7771,7 +7801,7 @@ msgstr ""
"hòa trộn:\n"
"%%s"
-#: unpack-trees.c:160
+#: unpack-trees.c:159
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by %s:\n"
@@ -7781,7 +7811,7 @@ msgstr ""
"%s:\n"
"%%sVui lòng di chuyển hay gỡ bỠchúng trước khi bạn %s."
-#: unpack-trees.c:162
+#: unpack-trees.c:161
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by %s:\n"
@@ -7791,12 +7821,12 @@ msgstr ""
"%s:\n"
"%%s"
-#: unpack-trees.c:170
+#: unpack-trees.c:169
#, c-format
msgid "Entry '%s' overlaps with '%s'. Cannot bind."
msgstr "Mục “%s†đè lên “%sâ€. Không thể buá»™c."
-#: unpack-trees.c:173
+#: unpack-trees.c:172
#, c-format
msgid ""
"Cannot update sparse checkout: the following entries are not up to date:\n"
@@ -7805,7 +7835,7 @@ msgstr ""
"Không thể cập nhật checkout rải rác: các mục tin sau đây chưa cập nhật:\n"
"%s"
-#: unpack-trees.c:175
+#: unpack-trees.c:174
#, c-format
msgid ""
"The following working tree files would be overwritten by sparse checkout "
@@ -7816,7 +7846,7 @@ msgstr ""
"nhật checkout rải rác:\n"
"%s"
-#: unpack-trees.c:177
+#: unpack-trees.c:176
#, c-format
msgid ""
"The following working tree files would be removed by sparse checkout "
@@ -7827,7 +7857,7 @@ msgstr ""
"nhật checkout rải rác:\n"
"%s"
-#: unpack-trees.c:179
+#: unpack-trees.c:178
#, c-format
msgid ""
"Cannot update submodule:\n"
@@ -7836,16 +7866,16 @@ msgstr ""
"Không thể cập nhật mô-đun-con:\n"
"%s"
-#: unpack-trees.c:256
+#: unpack-trees.c:255
#, c-format
msgid "Aborting\n"
msgstr "Bãi bá»\n"
-#: unpack-trees.c:318
+#: unpack-trees.c:317
msgid "Updating files"
msgstr "Äang cập nhật các tập tin"
-#: unpack-trees.c:350
+#: unpack-trees.c:349
msgid ""
"the following paths have collided (e.g. case-sensitive paths\n"
"on a case-insensitive filesystem) and only one from the same\n"
@@ -7884,7 +7914,7 @@ msgstr "tên cổng không hợp lệ"
msgid "invalid '..' path segment"
msgstr "Ä‘oạn Ä‘Æ°á»ng dẫn “..†không hợp lệ"
-#: worktree.c:258 builtin/am.c:2095
+#: worktree.c:258 builtin/am.c:2084
#, c-format
msgid "failed to read '%s'"
msgstr "gặp lá»—i khi Ä‘á»c “%sâ€"
@@ -7915,17 +7945,17 @@ msgstr "“%s†không phải là tập tin .git, mã lỗi %d"
msgid "'%s' does not point back to '%s'"
msgstr "“%s†không chỉ ngược đến “%sâ€"
-#: wrapper.c:223 wrapper.c:393
+#: wrapper.c:186 wrapper.c:356
#, c-format
msgid "could not open '%s' for reading and writing"
msgstr "không thể mở “%s†để Ä‘á»c và ghi"
-#: wrapper.c:424 wrapper.c:624
+#: wrapper.c:387 wrapper.c:588
#, c-format
msgid "unable to access '%s'"
msgstr "không thể truy cập “%sâ€"
-#: wrapper.c:632
+#: wrapper.c:596
msgid "unable to get current working directory"
msgstr "không thể lấy thư mục làm việc hiện hành"
@@ -8272,83 +8302,91 @@ msgstr ""
"continue\")"
#: wt-status.c:1437
+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:1439
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:1447
+#: wt-status.c:1449
msgid "Revert currently in progress."
msgstr "Hoàn nguyên hiện tại đang thực hiện."
-#: wt-status.c:1450
+#: wt-status.c:1452
#, 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:1456
+#: wt-status.c:1458
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:1459
+#: wt-status.c:1461
msgid " (run \"git revert --continue\" to continue)"
msgstr " (chạy lệnh \"git revert --continue\" để tiếp tục)"
-#: wt-status.c:1462
+#: wt-status.c:1464
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:1464
+#: wt-status.c:1466
+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:1468
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:1474
+#: wt-status.c:1478
#, 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:1478
+#: wt-status.c:1482
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:1481
+#: wt-status.c:1485
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:1690
+#: wt-status.c:1694
msgid "On branch "
msgstr "Trên nhánh "
-#: wt-status.c:1697
+#: wt-status.c:1701
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:1699
+#: wt-status.c:1703
msgid "rebase in progress; onto "
msgstr "rebase đang được thực hiện: lên trên "
-#: wt-status.c:1709
+#: wt-status.c:1713
msgid "Not currently on any branch."
msgstr "Hiện tại chẳng ở nhánh nào cả."
-#: wt-status.c:1726
+#: wt-status.c:1730
msgid "Initial commit"
msgstr "Lần chuyển giao khởi tạo"
-#: wt-status.c:1727
+#: wt-status.c:1731
msgid "No commits yet"
msgstr "Vẫn chưa chuyển giao"
-#: wt-status.c:1741
+#: wt-status.c:1745
msgid "Untracked files"
msgstr "Những tập tin chưa được theo dõi"
-#: wt-status.c:1743
+#: wt-status.c:1747
msgid "Ignored files"
msgstr "Những tập tin bị lỠđi"
-#: wt-status.c:1747
+#: wt-status.c:1751
#, c-format
msgid ""
"It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
@@ -8360,32 +8398,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:1753
+#: wt-status.c:1757
#, 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:1755
+#: wt-status.c:1759
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:1761
+#: wt-status.c:1765
msgid "No changes"
msgstr "Không có thay đổi nào"
-#: wt-status.c:1766
+#: wt-status.c:1770
#, 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:1769
+#: wt-status.c:1773
#, 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:1772
+#: wt-status.c:1776
#, c-format
msgid ""
"nothing added to commit but untracked files present (use \"git add\" to "
@@ -8394,73 +8432,78 @@ 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:1775
+#: wt-status.c:1779
#, 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:1778
+#: wt-status.c:1782
#, 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:1781 wt-status.c:1786
+#: wt-status.c:1785 wt-status.c:1790
#, c-format
msgid "nothing to commit\n"
msgstr "không có gì để chuyển giao\n"
-#: wt-status.c:1784
+#: wt-status.c:1788
#, 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:1788
+#: wt-status.c:1792
#, 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:1901
+#: wt-status.c:1905
msgid "No commits yet on "
msgstr "Vẫn không thực hiện lệnh chuyển giao nào "
-#: wt-status.c:1905
+#: wt-status.c:1909
msgid "HEAD (no branch)"
msgstr "HEAD (không nhánh)"
-#: wt-status.c:1936
+#: wt-status.c:1940
msgid "different"
msgstr "khác"
-#: wt-status.c:1938 wt-status.c:1946
+#: wt-status.c:1942 wt-status.c:1950
msgid "behind "
msgstr "đằng sau "
-#: wt-status.c:1941 wt-status.c:1944
+#: wt-status.c:1945 wt-status.c:1948
msgid "ahead "
msgstr "phía trước "
#. TRANSLATORS: the action is e.g. "pull with rebase"
-#: wt-status.c:2466
+#: wt-status.c:2470
#, 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:2472
+#: wt-status.c:2476
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:2474
+#: wt-status.c:2478
#, c-format
msgid "cannot %s: Your index contains uncommitted changes."
msgstr ""
"không thể %s: Mục lục của bạn có chứa các thay đổi chưa được chuyển giao."
+#: compat/precompose_utf8.c:58 builtin/clone.c:452
+#, c-format
+msgid "failed to unlink '%s'"
+msgstr "gặp lá»—i khi bá» liên kết (unlink) “%sâ€"
+
#: builtin/add.c:25
msgid "git add [<options>] [--] <pathspec>..."
msgstr "git add [<các tùy chá»n>] [--] <pathspec>…"
@@ -8484,7 +8527,7 @@ 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:234 builtin/rev-parse.c:896
+#: builtin/add.c:234 builtin/rev-parse.c:897
msgid "Could not read the index"
msgstr "Không thể Ä‘á»c bảng mục lục"
@@ -8521,8 +8564,8 @@ 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:290 builtin/clean.c:909 builtin/fetch.c:147 builtin/mv.c:124
-#: builtin/prune-packed.c:56 builtin/pull.c:222 builtin/push.c:560
+#: builtin/add.c:290 builtin/clean.c:910 builtin/fetch.c:162 builtin/mv.c:124
+#: builtin/prune-packed.c:56 builtin/pull.c:223 builtin/push.c:547
#: builtin/remote.c:1345 builtin/rm.c:241 builtin/send-pack.c:165
msgid "dry run"
msgstr "chạy thử"
@@ -8579,7 +8622,7 @@ 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:309 builtin/update-index.c:1001
+#: builtin/add.c:309 builtin/update-index.c:1002
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ê"
@@ -8655,113 +8698,109 @@ msgstr "Không có gì được chỉ ra, không có gì được thêm vào.\n"
msgid "Maybe you wanted to say 'git add .'?\n"
msgstr "Có lẽ ý bạn là “git add .†phải không?\n"
-#: builtin/am.c:348
+#: builtin/am.c:347
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:432
+#: builtin/am.c:431
#, 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:474
+#: builtin/am.c:473
#, c-format
msgid "Malformed input line: '%s'."
msgstr "Dòng đầu vào dị hình: “%sâ€."
-#: builtin/am.c:512
+#: builtin/am.c:511
#, 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:538
+#: builtin/am.c:537
msgid "fseek failed"
msgstr "fseek gặp lỗi"
-#: builtin/am.c:726
+#: builtin/am.c:725
#, c-format
msgid "could not parse patch '%s'"
msgstr "không thể phân tích cú pháp “%sâ€"
-#: builtin/am.c:791
+#: builtin/am.c:790
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:839
+#: builtin/am.c:838
msgid "invalid timestamp"
msgstr "dấu thá»i gian không hợp lệ"
-#: builtin/am.c:844 builtin/am.c:856
+#: builtin/am.c:843 builtin/am.c:855
msgid "invalid Date line"
msgstr "dòng Ngày tháng không hợp lệ"
-#: builtin/am.c:851
+#: builtin/am.c:850
msgid "invalid timezone offset"
msgstr "độ lệch múi giỠkhông hợp lệ"
-#: builtin/am.c:944
+#: builtin/am.c:943
msgid "Patch format detection failed."
msgstr "Dò tìm định dạng miếng vá gặp lỗi."
-#: builtin/am.c:949 builtin/clone.c:407
+#: builtin/am.c:948 builtin/clone.c:406
#, c-format
msgid "failed to create directory '%s'"
msgstr "tạo thư mục \"%s\" gặp lỗi"
-#: builtin/am.c:954
+#: builtin/am.c:953
msgid "Failed to split patches."
msgstr "Gặp lỗi khi chia nhỠcác miếng vá."
-#: builtin/am.c:1084 builtin/commit.c:374
-msgid "unable to write index file"
-msgstr "không thể ghi tập tin lưu mục lục"
-
-#: builtin/am.c:1098
+#: builtin/am.c:1084
#, c-format
msgid "When you have resolved this problem, run \"%s --continue\"."
msgstr "Khi bạn đã phân giải xong trục trặc này, hãy chạy \"%s --continue\"."
-#: builtin/am.c:1099
+#: builtin/am.c:1085
#, 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:1100
+#: builtin/am.c:1086
#, 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:1183
+#: builtin/am.c:1169
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:1211
+#: builtin/am.c:1197
msgid "Patch is empty."
msgstr "Miếng vá trống rỗng."
-#: builtin/am.c:1277
+#: builtin/am.c:1262
#, c-format
-msgid "invalid ident line: %.*s"
-msgstr "dòng thụt lỠkhông hợp lệ: %.*s"
+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:1299
+#: builtin/am.c:1265
#, c-format
-msgid "unable to parse commit %s"
-msgstr "không thể phân tích lần chuyển giao “%sâ€"
+msgid "invalid ident line: %.*s"
+msgstr "dòng thụt lỠkhông hợp lệ: %.*s"
-#: builtin/am.c:1496
+#: builtin/am.c:1484
msgid "Repository lacks necessary blobs to fall back on 3-way merge."
msgstr "Kho thiếu đối tượng blob cần thiết để trở vá» trên “3-way mergeâ€."
-#: builtin/am.c:1498
+#: builtin/am.c:1486
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:1517
+#: builtin/am.c:1505
msgid ""
"Did you hand edit your patch?\n"
"It does not apply to blobs recorded in its index."
@@ -8769,24 +8808,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:1523
+#: builtin/am.c:1511
msgid "Falling back to patching base and 3-way merge..."
msgstr "Äang trở lại để vá cÆ¡ sở và “hòa trá»™n 3-Ä‘Æ°á»ngâ€â€¦"
-#: builtin/am.c:1549
+#: builtin/am.c:1537
msgid "Failed to merge in the changes."
msgstr "Gặp lỗi khi trộn vào các thay đổi."
-#: builtin/am.c:1581
+#: builtin/am.c:1569
msgid "applying to an empty history"
msgstr "áp dụng vào một lịch sử trống rỗng"
-#: builtin/am.c:1628 builtin/am.c:1632
+#: builtin/am.c:1616 builtin/am.c:1620
#, 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:1650
+#: builtin/am.c:1638
msgid "Commit Body is:"
msgstr "Thân của lần chuyển giao là:"
@@ -8794,37 +8833,41 @@ 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:1660
+#: builtin/am.c:1648
#, 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:1710
+#: builtin/am.c:1695 builtin/commit.c:374
+msgid "unable to write index file"
+msgstr "không thể ghi tập tin lưu mục lục"
+
+#: builtin/am.c:1699
#, 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:1750 builtin/am.c:1818
+#: builtin/am.c:1739 builtin/am.c:1807
#, c-format
msgid "Applying: %.*s"
msgstr "Ãp dụng: %.*s"
-#: builtin/am.c:1767
+#: builtin/am.c:1756
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:1773
+#: builtin/am.c:1762
#, c-format
msgid "Patch failed at %s %.*s"
msgstr "Gặp lỗi khi vá tại %s %.*s"
-#: builtin/am.c:1777
+#: builtin/am.c:1766
msgid "Use 'git am --show-current-patch' to see the failed patch"
msgstr "Dùng “git am --show-current-patch†để xem miếng vá bị lỗi"
-#: builtin/am.c:1821
+#: builtin/am.c:1810
msgid ""
"No changes - did you forget to use 'git add'?\n"
"If there is nothing left to stage, chances are that something else\n"
@@ -8835,7 +8878,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:1828
+#: builtin/am.c:1817
msgid ""
"You still have unmerged paths in your index.\n"
"You should 'git add' each file with resolved conflicts to mark them as "
@@ -8848,17 +8891,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:1935 builtin/am.c:1939 builtin/am.c:1951 builtin/reset.c:329
+#: builtin/am.c:1924 builtin/am.c:1928 builtin/am.c:1940 builtin/reset.c:329
#: builtin/reset.c:337
#, c-format
msgid "Could not parse object '%s'."
msgstr "Không thể phân tích đối tượng “%sâ€."
-#: builtin/am.c:1987
+#: builtin/am.c:1976
msgid "failed to clean index"
msgstr "gặp lá»—i khi dá»n bảng mục lục"
-#: builtin/am.c:2031
+#: builtin/am.c:2020
msgid ""
"You seem to have moved HEAD since the last 'am' failure.\n"
"Not rewinding to ORIG_HEAD"
@@ -8866,144 +8909,144 @@ 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:2128
+#: builtin/am.c:2117
#, c-format
msgid "Invalid value for --patch-format: %s"
msgstr "Giá trị không hợp lệ cho --patch-format: %s"
-#: builtin/am.c:2164
+#: builtin/am.c:2153
msgid "git am [<options>] [(<mbox> | <Maildir>)...]"
msgstr "git am [<các tùy chá»n>] [(<mbox>|<Maildir>)…]"
-#: builtin/am.c:2165
+#: builtin/am.c:2154
msgid "git am [<options>] (--continue | --skip | --abort)"
msgstr "git am [<các tùy chá»n>] (--continue | --skip | --abort)"
-#: builtin/am.c:2171
+#: builtin/am.c:2160
msgid "run interactively"
msgstr "chạy kiểu tương tác"
-#: builtin/am.c:2173
+#: builtin/am.c:2162
msgid "historical option -- no-op"
msgstr "tùy chá»n lịch sá»­ -- không-toán-tá»­"
-#: builtin/am.c:2175
+#: builtin/am.c:2164
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:2176 builtin/init-db.c:494 builtin/prune-packed.c:58
-#: builtin/repack.c:296 builtin/stash.c:806
+#: builtin/am.c:2165 builtin/init-db.c:494 builtin/prune-packed.c:58
+#: builtin/repack.c:297 builtin/stash.c:812
msgid "be quiet"
msgstr "im lặng"
-#: builtin/am.c:2178
+#: builtin/am.c:2167
msgid "add a Signed-off-by line to the commit message"
msgstr "thêm dòng Signed-off-by cho ghi chú của lần chuyển giao"
-#: builtin/am.c:2181
+#: builtin/am.c:2170
msgid "recode into utf8 (default)"
msgstr "chuyển mã thành utf8 (mặc định)"
-#: builtin/am.c:2183
+#: builtin/am.c:2172
msgid "pass -k flag to git-mailinfo"
msgstr "chuyển cỠ-k cho git-mailinfo"
-#: builtin/am.c:2185
+#: builtin/am.c:2174
msgid "pass -b flag to git-mailinfo"
msgstr "chuyển cỠ-b cho git-mailinfo"
-#: builtin/am.c:2187
+#: builtin/am.c:2176
msgid "pass -m flag to git-mailinfo"
msgstr "chuyển cỠ-m cho git-mailinfo"
-#: builtin/am.c:2189
+#: builtin/am.c:2178
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:2192
+#: builtin/am.c:2181
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:2195
+#: builtin/am.c:2184
msgid "strip everything before a scissors line"
msgstr "cắt má»i thứ trÆ°á»›c dòng scissors"
-#: builtin/am.c:2197 builtin/am.c:2200 builtin/am.c:2203 builtin/am.c:2206
-#: builtin/am.c:2209 builtin/am.c:2212 builtin/am.c:2215 builtin/am.c:2218
-#: builtin/am.c:2224
+#: builtin/am.c:2186 builtin/am.c:2189 builtin/am.c:2192 builtin/am.c:2195
+#: builtin/am.c:2198 builtin/am.c:2201 builtin/am.c:2204 builtin/am.c:2207
+#: builtin/am.c:2213
msgid "pass it through git-apply"
msgstr "chuyển nó qua git-apply"
-#: builtin/am.c:2214 builtin/commit.c:1368 builtin/fmt-merge-msg.c:671
-#: builtin/fmt-merge-msg.c:674 builtin/grep.c:881 builtin/merge.c:249
-#: builtin/pull.c:159 builtin/pull.c:218 builtin/rebase.c:1418
-#: builtin/repack.c:307 builtin/repack.c:311 builtin/repack.c:313
+#: builtin/am.c:2203 builtin/commit.c:1368 builtin/fmt-merge-msg.c:671
+#: builtin/fmt-merge-msg.c:674 builtin/grep.c:883 builtin/merge.c:249
+#: builtin/pull.c:160 builtin/pull.c:219 builtin/rebase.c:1442
+#: builtin/repack.c:308 builtin/repack.c:312 builtin/repack.c:314
#: builtin/show-branch.c:650 builtin/show-ref.c:172 builtin/tag.c:403
-#: parse-options.h:141 parse-options.h:162 parse-options.h:312
+#: parse-options.h:150 parse-options.h:171 parse-options.h:312
msgid "n"
msgstr "n"
-#: builtin/am.c:2220 builtin/branch.c:661 builtin/for-each-ref.c:38
-#: builtin/replace.c:554 builtin/tag.c:437 builtin/verify-tag.c:38
+#: builtin/am.c:2209 builtin/branch.c:661 builtin/for-each-ref.c:38
+#: builtin/replace.c:555 builtin/tag.c:437 builtin/verify-tag.c:38
msgid "format"
msgstr "định dạng"
-#: builtin/am.c:2221
+#: builtin/am.c:2210
msgid "format the patch(es) are in"
msgstr "định dạng (các) miếng vá theo"
-#: builtin/am.c:2227
+#: builtin/am.c:2216
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:2229
+#: builtin/am.c:2218
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:2232
+#: builtin/am.c:2221
msgid "synonyms for --continue"
msgstr "đồng nghĩa với --continue"
-#: builtin/am.c:2235
+#: builtin/am.c:2224
msgid "skip the current patch"
msgstr "bỠqua miếng vá hiện hành"
-#: builtin/am.c:2238
+#: builtin/am.c:2227
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:2241
+#: builtin/am.c:2230
msgid "abort the patching operation but keep HEAD where it is."
msgstr "bỠqua thao tác vá nhưng vẫn giữ HEAD chỉ đến nó."
-#: builtin/am.c:2244
+#: builtin/am.c:2233
msgid "show the patch being applied."
msgstr "hiển thị miếng vá đã được áp dụng rồi."
-#: builtin/am.c:2248
+#: builtin/am.c:2237
msgid "lie about committer date"
msgstr "nói dối vỠngày chuyển giao"
-#: builtin/am.c:2250
+#: builtin/am.c:2239
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:2252 builtin/commit-tree.c:120 builtin/commit.c:1511
-#: builtin/merge.c:286 builtin/pull.c:193 builtin/rebase.c:489
-#: builtin/rebase.c:1459 builtin/revert.c:117 builtin/tag.c:418
+#: builtin/am.c:2241 builtin/commit-tree.c:120 builtin/commit.c:1511
+#: builtin/merge.c:286 builtin/pull.c:194 builtin/rebase.c:490
+#: builtin/rebase.c:1483 builtin/revert.c:117 builtin/tag.c:418
msgid "key-id"
msgstr "mã-số-khóa"
-#: builtin/am.c:2253 builtin/rebase.c:490 builtin/rebase.c:1460
+#: builtin/am.c:2242 builtin/rebase.c:491 builtin/rebase.c:1484
msgid "GPG-sign commits"
msgstr "Các lần chuyển giao ký-GPG"
-#: builtin/am.c:2256
+#: builtin/am.c:2245
msgid "(internal use for git-rebase)"
msgstr "(dùng nội bộ cho git-rebase)"
-#: builtin/am.c:2274
+#: builtin/am.c:2263
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."
@@ -9011,16 +9054,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:2281
+#: builtin/am.c:2270
msgid "failed to read the index"
msgstr "gặp lá»—i Ä‘á»c bảng mục lục"
-#: builtin/am.c:2296
+#: builtin/am.c:2285
#, 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:2320
+#: builtin/am.c:2309
#, c-format
msgid ""
"Stray %s directory found.\n"
@@ -9029,11 +9072,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:2326
+#: builtin/am.c:2315
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:2336
+#: builtin/am.c:2325
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"
@@ -9349,156 +9392,156 @@ msgstr "--bisect-next-check cần 2 hoặc 3 tham số"
msgid "--bisect-terms requires 0 or 1 argument"
msgstr "--bisect-terms cần 0 hoặc 1 tham số"
-#: builtin/blame.c:32
+#: builtin/blame.c:31
msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>"
msgstr "git blame [<các tùy chá»n>] [<rev-opts>] [<rev>] [--] <tập-tin>"
-#: builtin/blame.c:37
+#: builtin/blame.c:36
msgid "<rev-opts> are documented in git-rev-list(1)"
msgstr "<rev-opts> được mô tả trong tài liệu git-rev-list(1)"
-#: builtin/blame.c:410
+#: builtin/blame.c:409
#, c-format
msgid "expecting a color: %s"
msgstr "cần một màu: %s"
-#: builtin/blame.c:417
+#: builtin/blame.c:416
msgid "must end with a color"
msgstr "phải kết thúc bằng một màu"
-#: builtin/blame.c:730
+#: builtin/blame.c:729
#, 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:748
+#: builtin/blame.c:747
msgid "invalid value for blame.coloring"
msgstr "màu không hợp lệ cho blame.coloring"
-#: builtin/blame.c:823
+#: builtin/blame.c:822
#, 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:845
+#: builtin/blame.c:844
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:846
+#: builtin/blame.c:845
msgid "Show blank SHA-1 for boundary commits (Default: off)"
msgstr ""
"Hiển thị SHA-1 trắng cho những lần chuyển giao biên giới (Mặc định: off)"
-#: builtin/blame.c:847
+#: builtin/blame.c:846
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:848
+#: builtin/blame.c:847
msgid "Show work cost statistics"
msgstr "Hiển thị thống kê công sức làm việc"
-#: builtin/blame.c:849
+#: builtin/blame.c:848
msgid "Force progress reporting"
msgstr "Ép buộc báo cáo tiến triển công việc"
-#: builtin/blame.c:850
+#: builtin/blame.c:849
msgid "Show output score for blame entries"
msgstr "Hiển thị kết xuất Ä‘iểm số có các mục tin “blameâ€"
-#: builtin/blame.c:851
+#: builtin/blame.c:850
msgid "Show original filename (Default: auto)"
msgstr "Hiển thị tên tập tin gốc (Mặc định: auto)"
-#: builtin/blame.c:852
+#: builtin/blame.c:851
msgid "Show original linenumber (Default: off)"
msgstr "Hiển thị số dòng gốc (Mặc định: off)"
-#: builtin/blame.c:853
+#: builtin/blame.c:852
msgid "Show in a format designed for machine consumption"
msgstr "Hiển thị ở định dạng đã thiết kế cho sự tiêu dùng bằng máy"
-#: builtin/blame.c:854
+#: builtin/blame.c:853
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:855
+#: builtin/blame.c:854
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:856
+#: builtin/blame.c:855
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:857
+#: builtin/blame.c:856
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:858
+#: builtin/blame.c:857
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:859
+#: builtin/blame.c:858
msgid "Show author email instead of name (Default: off)"
msgstr "Hiển thị thư điện tử của tác giả thay vì tên (Mặc định: off)"
-#: builtin/blame.c:860
+#: builtin/blame.c:859
msgid "Ignore whitespace differences"
msgstr "BỠqua các khác biệt do khoảng trắng gây ra"
-#: builtin/blame.c:861 builtin/log.c:1629
+#: builtin/blame.c:860 builtin/log.c:1630
msgid "rev"
msgstr "rev"
-#: builtin/blame.c:861
+#: builtin/blame.c:860
msgid "Ignore <rev> when blaming"
-msgstr "bá» qua <rev> khi blame"
+msgstr "Bá» qua <rev> khi blame"
-#: builtin/blame.c:862
+#: builtin/blame.c:861
msgid "Ignore revisions from <file>"
msgstr "BỠqua các điểm xét duyệt từ <tập tin>"
-#: builtin/blame.c:863
+#: builtin/blame.c:862
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:864
+#: builtin/blame.c:863
msgid "color lines by age"
msgstr "các dòng màu theo tuổi"
-#: builtin/blame.c:871
+#: builtin/blame.c:870
msgid "Use an experimental heuristic to improve diffs"
msgstr "Dùng má»™t phá»ng Ä‘oán thá»­ nghiệm để tăng cÆ°á»ng các diff"
-#: builtin/blame.c:873
+#: builtin/blame.c:872
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:874
+#: builtin/blame.c:873
msgid "Use revisions from <file> instead of calling git-rev-list"
msgstr ""
"Sá»­ dụng Ä‘iểm xét duyệt (revision) từ <tập tin> thay vì gá»i “git-rev-listâ€"
-#: builtin/blame.c:875
+#: builtin/blame.c:874
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:876 builtin/blame.c:877
+#: builtin/blame.c:875 builtin/blame.c:876
msgid "score"
msgstr "điểm số"
-#: builtin/blame.c:876
+#: builtin/blame.c:875
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:877
+#: builtin/blame.c:876
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:878
+#: builtin/blame.c:877
msgid "n,m"
msgstr "n,m"
-#: builtin/blame.c:878
+#: builtin/blame.c:877
msgid "Process only line range n,m, counting from 1"
msgstr "Xử lý chỉ dòng vùng n,m, tính từ 1"
@@ -9734,7 +9777,7 @@ msgstr "cài đặt chế độ theo dõi (xem git-pull(1))"
msgid "do not use"
msgstr "không dùng"
-#: builtin/branch.c:626 builtin/rebase.c:485
+#: builtin/branch.c:626 builtin/rebase.c:486
msgid "upstream"
msgstr "thượng nguồn"
@@ -9845,7 +9888,7 @@ msgstr "sắp xếp và lá»c là phân biệt HOA thÆ°á»ng"
msgid "format to use for the output"
msgstr "định dạng sẽ dùng cho đầu ra"
-#: builtin/branch.c:684 builtin/clone.c:761
+#: builtin/branch.c:684 builtin/clone.c:760
msgid "HEAD not found below refs/heads!"
msgstr "Không tìm thấy HEAD ở dưới refs/heads!"
@@ -9948,7 +9991,7 @@ msgstr "Cần một kho chứa để có thể tạo một bundle."
msgid "Need a repository to unbundle."
msgstr "Cần một kho chứa để có thể giải nén một bundle."
-#: builtin/cat-file.c:594
+#: builtin/cat-file.c:595
msgid ""
"git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -"
"p | <type> | --textconv | --filters) [--path=<path>] <object>"
@@ -9956,7 +9999,7 @@ 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>"
-#: builtin/cat-file.c:595
+#: builtin/cat-file.c:596
msgid ""
"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --"
"filters]"
@@ -9964,72 +10007,72 @@ msgstr ""
"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --"
"filters]"
-#: builtin/cat-file.c:616
+#: builtin/cat-file.c:617
msgid "only one batch option may be specified"
msgstr "chỉ má»™t tùy chá»n batch được chỉ ra"
-#: builtin/cat-file.c:634
+#: builtin/cat-file.c:635
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:635
+#: builtin/cat-file.c:636
msgid "show object type"
msgstr "hiển thị kiểu đối tượng"
-#: builtin/cat-file.c:636
+#: builtin/cat-file.c:637
msgid "show object size"
msgstr "hiển thị kích thước đối tượng"
-#: builtin/cat-file.c:638
+#: builtin/cat-file.c:639
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:639
+#: builtin/cat-file.c:640
msgid "pretty-print object's content"
msgstr "in ná»™i dung đối tượng dạng dá»… Ä‘á»c"
-#: builtin/cat-file.c:641
+#: builtin/cat-file.c:642
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:643
+#: builtin/cat-file.c:644
msgid "for blob objects, run filters on object's content"
msgstr "với đối tượng blob, chạy lệnh filters trên nội dung của đối tượng"
-#: builtin/cat-file.c:644 git-submodule.sh:936
+#: builtin/cat-file.c:645 git-submodule.sh:936
msgid "blob"
msgstr "blob"
-#: builtin/cat-file.c:645
+#: builtin/cat-file.c:646
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:647
+#: builtin/cat-file.c:648
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:648
+#: builtin/cat-file.c:649
msgid "buffer --batch output"
msgstr "đệm kết xuất --batch"
-#: builtin/cat-file.c:650
+#: builtin/cat-file.c:651
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"
-#: builtin/cat-file.c:654
+#: builtin/cat-file.c:655
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:658
+#: builtin/cat-file.c:659
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:660
+#: builtin/cat-file.c:661
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:662
+#: builtin/cat-file.c:663
msgid "do not order --batch-all-objects output"
msgstr "đừng sắp xếp đầu ra --batch-all-objects"
@@ -10057,8 +10100,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:1433 builtin/gc.c:538
-#: builtin/worktree.c:507
+#: builtin/check-ignore.c:21 builtin/checkout.c:1433 builtin/gc.c:537
+#: builtin/worktree.c:506
msgid "suppress progress reporting"
msgstr "chặn các báo cáo tiến trình hoạt động"
@@ -10151,7 +10194,7 @@ msgstr "ghi nội dung vào tập tin tạm"
#: builtin/checkout-index.c:178 builtin/column.c:31
#: builtin/submodule--helper.c:1373 builtin/submodule--helper.c:1376
#: builtin/submodule--helper.c:1384 builtin/submodule--helper.c:1857
-#: builtin/worktree.c:680
+#: builtin/worktree.c:679
msgid "string"
msgstr "chuá»—i"
@@ -10179,96 +10222,96 @@ msgstr "git switch [<các tùy chá»n>] [<nhánh>]"
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:172 builtin/checkout.c:211
+#: builtin/checkout.c:173 builtin/checkout.c:212
#, 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:174 builtin/checkout.c:213
+#: builtin/checkout.c:175 builtin/checkout.c:214
#, 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:190
+#: builtin/checkout.c:191
#, 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:240
+#: builtin/checkout.c:241
#, 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:258
+#: builtin/checkout.c:259
#, c-format
msgid "path '%s': cannot merge"
msgstr "Ä‘Æ°á»ng dẫn “%sâ€: không thể hòa trá»™n"
-#: builtin/checkout.c:274
+#: builtin/checkout.c:275
#, 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:374
+#: builtin/checkout.c:375
#, 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:379
+#: builtin/checkout.c:380
#, 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:386
+#: builtin/checkout.c:387
#, 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:409 builtin/checkout.c:412 builtin/checkout.c:415
-#: builtin/checkout.c:419
+#: builtin/checkout.c:410 builtin/checkout.c:413 builtin/checkout.c:416
+#: builtin/checkout.c:420
#, 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:422 builtin/checkout.c:425
+#: builtin/checkout.c:423 builtin/checkout.c:426
#, c-format
msgid "'%s' cannot be used with %s"
msgstr "không được dùng “%s†với %s"
-#: builtin/checkout.c:429
+#: builtin/checkout.c:430
#, 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:433
+#: builtin/checkout.c:434
#, c-format
msgid "neither '%s' or '%s' is specified"
msgstr "không chỉ định '%s' không '%s'"
-#: builtin/checkout.c:437
+#: builtin/checkout.c:438
#, 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:442 builtin/checkout.c:447
+#: builtin/checkout.c:443 builtin/checkout.c:448
#, 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:506 builtin/checkout.c:513
+#: builtin/checkout.c:507 builtin/checkout.c:514
#, c-format
msgid "path '%s' is unmerged"
msgstr "Ä‘Æ°á»ng dẫn “%s†không được hòa trá»™n"
-#: builtin/checkout.c:679
+#: builtin/checkout.c:680
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:729
+#: builtin/checkout.c:730
#, c-format
msgid ""
"cannot continue with staged changes in the following files:\n"
@@ -10278,12 +10321,6 @@ msgstr ""
"sau:\n"
"%s"
-#: builtin/checkout.c:736
-#, c-format
-msgid "staged changes in the following files may be lost: %s"
-msgstr ""
-"các thay đổi đã đưa lên bệ phóng trong các tập tin sau đây có thể bị mất: %s"
-
#: builtin/checkout.c:833
#, c-format
msgid "Can not do reflog for '%s': %s\n"
@@ -10293,7 +10330,7 @@ msgstr "Không thể thá»±c hiện reflog cho “%sâ€: %s\n"
msgid "HEAD is now at"
msgstr "HEAD hiện giỠtại"
-#: builtin/checkout.c:879 builtin/clone.c:714
+#: builtin/checkout.c:879 builtin/clone.c:713
msgid "unable to update HEAD"
msgstr "không thể cập nhật HEAD"
@@ -10397,7 +10434,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:1243 builtin/worktree.c:291 builtin/worktree.c:456
+#: builtin/checkout.c:1243 builtin/worktree.c:290 builtin/worktree.c:455
#, c-format
msgid "invalid reference: %s"
msgstr "tham chiếu không hợp lệ: %s"
@@ -10502,9 +10539,9 @@ msgstr "Không thể chuyển nhánh đến một thứ không phải là lần
msgid "missing branch or commit argument"
msgstr "thiếu tham số là nhánh hoặc lần chuyển giao"
-#: builtin/checkout.c:1437 builtin/clone.c:91 builtin/fetch.c:151
-#: builtin/merge.c:285 builtin/pull.c:137 builtin/push.c:575
-#: builtin/send-pack.c:174
+#: builtin/checkout.c:1437 builtin/clone.c:90 builtin/commit-graph.c:59
+#: builtin/commit-graph.c:180 builtin/fetch.c:166 builtin/merge.c:285
+#: builtin/pull.c:138 builtin/push.c:562 builtin/send-pack.c:174
msgid "force progress reporting"
msgstr "ép buộc báo cáo tiến triển công việc"
@@ -10512,7 +10549,7 @@ msgstr "ép buộc báo cáo tiến triển công việc"
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:1439 builtin/log.c:1617 parse-options.h:318
+#: builtin/checkout.c:1439 builtin/log.c:1618 parse-options.h:318
msgid "style"
msgstr "kiểu"
@@ -10520,7 +10557,7 @@ msgstr "kiểu"
msgid "conflict style (merge or diff3)"
msgstr "xung đột kiểu (hòa trộn hoặc diff3)"
-#: builtin/checkout.c:1452 builtin/worktree.c:504
+#: builtin/checkout.c:1452 builtin/worktree.c:503
msgid "detach HEAD at named commit"
msgstr "rá»i bá» HEAD tại lần chuyển giao theo tên"
@@ -10560,7 +10597,7 @@ msgstr ""
#: builtin/checkout.c:1482
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 thÆ°a thá»›t"
+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:1533
msgid "-b, -B and --orphan are mutually exclusive"
@@ -10641,9 +10678,9 @@ 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:1691 builtin/checkout.c:1693 builtin/checkout.c:1733
-#: builtin/checkout.c:1735 builtin/clone.c:121 builtin/remote.c:169
-#: builtin/remote.c:171 builtin/worktree.c:500 builtin/worktree.c:502
+#: builtin/checkout.c:1691 builtin/checkout.c:1693 builtin/checkout.c:1742
+#: builtin/checkout.c:1744 builtin/clone.c:120 builtin/remote.c:169
+#: builtin/remote.c:171 builtin/worktree.c:499 builtin/worktree.c:501
msgid "branch"
msgstr "nhánh"
@@ -10667,39 +10704,39 @@ msgstr "Ä‘oán thứ hai 'git checkout <không-nhánh-nào-nhÆ°-vậy>' (mặc Ä
msgid "use overlay mode (default)"
msgstr "dùng chế độ che phủ (mặc định)"
-#: builtin/checkout.c:1734
+#: builtin/checkout.c:1743
msgid "create and switch to a new branch"
msgstr "tạo và chuyển đến một nhánh mới"
-#: builtin/checkout.c:1736
+#: builtin/checkout.c:1745
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:1738
+#: builtin/checkout.c:1747
msgid "second guess 'git switch <no-such-branch>'"
msgstr "gợi ý thứ hai \"git checkout <không-nhánh-nào-như-vậy>\""
-#: builtin/checkout.c:1740
+#: builtin/checkout.c:1749
msgid "throw away local modifications"
msgstr "vứt bỠcác sửa đổi địa phương"
-#: builtin/checkout.c:1772
+#: builtin/checkout.c:1781
msgid "which tree-ish to checkout from"
msgstr "lấy ra từ tree-ish nào"
-#: builtin/checkout.c:1774
+#: builtin/checkout.c:1783
msgid "restore the index"
msgstr "phục hồi bảng mục lục"
-#: builtin/checkout.c:1776
+#: builtin/checkout.c:1785
msgid "restore the working tree (default)"
msgstr "phục hồi cây làm việc (mặc định)"
-#: builtin/checkout.c:1778
+#: builtin/checkout.c:1787
msgid "ignore unmerged entries"
msgstr "bỠqua những thứ chưa hòa trộn: %s"
-#: builtin/checkout.c:1779
+#: builtin/checkout.c:1788
msgid "use overlay mode"
msgstr "dùng chế độ che phủ"
@@ -10740,7 +10777,7 @@ msgstr "gặp lỗi khi gỡ bỠ%s"
msgid "could not lstat %s\n"
msgstr "không thể lấy thông tin thống kê đầy đủ của %s\n"
-#: builtin/clean.c:300 git-add--interactive.perl:593
+#: builtin/clean.c:301 git-add--interactive.perl:593
#, c-format
msgid ""
"Prompt help:\n"
@@ -10753,7 +10790,7 @@ msgstr ""
"foo - chá»n mục trên cÆ¡ sở tiá»n tố duy nhất\n"
" - (để trống) không chá»n gì cả\n"
-#: builtin/clean.c:304 git-add--interactive.perl:602
+#: builtin/clean.c:305 git-add--interactive.perl:602
#, c-format
msgid ""
"Prompt help:\n"
@@ -10774,38 +10811,38 @@ msgstr ""
"* - chá»n tất\n"
" - (để trống) kết thúc việc chá»n\n"
-#: builtin/clean.c:520 git-add--interactive.perl:568
+#: builtin/clean.c:521 git-add--interactive.perl:568
#: git-add--interactive.perl:573
#, c-format, perl-format
msgid "Huh (%s)?\n"
msgstr "Hả (%s)?\n"
-#: builtin/clean.c:662
+#: builtin/clean.c:663
#, c-format
msgid "Input ignore patterns>> "
msgstr "Mẫu để lá»c các tập tin đầu vào cần lá» Ä‘i>> "
-#: builtin/clean.c:699
+#: builtin/clean.c:700
#, c-format
msgid "WARNING: Cannot find items matched by: %s"
msgstr "CẢNH BÃO: Không tìm thấy các mục được khá»›p bởi: %s"
-#: builtin/clean.c:720
+#: builtin/clean.c:721
msgid "Select items to delete"
msgstr "Chá»n mục muốn xóa"
#. TRANSLATORS: Make sure to keep [y/N] as is
-#: builtin/clean.c:761
+#: builtin/clean.c:762
#, c-format
msgid "Remove %s [y/N]? "
msgstr "Xóa bỠ“%s†[y/N]? "
-#: builtin/clean.c:786 git-add--interactive.perl:1763
+#: builtin/clean.c:787 git-add--interactive.perl:1763
#, c-format
msgid "Bye.\n"
msgstr "Tạm biệt.\n"
-#: builtin/clean.c:794
+#: builtin/clean.c:795
msgid ""
"clean - start cleaning\n"
"filter by pattern - exclude items from deletion\n"
@@ -10823,63 +10860,63 @@ msgstr ""
"help - hiển thị chính trợ giúp này\n"
"? - trợ giúp dành cho chá»n bằng cách nhắc"
-#: builtin/clean.c:821 git-add--interactive.perl:1849
+#: builtin/clean.c:822 git-add--interactive.perl:1849
msgid "*** Commands ***"
msgstr "*** Lệnh ***"
-#: builtin/clean.c:822 git-add--interactive.perl:1846
+#: builtin/clean.c:823 git-add--interactive.perl:1846
msgid "What now"
msgstr "GiỠthì sao"
-#: builtin/clean.c:830
+#: builtin/clean.c:831
msgid "Would remove the following item:"
msgid_plural "Would remove the following items:"
msgstr[0] "Có muốn gỡ bỠ(các) mục sau đây không:"
-#: builtin/clean.c:846
+#: builtin/clean.c:847
msgid "No more files to clean, exiting."
msgstr "Không còn tập-tin nào để dá»n dẹp, Ä‘ang thoát ra."
-#: builtin/clean.c:908
+#: builtin/clean.c:909
msgid "do not print names of files removed"
msgstr "không hiển thị tên của các tập tin đã gỡ bá»"
-#: builtin/clean.c:910
+#: builtin/clean.c:911
msgid "force"
msgstr "ép buộc"
-#: builtin/clean.c:911
+#: builtin/clean.c:912
msgid "interactive cleaning"
msgstr "dá»n bằng kiểu tÆ°Æ¡ng tác"
-#: builtin/clean.c:913
+#: builtin/clean.c:914
msgid "remove whole directories"
msgstr "gỡ bỠtoàn bộ thư mục"
-#: builtin/clean.c:914 builtin/describe.c:546 builtin/describe.c:548
-#: builtin/grep.c:899 builtin/log.c:176 builtin/log.c:178
-#: builtin/ls-files.c:557 builtin/name-rev.c:413 builtin/name-rev.c:415
+#: builtin/clean.c:915 builtin/describe.c:548 builtin/describe.c:550
+#: builtin/grep.c:901 builtin/log.c:176 builtin/log.c:178
+#: builtin/ls-files.c:557 builtin/name-rev.c:417 builtin/name-rev.c:419
#: builtin/show-ref.c:179
msgid "pattern"
msgstr "mẫu"
-#: builtin/clean.c:915
+#: builtin/clean.c:916
msgid "add <pattern> to ignore rules"
msgstr "thêm <mẫu> vào trong qui tắc bỠqua"
-#: builtin/clean.c:916
+#: builtin/clean.c:917
msgid "remove ignored files, too"
msgstr "đồng thá»i gỡ bá» cả các tập tin bị bá» qua"
-#: builtin/clean.c:918
+#: builtin/clean.c:919
msgid "remove only ignored files"
msgstr "chỉ gỡ bỠnhững tập tin bị bỠqua"
-#: builtin/clean.c:936
+#: builtin/clean.c:937
msgid "-x and -X cannot be used together"
msgstr "-x và -X không thể dùng cùng nhau"
-#: builtin/clean.c:940
+#: builtin/clean.c:941
msgid ""
"clean.requireForce set to true and neither -i, -n, nor -f given; refusing to "
"clean"
@@ -10887,7 +10924,7 @@ msgstr ""
"clean.requireForce được đặt thành true và không Ä‘Æ°a ra tùy chá»n -i, -n mà "
"cÅ©ng không -f; từ chối lệnh dá»n dẹp (clean)"
-#: builtin/clean.c:943
+#: builtin/clean.c:944
msgid ""
"clean.requireForce defaults to true and neither -i, -n, nor -f given; "
"refusing to clean"
@@ -10895,162 +10932,162 @@ msgstr ""
"clean.requireForce mặc định được đặt là true và không Ä‘Æ°a ra tùy chá»n -i, -n "
"mà cÅ©ng không -f; từ chối lệnh dá»n dẹp (clean)"
-#: builtin/clone.c:46
+#: builtin/clone.c:45
msgid "git clone [<options>] [--] <repo> [<dir>]"
msgstr "git clone [<các tùy chá»n>] [--] <kho> [<t.mục>]"
-#: builtin/clone.c:93
+#: builtin/clone.c:92
msgid "don't create a checkout"
msgstr "không tạo một checkout"
-#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:489
+#: builtin/clone.c:93 builtin/clone.c:95 builtin/init-db.c:489
msgid "create a bare repository"
msgstr "tạo kho thuần"
-#: builtin/clone.c:98
+#: builtin/clone.c:97
msgid "create a mirror repository (implies bare)"
msgstr "tạo kho bản sao (ý là kho thuần)"
-#: builtin/clone.c:100
+#: builtin/clone.c:99
msgid "to clone from a local repository"
msgstr "để nhân bản từ kho nội bộ"
-#: builtin/clone.c:102
+#: builtin/clone.c:101
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:104
+#: builtin/clone.c:103
msgid "setup as shared repository"
msgstr "cài đặt đây là kho chia sẻ"
-#: builtin/clone.c:107
+#: builtin/clone.c:106
msgid "pathspec"
msgstr "đặc-tả-Ä‘Æ°á»ng-dẫn"
-#: builtin/clone.c:107
+#: builtin/clone.c:106
msgid "initialize submodules in the clone"
msgstr "khởi tạo mô-đun-con trong bản sao"
-#: builtin/clone.c:110
+#: builtin/clone.c:109
msgid "number of submodules cloned in parallel"
msgstr "số lượng mô-Ä‘un-con được nhân bản đồng thá»i"
-#: builtin/clone.c:111 builtin/init-db.c:486
+#: builtin/clone.c:110 builtin/init-db.c:486
msgid "template-directory"
msgstr "thư-mục-mẫu"
-#: builtin/clone.c:112 builtin/init-db.c:487
+#: builtin/clone.c:111 builtin/init-db.c:487
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:114 builtin/clone.c:116 builtin/submodule--helper.c:1380
+#: builtin/clone.c:113 builtin/clone.c:115 builtin/submodule--helper.c:1380
#: builtin/submodule--helper.c:1860
msgid "reference repository"
msgstr "kho tham chiếu"
-#: builtin/clone.c:118 builtin/submodule--helper.c:1382
+#: builtin/clone.c:117 builtin/submodule--helper.c:1382
#: builtin/submodule--helper.c:1862
msgid "use --reference only while cloning"
msgstr "chỉ dùng --reference khi nhân bản"
-#: builtin/clone.c:119 builtin/column.c:27 builtin/merge-file.c:46
-#: builtin/pack-objects.c:3314 builtin/repack.c:319
+#: builtin/clone.c:118 builtin/column.c:27 builtin/merge-file.c:46
+#: builtin/pack-objects.c:3294 builtin/repack.c:320
msgid "name"
msgstr "tên"
-#: builtin/clone.c:120
+#: builtin/clone.c:119
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:122
+#: builtin/clone.c:121
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:124
+#: builtin/clone.c:123
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:125 builtin/fetch.c:152 builtin/grep.c:838
-#: builtin/pull.c:226
+#: builtin/clone.c:124 builtin/fetch.c:167 builtin/grep.c:840
+#: builtin/pull.c:227
msgid "depth"
msgstr "độ-sâu"
-#: builtin/clone.c:126
+#: builtin/clone.c:125
msgid "create a shallow clone of that depth"
msgstr "tạo bản sao không đầy đủ cho mức sâu đã cho"
-#: builtin/clone.c:127 builtin/fetch.c:154 builtin/pack-objects.c:3303
+#: builtin/clone.c:126 builtin/fetch.c:169 builtin/pack-objects.c:3283
msgid "time"
msgstr "thá»i-gian"
-#: builtin/clone.c:128
+#: builtin/clone.c:127
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:129 builtin/fetch.c:156 builtin/fetch.c:179
-#: builtin/rebase.c:1395
+#: builtin/clone.c:128 builtin/fetch.c:171 builtin/fetch.c:194
+#: builtin/rebase.c:1417
msgid "revision"
msgstr "điểm xét duyệt"
-#: builtin/clone.c:130 builtin/fetch.c:157
+#: builtin/clone.c:129 builtin/fetch.c:172
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:132
+#: builtin/clone.c:131
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:134
+#: builtin/clone.c:133
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:136
+#: builtin/clone.c:135
msgid "any cloned submodules will be shallow"
msgstr "má»i mô-Ä‘un-con nhân bản sẽ là shallow (nông)"
-#: builtin/clone.c:137 builtin/init-db.c:495
+#: builtin/clone.c:136 builtin/init-db.c:495
msgid "gitdir"
msgstr "gitdir"
-#: builtin/clone.c:138 builtin/init-db.c:496
+#: builtin/clone.c:137 builtin/init-db.c:496
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:139
+#: builtin/clone.c:138
msgid "key=value"
msgstr "khóa=giá_trị"
-#: builtin/clone.c:140
+#: builtin/clone.c:139
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:142 builtin/fetch.c:174 builtin/ls-remote.c:76
-#: builtin/push.c:585 builtin/send-pack.c:172
+#: builtin/clone.c:141 builtin/fetch.c:189 builtin/ls-remote.c:76
+#: builtin/push.c:572 builtin/send-pack.c:172
msgid "server-specific"
msgstr "đặc-tả-máy-phục-vụ"
-#: builtin/clone.c:142 builtin/fetch.c:174 builtin/ls-remote.c:76
-#: builtin/push.c:585 builtin/send-pack.c:173
+#: builtin/clone.c:141 builtin/fetch.c:189 builtin/ls-remote.c:76
+#: builtin/push.c:572 builtin/send-pack.c:173
msgid "option to transmit"
msgstr "tùy chá»n để chuyển giao"
-#: builtin/clone.c:143 builtin/fetch.c:175 builtin/pull.c:239
-#: builtin/push.c:586
+#: builtin/clone.c:142 builtin/fetch.c:190 builtin/pull.c:240
+#: builtin/push.c:573
msgid "use IPv4 addresses only"
msgstr "chỉ dùng địa chỉ IPv4"
-#: builtin/clone.c:145 builtin/fetch.c:177 builtin/pull.c:242
-#: builtin/push.c:588
+#: builtin/clone.c:144 builtin/fetch.c:192 builtin/pull.c:243
+#: builtin/push.c:575
msgid "use IPv6 addresses only"
msgstr "chỉ dùng địa chỉ IPv6"
-#: builtin/clone.c:149
+#: builtin/clone.c:148
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:285
+#: builtin/clone.c:284
msgid ""
"No directory name could be guessed.\n"
"Please specify a directory on the command line"
@@ -11058,47 +11095,42 @@ 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"
-#: builtin/clone.c:338
+#: builtin/clone.c:337
#, 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:411
+#: builtin/clone.c:410
#, 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:428
+#: builtin/clone.c:427
#, 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:453
-#, c-format
-msgid "failed to unlink '%s'"
-msgstr "gặp lá»—i khi bá» liên kết (unlink) “%sâ€"
-
-#: builtin/clone.c:458
+#: builtin/clone.c:457
#, 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:462
+#: builtin/clone.c:461
#, 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:467
+#: builtin/clone.c:466
#, c-format
msgid "failed to iterate over '%s'"
msgstr "gặp lá»—i khi lặp qua “%sâ€"
-#: builtin/clone.c:492
+#: builtin/clone.c:491
#, c-format
msgid "done.\n"
msgstr "hoàn tất.\n"
-#: builtin/clone.c:506
+#: builtin/clone.c:505
msgid ""
"Clone succeeded, but checkout failed.\n"
"You can inspect what was checked out with 'git status'\n"
@@ -11108,95 +11140,95 @@ 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:583
+#: builtin/clone.c:582
#, 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:702
+#: builtin/clone.c:701
#, c-format
msgid "unable to update %s"
msgstr "không thể cập nhật %s"
-#: builtin/clone.c:752
+#: builtin/clone.c:751
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:783
+#: builtin/clone.c:782
msgid "unable to checkout working tree"
msgstr "không thể lấy ra (checkout) cây làm việc"
-#: builtin/clone.c:833
+#: builtin/clone.c:832
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:896
+#: builtin/clone.c:895
msgid "cannot repack to clean up"
msgstr "không thể đóng gói để dá»n dẹp"
-#: builtin/clone.c:898
+#: builtin/clone.c:897
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:938 builtin/receive-pack.c:1950
+#: builtin/clone.c:937 builtin/receive-pack.c:1948
msgid "Too many arguments."
msgstr "Có quá nhiá»u đối số."
-#: builtin/clone.c:942
+#: builtin/clone.c:941
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:955
+#: builtin/clone.c:954
#, c-format
msgid "--bare and --origin %s options are incompatible."
msgstr "tùy chá»n --bare và --origin %s xung khắc nhau."
-#: builtin/clone.c:958
+#: builtin/clone.c:957
msgid "--bare and --separate-git-dir are incompatible."
msgstr "tùy chá»n --bare và --separate-git-dir xung khắc nhau."
-#: builtin/clone.c:971
+#: builtin/clone.c:970
#, c-format
msgid "repository '%s' does not exist"
msgstr "kho chứa “%s†chưa tồn tại"
-#: builtin/clone.c:977 builtin/fetch.c:1660
+#: builtin/clone.c:976 builtin/fetch.c:1790
#, 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:987
+#: builtin/clone.c:986
#, 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:997
+#: builtin/clone.c:996
#, 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:1012 builtin/clone.c:1033 builtin/difftool.c:264
-#: builtin/worktree.c:303 builtin/worktree.c:335
+#: builtin/clone.c:1011 builtin/clone.c:1032 builtin/difftool.c:271
+#: builtin/log.c:1785 builtin/worktree.c:302 builtin/worktree.c:334
#, 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:1017
+#: builtin/clone.c:1016
#, 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:1037
+#: builtin/clone.c:1036
#, 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:1039
+#: builtin/clone.c:1038
#, c-format
msgid "Cloning into '%s'...\n"
msgstr "Äang nhân bản thành “%sâ€â€¦\n"
-#: builtin/clone.c:1063
+#: builtin/clone.c:1062
msgid ""
"clone --recursive is not compatible with both --reference and --reference-if-"
"able"
@@ -11204,41 +11236,41 @@ msgstr ""
"nhân bản --recursive không tương thích với cả hai --reference và --reference-"
"if-able"
-#: builtin/clone.c:1124
+#: builtin/clone.c:1123
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:1126
+#: builtin/clone.c:1125
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:1128
+#: builtin/clone.c:1127
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:1130
+#: builtin/clone.c:1129
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:1133
+#: builtin/clone.c:1132
msgid "source repository is shallow, ignoring --local"
msgstr "kho nguồn là nông, nên bỠqua --local"
-#: builtin/clone.c:1138
+#: builtin/clone.c:1137
msgid "--local is ignored"
msgstr "--local bị lỠđi"
-#: builtin/clone.c:1215 builtin/clone.c:1223
+#: builtin/clone.c:1212 builtin/clone.c:1220
#, 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:1226
+#: builtin/clone.c:1223
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."
@@ -11316,7 +11348,7 @@ msgid "id of a parent commit object"
msgstr "mã số của đối tượng chuyển giao cha mẹ"
#: builtin/commit-tree.c:114 builtin/commit.c:1500 builtin/merge.c:270
-#: builtin/notes.c:409 builtin/notes.c:575 builtin/stash.c:1460
+#: builtin/notes.c:409 builtin/notes.c:575 builtin/stash.c:1469
#: builtin/tag.c:412
msgid "message"
msgstr "chú thích"
@@ -11330,7 +11362,7 @@ 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:121 builtin/commit.c:1512 builtin/merge.c:287
-#: builtin/pull.c:194 builtin/revert.c:118
+#: builtin/pull.c:195 builtin/revert.c:118
msgid "GPG sign commit"
msgstr "Ký lần chuyển giao dùng GPG"
@@ -11672,8 +11704,8 @@ msgstr "tính đầy đủ giá trị trước/sau"
msgid "version"
msgstr "phiên bản"
-#: builtin/commit.c:1347 builtin/commit.c:1529 builtin/push.c:561
-#: builtin/worktree.c:651
+#: builtin/commit.c:1347 builtin/commit.c:1529 builtin/push.c:548
+#: builtin/worktree.c:650
msgid "machine-readable output"
msgstr "kết xuất dạng máy-có-thể-Ä‘á»c"
@@ -11686,8 +11718,8 @@ msgid "terminate entries with NUL"
msgstr "chấm dứt các mục bằng NUL"
#: builtin/commit.c:1355 builtin/commit.c:1359 builtin/commit.c:1537
-#: builtin/fast-export.c:1125 builtin/fast-export.c:1128
-#: builtin/fast-export.c:1131 builtin/rebase.c:1471 parse-options.h:332
+#: builtin/fast-export.c:1153 builtin/fast-export.c:1156
+#: builtin/fast-export.c:1159 builtin/rebase.c:1495 parse-options.h:332
msgid "mode"
msgstr "chế độ"
@@ -11705,7 +11737,7 @@ 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:1362 parse-options.h:179
+#: builtin/commit.c:1362 parse-options.h:188
msgid "when"
msgstr "khi"
@@ -11758,7 +11790,7 @@ msgstr "tác giả"
msgid "override author for commit"
msgstr "ghi đè tác giả cho commit"
-#: builtin/commit.c:1499 builtin/gc.c:539
+#: builtin/commit.c:1499 builtin/gc.c:538
msgid "date"
msgstr "ngày tháng"
@@ -11795,8 +11827,8 @@ 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:1506 builtin/log.c:1564 builtin/merge.c:289
-#: builtin/pull.c:163 builtin/revert.c:110
+#: builtin/commit.c:1506 builtin/log.c:1565 builtin/merge.c:289
+#: builtin/pull.c:164 builtin/revert.c:110
msgid "add Signed-off-by:"
msgstr "(nên dùng) thêm dòng Signed-off-by:"
@@ -11906,75 +11938,78 @@ msgid "git commit-graph read [--object-dir <objdir>]"
msgstr "git commit-graph read [--object-dir <objdir>]"
#: builtin/commit-graph.c:13 builtin/commit-graph.c:19
-msgid "git commit-graph verify [--object-dir <objdir>] [--shallow]"
+msgid ""
+"git commit-graph verify [--object-dir <objdir>] [--shallow] [--[no-]progress]"
msgstr ""
-"git commit-graph verify [--object-dir </thư/mục/đối/tượng>] [--shallow]"
+"git commit-graph verify [--object-dir </thư/mục/đối/tượng>] [--shallow] [--"
+"[no-]progress]"
#: builtin/commit-graph.c:14 builtin/commit-graph.c:29
msgid ""
"git commit-graph write [--object-dir <objdir>] [--append|--split] [--"
-"reachable|--stdin-packs|--stdin-commits] <split options>"
+"reachable|--stdin-packs|--stdin-commits] [--[no-]progress] <split options>"
msgstr ""
"git commit-graph write [--object-dir </thư/mục/đối/tượng>] [--append|--"
-"split] [--reachable|--stdin-packs|--stdin-commits] <các tùy chá»n chia tách>"
+"split] [--reachable|--stdin-packs|--stdin-commits] [--[no-]progress] <các "
+"tùy chá»n chia tách>"
-#: builtin/commit-graph.c:54 builtin/commit-graph.c:100
-#: builtin/commit-graph.c:161 builtin/commit-graph.c:237 builtin/fetch.c:163
-#: builtin/log.c:1584
+#: builtin/commit-graph.c:55 builtin/commit-graph.c:107
+#: builtin/commit-graph.c:170 builtin/commit-graph.c:254 builtin/fetch.c:178
+#: builtin/log.c:1585
msgid "dir"
msgstr "tmục"
-#: builtin/commit-graph.c:55 builtin/commit-graph.c:101
-#: builtin/commit-graph.c:162 builtin/commit-graph.c:238
+#: builtin/commit-graph.c:56 builtin/commit-graph.c:108
+#: builtin/commit-graph.c:171 builtin/commit-graph.c:255
msgid "The object directory to store the graph"
msgstr "Thư mục đối tượng để lưu đồ thị"
-#: builtin/commit-graph.c:57
+#: builtin/commit-graph.c:58
msgid "if the commit-graph is split, only verify the tip file"
msgstr ""
"nếu đồ-thị-các-lần-chuyển-giao bị chia cắt, thì chỉ thẩm tra tập tin đỉnh"
-#: builtin/commit-graph.c:73 builtin/commit-graph.c:116
+#: builtin/commit-graph.c:80 builtin/commit-graph.c:125
#, c-format
msgid "Could not open commit-graph '%s'"
msgstr "Không thể mở đồ thị chuyển giao “%sâ€"
-#: builtin/commit-graph.c:164
+#: builtin/commit-graph.c:173
msgid "start walk at all refs"
msgstr "bắt đầu di chuyển tại má»i tham chiếu"
-#: builtin/commit-graph.c:166
+#: builtin/commit-graph.c:175
msgid "scan pack-indexes listed by stdin for commits"
msgstr ""
"quét dó các mục lục gói được liệt kê bởi đầu vào tiêu chuẩn cho các lần "
"chuyển giao"
-#: builtin/commit-graph.c:168
+#: builtin/commit-graph.c:177
msgid "start walk at commits listed by stdin"
msgstr ""
"bắt đầu di chuyển tại các lần chuyển giao được liệt kê bởi đầu vào tiêu chuẩn"
-#: builtin/commit-graph.c:170
+#: builtin/commit-graph.c:179
msgid "include all commits already in the commit-graph file"
msgstr ""
"bao gồm má»i lần chuyển giao đã sẵn có trongÆ°á»i tập tin đồ-thị-các-lần-chuyển-"
"giao"
-#: builtin/commit-graph.c:172
+#: builtin/commit-graph.c:182
msgid "allow writing an incremental commit-graph file"
msgstr "cho phép ghi má»™t tập tin đồ há»a các lần chuyển giao lá»›n lên"
-#: builtin/commit-graph.c:174 builtin/commit-graph.c:178
+#: builtin/commit-graph.c:184 builtin/commit-graph.c:188
msgid "maximum number of commits in a non-base split commit-graph"
msgstr ""
"số lượng tối đa của các lần chuyển giao trong một đồ-thị-các-lần-chuyển-giao "
"chia cắt không-cơ-sở"
-#: builtin/commit-graph.c:176
+#: builtin/commit-graph.c:186
msgid "maximum ratio between two levels of a split commit-graph"
msgstr "tỷ lệ tối đa giữa hai mức của một đồ-thị-các-lần-chuyển-giao chia cắt"
-#: builtin/commit-graph.c:191
+#: builtin/commit-graph.c:204
msgid "use at most one of --reachable, --stdin-commits, or --stdin-packs"
msgstr ""
"không thể sử dụng hơn một --reachable, --stdin-commits, hay --stdin-packs"
@@ -12292,57 +12327,57 @@ msgstr "git count-objects [-v] [-H | --human-readable]"
msgid "print sizes in human readable format"
msgstr "hiển thị kích cỡ theo định dạng dành cho ngÆ°á»i Ä‘á»c"
-#: builtin/describe.c:27
+#: builtin/describe.c:26
msgid "git describe [<options>] [<commit-ish>...]"
msgstr "git describe [<các tùy chá»n>] <commit-ish>*"
-#: builtin/describe.c:28
+#: builtin/describe.c:27
msgid "git describe [<options>] --dirty"
msgstr "git describe [<các tùy chá»n>] --dirty"
-#: builtin/describe.c:63
+#: builtin/describe.c:62
msgid "head"
msgstr "phía trước"
-#: builtin/describe.c:63
+#: builtin/describe.c:62
msgid "lightweight"
msgstr "hạng nhẹ"
-#: builtin/describe.c:63
+#: builtin/describe.c:62
msgid "annotated"
msgstr "có diễn giải"
-#: builtin/describe.c:273
+#: builtin/describe.c:275
#, c-format
msgid "annotated tag %s not available"
msgstr "thẻ đã được ghi chú %s không sẵn để dùng"
-#: builtin/describe.c:277
+#: builtin/describe.c:279
#, c-format
msgid "annotated tag %s has no embedded name"
msgstr "thẻ được chú giải %s không có tên nhúng"
-#: builtin/describe.c:279
+#: builtin/describe.c:281
#, c-format
msgid "tag '%s' is really '%s' here"
msgstr "thẻ “%s†đã thực sự ở đây “%s†rồi"
-#: builtin/describe.c:323
+#: builtin/describe.c:325
#, c-format
msgid "no tag exactly matches '%s'"
msgstr "không có thẻ nào khá»›p chính xác vá»›i “%sâ€"
-#: builtin/describe.c:325
+#: builtin/describe.c:327
#, c-format
msgid "No exact match on refs or tags, searching to describe\n"
msgstr "Không có tham chiếu hay thẻ khớp đúng, đang tìm kiếm mô tả\n"
-#: builtin/describe.c:379
+#: builtin/describe.c:381
#, c-format
msgid "finished search at %s\n"
msgstr "việc tìm kiếm đã kết thúc tại %s\n"
-#: builtin/describe.c:405
+#: builtin/describe.c:407
#, c-format
msgid ""
"No annotated tags can describe '%s'.\n"
@@ -12351,7 +12386,7 @@ msgstr ""
"Không có thẻ được chú giải nào được mô tả là “%sâ€.\n"
"Tuy nhiên, ở đây có những thẻ không được chú giải: hãy thử --tags."
-#: builtin/describe.c:409
+#: builtin/describe.c:411
#, c-format
msgid ""
"No tags can describe '%s'.\n"
@@ -12360,12 +12395,12 @@ msgstr ""
"Không có thẻ có thể mô tả “%sâ€.\n"
"Hãy thử --always, hoặc tạo một số thẻ."
-#: builtin/describe.c:439
+#: builtin/describe.c:441
#, c-format
msgid "traversed %lu commits\n"
msgstr "đã xuyên %lu qua lần chuyển giao\n"
-#: builtin/describe.c:442
+#: builtin/describe.c:444
#, c-format
msgid ""
"more than %i tags found; listed %i most recent\n"
@@ -12374,90 +12409,90 @@ msgstr ""
"tìm thấy nhiá»u hÆ¡n %i thẻ; đã liệt kê %i cái gần\n"
"đây nhất bỠđi tìm kiếm tại %s\n"
-#: builtin/describe.c:510
+#: builtin/describe.c:512
#, c-format
msgid "describe %s\n"
msgstr "mô tả %s\n"
-#: builtin/describe.c:513
+#: builtin/describe.c:515
#, c-format
msgid "Not a valid object name %s"
msgstr "Không phải tên đối tượng %s hợp lệ"
-#: builtin/describe.c:521
+#: builtin/describe.c:523
#, c-format
msgid "%s is neither a commit nor blob"
msgstr "%s không phải là một lần commit cũng không phải blob"
-#: builtin/describe.c:535
+#: builtin/describe.c:537
msgid "find the tag that comes after the commit"
msgstr "tìm các thẻ mà nó đến trước lần chuyển giao"
-#: builtin/describe.c:536
+#: builtin/describe.c:538
msgid "debug search strategy on stderr"
msgstr "chiến lược tìm kiếm gỡ lỗi trên đầu ra lỗi chuẩn stderr"
-#: builtin/describe.c:537
+#: builtin/describe.c:539
msgid "use any ref"
msgstr "dùng ref bất kỳ"
-#: builtin/describe.c:538
+#: builtin/describe.c:540
msgid "use any tag, even unannotated"
msgstr "dùng thẻ bất kỳ, cả khi “unannotatedâ€"
-#: builtin/describe.c:539
+#: builtin/describe.c:541
msgid "always use long format"
msgstr "luôn dùng định dạng dài"
-#: builtin/describe.c:540
+#: builtin/describe.c:542
msgid "only follow first parent"
msgstr "chỉ theo cha mẹ đầu tiên"
-#: builtin/describe.c:543
+#: builtin/describe.c:545
msgid "only output exact matches"
msgstr "chỉ xuất những gì khớp chính xác"
-#: builtin/describe.c:545
+#: builtin/describe.c:547
msgid "consider <n> most recent tags (default: 10)"
msgstr "coi như <n> thẻ gần đây nhất (mặc định: 10)"
-#: builtin/describe.c:547
+#: builtin/describe.c:549
msgid "only consider tags matching <pattern>"
msgstr "chỉ cân nhắc đến những thẻ khớp với <mẫu>"
-#: builtin/describe.c:549
+#: builtin/describe.c:551
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:551 builtin/name-rev.c:422
+#: builtin/describe.c:553 builtin/name-rev.c:426
msgid "show abbreviated commit object as fallback"
msgstr "hiển thị đối tượng chuyển giao vắn tắt như là fallback"
-#: builtin/describe.c:552 builtin/describe.c:555
+#: builtin/describe.c:554 builtin/describe.c:557
msgid "mark"
msgstr "dấu"
-#: builtin/describe.c:553
+#: builtin/describe.c:555
msgid "append <mark> on dirty working tree (default: \"-dirty\")"
msgstr "thêm <dấu> trên cây thư mục làm việc bẩn (mặc định \"-dirty\")"
-#: builtin/describe.c:556
+#: builtin/describe.c:558
msgid "append <mark> on broken working tree (default: \"-broken\")"
msgstr "thêm <dấu> trên cây thÆ° mục làm việc bị há»ng (mặc định \"-broken\")"
-#: builtin/describe.c:574
+#: builtin/describe.c:576
msgid "--long is incompatible with --abbrev=0"
msgstr "--long là xung khắc vá»›i tùy chá»n --abbrev=0"
-#: builtin/describe.c:603
+#: builtin/describe.c:605
msgid "No names found, cannot describe anything."
msgstr "Không tìm thấy các tên, không thể mô tả gì cả."
-#: builtin/describe.c:654
+#: builtin/describe.c:656
msgid "--dirty is incompatible with commit-ishes"
msgstr "--dirty là xung khắc vá»›i các tùy chá»n commit-ish"
-#: builtin/describe.c:656
+#: builtin/describe.c:658
msgid "--broken is incompatible with commit-ishes"
msgstr "--broken là xung khắc với commit-ishes"
@@ -12496,27 +12531,27 @@ msgstr ""
"git difftool [<các tùy chá»n>] [<lần_chuyển_giao> [<lần_chuyển_giao>]] [--] </"
"Ä‘Æ°á»ng/dẫn>…]"
-#: builtin/difftool.c:253
+#: builtin/difftool.c:260
#, c-format
msgid "failed: %d"
msgstr "gặp lỗi: %d"
-#: builtin/difftool.c:295
+#: builtin/difftool.c:302
#, c-format
msgid "could not read symlink %s"
msgstr "không thể Ä‘á»c liên kết má»m %s"
-#: builtin/difftool.c:297
+#: builtin/difftool.c:304
#, c-format
msgid "could not read symlink file %s"
msgstr "không Ä‘á»c được tập tin liên kết má»m %s"
-#: builtin/difftool.c:305
+#: builtin/difftool.c:312
#, c-format
msgid "could not read object %s for symlink %s"
msgstr "không thể Ä‘á»c đối tượng %s cho liên kết má»m %s"
-#: builtin/difftool.c:406
+#: builtin/difftool.c:413
msgid ""
"combined diff formats('-c' and '--cc') are not supported in\n"
"directory diff mode('-d' and '--dir-diff')."
@@ -12524,53 +12559,53 @@ msgstr ""
"các định dạng diff tổ hợp(“-c†và “--ccâ€) chÆ°a được há»— trợ trong\n"
"chế Ä‘á»™ diff thÆ° mục(“-d†và “--dir-diffâ€)."
-#: builtin/difftool.c:626
+#: builtin/difftool.c:634
#, c-format
msgid "both files modified: '%s' and '%s'."
msgstr "cả hai tập tin đã bị sá»­a: “%s†và “%sâ€."
-#: builtin/difftool.c:628
+#: builtin/difftool.c:636
msgid "working tree file has been left."
msgstr "cây làm việc ở bên trái."
-#: builtin/difftool.c:639
+#: builtin/difftool.c:647
#, c-format
msgid "temporary files exist in '%s'."
msgstr "các tập tin tạm đã sẵn có trong “%sâ€."
-#: builtin/difftool.c:640
+#: builtin/difftool.c:648
msgid "you may want to cleanup or recover these."
msgstr "bạn có lẽ muốn dá»n dẹp hay phục hồi ở đây."
-#: builtin/difftool.c:689
+#: builtin/difftool.c:697
msgid "use `diff.guitool` instead of `diff.tool`"
msgstr "dùng “diff.guitool“ thay vì dùng “diff.tool“"
-#: builtin/difftool.c:691
+#: builtin/difftool.c:699
msgid "perform a full-directory diff"
msgstr "thực hiện một diff toàn thư mục"
-#: builtin/difftool.c:693
+#: builtin/difftool.c:701
msgid "do not prompt before launching a diff tool"
msgstr "đừng nhắc khi khởi chạy công cụ diff"
-#: builtin/difftool.c:698
+#: builtin/difftool.c:706
msgid "use symlinks in dir-diff mode"
msgstr "dùng liên kết má»m trong diff-thÆ°-mục"
-#: builtin/difftool.c:699
+#: builtin/difftool.c:707
msgid "tool"
msgstr "công cụ"
-#: builtin/difftool.c:700
+#: builtin/difftool.c:708
msgid "use the specified diff tool"
msgstr "dùng công cụ diff đã cho"
-#: builtin/difftool.c:702
+#: builtin/difftool.c:710
msgid "print a list of diff tools that may be used with `--tool`"
msgstr "in ra danh sách các công cụ dif cái mà có thẻ dùng với “--tool“"
-#: builtin/difftool.c:705
+#: builtin/difftool.c:713
msgid ""
"make 'git-difftool' exit when an invoked diff tool returns a non - zero exit "
"code"
@@ -12578,31 +12613,31 @@ msgstr ""
"làm cho “git-difftool†thoát khi gá»i công cụ diff trả vá» mã không phải số "
"không"
-#: builtin/difftool.c:708
+#: builtin/difftool.c:716
msgid "specify a custom command for viewing diffs"
msgstr "chỉ định một lệnh tùy ý để xem diff"
-#: builtin/difftool.c:709
+#: builtin/difftool.c:717
msgid "passed to `diff`"
msgstr "chuyển cho “diffâ€"
-#: builtin/difftool.c:724
+#: builtin/difftool.c:732
msgid "difftool requires worktree or --no-index"
msgstr "difftool cần cây làm việc hoặc --no-index"
-#: builtin/difftool.c:731
+#: builtin/difftool.c:739
msgid "--dir-diff is incompatible with --no-index"
msgstr "--dir-diff xung khắc với --no-index"
-#: builtin/difftool.c:734
+#: builtin/difftool.c:742
msgid "--gui, --tool and --extcmd are mutually exclusive"
msgstr "--gui, --tool và --extcmd loại từ lẫn nhau"
-#: builtin/difftool.c:742
+#: builtin/difftool.c:750
msgid "no <tool> given for --tool=<tool>"
msgstr "chưa đưa ra <công_cụ> cho --tool=<công_cụ>"
-#: builtin/difftool.c:749
+#: builtin/difftool.c:757
msgid "no <cmd> given for --extcmd=<cmd>"
msgstr "chưa đưa ra <lệnh> cho --extcmd=<lệnh>"
@@ -12641,160 +12676,184 @@ msgstr ""
msgid "git fast-export [rev-list-opts]"
msgstr "git fast-export [rev-list-opts]"
-#: builtin/fast-export.c:1124
+#: builtin/fast-export.c:852
+msgid "Error: Cannot export nested tags unless --mark-tags is specified."
+msgstr "Lỗi: không thể xuất thẻ lồng nhau trừ khi --mark-tags được chỉ định."
+
+#: builtin/fast-export.c:1152
msgid "show progress after <n> objects"
msgstr "hiển thị tiến triển sau <n> đối tượng"
-#: builtin/fast-export.c:1126
+#: builtin/fast-export.c:1154
msgid "select handling of signed tags"
msgstr "chá»n Ä‘iá»u khiển của thẻ đã ký"
-#: builtin/fast-export.c:1129
+#: builtin/fast-export.c:1157
msgid "select handling of tags that tag filtered objects"
msgstr "chá»n sá»± xá»­ lý của các thẻ, cái mà đánh thẻ các đối tượng được lá»c ra"
-#: builtin/fast-export.c:1132
+#: builtin/fast-export.c:1160
msgid "select handling of commit messages in an alternate encoding"
msgstr ""
"chá»n bá»™ xá»­ lý cho các ghi chú của lần chuyển giao theo má»™t bá»™ mã thay thế"
-#: builtin/fast-export.c:1135
+#: builtin/fast-export.c:1163
msgid "Dump marks to this file"
msgstr "Äổ các đánh dấu này vào tập-tin"
-#: builtin/fast-export.c:1137
+#: builtin/fast-export.c:1165
msgid "Import marks from this file"
msgstr "Nhập vào đánh dấu từ tập tin này"
-#: builtin/fast-export.c:1139
+#: builtin/fast-export.c:1169
+msgid "Import marks from this file if it exists"
+msgstr "Nhập vào đánh dấu từ tập tin sẵn có"
+
+#: builtin/fast-export.c:1171
msgid "Fake a tagger when tags lack one"
msgstr "Làm giả một cái thẻ khi thẻ bị thiếu một cái"
-#: builtin/fast-export.c:1141
+#: builtin/fast-export.c:1173
msgid "Output full tree for each commit"
msgstr "Xuất ra toàn bộ cây cho mỗi lần chuyển giao"
-#: builtin/fast-export.c:1143
+#: builtin/fast-export.c:1175
msgid "Use the done feature to terminate the stream"
msgstr "Sử dụng tính năng done để chấm dứt luồng dữ liệu"
-#: builtin/fast-export.c:1144
+#: builtin/fast-export.c:1176
msgid "Skip output of blob data"
msgstr "BỠqua kết xuất của dữ liệu blob"
-#: builtin/fast-export.c:1145 builtin/log.c:1632
+#: builtin/fast-export.c:1177 builtin/log.c:1633
msgid "refspec"
msgstr "refspec"
-#: builtin/fast-export.c:1146
+#: builtin/fast-export.c:1178
msgid "Apply refspec to exported refs"
msgstr "Ãp dụng refspec cho refs đã xuất"
-#: builtin/fast-export.c:1147
+#: builtin/fast-export.c:1179
msgid "anonymize output"
msgstr "kết xuất anonymize"
-#: builtin/fast-export.c:1149
+#: builtin/fast-export.c:1181
msgid "Reference parents which are not in fast-export stream by object id"
msgstr ""
"Các cha mẹ tham chiếu cái mà k trong luồng dữ liệu fast-export bởi mã id đối "
"tượng"
-#: builtin/fast-export.c:1151
+#: builtin/fast-export.c:1183
msgid "Show original object ids of blobs/commits"
msgstr "Hiển thị các mã id nguyên gốc của blobs/commits"
-#: builtin/fetch.c:30
+#: builtin/fast-export.c:1185
+msgid "Label tags with mark ids"
+msgstr "Gắn nhãn thẻ ID dấu"
+
+#: builtin/fast-export.c:1220
+msgid "Cannot pass both --import-marks and --import-marks-if-exists"
+msgstr "Không thể chuyển qua cả hai --import-marks và --import-marks-if-exists"
+
+#: builtin/fetch.c:34
msgid "git fetch [<options>] [<repository> [<refspec>...]]"
msgstr "git fetch [<các tùy chá»n>] [<kho-chứa> [<refspec>…]]"
-#: builtin/fetch.c:31
+#: builtin/fetch.c:35
msgid "git fetch [<options>] <group>"
msgstr "git fetch [<các tùy chá»n>] [<nhóm>"
-#: builtin/fetch.c:32
+#: builtin/fetch.c:36
msgid "git fetch --multiple [<options>] [(<repository> | <group>)...]"
msgstr "git fetch --multiple [<các tùy chá»n>] [(<kho> | <nhóm>)…]"
-#: builtin/fetch.c:33
+#: builtin/fetch.c:37
msgid "git fetch --all [<options>]"
msgstr "git fetch --all [<các tùy chá»n>]"
-#: builtin/fetch.c:125 builtin/pull.c:203
+#: builtin/fetch.c:115
+msgid "fetch.parallel cannot be negative"
+msgstr "fetch.parallel không thể âm"
+
+#: builtin/fetch.c:138 builtin/pull.c:204
msgid "fetch from all remotes"
msgstr "lấy vỠtừ tất cả các máy chủ"
-#: builtin/fetch.c:127 builtin/pull.c:206
+#: builtin/fetch.c:140 builtin/pull.c:248
+msgid "set upstream for git pull/fetch"
+msgstr "đặt thượng nguồn cho git pull/fetch"
+
+#: builtin/fetch.c:142 builtin/pull.c:207
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:129 builtin/pull.c:209
+#: builtin/fetch.c:144 builtin/pull.c:210
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:130
+#: builtin/fetch.c:145
msgid "force overwrite of local reference"
msgstr "ép buộc ghi đè lên tham chiếu nội bộ"
-#: builtin/fetch.c:132
+#: builtin/fetch.c:147
msgid "fetch from multiple remotes"
msgstr "lấy từ nhiá»u máy chủ cùng lúc"
-#: builtin/fetch.c:134 builtin/pull.c:213
+#: builtin/fetch.c:149 builtin/pull.c:214
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:136
+#: builtin/fetch.c:151
msgid "do not fetch all tags (--no-tags)"
msgstr "không lấy tất cả các thẻ (--no-tags)"
-#: builtin/fetch.c:138
+#: builtin/fetch.c:153
msgid "number of submodules fetched in parallel"
msgstr "số lượng mô-Ä‘un-con được lấy đồng thá»i"
-#: builtin/fetch.c:140 builtin/pull.c:216
+#: builtin/fetch.c:155 builtin/pull.c:217
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:142
+#: builtin/fetch.c:157
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:143 builtin/fetch.c:166 builtin/pull.c:140
+#: builtin/fetch.c:158 builtin/fetch.c:181 builtin/pull.c:141
msgid "on-demand"
msgstr "khi-cần"
-#: builtin/fetch.c:144
+#: builtin/fetch.c:159
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:148 builtin/pull.c:224
+#: builtin/fetch.c:163 builtin/pull.c:225
msgid "keep downloaded pack"
msgstr "giữ lại gói đã tải vá»"
-#: builtin/fetch.c:150
+#: builtin/fetch.c:165
msgid "allow updating of HEAD ref"
msgstr "cho phép cập nhật th.chiếu HEAD"
-#: builtin/fetch.c:153 builtin/fetch.c:159 builtin/pull.c:227
+#: builtin/fetch.c:168 builtin/fetch.c:174 builtin/pull.c:228
msgid "deepen history of shallow clone"
msgstr "làm sâu hơn lịch sử của bản sao"
-#: builtin/fetch.c:155
+#: builtin/fetch.c:170
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:161 builtin/pull.c:230
+#: builtin/fetch.c:176 builtin/pull.c:231
msgid "convert to a complete repository"
msgstr "chuyển đổi hoàn toàn sang kho git"
-#: builtin/fetch.c:164
+#: builtin/fetch.c:179
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:167
+#: builtin/fetch.c:182
msgid ""
"default for recursive fetching of submodules (lower priority than config "
"files)"
@@ -12802,91 +12861,91 @@ 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:171 builtin/pull.c:233
+#: builtin/fetch.c:186 builtin/pull.c:234
msgid "accept refs that update .git/shallow"
msgstr "chấp nhận tham chiếu cập nhật .git/shallow"
-#: builtin/fetch.c:172 builtin/pull.c:235
+#: builtin/fetch.c:187 builtin/pull.c:236
msgid "refmap"
msgstr "refmap"
-#: builtin/fetch.c:173 builtin/pull.c:236
+#: builtin/fetch.c:188 builtin/pull.c:237
msgid "specify fetch refmap"
msgstr "chỉ ra refmap cần lấy vá»"
-#: builtin/fetch.c:180
+#: builtin/fetch.c:195
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:183
+#: builtin/fetch.c:198
msgid "run 'gc --auto' after fetching"
msgstr "chạy 'gc --auto' sau khi lấy vá»"
-#: builtin/fetch.c:185 builtin/pull.c:245
+#: builtin/fetch.c:200 builtin/pull.c:246
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:491
+#: builtin/fetch.c:510
msgid "Couldn't find remote ref HEAD"
msgstr "Không thể tìm thấy máy chủ cho tham chiếu HEAD"
-#: builtin/fetch.c:630
+#: builtin/fetch.c:650
#, 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:728
+#: builtin/fetch.c:748
#, c-format
msgid "object %s not found"
msgstr "không tìm thấy đối tượng %s"
-#: builtin/fetch.c:732
+#: builtin/fetch.c:752
msgid "[up to date]"
msgstr "[đã cập nhật]"
-#: builtin/fetch.c:745 builtin/fetch.c:761 builtin/fetch.c:833
+#: builtin/fetch.c:765 builtin/fetch.c:781 builtin/fetch.c:853
msgid "[rejected]"
msgstr "[Bị từ chối]"
-#: builtin/fetch.c:746
+#: builtin/fetch.c:766
msgid "can't fetch in current branch"
msgstr "không thể fetch (lấy) vỠnhánh hiện hành"
-#: builtin/fetch.c:756
+#: builtin/fetch.c:776
msgid "[tag update]"
msgstr "[cập nhật thẻ]"
-#: builtin/fetch.c:757 builtin/fetch.c:794 builtin/fetch.c:816
-#: builtin/fetch.c:828
+#: builtin/fetch.c:777 builtin/fetch.c:814 builtin/fetch.c:836
+#: builtin/fetch.c:848
msgid "unable to update local ref"
msgstr "không thể cập nhật tham chiếu nội bộ"
-#: builtin/fetch.c:761
+#: builtin/fetch.c:781
msgid "would clobber existing tag"
msgstr "nên xóa chồng các thẻ có sẵn"
-#: builtin/fetch.c:783
+#: builtin/fetch.c:803
msgid "[new tag]"
msgstr "[thẻ mới]"
-#: builtin/fetch.c:786
+#: builtin/fetch.c:806
msgid "[new branch]"
msgstr "[nhánh mới]"
-#: builtin/fetch.c:789
+#: builtin/fetch.c:809
msgid "[new ref]"
msgstr "[ref (tham chiếu) mới]"
-#: builtin/fetch.c:828
+#: builtin/fetch.c:848
msgid "forced update"
msgstr "cưỡng bức cập nhật"
-#: builtin/fetch.c:833
+#: builtin/fetch.c:853
msgid "non-fast-forward"
msgstr "không-phải-chuyển-tiếp-nhanh"
-#: builtin/fetch.c:854
+#: builtin/fetch.c:874
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"
@@ -12896,7 +12955,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:858
+#: builtin/fetch.c:878
#, c-format
msgid ""
"It took %.2f seconds to check forced updates. You can use\n"
@@ -12909,22 +12968,22 @@ msgstr ""
"false'\n"
"để tránh kiểm tra này.\n"
-#: builtin/fetch.c:888
+#: builtin/fetch.c:908
#, 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:909
+#: builtin/fetch.c:929
#, c-format
msgid "reject %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:1000 builtin/fetch.c:1131
+#: builtin/fetch.c:1020 builtin/fetch.c:1157
#, c-format
msgid "From %.*s\n"
msgstr "Từ %.*s\n"
-#: builtin/fetch.c:1011
+#: builtin/fetch.c:1031
#, c-format
msgid ""
"some local refs could not be updated; try running\n"
@@ -12933,60 +12992,81 @@ 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:1101
+#: builtin/fetch.c:1127
#, 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:1102
+#: builtin/fetch.c:1128
#, c-format
msgid " (%s has become dangling)"
msgstr " (%s đã trở thành không đầu (không được quản lý))"
-#: builtin/fetch.c:1134
+#: builtin/fetch.c:1160
msgid "[deleted]"
msgstr "[đã xóa]"
-#: builtin/fetch.c:1135 builtin/remote.c:1036
+#: builtin/fetch.c:1161 builtin/remote.c:1036
msgid "(none)"
msgstr "(không)"
-#: builtin/fetch.c:1158
+#: builtin/fetch.c:1184
#, c-format
msgid "Refusing to fetch into current branch %s of non-bare repository"
msgstr ""
"Từ chối việc lấy vào trong nhánh hiện tại %s của một kho chứa không phải kho "
"trần (bare)"
-#: builtin/fetch.c:1177
+#: builtin/fetch.c:1203
#, 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:1180
+#: builtin/fetch.c:1206
#, 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:1484
+#: builtin/fetch.c:1414
+msgid "multiple branch 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:1429
+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:1431
+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:1433
+msgid "unknown branch type"
+msgstr "không hiểu kiểu nhánh"
+
+#: builtin/fetch.c:1435
+msgid ""
+"no source branch found.\n"
+"you need to specify exactly one branch with the --set-upstream option."
+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:1561 builtin/fetch.c:1623
#, c-format
msgid "Fetching %s\n"
msgstr "Äang lấy “%s†vá»\n"
-#: builtin/fetch.c:1486 builtin/remote.c:100
+#: builtin/fetch.c:1571 builtin/fetch.c:1625 builtin/remote.c:100
#, c-format
msgid "Could not fetch %s"
msgstr "Không thể lấy“%s†vá»"
-#: builtin/fetch.c:1532
-msgid ""
-"--filter can only be used with the remote configured in extensions."
-"partialClone"
-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:1583
+#, 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:1556
+#: builtin/fetch.c:1685
msgid ""
"No remote repository specified. Please, specify either a URL or a\n"
"remote name from which new revisions should be fetched."
@@ -12994,44 +13074,44 @@ 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:1593
+#: builtin/fetch.c:1722
msgid "You need to specify a tag name."
msgstr "Bạn phải định rõ tên thẻ."
-#: builtin/fetch.c:1644
+#: builtin/fetch.c:1774
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:1646
+#: builtin/fetch.c:1776
msgid "--deepen and --depth are mutually exclusive"
msgstr "Các tùy chá»n--deepen và --depth loại từ lẫn nhau"
-#: builtin/fetch.c:1651
+#: builtin/fetch.c:1781
msgid "--depth and --unshallow cannot be used together"
msgstr "tùy chá»n --depth và --unshallow không thể sá»­ dụng cùng vá»›i nhau"
-#: builtin/fetch.c:1653
+#: builtin/fetch.c:1783
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:1669
+#: builtin/fetch.c:1799
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:1671
+#: builtin/fetch.c:1801
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:1680
+#: builtin/fetch.c:1810
#, 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:1687
+#: builtin/fetch.c:1817
msgid "Fetching a group and specifying refspecs does not make sense"
msgstr "Việc lấy vỠcả một nhóm và chỉ định refspecs không hợp lý"
-#: builtin/fetch.c:1703
+#: builtin/fetch.c:1835
msgid ""
"--filter can only be used with the remote configured in extensions."
"partialclone"
@@ -13371,7 +13451,7 @@ 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/gc.c:34
+#: builtin/gc.c:35
msgid "git gc [<options>]"
msgstr "git gc [<các tùy chá»n>]"
@@ -13385,17 +13465,17 @@ msgstr "Gặp lỗi khi lấy thông tin thống kê vỠtập tin %s: %s"
msgid "failed to parse '%s' value '%s'"
msgstr "gặp lá»—i khi phân tích “%s†giá trị “%sâ€"
-#: builtin/gc.c:476 builtin/init-db.c:55
+#: builtin/gc.c:475 builtin/init-db.c:55
#, c-format
msgid "cannot stat '%s'"
msgstr "không thể lấy thông tin thống kê vỠ“%sâ€"
-#: builtin/gc.c:485 builtin/notes.c:240 builtin/tag.c:529
+#: builtin/gc.c:484 builtin/notes.c:240 builtin/tag.c:529
#, c-format
msgid "cannot read '%s'"
msgstr "không thể Ä‘á»c “%sâ€"
-#: builtin/gc.c:492
+#: builtin/gc.c:491
#, c-format
msgid ""
"The last gc run reported the following. Please correct the root cause\n"
@@ -13410,54 +13490,54 @@ msgstr ""
"\n"
"%s"
-#: builtin/gc.c:540
+#: builtin/gc.c:539
msgid "prune unreferenced objects"
msgstr "xóa bỠcác đối tượng không được tham chiếu"
-#: builtin/gc.c:542
+#: builtin/gc.c:541
msgid "be more thorough (increased runtime)"
msgstr "cẩn thận hÆ¡n nữa (tăng thá»i gian chạy)"
-#: builtin/gc.c:543
+#: builtin/gc.c:542
msgid "enable auto-gc mode"
msgstr "bật chế độ auto-gc"
-#: builtin/gc.c:546
+#: builtin/gc.c:545
msgid "force running gc even if there may be another gc running"
msgstr "buộc gc chạy ngay cả khi có tiến trình gc khác đang chạy"
-#: builtin/gc.c:549
+#: builtin/gc.c:548
msgid "repack all other packs except the largest pack"
msgstr "đóng gói lại tất cả các gói khác ngoại trừ gói lớn nhất"
-#: builtin/gc.c:566
+#: builtin/gc.c:565
#, c-format
msgid "failed to parse gc.logexpiry value %s"
msgstr "gặp lỗi khi phân tích giá trị gc.logexpiry %s"
-#: builtin/gc.c:577
+#: builtin/gc.c:576
#, c-format
msgid "failed to parse prune expiry value %s"
msgstr "gặp lỗi khi phân tích giá trị prune %s"
-#: builtin/gc.c:597
+#: builtin/gc.c:596
#, c-format
msgid "Auto packing the repository in background for optimum performance.\n"
msgstr ""
"Tá»± Ä‘á»™ng đóng gói kho chứa trên ná»n hệ thống để tối Æ°u hóa hiệu suất làm "
"việc.\n"
-#: builtin/gc.c:599
+#: builtin/gc.c:598
#, c-format
msgid "Auto packing the repository for optimum performance.\n"
msgstr "Tự động đóng gói kho chứa để tối ưu hóa hiệu suất làm việc.\n"
-#: builtin/gc.c:600
+#: builtin/gc.c:599
#, c-format
msgid "See \"git help gc\" for manual housekeeping.\n"
msgstr "Xem \"git help gc\" để có hÆ°á»›ng dẫn cụ thể vá» cách dá»n dẹp kho git.\n"
-#: builtin/gc.c:640
+#: builtin/gc.c:639
#, c-format
msgid ""
"gc is already running on machine '%s' pid %<PRIuMAX> (use --force if not)"
@@ -13465,7 +13545,7 @@ msgstr ""
"gc đang được thực hiện trên máy “%s†pid %<PRIuMAX> (dùng --force nếu không "
"phải thế)"
-#: builtin/gc.c:695
+#: builtin/gc.c:694
msgid ""
"There are too many unreachable loose objects; run 'git prune' to remove them."
msgstr ""
@@ -13491,258 +13571,258 @@ msgstr "số tuyến đã cho không hợp lệ (%d) cho %s"
#. grep.threads
#.
#: builtin/grep.c:287 builtin/index-pack.c:1534 builtin/index-pack.c:1727
-#: builtin/pack-objects.c:2728
+#: builtin/pack-objects.c:2708
#, c-format
msgid "no threads support, ignoring %s"
msgstr "không hỗ trợ đa tuyến, bỠqua %s"
-#: builtin/grep.c:467 builtin/grep.c:591 builtin/grep.c:633
+#: builtin/grep.c:467 builtin/grep.c:592 builtin/grep.c:635
#, c-format
msgid "unable to read tree (%s)"
msgstr "không thể Ä‘á»c cây (%s)"
-#: builtin/grep.c:648
+#: builtin/grep.c:650
#, 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:714
+#: builtin/grep.c:716
#, 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:813
+#: builtin/grep.c:815
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:815
+#: builtin/grep.c:817
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:817
+#: builtin/grep.c:819
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:819
+#: builtin/grep.c:821
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:821
+#: builtin/grep.c:823
msgid "recursively search in each submodule"
msgstr "tìm kiếm đệ quy trong từng mô-đun-con"
-#: builtin/grep.c:824
+#: builtin/grep.c:826
msgid "show non-matching lines"
msgstr "hiển thị những dòng không khớp với mẫu"
-#: builtin/grep.c:826
+#: builtin/grep.c:828
msgid "case insensitive matching"
msgstr "phân biệt HOA/thÆ°á»ng"
-#: builtin/grep.c:828
+#: builtin/grep.c:830
msgid "match patterns only at word boundaries"
msgstr "chỉ khá»›p mẫu tại Ä‘Æ°á»ng ranh giá»›i từ"
-#: builtin/grep.c:830
+#: builtin/grep.c:832
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:832
+#: builtin/grep.c:834
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:835
+#: builtin/grep.c:837
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:837
+#: builtin/grep.c:839
msgid "search in subdirectories (default)"
msgstr "tìm kiếm trong thư mục con (mặc định)"
-#: builtin/grep.c:839
+#: builtin/grep.c:841
msgid "descend at most <depth> levels"
msgstr "hạ xuống ít nhất là mức <sâu>"
-#: builtin/grep.c:843
+#: builtin/grep.c:845
msgid "use extended POSIX regular expressions"
msgstr "dùng biểu thức chính qui POSIX có mở rộng"
-#: builtin/grep.c:846
+#: builtin/grep.c:848
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:849
+#: builtin/grep.c:851
msgid "interpret patterns as fixed strings"
msgstr "diễn dịch các mẫu như là chuỗi cố định"
-#: builtin/grep.c:852
+#: builtin/grep.c:854
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:855
+#: builtin/grep.c:857
msgid "show line numbers"
msgstr "hiển thị số của dòng"
-#: builtin/grep.c:856
+#: builtin/grep.c:858
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:857
+#: builtin/grep.c:859
msgid "don't show filenames"
msgstr "không hiển thị tên tập tin"
-#: builtin/grep.c:858
+#: builtin/grep.c:860
msgid "show filenames"
msgstr "hiển thị các tên tập tin"
-#: builtin/grep.c:860
+#: builtin/grep.c:862
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:862
+#: builtin/grep.c:864
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:864
+#: builtin/grep.c:866
msgid "synonym for --files-with-matches"
msgstr "đồng nghĩa với --files-with-matches"
-#: builtin/grep.c:867
+#: builtin/grep.c:869
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:869
+#: builtin/grep.c:871
msgid "print NUL after filenames"
msgstr "thêm NUL vào sau tên tập tin"
-#: builtin/grep.c:872
+#: builtin/grep.c:874
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:874
+#: builtin/grep.c:876
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:875
+#: builtin/grep.c:877
msgid "highlight matches"
msgstr "tô sáng phần khớp mẫu"
-#: builtin/grep.c:877
+#: builtin/grep.c:879
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:879
+#: builtin/grep.c:881
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:882
+#: builtin/grep.c:884
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:885
+#: builtin/grep.c:887
msgid "show <n> context lines before matches"
msgstr "hiển thị <n> dòng nội dung trước khớp"
-#: builtin/grep.c:887
+#: builtin/grep.c:889
msgid "show <n> context lines after matches"
msgstr "hiển thị <n> dòng nội dung sau khớp"
-#: builtin/grep.c:889
+#: builtin/grep.c:891
msgid "use <n> worker threads"
msgstr "dùng <n> tuyến trình làm việc"
-#: builtin/grep.c:890
+#: builtin/grep.c:892
msgid "shortcut for -C NUM"
msgstr "dạng viết tắt của -C Sá»"
-#: builtin/grep.c:893
+#: builtin/grep.c:895
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:895
+#: builtin/grep.c:897
msgid "show the surrounding function"
msgstr "hiển thị hàm bao quanh"
-#: builtin/grep.c:898
+#: builtin/grep.c:900
msgid "read patterns from file"
msgstr "Ä‘á»c mẫu từ tập-tin"
-#: builtin/grep.c:900
+#: builtin/grep.c:902
msgid "match <pattern>"
msgstr "match <mẫu>"
-#: builtin/grep.c:902
+#: builtin/grep.c:904
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:914
+#: builtin/grep.c:916
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:916
+#: builtin/grep.c:918
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:918
+#: builtin/grep.c:920
msgid "show parse tree for grep expression"
msgstr "hiển thị cây phân tích cú pháp cho biểu thức “grep†(tìm kiếm)"
-#: builtin/grep.c:922
+#: builtin/grep.c:924
msgid "pager"
msgstr "dàn trang"
-#: builtin/grep.c:922
+#: builtin/grep.c:924
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:926
+#: builtin/grep.c:928
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:990
+#: builtin/grep.c:992
msgid "no pattern given"
msgstr "chưa chỉ ra mẫu"
-#: builtin/grep.c:1026
+#: builtin/grep.c:1028
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:1034
+#: builtin/grep.c:1036
#, 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:1065
+#: builtin/grep.c:1067
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:1068 builtin/pack-objects.c:3416
+#: builtin/grep.c:1070 builtin/pack-objects.c:3400
msgid "no threads support, ignoring --threads"
msgstr "không hỗ trợ đa tuyến, bỠqua --threads"
-#: builtin/grep.c:1071 builtin/index-pack.c:1531 builtin/pack-objects.c:2725
+#: builtin/grep.c:1073 builtin/index-pack.c:1531 builtin/pack-objects.c:2705
#, c-format
msgid "invalid number of threads specified (%d)"
msgstr "số tuyến chỉ ra không hợp lệ (%d)"
-#: builtin/grep.c:1094
+#: builtin/grep.c:1096
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:1117
+#: builtin/grep.c:1119
msgid "option not supported with --recurse-submodules"
msgstr "tùy chá»n không được há»— trợ vá»›i --recurse-submodules"
-#: builtin/grep.c:1123
+#: builtin/grep.c:1125
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:1129
+#: builtin/grep.c:1131
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:1137
+#: builtin/grep.c:1139
msgid "both --cached and trees are given"
msgstr "cả hai --cached và các cây phải được chỉ ra"
@@ -14052,7 +14132,7 @@ msgstr "lộn xộn hơn cả điên rồ khi chạy hàm parse_pack_objects()"
msgid "Resolving deltas"
msgstr "Äang phân giải các delta"
-#: builtin/index-pack.c:1205 builtin/pack-objects.c:2497
+#: builtin/index-pack.c:1205 builtin/pack-objects.c:2481
#, c-format
msgid "unable to create thread: %s"
msgstr "không thể tạo tuyến: %s"
@@ -14115,7 +14195,7 @@ msgstr "không thể lưu tập tin gói"
msgid "cannot store index file"
msgstr "không thể lưu trữ tập tin ghi mục lục"
-#: builtin/index-pack.c:1525 builtin/pack-objects.c:2736
+#: builtin/index-pack.c:1525 builtin/pack-objects.c:2716
#, c-format
msgid "bad pack.indexversion=%<PRIu32>"
msgstr "sai pack.indexversion=%<PRIu32>"
@@ -14394,74 +14474,74 @@ msgstr "Kết xuất cuối cùng: %d %s\n"
msgid "git show %s: bad file"
msgstr "git show %s: sai tập tin"
-#: builtin/log.c:549 builtin/log.c:643
+#: builtin/log.c:549 builtin/log.c:644
#, c-format
msgid "could not read object %s"
msgstr "không thể Ä‘á»c đối tượng %s"
-#: builtin/log.c:668
+#: builtin/log.c:669
#, c-format
msgid "unknown type: %d"
msgstr "không nhận ra kiểu: %d"
-#: builtin/log.c:791
+#: builtin/log.c:792
msgid "format.headers without value"
msgstr "format.headers không có giá trị cụ thể"
-#: builtin/log.c:908
+#: builtin/log.c:909
msgid "name of output directory is too long"
msgstr "tên của thư mục kết xuất quá dài"
-#: builtin/log.c:924
+#: builtin/log.c:925
#, c-format
msgid "cannot open patch file %s"
msgstr "không thể mở tập tin miếng vá: %s"
-#: builtin/log.c:941
+#: builtin/log.c:942
msgid "need exactly one range"
msgstr "cần chính xác một vùng"
-#: builtin/log.c:951
+#: builtin/log.c:952
msgid "not a range"
msgstr "không phải là một vùng"
-#: builtin/log.c:1074
+#: builtin/log.c:1075
msgid "cover letter needs email format"
msgstr "“cover letter†cần cho định dạng thư"
-#: builtin/log.c:1080
+#: builtin/log.c:1081
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:1159
+#: builtin/log.c:1160
#, c-format
msgid "insane in-reply-to: %s"
msgstr "in-reply-to điên rồ: %s"
-#: builtin/log.c:1186
+#: builtin/log.c:1187
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:1244
+#: builtin/log.c:1245
msgid "two output directories?"
msgstr "hai thư mục kết xuất?"
-#: builtin/log.c:1355 builtin/log.c:2099 builtin/log.c:2101 builtin/log.c:2113
+#: builtin/log.c:1356 builtin/log.c:2116 builtin/log.c:2118 builtin/log.c:2130
#, c-format
msgid "unknown commit %s"
msgstr "không hiểu lần chuyển giao %s"
-#: builtin/log.c:1365 builtin/replace.c:58 builtin/replace.c:207
+#: builtin/log.c:1366 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:1370
+#: builtin/log.c:1371
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:1374
+#: builtin/log.c:1375
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"
@@ -14472,271 +14552,271 @@ 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:1394
+#: builtin/log.c:1395
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:1405
+#: builtin/log.c:1406
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:1409
+#: builtin/log.c:1410
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:1462
+#: builtin/log.c:1463
msgid "cannot get patch id"
msgstr "không thể lấy mã miếng vá"
-#: builtin/log.c:1514
+#: builtin/log.c:1515
msgid "failed to infer range-diff ranges"
msgstr "gặp lỗi khi suy luận range-diff (vùng khác biệt)"
-#: builtin/log.c:1559
+#: builtin/log.c:1560
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:1562
+#: builtin/log.c:1563
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:1566
+#: builtin/log.c:1567
msgid "print patches to standard out"
msgstr "hiển thị miếng vá ra đầu ra chuẩn"
-#: builtin/log.c:1568
+#: builtin/log.c:1569
msgid "generate a cover letter"
msgstr "tạo bì thư"
-#: builtin/log.c:1570
+#: builtin/log.c:1571
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:1571
+#: builtin/log.c:1572
msgid "sfx"
msgstr "sfx"
-#: builtin/log.c:1572
+#: builtin/log.c:1573
msgid "use <sfx> instead of '.patch'"
msgstr "sá»­ dụng <sfx> thay cho “.patchâ€"
-#: builtin/log.c:1574
+#: builtin/log.c:1575
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:1576
+#: builtin/log.c:1577
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:1578
+#: builtin/log.c:1579
msgid "Use [RFC PATCH] instead of [PATCH]"
msgstr "Dùng [RFC VÃ] thay cho [VÃ]"
-#: builtin/log.c:1581
+#: builtin/log.c:1582
msgid "Use [<prefix>] instead of [PATCH]"
msgstr "Dùng [<tiá»n-tố>] thay cho [VÃ]"
-#: builtin/log.c:1584
+#: builtin/log.c:1585
msgid "store resulting files in <dir>"
msgstr "lưu các tập tin kết quả trong <t.mục>"
-#: builtin/log.c:1587
+#: builtin/log.c:1588
msgid "don't strip/add [PATCH]"
msgstr "không strip/add [VÃ]"
-#: builtin/log.c:1590
+#: builtin/log.c:1591
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:1592
+#: builtin/log.c:1593
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:1594
+#: builtin/log.c:1595
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:1596
+#: builtin/log.c:1597
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:1598
+#: builtin/log.c:1599
msgid "Messaging"
msgstr "Lá»i nhắn"
-#: builtin/log.c:1599
+#: builtin/log.c:1600
msgid "header"
msgstr "đầu đỠthư"
-#: builtin/log.c:1600
+#: builtin/log.c:1601
msgid "add email header"
msgstr "thêm đầu đỠthư"
-#: builtin/log.c:1601 builtin/log.c:1603
+#: builtin/log.c:1602 builtin/log.c:1604
msgid "email"
msgstr "thư điện tử"
-#: builtin/log.c:1601
+#: builtin/log.c:1602
msgid "add To: header"
msgstr "thêm To: đầu đỠthư"
-#: builtin/log.c:1603
+#: builtin/log.c:1604
msgid "add Cc: header"
msgstr "thêm Cc: đầu đỠthư"
-#: builtin/log.c:1605
+#: builtin/log.c:1606
msgid "ident"
msgstr "thụt lá»"
-#: builtin/log.c:1606
+#: builtin/log.c:1607
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:1608
+#: builtin/log.c:1609
msgid "message-id"
msgstr "message-id"
-#: builtin/log.c:1609
+#: builtin/log.c:1610
msgid "make first mail a reply to <message-id>"
msgstr "dùng thÆ° đầu tiên để trả lá»i <message-id>"
-#: builtin/log.c:1610 builtin/log.c:1613
+#: builtin/log.c:1611 builtin/log.c:1614
msgid "boundary"
msgstr "ranh giá»›i"
-#: builtin/log.c:1611
+#: builtin/log.c:1612
msgid "attach the patch"
msgstr "đính kèm miếng vá"
-#: builtin/log.c:1614
+#: builtin/log.c:1615
msgid "inline the patch"
msgstr "dùng miếng vá làm nội dung"
-#: builtin/log.c:1618
+#: builtin/log.c:1619
msgid "enable message threading, styles: shallow, deep"
msgstr "cho phép luồng lá»i nhắn, kiểu: “shallowâ€, “deepâ€"
-#: builtin/log.c:1620
+#: builtin/log.c:1621
msgid "signature"
msgstr "chữ ký"
-#: builtin/log.c:1621
+#: builtin/log.c:1622
msgid "add a signature"
msgstr "thêm chữ ký"
-#: builtin/log.c:1622
+#: builtin/log.c:1623
msgid "base-commit"
msgstr "lần_chuyển_giao_ná»n"
-#: builtin/log.c:1623
+#: builtin/log.c:1624
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:1625
+#: builtin/log.c:1626
msgid "add a signature from a file"
msgstr "thêm chữ ký từ một tập tin"
-#: builtin/log.c:1626
+#: builtin/log.c:1627
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:1628
+#: builtin/log.c:1629
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:1630
+#: builtin/log.c:1631
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:1633
+#: builtin/log.c:1634
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:1635
+#: builtin/log.c:1636
msgid "percentage by which creation is weighted"
msgstr "tỷ lệ phần trăm theo cái tạo là weighted"
-#: builtin/log.c:1710
+#: builtin/log.c:1711
#, c-format
msgid "invalid ident line: %s"
msgstr "dòng thụt lỠkhông hợp lệ: %s"
-#: builtin/log.c:1725
+#: builtin/log.c:1726
msgid "-n and -k are mutually exclusive"
msgstr "-n và -k loại từ lẫn nhau"
-#: builtin/log.c:1727
+#: builtin/log.c:1728
msgid "--subject-prefix/--rfc and -k are mutually exclusive"
msgstr "--subject-prefix/--rfc và -k xung khắc nhau"
-#: builtin/log.c:1735
+#: builtin/log.c:1736
msgid "--name-only does not make sense"
msgstr "--name-only không hợp lý"
-#: builtin/log.c:1737
+#: builtin/log.c:1738
msgid "--name-status does not make sense"
msgstr "--name-status không hợp lý"
-#: builtin/log.c:1739
+#: builtin/log.c:1740
msgid "--check does not make sense"
msgstr "--check không hợp lý"
-#: builtin/log.c:1771
+#: builtin/log.c:1773
msgid "standard output, or directory, which one?"
msgstr "đầu ra chuẩn, hay thÆ° mục, chá»n cái nào?"
-#: builtin/log.c:1860
+#: builtin/log.c:1877
msgid "--interdiff requires --cover-letter or single patch"
msgstr "--interdiff cần --cover-letter hoặc vá đơn"
-#: builtin/log.c:1864
+#: builtin/log.c:1881
msgid "Interdiff:"
msgstr "Interdiff:"
-#: builtin/log.c:1865
+#: builtin/log.c:1882
#, c-format
msgid "Interdiff against v%d:"
msgstr "Interdiff dựa trên v%d:"
-#: builtin/log.c:1871
+#: builtin/log.c:1888
msgid "--creation-factor requires --range-diff"
msgstr "--creation-factor yêu cầu --range-diff"
-#: builtin/log.c:1875
+#: builtin/log.c:1892
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:1883
+#: builtin/log.c:1900
msgid "Range-diff:"
msgstr "Range-diff:"
-#: builtin/log.c:1884
+#: builtin/log.c:1901
#, c-format
msgid "Range-diff against v%d:"
msgstr "Range-diff dựa trên v%d:"
-#: builtin/log.c:1895
+#: builtin/log.c:1912
#, c-format
msgid "unable to read signature file '%s'"
msgstr "không thể Ä‘á»c tập tin chữ ký “%sâ€"
-#: builtin/log.c:1931
+#: builtin/log.c:1948
msgid "Generating patches"
msgstr "Äang tạo các miếng vá"
-#: builtin/log.c:1975
+#: builtin/log.c:1992
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:2034
+#: builtin/log.c:2051
msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
msgstr "git cherry [-v] [<thượng-nguồn> [<đầu> [<giới-hạn>]]]"
-#: builtin/log.c:2088
+#: builtin/log.c:2105
#, c-format
msgid ""
"Could not find a tracked remote branch, please specify <upstream> manually.\n"
@@ -14865,7 +14945,7 @@ msgstr ""
msgid "do not print remote URL"
msgstr "không hiển thị URL máy chủ"
-#: builtin/ls-remote.c:60 builtin/ls-remote.c:62 builtin/rebase.c:1464
+#: builtin/ls-remote.c:60 builtin/ls-remote.c:62 builtin/rebase.c:1488
msgid "exec"
msgstr "thá»±c thi"
@@ -14974,31 +15054,31 @@ msgstr "Các chiến lược sẵn sàng là:"
msgid "Available custom strategies are:"
msgstr "Các chiến lược tùy chỉnh sẵn sàng là:"
-#: builtin/merge.c:244 builtin/pull.c:151
+#: builtin/merge.c:244 builtin/pull.c:152
msgid "do not show a diffstat at the end of the merge"
msgstr "không hiển thị thống kê khác biệt tại cuối của lần hòa trộn"
-#: builtin/merge.c:247 builtin/pull.c:154
+#: builtin/merge.c:247 builtin/pull.c:155
msgid "show a diffstat at the end of the merge"
msgstr "hiển thị thống kê khác biệt tại cuối của hòa trộn"
-#: builtin/merge.c:248 builtin/pull.c:157
+#: builtin/merge.c:248 builtin/pull.c:158
msgid "(synonym to --stat)"
msgstr "(đồng nghĩa với --stat)"
-#: builtin/merge.c:250 builtin/pull.c:160
+#: builtin/merge.c:250 builtin/pull.c:161
msgid "add (at most <n>) entries from shortlog to merge commit message"
msgstr "thêm (ít nhất <n>) mục từ shortlog cho ghi chú chuyển giao hòa trộn"
-#: builtin/merge.c:253 builtin/pull.c:166
+#: builtin/merge.c:253 builtin/pull.c:167
msgid "create a single commit instead of doing a merge"
msgstr "tạo một lần chuyển giao đưon thay vì thực hiện việc hòa trộn"
-#: builtin/merge.c:255 builtin/pull.c:169
+#: builtin/merge.c:255 builtin/pull.c:170
msgid "perform a commit if the merge succeeds (default)"
msgstr "thực hiện chuyển giao nếu hòa trộn thành công (mặc định)"
-#: builtin/merge.c:257 builtin/pull.c:172
+#: builtin/merge.c:257 builtin/pull.c:173
msgid "edit message before committing"
msgstr "sửa chú thích trước khi chuyển giao"
@@ -15006,28 +15086,28 @@ msgstr "sửa chú thích trước khi chuyển giao"
msgid "allow fast-forward (default)"
msgstr "cho phép chuyển-tiếp-nhanh (mặc định)"
-#: builtin/merge.c:261 builtin/pull.c:179
+#: builtin/merge.c:261 builtin/pull.c:180
msgid "abort if fast-forward is not possible"
msgstr "bỠqua nếu chuyển-tiếp-nhanh không thể được"
-#: builtin/merge.c:265 builtin/pull.c:182
+#: builtin/merge.c:265 builtin/pull.c:183
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:266 builtin/notes.c:787 builtin/pull.c:186
-#: builtin/rebase.c:492 builtin/rebase.c:1477 builtin/revert.c:114
+#: builtin/merge.c:266 builtin/notes.c:787 builtin/pull.c:187
+#: builtin/rebase.c:493 builtin/rebase.c:1501 builtin/revert.c:114
msgid "strategy"
msgstr "chiến lược"
-#: builtin/merge.c:267 builtin/pull.c:187
+#: builtin/merge.c:267 builtin/pull.c:188
msgid "merge strategy to use"
msgstr "chiến lược hòa trộn sẽ dùng"
-#: builtin/merge.c:268 builtin/pull.c:190
+#: builtin/merge.c:268 builtin/pull.c:191
msgid "option=value"
msgstr "tùy_chá»n=giá_trị"
-#: builtin/merge.c:269 builtin/pull.c:191
+#: builtin/merge.c:269 builtin/pull.c:192
msgid "option for selected merge strategy"
msgstr "tùy chá»n cho chiến lược hòa trá»™n đã chá»n"
@@ -15049,13 +15129,13 @@ msgstr "--abort nhưng để lại bảng mục lục và cây làm việc"
msgid "continue the current in-progress merge"
msgstr "tiếp tục quá trình hòa trộn hiện tại đang thực hiện"
-#: builtin/merge.c:284 builtin/pull.c:198
+#: builtin/merge.c:284 builtin/pull.c:199
msgid "allow merging unrelated histories"
msgstr "cho phép hòa trộn lịch sử không liên quan"
#: builtin/merge.c:290
-msgid "verify commit-msg hook"
-msgstr "thẩm tra móc (hook) commit-msg"
+msgid "bypass pre-merge-commit and commit-msg hooks"
+msgstr "vòng qua móc (hook) pre-merge-commit và commit-msg"
#: builtin/merge.c:307
msgid "could not run stash."
@@ -15098,33 +15178,33 @@ msgstr "“%s†không chỉ đến một lần chuyển giao nào cả"
msgid "Bad branch.%s.mergeoptions string: %s"
msgstr "Chuá»—i branch.%s.mergeoptions sai: %s"
-#: builtin/merge.c:708
+#: builtin/merge.c:705
msgid "Not handling anything other than two heads merge."
msgstr "Không cầm nắm gì ngoài hai head hòa trộn."
-#: builtin/merge.c:722
+#: builtin/merge.c:719
#, c-format
msgid "Unknown option for merge-recursive: -X%s"
msgstr "Không hiểu tùy chá»n cho merge-recursive: -X%s"
-#: builtin/merge.c:737
+#: builtin/merge.c:734
#, c-format
msgid "unable to write %s"
msgstr "không thể ghi %s"
-#: builtin/merge.c:789
+#: builtin/merge.c:786
#, c-format
msgid "Could not read from '%s'"
msgstr "Không thể Ä‘á»c từ “%sâ€"
-#: builtin/merge.c:798
+#: builtin/merge.c:795
#, c-format
msgid "Not committing merge; use 'git commit' to complete the merge.\n"
msgstr ""
"Vẫn chưa hòa trộn các lần chuyển giao; sử dụng lệnh “git commit†để hoàn tất "
"việc hòa trộn.\n"
-#: builtin/merge.c:804
+#: builtin/merge.c:801
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"
@@ -15136,11 +15216,11 @@ msgstr ""
"topic.\n"
"\n"
-#: builtin/merge.c:809
+#: builtin/merge.c:806
msgid "An empty message aborts the commit.\n"
msgstr "Nếu phần chú thích rỗng sẽ hủy bỠlần chuyển giao.\n"
-#: builtin/merge.c:812
+#: builtin/merge.c:809
#, c-format
msgid ""
"Lines starting with '%c' will be ignored, and an empty message aborts\n"
@@ -15149,75 +15229,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:853
+#: builtin/merge.c:862
msgid "Empty commit message."
msgstr "Chú thích của lần commit (chuyển giao) bị trống rỗng."
-#: builtin/merge.c:872
+#: builtin/merge.c:877
#, c-format
msgid "Wonderful.\n"
msgstr "Tuyệt vá»i.\n"
-#: builtin/merge.c:933
+#: builtin/merge.c:938
#, 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:972
+#: builtin/merge.c:977
msgid "No current branch."
msgstr "Không phải nhánh hiện hành."
-#: builtin/merge.c:974
+#: builtin/merge.c:979
msgid "No remote for the current branch."
msgstr "Không có máy chủ cho nhánh hiện hành."
-#: builtin/merge.c:976
+#: builtin/merge.c:981
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:981
+#: builtin/merge.c:986
#, 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:1038
+#: builtin/merge.c:1043
#, 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:1141
+#: builtin/merge.c:1146
#, 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:1175
+#: builtin/merge.c:1180
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:1278
+#: builtin/merge.c:1283
msgid "--abort expects no arguments"
msgstr "--abort không nhận các đối số"
-#: builtin/merge.c:1282
+#: builtin/merge.c:1287
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:1291
+#: builtin/merge.c:1296
msgid "--quit expects no arguments"
msgstr "--quit không nhận các đối số"
-#: builtin/merge.c:1304
+#: builtin/merge.c:1309
msgid "--continue expects no arguments"
msgstr "--continue không nhận đối số"
-#: builtin/merge.c:1308
+#: builtin/merge.c:1313
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:1324
+#: builtin/merge.c:1329
msgid ""
"You have not concluded your merge (MERGE_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -15225,7 +15305,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:1331
+#: builtin/merge.c:1336
msgid ""
"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -15233,98 +15313,98 @@ 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:1334
+#: builtin/merge.c:1339
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:1348
+#: builtin/merge.c:1353
msgid "You cannot combine --squash with --no-ff."
msgstr "Bạn không thể kết hợp --squash với --no-ff."
-#: builtin/merge.c:1350
+#: builtin/merge.c:1355
msgid "You cannot combine --squash with --commit."
msgstr "Bạn không thể kết hợp --squash với --commit."
-#: builtin/merge.c:1366
+#: builtin/merge.c:1371
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:1383
+#: builtin/merge.c:1388
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:1385
+#: builtin/merge.c:1390
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:1390
+#: builtin/merge.c:1395
#, 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:1392
+#: builtin/merge.c:1397
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:1471
+#: builtin/merge.c:1476
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:1480
+#: builtin/merge.c:1485
msgid "Already up to date."
msgstr "Äã cập nhật rồi."
-#: builtin/merge.c:1490
+#: builtin/merge.c:1495
#, c-format
msgid "Updating %s..%s\n"
msgstr "Äang cập nhật %s..%s\n"
-#: builtin/merge.c:1532
+#: builtin/merge.c:1537
#, 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:1539
+#: builtin/merge.c:1544
#, c-format
msgid "Nope.\n"
msgstr "Không.\n"
-#: builtin/merge.c:1564
+#: builtin/merge.c:1569
msgid "Already up to date. Yeeah!"
msgstr "Äã cập nhật rồi. Yeeah!"
-#: builtin/merge.c:1570
+#: builtin/merge.c:1575
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."
-#: builtin/merge.c:1593 builtin/merge.c:1658
+#: builtin/merge.c:1598 builtin/merge.c:1663
#, 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:1597
+#: builtin/merge.c:1602
#, c-format
msgid "Trying merge strategy %s...\n"
msgstr "Äang thá»­ chiến lược hòa trá»™n %s…\n"
-#: builtin/merge.c:1649
+#: builtin/merge.c:1654
#, 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:1651
+#: builtin/merge.c:1656
#, 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:1660
+#: builtin/merge.c:1665
#, c-format
msgid "Using the %s to prepare resolving by hand.\n"
msgstr "Sử dụng %s để chuẩn bị giải quyết bằng tay.\n"
-#: builtin/merge.c:1672
+#: builtin/merge.c:1677
#, c-format
msgid "Automatic merge went well; stopped before committing as requested\n"
msgstr ""
@@ -15411,32 +15491,32 @@ msgstr "không cảnh báo vỠcác xung đột xảy ra"
msgid "set labels for file1/orig-file/file2"
msgstr "đặt nhãn cho tập-tin-1/tập-tin-gốc/tập-tin-2"
-#: builtin/merge-recursive.c:46
+#: builtin/merge-recursive.c:47
#, c-format
msgid "unknown option %s"
msgstr "không hiểu tùy chá»n %s"
-#: builtin/merge-recursive.c:52
+#: builtin/merge-recursive.c:53
#, c-format
msgid "could not parse object '%s'"
msgstr "không thể phân tích đối tượng “%sâ€"
-#: builtin/merge-recursive.c:56
+#: builtin/merge-recursive.c:57
#, c-format
msgid "cannot handle more than %d base. Ignoring %s."
msgid_plural "cannot handle more than %d bases. Ignoring %s."
msgstr[0] "không thể xá»­ lý nhiá»u hÆ¡n %d ná»n. Bá» qua %s."
-#: builtin/merge-recursive.c:64
+#: builtin/merge-recursive.c:65
msgid "not handling anything other than two heads merge."
msgstr "không xử lý gì ngoài hai head hòa trộn."
-#: builtin/merge-recursive.c:70 builtin/merge-recursive.c:72
+#: builtin/merge-recursive.c:74 builtin/merge-recursive.c:76
#, c-format
msgid "could not resolve ref '%s'"
msgstr "không thể phân giải tham chiếu %s"
-#: builtin/merge-recursive.c:78
+#: builtin/merge-recursive.c:82
#, c-format
msgid "Merging %s with %s\n"
msgstr "Äang hòa trá»™n %s vá»›i %s\n"
@@ -15578,53 +15658,53 @@ 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:277 builtin/remote.c:717 builtin/repack.c:510
+#: builtin/mv.c:277 builtin/remote.c:717 builtin/repack.c:511
#, c-format
msgid "renaming '%s' failed"
msgstr "gặp lá»—i khi đổi tên “%sâ€"
-#: builtin/name-rev.c:352
+#: builtin/name-rev.c:356
msgid "git name-rev [<options>] <commit>..."
msgstr "git name-rev [<các tùy chá»n>] <commit>…"
-#: builtin/name-rev.c:353
+#: builtin/name-rev.c:357
msgid "git name-rev [<options>] --all"
msgstr "git name-rev [<các tùy chá»n>] --all"
-#: builtin/name-rev.c:354
+#: builtin/name-rev.c:358
msgid "git name-rev [<options>] --stdin"
msgstr "git name-rev [<các tùy chá»n>] --stdin"
-#: builtin/name-rev.c:411
+#: builtin/name-rev.c:415
msgid "print only names (no SHA-1)"
msgstr "chỉ hiển thị tên (không SHA-1)"
-#: builtin/name-rev.c:412
+#: builtin/name-rev.c:416
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:414
+#: builtin/name-rev.c:418
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:416
+#: builtin/name-rev.c:420
msgid "ignore refs matching <pattern>"
msgstr "bỠqua các tham chiếu khớp với <mẫu>"
-#: builtin/name-rev.c:418
+#: builtin/name-rev.c:422
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:419
+#: builtin/name-rev.c:423
msgid "read from stdin"
msgstr "Ä‘á»c từ đầu vào tiêu chuẩn"
-#: builtin/name-rev.c:420
+#: builtin/name-rev.c:424
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:426
+#: builtin/name-rev.c:430
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ộ)"
@@ -16022,7 +16102,7 @@ msgstr "cố gắng gỡ bỠmột note chưa từng tồn tại không phải
msgid "read object names from the standard input"
msgstr "Ä‘á»c tên đối tượng từ thiết bị nhập chuẩn"
-#: builtin/notes.c:954 builtin/prune.c:130 builtin/worktree.c:165
+#: builtin/notes.c:954 builtin/prune.c:130 builtin/worktree.c:164
msgid "do not remove, show only"
msgstr "không gỡ bá», chỉ hiển thị"
@@ -16038,7 +16118,7 @@ msgstr "notes-ref"
msgid "use notes from <notes-ref>"
msgstr "dùng “notes†từ <notes-ref>"
-#: builtin/notes.c:1034 builtin/stash.c:1598
+#: builtin/notes.c:1034 builtin/stash.c:1607
#, c-format
msgid "unknown subcommand: %s"
msgstr "không hiểu câu lệnh con: %s"
@@ -16113,70 +16193,70 @@ msgstr "gặp lỗi khi lấy thông tin thống kê vỠ%s"
msgid "wrote %<PRIu32> objects while expecting %<PRIu32>"
msgstr "đã ghi %<PRIu32> đối tượng trong khi cần %<PRIu32>"
-#: builtin/pack-objects.c:1166
+#: builtin/pack-objects.c:1164
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:1597
+#: builtin/pack-objects.c:1592
#, 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:1606
+#: builtin/pack-objects.c:1601
#, 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:1875
+#: builtin/pack-objects.c:1870
msgid "Counting objects"
msgstr "Äang đếm các đối tượng"
-#: builtin/pack-objects.c:2005
+#: builtin/pack-objects.c:2000
#, c-format
msgid "unable to get size of %s"
msgstr "không thể lấy kích cỡ của %s"
-#: builtin/pack-objects.c:2020
+#: builtin/pack-objects.c:2015
#, 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:2090 builtin/pack-objects.c:2106
-#: builtin/pack-objects.c:2116
+#: builtin/pack-objects.c:2085 builtin/pack-objects.c:2101
+#: builtin/pack-objects.c:2111
#, c-format
msgid "object %s cannot be read"
msgstr "không thể Ä‘á»c đối tượng %s"
-#: builtin/pack-objects.c:2093 builtin/pack-objects.c:2120
+#: builtin/pack-objects.c:2088 builtin/pack-objects.c:2115
#, 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:2130
+#: builtin/pack-objects.c:2125
msgid "suboptimal pack - out of memory"
msgstr "suboptimal pack - hết bộ nhớ"
-#: builtin/pack-objects.c:2456
+#: builtin/pack-objects.c:2440
#, 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:2588
+#: builtin/pack-objects.c:2572
#, 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:2675
+#: builtin/pack-objects.c:2659
msgid "Compressing objects"
msgstr "Äang nén các đối tượng"
-#: builtin/pack-objects.c:2681
+#: builtin/pack-objects.c:2665
msgid "inconsistency with delta count"
msgstr "mâu thuẫn với số lượng delta"
-#: builtin/pack-objects.c:2762
+#: builtin/pack-objects.c:2742
#, c-format
msgid ""
"expected edge object ID, got garbage:\n"
@@ -16185,7 +16265,7 @@ msgstr ""
"cần ID đối tượng cạnh, nhận được rác:\n"
" %s"
-#: builtin/pack-objects.c:2768
+#: builtin/pack-objects.c:2748
#, c-format
msgid ""
"expected object ID, got garbage:\n"
@@ -16194,244 +16274,244 @@ msgstr ""
"cần ID đối tượng, nhận được rác:\n"
" %s"
-#: builtin/pack-objects.c:2866
+#: builtin/pack-objects.c:2846
msgid "invalid value for --missing"
msgstr "giá trị cho --missing không hợp lệ"
-#: builtin/pack-objects.c:2925 builtin/pack-objects.c:3033
+#: builtin/pack-objects.c:2905 builtin/pack-objects.c:3013
msgid "cannot open pack index"
msgstr "không thể mở mục lục của gói"
-#: builtin/pack-objects.c:2956
+#: builtin/pack-objects.c:2936
#, 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:3041
+#: builtin/pack-objects.c:3021
msgid "unable to force loose object"
msgstr "không thể buộc mất đối tượng"
-#: builtin/pack-objects.c:3133
+#: builtin/pack-objects.c:3113
#, c-format
msgid "not a rev '%s'"
msgstr "không phải má»™t rev “%sâ€"
-#: builtin/pack-objects.c:3136
+#: builtin/pack-objects.c:3116
#, c-format
msgid "bad revision '%s'"
msgstr "Ä‘iểm xem xét sai “%sâ€"
-#: builtin/pack-objects.c:3161
+#: builtin/pack-objects.c:3141
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:3214
+#: builtin/pack-objects.c:3194
#, 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:3218
+#: builtin/pack-objects.c:3198
#, c-format
msgid "bad index version '%s'"
msgstr "phiên bản mục lục sai “%sâ€"
-#: builtin/pack-objects.c:3248
+#: builtin/pack-objects.c:3228
msgid "do not show progress meter"
msgstr "không hiển thị bộ đo tiến trình"
-#: builtin/pack-objects.c:3250
+#: builtin/pack-objects.c:3230
msgid "show progress meter"
msgstr "hiển thị bộ đo tiến trình"
-#: builtin/pack-objects.c:3252
+#: builtin/pack-objects.c:3232
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/pack-objects.c:3255
+#: builtin/pack-objects.c:3235
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"
-#: builtin/pack-objects.c:3256
+#: builtin/pack-objects.c:3236
msgid "<version>[,<offset>]"
msgstr "<phiên bản>[,offset]"
-#: builtin/pack-objects.c:3257
+#: builtin/pack-objects.c:3237
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:3260
+#: builtin/pack-objects.c:3240
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:3262
+#: builtin/pack-objects.c:3242
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:3264
+#: builtin/pack-objects.c:3244
msgid "ignore packed objects"
msgstr "bỠqua các đối tượng đóng gói"
-#: builtin/pack-objects.c:3266
+#: builtin/pack-objects.c:3246
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:3268
+#: builtin/pack-objects.c:3248
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:3270
+#: builtin/pack-objects.c:3250
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:3272
+#: builtin/pack-objects.c:3252
msgid "reuse existing deltas"
msgstr "dùng lại các delta sẵn có"
-#: builtin/pack-objects.c:3274
+#: builtin/pack-objects.c:3254
msgid "reuse existing objects"
msgstr "dùng lại các đối tượng sẵn có"
-#: builtin/pack-objects.c:3276
+#: builtin/pack-objects.c:3256
msgid "use OFS_DELTA objects"
msgstr "dùng các đối tượng OFS_DELTA"
-#: builtin/pack-objects.c:3278
+#: builtin/pack-objects.c:3258
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:3280
+#: builtin/pack-objects.c:3260
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:3282
+#: builtin/pack-objects.c:3262
msgid "read revision arguments from standard input"
msgstr "Ä‘á»c tham số “revision†từ thiết bị nhập chuẩn"
-#: builtin/pack-objects.c:3284
+#: builtin/pack-objects.c:3264
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:3287
+#: builtin/pack-objects.c:3267
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:3290
+#: builtin/pack-objects.c:3270
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:3293
+#: builtin/pack-objects.c:3273
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:3296
+#: builtin/pack-objects.c:3276
msgid "output pack to stdout"
msgstr "xuất gói ra đầu ra tiêu chuẩn"
-#: builtin/pack-objects.c:3298
+#: builtin/pack-objects.c:3278
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:3300
+#: builtin/pack-objects.c:3280
msgid "keep unreachable objects"
msgstr "giữ lại các đối tượng không thể Ä‘á»c được"
-#: builtin/pack-objects.c:3302
+#: builtin/pack-objects.c:3282
msgid "pack loose unreachable objects"
msgstr "pack mất các đối tượng không thể Ä‘á»c được"
-#: builtin/pack-objects.c:3304
+#: builtin/pack-objects.c:3284
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:3307
+#: builtin/pack-objects.c:3287
msgid "use the sparse reachability algorithm"
-msgstr "dung thuật toán “sparse reachabilityâ€"
+msgstr "sá»­ dụng thuật toán “sparse reachabilityâ€"
-#: builtin/pack-objects.c:3309
+#: builtin/pack-objects.c:3289
msgid "create thin packs"
msgstr "tạo gói nhẹ"
-#: builtin/pack-objects.c:3311
+#: builtin/pack-objects.c:3291
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:3313
+#: builtin/pack-objects.c:3293
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:3315
+#: builtin/pack-objects.c:3295
msgid "ignore this pack"
msgstr "bỠqua gói này"
-#: builtin/pack-objects.c:3317
+#: builtin/pack-objects.c:3297
msgid "pack compression level"
msgstr "mức nén gói"
-#: builtin/pack-objects.c:3319
+#: builtin/pack-objects.c:3299
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:3321
+#: builtin/pack-objects.c:3301
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:3323
+#: builtin/pack-objects.c:3303
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:3327
+#: builtin/pack-objects.c:3307
msgid "write a bitmap index if possible"
msgstr "ghi mục lục ánh xạ nếu được"
-#: builtin/pack-objects.c:3331
+#: builtin/pack-objects.c:3311
msgid "handling for missing objects"
msgstr "xử lý cho thiếu đối tượng"
-#: builtin/pack-objects.c:3334
+#: builtin/pack-objects.c:3314
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:3336
+#: builtin/pack-objects.c:3316
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:3361
+#: builtin/pack-objects.c:3345
#, 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:3366
+#: builtin/pack-objects.c:3350
#, c-format
msgid "pack.deltaCacheLimit is too high, forcing %d"
msgstr "pack.deltaCacheLimit là quá cao, ép dùng %d"
-#: builtin/pack-objects.c:3420
+#: builtin/pack-objects.c:3404
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:3422
+#: builtin/pack-objects.c:3406
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:3427
+#: builtin/pack-objects.c:3411
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:3430
+#: builtin/pack-objects.c:3414
msgid "--keep-unreachable and --unpack-unreachable are incompatible"
msgstr "--keep-unreachable và --unpack-unreachable xung khắc nhau"
-#: builtin/pack-objects.c:3436
+#: builtin/pack-objects.c:3420
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:3497
+#: builtin/pack-objects.c:3481
msgid "Enumerating objects"
msgstr "Äánh số các đối tượng"
-#: builtin/pack-objects.c:3527
+#: builtin/pack-objects.c:3511
#, c-format
msgid "Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>)"
msgstr "Tổng %<PRIu32> (delta %<PRIu32>), dùng lại %<PRIu32> (delta %<PRIu32>)"
@@ -16485,44 +16565,44 @@ msgstr "Giá trị không hợp lệ %s: %s"
msgid "git pull [<options>] [<repository> [<refspec>...]]"
msgstr "git pull [<các tùy chá»n>] [<kho-chứa> [<refspec>…]]"
-#: builtin/pull.c:141
+#: builtin/pull.c:142
msgid "control for recursive fetching of submodules"
msgstr "Ä‘iá»u khiển việc lấy vỠđệ quy của các mô-Ä‘un-con"
-#: builtin/pull.c:145
+#: builtin/pull.c:146
msgid "Options related to merging"
msgstr "Các tùy chá»n liên quan đến hòa trá»™n"
-#: builtin/pull.c:148
+#: builtin/pull.c:149
msgid "incorporate changes by rebasing rather than merging"
msgstr "các thay đổi hợp nhất bằng cải tổ thay vì hòa trộn"
-#: builtin/pull.c:176 builtin/rebase.c:447 builtin/revert.c:126
+#: builtin/pull.c:177 builtin/rebase.c:448 builtin/revert.c:126
msgid "allow fast-forward"
msgstr "cho phép chuyển-tiếp-nhanh"
-#: builtin/pull.c:185
+#: builtin/pull.c:186
msgid "automatically stash/stash pop before and after rebase"
msgstr "tự động stash/stash pop tước và sau tu bổ (rebase)"
-#: builtin/pull.c:201
+#: builtin/pull.c:202
msgid "Options related to fetching"
msgstr "Các tùy chá»n liên quan đến lệnh lấy vá»"
-#: builtin/pull.c:211
+#: builtin/pull.c:212
msgid "force overwrite of local branch"
msgstr "ép buộc ghi đè lên nhánh nội bộ"
-#: builtin/pull.c:219
+#: builtin/pull.c:220
msgid "number of submodules pulled in parallel"
msgstr "số lượng mô-Ä‘un-con được đẩy lên đồng thá»i"
-#: builtin/pull.c:316
+#: builtin/pull.c:320
#, c-format
msgid "Invalid value for pull.ff: %s"
msgstr "Giá trị không hợp lệ cho pull.ff: %s"
-#: builtin/pull.c:433
+#: builtin/pull.c:437
msgid ""
"There is no candidate for rebasing against among the refs that you just "
"fetched."
@@ -16530,14 +16610,14 @@ msgstr ""
"Ở đây không có ứng cử nào để cải tổ lại trong số các tham chiếu mà bạn vừa "
"lấy vá»."
-#: builtin/pull.c:435
+#: builtin/pull.c:439
msgid ""
"There are no candidates for merging among the refs that you just fetched."
msgstr ""
"Ở đây không có ứng cử nào để hòa trộn trong số các tham chiếu mà bạn vừa lấy "
"vá»."
-#: builtin/pull.c:436
+#: builtin/pull.c:440
msgid ""
"Generally this means that you provided a wildcard refspec which had no\n"
"matches on the remote end."
@@ -16546,7 +16626,7 @@ msgstr ""
"tá»±\n"
"đại diện mà nó lại không khớp trên điểm cuối máy phục vụ."
-#: builtin/pull.c:439
+#: builtin/pull.c:443
#, c-format
msgid ""
"You asked to pull from the remote '%s', but did not specify\n"
@@ -16558,43 +16638,43 @@ 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:444 builtin/rebase.c:1326 git-parse-remote.sh:73
+#: builtin/pull.c:448 builtin/rebase.c:1347 git-parse-remote.sh:73
msgid "You are not currently on a branch."
msgstr "Hiện tại bạn chẳng ở nhánh nào cả."
-#: builtin/pull.c:446 builtin/pull.c:461 git-parse-remote.sh:79
+#: builtin/pull.c:450 builtin/pull.c:465 git-parse-remote.sh:79
msgid "Please specify which branch you want to rebase against."
msgstr "Vui lòng chỉ định nhánh nào bạn muốn cải tổ lại."
-#: builtin/pull.c:448 builtin/pull.c:463 git-parse-remote.sh:82
+#: builtin/pull.c:452 builtin/pull.c:467 git-parse-remote.sh:82
msgid "Please specify which branch you want to merge with."
msgstr "Vui lòng chỉ định nhánh nào bạn muốn hòa trộn vào."
-#: builtin/pull.c:449 builtin/pull.c:464
+#: builtin/pull.c:453 builtin/pull.c:468
msgid "See git-pull(1) for details."
msgstr "Xem git-pull(1) để biết thêm chi tiết."
-#: builtin/pull.c:451 builtin/pull.c:457 builtin/pull.c:466
-#: builtin/rebase.c:1332 git-parse-remote.sh:64
+#: builtin/pull.c:455 builtin/pull.c:461 builtin/pull.c:470
+#: builtin/rebase.c:1353 git-parse-remote.sh:64
msgid "<remote>"
msgstr "<máy chủ>"
-#: builtin/pull.c:451 builtin/pull.c:466 builtin/pull.c:471
+#: builtin/pull.c:455 builtin/pull.c:470 builtin/pull.c:475
#: git-parse-remote.sh:65
msgid "<branch>"
msgstr "<nhánh>"
-#: builtin/pull.c:459 builtin/rebase.c:1324 git-parse-remote.sh:75
+#: builtin/pull.c:463 builtin/rebase.c:1345 git-parse-remote.sh:75
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."
-#: builtin/pull.c:468 git-parse-remote.sh:95
+#: builtin/pull.c:472 git-parse-remote.sh:95
msgid ""
"If you wish to set tracking information for this branch you can do so with:"
msgstr ""
"Nếu bạn muốn theo dõi thông tin cho nhánh này bạn có thể thực hiện bằng lệnh:"
-#: builtin/pull.c:473
+#: builtin/pull.c:477
#, c-format
msgid ""
"Your configuration specifies to merge with the ref '%s'\n"
@@ -16603,34 +16683,34 @@ msgstr ""
"Các đặc tả cấu hình của bạn để hòa trá»™n vá»›i tham chiếu “%sâ€\n"
"từ máy dịch vụ, nhÆ°ng không có nhánh nào nhÆ° thế được lấy vá»."
-#: builtin/pull.c:581
+#: builtin/pull.c:587
#, c-format
msgid "unable to access commit %s"
msgstr "không thể truy cập lần chuyển giao “%sâ€"
-#: builtin/pull.c:861
+#: builtin/pull.c:867
msgid "ignoring --verify-signatures for rebase"
msgstr "bá» qua --verify-signatures khi rebase"
-#: builtin/pull.c:916
+#: builtin/pull.c:922
msgid "--[no-]autostash option is only valid with --rebase."
msgstr "tùy chá»n --[no-]autostash chỉ hợp lệ khi dùng vá»›i --rebase."
-#: builtin/pull.c:924
+#: builtin/pull.c:930
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:928
+#: builtin/pull.c:934
msgid "pull with rebase"
msgstr "pull vá»›i rebase"
-#: builtin/pull.c:929
+#: builtin/pull.c:935
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:954
+#: builtin/pull.c:960
#, c-format
msgid ""
"fetch updated the current branch head.\n"
@@ -16641,7 +16721,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:960
+#: builtin/pull.c:966
#, c-format
msgid ""
"Cannot fast-forward your working tree.\n"
@@ -16659,15 +16739,15 @@ msgstr ""
"$ git reset --hard\n"
"để khôi phục lại."
-#: builtin/pull.c:975
+#: builtin/pull.c:981
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:979
+#: builtin/pull.c:985
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:986
+#: builtin/pull.c:992
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ộ"
@@ -16834,135 +16914,135 @@ msgstr ""
msgid "Pushing to %s\n"
msgstr "Äang đẩy lên %s\n"
-#: builtin/push.c:364
+#: builtin/push.c:366
#, c-format
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:398
-#, c-format
-msgid "bad repository '%s'"
-msgstr "repository (kho) sai “%sâ€"
-
-#: builtin/push.c:399
-msgid ""
-"No configured push destination.\n"
-"Either specify the URL from the command-line or configure a remote "
-"repository using\n"
-"\n"
-" git remote add <name> <url>\n"
-"\n"
-"and then push using the remote name\n"
-"\n"
-" git push <name>\n"
-msgstr ""
-"Chưa cấu hình đích để đẩy lên.\n"
-"Hoặc là chỉ ra URL từ dòng lệnh hoặc là cấu hình một kho máy chủ sử dụng\n"
-"\n"
-" git remote add <tên> <url>\n"
-"\n"
-"và sau đó đẩy lên sử dụng tên máy chủ\n"
-"\n"
-" git push <tên>\n"
-
-#: builtin/push.c:554
+#: builtin/push.c:541
msgid "repository"
msgstr "kho"
-#: builtin/push.c:555 builtin/send-pack.c:164
+#: builtin/push.c:542 builtin/send-pack.c:164
msgid "push all refs"
msgstr "đẩy tất cả các tham chiếu"
-#: builtin/push.c:556 builtin/send-pack.c:166
+#: builtin/push.c:543 builtin/send-pack.c:166
msgid "mirror all refs"
msgstr "mirror tất cả các tham chiếu"
-#: builtin/push.c:558
+#: builtin/push.c:545
msgid "delete refs"
msgstr "xóa các tham chiếu"
-#: builtin/push.c:559
+#: builtin/push.c:546
msgid "push tags (can't be used with --all or --mirror)"
msgstr "đẩy các thẻ (không dùng cùng với --all hay --mirror)"
-#: builtin/push.c:562 builtin/send-pack.c:167
+#: builtin/push.c:549 builtin/send-pack.c:167
msgid "force updates"
msgstr "ép buộc cập nhật"
-#: builtin/push.c:564 builtin/send-pack.c:181
+#: builtin/push.c:551 builtin/send-pack.c:181
msgid "<refname>:<expect>"
msgstr "<tên-tham-chiếu>:<cần>"
-#: builtin/push.c:565 builtin/send-pack.c:182
+#: builtin/push.c:552 builtin/send-pack.c:182
msgid "require old value of ref to be at this value"
msgstr "yêu cầu giá-trị cũ của tham chiếu thì là giá-trị này"
-#: builtin/push.c:568
+#: builtin/push.c:555
msgid "control recursive pushing of submodules"
msgstr "Ä‘iá»u khiển việc đẩy lên (push) đệ qui của mô-Ä‘un-con"
-#: builtin/push.c:570 builtin/send-pack.c:175
+#: builtin/push.c:557 builtin/send-pack.c:175
msgid "use thin pack"
msgstr "tạo gói nhẹ"
-#: builtin/push.c:571 builtin/push.c:572 builtin/send-pack.c:161
+#: builtin/push.c:558 builtin/push.c:559 builtin/send-pack.c:161
#: builtin/send-pack.c:162
msgid "receive pack program"
msgstr "chương trình nhận gói"
-#: builtin/push.c:573
+#: builtin/push.c:560
msgid "set upstream for git pull/status"
msgstr "đặt thượng nguồn cho git pull/status"
-#: builtin/push.c:576
+#: builtin/push.c:563
msgid "prune locally removed refs"
msgstr "xén tỉa những tham chiếu bị gỡ bá»"
-#: builtin/push.c:578
+#: builtin/push.c:565
msgid "bypass pre-push hook"
msgstr "vòng qua móc tiá»n-đẩy (pre-push)"
-#: builtin/push.c:579
+#: builtin/push.c:566
msgid "push missing but relevant tags"
msgstr "push phần bị thiếu nhưng các thẻ lại thích hợp"
-#: builtin/push.c:582 builtin/send-pack.c:169
+#: builtin/push.c:569 builtin/send-pack.c:169
msgid "GPG sign the push"
msgstr "ký lần đẩy dùng GPG"
-#: builtin/push.c:584 builtin/send-pack.c:176
+#: builtin/push.c:571 builtin/send-pack.c:176
msgid "request atomic transaction on remote side"
msgstr "yêu cầu giao dịch hạt nhân bên phía máy chủ"
-#: builtin/push.c:602
+#: builtin/push.c:589
msgid "--delete is incompatible with --all, --mirror and --tags"
msgstr "--delete là xung khắc vá»›i các tùy chá»n --all, --mirror và --tags"
-#: builtin/push.c:604
+#: builtin/push.c:591
msgid "--delete doesn't make sense without any refs"
msgstr "--delete không hợp lý nếu không có bất kỳ tham chiếu nào"
-#: builtin/push.c:607
+#: builtin/push.c:611
+#, c-format
+msgid "bad repository '%s'"
+msgstr "repository (kho) sai “%sâ€"
+
+#: builtin/push.c:612
+msgid ""
+"No configured push destination.\n"
+"Either specify the URL from the command-line or configure a remote "
+"repository using\n"
+"\n"
+" git remote add <name> <url>\n"
+"\n"
+"and then push using the remote name\n"
+"\n"
+" git push <name>\n"
+msgstr ""
+"Chưa cấu hình đích để đẩy lên.\n"
+"Hoặc là chỉ ra URL từ dòng lệnh hoặc là cấu hình một kho máy chủ sử dụng\n"
+"\n"
+" git remote add <tên> <url>\n"
+"\n"
+"và sau đó đẩy lên sử dụng tên máy chủ\n"
+"\n"
+" git push <tên>\n"
+
+#: builtin/push.c:627
msgid "--all and --tags are incompatible"
msgstr "--all và --tags xung khắc nhau"
-#: builtin/push.c:609
+#: builtin/push.c:629
msgid "--all can't be combined with refspecs"
msgstr "--all không thể được tổ hợp cùng vá»›i đặc tả Ä‘Æ°á»ng dẫn"
-#: builtin/push.c:613
+#: builtin/push.c:633
msgid "--mirror and --tags are incompatible"
msgstr "--mirror và --tags xung khắc nhau"
-#: builtin/push.c:615
+#: builtin/push.c:635
msgid "--mirror can't be combined with refspecs"
msgstr "--mirror không thể được tổ hợp cùng vá»›i đặc tả Ä‘Æ°á»ng dẫn"
-#: builtin/push.c:618
+#: builtin/push.c:638
msgid "--all and --mirror are incompatible"
msgstr "--all và --mirror xung khắc nhau"
-#: builtin/push.c:637
+#: builtin/push.c:642
msgid "push options must not have new line characters"
msgstr "các tùy chá»n push phải không có ký tá»± dòng má»›i"
@@ -17082,11 +17162,11 @@ msgstr "không xuất các thông tin phản hồi"
#: builtin/rebase.c:32
msgid ""
-"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] [<upstream>] "
-"[<branch>]"
+"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase> | --keep-base] "
+"[<upstream> [<branch>]]"
msgstr ""
-"git rebase [-i] [các tùy chá»n] [--exec <lệnh>] [--onto <newbase>] "
-"[<upstream>] [<nhánh>]"
+"git rebase [-i] [các tùy chá»n] [--exec <lệnh>] [--onto <newbase> | --keep-"
+"base] [<upstream>] [<nhánh>]]"
#: builtin/rebase.c:34
msgid ""
@@ -17126,189 +17206,189 @@ msgstr "không thể đánh dấu là tương tác"
msgid "could not generate todo list"
msgstr "không thể tạo danh sách cần làm"
-#: builtin/rebase.c:382
+#: builtin/rebase.c:383
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:437
+#: builtin/rebase.c:438
msgid "git rebase--interactive [<options>]"
msgstr "git rebase--interactive [<các tùy chá»n>]"
-#: builtin/rebase.c:449
+#: builtin/rebase.c:450
msgid "keep empty commits"
msgstr "giữ lại các lần chuyển giao rỗng"
-#: builtin/rebase.c:451 builtin/revert.c:128
+#: builtin/rebase.c:452 builtin/revert.c:128
msgid "allow commits with empty messages"
msgstr "chấp nhận chuyển giao mà không ghi chú gì"
-#: builtin/rebase.c:452
+#: builtin/rebase.c:453
msgid "rebase merge commits"
msgstr "cải tổ các lần chuyển giao hòa trộn"
-#: builtin/rebase.c:454
+#: builtin/rebase.c:455
msgid "keep original branch points of cousins"
msgstr "giữ các Ä‘iểm nhánh nguyên bản của các anh em há»"
-#: builtin/rebase.c:456
+#: builtin/rebase.c:457
msgid "move commits that begin with squash!/fixup!"
msgstr "di chuyển các lần chuyển giao bắt đầu bằng squash!/fixup!"
-#: builtin/rebase.c:457
+#: builtin/rebase.c:458
msgid "sign commits"
msgstr "ký các lần chuyển giao"
-#: builtin/rebase.c:459 builtin/rebase.c:1403
+#: builtin/rebase.c:460 builtin/rebase.c:1427
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:461
+#: builtin/rebase.c:462
msgid "continue rebase"
msgstr "tiếp tục cải tổ"
-#: builtin/rebase.c:463
+#: builtin/rebase.c:464
msgid "skip commit"
msgstr "bỠqua lần chuyển giao"
-#: builtin/rebase.c:464
+#: builtin/rebase.c:465
msgid "edit the todo list"
msgstr "sửa danh sách cần làm"
-#: builtin/rebase.c:466
+#: builtin/rebase.c:467
msgid "show the current patch"
msgstr "hiển thị miếng vá hiện hành"
-#: builtin/rebase.c:469
+#: builtin/rebase.c:470
msgid "shorten commit ids in the todo list"
msgstr "rút ngắn mã chuyển giao trong danh sách cần làm"
-#: builtin/rebase.c:471
+#: builtin/rebase.c:472
msgid "expand commit ids in the todo list"
msgstr "khai triển mã chuyển giao trong danh sách cần làm"
-#: builtin/rebase.c:473
+#: builtin/rebase.c:474
msgid "check the todo list"
msgstr "kiểm tra danh sách cần làm"
-#: builtin/rebase.c:475
+#: builtin/rebase.c:476
msgid "rearrange fixup/squash lines"
msgstr "sắp xếp lại các dòng fixup/squash"
-#: builtin/rebase.c:477
+#: builtin/rebase.c:478
msgid "insert exec commands in todo list"
msgstr "chèn các lệnh thực thi trong danh sách cần làm"
-#: builtin/rebase.c:478
+#: builtin/rebase.c:479
msgid "onto"
msgstr "lên trên"
-#: builtin/rebase.c:481
+#: builtin/rebase.c:482
msgid "restrict-revision"
msgstr "điểm-xét-duyệt-hạn-chế"
-#: builtin/rebase.c:481
+#: builtin/rebase.c:482
msgid "restrict revision"
msgstr "điểm xét duyệt hạn chế"
-#: builtin/rebase.c:483
+#: builtin/rebase.c:484
msgid "squash-onto"
msgstr "squash-lên-trên"
-#: builtin/rebase.c:484
+#: builtin/rebase.c:485
msgid "squash onto"
msgstr "squash lên trên"
-#: builtin/rebase.c:486
+#: builtin/rebase.c:487
msgid "the upstream commit"
msgstr "lần chuyển giao thượng nguồn"
-#: builtin/rebase.c:488
+#: builtin/rebase.c:489
msgid "head-name"
msgstr "tên-đầu"
-#: builtin/rebase.c:488
+#: builtin/rebase.c:489
msgid "head name"
msgstr "tên đầu"
-#: builtin/rebase.c:493
+#: builtin/rebase.c:494
msgid "rebase strategy"
msgstr "chiến lược cải tổ"
-#: builtin/rebase.c:494
+#: builtin/rebase.c:495
msgid "strategy-opts"
msgstr "tùy-chá»n-chiến-lược"
-#: builtin/rebase.c:495
+#: builtin/rebase.c:496
msgid "strategy options"
msgstr "các tùy chá»n chiến lược"
-#: builtin/rebase.c:496
+#: builtin/rebase.c:497
msgid "switch-to"
msgstr "chuyển-đến"
-#: builtin/rebase.c:497
+#: builtin/rebase.c:498
msgid "the branch or commit to checkout"
msgstr "nhánh hay lần chuyển giao lần lấy ra"
-#: builtin/rebase.c:498
+#: builtin/rebase.c:499
msgid "onto-name"
msgstr "onto-name"
-#: builtin/rebase.c:498
+#: builtin/rebase.c:499
msgid "onto name"
msgstr "tên lên trên"
-#: builtin/rebase.c:499
+#: builtin/rebase.c:500
msgid "cmd"
msgstr "lệnh"
-#: builtin/rebase.c:499
+#: builtin/rebase.c:500
msgid "the command to run"
msgstr "lệnh muốn chạy"
-#: builtin/rebase.c:502 builtin/rebase.c:1486
+#: builtin/rebase.c:503 builtin/rebase.c:1510
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:518
+#: builtin/rebase.c:519
msgid "--[no-]rebase-cousins has no effect without --rebase-merges"
msgstr "--[no-]rebase-cousins không có tác dụng khi không có --rebase-merges"
-#: builtin/rebase.c:534
+#: builtin/rebase.c:535
#, c-format
msgid "%s requires an interactive rebase"
msgstr "%s cần một cải tổ kiểu tương tác"
-#: builtin/rebase.c:586
+#: builtin/rebase.c:587
#, c-format
msgid "could not get 'onto': '%s'"
msgstr "không thể đặt lấy “ontoâ€: “%sâ€"
-#: builtin/rebase.c:601
+#: builtin/rebase.c:602
#, c-format
msgid "invalid orig-head: '%s'"
msgstr "orig-head không hợp lệ: “%sâ€"
-#: builtin/rebase.c:626
+#: builtin/rebase.c:627
#, 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:702
+#: builtin/rebase.c:703
#, c-format
msgid "Could not read '%s'"
msgstr "Không thể Ä‘á»c “%sâ€"
-#: builtin/rebase.c:720
+#: builtin/rebase.c:721
#, c-format
msgid "Cannot store %s"
msgstr "Không thể lÆ°u “%sâ€"
-#: builtin/rebase.c:827
+#: builtin/rebase.c:828
msgid "could not determine HEAD revision"
msgstr "không thể dò tìm điểm xét duyệt HEAD"
-#: builtin/rebase.c:950 git-rebase--preserve-merges.sh:81
+#: builtin/rebase.c:951 git-rebase--preserve-merges.sh:81
msgid ""
"Resolve all conflicts manually, mark them as resolved with\n"
"\"git add/rm <conflicted_files>\", then run \"git rebase --continue\".\n"
@@ -17323,7 +17403,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:1031
+#: builtin/rebase.c:1032
#, c-format
msgid ""
"\n"
@@ -17342,7 +17422,7 @@ msgstr ""
"\n"
"Kết quả là git không thể cải tổ lại chúng."
-#: builtin/rebase.c:1318
+#: builtin/rebase.c:1339
#, c-format
msgid ""
"%s\n"
@@ -17359,7 +17439,7 @@ msgstr ""
" git rebase “<nhánh>â€\n"
"\n"
-#: builtin/rebase.c:1334
+#: builtin/rebase.c:1355
#, c-format
msgid ""
"If you wish to set tracking information for this branch you can do so with:\n"
@@ -17373,128 +17453,133 @@ msgstr ""
" git branch --set-upstream-to=%s/<nhánh> %s\n"
"\n"
-#: builtin/rebase.c:1364
+#: builtin/rebase.c:1385
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:1368
+#: builtin/rebase.c:1389
msgid "empty exec command"
msgstr "lệnh thực thi trống rỗng"
-#: builtin/rebase.c:1396
+#: builtin/rebase.c:1418
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:1398
+#: builtin/rebase.c:1420
+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:1422
msgid "allow pre-rebase hook to run"
msgstr "cho phép móc (hook) pre-rebase được chạy"
-#: builtin/rebase.c:1400
+#: builtin/rebase.c:1424
msgid "be quiet. implies --no-stat"
msgstr "hãy im lặng. ý là --no-stat"
-#: builtin/rebase.c:1406
+#: builtin/rebase.c:1430
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:1409
+#: builtin/rebase.c:1433
msgid "add a Signed-off-by: line to each commit"
msgstr "thêm dòng Signed-off-by: cho từng lần chuyển giao"
-#: builtin/rebase.c:1411 builtin/rebase.c:1415 builtin/rebase.c:1417
+#: builtin/rebase.c:1435 builtin/rebase.c:1439 builtin/rebase.c:1441
msgid "passed to 'git am'"
msgstr "chuyển cho “git amâ€"
-#: builtin/rebase.c:1419 builtin/rebase.c:1421
+#: builtin/rebase.c:1443 builtin/rebase.c:1445
msgid "passed to 'git apply'"
msgstr "chuyển cho “git applyâ€"
-#: builtin/rebase.c:1423 builtin/rebase.c:1426
+#: builtin/rebase.c:1447 builtin/rebase.c:1450
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:1428
+#: builtin/rebase.c:1452
msgid "continue"
msgstr "tiếp tục"
-#: builtin/rebase.c:1431
+#: builtin/rebase.c:1455
msgid "skip current patch and continue"
msgstr "bỠqua miếng vá hiện hành và tiếp tục"
-#: builtin/rebase.c:1433
+#: builtin/rebase.c:1457
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:1436
+#: builtin/rebase.c:1460
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:1437
+#: builtin/rebase.c:1461
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:1440
+#: builtin/rebase.c:1464
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:1443
+#: builtin/rebase.c:1467
msgid "use merging strategies to rebase"
msgstr "dùng chiến lược hòa trộn để cải tổ"
-#: builtin/rebase.c:1447
+#: builtin/rebase.c:1471
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:1451
+#: builtin/rebase.c:1475
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:1455
+#: builtin/rebase.c:1479
msgid "preserve empty commits during rebase"
msgstr "ngăn cấm các lần chuyển giao trống rỗng trong suốt quá trình cải tổ"
-#: builtin/rebase.c:1457
+#: builtin/rebase.c:1481
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:1463
+#: builtin/rebase.c:1487
msgid "automatically stash/stash pop before and after"
msgstr "tự động stash/stash pop trước và sau"
-#: builtin/rebase.c:1465
+#: builtin/rebase.c:1489
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:1469
+#: builtin/rebase.c:1493
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:1472
+#: builtin/rebase.c:1496
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:1475
+#: builtin/rebase.c:1499
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:1477
+#: builtin/rebase.c:1501
msgid "use the given merge strategy"
msgstr "dùng chiến lược hòa trộn đã cho"
-#: builtin/rebase.c:1479 builtin/revert.c:115
+#: builtin/rebase.c:1503 builtin/revert.c:115
msgid "option"
msgstr "tùy chá»n"
-#: builtin/rebase.c:1480
+#: builtin/rebase.c:1504
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:1483
+#: builtin/rebase.c:1507
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:1500
+#: builtin/rebase.c:1524
msgid ""
"the rebase.useBuiltin support has been removed!\n"
"See its entry in 'git help config' for details."
@@ -17502,33 +17587,41 @@ msgstr ""
"việc hỗ trợ rebase.useBuiltin đã bị xóa!\n"
"Xem mục tin của nó trong “ git help config†để biết chi tiết."
-#: builtin/rebase.c:1506
+#: builtin/rebase.c:1530
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:1547
+#: builtin/rebase.c:1571
msgid ""
"git rebase --preserve-merges is deprecated. Use --rebase-merges instead."
msgstr ""
"git rebase --preserve-merges đã lạc hậu. Hãy dùng --rebase-merges để thay "
"thế."
-#: builtin/rebase.c:1551
+#: builtin/rebase.c:1576
+msgid "cannot combine '--keep-base' with '--onto'"
+msgstr "không thể kết hợp “--keep-base†vá»›i “--ontoâ€"
+
+#: builtin/rebase.c:1578
+msgid "cannot combine '--keep-base' with '--root'"
+msgstr "không thể kết hợp “--keep-base†vá»›i “--rootâ€"
+
+#: builtin/rebase.c:1582
msgid "No rebase in progress?"
msgstr "Không có tiến trình rebase nào phải không?"
-#: builtin/rebase.c:1555
+#: builtin/rebase.c:1586
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:1578
+#: builtin/rebase.c:1609
msgid "Cannot read HEAD"
msgstr "Không thể Ä‘á»c HEAD"
-#: builtin/rebase.c:1590
+#: builtin/rebase.c:1621
msgid ""
"You must edit all merge conflicts and then\n"
"mark them as resolved using git add"
@@ -17536,16 +17629,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:1609
+#: builtin/rebase.c:1640
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:1628
+#: builtin/rebase.c:1659
#, c-format
msgid "could not move back to %s"
msgstr "không thể quay trở lại %s"
-#: builtin/rebase.c:1673
+#: builtin/rebase.c:1704
#, c-format
msgid ""
"It seems that there is already a %s directory, and\n"
@@ -17566,164 +17659,156 @@ 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:1694
+#: builtin/rebase.c:1725
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:1735
+#: builtin/rebase.c:1766
#, c-format
msgid "Unknown mode: %s"
msgstr "Không hiểu chế độ: %s"
-#: builtin/rebase.c:1757
+#: builtin/rebase.c:1788
msgid "--strategy requires --merge or --interactive"
msgstr "--strategy cần --merge hay --interactive"
-#: builtin/rebase.c:1797
+#: builtin/rebase.c:1828
msgid "--reschedule-failed-exec requires --exec or --interactive"
msgstr "--reschedule-failed-exec cần --exec hay --interactive"
-#: builtin/rebase.c:1809
+#: builtin/rebase.c:1840
msgid "cannot combine am options with either interactive or merge options"
msgstr ""
"không thể tổ hợp các tùy chá»n am vá»›i các tùy chá»n tÆ°Æ¡ng tác hay hòa trá»™n"
-#: builtin/rebase.c:1828
+#: builtin/rebase.c:1859
msgid "cannot combine '--preserve-merges' with '--rebase-merges'"
msgstr "không thể kết hợp “--preserve-merges†vá»›i “--rebase-mergesâ€"
-#: builtin/rebase.c:1832
+#: builtin/rebase.c:1863
msgid ""
"error: cannot combine '--preserve-merges' with '--reschedule-failed-exec'"
msgstr "không thể kết hợp “--preserve-merges†vá»›i “--reschedule-failed-execâ€"
-#: builtin/rebase.c:1838
-msgid "cannot combine '--rebase-merges' with '--strategy-option'"
-msgstr "không thể kết hợp “--rebase-merges†vá»›i “--strategy-optionâ€"
-
-#: builtin/rebase.c:1841
-msgid "cannot combine '--rebase-merges' with '--strategy'"
-msgstr "không thể kết hợp “--rebase-merges†vá»›i “--strategyâ€"
-
-#: builtin/rebase.c:1865
+#: builtin/rebase.c:1887
#, c-format
msgid "invalid upstream '%s'"
msgstr "thượng nguồn không hợp lệ “%sâ€"
-#: builtin/rebase.c:1871
+#: builtin/rebase.c:1893
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:1889
+#: builtin/rebase.c:1919
+#, 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:1922
#, 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:1896
+#: builtin/rebase.c:1930
#, 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:1921
+#: builtin/rebase.c:1955
#, c-format
msgid "fatal: no such branch/commit '%s'"
msgstr "nghiêm trá»ng: không có nhánh/lần chuyển giao “%s†nhÆ° thế"
-#: builtin/rebase.c:1929 builtin/submodule--helper.c:38
+#: builtin/rebase.c:1963 builtin/submodule--helper.c:38
#: builtin/submodule--helper.c:1934
#, c-format
msgid "No such ref: %s"
msgstr "Không có tham chiếu nào như thế: %s"
-#: builtin/rebase.c:1940
+#: builtin/rebase.c:1974
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:1981
+#: builtin/rebase.c:2012
msgid "Cannot autostash"
msgstr "Không thể autostash"
-#: builtin/rebase.c:1984
+#: builtin/rebase.c:2015
#, c-format
msgid "Unexpected stash response: '%s'"
msgstr "Gặp đáp ứng stash không cần: “%sâ€"
-#: builtin/rebase.c:1990
+#: builtin/rebase.c:2021
#, c-format
msgid "Could not create directory for '%s'"
msgstr "Không thể tạo thÆ° mục cho “%sâ€"
-#: builtin/rebase.c:1993
+#: builtin/rebase.c:2024
#, c-format
msgid "Created autostash: %s\n"
msgstr "Äã tạo autostash: %s\n"
-#: builtin/rebase.c:1996
+#: builtin/rebase.c:2027
msgid "could not reset --hard"
msgstr "không thể reset --hard"
-#: builtin/rebase.c:1997 builtin/reset.c:114
-#, c-format
-msgid "HEAD is now at %s"
-msgstr "HEAD hiện giỠtại %s"
-
-#: builtin/rebase.c:2013
+#: builtin/rebase.c:2036
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:2040
+#: builtin/rebase.c:2063
#, c-format
msgid "could not parse '%s'"
msgstr "không thể phân tích cú pháp “%sâ€"
-#: builtin/rebase.c:2053
+#: builtin/rebase.c:2076
#, c-format
msgid "could not switch to %s"
msgstr "không thể chuyển đến %s"
-#: builtin/rebase.c:2064
+#: builtin/rebase.c:2087
msgid "HEAD is up to date."
msgstr "HEAD đã cập nhật."
-#: builtin/rebase.c:2066
+#: builtin/rebase.c:2089
#, 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:2074
+#: builtin/rebase.c:2097
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:2076
+#: builtin/rebase.c:2099
#, 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:2084
+#: builtin/rebase.c:2107
msgid "The pre-rebase hook refused to rebase."
msgstr "Móc (hook) pre-rebase từ chối rebase."
-#: builtin/rebase.c:2091
+#: builtin/rebase.c:2114
#, c-format
msgid "Changes to %s:\n"
msgstr "Thay đổi thành %s:\n"
-#: builtin/rebase.c:2094
+#: builtin/rebase.c:2117
#, c-format
msgid "Changes from %s to %s:\n"
msgstr "Thay đổi từ %s thành %s:\n"
-#: builtin/rebase.c:2119
+#: builtin/rebase.c:2142
#, 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:2128
+#: builtin/rebase.c:2151
msgid "Could not detach HEAD"
msgstr "Không thể tách rá»i HEAD"
-#: builtin/rebase.c:2137
+#: builtin/rebase.c:2160
#, c-format
msgid "Fast-forwarded %s to %s.\n"
msgstr "Chuyển-tiếp-nhanh %s đến %s.\n"
@@ -17732,7 +17817,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:832
+#: builtin/receive-pack.c:830
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"
@@ -17762,7 +17847,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:852
+#: builtin/receive-pack.c:850
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"
@@ -17783,11 +17868,11 @@ msgstr ""
"\n"
"Äể chấm dứt lá»i nhắn này, bạn hãy đặt nó thành “refuseâ€."
-#: builtin/receive-pack.c:1938
+#: builtin/receive-pack.c:1936
msgid "quiet"
msgstr "im lặng"
-#: builtin/receive-pack.c:1952
+#: builtin/receive-pack.c:1950
msgid "You must specify a directory."
msgstr "Bạn phải chỉ định thư mục."
@@ -18353,11 +18438,11 @@ msgstr "chi tiết; phải được đặt trước một lệnh-con"
msgid "Unknown subcommand: %s"
msgstr "Không hiểu câu lệnh con: %s"
-#: builtin/repack.c:22
+#: builtin/repack.c:23
msgid "git repack [<options>]"
msgstr "git repack [<các tùy chá»n>]"
-#: builtin/repack.c:27
+#: builtin/repack.c:28
msgid ""
"Incremental repacks are incompatible with bitmap indexes. Use\n"
"--no-write-bitmap-index or disable the pack.writebitmaps configuration."
@@ -18365,115 +18450,115 @@ 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:190
+#: builtin/repack.c:191
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:229 builtin/repack.c:408
+#: builtin/repack.c:230 builtin/repack.c:409
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:246
+#: builtin/repack.c:247
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:284
+#: builtin/repack.c:285
msgid "pack everything in a single pack"
msgstr "đóng gói má»i thứ trong má»™t gói Ä‘Æ¡n"
-#: builtin/repack.c:286
+#: builtin/repack.c:287
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:289
+#: builtin/repack.c:290
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:291
+#: builtin/repack.c:292
msgid "pass --no-reuse-delta to git-pack-objects"
msgstr "chuyển --no-reuse-delta cho git-pack-objects"
-#: builtin/repack.c:293
+#: builtin/repack.c:294
msgid "pass --no-reuse-object to git-pack-objects"
msgstr "chuyển --no-reuse-object cho git-pack-objects"
-#: builtin/repack.c:295
+#: builtin/repack.c:296
msgid "do not run git-update-server-info"
msgstr "không chạy git-update-server-info"
-#: builtin/repack.c:298
+#: builtin/repack.c:299
msgid "pass --local to git-pack-objects"
msgstr "chuyển --local cho git-pack-objects"
-#: builtin/repack.c:300
+#: builtin/repack.c:301
msgid "write bitmap index"
msgstr "ghi mục lục ánh xạ"
-#: builtin/repack.c:302
+#: builtin/repack.c:303
msgid "pass --delta-islands to git-pack-objects"
msgstr "chuyển --delta-islands cho git-pack-objects"
-#: builtin/repack.c:303
+#: builtin/repack.c:304
msgid "approxidate"
msgstr "ngày ước tính"
-#: builtin/repack.c:304
+#: builtin/repack.c:305
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:306
+#: builtin/repack.c:307
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:308
+#: builtin/repack.c:309
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:309 builtin/repack.c:315
+#: builtin/repack.c:310 builtin/repack.c:316
msgid "bytes"
msgstr "byte"
-#: builtin/repack.c:310
+#: builtin/repack.c:311
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:312
+#: builtin/repack.c:313
msgid "limits the maximum delta depth"
msgstr "giá»›i hạn Ä‘á»™ sâu tối Ä‘a của “deltaâ€"
-#: builtin/repack.c:314
+#: builtin/repack.c:315
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:316
+#: builtin/repack.c:317
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:318
+#: builtin/repack.c:319
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:320
+#: builtin/repack.c:321
msgid "do not repack this pack"
msgstr "đừng đóng gói lại gói này"
-#: builtin/repack.c:330
+#: builtin/repack.c:331
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:334
+#: builtin/repack.c:335
msgid "--keep-unreachable and -A are incompatible"
msgstr "--keep-unreachable và -A xung khắc nhau"
-#: builtin/repack.c:417
+#: builtin/repack.c:418
msgid "Nothing new to pack."
msgstr "Không có gì mới để mà đóng gói."
-#: builtin/repack.c:478
+#: builtin/repack.c:479
#, c-format
msgid ""
"WARNING: Some packs in use have been renamed by\n"
@@ -18492,7 +18577,7 @@ msgstr ""
"CẢNH BÃO: nguyên gốc của nó cÅ©ng gặp lá»—i.\n"
"CẢNH BÃO: Vui lòng đổi tên chúng trong %s bằng tay:\n"
-#: builtin/repack.c:526
+#: builtin/repack.c:527
#, c-format
msgid "failed to remove '%s'"
msgstr "gặp lá»—i khi gỡ bỠ“%sâ€"
@@ -18600,8 +18685,8 @@ msgstr "không thể fstat %s"
msgid "unable to write object to database"
msgstr "không thể ghi đối tượng vào cơ sở dữ liệu"
-#: builtin/replace.c:322 builtin/replace.c:377 builtin/replace.c:422
-#: builtin/replace.c:452
+#: builtin/replace.c:322 builtin/replace.c:378 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â€"
@@ -18620,22 +18705,22 @@ msgstr "việc sửa tập tin đối tượng gặp lỗi"
msgid "new object is the same as the old one: '%s'"
msgstr "đối tượng má»›i là giống vá»›i cái cÅ©: “%sâ€"
-#: builtin/replace.c:383
+#: builtin/replace.c:384
#, c-format
msgid "could not parse %s as a commit"
msgstr "không thể phân tích %s như là một lần chuyển giao"
-#: builtin/replace.c:414
+#: builtin/replace.c:415
#, c-format
msgid "bad mergetag in commit '%s'"
msgstr "thẻ hòa trá»™n sai trong lần chuyển giao “%sâ€"
-#: builtin/replace.c:416
+#: builtin/replace.c:417
#, c-format
msgid "malformed mergetag in commit '%s'"
msgstr "thẻ hòa trá»™n không đúng dạng ở lần chuyển giao “%sâ€"
-#: builtin/replace.c:428
+#: builtin/replace.c:429
#, c-format
msgid ""
"original commit '%s' contains mergetag '%s' that is discarded; use --edit "
@@ -18644,31 +18729,31 @@ msgstr ""
"lần chuyển giao gốc “%s†có chứa thẻ hòa trá»™n “%s†cái mà bị loại bá»; dùng "
"tùy chá»n --edit thay cho --graft"
-#: builtin/replace.c:467
+#: builtin/replace.c:468
#, c-format
msgid "the original commit '%s' has a gpg signature"
msgstr "lần chuyển giao gốc “%s†có chữ ký GPG"
-#: builtin/replace.c:468
+#: builtin/replace.c:469
msgid "the signature will be removed in the replacement commit!"
msgstr "chữ ký sẽ được bỠđi trong lần chuyển giao thay thế!"
-#: builtin/replace.c:478
+#: builtin/replace.c:479
#, c-format
msgid "could not write replacement commit for: '%s'"
msgstr "không thể ghi lần chuyển giao thay thế cho: “%sâ€"
-#: builtin/replace.c:486
+#: builtin/replace.c:487
#, c-format
msgid "graft for '%s' unnecessary"
msgstr "graft cho “%s†không cần thiết"
-#: builtin/replace.c:490
+#: builtin/replace.c:491
#, c-format
msgid "new commit is the same as the old one: '%s'"
msgstr "lần chuyển giao má»›i là giống vá»›i cái cÅ©: “%sâ€"
-#: builtin/replace.c:525
+#: builtin/replace.c:526
#, c-format
msgid ""
"could not convert the following graft(s):\n"
@@ -18677,71 +18762,71 @@ msgstr ""
"không thể chuyển đổi các graft sau đây:\n"
"%s"
-#: builtin/replace.c:546
+#: builtin/replace.c:547
msgid "list replace refs"
msgstr "liệt kê các refs thay thế"
-#: builtin/replace.c:547
+#: builtin/replace.c:548
msgid "delete replace refs"
msgstr "xóa tham chiếu thay thế"
-#: builtin/replace.c:548
+#: builtin/replace.c:549
msgid "edit existing object"
msgstr "sửa đối tượng sẵn có"
-#: builtin/replace.c:549
+#: builtin/replace.c:550
msgid "change a commit's parents"
msgstr "thay đổi cha mẹ của lần chuyển giao"
-#: builtin/replace.c:550
+#: builtin/replace.c:551
msgid "convert existing graft file"
msgstr "chuyển đổi các tập tin graft sẵn có"
-#: builtin/replace.c:551
+#: builtin/replace.c:552
msgid "replace the ref if it exists"
msgstr "thay thế tham chiếu nếu nó đã sẵn có"
-#: builtin/replace.c:553
+#: builtin/replace.c:554
msgid "do not pretty-print contents for --edit"
msgstr "đừng in đẹp các nội dung cho --edit"
-#: builtin/replace.c:554
+#: builtin/replace.c:555
msgid "use this format"
msgstr "dùng định dạng này"
-#: builtin/replace.c:567
+#: builtin/replace.c:568
msgid "--format cannot be used when not listing"
msgstr "--format không thể được dùng khi không liệt kê gì"
-#: builtin/replace.c:575
+#: builtin/replace.c:576
msgid "-f only makes sense when writing a replacement"
msgstr "-f chỉ hợp lý khi ghi một cái thay thế"
-#: builtin/replace.c:579
+#: builtin/replace.c:580
msgid "--raw only makes sense with --edit"
msgstr "--raw chỉ hợp lý với --edit"
-#: builtin/replace.c:585
+#: builtin/replace.c:586
msgid "-d needs at least one argument"
msgstr "-d cần ít nhất một tham số"
-#: builtin/replace.c:591
+#: builtin/replace.c:592
msgid "bad number of arguments"
msgstr "số đối số không đúng"
-#: builtin/replace.c:597
+#: builtin/replace.c:598
msgid "-e needs exactly one argument"
msgstr "-e cần chính các là một đối số"
-#: builtin/replace.c:603
+#: builtin/replace.c:604
msgid "-g needs at least one argument"
msgstr "-q cần ít nhất một tham số"
-#: builtin/replace.c:609
+#: builtin/replace.c:610
msgid "--convert-graft-file takes no argument"
msgstr "--convert-graft-file không nhận đối số"
-#: builtin/replace.c:615
+#: builtin/replace.c:616
msgid "only one pattern can be given with -l"
msgstr "chỉ má»™t mẫu được chỉ ra vá»›i tùy chá»n -l"
@@ -18810,13 +18895,18 @@ msgstr "Gặp lỗi khi tìm cây của HEAD."
msgid "Failed to find tree of %s."
msgstr "Gặp lỗi khi tìm cây của %s."
+#: builtin/reset.c:114
+#, c-format
+msgid "HEAD is now at %s"
+msgstr "HEAD hiện giỠtại %s"
+
#: builtin/reset.c:193
#, 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:293 builtin/stash.c:514 builtin/stash.c:589
-#: builtin/stash.c:613
+#: builtin/reset.c:293 builtin/stash.c:520 builtin/stash.c:595
+#: builtin/stash.c:619
msgid "be quiet, only report errors"
msgstr "làm việc ở chế độ im lặng, chỉ hiển thị khi có lỗi"
@@ -18901,24 +18991,19 @@ msgstr "Không thể đặt lại (reset) bảng mục lục thành điểm xét
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:412
+#: builtin/rev-list.c:411
msgid "cannot combine --exclude-promisor-objects and --missing"
msgstr "không thể tổ hợp --exclude-promisor-objects và --missing"
-#: builtin/rev-list.c:473
+#: builtin/rev-list.c:472
msgid "object filtering requires --objects"
msgstr "lá»c đối tượng yêu cầu --objects"
-#: builtin/rev-list.c:476
-#, c-format
-msgid "invalid sparse value '%s'"
-msgstr "giá trị sparse không hợp lệ “%sâ€"
-
-#: builtin/rev-list.c:527
+#: builtin/rev-list.c:522
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:530
+#: builtin/rev-list.c:525
msgid "cannot combine --use-bitmap-index with object filtering"
msgstr "không thể tổ hợp --use-bitmap-index vá»›i lá»c đối tượng"
@@ -19454,134 +19539,134 @@ msgstr "xung đột trong bảng mục lục. Hãy thử mà không dùng tùy c
msgid "could not save index tree"
msgstr "không thể ghi lại cây chỉ mục"
-#: builtin/stash.c:434
+#: builtin/stash.c:436
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:448
+#: builtin/stash.c:450
#, c-format
msgid "Merging %s with %s"
msgstr "Äang hòa trá»™n %s vá»›i %s"
-#: builtin/stash.c:458 git-legacy-stash.sh:680
+#: builtin/stash.c:460 git-legacy-stash.sh:680
msgid "Index was not unstashed."
msgstr "Bảng mục lục đã không được bỠstash."
-#: builtin/stash.c:516 builtin/stash.c:615
+#: builtin/stash.c:522 builtin/stash.c:621
msgid "attempt to recreate the index"
msgstr "gặp lá»—i Ä‘á»c bảng mục lục"
-#: builtin/stash.c:549
+#: builtin/stash.c:555
#, c-format
msgid "Dropped %s (%s)"
msgstr "Äã xóa %s (%s)"
-#: builtin/stash.c:552
+#: builtin/stash.c:558
#, c-format
msgid "%s: Could not drop stash entry"
msgstr "%s: Không thể xóa bỠmục stash"
-#: builtin/stash.c:577
+#: builtin/stash.c:583
#, c-format
msgid "'%s' is not a stash reference"
msgstr "â€%s†không phải tham chiếu đến stash"
-#: builtin/stash.c:627 git-legacy-stash.sh:694
+#: builtin/stash.c:633 git-legacy-stash.sh:694
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:650 git-legacy-stash.sh:712
+#: builtin/stash.c:656 git-legacy-stash.sh:712
msgid "No branch name specified"
msgstr "Chưa chỉ ra tên của nhánh"
-#: builtin/stash.c:790 builtin/stash.c:827
+#: builtin/stash.c:796 builtin/stash.c:833
#, c-format
msgid "Cannot update %s with %s"
msgstr "Không thể cập nhật %s với %s"
-#: builtin/stash.c:808 builtin/stash.c:1461 builtin/stash.c:1497
+#: builtin/stash.c:814 builtin/stash.c:1470 builtin/stash.c:1506
msgid "stash message"
msgstr "phần chú thích cho stash"
-#: builtin/stash.c:818
+#: builtin/stash.c:824
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:1040 git-legacy-stash.sh:217
+#: builtin/stash.c:1046 git-legacy-stash.sh:217
msgid "No changes selected"
msgstr "ChÆ°a có thay đổi nào được chá»n"
-#: builtin/stash.c:1136 git-legacy-stash.sh:150
+#: builtin/stash.c:1145 git-legacy-stash.sh:150
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:1163 git-legacy-stash.sh:165
+#: builtin/stash.c:1172 git-legacy-stash.sh:165
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:1172 git-legacy-stash.sh:180
+#: builtin/stash.c:1181 git-legacy-stash.sh:180
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:1183 builtin/stash.c:1192 git-legacy-stash.sh:200
+#: builtin/stash.c:1192 builtin/stash.c:1201 git-legacy-stash.sh:200
#: git-legacy-stash.sh:213
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:1220 git-legacy-stash.sh:233
+#: builtin/stash.c:1229 git-legacy-stash.sh:233
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:1269 git-legacy-stash.sh:337
+#: builtin/stash.c:1278 git-legacy-stash.sh:337
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:1285
+#: builtin/stash.c:1294
msgid "Did you forget to 'git add'?"
msgstr "Có lẽ bạn đã quên “git add †phải không?"
-#: builtin/stash.c:1300 git-legacy-stash.sh:345
+#: builtin/stash.c:1309 git-legacy-stash.sh:345
msgid "No local changes to save"
msgstr "Không có thay đổi nội bộ nào được ghi lại"
-#: builtin/stash.c:1307 git-legacy-stash.sh:350
+#: builtin/stash.c:1316 git-legacy-stash.sh:350
msgid "Cannot initialize stash"
msgstr "Không thể khởi tạo stash"
-#: builtin/stash.c:1322 git-legacy-stash.sh:354
+#: builtin/stash.c:1331 git-legacy-stash.sh:354
msgid "Cannot save the current status"
msgstr "Không thể ghi lại trạng thái hiện hành"
-#: builtin/stash.c:1327
+#: builtin/stash.c:1336
#, 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:1417 git-legacy-stash.sh:384
+#: builtin/stash.c:1426 git-legacy-stash.sh:384
msgid "Cannot remove worktree changes"
msgstr "Không thể gỡ bỠcác thay đổi cây-làm-việc"
-#: builtin/stash.c:1452 builtin/stash.c:1488
+#: builtin/stash.c:1461 builtin/stash.c:1497
msgid "keep index"
msgstr "giữ nguyên bảng mục lục"
-#: builtin/stash.c:1454 builtin/stash.c:1490
+#: builtin/stash.c:1463 builtin/stash.c:1499
msgid "stash in patch mode"
msgstr "cất đi ở chế độ miếng vá"
-#: builtin/stash.c:1455 builtin/stash.c:1491
+#: builtin/stash.c:1464 builtin/stash.c:1500
msgid "quiet mode"
msgstr "chế độ im lặng"
-#: builtin/stash.c:1457 builtin/stash.c:1493
+#: builtin/stash.c:1466 builtin/stash.c:1502
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:1459 builtin/stash.c:1495
+#: builtin/stash.c:1468 builtin/stash.c:1504
msgid "include ignore files"
msgstr "bao gồm các tập tin bị bỠqua"
-#: builtin/stash.c:1555
+#: builtin/stash.c:1564
#, c-format
msgid "could not exec %s"
msgstr "không thể thực thi %s"
@@ -19953,9 +20038,9 @@ msgid "don't print cloning progress"
msgstr "đừng in tiến trình nhân bản"
#: builtin/submodule--helper.c:1877
-msgid "git submodule--helper update_clone [--prefix=<path>] [<path>...]"
+msgid "git submodule--helper update-clone [--prefix=<path>] [<path>...]"
msgstr ""
-"git submodule--helper update_clone [--prefix=</Ä‘Æ°á»ng/dẫn>] [</Ä‘Æ°á»ng/dẫn>…]"
+"git submodule--helper update-clone [--prefix=</Ä‘Æ°á»ng/dẫn>] [</Ä‘Æ°á»ng/dẫn>…]"
#: builtin/submodule--helper.c:1890
msgid "bad value for update parameter"
@@ -20008,7 +20093,7 @@ msgstr "git submodule--helper config --check-writeable"
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:2235 git.c:434 git.c:684
+#: builtin/submodule--helper.c:2235 git.c:433 git.c:683
#, c-format
msgid "%s doesn't support --super-prefix"
msgstr "%s không hỗ trợ --super-prefix"
@@ -20331,143 +20416,143 @@ 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:971
+#: builtin/update-index.c:972
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:974
+#: builtin/update-index.c:975
msgid "refresh: ignore submodules"
msgstr "refresh: lỠđi mô-đun-con"
-#: builtin/update-index.c:977
+#: builtin/update-index.c:978
msgid "do not ignore new files"
msgstr "không bỠqua các tập tin mới tạo"
-#: builtin/update-index.c:979
+#: builtin/update-index.c:980
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:981
+#: builtin/update-index.c:982
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:983
+#: builtin/update-index.c:984
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:986
+#: builtin/update-index.c:987
msgid "refresh stat information"
msgstr "lấy lại thông tin thống kê"
-#: builtin/update-index.c:990
+#: builtin/update-index.c:991
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:994
+#: builtin/update-index.c:995
msgid "<mode>,<object>,<path>"
msgstr "<chế_Ä‘á»™>,<đối_tượng>,<Ä‘Æ°á»ng_dẫn>"
-#: builtin/update-index.c:995
+#: builtin/update-index.c:996
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:1005
+#: builtin/update-index.c:1006
msgid "mark files as \"not changing\""
msgstr "đánh dấu các tập tin là \"không thay đổi\""
-#: builtin/update-index.c:1008
+#: builtin/update-index.c:1009
msgid "clear assumed-unchanged bit"
msgstr "xóa bít assumed-unchanged (giả định là không thay đổi)"
-#: builtin/update-index.c:1011
+#: builtin/update-index.c:1012
msgid "mark files as \"index-only\""
msgstr "đánh dấu các tập tin là “chỉ-Ä‘á»câ€"
-#: builtin/update-index.c:1014
+#: builtin/update-index.c:1015
msgid "clear skip-worktree bit"
msgstr "xóa bít skip-worktree"
-#: builtin/update-index.c:1017
+#: builtin/update-index.c:1018
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:1019
+#: builtin/update-index.c:1020
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:1021
+#: builtin/update-index.c:1022
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:1023
+#: builtin/update-index.c:1024
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:1027
+#: builtin/update-index.c:1028
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:1031
+#: builtin/update-index.c:1032
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:1035
+#: builtin/update-index.c:1036
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:1039
+#: builtin/update-index.c:1040
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:1042
+#: builtin/update-index.c:1043
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:1044
+#: builtin/update-index.c:1045
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:1048
+#: builtin/update-index.c:1049
msgid "write index in this format"
msgstr "ghi mục lục ở định dạng này"
-#: builtin/update-index.c:1050
+#: builtin/update-index.c:1051
msgid "enable or disable split index"
msgstr "bật/tắt chia cắt bảng mục lục"
-#: builtin/update-index.c:1052
+#: builtin/update-index.c:1053
msgid "enable/disable untracked cache"
msgstr "bật/tắt bộ đệm không theo vết"
-#: builtin/update-index.c:1054
+#: builtin/update-index.c:1055
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:1056
+#: builtin/update-index.c:1057
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:1058
+#: builtin/update-index.c:1059
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:1060
+#: builtin/update-index.c:1061
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:1062
+#: builtin/update-index.c:1063
msgid "mark files as fsmonitor valid"
msgstr "đánh dấu các tập tin là hợp lệ fsmonitor"
-#: builtin/update-index.c:1065
+#: builtin/update-index.c:1066
msgid "clear fsmonitor valid bit"
msgstr "xóa bít hợp lệ fsmonitor"
-#: builtin/update-index.c:1168
+#: builtin/update-index.c:1169
msgid ""
"core.splitIndex is set to false; remove or change it, if you really want to "
"enable split index"
@@ -20475,7 +20560,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:1177
+#: builtin/update-index.c:1178
msgid ""
"core.splitIndex is set to true; remove or change it, if you really want to "
"disable split index"
@@ -20483,7 +20568,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:1188
+#: builtin/update-index.c:1190
msgid ""
"core.untrackedCache is set to true; remove or change it, if you really want "
"to disable the untracked cache"
@@ -20491,11 +20576,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:1192
+#: builtin/update-index.c:1194
msgid "Untracked cache disabled"
msgstr "Nhớ đệm không theo vết bị tắt"
-#: builtin/update-index.c:1200
+#: builtin/update-index.c:1202
msgid ""
"core.untrackedCache is set to false; remove or change it, if you really want "
"to enable the untracked cache"
@@ -20503,29 +20588,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:1204
+#: builtin/update-index.c:1206
#, 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:1212
+#: builtin/update-index.c:1214
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:1216
+#: builtin/update-index.c:1218
msgid "fsmonitor enabled"
msgstr "fsmonitor được bật"
-#: builtin/update-index.c:1219
+#: builtin/update-index.c:1221
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:1223
+#: builtin/update-index.c:1225
msgid "fsmonitor disabled"
msgstr "fsmonitor bị tắt"
@@ -20617,90 +20702,90 @@ msgstr "git verify-tag [-v | --verbose] [--format=<định_dạng>] <thẻ>…"
msgid "print tag contents"
msgstr "hiển thị nội dung của thẻ"
-#: builtin/worktree.c:18
+#: builtin/worktree.c:17
msgid "git worktree add [<options>] <path> [<commit-ish>]"
msgstr "git worktree add [<các tùy chá»n>] </Ä‘Æ°á»ng/dẫn> [<commit-ish>]"
-#: builtin/worktree.c:19
+#: builtin/worktree.c:18
msgid "git worktree list [<options>]"
msgstr "git worktree list [<các tùy chá»n>]"
-#: builtin/worktree.c:20
+#: builtin/worktree.c:19
msgid "git worktree lock [<options>] <path>"
msgstr "git worktree lock [<các tùy chá»n>] </Ä‘Æ°á»ng/dẫn>"
-#: builtin/worktree.c:21
+#: builtin/worktree.c:20
msgid "git worktree move <worktree> <new-path>"
msgstr "git worktree move <worktree> </Ä‘Æ°á»ng/dẫn/má»›i>"
-#: builtin/worktree.c:22
+#: builtin/worktree.c:21
msgid "git worktree prune [<options>]"
msgstr "git worktree prune [<các tùy chá»n>]"
-#: builtin/worktree.c:23
+#: builtin/worktree.c:22
msgid "git worktree remove [<options>] <worktree>"
msgstr "git worktree remove [<các tùy chá»n>] <worktree>"
-#: builtin/worktree.c:24
+#: builtin/worktree.c:23
msgid "git worktree unlock <path>"
msgstr "git worktree unlock </Ä‘Æ°á»ng/dẫn>"
-#: builtin/worktree.c:61 builtin/worktree.c:899
+#: builtin/worktree.c:60 builtin/worktree.c:898
#, c-format
msgid "failed to delete '%s'"
msgstr "gặp lá»—i khi xóa “%sâ€"
-#: builtin/worktree.c:80
+#: builtin/worktree.c:79
#, c-format
msgid "Removing worktrees/%s: not a valid directory"
msgstr "Gỡ bỠcây làm việc/%s: không phải là thư mục hợp lệ"
-#: builtin/worktree.c:86
+#: builtin/worktree.c:85
#, c-format
msgid "Removing worktrees/%s: gitdir file does not exist"
msgstr "Gỡ bỠcây làm việc/%s: không có tập tin gitdir"
-#: builtin/worktree.c:91 builtin/worktree.c:100
+#: builtin/worktree.c:90 builtin/worktree.c:99
#, c-format
msgid "Removing worktrees/%s: unable to read gitdir file (%s)"
msgstr "Gỡ bá» cây làm việc/%s: không thể Ä‘á»c tập tin gitdir (%s)"
-#: builtin/worktree.c:110
+#: builtin/worktree.c:109
#, c-format
msgid ""
"Removing worktrees/%s: short read (expected %<PRIuMAX> bytes, read "
"%<PRIuMAX>)"
msgstr "Gỡ bá» cây làm việc/%s: Ä‘á»c ngắn (cần %<PRIuMAX> byte, Ä‘á»c %<PRIuMAX>)"
-#: builtin/worktree.c:118
+#: builtin/worktree.c:117
#, c-format
msgid "Removing worktrees/%s: invalid gitdir file"
msgstr "Gỡ bỠcây làm việc/%s: tập tin gitdir không hợp lệ"
-#: builtin/worktree.c:127
+#: builtin/worktree.c:126
#, c-format
msgid "Removing worktrees/%s: gitdir file points to non-existent location"
msgstr "Gỡ bỠcây làm việc/%s: tập tin gitdir chỉ đến vị trí không tồn tại"
-#: builtin/worktree.c:166
+#: builtin/worktree.c:165
msgid "report pruned working trees"
msgstr "báo cáo các cây làm việc đã prune"
-#: builtin/worktree.c:168
+#: builtin/worktree.c:167
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:235
+#: builtin/worktree.c:234
#, c-format
msgid "'%s' already exists"
msgstr "“%s†đã có từ trước rồi"
-#: builtin/worktree.c:252
+#: builtin/worktree.c:251
#, c-format
msgid "unable to re-add worktree '%s'"
msgstr "không thể thêm-lại cây “%sâ€"
-#: builtin/worktree.c:257
+#: builtin/worktree.c:256
#, c-format
msgid ""
"'%s' is a missing but locked worktree;\n"
@@ -20709,7 +20794,7 @@ msgstr ""
"“%s†bị mất nhưng cây làm việc bị khóa;\n"
"dùng “add -f -f†để ghi đè, hoặc “unlock†và “prune†hay “remove†để xóa"
-#: builtin/worktree.c:259
+#: builtin/worktree.c:258
#, c-format
msgid ""
"'%s' is a missing but already registered worktree;\n"
@@ -20718,120 +20803,120 @@ msgstr ""
"“%s†bị mất nhưng cây làm việc đã được đăng ký;\n"
"dùng “add -f†để ghi đè, hoặc “prune†hay “remove†để xóa"
-#: builtin/worktree.c:309
+#: builtin/worktree.c:308
#, c-format
msgid "could not create directory of '%s'"
msgstr "không thể tạo thÆ° mục của “%sâ€"
-#: builtin/worktree.c:440 builtin/worktree.c:446
+#: builtin/worktree.c:439 builtin/worktree.c:445
#, 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:442
+#: builtin/worktree.c:441
#, 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:451
+#: builtin/worktree.c:450
#, 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:457
+#: builtin/worktree.c:456
#, 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:498
+#: builtin/worktree.c:497
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:501
+#: builtin/worktree.c:500
msgid "create a new branch"
msgstr "tạo nhánh mới"
-#: builtin/worktree.c:503
+#: builtin/worktree.c:502
msgid "create or reset a branch"
msgstr "tạo hay đặt lại một nhánh"
-#: builtin/worktree.c:505
+#: builtin/worktree.c:504
msgid "populate the new working tree"
msgstr "di chuyển cây làm việc mới"
-#: builtin/worktree.c:506
+#: builtin/worktree.c:505
msgid "keep the new working tree locked"
msgstr "giữ cây làm việc mới bị khóa"
-#: builtin/worktree.c:509
+#: builtin/worktree.c:508
msgid "set up tracking mode (see git-branch(1))"
msgstr "cài đặt chế độ theo dõi (xem git-branch(1))"
-#: builtin/worktree.c:512
+#: builtin/worktree.c:511
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:520
+#: builtin/worktree.c:519
msgid "-b, -B, and --detach are mutually exclusive"
msgstr "Các tùy chá»n -b, -B, và --detach loại từ lẫn nhau"
-#: builtin/worktree.c:581
+#: builtin/worktree.c:580
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:681
+#: builtin/worktree.c:680
msgid "reason for locking"
msgstr "lý do khóa"
-#: builtin/worktree.c:693 builtin/worktree.c:726 builtin/worktree.c:800
-#: builtin/worktree.c:927
+#: builtin/worktree.c:692 builtin/worktree.c:725 builtin/worktree.c:799
+#: builtin/worktree.c:926
#, 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:695 builtin/worktree.c:728
+#: builtin/worktree.c:694 builtin/worktree.c:727
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:700
+#: builtin/worktree.c:699
#, c-format
msgid "'%s' is already locked, reason: %s"
msgstr "“%s†đã được khóa rồi, lý do: %s"
-#: builtin/worktree.c:702
+#: builtin/worktree.c:701
#, c-format
msgid "'%s' is already locked"
msgstr "“%s†đã được khóa rồi"
-#: builtin/worktree.c:730
+#: builtin/worktree.c:729
#, c-format
msgid "'%s' is not locked"
msgstr "“%s†chưa bị khóa"
-#: builtin/worktree.c:771
+#: builtin/worktree.c:770
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:779
+#: builtin/worktree.c:778
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:802 builtin/worktree.c:929
+#: builtin/worktree.c:801 builtin/worktree.c:928
#, c-format
msgid "'%s' is a main working tree"
msgstr "“%s†là cây làm việc chính"
-#: builtin/worktree.c:807
+#: builtin/worktree.c:806
#, 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:813
+#: builtin/worktree.c:812
#, c-format
msgid "target '%s' already exists"
msgstr "đích “%s†đã tồn tại rồi"
-#: builtin/worktree.c:821
+#: builtin/worktree.c:820
#, c-format
msgid ""
"cannot move a locked working tree, lock reason: %s\n"
@@ -20840,7 +20925,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:823
+#: builtin/worktree.c:822
msgid ""
"cannot move a locked working tree;\n"
"use 'move -f -f' to override or unlock first"
@@ -20848,36 +20933,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:826
+#: builtin/worktree.c:825
#, 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:831
+#: builtin/worktree.c:830
#, c-format
msgid "failed to move '%s' to '%s'"
msgstr "gặp lá»—i khi chuyển “%s†sang “%sâ€"
-#: builtin/worktree.c:879
+#: builtin/worktree.c:878
#, 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:883
+#: builtin/worktree.c:882
#, c-format
-msgid "'%s' is dirty, use --force to delete it"
-msgstr "“%s†đang bẩn, hãy dùng --force để xóa nó"
+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:888
+#: builtin/worktree.c:887
#, 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:911
+#: builtin/worktree.c:910
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:934
+#: builtin/worktree.c:933
#, c-format
msgid ""
"cannot remove a locked working tree, lock reason: %s\n"
@@ -20886,7 +20973,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:936
+#: builtin/worktree.c:935
msgid ""
"cannot remove a locked working tree;\n"
"use 'remove -f -f' to override or unlock first"
@@ -20894,7 +20981,7 @@ msgstr ""
"không thể xóa bỠmột cây-làm-việc bị khóa;\n"
"dùng “remove -f -f†để ghi đè hoặc mở khóa trước đã"
-#: builtin/worktree.c:939
+#: builtin/worktree.c:938
#, 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"
@@ -20915,6 +21002,16 @@ msgstr "ghi đối tượng cây (tree) cho <tiá»n tố> thÆ° mục con"
msgid "only useful for debugging"
msgstr "chỉ hữu ích khi cần gỡ lỗi"
+#: fast-import.c:3118
+#, c-format
+msgid "Expected 'mark' command, got %s"
+msgstr "Cần lệnh 'mark', nhưng lại nhận được %s"
+
+#: fast-import.c:3123
+#, c-format
+msgid "Expected 'to' command, got %s"
+msgstr "Cần lệnh 'to', nhưng lại nhận được %s"
+
#: credential-cache--daemon.c:223
#, c-format
msgid ""
@@ -21028,40 +21125,40 @@ msgstr ""
"bí danh “%s†thay đổi biến môi trÆ°á»ng.\n"
"Bạn có thể sử dụng “!git†trong đặt bí danh để làm việc này"
-#: git.c:377
+#: git.c:376
#, c-format
msgid "empty alias for %s"
msgstr "làm trống bí danh cho %s"
-#: git.c:380
+#: git.c:379
#, c-format
msgid "recursive alias: %s"
msgstr "đệ quy các bí danh: %s"
-#: git.c:460
+#: git.c:459
msgid "write failure on standard output"
msgstr "lỗi ghi nghiêm trong trên đầu ra tiêu chuẩn"
-#: git.c:462
+#: git.c:461
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:464
+#: git.c:463
msgid "close failed on standard output"
msgstr "gặp lỗi khi đóng đầu ra tiêu chuẩn"
-#: git.c:793
+#: git.c:792
#, 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:843
+#: git.c:842
#, 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:856
+#: git.c:855
#, c-format
msgid ""
"usage: %s\n"
@@ -21070,12 +21167,12 @@ msgstr ""
"cách dùng: %s\n"
"\n"
-#: git.c:876
+#: git.c:875
#, 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:888
+#: git.c:887
#, c-format
msgid "failed to run command '%s': %s\n"
msgstr "gặp lá»—i khi chạy lệnh “%sâ€: %s\n"
@@ -21093,34 +21190,34 @@ msgstr "Äiá»u khiển giao quyá»n không được há»— trợ vá»›i cURL < 7.2
msgid "Public key pinning not supported with cURL < 7.44.0"
msgstr "Chốt khóa công không được hỗ trợ với cURL < 7.44.0"
-#: http.c:876
+#: http.c:878
msgid "CURLSSLOPT_NO_REVOKE not supported with cURL < 7.44.0"
msgstr "CURLSSLOPT_NO_REVOKE không được hỗ trợ với cURL < 7.44.0"
-#: http.c:949
+#: http.c:951
msgid "Protocol restrictions not supported with cURL < 7.19.4"
msgstr "Các hạn chế giao thức không được hỗ trợ với cURL < 7.19.4"
-#: http.c:1085
+#: http.c:1088
#, c-format
msgid "Unsupported SSL backend '%s'. Supported SSL backends:"
msgstr ""
"Không há»— trợ ứng dụng SSL chạy phía sau “%sâ€. Há»— trợ ứng dụng SSL chạy phía "
"sau:"
-#: http.c:1092
+#: http.c:1095
#, c-format
msgid "Could not set SSL backend to '%s': cURL was built without SSL backends"
msgstr ""
"Không thể đặt ứng dụng chạy SSL phía sau “%sâ€: cURL được biên dịch không có "
"sự hỗ trợ ứng dụng chạy phía sau SSL"
-#: http.c:1096
+#: http.c:1099
#, c-format
msgid "Could not set SSL backend to '%s': already set"
msgstr "Không thể đặt ứng dụng chạy sau SSL cho “%sâ€: đã đặt rồi"
-#: http.c:1965
+#: http.c:1968
#, c-format
msgid ""
"unable to update url base from redirection:\n"
@@ -21131,130 +21228,130 @@ msgstr ""
" há»i cho: %s\n"
" chuyển hướng: %s"
-#: remote-curl.c:157
+#: remote-curl.c:166
#, 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:254
+#: remote-curl.c:263
#, 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:355
+#: remote-curl.c:364
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:386
+#: remote-curl.c:395
#, 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:446
+#: remote-curl.c:455
#, c-format
msgid "repository '%s' not found"
msgstr "không tìm thấy kho “%sâ€"
-#: remote-curl.c:450
+#: remote-curl.c:459
#, c-format
msgid "Authentication failed for '%s'"
msgstr "Xác thá»±c gặp lá»—i cho “%sâ€"
-#: remote-curl.c:454
+#: remote-curl.c:463
#, c-format
msgid "unable to access '%s': %s"
msgstr "không thể truy cập “%sâ€: %s"
-#: remote-curl.c:460
+#: remote-curl.c:469
#, c-format
msgid "redirecting to %s"
msgstr "chuyển hướng đến %s"
-#: remote-curl.c:584
+#: remote-curl.c:593
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:664
+#: remote-curl.c:673
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:724
+#: remote-curl.c:733
#, c-format
msgid "RPC failed; %s"
msgstr "RPC gặp lỗi; %s"
-#: remote-curl.c:764
+#: remote-curl.c:773
msgid "cannot handle pushes this big"
msgstr "không thể xử lý đẩy cái lớn này"
-#: remote-curl.c:879
+#: remote-curl.c:888
#, 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:883
+#: remote-curl.c:892
#, 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:1014
+#: remote-curl.c:1023
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:1028
+#: remote-curl.c:1037
msgid "fetch failed."
msgstr "lấy vỠgặp lỗi."
-#: remote-curl.c:1076
+#: remote-curl.c:1085
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:1120 remote-curl.c:1126
+#: remote-curl.c:1129 remote-curl.c:1135
#, 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:1138 remote-curl.c:1252
+#: remote-curl.c:1147 remote-curl.c:1261
#, c-format
msgid "http transport does not support %s"
msgstr "vận chuyển http không hỗ trợ %s"
-#: remote-curl.c:1174
+#: remote-curl.c:1183
msgid "git-http-push failed"
msgstr "git-http-push gặp lỗi"
-#: remote-curl.c:1360
+#: remote-curl.c:1367
msgid "remote-curl: usage: git remote-curl <remote> [<url>]"
msgstr "remote-curl: usage: git remote-curl <máy chủ> [<url>]"
-#: remote-curl.c:1392
+#: remote-curl.c:1399
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:1399
+#: remote-curl.c:1406
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:1439
+#: remote-curl.c:1446
#, c-format
msgid "remote-curl: unknown command '%s' from git"
msgstr "remote-curl: không hiểu lệnh “%s†từ git"
-#: list-objects-filter-options.h:61
+#: list-objects-filter-options.h:85
msgid "args"
msgstr "các_tham_số"
-#: list-objects-filter-options.h:62
+#: list-objects-filter-options.h:86
msgid "object filtering"
msgstr "lá»c đối tượng"
-#: parse-options.h:170
+#: parse-options.h:179
msgid "expiry-date"
msgstr "ngày hết hạn"
-#: parse-options.h:184
+#: parse-options.h:193
msgid "no-op (backward compatibility)"
msgstr "no-op (tương thích ngược)"
@@ -23669,6 +23766,47 @@ msgstr "Bá» qua %s vá»›i hậu tố sao lÆ°u dá»± phòng “%sâ€.\n"
msgid "Do you really want to send %s? [y|N]: "
msgstr "Bạn có thực sự muốn gửi %s? [y|N](có/KHÔNG): "
+#, c-format
+#~ msgid "unknown core.untrackedCache value '%s'; using 'keep' default value"
+#~ msgstr ""
+#~ "không hiểu giá trị core.untrackedCache “%sâ€; dùng giá trị mặc định “keepâ€"
+
+#~ msgid "cannot change partial clone promisor remote"
+#~ msgstr "không thể thay đổi nhân bản từng phần máy chủ promisor"
+
+#~ msgid "error building trees"
+#~ msgstr "gặp lỗi khi xây dựng cây"
+
+#, c-format
+#~ msgid "invalid date format '%s' in '%s'"
+#~ msgstr "định dạng ngày tháng không hợp lệ “%s†trong “%sâ€"
+
+#~ msgid "writing root commit"
+#~ msgstr "ghi chuyển giao gốc"
+
+#, c-format
+#~ msgid "staged changes in the following files may be lost: %s"
+#~ msgstr ""
+#~ "các thay đổi đã đưa lên bệ phóng trong các tập tin sau đây có thể bị mất: "
+#~ "%s"
+
+#~ msgid ""
+#~ "--filter can only be used with the remote configured in extensions."
+#~ "partialClone"
+#~ msgstr ""
+#~ "--filter chỉ có thể được dùng với máy chủ được cấu hình bằng extensions."
+#~ "partialClone"
+
+#~ msgid "verify commit-msg hook"
+#~ msgstr "thẩm tra móc (hook) commit-msg"
+
+#~ msgid "cannot combine '--rebase-merges' with '--strategy-option'"
+#~ msgstr "không thể kết hợp “--rebase-merges†vá»›i “--strategy-optionâ€"
+
+#, c-format
+#~ msgid "invalid sparse value '%s'"
+#~ msgstr "giá trị sparse không hợp lệ “%sâ€"
+
#~ msgid ""
#~ "Fetch normally indicates which branches had a forced update, but that "
#~ "check has been disabled."
@@ -24590,9 +24728,6 @@ msgstr "Bạn có thực sự muốn gửi %s? [y|N](có/KHÔNG): "
#~ msgid "no such user"
#~ msgstr "không có ngÆ°á»i dùng nhÆ° vậy"
-#~ msgid "Missing author: %s"
-#~ msgstr "Thiếu tên tác giả: %s"
-
#~ msgid "Testing "
#~ msgstr "Äang thá»­"
@@ -24645,9 +24780,6 @@ msgstr "Bạn có thực sự muốn gửi %s? [y|N](có/KHÔNG): "
#~ msgid "option %s does not accept negative form"
#~ msgstr "tùy chá»n %s không chấp nhận dạng thức âm"
-#~ msgid "unable to parse value '%s' for option %s"
-#~ msgstr "không thể phân tích giá trị “%s†cho tùy chá»n %s"
-
#~ msgid "-b and -B are mutually exclusive"
#~ msgstr "-b và -B loại từ lẫn nhau."
diff --git a/po/zh_CN.po b/po/zh_CN.po
index c6bdb3e..ba03b10 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -139,8 +139,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Git\n"
"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2019-08-10 20:12+0800\n"
-"PO-Revision-Date: 2019-08-13 21:16+0800\n"
+"POT-Creation-Date: 2019-10-28 13:19+0800\n"
+"PO-Revision-Date: 2019-10-30 14:58+0800\n"
"Last-Translator: Jiang Xin <worldhello.net@gmail.com>\n"
"Language-Team: GitHub <https://github.com/jiangxin/git/>\n"
"Language: zh_CN\n"
@@ -191,7 +191,7 @@ msgstr ""
msgid "Exiting because of an unresolved conflict."
msgstr "因为存在未解决的冲çªè€Œé€€å‡ºã€‚"
-#: advice.c:193 builtin/merge.c:1327
+#: advice.c:193 builtin/merge.c:1332
msgid "You have not concluded your merge (MERGE_HEAD exists)."
msgstr "您尚未结æŸæ‚¨çš„åˆå¹¶ï¼ˆå­˜åœ¨ MERGE_HEAD)。"
@@ -325,17 +325,7 @@ msgstr "第 %d 行包å«æ— æ•ˆæ–‡ä»¶æ¨¡å¼ï¼š%s"
msgid "inconsistent header lines %d and %d"
msgstr "ä¸ä¸€è‡´çš„文件头,%d 行和 %d è¡Œ"
-#: apply.c:1460
-#, c-format
-msgid "recount: unexpected line: %.*s"
-msgstr "recount:æ„外的行:%.*s"
-
-#: apply.c:1529
-#, c-format
-msgid "patch fragment without header at line %d: %.*s"
-msgstr "第 %d 行的补ä¸ç‰‡æ®µæ²¡æœ‰å¤´ä¿¡æ¯ï¼š%.*s"
-
-#: apply.c:1551
+#: apply.c:1372
#, c-format
msgid ""
"git diff header lacks filename information when removing %d leading pathname "
@@ -346,82 +336,92 @@ msgid_plural ""
msgstr[0] "当移除 %d 个å‰å¯¼è·¯å¾„åŽ git diff 头缺ä¹æ–‡ä»¶åä¿¡æ¯ï¼ˆç¬¬ %d 行)"
msgstr[1] "当移除 %d 个å‰å¯¼è·¯å¾„åŽ git diff 头缺ä¹æ–‡ä»¶åä¿¡æ¯ï¼ˆç¬¬ %d 行)"
-#: apply.c:1564
+#: apply.c:1385
#, c-format
msgid "git diff header lacks filename information (line %d)"
msgstr "git diff 的头信æ¯ä¸­ç¼ºä¹æ–‡ä»¶åä¿¡æ¯ï¼ˆç¬¬ %d 行)"
-#: apply.c:1752
+#: apply.c:1481
+#, c-format
+msgid "recount: unexpected line: %.*s"
+msgstr "recount:æ„外的行:%.*s"
+
+#: apply.c:1550
+#, c-format
+msgid "patch fragment without header at line %d: %.*s"
+msgstr "第 %d 行的补ä¸ç‰‡æ®µæ²¡æœ‰å¤´ä¿¡æ¯ï¼š%.*s"
+
+#: apply.c:1753
msgid "new file depends on old contents"
msgstr "新文件ä¾èµ–旧内容"
-#: apply.c:1754
+#: apply.c:1755
msgid "deleted file still has contents"
msgstr "删除的文件ä»æœ‰å†…容"
-#: apply.c:1788
+#: apply.c:1789
#, c-format
msgid "corrupt patch at line %d"
msgstr "è¡¥ä¸åœ¨ç¬¬ %d è¡ŒæŸå"
-#: apply.c:1825
+#: apply.c:1826
#, c-format
msgid "new file %s depends on old contents"
msgstr "新文件 %s ä¾èµ–旧内容"
-#: apply.c:1827
+#: apply.c:1828
#, c-format
msgid "deleted file %s still has contents"
msgstr "删除的文件 %s ä»æœ‰å†…容"
-#: apply.c:1830
+#: apply.c:1831
#, c-format
msgid "** warning: file %s becomes empty but is not deleted"
msgstr "** 警告:文件 %s æˆä¸ºç©ºæ–‡ä»¶ä½†å¹¶æœªåˆ é™¤"
-#: apply.c:1977
+#: apply.c:1978
#, c-format
msgid "corrupt binary patch at line %d: %.*s"
msgstr "二进制补ä¸åœ¨ç¬¬ %d è¡ŒæŸå:%.*s"
-#: apply.c:2014
+#: apply.c:2015
#, c-format
msgid "unrecognized binary patch at line %d"
msgstr "未能识别的二进制补ä¸ä½äºŽç¬¬ %d è¡Œ"
-#: apply.c:2176
+#: apply.c:2177
#, c-format
msgid "patch with only garbage at line %d"
msgstr "è¡¥ä¸æ–‡ä»¶çš„第 %d è¡Œåªæœ‰åžƒåœ¾æ•°æ®"
-#: apply.c:2262
+#: apply.c:2263
#, c-format
msgid "unable to read symlink %s"
msgstr "无法读å–符å·é“¾æŽ¥ %s"
-#: apply.c:2266
+#: apply.c:2267
#, c-format
msgid "unable to open or read %s"
msgstr "ä¸èƒ½æ‰“å¼€æˆ–è¯»å– %s"
-#: apply.c:2925
+#: apply.c:2926
#, c-format
msgid "invalid start of line: '%c'"
msgstr "无效的行首字符:'%c'"
-#: apply.c:3046
+#: apply.c:3047
#, 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:3058
+#: apply.c:3059
#, c-format
msgid "Context reduced to (%ld/%ld) to apply fragment at %d"
msgstr "上下文å‡å°‘到(%ld/%ld)以在第 %d 行应用补ä¸ç‰‡æ®µ"
-#: apply.c:3064
+#: apply.c:3065
#, c-format
msgid ""
"while searching for:\n"
@@ -430,445 +430,445 @@ msgstr ""
"当查询:\n"
"%.*s"
-#: apply.c:3086
+#: apply.c:3087
#, c-format
msgid "missing binary patch data for '%s'"
msgstr "缺失 '%s' 的二进制补ä¸æ•°æ®"
-#: apply.c:3094
+#: apply.c:3095
#, c-format
msgid "cannot reverse-apply a binary patch without the reverse hunk to '%s'"
msgstr "ä¸èƒ½åå‘应用一个缺少到 '%s' çš„åå‘æ•°æ®å—的二进制补ä¸"
-#: apply.c:3141
+#: apply.c:3142
#, c-format
msgid "cannot apply binary patch to '%s' without full index line"
msgstr "ä¸èƒ½åœ¨ '%s' 上应用没有完整索引行的二进制补ä¸"
-#: apply.c:3151
+#: apply.c:3152
#, c-format
msgid ""
"the patch applies to '%s' (%s), which does not match the current contents."
msgstr "è¡¥ä¸åº”用到 '%s'(%s),但是和当å‰å†…容ä¸åŒ¹é…。"
-#: apply.c:3159
+#: apply.c:3160
#, c-format
msgid "the patch applies to an empty '%s' but it is not empty"
msgstr "è¡¥ä¸åº”用到空文件 '%s',但其并éžç©ºæ–‡ä»¶"
-#: apply.c:3177
+#: apply.c:3178
#, c-format
msgid "the necessary postimage %s for '%s' cannot be read"
msgstr "æ— æ³•è¯»å– '%2$s' 必需的目标文件 %1$s"
-#: apply.c:3190
+#: apply.c:3191
#, c-format
msgid "binary patch does not apply to '%s'"
msgstr "二进制补ä¸æœªåº”用到 '%s'"
-#: apply.c:3196
+#: apply.c:3197
#, c-format
msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)"
msgstr "到 '%s' 的二进制补ä¸äº§ç”Ÿäº†ä¸æ­£ç¡®çš„结果(应为 %s,å´ä¸º %s)"
-#: apply.c:3217
+#: apply.c:3218
#, c-format
msgid "patch failed: %s:%ld"
msgstr "打补ä¸å¤±è´¥ï¼š%s:%ld"
-#: apply.c:3340
+#: apply.c:3341
#, c-format
msgid "cannot checkout %s"
msgstr "ä¸èƒ½æ£€å‡º %s"
-#: apply.c:3392 apply.c:3403 apply.c:3449 midx.c:62 setup.c:279
+#: apply.c:3393 apply.c:3404 apply.c:3450 midx.c:61 setup.c:280
#, c-format
msgid "failed to read %s"
msgstr "æ— æ³•è¯»å– %s"
-#: apply.c:3400
+#: apply.c:3401
#, c-format
msgid "reading from '%s' beyond a symbolic link"
msgstr "读å–ä½äºŽç¬¦å·é“¾æŽ¥ä¸­çš„ '%s'"
-#: apply.c:3429 apply.c:3672
+#: apply.c:3430 apply.c:3673
#, c-format
msgid "path %s has been renamed/deleted"
msgstr "路径 %s å·²ç»è¢«é‡å‘½å/删除"
-#: apply.c:3515 apply.c:3687
+#: apply.c:3516 apply.c:3688
#, c-format
msgid "%s: does not exist in index"
msgstr "%s:ä¸å­˜åœ¨äºŽç´¢å¼•ä¸­"
-#: apply.c:3524 apply.c:3695
+#: apply.c:3525 apply.c:3696
#, c-format
msgid "%s: does not match index"
msgstr "%s:和索引ä¸åŒ¹é…"
-#: apply.c:3559
+#: apply.c:3560
msgid "repository lacks the necessary blob to fall back on 3-way merge."
msgstr "仓库缺ä¹å¿…è¦çš„æ•°æ®å¯¹è±¡ä»¥è¿›è¡Œä¸‰æ–¹åˆå¹¶ã€‚"
-#: apply.c:3562
+#: apply.c:3563
#, c-format
msgid "Falling back to three-way merge...\n"
msgstr "回è½åˆ°ä¸‰æ–¹åˆå¹¶...\n"
-#: apply.c:3578 apply.c:3582
+#: apply.c:3579 apply.c:3583
#, c-format
msgid "cannot read the current contents of '%s'"
msgstr "æ— æ³•è¯»å– '%s' 的当å‰å†…容"
-#: apply.c:3594
+#: apply.c:3595
#, c-format
msgid "Failed to fall back on three-way merge...\n"
msgstr "无法回è½åˆ°ä¸‰æ–¹åˆå¹¶...\n"
-#: apply.c:3608
+#: apply.c:3609
#, c-format
msgid "Applied patch to '%s' with conflicts.\n"
msgstr "应用补ä¸åˆ° '%s' 存在冲çªã€‚\n"
-#: apply.c:3613
+#: apply.c:3614
#, c-format
msgid "Applied patch to '%s' cleanly.\n"
msgstr "æˆåŠŸåº”用补ä¸åˆ° '%s'。\n"
-#: apply.c:3639
+#: apply.c:3640
msgid "removal patch leaves file contents"
msgstr "移除补ä¸ä»ç•™ä¸‹äº†æ–‡ä»¶å†…容"
-#: apply.c:3712
+#: apply.c:3713
#, c-format
msgid "%s: wrong type"
msgstr "%s:错误类型"
-#: apply.c:3714
+#: apply.c:3715
#, c-format
msgid "%s has type %o, expected %o"
msgstr "%s 的类型是 %o,应为 %o"
-#: apply.c:3865 apply.c:3867 read-cache.c:830 read-cache.c:856
+#: apply.c:3866 apply.c:3868 read-cache.c:830 read-cache.c:856
#: read-cache.c:1309
#, c-format
msgid "invalid path '%s'"
msgstr "无效路径 '%s'"
-#: apply.c:3923
+#: apply.c:3924
#, c-format
msgid "%s: already exists in index"
msgstr "%s:已ç»å­˜åœ¨äºŽç´¢å¼•ä¸­"
-#: apply.c:3926
+#: apply.c:3927
#, c-format
msgid "%s: already exists in working directory"
msgstr "%s:已ç»å­˜åœ¨äºŽå·¥ä½œåŒºä¸­"
-#: apply.c:3946
+#: apply.c:3947
#, c-format
msgid "new mode (%o) of %s does not match old mode (%o)"
msgstr "%2$s 的新模å¼ï¼ˆ%1$o)和旧模å¼ï¼ˆ%3$o)ä¸åŒ¹é…"
-#: apply.c:3951
+#: apply.c:3952
#, 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:3971
+#: apply.c:3972
#, c-format
msgid "affected file '%s' is beyond a symbolic link"
msgstr "å—å½±å“的文件 '%s' ä½äºŽç¬¦å·é“¾æŽ¥ä¸­"
-#: apply.c:3975
+#: apply.c:3976
#, c-format
msgid "%s: patch does not apply"
msgstr "%s:补ä¸æœªåº”用"
-#: apply.c:3990
+#: apply.c:3991
#, c-format
msgid "Checking patch %s..."
msgstr "æ­£åœ¨æ£€æŸ¥è¡¥ä¸ %s..."
-#: apply.c:4082
+#: apply.c:4083
#, c-format
msgid "sha1 information is lacking or useless for submodule %s"
msgstr "å­æ¨¡ç»„ %s çš„ sha1 ä¿¡æ¯ç¼ºå¤±æˆ–无效"
-#: apply.c:4089
+#: apply.c:4090
#, c-format
msgid "mode change for %s, which is not in current HEAD"
msgstr "%s 的模å¼å˜æ›´ï¼Œä½†å®ƒä¸åœ¨å½“å‰ HEAD 中"
-#: apply.c:4092
+#: apply.c:4093
#, c-format
msgid "sha1 information is lacking or useless (%s)."
msgstr "sha1 ä¿¡æ¯ç¼ºå¤±æˆ–无效(%s)。"
-#: apply.c:4097 builtin/checkout.c:278 builtin/reset.c:143
+#: apply.c:4098 builtin/checkout.c:279 builtin/reset.c:143
#, c-format
msgid "make_cache_entry failed for path '%s'"
msgstr "对路径 '%s' çš„ make_cache_entry æ“作失败"
-#: apply.c:4101
+#: apply.c:4102
#, c-format
msgid "could not add %s to temporary index"
msgstr "ä¸èƒ½åœ¨ä¸´æ—¶ç´¢å¼•ä¸­æ·»åŠ  %s"
-#: apply.c:4111
+#: apply.c:4112
#, c-format
msgid "could not write temporary index to %s"
msgstr "ä¸èƒ½æŠŠä¸´æ—¶ç´¢å¼•å†™å…¥åˆ° %s"
-#: apply.c:4249
+#: apply.c:4250
#, c-format
msgid "unable to remove %s from index"
msgstr "ä¸èƒ½ä»Žç´¢å¼•ä¸­ç§»é™¤ %s"
-#: apply.c:4283
+#: apply.c:4284
#, c-format
msgid "corrupt patch for submodule %s"
msgstr "å­æ¨¡ç»„ %s æŸåçš„è¡¥ä¸"
-#: apply.c:4289
+#: apply.c:4290
#, c-format
msgid "unable to stat newly created file '%s'"
msgstr "ä¸èƒ½å¯¹æ–°å»ºæ–‡ä»¶ '%s' 调用 stat"
-#: apply.c:4297
+#: apply.c:4298
#, c-format
msgid "unable to create backing store for newly created file %s"
msgstr "ä¸èƒ½ä¸ºæ–°å»ºæ–‡ä»¶ %s 创建åŽç«¯å­˜å‚¨"
-#: apply.c:4303 apply.c:4448
+#: apply.c:4304 apply.c:4449
#, c-format
msgid "unable to add cache entry for %s"
msgstr "无法为 %s 添加缓存æ¡ç›®"
-#: apply.c:4346
+#: apply.c:4347
#, c-format
msgid "failed to write to '%s'"
msgstr "写入 '%s' 失败"
-#: apply.c:4350
+#: apply.c:4351
#, c-format
msgid "closing file '%s'"
msgstr "关闭文件 '%s'"
-#: apply.c:4420
+#: apply.c:4421
#, c-format
msgid "unable to write file '%s' mode %o"
msgstr "ä¸èƒ½å†™æ–‡ä»¶ '%s' æƒé™ %o"
-#: apply.c:4518
+#: apply.c:4519
#, c-format
msgid "Applied patch %s cleanly."
msgstr "æˆåŠŸåº”ç”¨è¡¥ä¸ %s。"
-#: apply.c:4526
+#: apply.c:4527
msgid "internal error"
msgstr "内部错误"
-#: apply.c:4529
+#: apply.c:4530
#, 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:4540
+#: apply.c:4541
#, c-format
msgid "truncating .rej filename to %.*s.rej"
msgstr "截短 .rej 文件å为 %.*s.rej"
-#: apply.c:4548 builtin/fetch.c:878 builtin/fetch.c:1168
+#: apply.c:4549 builtin/fetch.c:898 builtin/fetch.c:1194
#, c-format
msgid "cannot open %s"
msgstr "ä¸èƒ½æ‰“å¼€ %s"
-#: apply.c:4562
+#: apply.c:4563
#, c-format
msgid "Hunk #%d applied cleanly."
msgstr "第 #%d 个片段æˆåŠŸåº”用。"
-#: apply.c:4566
+#: apply.c:4567
#, c-format
msgid "Rejected hunk #%d."
msgstr "æ‹’ç»ç¬¬ #%d 个片段。"
-#: apply.c:4676
+#: apply.c:4686
#, c-format
msgid "Skipped patch '%s'."
msgstr "ç•¥è¿‡è¡¥ä¸ '%s'。"
-#: apply.c:4684
+#: apply.c:4694
msgid "unrecognized input"
msgstr "未能识别的输入"
-#: apply.c:4704
+#: apply.c:4714
msgid "unable to read index file"
msgstr "无法读å–索引文件"
-#: apply.c:4859
+#: apply.c:4871
#, c-format
msgid "can't open patch '%s': %s"
msgstr "ä¸èƒ½æ‰“å¼€è¡¥ä¸ '%s':%s"
-#: apply.c:4886
+#: apply.c:4898
#, c-format
msgid "squelched %d whitespace error"
msgid_plural "squelched %d whitespace errors"
msgstr[0] "抑制下ä»æœ‰ %d 个空白字符误用"
msgstr[1] "抑制下ä»æœ‰ %d 个空白字符误用"
-#: apply.c:4892 apply.c:4907
+#: apply.c:4904 apply.c:4919
#, c-format
msgid "%d line adds whitespace errors."
msgid_plural "%d lines add whitespace errors."
msgstr[0] "%d 行新增了空白字符误用。"
msgstr[1] "%d 行新增了空白字符误用。"
-#: apply.c:4900
+#: apply.c:4912
#, 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:4916 builtin/add.c:540 builtin/mv.c:301 builtin/rm.c:390
+#: apply.c:4928 builtin/add.c:540 builtin/mv.c:301 builtin/rm.c:390
msgid "Unable to write new index file"
msgstr "无法写入新索引文件"
-#: apply.c:4943 apply.c:4946 builtin/am.c:2208 builtin/am.c:2211
-#: builtin/clone.c:123 builtin/fetch.c:128 builtin/merge.c:273
-#: builtin/pull.c:208 builtin/submodule--helper.c:407
+#: apply.c:4955 apply.c:4958 builtin/am.c:2197 builtin/am.c:2200
+#: builtin/clone.c:122 builtin/fetch.c:143 builtin/merge.c:273
+#: builtin/pull.c:209 builtin/submodule--helper.c:407
#: builtin/submodule--helper.c:1367 builtin/submodule--helper.c:1370
#: builtin/submodule--helper.c:1850 builtin/submodule--helper.c:1853
#: builtin/submodule--helper.c:2092 git-add--interactive.perl:211
msgid "path"
msgstr "路径"
-#: apply.c:4944
+#: apply.c:4956
msgid "don't apply changes matching the given path"
msgstr "ä¸è¦åº”用与给出路径å‘匹é…çš„å˜æ›´"
-#: apply.c:4947
+#: apply.c:4959
msgid "apply changes matching the given path"
msgstr "应用与给出路径å‘匹é…çš„å˜æ›´"
-#: apply.c:4949 builtin/am.c:2217
+#: apply.c:4961 builtin/am.c:2206
msgid "num"
msgstr "æ•°å­—"
-#: apply.c:4950
+#: apply.c:4962
msgid "remove <num> leading slashes from traditional diff paths"
msgstr "从传统的 diff 路径中移除指定数é‡çš„å‰å¯¼æ–œçº¿"
-#: apply.c:4953
+#: apply.c:4965
msgid "ignore additions made by the patch"
msgstr "忽略补ä¸ä¸­çš„添加的文件"
-#: apply.c:4955
+#: apply.c:4967
msgid "instead of applying the patch, output diffstat for the input"
msgstr "ä¸åº”用补ä¸ï¼Œè€Œæ˜¯æ˜¾ç¤ºè¾“入的差异统计(diffstat)"
-#: apply.c:4959
+#: apply.c:4971
msgid "show number of added and deleted lines in decimal notation"
msgstr "以å进制数显示添加和删除的行数"
-#: apply.c:4961
+#: apply.c:4973
msgid "instead of applying the patch, output a summary for the input"
msgstr "ä¸åº”用补ä¸ï¼Œè€Œæ˜¯æ˜¾ç¤ºè¾“入的概è¦"
-#: apply.c:4963
+#: apply.c:4975
msgid "instead of applying the patch, see if the patch is applicable"
msgstr "ä¸åº”用补ä¸ï¼Œè€Œæ˜¯æŸ¥çœ‹è¡¥ä¸æ˜¯å¦å¯åº”用"
-#: apply.c:4965
+#: apply.c:4977
msgid "make sure the patch is applicable to the current index"
msgstr "确认补ä¸å¯ä»¥åº”用到当å‰ç´¢å¼•"
-#: apply.c:4967
+#: apply.c:4979
msgid "mark new files with `git add --intent-to-add`"
msgstr "使用命令 `git add --intent-to-add` 标记新增文件"
-#: apply.c:4969
+#: apply.c:4981
msgid "apply a patch without touching the working tree"
msgstr "应用补ä¸è€Œä¸ä¿®æ”¹å·¥ä½œåŒº"
-#: apply.c:4971
+#: apply.c:4983
msgid "accept a patch that touches outside the working area"
msgstr "接å—修改工作区之外文件的补ä¸"
-#: apply.c:4974
+#: apply.c:4986
msgid "also apply the patch (use with --stat/--summary/--check)"
msgstr "还应用此补ä¸ï¼ˆä¸Ž --stat/--summary/--check 选项åŒæ—¶ä½¿ç”¨ï¼‰"
-#: apply.c:4976
+#: apply.c:4988
msgid "attempt three-way merge if a patch does not apply"
msgstr "如果一个补ä¸ä¸èƒ½åº”用则å°è¯•ä¸‰æ–¹åˆå¹¶"
-#: apply.c:4978
+#: apply.c:4990
msgid "build a temporary index based on embedded index information"
msgstr "创建一个临时索引基于嵌入的索引信æ¯"
-#: apply.c:4981 builtin/checkout-index.c:173 builtin/ls-files.c:524
+#: apply.c:4993 builtin/checkout-index.c:173 builtin/ls-files.c:524
msgid "paths are separated with NUL character"
msgstr "路径以 NUL 字符分隔"
-#: apply.c:4983
+#: apply.c:4995
msgid "ensure at least <n> lines of context match"
msgstr "ç¡®ä¿è‡³å°‘åŒ¹é… <n> 行上下文"
-#: apply.c:4984 builtin/am.c:2196 builtin/interpret-trailers.c:98
+#: apply.c:4996 builtin/am.c:2185 builtin/interpret-trailers.c:98
#: builtin/interpret-trailers.c:100 builtin/interpret-trailers.c:102
-#: builtin/pack-objects.c:3330 builtin/rebase.c:1421
+#: builtin/pack-objects.c:3310 builtin/rebase.c:1445
msgid "action"
msgstr "动作"
-#: apply.c:4985
+#: apply.c:4997
msgid "detect new or modified lines that have whitespace errors"
msgstr "检查新增和修改的行中间的空白字符滥用"
-#: apply.c:4988 apply.c:4991
+#: apply.c:5000 apply.c:5003
msgid "ignore changes in whitespace when finding context"
msgstr "查找上下文时忽略空白字符的å˜æ›´"
-#: apply.c:4994
+#: apply.c:5006
msgid "apply the patch in reverse"
msgstr "åå‘应用补ä¸"
-#: apply.c:4996
+#: apply.c:5008
msgid "don't expect at least one line of context"
msgstr "无需至少一行上下文"
-#: apply.c:4998
+#: apply.c:5010
msgid "leave the rejected hunks in corresponding *.rej files"
msgstr "将拒ç»çš„è¡¥ä¸ç‰‡æ®µä¿å­˜åœ¨å¯¹åº”çš„ *.rej 文件中"
-#: apply.c:5000
+#: apply.c:5012
msgid "allow overlapping hunks"
msgstr "å…许é‡å çš„è¡¥ä¸ç‰‡æ®µ"
-#: apply.c:5001 builtin/add.c:291 builtin/check-ignore.c:22
+#: apply.c:5013 builtin/add.c:291 builtin/check-ignore.c:22
#: builtin/commit.c:1337 builtin/count-objects.c:98 builtin/fsck.c:786
-#: builtin/log.c:2068 builtin/mv.c:123 builtin/read-tree.c:128
+#: builtin/log.c:2085 builtin/mv.c:123 builtin/read-tree.c:128
msgid "be verbose"
msgstr "冗长输出"
-#: apply.c:5003
+#: apply.c:5015
msgid "tolerate incorrectly detected missing new-line at the end of file"
msgstr "å…许ä¸æ­£ç¡®çš„文件末尾æ¢è¡Œç¬¦"
-#: apply.c:5006
+#: apply.c:5018
msgid "do not trust the line counts in the hunk headers"
msgstr "ä¸ä¿¡ä»»è¡¥ä¸ç‰‡æ®µçš„头信æ¯ä¸­çš„è¡Œå·"
-#: apply.c:5008 builtin/am.c:2205
+#: apply.c:5020 builtin/am.c:2194
msgid "root"
msgstr "根目录"
-#: apply.c:5009
+#: apply.c:5021
msgid "prepend <root> to all filenames"
msgstr "为所有文件åå‰æ·»åŠ  <根目录>"
@@ -922,7 +922,7 @@ msgstr "æ ¼å¼"
msgid "archive format"
msgstr "归档格å¼"
-#: archive.c:458 builtin/log.c:1580
+#: archive.c:458 builtin/log.c:1581
msgid "prefix"
msgstr "å‰ç¼€"
@@ -930,11 +930,12 @@ msgstr "å‰ç¼€"
msgid "prepend prefix to each pathname in the archive"
msgstr "为归档中æ¯ä¸ªè·¯å¾„å加上å‰ç¼€"
-#: archive.c:460 builtin/blame.c:862 builtin/blame.c:874 builtin/blame.c:875
-#: builtin/commit-tree.c:117 builtin/config.c:129 builtin/fast-export.c:1134
-#: builtin/fast-export.c:1136 builtin/grep.c:897 builtin/hash-object.c:105
-#: builtin/ls-files.c:560 builtin/ls-files.c:563 builtin/notes.c:412
-#: builtin/notes.c:578 builtin/read-tree.c:123 parse-options.h:177
+#: archive.c:460 builtin/blame.c:861 builtin/blame.c:873 builtin/blame.c:874
+#: builtin/commit-tree.c:117 builtin/config.c:129 builtin/fast-export.c:1162
+#: builtin/fast-export.c:1164 builtin/fast-export.c:1168 builtin/grep.c:899
+#: builtin/hash-object.c:105 builtin/ls-files.c:560 builtin/ls-files.c:563
+#: builtin/notes.c:412 builtin/notes.c:578 builtin/read-tree.c:123
+#: parse-options.h:186
msgid "file"
msgstr "文件"
@@ -966,7 +967,7 @@ msgstr "压缩效果更好"
msgid "list supported archive formats"
msgstr "列出支æŒçš„归档格å¼"
-#: archive.c:479 builtin/archive.c:91 builtin/clone.c:113 builtin/clone.c:116
+#: archive.c:479 builtin/archive.c:91 builtin/clone.c:112 builtin/clone.c:115
#: builtin/submodule--helper.c:1379 builtin/submodule--helper.c:1859
msgid "repo"
msgstr "仓库"
@@ -975,7 +976,7 @@ msgstr "仓库"
msgid "retrieve the archive from remote repository <repo>"
msgstr "从远程仓库(<仓库>)æå–归档文件"
-#: archive.c:481 builtin/archive.c:93 builtin/difftool.c:707
+#: archive.c:481 builtin/archive.c:93 builtin/difftool.c:715
#: builtin/notes.c:498
msgid "command"
msgstr "命令"
@@ -1011,26 +1012,26 @@ msgstr "å‚æ•°ä¸æ”¯æŒæ­¤æ ¼å¼ '%s':-%d"
msgid "cannot stream blob %s"
msgstr "ä¸èƒ½æ‰“开数æ®å¯¹è±¡ %s"
-#: archive-tar.c:260 archive-zip.c:363
+#: archive-tar.c:266 archive-zip.c:363
#, c-format
msgid "unsupported file mode: 0%o (SHA1: %s)"
msgstr "ä¸æ”¯æŒçš„文件模å¼ï¼š0%o (SHA1: %s)"
-#: archive-tar.c:287 archive-zip.c:353
+#: archive-tar.c:293 archive-zip.c:353
#, c-format
msgid "cannot read %s"
msgstr "ä¸èƒ½è¯»å– %s"
-#: archive-tar.c:459
+#: archive-tar.c:465
#, c-format
msgid "unable to start '%s' filter"
msgstr "无法å¯åŠ¨ '%s' 过滤器"
-#: archive-tar.c:462
+#: archive-tar.c:468
msgid "unable to redirect descriptor"
msgstr "无法é‡å®šå‘æ述符"
-#: archive-tar.c:469
+#: archive-tar.c:475
#, c-format
msgid "'%s' filter reported error"
msgstr "'%s' 过滤器报告了错误"
@@ -1055,17 +1056,17 @@ msgstr "压缩错误 (%d)"
msgid "timestamp too large for this system: %<PRIuMAX>"
msgstr "对于本系统时间戳太大:%<PRIuMAX>"
-#: attr.c:211
+#: attr.c:213
#, c-format
msgid "%.*s is not a valid attribute name"
msgstr "%.*s ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„属性å"
-#: attr.c:368
+#: attr.c:370
#, c-format
msgid "%s not allowed: %s:%d"
msgstr "ä¸å…许 %s:%s:%d"
-#: attr.c:408
+#: attr.c:410
msgid ""
"Negative patterns are ignored in git attributes\n"
"Use '\\!' for literal leading exclamation."
@@ -1192,37 +1193,37 @@ msgid_plural "Bisecting: %d revisions left to test after this %s\n"
msgstr[0] "二分查找中:在此之åŽï¼Œè¿˜å‰© %d 个版本待测试 %s\n"
msgstr[1] "二分查找中:在此之åŽï¼Œè¿˜å‰© %d 个版本待测试 %s\n"
-#: blame.c:2697
+#: blame.c:2700
msgid "--contents and --reverse do not blend well."
msgstr "--contents å’Œ --reverse ä¸èƒ½æ··ç”¨ã€‚"
-#: blame.c:2711
+#: blame.c:2714
msgid "cannot use --contents with final commit object name"
msgstr "ä¸èƒ½å°† --contents 和最终的æ交对象å共用"
-#: blame.c:2732
+#: blame.c:2735
msgid "--reverse and --first-parent together require specified latest commit"
msgstr "--reverse å’Œ --first-parent 共用,需è¦æŒ‡å®šæœ€æ–°çš„æ交"
-#: blame.c:2741 bundle.c:167 ref-filter.c:2196 remote.c:1938 sequencer.c:2033
-#: sequencer.c:4348 builtin/commit.c:1020 builtin/log.c:387 builtin/log.c:963
-#: builtin/log.c:1451 builtin/log.c:1827 builtin/log.c:2117 builtin/merge.c:411
-#: builtin/pack-objects.c:3148 builtin/pack-objects.c:3163
+#: blame.c:2744 bundle.c:167 ref-filter.c:2203 remote.c:1941 sequencer.c:1971
+#: sequencer.c:4305 builtin/commit.c:1020 builtin/log.c:387 builtin/log.c:964
+#: builtin/log.c:1452 builtin/log.c:1844 builtin/log.c:2134 builtin/merge.c:411
+#: builtin/pack-objects.c:3128 builtin/pack-objects.c:3143
#: builtin/shortlog.c:192
msgid "revision walk setup failed"
msgstr "版本é历设置失败"
-#: blame.c:2759
+#: blame.c:2762
msgid ""
"--reverse --first-parent together require range along first-parent chain"
msgstr "--reverse å’Œ --first-parent 共用,需è¦ç¬¬ä¸€ç¥–先链上的æ交范围"
-#: blame.c:2770
+#: blame.c:2773
#, c-format
msgid "no such path %s in %s"
msgstr "在 %2$s 中无此路径 %1$s"
-#: blame.c:2781
+#: blame.c:2784
#, c-format
msgid "cannot read blob %s for path %s"
msgstr "ä¸èƒ½ä¸ºè·¯å¾„ %2$s 读å–æ•°æ®å¯¹è±¡ %1$s"
@@ -1370,7 +1371,7 @@ msgstr "'%s' ä¸åƒæ˜¯ä¸€ä¸ª v2 版本的包文件"
msgid "unrecognized header: %s%s (%d)"
msgstr "未能识别的包头:%s%s (%d)"
-#: bundle.c:90 rerere.c:480 rerere.c:690 sequencer.c:2283 sequencer.c:3024
+#: bundle.c:90 rerere.c:480 rerere.c:690 sequencer.c:2221 sequencer.c:2962
#: builtin/commit.c:791
#, c-format
msgid "could not open '%s'"
@@ -1423,7 +1424,7 @@ msgstr "rev-list 终止"
msgid "ref '%s' is excluded by the rev-list options"
msgstr "引用 '%s' 被 rev-list 选项排除"
-#: bundle.c:460 builtin/log.c:202 builtin/log.c:1732 builtin/shortlog.c:306
+#: bundle.c:460 builtin/log.c:202 builtin/log.c:1733 builtin/shortlog.c:306
#, c-format
msgid "unrecognized argument: %s"
msgstr "未能识别的å‚数:%s"
@@ -1446,8 +1447,8 @@ msgstr "index-pack 终止"
msgid "invalid color value: %.*s"
msgstr "无效的颜色值:%.*s"
-#: commit.c:50 sequencer.c:2727 builtin/am.c:355 builtin/am.c:399
-#: builtin/am.c:1378 builtin/am.c:2020 builtin/replace.c:455
+#: commit.c:50 sequencer.c:2665 builtin/am.c:354 builtin/am.c:398
+#: builtin/am.c:1366 builtin/am.c:2009 builtin/replace.c:456
#, c-format
msgid "could not parse %s"
msgstr "ä¸èƒ½è§£æž %s"
@@ -1477,27 +1478,27 @@ msgstr ""
"设置 \"git config advice.graftFileDeprecated false\"\n"
"å¯å…³é—­æœ¬æ¶ˆæ¯"
-#: commit.c:1127
+#: commit.c:1128
#, c-format
msgid "Commit %s has an untrusted GPG signature, allegedly by %s."
msgstr "æ交 %s 有一个éžå¯ä¿¡çš„声称æ¥è‡ª %s çš„ GPG ç­¾å。"
-#: commit.c:1130
+#: commit.c:1131
#, c-format
msgid "Commit %s has a bad GPG signature allegedly by %s."
msgstr "æ交 %s 有一个错误的声称æ¥è‡ª %s çš„ GPG ç­¾å。"
-#: commit.c:1133
+#: commit.c:1134
#, c-format
msgid "Commit %s does not have a GPG signature."
msgstr "æ交 %s 没有 GPG ç­¾å。"
-#: commit.c:1136
+#: commit.c:1137
#, c-format
msgid "Commit %s has a good GPG signature by %s\n"
msgstr "æ交 %s 有一个æ¥è‡ª %s 的好的 GPG ç­¾å。\n"
-#: commit.c:1390
+#: commit.c:1391
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"
@@ -1557,193 +1558,208 @@ msgstr "无效的æ交图形链:行 '%s' ä¸æ˜¯ä¸€ä¸ªå“ˆå¸Œå€¼"
msgid "unable to find all commit-graph files"
msgstr "无法找到所有æ交图形文件"
-#: commit-graph.c:554 commit-graph.c:614
+#: commit-graph.c:561 commit-graph.c:621
msgid "invalid commit position. commit-graph is likely corrupt"
msgstr "无效的æ交ä½ç½®ã€‚æ交图形å¯èƒ½å·²æŸå"
-#: commit-graph.c:575
+#: commit-graph.c:582
#, c-format
msgid "could not find commit %s"
msgstr "无法找到æ交 %s"
-#: commit-graph.c:1002 builtin/pack-objects.c:2657
+#: commit-graph.c:855 builtin/am.c:1287
+#, c-format
+msgid "unable to parse commit %s"
+msgstr "ä¸èƒ½è§£æžæ交 %s"
+
+#: commit-graph.c:859
+#, c-format
+msgid "unable to get tree for %s"
+msgstr "无法得到 %s 的树对象"
+
+#: commit-graph.c:1017 builtin/pack-objects.c:2641
#, c-format
msgid "unable to get type of object %s"
msgstr "无法获得对象 %s 类型"
-#: commit-graph.c:1034
+#: commit-graph.c:1049
msgid "Loading known commits in commit graph"
msgstr "正在加载æ交图中的已知æ交"
-#: commit-graph.c:1051
+#: commit-graph.c:1066
msgid "Expanding reachable commits in commit graph"
msgstr "正在扩展æ交图中的å¯è¾¾æ交"
-#: commit-graph.c:1070
+#: commit-graph.c:1085
msgid "Clearing commit marks in commit graph"
msgstr "正在清除æ交图中的æ交标记"
-#: commit-graph.c:1089
+#: commit-graph.c:1104
msgid "Computing commit graph generation numbers"
msgstr "正在计算æ交图世代数字"
-#: commit-graph.c:1163
+#: commit-graph.c:1179
#, c-format
msgid "Finding commits for commit graph in %d pack"
msgid_plural "Finding commits for commit graph in %d packs"
msgstr[0] "正在 %d 个包中查找æ交图的æ交"
msgstr[1] "正在 %d 个包中查找æ交图的æ交"
-#: commit-graph.c:1176
+#: commit-graph.c:1192
#, c-format
msgid "error adding pack %s"
msgstr "添加包 %s 出错"
-#: commit-graph.c:1180
+#: commit-graph.c:1196
#, c-format
msgid "error opening index for %s"
msgstr "为 %s 打开索引出错"
-#: commit-graph.c:1204
+#: commit-graph.c:1220
#, c-format
msgid "Finding commits for commit graph from %d ref"
msgid_plural "Finding commits for commit graph from %d refs"
msgstr[0] "正在从 %d 个引用中查找æ交图的æ交"
msgstr[1] "正在从 %d 个引用中查找æ交图的æ交"
-#: commit-graph.c:1238
+#: commit-graph.c:1240
+#, c-format
+msgid "invalid commit object id: %s"
+msgstr "无效的æ交对象 ID:%s"
+
+#: commit-graph.c:1255
msgid "Finding commits for commit graph among packed objects"
msgstr "正在打包对象中查找æ交图的æ交"
-#: commit-graph.c:1253
+#: commit-graph.c:1270
msgid "Counting distinct commits in commit graph"
msgstr "正在计算æ交图中ä¸åŒçš„æ交"
-#: commit-graph.c:1284
+#: commit-graph.c:1300
msgid "Finding extra edges in commit graph"
msgstr "正在查找æ交图中é¢å¤–çš„è¾¹"
-#: commit-graph.c:1332
+#: commit-graph.c:1346
msgid "failed to write correct number of base graph ids"
msgstr "无法写入正确数é‡çš„基础图形 ID"
-#: commit-graph.c:1365 midx.c:811
+#: commit-graph.c:1379 midx.c:810
#, c-format
msgid "unable to create leading directories of %s"
msgstr "ä¸èƒ½ä¸º %s 创建先导目录"
-#: commit-graph.c:1377 builtin/index-pack.c:306 builtin/repack.c:240
+#: commit-graph.c:1391 builtin/index-pack.c:306 builtin/repack.c:241
#, c-format
msgid "unable to create '%s'"
msgstr "ä¸èƒ½åˆ›å»º '%s'"
-#: commit-graph.c:1437
+#: commit-graph.c:1451
#, 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:1478
+#: commit-graph.c:1492
msgid "unable to open commit-graph chain file"
msgstr "无法打开æ交图形链文件"
-#: commit-graph.c:1490
+#: commit-graph.c:1504
msgid "failed to rename base commit-graph file"
msgstr "无法é‡å‘½å基础æ交图形文件"
-#: commit-graph.c:1510
+#: commit-graph.c:1524
msgid "failed to rename temporary commit-graph file"
msgstr "无法é‡å‘½å临时æ交图形文件"
-#: commit-graph.c:1621
+#: commit-graph.c:1635
msgid "Scanning merged commits"
msgstr "正在扫æåˆå¹¶æ交"
-#: commit-graph.c:1632
+#: commit-graph.c:1646
#, c-format
msgid "unexpected duplicate commit id %s"
msgstr "æ„外的é‡å¤æ交 ID %s"
-#: commit-graph.c:1657
+#: commit-graph.c:1670
msgid "Merging commit-graph"
msgstr "正在åˆå¹¶æ交图形"
-#: commit-graph.c:1844
+#: commit-graph.c:1860
#, c-format
msgid "the commit graph format cannot write %d commits"
msgstr "æ交图格å¼ä¸èƒ½å†™å…¥ %d 个æ交"
-#: commit-graph.c:1855
+#: commit-graph.c:1871
msgid "too many commits to write graph"
msgstr "æ交太多ä¸èƒ½ç”»å›¾"
-#: commit-graph.c:1945
+#: commit-graph.c:1961
msgid "the commit-graph file has incorrect checksum and is likely corrupt"
msgstr "æ交图文件的校验ç é”™è¯¯ï¼Œå¯èƒ½å·²ç»æŸå"
-#: commit-graph.c:1955
+#: commit-graph.c:1971
#, c-format
msgid "commit-graph has incorrect OID order: %s then %s"
msgstr "æ交图形的对象 ID 顺åºä¸æ­£ç¡®ï¼š%s ç„¶åŽ %s"
-#: commit-graph.c:1965 commit-graph.c:1980
+#: commit-graph.c:1981 commit-graph.c:1996
#, c-format
msgid "commit-graph has incorrect fanout value: fanout[%d] = %u != %u"
msgstr "æ交图形有ä¸æ­£ç¡®çš„扇出值:fanout[%d] = %u != %u"
-#: commit-graph.c:1972
+#: commit-graph.c:1988
#, c-format
msgid "failed to parse commit %s from commit-graph"
msgstr "无法从æ交图形中解æžæ交 %s"
-#: commit-graph.c:1989
+#: commit-graph.c:2006
msgid "Verifying commits in commit graph"
msgstr "正在校验æ交图中的æ交"
-#: commit-graph.c:2002
+#: commit-graph.c:2020
#, c-format
msgid "failed to parse commit %s from object database for commit-graph"
msgstr "无法从æ交图形的对象库中解æžæ交 %s"
-#: commit-graph.c:2009
+#: commit-graph.c:2027
#, c-format
msgid "root tree OID for commit %s in commit-graph is %s != %s"
msgstr "æ交图形中的æ交 %s 的根树对象 ID 是 %s != %s"
-#: commit-graph.c:2019
+#: commit-graph.c:2037
#, c-format
msgid "commit-graph parent list for commit %s is too long"
msgstr "æ交 %s çš„æ交图形父æ交列表太长了"
-#: commit-graph.c:2028
+#: commit-graph.c:2046
#, c-format
msgid "commit-graph parent for %s is %s != %s"
msgstr "%s çš„æ交图形父æ交是 %s != %s"
-#: commit-graph.c:2041
+#: commit-graph.c:2059
#, c-format
msgid "commit-graph parent list for commit %s terminates early"
msgstr "æ交 %s çš„æ交图形父æ交列表过早终止"
-#: commit-graph.c:2046
+#: commit-graph.c:2064
#, c-format
msgid ""
"commit-graph has generation number zero for commit %s, but non-zero elsewhere"
msgstr "æ交图形中æ交 %s 的世代å·æ˜¯é›¶ï¼Œä½†å…¶å®ƒåœ°æ–¹éžé›¶"
-#: commit-graph.c:2050
+#: commit-graph.c:2068
#, c-format
msgid ""
"commit-graph has non-zero generation number for commit %s, but zero elsewhere"
msgstr "æ交图形中æ交 %s 的世代å·éžé›¶ï¼Œä½†å…¶å®ƒåœ°æ–¹æ˜¯é›¶"
-#: commit-graph.c:2065
+#: commit-graph.c:2083
#, c-format
msgid "commit-graph generation for commit %s is %u != %u"
msgstr "æ交图形中的æ交 %s 的世代å·æ˜¯ %u != %u"
-#: commit-graph.c:2071
+#: commit-graph.c:2089
#, c-format
msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>"
msgstr "æ交图形中æ交 %s çš„æ交日期是 %<PRIuMAX> != %<PRIuMAX>"
@@ -1790,7 +1806,7 @@ msgstr "é”®å没有包å«ä¸€ä¸ªå°èŠ‚å称:%s"
msgid "key does not contain variable name: %s"
msgstr "é”®å没有包å«å˜é‡å:%s"
-#: config.c:406 sequencer.c:2463
+#: config.c:406 sequencer.c:2401
#, c-format
msgid "invalid key: %s"
msgstr "无效键å:%s"
@@ -1912,149 +1928,144 @@ msgstr "core.commentChar 应该是一个字符"
msgid "invalid mode for object creation: %s"
msgstr "无效的对象创建模å¼ï¼š%s"
-#: config.c:1430
+#: config.c:1425
#, c-format
msgid "malformed value for %s"
msgstr "%s çš„å–值格å¼é”™è¯¯"
-#: config.c:1456
+#: config.c:1451
#, c-format
msgid "malformed value for %s: %s"
msgstr "%s çš„å–值格å¼é”™è¯¯ï¼š%s"
-#: config.c:1457
+#: config.c:1452
msgid "must be one of nothing, matching, simple, upstream or current"
msgstr "必须是其中之一:nothingã€matchingã€simpleã€upstream 或 current"
-#: config.c:1518 builtin/pack-objects.c:3410
+#: config.c:1513 builtin/pack-objects.c:3394
#, c-format
msgid "bad pack compression level %d"
msgstr "错误的打包压缩级别 %d"
-#: config.c:1639
+#: config.c:1634
#, c-format
msgid "unable to load config blob object '%s'"
msgstr "无法从数æ®å¯¹è±¡ '%s' 加载é…ç½®"
-#: config.c:1642
+#: config.c:1637
#, c-format
msgid "reference '%s' does not point to a blob"
msgstr "引用 '%s' 没有指å‘一个数æ®å¯¹è±¡"
-#: config.c:1659
+#: config.c:1654
#, c-format
msgid "unable to resolve config blob '%s'"
msgstr "ä¸èƒ½è§£æžé…置对象 '%s'"
-#: config.c:1689
+#: config.c:1684
#, c-format
msgid "failed to parse %s"
msgstr "è§£æž %s 失败"
-#: config.c:1745
+#: config.c:1740
msgid "unable to parse command-line config"
msgstr "无法解æžå‘½ä»¤è¡Œä¸­çš„é…ç½®"
-#: config.c:2094
+#: config.c:2091
msgid "unknown error occurred while reading the configuration files"
msgstr "在读å–é…置文件时é‡åˆ°æœªçŸ¥é”™è¯¯"
-#: config.c:2264
+#: config.c:2261
#, c-format
msgid "Invalid %s: '%s'"
msgstr "无效 %s:'%s'"
-#: config.c:2307
-#, c-format
-msgid "unknown core.untrackedCache value '%s'; using 'keep' default value"
-msgstr "未知的 core.untrackedCache å–值 '%s',使用默认值 'keep'"
-
-#: config.c:2333
+#: config.c:2306
#, c-format
msgid "splitIndex.maxPercentChange value '%d' should be between 0 and 100"
msgstr "splitIndex.maxPercentChange çš„å–值 '%d' 应该介于 0 å’Œ 100 之间"
-#: config.c:2379
+#: config.c:2352
#, c-format
msgid "unable to parse '%s' from command-line config"
msgstr "无法解æžå‘½ä»¤è¡Œé…置中的 '%s'"
-#: config.c:2381
+#: config.c:2354
#, c-format
msgid "bad config variable '%s' in file '%s' at line %d"
msgstr "在文件 '%2$s' 的第 %3$d è¡Œå‘现错误的é…ç½®å˜é‡ '%1$s'"
-#: config.c:2462
+#: config.c:2435
#, c-format
msgid "invalid section name '%s'"
msgstr "无效的å°èŠ‚å称 '%s'"
-#: config.c:2494
+#: config.c:2467
#, c-format
msgid "%s has multiple values"
msgstr "%s 有多个å–值"
-#: config.c:2523
+#: config.c:2496
#, c-format
msgid "failed to write new configuration file %s"
msgstr "写入新的é…置文件 %s 失败"
-#: config.c:2775 config.c:3099
+#: config.c:2748 config.c:3072
#, c-format
msgid "could not lock config file %s"
msgstr "ä¸èƒ½é”定é…置文件 %s"
-#: config.c:2786
+#: config.c:2759
#, c-format
msgid "opening %s"
msgstr "打开 %s"
-#: config.c:2821 builtin/config.c:328
+#: config.c:2794 builtin/config.c:328
#, c-format
msgid "invalid pattern: %s"
msgstr "无效模å¼ï¼š%s"
-#: config.c:2846
+#: config.c:2819
#, c-format
msgid "invalid config file %s"
msgstr "无效的é…置文件 %s"
-#: config.c:2859 config.c:3112
+#: config.c:2832 config.c:3085
#, c-format
msgid "fstat on %s failed"
msgstr "对 %s 调用 fstat 失败"
-#: config.c:2870
+#: config.c:2843
#, c-format
msgid "unable to mmap '%s'"
msgstr "ä¸èƒ½ mmap '%s'"
-#: config.c:2879 config.c:3117
+#: config.c:2852 config.c:3090
#, c-format
msgid "chmod on %s failed"
msgstr "对 %s 调用 chmod 失败"
-#: config.c:2964 config.c:3214
+#: config.c:2937 config.c:3187
#, c-format
msgid "could not write config file %s"
msgstr "ä¸èƒ½å†™å…¥é…置文件 %s"
-#: config.c:2998
+#: config.c:2971
#, c-format
msgid "could not set '%s' to '%s'"
msgstr "ä¸èƒ½è®¾ç½® '%s' 为 '%s'"
-#: config.c:3000 builtin/remote.c:782
+#: config.c:2973 builtin/remote.c:782
#, c-format
msgid "could not unset '%s'"
msgstr "ä¸èƒ½å–消设置 '%s'"
-#: config.c:3090
+#: config.c:3063
#, c-format
msgid "invalid section name: %s"
msgstr "无效的å°èŠ‚å称:%s"
-#: config.c:3257
+#: config.c:3230
#, c-format
msgid "missing value for '%s'"
msgstr "%s çš„å–值缺失"
@@ -2177,7 +2188,7 @@ msgstr "无法查找 %s(%s)"
msgid "unknown port %s"
msgstr "æœªçŸ¥ç«¯å£ %s"
-#: connect.c:845 connect.c:1171
+#: connect.c:845 connect.c:1175
#, c-format
msgid "strange hostname '%s' blocked"
msgstr "已阻止奇怪的主机å '%s'"
@@ -2192,58 +2203,58 @@ msgstr "已阻止奇怪的端å£å· '%s'"
msgid "cannot start proxy %s"
msgstr "ä¸èƒ½å¯åŠ¨ä»£ç† %s"
-#: connect.c:924
+#: connect.c:928
msgid "no path specified; see 'git help pull' for valid url syntax"
msgstr "未指定路径,执行 'git help pull' 查看有效的 url 语法"
-#: connect.c:1119
+#: connect.c:1123
msgid "ssh variant 'simple' does not support -4"
msgstr "ssh å˜ä½“ 'simple' ä¸æ”¯æŒ -4"
-#: connect.c:1131
+#: connect.c:1135
msgid "ssh variant 'simple' does not support -6"
msgstr "ssh å˜ä½“ 'simple' ä¸æ”¯æŒ -6"
-#: connect.c:1148
+#: connect.c:1152
msgid "ssh variant 'simple' does not support setting port"
msgstr "ssh å˜ä½“ 'simple' ä¸æ”¯æŒè®¾ç½®ç«¯å£"
-#: connect.c:1260
+#: connect.c:1264
#, c-format
msgid "strange pathname '%s' blocked"
msgstr "已阻止奇怪的路径å '%s'"
-#: connect.c:1307
+#: connect.c:1311
msgid "unable to fork"
msgstr "无法 fork"
-#: connected.c:86 builtin/fsck.c:221 builtin/prune.c:43
+#: connected.c:88 builtin/fsck.c:221 builtin/prune.c:43
msgid "Checking connectivity"
msgstr "正在检查连通性"
-#: connected.c:98
+#: connected.c:100
msgid "Could not run 'git rev-list'"
msgstr "ä¸èƒ½æ‰§è¡Œ 'git rev-list'"
-#: connected.c:118
+#: connected.c:120
msgid "failed write to rev-list"
msgstr "写入 rev-list 失败"
-#: connected.c:125
+#: connected.c:127
msgid "failed to close rev-list's stdin"
msgstr "关闭 rev-list 的标准输入失败"
-#: convert.c:193
+#: convert.c:194
#, c-format
msgid "illegal crlf_action %d"
msgstr "éžæ³•çš„ crlf 动作 %d"
-#: convert.c:206
+#: convert.c:207
#, c-format
msgid "CRLF would be replaced by LF in %s"
msgstr "%s 中的 CRLF 将被 LF 替æ¢"
-#: convert.c:208
+#: convert.c:209
#, c-format
msgid ""
"CRLF will be replaced by LF in %s.\n"
@@ -2252,12 +2263,12 @@ msgstr ""
"%s 中的 CRLF 将被 LF 替æ¢ã€‚<\n"
"在工作区中该文件ä»ä¿æŒåŽŸæœ‰çš„æ¢è¡Œç¬¦ã€‚"
-#: convert.c:216
+#: convert.c:217
#, c-format
msgid "LF would be replaced by CRLF in %s"
msgstr "文件 %s 中的 LF 将被 CRLF 替æ¢"
-#: convert.c:218
+#: convert.c:219
#, c-format
msgid ""
"LF will be replaced by CRLF in %s.\n"
@@ -2266,24 +2277,24 @@ msgstr ""
"%s 中的 LF 将被 CRLF 替æ¢ã€‚\n"
"在工作区中该文件ä»ä¿æŒåŽŸæœ‰çš„æ¢è¡Œç¬¦"
-#: convert.c:279
+#: convert.c:280
#, c-format
msgid "BOM is prohibited in '%s' if encoded as %s"
msgstr "如果使用 %2$s ç¼–ç ï¼Œç¦æ­¢åœ¨ '%1$s' 中使用 BOM"
-#: convert.c:286
+#: convert.c:287
#, c-format
msgid ""
"The file '%s' contains a byte order mark (BOM). Please use UTF-%s as working-"
"tree-encoding."
msgstr "文件 '%s' 包å«ä¸€ä¸ªå­—节顺åºæ ‡è®°ï¼ˆBOM)。请使用 UTF-%s 作为工作区编ç ã€‚"
-#: convert.c:304
+#: convert.c:305
#, c-format
msgid "BOM is required in '%s' if encoded as %s"
msgstr "如果编ç ä¸º %2$s,需è¦åœ¨ '%1$s' 中使用 BOM"
-#: convert.c:306
+#: convert.c:307
#, c-format
msgid ""
"The file '%s' is missing a byte order mark (BOM). Please use UTF-%sBE or UTF-"
@@ -2292,117 +2303,117 @@ msgstr ""
"文件 '%s' 缺失一个字节顺åºæ ‡è®°ï¼ˆBOM)。请使用 UTF-%sBE or UTF-%sLE(å–决于字"
"节åºï¼‰ä½œä¸ºå·¥ä½œåŒºç¼–ç ã€‚"
-#: convert.c:424 convert.c:495
+#: convert.c:425 convert.c:496
#, c-format
msgid "failed to encode '%s' from %s to %s"
msgstr "无法对 '%s' 进行从 %s 到 %s çš„ç¼–ç "
-#: convert.c:467
+#: convert.c:468
#, c-format
msgid "encoding '%s' from %s to %s and back is not the same"
msgstr "å°†'%s' çš„ç¼–ç ä»Ž %s 到 %s æ¥å›žè½¬æ¢ä¸ä¸€è‡´"
-#: convert.c:673
+#: convert.c:674
#, c-format
msgid "cannot fork to run external filter '%s'"
msgstr "ä¸èƒ½ fork 以执行外部过滤器 '%s'"
-#: convert.c:693
+#: convert.c:694
#, c-format
msgid "cannot feed the input to external filter '%s'"
msgstr "ä¸èƒ½å°†è¾“入传递给外部过滤器 '%s'"
-#: convert.c:700
+#: convert.c:701
#, c-format
msgid "external filter '%s' failed %d"
msgstr "外部过滤器 '%s' å¤±è´¥ç  %d"
-#: convert.c:735 convert.c:738
+#: convert.c:736 convert.c:739
#, c-format
msgid "read from external filter '%s' failed"
msgstr "从外部过滤器 '%s' 读å–失败"
-#: convert.c:741 convert.c:796
+#: convert.c:742 convert.c:797
#, c-format
msgid "external filter '%s' failed"
msgstr "外部过滤器 '%s' 失败"
-#: convert.c:844
+#: convert.c:845
msgid "unexpected filter type"
msgstr "æ„外的过滤类型"
-#: convert.c:855
+#: convert.c:856
msgid "path name too long for external filter"
msgstr "外部过滤器的路径å太长"
-#: convert.c:929
+#: convert.c:930
#, c-format
msgid ""
"external filter '%s' is not available anymore although not all paths have "
"been filtered"
msgstr "外部过滤器 '%s' ä¸å†å¯ç”¨ï¼Œä½†å¹¶éžæ‰€æœ‰è·¯å¾„都已过滤"
-#: convert.c:1228
+#: convert.c:1229
msgid "true/false are no valid working-tree-encodings"
msgstr "true/false ä¸æ˜¯æœ‰æ•ˆçš„工作区编ç "
-#: convert.c:1398 convert.c:1432
+#: convert.c:1417 convert.c:1451
#, c-format
msgid "%s: clean filter '%s' failed"
msgstr "%s:clean 过滤器 '%s' 失败"
-#: convert.c:1476
+#: convert.c:1495
#, c-format
msgid "%s: smudge filter %s failed"
msgstr "%s:smudge 过滤器 %s 失败"
-#: date.c:137
+#: date.c:138
msgid "in the future"
msgstr "在将æ¥"
-#: date.c:143
+#: date.c:144
#, c-format
msgid "%<PRIuMAX> second ago"
msgid_plural "%<PRIuMAX> seconds ago"
msgstr[0] "%<PRIuMAX> 秒钟å‰"
msgstr[1] "%<PRIuMAX> 秒钟å‰"
-#: date.c:150
+#: date.c:151
#, c-format
msgid "%<PRIuMAX> minute ago"
msgid_plural "%<PRIuMAX> minutes ago"
msgstr[0] "%<PRIuMAX> 分钟å‰"
msgstr[1] "%<PRIuMAX> 分钟å‰"
-#: date.c:157
+#: date.c:158
#, c-format
msgid "%<PRIuMAX> hour ago"
msgid_plural "%<PRIuMAX> hours ago"
msgstr[0] "%<PRIuMAX> å°æ—¶å‰"
msgstr[1] "%<PRIuMAX> å°æ—¶å‰"
-#: date.c:164
+#: date.c:165
#, c-format
msgid "%<PRIuMAX> day ago"
msgid_plural "%<PRIuMAX> days ago"
msgstr[0] "%<PRIuMAX> 天å‰"
msgstr[1] "%<PRIuMAX> 天å‰"
-#: date.c:170
+#: date.c:171
#, c-format
msgid "%<PRIuMAX> week ago"
msgid_plural "%<PRIuMAX> weeks ago"
msgstr[0] "%<PRIuMAX> 周å‰"
msgstr[1] "%<PRIuMAX> 周å‰"
-#: date.c:177
+#: date.c:178
#, c-format
msgid "%<PRIuMAX> month ago"
msgid_plural "%<PRIuMAX> months ago"
msgstr[0] "%<PRIuMAX> 个月å‰"
msgstr[1] "%<PRIuMAX> 个月å‰"
-#: date.c:188
+#: date.c:189
#, c-format
msgid "%<PRIuMAX> year"
msgid_plural "%<PRIuMAX> years"
@@ -2410,14 +2421,14 @@ msgstr[0] "%<PRIuMAX> å¹´"
msgstr[1] "%<PRIuMAX> å¹´"
#. TRANSLATORS: "%s" is "<n> years"
-#: date.c:191
+#: date.c:192
#, c-format
msgid "%s, %<PRIuMAX> month ago"
msgid_plural "%s, %<PRIuMAX> months ago"
msgstr[0] "%s %<PRIuMAX> 个月å‰"
msgstr[1] "%s %<PRIuMAX> 个月å‰"
-#: date.c:196 date.c:201
+#: date.c:197 date.c:202
#, c-format
msgid "%<PRIuMAX> year ago"
msgid_plural "%<PRIuMAX> years ago"
@@ -2453,7 +2464,7 @@ msgstr "已标记 %d 个数æ®å²›ï¼Œç»“æŸã€‚\n"
msgid "failed to read orderfile '%s'"
msgstr "读å–排åºæ–‡ä»¶ '%s' 失败"
-#: diffcore-rename.c:544
+#: diffcore-rename.c:543
msgid "Performing inexact rename detection"
msgstr "正在进行éžç²¾ç¡®çš„é‡å‘½å探测"
@@ -2516,35 +2527,35 @@ msgstr ""
"å‘现é…ç½®å˜é‡ 'diff.dirstat' 中的错误:\n"
"%s"
-#: diff.c:4215
+#: diff.c:4218
#, c-format
msgid "external diff died, stopping at %s"
msgstr "外部 diff 退出,åœæ­¢åœ¨ %s"
-#: diff.c:4560
+#: diff.c:4563
msgid "--name-only, --name-status, --check and -s are mutually exclusive"
msgstr "--name-onlyã€--name-statusã€--check å’Œ -s 是互斥的"
-#: diff.c:4563
+#: diff.c:4566
msgid "-G, -S and --find-object are mutually exclusive"
msgstr "-Gã€-S å’Œ --find-object 是互斥的"
-#: diff.c:4641
+#: diff.c:4644
msgid "--follow requires exactly one pathspec"
msgstr "--follow 明确è¦æ±‚åªè·Ÿä¸€ä¸ªè·¯å¾„规格"
-#: diff.c:4689
+#: diff.c:4692
#, c-format
msgid "invalid --stat value: %s"
msgstr "无效的 --stat 值:%s"
-#: diff.c:4694 diff.c:4699 diff.c:4704 diff.c:4709 diff.c:5222
+#: diff.c:4697 diff.c:4702 diff.c:4707 diff.c:4712 diff.c:5225
#: parse-options.c:199 parse-options.c:203
#, c-format
msgid "%s expects a numerical value"
msgstr "%s 期望一个数字值"
-#: diff.c:4726
+#: diff.c:4729
#, c-format
msgid ""
"Failed to parse --dirstat/-X option parameter:\n"
@@ -2553,195 +2564,195 @@ msgstr ""
"æ— æ³•è§£æž --dirstat/-X 选项的å‚数:\n"
"%s"
-#: diff.c:4811
+#: diff.c:4814
#, c-format
msgid "unknown change class '%c' in --diff-filter=%s"
msgstr "--diff-filter=%2$s 中未知的å˜æ›´ç±» '%1$c'"
-#: diff.c:4835
+#: diff.c:4838
#, c-format
msgid "unknown value after ws-error-highlight=%.*s"
msgstr "ws-error-highlight=%.*s 之åŽæœªçŸ¥çš„值"
-#: diff.c:4849
+#: diff.c:4852
#, c-format
msgid "unable to resolve '%s'"
msgstr "ä¸èƒ½è§£æž '%s'"
-#: diff.c:4899 diff.c:4905
+#: diff.c:4902 diff.c:4908
#, c-format
msgid "%s expects <n>/<m> form"
msgstr "%s 期望 <n>/<m> æ ¼å¼"
-#: diff.c:4917
+#: diff.c:4920
#, c-format
msgid "%s expects a character, got '%s'"
msgstr "%s 期望一个字符,得到 '%s'"
-#: diff.c:4938
+#: diff.c:4941
#, c-format
msgid "bad --color-moved argument: %s"
msgstr "åçš„ --color-moved å‚数:%s"
-#: diff.c:4957
+#: diff.c:4960
#, c-format
msgid "invalid mode '%s' in --color-moved-ws"
msgstr "--color-moved-ws ä¸­çš„æ— æ•ˆæ¨¡å¼ '%s' "
-#: diff.c:4997
+#: diff.c:5000
msgid ""
"option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and "
"\"histogram\""
msgstr ""
"diff-algorithm 选项有 \"myers\"ã€\"minimal\"ã€\"patience\" å’Œ \"histogram\""
-#: diff.c:5033 diff.c:5053
+#: diff.c:5036 diff.c:5056
#, c-format
msgid "invalid argument to %s"
msgstr "%s çš„å‚数无效"
-#: diff.c:5191
+#: diff.c:5194
#, c-format
msgid "failed to parse --submodule option parameter: '%s'"
msgstr "æ— æ³•è§£æž --submodule 选项的å‚数:'%s'"
-#: diff.c:5247
+#: diff.c:5250
#, c-format
msgid "bad --word-diff argument: %s"
msgstr "åçš„ --word-diff å‚数:%s"
-#: diff.c:5270
+#: diff.c:5273
msgid "Diff output format options"
msgstr "差异输出格å¼åŒ–选项"
-#: diff.c:5272 diff.c:5278
+#: diff.c:5275 diff.c:5281
msgid "generate patch"
msgstr "生æˆè¡¥ä¸"
-#: diff.c:5275 builtin/log.c:172
+#: diff.c:5278 builtin/log.c:172
msgid "suppress diff output"
msgstr "ä¸æ˜¾ç¤ºå·®å¼‚输出"
-#: diff.c:5280 diff.c:5394 diff.c:5401
+#: diff.c:5283 diff.c:5397 diff.c:5404
msgid "<n>"
msgstr "<n>"
-#: diff.c:5281 diff.c:5284
+#: diff.c:5284 diff.c:5287
msgid "generate diffs with <n> lines context"
msgstr "生æˆå« <n> 行上下文的差异"
-#: diff.c:5286
+#: diff.c:5289
msgid "generate the diff in raw format"
msgstr "生æˆåŽŸå§‹æ ¼å¼çš„差异"
-#: diff.c:5289
+#: diff.c:5292
msgid "synonym for '-p --raw'"
msgstr "å’Œ '-p --raw' åŒä¹‰"
-#: diff.c:5293
+#: diff.c:5296
msgid "synonym for '-p --stat'"
msgstr "å’Œ '-p --stat' åŒä¹‰"
-#: diff.c:5297
+#: diff.c:5300
msgid "machine friendly --stat"
msgstr "机器å‹å¥½çš„ --stat"
-#: diff.c:5300
+#: diff.c:5303
msgid "output only the last line of --stat"
msgstr "åªè¾“出 --stat 的最åŽä¸€è¡Œ"
-#: diff.c:5302 diff.c:5310
+#: diff.c:5305 diff.c:5313
msgid "<param1,param2>..."
msgstr "<å‚æ•°1,å‚æ•°2>..."
-#: diff.c:5303
+#: diff.c:5306
msgid ""
"output the distribution of relative amount of changes for each sub-directory"
msgstr "输出æ¯ä¸ªå­ç›®å½•ç›¸å¯¹å˜æ›´çš„分布"
-#: diff.c:5307
+#: diff.c:5310
msgid "synonym for --dirstat=cumulative"
msgstr "å’Œ --dirstat=cumulative åŒä¹‰"
-#: diff.c:5311
+#: diff.c:5314
msgid "synonym for --dirstat=files,param1,param2..."
msgstr "是 --dirstat=files,param1,param2... çš„åŒä¹‰è¯"
-#: diff.c:5315
+#: diff.c:5318
msgid "warn if changes introduce conflict markers or whitespace errors"
msgstr "如果å˜æ›´ä¸­å¼•å…¥å†²çªå®šç•Œç¬¦æˆ–空白错误,给出警告"
-#: diff.c:5318
+#: diff.c:5321
msgid "condensed summary such as creations, renames and mode changes"
msgstr "精简摘è¦ï¼Œä¾‹å¦‚创建ã€é‡å‘½å和模å¼å˜æ›´"
-#: diff.c:5321
+#: diff.c:5324
msgid "show only names of changed files"
msgstr "åªæ˜¾ç¤ºå˜æ›´æ–‡ä»¶çš„文件å"
-#: diff.c:5324
+#: diff.c:5327
msgid "show only names and status of changed files"
msgstr "åªæ˜¾ç¤ºå˜æ›´æ–‡ä»¶çš„文件å和状æ€"
-#: diff.c:5326
+#: diff.c:5329
msgid "<width>[,<name-width>[,<count>]]"
msgstr "<宽度>[,<文件å宽度>[,<次数>]]"
-#: diff.c:5327
+#: diff.c:5330
msgid "generate diffstat"
msgstr "生æˆå·®å¼‚统计(diffstat)"
-#: diff.c:5329 diff.c:5332 diff.c:5335
+#: diff.c:5332 diff.c:5335 diff.c:5338
msgid "<width>"
msgstr "<宽度>"
-#: diff.c:5330
+#: diff.c:5333
msgid "generate diffstat with a given width"
msgstr "使用给定的长度生æˆå·®å¼‚统计"
-#: diff.c:5333
+#: diff.c:5336
msgid "generate diffstat with a given name width"
msgstr "使用给定的文件å长度生æˆå·®å¼‚统计"
-#: diff.c:5336
+#: diff.c:5339
msgid "generate diffstat with a given graph width"
msgstr "使用给定的图形长度生æˆå·®å¼‚统计"
-#: diff.c:5338
+#: diff.c:5341
msgid "<count>"
msgstr "<次数>"
-#: diff.c:5339
+#: diff.c:5342
msgid "generate diffstat with limited lines"
msgstr "生æˆæœ‰é™è¡Œæ•°çš„差异统计"
-#: diff.c:5342
+#: diff.c:5345
msgid "generate compact summary in diffstat"
msgstr "生æˆå·®å¼‚统计的简æ´æ‘˜è¦"
-#: diff.c:5345
+#: diff.c:5348
msgid "output a binary diff that can be applied"
msgstr "输出一个å¯ä»¥åº”用的二进制差异"
-#: diff.c:5348
+#: diff.c:5351
msgid "show full pre- and post-image object names on the \"index\" lines"
msgstr "在 \"index\" 行显示完整的å‰åŽå¯¹è±¡å称"
-#: diff.c:5350
+#: diff.c:5353
msgid "show colored diff"
msgstr "显示带颜色的差异"
-#: diff.c:5351
+#: diff.c:5354
msgid "<kind>"
msgstr "<类型>"
-#: diff.c:5352
+#: diff.c:5355
msgid ""
"highlight whitespace errors in the 'context', 'old' or 'new' lines in the "
"diff"
msgstr "对于差异中的上下文ã€æ—§çš„和新的行,加亮显示错误的空白字符"
-#: diff.c:5355
+#: diff.c:5358
msgid ""
"do not munge pathnames and use NULs as output field terminators in --raw or "
"--numstat"
@@ -2749,334 +2760,334 @@ msgstr ""
"在 --raw 或者 --numstat 中,ä¸å¯¹è·¯å¾„字符转ç å¹¶ä½¿ç”¨ NUL 字符åšä¸ºè¾“出字段的分隔"
"符"
-#: diff.c:5358 diff.c:5361 diff.c:5364 diff.c:5470
+#: diff.c:5361 diff.c:5364 diff.c:5367 diff.c:5473
msgid "<prefix>"
msgstr "<å‰ç¼€>"
-#: diff.c:5359
+#: diff.c:5362
msgid "show the given source prefix instead of \"a/\""
msgstr "显示给定的æºå‰ç¼€å–代 \"a/\""
-#: diff.c:5362
+#: diff.c:5365
msgid "show the given destination prefix instead of \"b/\""
msgstr "显示给定的目标å‰ç¼€å–代 \"b/\""
-#: diff.c:5365
+#: diff.c:5368
msgid "prepend an additional prefix to every line of output"
msgstr "输出的æ¯ä¸€è¡Œé™„加å‰ç¼€"
-#: diff.c:5368
+#: diff.c:5371
msgid "do not show any source or destination prefix"
msgstr "ä¸æ˜¾ç¤ºä»»ä½•æºå’Œç›®æ ‡å‰ç¼€"
-#: diff.c:5371
+#: diff.c:5374
msgid "show context between diff hunks up to the specified number of lines"
msgstr "显示指定行数的差异å—间的上下文"
-#: diff.c:5375 diff.c:5380 diff.c:5385
+#: diff.c:5378 diff.c:5383 diff.c:5388
msgid "<char>"
msgstr "<字符>"
-#: diff.c:5376
+#: diff.c:5379
msgid "specify the character to indicate a new line instead of '+'"
msgstr "指定一个字符å–代 '+' æ¥è¡¨ç¤ºæ–°çš„一行"
-#: diff.c:5381
+#: diff.c:5384
msgid "specify the character to indicate an old line instead of '-'"
msgstr "指定一个字符å–代 '-' æ¥è¡¨ç¤ºæ—§çš„一行"
-#: diff.c:5386
+#: diff.c:5389
msgid "specify the character to indicate a context instead of ' '"
msgstr "指定一个字符å–代 ' ' æ¥è¡¨ç¤ºä¸€è¡Œä¸Šä¸‹æ–‡"
-#: diff.c:5389
+#: diff.c:5392
msgid "Diff rename options"
msgstr "差异é‡å‘½å选项"
-#: diff.c:5390
+#: diff.c:5393
msgid "<n>[/<m>]"
msgstr "<n>[/<m>]"
-#: diff.c:5391
+#: diff.c:5394
msgid "break complete rewrite changes into pairs of delete and create"
msgstr "将完全é‡å†™çš„å˜æ›´æ‰“破为æˆå¯¹çš„删除和创建"
-#: diff.c:5395
+#: diff.c:5398
msgid "detect renames"
msgstr "检测é‡å‘½å"
-#: diff.c:5399
+#: diff.c:5402
msgid "omit the preimage for deletes"
msgstr "çœç•¥åˆ é™¤æ“作的差异输出"
-#: diff.c:5402
+#: diff.c:5405
msgid "detect copies"
msgstr "检测拷è´"
-#: diff.c:5406
+#: diff.c:5409
msgid "use unmodified files as source to find copies"
msgstr "使用未修改的文件åšä¸ºå‘现拷è´çš„æº"
-#: diff.c:5408
+#: diff.c:5411
msgid "disable rename detection"
msgstr "ç¦ç”¨é‡å‘½å探测"
-#: diff.c:5411
+#: diff.c:5414
msgid "use empty blobs as rename source"
msgstr "使用空的数æ®å¯¹è±¡åšä¸ºé‡å‘½åçš„æº"
-#: diff.c:5413
+#: diff.c:5416
msgid "continue listing the history of a file beyond renames"
msgstr "继续列出文件é‡å‘½å以外的历å²è®°å½•"
-#: diff.c:5416
+#: diff.c:5419
msgid ""
"prevent rename/copy detection if the number of rename/copy targets exceeds "
"given limit"
msgstr "如果é‡å‘½å/æ‹·è´ç›®æ ‡è¶…过给定的é™åˆ¶ï¼Œç¦æ­¢é‡å‘½å/æ‹·è´æ£€æµ‹"
-#: diff.c:5418
+#: diff.c:5421
msgid "Diff algorithm options"
msgstr "差异算法选项"
-#: diff.c:5420
+#: diff.c:5423
msgid "produce the smallest possible diff"
msgstr "生æˆå°½å¯èƒ½å°çš„差异"
-#: diff.c:5423
+#: diff.c:5426
msgid "ignore whitespace when comparing lines"
msgstr "行比较时忽略空白字符"
-#: diff.c:5426
+#: diff.c:5429
msgid "ignore changes in amount of whitespace"
msgstr "忽略空白字符的å˜æ›´"
-#: diff.c:5429
+#: diff.c:5432
msgid "ignore changes in whitespace at EOL"
msgstr "忽略行尾的空白字符å˜æ›´"
-#: diff.c:5432
+#: diff.c:5435
msgid "ignore carrier-return at the end of line"
msgstr "忽略行尾的回车符(CR)"
-#: diff.c:5435
+#: diff.c:5438
msgid "ignore changes whose lines are all blank"
msgstr "忽略整行都是空白的å˜æ›´"
-#: diff.c:5438
+#: diff.c:5441
msgid "heuristic to shift diff hunk boundaries for easy reading"
msgstr "å¯å‘å¼è½¬æ¢å·®å¼‚边界以便阅读"
-#: diff.c:5441
+#: diff.c:5444
msgid "generate diff using the \"patience diff\" algorithm"
msgstr "使用 \"patience diff\" 算法生æˆå·®å¼‚"
-#: diff.c:5445
+#: diff.c:5448
msgid "generate diff using the \"histogram diff\" algorithm"
msgstr "使用 \"histogram diff\" 算法生æˆå·®å¼‚"
-#: diff.c:5447
+#: diff.c:5450
msgid "<algorithm>"
msgstr "<算法>"
-#: diff.c:5448
+#: diff.c:5451
msgid "choose a diff algorithm"
msgstr "选择一个差异算法"
-#: diff.c:5450
+#: diff.c:5453
msgid "<text>"
msgstr "<文本>"
-#: diff.c:5451
+#: diff.c:5454
msgid "generate diff using the \"anchored diff\" algorithm"
msgstr "使用 \"anchored diff\" 算法生æˆå·®å¼‚"
-#: diff.c:5453 diff.c:5462 diff.c:5465
+#: diff.c:5456 diff.c:5465 diff.c:5468
msgid "<mode>"
msgstr "<模å¼>"
-#: diff.c:5454
+#: diff.c:5457
msgid "show word diff, using <mode> to delimit changed words"
msgstr "显示å•è¯å·®å¼‚,使用 <模å¼> 分隔å˜æ›´çš„å•è¯"
-#: diff.c:5456 diff.c:5459 diff.c:5504
+#: diff.c:5459 diff.c:5462 diff.c:5507
msgid "<regex>"
msgstr "<正则>"
-#: diff.c:5457
+#: diff.c:5460
msgid "use <regex> to decide what a word is"
msgstr "使用 <正则表达å¼> 确定何为一个è¯"
-#: diff.c:5460
+#: diff.c:5463
msgid "equivalent to --word-diff=color --word-diff-regex=<regex>"
msgstr "相当于 --word-diff=color --word-diff-regex=<正则>"
-#: diff.c:5463
+#: diff.c:5466
msgid "moved lines of code are colored differently"
msgstr "移动的代ç è¡Œç”¨ä¸åŒæ–¹å¼ç€è‰²"
-#: diff.c:5466
+#: diff.c:5469
msgid "how white spaces are ignored in --color-moved"
msgstr "在 --color-moved 下如何忽略空白字符"
-#: diff.c:5469
+#: diff.c:5472
msgid "Other diff options"
msgstr "其它差异选项"
-#: diff.c:5471
+#: diff.c:5474
msgid "when run from subdir, exclude changes outside and show relative paths"
msgstr "当从å­ç›®å½•è¿è¡Œï¼ŒæŽ’除目录之外的å˜æ›´å¹¶æ˜¾ç¤ºç›¸å¯¹è·¯å¾„"
-#: diff.c:5475
+#: diff.c:5478
msgid "treat all files as text"
msgstr "把所有文件当åšæ–‡æœ¬å¤„ç†"
-#: diff.c:5477
+#: diff.c:5480
msgid "swap two inputs, reverse the diff"
msgstr "交æ¢ä¸¤ä¸ªè¾“入,å转差异"
-#: diff.c:5479
+#: diff.c:5482
msgid "exit with 1 if there were differences, 0 otherwise"
msgstr "有差异时退出ç ä¸º 1,å¦åˆ™ä¸º 0"
-#: diff.c:5481
+#: diff.c:5484
msgid "disable all output of the program"
msgstr "ç¦ç”¨æœ¬ç¨‹åºçš„所有输出"
-#: diff.c:5483
+#: diff.c:5486
msgid "allow an external diff helper to be executed"
msgstr "å…许执行一个外置的差异助手"
-#: diff.c:5485
+#: diff.c:5488
msgid "run external text conversion filters when comparing binary files"
msgstr "当比较二进制文件时,è¿è¡Œå¤–部的文本转æ¢è¿‡æ»¤å™¨"
-#: diff.c:5487
+#: diff.c:5490
msgid "<when>"
msgstr "<何时>"
-#: diff.c:5488
+#: diff.c:5491
msgid "ignore changes to submodules in the diff generation"
msgstr "在生æˆå·®å¼‚时,忽略å­æ¨¡ç»„的更改"
-#: diff.c:5491
+#: diff.c:5494
msgid "<format>"
msgstr "<æ ¼å¼>"
-#: diff.c:5492
+#: diff.c:5495
msgid "specify how differences in submodules are shown"
msgstr "指定å­æ¨¡ç»„的差异如何显示"
-#: diff.c:5496
+#: diff.c:5499
msgid "hide 'git add -N' entries from the index"
msgstr "éšè—索引中 'git add -N' æ¡ç›®"
-#: diff.c:5499
+#: diff.c:5502
msgid "treat 'git add -N' entries as real in the index"
msgstr "将索引中 'git add -N' æ¡ç›®å½“åšçœŸå®žçš„"
-#: diff.c:5501
+#: diff.c:5504
msgid "<string>"
msgstr "<字符串>"
-#: diff.c:5502
+#: diff.c:5505
msgid ""
"look for differences that change the number of occurrences of the specified "
"string"
msgstr "查找改å˜äº†æŒ‡å®šå­—符串出现次数的差异"
-#: diff.c:5505
+#: diff.c:5508
msgid ""
"look for differences that change the number of occurrences of the specified "
"regex"
msgstr "查找改å˜æŒ‡å®šæ­£åˆ™åŒ¹é…出现次数的差异"
-#: diff.c:5508
+#: diff.c:5511
msgid "show all changes in the changeset with -S or -G"
msgstr "显示使用 -S 或 -G çš„å˜æ›´é›†çš„所有å˜æ›´"
-#: diff.c:5511
+#: diff.c:5514
msgid "treat <string> in -S as extended POSIX regular expression"
msgstr "å°† -S çš„ <string> 当åšæ‰©å±•çš„ POSIX 正则表达å¼"
-#: diff.c:5514
+#: diff.c:5517
msgid "control the order in which files appear in the output"
msgstr "控制输出中的文件显示顺åº"
-#: diff.c:5515
+#: diff.c:5518
msgid "<object-id>"
msgstr "<对象 ID>"
-#: diff.c:5516
+#: diff.c:5519
msgid ""
"look for differences that change the number of occurrences of the specified "
"object"
msgstr "查找改å˜æŒ‡å®šå¯¹è±¡å‡ºçŽ°æ¬¡æ•°çš„差异"
-#: diff.c:5518
+#: diff.c:5521
msgid "[(A|C|D|M|R|T|U|X|B)...[*]]"
msgstr "[(A|C|D|M|R|T|U|X|B)...[*]]"
-#: diff.c:5519
+#: diff.c:5522
msgid "select files by diff type"
msgstr "通过差异类型选择文件"
-#: diff.c:5521
+#: diff.c:5524
msgid "<file>"
msgstr "<文件>"
-#: diff.c:5522
+#: diff.c:5525
msgid "Output to a specific file"
msgstr "输出到一个指定的文件"
-#: diff.c:6177
+#: diff.c:6180
msgid "inexact rename detection was skipped due to too many files."
msgstr "因为文件太多,略过ä¸ä¸¥æ ¼çš„é‡å‘½å检查。"
-#: diff.c:6180
+#: diff.c:6183
msgid "only found copies from modified paths due to too many files."
msgstr "因为文件太多,åªåœ¨ä¿®æ”¹çš„路径中查找拷è´ã€‚"
-#: diff.c:6183
+#: diff.c:6186
#, c-format
msgid ""
"you may want to set your %s variable to at least %d and retry the command."
msgstr "您å¯èƒ½æƒ³è¦å°†å˜é‡ %s 设置为至少 %d 并å†æ¬¡æ‰§è¡Œæ­¤å‘½ä»¤ã€‚"
-#: dir.c:537
+#: dir.c:549
#, c-format
msgid "pathspec '%s' did not match any file(s) known to git"
msgstr "路径规格 '%s' 未匹é…任何 git 已知文件"
-#: dir.c:926
+#: dir.c:938
#, c-format
msgid "cannot use %s as an exclude file"
msgstr "ä¸èƒ½å°† %s 用作排除文件"
-#: dir.c:1843
+#: dir.c:1877
#, c-format
msgid "could not open directory '%s'"
msgstr "ä¸èƒ½æ‰“开目录 '%s'"
-#: dir.c:2085
+#: dir.c:2128
msgid "failed to get kernel name and information"
msgstr "无法获得内核å称和信æ¯"
-#: dir.c:2209
+#: dir.c:2252
msgid "untracked cache is disabled on this system or location"
msgstr "缓存未跟踪文件在本系统或ä½ç½®ä¸­è¢«ç¦ç”¨"
-#: dir.c:3013
+#: dir.c:3056
#, c-format
msgid "index file corrupt in repo %s"
msgstr "仓库 %s 中的索引文件æŸå"
-#: dir.c:3058 dir.c:3063
+#: dir.c:3101 dir.c:3106
#, c-format
msgid "could not create directories for %s"
msgstr "ä¸èƒ½ä¸º %s 创建目录"
-#: dir.c:3092
+#: dir.c:3135
#, c-format
msgid "could not migrate git directory from '%s' to '%s'"
msgstr "ä¸èƒ½ä»Ž '%s' è¿ç§» git 目录到 '%s'"
@@ -3095,12 +3106,12 @@ msgstr "过滤内容"
msgid "could not stat file '%s'"
msgstr "ä¸èƒ½å¯¹æ–‡ä»¶ '%s' 调用 stat"
-#: environment.c:150
+#: environment.c:148
#, c-format
msgid "bad git namespace path \"%s\""
msgstr "错误的 git å字空间路径 \"%s\""
-#: environment.c:332
+#: environment.c:330
#, c-format
msgid "could not set GIT_DIR to '%s'"
msgstr "ä¸èƒ½è®¾ç½® GIT_DIR 为 '%s'"
@@ -3110,158 +3121,154 @@ msgstr "ä¸èƒ½è®¾ç½® GIT_DIR 为 '%s'"
msgid "too many args to run %s"
msgstr "执行 %s çš„å‚数太多"
-#: fetch-object.c:17
-msgid "Remote with no URL"
-msgstr "远程未设置 URL"
-
-#: fetch-pack.c:151
+#: fetch-pack.c:150
msgid "git fetch-pack: expected shallow list"
msgstr "git fetch-pack:应为 shallow 列表"
-#: fetch-pack.c:154
+#: fetch-pack.c:153
msgid "git fetch-pack: expected a flush packet after shallow list"
msgstr "git fetch-pack:在浅克隆列表之åŽæœŸæœ›ä¸€ä¸ª flush 包"
-#: fetch-pack.c:165
+#: fetch-pack.c:164
msgid "git fetch-pack: expected ACK/NAK, got a flush packet"
msgstr "git fetch-pack:期望 ACK/NAK,å´å¾—到 flush 包"
-#: fetch-pack.c:185
+#: fetch-pack.c:184
#, c-format
msgid "git fetch-pack: expected ACK/NAK, got '%s'"
msgstr "git fetch-pack:应为 ACK/NAK,å´å¾—到 '%s'"
-#: fetch-pack.c:196
+#: fetch-pack.c:195
msgid "unable to write to remote"
msgstr "无法写到远程"
-#: fetch-pack.c:258
+#: fetch-pack.c:257
msgid "--stateless-rpc requires multi_ack_detailed"
msgstr "--stateless-rpc éœ€è¦ multi_ack_detailed"
-#: fetch-pack.c:360 fetch-pack.c:1284
+#: fetch-pack.c:356 fetch-pack.c:1280
#, c-format
msgid "invalid shallow line: %s"
msgstr "无效的 shallow ä¿¡æ¯ï¼š%s"
-#: fetch-pack.c:366 fetch-pack.c:1290
+#: fetch-pack.c:362 fetch-pack.c:1286
#, c-format
msgid "invalid unshallow line: %s"
msgstr "无效的 unshallow ä¿¡æ¯ï¼š%s"
-#: fetch-pack.c:368 fetch-pack.c:1292
+#: fetch-pack.c:364 fetch-pack.c:1288
#, c-format
msgid "object not found: %s"
msgstr "对象未找到:%s"
-#: fetch-pack.c:371 fetch-pack.c:1295
+#: fetch-pack.c:367 fetch-pack.c:1291
#, c-format
msgid "error in object: %s"
msgstr "对象中出错:%s"
-#: fetch-pack.c:373 fetch-pack.c:1297
+#: fetch-pack.c:369 fetch-pack.c:1293
#, c-format
msgid "no shallow found: %s"
msgstr "未å‘现 shallow:%s"
-#: fetch-pack.c:376 fetch-pack.c:1301
+#: fetch-pack.c:372 fetch-pack.c:1297
#, c-format
msgid "expected shallow/unshallow, got %s"
msgstr "应为 shallow/unshallow,å´å¾—到 %s"
-#: fetch-pack.c:417
+#: fetch-pack.c:414
#, c-format
msgid "got %s %d %s"
msgstr "得到 %s %d %s"
-#: fetch-pack.c:434
+#: fetch-pack.c:431
#, c-format
msgid "invalid commit %s"
msgstr "无效æ交 %s"
-#: fetch-pack.c:465
+#: fetch-pack.c:462
msgid "giving up"
msgstr "放弃"
-#: fetch-pack.c:477 progress.c:277
+#: fetch-pack.c:475 progress.c:312
msgid "done"
msgstr "完æˆ"
-#: fetch-pack.c:489
+#: fetch-pack.c:487
#, c-format
msgid "got %s (%d) %s"
msgstr "得到 %s (%d) %s"
-#: fetch-pack.c:535
+#: fetch-pack.c:533
#, c-format
msgid "Marking %s as complete"
msgstr "标记 %s 为完æˆ"
-#: fetch-pack.c:744
+#: fetch-pack.c:742
#, c-format
msgid "already have %s (%s)"
msgstr "å·²ç»æœ‰ %s(%s)"
-#: fetch-pack.c:783
+#: fetch-pack.c:781
msgid "fetch-pack: unable to fork off sideband demultiplexer"
msgstr "fetch-pack:无法派生 sideband 多路输出"
-#: fetch-pack.c:791
+#: fetch-pack.c:789
msgid "protocol error: bad pack header"
msgstr "å议错误:å的包头"
-#: fetch-pack.c:859
+#: fetch-pack.c:857
#, c-format
msgid "fetch-pack: unable to fork off %s"
msgstr "fetch-pack:无法派生进程 %s"
-#: fetch-pack.c:875
+#: fetch-pack.c:873
#, c-format
msgid "%s failed"
msgstr "%s 失败"
-#: fetch-pack.c:877
+#: fetch-pack.c:875
msgid "error in sideband demultiplexer"
msgstr "sideband 多路输出出错"
-#: fetch-pack.c:908
+#: fetch-pack.c:907
#, c-format
msgid "Server version is %.*s"
msgstr "æœåŠ¡å™¨ç‰ˆæœ¬ %.*s"
-#: fetch-pack.c:913 fetch-pack.c:919 fetch-pack.c:922 fetch-pack.c:928
-#: fetch-pack.c:932 fetch-pack.c:936 fetch-pack.c:940 fetch-pack.c:944
-#: fetch-pack.c:948 fetch-pack.c:952 fetch-pack.c:956 fetch-pack.c:960
-#: fetch-pack.c:966 fetch-pack.c:972 fetch-pack.c:977 fetch-pack.c:982
+#: fetch-pack.c:912 fetch-pack.c:918 fetch-pack.c:921 fetch-pack.c:927
+#: fetch-pack.c:931 fetch-pack.c:935 fetch-pack.c:939 fetch-pack.c:943
+#: fetch-pack.c:947 fetch-pack.c:951 fetch-pack.c:955 fetch-pack.c:959
+#: fetch-pack.c:965 fetch-pack.c:971 fetch-pack.c:976 fetch-pack.c:981
#, c-format
msgid "Server supports %s"
msgstr "æœåŠ¡å™¨æ”¯æŒ %s"
-#: fetch-pack.c:915
+#: fetch-pack.c:914
msgid "Server does not support shallow clients"
msgstr "æœåŠ¡å™¨ä¸æ”¯æŒ shalllow 客户端"
-#: fetch-pack.c:975
+#: fetch-pack.c:974
msgid "Server does not support --shallow-since"
msgstr "æœåŠ¡å™¨ä¸æ”¯æŒ --shallow-since"
-#: fetch-pack.c:980
+#: fetch-pack.c:979
msgid "Server does not support --shallow-exclude"
msgstr "æœåŠ¡å™¨ä¸æ”¯æŒ --shallow-exclude"
-#: fetch-pack.c:984
+#: fetch-pack.c:983
msgid "Server does not support --deepen"
msgstr "æœåŠ¡å™¨ä¸æ”¯æŒ --deepen"
-#: fetch-pack.c:1001
+#: fetch-pack.c:1000
msgid "no common commits"
msgstr "没有共åŒçš„æ交"
-#: fetch-pack.c:1013 fetch-pack.c:1462
+#: fetch-pack.c:1012 fetch-pack.c:1468
msgid "git fetch-pack: fetch failed."
msgstr "git fetch-pack:获å–失败。"
-#: fetch-pack.c:1151
+#: fetch-pack.c:1150
msgid "Server does not support shallow requests"
msgstr "æœåŠ¡å™¨ä¸æ”¯æŒ shalllow 请求"
@@ -3269,72 +3276,72 @@ msgstr "æœåŠ¡å™¨ä¸æ”¯æŒ shalllow 请求"
msgid "Server supports filter"
msgstr "æœåŠ¡å™¨æ”¯æŒ filter"
-#: fetch-pack.c:1184
+#: fetch-pack.c:1180
msgid "unable to write request to remote"
msgstr "无法将请求写到远程"
-#: fetch-pack.c:1202
+#: fetch-pack.c:1198
#, c-format
msgid "error reading section header '%s'"
msgstr "读å–节标题 '%s' 出错"
-#: fetch-pack.c:1208
+#: fetch-pack.c:1204
#, c-format
msgid "expected '%s', received '%s'"
msgstr "预期 '%s',得到 '%s'"
-#: fetch-pack.c:1247
+#: fetch-pack.c:1243
#, c-format
msgid "unexpected acknowledgment line: '%s'"
msgstr "æ„外的确认行:'%s'"
-#: fetch-pack.c:1252
+#: fetch-pack.c:1248
#, c-format
msgid "error processing acks: %d"
msgstr "å¤„ç† ack 出错:%d"
-#: fetch-pack.c:1262
+#: fetch-pack.c:1258
msgid "expected packfile to be sent after 'ready'"
msgstr "预期在 'ready' 之åŽå‘é€ packfile"
-#: fetch-pack.c:1264
+#: fetch-pack.c:1260
msgid "expected no other sections to be sent after no 'ready'"
msgstr "在没有 'ready' ä¸åº”该å‘é€å…¶å®ƒå°èŠ‚"
-#: fetch-pack.c:1306
+#: fetch-pack.c:1302
#, c-format
msgid "error processing shallow info: %d"
msgstr "处ç†æµ…克隆信æ¯å‡ºé”™ï¼š%d"
-#: fetch-pack.c:1353
+#: fetch-pack.c:1349
#, c-format
msgid "expected wanted-ref, got '%s'"
msgstr "预期 wanted-ref,得到 '%s'"
-#: fetch-pack.c:1358
+#: fetch-pack.c:1354
#, c-format
msgid "unexpected wanted-ref: '%s'"
msgstr "æ„外的 wanted-ref:'%s'"
-#: fetch-pack.c:1363
+#: fetch-pack.c:1359
#, c-format
msgid "error processing wanted refs: %d"
msgstr "处ç†è¦èŽ·å–的引用出错:%d"
-#: fetch-pack.c:1689
+#: fetch-pack.c:1693
msgid "no matching remote head"
msgstr "没有匹é…的远程分支"
-#: fetch-pack.c:1712 builtin/clone.c:686
+#: fetch-pack.c:1716 builtin/clone.c:685
msgid "remote did not send all necessary objects"
msgstr "远程没有å‘é€æ‰€æœ‰å¿…需的对象"
-#: fetch-pack.c:1739
+#: fetch-pack.c:1743
#, c-format
msgid "no such remote ref %s"
msgstr "没有这样的远程引用 %s"
-#: fetch-pack.c:1742
+#: fetch-pack.c:1746
#, c-format
msgid "Server does not allow request for unadvertised object %s"
msgstr "æœåŠ¡å™¨ä¸å…许请求未公开的对象 %s"
@@ -3357,18 +3364,25 @@ msgstr "无法将分离å¼ç­¾å写入 '%s'"
msgid "ignore invalid color '%.*s' in log.graphColors"
msgstr "忽略 log.graphColors 中无效的颜色 '%.*s'"
-#: grep.c:2117
+#: grep.c:668
+msgid ""
+"given pattern contains NULL byte (via -f <file>). This is only supported "
+"with -P under PCRE v2"
+msgstr ""
+"给定的模å¼åŒ…å« NULL 字符(通过 -f <文件> å‚数)。åªæœ‰ PCRE v2 下的 -P 支æŒæ­¤åŠŸèƒ½"
+
+#: grep.c:2124
#, c-format
msgid "'%s': unable to read %s"
msgstr "'%s'ï¼šæ— æ³•è¯»å– %s"
-#: grep.c:2134 setup.c:164 builtin/clone.c:409 builtin/diff.c:82
+#: grep.c:2141 setup.c:165 builtin/clone.c:408 builtin/diff.c:82
#: builtin/rm.c:135
#, c-format
msgid "failed to stat '%s'"
msgstr "对 '%s' 调用 stat 失败"
-#: grep.c:2145
+#: grep.c:2152
#, c-format
msgid "'%s': short read"
msgstr "'%s':读å–ä¸å®Œæ•´"
@@ -3510,12 +3524,12 @@ msgstr[1] ""
msgid "git version [<options>]"
msgstr "git version [<选项>]"
-#: help.c:782
+#: help.c:783
#, c-format
msgid "%s: %s - %s"
msgstr "%s:%s - %s"
-#: help.c:786
+#: help.c:787
msgid ""
"\n"
"Did you mean this?"
@@ -3587,41 +3601,56 @@ msgstr "姓å中仅包å«ç¦ç”¨å­—符:%s"
msgid "invalid date format: %s"
msgstr "无效的日期格å¼ï¼š%s"
-#: list-objects.c:129
+#: list-objects.c:127
#, c-format
msgid "entry '%s' in tree %s has tree mode, but is not a tree"
msgstr "æ ‘ %2$s 中的æ¡ç›® '%1$s' 具有树的属性,但ä¸æ˜¯ä¸€ä¸ªæ ‘对象"
-#: list-objects.c:142
+#: list-objects.c:140
#, c-format
msgid "entry '%s' in tree %s has blob mode, but is not a blob"
msgstr "æ ‘ %2$s 中的æ¡ç›® '%1$s' 具有数æ®å¯¹è±¡çš„属性,但ä¸æ˜¯ä¸€ä¸ªæ•°æ®å¯¹è±¡"
-#: list-objects.c:378
+#: list-objects.c:375
#, c-format
msgid "unable to load root tree for commit %s"
msgstr "无法为æ交 %s 加载根树"
-#: list-objects-filter-options.c:36
-msgid "multiple filter-specs cannot be combined"
-msgstr "ä¸èƒ½æ··ç”¨å¤šç§è¿‡æ»¤è§„æ ¼"
+#: list-objects-filter.c:492
+#, c-format
+msgid "unable to access sparse blob in '%s'"
+msgstr "ä¸èƒ½è®¿é—® '%s' 中的稀ç–æ•°æ®å¯¹è±¡"
+
+#: list-objects-filter.c:495
+#, c-format
+msgid "unable to parse sparse filter data in %s"
+msgstr "æ— æ³•è§£æž %s 中的稀ç–过滤器数æ®"
#: list-objects-filter-options.c:58
msgid "expected 'tree:<depth>'"
msgstr "期望 'tree:<深度>'"
-#: list-objects-filter-options.c:84
+#: list-objects-filter-options.c:73
msgid "sparse:path filters support has been dropped"
msgstr "sparse:path 过滤器支æŒå·²è¢«åˆ é™¤"
-#: list-objects-filter-options.c:94
+#: list-objects-filter-options.c:86
#, c-format
msgid "invalid filter-spec '%s'"
msgstr "æ— æ•ˆçš„è¿‡æ»¤å™¨è¡¨è¾¾å¼ '%s'"
-#: list-objects-filter-options.c:158
-msgid "cannot change partial clone promisor remote"
-msgstr "无法修改部分克隆的 promisor 远程仓库"
+#: list-objects-filter-options.c:102
+#, c-format
+msgid "must escape char in sub-filter-spec: '%c'"
+msgstr "必须对 sub-filter-spec 中的字符进行转义:'%c'"
+
+#: list-objects-filter-options.c:144
+msgid "expected something after combine:"
+msgstr "期望在组åˆåŽæœ‰ä¸€äº›ä¸œè¥¿ï¼š"
+
+#: list-objects-filter-options.c:226
+msgid "multiple filter-specs cannot be combined"
+msgstr "ä¸èƒ½æ··ç”¨å¤šç§è¿‡æ»¤è§„æ ¼"
#: lockfile.c:151
#, c-format
@@ -3650,114 +3679,110 @@ msgstr "ä¸èƒ½åˆ›å»º '%s.lock':%s"
msgid "failed to read the cache"
msgstr "读å–缓存失败"
-#: merge.c:107 rerere.c:720 builtin/am.c:1885 builtin/am.c:1919
-#: builtin/checkout.c:536 builtin/checkout.c:796 builtin/clone.c:786
+#: merge.c:107 rerere.c:720 builtin/am.c:1874 builtin/am.c:1908
+#: builtin/checkout.c:537 builtin/checkout.c:796 builtin/clone.c:785
#: builtin/stash.c:264
msgid "unable to write new index file"
msgstr "无法写新的索引文件"
-#: merge-recursive.c:322
+#: merge-recursive.c:367
msgid "(bad commit)\n"
msgstr "(åæ交)\n"
-#: merge-recursive.c:345
+#: merge-recursive.c:390
#, c-format
msgid "add_cacheinfo failed for path '%s'; merge aborting."
msgstr "add_cacheinfo 对路径 '%s' 执行失败,åˆå¹¶ç»ˆæ­¢ã€‚"
-#: merge-recursive.c:354
+#: merge-recursive.c:399
#, c-format
msgid "add_cacheinfo failed to refresh for path '%s'; merge aborting."
msgstr "add_cacheinfo 无法刷新路径 '%s',åˆå¹¶ç»ˆæ­¢ã€‚"
-#: merge-recursive.c:437
-msgid "error building trees"
-msgstr "创建树出错"
-
-#: merge-recursive.c:863
+#: merge-recursive.c:885
#, c-format
msgid "failed to create path '%s'%s"
msgstr "创建路径 '%s'%s 失败"
-#: merge-recursive.c:874
+#: merge-recursive.c:896
#, c-format
msgid "Removing %s to make room for subdirectory\n"
msgstr "删除 %s 以便为å­ç›®å½•ç•™å‡ºç©ºé—´\n"
-#: merge-recursive.c:888 merge-recursive.c:907
+#: merge-recursive.c:910 merge-recursive.c:929
msgid ": perhaps a D/F conflict?"
msgstr ":å¯èƒ½æ˜¯ä¸€ä¸ªç›®å½•/文件冲çªï¼Ÿ"
-#: merge-recursive.c:897
+#: merge-recursive.c:919
#, c-format
msgid "refusing to lose untracked file at '%s'"
msgstr "æ‹’ç»ä¸¢å¼ƒ '%s' 中的未跟踪文件"
-#: merge-recursive.c:938 builtin/cat-file.c:40
+#: merge-recursive.c:960 builtin/cat-file.c:41
#, c-format
msgid "cannot read object %s '%s'"
msgstr "ä¸èƒ½è¯»å–对象 %s '%s'"
-#: merge-recursive.c:941
+#: merge-recursive.c:965
#, c-format
msgid "blob expected for %s '%s'"
msgstr "%s '%s' 应为数æ®å¯¹è±¡"
-#: merge-recursive.c:965
+#: merge-recursive.c:990
#, c-format
msgid "failed to open '%s': %s"
msgstr "打开 '%s' 失败:%s"
-#: merge-recursive.c:976
+#: merge-recursive.c:1001
#, c-format
msgid "failed to symlink '%s': %s"
msgstr "创建符å·é“¾æŽ¥ '%s' 失败:%s"
-#: merge-recursive.c:981
+#: merge-recursive.c:1006
#, c-format
msgid "do not know what to do with %06o %s '%s'"
msgstr "ä¸çŸ¥é“å¦‚ä½•å¤„ç† %06o %s '%s'"
-#: merge-recursive.c:1177
+#: merge-recursive.c:1199
#, c-format
msgid "Failed to merge submodule %s (not checked out)"
msgstr "无法åˆå¹¶å­æ¨¡ç»„ %s (没有检出)"
-#: merge-recursive.c:1184
+#: merge-recursive.c:1206
#, c-format
msgid "Failed to merge submodule %s (commits not present)"
msgstr "无法åˆå¹¶å­æ¨¡ç»„ %s(æ交ä¸å­˜åœ¨ï¼‰"
-#: merge-recursive.c:1191
+#: merge-recursive.c:1213
#, c-format
msgid "Failed to merge submodule %s (commits don't follow merge-base)"
msgstr "无法åˆå¹¶å­æ¨¡ç»„ %s (æ交未跟éšåˆå¹¶åŸºçº¿ï¼‰"
-#: merge-recursive.c:1199 merge-recursive.c:1211
+#: merge-recursive.c:1221 merge-recursive.c:1233
#, c-format
msgid "Fast-forwarding submodule %s to the following commit:"
msgstr "å­æ¨¡ç»„ %s 快进到如下æ交:"
-#: merge-recursive.c:1202 merge-recursive.c:1214
+#: merge-recursive.c:1224 merge-recursive.c:1236
#, c-format
msgid "Fast-forwarding submodule %s"
msgstr "å¿«è¿›å­æ¨¡ç»„ %s"
-#: merge-recursive.c:1237
+#: merge-recursive.c:1259
#, c-format
msgid "Failed to merge submodule %s (merge following commits not found)"
msgstr "无法åˆå¹¶å­æ¨¡ç»„ %s (没å‘现åˆå¹¶è·Ÿéšçš„æ交)"
-#: merge-recursive.c:1241
+#: merge-recursive.c:1263
#, c-format
msgid "Failed to merge submodule %s (not fast-forward)"
msgstr "无法åˆå¹¶å­æ¨¡ç»„ %s(éžå¿«è¿›ï¼‰"
-#: merge-recursive.c:1242
+#: merge-recursive.c:1264
msgid "Found a possible merge resolution for the submodule:\n"
msgstr "找到å­æ¨¡ç»„的一个å¯èƒ½çš„åˆå¹¶æ–¹æ¡ˆï¼š\n"
-#: merge-recursive.c:1245
+#: merge-recursive.c:1267
#, c-format
msgid ""
"If this is correct simply add it to the index for example\n"
@@ -3773,31 +3798,31 @@ msgstr ""
"\n"
"以接å—此建议。\n"
-#: merge-recursive.c:1254
+#: merge-recursive.c:1276
#, c-format
msgid "Failed to merge submodule %s (multiple merges found)"
msgstr "无法åˆå¹¶å­æ¨¡ç»„ %s (å‘现多个åˆå¹¶ï¼‰"
-#: merge-recursive.c:1327
+#: merge-recursive.c:1349
msgid "Failed to execute internal merge"
msgstr "无法执行内部åˆå¹¶"
-#: merge-recursive.c:1332
+#: merge-recursive.c:1354
#, c-format
msgid "Unable to add %s to database"
msgstr "ä¸èƒ½æ·»åŠ  %s 至对象库"
-#: merge-recursive.c:1364
+#: merge-recursive.c:1386
#, c-format
msgid "Auto-merging %s"
msgstr "自动åˆå¹¶ %s"
-#: merge-recursive.c:1387
+#: merge-recursive.c:1410
#, c-format
msgid "Error: Refusing to lose untracked file at %s; writing to %s instead."
msgstr "错误:拒ç»ä¸¢å¤±æœªè·Ÿè¸ªæ–‡ä»¶ '%s',而是写入 %s。"
-#: merge-recursive.c:1459
+#: merge-recursive.c:1482
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -3806,7 +3831,7 @@ msgstr ""
"冲çªï¼ˆ%1$s/删除):%2$s 在 %3$s 中被删除,在 %5$s 中被 %4$s。%7$s çš„ %6$s 版"
"本被ä¿ç•™ã€‚"
-#: merge-recursive.c:1464
+#: merge-recursive.c:1487
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -3815,7 +3840,7 @@ msgstr ""
"冲çªï¼ˆ%1$s/删除):%2$s 在 %3$s 中被删除,在 %6$s 中的 %5$s 被 %4$s。%8$s çš„ "
"%7$s 版本被ä¿ç•™ã€‚"
-#: merge-recursive.c:1471
+#: merge-recursive.c:1494
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -3824,7 +3849,7 @@ msgstr ""
"冲çªï¼ˆ%1$s/删除):%2$s 在 %3$s 中被删除,在 %5$s 中被 %4$s。%7$s çš„ %6$s 版"
"本ä¿ç•™åœ¨ %8$s 中。"
-#: merge-recursive.c:1476
+#: merge-recursive.c:1499
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -3833,40 +3858,40 @@ msgstr ""
"冲çªï¼ˆ%1$s/删除):%2$s 在 %3$s 中被删除,在 %6$s 中的 %5$s 被 %4$s。%8$s çš„ "
"%7$s 版本ä¿ç•™åœ¨ %9$s 中。"
-#: merge-recursive.c:1511
+#: merge-recursive.c:1534
msgid "rename"
msgstr "é‡å‘½å"
-#: merge-recursive.c:1511
+#: merge-recursive.c:1534
msgid "renamed"
msgstr "é‡å‘½å"
-#: merge-recursive.c:1591 merge-recursive.c:2450 merge-recursive.c:3094
+#: merge-recursive.c:1614 merge-recursive.c:2472 merge-recursive.c:3117
#, c-format
msgid "Refusing to lose dirty file at %s"
msgstr "æ‹’ç»ä¸¢å¤±è„文件 '%s'"
-#: merge-recursive.c:1601
+#: merge-recursive.c:1624
#, c-format
msgid "Refusing to lose untracked file at %s, even though it's in the way."
msgstr "æ‹’ç»åœ¨ '%s' 处失去未跟踪文件,å³ä½¿å®ƒå­˜åœ¨äºŽé‡å‘½å中。"
-#: merge-recursive.c:1659
+#: merge-recursive.c:1682
#, 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:1690
+#: merge-recursive.c:1713
#, c-format
msgid "%s is a directory in %s adding as %s instead"
msgstr "%s 是 %s 中的一个目录而以 %s 为å被添加"
-#: merge-recursive.c:1695
+#: merge-recursive.c:1718
#, c-format
msgid "Refusing to lose untracked file at %s; adding as %s instead"
msgstr "æ‹’ç»ä¸¢å¤±æœªè·Ÿè¸ªæ–‡ä»¶ '%s',而是添加为 %s"
-#: merge-recursive.c:1714
+#: merge-recursive.c:1737
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
@@ -3875,18 +3900,18 @@ msgstr ""
"冲çªï¼ˆé‡å‘½å/é‡å‘½å):在分支 \"%3$s\" 中é‡å‘½å \"%1$s\"->\"%2$s\",在分支 "
"\"%6$s\" 中é‡å‘½å \"%4$s\"->\"%5$s\"%7$s"
-#: merge-recursive.c:1719
+#: merge-recursive.c:1742
msgid " (left unresolved)"
msgstr "(留下未解决)"
-#: merge-recursive.c:1828
+#: merge-recursive.c:1851
#, 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:2035
+#: merge-recursive.c:2056
#, c-format
msgid ""
"CONFLICT (directory rename split): Unclear where to place %s because "
@@ -3896,7 +3921,7 @@ msgstr ""
"冲çªï¼ˆåˆ†å‰²çš„目录é‡å‘½å):ä¸æ¸…楚 %s 应该放在哪里,因为目录 %s 被é‡å‘½å到多个"
"其它目录,没有目录包å«å¤§éƒ¨åˆ†æ–‡ä»¶ã€‚"
-#: merge-recursive.c:2067
+#: merge-recursive.c:2088
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Existing file/dir at %s in the way of "
@@ -3905,7 +3930,7 @@ msgstr ""
"冲çªï¼ˆéšå¼ç›®å½•é‡å‘½å):处于éšå¼ç›®å½•é‡å‘½å的现存文件/目录 %s,将以下路径放"
"在:%s。"
-#: merge-recursive.c:2077
+#: merge-recursive.c:2098
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Cannot map more than one path to %s; "
@@ -3914,7 +3939,7 @@ msgstr ""
"冲çªï¼ˆéšå¼ç›®å½•é‡å‘½å):无法映射一个以上路径到 %s,éšå¼ç›®å½•é‡å‘½åå°è¯•å°†è¿™äº›è·¯"
"径放置于此:%s"
-#: merge-recursive.c:2169
+#: merge-recursive.c:2190
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename directory %s->%s in %s. Rename directory %s-"
@@ -3923,59 +3948,59 @@ msgstr ""
"冲çªï¼ˆé‡å‘½å/é‡å‘½å):在 %3$s 中é‡å‘½å目录 %1$s->%2$s,在 %6$s 中é‡å‘½å目录 "
"%4$s->%5$s"
-#: merge-recursive.c:2413
+#: merge-recursive.c:2435
#, c-format
msgid ""
"WARNING: Avoiding applying %s -> %s rename to %s, because %s itself was "
"renamed."
msgstr "警告:é¿å…应用 %s -> %s çš„é‡å‘½å到 %s,因为 %s 本身已被é‡å‘½å。"
-#: merge-recursive.c:2938
+#: merge-recursive.c:2961
#, c-format
msgid "cannot read object %s"
msgstr "ä¸èƒ½è¯»å–对象 %s"
-#: merge-recursive.c:2941
+#: merge-recursive.c:2964
#, c-format
msgid "object %s is not a blob"
msgstr "对象 %s ä¸æ˜¯ä¸€ä¸ªæ•°æ®å¯¹è±¡"
-#: merge-recursive.c:3005
+#: merge-recursive.c:3028
msgid "modify"
msgstr "修改"
-#: merge-recursive.c:3005
+#: merge-recursive.c:3028
msgid "modified"
msgstr "修改"
-#: merge-recursive.c:3017
+#: merge-recursive.c:3040
msgid "content"
msgstr "内容"
-#: merge-recursive.c:3021
+#: merge-recursive.c:3044
msgid "add/add"
msgstr "添加/添加"
-#: merge-recursive.c:3044
+#: merge-recursive.c:3067
#, c-format
msgid "Skipped %s (merged same as existing)"
msgstr "略过 %s(已ç»åšè¿‡ç›¸åŒåˆå¹¶ï¼‰"
-#: merge-recursive.c:3066 git-submodule.sh:937
+#: merge-recursive.c:3089 git-submodule.sh:937
msgid "submodule"
msgstr "å­æ¨¡ç»„"
-#: merge-recursive.c:3067
+#: merge-recursive.c:3090
#, c-format
msgid "CONFLICT (%s): Merge conflict in %s"
msgstr "冲çªï¼ˆ%s):åˆå¹¶å†²çªäºŽ %s"
-#: merge-recursive.c:3097
+#: merge-recursive.c:3120
#, c-format
msgid "Adding as %s instead"
msgstr "而是以 %s 为å添加"
-#: merge-recursive.c:3179
+#: merge-recursive.c:3203
#, c-format
msgid ""
"Path updated: %s added in %s inside a directory that was renamed in %s; "
@@ -3983,7 +4008,7 @@ msgid ""
msgstr ""
"路径已更新:%s 添加到 %s,ä½äºŽä¸€ä¸ªè¢«é‡å‘½å到 %s 的目录中,将其移动到 %s。"
-#: merge-recursive.c:3182
+#: merge-recursive.c:3206
#, c-format
msgid ""
"CONFLICT (file location): %s added in %s inside a directory that was renamed "
@@ -3992,7 +4017,7 @@ msgstr ""
"冲çªï¼ˆæ–‡ä»¶ä½ç½®ï¼‰ï¼š%s 添加到 %s,ä½äºŽä¸€ä¸ªè¢«é‡å‘½å为 %s 的目录中,建议将其移动"
"到 %s。"
-#: merge-recursive.c:3186
+#: merge-recursive.c:3210
#, c-format
msgid ""
"Path updated: %s renamed to %s in %s, inside a directory that was renamed in "
@@ -4001,7 +4026,7 @@ msgstr ""
"路径已更新:%1$s é‡å‘½å为 %3$s 中的 %2$s,而该目录被é‡å‘½å到 %4$s 中,将其移"
"动到 %5$s。"
-#: merge-recursive.c:3189
+#: merge-recursive.c:3213
#, c-format
msgid ""
"CONFLICT (file location): %s renamed to %s in %s, inside a directory that "
@@ -4010,224 +4035,224 @@ msgstr ""
"冲çªï¼ˆæ–‡ä»¶ä½ç½®ï¼‰ï¼š%1$s é‡å‘½å为 %3$s 中的 %2$s,而该目录被é‡å‘½å到 %4$s 中,"
"建议将其移动到 %5$s。"
-#: merge-recursive.c:3303
+#: merge-recursive.c:3327
#, c-format
msgid "Removing %s"
msgstr "删除 %s"
-#: merge-recursive.c:3326
+#: merge-recursive.c:3350
msgid "file/directory"
msgstr "文件/目录"
-#: merge-recursive.c:3331
+#: merge-recursive.c:3355
msgid "directory/file"
msgstr "目录/文件"
-#: merge-recursive.c:3338
+#: merge-recursive.c:3362
#, 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:3347
+#: merge-recursive.c:3371
#, c-format
msgid "Adding %s"
msgstr "添加 %s"
-#: merge-recursive.c:3356
+#: merge-recursive.c:3380
#, c-format
msgid "CONFLICT (add/add): Merge conflict in %s"
msgstr "冲çªï¼ˆadd/add):åˆå¹¶å†²çªäºŽ %s"
-#: merge-recursive.c:3394
-#, c-format
-msgid ""
-"Your local changes to the following files would be overwritten by merge:\n"
-" %s"
-msgstr ""
-"您对下列文件的本地修改将被åˆå¹¶æ“作覆盖:\n"
-" %s"
-
-#: merge-recursive.c:3405
+#: merge-recursive.c:3424
msgid "Already up to date!"
msgstr "å·²ç»æ˜¯æœ€æ–°çš„ï¼"
-#: merge-recursive.c:3414
+#: merge-recursive.c:3433
#, c-format
msgid "merging of trees %s and %s failed"
msgstr "无法åˆå¹¶æ ‘ %s å’Œ %s"
-#: merge-recursive.c:3513
+#: merge-recursive.c:3537
msgid "Merging:"
msgstr "åˆå¹¶ï¼š"
-#: merge-recursive.c:3526
+#: merge-recursive.c:3550
#, c-format
msgid "found %u common ancestor:"
msgid_plural "found %u common ancestors:"
msgstr[0] "å‘现 %u 个共åŒç¥–先:"
msgstr[1] "å‘现 %u 个共åŒç¥–先:"
-#: merge-recursive.c:3565
+#: merge-recursive.c:3600
msgid "merge returned no commit"
msgstr "åˆå¹¶æœªè¿”回æ交"
-#: merge-recursive.c:3631
+#: merge-recursive.c:3659
+#, c-format
+msgid ""
+"Your local changes to the following files would be overwritten by merge:\n"
+" %s"
+msgstr ""
+"您对下列文件的本地修改将被åˆå¹¶æ“作覆盖:\n"
+" %s"
+
+#: merge-recursive.c:3756
#, c-format
msgid "Could not parse object '%s'"
msgstr "ä¸èƒ½è§£æžå¯¹è±¡ '%s'"
-#: merge-recursive.c:3647 builtin/merge.c:698 builtin/merge.c:869
+#: merge-recursive.c:3774 builtin/merge.c:694 builtin/merge.c:874
msgid "Unable to write index."
msgstr "ä¸èƒ½å†™å…¥ç´¢å¼•ã€‚"
-#: midx.c:69
+#: midx.c:68
#, c-format
msgid "multi-pack-index file %s is too small"
msgstr "多包索引文件 %s 太å°"
-#: midx.c:85
+#: midx.c:84
#, c-format
msgid "multi-pack-index signature 0x%08x does not match signature 0x%08x"
msgstr "多包索引签å 0x%08x 和签å 0x%08x ä¸åŒ¹é…"
-#: midx.c:90
+#: midx.c:89
#, c-format
msgid "multi-pack-index version %d not recognized"
msgstr "multi-pack-index 版本 %d ä¸èƒ½è¢«è¯†åˆ«"
-#: midx.c:95
+#: midx.c:94
#, c-format
msgid "hash version %u does not match"
msgstr "散列版本 %u ä¸åŒ¹é…"
-#: midx.c:109
+#: midx.c:108
msgid "invalid chunk offset (too large)"
msgstr "无效的å—å移(太大)"
-#: midx.c:133
+#: midx.c:132
msgid "terminating multi-pack-index chunk id appears earlier than expected"
msgstr "ç»ˆæ­¢å¤šåŒ…ç´¢å¼•å— id 出现时间早于预期"
-#: midx.c:146
+#: midx.c:145
msgid "multi-pack-index missing required pack-name chunk"
msgstr "多包索引缺少必需的包åå—"
-#: midx.c:148
+#: midx.c:147
msgid "multi-pack-index missing required OID fanout chunk"
msgstr "多包索引缺少必需的对象 ID 扇出å—"
-#: midx.c:150
+#: midx.c:149
msgid "multi-pack-index missing required OID lookup chunk"
msgstr "多包索引缺少必需的对象 ID 查询å—"
-#: midx.c:152
+#: midx.c:151
msgid "multi-pack-index missing required object offsets chunk"
msgstr "多包索引缺少必需的对象å移å—"
-#: midx.c:166
+#: midx.c:165
#, c-format
msgid "multi-pack-index pack names out of order: '%s' before '%s'"
msgstr "多包索引包åæ— åºï¼š'%s' 在 '%s' 之å‰"
-#: midx.c:211
+#: midx.c:210
#, c-format
msgid "bad pack-int-id: %u (%u total packs)"
msgstr "错的 pack-int-id:%u(共有 %u 个包)"
-#: midx.c:261
+#: midx.c:260
msgid "multi-pack-index stores a 64-bit offset, but off_t is too small"
msgstr "多包索引存储一个64ä½å移,但是 off_t 太å°"
-#: midx.c:289
+#: midx.c:288
msgid "error preparing packfile from multi-pack-index"
msgstr "从多包索引准备 packfile 出错"
-#: midx.c:470
+#: midx.c:469
#, c-format
msgid "failed to add packfile '%s'"
msgstr "添加包文件 '%s' 失败"
-#: midx.c:476
+#: midx.c:475
#, c-format
msgid "failed to open pack-index '%s'"
msgstr "打开包索引 '%s' 失败"
-#: midx.c:536
+#: midx.c:535
#, c-format
msgid "failed to locate object %d in packfile"
msgstr "在包文件中定ä½å¯¹è±¡ %d 失败"
-#: midx.c:865
+#: midx.c:864
#, c-format
msgid "did not see pack-file %s to drop"
msgstr "没有看到è¦ä¸¢å¼ƒçš„包文件 %s"
-#: midx.c:1036
+#: midx.c:1035
#, c-format
msgid "failed to clear multi-pack-index at %s"
msgstr "清ç†ä½äºŽ %s 的多包索引失败"
-#: midx.c:1091
+#: midx.c:1090
msgid "Looking for referenced packfiles"
msgstr "正在查找引用的包文件"
-#: midx.c:1106
+#: midx.c:1105
#, c-format
msgid ""
"oid fanout out of order: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
msgstr "对象 ID 扇出无åºï¼šfanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
-#: midx.c:1110
+#: midx.c:1109
msgid "Verifying OID order in MIDX"
msgstr "正在校验 MIDX 中的对象 ID 顺åº"
-#: midx.c:1119
+#: midx.c:1118
#, c-format
msgid "oid lookup out of order: oid[%d] = %s >= %s = oid[%d]"
msgstr "对象 ID 查询无åºï¼šoid[%d] = %s >= %s = oid[%d]"
-#: midx.c:1138
+#: midx.c:1137
msgid "Sorting objects by packfile"
msgstr "通过包文件为对象排åº"
-#: midx.c:1144
+#: midx.c:1143
msgid "Verifying object offsets"
msgstr "校验对象å移"
-#: midx.c:1160
+#: midx.c:1159
#, c-format
msgid "failed to load pack entry for oid[%d] = %s"
msgstr "为 oid[%d] = %s 加载包æ¡ç›®å¤±è´¥"
-#: midx.c:1166
+#: midx.c:1165
#, c-format
msgid "failed to load pack-index for packfile %s"
msgstr "为包文件 %s 加载包索引失败"
-#: midx.c:1175
+#: midx.c:1174
#, c-format
msgid "incorrect object offset for oid[%d] = %s: %<PRIx64> != %<PRIx64>"
msgstr "oid[%d] = %s 错误的对象å移:%<PRIx64> != %<PRIx64>"
-#: midx.c:1350
+#: midx.c:1349
msgid "could not start pack-objects"
msgstr "ä¸èƒ½å¼€å§‹ pack-objects"
-#: midx.c:1369
+#: midx.c:1368
msgid "could not finish pack-objects"
msgstr "ä¸èƒ½ç»“æŸ pack-objects"
-#: name-hash.c:532
+#: name-hash.c:537
#, c-format
msgid "unable to create lazy_dir thread: %s"
msgstr "ä¸èƒ½åˆ›å»º lazy_dir 线程:%s"
-#: name-hash.c:554
+#: name-hash.c:559
#, c-format
msgid "unable to create lazy_name thread: %s"
msgstr "ä¸èƒ½åˆ›å»º lazy_name 线程:%s"
-#: name-hash.c:560
+#: name-hash.c:565
#, c-format
msgid "unable to join lazy_name thread: %s"
msgstr "ä¸èƒ½åŠ å…¥ lasy_name 线程:%s"
@@ -4271,41 +4296,41 @@ msgstr "æ‹’ç»å‘ %s(在 refs/notes/ 之外)写入注解"
msgid "Bad %s value: '%s'"
msgstr "åçš„ %s 值:'%s'"
-#: object.c:54
+#: object.c:53
#, c-format
msgid "invalid object type \"%s\""
msgstr "无效的对象类型 \"%s\""
-#: object.c:174
+#: object.c:173
#, c-format
msgid "object %s is a %s, not a %s"
msgstr "对象 %s 是一个 %s,ä¸æ˜¯ä¸€ä¸ª %s"
-#: object.c:234
+#: object.c:233
#, c-format
msgid "object %s has unknown type id %d"
msgstr "对象 %s 有未知的类型 id %d"
-#: object.c:247
+#: object.c:246
#, c-format
msgid "unable to parse object: %s"
msgstr "ä¸èƒ½è§£æžå¯¹è±¡ï¼š%s"
-#: object.c:267 object.c:278
+#: object.c:266 object.c:277
#, c-format
msgid "hash mismatch %s"
msgstr "哈希值与 %s ä¸åŒ¹é…"
-#: packfile.c:648
+#: packfile.c:641
msgid "offset before end of packfile (broken .idx?)"
msgstr "å移é‡åœ¨åŒ…文件结æŸä¹‹å‰ï¼ˆæŸåçš„ .idx?)"
-#: packfile.c:1899
+#: packfile.c:1887
#, c-format
msgid "offset before start of pack index for %s (corrupt index?)"
msgstr "å移é‡åœ¨ %s 的包索引开始之å‰ï¼ˆæŸå的索引?)"
-#: packfile.c:1903
+#: packfile.c:1891
#, c-format
msgid "offset beyond end of pack index for %s (truncated index?)"
msgstr "å移é‡è¶Šè¿‡äº† %s 的包索引的结尾(被截断的索引?)"
@@ -4350,26 +4375,26 @@ msgstr "有歧义的选项:%s(å¯ä»¥æ˜¯ --%s%s 或 --%s%s)"
msgid "did you mean `--%s` (with two dashes ?)"
msgstr "ä½ çš„æ„æ€æ˜¯ `--%s`(有两个短线?)"
-#: parse-options.c:859
+#: parse-options.c:860
#, c-format
msgid "unknown option `%s'"
msgstr "未知选项 `%s'"
-#: parse-options.c:861
+#: parse-options.c:862
#, c-format
msgid "unknown switch `%c'"
msgstr "未知开关 `%c'"
-#: parse-options.c:863
+#: parse-options.c:864
#, c-format
msgid "unknown non-ascii option in string: `%s'"
msgstr "å­—ç¬¦ä¸²ä¸­æœªçŸ¥çš„éž ascii 字符选项:`%s'"
-#: parse-options.c:887
+#: parse-options.c:888
msgid "..."
msgstr "..."
-#: parse-options.c:906
+#: parse-options.c:907
#, c-format
msgid "usage: %s"
msgstr "用法:%s"
@@ -4377,22 +4402,22 @@ msgstr "用法:%s"
#. TRANSLATORS: the colon here should align with the
#. one in "usage: %s" translation.
#.
-#: parse-options.c:912
+#: parse-options.c:913
#, c-format
msgid " or: %s"
msgstr " 或:%s"
# 译者:为ä¿è¯åœ¨è¾“出中对é½ï¼Œæ³¨æ„调整å¥ä¸­ç©ºæ ¼ï¼
-#: parse-options.c:915
+#: parse-options.c:916
#, c-format
msgid " %s"
msgstr " %s"
-#: parse-options.c:954
+#: parse-options.c:955
msgid "-NUM"
msgstr "-æ•°å­—"
-#: parse-options.c:968
+#: parse-options.c:969
#, c-format
msgid "alias of --%s"
msgstr "--%s 的别å"
@@ -4557,29 +4582,38 @@ msgstr "无法创建线程 lstat:%s"
msgid "unable to parse --pretty format"
msgstr "ä¸èƒ½è§£æž --pretty æ ¼å¼"
-#: range-diff.c:70
+#: promisor-remote.c:25
+msgid "Remote with no URL"
+msgstr "远程未设置 URL"
+
+#: promisor-remote.c:61
+#, c-format
+msgid "promisor remote name cannot begin with '/': %s"
+msgstr "promisor 远程å称ä¸èƒ½ä»¥ '/' 开始:%s"
+
+#: range-diff.c:71
msgid "could not start `log`"
msgstr "ä¸èƒ½å¯åŠ¨ `log`"
-#: range-diff.c:72
+#: range-diff.c:73
msgid "could not read `log` output"
msgstr "ä¸èƒ½è¯»å– `log` 的输出"
-#: range-diff.c:91 sequencer.c:5021
+#: range-diff.c:92 sequencer.c:4985
#, c-format
msgid "could not parse commit '%s'"
msgstr "ä¸èƒ½è§£æžæ交 '%s'"
-#: range-diff.c:117
+#: range-diff.c:118
#, c-format
msgid "could not parse git header '%.*s'"
msgstr "æ— æ³•è§£æž git 头 '%.*s'"
-#: range-diff.c:274
+#: range-diff.c:275
msgid "failed to generate diff"
msgstr "ç”Ÿæˆ diff 失败"
-#: range-diff.c:506 range-diff.c:508
+#: range-diff.c:507 range-diff.c:509
#, c-format
msgid "could not parse log for '%s'"
msgstr "ä¸èƒ½è§£æž '%s' 的日志"
@@ -4623,11 +4657,11 @@ msgstr "无法对 %s 执行 stat"
msgid "'%s' appears as both a file and as a directory"
msgstr "'%s' 看起æ¥æ—¢æ˜¯æ–‡ä»¶åˆæ˜¯ç›®å½•"
-#: read-cache.c:1499
+#: read-cache.c:1520
msgid "Refresh index"
msgstr "刷新索引"
-#: read-cache.c:1613
+#: read-cache.c:1635
#, c-format
msgid ""
"index.version set, but the value is invalid.\n"
@@ -4636,7 +4670,7 @@ msgstr ""
"设置了 index.version,但是å–值无效。\n"
"使用版本 %i"
-#: read-cache.c:1623
+#: read-cache.c:1645
#, c-format
msgid ""
"GIT_INDEX_VERSION set, but the value is invalid.\n"
@@ -4645,139 +4679,139 @@ msgstr ""
"设置了 GIT_INDEX_VERSION,但是å–值无效。\n"
"使用版本 %i"
-#: read-cache.c:1679
+#: read-cache.c:1701
#, c-format
msgid "bad signature 0x%08x"
msgstr "åçš„ç­¾å 0x%08x"
-#: read-cache.c:1682
+#: read-cache.c:1704
#, c-format
msgid "bad index version %d"
msgstr "å的索引版本 %d"
-#: read-cache.c:1691
+#: read-cache.c:1713
msgid "bad index file sha1 signature"
msgstr "å的索引文件 sha1 ç­¾å"
-#: read-cache.c:1721
+#: read-cache.c:1743
#, c-format
msgid "index uses %.4s extension, which we do not understand"
msgstr "索引使用ä¸è¢«æ”¯æŒçš„ %.4s 扩展"
#
-#: read-cache.c:1723
+#: read-cache.c:1745
#, c-format
msgid "ignoring %.4s extension"
msgstr "忽略 %.4s 扩展"
-#: read-cache.c:1760
+#: read-cache.c:1782
#, c-format
msgid "unknown index entry format 0x%08x"
msgstr "未知的索引æ¡ç›®æ ¼å¼ 0x%08x"
-#: read-cache.c:1776
+#: read-cache.c:1798
#, c-format
msgid "malformed name field in the index, near path '%s'"
msgstr "索引中é è¿‘路径 '%s' 有错误的å称字段"
-#: read-cache.c:1833
+#: read-cache.c:1855
msgid "unordered stage entries in index"
msgstr "索引中有未排åºçš„æš‚å­˜æ¡ç›®"
-#: read-cache.c:1836
+#: read-cache.c:1858
#, c-format
msgid "multiple stage entries for merged file '%s'"
msgstr "åˆå¹¶æ–‡ä»¶ '%s' 有多个暂存æ¡ç›®"
-#: read-cache.c:1839
+#: read-cache.c:1861
#, c-format
msgid "unordered stage entries for '%s'"
msgstr "'%s' 的未排åºæš‚å­˜æ¡ç›®"
-#: read-cache.c:1946 read-cache.c:2234 rerere.c:565 rerere.c:599 rerere.c:1111
-#: builtin/add.c:460 builtin/check-ignore.c:178 builtin/checkout.c:467
-#: builtin/checkout.c:651 builtin/clean.c:956 builtin/commit.c:347
+#: read-cache.c:1967 read-cache.c:2255 rerere.c:565 rerere.c:599 rerere.c:1111
+#: builtin/add.c:460 builtin/check-ignore.c:178 builtin/checkout.c:468
+#: builtin/checkout.c:652 builtin/clean.c:967 builtin/commit.c:347
#: builtin/diff-tree.c:120 builtin/grep.c:499 builtin/mv.c:145
#: builtin/reset.c:245 builtin/rm.c:271 builtin/submodule--helper.c:330
msgid "index file corrupt"
msgstr "索引文件æŸå"
-#: read-cache.c:2087
+#: read-cache.c:2108
#, c-format
msgid "unable to create load_cache_entries thread: %s"
msgstr "无法创建 load_cache_entries 线程:%s"
-#: read-cache.c:2100
+#: read-cache.c:2121
#, c-format
msgid "unable to join load_cache_entries thread: %s"
msgstr "无法加入 load_cache_entries 线程:%s"
-#: read-cache.c:2133
+#: read-cache.c:2154
#, c-format
msgid "%s: index file open failed"
msgstr "%s:打开索引文件失败"
-#: read-cache.c:2137
+#: read-cache.c:2158
#, c-format
msgid "%s: cannot stat the open index"
msgstr "%s:ä¸èƒ½å¯¹æ‰“开的索引执行 stat æ“作"
-#: read-cache.c:2141
+#: read-cache.c:2162
#, c-format
msgid "%s: index file smaller than expected"
msgstr "%s:索引文件比预期的å°"
-#: read-cache.c:2145
+#: read-cache.c:2166
#, c-format
msgid "%s: unable to map index file"
msgstr "%s:无法对索引文件执行 map æ“作"
-#: read-cache.c:2187
+#: read-cache.c:2208
#, c-format
msgid "unable to create load_index_extensions thread: %s"
msgstr "无法创建 load_index_extensions 线程:%s"
-#: read-cache.c:2214
+#: read-cache.c:2235
#, c-format
msgid "unable to join load_index_extensions thread: %s"
msgstr "无法加入 load_index_extensions 线程:%s"
-#: read-cache.c:2246
+#: read-cache.c:2267
#, c-format
msgid "could not freshen shared index '%s'"
msgstr "无法刷新共享索引 '%s'"
-#: read-cache.c:2293
+#: read-cache.c:2314
#, c-format
msgid "broken index, expect %s in %s, got %s"
msgstr "æŸå的索引,期望在 %2$s 中的 %1$s,得到 %3$s"
-#: read-cache.c:2989 wrapper.c:658 builtin/merge.c:1114
+#: read-cache.c:3010 wrapper.c:622 builtin/merge.c:1119
#, c-format
msgid "could not close '%s'"
msgstr "ä¸èƒ½å…³é—­ '%s'"
-#: read-cache.c:3092 sequencer.c:2358 sequencer.c:3928
+#: read-cache.c:3113 sequencer.c:2296 sequencer.c:3917
#, c-format
msgid "could not stat '%s'"
msgstr "ä¸èƒ½å¯¹ '%s' 调用 stat"
-#: read-cache.c:3105
+#: read-cache.c:3126
#, c-format
msgid "unable to open git dir: %s"
msgstr "ä¸èƒ½æ‰“å¼€ git 目录:%s"
-#: read-cache.c:3117
+#: read-cache.c:3138
#, c-format
msgid "unable to unlink: %s"
msgstr "无法删除:%s"
-#: read-cache.c:3142
+#: read-cache.c:3163
#, c-format
msgid "cannot fix permission bits on '%s'"
msgstr "ä¸èƒ½ä¿®å¤ '%s' çš„æƒé™ä½"
-#: read-cache.c:3291
+#: read-cache.c:3312
#, c-format
msgid "%s: cannot drop to stage #0"
msgstr "%s:ä¸èƒ½è½åˆ°æš‚存区 #0"
@@ -4879,8 +4913,8 @@ msgstr ""
msgid "Note that empty commits are commented out"
msgstr "注æ„空æ交已被注释掉"
-#: rebase-interactive.c:105 rerere.c:485 rerere.c:692 sequencer.c:3447
-#: sequencer.c:3473 sequencer.c:5120 builtin/fsck.c:356 builtin/rebase.c:235
+#: rebase-interactive.c:105 rerere.c:485 rerere.c:692 sequencer.c:3388
+#: sequencer.c:3414 sequencer.c:5084 builtin/fsck.c:356 builtin/rebase.c:235
#, c-format
msgid "could not write '%s'"
msgstr "ä¸èƒ½å†™å…¥ '%s'"
@@ -4925,7 +4959,7 @@ msgstr "%s 没有指å‘一个有效的对象ï¼"
msgid "ignoring dangling symref %s"
msgstr "忽略悬空符å·å¼•ç”¨ %s"
-#: refs.c:669 ref-filter.c:2092
+#: refs.c:669 ref-filter.c:2098
#, c-format
msgid "ignoring broken ref %s"
msgstr "忽略æŸå的引用 %s"
@@ -4950,14 +4984,14 @@ msgstr "引用 '%s' å·²ç»å­˜åœ¨"
msgid "unexpected object ID when writing '%s'"
msgstr "写入 '%s' æ—¶æ„外的对象 ID"
-#: refs.c:833 sequencer.c:403 sequencer.c:2709 sequencer.c:2913
-#: sequencer.c:2927 sequencer.c:3184 sequencer.c:5037 wrapper.c:656
+#: refs.c:833 sequencer.c:403 sequencer.c:2647 sequencer.c:2851
+#: sequencer.c:2865 sequencer.c:3122 sequencer.c:5001 wrapper.c:620
#, c-format
msgid "could not write to '%s'"
msgstr "ä¸èƒ½å†™å…¥ '%s'"
-#: refs.c:860 wrapper.c:225 wrapper.c:395 builtin/am.c:715
-#: builtin/rebase.c:1003
+#: refs.c:860 wrapper.c:188 wrapper.c:358 builtin/am.c:714
+#: builtin/rebase.c:1004
#, c-format
msgid "could not open '%s' for writing"
msgstr "无法打开 '%s' 进行写入"
@@ -4992,21 +5026,21 @@ msgstr "æ‹’ç»æ›´æ–°æœ‰é”™è¯¯å称 '%s' 的引用"
msgid "update_ref failed for ref '%s': %s"
msgstr "对引用 '%s' 执行 update_ref 失败:%s"
-#: refs.c:2012
+#: refs.c:2023
#, c-format
msgid "multiple updates for ref '%s' not allowed"
msgstr "ä¸å…许对引用 '%s' 多次更新"
-#: refs.c:2044
+#: refs.c:2055
msgid "ref updates forbidden inside quarantine environment"
msgstr "在隔离环境中ç¦æ­¢æ›´æ–°å¼•ç”¨"
-#: refs.c:2140 refs.c:2170
+#: refs.c:2151 refs.c:2181
#, c-format
msgid "'%s' exists; cannot create '%s'"
msgstr "'%s' 已存在,无法创建 '%s'"
-#: refs.c:2146 refs.c:2181
+#: refs.c:2157 refs.c:2192
#, c-format
msgid "cannot process '%s' and '%s' at the same time"
msgstr "无法åŒæ—¶å¤„ç† '%s' å’Œ '%s'"
@@ -5016,13 +5050,13 @@ msgstr "无法åŒæ—¶å¤„ç† '%s' å’Œ '%s'"
msgid "could not remove reference %s"
msgstr "无法删除引用 %s"
-#: refs/files-backend.c:1248 refs/packed-backend.c:1532
-#: refs/packed-backend.c:1542
+#: refs/files-backend.c:1248 refs/packed-backend.c:1541
+#: refs/packed-backend.c:1551
#, c-format
msgid "could not delete reference %s: %s"
msgstr "无法删除引用 %s:%s"
-#: refs/files-backend.c:1251 refs/packed-backend.c:1545
+#: refs/files-backend.c:1251 refs/packed-backend.c:1554
#, c-format
msgid "could not delete references: %s"
msgstr "无法删除引用:%s"
@@ -5032,7 +5066,7 @@ msgstr "无法删除引用:%s"
msgid "invalid refspec '%s'"
msgstr "无效的引用表达å¼ï¼š'%s'"
-#: ref-filter.c:42 wt-status.c:1934
+#: ref-filter.c:42 wt-status.c:1938
msgid "gone"
msgstr "丢失"
@@ -5051,280 +5085,280 @@ msgstr "è½åŽ %d"
msgid "ahead %d, behind %d"
msgstr "领先 %d,è½åŽ %d"
-#: ref-filter.c:162
+#: ref-filter.c:165
#, c-format
msgid "expected format: %%(color:<color>)"
msgstr "期望的格å¼ï¼š%%(color:<颜色>)"
-#: ref-filter.c:164
+#: ref-filter.c:167
#, c-format
msgid "unrecognized color: %%(color:%s)"
msgstr "未能识别的颜色:%%(color:%s)"
-#: ref-filter.c:186
+#: ref-filter.c:189
#, c-format
msgid "Integer value expected refname:lstrip=%s"
msgstr "期望整数值 refname:lstrip=%s"
-#: ref-filter.c:190
+#: ref-filter.c:193
#, c-format
msgid "Integer value expected refname:rstrip=%s"
msgstr "期望整数值 refname:rstrip=%s"
-#: ref-filter.c:192
+#: ref-filter.c:195
#, c-format
msgid "unrecognized %%(%s) argument: %s"
msgstr "未能识别的 %%(%s) å‚数:%s"
-#: ref-filter.c:247
+#: ref-filter.c:250
#, c-format
msgid "%%(objecttype) does not take arguments"
msgstr "%%(objecttype) ä¸å¸¦å‚æ•°"
-#: ref-filter.c:269
+#: ref-filter.c:272
#, c-format
msgid "unrecognized %%(objectsize) argument: %s"
msgstr "未能识别的 %%(objectsize) å‚数:%s"
-#: ref-filter.c:277
+#: ref-filter.c:280
#, c-format
msgid "%%(deltabase) does not take arguments"
msgstr "%%(deltabase) ä¸å¸¦å‚æ•°"
-#: ref-filter.c:289
+#: ref-filter.c:292
#, c-format
msgid "%%(body) does not take arguments"
msgstr "%%(body) ä¸å¸¦å‚æ•°"
-#: ref-filter.c:298
+#: ref-filter.c:301
#, c-format
msgid "%%(subject) does not take arguments"
msgstr "%%(subject) ä¸å¸¦å‚æ•°"
-#: ref-filter.c:320
+#: ref-filter.c:323
#, c-format
msgid "unknown %%(trailers) argument: %s"
msgstr "未知的 %%(trailers) å‚数:%s"
-#: ref-filter.c:349
+#: ref-filter.c:352
#, c-format
msgid "positive value expected contents:lines=%s"
msgstr "期望一个正数 contents:lines=%s"
-#: ref-filter.c:351
+#: ref-filter.c:354
#, c-format
msgid "unrecognized %%(contents) argument: %s"
msgstr "未能识别的 %%(contents) å‚数:%s"
-#: ref-filter.c:366
+#: ref-filter.c:369
#, c-format
msgid "positive value expected objectname:short=%s"
msgstr "期望一个正数 objectname:short=%s"
-#: ref-filter.c:370
+#: ref-filter.c:373
#, c-format
msgid "unrecognized %%(objectname) argument: %s"
msgstr "未能识别的 %%(objectname) å‚数:%s"
-#: ref-filter.c:400
+#: ref-filter.c:403
#, c-format
msgid "expected format: %%(align:<width>,<position>)"
msgstr "期望的格å¼ï¼š%%(align:<宽度>,<ä½ç½®>)"
-#: ref-filter.c:412
+#: ref-filter.c:415
#, c-format
msgid "unrecognized position:%s"
msgstr "未能识别的ä½ç½®ï¼š%s"
-#: ref-filter.c:419
+#: ref-filter.c:422
#, c-format
msgid "unrecognized width:%s"
msgstr "未能识别的宽度:%s"
-#: ref-filter.c:428
+#: ref-filter.c:431
#, c-format
msgid "unrecognized %%(align) argument: %s"
msgstr "未能识别的 %%(align) å‚数:%s"
-#: ref-filter.c:436
+#: ref-filter.c:439
#, c-format
msgid "positive width expected with the %%(align) atom"
msgstr "元素 %%(align) 需è¦ä¸€ä¸ªæ­£æ•°çš„宽度"
-#: ref-filter.c:454
+#: ref-filter.c:457
#, c-format
msgid "unrecognized %%(if) argument: %s"
msgstr "未能识别的 %%(if) å‚数:%s"
-#: ref-filter.c:556
+#: ref-filter.c:559
#, c-format
msgid "malformed field name: %.*s"
msgstr "æ ¼å¼é”™è¯¯çš„字段å:%.*s"
-#: ref-filter.c:583
+#: ref-filter.c:586
#, c-format
msgid "unknown field name: %.*s"
msgstr "未知的字段å:%.*s"
-#: ref-filter.c:587
+#: ref-filter.c:590
#, c-format
msgid ""
"not a git repository, but the field '%.*s' requires access to object data"
msgstr "ä¸æ˜¯ä¸€ä¸ª git 仓库,但是字段 '%.*s' 需è¦è®¿é—®å¯¹è±¡æ•°æ®"
-#: ref-filter.c:711
+#: ref-filter.c:714
#, c-format
msgid "format: %%(if) atom used without a %%(then) atom"
msgstr "æ ¼å¼ï¼šä½¿ç”¨äº† %%(if) 元素而没有 %%(then) 元素"
-#: ref-filter.c:774
+#: ref-filter.c:777
#, c-format
msgid "format: %%(then) atom used without an %%(if) atom"
msgstr "æ ¼å¼ï¼šä½¿ç”¨äº† %%(then) 元素而没有 %%(if) 元素"
-#: ref-filter.c:776
+#: ref-filter.c:779
#, c-format
msgid "format: %%(then) atom used more than once"
msgstr "æ ¼å¼ï¼š%%(then) 元素用了多次"
-#: ref-filter.c:778
+#: ref-filter.c:781
#, c-format
msgid "format: %%(then) atom used after %%(else)"
msgstr "æ ¼å¼ï¼š%%(then) 元素用在了 %%(else) 之åŽ"
-#: ref-filter.c:806
+#: ref-filter.c:809
#, c-format
msgid "format: %%(else) atom used without an %%(if) atom"
msgstr "æ ¼å¼ï¼šä½¿ç”¨äº† %%(else) 元素而没有 %%(if) 元素"
-#: ref-filter.c:808
+#: ref-filter.c:811
#, c-format
msgid "format: %%(else) atom used without a %%(then) atom"
msgstr "æ ¼å¼ï¼šä½¿ç”¨äº† %%(else) 元素而没有 %%(then) 元素"
-#: ref-filter.c:810
+#: ref-filter.c:813
#, c-format
msgid "format: %%(else) atom used more than once"
msgstr "æ ¼å¼ï¼š%%(else) 元素用了多次"
-#: ref-filter.c:825
+#: ref-filter.c:828
#, c-format
msgid "format: %%(end) atom used without corresponding atom"
msgstr "æ ¼å¼ï¼šä½¿ç”¨äº† %%(end) 元素å´æ²¡æœ‰å®ƒçš„对应元素"
-#: ref-filter.c:882
+#: ref-filter.c:885
#, c-format
msgid "malformed format string %s"
msgstr "错误的格å¼åŒ–字符串 %s"
-#: ref-filter.c:1485
+#: ref-filter.c:1488
#, c-format
msgid "no branch, rebasing %s"
msgstr "éžåˆ†æ”¯ï¼Œæ­£å˜åŸº %s"
-#: ref-filter.c:1488
+#: ref-filter.c:1491
#, c-format
msgid "no branch, rebasing detached HEAD %s"
msgstr "éžåˆ†æ”¯ï¼Œæ­£å˜åŸºåˆ†ç¦»å¤´æŒ‡é’ˆ %s"
-#: ref-filter.c:1491
+#: ref-filter.c:1494
#, c-format
msgid "no branch, bisect started on %s"
msgstr "éžåˆ†æ”¯ï¼ŒäºŒåˆ†æŸ¥æ‰¾å¼€å§‹äºŽ %s"
-#: ref-filter.c:1501
+#: ref-filter.c:1504
msgid "no branch"
msgstr "éžåˆ†æ”¯"
-#: ref-filter.c:1537 ref-filter.c:1743
+#: ref-filter.c:1540 ref-filter.c:1749
#, c-format
msgid "missing object %s for %s"
msgstr "缺失 %2$s 的对象 %1$s"
-#: ref-filter.c:1547
+#: ref-filter.c:1550
#, c-format
msgid "parse_object_buffer failed on %s for %s"
msgstr "parse_object_buffer 失败于 %2$s 的 %1$s"
-#: ref-filter.c:1998
+#: ref-filter.c:2004
#, c-format
msgid "malformed object at '%s'"
msgstr "æ ¼å¼é”™è¯¯çš„对象 '%s'"
-#: ref-filter.c:2087
+#: ref-filter.c:2093
#, c-format
msgid "ignoring ref with broken name %s"
msgstr "忽略带有错误å称 %s 的引用"
-#: ref-filter.c:2382
+#: ref-filter.c:2389
#, c-format
msgid "format: %%(end) atom missing"
msgstr "æ ¼å¼ï¼šç¼ºå°‘ %%(end) 元素"
-#: ref-filter.c:2482
+#: ref-filter.c:2489
#, c-format
msgid "option `%s' is incompatible with --merged"
msgstr "选项 `%s' å’Œ --merged ä¸å…¼å®¹"
-#: ref-filter.c:2485
+#: ref-filter.c:2492
#, c-format
msgid "option `%s' is incompatible with --no-merged"
msgstr "选项 `%s' å’Œ --no-merged ä¸å…¼å®¹"
-#: ref-filter.c:2495
+#: ref-filter.c:2502
#, c-format
msgid "malformed object name %s"
msgstr "æ ¼å¼é”™è¯¯çš„对象å %s"
-#: ref-filter.c:2500
+#: ref-filter.c:2507
#, c-format
msgid "option `%s' must point to a commit"
msgstr "选项 `%s' 必须指å‘一个æ交"
-#: remote.c:363
+#: remote.c:366
#, c-format
msgid "config remote shorthand cannot begin with '/': %s"
msgstr "é…置的远程短å称ä¸èƒ½ä»¥ '/' 开始:%s"
-#: remote.c:410
+#: remote.c:413
msgid "more than one receivepack given, using the first"
msgstr "æ供了一个以上的 receivepack,使用第一个"
-#: remote.c:418
+#: remote.c:421
msgid "more than one uploadpack given, using the first"
msgstr "æ供了一个以上的 uploadpack,使用第一个"
-#: remote.c:608
+#: remote.c:611
#, c-format
msgid "Cannot fetch both %s and %s to %s"
msgstr "ä¸èƒ½åŒæ—¶èŽ·å– %s å’Œ %s 至 %s"
-#: remote.c:612
+#: remote.c:615
#, c-format
msgid "%s usually tracks %s, not %s"
msgstr "%s 通常跟踪 %sï¼Œè€Œéž %s"
-#: remote.c:616
+#: remote.c:619
#, c-format
msgid "%s tracks both %s and %s"
msgstr "%s åŒæ—¶è·Ÿè¸ª %s å’Œ %s"
-#: remote.c:684
+#: remote.c:687
#, c-format
msgid "key '%s' of pattern had no '*'"
msgstr "模å¼çš„é”® '%s' 没有 '*'"
-#: remote.c:694
+#: remote.c:697
#, c-format
msgid "value '%s' of pattern has no '*'"
msgstr "模å¼çš„值 '%s' 没有 '*'"
-#: remote.c:1000
+#: remote.c:1003
#, c-format
msgid "src refspec %s does not match any"
msgstr "æºå¼•ç”¨è¡¨è¾¾å¼ %s 没有匹é…"
-#: remote.c:1005
+#: remote.c:1008
#, c-format
msgid "src refspec %s matches more than one"
msgstr "æºå¼•ç”¨è¡¨è¾¾å¼ %s 匹é…超过一个"
@@ -5333,7 +5367,7 @@ msgstr "æºå¼•ç”¨è¡¨è¾¾å¼ %s 匹é…超过一个"
#. <remote> <src>:<dst>" push, and "being pushed ('%s')" is
#. the <src>.
#.
-#: remote.c:1020
+#: remote.c:1023
#, c-format
msgid ""
"The destination you provided is not a full refname (i.e.,\n"
@@ -5355,7 +5389,7 @@ msgstr ""
"\n"
"都ä¸è¡Œï¼Œæ‰€ä»¥æˆ‘们已放弃。您必须给出完整的引用。"
-#: remote.c:1040
+#: remote.c:1043
#, c-format
msgid ""
"The <src> part of the refspec is a commit object.\n"
@@ -5365,7 +5399,7 @@ msgstr ""
"引用表达å¼çš„ <src> 是一个æ交对象。您是想创建一个新的分支而å‘\n"
"'%s:refs/heads/%s' 推é€ä¹ˆï¼Ÿ"
-#: remote.c:1045
+#: remote.c:1048
#, c-format
msgid ""
"The <src> part of the refspec is a tag object.\n"
@@ -5375,7 +5409,7 @@ msgstr ""
"引用表达å¼çš„ <src> 是一个标签对象。您是想创建一个新的标签而å‘\n"
"'%s:refs/tags/%s' 推é€ä¹ˆï¼Ÿ"
-#: remote.c:1050
+#: remote.c:1053
#, c-format
msgid ""
"The <src> part of the refspec is a tree object.\n"
@@ -5385,7 +5419,7 @@ msgstr ""
"引用表达å¼çš„ <src> 是一个树对象。您是想为这个树对象创建标签而å‘\n"
"'%s:refs/tags/%s' 推é€ä¹ˆï¼Ÿ"
-#: remote.c:1055
+#: remote.c:1058
#, c-format
msgid ""
"The <src> part of the refspec is a blob object.\n"
@@ -5395,114 +5429,114 @@ msgstr ""
"引用表达å¼çš„ <src> 是一个数æ®å¯¹è±¡ã€‚您是想为这个数æ®å¯¹è±¡åˆ›å»ºæ ‡ç­¾è€Œå‘\n"
"'%s:refs/tags/%s' 推é€ä¹ˆï¼Ÿ"
-#: remote.c:1091
+#: remote.c:1094
#, c-format
msgid "%s cannot be resolved to branch"
msgstr "%s 无法被解æžä¸ºåˆ†æ”¯"
-#: remote.c:1102
+#: remote.c:1105
#, c-format
msgid "unable to delete '%s': remote ref does not exist"
msgstr "无法删除 '%s':远程引用ä¸å­˜åœ¨"
-#: remote.c:1114
+#: remote.c:1117
#, c-format
msgid "dst refspec %s matches more than one"
msgstr "ç›®æ ‡å¼•ç”¨è¡¨è¾¾å¼ %s 匹é…超过一个"
-#: remote.c:1121
+#: remote.c:1124
#, c-format
msgid "dst ref %s receives from more than one src"
msgstr "目标引用 %s 接收超过一个æº"
-#: remote.c:1624 remote.c:1725
+#: remote.c:1627 remote.c:1728
msgid "HEAD does not point to a branch"
msgstr "HEAD 没有指å‘一个分支"
-#: remote.c:1633
+#: remote.c:1636
#, c-format
msgid "no such branch: '%s'"
msgstr "没有此分支:'%s'"
-#: remote.c:1636
+#: remote.c:1639
#, c-format
msgid "no upstream configured for branch '%s'"
msgstr "尚未给分支 '%s' 设置上游"
-#: remote.c:1642
+#: remote.c:1645
#, c-format
msgid "upstream branch '%s' not stored as a remote-tracking branch"
msgstr "上游分支 '%s' 没有存储为一个远程跟踪分支"
-#: remote.c:1657
+#: remote.c:1660
#, c-format
msgid "push destination '%s' on remote '%s' has no local tracking branch"
msgstr "推é€ç›®æ ‡ '%s' 至远程 '%s' 没有本地跟踪分支"
-#: remote.c:1669
+#: remote.c:1672
#, c-format
msgid "branch '%s' has no remote for pushing"
msgstr "分支 '%s' 没有设置è¦æŽ¨é€çš„远程æœåŠ¡å™¨"
-#: remote.c:1679
+#: remote.c:1682
#, c-format
msgid "push refspecs for '%s' do not include '%s'"
msgstr "å‘ '%s' 推é€å¼•ç”¨è§„æ ¼æœªåŒ…å« '%s'"
-#: remote.c:1692
+#: remote.c:1695
msgid "push has no destination (push.default is 'nothing')"
msgstr "推é€æ— ç›®æ ‡ï¼ˆpush.default 是 'nothing')"
-#: remote.c:1714
+#: remote.c:1717
msgid "cannot resolve 'simple' push to a single destination"
msgstr "æ— æ³•è§£æž 'simple' 推é€è‡³ä¸€ä¸ªå•ç‹¬çš„目标"
-#: remote.c:1840
+#: remote.c:1843
#, c-format
msgid "couldn't find remote ref %s"
msgstr "无法找到远程引用 %s"
-#: remote.c:1853
+#: remote.c:1856
#, c-format
msgid "* Ignoring funny ref '%s' locally"
msgstr "* 在本地忽略å¯ç¬‘的引用 '%s'"
-#: remote.c:2016
+#: remote.c:2019
#, c-format
msgid "Your branch is based on '%s', but the upstream is gone.\n"
msgstr "您的分支基于 '%s',但此上游分支已ç»ä¸å­˜åœ¨ã€‚\n"
-#: remote.c:2020
+#: remote.c:2023
msgid " (use \"git branch --unset-upstream\" to fixup)\n"
msgstr " (使用 \"git branch --unset-upstream\" æ¥ä¿®å¤ï¼‰\n"
-#: remote.c:2023
+#: remote.c:2026
#, c-format
msgid "Your branch is up to date with '%s'.\n"
msgstr "您的分支与上游分支 '%s' 一致。\n"
-#: remote.c:2027
+#: remote.c:2030
#, c-format
msgid "Your branch and '%s' refer to different commits.\n"
msgstr "您的分支和 '%s' 指å‘ä¸åŒçš„æ交。\n"
-#: remote.c:2030
+#: remote.c:2033
#, c-format
msgid " (use \"%s\" for details)\n"
msgstr " (使用 \"%s\" 查看详情)\n"
-#: remote.c:2034
+#: remote.c:2037
#, 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:2040
+#: remote.c:2043
msgid " (use \"git push\" to publish your local commits)\n"
msgstr " (使用 \"git push\" æ¥å‘布您的本地æ交)\n"
-#: remote.c:2043
+#: remote.c:2046
#, c-format
msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
msgid_plural ""
@@ -5511,11 +5545,11 @@ msgstr[0] "您的分支è½åŽ '%s' å…± %d 个æ交,并且å¯ä»¥å¿«è¿›ã€‚\n"
msgstr[1] "您的分支è½åŽ '%s' å…± %d 个æ交,并且å¯ä»¥å¿«è¿›ã€‚\n"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: remote.c:2051
+#: remote.c:2054
msgid " (use \"git pull\" to update your local branch)\n"
msgstr " (使用 \"git pull\" æ¥æ›´æ–°æ‚¨çš„本地分支)\n"
-#: remote.c:2054
+#: remote.c:2057
#, c-format
msgid ""
"Your branch and '%s' have diverged,\n"
@@ -5531,11 +5565,11 @@ msgstr[1] ""
"并且分别有 %d å’Œ %d 处ä¸åŒçš„æ交。\n"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: remote.c:2064
+#: remote.c:2067
msgid " (use \"git pull\" to merge the remote branch into yours)\n"
msgstr " (使用 \"git pull\" æ¥åˆå¹¶è¿œç¨‹åˆ†æ”¯ï¼‰\n"
-#: remote.c:2247
+#: remote.c:2250
#, c-format
msgid "cannot parse expected object name '%s'"
msgstr "无法解æžæœŸæœ›çš„对象å '%s'"
@@ -5613,7 +5647,7 @@ msgstr "ä¸èƒ½åˆ é™¤ stray '%s'"
msgid "Recorded preimage for '%s'"
msgstr "为 '%s' 记录 preimage"
-#: rerere.c:881 submodule.c:2023 builtin/log.c:1773
+#: rerere.c:881 submodule.c:2023 builtin/log.c:1790
#: builtin/submodule--helper.c:1418 builtin/submodule--helper.c:1428
#, c-format
msgid "could not create directory '%s'"
@@ -5648,20 +5682,20 @@ msgstr "忘记 '%s' 的解决方案\n"
msgid "unable to open rr-cache directory"
msgstr "ä¸èƒ½æ‰“å¼€ rr-cache 目录"
-#: revision.c:2507
+#: revision.c:2509
msgid "your current branch appears to be broken"
msgstr "您的当å‰åˆ†æ”¯å¥½åƒè¢«æŸå"
-#: revision.c:2510
+#: revision.c:2512
#, c-format
msgid "your current branch '%s' does not have any commits yet"
msgstr "您的当å‰åˆ†æ”¯ '%s' 尚无任何æ交"
-#: revision.c:2710
+#: revision.c:2720
msgid "--first-parent is incompatible with --bisect"
msgstr "--first-parent 与 --bisect ä¸å…¼å®¹"
-#: revision.c:2714
+#: revision.c:2724
msgid "-L does not yet support diff formats besides -p and -s"
msgstr "-L å°šä¸æ”¯æŒ -p å’Œ -s 之外的差异格å¼"
@@ -5683,39 +5717,39 @@ msgstr ""
"å› ä¸ºæ²¡æœ‰å°†é’©å­ '%s' 设置为å¯æ‰§è¡Œï¼Œé’©å­è¢«å¿½ç•¥ã€‚您å¯ä»¥é€šè¿‡\n"
"é…ç½® `git config advice.ignoredHook false` æ¥å…³é—­è¿™æ¡è­¦å‘Šã€‚"
-#: send-pack.c:141
+#: send-pack.c:142
msgid "unexpected flush packet while reading remote unpack status"
msgstr "读å–远程解包状æ€æ—¶æ”¶åˆ°æ„外的 flush 包"
-#: send-pack.c:143
+#: send-pack.c:144
#, c-format
msgid "unable to parse remote unpack status: %s"
msgstr "ä¸èƒ½è§£æžè¿œç¨‹è§£åŒ…状æ€ï¼š%s"
-#: send-pack.c:145
+#: send-pack.c:146
#, c-format
msgid "remote unpack failed: %s"
msgstr "远程解包失败:%s"
-#: send-pack.c:306
+#: send-pack.c:307
msgid "failed to sign the push certificate"
msgstr "为推é€è¯ä¹¦ç­¾å失败"
-#: send-pack.c:420
+#: send-pack.c:421
msgid "the receiving end does not support --signed push"
msgstr "接收端ä¸æ”¯æŒç­¾å推é€"
-#: send-pack.c:422
+#: send-pack.c:423
msgid ""
"not sending a push certificate since the receiving end does not support --"
"signed push"
msgstr "未å‘é€æŽ¨é€è¯ä¹¦ï¼Œå› ä¸ºæŽ¥æ”¶ç«¯ä¸æ”¯æŒç­¾å推é€"
-#: send-pack.c:434
+#: send-pack.c:435
msgid "the receiving end does not support --atomic push"
msgstr "接收端ä¸æ”¯æŒåŽŸå­æŽ¨é€"
-#: send-pack.c:439
+#: send-pack.c:440
msgid "the receiving end does not support push options"
msgstr "接收端ä¸æ”¯æŒæŽ¨é€é€‰é¡¹"
@@ -5729,7 +5763,7 @@ msgstr "无效的æ交信æ¯æ¸…ç†æ¨¡å¼ '%s'"
msgid "could not delete '%s'"
msgstr "无法删除 '%s'"
-#: sequencer.c:311 builtin/rebase.c:759 builtin/rebase.c:1645 builtin/rm.c:369
+#: sequencer.c:311 builtin/rebase.c:760 builtin/rebase.c:1676 builtin/rm.c:369
#, c-format
msgid "could not remove '%s'"
msgstr "无法删除 '%s'"
@@ -5768,7 +5802,7 @@ msgstr ""
"冲çªè§£å†³å®Œæ¯•åŽï¼Œç”¨ 'git add <路径>' 或 'git rm <路径>'\n"
"对修正åŽçš„文件åšæ ‡è®°ï¼Œç„¶åŽç”¨ 'git commit' æ交"
-#: sequencer.c:401 sequencer.c:2909
+#: sequencer.c:401 sequencer.c:2847
#, c-format
msgid "could not lock '%s'"
msgstr "ä¸èƒ½é”定 '%s'"
@@ -5778,15 +5812,15 @@ msgstr "ä¸èƒ½é”定 '%s'"
msgid "could not write eol to '%s'"
msgstr "ä¸èƒ½å°†æ¢è¡Œç¬¦å†™å…¥ '%s'"
-#: sequencer.c:413 sequencer.c:2714 sequencer.c:2915 sequencer.c:2929
-#: sequencer.c:3192
+#: sequencer.c:413 sequencer.c:2652 sequencer.c:2853 sequencer.c:2867
+#: sequencer.c:3130
#, c-format
msgid "failed to finalize '%s'"
msgstr "æ— æ³•å®Œæˆ '%s'"
-#: sequencer.c:436 sequencer.c:981 sequencer.c:1655 sequencer.c:2734
-#: sequencer.c:3174 sequencer.c:3283 builtin/am.c:245 builtin/commit.c:763
-#: builtin/merge.c:1112 builtin/rebase.c:567
+#: sequencer.c:436 sequencer.c:1585 sequencer.c:2672 sequencer.c:3112
+#: sequencer.c:3221 builtin/am.c:244 builtin/commit.c:763 builtin/merge.c:1117
+#: builtin/rebase.c:568
#, c-format
msgid "could not read '%s'"
msgstr "ä¸èƒ½è¯»å– '%s'"
@@ -5813,70 +5847,65 @@ msgstr "无效的清ç†æ¨¡å¼ %s"
#. TRANSLATORS: %s will be "revert", "cherry-pick" or
#. "rebase -i".
#.
-#: sequencer.c:632
+#: sequencer.c:631
#, c-format
msgid "%s: Unable to write new index file"
msgstr "%s:无法写入新索引文件"
-#: sequencer.c:649
+#: sequencer.c:648
msgid "unable to update cache tree"
msgstr "ä¸èƒ½æ›´æ–°ç¼“存树"
-#: sequencer.c:663
+#: sequencer.c:662
msgid "could not resolve HEAD commit"
msgstr "ä¸èƒ½è§£æž HEAD æ交"
-#: sequencer.c:743
+#: sequencer.c:742
#, c-format
msgid "no key present in '%.*s'"
msgstr "在 '%.*s' 中没有 key"
-#: sequencer.c:754
+#: sequencer.c:753
#, c-format
msgid "unable to dequote value of '%s'"
msgstr "无法为 '%s' 的值去引å·"
-#: sequencer.c:791 wrapper.c:227 wrapper.c:397 builtin/am.c:706
-#: builtin/am.c:798 builtin/merge.c:1109 builtin/rebase.c:1045
+#: sequencer.c:790 wrapper.c:190 wrapper.c:360 builtin/am.c:705
+#: builtin/am.c:797 builtin/merge.c:1114 builtin/rebase.c:1046
#, c-format
msgid "could not open '%s' for reading"
msgstr "无法打开 '%s' 进行读å–"
-#: sequencer.c:801
+#: sequencer.c:800
msgid "'GIT_AUTHOR_NAME' already given"
msgstr "å·²ç»ç»™å‡º 'GIT_AUTHOR_NAME'"
-#: sequencer.c:806
+#: sequencer.c:805
msgid "'GIT_AUTHOR_EMAIL' already given"
msgstr "å·²ç»ç»™å‡º 'GIT_AUTHOR_EMAIL'"
-#: sequencer.c:811
+#: sequencer.c:810
msgid "'GIT_AUTHOR_DATE' already given"
msgstr "å·²ç»ç»™å‡º 'GIT_AUTHOR_DATE'"
-#: sequencer.c:815
+#: sequencer.c:814
#, c-format
msgid "unknown variable '%s'"
msgstr "未知å˜é‡ '%s'"
-#: sequencer.c:820
+#: sequencer.c:819
msgid "missing 'GIT_AUTHOR_NAME'"
msgstr "缺少 'GIT_AUTHOR_NAME'"
-#: sequencer.c:822
+#: sequencer.c:821
msgid "missing 'GIT_AUTHOR_EMAIL'"
msgstr "缺少 'GIT_AUTHOR_EMAIL'"
-#: sequencer.c:824
+#: sequencer.c:823
msgid "missing 'GIT_AUTHOR_DATE'"
msgstr "缺少 'GIT_AUTHOR_DATE'"
-#: sequencer.c:884
-#, c-format
-msgid "invalid date format '%s' in '%s'"
-msgstr "'%2$s' ä¸­æ— æ•ˆçš„æ—¥æœŸæ ¼å¼ '%1$s'"
-
-#: sequencer.c:901
+#: sequencer.c:872
#, c-format
msgid ""
"you have staged changes in your working tree\n"
@@ -5905,15 +5934,11 @@ msgstr ""
"\n"
" git rebase --continue\n"
-#: sequencer.c:995
-msgid "writing root commit"
-msgstr "写根æ交"
-
-#: sequencer.c:1216
+#: sequencer.c:1146
msgid "'prepare-commit-msg' hook failed"
msgstr "'prepare-commit-msg' é’©å­å¤±è´¥"
-#: sequencer.c:1223
+#: sequencer.c:1153
msgid ""
"Your name and email address were configured automatically based\n"
"on your username and hostname. Please check that they are accurate.\n"
@@ -5937,7 +5962,7 @@ msgstr ""
"\n"
" git commit --amend --reset-author\n"
-#: sequencer.c:1236
+#: sequencer.c:1166
msgid ""
"Your name and email address were configured automatically based\n"
"on your username and hostname. Please check that they are accurate.\n"
@@ -5960,326 +5985,326 @@ msgstr ""
"\n"
" git commit --amend --reset-author\n"
-#: sequencer.c:1278
+#: sequencer.c:1208
msgid "couldn't look up newly created commit"
msgstr "无法找到新创建的æ交"
-#: sequencer.c:1280
+#: sequencer.c:1210
msgid "could not parse newly created commit"
msgstr "ä¸èƒ½è§£æžæ–°åˆ›å»ºçš„æ交"
-#: sequencer.c:1326
+#: sequencer.c:1256
msgid "unable to resolve HEAD after creating commit"
msgstr "创建æ交åŽï¼Œä¸èƒ½è§£æž HEAD"
-#: sequencer.c:1328
+#: sequencer.c:1258
msgid "detached HEAD"
msgstr "分离头指针"
# 译者:中文字符串拼接,å¯åˆ é™¤å‰å¯¼ç©ºæ ¼
-#: sequencer.c:1332
+#: sequencer.c:1262
msgid " (root-commit)"
msgstr "(根æ交)"
-#: sequencer.c:1353
+#: sequencer.c:1283
msgid "could not parse HEAD"
msgstr "ä¸èƒ½è§£æž HEAD"
-#: sequencer.c:1355
+#: sequencer.c:1285
#, c-format
msgid "HEAD %s is not a commit!"
msgstr "HEAD %s ä¸æ˜¯ä¸€ä¸ªæ交ï¼"
-#: sequencer.c:1359 builtin/commit.c:1571
+#: sequencer.c:1289 builtin/commit.c:1571
msgid "could not parse HEAD commit"
msgstr "ä¸èƒ½è§£æž HEAD æ交"
-#: sequencer.c:1411 sequencer.c:2004
+#: sequencer.c:1341 sequencer.c:1933
msgid "unable to parse commit author"
msgstr "ä¸èƒ½è§£æžæ交作者"
-#: sequencer.c:1421 builtin/am.c:1573 builtin/merge.c:684
+#: sequencer.c:1352 builtin/am.c:1561 builtin/merge.c:684
msgid "git write-tree failed to write a tree"
msgstr "git write-tree 无法写入树对象"
-#: sequencer.c:1438 sequencer.c:1499
+#: sequencer.c:1369 sequencer.c:1429
#, c-format
msgid "unable to read commit message from '%s'"
msgstr "ä¸èƒ½ä»Ž '%s' 读å–æ交说明"
-#: sequencer.c:1465 builtin/am.c:1595 builtin/commit.c:1670 builtin/merge.c:878
-#: builtin/merge.c:903
+#: sequencer.c:1396 builtin/am.c:1583 builtin/commit.c:1670 builtin/merge.c:883
+#: builtin/merge.c:908
msgid "failed to write commit object"
msgstr "写æ交对象失败"
-#: sequencer.c:1526
+#: sequencer.c:1456
#, c-format
msgid "could not parse commit %s"
msgstr "ä¸èƒ½è§£æžæ交 %s"
-#: sequencer.c:1531
+#: sequencer.c:1461
#, c-format
msgid "could not parse parent commit %s"
msgstr "ä¸èƒ½è§£æžçˆ¶æ交 %s"
-#: sequencer.c:1605 sequencer.c:1715
+#: sequencer.c:1535 sequencer.c:1645
#, c-format
msgid "unknown command: %d"
msgstr "未知命令:%d"
-#: sequencer.c:1662 sequencer.c:1687
+#: sequencer.c:1592 sequencer.c:1617
#, c-format
msgid "This is a combination of %d commits."
msgstr "这是一个 %d 个æ交的组åˆã€‚"
-#: sequencer.c:1672
+#: sequencer.c:1602
msgid "need a HEAD to fixup"
msgstr "需è¦ä¸€ä¸ª HEAD æ¥ä¿®å¤"
-#: sequencer.c:1674 sequencer.c:3219
+#: sequencer.c:1604 sequencer.c:3157
msgid "could not read HEAD"
msgstr "ä¸èƒ½è¯»å– HEAD"
-#: sequencer.c:1676
+#: sequencer.c:1606
msgid "could not read HEAD's commit message"
msgstr "ä¸èƒ½è¯»å– HEAD çš„æ交说明"
-#: sequencer.c:1682
+#: sequencer.c:1612
#, c-format
msgid "cannot write '%s'"
msgstr "ä¸èƒ½å†™ '%s'"
-#: sequencer.c:1689 git-rebase--preserve-merges.sh:496
+#: sequencer.c:1619 git-rebase--preserve-merges.sh:496
msgid "This is the 1st commit message:"
msgstr "这是第一个æ交说明:"
-#: sequencer.c:1697
+#: sequencer.c:1627
#, c-format
msgid "could not read commit message of %s"
msgstr "ä¸èƒ½è¯»å– %s çš„æ交说明"
-#: sequencer.c:1704
+#: sequencer.c:1634
#, c-format
msgid "This is the commit message #%d:"
msgstr "这是æ交说明 #%d:"
-#: sequencer.c:1710
+#: sequencer.c:1640
#, c-format
msgid "The commit message #%d will be skipped:"
msgstr "æ交说明 #%d 将被跳过:"
-#: sequencer.c:1798
+#: sequencer.c:1728
msgid "your index file is unmerged."
msgstr "您的索引文件未完æˆåˆå¹¶ã€‚"
-#: sequencer.c:1805
+#: sequencer.c:1735
msgid "cannot fixup root commit"
msgstr "ä¸èƒ½ä¿®å¤æ ¹æ交"
-#: sequencer.c:1824
+#: sequencer.c:1754
#, c-format
msgid "commit %s is a merge but no -m option was given."
msgstr "æ交 %s 是一个åˆå¹¶æ交但未æä¾› -m 选项。"
-#: sequencer.c:1832 sequencer.c:1840
+#: sequencer.c:1762 sequencer.c:1770
#, c-format
msgid "commit %s does not have parent %d"
msgstr "æ交 %s 没有第 %d 个父æ交"
-#: sequencer.c:1846
+#: sequencer.c:1776
#, 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:1865
+#: sequencer.c:1795
#, c-format
msgid "%s: cannot parse parent commit %s"
msgstr "%s:ä¸èƒ½è§£æžçˆ¶æ交 %s"
-#: sequencer.c:1930
+#: sequencer.c:1860
#, c-format
msgid "could not rename '%s' to '%s'"
msgstr "ä¸èƒ½å°† '%s' é‡å‘½å为 '%s'"
-#: sequencer.c:1985
+#: sequencer.c:1915
#, c-format
msgid "could not revert %s... %s"
msgstr "ä¸èƒ½è¿˜åŽŸ %s... %s"
-#: sequencer.c:1986
+#: sequencer.c:1916
#, c-format
msgid "could not apply %s... %s"
msgstr "ä¸èƒ½åº”用 %s... %s"
-#: sequencer.c:2045
+#: sequencer.c:1983
#, c-format
msgid "git %s: failed to read the index"
msgstr "git %s:无法读å–索引"
-#: sequencer.c:2052
+#: sequencer.c:1990
#, c-format
msgid "git %s: failed to refresh the index"
msgstr "git %s:无法刷新索引"
-#: sequencer.c:2128
+#: sequencer.c:2066
#, c-format
msgid "%s does not accept arguments: '%s'"
msgstr "%s ä¸æŽ¥å—å‚数:'%s'"
-#: sequencer.c:2137
+#: sequencer.c:2075
#, c-format
msgid "missing arguments for %s"
msgstr "缺少 %s çš„å‚æ•°"
-#: sequencer.c:2174
+#: sequencer.c:2112
#, c-format
msgid "could not parse '%.*s'"
msgstr "æ— æ³•è§£æž '%.*s'"
-#: sequencer.c:2228
+#: sequencer.c:2166
#, c-format
msgid "invalid line %d: %.*s"
msgstr "无效行 %d:%.*s"
-#: sequencer.c:2239
+#: sequencer.c:2177
#, c-format
msgid "cannot '%s' without a previous commit"
msgstr "没有父æ交的情况下ä¸èƒ½ '%s'"
-#: sequencer.c:2287 builtin/rebase.c:153 builtin/rebase.c:178
+#: sequencer.c:2225 builtin/rebase.c:153 builtin/rebase.c:178
#: builtin/rebase.c:204 builtin/rebase.c:229
#, c-format
msgid "could not read '%s'."
msgstr "ä¸èƒ½è¯»å– '%s'。"
-#: sequencer.c:2323
+#: sequencer.c:2261
msgid "cancelling a cherry picking in progress"
msgstr "正在å–消一个进行中的拣选"
-#: sequencer.c:2330
+#: sequencer.c:2268
msgid "cancelling a revert in progress"
msgstr "正在å–消一个进行中的还原"
-#: sequencer.c:2364
+#: sequencer.c:2302
msgid "please fix this using 'git rebase --edit-todo'."
msgstr "请用 'git rebase --edit-todo' æ¥ä¿®æ”¹ã€‚"
-#: sequencer.c:2366
+#: sequencer.c:2304
#, c-format
msgid "unusable instruction sheet: '%s'"
msgstr "ä¸å¯ç”¨çš„指令清å•ï¼š'%s'"
-#: sequencer.c:2371
+#: sequencer.c:2309
msgid "no commits parsed."
msgstr "没有解æžæ交。"
-#: sequencer.c:2382
+#: sequencer.c:2320
msgid "cannot cherry-pick during a revert."
msgstr "ä¸èƒ½åœ¨å›žé€€ä¸­æ‰§è¡Œæ‹£é€‰ã€‚"
-#: sequencer.c:2384
+#: sequencer.c:2322
msgid "cannot revert during a cherry-pick."
msgstr "ä¸èƒ½åœ¨æ‹£é€‰ä¸­æ‰§è¡Œå›žé€€ã€‚"
-#: sequencer.c:2466
+#: sequencer.c:2404
#, c-format
msgid "invalid value for %s: %s"
msgstr "%s 的值无效:%s"
-#: sequencer.c:2553
+#: sequencer.c:2491
msgid "unusable squash-onto"
msgstr "ä¸å¯ç”¨çš„ squash-onto"
-#: sequencer.c:2569
+#: sequencer.c:2507
#, c-format
msgid "malformed options sheet: '%s'"
msgstr "æ ¼å¼é”™è¯¯çš„选项清å•ï¼š'%s'"
-#: sequencer.c:2652 sequencer.c:4351
+#: sequencer.c:2590 sequencer.c:4308
msgid "empty commit set passed"
msgstr "æ供了空的æ交集"
-#: sequencer.c:2668
+#: sequencer.c:2606
msgid "revert is already in progress"
msgstr "一个还原æ“作已在进行"
-#: sequencer.c:2670
+#: sequencer.c:2608
#, c-format
msgid "try \"git revert (--continue | %s--abort | --quit)\""
msgstr "å°è¯• \"git revert (--continue | %s--abort | --quit)\""
-#: sequencer.c:2673
+#: sequencer.c:2611
msgid "cherry-pick is already in progress"
msgstr "拣选æ“作已在进行"
-#: sequencer.c:2675
+#: sequencer.c:2613
#, c-format
msgid "try \"git cherry-pick (--continue | %s--abort | --quit)\""
msgstr "å°è¯• \"git cherry-pick (--continue | %s--abort | --quit)\""
-#: sequencer.c:2689
+#: sequencer.c:2627
#, c-format
msgid "could not create sequencer directory '%s'"
msgstr "ä¸èƒ½åˆ›å»ºåºåˆ—目录 '%s'"
-#: sequencer.c:2704
+#: sequencer.c:2642
msgid "could not lock HEAD"
msgstr "ä¸èƒ½é”定 HEAD"
-#: sequencer.c:2764 sequencer.c:4103
+#: sequencer.c:2702 sequencer.c:4057
msgid "no cherry-pick or revert in progress"
msgstr "拣选或还原æ“作并未进行"
-#: sequencer.c:2766 sequencer.c:2777
+#: sequencer.c:2704 sequencer.c:2715
msgid "cannot resolve HEAD"
msgstr "ä¸èƒ½è§£æž HEAD"
-#: sequencer.c:2768 sequencer.c:2812
+#: sequencer.c:2706 sequencer.c:2750
msgid "cannot abort from a branch yet to be born"
msgstr "ä¸èƒ½ä»Žå°šæœªå»ºç«‹çš„分支终止"
-#: sequencer.c:2798 builtin/grep.c:734
+#: sequencer.c:2736 builtin/grep.c:736
#, c-format
msgid "cannot open '%s'"
msgstr "ä¸èƒ½æ‰“å¼€ '%s'"
-#: sequencer.c:2800
+#: sequencer.c:2738
#, c-format
msgid "cannot read '%s': %s"
msgstr "ä¸èƒ½è¯»å– '%s':%s"
-#: sequencer.c:2801
+#: sequencer.c:2739
msgid "unexpected end of file"
msgstr "æ„外的文件结æŸ"
-#: sequencer.c:2807
+#: sequencer.c:2745
#, c-format
msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
msgstr "ä¿å­˜æ‹£é€‰æ交å‰çš„ HEAD 文件 '%s' æŸå"
-#: sequencer.c:2818
+#: sequencer.c:2756
msgid "You seem to have moved HEAD. Not rewinding, check your HEAD!"
msgstr "您好åƒç§»åŠ¨äº† HEAD。未能回退,检查您的 HEADï¼"
-#: sequencer.c:2859
+#: sequencer.c:2797
msgid "no revert in progress"
msgstr "没有正在进行的还原"
-#: sequencer.c:2867
+#: sequencer.c:2805
msgid "no cherry-pick in progress"
msgstr "没有正在进行的拣选"
-#: sequencer.c:2877
+#: sequencer.c:2815
msgid "failed to skip the commit"
msgstr "无法跳过这个æ交"
-#: sequencer.c:2884
+#: sequencer.c:2822
msgid "there is nothing to skip"
msgstr "没有è¦è·³è¿‡çš„"
-#: sequencer.c:2887
+#: sequencer.c:2825
#, c-format
msgid ""
"have you committed already?\n"
@@ -6288,21 +6313,21 @@ msgstr ""
"您已ç»æ交了么?\n"
"试试 \"git %s --continue\""
-#: sequencer.c:3011 sequencer.c:4015
+#: sequencer.c:2949 sequencer.c:3969
#, c-format
msgid "could not update %s"
msgstr "ä¸èƒ½æ›´æ–° %s"
-#: sequencer.c:3049 sequencer.c:3995
+#: sequencer.c:2987 sequencer.c:3949
msgid "cannot read HEAD"
msgstr "ä¸èƒ½è¯»å– HEAD"
-#: sequencer.c:3066
+#: sequencer.c:3004
#, c-format
msgid "unable to copy '%s' to '%s'"
msgstr "æ— æ³•æ‹·è´ '%s' 至 '%s'"
-#: sequencer.c:3074
+#: sequencer.c:3012
#, c-format
msgid ""
"You can amend the commit now, with\n"
@@ -6321,28 +6346,28 @@ msgstr ""
"\n"
" git rebase --continue\n"
-#: sequencer.c:3084
+#: sequencer.c:3022
#, c-format
msgid "Could not apply %s... %.*s"
msgstr "ä¸èƒ½åº”用 %s... %.*s"
-#: sequencer.c:3091
+#: sequencer.c:3029
#, c-format
msgid "Could not merge %.*s"
msgstr "ä¸èƒ½åˆå¹¶ %.*s"
-#: sequencer.c:3105 sequencer.c:3109 builtin/difftool.c:633
+#: sequencer.c:3043 sequencer.c:3047 builtin/difftool.c:641
#, c-format
msgid "could not copy '%s' to '%s'"
msgstr "ä¸èƒ½æ‹·è´ '%s' 至 '%s'"
-#: sequencer.c:3131 sequencer.c:3558 builtin/rebase.c:849 builtin/rebase.c:1582
-#: builtin/rebase.c:1953 builtin/rebase.c:2008
+#: sequencer.c:3069 sequencer.c:3506 builtin/rebase.c:850 builtin/rebase.c:1613
+#: builtin/rebase.c:1987 builtin/rebase.c:2031
msgid "could not read index"
msgstr "ä¸èƒ½è¯»å–索引"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: sequencer.c:3136
+#: sequencer.c:3074
#, c-format
msgid ""
"execution failed: %s\n"
@@ -6357,11 +6382,11 @@ msgstr ""
" git rebase --continue\n"
"\n"
-#: sequencer.c:3142
+#: sequencer.c:3080
msgid "and made changes to the index and/or the working tree\n"
msgstr "并且修改索引和/或工作区\n"
-#: sequencer.c:3148
+#: sequencer.c:3086
#, c-format
msgid ""
"execution succeeded: %s\n"
@@ -6378,76 +6403,76 @@ msgstr ""
" git rebase --continue\n"
"\n"
-#: sequencer.c:3209
+#: sequencer.c:3147
#, c-format
msgid "illegal label name: '%.*s'"
msgstr "éžæ³•çš„标签å称:'%.*s'"
-#: sequencer.c:3263
+#: sequencer.c:3201
msgid "writing fake root commit"
msgstr "写伪根æ交"
-#: sequencer.c:3268
+#: sequencer.c:3206
msgid "writing squash-onto"
msgstr "写入 squash-onto"
-#: sequencer.c:3306 builtin/rebase.c:854 builtin/rebase.c:860
+#: sequencer.c:3244 builtin/rebase.c:855 builtin/rebase.c:861
#, c-format
msgid "failed to find tree of %s"
msgstr "无法找到 %s 指å‘的树。"
-#: sequencer.c:3324 builtin/rebase.c:873
+#: sequencer.c:3262 builtin/rebase.c:874
msgid "could not write index"
msgstr "ä¸èƒ½å†™å…¥ç´¢å¼•"
-#: sequencer.c:3351
+#: sequencer.c:3289
#, c-format
msgid "could not resolve '%s'"
msgstr "æ— æ³•è§£æž '%s'"
-#: sequencer.c:3379
+#: sequencer.c:3320
msgid "cannot merge without a current revision"
msgstr "没有当å‰ç‰ˆæœ¬ä¸èƒ½åˆå¹¶"
-#: sequencer.c:3401
+#: sequencer.c:3342
#, c-format
msgid "unable to parse '%.*s'"
msgstr "æ— æ³•è§£æž '%.*s'"
-#: sequencer.c:3410
+#: sequencer.c:3351
#, c-format
msgid "nothing to merge: '%.*s'"
msgstr "æ— å¯ç”¨åˆå¹¶ï¼š'%.*s'"
-#: sequencer.c:3422
+#: sequencer.c:3363
msgid "octopus merge cannot be executed on top of a [new root]"
msgstr "ç« é±¼åˆå¹¶ä¸èƒ½åœ¨ä¸€ä¸ªæ–°çš„æ ¹æ交上执行"
-#: sequencer.c:3437
+#: sequencer.c:3378
#, c-format
msgid "could not get commit message of '%s'"
msgstr "ä¸èƒ½èŽ·å– '%s' çš„æ交说明"
-#: sequencer.c:3590
+#: sequencer.c:3538
#, c-format
msgid "could not even attempt to merge '%.*s'"
msgstr "甚至ä¸èƒ½å°è¯•åˆå¹¶ '%.*s'"
-#: sequencer.c:3606
+#: sequencer.c:3554
msgid "merge: Unable to write new index file"
msgstr "åˆå¹¶ï¼šæ— æ³•å†™å…¥æ–°ç´¢å¼•æ–‡ä»¶"
-#: sequencer.c:3675 builtin/rebase.c:711
+#: sequencer.c:3623 builtin/rebase.c:712
#, c-format
msgid "Applied autostash.\n"
msgstr "已应用 autostash。\n"
-#: sequencer.c:3687
+#: sequencer.c:3635
#, c-format
msgid "cannot store %s"
msgstr "ä¸èƒ½å­˜å‚¨ %s"
-#: sequencer.c:3690 builtin/rebase.c:727 git-rebase--preserve-merges.sh:113
+#: sequencer.c:3638 builtin/rebase.c:728 git-rebase--preserve-merges.sh:113
#, c-format
msgid ""
"Applying autostash resulted in conflicts.\n"
@@ -6458,31 +6483,31 @@ msgstr ""
"您的修改安全地ä¿å­˜åœ¨è´®è—区中。\n"
"您å¯ä»¥åœ¨ä»»ä½•æ—¶å€™è¿è¡Œ \"git stash pop\" 或 \"git stash drop\"。\n"
-#: sequencer.c:3751
+#: sequencer.c:3699
#, c-format
msgid "could not checkout %s"
msgstr "ä¸èƒ½æ£€å‡º %s"
-#: sequencer.c:3765
+#: sequencer.c:3713
#, c-format
msgid "%s: not a valid OID"
msgstr "%s:ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„对象 ID"
-#: sequencer.c:3770 git-rebase--preserve-merges.sh:779
+#: sequencer.c:3718 git-rebase--preserve-merges.sh:779
msgid "could not detach HEAD"
msgstr "ä¸èƒ½åˆ†ç¦»å¤´æŒ‡é’ˆ"
-#: sequencer.c:3785
+#: sequencer.c:3733
#, c-format
msgid "Stopped at HEAD\n"
msgstr "åœæ­¢åœ¨ HEAD\n"
-#: sequencer.c:3787
+#: sequencer.c:3735
#, c-format
msgid "Stopped at %s\n"
msgstr "åœæ­¢åœ¨ %s\n"
-#: sequencer.c:3795
+#: sequencer.c:3743
#, c-format
msgid ""
"Could not execute the todo command\n"
@@ -6502,48 +6527,48 @@ msgstr ""
" git rebase --edit-todo\n"
" git rebase --continue\n"
-#: sequencer.c:3877
+#: sequencer.c:3827
#, c-format
msgid "Stopped at %s... %.*s\n"
msgstr "åœæ­¢åœ¨ %s... %.*s\n"
-#: sequencer.c:3958
+#: sequencer.c:3898
#, c-format
msgid "unknown command %d"
msgstr "未知命令 %d"
-#: sequencer.c:4003
+#: sequencer.c:3957
msgid "could not read orig-head"
msgstr "ä¸èƒ½è¯»å– orig-head"
-#: sequencer.c:4008
+#: sequencer.c:3962
msgid "could not read 'onto'"
msgstr "ä¸èƒ½è¯»å– 'onto'"
-#: sequencer.c:4022
+#: sequencer.c:3976
#, c-format
msgid "could not update HEAD to %s"
msgstr "ä¸èƒ½æ›´æ–° HEAD 为 %s"
-#: sequencer.c:4115
+#: sequencer.c:4069
msgid "cannot rebase: You have unstaged changes."
msgstr "ä¸èƒ½å˜åŸºï¼šæ‚¨æœ‰æœªæš‚存的å˜æ›´ã€‚"
-#: sequencer.c:4124
+#: sequencer.c:4078
msgid "cannot amend non-existing commit"
msgstr "ä¸èƒ½ä¿®è¡¥ä¸å­˜åœ¨çš„æ交"
-#: sequencer.c:4126
+#: sequencer.c:4080
#, c-format
msgid "invalid file: '%s'"
msgstr "无效文件:'%s'"
-#: sequencer.c:4128
+#: sequencer.c:4082
#, c-format
msgid "invalid contents: '%s'"
msgstr "无效内容:'%s'"
-#: sequencer.c:4131
+#: sequencer.c:4085
msgid ""
"\n"
"You have uncommitted changes in your working tree. Please, commit them\n"
@@ -6552,42 +6577,42 @@ msgstr ""
"\n"
"您的工作区中有未æ交的å˜æ›´ã€‚请先æ交然åŽå†æ¬¡è¿è¡Œ 'git rebase --continue'。"
-#: sequencer.c:4167 sequencer.c:4205
+#: sequencer.c:4121 sequencer.c:4159
#, c-format
msgid "could not write file: '%s'"
msgstr "ä¸èƒ½å†™å…¥æ–‡ä»¶ï¼š'%s'"
-#: sequencer.c:4220
+#: sequencer.c:4174
msgid "could not remove CHERRY_PICK_HEAD"
msgstr "ä¸èƒ½åˆ é™¤ CHERRY_PICK_HEAD"
-#: sequencer.c:4227
+#: sequencer.c:4181
msgid "could not commit staged changes."
msgstr "ä¸èƒ½æ交暂存的修改。"
-#: sequencer.c:4328
+#: sequencer.c:4285
#, c-format
msgid "%s: can't cherry-pick a %s"
msgstr "%s:ä¸èƒ½æ‹£é€‰ä¸€ä¸ª%s"
-#: sequencer.c:4332
+#: sequencer.c:4289
#, c-format
msgid "%s: bad revision"
msgstr "%s:错误的版本"
-#: sequencer.c:4367
+#: sequencer.c:4324
msgid "can't revert as initial commit"
msgstr "ä¸èƒ½ä½œä¸ºåˆå§‹æ交回退"
-#: sequencer.c:4810
+#: sequencer.c:4774
msgid "make_script: unhandled options"
msgstr "make_script:有未能处ç†çš„选项"
-#: sequencer.c:4813
+#: sequencer.c:4777
msgid "make_script: error preparing revisions"
msgstr "make_script:准备版本时错误"
-#: sequencer.c:4971
+#: sequencer.c:4935
msgid ""
"You can fix this with 'git rebase --edit-todo' and then run 'git rebase --"
"continue'.\n"
@@ -6596,24 +6621,24 @@ msgstr ""
"您å¯ä»¥ç”¨ 'git rebase --edit-todo' 修正,然åŽæ‰§è¡Œ 'git rebase --continue'。\n"
"或者您å¯ä»¥ç”¨ 'git rebase --abort' 终止å˜åŸºã€‚\n"
-#: sequencer.c:5083 sequencer.c:5100
+#: sequencer.c:5047 sequencer.c:5064
msgid "nothing to do"
msgstr "无事å¯åš"
-#: sequencer.c:5114
+#: sequencer.c:5078
msgid "could not skip unnecessary pick commands"
msgstr "无法跳过ä¸å¿…è¦çš„拣选"
-#: sequencer.c:5197
+#: sequencer.c:5166
msgid "the script was already rearranged."
msgstr "脚本已ç»é‡æ–°ç¼–排。"
-#: setup.c:123
+#: setup.c:124
#, c-format
msgid "'%s' is outside repository"
msgstr "'%s' 在仓库之外"
-#: setup.c:173
+#: setup.c:174
#, c-format
msgid ""
"%s: no such path in the working tree.\n"
@@ -6622,7 +6647,7 @@ msgstr ""
"%s:工作区中无此路径。\n"
"使用命令 'git <命令> -- <路径>...' æ¥æŒ‡å®šæœ¬åœ°ä¸å­˜åœ¨çš„路径。"
-#: setup.c:186
+#: setup.c:187
#, c-format
msgid ""
"ambiguous argument '%s': unknown revision or path not in the working tree.\n"
@@ -6633,12 +6658,12 @@ msgstr ""
"使用 '--' æ¥åˆ†éš”版本和路径,例如:\n"
"'git <命令> [<版本>...] -- [<文件>...]'"
-#: setup.c:235
+#: setup.c:236
#, c-format
msgid "option '%s' must come before non-option arguments"
msgstr "选项 '%s' 必须在其他éžé€‰é¡¹å‚数之å‰"
-#: setup.c:254
+#: setup.c:255
#, c-format
msgid ""
"ambiguous argument '%s': both revision and filename\n"
@@ -6649,92 +6674,92 @@ msgstr ""
"使用 '--' æ¥åˆ†éš”版本和路径,例如:\n"
"'git <命令> [<版本>...] -- [<文件>...]'"
-#: setup.c:390
+#: setup.c:391
msgid "unable to set up work tree using invalid config"
msgstr "无法使用无效é…ç½®æ¥åˆ›å»ºå·¥ä½œåŒº"
-#: setup.c:394
+#: setup.c:395
msgid "this operation must be run in a work tree"
msgstr "该æ“作必须在一个工作区中è¿è¡Œ"
-#: setup.c:540
+#: setup.c:541
#, c-format
msgid "Expected git repo version <= %d, found %d"
msgstr "期望 git 仓库版本 <= %d,å´å¾—到 %d"
-#: setup.c:548
+#: setup.c:549
msgid "unknown repository extensions found:"
msgstr "å‘现未知的仓库扩展:"
-#: setup.c:567
+#: setup.c:568
#, c-format
msgid "error opening '%s'"
msgstr "打开 '%s' 出错"
-#: setup.c:569
+#: setup.c:570
#, c-format
msgid "too large to be a .git file: '%s'"
msgstr "文件太大,无法作为 .git 文件:'%s'"
-#: setup.c:571
+#: setup.c:572
#, c-format
msgid "error reading %s"
msgstr "è¯»å– %s 出错"
-#: setup.c:573
+#: setup.c:574
#, c-format
msgid "invalid gitfile format: %s"
msgstr "无效的 gitfile æ ¼å¼ï¼š%s"
-#: setup.c:575
+#: setup.c:576
#, c-format
msgid "no path in gitfile: %s"
msgstr "在 gitfile 中没有路径:%s"
-#: setup.c:577
+#: setup.c:578
#, c-format
msgid "not a git repository: %s"
msgstr "ä¸æ˜¯ä¸€ä¸ª git 仓库:%s"
-#: setup.c:676
+#: setup.c:677
#, c-format
msgid "'$%s' too big"
msgstr "'$%s' 太大"
-#: setup.c:690
+#: setup.c:691
#, c-format
msgid "not a git repository: '%s'"
msgstr "ä¸æ˜¯ä¸€ä¸ª git 仓库:'%s'"
-#: setup.c:719 setup.c:721 setup.c:752
+#: setup.c:720 setup.c:722 setup.c:753
#, c-format
msgid "cannot chdir to '%s'"
msgstr "ä¸èƒ½åˆ‡æ¢ç›®å½•åˆ° '%s'"
-#: setup.c:724 setup.c:780 setup.c:790 setup.c:829 setup.c:837
+#: setup.c:725 setup.c:781 setup.c:791 setup.c:830 setup.c:838
msgid "cannot come back to cwd"
msgstr "无法返回当å‰å·¥ä½œç›®å½•"
-#: setup.c:851
+#: setup.c:852
#, c-format
msgid "failed to stat '%*s%s%s'"
msgstr "èŽ·å– '%*s%s%s' 状æ€ï¼ˆstat)失败"
-#: setup.c:1083
+#: setup.c:1090
msgid "Unable to read current working directory"
msgstr "ä¸èƒ½è¯»å–当å‰å·¥ä½œç›®å½•"
-#: setup.c:1092 setup.c:1098
+#: setup.c:1099 setup.c:1105
#, c-format
msgid "cannot change to '%s'"
msgstr "ä¸èƒ½åˆ‡æ¢åˆ° '%s'"
-#: setup.c:1103
+#: setup.c:1110
#, c-format
msgid "not a git repository (or any of the parent directories): %s"
msgstr "ä¸æ˜¯ä¸€ä¸ª git 仓库(或者任何父目录):%s"
-#: setup.c:1109
+#: setup.c:1116
#, c-format
msgid ""
"not a git repository (or any parent up to mount point %s)\n"
@@ -6743,7 +6768,7 @@ msgstr ""
"ä¸æ˜¯ä¸€ä¸ª git 仓库(或者直至挂载点 %s 的任何父目录)\n"
"åœæ­¢åœ¨æ–‡ä»¶ç³»ç»Ÿè¾¹ç•Œï¼ˆæœªè®¾ç½® GIT_DISCOVERY_ACROSS_FILESYSTEM)。"
-#: setup.c:1220
+#: setup.c:1227
#, c-format
msgid ""
"problem with core.sharedRepository filemode value (0%.3o).\n"
@@ -6752,282 +6777,282 @@ msgstr ""
"å‚æ•° core.sharedRepository 的文件属性值有问题(0%.3o)。\n"
"文件属主必须始终拥有读写æƒé™ã€‚"
-#: setup.c:1264
+#: setup.c:1271
msgid "open /dev/null or dup failed"
msgstr "ä¸èƒ½æ‰“开或者å¤åˆ¶ /dev/null"
-#: setup.c:1279
+#: setup.c:1286
msgid "fork failed"
msgstr "fork 失败"
-#: setup.c:1284
+#: setup.c:1291
msgid "setsid failed"
msgstr "setsid 失败"
-#: sha1-file.c:453
+#: sha1-file.c:452
#, c-format
msgid "object directory %s does not exist; check .git/objects/info/alternates"
msgstr "对象目录 %s ä¸å­˜åœ¨ï¼Œæ£€æŸ¥ .git/objects/info/alternates"
-#: sha1-file.c:504
+#: sha1-file.c:503
#, c-format
msgid "unable to normalize alternate object path: %s"
msgstr "无法规范化备用对象路径:%s"
-#: sha1-file.c:576
+#: sha1-file.c:575
#, c-format
msgid "%s: ignoring alternate object stores, nesting too deep"
msgstr "%s:忽略备用对象库,嵌套太深"
-#: sha1-file.c:583
+#: sha1-file.c:582
#, c-format
msgid "unable to normalize object directory: %s"
msgstr "无法规范化对象目录: %s"
-#: sha1-file.c:626
+#: sha1-file.c:625
msgid "unable to fdopen alternates lockfile"
msgstr "无法 fdopen 替æ¢é”文件"
-#: sha1-file.c:644
+#: sha1-file.c:643
msgid "unable to read alternates file"
msgstr "无法读å–替代文件"
-#: sha1-file.c:651
+#: sha1-file.c:650
msgid "unable to move new alternates file into place"
msgstr "无法将新的替代文件移动到ä½"
-#: sha1-file.c:686
+#: sha1-file.c:685
#, c-format
msgid "path '%s' does not exist"
msgstr "路径 '%s' ä¸å­˜åœ¨"
-#: sha1-file.c:712
+#: sha1-file.c:711
#, c-format
msgid "reference repository '%s' as a linked checkout is not supported yet."
msgstr "å°šä¸æ”¯æŒå°†å‚考仓库 '%s' 作为一个链接检出。"
-#: sha1-file.c:718
+#: sha1-file.c:717
#, c-format
msgid "reference repository '%s' is not a local repository."
msgstr "å‚考仓库 '%s' ä¸æ˜¯ä¸€ä¸ªæœ¬åœ°ä»“库。"
-#: sha1-file.c:724
+#: sha1-file.c:723
#, c-format
msgid "reference repository '%s' is shallow"
msgstr "å‚考仓库 '%s' 是一个浅克隆"
-#: sha1-file.c:732
+#: sha1-file.c:731
#, c-format
msgid "reference repository '%s' is grafted"
msgstr "å‚考仓库 '%s' 已被移æ¤"
-#: sha1-file.c:792
+#: sha1-file.c:791
#, c-format
msgid "invalid line while parsing alternate refs: %s"
msgstr "解æžå¤‡ç”¨å¼•ç”¨æ—¶æ— æ•ˆçš„行:%s"
-#: sha1-file.c:944
+#: sha1-file.c:943
#, c-format
msgid "attempting to mmap %<PRIuMAX> over limit %<PRIuMAX>"
msgstr "å°è¯• mmap %<PRIuMAX>,超过了最大值 %<PRIuMAX>"
-#: sha1-file.c:969
+#: sha1-file.c:964
msgid "mmap failed"
msgstr "mmap 失败"
-#: sha1-file.c:1133
+#: sha1-file.c:1128
#, c-format
msgid "object file %s is empty"
msgstr "对象文件 %s 为空"
-#: sha1-file.c:1257 sha1-file.c:2396
+#: sha1-file.c:1252 sha1-file.c:2392
#, c-format
msgid "corrupt loose object '%s'"
msgstr "æŸåçš„æ¾æ•£å¯¹è±¡ '%s'"
-#: sha1-file.c:1259 sha1-file.c:2400
+#: sha1-file.c:1254 sha1-file.c:2396
#, c-format
msgid "garbage at end of loose object '%s'"
msgstr "æ¾æ•£å¯¹è±¡ '%s' åŽé¢æœ‰åžƒåœ¾æ•°æ®"
-#: sha1-file.c:1301
+#: sha1-file.c:1296
msgid "invalid object type"
msgstr "无效的对象类型"
-#: sha1-file.c:1385
+#: sha1-file.c:1380
#, c-format
msgid "unable to unpack %s header with --allow-unknown-type"
msgstr "无法用 --allow-unknown-type å‚数解开 %s 头信æ¯"
-#: sha1-file.c:1388
+#: sha1-file.c:1383
#, c-format
msgid "unable to unpack %s header"
msgstr "无法解开 %s 头部"
-#: sha1-file.c:1394
+#: sha1-file.c:1389
#, c-format
msgid "unable to parse %s header with --allow-unknown-type"
msgstr "无法用 --allow-unknown-type å‚æ•°è§£æž %s 头信æ¯"
-#: sha1-file.c:1397
+#: sha1-file.c:1392
#, c-format
msgid "unable to parse %s header"
msgstr "æ— æ³•è§£æž %s 头部"
-#: sha1-file.c:1588
+#: sha1-file.c:1584
#, c-format
msgid "failed to read object %s"
msgstr "读å–对象 %s 失败"
-#: sha1-file.c:1592
+#: sha1-file.c:1588
#, c-format
msgid "replacement %s not found for %s"
msgstr "找ä¸åˆ° %2$s 的替代 %1$s"
-#: sha1-file.c:1596
+#: sha1-file.c:1592
#, c-format
msgid "loose object %s (stored in %s) is corrupt"
msgstr "æ¾æ•£å¯¹è±¡ %s(ä¿å­˜åœ¨ %s)已æŸå"
-#: sha1-file.c:1600
+#: sha1-file.c:1596
#, c-format
msgid "packed object %s (stored in %s) is corrupt"
msgstr "打包对象 %s(ä¿å­˜åœ¨ %s)已æŸå"
-#: sha1-file.c:1703
+#: sha1-file.c:1699
#, c-format
msgid "unable to write file %s"
msgstr "无法写文件 %s"
-#: sha1-file.c:1710
+#: sha1-file.c:1706
#, c-format
msgid "unable to set permission to '%s'"
msgstr "无法为 '%s' 设置æƒé™"
-#: sha1-file.c:1717
+#: sha1-file.c:1713
msgid "file write error"
msgstr "文件写错误"
-#: sha1-file.c:1736
+#: sha1-file.c:1732
msgid "error when closing loose object file"
msgstr "关闭æ¾æ•£å¯¹è±¡æ–‡ä»¶æ—¶å‡ºé”™"
-#: sha1-file.c:1801
+#: sha1-file.c:1797
#, c-format
msgid "insufficient permission for adding an object to repository database %s"
msgstr "æƒé™ä¸è¶³ï¼Œæ— æ³•åœ¨ä»“库对象库 %s 中添加对象"
-#: sha1-file.c:1803
+#: sha1-file.c:1799
msgid "unable to create temporary file"
msgstr "无法创建临时文件"
-#: sha1-file.c:1827
+#: sha1-file.c:1823
msgid "unable to write loose object file"
msgstr "ä¸èƒ½å†™æ¾æ•£å¯¹è±¡æ–‡ä»¶"
-#: sha1-file.c:1833
+#: sha1-file.c:1829
#, c-format
msgid "unable to deflate new object %s (%d)"
msgstr "ä¸èƒ½åŽ‹ç¼©æ–°å¯¹è±¡ %s(%d)"
-#: sha1-file.c:1837
+#: sha1-file.c:1833
#, c-format
msgid "deflateEnd on object %s failed (%d)"
msgstr "在对象 %s 上调用 deflateEnd 失败(%d)"
-#: sha1-file.c:1841
+#: sha1-file.c:1837
#, c-format
msgid "confused by unstable object source data for %s"
msgstr "被 %s çš„ä¸ç¨³å®šå¯¹è±¡æºæ•°æ®æžç³Šæ¶‚了"
-#: sha1-file.c:1851 builtin/pack-objects.c:925
+#: sha1-file.c:1847 builtin/pack-objects.c:925
#, c-format
msgid "failed utime() on %s"
msgstr "在 %s 上调用 utime() 失败"
-#: sha1-file.c:1926
+#: sha1-file.c:1922
#, c-format
msgid "cannot read object for %s"
msgstr "ä¸èƒ½è¯»å–对象 %s"
-#: sha1-file.c:1966
+#: sha1-file.c:1962
msgid "corrupt commit"
msgstr "æŸåçš„æ交"
-#: sha1-file.c:1974
+#: sha1-file.c:1970
msgid "corrupt tag"
msgstr "æŸå的标签"
-#: sha1-file.c:2073
+#: sha1-file.c:2069
#, c-format
msgid "read error while indexing %s"
msgstr "索引 %s 时读å–错误"
-#: sha1-file.c:2076
+#: sha1-file.c:2072
#, c-format
msgid "short read while indexing %s"
msgstr "索引 %s 时读入ä¸å®Œæ•´"
-#: sha1-file.c:2149 sha1-file.c:2158
+#: sha1-file.c:2145 sha1-file.c:2154
#, c-format
msgid "%s: failed to insert into database"
msgstr "%s:æ’入数æ®åº“失败"
-#: sha1-file.c:2164
+#: sha1-file.c:2160
#, c-format
msgid "%s: unsupported file type"
msgstr "%s:ä¸æ”¯æŒçš„文件类型"
-#: sha1-file.c:2188
+#: sha1-file.c:2184
#, c-format
msgid "%s is not a valid object"
msgstr "%s ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„对象"
-#: sha1-file.c:2190
+#: sha1-file.c:2186
#, c-format
msgid "%s is not a valid '%s' object"
msgstr "%s ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„ '%s' 对象"
-#: sha1-file.c:2217 builtin/index-pack.c:155
+#: sha1-file.c:2213 builtin/index-pack.c:155
#, c-format
msgid "unable to open %s"
msgstr "ä¸èƒ½æ‰“å¼€ %s"
-#: sha1-file.c:2407 sha1-file.c:2459
+#: sha1-file.c:2403 sha1-file.c:2455
#, c-format
msgid "hash mismatch for %s (expected %s)"
msgstr "%s 的哈希值ä¸åŒ¹é…(预期 %s)"
-#: sha1-file.c:2431
+#: sha1-file.c:2427
#, c-format
msgid "unable to mmap %s"
msgstr "ä¸èƒ½ mmap %s"
-#: sha1-file.c:2436
+#: sha1-file.c:2432
#, c-format
msgid "unable to unpack header of %s"
msgstr "无法解压缩 %s 的头部"
-#: sha1-file.c:2442
+#: sha1-file.c:2438
#, c-format
msgid "unable to parse header of %s"
msgstr "æ— æ³•è§£æž %s 的头部"
-#: sha1-file.c:2453
+#: sha1-file.c:2449
#, c-format
msgid "unable to unpack contents of %s"
msgstr "无法解压缩 %s 的内容"
-#: sha1-name.c:490
+#: sha1-name.c:487
#, c-format
msgid "short SHA1 %s is ambiguous"
msgstr "短 SHA1 %s 存在歧义"
-#: sha1-name.c:501
+#: sha1-name.c:498
msgid "The candidates are:"
msgstr "候选者有:"
-#: sha1-name.c:800
+#: sha1-name.c:797
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"
@@ -7049,43 +7074,43 @@ msgstr ""
"false\" 命令关闭本消æ¯é€šçŸ¥ã€‚"
#. TRANSLATORS: IEC 80000-13:2008 gibibyte
-#: strbuf.c:821
+#: strbuf.c:822
#, c-format
msgid "%u.%2.2u GiB"
msgstr "%u.%2.2u GiB"
#. TRANSLATORS: IEC 80000-13:2008 gibibyte/second
-#: strbuf.c:823
+#: strbuf.c:824
#, c-format
msgid "%u.%2.2u GiB/s"
msgstr "%u.%2.2u GiB/s"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte
-#: strbuf.c:831
+#: strbuf.c:832
#, c-format
msgid "%u.%2.2u MiB"
msgstr "%u.%2.2u MiB"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte/second
-#: strbuf.c:833
+#: strbuf.c:834
#, c-format
msgid "%u.%2.2u MiB/s"
msgstr "%u.%2.2u MiB/s"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte
-#: strbuf.c:840
+#: strbuf.c:841
#, c-format
msgid "%u.%2.2u KiB"
msgstr "%u.%2.2u KiB"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte/second
-#: strbuf.c:842
+#: strbuf.c:843
#, c-format
msgid "%u.%2.2u KiB/s"
msgstr "%u.%2.2u KiB/s"
#. TRANSLATORS: IEC 80000-13:2008 byte
-#: strbuf.c:848
+#: strbuf.c:849
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -7093,7 +7118,7 @@ msgstr[0] "%u 字节"
msgstr[1] "%u 字节"
#. TRANSLATORS: IEC 80000-13:2008 byte/second
-#: strbuf.c:850
+#: strbuf.c:851
#, c-format
msgid "%u byte/s"
msgid_plural "%u bytes/s"
@@ -7208,26 +7233,26 @@ msgstr "无法在 .. 中å¯åŠ¨ ls-files"
msgid "ls-tree returned unexpected return code %d"
msgstr "ls-tree 返回未知返回值 %d"
-#: submodule-config.c:232
+#: submodule-config.c:236
#, c-format
msgid "ignoring suspicious submodule name: %s"
msgstr "忽略å¯ç–‘çš„å­æ¨¡ç»„å称:%s"
-#: submodule-config.c:299
+#: submodule-config.c:303
msgid "negative values not allowed for submodule.fetchjobs"
msgstr "submodule.fetchjobs ä¸å…许为负值"
-#: submodule-config.c:397
+#: submodule-config.c:401
#, c-format
msgid "ignoring '%s' which may be interpreted as a command-line option: %s"
msgstr "忽略å¯èƒ½è¢«è§£æžä¸ºå‘½ä»¤è¡Œé€‰é¡¹çš„ '%s':%s"
-#: submodule-config.c:486
+#: submodule-config.c:490
#, c-format
msgid "invalid value for %s"
msgstr "%s 的值无效"
-#: submodule-config.c:755
+#: submodule-config.c:761
#, c-format
msgid "Could not update .gitmodules entry %s"
msgstr "ä¸èƒ½æ›´æ–° .gitmodules æ¡ç›® %s"
@@ -7262,7 +7287,7 @@ msgstr "ä¸èƒ½è¯»å–输入文件 '%s'"
msgid "could not read from stdin"
msgstr "ä¸èƒ½è‡ªæ ‡å‡†è¾“入读å–"
-#: trailer.c:1011 wrapper.c:701
+#: trailer.c:1011 wrapper.c:665
#, c-format
msgid "could not stat %s"
msgstr "ä¸èƒ½å¯¹ %s 调用 stat"
@@ -7291,54 +7316,54 @@ msgstr "ä¸èƒ½é‡å‘½å临时文件为 %s"
msgid "Would set upstream of '%s' to '%s' of '%s'\n"
msgstr "å°†è¦è®¾ç½® '%1$s' 的上游为 '%3$s' çš„ '%2$s'\n"
-#: transport.c:142
+#: transport.c:145
#, c-format
msgid "could not read bundle '%s'"
msgstr "æ— æ³•è¯»å– bundle '%s'"
-#: transport.c:208
+#: transport.c:214
#, c-format
msgid "transport: invalid depth option '%s'"
msgstr "传输:无效的深度选项 '%s'"
-#: transport.c:259
+#: transport.c:266
msgid "see protocol.version in 'git help config' for more details"
msgstr "查看 'git help config' 中的 protocol.version 获å–更多信æ¯"
-#: transport.c:260
+#: transport.c:267
msgid "server options require protocol version 2 or later"
msgstr "æœåŠ¡ç«¯é€‰é¡¹éœ€è¦ç‰ˆæœ¬ 2 å议或更高"
-#: transport.c:625
+#: transport.c:632
msgid "could not parse transport.color.* config"
msgstr "ä¸èƒ½è§£æž transport.color.* é…ç½®"
-#: transport.c:698
+#: transport.c:705
msgid "support for protocol v2 not implemented yet"
msgstr "åè®® v2 的支æŒå°šæœªå®žçŽ°"
-#: transport.c:825
+#: transport.c:831
#, c-format
msgid "unknown value for config '%s': %s"
msgstr "é…ç½® '%s' çš„å–值未知:%s"
-#: transport.c:891
+#: transport.c:897
#, c-format
msgid "transport '%s' not allowed"
msgstr "传输 '%s' ä¸å…许"
-#: transport.c:945
+#: transport.c:949
msgid "git-over-rsync is no longer supported"
msgstr "ä¸å†æ”¯æŒ git-over-rsync"
-#: transport.c:1040
+#: transport.c:1044
#, c-format
msgid ""
"The following submodule paths contain changes that can\n"
"not be found on any remote:\n"
msgstr "下列å­æ¨¡ç»„路径所包å«çš„修改在任何远程æºä¸­éƒ½æ‰¾ä¸åˆ°ï¼š\n"
-#: transport.c:1044
+#: transport.c:1048
#, c-format
msgid ""
"\n"
@@ -7365,131 +7390,136 @@ msgstr ""
"以推é€è‡³è¿œç¨‹ã€‚\n"
"\n"
-#: transport.c:1052
+#: transport.c:1056
msgid "Aborting."
msgstr "正在终止。"
-#: transport.c:1193
+#: transport.c:1201
msgid "failed to push all needed submodules"
msgstr "ä¸èƒ½æŽ¨é€å…¨éƒ¨éœ€è¦çš„å­æ¨¡ç»„"
-#: transport.c:1340 transport-helper.c:645
+#: transport.c:1345 transport-helper.c:655
msgid "operation not supported by protocol"
msgstr "åè®®ä¸æ”¯æŒè¯¥æ“作"
-#: transport-helper.c:51 transport-helper.c:80
+#: transport-helper.c:61 transport-helper.c:90
msgid "full write to remote helper failed"
msgstr "完整写入远程助手失败"
-#: transport-helper.c:134
+#: transport-helper.c:144
#, c-format
msgid "unable to find remote helper for '%s'"
msgstr "无法为 '%s' 找到远程助手"
-#: transport-helper.c:150 transport-helper.c:559
+#: transport-helper.c:160 transport-helper.c:569
msgid "can't dup helper output fd"
msgstr "无法å¤åˆ¶åŠ©æ‰‹è¾“出文件å¥æŸ„"
-#: transport-helper.c:201
+#: transport-helper.c:211
#, c-format
msgid ""
"unknown mandatory capability %s; this remote helper probably needs newer "
"version of Git"
msgstr "未知的强制能力 %s,该远程助手å¯èƒ½éœ€è¦æ–°ç‰ˆæœ¬çš„Git"
-#: transport-helper.c:207
+#: transport-helper.c:217
msgid "this remote helper should implement refspec capability"
msgstr "远程助手需è¦å®žçŽ° refspec 能力"
-#: transport-helper.c:274 transport-helper.c:414
+#: transport-helper.c:284 transport-helper.c:424
#, c-format
msgid "%s unexpectedly said: '%s'"
msgstr "%s æ„外地说:'%s'"
-#: transport-helper.c:403
+#: transport-helper.c:413
#, c-format
msgid "%s also locked %s"
msgstr "%s 也é”定了 %s"
-#: transport-helper.c:481
+#: transport-helper.c:491
msgid "couldn't run fast-import"
msgstr "ä¸èƒ½æ‰§è¡Œ fast-import"
-#: transport-helper.c:504
+#: transport-helper.c:514
msgid "error while running fast-import"
msgstr "执行 fast-import 出错"
-#: transport-helper.c:533 transport-helper.c:1105
+#: transport-helper.c:543 transport-helper.c:1132
#, c-format
msgid "could not read ref %s"
msgstr "无法读å–引用 %s"
-#: transport-helper.c:578
+#: transport-helper.c:588
#, c-format
msgid "unknown response to connect: %s"
msgstr "连接时未知的å“应:%s"
-#: transport-helper.c:600
+#: transport-helper.c:610
msgid "setting remote service path not supported by protocol"
msgstr "åè®®ä¸æ”¯æŒè®¾ç½®è¿œç¨‹æœåŠ¡è·¯å¾„"
-#: transport-helper.c:602
+#: transport-helper.c:612
msgid "invalid remote service path"
msgstr "无效的远程æœåŠ¡è·¯å¾„"
-#: transport-helper.c:648
+#: transport-helper.c:658
#, c-format
msgid "can't connect to subservice %s"
msgstr "ä¸èƒ½è¿žæŽ¥åˆ°å­æœåŠ¡ %s"
-#: transport-helper.c:720
+#: transport-helper.c:734
#, c-format
msgid "expected ok/error, helper said '%s'"
msgstr "预期 ok/error,助手说 '%s'"
-#: transport-helper.c:773
+#: transport-helper.c:787
#, c-format
msgid "helper reported unexpected status of %s"
msgstr "助手报告 %s çš„æ„外状æ€"
-#: transport-helper.c:834
+#: transport-helper.c:848
#, c-format
msgid "helper %s does not support dry-run"
msgstr "助手 %s ä¸æ”¯æŒ dry-run"
-#: transport-helper.c:837
+#: transport-helper.c:851
#, c-format
msgid "helper %s does not support --signed"
msgstr "助手 %s ä¸æ”¯æŒ --signed"
-#: transport-helper.c:840
+#: transport-helper.c:854
#, c-format
msgid "helper %s does not support --signed=if-asked"
msgstr "助手 %s ä¸æ”¯æŒ --signed=if-asked"
-#: transport-helper.c:847
+#: transport-helper.c:859
+#, c-format
+msgid "helper %s does not support --atomic"
+msgstr "助手 %s ä¸æ”¯æŒ --atomic"
+
+#: transport-helper.c:865
#, c-format
msgid "helper %s does not support 'push-option'"
msgstr "助手 %s ä¸æ”¯æŒ 'push-option'"
-#: transport-helper.c:945
+#: transport-helper.c:963
msgid "remote-helper doesn't support push; refspec needed"
msgstr "remote-heper ä¸æ”¯æŒ push,需è¦å¼•ç”¨è¡¨è¾¾å¼"
-#: transport-helper.c:950
+#: transport-helper.c:968
#, c-format
msgid "helper %s does not support 'force'"
msgstr "助手 %s ä¸æ”¯æŒ 'force'"
-#: transport-helper.c:997
+#: transport-helper.c:1015
msgid "couldn't run fast-export"
msgstr "无法执行 fast-export"
-#: transport-helper.c:1002
+#: transport-helper.c:1020
msgid "error while running fast-export"
msgstr "执行 fast-export 时出错"
-#: transport-helper.c:1027
+#: transport-helper.c:1045
#, c-format
msgid ""
"No refs in common and none specified; doing nothing.\n"
@@ -7498,47 +7528,47 @@ msgstr ""
"没有共åŒçš„引用并且也没有指定,什么也ä¸ä¼šåšã€‚\n"
"å¯èƒ½æ‚¨åº”该指定一个分支如 'master'。\n"
-#: transport-helper.c:1091
+#: transport-helper.c:1118
#, c-format
msgid "malformed response in ref list: %s"
msgstr "引用列表中格å¼é”™è¯¯çš„å“应:%s"
-#: transport-helper.c:1244
+#: transport-helper.c:1270
#, c-format
msgid "read(%s) failed"
msgstr "读å–(%s)失败"
-#: transport-helper.c:1271
+#: transport-helper.c:1297
#, c-format
msgid "write(%s) failed"
msgstr "写(%s)失败"
-#: transport-helper.c:1320
+#: transport-helper.c:1346
#, c-format
msgid "%s thread failed"
msgstr "%s 线程失败"
-#: transport-helper.c:1324
+#: transport-helper.c:1350
#, c-format
msgid "%s thread failed to join: %s"
msgstr "%s 线程等待失败:%s"
-#: transport-helper.c:1343 transport-helper.c:1347
+#: transport-helper.c:1369 transport-helper.c:1373
#, c-format
msgid "can't start thread for copying data: %s"
msgstr "ä¸èƒ½å¯åŠ¨çº¿ç¨‹æ¥æ‹·è´æ•°æ®ï¼š%s"
-#: transport-helper.c:1384
+#: transport-helper.c:1410
#, c-format
msgid "%s process failed to wait"
msgstr "%s 进程等待失败"
-#: transport-helper.c:1388
+#: transport-helper.c:1414
#, c-format
msgid "%s process failed"
msgstr "%s 进程失败"
-#: transport-helper.c:1406 transport-helper.c:1415
+#: transport-helper.c:1432 transport-helper.c:1441
msgid "can't start thread for copying data"
msgstr "ä¸èƒ½å¯åŠ¨çº¿ç¨‹æ¥æ‹·è´æ•°æ®"
@@ -7558,7 +7588,7 @@ msgstr "树对象æ¡ç›®ä¸­ç©ºçš„文件å"
msgid "too-short tree file"
msgstr "太短的树文件"
-#: unpack-trees.c:111
+#: unpack-trees.c:110
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by checkout:\n"
@@ -7567,7 +7597,7 @@ msgstr ""
"您对下列文件的本地修改将被检出æ“作覆盖:\n"
"%%s请在切æ¢åˆ†æ”¯å‰æ交或贮è—您的修改。"
-#: unpack-trees.c:113
+#: unpack-trees.c:112
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by checkout:\n"
@@ -7576,7 +7606,7 @@ msgstr ""
"您对下列文件的本地修改将被检出æ“作覆盖:\n"
"%%s"
-#: unpack-trees.c:116
+#: unpack-trees.c:115
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by merge:\n"
@@ -7585,7 +7615,7 @@ msgstr ""
"您对下列文件的本地修改将被åˆå¹¶æ“作覆盖:\n"
"%%s请在åˆå¹¶å‰æ交或贮è—您的修改。"
-#: unpack-trees.c:118
+#: unpack-trees.c:117
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by merge:\n"
@@ -7594,7 +7624,7 @@ msgstr ""
"您对下列文件的本地修改将被åˆå¹¶æ“作覆盖:\n"
"%%s"
-#: unpack-trees.c:121
+#: unpack-trees.c:120
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by %s:\n"
@@ -7603,7 +7633,7 @@ msgstr ""
"您对下列文件的本地修改将被 %s 覆盖:\n"
"%%s请在 %s 之å‰æ交或贮è—您的修改。"
-#: unpack-trees.c:123
+#: unpack-trees.c:122
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by %s:\n"
@@ -7612,7 +7642,7 @@ msgstr ""
"您对下列文件的本地修改将被 %s 覆盖:\n"
"%%s"
-#: unpack-trees.c:128
+#: unpack-trees.c:127
#, c-format
msgid ""
"Updating the following directories would lose untracked files in them:\n"
@@ -7621,7 +7651,7 @@ msgstr ""
"更新如下目录将会丢失其中未跟踪的文件:\n"
"%s"
-#: unpack-trees.c:132
+#: unpack-trees.c:131
#, c-format
msgid ""
"The following untracked working tree files would be removed by checkout:\n"
@@ -7630,7 +7660,7 @@ msgstr ""
"工作区中下列未跟踪的文件将会因为检出æ“作而被删除:\n"
"%%s请在切æ¢åˆ†æ”¯ä¹‹å‰ç§»åŠ¨æˆ–删除。"
-#: unpack-trees.c:134
+#: unpack-trees.c:133
#, c-format
msgid ""
"The following untracked working tree files would be removed by checkout:\n"
@@ -7639,7 +7669,7 @@ msgstr ""
"工作区中下列未跟踪的文件将会因为检出æ“作而被删除:\n"
"%%s"
-#: unpack-trees.c:137
+#: unpack-trees.c:136
#, c-format
msgid ""
"The following untracked working tree files would be removed by merge:\n"
@@ -7648,7 +7678,7 @@ msgstr ""
"工作区中下列未跟踪的文件将会因为åˆå¹¶æ“作而被删除:\n"
"%%s请在åˆå¹¶å‰ç§»åŠ¨æˆ–删除。"
-#: unpack-trees.c:139
+#: unpack-trees.c:138
#, c-format
msgid ""
"The following untracked working tree files would be removed by merge:\n"
@@ -7657,7 +7687,7 @@ msgstr ""
"工作区中下列未跟踪的文件将会因为åˆå¹¶æ“作而被删除:\n"
"%%s"
-#: unpack-trees.c:142
+#: unpack-trees.c:141
#, c-format
msgid ""
"The following untracked working tree files would be removed by %s:\n"
@@ -7666,7 +7696,7 @@ msgstr ""
"工作区中下列未跟踪的文件将会因为 %s æ“作而被删除:\n"
"%%s请在 %s å‰ç§»åŠ¨æˆ–删除。"
-#: unpack-trees.c:144
+#: unpack-trees.c:143
#, c-format
msgid ""
"The following untracked working tree files would be removed by %s:\n"
@@ -7675,7 +7705,7 @@ msgstr ""
"工作区中下列未跟踪的文件将会因为 %s æ“作而被删除:\n"
"%%s"
-#: unpack-trees.c:150
+#: unpack-trees.c:149
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by "
@@ -7685,7 +7715,7 @@ msgstr ""
"工作区中下列未跟踪的文件将会因为检出æ“作而被覆盖:\n"
"%%s请在切æ¢åˆ†æ”¯å‰ç§»åŠ¨æˆ–删除。"
-#: unpack-trees.c:152
+#: unpack-trees.c:151
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by "
@@ -7695,7 +7725,7 @@ msgstr ""
"工作区中下列未跟踪的文件将会因为检出æ“作而被覆盖:\n"
"%%s"
-#: unpack-trees.c:155
+#: unpack-trees.c:154
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by merge:\n"
@@ -7704,7 +7734,7 @@ msgstr ""
"工作区中下列未跟踪的文件将会因为åˆå¹¶æ“作而被覆盖:\n"
"%%s请在åˆå¹¶å‰ç§»åŠ¨æˆ–删除。"
-#: unpack-trees.c:157
+#: unpack-trees.c:156
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by merge:\n"
@@ -7713,7 +7743,7 @@ msgstr ""
"工作区中下列未跟踪的文件将会因为åˆå¹¶æ“作而被覆盖:\n"
"%%s"
-#: unpack-trees.c:160
+#: unpack-trees.c:159
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by %s:\n"
@@ -7722,7 +7752,7 @@ msgstr ""
"工作区中下列未跟踪的文件将会因为 %s æ“作而被覆盖:\n"
"%%s请在 %s å‰ç§»åŠ¨æˆ–删除。"
-#: unpack-trees.c:162
+#: unpack-trees.c:161
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by %s:\n"
@@ -7731,12 +7761,12 @@ msgstr ""
"工作区中下列未跟踪的文件将会因为 %s æ“作而被覆盖:\n"
"%%s"
-#: unpack-trees.c:170
+#: unpack-trees.c:169
#, c-format
msgid "Entry '%s' overlaps with '%s'. Cannot bind."
msgstr "æ¡ç›® '%s' å’Œ '%s' é‡å ã€‚无法åˆå¹¶ã€‚"
-#: unpack-trees.c:173
+#: unpack-trees.c:172
#, c-format
msgid ""
"Cannot update sparse checkout: the following entries are not up to date:\n"
@@ -7745,7 +7775,7 @@ msgstr ""
"无法更新稀ç–检出:如下æ¡ç›®ä¸æ˜¯æœ€æ–°ï¼š\n"
"%s"
-#: unpack-trees.c:175
+#: unpack-trees.c:174
#, c-format
msgid ""
"The following working tree files would be overwritten by sparse checkout "
@@ -7755,7 +7785,7 @@ msgstr ""
"工作区中下列文件将被稀ç–检出更新所覆盖:\n"
"%s"
-#: unpack-trees.c:177
+#: unpack-trees.c:176
#, c-format
msgid ""
"The following working tree files would be removed by sparse checkout "
@@ -7765,7 +7795,7 @@ msgstr ""
"工作区中下列文件将被稀ç–检出更新所删除:\n"
"%s"
-#: unpack-trees.c:179
+#: unpack-trees.c:178
#, c-format
msgid ""
"Cannot update submodule:\n"
@@ -7774,16 +7804,16 @@ msgstr ""
"无法更新å­æ¨¡ç»„:\n"
"%s"
-#: unpack-trees.c:256
+#: unpack-trees.c:255
#, c-format
msgid "Aborting\n"
msgstr "正在终止\n"
-#: unpack-trees.c:318
+#: unpack-trees.c:317
msgid "Updating files"
msgstr "正在更新文件"
-#: unpack-trees.c:350
+#: unpack-trees.c:349
msgid ""
"the following paths have collided (e.g. case-sensitive paths\n"
"on a case-insensitive filesystem) and only one from the same\n"
@@ -7821,7 +7851,7 @@ msgstr "无效的端å£å·"
msgid "invalid '..' path segment"
msgstr "无效的 '..' 路径片段"
-#: worktree.c:258 builtin/am.c:2095
+#: worktree.c:258 builtin/am.c:2084
#, c-format
msgid "failed to read '%s'"
msgstr "è¯»å– '%s' 失败"
@@ -7851,17 +7881,17 @@ msgstr "'%s' ä¸æ˜¯ä¸€ä¸ª .git æ–‡ä»¶ï¼Œé”™è¯¯ç  %d"
msgid "'%s' does not point back to '%s'"
msgstr "'%s' 没有指回到 '%s'"
-#: wrapper.c:223 wrapper.c:393
+#: wrapper.c:186 wrapper.c:356
#, c-format
msgid "could not open '%s' for reading and writing"
msgstr "无法打开 '%s' 进行读写"
-#: wrapper.c:424 wrapper.c:624
+#: wrapper.c:387 wrapper.c:588
#, c-format
msgid "unable to access '%s'"
msgstr "ä¸èƒ½è®¿é—® '%s'"
-#: wrapper.c:632
+#: wrapper.c:596
msgid "unable to get current working directory"
msgstr "ä¸èƒ½èŽ·å–当å‰å·¥ä½œç›®å½•"
@@ -8216,85 +8246,95 @@ msgstr " (所有冲çªå·²è§£å†³ï¼šè¿è¡Œ \"git cherry-pick --continue\")"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
#: wt-status.c:1437
+msgid " (use \"git cherry-pick --skip\" to skip this patch)"
+msgstr " (使用 \"git cherry-pick --skip\" 跳过此补ä¸ï¼‰"
+
+# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
+#: wt-status.c:1439
msgid " (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)"
msgstr " (使用 \"git cherry-pick --abort\" 以å–消拣选æ“作)"
-#: wt-status.c:1447
+#: wt-status.c:1449
msgid "Revert currently in progress."
msgstr "还原æ“作正在行中。"
-#: wt-status.c:1450
+#: wt-status.c:1452
#, c-format
msgid "You are currently reverting commit %s."
msgstr "您在执行å转æ交 %s çš„æ“作。"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: wt-status.c:1456
+#: wt-status.c:1458
msgid " (fix conflicts and run \"git revert --continue\")"
msgstr " (解决冲çªå¹¶æ‰§è¡Œ \"git revert --continue\")"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: wt-status.c:1459
+#: wt-status.c:1461
msgid " (run \"git revert --continue\" to continue)"
msgstr " (执行 \"git revert --continue\" 以继续)"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: wt-status.c:1462
+#: wt-status.c:1464
msgid " (all conflicts fixed: run \"git revert --continue\")"
msgstr " (所有冲çªå·²è§£å†³ï¼šæ‰§è¡Œ \"git revert --continue\")"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: wt-status.c:1464
+#: wt-status.c:1466
+msgid " (use \"git revert --skip\" to skip this patch)"
+msgstr " (使用 \"git revert --skip\" 跳过此补ä¸ï¼‰"
+
+# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
+#: wt-status.c:1468
msgid " (use \"git revert --abort\" to cancel the revert operation)"
msgstr " (使用 \"git revert --abort\" 以å–消å转æ交æ“作)"
-#: wt-status.c:1474
+#: wt-status.c:1478
#, c-format
msgid "You are currently bisecting, started from branch '%s'."
msgstr "您在执行从分支 '%s' 开始的二分查找æ“作。"
-#: wt-status.c:1478
+#: wt-status.c:1482
msgid "You are currently bisecting."
msgstr "您在执行二分查找æ“作。"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: wt-status.c:1481
+#: wt-status.c:1485
msgid " (use \"git bisect reset\" to get back to the original branch)"
msgstr " (使用 \"git bisect reset\" 以回到原有分支)"
-#: wt-status.c:1690
+#: wt-status.c:1694
msgid "On branch "
msgstr "ä½äºŽåˆ†æ”¯ "
-#: wt-status.c:1697
+#: wt-status.c:1701
msgid "interactive rebase in progress; onto "
msgstr "交互å¼å˜åŸºæ“作正在进行中;至 "
-#: wt-status.c:1699
+#: wt-status.c:1703
msgid "rebase in progress; onto "
msgstr "å˜åŸºæ“作正在进行中;至 "
-#: wt-status.c:1709
+#: wt-status.c:1713
msgid "Not currently on any branch."
msgstr "当å‰ä¸åœ¨ä»»ä½•åˆ†æ”¯ä¸Šã€‚"
-#: wt-status.c:1726
+#: wt-status.c:1730
msgid "Initial commit"
msgstr "åˆå§‹æ交"
-#: wt-status.c:1727
+#: wt-status.c:1731
msgid "No commits yet"
msgstr "å°šæ— æ交"
-#: wt-status.c:1741
+#: wt-status.c:1745
msgid "Untracked files"
msgstr "未跟踪的文件"
-#: wt-status.c:1743
+#: wt-status.c:1747
msgid "Ignored files"
msgstr "忽略的文件"
-#: wt-status.c:1747
+#: wt-status.c:1751
#, c-format
msgid ""
"It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
@@ -8304,101 +8344,106 @@ msgstr ""
"耗费了 %.2f 秒以枚举未跟踪的文件。'status -uno' 也许能æ高速度,\n"
"但您需è¦å°å¿ƒä¸è¦å¿˜äº†æ·»åŠ æ–°æ–‡ä»¶ï¼ˆå‚è§ 'git help status')。"
-#: wt-status.c:1753
+#: wt-status.c:1757
#, c-format
msgid "Untracked files not listed%s"
msgstr "未跟踪的文件没有列出%s"
# 译者:中文字符串拼接,å¯åˆ é™¤å‰å¯¼ç©ºæ ¼
-#: wt-status.c:1755
+#: wt-status.c:1759
msgid " (use -u option to show untracked files)"
msgstr "(使用 -u å‚数显示未跟踪的文件)"
-#: wt-status.c:1761
+#: wt-status.c:1765
msgid "No changes"
msgstr "没有修改"
-#: wt-status.c:1766
+#: wt-status.c:1770
#, 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:1769
+#: wt-status.c:1773
#, c-format
msgid "no changes added to commit\n"
msgstr "修改尚未加入æ交\n"
-#: wt-status.c:1772
+#: wt-status.c:1776
#, c-format
msgid ""
"nothing added to commit but untracked files present (use \"git add\" to "
"track)\n"
msgstr "æ交为空,但是存在尚未跟踪的文件(使用 \"git add\" 建立跟踪)\n"
-#: wt-status.c:1775
+#: wt-status.c:1779
#, c-format
msgid "nothing added to commit but untracked files present\n"
msgstr "æ交为空,但是存在尚未跟踪的文件\n"
# 译者:中文字符串拼接,å¯åˆ é™¤å‰å¯¼ç©ºæ ¼
-#: wt-status.c:1778
+#: wt-status.c:1782
#, c-format
msgid "nothing to commit (create/copy files and use \"git add\" to track)\n"
msgstr "无文件è¦æ交(创建/æ‹·è´æ–‡ä»¶å¹¶ä½¿ç”¨ \"git add\" 建立跟踪)\n"
-#: wt-status.c:1781 wt-status.c:1786
+#: wt-status.c:1785 wt-status.c:1790
#, c-format
msgid "nothing to commit\n"
msgstr "无文件è¦æ交\n"
# 译者:中文字符串拼接,å¯åˆ é™¤å‰å¯¼ç©ºæ ¼
-#: wt-status.c:1784
+#: wt-status.c:1788
#, c-format
msgid "nothing to commit (use -u to show untracked files)\n"
msgstr "无文件è¦æ交(使用 -u 显示未跟踪的文件)\n"
# 译者:中文字符串拼接,å¯åˆ é™¤å‰å¯¼ç©ºæ ¼
-#: wt-status.c:1788
+#: wt-status.c:1792
#, c-format
msgid "nothing to commit, working tree clean\n"
msgstr "无文件è¦æ交,干净的工作区\n"
-#: wt-status.c:1901
+#: wt-status.c:1905
msgid "No commits yet on "
msgstr "å°šæ— æ交在 "
-#: wt-status.c:1905
+#: wt-status.c:1909
msgid "HEAD (no branch)"
msgstr "HEAD(éžåˆ†æ”¯ï¼‰"
-#: wt-status.c:1936
+#: wt-status.c:1940
msgid "different"
msgstr "ä¸åŒ"
# 译者:注æ„ä¿æŒå¥å°¾ç©ºæ ¼
-#: wt-status.c:1938 wt-status.c:1946
+#: wt-status.c:1942 wt-status.c:1950
msgid "behind "
msgstr "è½åŽ "
-#: wt-status.c:1941 wt-status.c:1944
+#: wt-status.c:1945 wt-status.c:1948
msgid "ahead "
msgstr "领先 "
#. TRANSLATORS: the action is e.g. "pull with rebase"
-#: wt-status.c:2466
+#: wt-status.c:2470
#, c-format
msgid "cannot %s: You have unstaged changes."
msgstr "ä¸èƒ½%s:您有未暂存的å˜æ›´ã€‚"
-#: wt-status.c:2472
+#: wt-status.c:2476
msgid "additionally, your index contains uncommitted changes."
msgstr "å¦å¤–,您的索引中包å«æœªæ交的å˜æ›´ã€‚"
-#: wt-status.c:2474
+#: wt-status.c:2478
#, c-format
msgid "cannot %s: Your index contains uncommitted changes."
msgstr "ä¸èƒ½%s:您的索引中包å«æœªæ交的å˜æ›´ã€‚"
+#: compat/precompose_utf8.c:58 builtin/clone.c:452
+#, c-format
+msgid "failed to unlink '%s'"
+msgstr "删除 '%s' 失败"
+
#: builtin/add.c:25
msgid "git add [<options>] [--] <pathspec>..."
msgstr "git add [<选项>] [--] <路径规格>..."
@@ -8421,7 +8466,7 @@ msgstr "删除 '%s'\n"
msgid "Unstaged changes after refreshing the index:"
msgstr "刷新索引之åŽå°šæœªè¢«æš‚存的å˜æ›´ï¼š"
-#: builtin/add.c:234 builtin/rev-parse.c:896
+#: builtin/add.c:234 builtin/rev-parse.c:897
msgid "Could not read the index"
msgstr "ä¸èƒ½è¯»å–索引"
@@ -8456,8 +8501,8 @@ msgstr "ä¸èƒ½åº”用 '%s'"
msgid "The following paths are ignored by one of your .gitignore files:\n"
msgstr "下列路径根æ®æ‚¨çš„一个 .gitignore 文件而被忽略:\n"
-#: builtin/add.c:290 builtin/clean.c:909 builtin/fetch.c:147 builtin/mv.c:124
-#: builtin/prune-packed.c:56 builtin/pull.c:222 builtin/push.c:560
+#: builtin/add.c:290 builtin/clean.c:910 builtin/fetch.c:162 builtin/mv.c:124
+#: builtin/prune-packed.c:56 builtin/pull.c:223 builtin/push.c:547
#: builtin/remote.c:1345 builtin/rm.c:241 builtin/send-pack.c:165
msgid "dry run"
msgstr "演习"
@@ -8510,7 +8555,7 @@ msgstr "跳过因出错ä¸èƒ½æ·»åŠ çš„文件"
msgid "check if - even missing - files are ignored in dry run"
msgstr "检查在演习模å¼ä¸‹æ–‡ä»¶ï¼ˆå³ä½¿ä¸å­˜åœ¨ï¼‰æ˜¯å¦è¢«å¿½ç•¥"
-#: builtin/add.c:309 builtin/update-index.c:1001
+#: builtin/add.c:309 builtin/update-index.c:1002
msgid "override the executable bit of the listed files"
msgstr "覆盖列表里文件的å¯æ‰§è¡Œä½"
@@ -8584,109 +8629,105 @@ msgstr "没有指定文件,也没有文件被添加。\n"
msgid "Maybe you wanted to say 'git add .'?\n"
msgstr "也许您想è¦æ‰§è¡Œ 'git add .'?\n"
-#: builtin/am.c:348
+#: builtin/am.c:347
msgid "could not parse author script"
msgstr "ä¸èƒ½è§£æžä½œè€…脚本"
-#: builtin/am.c:432
+#: builtin/am.c:431
#, c-format
msgid "'%s' was deleted by the applypatch-msg hook"
msgstr "'%s' 被 applypatch-msg é’©å­åˆ é™¤"
-#: builtin/am.c:474
+#: builtin/am.c:473
#, c-format
msgid "Malformed input line: '%s'."
msgstr "éžæ³•çš„输入行:'%s'。"
-#: builtin/am.c:512
+#: builtin/am.c:511
#, c-format
msgid "Failed to copy notes from '%s' to '%s'"
msgstr "从 '%s' æ‹·è´æ³¨è§£åˆ° '%s' 时失败"
-#: builtin/am.c:538
+#: builtin/am.c:537
msgid "fseek failed"
msgstr "fseek 失败"
-#: builtin/am.c:726
+#: builtin/am.c:725
#, c-format
msgid "could not parse patch '%s'"
msgstr "无法解æžè¡¥ä¸ '%s'"
-#: builtin/am.c:791
+#: builtin/am.c:790
msgid "Only one StGIT patch series can be applied at once"
msgstr "一次åªèƒ½æœ‰ä¸€ä¸ª StGIT è¡¥ä¸é˜Ÿåˆ—被应用"
-#: builtin/am.c:839
+#: builtin/am.c:838
msgid "invalid timestamp"
msgstr "无效的时间戳"
-#: builtin/am.c:844 builtin/am.c:856
+#: builtin/am.c:843 builtin/am.c:855
msgid "invalid Date line"
msgstr "无效的日期行"
-#: builtin/am.c:851
+#: builtin/am.c:850
msgid "invalid timezone offset"
msgstr "无效的时区å移值"
-#: builtin/am.c:944
+#: builtin/am.c:943
msgid "Patch format detection failed."
msgstr "è¡¥ä¸æ ¼å¼æŽ¢æµ‹å¤±è´¥ã€‚"
-#: builtin/am.c:949 builtin/clone.c:407
+#: builtin/am.c:948 builtin/clone.c:406
#, c-format
msgid "failed to create directory '%s'"
msgstr "创建目录 '%s' 失败"
-#: builtin/am.c:954
+#: builtin/am.c:953
msgid "Failed to split patches."
msgstr "拆分补ä¸å¤±è´¥ã€‚"
-#: builtin/am.c:1084 builtin/commit.c:374
-msgid "unable to write index file"
-msgstr "无法写入索引文件"
-
-#: builtin/am.c:1098
+#: builtin/am.c:1084
#, c-format
msgid "When you have resolved this problem, run \"%s --continue\"."
msgstr "当您解决这一问题,执行 \"%s --continue\"。"
-#: builtin/am.c:1099
+#: builtin/am.c:1085
#, c-format
msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
msgstr "如果您想è¦è·³è¿‡è¿™ä¸€è¡¥ä¸ï¼Œåˆ™æ‰§è¡Œ \"%s --skip\"。"
-#: builtin/am.c:1100
+#: builtin/am.c:1086
#, c-format
msgid "To restore the original branch and stop patching, run \"%s --abort\"."
msgstr "è‹¥è¦å¤åŽŸè‡³åŽŸå§‹åˆ†æ”¯å¹¶åœæ­¢è¡¥ä¸æ“作,执行 \"%s --abort\"。"
-#: builtin/am.c:1183
+#: builtin/am.c:1169
msgid "Patch sent with format=flowed; space at the end of lines might be lost."
msgstr "è¡¥ä¸ä½¿ç”¨ format=flowed æ ¼å¼å‘é€ï¼Œè¡Œå°¾çš„空格å¯èƒ½ä¼šä¸¢å¤±ã€‚"
-#: builtin/am.c:1211
+#: builtin/am.c:1197
msgid "Patch is empty."
msgstr "è¡¥ä¸ä¸ºç©ºã€‚"
-#: builtin/am.c:1277
+#: builtin/am.c:1262
#, c-format
-msgid "invalid ident line: %.*s"
-msgstr "无效的身份标识:%.*s"
+msgid "missing author line in commit %s"
+msgstr "在æ交 %s 中缺失作者行"
-#: builtin/am.c:1299
+#: builtin/am.c:1265
#, c-format
-msgid "unable to parse commit %s"
-msgstr "ä¸èƒ½è§£æžæ交 %s"
+msgid "invalid ident line: %.*s"
+msgstr "无效的身份标识:%.*s"
-#: builtin/am.c:1496
+#: builtin/am.c:1484
msgid "Repository lacks necessary blobs to fall back on 3-way merge."
msgstr "仓库缺ä¹å¿…è¦çš„æ•°æ®å¯¹è±¡ä»¥è¿›è¡Œä¸‰æ–¹åˆå¹¶ã€‚"
-#: builtin/am.c:1498
+#: builtin/am.c:1486
msgid "Using index info to reconstruct a base tree..."
msgstr "使用索引æ¥é‡å»ºä¸€ä¸ªï¼ˆä¸‰æ–¹åˆå¹¶çš„)基础目录树..."
-#: builtin/am.c:1517
+#: builtin/am.c:1505
msgid ""
"Did you hand edit your patch?\n"
"It does not apply to blobs recorded in its index."
@@ -8694,24 +8735,24 @@ msgstr ""
"您是å¦æ›¾æ‰‹åŠ¨ç¼–辑过您的补ä¸ï¼Ÿ\n"
"无法应用补ä¸åˆ°ç´¢å¼•ä¸­çš„æ•°æ®å¯¹è±¡ä¸Šã€‚"
-#: builtin/am.c:1523
+#: builtin/am.c:1511
msgid "Falling back to patching base and 3-way merge..."
msgstr "回è½åˆ°åŸºç¡€ç‰ˆæœ¬ä¸Šæ‰“è¡¥ä¸åŠè¿›è¡Œä¸‰æ–¹åˆå¹¶..."
-#: builtin/am.c:1549
+#: builtin/am.c:1537
msgid "Failed to merge in the changes."
msgstr "无法åˆå¹¶å˜æ›´ã€‚"
-#: builtin/am.c:1581
+#: builtin/am.c:1569
msgid "applying to an empty history"
msgstr "正应用到一个空历å²ä¸Š"
-#: builtin/am.c:1628 builtin/am.c:1632
+#: builtin/am.c:1616 builtin/am.c:1620
#, c-format
msgid "cannot resume: %s does not exist."
msgstr "无法继续:%s ä¸å­˜åœ¨ã€‚"
-#: builtin/am.c:1650
+#: builtin/am.c:1638
msgid "Commit Body is:"
msgstr "æ交内容为:"
@@ -8720,35 +8761,39 @@ msgstr "æ交内容为:"
#. in your translation. The program will only accept English
#. input at this point.
#.
-#: builtin/am.c:1660
+#: builtin/am.c:1648
#, 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:1710
+#: builtin/am.c:1695 builtin/commit.c:374
+msgid "unable to write index file"
+msgstr "无法写入索引文件"
+
+#: builtin/am.c:1699
#, c-format
msgid "Dirty index: cannot apply patches (dirty: %s)"
msgstr "è„索引:ä¸èƒ½åº”用补ä¸ï¼ˆè„文件:%s)"
-#: builtin/am.c:1750 builtin/am.c:1818
+#: builtin/am.c:1739 builtin/am.c:1807
#, c-format
msgid "Applying: %.*s"
msgstr "应用:%.*s"
-#: builtin/am.c:1767
+#: builtin/am.c:1756
msgid "No changes -- Patch already applied."
msgstr "没有å˜æ›´ —— è¡¥ä¸å·²ç»åº”用过。"
-#: builtin/am.c:1773
+#: builtin/am.c:1762
#, c-format
msgid "Patch failed at %s %.*s"
msgstr "打补ä¸å¤±è´¥äºŽ %s %.*s"
-#: builtin/am.c:1777
+#: builtin/am.c:1766
msgid "Use 'git am --show-current-patch' to see the failed patch"
msgstr "用 'git am --show-current-patch' 命令查看失败的补ä¸"
-#: builtin/am.c:1821
+#: builtin/am.c:1810
msgid ""
"No changes - did you forget to use 'git add'?\n"
"If there is nothing left to stage, chances are that something else\n"
@@ -8758,7 +8803,7 @@ msgstr ""
"如果没有什么è¦æ·»åŠ åˆ°æš‚存区的,则很å¯èƒ½æ˜¯å…¶å®ƒæ交已ç»å¼•å…¥äº†ç›¸åŒçš„å˜æ›´ã€‚\n"
"您也许想è¦è·³è¿‡è¿™ä¸ªè¡¥ä¸ã€‚"
-#: builtin/am.c:1828
+#: builtin/am.c:1817
msgid ""
"You still have unmerged paths in your index.\n"
"You should 'git add' each file with resolved conflicts to mark them as "
@@ -8769,159 +8814,159 @@ msgstr ""
"您应该对已ç»å†²çªè§£å†³çš„æ¯ä¸€ä¸ªæ–‡ä»¶æ‰§è¡Œ 'git add' æ¥æ ‡è®°å·²ç»å®Œæˆã€‚ \n"
"ä½ å¯ä»¥å¯¹ \"由他们删除\" 的文件执行 `git rm` 命令。"
-#: builtin/am.c:1935 builtin/am.c:1939 builtin/am.c:1951 builtin/reset.c:329
+#: builtin/am.c:1924 builtin/am.c:1928 builtin/am.c:1940 builtin/reset.c:329
#: builtin/reset.c:337
#, c-format
msgid "Could not parse object '%s'."
msgstr "ä¸èƒ½è§£æžå¯¹è±¡ '%s'。"
-#: builtin/am.c:1987
+#: builtin/am.c:1976
msgid "failed to clean index"
msgstr "清空索引失败"
-#: builtin/am.c:2031
+#: builtin/am.c:2020
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:2128
+#: builtin/am.c:2117
#, c-format
msgid "Invalid value for --patch-format: %s"
msgstr "无效的 --patch-format 值:%s"
-#: builtin/am.c:2164
+#: builtin/am.c:2153
msgid "git am [<options>] [(<mbox> | <Maildir>)...]"
msgstr "git am [<选项>] [(<mbox> | <Maildir>)...]"
-#: builtin/am.c:2165
+#: builtin/am.c:2154
msgid "git am [<options>] (--continue | --skip | --abort)"
msgstr "git am [<选项>] (--continue | --skip | --abort)"
-#: builtin/am.c:2171
+#: builtin/am.c:2160
msgid "run interactively"
msgstr "以交互å¼æ–¹å¼è¿è¡Œ"
-#: builtin/am.c:2173
+#: builtin/am.c:2162
msgid "historical option -- no-op"
msgstr "è€çš„å‚æ•° —— 无作用"
-#: builtin/am.c:2175
+#: builtin/am.c:2164
msgid "allow fall back on 3way merging if needed"
msgstr "如果必è¦ï¼Œå…许使用三方åˆå¹¶ã€‚"
-#: builtin/am.c:2176 builtin/init-db.c:494 builtin/prune-packed.c:58
-#: builtin/repack.c:296 builtin/stash.c:806
+#: builtin/am.c:2165 builtin/init-db.c:494 builtin/prune-packed.c:58
+#: builtin/repack.c:297 builtin/stash.c:812
msgid "be quiet"
msgstr "é™é»˜æ¨¡å¼"
-#: builtin/am.c:2178
+#: builtin/am.c:2167
msgid "add a Signed-off-by line to the commit message"
msgstr "在æ交说明中添加一个 Signed-off-by ç­¾å"
-#: builtin/am.c:2181
+#: builtin/am.c:2170
msgid "recode into utf8 (default)"
msgstr "使用 utf8 字符集(默认)"
-#: builtin/am.c:2183
+#: builtin/am.c:2172
msgid "pass -k flag to git-mailinfo"
msgstr "å‘ git-mailinfo 传递 -k å‚æ•°"
-#: builtin/am.c:2185
+#: builtin/am.c:2174
msgid "pass -b flag to git-mailinfo"
msgstr "å‘ git-mailinfo 传递 -b å‚æ•°"
-#: builtin/am.c:2187
+#: builtin/am.c:2176
msgid "pass -m flag to git-mailinfo"
msgstr "å‘ git-mailinfo 传递 -m å‚æ•°"
-#: builtin/am.c:2189
+#: builtin/am.c:2178
msgid "pass --keep-cr flag to git-mailsplit for mbox format"
msgstr "针对 mbox æ ¼å¼ï¼Œå‘ git-mailsplit 传递 --keep-cr å‚æ•°"
-#: builtin/am.c:2192
+#: builtin/am.c:2181
msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
msgstr "ä¸å‘ git-mailsplit 传递 --keep-cr å‚数,覆盖 am.keepcr 的设置"
-#: builtin/am.c:2195
+#: builtin/am.c:2184
msgid "strip everything before a scissors line"
msgstr "丢弃è£åˆ‡çº¿å‰çš„所有内容"
-#: builtin/am.c:2197 builtin/am.c:2200 builtin/am.c:2203 builtin/am.c:2206
-#: builtin/am.c:2209 builtin/am.c:2212 builtin/am.c:2215 builtin/am.c:2218
-#: builtin/am.c:2224
+#: builtin/am.c:2186 builtin/am.c:2189 builtin/am.c:2192 builtin/am.c:2195
+#: builtin/am.c:2198 builtin/am.c:2201 builtin/am.c:2204 builtin/am.c:2207
+#: builtin/am.c:2213
msgid "pass it through git-apply"
msgstr "传递给 git-apply"
-#: builtin/am.c:2214 builtin/commit.c:1368 builtin/fmt-merge-msg.c:671
-#: builtin/fmt-merge-msg.c:674 builtin/grep.c:881 builtin/merge.c:249
-#: builtin/pull.c:159 builtin/pull.c:218 builtin/rebase.c:1418
-#: builtin/repack.c:307 builtin/repack.c:311 builtin/repack.c:313
+#: builtin/am.c:2203 builtin/commit.c:1368 builtin/fmt-merge-msg.c:671
+#: builtin/fmt-merge-msg.c:674 builtin/grep.c:883 builtin/merge.c:249
+#: builtin/pull.c:160 builtin/pull.c:219 builtin/rebase.c:1442
+#: builtin/repack.c:308 builtin/repack.c:312 builtin/repack.c:314
#: builtin/show-branch.c:650 builtin/show-ref.c:172 builtin/tag.c:403
-#: parse-options.h:141 parse-options.h:162 parse-options.h:312
+#: parse-options.h:150 parse-options.h:171 parse-options.h:312
msgid "n"
msgstr "n"
-#: builtin/am.c:2220 builtin/branch.c:661 builtin/for-each-ref.c:38
-#: builtin/replace.c:554 builtin/tag.c:437 builtin/verify-tag.c:38
+#: builtin/am.c:2209 builtin/branch.c:661 builtin/for-each-ref.c:38
+#: builtin/replace.c:555 builtin/tag.c:437 builtin/verify-tag.c:38
msgid "format"
msgstr "æ ¼å¼"
-#: builtin/am.c:2221
+#: builtin/am.c:2210
msgid "format the patch(es) are in"
msgstr "è¡¥ä¸çš„æ ¼å¼"
-#: builtin/am.c:2227
+#: builtin/am.c:2216
msgid "override error message when patch failure occurs"
msgstr "打补ä¸å¤±è´¥æ—¶æ˜¾ç¤ºçš„错误信æ¯"
-#: builtin/am.c:2229
+#: builtin/am.c:2218
msgid "continue applying patches after resolving a conflict"
msgstr "冲çªè§£å†³åŽç»§ç»­åº”用补ä¸"
-#: builtin/am.c:2232
+#: builtin/am.c:2221
msgid "synonyms for --continue"
msgstr "å’Œ --continue åŒä¹‰"
-#: builtin/am.c:2235
+#: builtin/am.c:2224
msgid "skip the current patch"
msgstr "跳过当å‰è¡¥ä¸"
-#: builtin/am.c:2238
+#: builtin/am.c:2227
msgid "restore the original branch and abort the patching operation."
msgstr "æ¢å¤åŽŸå§‹åˆ†æ”¯å¹¶ç»ˆæ­¢æ‰“è¡¥ä¸æ“作。"
-#: builtin/am.c:2241
+#: builtin/am.c:2230
msgid "abort the patching operation but keep HEAD where it is."
msgstr "终止补ä¸æ“作但ä¿æŒ HEAD ä¸å˜ã€‚"
-#: builtin/am.c:2244
+#: builtin/am.c:2233
msgid "show the patch being applied."
msgstr "显示正在应用的补ä¸ã€‚"
-#: builtin/am.c:2248
+#: builtin/am.c:2237
msgid "lie about committer date"
msgstr "将作者日期作为æ交日期"
-#: builtin/am.c:2250
+#: builtin/am.c:2239
msgid "use current timestamp for author date"
msgstr "用当å‰æ—¶é—´ä½œä¸ºä½œè€…日期"
-#: builtin/am.c:2252 builtin/commit-tree.c:120 builtin/commit.c:1511
-#: builtin/merge.c:286 builtin/pull.c:193 builtin/rebase.c:489
-#: builtin/rebase.c:1459 builtin/revert.c:117 builtin/tag.c:418
+#: builtin/am.c:2241 builtin/commit-tree.c:120 builtin/commit.c:1511
+#: builtin/merge.c:286 builtin/pull.c:194 builtin/rebase.c:490
+#: builtin/rebase.c:1483 builtin/revert.c:117 builtin/tag.c:418
msgid "key-id"
msgstr "key-id"
-#: builtin/am.c:2253 builtin/rebase.c:490 builtin/rebase.c:1460
+#: builtin/am.c:2242 builtin/rebase.c:491 builtin/rebase.c:1484
msgid "GPG-sign commits"
msgstr "使用 GPG ç­¾åæ交"
-#: builtin/am.c:2256
+#: builtin/am.c:2245
msgid "(internal use for git-rebase)"
msgstr "(内部使用,用于 git-rebase)"
-#: builtin/am.c:2274
+#: builtin/am.c:2263
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."
@@ -8929,16 +8974,16 @@ msgstr ""
"å‚æ•° -b/--binary å·²ç»å¾ˆé•¿æ—¶é—´ä¸åšä»»ä½•å®žè´¨æ“作了,并且将被移除。\n"
"请ä¸è¦å†ä½¿ç”¨å®ƒäº†ã€‚"
-#: builtin/am.c:2281
+#: builtin/am.c:2270
msgid "failed to read the index"
msgstr "读å–索引失败"
-#: builtin/am.c:2296
+#: builtin/am.c:2285
#, c-format
msgid "previous rebase directory %s still exists but mbox given."
msgstr "之å‰çš„å˜åŸºç›®å½• %s ä»ç„¶å­˜åœ¨ï¼Œä½†å´æ供了 mbox。"
-#: builtin/am.c:2320
+#: builtin/am.c:2309
#, c-format
msgid ""
"Stray %s directory found.\n"
@@ -8947,11 +8992,11 @@ msgstr ""
"å‘现了错误的 %s 目录。\n"
"使用 \"git am --abort\" 删除它。"
-#: builtin/am.c:2326
+#: builtin/am.c:2315
msgid "Resolve operation not in progress, we are not resuming."
msgstr "解决æ“作未进行,我们ä¸ä¼šç»§ç»­ã€‚"
-#: builtin/am.c:2336
+#: builtin/am.c:2325
msgid "interactive mode requires patches on the command line"
msgstr "交互å¼æ¨¡å¼éœ€è¦å‘½ä»¤è¡Œä¸Šæ供补ä¸"
@@ -9261,154 +9306,154 @@ msgstr "--bisect-next-check éœ€è¦ 2 或 3 个å‚æ•°"
msgid "--bisect-terms requires 0 or 1 argument"
msgstr "--bisect-terms éœ€è¦ 0 或 1 个å‚æ•°"
-#: builtin/blame.c:32
+#: builtin/blame.c:31
msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>"
msgstr "git blame [<选项>] [<版本选项>] [<版本>] [--] <文件>"
-#: builtin/blame.c:37
+#: builtin/blame.c:36
msgid "<rev-opts> are documented in git-rev-list(1)"
msgstr "<版本选项> 的文档记录在 git-rev-list(1) 中"
-#: builtin/blame.c:410
+#: builtin/blame.c:409
#, c-format
msgid "expecting a color: %s"
msgstr "期望一个颜色:%s"
-#: builtin/blame.c:417
+#: builtin/blame.c:416
msgid "must end with a color"
msgstr "必须以一个颜色结尾"
-#: builtin/blame.c:730
+#: builtin/blame.c:729
#, c-format
msgid "invalid color '%s' in color.blame.repeatedLines"
msgstr "设置 color.blame.repeatedLines 中的无效颜色 '%s'"
-#: builtin/blame.c:748
+#: builtin/blame.c:747
msgid "invalid value for blame.coloring"
msgstr "设置 blame.coloring 中的无效å–值"
-#: builtin/blame.c:823
+#: builtin/blame.c:822
#, c-format
msgid "cannot find revision %s to ignore"
msgstr "ä¸èƒ½æ‰¾åˆ°è¦å¿½ç•¥çš„版本 %s"
-#: builtin/blame.c:845
+#: builtin/blame.c:844
msgid "Show blame entries as we find them, incrementally"
msgstr "增é‡å¼åœ°æ˜¾ç¤ºå‘现的 blame æ¡ç›®"
-#: builtin/blame.c:846
+#: builtin/blame.c:845
msgid "Show blank SHA-1 for boundary commits (Default: off)"
msgstr "边界æ交显示空的 SHA-1(默认:关闭)"
-#: builtin/blame.c:847
+#: builtin/blame.c:846
msgid "Do not treat root commits as boundaries (Default: off)"
msgstr "ä¸æŠŠæ ¹æ交作为边界(默认:关闭)"
-#: builtin/blame.c:848
+#: builtin/blame.c:847
msgid "Show work cost statistics"
msgstr "显示命令消耗统计"
-#: builtin/blame.c:849
+#: builtin/blame.c:848
msgid "Force progress reporting"
msgstr "强制进度显示"
-#: builtin/blame.c:850
+#: builtin/blame.c:849
msgid "Show output score for blame entries"
msgstr "显示判断 blame æ¡ç›®ä½ç§»çš„得分诊断信æ¯"
-#: builtin/blame.c:851
+#: builtin/blame.c:850
msgid "Show original filename (Default: auto)"
msgstr "显示原始文件å(默认:自动)"
-#: builtin/blame.c:852
+#: builtin/blame.c:851
msgid "Show original linenumber (Default: off)"
msgstr "显示原始的行å·ï¼ˆé»˜è®¤ï¼šå…³é—­ï¼‰"
-#: builtin/blame.c:853
+#: builtin/blame.c:852
msgid "Show in a format designed for machine consumption"
msgstr "显示为一个适åˆæœºå™¨è¯»å–çš„æ ¼å¼"
-#: builtin/blame.c:854
+#: builtin/blame.c:853
msgid "Show porcelain format with per-line commit information"
msgstr "为æ¯ä¸€è¡Œæ˜¾ç¤ºæœºå™¨é€‚用的æ交信æ¯"
-#: builtin/blame.c:855
+#: builtin/blame.c:854
msgid "Use the same output mode as git-annotate (Default: off)"
msgstr "使用和 git-annotate 相åŒçš„输出模å¼ï¼ˆé»˜è®¤ï¼šå…³é—­ï¼‰"
-#: builtin/blame.c:856
+#: builtin/blame.c:855
msgid "Show raw timestamp (Default: off)"
msgstr "显示原始时间戳(默认:关闭)"
-#: builtin/blame.c:857
+#: builtin/blame.c:856
msgid "Show long commit SHA1 (Default: off)"
msgstr "显示长的 SHA1 æ交å·ï¼ˆé»˜è®¤ï¼šå…³é—­ï¼‰"
-#: builtin/blame.c:858
+#: builtin/blame.c:857
msgid "Suppress author name and timestamp (Default: off)"
msgstr "éšè—作者å字和时间戳(默认:关闭)"
-#: builtin/blame.c:859
+#: builtin/blame.c:858
msgid "Show author email instead of name (Default: off)"
msgstr "显示作者的邮箱而ä¸æ˜¯å字(默认:关闭)"
-#: builtin/blame.c:860
+#: builtin/blame.c:859
msgid "Ignore whitespace differences"
msgstr "忽略空白差异"
-#: builtin/blame.c:861 builtin/log.c:1629
+#: builtin/blame.c:860 builtin/log.c:1630
msgid "rev"
msgstr "版本"
-#: builtin/blame.c:861
+#: builtin/blame.c:860
msgid "Ignore <rev> when blaming"
msgstr "在执行 blame æ“作时忽略 <版本>"
-#: builtin/blame.c:862
+#: builtin/blame.c:861
msgid "Ignore revisions from <file>"
msgstr "忽略æ¥è‡ª <文件> 中的版本"
-#: builtin/blame.c:863
+#: builtin/blame.c:862
msgid "color redundant metadata from previous line differently"
msgstr "使用颜色间隔输出与å‰ä¸€è¡Œä¸åŒçš„é‡å¤å…ƒä¿¡æ¯"
-#: builtin/blame.c:864
+#: builtin/blame.c:863
msgid "color lines by age"
msgstr "ä¾æ®æ—¶é—´ç€è‰²"
-#: builtin/blame.c:871
+#: builtin/blame.c:870
msgid "Use an experimental heuristic to improve diffs"
msgstr "使用一个试验性的å¯å‘å¼ç®—法改进差异显示"
-#: builtin/blame.c:873
+#: builtin/blame.c:872
msgid "Spend extra cycles to find better match"
msgstr "花费é¢å¤–的循环æ¥æ‰¾åˆ°æ›´å¥½çš„匹é…"
-#: builtin/blame.c:874
+#: builtin/blame.c:873
msgid "Use revisions from <file> instead of calling git-rev-list"
msgstr "使用æ¥è‡ª <文件> 的修订集而ä¸æ˜¯è°ƒç”¨ git-rev-list"
-#: builtin/blame.c:875
+#: builtin/blame.c:874
msgid "Use <file>'s contents as the final image"
msgstr "使用 <文件> 的内容作为最终的图片"
-#: builtin/blame.c:876 builtin/blame.c:877
+#: builtin/blame.c:875 builtin/blame.c:876
msgid "score"
msgstr "得分"
-#: builtin/blame.c:876
+#: builtin/blame.c:875
msgid "Find line copies within and across files"
msgstr "找到文件内åŠè·¨æ–‡ä»¶çš„行拷è´"
-#: builtin/blame.c:877
+#: builtin/blame.c:876
msgid "Find line movements within and across files"
msgstr "找到文件内åŠè·¨æ–‡ä»¶çš„行移动"
-#: builtin/blame.c:878
+#: builtin/blame.c:877
msgid "n,m"
msgstr "n,m"
-#: builtin/blame.c:878
+#: builtin/blame.c:877
msgid "Process only line range n,m, counting from 1"
msgstr "åªå¤„ç†è¡ŒèŒƒå›´åœ¨ n å’Œ m 之间的,从 1 开始"
@@ -9646,7 +9691,7 @@ msgstr "设置跟踪模å¼ï¼ˆå‚è§ git-pull(1))"
msgid "do not use"
msgstr "ä¸è¦ä½¿ç”¨"
-#: builtin/branch.c:626 builtin/rebase.c:485
+#: builtin/branch.c:626 builtin/rebase.c:486
msgid "upstream"
msgstr "上游"
@@ -9757,7 +9802,7 @@ msgstr "排åºå’Œè¿‡æ»¤å±žäºŽå¤§å°å†™ä¸æ•æ„Ÿ"
msgid "format to use for the output"
msgstr "输出格å¼"
-#: builtin/branch.c:684 builtin/clone.c:761
+#: builtin/branch.c:684 builtin/clone.c:760
msgid "HEAD not found below refs/heads!"
msgstr "HEAD 没有ä½äºŽ /refs/heads 之下ï¼"
@@ -9856,7 +9901,7 @@ msgstr "需è¦ä¸€ä¸ªä»“库æ¥åˆ›å»ºåŒ…。"
msgid "Need a repository to unbundle."
msgstr "需è¦ä¸€ä¸ªä»“库æ¥è§£åŒ…。"
-#: builtin/cat-file.c:594
+#: builtin/cat-file.c:595
msgid ""
"git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -"
"p | <type> | --textconv | --filters) [--path=<path>] <object>"
@@ -9864,7 +9909,7 @@ msgstr ""
"git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -"
"p | <类型> | --textconv | --filters) [--path=<路径>] <对象>"
-#: builtin/cat-file.c:595
+#: builtin/cat-file.c:596
msgid ""
"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --"
"filters]"
@@ -9872,71 +9917,71 @@ msgstr ""
"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --"
"filters]"
-#: builtin/cat-file.c:616
+#: builtin/cat-file.c:617
msgid "only one batch option may be specified"
msgstr "åªèƒ½æŒ‡å®šä¸€ä¸ªæ‰¹å¤„ç†é€‰é¡¹"
-#: builtin/cat-file.c:634
+#: builtin/cat-file.c:635
msgid "<type> can be one of: blob, tree, commit, tag"
msgstr "<类型> å¯ä»¥æ˜¯å…¶ä¸­ä¹‹ä¸€ï¼šblobã€treeã€commitã€tag"
-#: builtin/cat-file.c:635
+#: builtin/cat-file.c:636
msgid "show object type"
msgstr "显示对象类型"
-#: builtin/cat-file.c:636
+#: builtin/cat-file.c:637
msgid "show object size"
msgstr "显示对象大å°"
-#: builtin/cat-file.c:638
+#: builtin/cat-file.c:639
msgid "exit with zero when there's no error"
msgstr "当没有错误时退出并返回零"
-#: builtin/cat-file.c:639
+#: builtin/cat-file.c:640
msgid "pretty-print object's content"
msgstr "美观地打å°å¯¹è±¡çš„内容"
-#: builtin/cat-file.c:641
+#: builtin/cat-file.c:642
msgid "for blob objects, run textconv on object's content"
msgstr "对于数æ®å¯¹è±¡ï¼Œå¯¹å…¶å†…容åšæ–‡æœ¬è½¬æ¢"
-#: builtin/cat-file.c:643
+#: builtin/cat-file.c:644
msgid "for blob objects, run filters on object's content"
msgstr "对于数æ®å¯¹è±¡ï¼Œå¯¹å…¶å†…容åšè¿‡æ»¤"
-#: builtin/cat-file.c:644 git-submodule.sh:936
+#: builtin/cat-file.c:645 git-submodule.sh:936
msgid "blob"
msgstr "æ•°æ®å¯¹è±¡"
-#: builtin/cat-file.c:645
+#: builtin/cat-file.c:646
msgid "use a specific path for --textconv/--filters"
msgstr "对于 --textconv/--filters 使用一个特定的路径"
-#: builtin/cat-file.c:647
+#: builtin/cat-file.c:648
msgid "allow -s and -t to work with broken/corrupt objects"
msgstr "å…许 -s å’Œ -t 对æŸå的对象生效"
-#: builtin/cat-file.c:648
+#: builtin/cat-file.c:649
msgid "buffer --batch output"
msgstr "缓冲 --batch 的输出"
-#: builtin/cat-file.c:650
+#: builtin/cat-file.c:651
msgid "show info and content of objects fed from the standard input"
msgstr "显示从标准输入æ供的对象的信æ¯å’Œå†…容"
-#: builtin/cat-file.c:654
+#: builtin/cat-file.c:655
msgid "show info about objects fed from the standard input"
msgstr "显示从标准输入æ供的对象的信æ¯"
-#: builtin/cat-file.c:658
+#: builtin/cat-file.c:659
msgid "follow in-tree symlinks (used with --batch or --batch-check)"
msgstr "è·Ÿéšæ ‘内符å·é“¾æŽ¥ï¼ˆå’Œ --batch 或 --batch-check 共用)"
-#: builtin/cat-file.c:660
+#: builtin/cat-file.c:661
msgid "show all objects with --batch or --batch-check"
msgstr "使用 --batch 或 --batch-check å‚数显示所有对象"
-#: builtin/cat-file.c:662
+#: builtin/cat-file.c:663
msgid "do not order --batch-all-objects output"
msgstr "ä¸è¦å¯¹ --batch-all-objects 的输出排åº"
@@ -9964,8 +10009,8 @@ msgstr "从标准输入读出文件å"
msgid "terminate input and output records by a NUL character"
msgstr "输入和输出的记录使用 NUL 字符终结"
-#: builtin/check-ignore.c:21 builtin/checkout.c:1433 builtin/gc.c:538
-#: builtin/worktree.c:507
+#: builtin/check-ignore.c:21 builtin/checkout.c:1433 builtin/gc.c:537
+#: builtin/worktree.c:506
msgid "suppress progress reporting"
msgstr "ä¸æ˜¾ç¤ºè¿›åº¦æŠ¥å‘Š"
@@ -10057,7 +10102,7 @@ msgstr "将内容写入临时文件"
#: builtin/checkout-index.c:178 builtin/column.c:31
#: builtin/submodule--helper.c:1373 builtin/submodule--helper.c:1376
#: builtin/submodule--helper.c:1384 builtin/submodule--helper.c:1857
-#: builtin/worktree.c:680
+#: builtin/worktree.c:679
msgid "string"
msgstr "字符串"
@@ -10085,98 +10130,98 @@ msgstr "git switch [<选项>] [<分支>]"
msgid "git restore [<options>] [--source=<branch>] <file>..."
msgstr "git restore [<选项>] [--source=<分支>] <文件>..."
-#: builtin/checkout.c:172 builtin/checkout.c:211
+#: builtin/checkout.c:173 builtin/checkout.c:212
#, c-format
msgid "path '%s' does not have our version"
msgstr "路径 '%s' 没有我们的版本"
-#: builtin/checkout.c:174 builtin/checkout.c:213
+#: builtin/checkout.c:175 builtin/checkout.c:214
#, c-format
msgid "path '%s' does not have their version"
msgstr "路径 '%s' 没有他们的版本"
-#: builtin/checkout.c:190
+#: builtin/checkout.c:191
#, c-format
msgid "path '%s' does not have all necessary versions"
msgstr "路径 '%s' 没有全部必需的版本"
-#: builtin/checkout.c:240
+#: builtin/checkout.c:241
#, c-format
msgid "path '%s' does not have necessary versions"
msgstr "路径 '%s' 没有必需的版本"
-#: builtin/checkout.c:258
+#: builtin/checkout.c:259
#, c-format
msgid "path '%s': cannot merge"
msgstr "path '%s':无法åˆå¹¶"
-#: builtin/checkout.c:274
+#: builtin/checkout.c:275
#, c-format
msgid "Unable to add merge result for '%s'"
msgstr "无法为 '%s' 添加åˆå¹¶ç»“æžœ"
-#: builtin/checkout.c:374
+#: builtin/checkout.c:375
#, c-format
msgid "Recreated %d merge conflict"
msgid_plural "Recreated %d merge conflicts"
msgstr[0] "é‡æ–°åˆ›å»ºäº† %d 个åˆå¹¶å†²çª"
msgstr[1] "é‡æ–°åˆ›å»ºäº† %d 个åˆå¹¶å†²çª"
-#: builtin/checkout.c:379
+#: builtin/checkout.c:380
#, 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:386
+#: builtin/checkout.c:387
#, 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:409 builtin/checkout.c:412 builtin/checkout.c:415
-#: builtin/checkout.c:419
+#: builtin/checkout.c:410 builtin/checkout.c:413 builtin/checkout.c:416
+#: builtin/checkout.c:420
#, c-format
msgid "'%s' cannot be used with updating paths"
msgstr "'%s' ä¸èƒ½åœ¨æ›´æ–°è·¯å¾„时使用"
-#: builtin/checkout.c:422 builtin/checkout.c:425
+#: builtin/checkout.c:423 builtin/checkout.c:426
#, c-format
msgid "'%s' cannot be used with %s"
msgstr "'%s' ä¸èƒ½å’Œ %s åŒæ—¶ä½¿ç”¨"
-#: builtin/checkout.c:429
+#: builtin/checkout.c:430
#, c-format
msgid "Cannot update paths and switch to branch '%s' at the same time."
msgstr "ä¸èƒ½åŒæ—¶æ›´æ–°è·¯å¾„并切æ¢åˆ°åˆ†æ”¯'%s'。"
-#: builtin/checkout.c:433
+#: builtin/checkout.c:434
#, c-format
msgid "neither '%s' or '%s' is specified"
msgstr "'%s' 或 '%s' 都没有指定"
-#: builtin/checkout.c:437
+#: builtin/checkout.c:438
#, c-format
msgid "'%s' must be used when '%s' is not specified"
msgstr "未指定 '%2$s' 时,必须使用 '%1$s'"
-#: builtin/checkout.c:442 builtin/checkout.c:447
+#: builtin/checkout.c:443 builtin/checkout.c:448
#, c-format
msgid "'%s' or '%s' cannot be used with %s"
msgstr "'%s' 或 '%s' ä¸èƒ½å’Œ %s 一起使用"
-#: builtin/checkout.c:506 builtin/checkout.c:513
+#: builtin/checkout.c:507 builtin/checkout.c:514
#, c-format
msgid "path '%s' is unmerged"
msgstr "路径 '%s' 未åˆå¹¶"
-#: builtin/checkout.c:679
+#: builtin/checkout.c:680
msgid "you need to resolve your current index first"
msgstr "您需è¦å…ˆè§£å†³å½“å‰ç´¢å¼•çš„冲çª"
-#: builtin/checkout.c:729
+#: builtin/checkout.c:730
#, c-format
msgid ""
"cannot continue with staged changes in the following files:\n"
@@ -10185,11 +10230,6 @@ msgstr ""
"ä¸èƒ½ç»§ç»­ï¼Œä¸‹åˆ—文件有暂存的修改:\n"
"%s"
-#: builtin/checkout.c:736
-#, c-format
-msgid "staged changes in the following files may be lost: %s"
-msgstr "下列文件暂存的修改å¯èƒ½ä¼šä¸¢å¤±ï¼š%s"
-
#: builtin/checkout.c:833
#, c-format
msgid "Can not do reflog for '%s': %s\n"
@@ -10199,7 +10239,7 @@ msgstr "ä¸èƒ½å¯¹ '%s' 执行 reflog æ“作:%s\n"
msgid "HEAD is now at"
msgstr "HEAD ç›®å‰ä½äºŽ"
-#: builtin/checkout.c:879 builtin/clone.c:714
+#: builtin/checkout.c:879 builtin/clone.c:713
msgid "unable to update HEAD"
msgstr "ä¸èƒ½æ›´æ–° HEAD"
@@ -10312,7 +10352,7 @@ msgstr ""
"'%s' æ—¢å¯ä»¥æ˜¯ä¸€ä¸ªæœ¬åœ°æ–‡ä»¶ï¼Œä¹Ÿå¯ä»¥æ˜¯ä¸€ä¸ªè·Ÿè¸ªåˆ†æ”¯ã€‚\n"
"请使用 --(和å¯é€‰çš„ --no-guess)æ¥æ¶ˆé™¤æ­§ä¹‰"
-#: builtin/checkout.c:1243 builtin/worktree.c:291 builtin/worktree.c:456
+#: builtin/checkout.c:1243 builtin/worktree.c:290 builtin/worktree.c:455
#, c-format
msgid "invalid reference: %s"
msgstr "无效引用:%s"
@@ -10415,9 +10455,9 @@ msgstr "ä¸èƒ½åˆ‡æ¢åˆ†æ”¯åˆ°ä¸€ä¸ªéžæ交 '%s'"
msgid "missing branch or commit argument"
msgstr "缺少分支或æ交å‚æ•°"
-#: builtin/checkout.c:1437 builtin/clone.c:91 builtin/fetch.c:151
-#: builtin/merge.c:285 builtin/pull.c:137 builtin/push.c:575
-#: builtin/send-pack.c:174
+#: builtin/checkout.c:1437 builtin/clone.c:90 builtin/commit-graph.c:59
+#: builtin/commit-graph.c:180 builtin/fetch.c:166 builtin/merge.c:285
+#: builtin/pull.c:138 builtin/push.c:562 builtin/send-pack.c:174
msgid "force progress reporting"
msgstr "强制显示进度报告"
@@ -10425,7 +10465,7 @@ msgstr "强制显示进度报告"
msgid "perform a 3-way merge with the new branch"
msgstr "和新的分支执行三方åˆå¹¶"
-#: builtin/checkout.c:1439 builtin/log.c:1617 parse-options.h:318
+#: builtin/checkout.c:1439 builtin/log.c:1618 parse-options.h:318
msgid "style"
msgstr "风格"
@@ -10433,7 +10473,7 @@ msgstr "风格"
msgid "conflict style (merge or diff3)"
msgstr "冲çªè¾“出风格(merge 或 diff3)"
-#: builtin/checkout.c:1452 builtin/worktree.c:504
+#: builtin/checkout.c:1452 builtin/worktree.c:503
msgid "detach HEAD at named commit"
msgstr "HEAD 从指定的æ交分离"
@@ -10547,9 +10587,9 @@ msgstr ""
"如果您总是喜欢使用模糊的简短分支å <name>,而ä¸å–œæ¬¢å¦‚ 'origin' 的远程\n"
"仓库å,å¯ä»¥åœ¨é…置中设置 checkout.defaultRemote=origin。"
-#: builtin/checkout.c:1691 builtin/checkout.c:1693 builtin/checkout.c:1733
-#: builtin/checkout.c:1735 builtin/clone.c:121 builtin/remote.c:169
-#: builtin/remote.c:171 builtin/worktree.c:500 builtin/worktree.c:502
+#: builtin/checkout.c:1691 builtin/checkout.c:1693 builtin/checkout.c:1742
+#: builtin/checkout.c:1744 builtin/clone.c:120 builtin/remote.c:169
+#: builtin/remote.c:171 builtin/worktree.c:499 builtin/worktree.c:501
msgid "branch"
msgstr "分支"
@@ -10573,39 +10613,39 @@ msgstr "二次猜测 'git checkout <无此分支>'(默认)"
msgid "use overlay mode (default)"
msgstr "使用å åŠ æ¨¡å¼ï¼ˆé»˜è®¤ï¼‰"
-#: builtin/checkout.c:1734
+#: builtin/checkout.c:1743
msgid "create and switch to a new branch"
msgstr "创建并切æ¢ä¸€ä¸ªæ–°åˆ†æ”¯"
-#: builtin/checkout.c:1736
+#: builtin/checkout.c:1745
msgid "create/reset and switch to a branch"
msgstr "创建/é‡ç½®å¹¶åˆ‡æ¢ä¸€ä¸ªåˆ†æ”¯"
-#: builtin/checkout.c:1738
+#: builtin/checkout.c:1747
msgid "second guess 'git switch <no-such-branch>'"
msgstr "二次猜测 'git switch <无此分支>'"
-#: builtin/checkout.c:1740
+#: builtin/checkout.c:1749
msgid "throw away local modifications"
msgstr "丢弃本地修改"
-#: builtin/checkout.c:1772
+#: builtin/checkout.c:1781
msgid "which tree-ish to checkout from"
msgstr "è¦æ£€å‡ºå“ªä¸€ä¸ªæ ‘"
-#: builtin/checkout.c:1774
+#: builtin/checkout.c:1783
msgid "restore the index"
msgstr "æ¢å¤ç´¢å¼•"
-#: builtin/checkout.c:1776
+#: builtin/checkout.c:1785
msgid "restore the working tree (default)"
msgstr "æ¢å¤å·¥ä½œåŒºï¼ˆé»˜è®¤ï¼‰"
-#: builtin/checkout.c:1778
+#: builtin/checkout.c:1787
msgid "ignore unmerged entries"
msgstr "忽略未åˆå¹¶æ¡ç›®"
-#: builtin/checkout.c:1779
+#: builtin/checkout.c:1788
msgid "use overlay mode"
msgstr "使用å åŠ æ¨¡å¼"
@@ -10645,7 +10685,7 @@ msgstr "删除 %s 失败"
msgid "could not lstat %s\n"
msgstr "ä¸èƒ½å¯¹ %s 调用 lstat\n"
-#: builtin/clean.c:300 git-add--interactive.perl:593
+#: builtin/clean.c:301 git-add--interactive.perl:593
#, c-format
msgid ""
"Prompt help:\n"
@@ -10658,7 +10698,7 @@ msgstr ""
"foo - 通过唯一å‰ç¼€é€‰æ‹©ä¸€ä¸ªé€‰é¡¹\n"
" - (空)什么也ä¸é€‰æ‹©\n"
-#: builtin/clean.c:304 git-add--interactive.perl:602
+#: builtin/clean.c:305 git-add--interactive.perl:602
#, c-format
msgid ""
"Prompt help:\n"
@@ -10679,38 +10719,38 @@ msgstr ""
"* - 选择所有选项\n"
" - (空)结æŸé€‰æ‹©\n"
-#: builtin/clean.c:520 git-add--interactive.perl:568
+#: builtin/clean.c:521 git-add--interactive.perl:568
#: git-add--interactive.perl:573
#, c-format, perl-format
msgid "Huh (%s)?\n"
msgstr "嗯(%s)?\n"
-#: builtin/clean.c:662
+#: builtin/clean.c:663
#, c-format
msgid "Input ignore patterns>> "
msgstr "输入模版以排除æ¡ç›®>> "
-#: builtin/clean.c:699
+#: builtin/clean.c:700
#, c-format
msgid "WARNING: Cannot find items matched by: %s"
msgstr "警告:无法找到和 %s 匹é…çš„æ¡ç›®"
-#: builtin/clean.c:720
+#: builtin/clean.c:721
msgid "Select items to delete"
msgstr "选择è¦åˆ é™¤çš„æ¡ç›®"
#. TRANSLATORS: Make sure to keep [y/N] as is
-#: builtin/clean.c:761
+#: builtin/clean.c:762
#, c-format
msgid "Remove %s [y/N]? "
msgstr "删除 %s [y/N]?"
-#: builtin/clean.c:786 git-add--interactive.perl:1763
+#: builtin/clean.c:787 git-add--interactive.perl:1763
#, c-format
msgid "Bye.\n"
msgstr "å†è§ã€‚\n"
-#: builtin/clean.c:794
+#: builtin/clean.c:795
msgid ""
"clean - start cleaning\n"
"filter by pattern - exclude items from deletion\n"
@@ -10728,231 +10768,231 @@ msgstr ""
"help - 显示本帮助\n"
"? - 显示如何在æ示符下选择的帮助"
-#: builtin/clean.c:821 git-add--interactive.perl:1849
+#: builtin/clean.c:822 git-add--interactive.perl:1849
msgid "*** Commands ***"
msgstr "*** 命令 ***"
-#: builtin/clean.c:822 git-add--interactive.perl:1846
+#: builtin/clean.c:823 git-add--interactive.perl:1846
msgid "What now"
msgstr "请选择"
-#: builtin/clean.c:830
+#: builtin/clean.c:831
msgid "Would remove the following item:"
msgid_plural "Would remove the following items:"
msgstr[0] "将删除如下æ¡ç›®ï¼š"
msgstr[1] "将删除如下æ¡ç›®ï¼š"
-#: builtin/clean.c:846
+#: builtin/clean.c:847
msgid "No more files to clean, exiting."
msgstr "没有è¦æ¸…ç†çš„文件,退出。"
-#: builtin/clean.c:908
+#: builtin/clean.c:909
msgid "do not print names of files removed"
msgstr "ä¸æ‰“å°åˆ é™¤æ–‡ä»¶çš„å称"
-#: builtin/clean.c:910
+#: builtin/clean.c:911
msgid "force"
msgstr "强制"
-#: builtin/clean.c:911
+#: builtin/clean.c:912
msgid "interactive cleaning"
msgstr "交互å¼æ¸…除"
-#: builtin/clean.c:913
+#: builtin/clean.c:914
msgid "remove whole directories"
msgstr "删除整个目录"
-#: builtin/clean.c:914 builtin/describe.c:546 builtin/describe.c:548
-#: builtin/grep.c:899 builtin/log.c:176 builtin/log.c:178
-#: builtin/ls-files.c:557 builtin/name-rev.c:413 builtin/name-rev.c:415
+#: builtin/clean.c:915 builtin/describe.c:548 builtin/describe.c:550
+#: builtin/grep.c:901 builtin/log.c:176 builtin/log.c:178
+#: builtin/ls-files.c:557 builtin/name-rev.c:417 builtin/name-rev.c:419
#: builtin/show-ref.c:179
msgid "pattern"
msgstr "模å¼"
-#: builtin/clean.c:915
+#: builtin/clean.c:916
msgid "add <pattern> to ignore rules"
msgstr "添加 <模å¼> 到忽略规则"
-#: builtin/clean.c:916
+#: builtin/clean.c:917
msgid "remove ignored files, too"
msgstr "也删除忽略的文件"
-#: builtin/clean.c:918
+#: builtin/clean.c:919
msgid "remove only ignored files"
msgstr "åªåˆ é™¤å¿½ç•¥çš„文件"
-#: builtin/clean.c:936
+#: builtin/clean.c:937
msgid "-x and -X cannot be used together"
msgstr "-x å’Œ -X ä¸èƒ½åŒæ—¶ä½¿ç”¨"
-#: builtin/clean.c:940
+#: builtin/clean.c:941
msgid ""
"clean.requireForce set to true and neither -i, -n, nor -f given; refusing to "
"clean"
msgstr ""
"clean.requireForce 设置为 true 且未æä¾› -iã€-n 或 -f 选项,拒ç»æ‰§è¡Œæ¸…ç†åŠ¨ä½œ"
-#: builtin/clean.c:943
+#: builtin/clean.c:944
msgid ""
"clean.requireForce defaults to true and neither -i, -n, nor -f given; "
"refusing to clean"
msgstr ""
"clean.requireForce 默认为 true 且未æä¾› -iã€-n 或 -f 选项,拒ç»æ‰§è¡Œæ¸…ç†åŠ¨ä½œ"
-#: builtin/clone.c:46
+#: builtin/clone.c:45
msgid "git clone [<options>] [--] <repo> [<dir>]"
msgstr "git clone [<选项>] [--] <仓库> [<路径>]"
-#: builtin/clone.c:93
+#: builtin/clone.c:92
msgid "don't create a checkout"
msgstr "ä¸åˆ›å»ºä¸€ä¸ªæ£€å‡º"
-#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:489
+#: builtin/clone.c:93 builtin/clone.c:95 builtin/init-db.c:489
msgid "create a bare repository"
msgstr "创建一个纯仓库"
-#: builtin/clone.c:98
+#: builtin/clone.c:97
msgid "create a mirror repository (implies bare)"
msgstr "创建一个镜åƒä»“库(也是纯仓库)"
-#: builtin/clone.c:100
+#: builtin/clone.c:99
msgid "to clone from a local repository"
msgstr "从本地仓库克隆"
-#: builtin/clone.c:102
+#: builtin/clone.c:101
msgid "don't use local hardlinks, always copy"
msgstr "ä¸ä½¿ç”¨æœ¬åœ°ç¡¬é“¾æŽ¥ï¼Œå§‹ç»ˆå¤åˆ¶"
-#: builtin/clone.c:104
+#: builtin/clone.c:103
msgid "setup as shared repository"
msgstr "设置为共享仓库"
-#: builtin/clone.c:107
+#: builtin/clone.c:106
msgid "pathspec"
msgstr "路径规格"
-#: builtin/clone.c:107
+#: builtin/clone.c:106
msgid "initialize submodules in the clone"
msgstr "在克隆时åˆå§‹åŒ–å­æ¨¡ç»„"
-#: builtin/clone.c:110
+#: builtin/clone.c:109
msgid "number of submodules cloned in parallel"
msgstr "并å‘克隆的å­æ¨¡ç»„çš„æ•°é‡"
-#: builtin/clone.c:111 builtin/init-db.c:486
+#: builtin/clone.c:110 builtin/init-db.c:486
msgid "template-directory"
msgstr "模æ¿ç›®å½•"
-#: builtin/clone.c:112 builtin/init-db.c:487
+#: builtin/clone.c:111 builtin/init-db.c:487
msgid "directory from which templates will be used"
msgstr "模æ¿ç›®å½•å°†è¢«ä½¿ç”¨"
-#: builtin/clone.c:114 builtin/clone.c:116 builtin/submodule--helper.c:1380
+#: builtin/clone.c:113 builtin/clone.c:115 builtin/submodule--helper.c:1380
#: builtin/submodule--helper.c:1860
msgid "reference repository"
msgstr "å‚考仓库"
-#: builtin/clone.c:118 builtin/submodule--helper.c:1382
+#: builtin/clone.c:117 builtin/submodule--helper.c:1382
#: builtin/submodule--helper.c:1862
msgid "use --reference only while cloning"
msgstr "仅在克隆时å‚考 --reference 指å‘的本地仓库"
-#: builtin/clone.c:119 builtin/column.c:27 builtin/merge-file.c:46
-#: builtin/pack-objects.c:3314 builtin/repack.c:319
+#: builtin/clone.c:118 builtin/column.c:27 builtin/merge-file.c:46
+#: builtin/pack-objects.c:3294 builtin/repack.c:320
msgid "name"
msgstr "å称"
-#: builtin/clone.c:120
+#: builtin/clone.c:119
msgid "use <name> instead of 'origin' to track upstream"
msgstr "使用 <å称> 而ä¸æ˜¯ 'origin' 去跟踪上游"
-#: builtin/clone.c:122
+#: builtin/clone.c:121
msgid "checkout <branch> instead of the remote's HEAD"
msgstr "检出 <分支> 而ä¸æ˜¯è¿œç¨‹ HEAD"
-#: builtin/clone.c:124
+#: builtin/clone.c:123
msgid "path to git-upload-pack on the remote"
msgstr "远程 git-upload-pack 路径"
-#: builtin/clone.c:125 builtin/fetch.c:152 builtin/grep.c:838
-#: builtin/pull.c:226
+#: builtin/clone.c:124 builtin/fetch.c:167 builtin/grep.c:840
+#: builtin/pull.c:227
msgid "depth"
msgstr "深度"
-#: builtin/clone.c:126
+#: builtin/clone.c:125
msgid "create a shallow clone of that depth"
msgstr "创建一个指定深度的浅克隆"
-#: builtin/clone.c:127 builtin/fetch.c:154 builtin/pack-objects.c:3303
+#: builtin/clone.c:126 builtin/fetch.c:169 builtin/pack-objects.c:3283
msgid "time"
msgstr "时间"
-#: builtin/clone.c:128
+#: builtin/clone.c:127
msgid "create a shallow clone since a specific time"
msgstr "从一个特定时间创建一个浅克隆"
-#: builtin/clone.c:129 builtin/fetch.c:156 builtin/fetch.c:179
-#: builtin/rebase.c:1395
+#: builtin/clone.c:128 builtin/fetch.c:171 builtin/fetch.c:194
+#: builtin/rebase.c:1417
msgid "revision"
msgstr "版本"
-#: builtin/clone.c:130 builtin/fetch.c:157
+#: builtin/clone.c:129 builtin/fetch.c:172
msgid "deepen history of shallow clone, excluding rev"
msgstr "深化浅克隆的历å²ï¼Œé™¤äº†ç‰¹å®šç‰ˆæœ¬"
-#: builtin/clone.c:132
+#: builtin/clone.c:131
msgid "clone only one branch, HEAD or --branch"
msgstr "åªå…‹éš†ä¸€ä¸ªåˆ†æ”¯ã€HEAD 或 --branch"
-#: builtin/clone.c:134
+#: builtin/clone.c:133
msgid "don't clone any tags, and make later fetches not to follow them"
msgstr "ä¸è¦å…‹éš†ä»»ä½•æ ‡ç­¾ï¼Œå¹¶ä¸”åŽç»­èŽ·å–æ“作也ä¸ä¸‹è½½å®ƒä»¬"
-#: builtin/clone.c:136
+#: builtin/clone.c:135
msgid "any cloned submodules will be shallow"
msgstr "å­æ¨¡ç»„将以浅下载模å¼å…‹éš†"
-#: builtin/clone.c:137 builtin/init-db.c:495
+#: builtin/clone.c:136 builtin/init-db.c:495
msgid "gitdir"
msgstr "git目录"
-#: builtin/clone.c:138 builtin/init-db.c:496
+#: builtin/clone.c:137 builtin/init-db.c:496
msgid "separate git dir from working tree"
msgstr "git目录和工作区分离"
-#: builtin/clone.c:139
+#: builtin/clone.c:138
msgid "key=value"
msgstr "key=value"
-#: builtin/clone.c:140
+#: builtin/clone.c:139
msgid "set config inside the new repository"
msgstr "在新仓库中设置é…置信æ¯"
-#: builtin/clone.c:142 builtin/fetch.c:174 builtin/ls-remote.c:76
-#: builtin/push.c:585 builtin/send-pack.c:172
+#: builtin/clone.c:141 builtin/fetch.c:189 builtin/ls-remote.c:76
+#: builtin/push.c:572 builtin/send-pack.c:172
msgid "server-specific"
msgstr "server-specific"
-#: builtin/clone.c:142 builtin/fetch.c:174 builtin/ls-remote.c:76
-#: builtin/push.c:585 builtin/send-pack.c:173
+#: builtin/clone.c:141 builtin/fetch.c:189 builtin/ls-remote.c:76
+#: builtin/push.c:572 builtin/send-pack.c:173
msgid "option to transmit"
msgstr "传输选项"
-#: builtin/clone.c:143 builtin/fetch.c:175 builtin/pull.c:239
-#: builtin/push.c:586
+#: builtin/clone.c:142 builtin/fetch.c:190 builtin/pull.c:240
+#: builtin/push.c:573
msgid "use IPv4 addresses only"
msgstr "åªä½¿ç”¨ IPv4 地å€"
-#: builtin/clone.c:145 builtin/fetch.c:177 builtin/pull.c:242
-#: builtin/push.c:588
+#: builtin/clone.c:144 builtin/fetch.c:192 builtin/pull.c:243
+#: builtin/push.c:575
msgid "use IPv6 addresses only"
msgstr "åªä½¿ç”¨ IPv6 地å€"
-#: builtin/clone.c:149
+#: builtin/clone.c:148
msgid "any cloned submodules will use their remote-tracking branch"
msgstr "任何克隆的å­æ¨¡ç»„将使用它们的远程跟踪分支"
-#: builtin/clone.c:285
+#: builtin/clone.c:284
msgid ""
"No directory name could be guessed.\n"
"Please specify a directory on the command line"
@@ -10960,47 +11000,42 @@ msgstr ""
"无法猜到目录å。\n"
"请在命令行指定一个目录"
-#: builtin/clone.c:338
+#: builtin/clone.c:337
#, c-format
msgid "info: Could not add alternate for '%s': %s\n"
msgstr "info: ä¸èƒ½ä¸º '%s' 添加一个备用:%s\n"
-#: builtin/clone.c:411
+#: builtin/clone.c:410
#, c-format
msgid "%s exists and is not a directory"
msgstr "%s 存在且ä¸æ˜¯ä¸€ä¸ªç›®å½•"
-#: builtin/clone.c:428
+#: builtin/clone.c:427
#, c-format
msgid "failed to start iterator over '%s'"
msgstr "无法在 '%s' 上å¯åŠ¨è¿­ä»£å™¨"
-#: builtin/clone.c:453
-#, c-format
-msgid "failed to unlink '%s'"
-msgstr "删除 '%s' 失败"
-
-#: builtin/clone.c:458
+#: builtin/clone.c:457
#, c-format
msgid "failed to create link '%s'"
msgstr "创建链接 '%s' 失败"
-#: builtin/clone.c:462
+#: builtin/clone.c:461
#, c-format
msgid "failed to copy file to '%s'"
msgstr "æ‹·è´æ–‡ä»¶è‡³ '%s' 失败"
-#: builtin/clone.c:467
+#: builtin/clone.c:466
#, c-format
msgid "failed to iterate over '%s'"
msgstr "无法在 '%s' 上迭代"
-#: builtin/clone.c:492
+#: builtin/clone.c:491
#, c-format
msgid "done.\n"
msgstr "完æˆã€‚\n"
-#: builtin/clone.c:506
+#: builtin/clone.c:505
msgid ""
"Clone succeeded, but checkout failed.\n"
"You can inspect what was checked out with 'git status'\n"
@@ -11010,130 +11045,130 @@ msgstr ""
"您å¯ä»¥é€šè¿‡ 'git status' 检查哪些已被检出,然åŽä½¿ç”¨å‘½ä»¤\n"
"'git restore --source=HEAD :/' é‡è¯•\n"
-#: builtin/clone.c:583
+#: builtin/clone.c:582
#, c-format
msgid "Could not find remote branch %s to clone."
msgstr "ä¸èƒ½å‘现è¦å…‹éš†çš„远程分支 %s。"
-#: builtin/clone.c:702
+#: builtin/clone.c:701
#, c-format
msgid "unable to update %s"
msgstr "ä¸èƒ½æ›´æ–° %s"
-#: builtin/clone.c:752
+#: builtin/clone.c:751
msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
msgstr "远程 HEAD 指å‘一个ä¸å­˜åœ¨çš„引用,无法检出。\n"
-#: builtin/clone.c:783
+#: builtin/clone.c:782
msgid "unable to checkout working tree"
msgstr "ä¸èƒ½æ£€å‡ºå·¥ä½œåŒº"
-#: builtin/clone.c:833
+#: builtin/clone.c:832
msgid "unable to write parameters to config file"
msgstr "无法将å‚数写入é…置文件"
-#: builtin/clone.c:896
+#: builtin/clone.c:895
msgid "cannot repack to clean up"
msgstr "无法执行 repack æ¥æ¸…ç†"
-#: builtin/clone.c:898
+#: builtin/clone.c:897
msgid "cannot unlink temporary alternates file"
msgstr "无法删除临时的 alternates 文件"
-#: builtin/clone.c:938 builtin/receive-pack.c:1950
+#: builtin/clone.c:937 builtin/receive-pack.c:1948
msgid "Too many arguments."
msgstr "太多å‚数。"
-#: builtin/clone.c:942
+#: builtin/clone.c:941
msgid "You must specify a repository to clone."
msgstr "您必须指定一个仓库æ¥å…‹éš†ã€‚"
-#: builtin/clone.c:955
+#: builtin/clone.c:954
#, c-format
msgid "--bare and --origin %s options are incompatible."
msgstr "--bare å’Œ --origin %s 选项ä¸å…¼å®¹ã€‚"
-#: builtin/clone.c:958
+#: builtin/clone.c:957
msgid "--bare and --separate-git-dir are incompatible."
msgstr "--bare å’Œ --separate-git-dir 选项ä¸å…¼å®¹ã€‚"
-#: builtin/clone.c:971
+#: builtin/clone.c:970
#, c-format
msgid "repository '%s' does not exist"
msgstr "仓库 '%s' ä¸å­˜åœ¨"
-#: builtin/clone.c:977 builtin/fetch.c:1660
+#: builtin/clone.c:976 builtin/fetch.c:1790
#, c-format
msgid "depth %s is not a positive number"
msgstr "深度 %s ä¸æ˜¯ä¸€ä¸ªæ­£æ•°"
-#: builtin/clone.c:987
+#: builtin/clone.c:986
#, c-format
msgid "destination path '%s' already exists and is not an empty directory."
msgstr "目标路径 '%s' å·²ç»å­˜åœ¨ï¼Œå¹¶ä¸”ä¸æ˜¯ä¸€ä¸ªç©ºç›®å½•ã€‚"
-#: builtin/clone.c:997
+#: builtin/clone.c:996
#, c-format
msgid "working tree '%s' already exists."
msgstr "工作区 '%s' å·²ç»å­˜åœ¨ã€‚"
-#: builtin/clone.c:1012 builtin/clone.c:1033 builtin/difftool.c:264
-#: builtin/worktree.c:303 builtin/worktree.c:335
+#: builtin/clone.c:1011 builtin/clone.c:1032 builtin/difftool.c:271
+#: builtin/log.c:1785 builtin/worktree.c:302 builtin/worktree.c:334
#, c-format
msgid "could not create leading directories of '%s'"
msgstr "ä¸èƒ½ä¸º '%s' 创建先导目录"
-#: builtin/clone.c:1017
+#: builtin/clone.c:1016
#, c-format
msgid "could not create work tree dir '%s'"
msgstr "ä¸èƒ½åˆ›å»ºå·¥ä½œåŒºç›®å½• '%s'"
-#: builtin/clone.c:1037
+#: builtin/clone.c:1036
#, c-format
msgid "Cloning into bare repository '%s'...\n"
msgstr "克隆到纯仓库 '%s'...\n"
-#: builtin/clone.c:1039
+#: builtin/clone.c:1038
#, c-format
msgid "Cloning into '%s'...\n"
msgstr "正克隆到 '%s'...\n"
-#: builtin/clone.c:1063
+#: builtin/clone.c:1062
msgid ""
"clone --recursive is not compatible with both --reference and --reference-if-"
"able"
msgstr "clone --recursive å’Œ --reference ä»¥åŠ --reference-if-able ä¸å…¼å®¹"
-#: builtin/clone.c:1124
+#: builtin/clone.c:1123
msgid "--depth is ignored in local clones; use file:// instead."
msgstr "--depth 在本地克隆时被忽略,请改用 file:// å议。"
-#: builtin/clone.c:1126
+#: builtin/clone.c:1125
msgid "--shallow-since is ignored in local clones; use file:// instead."
msgstr "--shallow-since 在本地克隆时被忽略,请改用 file:// å议。"
-#: builtin/clone.c:1128
+#: builtin/clone.c:1127
msgid "--shallow-exclude is ignored in local clones; use file:// instead."
msgstr "--shallow-exclude 在本地克隆时被忽略,请改用 file:// å议。"
-#: builtin/clone.c:1130
+#: builtin/clone.c:1129
msgid "--filter is ignored in local clones; use file:// instead."
msgstr "--filter 在本地克隆时被忽略,请改用 file:// å议。"
-#: builtin/clone.c:1133
+#: builtin/clone.c:1132
msgid "source repository is shallow, ignoring --local"
msgstr "æºä»“库是浅克隆,忽略 --local"
-#: builtin/clone.c:1138
+#: builtin/clone.c:1137
msgid "--local is ignored"
msgstr "--local 被忽略"
-#: builtin/clone.c:1215 builtin/clone.c:1223
+#: builtin/clone.c:1212 builtin/clone.c:1220
#, c-format
msgid "Remote branch %s not found in upstream %s"
msgstr "远程分支 %s 在上游 %s 未å‘现"
-#: builtin/clone.c:1226
+#: builtin/clone.c:1223
msgid "You appear to have cloned an empty repository."
msgstr "您似乎克隆了一个空仓库。"
@@ -11211,7 +11246,7 @@ msgid "id of a parent commit object"
msgstr "父æ交对象 ID"
#: builtin/commit-tree.c:114 builtin/commit.c:1500 builtin/merge.c:270
-#: builtin/notes.c:409 builtin/notes.c:575 builtin/stash.c:1460
+#: builtin/notes.c:409 builtin/notes.c:575 builtin/stash.c:1469
#: builtin/tag.c:412
msgid "message"
msgstr "说明"
@@ -11225,7 +11260,7 @@ msgid "read commit log message from file"
msgstr "从文件中读å–æ交说明"
#: builtin/commit-tree.c:121 builtin/commit.c:1512 builtin/merge.c:287
-#: builtin/pull.c:194 builtin/revert.c:118
+#: builtin/pull.c:195 builtin/revert.c:118
msgid "GPG sign commit"
msgstr "GPG æ交签å"
@@ -11546,8 +11581,8 @@ msgstr "计算完整的领先/è½åŽå€¼"
msgid "version"
msgstr "版本"
-#: builtin/commit.c:1347 builtin/commit.c:1529 builtin/push.c:561
-#: builtin/worktree.c:651
+#: builtin/commit.c:1347 builtin/commit.c:1529 builtin/push.c:548
+#: builtin/worktree.c:650
msgid "machine-readable output"
msgstr "机器å¯è¯»çš„输出"
@@ -11560,8 +11595,8 @@ msgid "terminate entries with NUL"
msgstr "æ¡ç›®ä»¥ NUL 字符结尾"
#: builtin/commit.c:1355 builtin/commit.c:1359 builtin/commit.c:1537
-#: builtin/fast-export.c:1125 builtin/fast-export.c:1128
-#: builtin/fast-export.c:1131 builtin/rebase.c:1471 parse-options.h:332
+#: builtin/fast-export.c:1153 builtin/fast-export.c:1156
+#: builtin/fast-export.c:1159 builtin/rebase.c:1495 parse-options.h:332
msgid "mode"
msgstr "模å¼"
@@ -11576,7 +11611,7 @@ msgid ""
msgstr ""
"显示已忽略的文件,å¯é€‰æ¨¡å¼ï¼štraditionalã€matchingã€no。(默认:traditional)"
-#: builtin/commit.c:1362 parse-options.h:179
+#: builtin/commit.c:1362 parse-options.h:188
msgid "when"
msgstr "何时"
@@ -11627,7 +11662,7 @@ msgstr "作者"
msgid "override author for commit"
msgstr "æ交时覆盖作者"
-#: builtin/commit.c:1499 builtin/gc.c:539
+#: builtin/commit.c:1499 builtin/gc.c:538
msgid "date"
msgstr "日期"
@@ -11660,8 +11695,8 @@ msgstr "使用 autosquash æ ¼å¼çš„æ交说明用以压缩至指定的æ交"
msgid "the commit is authored by me now (used with -C/-c/--amend)"
msgstr "现在将该æ交的作者改为我(和 -C/-c/--amend å‚数共用)"
-#: builtin/commit.c:1506 builtin/log.c:1564 builtin/merge.c:289
-#: builtin/pull.c:163 builtin/revert.c:110
+#: builtin/commit.c:1506 builtin/log.c:1565 builtin/merge.c:289
+#: builtin/pull.c:164 builtin/revert.c:110
msgid "add Signed-off-by:"
msgstr "添加 Signed-off-by: ç­¾å"
@@ -11767,64 +11802,69 @@ msgid "git commit-graph read [--object-dir <objdir>]"
msgstr "git commit-graph read [--object-dir <对象目录>]"
#: builtin/commit-graph.c:13 builtin/commit-graph.c:19
-msgid "git commit-graph verify [--object-dir <objdir>] [--shallow]"
-msgstr "git commit-graph verify [--object-dir <对象目录>] [--shallow]"
+msgid ""
+"git commit-graph verify [--object-dir <objdir>] [--shallow] [--[no-]progress]"
+msgstr ""
+"git commit-graph verify [--object-dir <对象目录>] [--shallow] [--"
+"[no-]progress]"
#: builtin/commit-graph.c:14 builtin/commit-graph.c:29
msgid ""
"git commit-graph write [--object-dir <objdir>] [--append|--split] [--"
-"reachable|--stdin-packs|--stdin-commits] <split options>"
-msgstr "git commit-graph write [--object-dir <对象目录>] [--append|--split] [--reachable|--stdin-packs|--stdin-commits] <split options>"
+"reachable|--stdin-packs|--stdin-commits] [--[no-]progress] <split options>"
+msgstr ""
+"git commit-graph write [--object-dir <对象目录>] [--append|--split] [--"
+"reachable|--stdin-packs|--stdin-commits] [--[no-]progress] <split options>"
-#: builtin/commit-graph.c:54 builtin/commit-graph.c:100
-#: builtin/commit-graph.c:161 builtin/commit-graph.c:237 builtin/fetch.c:163
-#: builtin/log.c:1584
+#: builtin/commit-graph.c:55 builtin/commit-graph.c:107
+#: builtin/commit-graph.c:170 builtin/commit-graph.c:254 builtin/fetch.c:178
+#: builtin/log.c:1585
msgid "dir"
msgstr "目录"
-#: builtin/commit-graph.c:55 builtin/commit-graph.c:101
-#: builtin/commit-graph.c:162 builtin/commit-graph.c:238
+#: builtin/commit-graph.c:56 builtin/commit-graph.c:108
+#: builtin/commit-graph.c:171 builtin/commit-graph.c:255
msgid "The object directory to store the graph"
msgstr "ä¿å­˜å›¾å½¢çš„对象目录"
-#: builtin/commit-graph.c:57
+#: builtin/commit-graph.c:58
msgid "if the commit-graph is split, only verify the tip file"
msgstr "如果æ交图形被拆分,åªéªŒè¯å¤´ä¸€ä¸ªæ–‡ä»¶"
-#: builtin/commit-graph.c:73 builtin/commit-graph.c:116
+#: builtin/commit-graph.c:80 builtin/commit-graph.c:125
#, c-format
msgid "Could not open commit-graph '%s'"
msgstr "无法打开æ交图形 '%s'"
-#: builtin/commit-graph.c:164
+#: builtin/commit-graph.c:173
msgid "start walk at all refs"
msgstr "开始é历所有引用"
-#: builtin/commit-graph.c:166
+#: builtin/commit-graph.c:175
msgid "scan pack-indexes listed by stdin for commits"
msgstr "从标准输入中的包索引文件列表中扫ææ交"
-#: builtin/commit-graph.c:168
+#: builtin/commit-graph.c:177
msgid "start walk at commits listed by stdin"
msgstr "从标准输入中的æ交开始扫æ"
-#: builtin/commit-graph.c:170
+#: builtin/commit-graph.c:179
msgid "include all commits already in the commit-graph file"
msgstr "åŒ…å« commit-graph 文件中已有所有æ交"
-#: builtin/commit-graph.c:172
+#: builtin/commit-graph.c:182
msgid "allow writing an incremental commit-graph file"
msgstr "å…许写一个增é‡æ交图形文件"
-#: builtin/commit-graph.c:174 builtin/commit-graph.c:178
+#: builtin/commit-graph.c:184 builtin/commit-graph.c:188
msgid "maximum number of commits in a non-base split commit-graph"
msgstr "在éžåŸºæœ¬æ‹†åˆ†æ交图形中的最大æ交数"
-#: builtin/commit-graph.c:176
+#: builtin/commit-graph.c:186
msgid "maximum ratio between two levels of a split commit-graph"
msgstr "一个拆分æ交图形的两个级别之间的最大比率"
-#: builtin/commit-graph.c:191
+#: builtin/commit-graph.c:204
msgid "use at most one of --reachable, --stdin-commits, or --stdin-packs"
msgstr "ä¸èƒ½åŒæ—¶ä½¿ç”¨ --reachableã€--stdin-commits 或 --stdin-packs"
@@ -12136,57 +12176,57 @@ msgstr "git count-objects [-v] [-H | --human-readable]"
msgid "print sizes in human readable format"
msgstr "以用户å¯è¯»çš„æ ¼å¼æ˜¾ç¤ºå¤§å°"
-#: builtin/describe.c:27
+#: builtin/describe.c:26
msgid "git describe [<options>] [<commit-ish>...]"
msgstr "git describe [<选项>] [<æ交å·>...]"
-#: builtin/describe.c:28
+#: builtin/describe.c:27
msgid "git describe [<options>] --dirty"
msgstr "git describe [<选项>] --dirty"
-#: builtin/describe.c:63
+#: builtin/describe.c:62
msgid "head"
msgstr "头"
-#: builtin/describe.c:63
+#: builtin/describe.c:62
msgid "lightweight"
msgstr "è½»é‡çº§çš„"
-#: builtin/describe.c:63
+#: builtin/describe.c:62
msgid "annotated"
msgstr "附注的"
-#: builtin/describe.c:273
+#: builtin/describe.c:275
#, c-format
msgid "annotated tag %s not available"
msgstr "附注标签 %s 无效"
-#: builtin/describe.c:277
+#: builtin/describe.c:279
#, c-format
msgid "annotated tag %s has no embedded name"
msgstr "附注标签 %s 没有嵌入å称"
-#: builtin/describe.c:279
+#: builtin/describe.c:281
#, c-format
msgid "tag '%s' is really '%s' here"
msgstr "标签 '%s' 的确是在 '%s'"
-#: builtin/describe.c:323
+#: builtin/describe.c:325
#, c-format
msgid "no tag exactly matches '%s'"
msgstr "æ²¡æœ‰æ ‡ç­¾å‡†ç¡®åŒ¹é… '%s'"
-#: builtin/describe.c:325
+#: builtin/describe.c:327
#, c-format
msgid "No exact match on refs or tags, searching to describe\n"
msgstr "没有精确匹é…到引用或标签,继续æœç´¢è¿›è¡Œæè¿°\n"
-#: builtin/describe.c:379
+#: builtin/describe.c:381
#, c-format
msgid "finished search at %s\n"
msgstr "完æˆæœç´¢ %s\n"
-#: builtin/describe.c:405
+#: builtin/describe.c:407
#, c-format
msgid ""
"No annotated tags can describe '%s'.\n"
@@ -12195,7 +12235,7 @@ msgstr ""
"没有附注标签能æè¿° '%s'。\n"
"然而,存在未附注标签:å°è¯• --tags。"
-#: builtin/describe.c:409
+#: builtin/describe.c:411
#, c-format
msgid ""
"No tags can describe '%s'.\n"
@@ -12204,12 +12244,12 @@ msgstr ""
"没有标签能æè¿° '%s'。\n"
"å°è¯• --always,或者创建一些标签。"
-#: builtin/describe.c:439
+#: builtin/describe.c:441
#, c-format
msgid "traversed %lu commits\n"
msgstr "å·²é历 %lu 个æ交\n"
-#: builtin/describe.c:442
+#: builtin/describe.c:444
#, c-format
msgid ""
"more than %i tags found; listed %i most recent\n"
@@ -12218,90 +12258,90 @@ msgstr ""
"å‘现多于 %i 个标签,列出最近的 %i 个\n"
"在 %s 放弃æœç´¢\n"
-#: builtin/describe.c:510
+#: builtin/describe.c:512
#, c-format
msgid "describe %s\n"
msgstr "æè¿° %s\n"
-#: builtin/describe.c:513
+#: builtin/describe.c:515
#, c-format
msgid "Not a valid object name %s"
msgstr "ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„对象å %s"
-#: builtin/describe.c:521
+#: builtin/describe.c:523
#, c-format
msgid "%s is neither a commit nor blob"
msgstr "%s æ—¢ä¸æ˜¯æ交也ä¸æ˜¯æ•°æ®å¯¹è±¡"
-#: builtin/describe.c:535
+#: builtin/describe.c:537
msgid "find the tag that comes after the commit"
msgstr "寻找该æ交之åŽçš„标签"
-#: builtin/describe.c:536
+#: builtin/describe.c:538
msgid "debug search strategy on stderr"
msgstr "在标准错误上调试æœç´¢ç­–ç•¥"
-#: builtin/describe.c:537
+#: builtin/describe.c:539
msgid "use any ref"
msgstr "使用任æ„引用"
-#: builtin/describe.c:538
+#: builtin/describe.c:540
msgid "use any tag, even unannotated"
msgstr "使用任æ„标签,å³ä½¿æœªé™„带注释"
-#: builtin/describe.c:539
+#: builtin/describe.c:541
msgid "always use long format"
msgstr "始终使用长æ交å·æ ¼å¼"
-#: builtin/describe.c:540
+#: builtin/describe.c:542
msgid "only follow first parent"
msgstr "åªè·Ÿéšç¬¬ä¸€ä¸ªçˆ¶æ交"
-#: builtin/describe.c:543
+#: builtin/describe.c:545
msgid "only output exact matches"
msgstr "åªè¾“出精确匹é…"
-#: builtin/describe.c:545
+#: builtin/describe.c:547
msgid "consider <n> most recent tags (default: 10)"
msgstr "考虑最近 <n> 个标签(默认:10)"
-#: builtin/describe.c:547
+#: builtin/describe.c:549
msgid "only consider tags matching <pattern>"
msgstr "åªè€ƒè™‘åŒ¹é… <模å¼> 的标签"
-#: builtin/describe.c:549
+#: builtin/describe.c:551
msgid "do not consider tags matching <pattern>"
msgstr "ä¸è€ƒè™‘åŒ¹é… <模å¼> 的标签"
-#: builtin/describe.c:551 builtin/name-rev.c:422
+#: builtin/describe.c:553 builtin/name-rev.c:426
msgid "show abbreviated commit object as fallback"
msgstr "显示简写的æ交å·ä½œä¸ºåŽå¤‡"
-#: builtin/describe.c:552 builtin/describe.c:555
+#: builtin/describe.c:554 builtin/describe.c:557
msgid "mark"
msgstr "标记"
-#: builtin/describe.c:553
+#: builtin/describe.c:555
msgid "append <mark> on dirty working tree (default: \"-dirty\")"
msgstr "对于è„工作区,追加 <标记>(默认:\"-dirty\")"
-#: builtin/describe.c:556
+#: builtin/describe.c:558
msgid "append <mark> on broken working tree (default: \"-broken\")"
msgstr "对于æŸå的工作区,追加 <标记>(默认:\"-broken\")"
-#: builtin/describe.c:574
+#: builtin/describe.c:576
msgid "--long is incompatible with --abbrev=0"
msgstr "--long 与 --abbrev=0 ä¸å…¼å®¹"
-#: builtin/describe.c:603
+#: builtin/describe.c:605
msgid "No names found, cannot describe anything."
msgstr "没有å‘现å称,无法æ述任何东西。"
-#: builtin/describe.c:654
+#: builtin/describe.c:656
msgid "--dirty is incompatible with commit-ishes"
msgstr "--dirty 与æ交å·ä¸å…¼å®¹"
-#: builtin/describe.c:656
+#: builtin/describe.c:658
msgid "--broken is incompatible with commit-ishes"
msgstr "--broken 与æ交å·ä¸å…¼å®¹"
@@ -12338,27 +12378,27 @@ msgstr "无法处ç†çš„对象 '%s'。"
msgid "git difftool [<options>] [<commit> [<commit>]] [--] [<path>...]"
msgstr "git difftool [<选项>] [<æ交> [<æ交>]] [--] [<路径>...]"
-#: builtin/difftool.c:253
+#: builtin/difftool.c:260
#, c-format
msgid "failed: %d"
msgstr "失败:%d"
-#: builtin/difftool.c:295
+#: builtin/difftool.c:302
#, c-format
msgid "could not read symlink %s"
msgstr "无法读å–符å·é“¾æŽ¥ %s"
-#: builtin/difftool.c:297
+#: builtin/difftool.c:304
#, c-format
msgid "could not read symlink file %s"
msgstr "无法读å–符å·é“¾æŽ¥æ–‡ä»¶ %s"
-#: builtin/difftool.c:305
+#: builtin/difftool.c:312
#, c-format
msgid "could not read object %s for symlink %s"
msgstr "无法读å–符å·é“¾æŽ¥ %2$s 指å‘的对象 %1$s"
-#: builtin/difftool.c:406
+#: builtin/difftool.c:413
msgid ""
"combined diff formats('-c' and '--cc') are not supported in\n"
"directory diff mode('-d' and '--dir-diff')."
@@ -12366,83 +12406,83 @@ msgstr ""
"ä¸æ”¯æŒåœ¨ç›®å½•æ¯”较模å¼ï¼ˆ'-d' å’Œ '--dir-diff')中采用组åˆå·®å¼‚æ ¼å¼ï¼ˆ'-c' å’Œ '--"
"cc')。"
-#: builtin/difftool.c:626
+#: builtin/difftool.c:634
#, c-format
msgid "both files modified: '%s' and '%s'."
msgstr "两个文件都被修改:'%s' 和 '%s'。"
-#: builtin/difftool.c:628
+#: builtin/difftool.c:636
msgid "working tree file has been left."
msgstr "工作区文件被留了下æ¥ã€‚"
-#: builtin/difftool.c:639
+#: builtin/difftool.c:647
#, c-format
msgid "temporary files exist in '%s'."
msgstr "临时文件存在于 '%s'。"
-#: builtin/difftool.c:640
+#: builtin/difftool.c:648
msgid "you may want to cleanup or recover these."
msgstr "您å¯èƒ½æƒ³è¦æ¸…ç†æˆ–者æ¢å¤å®ƒä»¬ã€‚"
-#: builtin/difftool.c:689
+#: builtin/difftool.c:697
msgid "use `diff.guitool` instead of `diff.tool`"
msgstr "使用 `diff.guitool` 代替 `diff.tool`"
-#: builtin/difftool.c:691
+#: builtin/difftool.c:699
msgid "perform a full-directory diff"
msgstr "执行一个全目录差异比较"
-#: builtin/difftool.c:693
+#: builtin/difftool.c:701
msgid "do not prompt before launching a diff tool"
msgstr "å¯åŠ¨å·®å¼‚比较工具之å‰ä¸æ示"
-#: builtin/difftool.c:698
+#: builtin/difftool.c:706
msgid "use symlinks in dir-diff mode"
msgstr "在 dir-diff 模å¼ä¸­ä½¿ç”¨ç¬¦å·é“¾æŽ¥"
-#: builtin/difftool.c:699
+#: builtin/difftool.c:707
msgid "tool"
msgstr "工具"
-#: builtin/difftool.c:700
+#: builtin/difftool.c:708
msgid "use the specified diff tool"
msgstr "使用指定的差异比较工具"
-#: builtin/difftool.c:702
+#: builtin/difftool.c:710
msgid "print a list of diff tools that may be used with `--tool`"
msgstr "显示å¯ä»¥ç”¨åœ¨ `--tool` å‚æ•°åŽçš„差异工具列表"
-#: builtin/difftool.c:705
+#: builtin/difftool.c:713
msgid ""
"make 'git-difftool' exit when an invoked diff tool returns a non - zero exit "
"code"
msgstr "当执行 diff 工具返回éžé›¶é€€å‡ºç æ—¶ï¼Œä½¿ 'git-difftool' 退出"
-#: builtin/difftool.c:708
+#: builtin/difftool.c:716
msgid "specify a custom command for viewing diffs"
msgstr "指定一个用于查看差异的自定义命令"
-#: builtin/difftool.c:709
+#: builtin/difftool.c:717
msgid "passed to `diff`"
msgstr "传递给 `diff`"
-#: builtin/difftool.c:724
+#: builtin/difftool.c:732
msgid "difftool requires worktree or --no-index"
msgstr "difftool è¦æ±‚工作区或者 --no-index"
-#: builtin/difftool.c:731
+#: builtin/difftool.c:739
msgid "--dir-diff is incompatible with --no-index"
msgstr "--dir-diff å’Œ --no-index ä¸å…¼å®¹"
-#: builtin/difftool.c:734
+#: builtin/difftool.c:742
msgid "--gui, --tool and --extcmd are mutually exclusive"
msgstr "--guiã€--tool å’Œ --extcmd 互斥"
-#: builtin/difftool.c:742
+#: builtin/difftool.c:750
msgid "no <tool> given for --tool=<tool>"
msgstr "没有为 --tool=<工具> å‚æ•°æä¾› <工具>"
-#: builtin/difftool.c:749
+#: builtin/difftool.c:757
msgid "no <cmd> given for --extcmd=<cmd>"
msgstr "没有为 --extcmd=<命令> å‚æ•°æä¾› <命令>"
@@ -12478,245 +12518,269 @@ msgstr "选项 `--default' å’Œ `type=ulong` 期望一个无符å·é•¿æ•´åž‹ï¼Œä¸
msgid "git fast-export [rev-list-opts]"
msgstr "git fast-export [rev-list-opts]"
-#: builtin/fast-export.c:1124
+#: builtin/fast-export.c:852
+msgid "Error: Cannot export nested tags unless --mark-tags is specified."
+msgstr "错误:除éžæŒ‡å®š --mark-tags,å¦åˆ™æ— æ³•å¯¼å‡ºåµŒå¥—标签。"
+
+#: builtin/fast-export.c:1152
msgid "show progress after <n> objects"
msgstr "在 <n> 个对象之åŽæ˜¾ç¤ºè¿›åº¦"
-#: builtin/fast-export.c:1126
+#: builtin/fast-export.c:1154
msgid "select handling of signed tags"
msgstr "选择如何处ç†ç­¾å标签"
-#: builtin/fast-export.c:1129
+#: builtin/fast-export.c:1157
msgid "select handling of tags that tag filtered objects"
msgstr "选择当标签指å‘被过滤对象时该标签的处ç†æ–¹å¼"
-#: builtin/fast-export.c:1132
+#: builtin/fast-export.c:1160
msgid "select handling of commit messages in an alternate encoding"
msgstr "选择使用备用编ç å¤„ç†æ交说明"
-#: builtin/fast-export.c:1135
+#: builtin/fast-export.c:1163
msgid "Dump marks to this file"
msgstr "把标记存储到这个文件"
-#: builtin/fast-export.c:1137
+#: builtin/fast-export.c:1165
msgid "Import marks from this file"
msgstr "从这个文件导入标记"
-#: builtin/fast-export.c:1139
+#: builtin/fast-export.c:1169
+msgid "Import marks from this file if it exists"
+msgstr "从该文件导入标记(如果存在的è¯ï¼‰"
+
+#: builtin/fast-export.c:1171
msgid "Fake a tagger when tags lack one"
msgstr "当标签缺少标记者字段时,å‡è£…æ供一个"
-#: builtin/fast-export.c:1141
+#: builtin/fast-export.c:1173
msgid "Output full tree for each commit"
msgstr "æ¯æ¬¡æ交都输出整个树"
-#: builtin/fast-export.c:1143
+#: builtin/fast-export.c:1175
msgid "Use the done feature to terminate the stream"
msgstr "使用 done 功能æ¥ç»ˆæ­¢æµ"
-#: builtin/fast-export.c:1144
+#: builtin/fast-export.c:1176
msgid "Skip output of blob data"
msgstr "跳过数æ®å¯¹è±¡çš„输出"
-#: builtin/fast-export.c:1145 builtin/log.c:1632
+#: builtin/fast-export.c:1177 builtin/log.c:1633
msgid "refspec"
msgstr "引用规格"
-#: builtin/fast-export.c:1146
+#: builtin/fast-export.c:1178
msgid "Apply refspec to exported refs"
msgstr "对导出的引用应用引用规格"
-#: builtin/fast-export.c:1147
+#: builtin/fast-export.c:1179
msgid "anonymize output"
msgstr "匿å输出"
-#: builtin/fast-export.c:1149
+#: builtin/fast-export.c:1181
msgid "Reference parents which are not in fast-export stream by object id"
msgstr "引用父对象 ID ä¸åœ¨ fast-export æµä¸­"
-#: builtin/fast-export.c:1151
+#: builtin/fast-export.c:1183
msgid "Show original object ids of blobs/commits"
msgstr "显示数æ®å¯¹è±¡/æ交的原始对象 ID"
-#: builtin/fetch.c:30
+#: builtin/fast-export.c:1185
+msgid "Label tags with mark ids"
+msgstr "对带有标记 ID 的标签åšæ ‡è®°"
+
+#: builtin/fast-export.c:1220
+msgid "Cannot pass both --import-marks and --import-marks-if-exists"
+msgstr "ä¸èƒ½åŒæ—¶ä¼ é€’å‚æ•° --import-marks å’Œ --import-marks-if-exists"
+
+#: builtin/fetch.c:34
msgid "git fetch [<options>] [<repository> [<refspec>...]]"
msgstr "git fetch [<选项>] [<仓库> [<引用规格>...]]"
-#: builtin/fetch.c:31
+#: builtin/fetch.c:35
msgid "git fetch [<options>] <group>"
msgstr "git fetch [<选项>] <组>"
-#: builtin/fetch.c:32
+#: builtin/fetch.c:36
msgid "git fetch --multiple [<options>] [(<repository> | <group>)...]"
msgstr "git fetch --multiple [<选项>] [(<仓库> | <组>)...]"
-#: builtin/fetch.c:33
+#: builtin/fetch.c:37
msgid "git fetch --all [<options>]"
msgstr "git fetch --all [<选项>]"
-#: builtin/fetch.c:125 builtin/pull.c:203
+#: builtin/fetch.c:115
+msgid "fetch.parallel cannot be negative"
+msgstr "fetch.parallel ä¸èƒ½ä¸ºè´Ÿæ•°"
+
+#: builtin/fetch.c:138 builtin/pull.c:204
msgid "fetch from all remotes"
msgstr "从所有的远程抓å–"
-#: builtin/fetch.c:127 builtin/pull.c:206
+#: builtin/fetch.c:140 builtin/pull.c:248
+msgid "set upstream for git pull/fetch"
+msgstr "为 git pull/fetch 设置上游"
+
+#: builtin/fetch.c:142 builtin/pull.c:207
msgid "append to .git/FETCH_HEAD instead of overwriting"
msgstr "追加到 .git/FETCH_HEAD 而ä¸æ˜¯è¦†ç›–它"
-#: builtin/fetch.c:129 builtin/pull.c:209
+#: builtin/fetch.c:144 builtin/pull.c:210
msgid "path to upload pack on remote end"
msgstr "上传包到远程的路径"
-#: builtin/fetch.c:130
+#: builtin/fetch.c:145
msgid "force overwrite of local reference"
msgstr "强制覆盖本地引用"
-#: builtin/fetch.c:132
+#: builtin/fetch.c:147
msgid "fetch from multiple remotes"
msgstr "从多个远程抓å–"
-#: builtin/fetch.c:134 builtin/pull.c:213
+#: builtin/fetch.c:149 builtin/pull.c:214
msgid "fetch all tags and associated objects"
msgstr "抓å–所有的标签和关è”对象"
-#: builtin/fetch.c:136
+#: builtin/fetch.c:151
msgid "do not fetch all tags (--no-tags)"
msgstr "ä¸æŠ“å–任何标签(--no-tags)"
-#: builtin/fetch.c:138
+#: builtin/fetch.c:153
msgid "number of submodules fetched in parallel"
msgstr "å­æ¨¡ç»„获å–的并å‘æ•°"
-#: builtin/fetch.c:140 builtin/pull.c:216
+#: builtin/fetch.c:155 builtin/pull.c:217
msgid "prune remote-tracking branches no longer on remote"
msgstr "清除远程已ç»ä¸å­˜åœ¨çš„分支的跟踪分支"
-#: builtin/fetch.c:142
+#: builtin/fetch.c:157
msgid "prune local tags no longer on remote and clobber changed tags"
msgstr "清除远程ä¸å­˜åœ¨çš„本地标签,并且替æ¢å˜æ›´æ ‡ç­¾"
# 译者:å¯é€‰å€¼ï¼Œä¸èƒ½ç¿»è¯‘
-#: builtin/fetch.c:143 builtin/fetch.c:166 builtin/pull.c:140
+#: builtin/fetch.c:158 builtin/fetch.c:181 builtin/pull.c:141
msgid "on-demand"
msgstr "on-demand"
-#: builtin/fetch.c:144
+#: builtin/fetch.c:159
msgid "control recursive fetching of submodules"
msgstr "控制å­æ¨¡ç»„的递归抓å–"
-#: builtin/fetch.c:148 builtin/pull.c:224
+#: builtin/fetch.c:163 builtin/pull.c:225
msgid "keep downloaded pack"
msgstr "ä¿æŒä¸‹è½½åŒ…"
-#: builtin/fetch.c:150
+#: builtin/fetch.c:165
msgid "allow updating of HEAD ref"
msgstr "å…许更新 HEAD 引用"
-#: builtin/fetch.c:153 builtin/fetch.c:159 builtin/pull.c:227
+#: builtin/fetch.c:168 builtin/fetch.c:174 builtin/pull.c:228
msgid "deepen history of shallow clone"
msgstr "深化浅克隆的历å²"
-#: builtin/fetch.c:155
+#: builtin/fetch.c:170
msgid "deepen history of shallow repository based on time"
msgstr "基于时间æ¥æ·±åŒ–浅克隆的历å²"
-#: builtin/fetch.c:161 builtin/pull.c:230
+#: builtin/fetch.c:176 builtin/pull.c:231
msgid "convert to a complete repository"
msgstr "转æ¢ä¸ºä¸€ä¸ªå®Œæ•´çš„仓库"
-#: builtin/fetch.c:164
+#: builtin/fetch.c:179
msgid "prepend this to submodule path output"
msgstr "在å­æ¨¡ç»„路径输出的å‰é¢åŠ ä¸Šæ­¤ç›®å½•"
-#: builtin/fetch.c:167
+#: builtin/fetch.c:182
msgid ""
"default for recursive fetching of submodules (lower priority than config "
"files)"
msgstr "递归获å–å­æ¨¡ç»„的缺çœå€¼ï¼ˆæ¯”é…置文件优先级低)"
-#: builtin/fetch.c:171 builtin/pull.c:233
+#: builtin/fetch.c:186 builtin/pull.c:234
msgid "accept refs that update .git/shallow"
msgstr "接å—æ›´æ–° .git/shallow 的引用"
-#: builtin/fetch.c:172 builtin/pull.c:235
+#: builtin/fetch.c:187 builtin/pull.c:236
msgid "refmap"
msgstr "引用映射"
-#: builtin/fetch.c:173 builtin/pull.c:236
+#: builtin/fetch.c:188 builtin/pull.c:237
msgid "specify fetch refmap"
msgstr "指定获å–æ“作的引用映射"
-#: builtin/fetch.c:180
+#: builtin/fetch.c:195
msgid "report that we have only objects reachable from this object"
msgstr "报告我们åªæ‹¥æœ‰ä»Žè¯¥å¯¹è±¡å¼€å§‹å¯è¾¾çš„对象"
-#: builtin/fetch.c:183
+#: builtin/fetch.c:198
msgid "run 'gc --auto' after fetching"
msgstr "获å–åŽæ‰§è¡Œ 'gc --auto'"
-#: builtin/fetch.c:185 builtin/pull.c:245
+#: builtin/fetch.c:200 builtin/pull.c:246
msgid "check for forced-updates on all updated branches"
msgstr "在所有更新分支上检查强制更新"
-#: builtin/fetch.c:491
+#: builtin/fetch.c:510
msgid "Couldn't find remote ref HEAD"
msgstr "无法å‘现远程 HEAD 引用"
-#: builtin/fetch.c:630
+#: builtin/fetch.c:650
#, c-format
msgid "configuration fetch.output contains invalid value %s"
msgstr "é…ç½®å˜é‡ fetch.output 包å«æ— æ•ˆå€¼ %s"
-#: builtin/fetch.c:728
+#: builtin/fetch.c:748
#, c-format
msgid "object %s not found"
msgstr "对象 %s 未å‘现"
-#: builtin/fetch.c:732
+#: builtin/fetch.c:752
msgid "[up to date]"
msgstr "[最新]"
-#: builtin/fetch.c:745 builtin/fetch.c:761 builtin/fetch.c:833
+#: builtin/fetch.c:765 builtin/fetch.c:781 builtin/fetch.c:853
msgid "[rejected]"
msgstr "[已拒ç»]"
-#: builtin/fetch.c:746
+#: builtin/fetch.c:766
msgid "can't fetch in current branch"
msgstr "当å‰åˆ†æ”¯ä¸‹ä¸èƒ½æ‰§è¡ŒèŽ·å–æ“作"
-#: builtin/fetch.c:756
+#: builtin/fetch.c:776
msgid "[tag update]"
msgstr "[标签更新]"
-#: builtin/fetch.c:757 builtin/fetch.c:794 builtin/fetch.c:816
-#: builtin/fetch.c:828
+#: builtin/fetch.c:777 builtin/fetch.c:814 builtin/fetch.c:836
+#: builtin/fetch.c:848
msgid "unable to update local ref"
msgstr "ä¸èƒ½æ›´æ–°æœ¬åœ°å¼•ç”¨"
-#: builtin/fetch.c:761
+#: builtin/fetch.c:781
msgid "would clobber existing tag"
msgstr "会破å现有的标签"
-#: builtin/fetch.c:783
+#: builtin/fetch.c:803
msgid "[new tag]"
msgstr "[新标签]"
-#: builtin/fetch.c:786
+#: builtin/fetch.c:806
msgid "[new branch]"
msgstr "[新分支]"
-#: builtin/fetch.c:789
+#: builtin/fetch.c:809
msgid "[new ref]"
msgstr "[新引用]"
-#: builtin/fetch.c:828
+#: builtin/fetch.c:848
msgid "forced update"
msgstr "强制更新"
-#: builtin/fetch.c:833
+#: builtin/fetch.c:853
msgid "non-fast-forward"
msgstr "éžå¿«è¿›"
-#: builtin/fetch.c:854
+#: builtin/fetch.c:874
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"
@@ -12726,7 +12790,7 @@ msgstr ""
"è¦é‡æ–°å¯ç”¨ï¼Œè¯·ä½¿ç”¨ '--show-forced-updates' 选项或è¿è¡Œ\n"
"'git config fetch.showForcedUpdates true'。"
-#: builtin/fetch.c:858
+#: builtin/fetch.c:878
#, c-format
msgid ""
"It took %.2f seconds to check forced updates. You can use\n"
@@ -12737,22 +12801,22 @@ msgstr ""
"花了 %.2f 秒æ¥æ£€æŸ¥å¼ºåˆ¶æ›´æ–°ã€‚您å¯ä»¥ä½¿ç”¨ '--no-show-forced-updates'\n"
"或è¿è¡Œ 'git config fetch.showForcedUpdates false' 以é¿å…此项检查。\n"
-#: builtin/fetch.c:888
+#: builtin/fetch.c:908
#, c-format
msgid "%s did not send all necessary objects\n"
msgstr "%s 未å‘é€æ‰€æœ‰å¿…需的对象\n"
-#: builtin/fetch.c:909
+#: builtin/fetch.c:929
#, c-format
msgid "reject %s because shallow roots are not allowed to be updated"
msgstr "æ‹’ç» %s 因为浅克隆ä¸å…许被更新"
-#: builtin/fetch.c:1000 builtin/fetch.c:1131
+#: builtin/fetch.c:1020 builtin/fetch.c:1157
#, c-format
msgid "From %.*s\n"
msgstr "æ¥è‡ª %.*s\n"
-#: builtin/fetch.c:1011
+#: builtin/fetch.c:1031
#, c-format
msgid ""
"some local refs could not be updated; try running\n"
@@ -12762,100 +12826,123 @@ msgstr ""
" 'git remote prune %s' æ¥åˆ é™¤æ—§çš„ã€æœ‰å†²çªçš„分支"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: builtin/fetch.c:1101
+#: builtin/fetch.c:1127
#, c-format
msgid " (%s will become dangling)"
msgstr " (%s å°†æˆä¸ºæ‚¬ç©ºçŠ¶æ€ï¼‰"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: builtin/fetch.c:1102
+#: builtin/fetch.c:1128
#, c-format
msgid " (%s has become dangling)"
msgstr " (%s å·²æˆä¸ºæ‚¬ç©ºçŠ¶æ€ï¼‰"
-#: builtin/fetch.c:1134
+#: builtin/fetch.c:1160
msgid "[deleted]"
msgstr "[已删除]"
-#: builtin/fetch.c:1135 builtin/remote.c:1036
+#: builtin/fetch.c:1161 builtin/remote.c:1036
msgid "(none)"
msgstr "(无)"
-#: builtin/fetch.c:1158
+#: builtin/fetch.c:1184
#, c-format
msgid "Refusing to fetch into current branch %s of non-bare repository"
msgstr "æ‹’ç»èŽ·å–到éžçº¯ä»“库的当å‰åˆ†æ”¯ %s"
-#: builtin/fetch.c:1177
+#: builtin/fetch.c:1203
#, c-format
msgid "Option \"%s\" value \"%s\" is not valid for %s"
msgstr "选项 \"%s\" 的值 \"%s\" 对于 %s 是无效的"
-#: builtin/fetch.c:1180
+#: builtin/fetch.c:1206
#, c-format
msgid "Option \"%s\" is ignored for %s\n"
msgstr "选项 \"%s\" 为 %s 所忽略\n"
-#: builtin/fetch.c:1484
+#: builtin/fetch.c:1414
+msgid "multiple branch detected, incompatible with --set-upstream"
+msgstr "检测到多分支,和 --set-upstream ä¸å…¼å®¹"
+
+#: builtin/fetch.c:1429
+msgid "not setting upstream for a remote remote-tracking branch"
+msgstr "没有为一个远程跟踪分支设置上游"
+
+#: builtin/fetch.c:1431
+msgid "not setting upstream for a remote tag"
+msgstr "没有为一个远程标签设置上游"
+
+#: builtin/fetch.c:1433
+msgid "unknown branch type"
+msgstr "未知的分支类型"
+
+#: builtin/fetch.c:1435
+msgid ""
+"no source branch found.\n"
+"you need to specify exactly one branch with the --set-upstream option."
+msgstr ""
+"未å‘现æºåˆ†æ”¯ã€‚\n"
+"您需è¦ä½¿ç”¨ --set-upstream 选项指定一个分支。"
+
+#: builtin/fetch.c:1561 builtin/fetch.c:1623
#, c-format
msgid "Fetching %s\n"
msgstr "æ­£åœ¨èŽ·å– %s\n"
-#: builtin/fetch.c:1486 builtin/remote.c:100
+#: builtin/fetch.c:1571 builtin/fetch.c:1625 builtin/remote.c:100
#, c-format
msgid "Could not fetch %s"
msgstr "ä¸èƒ½èŽ·å– %s"
-#: builtin/fetch.c:1532
-msgid ""
-"--filter can only be used with the remote configured in extensions."
-"partialClone"
-msgstr "åªå¯ä»¥å°† --filter 用于在 extensions.partialClone 中é…置的远程仓库"
+#: builtin/fetch.c:1583
+#, c-format
+msgid "could not fetch '%s' (exit code: %d)\n"
+msgstr "æ— æ³•èŽ·å– '%s'(退出ç ï¼š%d)\n"
-#: builtin/fetch.c:1556
+#: builtin/fetch.c:1685
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:1593
+#: builtin/fetch.c:1722
msgid "You need to specify a tag name."
msgstr "您需è¦æŒ‡å®šä¸€ä¸ªæ ‡ç­¾å称。"
-#: builtin/fetch.c:1644
+#: builtin/fetch.c:1774
msgid "Negative depth in --deepen is not supported"
msgstr "--deepen ä¸æ”¯æŒè´Ÿæ•°æ·±åº¦"
-#: builtin/fetch.c:1646
+#: builtin/fetch.c:1776
msgid "--deepen and --depth are mutually exclusive"
msgstr "--deepen 和 --depth 是互斥的"
-#: builtin/fetch.c:1651
+#: builtin/fetch.c:1781
msgid "--depth and --unshallow cannot be used together"
msgstr "--depth å’Œ --unshallow ä¸èƒ½åŒæ—¶ä½¿ç”¨"
-#: builtin/fetch.c:1653
+#: builtin/fetch.c:1783
msgid "--unshallow on a complete repository does not make sense"
msgstr "对于一个完整的仓库,å‚æ•° --unshallow 没有æ„义"
-#: builtin/fetch.c:1669
+#: builtin/fetch.c:1799
msgid "fetch --all does not take a repository argument"
msgstr "fetch --all ä¸èƒ½å¸¦ä¸€ä¸ªä»“库å‚æ•°"
-#: builtin/fetch.c:1671
+#: builtin/fetch.c:1801
msgid "fetch --all does not make sense with refspecs"
msgstr "fetch --all 带引用规格没有任何æ„义"
-#: builtin/fetch.c:1680
+#: builtin/fetch.c:1810
#, c-format
msgid "No such remote or remote group: %s"
msgstr "没有这样的远程或远程组:%s"
-#: builtin/fetch.c:1687
+#: builtin/fetch.c:1817
msgid "Fetching a group and specifying refspecs does not make sense"
msgstr "获å–组并指定引用规格没有æ„义"
-#: builtin/fetch.c:1703
+#: builtin/fetch.c:1835
msgid ""
"--filter can only be used with the remote configured in extensions."
"partialclone"
@@ -13189,7 +13276,7 @@ msgstr "%s:对象缺失"
msgid "invalid parameter: expected sha1, got '%s'"
msgstr "无效的å‚数:期望 sha1,得到 '%s'"
-#: builtin/gc.c:34
+#: builtin/gc.c:35
msgid "git gc [<options>]"
msgstr "git gc [<选项>]"
@@ -13203,17 +13290,17 @@ msgstr "对 %s 调用 fstat 失败:%s"
msgid "failed to parse '%s' value '%s'"
msgstr "æ— æ³•è§£æž '%s' 值 '%s'"
-#: builtin/gc.c:476 builtin/init-db.c:55
+#: builtin/gc.c:475 builtin/init-db.c:55
#, c-format
msgid "cannot stat '%s'"
msgstr "ä¸èƒ½å¯¹ '%s' 调用 stat"
-#: builtin/gc.c:485 builtin/notes.c:240 builtin/tag.c:529
+#: builtin/gc.c:484 builtin/notes.c:240 builtin/tag.c:529
#, c-format
msgid "cannot read '%s'"
msgstr "ä¸èƒ½è¯»å– '%s'"
-#: builtin/gc.c:492
+#: builtin/gc.c:491
#, c-format
msgid ""
"The last gc run reported the following. Please correct the root cause\n"
@@ -13227,59 +13314,59 @@ msgstr ""
"\n"
"%s"
-#: builtin/gc.c:540
+#: builtin/gc.c:539
msgid "prune unreferenced objects"
msgstr "清除未引用的对象"
-#: builtin/gc.c:542
+#: builtin/gc.c:541
msgid "be more thorough (increased runtime)"
msgstr "更彻底(增加è¿è¡Œæ—¶é—´ï¼‰"
-#: builtin/gc.c:543
+#: builtin/gc.c:542
msgid "enable auto-gc mode"
msgstr "å¯ç”¨è‡ªåŠ¨åžƒåœ¾å›žæ”¶æ¨¡å¼"
-#: builtin/gc.c:546
+#: builtin/gc.c:545
msgid "force running gc even if there may be another gc running"
msgstr "强制执行 gc å³ä½¿å¦å¤–一个 gc 正在执行"
-#: builtin/gc.c:549
+#: builtin/gc.c:548
msgid "repack all other packs except the largest pack"
msgstr "除了最大的包之外,对所有其它包文件é‡æ–°æ‰“包"
-#: builtin/gc.c:566
+#: builtin/gc.c:565
#, c-format
msgid "failed to parse gc.logexpiry value %s"
msgstr "è§£æž gc.logexpiry 的值 %s 失败"
-#: builtin/gc.c:577
+#: builtin/gc.c:576
#, c-format
msgid "failed to parse prune expiry value %s"
msgstr "解æžæ¸…除期é™å€¼ %s 失败"
-#: builtin/gc.c:597
+#: builtin/gc.c:596
#, c-format
msgid "Auto packing the repository in background for optimum performance.\n"
msgstr "自动在åŽå°æ‰§è¡Œä»“库打包以求最佳性能。\n"
-#: builtin/gc.c:599
+#: builtin/gc.c:598
#, c-format
msgid "Auto packing the repository for optimum performance.\n"
msgstr "自动打包仓库以求最佳性能。\n"
-#: builtin/gc.c:600
+#: builtin/gc.c:599
#, c-format
msgid "See \"git help gc\" for manual housekeeping.\n"
msgstr "手工维护å‚è§ \"git help gc\"。\n"
-#: builtin/gc.c:640
+#: builtin/gc.c:639
#, c-format
msgid ""
"gc is already running on machine '%s' pid %<PRIuMAX> (use --force if not)"
msgstr ""
"å·²ç»æœ‰ä¸€ä¸ª gc æ­£è¿è¡Œåœ¨æœºå™¨ '%s' pid %<PRIuMAX>(如果ä¸æ˜¯ï¼Œä½¿ç”¨ --force)"
-#: builtin/gc.c:695
+#: builtin/gc.c:694
msgid ""
"There are too many unreachable loose objects; run 'git prune' to remove them."
msgstr "有太多ä¸å¯è¾¾çš„æ¾æ•£å¯¹è±¡ï¼Œè¿è¡Œ 'git prune' 删除它们。"
@@ -13303,258 +13390,258 @@ msgstr "为 %2$s 设定的线程数 (%1$d) 无效"
#. grep.threads
#.
#: builtin/grep.c:287 builtin/index-pack.c:1534 builtin/index-pack.c:1727
-#: builtin/pack-objects.c:2728
+#: builtin/pack-objects.c:2708
#, c-format
msgid "no threads support, ignoring %s"
msgstr "没有线程支æŒï¼Œå¿½ç•¥ %s"
-#: builtin/grep.c:467 builtin/grep.c:591 builtin/grep.c:633
+#: builtin/grep.c:467 builtin/grep.c:592 builtin/grep.c:635
#, c-format
msgid "unable to read tree (%s)"
msgstr "无法读å–树(%s)"
-#: builtin/grep.c:648
+#: builtin/grep.c:650
#, c-format
msgid "unable to grep from object of type %s"
msgstr "无法抓å–æ¥è‡ªäºŽ %s 类型的对象"
-#: builtin/grep.c:714
+#: builtin/grep.c:716
#, c-format
msgid "switch `%c' expects a numerical value"
msgstr "开关 `%c' 期望一个数字值"
-#: builtin/grep.c:813
+#: builtin/grep.c:815
msgid "search in index instead of in the work tree"
msgstr "在索引区æœç´¢è€Œä¸æ˜¯åœ¨å·¥ä½œåŒº"
-#: builtin/grep.c:815
+#: builtin/grep.c:817
msgid "find in contents not managed by git"
msgstr "在未被 git 管ç†çš„内容中查找"
# 译者:中文字符串拼接,å¯åˆ é™¤å‰å¯¼ç©ºæ ¼
-#: builtin/grep.c:817
+#: builtin/grep.c:819
msgid "search in both tracked and untracked files"
msgstr "在跟踪和未跟踪的文件中æœç´¢"
-#: builtin/grep.c:819
+#: builtin/grep.c:821
msgid "ignore files specified via '.gitignore'"
msgstr "忽略 '.gitignore' 包å«çš„文件"
-#: builtin/grep.c:821
+#: builtin/grep.c:823
msgid "recursively search in each submodule"
msgstr "在æ¯ä¸€ä¸ªå­æ¨¡ç»„中递归æœç´¢"
-#: builtin/grep.c:824
+#: builtin/grep.c:826
msgid "show non-matching lines"
msgstr "显示未匹é…çš„è¡Œ"
-#: builtin/grep.c:826
+#: builtin/grep.c:828
msgid "case insensitive matching"
msgstr "ä¸åŒºåˆ†å¤§å°å†™åŒ¹é…"
-#: builtin/grep.c:828
+#: builtin/grep.c:830
msgid "match patterns only at word boundaries"
msgstr "åªåœ¨å•è¯è¾¹ç•ŒåŒ¹é…模å¼"
-#: builtin/grep.c:830
+#: builtin/grep.c:832
msgid "process binary files as text"
msgstr "把二进制文件当åšæ–‡æœ¬å¤„ç†"
-#: builtin/grep.c:832
+#: builtin/grep.c:834
msgid "don't match patterns in binary files"
msgstr "ä¸åœ¨äºŒè¿›åˆ¶æ–‡ä»¶ä¸­åŒ¹é…模å¼"
-#: builtin/grep.c:835
+#: builtin/grep.c:837
msgid "process binary files with textconv filters"
msgstr "用 textconv 过滤器处ç†äºŒè¿›åˆ¶æ–‡ä»¶"
-#: builtin/grep.c:837
+#: builtin/grep.c:839
msgid "search in subdirectories (default)"
msgstr "在å­ç›®å½•ä¸­å¯»æ‰¾ï¼ˆé»˜è®¤ï¼‰"
-#: builtin/grep.c:839
+#: builtin/grep.c:841
msgid "descend at most <depth> levels"
msgstr "最多以指定的深度å‘下寻找"
-#: builtin/grep.c:843
+#: builtin/grep.c:845
msgid "use extended POSIX regular expressions"
msgstr "使用扩展的 POSIX 正则表达å¼"
-#: builtin/grep.c:846
+#: builtin/grep.c:848
msgid "use basic POSIX regular expressions (default)"
msgstr "使用基本的 POSIX 正则表达å¼ï¼ˆé»˜è®¤ï¼‰"
-#: builtin/grep.c:849
+#: builtin/grep.c:851
msgid "interpret patterns as fixed strings"
msgstr "把模å¼è§£æžä¸ºå›ºå®šçš„字符串"
-#: builtin/grep.c:852
+#: builtin/grep.c:854
msgid "use Perl-compatible regular expressions"
msgstr "使用 Perl 兼容的正则表达å¼"
-#: builtin/grep.c:855
+#: builtin/grep.c:857
msgid "show line numbers"
msgstr "显示行å·"
-#: builtin/grep.c:856
+#: builtin/grep.c:858
msgid "show column number of first match"
msgstr "显示第一个匹é…的列å·"
-#: builtin/grep.c:857
+#: builtin/grep.c:859
msgid "don't show filenames"
msgstr "ä¸æ˜¾ç¤ºæ–‡ä»¶å"
-#: builtin/grep.c:858
+#: builtin/grep.c:860
msgid "show filenames"
msgstr "显示文件å"
-#: builtin/grep.c:860
+#: builtin/grep.c:862
msgid "show filenames relative to top directory"
msgstr "显示相对于顶级目录的文件å"
-#: builtin/grep.c:862
+#: builtin/grep.c:864
msgid "show only filenames instead of matching lines"
msgstr "åªæ˜¾ç¤ºæ–‡ä»¶å而ä¸æ˜¾ç¤ºåŒ¹é…çš„è¡Œ"
-#: builtin/grep.c:864
+#: builtin/grep.c:866
msgid "synonym for --files-with-matches"
msgstr "å’Œ --files-with-matches åŒä¹‰"
-#: builtin/grep.c:867
+#: builtin/grep.c:869
msgid "show only the names of files without match"
msgstr "åªæ˜¾ç¤ºæœªåŒ¹é…的文件å"
-#: builtin/grep.c:869
+#: builtin/grep.c:871
msgid "print NUL after filenames"
msgstr "在文件ååŽè¾“出 NUL 字符"
-#: builtin/grep.c:872
+#: builtin/grep.c:874
msgid "show only matching parts of a line"
msgstr "åªæ˜¾ç¤ºè¡Œä¸­çš„匹é…的部分"
-#: builtin/grep.c:874
+#: builtin/grep.c:876
msgid "show the number of matches instead of matching lines"
msgstr "显示总匹é…行数,而ä¸æ˜¾ç¤ºåŒ¹é…çš„è¡Œ"
-#: builtin/grep.c:875
+#: builtin/grep.c:877
msgid "highlight matches"
msgstr "高亮显示匹é…项"
-#: builtin/grep.c:877
+#: builtin/grep.c:879
msgid "print empty line between matches from different files"
msgstr "在ä¸åŒæ–‡ä»¶çš„匹é…项之间打å°ç©ºè¡Œ"
-#: builtin/grep.c:879
+#: builtin/grep.c:881
msgid "show filename only once above matches from same file"
msgstr "åªåœ¨åŒä¸€æ–‡ä»¶çš„匹é…项的上é¢æ˜¾ç¤ºä¸€æ¬¡æ–‡ä»¶å"
-#: builtin/grep.c:882
+#: builtin/grep.c:884
msgid "show <n> context lines before and after matches"
msgstr "显示匹é…项å‰åŽçš„ <n> 行上下文"
-#: builtin/grep.c:885
+#: builtin/grep.c:887
msgid "show <n> context lines before matches"
msgstr "显示匹é…é¡¹å‰ <n> 行上下文"
-#: builtin/grep.c:887
+#: builtin/grep.c:889
msgid "show <n> context lines after matches"
msgstr "显示匹é…é¡¹åŽ <n> 行上下文"
-#: builtin/grep.c:889
+#: builtin/grep.c:891
msgid "use <n> worker threads"
msgstr "使用 <n> 个工作线程"
-#: builtin/grep.c:890
+#: builtin/grep.c:892
msgid "shortcut for -C NUM"
msgstr "å¿«æ·é”® -C æ•°å­—"
-#: builtin/grep.c:893
+#: builtin/grep.c:895
msgid "show a line with the function name before matches"
msgstr "在匹é…çš„å‰é¢æ˜¾ç¤ºä¸€è¡Œå‡½æ•°å"
-#: builtin/grep.c:895
+#: builtin/grep.c:897
msgid "show the surrounding function"
msgstr "显示所在函数的å‰åŽå†…容"
-#: builtin/grep.c:898
+#: builtin/grep.c:900
msgid "read patterns from file"
msgstr "从文件读å–模å¼"
-#: builtin/grep.c:900
+#: builtin/grep.c:902
msgid "match <pattern>"
msgstr "åŒ¹é… <模å¼>"
-#: builtin/grep.c:902
+#: builtin/grep.c:904
msgid "combine patterns specified with -e"
msgstr "组åˆç”¨ -e å‚数设定的模å¼"
-#: builtin/grep.c:914
+#: builtin/grep.c:916
msgid "indicate hit with exit status without output"
msgstr "ä¸è¾“出,而用退出ç æ ‡è¯†å‘½ä¸­çŠ¶æ€"
-#: builtin/grep.c:916
+#: builtin/grep.c:918
msgid "show only matches from files that match all patterns"
msgstr "åªæ˜¾ç¤ºåŒ¹é…所有模å¼çš„文件中的匹é…"
-#: builtin/grep.c:918
+#: builtin/grep.c:920
msgid "show parse tree for grep expression"
msgstr "显示 grep 表达å¼çš„解æžæ ‘"
-#: builtin/grep.c:922
+#: builtin/grep.c:924
msgid "pager"
msgstr "分页"
-#: builtin/grep.c:922
+#: builtin/grep.c:924
msgid "show matching files in the pager"
msgstr "分页显示匹é…的文件"
-#: builtin/grep.c:926
+#: builtin/grep.c:928
msgid "allow calling of grep(1) (ignored by this build)"
msgstr "å…许调用 grep(1)(本次构建忽略)"
-#: builtin/grep.c:990
+#: builtin/grep.c:992
msgid "no pattern given"
msgstr "未æ供匹é…模å¼"
-#: builtin/grep.c:1026
+#: builtin/grep.c:1028
msgid "--no-index or --untracked cannot be used with revs"
msgstr "--no-index 或 --untracked ä¸èƒ½å’Œç‰ˆæœ¬åŒæ—¶ä½¿ç”¨"
-#: builtin/grep.c:1034
+#: builtin/grep.c:1036
#, c-format
msgid "unable to resolve revision: %s"
msgstr "ä¸èƒ½è§£æžç‰ˆæœ¬ï¼š%s"
-#: builtin/grep.c:1065
+#: builtin/grep.c:1067
msgid "invalid option combination, ignoring --threads"
msgstr "无效的选项组åˆï¼Œå¿½ç•¥ --threads"
-#: builtin/grep.c:1068 builtin/pack-objects.c:3416
+#: builtin/grep.c:1070 builtin/pack-objects.c:3400
msgid "no threads support, ignoring --threads"
msgstr "没有线程支æŒï¼Œå¿½ç•¥ --threads"
-#: builtin/grep.c:1071 builtin/index-pack.c:1531 builtin/pack-objects.c:2725
+#: builtin/grep.c:1073 builtin/index-pack.c:1531 builtin/pack-objects.c:2705
#, c-format
msgid "invalid number of threads specified (%d)"
msgstr "指定的线程数无效(%d)"
-#: builtin/grep.c:1094
+#: builtin/grep.c:1096
msgid "--open-files-in-pager only works on the worktree"
msgstr "--open-files-in-pager 仅用于工作区"
-#: builtin/grep.c:1117
+#: builtin/grep.c:1119
msgid "option not supported with --recurse-submodules"
msgstr "选项ä¸æ”¯æŒå’Œ --recurse-submodules 共用"
-#: builtin/grep.c:1123
+#: builtin/grep.c:1125
msgid "--cached or --untracked cannot be used with --no-index"
msgstr "--cached 或 --untracked ä¸èƒ½ä¸Ž --no-index åŒæ—¶ä½¿ç”¨"
-#: builtin/grep.c:1129
+#: builtin/grep.c:1131
msgid "--[no-]exclude-standard cannot be used for tracked contents"
msgstr "--[no-]exclude-standard ä¸èƒ½ç”¨äºŽå·²è·Ÿè¸ªå†…容"
-#: builtin/grep.c:1137
+#: builtin/grep.c:1139
msgid "both --cached and trees are given"
msgstr "åŒæ—¶ç»™å‡ºäº† --cached 和树对象"
@@ -13866,7 +13953,7 @@ msgstr "parse_pack_objects() 中é‡åˆ°ä¸å¯ç†å–»çš„问题"
msgid "Resolving deltas"
msgstr "å¤„ç† delta 中"
-#: builtin/index-pack.c:1205 builtin/pack-objects.c:2497
+#: builtin/index-pack.c:1205 builtin/pack-objects.c:2481
#, c-format
msgid "unable to create thread: %s"
msgstr "ä¸èƒ½åˆ›å»ºçº¿ç¨‹ï¼š%s"
@@ -13931,7 +14018,7 @@ msgstr "无法存储包文件"
msgid "cannot store index file"
msgstr "无法存储索引文件"
-#: builtin/index-pack.c:1525 builtin/pack-objects.c:2736
+#: builtin/index-pack.c:1525 builtin/pack-objects.c:2716
#, c-format
msgid "bad pack.indexversion=%<PRIu32>"
msgstr "åçš„ pack.indexversion=%<PRIu32>"
@@ -14210,74 +14297,74 @@ msgstr "最终输出:%d %s\n"
msgid "git show %s: bad file"
msgstr "git show %s: æŸå的文件"
-#: builtin/log.c:549 builtin/log.c:643
+#: builtin/log.c:549 builtin/log.c:644
#, c-format
msgid "could not read object %s"
msgstr "ä¸èƒ½è¯»å–对象 %s"
-#: builtin/log.c:668
+#: builtin/log.c:669
#, c-format
msgid "unknown type: %d"
msgstr "未知类型:%d"
-#: builtin/log.c:791
+#: builtin/log.c:792
msgid "format.headers without value"
msgstr "format.headers 没有值"
-#: builtin/log.c:908
+#: builtin/log.c:909
msgid "name of output directory is too long"
msgstr "输出目录å太长"
-#: builtin/log.c:924
+#: builtin/log.c:925
#, c-format
msgid "cannot open patch file %s"
msgstr "无法打开补ä¸æ–‡ä»¶ %s"
-#: builtin/log.c:941
+#: builtin/log.c:942
msgid "need exactly one range"
msgstr "åªéœ€è¦ä¸€ä¸ªèŒƒå›´"
-#: builtin/log.c:951
+#: builtin/log.c:952
msgid "not a range"
msgstr "ä¸æ˜¯ä¸€ä¸ªèŒƒå›´"
-#: builtin/log.c:1074
+#: builtin/log.c:1075
msgid "cover letter needs email format"
msgstr "附函需è¦é‚®ä»¶åœ°å€æ ¼å¼"
-#: builtin/log.c:1080
+#: builtin/log.c:1081
msgid "failed to create cover-letter file"
msgstr "无法创建附函文件"
-#: builtin/log.c:1159
+#: builtin/log.c:1160
#, c-format
msgid "insane in-reply-to: %s"
msgstr "ä¸æ­£å¸¸çš„ in-reply-to:%s"
-#: builtin/log.c:1186
+#: builtin/log.c:1187
msgid "git format-patch [<options>] [<since> | <revision-range>]"
msgstr "git format-patch [<选项>] [<从> | <版本范围>]"
-#: builtin/log.c:1244
+#: builtin/log.c:1245
msgid "two output directories?"
msgstr "两个输出目录?"
-#: builtin/log.c:1355 builtin/log.c:2099 builtin/log.c:2101 builtin/log.c:2113
+#: builtin/log.c:1356 builtin/log.c:2116 builtin/log.c:2118 builtin/log.c:2130
#, c-format
msgid "unknown commit %s"
msgstr "未知æ交 %s"
-#: builtin/log.c:1365 builtin/replace.c:58 builtin/replace.c:207
+#: builtin/log.c:1366 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:1370
+#: builtin/log.c:1371
msgid "could not find exact merge base"
msgstr "ä¸èƒ½æ‰¾åˆ°å‡†ç¡®çš„åˆå¹¶åŸºçº¿"
-#: builtin/log.c:1374
+#: builtin/log.c:1375
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"
@@ -14287,267 +14374,267 @@ msgstr ""
"git branch --set-upstream-to æ¥è·Ÿè¸ªä¸€ä¸ªè¿œç¨‹åˆ†æ”¯ã€‚或者你å¯ä»¥é€šè¿‡\n"
"å‚æ•° --base=<基线æ交> 手动指定一个基线æ交"
-#: builtin/log.c:1394
+#: builtin/log.c:1395
msgid "failed to find exact merge base"
msgstr "无法找到准确的åˆå¹¶åŸºçº¿"
-#: builtin/log.c:1405
+#: builtin/log.c:1406
msgid "base commit should be the ancestor of revision list"
msgstr "基线æ交应该是版本列表的祖先"
-#: builtin/log.c:1409
+#: builtin/log.c:1410
msgid "base commit shouldn't be in revision list"
msgstr "基线æ交ä¸åº”该出现在版本列表中"
-#: builtin/log.c:1462
+#: builtin/log.c:1463
msgid "cannot get patch id"
msgstr "æ— æ³•å¾—åˆ°è¡¥ä¸ id"
-#: builtin/log.c:1514
+#: builtin/log.c:1515
msgid "failed to infer range-diff ranges"
msgstr "无法推断 range-diff 范围"
-#: builtin/log.c:1559
+#: builtin/log.c:1560
msgid "use [PATCH n/m] even with a single patch"
msgstr "使用 [PATCH n/m],å³ä½¿åªæœ‰ä¸€ä¸ªè¡¥ä¸"
-#: builtin/log.c:1562
+#: builtin/log.c:1563
msgid "use [PATCH] even with multiple patches"
msgstr "使用 [PATCH],å³ä½¿æœ‰å¤šä¸ªè¡¥ä¸"
-#: builtin/log.c:1566
+#: builtin/log.c:1567
msgid "print patches to standard out"
msgstr "打å°è¡¥ä¸åˆ°æ ‡å‡†è¾“出"
-#: builtin/log.c:1568
+#: builtin/log.c:1569
msgid "generate a cover letter"
msgstr "生æˆä¸€å°é™„函"
-#: builtin/log.c:1570
+#: builtin/log.c:1571
msgid "use simple number sequence for output file names"
msgstr "使用简å•çš„æ•°å­—åºåˆ—作为输出文件å"
-#: builtin/log.c:1571
+#: builtin/log.c:1572
msgid "sfx"
msgstr "åŽç¼€"
-#: builtin/log.c:1572
+#: builtin/log.c:1573
msgid "use <sfx> instead of '.patch'"
msgstr "使用 <åŽç¼€> 代替 '.patch'"
-#: builtin/log.c:1574
+#: builtin/log.c:1575
msgid "start numbering patches at <n> instead of 1"
msgstr "è¡¥ä¸ä»¥ <n> 开始编å·ï¼Œè€Œä¸æ˜¯1"
-#: builtin/log.c:1576
+#: builtin/log.c:1577
msgid "mark the series as Nth re-roll"
msgstr "标记补ä¸ç³»åˆ—是第几次é‡åˆ¶"
-#: builtin/log.c:1578
+#: builtin/log.c:1579
msgid "Use [RFC PATCH] instead of [PATCH]"
msgstr "使用 [RFC PATCH] 代替 [PATCH]"
-#: builtin/log.c:1581
+#: builtin/log.c:1582
msgid "Use [<prefix>] instead of [PATCH]"
msgstr "使用 [<å‰ç¼€>] 代替 [PATCH]"
-#: builtin/log.c:1584
+#: builtin/log.c:1585
msgid "store resulting files in <dir>"
msgstr "把结果文件存储在 <目录>"
-#: builtin/log.c:1587
+#: builtin/log.c:1588
msgid "don't strip/add [PATCH]"
msgstr "ä¸åˆ é™¤/添加 [PATCH]"
-#: builtin/log.c:1590
+#: builtin/log.c:1591
msgid "don't output binary diffs"
msgstr "ä¸è¾“出二进制差异"
-#: builtin/log.c:1592
+#: builtin/log.c:1593
msgid "output all-zero hash in From header"
msgstr "在 From 头信æ¯ä¸­è¾“出全为零的哈希值"
-#: builtin/log.c:1594
+#: builtin/log.c:1595
msgid "don't include a patch matching a commit upstream"
msgstr "ä¸åŒ…å«å·²åœ¨ä¸Šæ¸¸æ交中的补ä¸"
-#: builtin/log.c:1596
+#: builtin/log.c:1597
msgid "show patch format instead of default (patch + stat)"
msgstr "显示纯补ä¸æ ¼å¼è€Œéžé»˜è®¤çš„(补ä¸+状æ€ï¼‰"
-#: builtin/log.c:1598
+#: builtin/log.c:1599
msgid "Messaging"
msgstr "邮件å‘é€"
-#: builtin/log.c:1599
+#: builtin/log.c:1600
msgid "header"
msgstr "header"
-#: builtin/log.c:1600
+#: builtin/log.c:1601
msgid "add email header"
msgstr "添加邮件头"
-#: builtin/log.c:1601 builtin/log.c:1603
+#: builtin/log.c:1602 builtin/log.c:1604
msgid "email"
msgstr "邮件地å€"
-#: builtin/log.c:1601
+#: builtin/log.c:1602
msgid "add To: header"
msgstr "添加收件人"
-#: builtin/log.c:1603
+#: builtin/log.c:1604
msgid "add Cc: header"
msgstr "添加抄é€"
-#: builtin/log.c:1605
+#: builtin/log.c:1606
msgid "ident"
msgstr "标识"
-#: builtin/log.c:1606
+#: builtin/log.c:1607
msgid "set From address to <ident> (or committer ident if absent)"
msgstr "å°† From 地å€è®¾ç½®ä¸º <标识>(如若ä¸æ供,则用æ交者 ID åšä¸ºåœ°å€ï¼‰"
-#: builtin/log.c:1608
+#: builtin/log.c:1609
msgid "message-id"
msgstr "邮件标识"
-#: builtin/log.c:1609
+#: builtin/log.c:1610
msgid "make first mail a reply to <message-id>"
msgstr "使第一å°é‚®ä»¶ä½œä¸ºå¯¹ <邮件标识> 的回å¤"
-#: builtin/log.c:1610 builtin/log.c:1613
+#: builtin/log.c:1611 builtin/log.c:1614
msgid "boundary"
msgstr "边界"
-#: builtin/log.c:1611
+#: builtin/log.c:1612
msgid "attach the patch"
msgstr "附件方å¼æ·»åŠ è¡¥ä¸"
-#: builtin/log.c:1614
+#: builtin/log.c:1615
msgid "inline the patch"
msgstr "内è”显示补ä¸"
-#: builtin/log.c:1618
+#: builtin/log.c:1619
msgid "enable message threading, styles: shallow, deep"
msgstr "å¯ç”¨é‚®ä»¶çº¿ç´¢ï¼Œé£Žæ ¼ï¼šæµ…,深"
-#: builtin/log.c:1620
+#: builtin/log.c:1621
msgid "signature"
msgstr "ç­¾å"
-#: builtin/log.c:1621
+#: builtin/log.c:1622
msgid "add a signature"
msgstr "添加一个签å"
-#: builtin/log.c:1622
+#: builtin/log.c:1623
msgid "base-commit"
msgstr "基线æ交"
-#: builtin/log.c:1623
+#: builtin/log.c:1624
msgid "add prerequisite tree info to the patch series"
msgstr "为补ä¸åˆ—表添加å‰ç½®æ ‘ä¿¡æ¯"
-#: builtin/log.c:1625
+#: builtin/log.c:1626
msgid "add a signature from a file"
msgstr "从文件添加一个签å"
-#: builtin/log.c:1626
+#: builtin/log.c:1627
msgid "don't print the patch filenames"
msgstr "ä¸è¦æ‰“å°è¡¥ä¸æ–‡ä»¶å"
-#: builtin/log.c:1628
+#: builtin/log.c:1629
msgid "show progress while generating patches"
msgstr "在生æˆè¡¥ä¸æ—¶æ˜¾ç¤ºè¿›åº¦"
-#: builtin/log.c:1630
+#: builtin/log.c:1631
msgid "show changes against <rev> in cover letter or single patch"
msgstr "在附函或å•ä¸ªè¡¥ä¸ä¸­æ˜¾ç¤ºå’Œ <rev> 的差异"
-#: builtin/log.c:1633
+#: builtin/log.c:1634
msgid "show changes against <refspec> in cover letter or single patch"
msgstr "在附函或å•ä¸ªè¡¥ä¸ä¸­æ˜¾ç¤ºå’Œ <refspec> 的差异"
-#: builtin/log.c:1635
+#: builtin/log.c:1636
msgid "percentage by which creation is weighted"
msgstr "创建æƒé‡çš„百分比"
-#: builtin/log.c:1710
+#: builtin/log.c:1711
#, c-format
msgid "invalid ident line: %s"
msgstr "包å«æ— æ•ˆçš„身份标识:%s"
-#: builtin/log.c:1725
+#: builtin/log.c:1726
msgid "-n and -k are mutually exclusive"
msgstr "-n 和 -k 互斥"
-#: builtin/log.c:1727
+#: builtin/log.c:1728
msgid "--subject-prefix/--rfc and -k are mutually exclusive"
msgstr "--subject-prefix/--rfc 和 -k 互斥"
-#: builtin/log.c:1735
+#: builtin/log.c:1736
msgid "--name-only does not make sense"
msgstr "--name-only æ— æ„义"
-#: builtin/log.c:1737
+#: builtin/log.c:1738
msgid "--name-status does not make sense"
msgstr "--name-status æ— æ„义"
-#: builtin/log.c:1739
+#: builtin/log.c:1740
msgid "--check does not make sense"
msgstr "--check æ— æ„义"
-#: builtin/log.c:1771
+#: builtin/log.c:1773
msgid "standard output, or directory, which one?"
msgstr "标准输出或目录,哪一个?"
-#: builtin/log.c:1860
+#: builtin/log.c:1877
msgid "--interdiff requires --cover-letter or single patch"
msgstr "--interdiff éœ€è¦ --cover-letter 或å•ä¸€è¡¥ä¸"
-#: builtin/log.c:1864
+#: builtin/log.c:1881
msgid "Interdiff:"
msgstr "版本间差异:"
-#: builtin/log.c:1865
+#: builtin/log.c:1882
#, c-format
msgid "Interdiff against v%d:"
msgstr "对 v%d 的版本差异:"
-#: builtin/log.c:1871
+#: builtin/log.c:1888
msgid "--creation-factor requires --range-diff"
msgstr "--creation-factor éœ€è¦ --range-diff"
-#: builtin/log.c:1875
+#: builtin/log.c:1892
msgid "--range-diff requires --cover-letter or single patch"
msgstr "--range-diff éœ€è¦ --cover-letter 或å•ä¸€è¡¥ä¸"
-#: builtin/log.c:1883
+#: builtin/log.c:1900
msgid "Range-diff:"
msgstr "范围差异:"
-#: builtin/log.c:1884
+#: builtin/log.c:1901
#, c-format
msgid "Range-diff against v%d:"
msgstr "对 v%d 的范围差异:"
-#: builtin/log.c:1895
+#: builtin/log.c:1912
#, c-format
msgid "unable to read signature file '%s'"
msgstr "无法读å–ç­¾å文件 '%s'"
-#: builtin/log.c:1931
+#: builtin/log.c:1948
msgid "Generating patches"
msgstr "生æˆè¡¥ä¸"
-#: builtin/log.c:1975
+#: builtin/log.c:1992
msgid "failed to create output files"
msgstr "无法创建输出文件"
-#: builtin/log.c:2034
+#: builtin/log.c:2051
msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
msgstr "git cherry [-v] [<上游> [<头> [<é™åˆ¶>]]]"
-#: builtin/log.c:2088
+#: builtin/log.c:2105
#, c-format
msgid ""
"Could not find a tracked remote branch, please specify <upstream> manually.\n"
@@ -14671,7 +14758,7 @@ msgstr ""
msgid "do not print remote URL"
msgstr "ä¸æ‰“å°è¿œç¨‹ URL"
-#: builtin/ls-remote.c:60 builtin/ls-remote.c:62 builtin/rebase.c:1464
+#: builtin/ls-remote.c:60 builtin/ls-remote.c:62 builtin/rebase.c:1488
msgid "exec"
msgstr "exec"
@@ -14780,31 +14867,31 @@ msgstr "å¯ç”¨çš„策略有:"
msgid "Available custom strategies are:"
msgstr "å¯ç”¨çš„自定义策略有:"
-#: builtin/merge.c:244 builtin/pull.c:151
+#: builtin/merge.c:244 builtin/pull.c:152
msgid "do not show a diffstat at the end of the merge"
msgstr "在åˆå¹¶çš„最åŽä¸æ˜¾ç¤ºå·®å¼‚统计"
-#: builtin/merge.c:247 builtin/pull.c:154
+#: builtin/merge.c:247 builtin/pull.c:155
msgid "show a diffstat at the end of the merge"
msgstr "在åˆå¹¶çš„最åŽæ˜¾ç¤ºå·®å¼‚统计"
-#: builtin/merge.c:248 builtin/pull.c:157
+#: builtin/merge.c:248 builtin/pull.c:158
msgid "(synonym to --stat)"
msgstr "(和 --stat åŒä¹‰ï¼‰"
-#: builtin/merge.c:250 builtin/pull.c:160
+#: builtin/merge.c:250 builtin/pull.c:161
msgid "add (at most <n>) entries from shortlog to merge commit message"
msgstr "在åˆå¹¶æ交信æ¯ä¸­æ·»åŠ ï¼ˆæœ€å¤š <n> æ¡ï¼‰ç²¾ç®€æ交记录"
-#: builtin/merge.c:253 builtin/pull.c:166
+#: builtin/merge.c:253 builtin/pull.c:167
msgid "create a single commit instead of doing a merge"
msgstr "创建一个å•ç‹¬çš„æ交而ä¸æ˜¯åšä¸€æ¬¡åˆå¹¶"
-#: builtin/merge.c:255 builtin/pull.c:169
+#: builtin/merge.c:255 builtin/pull.c:170
msgid "perform a commit if the merge succeeds (default)"
msgstr "如果åˆå¹¶æˆåŠŸï¼Œæ‰§è¡Œä¸€æ¬¡æ交(默认)"
-#: builtin/merge.c:257 builtin/pull.c:172
+#: builtin/merge.c:257 builtin/pull.c:173
msgid "edit message before committing"
msgstr "在æ交å‰ç¼–辑æ交说明"
@@ -14812,28 +14899,28 @@ msgstr "在æ交å‰ç¼–辑æ交说明"
msgid "allow fast-forward (default)"
msgstr "å…许快进(默认)"
-#: builtin/merge.c:261 builtin/pull.c:179
+#: builtin/merge.c:261 builtin/pull.c:180
msgid "abort if fast-forward is not possible"
msgstr "如果ä¸èƒ½å¿«è¿›å°±æ”¾å¼ƒåˆå¹¶"
-#: builtin/merge.c:265 builtin/pull.c:182
+#: builtin/merge.c:265 builtin/pull.c:183
msgid "verify that the named commit has a valid GPG signature"
msgstr "验è¯æŒ‡å®šçš„æ交是å¦åŒ…å«ä¸€ä¸ªæœ‰æ•ˆçš„ GPG ç­¾å"
-#: builtin/merge.c:266 builtin/notes.c:787 builtin/pull.c:186
-#: builtin/rebase.c:492 builtin/rebase.c:1477 builtin/revert.c:114
+#: builtin/merge.c:266 builtin/notes.c:787 builtin/pull.c:187
+#: builtin/rebase.c:493 builtin/rebase.c:1501 builtin/revert.c:114
msgid "strategy"
msgstr "ç­–ç•¥"
-#: builtin/merge.c:267 builtin/pull.c:187
+#: builtin/merge.c:267 builtin/pull.c:188
msgid "merge strategy to use"
msgstr "è¦ä½¿ç”¨çš„åˆå¹¶ç­–ç•¥"
-#: builtin/merge.c:268 builtin/pull.c:190
+#: builtin/merge.c:268 builtin/pull.c:191
msgid "option=value"
msgstr "option=value"
-#: builtin/merge.c:269 builtin/pull.c:191
+#: builtin/merge.c:269 builtin/pull.c:192
msgid "option for selected merge strategy"
msgstr "所选的åˆå¹¶ç­–略的选项"
@@ -14854,13 +14941,13 @@ msgstr "--abort,但是ä¿ç•™ç´¢å¼•å’Œå·¥ä½œåŒº"
msgid "continue the current in-progress merge"
msgstr "继续当å‰æ­£åœ¨è¿›è¡Œçš„åˆå¹¶"
-#: builtin/merge.c:284 builtin/pull.c:198
+#: builtin/merge.c:284 builtin/pull.c:199
msgid "allow merging unrelated histories"
msgstr "å…许åˆå¹¶ä¸ç›¸å…³çš„历å²"
#: builtin/merge.c:290
-msgid "verify commit-msg hook"
-msgstr "校验 commit-msg é’©å­"
+msgid "bypass pre-merge-commit and commit-msg hooks"
+msgstr "绕过 pre-merge-commit å’Œ commit-msg é’©å­"
#: builtin/merge.c:307
msgid "could not run stash."
@@ -14904,31 +14991,31 @@ msgstr "'%s' 没有指å‘一个æ交"
msgid "Bad branch.%s.mergeoptions string: %s"
msgstr "åçš„ branch.%s.mergeoptions 字符串:%s"
-#: builtin/merge.c:708
+#: builtin/merge.c:705
msgid "Not handling anything other than two heads merge."
msgstr "未处ç†ä¸¤ä¸ªå¤´åˆå¹¶ä¹‹å¤–的任何æ“作。"
-#: builtin/merge.c:722
+#: builtin/merge.c:719
#, c-format
msgid "Unknown option for merge-recursive: -X%s"
msgstr "merge-recursive 的未知选项:-X%s"
-#: builtin/merge.c:737
+#: builtin/merge.c:734
#, c-format
msgid "unable to write %s"
msgstr "ä¸èƒ½å†™ %s"
-#: builtin/merge.c:789
+#: builtin/merge.c:786
#, c-format
msgid "Could not read from '%s'"
msgstr "ä¸èƒ½ä»Ž '%s' 读å–"
-#: builtin/merge.c:798
+#: builtin/merge.c:795
#, c-format
msgid "Not committing merge; use 'git commit' to complete the merge.\n"
msgstr "未æ交åˆå¹¶ï¼Œä½¿ç”¨ 'git commit' 完æˆæ­¤æ¬¡åˆå¹¶ã€‚\n"
-#: builtin/merge.c:804
+#: builtin/merge.c:801
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"
@@ -14938,83 +15025,83 @@ msgstr ""
"åˆå¹¶åˆ°ä¸»é¢˜åˆ†æ”¯ã€‚\n"
"\n"
-#: builtin/merge.c:809
+#: builtin/merge.c:806
msgid "An empty message aborts the commit.\n"
msgstr "空的æ交说明会终止æ交。\n"
-#: builtin/merge.c:812
+#: builtin/merge.c:809
#, c-format
msgid ""
"Lines starting with '%c' will be ignored, and an empty message aborts\n"
"the commit.\n"
msgstr "以 '%c' 开始的行将被忽略,而空的æ交说明将终止æ交。\n"
-#: builtin/merge.c:853
+#: builtin/merge.c:862
msgid "Empty commit message."
msgstr "空æ交信æ¯ã€‚"
-#: builtin/merge.c:872
+#: builtin/merge.c:877
#, c-format
msgid "Wonderful.\n"
msgstr "太棒了。\n"
-#: builtin/merge.c:933
+#: builtin/merge.c:938
#, c-format
msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
msgstr "自动åˆå¹¶å¤±è´¥ï¼Œä¿®æ­£å†²çªç„¶åŽæ交修正的结果。\n"
-#: builtin/merge.c:972
+#: builtin/merge.c:977
msgid "No current branch."
msgstr "没有当å‰åˆ†æ”¯ã€‚"
-#: builtin/merge.c:974
+#: builtin/merge.c:979
msgid "No remote for the current branch."
msgstr "当å‰åˆ†æ”¯æ²¡æœ‰å¯¹åº”的远程仓库。"
-#: builtin/merge.c:976
+#: builtin/merge.c:981
msgid "No default upstream defined for the current branch."
msgstr "当å‰åˆ†æ”¯æ²¡æœ‰å®šä¹‰é»˜è®¤çš„上游分支。"
-#: builtin/merge.c:981
+#: builtin/merge.c:986
#, c-format
msgid "No remote-tracking branch for %s from %s"
msgstr "对于 %s 没有æ¥è‡ª %s 的远程跟踪分支"
-#: builtin/merge.c:1038
+#: builtin/merge.c:1043
#, c-format
msgid "Bad value '%s' in environment '%s'"
msgstr "环境 '%2$s' 中存在åçš„å–值 '%1$s'"
-#: builtin/merge.c:1141
+#: builtin/merge.c:1146
#, c-format
msgid "not something we can merge in %s: %s"
msgstr "ä¸èƒ½åœ¨ %s 中åˆå¹¶ï¼š%s"
-#: builtin/merge.c:1175
+#: builtin/merge.c:1180
msgid "not something we can merge"
msgstr "ä¸èƒ½åˆå¹¶"
-#: builtin/merge.c:1278
+#: builtin/merge.c:1283
msgid "--abort expects no arguments"
msgstr "--abort ä¸å¸¦å‚æ•°"
-#: builtin/merge.c:1282
+#: builtin/merge.c:1287
msgid "There is no merge to abort (MERGE_HEAD missing)."
msgstr "没有è¦ç»ˆæ­¢çš„åˆå¹¶ï¼ˆMERGE_HEAD 丢失)。"
-#: builtin/merge.c:1291
+#: builtin/merge.c:1296
msgid "--quit expects no arguments"
msgstr "--quit ä¸å¸¦å‚æ•°"
-#: builtin/merge.c:1304
+#: builtin/merge.c:1309
msgid "--continue expects no arguments"
msgstr "--continue ä¸å¸¦å‚æ•°"
-#: builtin/merge.c:1308
+#: builtin/merge.c:1313
msgid "There is no merge in progress (MERGE_HEAD missing)."
msgstr "没有进行中的åˆå¹¶ï¼ˆMERGE_HEAD 丢失)。"
-#: builtin/merge.c:1324
+#: builtin/merge.c:1329
msgid ""
"You have not concluded your merge (MERGE_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -15022,7 +15109,7 @@ msgstr ""
"您尚未结æŸæ‚¨çš„åˆå¹¶ï¼ˆå­˜åœ¨ MERGE_HEAD)。\n"
"请在åˆå¹¶å‰å…ˆæ交您的修改。"
-#: builtin/merge.c:1331
+#: builtin/merge.c:1336
msgid ""
"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -15030,96 +15117,96 @@ msgstr ""
"您尚未结æŸæ‚¨çš„拣选(存在 CHERRY_PICK_HEAD)。\n"
"请在åˆå¹¶å‰å…ˆæ交您的修改。"
-#: builtin/merge.c:1334
+#: builtin/merge.c:1339
msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
msgstr "您尚未结æŸæ‚¨çš„拣选(存在 CHERRY_PICK_HEAD)。"
-#: builtin/merge.c:1348
+#: builtin/merge.c:1353
msgid "You cannot combine --squash with --no-ff."
msgstr "您ä¸èƒ½å°† --squash å’Œ --no-ff 组åˆä½¿ç”¨ã€‚"
-#: builtin/merge.c:1350
+#: builtin/merge.c:1355
msgid "You cannot combine --squash with --commit."
msgstr "您ä¸èƒ½å°† --squash å’Œ --commit 组åˆä½¿ç”¨ã€‚"
-#: builtin/merge.c:1366
+#: builtin/merge.c:1371
msgid "No commit specified and merge.defaultToUpstream not set."
msgstr "未指定æ交并且 merge.defaultToUpstream 未设置。"
-#: builtin/merge.c:1383
+#: builtin/merge.c:1388
msgid "Squash commit into empty head not supported yet"
msgstr "å°šä¸æ”¯æŒåˆ°ç©ºåˆ†æ”¯çš„压缩æ交"
-#: builtin/merge.c:1385
+#: builtin/merge.c:1390
msgid "Non-fast-forward commit does not make sense into an empty head"
msgstr "到空分支的éžå¿«è¿›å¼æ交没有æ„义"
-#: builtin/merge.c:1390
+#: builtin/merge.c:1395
#, c-format
msgid "%s - not something we can merge"
msgstr "%s - ä¸èƒ½è¢«åˆå¹¶"
-#: builtin/merge.c:1392
+#: builtin/merge.c:1397
msgid "Can merge only exactly one commit into empty head"
msgstr "åªèƒ½å°†ä¸€ä¸ªæ交åˆå¹¶åˆ°ç©ºåˆ†æ”¯ä¸Š"
-#: builtin/merge.c:1471
+#: builtin/merge.c:1476
msgid "refusing to merge unrelated histories"
msgstr "æ‹’ç»åˆå¹¶æ— å…³çš„历å²"
-#: builtin/merge.c:1480
+#: builtin/merge.c:1485
msgid "Already up to date."
msgstr "å·²ç»æ˜¯æœ€æ–°çš„。"
-#: builtin/merge.c:1490
+#: builtin/merge.c:1495
#, c-format
msgid "Updating %s..%s\n"
msgstr "æ›´æ–° %s..%s\n"
-#: builtin/merge.c:1532
+#: builtin/merge.c:1537
#, c-format
msgid "Trying really trivial in-index merge...\n"
msgstr "å°è¯•éžå¸¸å°çš„索引内åˆå¹¶...\n"
-#: builtin/merge.c:1539
+#: builtin/merge.c:1544
#, c-format
msgid "Nope.\n"
msgstr "无。\n"
-#: builtin/merge.c:1564
+#: builtin/merge.c:1569
msgid "Already up to date. Yeeah!"
msgstr "å·²ç»æ˜¯æœ€æ–°çš„。耶ï¼"
-#: builtin/merge.c:1570
+#: builtin/merge.c:1575
msgid "Not possible to fast-forward, aborting."
msgstr "无法快进,终止。"
-#: builtin/merge.c:1593 builtin/merge.c:1658
+#: builtin/merge.c:1598 builtin/merge.c:1663
#, c-format
msgid "Rewinding the tree to pristine...\n"
msgstr "将树回滚至原始状æ€...\n"
-#: builtin/merge.c:1597
+#: builtin/merge.c:1602
#, c-format
msgid "Trying merge strategy %s...\n"
msgstr "å°è¯•åˆå¹¶ç­–ç•¥ %s...\n"
-#: builtin/merge.c:1649
+#: builtin/merge.c:1654
#, c-format
msgid "No merge strategy handled the merge.\n"
msgstr "没有åˆå¹¶ç­–略处ç†æ­¤åˆå¹¶ã€‚\n"
-#: builtin/merge.c:1651
+#: builtin/merge.c:1656
#, c-format
msgid "Merge with strategy %s failed.\n"
msgstr "使用策略 %s åˆå¹¶å¤±è´¥ã€‚\n"
-#: builtin/merge.c:1660
+#: builtin/merge.c:1665
#, c-format
msgid "Using the %s to prepare resolving by hand.\n"
msgstr "使用 %s 以准备手工解决。\n"
-#: builtin/merge.c:1672
+#: builtin/merge.c:1677
#, c-format
msgid "Automatic merge went well; stopped before committing as requested\n"
msgstr "自动åˆå¹¶è¿›å±•é¡ºåˆ©ï¼ŒæŒ‰è¦æ±‚在æ交å‰åœæ­¢\n"
@@ -15204,33 +15291,33 @@ msgstr "ä¸è¦è­¦å‘Šå†²çª"
msgid "set labels for file1/orig-file/file2"
msgstr "为 文件1/åˆå§‹æ–‡ä»¶/文件2 设置标签"
-#: builtin/merge-recursive.c:46
+#: builtin/merge-recursive.c:47
#, c-format
msgid "unknown option %s"
msgstr "未知选项 %s"
-#: builtin/merge-recursive.c:52
+#: builtin/merge-recursive.c:53
#, c-format
msgid "could not parse object '%s'"
msgstr "ä¸èƒ½è§£æžå¯¹è±¡ '%s'"
-#: builtin/merge-recursive.c:56
+#: builtin/merge-recursive.c:57
#, c-format
msgid "cannot handle more than %d base. Ignoring %s."
msgid_plural "cannot handle more than %d bases. Ignoring %s."
msgstr[0] "æ— æ³•å¤„ç† %d æ¡ä»¥ä¸Šçš„基线。忽略 %s。"
msgstr[1] "æ— æ³•å¤„ç† %d æ¡ä»¥ä¸Šçš„基线。忽略 %s。"
-#: builtin/merge-recursive.c:64
+#: builtin/merge-recursive.c:65
msgid "not handling anything other than two heads merge."
msgstr "ä¸èƒ½å¤„ç†ä¸¤ä¸ªå¤´åˆå¹¶ä¹‹å¤–的任何æ“作。"
-#: builtin/merge-recursive.c:70 builtin/merge-recursive.c:72
+#: builtin/merge-recursive.c:74 builtin/merge-recursive.c:76
#, c-format
msgid "could not resolve ref '%s'"
msgstr "无法解æžå¼•ç”¨ '%s'"
-#: builtin/merge-recursive.c:78
+#: builtin/merge-recursive.c:82
#, c-format
msgid "Merging %s with %s\n"
msgstr "åˆå¹¶ %s å’Œ %s\n"
@@ -15369,52 +15456,52 @@ msgstr "%s,æº=%s,目标=%s"
msgid "Renaming %s to %s\n"
msgstr "é‡å‘½å %s 至 %s\n"
-#: builtin/mv.c:277 builtin/remote.c:717 builtin/repack.c:510
+#: builtin/mv.c:277 builtin/remote.c:717 builtin/repack.c:511
#, c-format
msgid "renaming '%s' failed"
msgstr "é‡å‘½å '%s' 失败"
-#: builtin/name-rev.c:352
+#: builtin/name-rev.c:356
msgid "git name-rev [<options>] <commit>..."
msgstr "git name-rev [<选项>] <æ交>..."
-#: builtin/name-rev.c:353
+#: builtin/name-rev.c:357
msgid "git name-rev [<options>] --all"
msgstr "git name-rev [<选项>] --all"
-#: builtin/name-rev.c:354
+#: builtin/name-rev.c:358
msgid "git name-rev [<options>] --stdin"
msgstr "git name-rev [<选项>] --stdin"
-#: builtin/name-rev.c:411
+#: builtin/name-rev.c:415
msgid "print only names (no SHA-1)"
msgstr "åªæ‰“å°å称(无 SHA-1)"
-#: builtin/name-rev.c:412
+#: builtin/name-rev.c:416
msgid "only use tags to name the commits"
msgstr "åªä½¿ç”¨æ ‡ç­¾æ¥å‘½åæ交"
-#: builtin/name-rev.c:414
+#: builtin/name-rev.c:418
msgid "only use refs matching <pattern>"
msgstr "åªä½¿ç”¨å’Œ <模å¼> 相匹é…的引用"
-#: builtin/name-rev.c:416
+#: builtin/name-rev.c:420
msgid "ignore refs matching <pattern>"
msgstr "忽略和 <模å¼> 相匹é…的引用"
-#: builtin/name-rev.c:418
+#: builtin/name-rev.c:422
msgid "list all commits reachable from all refs"
msgstr "列出å¯ä»¥ä»Žæ‰€æœ‰å¼•ç”¨è®¿é—®çš„æ交"
-#: builtin/name-rev.c:419
+#: builtin/name-rev.c:423
msgid "read from stdin"
msgstr "从标准输入读å–"
-#: builtin/name-rev.c:420
+#: builtin/name-rev.c:424
msgid "allow to print `undefined` names (default)"
msgstr "å…è®¸æ‰“å° `未定义` çš„å称(默认)"
-#: builtin/name-rev.c:426
+#: builtin/name-rev.c:430
msgid "dereference tags in the input (internal use)"
msgstr "åå‘解æžè¾“入中的标签(内部使用)"
@@ -15801,7 +15888,7 @@ msgstr "å°è¯•åˆ é™¤ä¸å­˜åœ¨çš„注解ä¸æ˜¯ä¸€ä¸ªé”™è¯¯"
msgid "read object names from the standard input"
msgstr "从标准输入读å–对象å称"
-#: builtin/notes.c:954 builtin/prune.c:130 builtin/worktree.c:165
+#: builtin/notes.c:954 builtin/prune.c:130 builtin/worktree.c:164
msgid "do not remove, show only"
msgstr "ä¸åˆ é™¤ï¼Œåªæ˜¾ç¤º"
@@ -15817,7 +15904,7 @@ msgstr "注解引用"
msgid "use notes from <notes-ref>"
msgstr "从 <注解引用> 使用注解"
-#: builtin/notes.c:1034 builtin/stash.c:1598
+#: builtin/notes.c:1034 builtin/stash.c:1607
#, c-format
msgid "unknown subcommand: %s"
msgstr "未知å­å‘½ä»¤ï¼š%s"
@@ -15888,68 +15975,68 @@ msgstr "对 %s 调用 stat 失败"
msgid "wrote %<PRIu32> objects while expecting %<PRIu32>"
msgstr "写入 %<PRIu32> 个对象而预期 %<PRIu32> 个"
-#: builtin/pack-objects.c:1166
+#: builtin/pack-objects.c:1164
msgid "disabling bitmap writing, as some objects are not being packed"
msgstr "ç¦ç”¨ bitmap 写入,因为一些对象将ä¸ä¼šè¢«æ‰“包"
-#: builtin/pack-objects.c:1597
+#: builtin/pack-objects.c:1592
#, c-format
msgid "delta base offset overflow in pack for %s"
msgstr "%s 压缩中 delta 基准å移越界"
-#: builtin/pack-objects.c:1606
+#: builtin/pack-objects.c:1601
#, c-format
msgid "delta base offset out of bound for %s"
msgstr "%s çš„ delta 基准å移越界"
-#: builtin/pack-objects.c:1875
+#: builtin/pack-objects.c:1870
msgid "Counting objects"
msgstr "对象计数中"
-#: builtin/pack-objects.c:2005
+#: builtin/pack-objects.c:2000
#, c-format
msgid "unable to get size of %s"
msgstr "ä¸èƒ½å¾—到 %s 的大å°"
-#: builtin/pack-objects.c:2020
+#: builtin/pack-objects.c:2015
#, c-format
msgid "unable to parse object header of %s"
msgstr "无法解æžå¯¹è±¡ %s 头信æ¯"
-#: builtin/pack-objects.c:2090 builtin/pack-objects.c:2106
-#: builtin/pack-objects.c:2116
+#: builtin/pack-objects.c:2085 builtin/pack-objects.c:2101
+#: builtin/pack-objects.c:2111
#, c-format
msgid "object %s cannot be read"
msgstr "对象 %s 无法读å–"
-#: builtin/pack-objects.c:2093 builtin/pack-objects.c:2120
+#: builtin/pack-objects.c:2088 builtin/pack-objects.c:2115
#, c-format
msgid "object %s inconsistent object length (%<PRIuMAX> vs %<PRIuMAX>)"
msgstr "对象 %s ä¸ä¸€è‡´çš„对象长度(%<PRIuMAX> vs %<PRIuMAX>)"
-#: builtin/pack-objects.c:2130
+#: builtin/pack-objects.c:2125
msgid "suboptimal pack - out of memory"
msgstr "次优(suboptimal)打包 - 内存ä¸è¶³"
-#: builtin/pack-objects.c:2456
+#: builtin/pack-objects.c:2440
#, c-format
msgid "Delta compression using up to %d threads"
msgstr "使用 %d 个线程进行压缩"
-#: builtin/pack-objects.c:2588
+#: builtin/pack-objects.c:2572
#, c-format
msgid "unable to pack objects reachable from tag %s"
msgstr "无法为标签 %s 压缩对象"
-#: builtin/pack-objects.c:2675
+#: builtin/pack-objects.c:2659
msgid "Compressing objects"
msgstr "压缩对象中"
-#: builtin/pack-objects.c:2681
+#: builtin/pack-objects.c:2665
msgid "inconsistency with delta count"
msgstr "ä¸ä¸€è‡´çš„差异计数"
-#: builtin/pack-objects.c:2762
+#: builtin/pack-objects.c:2742
#, c-format
msgid ""
"expected edge object ID, got garbage:\n"
@@ -15958,7 +16045,7 @@ msgstr ""
"预期边界对象(edge object)ID,å´å¾—到垃圾数æ®ï¼š\n"
" %s"
-#: builtin/pack-objects.c:2768
+#: builtin/pack-objects.c:2748
#, c-format
msgid ""
"expected object ID, got garbage:\n"
@@ -15967,242 +16054,242 @@ msgstr ""
"预期对象 ID,å´å¾—到垃圾数æ®ï¼š\n"
" %s"
-#: builtin/pack-objects.c:2866
+#: builtin/pack-objects.c:2846
msgid "invalid value for --missing"
msgstr "选项 --missing 的值无效"
-#: builtin/pack-objects.c:2925 builtin/pack-objects.c:3033
+#: builtin/pack-objects.c:2905 builtin/pack-objects.c:3013
msgid "cannot open pack index"
msgstr "无法打开包文件索引"
-#: builtin/pack-objects.c:2956
+#: builtin/pack-objects.c:2936
#, c-format
msgid "loose object at %s could not be examined"
msgstr "无法检查 %s 处的æ¾æ•£å¯¹è±¡"
-#: builtin/pack-objects.c:3041
+#: builtin/pack-objects.c:3021
msgid "unable to force loose object"
msgstr "无法强制æ¾æ•£å¯¹è±¡"
-#: builtin/pack-objects.c:3133
+#: builtin/pack-objects.c:3113
#, c-format
msgid "not a rev '%s'"
msgstr "ä¸æ˜¯ä¸€ä¸ªç‰ˆæœ¬ '%s'"
-#: builtin/pack-objects.c:3136
+#: builtin/pack-objects.c:3116
#, c-format
msgid "bad revision '%s'"
msgstr "å的版本 '%s'"
-#: builtin/pack-objects.c:3161
+#: builtin/pack-objects.c:3141
msgid "unable to add recent objects"
msgstr "无法添加最近的对象"
-#: builtin/pack-objects.c:3214
+#: builtin/pack-objects.c:3194
#, c-format
msgid "unsupported index version %s"
msgstr "ä¸æ”¯æŒçš„索引版本 %s"
-#: builtin/pack-objects.c:3218
+#: builtin/pack-objects.c:3198
#, c-format
msgid "bad index version '%s'"
msgstr "å的索引版本 '%s'"
-#: builtin/pack-objects.c:3248
+#: builtin/pack-objects.c:3228
msgid "do not show progress meter"
msgstr "ä¸æ˜¾ç¤ºè¿›åº¦è¡¨"
-#: builtin/pack-objects.c:3250
+#: builtin/pack-objects.c:3230
msgid "show progress meter"
msgstr "显示进度表"
-#: builtin/pack-objects.c:3252
+#: builtin/pack-objects.c:3232
msgid "show progress meter during object writing phase"
msgstr "在对象写入阶段显示进度表"
-#: builtin/pack-objects.c:3255
+#: builtin/pack-objects.c:3235
msgid "similar to --all-progress when progress meter is shown"
msgstr "当进度表显示时类似于 --all-progress"
-#: builtin/pack-objects.c:3256
+#: builtin/pack-objects.c:3236
msgid "<version>[,<offset>]"
msgstr "<版本>[,<å移>]"
-#: builtin/pack-objects.c:3257
+#: builtin/pack-objects.c:3237
msgid "write the pack index file in the specified idx format version"
msgstr "用指定的 idx æ ¼å¼ç‰ˆæœ¬æ¥å†™åŒ…索引文件"
-#: builtin/pack-objects.c:3260
+#: builtin/pack-objects.c:3240
msgid "maximum size of each output pack file"
msgstr "æ¯ä¸ªè¾“出包的最大尺寸"
-#: builtin/pack-objects.c:3262
+#: builtin/pack-objects.c:3242
msgid "ignore borrowed objects from alternate object store"
msgstr "忽略从备用对象存储里借用对象"
-#: builtin/pack-objects.c:3264
+#: builtin/pack-objects.c:3244
msgid "ignore packed objects"
msgstr "忽略包对象"
-#: builtin/pack-objects.c:3266
+#: builtin/pack-objects.c:3246
msgid "limit pack window by objects"
msgstr "é™åˆ¶æ‰“包窗å£çš„对象数"
-#: builtin/pack-objects.c:3268
+#: builtin/pack-objects.c:3248
msgid "limit pack window by memory in addition to object limit"
msgstr "除对象数é‡é™åˆ¶å¤–设置打包窗å£çš„内存é™åˆ¶"
-#: builtin/pack-objects.c:3270
+#: builtin/pack-objects.c:3250
msgid "maximum length of delta chain allowed in the resulting pack"
msgstr "打包å…许的 delta 链的最大长度"
-#: builtin/pack-objects.c:3272
+#: builtin/pack-objects.c:3252
msgid "reuse existing deltas"
msgstr "é‡ç”¨å·²å­˜åœ¨çš„ deltas"
-#: builtin/pack-objects.c:3274
+#: builtin/pack-objects.c:3254
msgid "reuse existing objects"
msgstr "é‡ç”¨å·²å­˜åœ¨çš„对象"
-#: builtin/pack-objects.c:3276
+#: builtin/pack-objects.c:3256
msgid "use OFS_DELTA objects"
msgstr "使用 OFS_DELTA 对象"
-#: builtin/pack-objects.c:3278
+#: builtin/pack-objects.c:3258
msgid "use threads when searching for best delta matches"
msgstr "使用线程查询最佳 delta 匹é…"
-#: builtin/pack-objects.c:3280
+#: builtin/pack-objects.c:3260
msgid "do not create an empty pack output"
msgstr "ä¸åˆ›å»ºç©ºçš„包输出"
-#: builtin/pack-objects.c:3282
+#: builtin/pack-objects.c:3262
msgid "read revision arguments from standard input"
msgstr "从标准输入读å–版本å·å‚æ•°"
-#: builtin/pack-objects.c:3284
+#: builtin/pack-objects.c:3264
msgid "limit the objects to those that are not yet packed"
msgstr "é™åˆ¶é‚£äº›å°šæœªæ‰“包的对象"
-#: builtin/pack-objects.c:3287
+#: builtin/pack-objects.c:3267
msgid "include objects reachable from any reference"
msgstr "包括å¯ä»¥ä»Žä»»ä½•å¼•ç”¨è®¿é—®åˆ°çš„对象"
-#: builtin/pack-objects.c:3290
+#: builtin/pack-objects.c:3270
msgid "include objects referred by reflog entries"
msgstr "包括被引用日志引用到的对象"
-#: builtin/pack-objects.c:3293
+#: builtin/pack-objects.c:3273
msgid "include objects referred to by the index"
msgstr "包括被索引引用到的对象"
-#: builtin/pack-objects.c:3296
+#: builtin/pack-objects.c:3276
msgid "output pack to stdout"
msgstr "输出包到标准输出"
-#: builtin/pack-objects.c:3298
+#: builtin/pack-objects.c:3278
msgid "include tag objects that refer to objects to be packed"
msgstr "包括那些引用了待打包对象的标签对象"
-#: builtin/pack-objects.c:3300
+#: builtin/pack-objects.c:3280
msgid "keep unreachable objects"
msgstr "ç»´æŒä¸å¯è¾¾çš„对象"
-#: builtin/pack-objects.c:3302
+#: builtin/pack-objects.c:3282
msgid "pack loose unreachable objects"
msgstr "打包æ¾æ•£çš„ä¸å¯è¾¾å¯¹è±¡"
-#: builtin/pack-objects.c:3304
+#: builtin/pack-objects.c:3284
msgid "unpack unreachable objects newer than <time>"
msgstr "将比给定 <时间> 新的无法访问的对象解包"
-#: builtin/pack-objects.c:3307
+#: builtin/pack-objects.c:3287
msgid "use the sparse reachability algorithm"
msgstr "使用稀ç–å¯è¾¾æ€§ç®—法"
-#: builtin/pack-objects.c:3309
+#: builtin/pack-objects.c:3289
msgid "create thin packs"
msgstr "创建精简包"
-#: builtin/pack-objects.c:3311
+#: builtin/pack-objects.c:3291
msgid "create packs suitable for shallow fetches"
msgstr "创建适åˆæµ…克隆仓库获å–的包"
-#: builtin/pack-objects.c:3313
+#: builtin/pack-objects.c:3293
msgid "ignore packs that have companion .keep file"
msgstr "忽略é…有 .keep 文件的包"
-#: builtin/pack-objects.c:3315
+#: builtin/pack-objects.c:3295
msgid "ignore this pack"
msgstr "忽略该 pack"
-#: builtin/pack-objects.c:3317
+#: builtin/pack-objects.c:3297
msgid "pack compression level"
msgstr "打包压缩级别"
-#: builtin/pack-objects.c:3319
+#: builtin/pack-objects.c:3299
msgid "do not hide commits by grafts"
msgstr "显示被移æ¤éšè—çš„æ交"
-#: builtin/pack-objects.c:3321
+#: builtin/pack-objects.c:3301
msgid "use a bitmap index if available to speed up counting objects"
msgstr "使用 bitmap 索引(如果有的è¯ï¼‰ä»¥æ高对象计数时的速度"
-#: builtin/pack-objects.c:3323
+#: builtin/pack-objects.c:3303
msgid "write a bitmap index together with the pack index"
msgstr "在建立包索引的åŒæ—¶åˆ›å»º bitmap 索引"
-#: builtin/pack-objects.c:3327
+#: builtin/pack-objects.c:3307
msgid "write a bitmap index if possible"
msgstr "如果å¯èƒ½ï¼Œå†™ bitmap 索引"
-#: builtin/pack-objects.c:3331
+#: builtin/pack-objects.c:3311
msgid "handling for missing objects"
msgstr "处ç†ä¸¢å¤±çš„对象"
-#: builtin/pack-objects.c:3334
+#: builtin/pack-objects.c:3314
msgid "do not pack objects in promisor packfiles"
msgstr "ä¸è¦æ‰“包 promisor 包文件中的对象"
-#: builtin/pack-objects.c:3336
+#: builtin/pack-objects.c:3316
msgid "respect islands during delta compression"
msgstr "在增é‡åŽ‹ç¼©æ—¶å‚考数æ®å²›"
-#: builtin/pack-objects.c:3361
+#: builtin/pack-objects.c:3345
#, c-format
msgid "delta chain depth %d is too deep, forcing %d"
msgstr "增é‡é“¾æ·±åº¦ %d 太深了,强制为 %d"
-#: builtin/pack-objects.c:3366
+#: builtin/pack-objects.c:3350
#, c-format
msgid "pack.deltaCacheLimit is too high, forcing %d"
msgstr "é…ç½® pack.deltaCacheLimit 太高了,强制为 %d"
-#: builtin/pack-objects.c:3420
+#: builtin/pack-objects.c:3404
msgid "--max-pack-size cannot be used to build a pack for transfer"
msgstr "ä¸èƒ½ä½¿ç”¨ --max-pack-size æ¥æž„建传输用的包文件"
-#: builtin/pack-objects.c:3422
+#: builtin/pack-objects.c:3406
msgid "minimum pack size limit is 1 MiB"
msgstr "最å°çš„包文件大å°æ˜¯ 1 MiB"
-#: builtin/pack-objects.c:3427
+#: builtin/pack-objects.c:3411
msgid "--thin cannot be used to build an indexable pack"
msgstr "--thin ä¸èƒ½ç”¨äºŽåˆ›å»ºä¸€ä¸ªå¯ç´¢å¼•åŒ…"
-#: builtin/pack-objects.c:3430
+#: builtin/pack-objects.c:3414
msgid "--keep-unreachable and --unpack-unreachable are incompatible"
msgstr "--keep-unreachable å’Œ --unpack-unreachable ä¸å…¼å®¹"
-#: builtin/pack-objects.c:3436
+#: builtin/pack-objects.c:3420
msgid "cannot use --filter without --stdout"
msgstr "ä¸èƒ½åœ¨æ²¡æœ‰ --stdout 的情况下使用 --filter"
-#: builtin/pack-objects.c:3497
+#: builtin/pack-objects.c:3481
msgid "Enumerating objects"
msgstr "枚举对象"
-#: builtin/pack-objects.c:3527
+#: builtin/pack-objects.c:3511
#, c-format
msgid "Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>)"
msgstr "总共 %<PRIu32> (差异 %<PRIu32>),å¤ç”¨ %<PRIu32> (差异 %<PRIu32>)"
@@ -16256,61 +16343,61 @@ msgstr "%s 的值无效:%s"
msgid "git pull [<options>] [<repository> [<refspec>...]]"
msgstr "git pull [<选项>] [<仓库> [<引用规格>...]]"
-#: builtin/pull.c:141
+#: builtin/pull.c:142
msgid "control for recursive fetching of submodules"
msgstr "控制å­æ¨¡ç»„的递归获å–"
-#: builtin/pull.c:145
+#: builtin/pull.c:146
msgid "Options related to merging"
msgstr "å’Œåˆå¹¶ç›¸å…³çš„选项"
-#: builtin/pull.c:148
+#: builtin/pull.c:149
msgid "incorporate changes by rebasing rather than merging"
msgstr "使用å˜åŸºæ“作å–代åˆå¹¶æ“作以åˆå…¥ä¿®æ”¹"
-#: builtin/pull.c:176 builtin/rebase.c:447 builtin/revert.c:126
+#: builtin/pull.c:177 builtin/rebase.c:448 builtin/revert.c:126
msgid "allow fast-forward"
msgstr "å…许快进å¼"
-#: builtin/pull.c:185
+#: builtin/pull.c:186
msgid "automatically stash/stash pop before and after rebase"
msgstr "å˜åŸºæ“作å‰åŽæ‰§è¡Œè‡ªåŠ¨è´®è—和弹出贮è—"
-#: builtin/pull.c:201
+#: builtin/pull.c:202
msgid "Options related to fetching"
msgstr "和获å–相关的å‚æ•°"
-#: builtin/pull.c:211
+#: builtin/pull.c:212
msgid "force overwrite of local branch"
msgstr "强制覆盖本地分支"
-#: builtin/pull.c:219
+#: builtin/pull.c:220
msgid "number of submodules pulled in parallel"
msgstr "并å‘拉å–çš„å­æ¨¡ç»„çš„æ•°é‡"
-#: builtin/pull.c:316
+#: builtin/pull.c:320
#, c-format
msgid "Invalid value for pull.ff: %s"
msgstr "pull.ff çš„å–值无效:%s"
-#: builtin/pull.c:433
+#: builtin/pull.c:437
msgid ""
"There is no candidate for rebasing against among the refs that you just "
"fetched."
msgstr "在您刚刚获å–到的引用中没有å˜åŸºæ“作的候选。"
-#: builtin/pull.c:435
+#: builtin/pull.c:439
msgid ""
"There are no candidates for merging among the refs that you just fetched."
msgstr "在您刚刚获å–到的引用中没有åˆå¹¶æ“作的候选。"
-#: builtin/pull.c:436
+#: builtin/pull.c:440
msgid ""
"Generally this means that you provided a wildcard refspec which had no\n"
"matches on the remote end."
msgstr "通常这æ„味ç€æ‚¨æ供了一个通é…符引用规格但未能和远端匹é…。"
-#: builtin/pull.c:439
+#: builtin/pull.c:443
#, c-format
msgid ""
"You asked to pull from the remote '%s', but did not specify\n"
@@ -16320,42 +16407,42 @@ msgstr ""
"您è¦æ±‚从远程 '%s' 拉å–,但是未指定一个分支。因为这ä¸æ˜¯å½“å‰\n"
"分支默认的远程仓库,您必须在命令行中指定一个分支å。"
-#: builtin/pull.c:444 builtin/rebase.c:1326 git-parse-remote.sh:73
+#: builtin/pull.c:448 builtin/rebase.c:1347 git-parse-remote.sh:73
msgid "You are not currently on a branch."
msgstr "您当å‰ä¸åœ¨ä¸€ä¸ªåˆ†æ”¯ä¸Šã€‚"
-#: builtin/pull.c:446 builtin/pull.c:461 git-parse-remote.sh:79
+#: builtin/pull.c:450 builtin/pull.c:465 git-parse-remote.sh:79
msgid "Please specify which branch you want to rebase against."
msgstr "请指定您è¦å˜åŸºåˆ°å“ªä¸€ä¸ªåˆ†æ”¯ã€‚"
-#: builtin/pull.c:448 builtin/pull.c:463 git-parse-remote.sh:82
+#: builtin/pull.c:452 builtin/pull.c:467 git-parse-remote.sh:82
msgid "Please specify which branch you want to merge with."
msgstr "请指定您è¦åˆå¹¶å“ªä¸€ä¸ªåˆ†æ”¯ã€‚"
-#: builtin/pull.c:449 builtin/pull.c:464
+#: builtin/pull.c:453 builtin/pull.c:468
msgid "See git-pull(1) for details."
msgstr "è¯¦è§ git-pull(1)。"
-#: builtin/pull.c:451 builtin/pull.c:457 builtin/pull.c:466
-#: builtin/rebase.c:1332 git-parse-remote.sh:64
+#: builtin/pull.c:455 builtin/pull.c:461 builtin/pull.c:470
+#: builtin/rebase.c:1353 git-parse-remote.sh:64
msgid "<remote>"
msgstr "<远程>"
-#: builtin/pull.c:451 builtin/pull.c:466 builtin/pull.c:471
+#: builtin/pull.c:455 builtin/pull.c:470 builtin/pull.c:475
#: git-parse-remote.sh:65
msgid "<branch>"
msgstr "<分支>"
-#: builtin/pull.c:459 builtin/rebase.c:1324 git-parse-remote.sh:75
+#: builtin/pull.c:463 builtin/rebase.c:1345 git-parse-remote.sh:75
msgid "There is no tracking information for the current branch."
msgstr "当å‰åˆ†æ”¯æ²¡æœ‰è·Ÿè¸ªä¿¡æ¯ã€‚"
-#: builtin/pull.c:468 git-parse-remote.sh:95
+#: builtin/pull.c:472 git-parse-remote.sh:95
msgid ""
"If you wish to set tracking information for this branch you can do so with:"
msgstr "如果您想è¦ä¸ºæ­¤åˆ†æ”¯åˆ›å»ºè·Ÿè¸ªä¿¡æ¯ï¼Œæ‚¨å¯ä»¥æ‰§è¡Œï¼š"
-#: builtin/pull.c:473
+#: builtin/pull.c:477
#, c-format
msgid ""
"Your configuration specifies to merge with the ref '%s'\n"
@@ -16364,32 +16451,32 @@ msgstr ""
"您的é…置中指定è¦åˆå¹¶è¿œç¨‹çš„引用 '%s',\n"
"但是没有获å–到这个引用。"
-#: builtin/pull.c:581
+#: builtin/pull.c:587
#, c-format
msgid "unable to access commit %s"
msgstr "无法访问æ交 %s"
-#: builtin/pull.c:861
+#: builtin/pull.c:867
msgid "ignoring --verify-signatures for rebase"
msgstr "为å˜åŸºæ“作忽略 --verify-signatures"
-#: builtin/pull.c:916
+#: builtin/pull.c:922
msgid "--[no-]autostash option is only valid with --rebase."
msgstr "--[no-]autostash 选项åªåœ¨ä½¿ç”¨ --rebase 时有效。"
-#: builtin/pull.c:924
+#: builtin/pull.c:930
msgid "Updating an unborn branch with changes added to the index."
msgstr "更新尚未诞生的分支,å˜æ›´æ·»åŠ è‡³ç´¢å¼•ã€‚"
-#: builtin/pull.c:928
+#: builtin/pull.c:934
msgid "pull with rebase"
msgstr "å˜åŸºå¼æ‹‰å–"
-#: builtin/pull.c:929
+#: builtin/pull.c:935
msgid "please commit or stash them."
msgstr "请æ交或贮è—它们。"
-#: builtin/pull.c:954
+#: builtin/pull.c:960
#, c-format
msgid ""
"fetch updated the current branch head.\n"
@@ -16399,7 +16486,7 @@ msgstr ""
"fetch 更新了当å‰çš„分支。快进您的工作区\n"
"至æ交 %s。"
-#: builtin/pull.c:960
+#: builtin/pull.c:966
#, c-format
msgid ""
"Cannot fast-forward your working tree.\n"
@@ -16416,15 +16503,15 @@ msgstr ""
"$ git reset --hard\n"
"æ¢å¤ä¹‹å‰çš„状æ€ã€‚"
-#: builtin/pull.c:975
+#: builtin/pull.c:981
msgid "Cannot merge multiple branches into empty head."
msgstr "无法将多个分支åˆå¹¶åˆ°ç©ºåˆ†æ”¯ã€‚"
-#: builtin/pull.c:979
+#: builtin/pull.c:985
msgid "Cannot rebase onto multiple branches."
msgstr "无法å˜åŸºåˆ°å¤šä¸ªåˆ†æ”¯ã€‚"
-#: builtin/pull.c:986
+#: builtin/pull.c:992
msgid "cannot rebase with locally recorded submodule modifications"
msgstr "本地å­æ¨¡ç»„中有修改,无法å˜åŸº"
@@ -16572,135 +16659,135 @@ msgstr ""
msgid "Pushing to %s\n"
msgstr "推é€åˆ° %s\n"
-#: builtin/push.c:364
+#: builtin/push.c:366
#, c-format
msgid "failed to push some refs to '%s'"
msgstr "推é€ä¸€äº›å¼•ç”¨åˆ° '%s' 失败"
-#: builtin/push.c:398
-#, c-format
-msgid "bad repository '%s'"
-msgstr "å的仓库 '%s'"
-
-#: builtin/push.c:399
-msgid ""
-"No configured push destination.\n"
-"Either specify the URL from the command-line or configure a remote "
-"repository using\n"
-"\n"
-" git remote add <name> <url>\n"
-"\n"
-"and then push using the remote name\n"
-"\n"
-" git push <name>\n"
-msgstr ""
-"没有é…置推é€ç›®æ ‡ã€‚\n"
-"或通过命令行指定 URL,或用下é¢å‘½ä»¤é…置一个远程仓库\n"
-"\n"
-" git remote add <å称> <地å€>\n"
-"\n"
-"然åŽä½¿ç”¨è¯¥è¿œç¨‹ä»“库å执行推é€\n"
-"\n"
-" git push <å称>\n"
-
-#: builtin/push.c:554
+#: builtin/push.c:541
msgid "repository"
msgstr "仓库"
-#: builtin/push.c:555 builtin/send-pack.c:164
+#: builtin/push.c:542 builtin/send-pack.c:164
msgid "push all refs"
msgstr "推é€æ‰€æœ‰å¼•ç”¨"
-#: builtin/push.c:556 builtin/send-pack.c:166
+#: builtin/push.c:543 builtin/send-pack.c:166
msgid "mirror all refs"
msgstr "é•œåƒæ‰€æœ‰å¼•ç”¨"
-#: builtin/push.c:558
+#: builtin/push.c:545
msgid "delete refs"
msgstr "删除引用"
-#: builtin/push.c:559
+#: builtin/push.c:546
msgid "push tags (can't be used with --all or --mirror)"
msgstr "推é€æ ‡ç­¾ï¼ˆä¸èƒ½ä½¿ç”¨ --all or --mirror)"
-#: builtin/push.c:562 builtin/send-pack.c:167
+#: builtin/push.c:549 builtin/send-pack.c:167
msgid "force updates"
msgstr "强制更新"
-#: builtin/push.c:564 builtin/send-pack.c:181
+#: builtin/push.c:551 builtin/send-pack.c:181
msgid "<refname>:<expect>"
msgstr "<引用å>:<期望值>"
-#: builtin/push.c:565 builtin/send-pack.c:182
+#: builtin/push.c:552 builtin/send-pack.c:182
msgid "require old value of ref to be at this value"
msgstr "è¦æ±‚引用旧的å–值为设定值"
-#: builtin/push.c:568
+#: builtin/push.c:555
msgid "control recursive pushing of submodules"
msgstr "控制å­æ¨¡ç»„的递归推é€"
-#: builtin/push.c:570 builtin/send-pack.c:175
+#: builtin/push.c:557 builtin/send-pack.c:175
msgid "use thin pack"
msgstr "使用精简打包"
-#: builtin/push.c:571 builtin/push.c:572 builtin/send-pack.c:161
+#: builtin/push.c:558 builtin/push.c:559 builtin/send-pack.c:161
#: builtin/send-pack.c:162
msgid "receive pack program"
msgstr "接收包程åº"
-#: builtin/push.c:573
+#: builtin/push.c:560
msgid "set upstream for git pull/status"
msgstr "设置 git pull/status 的上游"
-#: builtin/push.c:576
+#: builtin/push.c:563
msgid "prune locally removed refs"
msgstr "清除本地删除的引用"
-#: builtin/push.c:578
+#: builtin/push.c:565
msgid "bypass pre-push hook"
msgstr "绕过 pre-push é’©å­"
-#: builtin/push.c:579
+#: builtin/push.c:566
msgid "push missing but relevant tags"
msgstr "推é€ç¼ºå¤±ä½†æœ‰å…³çš„标签"
-#: builtin/push.c:582 builtin/send-pack.c:169
+#: builtin/push.c:569 builtin/send-pack.c:169
msgid "GPG sign the push"
msgstr "用 GPG 为推é€ç­¾å"
-#: builtin/push.c:584 builtin/send-pack.c:176
+#: builtin/push.c:571 builtin/send-pack.c:176
msgid "request atomic transaction on remote side"
msgstr "需è¦è¿œç«¯æ”¯æŒåŽŸå­äº‹åŠ¡"
-#: builtin/push.c:602
+#: builtin/push.c:589
msgid "--delete is incompatible with --all, --mirror and --tags"
msgstr "--delete 与 --allã€--mirror åŠ --tags ä¸å…¼å®¹"
-#: builtin/push.c:604
+#: builtin/push.c:591
msgid "--delete doesn't make sense without any refs"
msgstr "--delete 未接任何引用没有æ„义"
-#: builtin/push.c:607
+#: builtin/push.c:611
+#, c-format
+msgid "bad repository '%s'"
+msgstr "å的仓库 '%s'"
+
+#: builtin/push.c:612
+msgid ""
+"No configured push destination.\n"
+"Either specify the URL from the command-line or configure a remote "
+"repository using\n"
+"\n"
+" git remote add <name> <url>\n"
+"\n"
+"and then push using the remote name\n"
+"\n"
+" git push <name>\n"
+msgstr ""
+"没有é…置推é€ç›®æ ‡ã€‚\n"
+"或通过命令行指定 URL,或用下é¢å‘½ä»¤é…置一个远程仓库\n"
+"\n"
+" git remote add <å称> <地å€>\n"
+"\n"
+"然åŽä½¿ç”¨è¯¥è¿œç¨‹ä»“库å执行推é€\n"
+"\n"
+" git push <å称>\n"
+
+#: builtin/push.c:627
msgid "--all and --tags are incompatible"
msgstr "--all å’Œ --tags ä¸å…¼å®¹"
-#: builtin/push.c:609
+#: builtin/push.c:629
msgid "--all can't be combined with refspecs"
msgstr "--all ä¸èƒ½å’Œå¼•ç”¨è§„æ ¼åŒæ—¶ä½¿ç”¨"
-#: builtin/push.c:613
+#: builtin/push.c:633
msgid "--mirror and --tags are incompatible"
msgstr "--mirror å’Œ --tags ä¸å…¼å®¹"
-#: builtin/push.c:615
+#: builtin/push.c:635
msgid "--mirror can't be combined with refspecs"
msgstr "--mirror ä¸èƒ½å’Œå¼•ç”¨è§„æ ¼åŒæ—¶ä½¿ç”¨"
-#: builtin/push.c:618
+#: builtin/push.c:638
msgid "--all and --mirror are incompatible"
msgstr "--all å’Œ --mirror ä¸å…¼å®¹"
-#: builtin/push.c:637
+#: builtin/push.c:642
msgid "push options must not have new line characters"
msgstr "推é€é€‰é¡¹ä¸èƒ½æœ‰æ¢è¡Œç¬¦"
@@ -16817,10 +16904,9 @@ msgstr "抑制å馈信æ¯"
#: builtin/rebase.c:32
msgid ""
-"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] [<upstream>] "
-"[<branch>]"
-msgstr ""
-"git rebase [-i] [选项] [--exec <命令>] [--onto <新基线>] [<上游>] [<分支>]"
+"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase> | --keep-base] "
+"[<upstream> [<branch>]]"
+msgstr "git rebase [-i] [options] [--exec <命令>] [--onto <新基线> | --keep-base] [<上游> [<分支>]]"
#: builtin/rebase.c:34
msgid ""
@@ -16859,189 +16945,189 @@ msgstr "无法标记为交互å¼"
msgid "could not generate todo list"
msgstr "无法生æˆå¾…办列表"
-#: builtin/rebase.c:382
+#: builtin/rebase.c:383
msgid "a base commit must be provided with --upstream or --onto"
msgstr "使用 --upstream 或 --onto å¿…é¡»æ供一个基线æ交"
-#: builtin/rebase.c:437
+#: builtin/rebase.c:438
msgid "git rebase--interactive [<options>]"
msgstr "git rebase--interactive [<选项>]"
-#: builtin/rebase.c:449
+#: builtin/rebase.c:450
msgid "keep empty commits"
msgstr "ä¿æŒç©ºæ交"
-#: builtin/rebase.c:451 builtin/revert.c:128
+#: builtin/rebase.c:452 builtin/revert.c:128
msgid "allow commits with empty messages"
msgstr "å…许æ交说明为空"
-#: builtin/rebase.c:452
+#: builtin/rebase.c:453
msgid "rebase merge commits"
msgstr "对åˆå¹¶æ交å˜åŸº"
-#: builtin/rebase.c:454
+#: builtin/rebase.c:455
msgid "keep original branch points of cousins"
msgstr "ä¿æŒå…„弟æ交的原始分支点"
-#: builtin/rebase.c:456
+#: builtin/rebase.c:457
msgid "move commits that begin with squash!/fixup!"
msgstr "移动以 squash!/fixup! 开头的æ交"
-#: builtin/rebase.c:457
+#: builtin/rebase.c:458
msgid "sign commits"
msgstr "ç­¾åæ交"
-#: builtin/rebase.c:459 builtin/rebase.c:1403
+#: builtin/rebase.c:460 builtin/rebase.c:1427
msgid "display a diffstat of what changed upstream"
msgstr "显示上游å˜åŒ–的差异统计"
-#: builtin/rebase.c:461
+#: builtin/rebase.c:462
msgid "continue rebase"
msgstr "继续å˜åŸº"
-#: builtin/rebase.c:463
+#: builtin/rebase.c:464
msgid "skip commit"
msgstr "跳过æ交"
-#: builtin/rebase.c:464
+#: builtin/rebase.c:465
msgid "edit the todo list"
msgstr "å˜åŸºå¾…办列表"
-#: builtin/rebase.c:466
+#: builtin/rebase.c:467
msgid "show the current patch"
msgstr "显示当å‰è¡¥ä¸"
-#: builtin/rebase.c:469
+#: builtin/rebase.c:470
msgid "shorten commit ids in the todo list"
msgstr "缩短待办列表中的æ交å·"
-#: builtin/rebase.c:471
+#: builtin/rebase.c:472
msgid "expand commit ids in the todo list"
msgstr "扩展待办列表中的æ交å·"
-#: builtin/rebase.c:473
+#: builtin/rebase.c:474
msgid "check the todo list"
msgstr "检查待办列表"
-#: builtin/rebase.c:475
+#: builtin/rebase.c:476
msgid "rearrange fixup/squash lines"
msgstr "é‡æ–°æŽ’列 fixup/squash è¡Œ"
-#: builtin/rebase.c:477
+#: builtin/rebase.c:478
msgid "insert exec commands in todo list"
msgstr "在待办列表中æ’å…¥ exec 执行命令"
-#: builtin/rebase.c:478
+#: builtin/rebase.c:479
msgid "onto"
msgstr "onto"
-#: builtin/rebase.c:481
+#: builtin/rebase.c:482
msgid "restrict-revision"
msgstr "restrict-revision"
-#: builtin/rebase.c:481
+#: builtin/rebase.c:482
msgid "restrict revision"
msgstr "é™åˆ¶ç‰ˆæœ¬"
-#: builtin/rebase.c:483
+#: builtin/rebase.c:484
msgid "squash-onto"
msgstr "squash-onto"
-#: builtin/rebase.c:484
+#: builtin/rebase.c:485
msgid "squash onto"
msgstr "squash onto"
-#: builtin/rebase.c:486
+#: builtin/rebase.c:487
msgid "the upstream commit"
msgstr "上游æ交"
-#: builtin/rebase.c:488
+#: builtin/rebase.c:489
msgid "head-name"
msgstr "head-name"
-#: builtin/rebase.c:488
+#: builtin/rebase.c:489
msgid "head name"
msgstr "head å称"
-#: builtin/rebase.c:493
+#: builtin/rebase.c:494
msgid "rebase strategy"
msgstr "å˜åŸºç­–ç•¥"
-#: builtin/rebase.c:494
+#: builtin/rebase.c:495
msgid "strategy-opts"
msgstr "strategy-opts"
-#: builtin/rebase.c:495
+#: builtin/rebase.c:496
msgid "strategy options"
msgstr "策略选项"
-#: builtin/rebase.c:496
+#: builtin/rebase.c:497
msgid "switch-to"
msgstr "切æ¢åˆ°"
-#: builtin/rebase.c:497
+#: builtin/rebase.c:498
msgid "the branch or commit to checkout"
msgstr "è¦æ£€å‡ºçš„分支或æ交"
-#: builtin/rebase.c:498
+#: builtin/rebase.c:499
msgid "onto-name"
msgstr "onto-name"
-#: builtin/rebase.c:498
+#: builtin/rebase.c:499
msgid "onto name"
msgstr "onto name"
-#: builtin/rebase.c:499
+#: builtin/rebase.c:500
msgid "cmd"
msgstr "cmd"
-#: builtin/rebase.c:499
+#: builtin/rebase.c:500
msgid "the command to run"
msgstr "è¦æ‰§è¡Œçš„命令"
-#: builtin/rebase.c:502 builtin/rebase.c:1486
+#: builtin/rebase.c:503 builtin/rebase.c:1510
msgid "automatically re-schedule any `exec` that fails"
msgstr "自动é‡æ–°å®‰æŽ’任何失败的 `exec`"
-#: builtin/rebase.c:518
+#: builtin/rebase.c:519
msgid "--[no-]rebase-cousins has no effect without --rebase-merges"
msgstr "ä¸ä½¿ç”¨ --rebase-merges,则 --[no-]rebase-cousins 没有效果"
-#: builtin/rebase.c:534
+#: builtin/rebase.c:535
#, c-format
msgid "%s requires an interactive rebase"
msgstr "%s 需è¦äº¤äº’å¼å˜åŸº"
-#: builtin/rebase.c:586
+#: builtin/rebase.c:587
#, c-format
msgid "could not get 'onto': '%s'"
msgstr "æ— æ³•èŽ·å– 'onto':'%s'"
-#: builtin/rebase.c:601
+#: builtin/rebase.c:602
#, c-format
msgid "invalid orig-head: '%s'"
msgstr "无效的原始 head:'%s'"
-#: builtin/rebase.c:626
+#: builtin/rebase.c:627
#, c-format
msgid "ignoring invalid allow_rerere_autoupdate: '%s'"
msgstr "忽略无效的 allow_rerere_autoupdate:'%s'"
-#: builtin/rebase.c:702
+#: builtin/rebase.c:703
#, c-format
msgid "Could not read '%s'"
msgstr "ä¸èƒ½è¯»å– '%s'"
-#: builtin/rebase.c:720
+#: builtin/rebase.c:721
#, c-format
msgid "Cannot store %s"
msgstr "ä¸èƒ½å­˜å‚¨ %s"
-#: builtin/rebase.c:827
+#: builtin/rebase.c:828
msgid "could not determine HEAD revision"
msgstr "ä¸èƒ½ç¡®å®š HEAD 版本"
-#: builtin/rebase.c:950 git-rebase--preserve-merges.sh:81
+#: builtin/rebase.c:951 git-rebase--preserve-merges.sh:81
msgid ""
"Resolve all conflicts manually, mark them as resolved with\n"
"\"git add/rm <conflicted_files>\", then run \"git rebase --continue\".\n"
@@ -17054,7 +17140,7 @@ msgstr ""
"\"git rebase --skip\" 命令跳过这个æ交。如果想è¦ç»ˆæ­¢æ‰§è¡Œå¹¶å›žåˆ°\n"
"\"git rebase\" 执行之å‰çš„状æ€ï¼Œæ‰§è¡Œ \"git rebase --abort\"。"
-#: builtin/rebase.c:1031
+#: builtin/rebase.c:1032
#, c-format
msgid ""
"\n"
@@ -17072,7 +17158,7 @@ msgstr ""
"\n"
"å› æ­¤ git 无法对其å˜åŸºã€‚"
-#: builtin/rebase.c:1318
+#: builtin/rebase.c:1339
#, c-format
msgid ""
"%s\n"
@@ -17089,7 +17175,7 @@ msgstr ""
" git rebase '<branch>'\n"
"\n"
-#: builtin/rebase.c:1334
+#: builtin/rebase.c:1355
#, c-format
msgid ""
"If you wish to set tracking information for this branch you can do so with:\n"
@@ -17102,128 +17188,132 @@ msgstr ""
" git branch --set-upstream-to=%s/<branch> %s\n"
"\n"
-#: builtin/rebase.c:1364
+#: builtin/rebase.c:1385
msgid "exec commands cannot contain newlines"
msgstr "exec 命令ä¸èƒ½åŒ…å«æ¢è¡Œç¬¦"
-#: builtin/rebase.c:1368
+#: builtin/rebase.c:1389
msgid "empty exec command"
msgstr "空的 exec 命令"
-#: builtin/rebase.c:1396
+#: builtin/rebase.c:1418
msgid "rebase onto given branch instead of upstream"
msgstr "å˜åŸºåˆ°ç»™å®šçš„分支而éžä¸Šæ¸¸"
-#: builtin/rebase.c:1398
+#: builtin/rebase.c:1420
+msgid "use the merge-base of upstream and branch as the current base"
+msgstr "使用上游和分支的åˆå¹¶åŸºçº¿åšä¸ºå½“å‰åŸºçº¿"
+
+#: builtin/rebase.c:1422
msgid "allow pre-rebase hook to run"
msgstr "å…许执行 pre-rebase é’©å­"
-#: builtin/rebase.c:1400
+#: builtin/rebase.c:1424
msgid "be quiet. implies --no-stat"
msgstr "安é™ã€‚暗示 --no-stat"
-#: builtin/rebase.c:1406
+#: builtin/rebase.c:1430
msgid "do not show diffstat of what changed upstream"
msgstr "ä¸æ˜¾ç¤ºä¸Šæ¸¸å˜åŒ–的差异统计"
-#: builtin/rebase.c:1409
+#: builtin/rebase.c:1433
msgid "add a Signed-off-by: line to each commit"
msgstr "为æ¯ä¸€ä¸ªæ交添加一个 Signed-off-by: ç­¾å"
-#: builtin/rebase.c:1411 builtin/rebase.c:1415 builtin/rebase.c:1417
+#: builtin/rebase.c:1435 builtin/rebase.c:1439 builtin/rebase.c:1441
msgid "passed to 'git am'"
msgstr "传递给 'git am'"
-#: builtin/rebase.c:1419 builtin/rebase.c:1421
+#: builtin/rebase.c:1443 builtin/rebase.c:1445
msgid "passed to 'git apply'"
msgstr "传递给 'git apply'"
-#: builtin/rebase.c:1423 builtin/rebase.c:1426
+#: builtin/rebase.c:1447 builtin/rebase.c:1450
msgid "cherry-pick all commits, even if unchanged"
msgstr "拣选所有æ交,å³ä½¿æœªä¿®æ”¹"
-#: builtin/rebase.c:1428
+#: builtin/rebase.c:1452
msgid "continue"
msgstr "继续"
-#: builtin/rebase.c:1431
+#: builtin/rebase.c:1455
msgid "skip current patch and continue"
msgstr "跳过当å‰è¡¥ä¸å¹¶ç»§ç»­"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: builtin/rebase.c:1433
+#: builtin/rebase.c:1457
msgid "abort and check out the original branch"
msgstr "终止并检出原有分支"
-#: builtin/rebase.c:1436
+#: builtin/rebase.c:1460
msgid "abort but keep HEAD where it is"
msgstr "终止但ä¿æŒ HEAD ä¸å˜"
-#: builtin/rebase.c:1437
+#: builtin/rebase.c:1461
msgid "edit the todo list during an interactive rebase"
msgstr "在交互å¼å˜åŸºä¸­ç¼–辑待办列表"
-#: builtin/rebase.c:1440
+#: builtin/rebase.c:1464
msgid "show the patch file being applied or merged"
msgstr "显示正在应用或åˆå¹¶çš„è¡¥ä¸æ–‡ä»¶"
-#: builtin/rebase.c:1443
+#: builtin/rebase.c:1467
msgid "use merging strategies to rebase"
msgstr "使用åˆå¹¶ç­–略进行å˜åŸº"
-#: builtin/rebase.c:1447
+#: builtin/rebase.c:1471
msgid "let the user edit the list of commits to rebase"
msgstr "让用户编辑è¦å˜åŸºçš„æ交列表"
-#: builtin/rebase.c:1451
+#: builtin/rebase.c:1475
msgid "(DEPRECATED) try to recreate merges instead of ignoring them"
msgstr "(已弃用)å°è¯•é‡å»ºåˆå¹¶æ交而éžå¿½ç•¥å®ƒä»¬"
-#: builtin/rebase.c:1455
+#: builtin/rebase.c:1479
msgid "preserve empty commits during rebase"
msgstr "å˜åŸºæ—¶ä¿ç•™ç©ºæ交"
-#: builtin/rebase.c:1457
+#: builtin/rebase.c:1481
msgid "move commits that begin with squash!/fixup! under -i"
msgstr "在 -i 交互模å¼ä¸‹ï¼Œç§»åŠ¨ä»¥ squash!/fixup! 开头的æ交"
-#: builtin/rebase.c:1463
+#: builtin/rebase.c:1487
msgid "automatically stash/stash pop before and after"
msgstr "在æ“作å‰åŽæ‰§è¡Œè‡ªåŠ¨è´®è—和弹出贮è—"
-#: builtin/rebase.c:1465
+#: builtin/rebase.c:1489
msgid "add exec lines after each commit of the editable list"
msgstr "å¯ç¼–辑列表的æ¯ä¸€ä¸ªæ交下é¢å¢žåŠ ä¸€è¡Œ exec"
-#: builtin/rebase.c:1469
+#: builtin/rebase.c:1493
msgid "allow rebasing commits with empty messages"
msgstr "å…许针对空æ交说明的æ交å˜åŸº"
-#: builtin/rebase.c:1472
+#: builtin/rebase.c:1496
msgid "try to rebase merges instead of skipping them"
msgstr "å°è¯•å¯¹åˆå¹¶æ交å˜åŸºè€Œä¸æ˜¯å¿½ç•¥å®ƒä»¬"
-#: builtin/rebase.c:1475
+#: builtin/rebase.c:1499
msgid "use 'merge-base --fork-point' to refine upstream"
msgstr "使用 'merge-base --fork-point' æ¥ä¼˜åŒ–上游"
-#: builtin/rebase.c:1477
+#: builtin/rebase.c:1501
msgid "use the given merge strategy"
msgstr "使用给定的åˆå¹¶ç­–ç•¥"
-#: builtin/rebase.c:1479 builtin/revert.c:115
+#: builtin/rebase.c:1503 builtin/revert.c:115
msgid "option"
msgstr "选项"
-#: builtin/rebase.c:1480
+#: builtin/rebase.c:1504
msgid "pass the argument through to the merge strategy"
msgstr "å°†å‚数传递给åˆå¹¶ç­–ç•¥"
-#: builtin/rebase.c:1483
+#: builtin/rebase.c:1507
msgid "rebase all reachable commits up to the root(s)"
msgstr "将所有å¯è¾¾çš„æ交å˜åŸºåˆ°æ ¹æ交"
-#: builtin/rebase.c:1500
+#: builtin/rebase.c:1524
msgid ""
"the rebase.useBuiltin support has been removed!\n"
"See its entry in 'git help config' for details."
@@ -17231,28 +17321,36 @@ msgstr ""
"对 rebase.useBuiltin 的支æŒå·²è¢«åˆ é™¤ï¼\n"
"è¯¦è§ 'git help config' 中的æ¡ç›®ã€‚"
-#: builtin/rebase.c:1506
+#: builtin/rebase.c:1530
msgid "It looks like 'git am' is in progress. Cannot rebase."
msgstr "çœ‹èµ·æ¥ 'git-am' 正在执行中。无法å˜åŸºã€‚"
-#: builtin/rebase.c:1547
+#: builtin/rebase.c:1571
msgid ""
"git rebase --preserve-merges is deprecated. Use --rebase-merges instead."
msgstr "git rebase --preserve-merges 被弃用。用 --rebase-merges 代替。"
-#: builtin/rebase.c:1551
+#: builtin/rebase.c:1576
+msgid "cannot combine '--keep-base' with '--onto'"
+msgstr "ä¸èƒ½å°† '--keep-base' å’Œ '--onto' 组åˆä½¿ç”¨"
+
+#: builtin/rebase.c:1578
+msgid "cannot combine '--keep-base' with '--root'"
+msgstr "ä¸èƒ½å°† '--keep-base' å’Œ '--root' 组åˆä½¿ç”¨"
+
+#: builtin/rebase.c:1582
msgid "No rebase in progress?"
msgstr "没有正在进行的å˜åŸºï¼Ÿ"
-#: builtin/rebase.c:1555
+#: builtin/rebase.c:1586
msgid "The --edit-todo action can only be used during interactive rebase."
msgstr "动作 --edit-todo åªèƒ½ç”¨åœ¨äº¤äº’å¼å˜åŸºè¿‡ç¨‹ä¸­ã€‚"
-#: builtin/rebase.c:1578
+#: builtin/rebase.c:1609
msgid "Cannot read HEAD"
msgstr "ä¸èƒ½è¯»å– HEAD"
-#: builtin/rebase.c:1590
+#: builtin/rebase.c:1621
msgid ""
"You must edit all merge conflicts and then\n"
"mark them as resolved using git add"
@@ -17260,16 +17358,16 @@ msgstr ""
"您必须编辑所有的åˆå¹¶å†²çªï¼Œç„¶åŽé€šè¿‡ git add\n"
"命令将它们标记为已解决"
-#: builtin/rebase.c:1609
+#: builtin/rebase.c:1640
msgid "could not discard worktree changes"
msgstr "无法丢弃工作区å˜æ›´"
-#: builtin/rebase.c:1628
+#: builtin/rebase.c:1659
#, c-format
msgid "could not move back to %s"
msgstr "无法移回 %s"
-#: builtin/rebase.c:1673
+#: builtin/rebase.c:1704
#, c-format
msgid ""
"It seems that there is already a %s directory, and\n"
@@ -17288,163 +17386,155 @@ msgstr ""
"\t%s\n"
"然åŽå†é‡æ–°æ‰§è¡Œã€‚ 为é¿å…丢失é‡è¦æ•°æ®ï¼Œæˆ‘å·²ç»åœæ­¢å½“å‰æ“作。\n"
-#: builtin/rebase.c:1694
+#: builtin/rebase.c:1725
msgid "switch `C' expects a numerical value"
msgstr "开关 `C' 期望一个数字值"
-#: builtin/rebase.c:1735
+#: builtin/rebase.c:1766
#, c-format
msgid "Unknown mode: %s"
msgstr "未知模å¼ï¼š%s"
-#: builtin/rebase.c:1757
+#: builtin/rebase.c:1788
msgid "--strategy requires --merge or --interactive"
msgstr "--strategy éœ€è¦ --merge 或 --interactive"
-#: builtin/rebase.c:1797
+#: builtin/rebase.c:1828
msgid "--reschedule-failed-exec requires --exec or --interactive"
msgstr "--reschedule-failed-exec éœ€è¦ --exec 或 --interactive"
-#: builtin/rebase.c:1809
+#: builtin/rebase.c:1840
msgid "cannot combine am options with either interactive or merge options"
msgstr "ä¸èƒ½å°† am 选项与交互或åˆå¹¶é€‰é¡¹åŒæ—¶ä½¿ç”¨"
-#: builtin/rebase.c:1828
+#: builtin/rebase.c:1859
msgid "cannot combine '--preserve-merges' with '--rebase-merges'"
msgstr "ä¸èƒ½å°† '--preserve-merges' å’Œ '--rebase-merges' åŒæ—¶ä½¿ç”¨"
-#: builtin/rebase.c:1832
+#: builtin/rebase.c:1863
msgid ""
"error: cannot combine '--preserve-merges' with '--reschedule-failed-exec'"
msgstr ""
"错误:ä¸èƒ½å°† '--preserve-merges' å’Œ '--reschedule-failed-exec' åŒæ—¶ä½¿ç”¨"
-#: builtin/rebase.c:1838
-msgid "cannot combine '--rebase-merges' with '--strategy-option'"
-msgstr "ä¸èƒ½å°† '--rebase-merges' å’Œ '--strategy-option' åŒæ—¶ä½¿ç”¨"
-
-#: builtin/rebase.c:1841
-msgid "cannot combine '--rebase-merges' with '--strategy'"
-msgstr "ä¸èƒ½å°† '--rebase-merges' å’Œ '--strategy' åŒæ—¶ä½¿ç”¨"
-
-#: builtin/rebase.c:1865
+#: builtin/rebase.c:1887
#, c-format
msgid "invalid upstream '%s'"
msgstr "无效的上游 '%s'"
-#: builtin/rebase.c:1871
+#: builtin/rebase.c:1893
msgid "Could not create new root commit"
msgstr "ä¸èƒ½åˆ›å»ºæ–°çš„æ ¹æ交"
-#: builtin/rebase.c:1889
+#: builtin/rebase.c:1919
+#, c-format
+msgid "'%s': need exactly one merge base with branch"
+msgstr "'%s':åªéœ€è¦ä¸Žåˆ†æ”¯çš„一个åˆå¹¶åŸºçº¿"
+
+#: builtin/rebase.c:1922
#, c-format
msgid "'%s': need exactly one merge base"
msgstr "'%s':åªéœ€è¦ä¸€ä¸ªåˆå¹¶åŸºçº¿"
-#: builtin/rebase.c:1896
+#: builtin/rebase.c:1930
#, c-format
msgid "Does not point to a valid commit '%s'"
msgstr "没有指å‘一个有效的æ交 '%s'"
-#: builtin/rebase.c:1921
+#: builtin/rebase.c:1955
#, c-format
msgid "fatal: no such branch/commit '%s'"
msgstr "致命错误:无此分支/æ交 '%s'"
-#: builtin/rebase.c:1929 builtin/submodule--helper.c:38
+#: builtin/rebase.c:1963 builtin/submodule--helper.c:38
#: builtin/submodule--helper.c:1934
#, c-format
msgid "No such ref: %s"
msgstr "没有这样的引用:%s"
-#: builtin/rebase.c:1940
+#: builtin/rebase.c:1974
msgid "Could not resolve HEAD to a revision"
msgstr "无法将 HEAD 解æžä¸ºä¸€ä¸ªç‰ˆæœ¬"
-#: builtin/rebase.c:1981
+#: builtin/rebase.c:2012
msgid "Cannot autostash"
msgstr "无法 autostash"
-#: builtin/rebase.c:1984
+#: builtin/rebase.c:2015
#, c-format
msgid "Unexpected stash response: '%s'"
msgstr "æ„外的 stash å“应:'%s'"
-#: builtin/rebase.c:1990
+#: builtin/rebase.c:2021
#, c-format
msgid "Could not create directory for '%s'"
msgstr "ä¸èƒ½ä¸º '%s' 创建目录"
-#: builtin/rebase.c:1993
+#: builtin/rebase.c:2024
#, c-format
msgid "Created autostash: %s\n"
msgstr "创建了 autostash:%s\n"
-#: builtin/rebase.c:1996
+#: builtin/rebase.c:2027
msgid "could not reset --hard"
msgstr "无法 reset --hard"
-#: builtin/rebase.c:1997 builtin/reset.c:114
-#, c-format
-msgid "HEAD is now at %s"
-msgstr "HEAD 现在ä½äºŽ %s"
-
-#: builtin/rebase.c:2013
+#: builtin/rebase.c:2036
msgid "Please commit or stash them."
msgstr "请æ交或贮è—修改。"
-#: builtin/rebase.c:2040
+#: builtin/rebase.c:2063
#, c-format
msgid "could not parse '%s'"
msgstr "æ— æ³•è§£æž '%s'"
-#: builtin/rebase.c:2053
+#: builtin/rebase.c:2076
#, c-format
msgid "could not switch to %s"
msgstr "无法切æ¢åˆ° %s"
-#: builtin/rebase.c:2064
+#: builtin/rebase.c:2087
msgid "HEAD is up to date."
msgstr "HEAD 是最新的。"
-#: builtin/rebase.c:2066
+#: builtin/rebase.c:2089
#, c-format
msgid "Current branch %s is up to date.\n"
msgstr "当å‰åˆ†æ”¯ %s 是最新的。\n"
-#: builtin/rebase.c:2074
+#: builtin/rebase.c:2097
msgid "HEAD is up to date, rebase forced."
msgstr "HEAD 是最新的,强制å˜åŸºã€‚"
-#: builtin/rebase.c:2076
+#: builtin/rebase.c:2099
#, c-format
msgid "Current branch %s is up to date, rebase forced.\n"
msgstr "当å‰åˆ†æ”¯ %s 是最新的,强制å˜åŸºã€‚\n"
-#: builtin/rebase.c:2084
+#: builtin/rebase.c:2107
msgid "The pre-rebase hook refused to rebase."
msgstr "pre-rebase é’©å­æ‹’ç»äº†å˜åŸºæ“作。"
-#: builtin/rebase.c:2091
+#: builtin/rebase.c:2114
#, c-format
msgid "Changes to %s:\n"
msgstr "到 %s çš„å˜æ›´ï¼š\n"
-#: builtin/rebase.c:2094
+#: builtin/rebase.c:2117
#, c-format
msgid "Changes from %s to %s:\n"
msgstr "从 %s 到 %s çš„å˜æ›´ï¼š\n"
-#: builtin/rebase.c:2119
+#: builtin/rebase.c:2142
#, c-format
msgid "First, rewinding head to replay your work on top of it...\n"
msgstr "首先,回退头指针以便在其上é‡æ”¾æ‚¨çš„工作...\n"
-#: builtin/rebase.c:2128
+#: builtin/rebase.c:2151
msgid "Could not detach HEAD"
msgstr "无法分离头指针"
-#: builtin/rebase.c:2137
+#: builtin/rebase.c:2160
#, c-format
msgid "Fast-forwarded %s to %s.\n"
msgstr "快进 %s 到 %s。\n"
@@ -17453,7 +17543,7 @@ msgstr "快进 %s 到 %s。\n"
msgid "git receive-pack <git-dir>"
msgstr "git receive-pack <仓库目录>"
-#: builtin/receive-pack.c:832
+#: builtin/receive-pack.c:830
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"
@@ -17479,7 +17569,7 @@ msgstr ""
"è‹¥è¦å±è”½æ­¤ä¿¡æ¯ä¸”ä¿æŒé»˜è®¤è¡Œä¸ºï¼Œè®¾ç½® 'receive.denyCurrentBranch'\n"
"é…ç½®å˜é‡ä¸º 'refuse'。"
-#: builtin/receive-pack.c:852
+#: builtin/receive-pack.c:850
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"
@@ -17498,11 +17588,11 @@ msgstr ""
"\n"
"è‹¥è¦å±è”½æ­¤ä¿¡æ¯ï¼Œæ‚¨å¯ä»¥è®¾ç½®å®ƒä¸º 'refuse'。"
-#: builtin/receive-pack.c:1938
+#: builtin/receive-pack.c:1936
msgid "quiet"
msgstr "é™é»˜æ¨¡å¼"
-#: builtin/receive-pack.c:1952
+#: builtin/receive-pack.c:1950
msgid "You must specify a directory."
msgstr "您必须指定一个目录。"
@@ -18071,11 +18161,11 @@ msgstr "冗长输出;必须置于å­å‘½ä»¤ä¹‹å‰"
msgid "Unknown subcommand: %s"
msgstr "未知å­å‘½ä»¤ï¼š%s"
-#: builtin/repack.c:22
+#: builtin/repack.c:23
msgid "git repack [<options>]"
msgstr "git repack [<选项>]"
-#: builtin/repack.c:27
+#: builtin/repack.c:28
msgid ""
"Incremental repacks are incompatible with bitmap indexes. Use\n"
"--no-write-bitmap-index or disable the pack.writebitmaps configuration."
@@ -18083,111 +18173,111 @@ msgstr ""
"å¢žé‡ repack å’Œ bitmap 索引ä¸å…¼å®¹ã€‚ 使用 --no-write-bitmap-index\n"
"或ç¦ç”¨ pack.writebitmaps é…置。"
-#: builtin/repack.c:190
+#: builtin/repack.c:191
msgid "could not start pack-objects to repack promisor objects"
msgstr "无法开始 pack-objects æ¥é‡æ–°æ‰“包 promisor 对象"
-#: builtin/repack.c:229 builtin/repack.c:408
+#: builtin/repack.c:230 builtin/repack.c:409
msgid "repack: Expecting full hex object ID lines only from pack-objects."
msgstr "repack:期望æ¥è‡ª pack-objects 的完整å六进制对象 ID。"
-#: builtin/repack.c:246
+#: builtin/repack.c:247
msgid "could not finish pack-objects to repack promisor objects"
msgstr "æ— æ³•å®Œæˆ pack-objects æ¥é‡æ–°æ‰“包 promisor 对象"
-#: builtin/repack.c:284
+#: builtin/repack.c:285
msgid "pack everything in a single pack"
msgstr "所有内容打包到一个包文件中"
-#: builtin/repack.c:286
+#: builtin/repack.c:287
msgid "same as -a, and turn unreachable objects loose"
msgstr "å’Œ -a 相åŒï¼Œå¹¶å°†ä¸å¯è¾¾çš„对象设为æ¾æ•£å¯¹è±¡"
-#: builtin/repack.c:289
+#: builtin/repack.c:290
msgid "remove redundant packs, and run git-prune-packed"
msgstr "删除多余的包,è¿è¡Œ git-prune-packed"
-#: builtin/repack.c:291
+#: builtin/repack.c:292
msgid "pass --no-reuse-delta to git-pack-objects"
msgstr "å‘ git-pack-objects 传递å‚æ•° --no-reuse-delta"
-#: builtin/repack.c:293
+#: builtin/repack.c:294
msgid "pass --no-reuse-object to git-pack-objects"
msgstr "å‘ git-pack-objects 传递å‚æ•° --no-reuse-object"
-#: builtin/repack.c:295
+#: builtin/repack.c:296
msgid "do not run git-update-server-info"
msgstr "ä¸è¿è¡Œ git-update-server-info"
-#: builtin/repack.c:298
+#: builtin/repack.c:299
msgid "pass --local to git-pack-objects"
msgstr "å‘ git-pack-objects 传递å‚æ•° --local"
-#: builtin/repack.c:300
+#: builtin/repack.c:301
msgid "write bitmap index"
msgstr "写 bitmap 索引"
-#: builtin/repack.c:302
+#: builtin/repack.c:303
msgid "pass --delta-islands to git-pack-objects"
msgstr "å‘ git-pack-objects 传递å‚æ•° --delta-islands"
-#: builtin/repack.c:303
+#: builtin/repack.c:304
msgid "approxidate"
msgstr "近似日期"
-#: builtin/repack.c:304
+#: builtin/repack.c:305
msgid "with -A, do not loosen objects older than this"
msgstr "使用 -A,ä¸è¦å°†æ—©äºŽç»™å®šæ—¶é—´çš„对象过期"
-#: builtin/repack.c:306
+#: builtin/repack.c:307
msgid "with -a, repack unreachable objects"
msgstr "使用 -a ,é‡æ–°å¯¹ä¸å¯è¾¾å¯¹è±¡æ‰“包"
-#: builtin/repack.c:308
+#: builtin/repack.c:309
msgid "size of the window used for delta compression"
msgstr "用于增é‡åŽ‹ç¼©çš„窗å£å€¼"
-#: builtin/repack.c:309 builtin/repack.c:315
+#: builtin/repack.c:310 builtin/repack.c:316
msgid "bytes"
msgstr "字节"
-#: builtin/repack.c:310
+#: builtin/repack.c:311
msgid "same as the above, but limit memory size instead of entries count"
msgstr "和上é¢çš„相似,但é™åˆ¶å†…存大å°è€Œéžæ¡ç›®æ•°"
-#: builtin/repack.c:312
+#: builtin/repack.c:313
msgid "limits the maximum delta depth"
msgstr "é™åˆ¶æœ€å¤§å¢žé‡æ·±åº¦"
-#: builtin/repack.c:314
+#: builtin/repack.c:315
msgid "limits the maximum number of threads"
msgstr "é™åˆ¶æœ€å¤§çº¿ç¨‹æ•°"
-#: builtin/repack.c:316
+#: builtin/repack.c:317
msgid "maximum size of each packfile"
msgstr "æ¯ä¸ªåŒ…文件的最大尺寸"
-#: builtin/repack.c:318
+#: builtin/repack.c:319
msgid "repack objects in packs marked with .keep"
msgstr "对标记为 .keep 的包中的对象é‡æ–°æ‰“包"
-#: builtin/repack.c:320
+#: builtin/repack.c:321
msgid "do not repack this pack"
msgstr "ä¸è¦å¯¹è¯¥åŒ…文件é‡æ–°æ‰“包"
-#: builtin/repack.c:330
+#: builtin/repack.c:331
msgid "cannot delete packs in a precious-objects repo"
msgstr "ä¸èƒ½åˆ é™¤çå“仓库中的打包文件"
-#: builtin/repack.c:334
+#: builtin/repack.c:335
msgid "--keep-unreachable and -A are incompatible"
msgstr "--keep-unreachable å’Œ -A ä¸å…¼å®¹"
-#: builtin/repack.c:417
+#: builtin/repack.c:418
msgid "Nothing new to pack."
msgstr "没有新的è¦æ‰“包。"
-#: builtin/repack.c:478
+#: builtin/repack.c:479
#, c-format
msgid ""
"WARNING: Some packs in use have been renamed by\n"
@@ -18203,7 +18293,7 @@ msgstr ""
"警告:并且å°è¯•é‡å‘½å改回原有文件åçš„æ“作也失败。\n"
"警告:请手动将 %s 下的这些文件é‡å‘½å:\n"
-#: builtin/repack.c:526
+#: builtin/repack.c:527
#, c-format
msgid "failed to remove '%s'"
msgstr "删除 '%s' 失败"
@@ -18311,8 +18401,8 @@ msgstr "无法对 %s 执行 fstat"
msgid "unable to write object to database"
msgstr "无法å‘æ•°æ®åº“写入对象"
-#: builtin/replace.c:322 builtin/replace.c:377 builtin/replace.c:422
-#: builtin/replace.c:452
+#: builtin/replace.c:322 builtin/replace.c:378 builtin/replace.c:423
+#: builtin/replace.c:453
#, c-format
msgid "not a valid object name: '%s'"
msgstr "ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„对象å:'%s'"
@@ -18331,53 +18421,53 @@ msgstr "编辑对象文件失败"
msgid "new object is the same as the old one: '%s'"
msgstr "新对象和旧对象相åŒï¼š'%s'"
-#: builtin/replace.c:383
+#: builtin/replace.c:384
#, c-format
msgid "could not parse %s as a commit"
msgstr "无法将 %s 解æžä¸ºä¸€ä¸ªæ交"
-#: builtin/replace.c:414
+#: builtin/replace.c:415
#, c-format
msgid "bad mergetag in commit '%s'"
msgstr "æ交 '%s' 中å«æœ‰æŸåçš„åˆå¹¶æ ‡ç­¾"
-#: builtin/replace.c:416
+#: builtin/replace.c:417
#, c-format
msgid "malformed mergetag in commit '%s'"
msgstr "æ交 '%s' 中å«æœ‰æ ¼å¼é”™è¯¯çš„åˆå¹¶æ ‡ç­¾"
-#: builtin/replace.c:428
+#: builtin/replace.c:429
#, c-format
msgid ""
"original commit '%s' contains mergetag '%s' that is discarded; use --edit "
"instead of --graft"
msgstr "原始æ交 '%s' 包å«å·²ç»ä¸¢å¼ƒçš„åˆå¹¶æ ‡ç­¾ '%s',使用 --edit 代替 --graft"
-#: builtin/replace.c:467
+#: builtin/replace.c:468
#, c-format
msgid "the original commit '%s' has a gpg signature"
msgstr "原始æ交 '%s' 中有一个 gpg ç­¾å"
-#: builtin/replace.c:468
+#: builtin/replace.c:469
msgid "the signature will be removed in the replacement commit!"
msgstr "在替æ¢çš„æ交中签å将被移除ï¼"
-#: builtin/replace.c:478
+#: builtin/replace.c:479
#, c-format
msgid "could not write replacement commit for: '%s'"
msgstr "ä¸èƒ½ä¸º '%s' 写替æ¢æ交"
-#: builtin/replace.c:486
+#: builtin/replace.c:487
#, c-format
msgid "graft for '%s' unnecessary"
msgstr "对 '%s' 移æ¤æ²¡æœ‰å¿…è¦"
-#: builtin/replace.c:490
+#: builtin/replace.c:491
#, c-format
msgid "new commit is the same as the old one: '%s'"
msgstr "æ–°æ交和旧的一样:'%s'"
-#: builtin/replace.c:525
+#: builtin/replace.c:526
#, c-format
msgid ""
"could not convert the following graft(s):\n"
@@ -18386,71 +18476,71 @@ msgstr ""
"ä¸èƒ½è½¬æ¢ä¸‹åˆ—移æ¤ï¼š\n"
"%s"
-#: builtin/replace.c:546
+#: builtin/replace.c:547
msgid "list replace refs"
msgstr "列出替æ¢çš„引用"
-#: builtin/replace.c:547
+#: builtin/replace.c:548
msgid "delete replace refs"
msgstr "删除替æ¢çš„引用"
-#: builtin/replace.c:548
+#: builtin/replace.c:549
msgid "edit existing object"
msgstr "编辑现存的对象"
-#: builtin/replace.c:549
+#: builtin/replace.c:550
msgid "change a commit's parents"
msgstr "修改一个æ交的父æ交"
-#: builtin/replace.c:550
+#: builtin/replace.c:551
msgid "convert existing graft file"
msgstr "转æ¢çŽ°å­˜çš„移æ¤æ–‡ä»¶"
-#: builtin/replace.c:551
+#: builtin/replace.c:552
msgid "replace the ref if it exists"
msgstr "如果存在则替æ¢å¼•ç”¨"
-#: builtin/replace.c:553
+#: builtin/replace.c:554
msgid "do not pretty-print contents for --edit"
msgstr "ä¸è¦ä¸º --edit æ“作美观显示内容"
-#: builtin/replace.c:554
+#: builtin/replace.c:555
msgid "use this format"
msgstr "使用此格å¼"
-#: builtin/replace.c:567
+#: builtin/replace.c:568
msgid "--format cannot be used when not listing"
msgstr "ä¸åˆ—出时ä¸èƒ½ä½¿ç”¨ --format"
-#: builtin/replace.c:575
+#: builtin/replace.c:576
msgid "-f only makes sense when writing a replacement"
msgstr "åªæœ‰å†™ä¸€ä¸ªæ›¿æ¢æ—¶ -f æ‰æœ‰æ„义"
-#: builtin/replace.c:579
+#: builtin/replace.c:580
msgid "--raw only makes sense with --edit"
msgstr "--raw åªæœ‰å’Œ --edit 共用æ‰æœ‰æ„义"
-#: builtin/replace.c:585
+#: builtin/replace.c:586
msgid "-d needs at least one argument"
msgstr "-d 需è¦è‡³å°‘一个å‚æ•°"
-#: builtin/replace.c:591
+#: builtin/replace.c:592
msgid "bad number of arguments"
msgstr "错误的å‚数个数"
-#: builtin/replace.c:597
+#: builtin/replace.c:598
msgid "-e needs exactly one argument"
msgstr "-e 需è¦ä¸”仅需è¦ä¸€ä¸ªå‚æ•°"
-#: builtin/replace.c:603
+#: builtin/replace.c:604
msgid "-g needs at least one argument"
msgstr "-g 需è¦è‡³å°‘一个å‚æ•°"
-#: builtin/replace.c:609
+#: builtin/replace.c:610
msgid "--convert-graft-file takes no argument"
msgstr "--convert-graft-file ä¸å¸¦å‚æ•°"
-#: builtin/replace.c:615
+#: builtin/replace.c:616
msgid "only one pattern can be given with -l"
msgstr "åªèƒ½ä¸º -l æ供一个模å¼"
@@ -18517,14 +18607,19 @@ msgstr "无法找到 HEAD 指å‘的树。"
msgid "Failed to find tree of %s."
msgstr "无法找到 %s 指å‘的树。"
+#: builtin/reset.c:114
+#, c-format
+msgid "HEAD is now at %s"
+msgstr "HEAD 现在ä½äºŽ %s"
+
# 译者:汉字之间无空格,故删除%så‰åŽç©ºæ ¼
#: builtin/reset.c:193
#, c-format
msgid "Cannot do a %s reset in the middle of a merge."
msgstr "在åˆå¹¶è¿‡ç¨‹ä¸­ä¸èƒ½åš%sé‡ç½®æ“作。"
-#: builtin/reset.c:293 builtin/stash.c:514 builtin/stash.c:589
-#: builtin/stash.c:613
+#: builtin/reset.c:293 builtin/stash.c:520 builtin/stash.c:595
+#: builtin/stash.c:619
msgid "be quiet, only report errors"
msgstr "安é™æ¨¡å¼ï¼ŒåªæŠ¥å‘Šé”™è¯¯"
@@ -18607,24 +18702,19 @@ msgstr "ä¸èƒ½é‡ç½®ç´¢å¼•æ–‡ä»¶è‡³ç‰ˆæœ¬ '%s'。"
msgid "Could not write new index file."
msgstr "ä¸èƒ½å†™å…¥æ–°çš„索引文件。"
-#: builtin/rev-list.c:412
+#: builtin/rev-list.c:411
msgid "cannot combine --exclude-promisor-objects and --missing"
msgstr "ä¸èƒ½åŒæ—¶ä½¿ç”¨ --exclude-promisor-objects å’Œ --missing 选项"
-#: builtin/rev-list.c:473
+#: builtin/rev-list.c:472
msgid "object filtering requires --objects"
msgstr "å¯¹è±¡è¿‡æ»¤éœ€è¦ --objects"
-#: builtin/rev-list.c:476
-#, c-format
-msgid "invalid sparse value '%s'"
-msgstr "无效的稀ç–值 '%s'"
-
-#: builtin/rev-list.c:527
+#: builtin/rev-list.c:522
msgid "rev-list does not support display of notes"
msgstr "rev-list ä¸æ”¯æŒæ˜¾ç¤ºæ³¨è§£"
-#: builtin/rev-list.c:530
+#: builtin/rev-list.c:525
msgid "cannot combine --use-bitmap-index with object filtering"
msgstr "ä¸èƒ½å°† --use-bitmap-index 和对象过滤组åˆä½¿ç”¨"
@@ -19155,134 +19245,134 @@ msgstr "索引中有冲çªã€‚å°è¯•ä¸ç”¨ --index。"
msgid "could not save index tree"
msgstr "ä¸èƒ½ä¿å­˜ç´¢å¼•æ ‘"
-#: builtin/stash.c:434
+#: builtin/stash.c:436
msgid "could not restore untracked files from stash"
msgstr "无法从贮è—æ¡ç›®ä¸­æ¢å¤æœªè·Ÿè¸ªæ–‡ä»¶"
-#: builtin/stash.c:448
+#: builtin/stash.c:450
#, c-format
msgid "Merging %s with %s"
msgstr "正在åˆå¹¶ %s å’Œ %s"
-#: builtin/stash.c:458 git-legacy-stash.sh:680
+#: builtin/stash.c:460 git-legacy-stash.sh:680
msgid "Index was not unstashed."
msgstr "索引未从贮è—中æ¢å¤ã€‚"
-#: builtin/stash.c:516 builtin/stash.c:615
+#: builtin/stash.c:522 builtin/stash.c:621
msgid "attempt to recreate the index"
msgstr "å°è¯•é‡å»ºç´¢å¼•"
-#: builtin/stash.c:549
+#: builtin/stash.c:555
#, c-format
msgid "Dropped %s (%s)"
msgstr "丢弃了 %s(%s)"
-#: builtin/stash.c:552
+#: builtin/stash.c:558
#, c-format
msgid "%s: Could not drop stash entry"
msgstr "%s:无法丢弃贮è—æ¡ç›®"
-#: builtin/stash.c:577
+#: builtin/stash.c:583
#, c-format
msgid "'%s' is not a stash reference"
msgstr "'%s' ä¸æ˜¯ä¸€ä¸ªè´®è—引用"
-#: builtin/stash.c:627 git-legacy-stash.sh:694
+#: builtin/stash.c:633 git-legacy-stash.sh:694
msgid "The stash entry is kept in case you need it again."
msgstr "è´®è—æ¡ç›®è¢«ä¿ç•™ä»¥å¤‡æ‚¨å†æ¬¡éœ€è¦ã€‚"
-#: builtin/stash.c:650 git-legacy-stash.sh:712
+#: builtin/stash.c:656 git-legacy-stash.sh:712
msgid "No branch name specified"
msgstr "未指定分支å"
-#: builtin/stash.c:790 builtin/stash.c:827
+#: builtin/stash.c:796 builtin/stash.c:833
#, c-format
msgid "Cannot update %s with %s"
msgstr "无法用 %2$s 更新 %1$s"
-#: builtin/stash.c:808 builtin/stash.c:1461 builtin/stash.c:1497
+#: builtin/stash.c:814 builtin/stash.c:1470 builtin/stash.c:1506
msgid "stash message"
msgstr "è´®è—说明"
-#: builtin/stash.c:818
+#: builtin/stash.c:824
msgid "\"git stash store\" requires one <commit> argument"
msgstr "\"git stash store\" 需è¦ä¸€ä¸ª <æ交> å‚æ•°"
-#: builtin/stash.c:1040 git-legacy-stash.sh:217
+#: builtin/stash.c:1046 git-legacy-stash.sh:217
msgid "No changes selected"
msgstr "没有选择å˜æ›´"
-#: builtin/stash.c:1136 git-legacy-stash.sh:150
+#: builtin/stash.c:1145 git-legacy-stash.sh:150
msgid "You do not have the initial commit yet"
msgstr "您尚未建立åˆå§‹æ交"
-#: builtin/stash.c:1163 git-legacy-stash.sh:165
+#: builtin/stash.c:1172 git-legacy-stash.sh:165
msgid "Cannot save the current index state"
msgstr "无法ä¿å­˜å½“å‰ç´¢å¼•çŠ¶æ€"
-#: builtin/stash.c:1172 git-legacy-stash.sh:180
+#: builtin/stash.c:1181 git-legacy-stash.sh:180
msgid "Cannot save the untracked files"
msgstr "无法ä¿å­˜æœªè·Ÿè¸ªæ–‡ä»¶"
-#: builtin/stash.c:1183 builtin/stash.c:1192 git-legacy-stash.sh:200
+#: builtin/stash.c:1192 builtin/stash.c:1201 git-legacy-stash.sh:200
#: git-legacy-stash.sh:213
msgid "Cannot save the current worktree state"
msgstr "无法ä¿å­˜å½“å‰å·¥ä½œåŒºçŠ¶æ€"
-#: builtin/stash.c:1220 git-legacy-stash.sh:233
+#: builtin/stash.c:1229 git-legacy-stash.sh:233
msgid "Cannot record working tree state"
msgstr "ä¸èƒ½è®°å½•å·¥ä½œåŒºçŠ¶æ€"
-#: builtin/stash.c:1269 git-legacy-stash.sh:337
+#: builtin/stash.c:1278 git-legacy-stash.sh:337
msgid "Can't use --patch and --include-untracked or --all at the same time"
msgstr "ä¸èƒ½åŒæ—¶ä½¿ç”¨å‚æ•° --patch å’Œ --include-untracked 或 --all"
-#: builtin/stash.c:1285
+#: builtin/stash.c:1294
msgid "Did you forget to 'git add'?"
msgstr "您是å¦å¿˜äº†æ‰§è¡Œ 'git add'?"
-#: builtin/stash.c:1300 git-legacy-stash.sh:345
+#: builtin/stash.c:1309 git-legacy-stash.sh:345
msgid "No local changes to save"
msgstr "没有è¦ä¿å­˜çš„本地修改"
-#: builtin/stash.c:1307 git-legacy-stash.sh:350
+#: builtin/stash.c:1316 git-legacy-stash.sh:350
msgid "Cannot initialize stash"
msgstr "无法åˆå§‹åŒ–è´®è—"
-#: builtin/stash.c:1322 git-legacy-stash.sh:354
+#: builtin/stash.c:1331 git-legacy-stash.sh:354
msgid "Cannot save the current status"
msgstr "无法ä¿å­˜å½“å‰çŠ¶æ€"
-#: builtin/stash.c:1327
+#: builtin/stash.c:1336
#, c-format
msgid "Saved working directory and index state %s"
msgstr "ä¿å­˜å·¥ä½œç›®å½•å’Œç´¢å¼•çŠ¶æ€ %s"
-#: builtin/stash.c:1417 git-legacy-stash.sh:384
+#: builtin/stash.c:1426 git-legacy-stash.sh:384
msgid "Cannot remove worktree changes"
msgstr "无法删除工作区å˜æ›´"
-#: builtin/stash.c:1452 builtin/stash.c:1488
+#: builtin/stash.c:1461 builtin/stash.c:1497
msgid "keep index"
msgstr "ä¿æŒç´¢å¼•"
-#: builtin/stash.c:1454 builtin/stash.c:1490
+#: builtin/stash.c:1463 builtin/stash.c:1499
msgid "stash in patch mode"
msgstr "以补ä¸æ¨¡å¼è´®è—"
-#: builtin/stash.c:1455 builtin/stash.c:1491
+#: builtin/stash.c:1464 builtin/stash.c:1500
msgid "quiet mode"
msgstr "é™é»˜æ¨¡å¼"
-#: builtin/stash.c:1457 builtin/stash.c:1493
+#: builtin/stash.c:1466 builtin/stash.c:1502
msgid "include untracked files in stash"
msgstr "è´®è—中包å«æœªè·Ÿè¸ªæ–‡ä»¶"
-#: builtin/stash.c:1459 builtin/stash.c:1495
+#: builtin/stash.c:1468 builtin/stash.c:1504
msgid "include ignore files"
msgstr "包å«å¿½ç•¥çš„文件"
-#: builtin/stash.c:1555
+#: builtin/stash.c:1564
#, c-format
msgid "could not exec %s"
msgstr "ä¸èƒ½æ‰§è¡Œ %s"
@@ -19642,8 +19732,8 @@ msgid "don't print cloning progress"
msgstr "ä¸è¦è¾“出克隆进度"
#: builtin/submodule--helper.c:1877
-msgid "git submodule--helper update_clone [--prefix=<path>] [<path>...]"
-msgstr "git submodule--helper update_clone [--prefix=<路径>] [<路径>...]"
+msgid "git submodule--helper update-clone [--prefix=<path>] [<path>...]"
+msgstr "git submodule--helper update-clone [--prefix=<路径>] [<路径>...]"
#: builtin/submodule--helper.c:1890
msgid "bad value for update parameter"
@@ -19694,7 +19784,7 @@ msgstr "git submodule--helper config --check-writeable"
msgid "please make sure that the .gitmodules file is in the working tree"
msgstr "请确认 .gitmodules 文件在工作区里"
-#: builtin/submodule--helper.c:2235 git.c:434 git.c:684
+#: builtin/submodule--helper.c:2235 git.c:433 git.c:683
#, c-format
msgid "%s doesn't support --super-prefix"
msgstr "%s ä¸æ”¯æŒ --super-prefix"
@@ -20013,153 +20103,153 @@ msgstr " OK"
msgid "git update-index [<options>] [--] [<file>...]"
msgstr "git update-index [<选项>] [--] [<文件>...]"
-#: builtin/update-index.c:971
+#: builtin/update-index.c:972
msgid "continue refresh even when index needs update"
msgstr "当索引需è¦æ›´æ–°æ—¶ç»§ç»­åˆ·æ–°"
-#: builtin/update-index.c:974
+#: builtin/update-index.c:975
msgid "refresh: ignore submodules"
msgstr "刷新:忽略å­æ¨¡ç»„"
-#: builtin/update-index.c:977
+#: builtin/update-index.c:978
msgid "do not ignore new files"
msgstr "ä¸å¿½ç•¥æ–°çš„文件"
-#: builtin/update-index.c:979
+#: builtin/update-index.c:980
msgid "let files replace directories and vice-versa"
msgstr "让文件替æ¢ç›®å½•ï¼ˆå之亦然)"
-#: builtin/update-index.c:981
+#: builtin/update-index.c:982
msgid "notice files missing from worktree"
msgstr "通知文件从工作区丢失"
-#: builtin/update-index.c:983
+#: builtin/update-index.c:984
msgid "refresh even if index contains unmerged entries"
msgstr "å³ä½¿ç´¢å¼•åŒºåŒ…å«æœªåˆå¹¶çš„æ¡ç›®ä¹Ÿæ‰§è¡Œåˆ·æ–°"
-#: builtin/update-index.c:986
+#: builtin/update-index.c:987
msgid "refresh stat information"
msgstr "刷新统计信æ¯"
-#: builtin/update-index.c:990
+#: builtin/update-index.c:991
msgid "like --refresh, but ignore assume-unchanged setting"
msgstr "类似于 --refresh,但是忽略 assume-unchanged 设置"
-#: builtin/update-index.c:994
+#: builtin/update-index.c:995
msgid "<mode>,<object>,<path>"
msgstr "<å­˜å–模å¼>,<对象>,<路径>"
-#: builtin/update-index.c:995
+#: builtin/update-index.c:996
msgid "add the specified entry to the index"
msgstr "添加指定的æ¡ç›®åˆ°ç´¢å¼•åŒº"
-#: builtin/update-index.c:1005
+#: builtin/update-index.c:1006
msgid "mark files as \"not changing\""
msgstr "把文件标记为 \"没有å˜æ›´\""
-#: builtin/update-index.c:1008
+#: builtin/update-index.c:1009
msgid "clear assumed-unchanged bit"
msgstr "清除 assumed-unchanged ä½"
-#: builtin/update-index.c:1011
+#: builtin/update-index.c:1012
msgid "mark files as \"index-only\""
msgstr "把文件标记为 \"仅索引\""
-#: builtin/update-index.c:1014
+#: builtin/update-index.c:1015
msgid "clear skip-worktree bit"
msgstr "清除 skip-worktree ä½"
-#: builtin/update-index.c:1017
+#: builtin/update-index.c:1018
msgid "add to index only; do not add content to object database"
msgstr "åªæ·»åŠ åˆ°ç´¢å¼•åŒºï¼›ä¸æ·»åŠ å¯¹è±¡åˆ°å¯¹è±¡åº“"
-#: builtin/update-index.c:1019
+#: builtin/update-index.c:1020
msgid "remove named paths even if present in worktree"
msgstr "å³ä½¿å­˜åœ¨å·¥ä½œåŒºé‡Œï¼Œä¹Ÿåˆ é™¤è·¯å¾„"
-#: builtin/update-index.c:1021
+#: builtin/update-index.c:1022
msgid "with --stdin: input lines are terminated by null bytes"
msgstr "æºå¸¦ --stdin:输入的行以 null 字符终止"
-#: builtin/update-index.c:1023
+#: builtin/update-index.c:1024
msgid "read list of paths to be updated from standard input"
msgstr "从标准输入中读å–需è¦æ›´æ–°çš„路径列表"
-#: builtin/update-index.c:1027
+#: builtin/update-index.c:1028
msgid "add entries from standard input to the index"
msgstr "从标准输入添加æ¡ç›®åˆ°ç´¢å¼•åŒº"
-#: builtin/update-index.c:1031
+#: builtin/update-index.c:1032
msgid "repopulate stages #2 and #3 for the listed paths"
msgstr "为指定文件é‡æ–°ç”Ÿæˆç¬¬2和第3暂存区"
-#: builtin/update-index.c:1035
+#: builtin/update-index.c:1036
msgid "only update entries that differ from HEAD"
msgstr "åªæ›´æ–°ä¸Ž HEAD ä¸åŒçš„æ¡ç›®"
-#: builtin/update-index.c:1039
+#: builtin/update-index.c:1040
msgid "ignore files missing from worktree"
msgstr "忽略工作区丢失的文件"
-#: builtin/update-index.c:1042
+#: builtin/update-index.c:1043
msgid "report actions to standard output"
msgstr "在标准输出显示æ“作"
-#: builtin/update-index.c:1044
+#: builtin/update-index.c:1045
msgid "(for porcelains) forget saved unresolved conflicts"
msgstr "(for porcelains) 忘记ä¿å­˜çš„未解决的冲çª"
-#: builtin/update-index.c:1048
+#: builtin/update-index.c:1049
msgid "write index in this format"
msgstr "以这ç§æ ¼å¼å†™å…¥ç´¢å¼•åŒº"
-#: builtin/update-index.c:1050
+#: builtin/update-index.c:1051
msgid "enable or disable split index"
msgstr "å¯ç”¨æˆ–ç¦ç”¨ç´¢å¼•æ‹†åˆ†"
-#: builtin/update-index.c:1052
+#: builtin/update-index.c:1053
msgid "enable/disable untracked cache"
msgstr "å¯ç”¨/ç¦ç”¨å¯¹æœªè·Ÿè¸ªæ–‡ä»¶çš„缓存"
-#: builtin/update-index.c:1054
+#: builtin/update-index.c:1055
msgid "test if the filesystem supports untracked cache"
msgstr "测试文件系统是å¦æ”¯æŒæœªè·Ÿè¸ªæ–‡ä»¶ç¼“å­˜"
-#: builtin/update-index.c:1056
+#: builtin/update-index.c:1057
msgid "enable untracked cache without testing the filesystem"
msgstr "无需检测文件系统,å¯ç”¨å¯¹æœªè·Ÿè¸ªæ–‡ä»¶çš„缓存"
-#: builtin/update-index.c:1058
+#: builtin/update-index.c:1059
msgid "write out the index even if is not flagged as changed"
msgstr "å³ä½¿æ²¡æœ‰è¢«æ ‡è®°ä¸ºå·²æ›´æ”¹ï¼Œä¹Ÿè¦å†™å‡ºç´¢å¼•"
-#: builtin/update-index.c:1060
+#: builtin/update-index.c:1061
msgid "enable or disable file system monitor"
msgstr "å¯ç”¨æˆ–ç¦ç”¨æ–‡ä»¶ç³»ç»Ÿç›‘控"
-#: builtin/update-index.c:1062
+#: builtin/update-index.c:1063
msgid "mark files as fsmonitor valid"
msgstr "标记文件为 fsmonitor 有效"
-#: builtin/update-index.c:1065
+#: builtin/update-index.c:1066
msgid "clear fsmonitor valid bit"
msgstr "清除 fsmonitor 有效ä½"
-#: builtin/update-index.c:1168
+#: builtin/update-index.c:1169
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:1177
+#: builtin/update-index.c:1178
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:1188
+#: builtin/update-index.c:1190
msgid ""
"core.untrackedCache is set to true; remove or change it, if you really want "
"to disable the untracked cache"
@@ -20167,11 +20257,11 @@ msgstr ""
"core.untrackedCache 被设置为 true。如果您确实è¦ç¦ç”¨æœªè·Ÿè¸ªæ–‡ä»¶ç¼“存,请删除或修"
"改它。"
-#: builtin/update-index.c:1192
+#: builtin/update-index.c:1194
msgid "Untracked cache disabled"
msgstr "缓存未跟踪文件被ç¦ç”¨"
-#: builtin/update-index.c:1200
+#: builtin/update-index.c:1202
msgid ""
"core.untrackedCache is set to false; remove or change it, if you really want "
"to enable the untracked cache"
@@ -20179,25 +20269,25 @@ msgstr ""
"core.untrackedCache 被设置为 false。如果您确实è¦å¯ç”¨æœªè·Ÿè¸ªæ–‡ä»¶ç¼“存,请删除或"
"修改它。"
-#: builtin/update-index.c:1204
+#: builtin/update-index.c:1206
#, c-format
msgid "Untracked cache enabled for '%s'"
msgstr "缓存未跟踪文件在 '%s' å¯ç”¨"
-#: builtin/update-index.c:1212
+#: builtin/update-index.c:1214
msgid "core.fsmonitor is unset; set it if you really want to enable fsmonitor"
msgstr "core.fsmonitor 未设置;如果想è¦å¯ç”¨ fsmonitor 请设置该选项"
-#: builtin/update-index.c:1216
+#: builtin/update-index.c:1218
msgid "fsmonitor enabled"
msgstr "fsmonitor 被å¯ç”¨"
-#: builtin/update-index.c:1219
+#: builtin/update-index.c:1221
msgid ""
"core.fsmonitor is set; remove it if you really want to disable fsmonitor"
msgstr "core.fsmonitor 已设置;如果想è¦ç¦ç”¨ fsmonitor 请移除该选项"
-#: builtin/update-index.c:1223
+#: builtin/update-index.c:1225
msgid "fsmonitor disabled"
msgstr "fsmonitor 被ç¦ç”¨"
@@ -20289,90 +20379,90 @@ msgstr "git verify-tag [-v | --verbose] [--format=<æ ¼å¼>] <标签>..."
msgid "print tag contents"
msgstr "打å°æ ‡ç­¾å†…容"
-#: builtin/worktree.c:18
+#: builtin/worktree.c:17
msgid "git worktree add [<options>] <path> [<commit-ish>]"
msgstr "git worktree add [<选项>] <路径> [<æ交>]"
-#: builtin/worktree.c:19
+#: builtin/worktree.c:18
msgid "git worktree list [<options>]"
msgstr "git worktree list [<选项>]"
-#: builtin/worktree.c:20
+#: builtin/worktree.c:19
msgid "git worktree lock [<options>] <path>"
msgstr "git worktree lock [<选项>] <路径>"
-#: builtin/worktree.c:21
+#: builtin/worktree.c:20
msgid "git worktree move <worktree> <new-path>"
msgstr "git worktree move <工作区> <新路径>"
-#: builtin/worktree.c:22
+#: builtin/worktree.c:21
msgid "git worktree prune [<options>]"
msgstr "git worktree prune [<选项>]"
-#: builtin/worktree.c:23
+#: builtin/worktree.c:22
msgid "git worktree remove [<options>] <worktree>"
msgstr "git worktree remove [<选项>] <工作区>"
-#: builtin/worktree.c:24
+#: builtin/worktree.c:23
msgid "git worktree unlock <path>"
msgstr "git worktree unlock <路径>"
-#: builtin/worktree.c:61 builtin/worktree.c:899
+#: builtin/worktree.c:60 builtin/worktree.c:898
#, c-format
msgid "failed to delete '%s'"
msgstr "删除 '%s' 失败"
-#: builtin/worktree.c:80
+#: builtin/worktree.c:79
#, c-format
msgid "Removing worktrees/%s: not a valid directory"
msgstr "删除工作区/%s:ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„目录"
-#: builtin/worktree.c:86
+#: builtin/worktree.c:85
#, c-format
msgid "Removing worktrees/%s: gitdir file does not exist"
msgstr "删除 worktrees/%s:gitdir 文件ä¸å­˜åœ¨"
-#: builtin/worktree.c:91 builtin/worktree.c:100
+#: builtin/worktree.c:90 builtin/worktree.c:99
#, c-format
msgid "Removing worktrees/%s: unable to read gitdir file (%s)"
msgstr "删除 worktrees/%sï¼šæ— æ³•è¯»å– gitdir 文件 (%s)"
-#: builtin/worktree.c:110
+#: builtin/worktree.c:109
#, c-format
msgid ""
"Removing worktrees/%s: short read (expected %<PRIuMAX> bytes, read "
"%<PRIuMAX>)"
msgstr "删除工作树/%s:读å–过短(期望 %<PRIuMAX> å­—èŠ‚ï¼Œè¯»å– %<PRIuMAX>)"
-#: builtin/worktree.c:118
+#: builtin/worktree.c:117
#, c-format
msgid "Removing worktrees/%s: invalid gitdir file"
msgstr "删除 worktrees/%s:无效的 gitdir 文件"
-#: builtin/worktree.c:127
+#: builtin/worktree.c:126
#, c-format
msgid "Removing worktrees/%s: gitdir file points to non-existent location"
msgstr "删除 worktrees/%s:gitdir 文件的指å‘ä¸å­˜åœ¨"
-#: builtin/worktree.c:166
+#: builtin/worktree.c:165
msgid "report pruned working trees"
msgstr "报告清除的工作区"
-#: builtin/worktree.c:168
+#: builtin/worktree.c:167
msgid "expire working trees older than <time>"
msgstr "将早于 <时间> 的工作区过期"
-#: builtin/worktree.c:235
+#: builtin/worktree.c:234
#, c-format
msgid "'%s' already exists"
msgstr "'%s' å·²ç»å­˜åœ¨"
-#: builtin/worktree.c:252
+#: builtin/worktree.c:251
#, c-format
msgid "unable to re-add worktree '%s'"
msgstr "无法å†æ¬¡æ·»åŠ å·¥ä½œåŒº '%s'"
-#: builtin/worktree.c:257
+#: builtin/worktree.c:256
#, c-format
msgid ""
"'%s' is a missing but locked worktree;\n"
@@ -20381,7 +20471,7 @@ msgstr ""
"'%s' 是一个丢失但é”定的工作区,使用\n"
"'add -f -f' 覆盖,或 'unlock' 和 'prune' 或 'remove' 清除"
-#: builtin/worktree.c:259
+#: builtin/worktree.c:258
#, c-format
msgid ""
"'%s' is a missing but already registered worktree;\n"
@@ -20390,120 +20480,120 @@ msgstr ""
"'%s' 是一个丢失但已ç»æ³¨å†Œçš„工作区,使用\n"
"'add -f' 覆盖,或 'prune' 或 'remove' 清除"
-#: builtin/worktree.c:309
+#: builtin/worktree.c:308
#, c-format
msgid "could not create directory of '%s'"
msgstr "ä¸èƒ½åˆ›å»ºç›®å½• '%s'"
-#: builtin/worktree.c:440 builtin/worktree.c:446
+#: builtin/worktree.c:439 builtin/worktree.c:445
#, c-format
msgid "Preparing worktree (new branch '%s')"
msgstr "准备工作区(新分支 '%s')"
-#: builtin/worktree.c:442
+#: builtin/worktree.c:441
#, c-format
msgid "Preparing worktree (resetting branch '%s'; was at %s)"
msgstr "准备工作区(é‡ç½®åˆ†æ”¯ '%s',之å‰ä¸º %s)"
-#: builtin/worktree.c:451
+#: builtin/worktree.c:450
#, c-format
msgid "Preparing worktree (checking out '%s')"
msgstr "准备工作区(检出 '%s')"
-#: builtin/worktree.c:457
+#: builtin/worktree.c:456
#, c-format
msgid "Preparing worktree (detached HEAD %s)"
msgstr "准备工作区(分离头指针 %s)"
-#: builtin/worktree.c:498
+#: builtin/worktree.c:497
msgid "checkout <branch> even if already checked out in other worktree"
msgstr "检出 <分支>,å³ä½¿å·²ç»è¢«æ£€å‡ºåˆ°å…¶å®ƒå·¥ä½œåŒº"
-#: builtin/worktree.c:501
+#: builtin/worktree.c:500
msgid "create a new branch"
msgstr "创建一个新分支"
-#: builtin/worktree.c:503
+#: builtin/worktree.c:502
msgid "create or reset a branch"
msgstr "创建或é‡ç½®ä¸€ä¸ªåˆ†æ”¯"
-#: builtin/worktree.c:505
+#: builtin/worktree.c:504
msgid "populate the new working tree"
msgstr "生æˆæ–°çš„工作区"
-#: builtin/worktree.c:506
+#: builtin/worktree.c:505
msgid "keep the new working tree locked"
msgstr "é”定新工作区"
-#: builtin/worktree.c:509
+#: builtin/worktree.c:508
msgid "set up tracking mode (see git-branch(1))"
msgstr "设置跟踪模å¼ï¼ˆå‚è§ git-branch(1))"
-#: builtin/worktree.c:512
+#: builtin/worktree.c:511
msgid "try to match the new branch name with a remote-tracking branch"
msgstr "å°è¯•ä¸ºæ–°åˆ†æ”¯å匹é…一个远程跟踪分支"
-#: builtin/worktree.c:520
+#: builtin/worktree.c:519
msgid "-b, -B, and --detach are mutually exclusive"
msgstr "-bã€-B å’Œ --detach 是互斥的"
-#: builtin/worktree.c:581
+#: builtin/worktree.c:580
msgid "--[no-]track can only be used if a new branch is created"
msgstr "åªèƒ½åœ¨åˆ›å»ºæ–°åˆ†æ”¯æ—¶ä½¿ç”¨é€‰é¡¹ --[no-]track "
-#: builtin/worktree.c:681
+#: builtin/worktree.c:680
msgid "reason for locking"
msgstr "é”定原因"
-#: builtin/worktree.c:693 builtin/worktree.c:726 builtin/worktree.c:800
-#: builtin/worktree.c:927
+#: builtin/worktree.c:692 builtin/worktree.c:725 builtin/worktree.c:799
+#: builtin/worktree.c:926
#, c-format
msgid "'%s' is not a working tree"
msgstr "'%s' ä¸æ˜¯ä¸€ä¸ªå·¥ä½œåŒº"
-#: builtin/worktree.c:695 builtin/worktree.c:728
+#: builtin/worktree.c:694 builtin/worktree.c:727
msgid "The main working tree cannot be locked or unlocked"
msgstr "主工作区无法被加é”或解é”"
-#: builtin/worktree.c:700
+#: builtin/worktree.c:699
#, c-format
msgid "'%s' is already locked, reason: %s"
msgstr "'%s' 已被é”定,原因:%s"
-#: builtin/worktree.c:702
+#: builtin/worktree.c:701
#, c-format
msgid "'%s' is already locked"
msgstr "'%s' 已被é”定"
-#: builtin/worktree.c:730
+#: builtin/worktree.c:729
#, c-format
msgid "'%s' is not locked"
msgstr "'%s' 未被é”定"
-#: builtin/worktree.c:771
+#: builtin/worktree.c:770
msgid "working trees containing submodules cannot be moved or removed"
msgstr "ä¸èƒ½ç§»åŠ¨æˆ–删除包å«å­æ¨¡ç»„的工作区"
-#: builtin/worktree.c:779
+#: builtin/worktree.c:778
msgid "force move even if worktree is dirty or locked"
msgstr "强制移动,å³ä½¿å·¥ä½œåŒºæ˜¯è„的或已é”定"
-#: builtin/worktree.c:802 builtin/worktree.c:929
+#: builtin/worktree.c:801 builtin/worktree.c:928
#, c-format
msgid "'%s' is a main working tree"
msgstr "'%s' 是一个主工作区"
-#: builtin/worktree.c:807
+#: builtin/worktree.c:806
#, c-format
msgid "could not figure out destination name from '%s'"
msgstr "无法从 '%s' 算出目标å称"
-#: builtin/worktree.c:813
+#: builtin/worktree.c:812
#, c-format
msgid "target '%s' already exists"
msgstr "目标 '%s' 已存在"
-#: builtin/worktree.c:821
+#: builtin/worktree.c:820
#, c-format
msgid ""
"cannot move a locked working tree, lock reason: %s\n"
@@ -20512,7 +20602,7 @@ msgstr ""
"无法移动一个é”定的工作区,é”定原因:%s\n"
"使用 'move -f -f' 覆盖或先解é”"
-#: builtin/worktree.c:823
+#: builtin/worktree.c:822
msgid ""
"cannot move a locked working tree;\n"
"use 'move -f -f' to override or unlock first"
@@ -20520,36 +20610,36 @@ msgstr ""
"无法移动一个é”定的工作区,\n"
"使用 'move -f -f' 覆盖或先解é”"
-#: builtin/worktree.c:826
+#: builtin/worktree.c:825
#, c-format
msgid "validation failed, cannot move working tree: %s"
msgstr "验è¯å¤±è´¥ï¼Œæ— æ³•ç§»åŠ¨å·¥ä½œåŒºï¼š%s"
-#: builtin/worktree.c:831
+#: builtin/worktree.c:830
#, c-format
msgid "failed to move '%s' to '%s'"
msgstr "移动 '%s' 到 '%s' 失败"
-#: builtin/worktree.c:879
+#: builtin/worktree.c:878
#, c-format
msgid "failed to run 'git status' on '%s'"
msgstr "在 '%s' 中执行 'git status' 失败"
-#: builtin/worktree.c:883
+#: builtin/worktree.c:882
#, c-format
-msgid "'%s' is dirty, use --force to delete it"
-msgstr "'%s' 是è„的,使用 --force 删除"
+msgid "'%s' contains modified or untracked files, use --force to delete it"
+msgstr "'%s' 包å«ä¿®æ”¹æˆ–未跟踪的文件,使用 --force 删除"
-#: builtin/worktree.c:888
+#: builtin/worktree.c:887
#, c-format
msgid "failed to run 'git status' on '%s', code %d"
msgstr "在 '%s' 中执行 'git status' å¤±è´¥ï¼Œé€€å‡ºç  %d"
-#: builtin/worktree.c:911
+#: builtin/worktree.c:910
msgid "force removal even if worktree is dirty or locked"
msgstr "强制删除,å³ä½¿å·¥ä½œåŒºæ˜¯è„的或已é”定"
-#: builtin/worktree.c:934
+#: builtin/worktree.c:933
#, c-format
msgid ""
"cannot remove a locked working tree, lock reason: %s\n"
@@ -20558,7 +20648,7 @@ msgstr ""
"无法删除一个é”定的工作区,é”定原因:%s\n"
"使用 'remove -f -f' 覆盖或先解é”"
-#: builtin/worktree.c:936
+#: builtin/worktree.c:935
msgid ""
"cannot remove a locked working tree;\n"
"use 'remove -f -f' to override or unlock first"
@@ -20566,7 +20656,7 @@ msgstr ""
"无法删除一个é”定的工作区,\n"
"使用 'remove -f -f' 覆盖或先解é”"
-#: builtin/worktree.c:939
+#: builtin/worktree.c:938
#, c-format
msgid "validation failed, cannot remove working tree: %s"
msgstr "验è¯å¤±è´¥ï¼Œæ— æ³•åˆ é™¤å·¥ä½œåŒºï¼š%s"
@@ -20587,6 +20677,16 @@ msgstr "å°† <å‰ç¼€> å­ç›®å½•å†…容写到一个树对象"
msgid "only useful for debugging"
msgstr "åªå¯¹è°ƒè¯•æœ‰ç”¨"
+#: fast-import.c:3118
+#, c-format
+msgid "Expected 'mark' command, got %s"
+msgstr "预期 'mark' 命令,得到 %s"
+
+#: fast-import.c:3123
+#, c-format
+msgid "Expected 'to' command, got %s"
+msgstr "预期 'to' 命令,得到 %s"
+
#: credential-cache--daemon.c:223
#, c-format
msgid ""
@@ -20698,39 +20798,39 @@ msgstr ""
"别å '%s' 修改环境å˜é‡ã€‚您å¯ä»¥ä½¿ç”¨åœ¨åˆ«å中\n"
"使用 '!git'"
-#: git.c:377
+#: git.c:376
#, c-format
msgid "empty alias for %s"
msgstr "%s 的空别å"
-#: git.c:380
+#: git.c:379
#, c-format
msgid "recursive alias: %s"
msgstr "递归的别å:%s"
-#: git.c:460
+#: git.c:459
msgid "write failure on standard output"
msgstr "在标准输出写入失败"
-#: git.c:462
+#: git.c:461
msgid "unknown write failure on standard output"
msgstr "到标准输出的未知写入错误"
-#: git.c:464
+#: git.c:463
msgid "close failed on standard output"
msgstr "标准输出关闭失败"
-#: git.c:793
+#: git.c:792
#, c-format
msgid "alias loop detected: expansion of '%s' does not terminate:%s"
msgstr "检测到别å循环:'%s'的扩展未终止:%s"
-#: git.c:843
+#: git.c:842
#, c-format
msgid "cannot handle %s as a builtin"
msgstr "ä¸èƒ½ä½œä¸ºå†…ç½®å‘½ä»¤å¤„ç† %s"
-#: git.c:856
+#: git.c:855
#, c-format
msgid ""
"usage: %s\n"
@@ -20739,12 +20839,12 @@ msgstr ""
"用法:%s\n"
"\n"
-#: git.c:876
+#: git.c:875
#, c-format
msgid "expansion of alias '%s' failed; '%s' is not a git command\n"
msgstr "展开别å命令 '%s' 失败,'%s' ä¸æ˜¯ä¸€ä¸ª git 命令\n"
-#: git.c:888
+#: git.c:887
#, c-format
msgid "failed to run command '%s': %s\n"
msgstr "è¿è¡Œå‘½ä»¤ '%s' 失败:%s\n"
@@ -20762,30 +20862,30 @@ msgstr "ä¸æ”¯æŒå§”托控制,因为 cURL < 7.22.0"
msgid "Public key pinning not supported with cURL < 7.44.0"
msgstr "ä¸æ”¯æŒå…¬é’¥æ–‡ä»¶é”定,因为 cURL < 7.44.0"
-#: http.c:876
+#: http.c:878
msgid "CURLSSLOPT_NO_REVOKE not supported with cURL < 7.44.0"
msgstr "ä¸æ”¯æŒ CURLSSLOPT_NO_REVOKE,因为 cURL < 7.44.0"
-#: http.c:949
+#: http.c:951
msgid "Protocol restrictions not supported with cURL < 7.19.4"
msgstr "ä¸æ”¯æŒåè®®é™åˆ¶ï¼Œå› ä¸º cURL < 7.19.4"
-#: http.c:1085
+#: http.c:1088
#, c-format
msgid "Unsupported SSL backend '%s'. Supported SSL backends:"
msgstr "ä¸æ”¯æŒçš„ SSL åŽç«¯ '%s'。支æŒçš„ SSL åŽç«¯ï¼š"
-#: http.c:1092
+#: http.c:1095
#, c-format
msgid "Could not set SSL backend to '%s': cURL was built without SSL backends"
msgstr "无法设置 SSL åŽç«¯ä¸º '%s':cURL: cURL 没有使用 SSL åŽç«¯æž„建"
-#: http.c:1096
+#: http.c:1099
#, c-format
msgid "Could not set SSL backend to '%s': already set"
msgstr "无法将 SSL åŽç«¯è®¾ç½®ä¸º '%s':已ç»è®¾ç½®"
-#: http.c:1965
+#: http.c:1968
#, c-format
msgid ""
"unable to update url base from redirection:\n"
@@ -20796,128 +20896,128 @@ msgstr ""
" 请求:%s\n"
" é‡å®šå‘:%s"
-#: remote-curl.c:157
+#: remote-curl.c:166
#, c-format
msgid "invalid quoting in push-option value: '%s'"
msgstr "在 push-option å–值中无效的引å·ï¼š'%s'"
-#: remote-curl.c:254
+#: remote-curl.c:263
#, c-format
msgid "%sinfo/refs not valid: is this a git repository?"
msgstr "%sinfo/refs 无效:这是一个 git 仓库么?"
-#: remote-curl.c:355
+#: remote-curl.c:364
msgid "invalid server response; expected service, got flush packet"
msgstr "无效的æœåŠ¡ç«¯å“应。预期æœåŠ¡ï¼Œå¾—到 flush 包"
-#: remote-curl.c:386
+#: remote-curl.c:395
#, c-format
msgid "invalid server response; got '%s'"
msgstr "无效的æœåŠ¡ç«¯å“应,得到 '%s'"
-#: remote-curl.c:446
+#: remote-curl.c:455
#, c-format
msgid "repository '%s' not found"
msgstr "仓库 '%s' 未找到"
-#: remote-curl.c:450
+#: remote-curl.c:459
#, c-format
msgid "Authentication failed for '%s'"
msgstr "'%s' 鉴æƒå¤±è´¥"
-#: remote-curl.c:454
+#: remote-curl.c:463
#, c-format
msgid "unable to access '%s': %s"
msgstr "无法访问 '%s':%s"
-#: remote-curl.c:460
+#: remote-curl.c:469
#, c-format
msgid "redirecting to %s"
msgstr "é‡å®šå‘到 %s"
-#: remote-curl.c:584
+#: remote-curl.c:593
msgid "shouldn't have EOF when not gentle on EOF"
msgstr "当没有设置温和处ç†æ–‡ä»¶ç»“æŸç¬¦ï¼ˆEOF)时,ä¸åº”该有文件结æŸç¬¦"
-#: remote-curl.c:664
+#: remote-curl.c:673
msgid "unable to rewind rpc post data - try increasing http.postBuffer"
msgstr "无法倒回 rpc post æ•°æ® - å°è¯•å¢žåŠ  http.postBuffer"
-#: remote-curl.c:724
+#: remote-curl.c:733
#, c-format
msgid "RPC failed; %s"
msgstr "RPC 失败。%s"
-#: remote-curl.c:764
+#: remote-curl.c:773
msgid "cannot handle pushes this big"
msgstr "ä¸èƒ½å¤„ç†è¿™ä¹ˆå¤§çš„推é€"
-#: remote-curl.c:879
+#: remote-curl.c:888
#, c-format
msgid "cannot deflate request; zlib deflate error %d"
msgstr "ä¸èƒ½åŽ‹ç¼©è¯·æ±‚,zlib 压缩错误 %d"
-#: remote-curl.c:883
+#: remote-curl.c:892
#, c-format
msgid "cannot deflate request; zlib end error %d"
msgstr "ä¸èƒ½åŽ‹ç¼©è¯·æ±‚,zlib 结æŸé”™è¯¯ %d"
-#: remote-curl.c:1014
+#: remote-curl.c:1023
msgid "dumb http transport does not support shallow capabilities"
msgstr "å“‘ http 传输ä¸æ”¯æŒ shalllow 能力"
-#: remote-curl.c:1028
+#: remote-curl.c:1037
msgid "fetch failed."
msgstr "获å–失败。"
-#: remote-curl.c:1076
+#: remote-curl.c:1085
msgid "cannot fetch by sha1 over smart http"
msgstr "无法通过智能 HTTP èŽ·å– sha1"
-#: remote-curl.c:1120 remote-curl.c:1126
+#: remote-curl.c:1129 remote-curl.c:1135
#, c-format
msgid "protocol error: expected sha/ref, got '%s'"
msgstr "å议错误:期望 sha/ref,å´å¾—到 '%s'"
-#: remote-curl.c:1138 remote-curl.c:1252
+#: remote-curl.c:1147 remote-curl.c:1261
#, c-format
msgid "http transport does not support %s"
msgstr "http 传输åè®®ä¸æ”¯æŒ %s"
-#: remote-curl.c:1174
+#: remote-curl.c:1183
msgid "git-http-push failed"
msgstr "git-http-push 失败"
-#: remote-curl.c:1360
+#: remote-curl.c:1367
msgid "remote-curl: usage: git remote-curl <remote> [<url>]"
msgstr "remote-curl:用法:git remote-curl <远程> [<url>]"
-#: remote-curl.c:1392
+#: remote-curl.c:1399
msgid "remote-curl: error reading command stream from git"
msgstr "remote-curl:错误读å–æ¥è‡ª git 的命令æµ"
-#: remote-curl.c:1399
+#: remote-curl.c:1406
msgid "remote-curl: fetch attempted without a local repo"
msgstr "remote-curl:å°è¯•æ²¡æœ‰æœ¬åœ°ä»“库下获å–"
-#: remote-curl.c:1439
+#: remote-curl.c:1446
#, c-format
msgid "remote-curl: unknown command '%s' from git"
msgstr "remote-curl:未知的æ¥è‡ª git 的命令 '%s'"
-#: list-objects-filter-options.h:61
+#: list-objects-filter-options.h:85
msgid "args"
msgstr "å‚æ•°"
-#: list-objects-filter-options.h:62
+#: list-objects-filter-options.h:86
msgid "object filtering"
msgstr "对象过滤"
-#: parse-options.h:170
+#: parse-options.h:179
msgid "expiry-date"
msgstr "到期时间"
-#: parse-options.h:184
+#: parse-options.h:193
msgid "no-op (backward compatibility)"
msgstr "空æ“作(å‘åŽå…¼å®¹ï¼‰"
diff --git a/pretty.c b/pretty.c
index e4ed14e..b32f036 100644
--- a/pretty.c
+++ b/pretty.c
@@ -1239,11 +1239,9 @@ static size_t format_commit_one(struct strbuf *sb, /* in UTF-8 */
strbuf_addstr(sb, get_revision_mark(NULL, commit));
return 1;
case 'd':
- load_ref_decorations(NULL, DECORATE_SHORT_REFS);
format_decorations(sb, commit, c->auto_color);
return 1;
case 'D':
- load_ref_decorations(NULL, DECORATE_SHORT_REFS);
format_decorations_extended(sb, commit, c->auto_color, "", ", ", "");
return 1;
case 'S': /* tag/branch like --source */
diff --git a/progress.c b/progress.c
index 277db8a..0063559 100644
--- a/progress.c
+++ b/progress.c
@@ -45,6 +45,19 @@ struct progress {
static volatile sig_atomic_t progress_update;
+/*
+ * These are only intended for testing the progress output, i.e. exclusively
+ * for 'test-tool progress'.
+ */
+int progress_testing;
+uint64_t progress_test_ns = 0;
+void progress_test_force_update(void); /* To silence -Wmissing-prototypes */
+void progress_test_force_update(void)
+{
+ progress_update = 1;
+}
+
+
static void progress_interval(int signum)
{
progress_update = 1;
@@ -55,6 +68,9 @@ static void set_progress_signal(void)
struct sigaction sa;
struct itimerval v;
+ if (progress_testing)
+ return;
+
progress_update = 0;
memset(&sa, 0, sizeof(sa));
@@ -72,6 +88,10 @@ static void set_progress_signal(void)
static void clear_progress_signal(void)
{
struct itimerval v = {{0,},};
+
+ if (progress_testing)
+ return;
+
setitimer(ITIMER_REAL, &v, NULL);
signal(SIGALRM, SIG_IGN);
progress_update = 0;
@@ -88,6 +108,7 @@ static void display(struct progress *progress, uint64_t n, const char *done)
const char *tp;
struct strbuf *counters_sb = &progress->counters_sb;
int show_update = 0;
+ int last_count_len = counters_sb->len;
if (progress->delay && (!progress_update || --progress->delay))
return;
@@ -115,21 +136,27 @@ static void display(struct progress *progress, uint64_t n, const char *done)
if (show_update) {
if (is_foreground_fd(fileno(stderr)) || done) {
const char *eol = done ? done : "\r";
+ size_t clear_len = counters_sb->len < last_count_len ?
+ last_count_len - counters_sb->len + 1 :
+ 0;
+ /* The "+ 2" accounts for the ": ". */
+ size_t progress_line_len = progress->title_len +
+ counters_sb->len + 2;
+ int cols = term_columns();
- term_clear_line();
if (progress->split) {
- fprintf(stderr, " %s%s", counters_sb->buf,
- eol);
- } else if (!done &&
- /* The "+ 2" accounts for the ": ". */
- term_columns() < progress->title_len +
- counters_sb->len + 2) {
- fprintf(stderr, "%s:\n %s%s",
- progress->title, counters_sb->buf, eol);
+ fprintf(stderr, " %s%*s", counters_sb->buf,
+ (int) clear_len, eol);
+ } else if (!done && cols < progress_line_len) {
+ clear_len = progress->title_len + 1 < cols ?
+ cols - progress->title_len - 1 : 0;
+ fprintf(stderr, "%s:%*s\n %s%s",
+ progress->title, (int) clear_len, "",
+ counters_sb->buf, eol);
progress->split = 1;
} else {
- fprintf(stderr, "%s: %s%s", progress->title,
- counters_sb->buf, eol);
+ fprintf(stderr, "%s: %s%*s", progress->title,
+ counters_sb->buf, (int) clear_len, eol);
}
fflush(stderr);
}
@@ -147,6 +174,14 @@ static void throughput_string(struct strbuf *buf, uint64_t total,
strbuf_humanise_rate(buf, rate * 1024);
}
+static uint64_t progress_getnanotime(struct progress *progress)
+{
+ if (progress_testing)
+ return progress->start_ns + progress_test_ns;
+ else
+ return getnanotime();
+}
+
void display_throughput(struct progress *progress, uint64_t total)
{
struct throughput *tp;
@@ -157,7 +192,7 @@ void display_throughput(struct progress *progress, uint64_t total)
return;
tp = progress->throughput;
- now_ns = getnanotime();
+ now_ns = progress_getnanotime(progress);
if (!tp) {
progress->throughput = tp = xcalloc(1, sizeof(*tp));
@@ -289,7 +324,7 @@ void stop_progress_msg(struct progress **p_progress, const char *msg)
struct throughput *tp = progress->throughput;
if (tp) {
- uint64_t now_ns = getnanotime();
+ 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);
diff --git a/promisor-remote.c b/promisor-remote.c
new file mode 100644
index 0000000..9bd5b79
--- /dev/null
+++ b/promisor-remote.c
@@ -0,0 +1,268 @@
+#include "cache.h"
+#include "object-store.h"
+#include "promisor-remote.h"
+#include "config.h"
+#include "transport.h"
+
+static char *repository_format_partial_clone;
+static const char *core_partial_clone_filter_default;
+
+void set_repository_format_partial_clone(char *partial_clone)
+{
+ repository_format_partial_clone = xstrdup_or_null(partial_clone);
+}
+
+static int fetch_refs(const char *remote_name, struct ref *ref)
+{
+ struct remote *remote;
+ struct transport *transport;
+ int original_fetch_if_missing = fetch_if_missing;
+ int res;
+
+ fetch_if_missing = 0;
+ remote = remote_get(remote_name);
+ if (!remote->url[0])
+ die(_("Remote with no URL"));
+ transport = transport_get(remote, remote->url[0]);
+
+ transport_set_option(transport, TRANS_OPT_FROM_PROMISOR, "1");
+ transport_set_option(transport, TRANS_OPT_NO_DEPENDENTS, "1");
+ res = transport_fetch_refs(transport, ref);
+ fetch_if_missing = original_fetch_if_missing;
+
+ return res;
+}
+
+static int fetch_objects(const char *remote_name,
+ const struct object_id *oids,
+ int oid_nr)
+{
+ struct ref *ref = NULL;
+ int i;
+
+ for (i = 0; i < oid_nr; i++) {
+ struct ref *new_ref = alloc_ref(oid_to_hex(&oids[i]));
+ oidcpy(&new_ref->old_oid, &oids[i]);
+ new_ref->exact_oid = 1;
+ new_ref->next = ref;
+ ref = new_ref;
+ }
+ return fetch_refs(remote_name, ref);
+}
+
+static struct promisor_remote *promisors;
+static struct promisor_remote **promisors_tail = &promisors;
+
+static struct promisor_remote *promisor_remote_new(const char *remote_name)
+{
+ struct promisor_remote *r;
+
+ if (*remote_name == '/') {
+ warning(_("promisor remote name cannot begin with '/': %s"),
+ remote_name);
+ return NULL;
+ }
+
+ FLEX_ALLOC_STR(r, name, remote_name);
+
+ *promisors_tail = r;
+ promisors_tail = &r->next;
+
+ return r;
+}
+
+static struct promisor_remote *promisor_remote_lookup(const char *remote_name,
+ struct promisor_remote **previous)
+{
+ struct promisor_remote *r, *p;
+
+ for (p = NULL, r = promisors; r; p = r, r = r->next)
+ if (!strcmp(r->name, remote_name)) {
+ if (previous)
+ *previous = p;
+ return r;
+ }
+
+ return NULL;
+}
+
+static void promisor_remote_move_to_tail(struct promisor_remote *r,
+ struct promisor_remote *previous)
+{
+ if (r->next == NULL)
+ return;
+
+ if (previous)
+ previous->next = r->next;
+ else
+ promisors = r->next ? r->next : r;
+ r->next = NULL;
+ *promisors_tail = r;
+ promisors_tail = &r->next;
+}
+
+static int promisor_remote_config(const char *var, const char *value, void *data)
+{
+ const char *name;
+ int namelen;
+ const char *subkey;
+
+ if (!strcmp(var, "core.partialclonefilter"))
+ return git_config_string(&core_partial_clone_filter_default,
+ var, value);
+
+ if (parse_config_key(var, "remote", &name, &namelen, &subkey) < 0)
+ return 0;
+
+ if (!strcmp(subkey, "promisor")) {
+ char *remote_name;
+
+ if (!git_config_bool(var, value))
+ return 0;
+
+ remote_name = xmemdupz(name, namelen);
+
+ if (!promisor_remote_lookup(remote_name, NULL))
+ promisor_remote_new(remote_name);
+
+ free(remote_name);
+ return 0;
+ }
+ if (!strcmp(subkey, "partialclonefilter")) {
+ struct promisor_remote *r;
+ char *remote_name = xmemdupz(name, namelen);
+
+ r = promisor_remote_lookup(remote_name, NULL);
+ if (!r)
+ r = promisor_remote_new(remote_name);
+
+ free(remote_name);
+
+ if (!r)
+ return 0;
+
+ return git_config_string(&r->partial_clone_filter, var, value);
+ }
+
+ return 0;
+}
+
+static int initialized;
+
+static void promisor_remote_init(void)
+{
+ if (initialized)
+ return;
+ initialized = 1;
+
+ git_config(promisor_remote_config, NULL);
+
+ if (repository_format_partial_clone) {
+ struct promisor_remote *o, *previous;
+
+ o = promisor_remote_lookup(repository_format_partial_clone,
+ &previous);
+ if (o)
+ promisor_remote_move_to_tail(o, previous);
+ else
+ promisor_remote_new(repository_format_partial_clone);
+ }
+}
+
+static void promisor_remote_clear(void)
+{
+ while (promisors) {
+ struct promisor_remote *r = promisors;
+ promisors = promisors->next;
+ free(r);
+ }
+
+ promisors_tail = &promisors;
+}
+
+void promisor_remote_reinit(void)
+{
+ initialized = 0;
+ promisor_remote_clear();
+ promisor_remote_init();
+}
+
+struct promisor_remote *promisor_remote_find(const char *remote_name)
+{
+ promisor_remote_init();
+
+ if (!remote_name)
+ return promisors;
+
+ return promisor_remote_lookup(remote_name, NULL);
+}
+
+int has_promisor_remote(void)
+{
+ return !!promisor_remote_find(NULL);
+}
+
+static int remove_fetched_oids(struct repository *repo,
+ struct object_id **oids,
+ int oid_nr, int to_free)
+{
+ int i, remaining_nr = 0;
+ int *remaining = xcalloc(oid_nr, sizeof(*remaining));
+ struct object_id *old_oids = *oids;
+ struct object_id *new_oids;
+
+ for (i = 0; i < oid_nr; i++)
+ if (oid_object_info_extended(repo, &old_oids[i], NULL,
+ OBJECT_INFO_SKIP_FETCH_OBJECT)) {
+ remaining[i] = 1;
+ remaining_nr++;
+ }
+
+ if (remaining_nr) {
+ int j = 0;
+ new_oids = xcalloc(remaining_nr, sizeof(*new_oids));
+ for (i = 0; i < oid_nr; i++)
+ if (remaining[i])
+ oidcpy(&new_oids[j++], &old_oids[i]);
+ *oids = new_oids;
+ if (to_free)
+ free(old_oids);
+ }
+
+ free(remaining);
+
+ return remaining_nr;
+}
+
+int promisor_remote_get_direct(struct repository *repo,
+ const struct object_id *oids,
+ int oid_nr)
+{
+ struct promisor_remote *r;
+ struct object_id *remaining_oids = (struct object_id *)oids;
+ int remaining_nr = oid_nr;
+ int to_free = 0;
+ int res = -1;
+
+ promisor_remote_init();
+
+ for (r = promisors; r; r = r->next) {
+ if (fetch_objects(r->name, remaining_oids, remaining_nr) < 0) {
+ if (remaining_nr == 1)
+ continue;
+ remaining_nr = remove_fetched_oids(repo, &remaining_oids,
+ remaining_nr, to_free);
+ if (remaining_nr) {
+ to_free = 1;
+ continue;
+ }
+ }
+ res = 0;
+ break;
+ }
+
+ if (to_free)
+ free(remaining_oids);
+
+ return res;
+}
diff --git a/promisor-remote.h b/promisor-remote.h
new file mode 100644
index 0000000..737bac3
--- /dev/null
+++ b/promisor-remote.h
@@ -0,0 +1,33 @@
+#ifndef PROMISOR_REMOTE_H
+#define PROMISOR_REMOTE_H
+
+#include "repository.h"
+
+struct object_id;
+
+/*
+ * Promisor remote linked list
+ *
+ * Information in its fields come from remote.XXX config entries or
+ * from extensions.partialclone or core.partialclonefilter.
+ */
+struct promisor_remote {
+ struct promisor_remote *next;
+ const char *partial_clone_filter;
+ const char name[FLEX_ARRAY];
+};
+
+void promisor_remote_reinit(void);
+struct promisor_remote *promisor_remote_find(const char *remote_name);
+int has_promisor_remote(void);
+int promisor_remote_get_direct(struct repository *repo,
+ const struct object_id *oids,
+ int oid_nr);
+
+/*
+ * This should be used only once from setup.c to set the value we got
+ * from the extensions.partialclone config option.
+ */
+void set_repository_format_partial_clone(char *partial_clone);
+
+#endif /* PROMISOR_REMOTE_H */
diff --git a/quote.c b/quote.c
index 7f2aa6f..24a58ba 100644
--- a/quote.c
+++ b/quote.c
@@ -48,6 +48,12 @@ void sq_quote_buf_pretty(struct strbuf *dst, const char *src)
static const char ok_punct[] = "+,-./:=@_^";
const char *p;
+ /* Avoid losing a zero-length string by adding '' */
+ if (!*src) {
+ strbuf_addstr(dst, "''");
+ return;
+ }
+
for (p = src; *p; p++) {
if (!isalpha(*p) && !isdigit(*p) && !strchr(ok_punct, *p)) {
sq_quote_buf(dst, src);
@@ -84,12 +90,28 @@ void sq_quote_argv(struct strbuf *dst, const char **argv)
}
}
+/*
+ * Legacy function to append each argv value, quoted as necessasry,
+ * with whitespace before each value. This results in a leading
+ * space in the result.
+ */
void sq_quote_argv_pretty(struct strbuf *dst, const char **argv)
{
+ if (argv[0])
+ strbuf_addch(dst, ' ');
+ sq_append_quote_argv_pretty(dst, argv);
+}
+
+/*
+ * Append each argv value, quoted as necessary, with whitespace between them.
+ */
+void sq_append_quote_argv_pretty(struct strbuf *dst, const char **argv)
+{
int i;
for (i = 0; argv[i]; i++) {
- strbuf_addch(dst, ' ');
+ if (i > 0)
+ strbuf_addch(dst, ' ');
sq_quote_buf_pretty(dst, argv[i]);
}
}
diff --git a/quote.h b/quote.h
index fb08dc0..ca8ee31 100644
--- a/quote.h
+++ b/quote.h
@@ -40,6 +40,7 @@ void sq_quotef(struct strbuf *, const char *fmt, ...);
*/
void sq_quote_buf_pretty(struct strbuf *, const char *src);
void sq_quote_argv_pretty(struct strbuf *, const char **argv);
+void sq_append_quote_argv_pretty(struct strbuf *dst, const char **argv);
/* This unwraps what sq_quote() produces in place, but returns
* NULL if the input does not look like what sq_quote would have
diff --git a/range-diff.c b/range-diff.c
index ba1e9a4..7fed5a3 100644
--- a/range-diff.c
+++ b/range-diff.c
@@ -52,6 +52,7 @@ static int read_patches(const char *range, struct string_list *list)
argv_array_pushl(&cp.args, "log", "--no-color", "-p", "--no-merges",
"--reverse", "--date-order", "--decorate=no",
+ "--no-prefix",
/*
* Choose indicators that are not used anywhere
* else in diffs, but still look reasonable
@@ -111,7 +112,7 @@ static int read_patches(const char *range, struct string_list *list)
if (!util->diff_offset)
util->diff_offset = buf.len;
line[len - 1] = '\n';
- len = parse_git_diff_header(&root, &linenr, 1, line,
+ len = parse_git_diff_header(&root, &linenr, 0, line,
len, size, &patch);
if (len < 0)
die(_("could not parse git header '%.*s'"), (int)len, line);
@@ -217,8 +218,8 @@ static void find_exact_matches(struct string_list *a, struct string_list *b)
util->i = i;
util->patch = a->items[i].string;
util->diff = util->patch + util->diff_offset;
- hashmap_entry_init(util, strhash(util->diff));
- hashmap_add(&map, util);
+ hashmap_entry_init(&util->e, strhash(util->diff));
+ hashmap_add(&map, &util->e);
}
/* Now try to find exact matches in b */
@@ -228,8 +229,8 @@ static void find_exact_matches(struct string_list *a, struct string_list *b)
util->i = i;
util->patch = b->items[i].string;
util->diff = util->patch + util->diff_offset;
- hashmap_entry_init(util, strhash(util->diff));
- other = hashmap_remove(&map, util, NULL);
+ hashmap_entry_init(&util->e, strhash(util->diff));
+ other = hashmap_remove_entry(&map, util, e, NULL);
if (other) {
if (other->matching >= 0)
BUG("already assigned!");
@@ -239,7 +240,7 @@ static void find_exact_matches(struct string_list *a, struct string_list *b)
}
}
- hashmap_free(&map, 0);
+ hashmap_free(&map);
}
static void diffsize_consume(void *data, char *line, unsigned long len)
diff --git a/read-cache.c b/read-cache.c
index 52ffa8a..133f790 100644
--- a/read-cache.c
+++ b/read-cache.c
@@ -1276,7 +1276,7 @@ static int add_index_entry_with_check(struct index_state *istate, struct cache_e
*/
if (istate->cache_nr > 0 &&
strcmp(ce->name, istate->cache[istate->cache_nr - 1]->name) > 0)
- pos = -istate->cache_nr - 1;
+ pos = index_pos_to_insert_pos(istate->cache_nr);
else
pos = index_name_stage_pos(istate, ce->name, ce_namelen(ce), ce_stage(ce));
@@ -1472,6 +1472,27 @@ static void show_file(const char * fmt, const char * name, int in_porcelain,
printf(fmt, name);
}
+int repo_refresh_and_write_index(struct repository *repo,
+ unsigned int refresh_flags,
+ unsigned int write_flags,
+ int gentle,
+ const struct pathspec *pathspec,
+ char *seen, const char *header_msg)
+{
+ struct lock_file lock_file = LOCK_INIT;
+ int fd, ret = 0;
+
+ fd = repo_hold_locked_index(repo, &lock_file, 0);
+ if (!gentle && fd < 0)
+ return -1;
+ if (refresh_index(repo->index, refresh_flags, pathspec, seen, header_msg))
+ ret = 1;
+ if (0 <= fd && write_locked_index(repo->index, &lock_file, COMMIT_LOCK | write_flags))
+ ret = -1;
+ return ret;
+}
+
+
int refresh_index(struct index_state *istate, unsigned int flags,
const struct pathspec *pathspec,
char *seen, const char *header_msg)
@@ -1599,16 +1620,17 @@ struct cache_entry *refresh_cache_entry(struct index_state *istate,
#define INDEX_FORMAT_DEFAULT 3
-static unsigned int get_index_format_default(void)
+static unsigned int get_index_format_default(struct repository *r)
{
char *envversion = getenv("GIT_INDEX_VERSION");
char *endp;
- int value;
unsigned int version = INDEX_FORMAT_DEFAULT;
if (!envversion) {
- if (!git_config_get_int("index.version", &value))
- version = value;
+ prepare_repo_settings(r);
+
+ if (r->settings.index_version >= 0)
+ version = r->settings.index_version;
if (version < INDEX_FORMAT_LB || INDEX_FORMAT_UB < version) {
warning(_("index.version set, but the value is invalid.\n"
"Using version %i"), INDEX_FORMAT_DEFAULT);
@@ -1844,18 +1866,17 @@ static void check_ce_order(struct index_state *istate)
static void tweak_untracked_cache(struct index_state *istate)
{
- switch (git_config_get_untracked_cache()) {
- case -1: /* keep: do nothing */
- break;
- case 0: /* false */
+ struct repository *r = the_repository;
+
+ prepare_repo_settings(r);
+
+ if (r->settings.core_untracked_cache == UNTRACKED_CACHE_REMOVE) {
remove_untracked_cache(istate);
- break;
- case 1: /* true */
- add_untracked_cache(istate);
- break;
- default: /* unknown value: do nothing */
- break;
+ return;
}
+
+ if (r->settings.core_untracked_cache == UNTRACKED_CACHE_WRITE)
+ add_untracked_cache(istate);
}
static void tweak_split_index(struct index_state *istate)
@@ -1894,7 +1915,7 @@ static size_t estimate_cache_size(size_t ondisk_size, unsigned int entries)
/*
* Account for potential alignment differences.
*/
- per_entry += align_padding_size(sizeof(struct cache_entry), -sizeof(struct ondisk_cache_entry));
+ per_entry += align_padding_size(per_entry, 0);
return ondisk_size + entries * per_entry;
}
@@ -2765,7 +2786,7 @@ static int do_write_index(struct index_state *istate, struct tempfile *tempfile,
}
if (!istate->version) {
- istate->version = get_index_format_default();
+ istate->version = get_index_format_default(the_repository);
if (git_env_bool("GIT_TEST_SPLIT_INDEX", 0))
init_split_index(istate);
}
diff --git a/ref-filter.c b/ref-filter.c
index f27cfc8..6867e33 100644
--- a/ref-filter.c
+++ b/ref-filter.c
@@ -79,17 +79,20 @@ static struct expand_data {
} oi, oi_deref;
struct ref_to_worktree_entry {
- struct hashmap_entry ent; /* must be the first member! */
+ struct hashmap_entry ent;
struct worktree *wt; /* key is wt->head_ref */
};
static int ref_to_worktree_map_cmpfnc(const void *unused_lookupdata,
- const void *existing_hashmap_entry_to_test,
- const void *key,
+ const struct hashmap_entry *eptr,
+ const struct hashmap_entry *kptr,
const void *keydata_aka_refname)
{
- const struct ref_to_worktree_entry *e = existing_hashmap_entry_to_test;
- const struct ref_to_worktree_entry *k = key;
+ const struct ref_to_worktree_entry *e, *k;
+
+ e = container_of(eptr, const struct ref_to_worktree_entry, ent);
+ k = container_of(kptr, const struct ref_to_worktree_entry, ent);
+
return strcmp(e->wt->head_ref,
keydata_aka_refname ? keydata_aka_refname : k->wt->head_ref);
}
@@ -1028,7 +1031,7 @@ static const char *copy_name(const char *buf)
if (!strncmp(cp, " <", 2))
return xmemdupz(buf, cp - buf);
}
- return "";
+ return xstrdup("");
}
static const char *copy_email(const char *buf)
@@ -1036,10 +1039,10 @@ static const char *copy_email(const char *buf)
const char *email = strchr(buf, '<');
const char *eoemail;
if (!email)
- return "";
+ return xstrdup("");
eoemail = strchr(email, '>');
if (!eoemail)
- return "";
+ return xstrdup("");
return xmemdupz(email, eoemail + 1 - email);
}
@@ -1565,9 +1568,10 @@ static void populate_worktree_map(struct hashmap *map, struct worktree **worktre
struct ref_to_worktree_entry *entry;
entry = xmalloc(sizeof(*entry));
entry->wt = worktrees[i];
- hashmap_entry_init(entry, strhash(worktrees[i]->head_ref));
+ hashmap_entry_init(&entry->ent,
+ strhash(worktrees[i]->head_ref));
- hashmap_add(map, entry);
+ hashmap_add(map, &entry->ent);
}
}
}
@@ -1584,18 +1588,20 @@ static void lazy_init_worktree_map(void)
static char *get_worktree_path(const struct used_atom *atom, const struct ref_array_item *ref)
{
- struct hashmap_entry entry;
+ struct hashmap_entry entry, *e;
struct ref_to_worktree_entry *lookup_result;
lazy_init_worktree_map();
hashmap_entry_init(&entry, strhash(ref->refname));
- lookup_result = hashmap_get(&(ref_to_worktree_map.map), &entry, ref->refname);
+ e = hashmap_get(&(ref_to_worktree_map.map), &entry, ref->refname);
- if (lookup_result)
- return xstrdup(lookup_result->wt->path);
- else
+ if (!e)
return xstrdup("");
+
+ lookup_result = container_of(e, struct ref_to_worktree_entry, ent);
+
+ return xstrdup(lookup_result->wt->path);
}
/*
@@ -1766,7 +1772,7 @@ static int populate_value(struct ref_array_item *ref, struct strbuf *err)
* If it is a tag object, see if we use a value that derefs
* the object, and if we do grab the object it refers to.
*/
- oi_deref.oid = ((struct tag *)obj)->tagged->oid;
+ oi_deref.oid = *get_tagged_oid((struct tag *)obj);
/*
* NEEDSWORK: This derefs tag only once, which
@@ -1997,7 +2003,7 @@ static const struct object_id *match_points_at(struct oid_array *points_at,
if (!obj)
die(_("malformed object at '%s'"), refname);
if (obj->type == OBJ_TAG)
- tagged_oid = &((struct tag *)obj)->tagged->oid;
+ tagged_oid = get_tagged_oid((struct tag *)obj);
if (tagged_oid && oid_array_lookup(points_at, tagged_oid) >= 0)
return tagged_oid;
return NULL;
@@ -2166,7 +2172,8 @@ void ref_array_clear(struct ref_array *array)
used_atom_cnt = 0;
if (ref_to_worktree_map.worktrees) {
- hashmap_free(&(ref_to_worktree_map.map), 1);
+ hashmap_free_entries(&(ref_to_worktree_map.map),
+ struct ref_to_worktree_entry, ent);
free_worktrees(ref_to_worktree_map.worktrees);
ref_to_worktree_map.worktrees = NULL;
}
diff --git a/refs.c b/refs.c
index cd297ee..1ab0bb5 100644
--- a/refs.c
+++ b/refs.c
@@ -1772,7 +1772,7 @@ int resolve_gitlink_ref(const char *submodule, const char *refname,
struct ref_store_hash_entry
{
- struct hashmap_entry ent; /* must be the first member! */
+ struct hashmap_entry ent;
struct ref_store *refs;
@@ -1781,11 +1781,16 @@ struct ref_store_hash_entry
};
static int ref_store_hash_cmp(const void *unused_cmp_data,
- const void *entry, const void *entry_or_key,
+ const struct hashmap_entry *eptr,
+ const struct hashmap_entry *entry_or_key,
const void *keydata)
{
- const struct ref_store_hash_entry *e1 = entry, *e2 = entry_or_key;
- const char *name = keydata ? keydata : e2->name;
+ const struct ref_store_hash_entry *e1, *e2;
+ const char *name;
+
+ e1 = container_of(eptr, const struct ref_store_hash_entry, ent);
+ e2 = container_of(entry_or_key, const struct ref_store_hash_entry, ent);
+ name = keydata ? keydata : e2->name;
return strcmp(e1->name, name);
}
@@ -1796,7 +1801,7 @@ static struct ref_store_hash_entry *alloc_ref_store_hash_entry(
struct ref_store_hash_entry *entry;
FLEX_ALLOC_STR(entry, name, name);
- hashmap_entry_init(entry, strhash(name));
+ hashmap_entry_init(&entry->ent, strhash(name));
entry->refs = refs;
return entry;
}
@@ -1815,12 +1820,15 @@ static struct ref_store *lookup_ref_store_map(struct hashmap *map,
const char *name)
{
struct ref_store_hash_entry *entry;
+ unsigned int hash;
if (!map->tablesize)
/* It's initialized on demand in register_ref_store(). */
return NULL;
- entry = hashmap_get_from_hash(map, strhash(name), name);
+ hash = strhash(name);
+ entry = hashmap_get_entry_from_hash(map, hash, name,
+ struct ref_store_hash_entry, ent);
return entry ? entry->refs : NULL;
}
@@ -1863,10 +1871,13 @@ static void register_ref_store_map(struct hashmap *map,
struct ref_store *refs,
const char *name)
{
+ struct ref_store_hash_entry *entry;
+
if (!map->tablesize)
hashmap_init(map, ref_store_hash_cmp, NULL, 0);
- if (hashmap_put(map, alloc_ref_store_hash_entry(name, refs)))
+ entry = alloc_ref_store_hash_entry(name, refs);
+ if (hashmap_put(map, &entry->ent))
BUG("%s ref_store '%s' initialized twice", type, name);
}
diff --git a/refs/packed-backend.c b/refs/packed-backend.c
index c01c7f5..4458a0f 100644
--- a/refs/packed-backend.c
+++ b/refs/packed-backend.c
@@ -1012,14 +1012,23 @@ int packed_refs_lock(struct ref_store *ref_store, int flags, struct strbuf *err)
}
/*
- * Now that we hold the `packed-refs` lock, make sure that our
- * snapshot matches the current version of the file. Normally
- * `get_snapshot()` does that for us, but that function
- * assumes that when the file is locked, any existing snapshot
- * is still valid. We've just locked the file, but it might
- * have changed the moment *before* we locked it.
+ * There is a stat-validity problem might cause `update-ref -d`
+ * lost the newly commit of a ref, because a new `packed-refs`
+ * file might has the same on-disk file attributes such as
+ * timestamp, file size and inode value, but has a changed
+ * ref value.
+ *
+ * This could happen with a very small chance when
+ * `update-ref -d` is called and at the same time another
+ * `pack-refs --all` process is running.
+ *
+ * Now that we hold the `packed-refs` lock, it is important
+ * to make sure we could read the latest version of
+ * `packed-refs` file no matter we have just mmap it or not.
+ * So what need to do is clear the snapshot if we hold it
+ * already.
*/
- validate_snapshot(refs);
+ clear_snapshot(refs);
/*
* Now make sure that the packed-refs file as it exists in the
diff --git a/remote-curl.c b/remote-curl.c
index 051f266..350d92a 100644
--- a/remote-curl.c
+++ b/remote-curl.c
@@ -40,7 +40,8 @@ struct options {
push_cert : 2,
deepen_relative : 1,
from_promisor : 1,
- no_dependents : 1;
+ no_dependents : 1,
+ atomic : 1;
};
static struct options options;
static struct string_list cas_options = STRING_LIST_INIT_DUP;
@@ -148,6 +149,14 @@ static int set_option(const char *name, const char *value)
else
return -1;
return 0;
+ } else if (!strcmp(name, "atomic")) {
+ if (!strcmp(value, "true"))
+ options.atomic = 1;
+ else if (!strcmp(value, "false"))
+ options.atomic = 0;
+ else
+ return -1;
+ return 0;
} else if (!strcmp(name, "push-option")) {
if (*value != '"')
string_list_append(&options.push_options, value);
@@ -1154,7 +1163,7 @@ static void parse_fetch(struct strbuf *buf)
strbuf_reset(buf);
}
-static int push_dav(int nr_spec, char **specs)
+static int push_dav(int nr_spec, const char **specs)
{
struct child_process child = CHILD_PROCESS_INIT;
size_t i;
@@ -1175,7 +1184,7 @@ static int push_dav(int nr_spec, char **specs)
return 0;
}
-static int push_git(struct discovery *heads, int nr_spec, char **specs)
+static int push_git(struct discovery *heads, int nr_spec, const char **specs)
{
struct rpc_state rpc;
int i, err;
@@ -1196,6 +1205,8 @@ static int push_git(struct discovery *heads, int nr_spec, char **specs)
argv_array_push(&args, "--signed=yes");
else if (options.push_cert == SEND_PACK_PUSH_CERT_IF_ASKED)
argv_array_push(&args, "--signed=if-asked");
+ if (options.atomic)
+ argv_array_push(&args, "--atomic");
if (options.verbosity == 0)
argv_array_push(&args, "--quiet");
else if (options.verbosity > 1)
@@ -1225,7 +1236,7 @@ static int push_git(struct discovery *heads, int nr_spec, char **specs)
return err;
}
-static int push(int nr_spec, char **specs)
+static int push(int nr_spec, const char **specs)
{
struct discovery *heads = discover_refs("git-receive-pack", 1);
int ret;
@@ -1240,14 +1251,12 @@ static int push(int nr_spec, char **specs)
static void parse_push(struct strbuf *buf)
{
- char **specs = NULL;
- int alloc_spec = 0, nr_spec = 0, i, ret;
+ struct argv_array specs = ARGV_ARRAY_INIT;
+ int ret;
do {
- if (starts_with(buf->buf, "push ")) {
- ALLOC_GROW(specs, nr_spec + 1, alloc_spec);
- specs[nr_spec++] = xstrdup(buf->buf + 5);
- }
+ if (starts_with(buf->buf, "push "))
+ argv_array_push(&specs, buf->buf + 5);
else
die(_("http transport does not support %s"), buf->buf);
@@ -1258,7 +1267,7 @@ static void parse_push(struct strbuf *buf)
break;
} while (1);
- ret = push(nr_spec, specs);
+ ret = push(specs.argc, specs.argv);
printf("\n");
fflush(stdout);
@@ -1266,9 +1275,7 @@ static void parse_push(struct strbuf *buf)
exit(128); /* error already reported */
free_specs:
- for (i = 0; i < nr_spec; i++)
- free(specs[i]);
- free(specs);
+ argv_array_clear(&specs);
}
static int stateless_connect(const char *service_name)
diff --git a/remote.c b/remote.c
index e50f760..5c4666b 100644
--- a/remote.c
+++ b/remote.c
@@ -111,14 +111,16 @@ struct remotes_hash_key {
};
static int remotes_hash_cmp(const void *unused_cmp_data,
- const void *entry,
- const void *entry_or_key,
+ const struct hashmap_entry *eptr,
+ const struct hashmap_entry *entry_or_key,
const void *keydata)
{
- const struct remote *a = entry;
- const struct remote *b = entry_or_key;
+ const struct remote *a, *b;
const struct remotes_hash_key *key = keydata;
+ a = container_of(eptr, const struct remote, ent);
+ b = container_of(entry_or_key, const struct remote, ent);
+
if (key)
return strncmp(a->name, key->str, key->len) || a->name[key->len];
else
@@ -135,7 +137,7 @@ static struct remote *make_remote(const char *name, int len)
{
struct remote *ret, *replaced;
struct remotes_hash_key lookup;
- struct hashmap_entry lookup_entry;
+ struct hashmap_entry lookup_entry, *e;
if (!len)
len = strlen(name);
@@ -145,8 +147,9 @@ static struct remote *make_remote(const char *name, int len)
lookup.len = len;
hashmap_entry_init(&lookup_entry, memhash(name, len));
- if ((ret = hashmap_get(&remotes_hash, &lookup_entry, &lookup)) != NULL)
- return ret;
+ e = hashmap_get(&remotes_hash, &lookup_entry, &lookup);
+ if (e)
+ return container_of(e, struct remote, ent);
ret = xcalloc(1, sizeof(struct remote));
ret->prune = -1; /* unspecified */
@@ -158,8 +161,8 @@ static struct remote *make_remote(const char *name, int len)
ALLOC_GROW(remotes, remotes_nr + 1, remotes_alloc);
remotes[remotes_nr++] = ret;
- hashmap_entry_init(ret, lookup_entry.hash);
- replaced = hashmap_put(&remotes_hash, ret);
+ hashmap_entry_init(&ret->ent, lookup_entry.hash);
+ replaced = hashmap_put_entry(&remotes_hash, ret, ent);
assert(replaced == NULL); /* no previous entry overwritten */
return ret;
}
diff --git a/remote.h b/remote.h
index 83e8856..0e1d2b2 100644
--- a/remote.h
+++ b/remote.h
@@ -14,7 +14,7 @@ enum {
};
struct remote {
- struct hashmap_entry ent; /* must be first */
+ struct hashmap_entry ent;
const char *name;
int origin, configured_in_repo;
diff --git a/repo-settings.c b/repo-settings.c
new file mode 100644
index 0000000..a703e40
--- /dev/null
+++ b/repo-settings.c
@@ -0,0 +1,68 @@
+#include "cache.h"
+#include "config.h"
+#include "repository.h"
+
+#define UPDATE_DEFAULT_BOOL(s,v) do { if (s == -1) { s = v; } } while(0)
+
+void prepare_repo_settings(struct repository *r)
+{
+ int value;
+ char *strval;
+
+ if (r->settings.initialized)
+ return;
+
+ /* Defaults */
+ memset(&r->settings, -1, sizeof(r->settings));
+
+ if (!repo_config_get_bool(r, "core.commitgraph", &value))
+ r->settings.core_commit_graph = value;
+ if (!repo_config_get_bool(r, "gc.writecommitgraph", &value))
+ r->settings.gc_write_commit_graph = value;
+ UPDATE_DEFAULT_BOOL(r->settings.core_commit_graph, 1);
+ UPDATE_DEFAULT_BOOL(r->settings.gc_write_commit_graph, 1);
+
+ if (!repo_config_get_int(r, "index.version", &value))
+ r->settings.index_version = value;
+ if (!repo_config_get_maybe_bool(r, "core.untrackedcache", &value)) {
+ if (value == 0)
+ r->settings.core_untracked_cache = UNTRACKED_CACHE_REMOVE;
+ else
+ r->settings.core_untracked_cache = UNTRACKED_CACHE_WRITE;
+ } else if (!repo_config_get_string(r, "core.untrackedcache", &strval)) {
+ if (!strcasecmp(strval, "keep"))
+ r->settings.core_untracked_cache = UNTRACKED_CACHE_KEEP;
+
+ free(strval);
+ }
+
+ if (!repo_config_get_string(r, "fetch.negotiationalgorithm", &strval)) {
+ if (!strcasecmp(strval, "skipping"))
+ r->settings.fetch_negotiation_algorithm = FETCH_NEGOTIATION_SKIPPING;
+ else
+ r->settings.fetch_negotiation_algorithm = FETCH_NEGOTIATION_DEFAULT;
+ }
+
+ if (!repo_config_get_bool(r, "pack.usesparse", &value))
+ r->settings.pack_use_sparse = value;
+ if (!repo_config_get_bool(r, "feature.manyfiles", &value) && value) {
+ UPDATE_DEFAULT_BOOL(r->settings.index_version, 4);
+ UPDATE_DEFAULT_BOOL(r->settings.core_untracked_cache, UNTRACKED_CACHE_WRITE);
+ }
+ if (!repo_config_get_bool(r, "fetch.writecommitgraph", &value))
+ r->settings.fetch_write_commit_graph = value;
+ if (!repo_config_get_bool(r, "feature.experimental", &value) && value) {
+ UPDATE_DEFAULT_BOOL(r->settings.pack_use_sparse, 1);
+ UPDATE_DEFAULT_BOOL(r->settings.fetch_negotiation_algorithm, FETCH_NEGOTIATION_SKIPPING);
+ UPDATE_DEFAULT_BOOL(r->settings.fetch_write_commit_graph, 1);
+ }
+ UPDATE_DEFAULT_BOOL(r->settings.fetch_write_commit_graph, 0);
+
+ /* Hack for test programs like test-dump-untracked-cache */
+ if (ignore_untracked_cache_config)
+ r->settings.core_untracked_cache = UNTRACKED_CACHE_KEEP;
+ else
+ UPDATE_DEFAULT_BOOL(r->settings.core_untracked_cache, UNTRACKED_CACHE_KEEP);
+
+ UPDATE_DEFAULT_BOOL(r->settings.fetch_negotiation_algorithm, FETCH_NEGOTIATION_DEFAULT);
+}
diff --git a/repository.h b/repository.h
index 4fb6a58..fe42197 100644
--- a/repository.h
+++ b/repository.h
@@ -11,6 +11,34 @@ struct pathspec;
struct raw_object_store;
struct submodule_cache;
+enum untracked_cache_setting {
+ UNTRACKED_CACHE_UNSET = -1,
+ UNTRACKED_CACHE_REMOVE = 0,
+ UNTRACKED_CACHE_KEEP = 1,
+ UNTRACKED_CACHE_WRITE = 2
+};
+
+enum fetch_negotiation_setting {
+ FETCH_NEGOTIATION_UNSET = -1,
+ FETCH_NEGOTIATION_NONE = 0,
+ FETCH_NEGOTIATION_DEFAULT = 1,
+ FETCH_NEGOTIATION_SKIPPING = 2,
+};
+
+struct repo_settings {
+ int initialized;
+
+ int core_commit_graph;
+ int gc_write_commit_graph;
+ int fetch_write_commit_graph;
+
+ int index_version;
+ enum untracked_cache_setting core_untracked_cache;
+
+ int pack_use_sparse;
+ enum fetch_negotiation_setting fetch_negotiation_algorithm;
+};
+
struct repository {
/* Environment */
/*
@@ -72,6 +100,8 @@ struct repository {
*/
char *submodule_prefix;
+ struct repo_settings settings;
+
/* Subsystems */
/*
* Repository's config which contains key-value pairs from the usual
@@ -95,6 +125,9 @@ struct repository {
/* A unique-id for tracing purposes. */
int trace2_repo_id;
+ /* True if commit-graph has been disabled within this process. */
+ int commit_graph_disabled;
+
/* Configurations */
/* Indicate if a repository has a different 'commondir' from 'gitdir' */
@@ -157,5 +190,6 @@ int repo_read_index_unmerged(struct repository *);
*/
void repo_update_index_if_able(struct repository *, struct lock_file *);
+void prepare_repo_settings(struct repository *r);
#endif /* REPOSITORY_H */
diff --git a/rerere.c b/rerere.c
index 17abb47..3e51fdf 100644
--- a/rerere.c
+++ b/rerere.c
@@ -52,7 +52,7 @@ static void free_rerere_id(struct string_list_item *item)
static const char *rerere_id_hex(const struct rerere_id *id)
{
- return sha1_to_hex(id->collection->hash);
+ return hash_to_hex(id->collection->hash);
}
static void fit_variant(struct rerere_dir *rr_dir, int variant)
@@ -115,7 +115,7 @@ static int is_rr_file(const char *name, const char *filename, int *variant)
static void scan_rerere_dir(struct rerere_dir *rr_dir)
{
struct dirent *de;
- DIR *dir = opendir(git_path("rr-cache/%s", sha1_to_hex(rr_dir->hash)));
+ DIR *dir = opendir(git_path("rr-cache/%s", hash_to_hex(rr_dir->hash)));
if (!dir)
return;
@@ -186,9 +186,9 @@ static struct rerere_id *new_rerere_id_hex(char *hex)
return id;
}
-static struct rerere_id *new_rerere_id(unsigned char *sha1)
+static struct rerere_id *new_rerere_id(unsigned char *hash)
{
- return new_rerere_id_hex(sha1_to_hex(sha1));
+ return new_rerere_id_hex(hash_to_hex(hash));
}
/*
diff --git a/revision.c b/revision.c
index 0741229..0e39b2b 100644
--- a/revision.c
+++ b/revision.c
@@ -28,6 +28,7 @@
#include "commit-graph.h"
#include "prio-queue.h"
#include "hashmap.h"
+#include "utf8.h"
volatile show_early_output_fn_t show_early_output;
@@ -107,30 +108,34 @@ struct path_and_oids_entry {
};
static int path_and_oids_cmp(const void *hashmap_cmp_fn_data,
- const struct path_and_oids_entry *e1,
- const struct path_and_oids_entry *e2,
+ const struct hashmap_entry *eptr,
+ const struct hashmap_entry *entry_or_key,
const void *keydata)
{
+ const struct path_and_oids_entry *e1, *e2;
+
+ e1 = container_of(eptr, const struct path_and_oids_entry, ent);
+ e2 = container_of(entry_or_key, const struct path_and_oids_entry, ent);
+
return strcmp(e1->path, e2->path);
}
static void paths_and_oids_init(struct hashmap *map)
{
- hashmap_init(map, (hashmap_cmp_fn) path_and_oids_cmp, NULL, 0);
+ hashmap_init(map, path_and_oids_cmp, NULL, 0);
}
static void paths_and_oids_clear(struct hashmap *map)
{
struct hashmap_iter iter;
struct path_and_oids_entry *entry;
- hashmap_iter_init(map, &iter);
- while ((entry = (struct path_and_oids_entry *)hashmap_iter_next(&iter))) {
+ hashmap_for_each_entry(map, &iter, entry, ent /* member name */) {
oidset_clear(&entry->trees);
free(entry->path);
}
- hashmap_free(map, 1);
+ hashmap_free_entries(map, struct path_and_oids_entry, ent);
}
static void paths_and_oids_insert(struct hashmap *map,
@@ -141,18 +146,19 @@ static void paths_and_oids_insert(struct hashmap *map,
struct path_and_oids_entry key;
struct path_and_oids_entry *entry;
- hashmap_entry_init(&key, hash);
+ hashmap_entry_init(&key.ent, hash);
/* use a shallow copy for the lookup */
key.path = (char *)path;
oidset_init(&key.trees, 0);
- if (!(entry = (struct path_and_oids_entry *)hashmap_get(map, &key, NULL))) {
+ entry = hashmap_get_entry(map, &key, ent, NULL);
+ if (!entry) {
entry = xcalloc(1, sizeof(struct path_and_oids_entry));
- hashmap_entry_init(entry, hash);
+ hashmap_entry_init(&entry->ent, hash);
entry->path = xstrdup(key.path);
oidset_init(&entry->trees, 16);
- hashmap_put(map, entry);
+ hashmap_put(map, &entry->ent);
}
oidset_insert(&entry->trees, oid);
@@ -235,8 +241,7 @@ void mark_trees_uninteresting_sparse(struct repository *r,
add_children_by_path(r, tree, &map);
}
- hashmap_iter_init(&map, &map_iter);
- while ((entry = hashmap_iter_next(&map_iter)))
+ hashmap_for_each_entry(&map, &map_iter, entry, ent /* member name */)
mark_trees_uninteresting_sparse(r, &entry->trees);
paths_and_oids_clear(&map);
@@ -404,9 +409,7 @@ static struct commit *handle_commit(struct rev_info *revs,
struct tag *tag = (struct tag *) object;
if (revs->tag_objects && !(flags & UNINTERESTING))
add_pending_object(revs, object, tag->tag);
- if (!tag->tagged)
- die("bad tag");
- object = parse_object(revs->repo, &tag->tagged->oid);
+ object = parse_object(revs->repo, get_tagged_oid(tag));
if (!object) {
if (revs->ignore_missing_links || (flags & UNINTERESTING))
return NULL;
@@ -2063,7 +2066,6 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg
revs->simplify_by_decoration = 1;
revs->limited = 1;
revs->prune = 1;
- load_ref_decorations(NULL, DECORATE_SHORT_REFS);
} else if (!strcmp(arg, "--date-order")) {
revs->sort_order = REV_SORT_BY_COMMIT_DATE;
revs->topo_order = 1;
@@ -2523,6 +2525,7 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, struct s
int i, flags, left, seen_dashdash, got_rev_arg = 0, revarg_opt;
struct argv_array prune_data = ARGV_ARRAY_INIT;
const char *submodule = NULL;
+ int seen_end_of_options = 0;
if (opt)
submodule = opt->submodule;
@@ -2552,7 +2555,7 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, struct s
revarg_opt |= REVARG_CANNOT_BE_FILENAME;
for (left = i = 1; i < argc; i++) {
const char *arg = argv[i];
- if (*arg == '-') {
+ if (!seen_end_of_options && *arg == '-') {
int opts;
opts = handle_revision_pseudo_opt(submodule,
@@ -2574,6 +2577,11 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, struct s
continue;
}
+ if (!strcmp(arg, "--end-of-options")) {
+ seen_end_of_options = 1;
+ continue;
+ }
+
opts = handle_revision_opt(revs, argc - i, argv + i,
&left, argv, opt);
if (opts > 0) {
@@ -2684,6 +2692,8 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, struct s
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);
if (revs->reverse && revs->reflog_info)
diff --git a/send-pack.c b/send-pack.c
index 6dc16c3..34c77cb 100644
--- a/send-pack.c
+++ b/send-pack.c
@@ -40,7 +40,8 @@ int option_parse_push_signed(const struct option *opt,
static void feed_object(const struct object_id *oid, FILE *fh, int negative)
{
- if (negative && !has_object_file(oid))
+ if (negative &&
+ !has_object_file_with_flags(oid, OBJECT_INFO_SKIP_FETCH_OBJECT))
return;
if (negative)
diff --git a/sequencer.c b/sequencer.c
index 34ebf8e..9d5964f 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -586,7 +586,7 @@ static int do_recursive_merge(struct repository *r,
struct replay_opts *opts)
{
struct merge_options o;
- struct tree *result, *next_tree, *base_tree, *head_tree;
+ struct tree *next_tree, *base_tree, *head_tree;
int clean;
char **xopt;
struct lock_file index_lock = LOCK_INIT;
@@ -613,11 +613,10 @@ static int do_recursive_merge(struct repository *r,
clean = merge_trees(&o,
head_tree,
- next_tree, base_tree, &result);
+ next_tree, base_tree);
if (is_rebase_i(opts) && clean <= 0)
fputs(o.obuf.buf, stdout);
strbuf_release(&o.obuf);
- diff_warn_rename_limit("merge.renamelimit", o.needed_rename_limit, 0);
if (clean < 0) {
rollback_lock_file(&index_lock);
return clean;
@@ -869,34 +868,6 @@ static char *get_author(const char *message)
return NULL;
}
-/* Read author-script and return an ident line (author <email> timestamp) */
-static const char *read_author_ident(struct strbuf *buf)
-{
- struct strbuf out = STRBUF_INIT;
- char *name, *email, *date;
-
- if (read_author_script(rebase_path_author_script(),
- &name, &email, &date, 0))
- return NULL;
-
- /* validate date since fmt_ident() will die() on bad value */
- if (parse_date(date, &out)){
- warning(_("invalid date format '%s' in '%s'"),
- date, rebase_path_author_script());
- strbuf_release(&out);
- return NULL;
- }
-
- strbuf_reset(&out);
- strbuf_addstr(&out, fmt_ident(name, email, WANT_AUTHOR_IDENT, date, 0));
- strbuf_swap(buf, &out);
- strbuf_release(&out);
- free(name);
- free(email);
- free(date);
- return buf->buf;
-}
-
static const char staged_changes_advice[] =
N_("you have staged changes in your working tree\n"
"If these changes are meant to be squashed into the previous commit, run:\n"
@@ -954,47 +925,6 @@ static int run_git_commit(struct repository *r,
{
struct child_process cmd = CHILD_PROCESS_INIT;
- if ((flags & CREATE_ROOT_COMMIT) && !(flags & AMEND_MSG)) {
- struct strbuf msg = STRBUF_INIT, script = STRBUF_INIT;
- const char *author = NULL;
- struct object_id root_commit, *cache_tree_oid;
- int res = 0;
-
- if (is_rebase_i(opts)) {
- author = read_author_ident(&script);
- if (!author) {
- strbuf_release(&script);
- return -1;
- }
- }
-
- if (!defmsg)
- BUG("root commit without message");
-
- if (!(cache_tree_oid = get_cache_tree_oid(r->index)))
- res = -1;
-
- if (!res)
- res = strbuf_read_file(&msg, defmsg, 0);
-
- if (res <= 0)
- res = error_errno(_("could not read '%s'"), defmsg);
- else
- res = commit_tree(msg.buf, msg.len, cache_tree_oid,
- NULL, &root_commit, author,
- opts->gpg_sign);
-
- strbuf_release(&msg);
- strbuf_release(&script);
- if (!res) {
- update_ref(NULL, "CHERRY_PICK_HEAD", &root_commit, NULL,
- REF_NO_DEREF, UPDATE_REFS_MSG_ON_ERR);
- res = update_ref(NULL, "HEAD", &root_commit, NULL, 0,
- UPDATE_REFS_MSG_ON_ERR);
- }
- return res < 0 ? error(_("writing root commit")) : 0;
- }
-
cmd.git_cmd = 1;
if (is_rebase_i(opts) && read_env_script(&cmd.env_array)) {
@@ -1378,7 +1308,7 @@ static int try_to_commit(struct repository *r,
struct object_id *oid)
{
struct object_id tree;
- struct commit *current_head;
+ struct commit *current_head = NULL;
struct commit_list *parents = NULL;
struct commit_extra_header *extra = NULL;
struct strbuf err = STRBUF_INIT;
@@ -1413,7 +1343,8 @@ static int try_to_commit(struct repository *r,
}
parents = copy_commit_list(current_head->parents);
extra = read_commit_extra_headers(current_head, exclude_gpgsig);
- } else if (current_head) {
+ } else if (current_head &&
+ (!(flags & CREATE_ROOT_COMMIT) || (flags & AMEND_MSG))) {
commit_list_insert(current_head, &parents);
}
@@ -1490,8 +1421,7 @@ static int do_commit(struct repository *r,
{
int res = 1;
- if (!(flags & EDIT_MSG) && !(flags & VERIFY_MSG) &&
- !(flags & CREATE_ROOT_COMMIT)) {
+ if (!(flags & EDIT_MSG) && !(flags & VERIFY_MSG)) {
struct object_id oid;
struct strbuf sb = STRBUF_INIT;
@@ -1775,7 +1705,7 @@ static int do_pick_commit(struct repository *r,
enum todo_command command,
struct commit *commit,
struct replay_opts *opts,
- int final_fixup)
+ int final_fixup, int *check_todo)
{
unsigned int flags = opts->edit ? EDIT_MSG : 0;
const char *msg_file = opts->edit ? NULL : git_path_merge_msg(r);
@@ -1785,7 +1715,7 @@ static int do_pick_commit(struct repository *r,
char *author = NULL;
struct commit_message msg = { NULL, NULL, NULL, NULL };
struct strbuf msgbuf = STRBUF_INIT;
- int res, unborn = 0, allow;
+ int res, unborn = 0, reword = 0, allow;
if (opts->no_commit) {
/*
@@ -1855,7 +1785,7 @@ static int do_pick_commit(struct repository *r,
opts);
if (res || command != TODO_REWORD)
goto leave;
- flags |= EDIT_MSG | AMEND_MSG | VERIFY_MSG;
+ reword = 1;
msg_file = NULL;
goto fast_forward_edit;
}
@@ -1913,7 +1843,7 @@ static int do_pick_commit(struct repository *r,
}
if (command == TODO_REWORD)
- flags |= EDIT_MSG | VERIFY_MSG;
+ reword = 1;
else if (is_fixup(command)) {
if (update_squash_messages(r, command, commit, opts))
return -1;
@@ -1997,13 +1927,21 @@ static int do_pick_commit(struct repository *r,
} else if (allow)
flags |= ALLOW_EMPTY;
if (!opts->no_commit) {
-fast_forward_edit:
if (author || command == TODO_REVERT || (flags & AMEND_MSG))
res = do_commit(r, msg_file, author, opts, flags);
else
res = error(_("unable to parse commit author"));
+ *check_todo = !!(flags & EDIT_MSG);
+ if (!res && reword) {
+fast_forward_edit:
+ res = run_git_commit(r, NULL, opts, EDIT_MSG |
+ VERIFY_MSG | AMEND_MSG |
+ (flags & ALLOW_EMPTY));
+ *check_todo = 1;
+ }
}
+
if (!res && final_fixup) {
unlink(rebase_path_fixup_msg());
unlink(rebase_path_squash_msg());
@@ -3364,6 +3302,9 @@ static int do_merge(struct repository *r,
struct commit *head_commit, *merge_commit, *i;
struct commit_list *bases, *j, *reversed = NULL;
struct commit_list *to_merge = NULL, **tail = &to_merge;
+ const char *strategy = !opts->xopts_nr &&
+ (!opts->strategy || !strcmp(opts->strategy, "recursive")) ?
+ NULL : opts->strategy;
struct merge_options o;
int merge_arg_len, oneline_offset, can_fast_forward, ret, k;
static struct lock_file lock;
@@ -3516,7 +3457,7 @@ static int do_merge(struct repository *r,
goto leave_merge;
}
- if (to_merge->next) {
+ if (strategy || to_merge->next) {
/* Octopus merge */
struct child_process cmd = CHILD_PROCESS_INIT;
@@ -3530,7 +3471,14 @@ static int do_merge(struct repository *r,
cmd.git_cmd = 1;
argv_array_push(&cmd.args, "merge");
argv_array_push(&cmd.args, "-s");
- argv_array_push(&cmd.args, "octopus");
+ if (!strategy)
+ argv_array_push(&cmd.args, "octopus");
+ else {
+ argv_array_push(&cmd.args, strategy);
+ for (k = 0; k < opts->xopts_nr; k++)
+ argv_array_pushf(&cmd.args,
+ "-X%s", opts->xopts[k]);
+ }
argv_array_push(&cmd.args, "--no-edit");
argv_array_push(&cmd.args, "--no-ff");
argv_array_push(&cmd.args, "--no-log");
@@ -3568,7 +3516,7 @@ static int do_merge(struct repository *r,
goto leave_merge;
}
- write_message(oid_to_hex(&merge_commit->object.oid), GIT_SHA1_HEXSZ,
+ write_message(oid_to_hex(&merge_commit->object.oid), the_hash_algo->hexsz,
git_path_merge_head(r), 0);
write_message("no-ff", 5, git_path_merge_mode(r), 0);
@@ -3818,6 +3766,7 @@ static int pick_commits(struct repository *r,
while (todo_list->current < todo_list->nr) {
struct todo_item *item = todo_list->items + todo_list->current;
const char *arg = todo_item_get_arg(todo_list, item);
+ int check_todo = 0;
if (save_todo(todo_list, opts))
return -1;
@@ -3856,7 +3805,8 @@ static int pick_commits(struct repository *r,
command_to_string(item->command), NULL),
1);
res = do_pick_commit(r, item->command, item->commit,
- opts, is_final_fixup(todo_list));
+ opts, is_final_fixup(todo_list),
+ &check_todo);
if (is_rebase_i(opts) && res < 0) {
/* Reschedule */
advise(_(rescheduled_advice),
@@ -3913,7 +3863,6 @@ static int pick_commits(struct repository *r,
} else if (item->command == TODO_EXEC) {
char *end_of_arg = (char *)(arg + item->arg_len);
int saved = *end_of_arg;
- struct stat st;
if (!opts->verbose)
term_clear_line();
@@ -3924,17 +3873,8 @@ static int pick_commits(struct repository *r,
if (res) {
if (opts->reschedule_failed_exec)
reschedule = 1;
- } else if (stat(get_todo_path(opts), &st))
- res = error_errno(_("could not stat '%s'"),
- get_todo_path(opts));
- else if (match_stat_data(&todo_list->stat, &st)) {
- /* Reread the todo file if it has changed. */
- todo_list_release(todo_list);
- if (read_populate_todo(r, todo_list, opts))
- res = -1; /* message was printed */
- /* `current` will be incremented below */
- todo_list->current = -1;
}
+ check_todo = 1;
} else if (item->command == TODO_LABEL) {
if ((res = do_label(r, arg, item->arg_len)))
reschedule = 1;
@@ -3970,6 +3910,20 @@ static int pick_commits(struct repository *r,
item->commit,
arg, item->arg_len,
opts, res, 0);
+ } else if (check_todo && !res) {
+ struct stat st;
+
+ if (stat(get_todo_path(opts), &st)) {
+ res = error_errno(_("could not stat '%s'"),
+ get_todo_path(opts));
+ } else if (match_stat_data(&todo_list->stat, &st)) {
+ /* Reread the todo file if it has changed. */
+ todo_list_release(todo_list);
+ if (read_populate_todo(r, todo_list, opts))
+ res = -1; /* message was printed */
+ /* `current` will be incremented below */
+ todo_list->current = -1;
+ }
}
todo_list->current++;
@@ -4296,9 +4250,12 @@ static int single_pick(struct repository *r,
struct commit *cmit,
struct replay_opts *opts)
{
+ int check_todo;
+
setenv(GIT_REFLOG_ACTION, action_name(opts), 0);
return do_pick_commit(r, opts->action == REPLAY_PICK ?
- TODO_PICK : TODO_REVERT, cmit, opts, 0);
+ TODO_PICK : TODO_REVERT, cmit, opts, 0,
+ &check_todo);
}
int sequencer_pick_revisions(struct repository *r,
@@ -4440,9 +4397,14 @@ struct labels_entry {
char label[FLEX_ARRAY];
};
-static int labels_cmp(const void *fndata, const struct labels_entry *a,
- const struct labels_entry *b, const void *key)
+static int labels_cmp(const void *fndata, const struct hashmap_entry *eptr,
+ const struct hashmap_entry *entry_or_key, const void *key)
{
+ const struct labels_entry *a, *b;
+
+ a = container_of(eptr, const struct labels_entry, entry);
+ b = container_of(entry_or_key, const struct labels_entry, entry);
+
return key ? strcmp(a->label, key) : strcmp(a->label, b->label);
}
@@ -4487,7 +4449,7 @@ static const char *label_oid(struct object_id *oid, const char *label,
char *p;
strbuf_reset(&state->buf);
- strbuf_grow(&state->buf, GIT_SHA1_HEXSZ);
+ strbuf_grow(&state->buf, GIT_MAX_HEXSZ);
label = p = state->buf.buf;
find_unique_abbrev_r(p, oid, default_abbrev);
@@ -4500,7 +4462,7 @@ static const char *label_oid(struct object_id *oid, const char *label,
size_t i = strlen(p) + 1;
oid_to_hex_r(p, oid);
- for (; i < GIT_SHA1_HEXSZ; i++) {
+ for (; i < the_hash_algo->hexsz; i++) {
char save = p[i];
p[i] = '\0';
if (!hashmap_get_from_hash(&state->labels,
@@ -4538,8 +4500,8 @@ static const char *label_oid(struct object_id *oid, const char *label,
}
FLEX_ALLOC_STR(labels_entry, label, label);
- hashmap_entry_init(labels_entry, strihash(label));
- hashmap_add(&state->labels, labels_entry);
+ hashmap_entry_init(&labels_entry->entry, strihash(label));
+ hashmap_add(&state->labels, &labels_entry->entry);
FLEX_ALLOC_STR(string_entry, string, label);
oidcpy(&string_entry->entry.oid, oid);
@@ -4554,6 +4516,7 @@ static int make_script_with_merges(struct pretty_print_context *pp,
{
int keep_empty = flags & TODO_LIST_KEEP_EMPTY;
int rebase_cousins = flags & TODO_LIST_REBASE_COUSINS;
+ int root_with_onto = flags & TODO_LIST_ROOT_WITH_ONTO;
struct strbuf buf = STRBUF_INIT, oneline = STRBUF_INIT;
struct strbuf label = STRBUF_INIT;
struct commit_list *commits = NULL, **tail = &commits, *iter;
@@ -4573,7 +4536,7 @@ static int make_script_with_merges(struct pretty_print_context *pp,
oidmap_init(&commit2todo, 0);
oidmap_init(&state.commit2label, 0);
- hashmap_init(&state.labels, (hashmap_cmp_fn) labels_cmp, NULL, 0);
+ hashmap_init(&state.labels, labels_cmp, NULL, 0);
strbuf_init(&state.buf, 32);
if (revs->cmdline.nr && (revs->cmdline.rev[0].flags & BOTTOM)) {
@@ -4720,7 +4683,8 @@ static int make_script_with_merges(struct pretty_print_context *pp,
if (!commit)
strbuf_addf(out, "%s %s\n", cmd_reset,
- rebase_cousins ? "onto" : "[new root]");
+ rebase_cousins || root_with_onto ?
+ "onto" : "[new root]");
else {
const char *to = NULL;
@@ -4767,7 +4731,7 @@ static int make_script_with_merges(struct pretty_print_context *pp,
oidmap_free(&commit2todo, 1);
oidmap_free(&state.commit2label, 1);
- hashmap_free(&state.labels, 1);
+ hashmap_free_entries(&state.labels, struct labels_entry, entry);
strbuf_release(&state.buf);
return 0;
@@ -5138,9 +5102,15 @@ struct subject2item_entry {
};
static int subject2item_cmp(const void *fndata,
- const struct subject2item_entry *a,
- const struct subject2item_entry *b, const void *key)
+ const struct hashmap_entry *eptr,
+ const struct hashmap_entry *entry_or_key,
+ const void *key)
{
+ const struct subject2item_entry *a, *b;
+
+ a = container_of(eptr, const struct subject2item_entry, entry);
+ b = container_of(entry_or_key, const struct subject2item_entry, entry);
+
return key ? strcmp(a->subject, key) : strcmp(a->subject, b->subject);
}
@@ -5173,8 +5143,7 @@ int todo_list_rearrange_squash(struct todo_list *todo_list)
* In that case, last[i] will indicate the index of the latest item to
* be moved to appear after the i'th.
*/
- hashmap_init(&subject2item, (hashmap_cmp_fn) subject2item_cmp,
- NULL, todo_list->nr);
+ hashmap_init(&subject2item, subject2item_cmp, NULL, todo_list->nr);
ALLOC_ARRAY(next, todo_list->nr);
ALLOC_ARRAY(tail, todo_list->nr);
ALLOC_ARRAY(subjects, todo_list->nr);
@@ -5217,8 +5186,11 @@ int todo_list_rearrange_squash(struct todo_list *todo_list)
break;
}
- if ((entry = hashmap_get_from_hash(&subject2item,
- strhash(p), p)))
+ entry = hashmap_get_entry_from_hash(&subject2item,
+ strhash(p), p,
+ struct subject2item_entry,
+ entry);
+ if (entry)
/* found by title */
i2 = entry->i;
else if (!strchr(p, ' ') &&
@@ -5252,8 +5224,9 @@ int todo_list_rearrange_squash(struct todo_list *todo_list)
strhash(subject), subject)) {
FLEX_ALLOC_MEM(entry, subject, subject, subject_len);
entry->i = i;
- hashmap_entry_init(entry, strhash(entry->subject));
- hashmap_put(&subject2item, entry);
+ hashmap_entry_init(&entry->entry,
+ strhash(entry->subject));
+ hashmap_put(&subject2item, &entry->entry);
}
}
@@ -5287,7 +5260,7 @@ int todo_list_rearrange_squash(struct todo_list *todo_list)
for (i = 0; i < todo_list->nr; i++)
free(subjects[i]);
free(subjects);
- hashmap_free(&subject2item, 1);
+ hashmap_free_entries(&subject2item, struct subject2item_entry, entry);
clear_commit_todo_item(&commit_todo);
diff --git a/sequencer.h b/sequencer.h
index 6704acb..574260f 100644
--- a/sequencer.h
+++ b/sequencer.h
@@ -143,6 +143,12 @@ int sequencer_remove_state(struct replay_opts *opts);
*/
#define TODO_LIST_REBASE_COUSINS (1U << 4)
#define TODO_LIST_APPEND_TODO_HELP (1U << 5)
+/*
+ * When generating a script that rebases merges with `--root` *and* with
+ * `--onto`, we do not want to re-generate the root commits.
+ */
+#define TODO_LIST_ROOT_WITH_ONTO (1U << 6)
+
int sequencer_make_script(struct repository *r, struct strbuf *out, int argc,
const char **argv, unsigned flags);
diff --git a/setup.c b/setup.c
index 8dcb463..e2a479a 100644
--- a/setup.c
+++ b/setup.c
@@ -4,6 +4,7 @@
#include "dir.h"
#include "string-list.h"
#include "chdir-notify.h"
+#include "promisor-remote.h"
static int inside_git_dir = -1;
static int inside_work_tree = -1;
@@ -478,7 +479,7 @@ static int check_repository_format_gently(const char *gitdir, struct repository_
}
repository_format_precious_objects = candidate->precious_objects;
- repository_format_partial_clone = xstrdup_or_null(candidate->partial_clone);
+ set_repository_format_partial_clone(candidate->partial_clone);
repository_format_worktree_config = candidate->worktree_config;
string_list_clear(&candidate->unknown_extensions, 0);
@@ -797,7 +798,7 @@ static const char *setup_discovered_git_dir(const char *gitdir,
set_git_dir(gitdir);
inside_git_dir = 0;
inside_work_tree = 1;
- if (offset == cwd->len)
+ if (offset >= cwd->len)
return NULL;
/* Make "offset" point past the '/' (already the case for root dirs) */
@@ -919,7 +920,7 @@ static enum discovery_result setup_git_directory_gently_1(struct strbuf *dir,
const char *env_ceiling_dirs = getenv(CEILING_DIRECTORIES_ENVIRONMENT);
struct string_list ceiling_dirs = STRING_LIST_INIT_DUP;
const char *gitdirenv;
- int ceil_offset = -1, min_offset = has_dos_drive_prefix(dir->buf) ? 3 : 1;
+ int ceil_offset = -1, min_offset = offset_1st_component(dir->buf);
dev_t current_device = 0;
int one_filesystem = 1;
@@ -947,6 +948,12 @@ static enum discovery_result setup_git_directory_gently_1(struct strbuf *dir,
if (ceil_offset < 0)
ceil_offset = min_offset - 2;
+ if (min_offset && min_offset == dir->len &&
+ !is_dir_sep(dir->buf[min_offset - 1])) {
+ strbuf_addch(dir, '/');
+ min_offset++;
+ }
+
/*
* Test in the following order (relative to the dir):
* - .git (file containing "gitdir: <path>")
diff --git a/sha1-file.c b/sha1-file.c
index 487ea35..188de57 100644
--- a/sha1-file.c
+++ b/sha1-file.c
@@ -30,8 +30,8 @@
#include "mergesort.h"
#include "quote.h"
#include "packfile.h"
-#include "fetch-object.h"
#include "object-store.h"
+#include "promisor-remote.h"
/* The maximum size for an object header. */
#define MAX_HEADER_LEN 32
@@ -55,7 +55,6 @@
"\x6f\xe1\x41\xf7\x74\x91\x20\xa3\x03\x72" \
"\x18\x13"
-const unsigned char null_sha1[GIT_MAX_RAWSZ];
const struct object_id null_oid;
static const struct object_id empty_tree_oid = {
EMPTY_TREE_SHA1_BIN_LITERAL
@@ -952,12 +951,8 @@ void *xmmap_gently(void *start, size_t length,
mmap_limit_check(length);
ret = mmap(start, length, prot, flags, fd, offset);
- if (ret == MAP_FAILED) {
- if (!length)
- return NULL;
- release_pack_memory(length);
- ret = mmap(start, length, prot, flags, fd, offset);
- }
+ if (ret == MAP_FAILED && !length)
+ ret = NULL;
return ret;
}
@@ -1475,16 +1470,17 @@ int oid_object_info_extended(struct repository *r, const struct object_id *oid,
}
/* Check if it is a missing object */
- if (fetch_if_missing && repository_format_partial_clone &&
+ if (fetch_if_missing && has_promisor_remote() &&
!already_retried && r == the_repository &&
!(flags & OBJECT_INFO_SKIP_FETCH_OBJECT)) {
/*
- * TODO Investigate having fetch_object() return
- * TODO error/success and stopping the music here.
- * TODO Pass a repository struct through fetch_object,
- * such that arbitrary repositories work.
+ * TODO Investigate checking promisor_remote_get_direct()
+ * TODO return value and stopping on error here.
+ * TODO Pass a repository struct through
+ * promisor_remote_get_direct(), such that arbitrary
+ * repositories work.
*/
- fetch_objects(repository_format_partial_clone, real, 1);
+ promisor_remote_get_direct(r, real, 1);
already_retried = 1;
continue;
}
diff --git a/sha1-lookup.c b/sha1-lookup.c
index 796ab68..2918584 100644
--- a/sha1-lookup.c
+++ b/sha1-lookup.c
@@ -50,7 +50,7 @@ static uint32_t take2(const unsigned char *sha1)
* The sha1 of element i (between 0 and nr - 1) should be returned
* by "fn(i, table)".
*/
-int sha1_pos(const unsigned char *sha1, void *table, size_t nr,
+int sha1_pos(const unsigned char *hash, void *table, size_t nr,
sha1_access_fn fn)
{
size_t hi = nr;
@@ -63,14 +63,14 @@ int sha1_pos(const unsigned char *sha1, void *table, size_t nr,
if (nr != 1) {
size_t lov, hiv, miv, ofs;
- for (ofs = 0; ofs < 18; ofs += 2) {
+ for (ofs = 0; ofs < the_hash_algo->rawsz - 2; ofs += 2) {
lov = take2(fn(0, table) + ofs);
hiv = take2(fn(nr - 1, table) + ofs);
- miv = take2(sha1 + ofs);
+ miv = take2(hash + ofs);
if (miv < lov)
return -1;
if (hiv < miv)
- return -1 - nr;
+ return index_pos_to_insert_pos(nr);
if (lov != hiv) {
/*
* At this point miv could be equal
@@ -88,7 +88,7 @@ int sha1_pos(const unsigned char *sha1, void *table, size_t nr,
do {
int cmp;
- cmp = hashcmp(fn(mi, table), sha1);
+ cmp = hashcmp(fn(mi, table), hash);
if (!cmp)
return mi;
if (cmp > 0)
@@ -97,7 +97,7 @@ int sha1_pos(const unsigned char *sha1, void *table, size_t nr,
lo = mi + 1;
mi = lo + (hi - lo) / 2;
} while (lo < hi);
- return -lo-1;
+ return index_pos_to_insert_pos(lo);
}
int bsearch_hash(const unsigned char *sha1, const uint32_t *fanout_nbo,
diff --git a/sha1-name.c b/sha1-name.c
index 2989e27..200eb37 100644
--- a/sha1-name.c
+++ b/sha1-name.c
@@ -403,9 +403,9 @@ static int repo_collect_ambiguous(struct repository *r,
return collect_ambiguous(oid, data);
}
-static struct repository *sort_ambiguous_repo;
-static int sort_ambiguous(const void *a, const void *b)
+static int sort_ambiguous(const void *a, const void *b, void *ctx)
{
+ struct repository *sort_ambiguous_repo = ctx;
int a_type = oid_object_info(sort_ambiguous_repo, a, NULL);
int b_type = oid_object_info(sort_ambiguous_repo, b, NULL);
int a_type_sort;
@@ -434,10 +434,7 @@ static int sort_ambiguous(const void *a, const void *b)
static void sort_ambiguous_oid_array(struct repository *r, struct oid_array *a)
{
- /* mutex will be needed if this code is to be made thread safe */
- sort_ambiguous_repo = r;
- QSORT(a->oid, a->nr, sort_ambiguous);
- sort_ambiguous_repo = NULL;
+ QSORT_S(a->oid, a->nr, sort_ambiguous, r);
}
static enum get_oid_result get_short_oid(struct repository *r,
@@ -1163,13 +1160,22 @@ static enum get_oid_result get_oid_1(struct repository *r,
}
if (has_suffix) {
- int num = 0;
+ unsigned int num = 0;
int len1 = cp - name;
cp++;
- while (cp < name + len)
- num = num * 10 + *cp++ - '0';
+ while (cp < name + len) {
+ unsigned int digit = *cp++ - '0';
+ if (unsigned_mult_overflows(num, 10))
+ return MISSING_OBJECT;
+ num *= 10;
+ if (unsigned_add_overflows(num, digit))
+ return MISSING_OBJECT;
+ num += digit;
+ }
if (!num && len1 == len - 1)
num = 1;
+ else if (num > INT_MAX)
+ return MISSING_OBJECT;
if (has_suffix == '^')
return get_parent(r, name, len1, oid, num);
/* else if (has_suffix == '~') -- goes without saying */
@@ -1289,7 +1295,7 @@ static int get_oid_oneline(struct repository *r,
struct grab_nth_branch_switch_cbdata {
int remaining;
- struct strbuf buf;
+ struct strbuf *sb;
};
static int grab_nth_branch_switch(struct object_id *ooid, struct object_id *noid,
@@ -1307,8 +1313,8 @@ static int grab_nth_branch_switch(struct object_id *ooid, struct object_id *noid
return 0;
if (--(cb->remaining) == 0) {
len = target - match;
- strbuf_reset(&cb->buf);
- strbuf_add(&cb->buf, match, len);
+ strbuf_reset(cb->sb);
+ strbuf_add(cb->sb, match, len);
return 1; /* we are done */
}
return 0;
@@ -1341,18 +1347,15 @@ static int interpret_nth_prior_checkout(struct repository *r,
if (nth <= 0)
return -1;
cb.remaining = nth;
- strbuf_init(&cb.buf, 20);
+ cb.sb = buf;
retval = refs_for_each_reflog_ent_reverse(get_main_ref_store(r),
"HEAD", grab_nth_branch_switch, &cb);
if (0 < retval) {
- strbuf_reset(buf);
- strbuf_addbuf(buf, &cb.buf);
retval = brace - name + 1;
} else
retval = 0;
- strbuf_release(&cb.buf);
return retval;
}
diff --git a/shallow.c b/shallow.c
index 5fa2b15..7fd04af 100644
--- a/shallow.c
+++ b/shallow.c
@@ -12,10 +12,7 @@
#include "diff.h"
#include "revision.h"
#include "commit-slab.h"
-#include "revision.h"
#include "list-objects.h"
-#include "commit-slab.h"
-#include "repository.h"
#include "commit-reach.h"
void set_alternate_shallow_file(struct repository *r, const char *path, int override)
@@ -156,6 +153,8 @@ struct commit_list *get_shallow_commits(struct object_array *heads, int depth,
for (i = 0; i < depths.slab_count; i++) {
int j;
+ if (!depths.slab[i])
+ continue;
for (j = 0; j < depths.slab_size; j++)
free(depths.slab[i][j]);
}
diff --git a/compat/qsort.c b/stable-qsort.c
index 7d071af..6cbaf39 100644
--- a/compat/qsort.c
+++ b/stable-qsort.c
@@ -1,4 +1,4 @@
-#include "../git-compat-util.h"
+#include "git-compat-util.h"
/*
* A merge sort implementation, simplified from the qsort implementation
@@ -44,8 +44,8 @@ static void msort_with_tmp(void *b, size_t n, size_t s,
memcpy(b, t, (n - n2) * s);
}
-void git_qsort(void *b, size_t n, size_t s,
- int (*cmp)(const void *, const void *))
+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];
diff --git a/strbuf.c b/strbuf.c
index d30f916..aa48d17 100644
--- a/strbuf.c
+++ b/strbuf.c
@@ -774,8 +774,10 @@ void strbuf_addstr_xml_quoted(struct strbuf *buf, const char *s)
}
}
-static int is_rfc3986_reserved(char ch)
+int is_rfc3986_reserved_or_unreserved(char ch)
{
+ if (is_rfc3986_unreserved(ch))
+ return 1;
switch (ch) {
case '!': case '*': case '\'': case '(': case ')': case ';':
case ':': case '@': case '&': case '=': case '+': case '$':
@@ -785,20 +787,19 @@ static int is_rfc3986_reserved(char ch)
return 0;
}
-static int is_rfc3986_unreserved(char ch)
+int is_rfc3986_unreserved(char ch)
{
return isalnum(ch) ||
ch == '-' || ch == '_' || ch == '.' || ch == '~';
}
static void strbuf_add_urlencode(struct strbuf *sb, const char *s, size_t len,
- int reserved)
+ char_predicate allow_unencoded_fn)
{
strbuf_grow(sb, len);
while (len--) {
char ch = *s++;
- if (is_rfc3986_unreserved(ch) ||
- (!reserved && is_rfc3986_reserved(ch)))
+ if (allow_unencoded_fn(ch))
strbuf_addch(sb, ch);
else
strbuf_addf(sb, "%%%02x", (unsigned char)ch);
@@ -806,9 +807,9 @@ static void strbuf_add_urlencode(struct strbuf *sb, const char *s, size_t len,
}
void strbuf_addstr_urlencode(struct strbuf *sb, const char *s,
- int reserved)
+ char_predicate allow_unencoded_fn)
{
- strbuf_add_urlencode(sb, s, strlen(s), reserved);
+ strbuf_add_urlencode(sb, s, strlen(s), allow_unencoded_fn);
}
static void strbuf_humanise(struct strbuf *buf, off_t bytes,
diff --git a/strbuf.h b/strbuf.h
index f62278a..84cf969 100644
--- a/strbuf.h
+++ b/strbuf.h
@@ -672,8 +672,13 @@ void strbuf_branchname(struct strbuf *sb, const char *name,
*/
int strbuf_check_branch_ref(struct strbuf *sb, const char *name);
+typedef int (*char_predicate)(char ch);
+
+int is_rfc3986_unreserved(char ch);
+int is_rfc3986_reserved_or_unreserved(char ch);
+
void strbuf_addstr_urlencode(struct strbuf *sb, const char *name,
- int reserved);
+ char_predicate allow_unencoded_fn);
__attribute__((format (printf,1,2)))
int printf_ln(const char *fmt, ...);
diff --git a/sub-process.c b/sub-process.c
index 3f4af93..1b1af9d 100644
--- a/sub-process.c
+++ b/sub-process.c
@@ -6,12 +6,14 @@
#include "pkt-line.h"
int cmd2process_cmp(const void *unused_cmp_data,
- const void *entry,
- const void *entry_or_key,
+ const struct hashmap_entry *eptr,
+ const struct hashmap_entry *entry_or_key,
const void *unused_keydata)
{
- const struct subprocess_entry *e1 = entry;
- const struct subprocess_entry *e2 = entry_or_key;
+ const struct subprocess_entry *e1, *e2;
+
+ e1 = container_of(eptr, const struct subprocess_entry, ent);
+ e2 = container_of(entry_or_key, const struct subprocess_entry, ent);
return strcmp(e1->cmd, e2->cmd);
}
@@ -20,9 +22,9 @@ struct subprocess_entry *subprocess_find_entry(struct hashmap *hashmap, const ch
{
struct subprocess_entry key;
- hashmap_entry_init(&key, strhash(cmd));
+ hashmap_entry_init(&key.ent, strhash(cmd));
key.cmd = cmd;
- return hashmap_get(hashmap, &key, NULL);
+ return hashmap_get_entry(hashmap, &key, ent, NULL);
}
int subprocess_read_status(int fd, struct strbuf *status)
@@ -58,7 +60,7 @@ void subprocess_stop(struct hashmap *hashmap, struct subprocess_entry *entry)
kill(entry->process.pid, SIGTERM);
finish_command(&entry->process);
- hashmap_remove(hashmap, entry, NULL);
+ hashmap_remove(hashmap, &entry->ent, NULL);
}
static void subprocess_exit_handler(struct child_process *process)
@@ -96,7 +98,7 @@ int subprocess_start(struct hashmap *hashmap, struct subprocess_entry *entry, co
return err;
}
- hashmap_entry_init(entry, strhash(cmd));
+ hashmap_entry_init(&entry->ent, strhash(cmd));
err = startfn(entry);
if (err) {
@@ -105,7 +107,7 @@ int subprocess_start(struct hashmap *hashmap, struct subprocess_entry *entry, co
return err;
}
- hashmap_add(hashmap, entry);
+ hashmap_add(hashmap, &entry->ent);
return 0;
}
diff --git a/sub-process.h b/sub-process.h
index 5c182fa..e85f21f 100644
--- a/sub-process.h
+++ b/sub-process.h
@@ -24,7 +24,7 @@
/* Members should not be accessed directly. */
struct subprocess_entry {
- struct hashmap_entry ent; /* must be the first member! */
+ struct hashmap_entry ent;
const char *cmd;
struct child_process process;
};
@@ -43,8 +43,8 @@ struct subprocess_capability {
/* Function to test two subprocess hashmap entries for equality. */
int cmd2process_cmp(const void *unused_cmp_data,
- const void *e1,
- const void *e2,
+ const struct hashmap_entry *e,
+ const struct hashmap_entry *entry_or_key,
const void *unused_keydata);
/*
diff --git a/submodule-config.c b/submodule-config.c
index 4264ee2..401a9b2 100644
--- a/submodule-config.c
+++ b/submodule-config.c
@@ -38,24 +38,28 @@ enum lookup_type {
};
static int config_path_cmp(const void *unused_cmp_data,
- const void *entry,
- const void *entry_or_key,
+ const struct hashmap_entry *eptr,
+ const struct hashmap_entry *entry_or_key,
const void *unused_keydata)
{
- const struct submodule_entry *a = entry;
- const struct submodule_entry *b = entry_or_key;
+ const struct submodule_entry *a, *b;
+
+ a = container_of(eptr, const struct submodule_entry, ent);
+ b = container_of(entry_or_key, const struct submodule_entry, ent);
return strcmp(a->config->path, b->config->path) ||
!oideq(&a->config->gitmodules_oid, &b->config->gitmodules_oid);
}
static int config_name_cmp(const void *unused_cmp_data,
- const void *entry,
- const void *entry_or_key,
+ const struct hashmap_entry *eptr,
+ const struct hashmap_entry *entry_or_key,
const void *unused_keydata)
{
- const struct submodule_entry *a = entry;
- const struct submodule_entry *b = entry_or_key;
+ const struct submodule_entry *a, *b;
+
+ a = container_of(eptr, const struct submodule_entry, ent);
+ b = container_of(entry_or_key, const struct submodule_entry, ent);
return strcmp(a->config->name, b->config->name) ||
!oideq(&a->config->gitmodules_oid, &b->config->gitmodules_oid);
@@ -95,12 +99,12 @@ static void submodule_cache_clear(struct submodule_cache *cache)
* allocation of struct submodule entries. Each is allocated by
* their .gitmodules blob sha1 and submodule name.
*/
- hashmap_iter_init(&cache->for_name, &iter);
- while ((entry = hashmap_iter_next(&iter)))
+ hashmap_for_each_entry(&cache->for_name, &iter, entry,
+ ent /* member name */)
free_one_config(entry);
- hashmap_free(&cache->for_path, 1);
- hashmap_free(&cache->for_name, 1);
+ hashmap_free_entries(&cache->for_path, struct submodule_entry, ent);
+ hashmap_free_entries(&cache->for_name, struct submodule_entry, ent);
cache->initialized = 0;
cache->gitmodules_read = 0;
}
@@ -123,9 +127,9 @@ static void cache_put_path(struct submodule_cache *cache,
unsigned int hash = hash_oid_string(&submodule->gitmodules_oid,
submodule->path);
struct submodule_entry *e = xmalloc(sizeof(*e));
- hashmap_entry_init(e, hash);
+ hashmap_entry_init(&e->ent, hash);
e->config = submodule;
- hashmap_put(&cache->for_path, e);
+ hashmap_put(&cache->for_path, &e->ent);
}
static void cache_remove_path(struct submodule_cache *cache,
@@ -135,9 +139,9 @@ static void cache_remove_path(struct submodule_cache *cache,
submodule->path);
struct submodule_entry e;
struct submodule_entry *removed;
- hashmap_entry_init(&e, hash);
+ hashmap_entry_init(&e.ent, hash);
e.config = submodule;
- removed = hashmap_remove(&cache->for_path, &e, NULL);
+ removed = hashmap_remove_entry(&cache->for_path, &e, ent, NULL);
free(removed);
}
@@ -147,9 +151,9 @@ static void cache_add(struct submodule_cache *cache,
unsigned int hash = hash_oid_string(&submodule->gitmodules_oid,
submodule->name);
struct submodule_entry *e = xmalloc(sizeof(*e));
- hashmap_entry_init(e, hash);
+ hashmap_entry_init(&e->ent, hash);
e->config = submodule;
- hashmap_add(&cache->for_name, e);
+ hashmap_add(&cache->for_name, &e->ent);
}
static const struct submodule *cache_lookup_path(struct submodule_cache *cache,
@@ -163,10 +167,10 @@ static const struct submodule *cache_lookup_path(struct submodule_cache *cache,
oidcpy(&key_config.gitmodules_oid, gitmodules_oid);
key_config.path = path;
- hashmap_entry_init(&key, hash);
+ hashmap_entry_init(&key.ent, hash);
key.config = &key_config;
- entry = hashmap_get(&cache->for_path, &key, NULL);
+ entry = hashmap_get_entry(&cache->for_path, &key, ent, NULL);
if (entry)
return entry->config;
return NULL;
@@ -183,10 +187,10 @@ static struct submodule *cache_lookup_name(struct submodule_cache *cache,
oidcpy(&key_config.gitmodules_oid, gitmodules_oid);
key_config.name = name;
- hashmap_entry_init(&key, hash);
+ hashmap_entry_init(&key.ent, hash);
key.config = &key_config;
- entry = hashmap_get(&cache->for_name, &key, NULL);
+ entry = hashmap_get_entry(&cache->for_name, &key, ent, NULL);
if (entry)
return entry->config;
return NULL;
@@ -550,7 +554,9 @@ static const struct submodule *config_from(struct submodule_cache *cache,
struct hashmap_iter iter;
struct submodule_entry *entry;
- entry = hashmap_iter_first(&cache->for_name, &iter);
+ entry = hashmap_iter_first_entry(&cache->for_name, &iter,
+ struct submodule_entry,
+ ent /* member name */);
if (!entry)
return NULL;
return entry->config;
diff --git a/t/helper/.gitignore b/t/helper/.gitignore
index 2bad28a..48c7bb0 100644
--- a/t/helper/.gitignore
+++ b/t/helper/.gitignore
@@ -1,5 +1,4 @@
-*
-!*.sh
-!*.[ch]
-!*.gitignore
-
+/test-tool
+/test-fake-ssh
+/test-line-buffer
+/test-svn-fe
diff --git a/t/helper/test-date.c b/t/helper/test-date.c
index 585347e..099eff4 100644
--- a/t/helper/test-date.c
+++ b/t/helper/test-date.c
@@ -12,13 +12,13 @@ static const char *usage_msg = "\n"
" test-tool date is64bit\n"
" test-tool date time_t-is64bit\n";
-static void show_relative_dates(const char **argv, struct timeval *now)
+static void show_relative_dates(const char **argv)
{
struct strbuf buf = STRBUF_INIT;
for (; *argv; argv++) {
time_t t = atoi(*argv);
- show_date_relative(t, now, &buf);
+ show_date_relative(t, &buf);
printf("%s -> %s\n", *argv, buf.buf);
}
strbuf_release(&buf);
@@ -74,20 +74,20 @@ static void parse_dates(const char **argv)
strbuf_release(&result);
}
-static void parse_approxidate(const char **argv, struct timeval *now)
+static void parse_approxidate(const char **argv)
{
for (; *argv; argv++) {
timestamp_t t;
- t = approxidate_relative(*argv, now);
+ t = approxidate_relative(*argv);
printf("%s -> %s\n", *argv, show_date(t, 0, DATE_MODE(ISO8601)));
}
}
-static void parse_approx_timestamp(const char **argv, struct timeval *now)
+static void parse_approx_timestamp(const char **argv)
{
for (; *argv; argv++) {
timestamp_t t;
- t = approxidate_relative(*argv, now);
+ t = approxidate_relative(*argv);
printf("%s -> %"PRItime"\n", *argv, t);
}
}
@@ -103,22 +103,13 @@ static void getnanos(const char **argv)
int cmd__date(int argc, const char **argv)
{
- struct timeval now;
const char *x;
- x = getenv("GIT_TEST_DATE_NOW");
- if (x) {
- now.tv_sec = atoi(x);
- now.tv_usec = 0;
- }
- else
- gettimeofday(&now, NULL);
-
argv++;
if (!*argv)
usage(usage_msg);
if (!strcmp(*argv, "relative"))
- show_relative_dates(argv+1, &now);
+ show_relative_dates(argv+1);
else if (!strcmp(*argv, "human"))
show_human_dates(argv+1);
else if (skip_prefix(*argv, "show:", &x))
@@ -126,9 +117,9 @@ int cmd__date(int argc, const char **argv)
else if (!strcmp(*argv, "parse"))
parse_dates(argv+1);
else if (!strcmp(*argv, "approxidate"))
- parse_approxidate(argv+1, &now);
+ parse_approxidate(argv+1);
else if (!strcmp(*argv, "timestamp"))
- parse_approx_timestamp(argv+1, &now);
+ parse_approx_timestamp(argv+1);
else if (!strcmp(*argv, "getnanos"))
getnanos(argv+1);
else if (!strcmp(*argv, "is64bit"))
diff --git a/t/helper/test-hashmap.c b/t/helper/test-hashmap.c
index aaf17b0..f387062 100644
--- a/t/helper/test-hashmap.c
+++ b/t/helper/test-hashmap.c
@@ -5,6 +5,7 @@
struct test_entry
{
+ int padding; /* hashmap entry no longer needs to be the first member */
struct hashmap_entry ent;
/* key and value as two \0-terminated strings */
char key[FLEX_ARRAY];
@@ -16,15 +17,17 @@ static const char *get_value(const struct test_entry *e)
}
static int test_entry_cmp(const void *cmp_data,
- const void *entry,
- const void *entry_or_key,
+ const struct hashmap_entry *eptr,
+ const struct hashmap_entry *entry_or_key,
const void *keydata)
{
const int ignore_case = cmp_data ? *((int *)cmp_data) : 0;
- const struct test_entry *e1 = entry;
- const struct test_entry *e2 = entry_or_key;
+ const struct test_entry *e1, *e2;
const char *key = keydata;
+ e1 = container_of(eptr, const struct test_entry, ent);
+ e2 = container_of(entry_or_key, const struct test_entry, ent);
+
if (ignore_case)
return strcasecmp(e1->key, key ? key : e2->key);
else
@@ -37,7 +40,7 @@ static struct test_entry *alloc_test_entry(unsigned int hash,
size_t klen = strlen(key);
size_t vlen = strlen(value);
struct test_entry *entry = xmalloc(st_add4(sizeof(*entry), klen, vlen, 2));
- hashmap_entry_init(entry, hash);
+ hashmap_entry_init(&entry->ent, hash);
memcpy(entry->key, key, klen + 1);
memcpy(entry->key + klen + 1, value, vlen + 1);
return entry;
@@ -103,11 +106,11 @@ static void perf_hashmap(unsigned int method, unsigned int rounds)
/* add entries */
for (i = 0; i < TEST_SIZE; i++) {
- hashmap_entry_init(entries[i], hashes[i]);
- hashmap_add(&map, entries[i]);
+ hashmap_entry_init(&entries[i]->ent, hashes[i]);
+ hashmap_add(&map, &entries[i]->ent);
}
- hashmap_free(&map, 0);
+ hashmap_free(&map);
}
} else {
/* test map lookups */
@@ -116,8 +119,8 @@ static void perf_hashmap(unsigned int method, unsigned int rounds)
/* fill the map (sparsely if specified) */
j = (method & TEST_SPARSE) ? TEST_SIZE / 10 : TEST_SIZE;
for (i = 0; i < j; i++) {
- hashmap_entry_init(entries[i], hashes[i]);
- hashmap_add(&map, entries[i]);
+ hashmap_entry_init(&entries[i]->ent, hashes[i]);
+ hashmap_add(&map, &entries[i]->ent);
}
for (j = 0; j < rounds; j++) {
@@ -127,7 +130,7 @@ static void perf_hashmap(unsigned int method, unsigned int rounds)
}
}
- hashmap_free(&map, 0);
+ hashmap_free(&map);
}
}
@@ -179,7 +182,7 @@ int cmd__hashmap(int argc, const char **argv)
entry = alloc_test_entry(hash, p1, p2);
/* add to hashmap */
- hashmap_add(&map, entry);
+ hashmap_add(&map, &entry->ent);
} else if (!strcmp("put", cmd) && p1 && p2) {
@@ -187,43 +190,44 @@ int cmd__hashmap(int argc, const char **argv)
entry = alloc_test_entry(hash, p1, p2);
/* add / replace entry */
- entry = hashmap_put(&map, entry);
+ entry = hashmap_put_entry(&map, entry, ent);
/* print and free replaced entry, if any */
puts(entry ? get_value(entry) : "NULL");
free(entry);
} else if (!strcmp("get", cmd) && p1) {
-
/* lookup entry in hashmap */
- entry = hashmap_get_from_hash(&map, hash, p1);
+ entry = hashmap_get_entry_from_hash(&map, hash, p1,
+ struct test_entry, ent);
/* print result */
if (!entry)
puts("NULL");
- while (entry) {
+ hashmap_for_each_entry_from(&map, entry, ent)
puts(get_value(entry));
- entry = hashmap_get_next(&map, entry);
- }
} else if (!strcmp("remove", cmd) && p1) {
/* setup static key */
struct hashmap_entry key;
+ struct hashmap_entry *rm;
hashmap_entry_init(&key, hash);
/* remove entry from hashmap */
- entry = hashmap_remove(&map, &key, p1);
+ rm = hashmap_remove(&map, &key, p1);
+ entry = rm ? container_of(rm, struct test_entry, ent)
+ : NULL;
/* print result and free entry*/
puts(entry ? get_value(entry) : "NULL");
free(entry);
} else if (!strcmp("iterate", cmd)) {
-
struct hashmap_iter iter;
- hashmap_iter_init(&map, &iter);
- while ((entry = hashmap_iter_next(&iter)))
+
+ hashmap_for_each_entry(&map, &iter, entry,
+ ent /* member name */)
printf("%s %s\n", entry->key, get_value(entry));
} else if (!strcmp("size", cmd)) {
@@ -258,6 +262,6 @@ int cmd__hashmap(int argc, const char **argv)
}
strbuf_release(&line);
- hashmap_free(&map, 1);
+ hashmap_free_entries(&map, struct test_entry, ent);
return 0;
}
diff --git a/t/helper/test-lazy-init-name-hash.c b/t/helper/test-lazy-init-name-hash.c
index b99a370..cd1b4c9 100644
--- a/t/helper/test-lazy-init-name-hash.c
+++ b/t/helper/test-lazy-init-name-hash.c
@@ -41,17 +41,13 @@ static void dump_run(void)
die("non-threaded code path used");
}
- dir = hashmap_iter_first(&the_index.dir_hash, &iter_dir);
- while (dir) {
+ hashmap_for_each_entry(&the_index.dir_hash, &iter_dir, dir,
+ ent /* member name */)
printf("dir %08x %7d %s\n", dir->ent.hash, dir->nr, dir->name);
- dir = hashmap_iter_next(&iter_dir);
- }
- ce = hashmap_iter_first(&the_index.name_hash, &iter_cache);
- while (ce) {
+ hashmap_for_each_entry(&the_index.name_hash, &iter_cache, ce,
+ ent /* member name */)
printf("name %08x %s\n", ce->ent.hash, ce->name);
- ce = hashmap_iter_next(&iter_cache);
- }
discard_cache();
}
diff --git a/t/helper/test-progress.c b/t/helper/test-progress.c
new file mode 100644
index 0000000..42b96cb
--- /dev/null
+++ b/t/helper/test-progress.c
@@ -0,0 +1,81 @@
+/*
+ * A test helper to exercise the progress display.
+ *
+ * Reads instructions from standard input, one instruction per line:
+ *
+ * "progress <items>" - Call display_progress() with the given item count
+ * as parameter.
+ * "throughput <bytes> <millis> - Call display_throughput() with the given
+ * byte count as parameter. The 'millis'
+ * specify the time elapsed since the
+ * start_progress() call.
+ * "update" - Set the 'progress_update' flag.
+ *
+ * See 't0500-progress-display.sh' for examples.
+ */
+#include "test-tool.h"
+#include "gettext.h"
+#include "parse-options.h"
+#include "progress.h"
+#include "strbuf.h"
+
+/*
+ * These are defined in 'progress.c', but are not exposed in 'progress.h',
+ * because they are exclusively for testing.
+ */
+extern int progress_testing;
+extern uint64_t progress_test_ns;
+void progress_test_force_update(void);
+
+int cmd__progress(int argc, const char **argv)
+{
+ int total = 0;
+ const char *title;
+ struct strbuf line = STRBUF_INIT;
+ struct progress *progress;
+
+ const char *usage[] = {
+ "test-tool progress [--total=<n>] <progress-title>",
+ 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];
+
+ 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)) {
+ uint64_t item_count = strtoull(end, &end, 10);
+ if (*end != '\0')
+ die("invalid input: '%s'\n", line.buf);
+ display_progress(progress, item_count);
+ } else if (skip_prefix(line.buf, "throughput ",
+ (const char **) &end)) {
+ uint64_t byte_count, test_ms;
+
+ byte_count = strtoull(end, &end, 10);
+ if (*end != ' ')
+ die("invalid input: '%s'\n", line.buf);
+ test_ms = strtoull(end + 1, &end, 10);
+ if (*end != '\0')
+ 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"))
+ progress_test_force_update();
+ else
+ die("invalid input: '%s'\n", line.buf);
+ }
+ stop_progress(&progress);
+
+ return 0;
+}
diff --git a/t/helper/test-read-cache.c b/t/helper/test-read-cache.c
index 7e79b55..244977a 100644
--- a/t/helper/test-read-cache.c
+++ b/t/helper/test-read-cache.c
@@ -4,11 +4,10 @@
int cmd__read_cache(int argc, const char **argv)
{
- int i, cnt = 1, namelen;
+ int i, cnt = 1;
const char *name = NULL;
if (argc > 1 && skip_prefix(argv[1], "--print-and-refresh=", &name)) {
- namelen = strlen(name);
argc--;
argv++;
}
@@ -24,7 +23,7 @@ int cmd__read_cache(int argc, const char **argv)
refresh_index(&the_index, REFRESH_QUIET,
NULL, NULL, NULL);
- pos = index_name_pos(&the_index, name, namelen);
+ pos = index_name_pos(&the_index, name, strlen(name));
if (pos < 0)
die("%s not in index", name);
printf("%s is%s up to date\n", name,
diff --git a/t/helper/test-run-command.c b/t/helper/test-run-command.c
index 2cc93bb..ead6dc6 100644
--- a/t/helper/test-run-command.c
+++ b/t/helper/test-run-command.c
@@ -10,9 +10,14 @@
#include "test-tool.h"
#include "git-compat-util.h"
+#include "cache.h"
#include "run-command.h"
#include "argv-array.h"
#include "strbuf.h"
+#include "parse-options.h"
+#include "string-list.h"
+#include "thread-utils.h"
+#include "wildmatch.h"
#include <string.h>
#include <errno.h>
@@ -50,11 +55,159 @@ static int task_finished(int result,
return 1;
}
+struct testsuite {
+ struct string_list tests, failed;
+ int next;
+ int quiet, immediate, verbose, verbose_log, trace, write_junit_xml;
+};
+#define TESTSUITE_INIT \
+ { STRING_LIST_INIT_DUP, STRING_LIST_INIT_DUP, -1, 0, 0, 0, 0, 0, 0 }
+
+static int next_test(struct child_process *cp, struct strbuf *err, void *cb,
+ void **task_cb)
+{
+ struct testsuite *suite = cb;
+ const char *test;
+ if (suite->next >= suite->tests.nr)
+ return 0;
+
+ test = suite->tests.items[suite->next++].string;
+ argv_array_pushl(&cp->args, "sh", test, NULL);
+ if (suite->quiet)
+ argv_array_push(&cp->args, "--quiet");
+ if (suite->immediate)
+ argv_array_push(&cp->args, "-i");
+ if (suite->verbose)
+ argv_array_push(&cp->args, "-v");
+ if (suite->verbose_log)
+ argv_array_push(&cp->args, "-V");
+ if (suite->trace)
+ argv_array_push(&cp->args, "-x");
+ if (suite->write_junit_xml)
+ argv_array_push(&cp->args, "--write-junit-xml");
+
+ strbuf_addf(err, "Output of '%s':\n", test);
+ *task_cb = (void *)test;
+
+ return 1;
+}
+
+static int test_finished(int result, struct strbuf *err, void *cb,
+ void *task_cb)
+{
+ struct testsuite *suite = cb;
+ const char *name = (const char *)task_cb;
+
+ if (result)
+ string_list_append(&suite->failed, name);
+
+ strbuf_addf(err, "%s: '%s'\n", result ? "FAIL" : "SUCCESS", name);
+
+ return 0;
+}
+
+static int test_failed(struct strbuf *out, void *cb, void *task_cb)
+{
+ struct testsuite *suite = cb;
+ const char *name = (const char *)task_cb;
+
+ string_list_append(&suite->failed, name);
+ strbuf_addf(out, "FAILED TO START: '%s'\n", name);
+
+ return 0;
+}
+
+static const char * const testsuite_usage[] = {
+ "test-run-command testsuite [<options>] [<pattern>...]",
+ NULL
+};
+
+static int testsuite(int argc, const char **argv)
+{
+ struct testsuite suite = TESTSUITE_INIT;
+ int max_jobs = 1, i, ret;
+ DIR *dir;
+ struct dirent *d;
+ struct option options[] = {
+ OPT_BOOL('i', "immediate", &suite.immediate,
+ "stop at first failed test case(s)"),
+ OPT_INTEGER('j', "jobs", &max_jobs, "run <N> jobs in parallel"),
+ OPT_BOOL('q', "quiet", &suite.quiet, "be terse"),
+ OPT_BOOL('v', "verbose", &suite.verbose, "be verbose"),
+ OPT_BOOL('V', "verbose-log", &suite.verbose_log,
+ "be verbose, redirected to a file"),
+ OPT_BOOL('x', "trace", &suite.trace, "trace shell commands"),
+ OPT_BOOL(0, "write-junit-xml", &suite.write_junit_xml,
+ "write JUnit-style XML files"),
+ OPT_END()
+ };
+
+ memset(&suite, 0, sizeof(suite));
+ suite.tests.strdup_strings = suite.failed.strdup_strings = 1;
+
+ argc = parse_options(argc, argv, NULL, options,
+ testsuite_usage, PARSE_OPT_STOP_AT_NON_OPTION);
+
+ if (max_jobs <= 0)
+ max_jobs = online_cpus();
+
+ dir = opendir(".");
+ if (!dir)
+ die("Could not open the current directory");
+ while ((d = readdir(dir))) {
+ const char *p = d->d_name;
+
+ if (*p != 't' || !isdigit(p[1]) || !isdigit(p[2]) ||
+ !isdigit(p[3]) || !isdigit(p[4]) || p[5] != '-' ||
+ !ends_with(p, ".sh"))
+ continue;
+
+ /* No pattern: match all */
+ if (!argc) {
+ string_list_append(&suite.tests, p);
+ continue;
+ }
+
+ for (i = 0; i < argc; i++)
+ if (!wildmatch(argv[i], p, 0)) {
+ string_list_append(&suite.tests, p);
+ break;
+ }
+ }
+ closedir(dir);
+
+ if (!suite.tests.nr)
+ die("No tests match!");
+ 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);
+
+ 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);
+ for (i = 0; i < suite.failed.nr; i++)
+ fprintf(stderr, "\t%s\n", suite.failed.items[i].string);
+ }
+
+ string_list_clear(&suite.tests, 0);
+ string_list_clear(&suite.failed, 0);
+
+ return !!ret;
+}
+
int cmd__run_command(int argc, const char **argv)
{
struct child_process proc = CHILD_PROCESS_INIT;
int jobs;
+ if (argc > 1 && !strcmp(argv[1], "testsuite"))
+ exit(testsuite(argc - 1, argv + 1));
+
if (argc < 3)
return 1;
while (!strcmp(argv[1], "env")) {
diff --git a/t/helper/test-tool.c b/t/helper/test-tool.c
index ce7e890..19ee26d 100644
--- a/t/helper/test-tool.c
+++ b/t/helper/test-tool.c
@@ -42,6 +42,7 @@ static struct test_cmd cmds[] = {
{ "path-utils", cmd__path_utils },
{ "pkt-line", cmd__pkt_line },
{ "prio-queue", cmd__prio_queue },
+ { "progress", cmd__progress },
{ "reach", cmd__reach },
{ "read-cache", cmd__read_cache },
{ "read-midx", cmd__read_midx },
diff --git a/t/helper/test-tool.h b/t/helper/test-tool.h
index f805bb3..c2aa56e 100644
--- a/t/helper/test-tool.h
+++ b/t/helper/test-tool.h
@@ -32,6 +32,7 @@ int cmd__parse_options(int argc, const char **argv);
int cmd__path_utils(int argc, const char **argv);
int cmd__pkt_line(int argc, const char **argv);
int cmd__prio_queue(int argc, const char **argv);
+int cmd__progress(int argc, const char **argv);
int cmd__reach(int argc, const char **argv);
int cmd__read_cache(int argc, const char **argv);
int cmd__read_midx(int argc, const char **argv);
diff --git a/t/lib-git-svn.sh b/t/lib-git-svn.sh
index 5d4ae62..bc0b9c7 100644
--- a/t/lib-git-svn.sh
+++ b/t/lib-git-svn.sh
@@ -69,7 +69,7 @@ svn_cmd () {
maybe_start_httpd () {
loc=${1-svn}
- if git env--helper --type=bool --default=false --exit-code GIT_TEST_HTTPD
+ if git env--helper --type=bool --default=false --exit-code GIT_TEST_SVN_HTTPD
then
. "$TEST_DIRECTORY"/lib-httpd.sh
LIB_HTTPD_SVN="$loc"
diff --git a/t/lib-rebase.sh b/t/lib-rebase.sh
index 7ea30e5..6d87961 100644
--- a/t/lib-rebase.sh
+++ b/t/lib-rebase.sh
@@ -44,10 +44,10 @@ set_fake_editor () {
rm -f "$1"
echo 'rebase -i script before editing:'
cat "$1".tmp
- action=pick
+ action=\&
for line in $FAKE_LINES; do
case $line in
- pick|p|squash|s|fixup|f|edit|e|reword|r|drop|d)
+ pick|p|squash|s|fixup|f|edit|e|reword|r|drop|d|label|l|reset|r|merge|m)
action="$line";;
exec_*|x_*|break|b)
echo "$line" | sed 's/_/ /g' >> "$1";;
@@ -58,11 +58,12 @@ set_fake_editor () {
bad)
action="badcmd";;
fakesha)
+ test \& != "$action" || action=pick
echo "$action XXXXXXX False commit" >> "$1"
action=pick;;
*)
- sed -n "${line}s/^pick/$action/p" < "$1".tmp >> "$1"
- action=pick;;
+ sed -n "${line}s/^[a-z][a-z]*/$action/p" < "$1".tmp >> "$1"
+ action=\&;;
esac
done
echo 'rebase -i script after editing:'
diff --git a/t/perf/p5600-clone-reference.sh b/t/perf/p5601-clone-reference.sh
index 68fed66..68fed66 100755
--- a/t/perf/p5600-clone-reference.sh
+++ b/t/perf/p5601-clone-reference.sh
diff --git a/t/t0000-basic.sh b/t/t0000-basic.sh
index 9ca0818..4d3f7ba 100755
--- a/t/t0000-basic.sh
+++ b/t/t0000-basic.sh
@@ -274,23 +274,23 @@ test_expect_success 'pretend we have a mix of all possible results' "
test_expect_success C_LOCALE_OUTPUT 'test --verbose' '
test_must_fail run_sub_test_lib_test \
- test-verbose "test verbose" --verbose <<-\EOF &&
+ t1234-verbose "test verbose" --verbose <<-\EOF &&
test_expect_success "passing test" true
test_expect_success "test with output" "echo foo"
test_expect_success "failing test" false
test_done
EOF
- mv test-verbose/out test-verbose/out+ &&
- grep -v "^Initialized empty" test-verbose/out+ >test-verbose/out &&
- check_sub_test_lib_test test-verbose <<-\EOF
- > expecting success: true
+ mv t1234-verbose/out t1234-verbose/out+ &&
+ grep -v "^Initialized empty" t1234-verbose/out+ >t1234-verbose/out &&
+ check_sub_test_lib_test t1234-verbose <<-\EOF
+ > expecting success of 1234.1 '\''passing test'\'': true
> ok 1 - passing test
> Z
- > expecting success: echo foo
+ > expecting success of 1234.2 '\''test with output'\'': echo foo
> foo
> ok 2 - test with output
> Z
- > expecting success: false
+ > expecting success of 1234.3 '\''failing test'\'': false
> not ok 3 - failing test
> # false
> Z
@@ -301,17 +301,17 @@ test_expect_success C_LOCALE_OUTPUT 'test --verbose' '
test_expect_success 'test --verbose-only' '
test_must_fail run_sub_test_lib_test \
- test-verbose-only-2 "test verbose-only=2" \
+ t2345-verbose-only-2 "test verbose-only=2" \
--verbose-only=2 <<-\EOF &&
test_expect_success "passing test" true
test_expect_success "test with output" "echo foo"
test_expect_success "failing test" false
test_done
EOF
- check_sub_test_lib_test test-verbose-only-2 <<-\EOF
+ check_sub_test_lib_test t2345-verbose-only-2 <<-\EOF
> ok 1 - passing test
> Z
- > expecting success: echo foo
+ > expecting success of 2345.2 '\''test with output'\'': echo foo
> foo
> ok 2 - test with output
> Z
@@ -391,6 +391,44 @@ test_expect_success 'GIT_SKIP_TESTS sh pattern' "
)
"
+test_expect_success 'GIT_SKIP_TESTS entire suite' "
+ (
+ GIT_SKIP_TESTS='git' && export GIT_SKIP_TESTS &&
+ run_sub_test_lib_test git-skip-tests-entire-suite \
+ 'GIT_SKIP_TESTS entire suite' <<-\\EOF &&
+ for i in 1 2 3
+ do
+ test_expect_success \"passing test #\$i\" 'true'
+ done
+ test_done
+ EOF
+ check_sub_test_lib_test git-skip-tests-entire-suite <<-\\EOF
+ > 1..0 # SKIP skip all tests in git
+ EOF
+ )
+"
+
+test_expect_success 'GIT_SKIP_TESTS does not skip unmatched suite' "
+ (
+ GIT_SKIP_TESTS='notgit' && export GIT_SKIP_TESTS &&
+ run_sub_test_lib_test git-skip-tests-unmatched-suite \
+ 'GIT_SKIP_TESTS does not skip unmatched suite' <<-\\EOF &&
+ for i in 1 2 3
+ do
+ test_expect_success \"passing test #\$i\" 'true'
+ done
+ test_done
+ EOF
+ check_sub_test_lib_test git-skip-tests-unmatched-suite <<-\\EOF
+ > ok 1 - passing test #1
+ > ok 2 - passing test #2
+ > ok 3 - passing test #3
+ > # passed all 3 test(s)
+ > 1..3
+ EOF
+ )
+"
+
test_expect_success '--run basic' "
run_sub_test_lib_test run-basic \
'--run basic' --run='1 3 5' <<-\\EOF &&
diff --git a/t/t0014-alias.sh b/t/t0014-alias.sh
index a070e64..2694c81 100755
--- a/t/t0014-alias.sh
+++ b/t/t0014-alias.sh
@@ -37,4 +37,11 @@ test_expect_success 'looping aliases - internal execution' '
# test_i18ngrep "^fatal: alias loop detected: expansion of" output
#'
+test_expect_success 'run-command formats empty args properly' '
+ GIT_TRACE=1 git frotz a "" b " " c 2>&1 |
+ sed -ne "/run_command:/s/.*trace: run_command: //p" >actual &&
+ echo "git-frotz a '\'''\'' b '\'' '\'' c" >expect &&
+ test_cmp expect actual
+'
+
test_done
diff --git a/t/t0021-conversion.sh b/t/t0021-conversion.sh
index e10f5f7..c954c70 100755
--- a/t/t0021-conversion.sh
+++ b/t/t0021-conversion.sh
@@ -390,6 +390,9 @@ test_expect_success PERL 'required process filter should filter data' '
EOF
test_cmp_exclude_clean expected.log debug.log &&
+ # Make sure that the file appears dirty, so checkout below has to
+ # run the configured filter.
+ touch test.r &&
filter_git checkout --quiet --no-progress empty-branch &&
cat >expected.log <<-EOF &&
START
diff --git a/t/t0028-working-tree-encoding.sh b/t/t0028-working-tree-encoding.sh
index 1090e65..7aa0945 100755
--- a/t/t0028-working-tree-encoding.sh
+++ b/t/t0028-working-tree-encoding.sh
@@ -40,7 +40,7 @@ test_expect_success 'setup test files' '
printf "$text" | write_utf16 >test.utf16.raw &&
printf "$text" | write_utf32 >test.utf32.raw &&
printf "\377\376" >test.utf16lebom.raw &&
- printf "$text" | iconv -f UTF-8 -t UTF-32LE >>test.utf16lebom.raw &&
+ printf "$text" | iconv -f UTF-8 -t UTF-16LE >>test.utf16lebom.raw &&
# Line ending tests
printf "one\ntwo\nthree\n" >lf.utf8.raw &&
@@ -280,4 +280,43 @@ test_expect_success ICONV_SHIFT_JIS 'check roundtrip encoding' '
git reset
'
+# $1: checkout encoding
+# $2: test string
+# $3: binary test string in checkout encoding
+test_commit_utf8_checkout_other () {
+ encoding="$1"
+ orig_string="$2"
+ expect_bytes="$3"
+
+ test_expect_success "Commit UTF-8, checkout $encoding" '
+ test_when_finished "git checkout HEAD -- .gitattributes" &&
+
+ test_ext="commit_utf8_checkout_$encoding" &&
+ test_file="test.$test_ext" &&
+
+ # Commit as UTF-8
+ echo "*.$test_ext text working-tree-encoding=UTF-8" >.gitattributes &&
+ printf "$orig_string" >$test_file &&
+ git add $test_file &&
+ git commit -m "Test data" &&
+
+ # Checkout in tested encoding
+ rm $test_file &&
+ echo "*.$test_ext text working-tree-encoding=$encoding" >.gitattributes &&
+ git checkout HEAD -- $test_file &&
+
+ # Test
+ printf $expect_bytes >$test_file.raw &&
+ test_cmp_bin $test_file.raw $test_file
+ '
+}
+
+test_commit_utf8_checkout_other "UTF-8" "Test ТеÑÑ‚" "\124\145\163\164\040\320\242\320\265\321\201\321\202"
+test_commit_utf8_checkout_other "UTF-16LE" "Test ТеÑÑ‚" "\124\000\145\000\163\000\164\000\040\000\042\004\065\004\101\004\102\004"
+test_commit_utf8_checkout_other "UTF-16BE" "Test ТеÑÑ‚" "\000\124\000\145\000\163\000\164\000\040\004\042\004\065\004\101\004\102"
+test_commit_utf8_checkout_other "UTF-16LE-BOM" "Test ТеÑÑ‚" "\377\376\124\000\145\000\163\000\164\000\040\000\042\004\065\004\101\004\102\004"
+test_commit_utf8_checkout_other "UTF-16BE-BOM" "Test ТеÑÑ‚" "\376\377\000\124\000\145\000\163\000\164\000\040\004\042\004\065\004\101\004\102"
+test_commit_utf8_checkout_other "UTF-32LE" "Test ТеÑÑ‚" "\124\000\000\000\145\000\000\000\163\000\000\000\164\000\000\000\040\000\000\000\042\004\000\000\065\004\000\000\101\004\000\000\102\004\000\000"
+test_commit_utf8_checkout_other "UTF-32BE" "Test ТеÑÑ‚" "\000\000\000\124\000\000\000\145\000\000\000\163\000\000\000\164\000\000\000\040\000\000\004\042\000\000\004\065\000\000\004\101\000\000\004\102"
+
test_done
diff --git a/t/t0040-parse-options.sh b/t/t0040-parse-options.sh
index cebc77f..705a136 100755
--- a/t/t0040-parse-options.sh
+++ b/t/t0040-parse-options.sh
@@ -399,4 +399,11 @@ test_expect_success 'GIT_TEST_DISALLOW_ABBREVIATED_OPTIONS works' '
test-tool parse-options --ye
'
+test_expect_success '--end-of-options treats remainder as args' '
+ test-tool parse-options \
+ --expect="verbose: -1" \
+ --expect="arg 00: --verbose" \
+ --end-of-options --verbose
+'
+
test_done
diff --git a/t/t0050-filesystem.sh b/t/t0050-filesystem.sh
index 192c94e..608673f 100755
--- a/t/t0050-filesystem.sh
+++ b/t/t0050-filesystem.sh
@@ -131,4 +131,24 @@ $test_unicode 'merge (silent unicode normalization)' '
git merge topic
'
+test_expect_success CASE_INSENSITIVE_FS 'checkout with no pathspec and a case insensitive fs' '
+ git init repo &&
+ (
+ cd repo &&
+
+ >Gitweb &&
+ git add Gitweb &&
+ git commit -m "add Gitweb" &&
+
+ git checkout --orphan todo &&
+ git reset --hard &&
+ mkdir -p gitweb/subdir &&
+ >gitweb/subdir/file &&
+ git add gitweb &&
+ git commit -m "add gitweb/subdir/file" &&
+
+ git checkout master
+ )
+'
+
test_done
diff --git a/t/t0061-run-command.sh b/t/t0061-run-command.sh
index 015fac8..17c9c0f 100755
--- a/t/t0061-run-command.sh
+++ b/t/t0061-run-command.sh
@@ -210,10 +210,23 @@ test_expect_success MINGW 'verify curlies are quoted properly' '
test_cmp expect actual
'
-test_expect_success MINGW 'can spawn with argv[0] containing spaces' '
- cp "$GIT_BUILD_DIR/t/helper/test-fake-ssh$X" ./ &&
- test_must_fail "$PWD/test-fake-ssh$X" 2>err &&
- grep TRASH_DIRECTORY err
+test_expect_success MINGW 'can spawn .bat with argv[0] containing spaces' '
+ bat="$TRASH_DIRECTORY/bat with spaces in name.bat" &&
+
+ # Every .bat invocation will log its arguments to file "out"
+ rm -f out &&
+ echo "echo %* >>out" >"$bat" &&
+
+ # Ask git to invoke .bat; clone will fail due to fake SSH helper
+ test_must_fail env GIT_SSH="$bat" git clone myhost:src ssh-clone &&
+
+ # Spawning .bat can fail if there are two quoted cmd.exe arguments.
+ # .bat itself is first (due to spaces in name), so just one more is
+ # needed to verify. GIT_SSH will invoke .bat multiple times:
+ # 1) -G myhost
+ # 2) myhost "git-upload-pack src"
+ # First invocation will always succeed. Test the second one.
+ grep "git-upload-pack" out
'
test_done
diff --git a/t/t0211-trace2-perf.sh b/t/t0211-trace2-perf.sh
index 2c3ad6e..6ee8ee3 100755
--- a/t/t0211-trace2-perf.sh
+++ b/t/t0211-trace2-perf.sh
@@ -130,11 +130,11 @@ test_expect_success 'perf stream, child processes' '
d0|main|version|||||$V
d0|main|start||_T_ABS_|||_EXE_ trace2 004child test-tool trace2 004child test-tool trace2 001return 0
d0|main|cmd_name|||||trace2 (trace2)
- d0|main|child_start||_T_ABS_|||[ch0] class:? argv: test-tool trace2 004child test-tool trace2 001return 0
+ d0|main|child_start||_T_ABS_|||[ch0] class:? argv:[test-tool trace2 004child test-tool trace2 001return 0]
d1|main|version|||||$V
d1|main|start||_T_ABS_|||_EXE_ trace2 004child test-tool trace2 001return 0
d1|main|cmd_name|||||trace2 (trace2/trace2)
- d1|main|child_start||_T_ABS_|||[ch0] class:? argv: test-tool trace2 001return 0
+ d1|main|child_start||_T_ABS_|||[ch0] class:? argv:[test-tool trace2 001return 0]
d2|main|version|||||$V
d2|main|start||_T_ABS_|||_EXE_ trace2 001return 0
d2|main|cmd_name|||||trace2 (trace2/trace2/trace2)
diff --git a/t/t0212-trace2-event.sh b/t/t0212-trace2-event.sh
index ff5b9cc..7065a1b 100755
--- a/t/t0212-trace2-event.sh
+++ b/t/t0212-trace2-event.sh
@@ -265,4 +265,23 @@ test_expect_success JSON_PP 'using global config, event stream, error event' '
test_cmp expect actual
'
+test_expect_success 'discard traces when there are too many files' '
+ mkdir trace_target_dir &&
+ test_when_finished "rm -r trace_target_dir" &&
+ (
+ GIT_TRACE2_MAX_FILES=5 &&
+ export GIT_TRACE2_MAX_FILES &&
+ cd trace_target_dir &&
+ test_seq $GIT_TRACE2_MAX_FILES >../expected_filenames.txt &&
+ xargs touch <../expected_filenames.txt &&
+ cd .. &&
+ GIT_TRACE2_EVENT="$(pwd)/trace_target_dir" test-tool trace2 001return 0
+ ) &&
+ echo git-trace2-discard >>expected_filenames.txt &&
+ ls trace_target_dir >ls_output.txt &&
+ test_cmp expected_filenames.txt ls_output.txt &&
+ head -n1 trace_target_dir/git-trace2-discard | grep \"event\":\"version\" &&
+ head -n2 trace_target_dir/git-trace2-discard | tail -n1 | grep \"event\":\"too_many_files\"
+'
+
test_done
diff --git a/t/t0410-partial-clone.sh b/t/t0410-partial-clone.sh
index 5bd892f..a3988bd 100755
--- a/t/t0410-partial-clone.sh
+++ b/t/t0410-partial-clone.sh
@@ -26,7 +26,7 @@ promise_and_delete () {
test_expect_success 'extensions.partialclone without filter' '
test_create_repo server &&
git clone --filter="blob:none" "file://$(pwd)/server" client &&
- git -C client config --unset core.partialclonefilter &&
+ git -C client config --unset remote.origin.partialclonefilter &&
git -C client fetch origin
'
@@ -166,8 +166,9 @@ test_expect_success 'fetching of missing objects' '
# associated packfile contains the object
ls repo/.git/objects/pack/pack-*.promisor >promisorlist &&
test_line_count = 1 promisorlist &&
- IDX=$(cat promisorlist | sed "s/promisor$/idx/") &&
- git verify-pack --verbose "$IDX" | grep "$HASH"
+ IDX=$(sed "s/promisor$/idx/" promisorlist) &&
+ git verify-pack --verbose "$IDX" >out &&
+ grep "$HASH" out
'
test_expect_success 'fetching of missing objects works with ref-in-want enabled' '
@@ -182,8 +183,55 @@ test_expect_success 'fetching of missing objects works with ref-in-want enabled'
grep "git< fetch=.*ref-in-want" trace
'
+test_expect_success 'fetching of missing objects from another promisor remote' '
+ git clone "file://$(pwd)/server" server2 &&
+ test_commit -C server2 bar &&
+ git -C server2 repack -a -d --write-bitmap-index &&
+ HASH2=$(git -C server2 rev-parse bar) &&
+
+ git -C repo remote add server2 "file://$(pwd)/server2" &&
+ git -C repo config remote.server2.promisor true &&
+ git -C repo cat-file -p "$HASH2" &&
+
+ git -C repo fetch server2 &&
+ rm -rf repo/.git/objects/* &&
+ git -C repo cat-file -p "$HASH2" &&
+
+ # Ensure that the .promisor file is written, and check that its
+ # associated packfile contains the object
+ ls repo/.git/objects/pack/pack-*.promisor >promisorlist &&
+ test_line_count = 1 promisorlist &&
+ IDX=$(sed "s/promisor$/idx/" promisorlist) &&
+ git verify-pack --verbose "$IDX" >out &&
+ grep "$HASH2" out
+'
+
+test_expect_success 'fetching of missing objects configures a promisor remote' '
+ git clone "file://$(pwd)/server" server3 &&
+ test_commit -C server3 baz &&
+ git -C server3 repack -a -d --write-bitmap-index &&
+ HASH3=$(git -C server3 rev-parse baz) &&
+ git -C server3 config uploadpack.allowfilter 1 &&
+
+ rm repo/.git/objects/pack/pack-*.promisor &&
+
+ git -C repo remote add server3 "file://$(pwd)/server3" &&
+ git -C repo fetch --filter="blob:none" server3 $HASH3 &&
+
+ test_cmp_config -C repo true remote.server3.promisor &&
+
+ # Ensure that the .promisor file is written, and check that its
+ # associated packfile contains the object
+ ls repo/.git/objects/pack/pack-*.promisor >promisorlist &&
+ test_line_count = 1 promisorlist &&
+ IDX=$(sed "s/promisor$/idx/" promisorlist) &&
+ git verify-pack --verbose "$IDX" >out &&
+ grep "$HASH3" out
+'
+
test_expect_success 'fetching of missing blobs works' '
- rm -rf server repo &&
+ rm -rf server server2 repo &&
+ rm -rf server server3 repo &&
test_create_repo server &&
test_commit -C server foo &&
git -C server repack -a -d --write-bitmap-index &&
@@ -234,7 +282,7 @@ test_expect_success 'rev-list stops traversal at missing and promised commit' '
git -C repo config core.repositoryformatversion 1 &&
git -C repo config extensions.partialclone "arbitrary string" &&
- GIT_TEST_COMMIT_GRAPH=0 git -C repo rev-list --exclude-promisor-objects --objects bar >out &&
+ GIT_TEST_COMMIT_GRAPH=0 git -C repo -c core.commitGraph=false rev-list --exclude-promisor-objects --objects bar >out &&
grep $(git -C repo rev-parse bar) out &&
! grep $FOO out
'
@@ -381,6 +429,19 @@ test_expect_success 'rev-list dies for missing objects on cmd line' '
done
'
+test_expect_success 'single promisor remote can be re-initialized gracefully' '
+ # ensure one promisor is in the promisors list
+ rm -rf repo &&
+ test_create_repo repo &&
+ test_create_repo other &&
+ git -C repo remote add foo "file://$(pwd)/other" &&
+ git -C repo config remote.foo.promisor true &&
+ git -C repo config extensions.partialclone foo &&
+
+ # reinitialize the promisors list
+ git -C repo fetch --filter=blob:none foo
+'
+
test_expect_success 'gc repacks promisor objects separately from non-promisor objects' '
rm -rf repo &&
test_create_repo repo &&
@@ -492,6 +553,20 @@ test_expect_success 'gc stops traversal when a missing but promised object is re
! grep "$TREE_HASH" out
'
+test_expect_success 'do not fetch when checking existence of tree we construct ourselves' '
+ rm -rf repo &&
+ test_create_repo repo &&
+ test_commit -C repo base &&
+ test_commit -C repo side1 &&
+ git -C repo checkout base &&
+ test_commit -C repo side2 &&
+
+ git -C repo config core.repositoryformatversion 1 &&
+ git -C repo config extensions.partialclone "arbitrary string" &&
+
+ git -C repo cherry-pick side1
+'
+
. "$TEST_DIRECTORY"/lib-httpd.sh
start_httpd
@@ -514,8 +589,12 @@ test_expect_success 'fetching of missing objects from an HTTP server' '
# associated packfile contains the object
ls repo/.git/objects/pack/pack-*.promisor >promisorlist &&
test_line_count = 1 promisorlist &&
- IDX=$(cat promisorlist | sed "s/promisor$/idx/") &&
- git verify-pack --verbose "$IDX" | grep "$HASH"
+ IDX=$(sed "s/promisor$/idx/" promisorlist) &&
+ git verify-pack --verbose "$IDX" >out &&
+ grep "$HASH" out
'
+# DO NOT add non-httpd-specific tests here, because the last part of this
+# test script is only executed when httpd is available and enabled.
+
test_done
diff --git a/t/t0500-progress-display.sh b/t/t0500-progress-display.sh
new file mode 100755
index 0000000..24ccbd8
--- /dev/null
+++ b/t/t0500-progress-display.sh
@@ -0,0 +1,286 @@
+#!/bin/sh
+
+test_description='progress display'
+
+. ./test-lib.sh
+
+show_cr () {
+ tr '\015' Q | sed -e "s/Q/<CR>\\$LF/g"
+}
+
+test_expect_success 'simple progress display' '
+ cat >expect <<-\EOF &&
+ Working hard: 1<CR>
+ Working hard: 2<CR>
+ Working hard: 5<CR>
+ Working hard: 5, done.
+ EOF
+
+ cat >in <<-\EOF &&
+ update
+ progress 1
+ update
+ progress 2
+ progress 3
+ progress 4
+ update
+ progress 5
+ EOF
+ test-tool progress "Working hard" <in 2>stderr &&
+
+ show_cr <stderr >out &&
+ test_i18ncmp expect out
+'
+
+test_expect_success 'progress display with total' '
+ cat >expect <<-\EOF &&
+ Working hard: 33% (1/3)<CR>
+ Working hard: 66% (2/3)<CR>
+ Working hard: 100% (3/3)<CR>
+ Working hard: 100% (3/3), done.
+ EOF
+
+ cat >in <<-\EOF &&
+ progress 1
+ progress 2
+ progress 3
+ EOF
+ test-tool progress --total=3 "Working hard" <in 2>stderr &&
+
+ show_cr <stderr >out &&
+ test_i18ncmp expect out
+'
+
+test_expect_success 'progress display breaks long lines #1' '
+ sed -e "s/Z$//" >expect <<\EOF &&
+Working hard.......2.........3.........4.........5.........6: 0% (100/100000)<CR>
+Working hard.......2.........3.........4.........5.........6: 1% (1000/100000)<CR>
+Working hard.......2.........3.........4.........5.........6: Z
+ 10% (10000/100000)<CR>
+ 100% (100000/100000)<CR>
+ 100% (100000/100000), done.
+EOF
+
+ cat >in <<-\EOF &&
+ progress 100
+ progress 1000
+ progress 10000
+ progress 100000
+ EOF
+ test-tool progress --total=100000 \
+ "Working hard.......2.........3.........4.........5.........6" \
+ <in 2>stderr &&
+
+ show_cr <stderr >out &&
+ test_i18ncmp expect out
+'
+
+test_expect_success 'progress display breaks long lines #2' '
+ # Note: we dont need that many spaces after the title to cover up
+ # the last line before breaking the progress line.
+ sed -e "s/Z$//" >expect <<\EOF &&
+Working hard.......2.........3.........4.........5.........6: 0% (1/100000)<CR>
+Working hard.......2.........3.........4.........5.........6: 0% (2/100000)<CR>
+Working hard.......2.........3.........4.........5.........6: Z
+ 10% (10000/100000)<CR>
+ 100% (100000/100000)<CR>
+ 100% (100000/100000), done.
+EOF
+
+ cat >in <<-\EOF &&
+ update
+ progress 1
+ update
+ progress 2
+ progress 10000
+ progress 100000
+ EOF
+ test-tool progress --total=100000 \
+ "Working hard.......2.........3.........4.........5.........6" \
+ <in 2>stderr &&
+
+ show_cr <stderr >out &&
+ test_i18ncmp expect out
+'
+
+test_expect_success 'progress display breaks long lines #3 - even the first is too long' '
+ # Note: we dont actually need any spaces at the end of the title
+ # line, because there is no previous progress line to cover up.
+ sed -e "s/Z$//" >expect <<\EOF &&
+Working hard.......2.........3.........4.........5.........6: Z
+ 25% (25000/100000)<CR>
+ 50% (50000/100000)<CR>
+ 75% (75000/100000)<CR>
+ 100% (100000/100000)<CR>
+ 100% (100000/100000), done.
+EOF
+
+ cat >in <<-\EOF &&
+ progress 25000
+ progress 50000
+ progress 75000
+ progress 100000
+ EOF
+ test-tool progress --total=100000 \
+ "Working hard.......2.........3.........4.........5.........6" \
+ <in 2>stderr &&
+
+ show_cr <stderr >out &&
+ test_i18ncmp expect out
+'
+
+test_expect_success 'progress display breaks long lines #4 - title line matches terminal width' '
+ cat >expect <<\EOF &&
+Working hard.......2.........3.........4.........5.........6.........7.........:
+ 25% (25000/100000)<CR>
+ 50% (50000/100000)<CR>
+ 75% (75000/100000)<CR>
+ 100% (100000/100000)<CR>
+ 100% (100000/100000), done.
+EOF
+
+ cat >in <<-\EOF &&
+ progress 25000
+ progress 50000
+ progress 75000
+ progress 100000
+ EOF
+ test-tool progress --total=100000 \
+ "Working hard.......2.........3.........4.........5.........6.........7........." \
+ <in 2>stderr &&
+
+ show_cr <stderr >out &&
+ test_i18ncmp expect out
+'
+
+# Progress counter goes backwards, this should not happen in practice.
+test_expect_success 'progress shortens - crazy caller' '
+ cat >expect <<-\EOF &&
+ Working hard: 10% (100/1000)<CR>
+ Working hard: 20% (200/1000)<CR>
+ Working hard: 0% (1/1000) <CR>
+ Working hard: 100% (1000/1000)<CR>
+ Working hard: 100% (1000/1000), done.
+ EOF
+
+ cat >in <<-\EOF &&
+ progress 100
+ progress 200
+ progress 1
+ progress 1000
+ EOF
+ test-tool progress --total=1000 "Working hard" <in 2>stderr &&
+
+ show_cr <stderr >out &&
+ test_i18ncmp expect out
+'
+
+test_expect_success 'progress display with throughput' '
+ cat >expect <<-\EOF &&
+ Working hard: 10<CR>
+ Working hard: 20, 200.00 KiB | 100.00 KiB/s<CR>
+ Working hard: 30, 300.00 KiB | 100.00 KiB/s<CR>
+ Working hard: 40, 400.00 KiB | 100.00 KiB/s<CR>
+ Working hard: 40, 400.00 KiB | 100.00 KiB/s, done.
+ EOF
+
+ cat >in <<-\EOF &&
+ throughput 102400 1000
+ update
+ progress 10
+ throughput 204800 2000
+ update
+ progress 20
+ throughput 307200 3000
+ update
+ progress 30
+ throughput 409600 4000
+ update
+ progress 40
+ EOF
+ test-tool progress "Working hard" <in 2>stderr &&
+
+ show_cr <stderr >out &&
+ test_i18ncmp expect out
+'
+
+test_expect_success 'progress display with throughput and total' '
+ cat >expect <<-\EOF &&
+ Working hard: 25% (10/40)<CR>
+ Working hard: 50% (20/40), 200.00 KiB | 100.00 KiB/s<CR>
+ Working hard: 75% (30/40), 300.00 KiB | 100.00 KiB/s<CR>
+ Working hard: 100% (40/40), 400.00 KiB | 100.00 KiB/s<CR>
+ Working hard: 100% (40/40), 400.00 KiB | 100.00 KiB/s, done.
+ EOF
+
+ cat >in <<-\EOF &&
+ throughput 102400 1000
+ progress 10
+ throughput 204800 2000
+ progress 20
+ throughput 307200 3000
+ progress 30
+ throughput 409600 4000
+ progress 40
+ EOF
+ test-tool progress --total=40 "Working hard" <in 2>stderr &&
+
+ show_cr <stderr >out &&
+ test_i18ncmp expect out
+'
+
+test_expect_success 'cover up after throughput shortens' '
+ cat >expect <<-\EOF &&
+ Working hard: 1<CR>
+ Working hard: 2, 800.00 KiB | 400.00 KiB/s<CR>
+ Working hard: 3, 1.17 MiB | 400.00 KiB/s <CR>
+ Working hard: 4, 1.56 MiB | 400.00 KiB/s<CR>
+ Working hard: 4, 1.56 MiB | 400.00 KiB/s, done.
+ EOF
+
+ cat >in <<-\EOF &&
+ throughput 409600 1000
+ update
+ progress 1
+ throughput 819200 2000
+ update
+ progress 2
+ throughput 1228800 3000
+ update
+ progress 3
+ throughput 1638400 4000
+ update
+ progress 4
+ EOF
+ test-tool progress "Working hard" <in 2>stderr &&
+
+ show_cr <stderr >out &&
+ test_i18ncmp expect out
+'
+
+test_expect_success 'cover up after throughput shortens a lot' '
+ cat >expect <<-\EOF &&
+ Working hard: 1<CR>
+ Working hard: 2, 1000.00 KiB | 1000.00 KiB/s<CR>
+ Working hard: 3, 3.00 MiB | 1.50 MiB/s <CR>
+ Working hard: 3, 3.00 MiB | 1024.00 KiB/s, done.
+ EOF
+
+ cat >in <<-\EOF &&
+ throughput 1 1000
+ update
+ progress 1
+ throughput 1024000 2000
+ update
+ progress 2
+ throughput 3145728 3000
+ update
+ progress 3
+ EOF
+ test-tool progress "Working hard" <in 2>stderr &&
+
+ show_cr <stderr >out &&
+ test_i18ncmp expect out
+'
+
+test_done
diff --git a/t/t1300-config.sh b/t/t1300-config.sh
index 428177c..983a0a1 100755
--- a/t/t1300-config.sh
+++ b/t/t1300-config.sh
@@ -1294,26 +1294,25 @@ test_expect_success 'git -c is not confused by empty environment' '
GIT_CONFIG_PARAMETERS="" git -c x.one=1 config --list
'
-sq="'"
test_expect_success 'detect bogus GIT_CONFIG_PARAMETERS' '
cat >expect <<-\EOF &&
env.one one
env.two two
EOF
- GIT_CONFIG_PARAMETERS="${sq}env.one=one${sq} ${sq}env.two=two${sq}" \
+ GIT_CONFIG_PARAMETERS="${SQ}env.one=one${SQ} ${SQ}env.two=two${SQ}" \
git config --get-regexp "env.*" >actual &&
test_cmp expect actual &&
cat >expect <<-EOF &&
- env.one one${sq}
+ env.one one${SQ}
env.two two
EOF
- GIT_CONFIG_PARAMETERS="${sq}env.one=one${sq}\\$sq$sq$sq ${sq}env.two=two${sq}" \
+ GIT_CONFIG_PARAMETERS="${SQ}env.one=one${SQ}\\$SQ$SQ$SQ ${SQ}env.two=two${SQ}" \
git config --get-regexp "env.*" >actual &&
test_cmp expect actual &&
test_must_fail env \
- GIT_CONFIG_PARAMETERS="${sq}env.one=one${sq}\\$sq ${sq}env.two=two${sq}" \
+ GIT_CONFIG_PARAMETERS="${SQ}env.one=one${SQ}\\$SQ ${SQ}env.two=two${SQ}" \
git config --get-regexp "env.*"
'
diff --git a/t/t1308-config-set.sh b/t/t1308-config-set.sh
index d0a2727..7b4e1a6 100755
--- a/t/t1308-config-set.sh
+++ b/t/t1308-config-set.sh
@@ -166,14 +166,14 @@ test_expect_success 'find value with highest priority from a configset' '
'
test_expect_success 'find value_list for a key from a configset' '
- cat >except <<-\EOF &&
+ cat >expect <<-\EOF &&
+ lama
+ ball
sam
bat
hask
- lama
- ball
EOF
- test-tool config configset_get_value case.baz config2 .git/config >actual &&
+ test-tool config configset_get_value_multi case.baz config2 .git/config >actual &&
test_cmp expect actual
'
diff --git a/t/t1309-early-config.sh b/t/t1309-early-config.sh
index 0c37e71..3a0de0d 100755
--- a/t/t1309-early-config.sh
+++ b/t/t1309-early-config.sh
@@ -91,7 +91,12 @@ test_expect_failure 'ignore .git/ with invalid config' '
test_expect_success 'early config and onbranch' '
echo "[broken" >broken &&
- test_with_config "[includeif \"onbranch:refs/heads/master\"]path=../broken"
+ test_with_config "[includeif \"onbranch:master\"]path=../broken"
+'
+
+test_expect_success 'onbranch config outside of git repo' '
+ test_config_global includeIf.onbranch:master.path non-existent &&
+ nongit git help
'
test_done
diff --git a/t/t1404-update-ref-errors.sh b/t/t1404-update-ref-errors.sh
index 970c5c3..2d142e5 100755
--- a/t/t1404-update-ref-errors.sh
+++ b/t/t1404-update-ref-errors.sh
@@ -32,8 +32,6 @@ test_update_rejected () {
test_cmp unchanged actual
}
-Q="'"
-
# Test adding and deleting D/F-conflicting references in a single
# transaction.
df_test() {
@@ -93,7 +91,7 @@ df_test() {
delname="$delref"
fi &&
cat >expected-err <<-EOF &&
- fatal: cannot lock ref $Q$addname$Q: $Q$delref$Q exists; cannot create $Q$addref$Q
+ fatal: cannot lock ref $SQ$addname$SQ: $SQ$delref$SQ exists; cannot create $SQ$addref$SQ
EOF
$pack &&
if $add_del
@@ -123,7 +121,7 @@ test_expect_success 'existing loose ref is a simple prefix of new' '
prefix=refs/1l &&
test_update_rejected "a c e" false "b c/x d" \
- "$Q$prefix/c$Q exists; cannot create $Q$prefix/c/x$Q"
+ "$SQ$prefix/c$SQ exists; cannot create $SQ$prefix/c/x$SQ"
'
@@ -131,7 +129,7 @@ test_expect_success 'existing packed ref is a simple prefix of new' '
prefix=refs/1p &&
test_update_rejected "a c e" true "b c/x d" \
- "$Q$prefix/c$Q exists; cannot create $Q$prefix/c/x$Q"
+ "$SQ$prefix/c$SQ exists; cannot create $SQ$prefix/c/x$SQ"
'
@@ -139,7 +137,7 @@ test_expect_success 'existing loose ref is a deeper prefix of new' '
prefix=refs/2l &&
test_update_rejected "a c e" false "b c/x/y d" \
- "$Q$prefix/c$Q exists; cannot create $Q$prefix/c/x/y$Q"
+ "$SQ$prefix/c$SQ exists; cannot create $SQ$prefix/c/x/y$SQ"
'
@@ -147,7 +145,7 @@ test_expect_success 'existing packed ref is a deeper prefix of new' '
prefix=refs/2p &&
test_update_rejected "a c e" true "b c/x/y d" \
- "$Q$prefix/c$Q exists; cannot create $Q$prefix/c/x/y$Q"
+ "$SQ$prefix/c$SQ exists; cannot create $SQ$prefix/c/x/y$SQ"
'
@@ -155,7 +153,7 @@ test_expect_success 'new ref is a simple prefix of existing loose' '
prefix=refs/3l &&
test_update_rejected "a c/x e" false "b c d" \
- "$Q$prefix/c/x$Q exists; cannot create $Q$prefix/c$Q"
+ "$SQ$prefix/c/x$SQ exists; cannot create $SQ$prefix/c$SQ"
'
@@ -163,7 +161,7 @@ test_expect_success 'new ref is a simple prefix of existing packed' '
prefix=refs/3p &&
test_update_rejected "a c/x e" true "b c d" \
- "$Q$prefix/c/x$Q exists; cannot create $Q$prefix/c$Q"
+ "$SQ$prefix/c/x$SQ exists; cannot create $SQ$prefix/c$SQ"
'
@@ -171,7 +169,7 @@ test_expect_success 'new ref is a deeper prefix of existing loose' '
prefix=refs/4l &&
test_update_rejected "a c/x/y e" false "b c d" \
- "$Q$prefix/c/x/y$Q exists; cannot create $Q$prefix/c$Q"
+ "$SQ$prefix/c/x/y$SQ exists; cannot create $SQ$prefix/c$SQ"
'
@@ -179,7 +177,7 @@ test_expect_success 'new ref is a deeper prefix of existing packed' '
prefix=refs/4p &&
test_update_rejected "a c/x/y e" true "b c d" \
- "$Q$prefix/c/x/y$Q exists; cannot create $Q$prefix/c$Q"
+ "$SQ$prefix/c/x/y$SQ exists; cannot create $SQ$prefix/c$SQ"
'
@@ -187,7 +185,7 @@ test_expect_success 'one new ref is a simple prefix of another' '
prefix=refs/5 &&
test_update_rejected "a e" false "b c c/x d" \
- "cannot process $Q$prefix/c$Q and $Q$prefix/c/x$Q at the same time"
+ "cannot process $SQ$prefix/c$SQ and $SQ$prefix/c/x$SQ at the same time"
'
@@ -334,7 +332,7 @@ test_expect_success 'D/F conflict prevents indirect delete long packed + indirec
test_expect_success 'missing old value blocks update' '
prefix=refs/missing-update &&
cat >expected <<-EOF &&
- fatal: cannot lock ref $Q$prefix/foo$Q: unable to resolve reference $Q$prefix/foo$Q
+ fatal: cannot lock ref $SQ$prefix/foo$SQ: unable to resolve reference $SQ$prefix/foo$SQ
EOF
printf "%s\n" "update $prefix/foo $E $D" |
test_must_fail git update-ref --stdin 2>output.err &&
@@ -345,7 +343,7 @@ test_expect_success 'incorrect old value blocks update' '
prefix=refs/incorrect-update &&
git update-ref $prefix/foo $C &&
cat >expected <<-EOF &&
- fatal: cannot lock ref $Q$prefix/foo$Q: is at $C but expected $D
+ fatal: cannot lock ref $SQ$prefix/foo$SQ: is at $C but expected $D
EOF
printf "%s\n" "update $prefix/foo $E $D" |
test_must_fail git update-ref --stdin 2>output.err &&
@@ -356,7 +354,7 @@ test_expect_success 'existing old value blocks create' '
prefix=refs/existing-create &&
git update-ref $prefix/foo $C &&
cat >expected <<-EOF &&
- fatal: cannot lock ref $Q$prefix/foo$Q: reference already exists
+ fatal: cannot lock ref $SQ$prefix/foo$SQ: reference already exists
EOF
printf "%s\n" "create $prefix/foo $E" |
test_must_fail git update-ref --stdin 2>output.err &&
@@ -367,7 +365,7 @@ test_expect_success 'incorrect old value blocks delete' '
prefix=refs/incorrect-delete &&
git update-ref $prefix/foo $C &&
cat >expected <<-EOF &&
- fatal: cannot lock ref $Q$prefix/foo$Q: is at $C but expected $D
+ fatal: cannot lock ref $SQ$prefix/foo$SQ: is at $C but expected $D
EOF
printf "%s\n" "delete $prefix/foo $D" |
test_must_fail git update-ref --stdin 2>output.err &&
@@ -378,7 +376,7 @@ test_expect_success 'missing old value blocks indirect update' '
prefix=refs/missing-indirect-update &&
git symbolic-ref $prefix/symref $prefix/foo &&
cat >expected <<-EOF &&
- fatal: cannot lock ref $Q$prefix/symref$Q: unable to resolve reference $Q$prefix/foo$Q
+ fatal: cannot lock ref $SQ$prefix/symref$SQ: unable to resolve reference $SQ$prefix/foo$SQ
EOF
printf "%s\n" "update $prefix/symref $E $D" |
test_must_fail git update-ref --stdin 2>output.err &&
@@ -390,7 +388,7 @@ test_expect_success 'incorrect old value blocks indirect update' '
git symbolic-ref $prefix/symref $prefix/foo &&
git update-ref $prefix/foo $C &&
cat >expected <<-EOF &&
- fatal: cannot lock ref $Q$prefix/symref$Q: is at $C but expected $D
+ fatal: cannot lock ref $SQ$prefix/symref$SQ: is at $C but expected $D
EOF
printf "%s\n" "update $prefix/symref $E $D" |
test_must_fail git update-ref --stdin 2>output.err &&
@@ -402,7 +400,7 @@ test_expect_success 'existing old value blocks indirect create' '
git symbolic-ref $prefix/symref $prefix/foo &&
git update-ref $prefix/foo $C &&
cat >expected <<-EOF &&
- fatal: cannot lock ref $Q$prefix/symref$Q: reference already exists
+ fatal: cannot lock ref $SQ$prefix/symref$SQ: reference already exists
EOF
printf "%s\n" "create $prefix/symref $E" |
test_must_fail git update-ref --stdin 2>output.err &&
@@ -414,7 +412,7 @@ test_expect_success 'incorrect old value blocks indirect delete' '
git symbolic-ref $prefix/symref $prefix/foo &&
git update-ref $prefix/foo $C &&
cat >expected <<-EOF &&
- fatal: cannot lock ref $Q$prefix/symref$Q: is at $C but expected $D
+ fatal: cannot lock ref $SQ$prefix/symref$SQ: is at $C but expected $D
EOF
printf "%s\n" "delete $prefix/symref $D" |
test_must_fail git update-ref --stdin 2>output.err &&
@@ -425,7 +423,7 @@ test_expect_success 'missing old value blocks indirect no-deref update' '
prefix=refs/missing-noderef-update &&
git symbolic-ref $prefix/symref $prefix/foo &&
cat >expected <<-EOF &&
- fatal: cannot lock ref $Q$prefix/symref$Q: reference is missing but expected $D
+ fatal: cannot lock ref $SQ$prefix/symref$SQ: reference is missing but expected $D
EOF
printf "%s\n" "option no-deref" "update $prefix/symref $E $D" |
test_must_fail git update-ref --stdin 2>output.err &&
@@ -437,7 +435,7 @@ test_expect_success 'incorrect old value blocks indirect no-deref update' '
git symbolic-ref $prefix/symref $prefix/foo &&
git update-ref $prefix/foo $C &&
cat >expected <<-EOF &&
- fatal: cannot lock ref $Q$prefix/symref$Q: is at $C but expected $D
+ fatal: cannot lock ref $SQ$prefix/symref$SQ: is at $C but expected $D
EOF
printf "%s\n" "option no-deref" "update $prefix/symref $E $D" |
test_must_fail git update-ref --stdin 2>output.err &&
@@ -449,7 +447,7 @@ test_expect_success 'existing old value blocks indirect no-deref create' '
git symbolic-ref $prefix/symref $prefix/foo &&
git update-ref $prefix/foo $C &&
cat >expected <<-EOF &&
- fatal: cannot lock ref $Q$prefix/symref$Q: reference already exists
+ fatal: cannot lock ref $SQ$prefix/symref$SQ: reference already exists
EOF
printf "%s\n" "option no-deref" "create $prefix/symref $E" |
test_must_fail git update-ref --stdin 2>output.err &&
@@ -461,7 +459,7 @@ test_expect_success 'incorrect old value blocks indirect no-deref delete' '
git symbolic-ref $prefix/symref $prefix/foo &&
git update-ref $prefix/foo $C &&
cat >expected <<-EOF &&
- fatal: cannot lock ref $Q$prefix/symref$Q: is at $C but expected $D
+ fatal: cannot lock ref $SQ$prefix/symref$SQ: is at $C but expected $D
EOF
printf "%s\n" "option no-deref" "delete $prefix/symref $D" |
test_must_fail git update-ref --stdin 2>output.err &&
@@ -474,13 +472,13 @@ test_expect_success 'non-empty directory blocks create' '
: >.git/$prefix/foo/bar/baz.lock &&
test_when_finished "rm -f .git/$prefix/foo/bar/baz.lock" &&
cat >expected <<-EOF &&
- fatal: cannot lock ref $Q$prefix/foo$Q: there is a non-empty directory $Q.git/$prefix/foo$Q blocking reference $Q$prefix/foo$Q
+ fatal: cannot lock ref $SQ$prefix/foo$SQ: there is a non-empty directory $SQ.git/$prefix/foo$SQ blocking reference $SQ$prefix/foo$SQ
EOF
printf "%s\n" "update $prefix/foo $C" |
test_must_fail git update-ref --stdin 2>output.err &&
test_cmp expected output.err &&
cat >expected <<-EOF &&
- fatal: cannot lock ref $Q$prefix/foo$Q: unable to resolve reference $Q$prefix/foo$Q
+ fatal: cannot lock ref $SQ$prefix/foo$SQ: unable to resolve reference $SQ$prefix/foo$SQ
EOF
printf "%s\n" "update $prefix/foo $D $C" |
test_must_fail git update-ref --stdin 2>output.err &&
@@ -493,13 +491,13 @@ test_expect_success 'broken reference blocks create' '
echo "gobbledigook" >.git/$prefix/foo &&
test_when_finished "rm -f .git/$prefix/foo" &&
cat >expected <<-EOF &&
- fatal: cannot lock ref $Q$prefix/foo$Q: unable to resolve reference $Q$prefix/foo$Q: reference broken
+ fatal: cannot lock ref $SQ$prefix/foo$SQ: unable to resolve reference $SQ$prefix/foo$SQ: reference broken
EOF
printf "%s\n" "update $prefix/foo $C" |
test_must_fail git update-ref --stdin 2>output.err &&
test_cmp expected output.err &&
cat >expected <<-EOF &&
- fatal: cannot lock ref $Q$prefix/foo$Q: unable to resolve reference $Q$prefix/foo$Q: reference broken
+ fatal: cannot lock ref $SQ$prefix/foo$SQ: unable to resolve reference $SQ$prefix/foo$SQ: reference broken
EOF
printf "%s\n" "update $prefix/foo $D $C" |
test_must_fail git update-ref --stdin 2>output.err &&
@@ -513,13 +511,13 @@ test_expect_success 'non-empty directory blocks indirect create' '
: >.git/$prefix/foo/bar/baz.lock &&
test_when_finished "rm -f .git/$prefix/foo/bar/baz.lock" &&
cat >expected <<-EOF &&
- fatal: cannot lock ref $Q$prefix/symref$Q: there is a non-empty directory $Q.git/$prefix/foo$Q blocking reference $Q$prefix/foo$Q
+ fatal: cannot lock ref $SQ$prefix/symref$SQ: there is a non-empty directory $SQ.git/$prefix/foo$SQ blocking reference $SQ$prefix/foo$SQ
EOF
printf "%s\n" "update $prefix/symref $C" |
test_must_fail git update-ref --stdin 2>output.err &&
test_cmp expected output.err &&
cat >expected <<-EOF &&
- fatal: cannot lock ref $Q$prefix/symref$Q: unable to resolve reference $Q$prefix/foo$Q
+ fatal: cannot lock ref $SQ$prefix/symref$SQ: unable to resolve reference $SQ$prefix/foo$SQ
EOF
printf "%s\n" "update $prefix/symref $D $C" |
test_must_fail git update-ref --stdin 2>output.err &&
@@ -532,13 +530,13 @@ test_expect_success 'broken reference blocks indirect create' '
echo "gobbledigook" >.git/$prefix/foo &&
test_when_finished "rm -f .git/$prefix/foo" &&
cat >expected <<-EOF &&
- fatal: cannot lock ref $Q$prefix/symref$Q: unable to resolve reference $Q$prefix/foo$Q: reference broken
+ fatal: cannot lock ref $SQ$prefix/symref$SQ: unable to resolve reference $SQ$prefix/foo$SQ: reference broken
EOF
printf "%s\n" "update $prefix/symref $C" |
test_must_fail git update-ref --stdin 2>output.err &&
test_cmp expected output.err &&
cat >expected <<-EOF &&
- fatal: cannot lock ref $Q$prefix/symref$Q: unable to resolve reference $Q$prefix/foo$Q: reference broken
+ fatal: cannot lock ref $SQ$prefix/symref$SQ: unable to resolve reference $SQ$prefix/foo$SQ: reference broken
EOF
printf "%s\n" "update $prefix/symref $D $C" |
test_must_fail git update-ref --stdin 2>output.err &&
@@ -614,7 +612,7 @@ test_expect_success 'delete fails cleanly if packed-refs file is locked' '
test_when_finished "rm -f .git/packed-refs.lock" &&
test_must_fail git update-ref -d $prefix/foo >out 2>err &&
git for-each-ref $prefix >actual &&
- test_i18ngrep "Unable to create $Q.*packed-refs.lock$Q: " err &&
+ test_i18ngrep "Unable to create $SQ.*packed-refs.lock$SQ: " err &&
test_cmp unchanged actual
'
diff --git a/t/t1414-reflog-walk.sh b/t/t1414-reflog-walk.sh
index feb1efd..1181a9f 100755
--- a/t/t1414-reflog-walk.sh
+++ b/t/t1414-reflog-walk.sh
@@ -18,10 +18,9 @@ do_walk () {
git log -g --format="%gd %gs" "$@"
}
-sq="'"
test_expect_success 'set up expected reflog' '
cat >expect.all <<-EOF
- HEAD@{0} commit (merge): Merge branch ${sq}master${sq} into side
+ HEAD@{0} commit (merge): Merge branch ${SQ}master${SQ} into side
HEAD@{1} commit: three
HEAD@{2} checkout: moving from master to side
HEAD@{3} commit: two
diff --git a/t/t1450-fsck.sh b/t/t1450-fsck.sh
index b36e052..50d28e6 100755
--- a/t/t1450-fsck.sh
+++ b/t/t1450-fsck.sh
@@ -70,7 +70,6 @@ test_expect_success 'object with bad sha1' '
test_when_finished "git update-ref -d refs/heads/bogus" &&
test_must_fail git fsck 2>out &&
- cat out &&
test_i18ngrep "$sha.*corrupt" out
'
@@ -78,7 +77,6 @@ test_expect_success 'branch pointing to non-commit' '
git rev-parse HEAD^{tree} >.git/refs/heads/invalid &&
test_when_finished "git update-ref -d refs/heads/invalid" &&
test_must_fail git fsck 2>out &&
- cat out &&
test_i18ngrep "not a commit" out
'
@@ -88,7 +86,6 @@ test_expect_success 'HEAD link pointing at a funny object' '
echo $ZERO_OID >.git/HEAD &&
# avoid corrupt/broken HEAD from interfering with repo discovery
test_must_fail env GIT_DIR=.git git fsck 2>out &&
- cat out &&
test_i18ngrep "detached HEAD points" out
'
@@ -98,7 +95,6 @@ test_expect_success 'HEAD link pointing at a funny place' '
echo "ref: refs/funny/place" >.git/HEAD &&
# avoid corrupt/broken HEAD from interfering with repo discovery
test_must_fail env GIT_DIR=.git git fsck 2>out &&
- cat out &&
test_i18ngrep "HEAD points to something strange" out
'
@@ -157,7 +153,6 @@ test_expect_success 'email with embedded > is not okay' '
git update-ref refs/heads/bogus "$new" &&
test_when_finished "git update-ref -d refs/heads/bogus" &&
test_must_fail git fsck 2>out &&
- cat out &&
test_i18ngrep "error in commit $new" out
'
@@ -169,7 +164,6 @@ test_expect_success 'missing < email delimiter is reported nicely' '
git update-ref refs/heads/bogus "$new" &&
test_when_finished "git update-ref -d refs/heads/bogus" &&
test_must_fail git fsck 2>out &&
- cat out &&
test_i18ngrep "error in commit $new.* - bad name" out
'
@@ -181,7 +175,6 @@ test_expect_success 'missing email is reported nicely' '
git update-ref refs/heads/bogus "$new" &&
test_when_finished "git update-ref -d refs/heads/bogus" &&
test_must_fail git fsck 2>out &&
- cat out &&
test_i18ngrep "error in commit $new.* - missing email" out
'
@@ -193,7 +186,6 @@ test_expect_success '> in name is reported' '
git update-ref refs/heads/bogus "$new" &&
test_when_finished "git update-ref -d refs/heads/bogus" &&
test_must_fail git fsck 2>out &&
- cat out &&
test_i18ngrep "error in commit $new" out
'
@@ -207,7 +199,6 @@ test_expect_success 'integer overflow in timestamps is reported' '
git update-ref refs/heads/bogus "$new" &&
test_when_finished "git update-ref -d refs/heads/bogus" &&
test_must_fail git fsck 2>out &&
- cat out &&
test_i18ngrep "error in commit $new.*integer overflow" out
'
@@ -219,7 +210,6 @@ test_expect_success 'commit with NUL in header' '
git update-ref refs/heads/bogus "$new" &&
test_when_finished "git update-ref -d refs/heads/bogus" &&
test_must_fail git fsck 2>out &&
- cat out &&
test_i18ngrep "error in commit $new.*unterminated header: NUL at offset" out
'
@@ -297,7 +287,6 @@ test_expect_success 'tag pointing to nonexistent' '
echo $tag >.git/refs/tags/invalid &&
test_when_finished "git update-ref -d refs/tags/invalid" &&
test_must_fail git fsck --tags >out &&
- cat out &&
test_i18ngrep "broken link" out
'
@@ -378,7 +367,6 @@ test_expect_success 'tag with NUL in header' '
echo $tag >.git/refs/tags/wrong &&
test_when_finished "git update-ref -d refs/tags/wrong" &&
test_must_fail git fsck --tags 2>out &&
- cat out &&
test_i18ngrep "error in tag $tag.*unterminated header: NUL at offset" out
'
@@ -409,7 +397,6 @@ test_expect_success 'rev-list --verify-objects with bad sha1' '
test_when_finished "git update-ref -d refs/heads/bogus" &&
test_might_fail git rev-list --verify-objects refs/heads/bogus >/dev/null 2>out &&
- cat out &&
test_i18ngrep -q "error: hash mismatch $(dirname $new)$(test_oid ff_2)" out
'
@@ -433,7 +420,6 @@ test_expect_success 'fsck notices blob entry pointing to null sha1' '
sha=$(printf "100644 file$_bz$_bzoid" |
git hash-object -w --stdin -t tree) &&
git fsck 2>out &&
- cat out &&
test_i18ngrep "warning.*null sha1" out
)
'
@@ -444,7 +430,6 @@ test_expect_success 'fsck notices submodule entry pointing to null sha1' '
sha=$(printf "160000 submodule$_bz$_bzoid" |
git hash-object -w --stdin -t tree) &&
git fsck 2>out &&
- cat out &&
test_i18ngrep "warning.*null sha1" out
)
'
@@ -465,7 +450,6 @@ while read name path pretty; do
printf "$mode $type %s\t%s" "$value" "$path" >bad &&
bad_tree=$(git mktree <bad) &&
git fsck 2>out &&
- cat out &&
test_i18ngrep "warning.*tree $bad_tree" out
)'
done <<-\EOF
diff --git a/t/t1506-rev-parse-diagnosis.sh b/t/t1506-rev-parse-diagnosis.sh
index 4ee009d..624d0a5 100755
--- a/t/t1506-rev-parse-diagnosis.sh
+++ b/t/t1506-rev-parse-diagnosis.sh
@@ -8,10 +8,9 @@ exec </dev/null
test_did_you_mean ()
{
- sq="'" &&
cat >expected <<-EOF &&
- fatal: Path '$2$3' $4, but not ${5:-$sq$3$sq}.
- Did you mean '$1:$2$3'${2:+ aka $sq$1:./$3$sq}?
+ fatal: Path '$2$3' $4, but not ${5:-$SQ$3$SQ}.
+ Did you mean '$1:$2$3'${2:+ aka $SQ$1:./$3$SQ}?
EOF
test_cmp expected error
}
@@ -215,4 +214,12 @@ test_expect_success 'arg before dashdash must be a revision (ambiguous)' '
test_cmp expect actual
'
+test_expect_success 'reject Nth parent if N is too high' '
+ test_must_fail git rev-parse HEAD^100000000000000000000000000000000
+'
+
+test_expect_success 'reject Nth ancestor if N is too high' '
+ test_must_fail git rev-parse HEAD~100000000000000000000000000000000
+'
+
test_done
diff --git a/t/t1507-rev-parse-upstream.sh b/t/t1507-rev-parse-upstream.sh
index fa3e499..8b4cf8a 100755
--- a/t/t1507-rev-parse-upstream.sh
+++ b/t/t1507-rev-parse-upstream.sh
@@ -28,8 +28,6 @@ test_expect_success 'setup' '
)
'
-sq="'"
-
full_name () {
(cd clone &&
git rev-parse --symbolic-full-name "$@")
@@ -129,7 +127,7 @@ test_expect_success 'merge my-side@{u} records the correct name' '
git branch -t new my-side@{u} &&
git merge -s ours new@{u} &&
git show -s --pretty=tformat:%s >actual &&
- echo "Merge remote-tracking branch ${sq}origin/side${sq}" >expect &&
+ echo "Merge remote-tracking branch ${SQ}origin/side${SQ}" >expect &&
test_cmp expect actual
)
'
@@ -156,7 +154,7 @@ test_expect_success 'branch@{u} works when tracking a local branch' '
test_expect_success 'branch@{u} error message when no upstream' '
cat >expect <<-EOF &&
- fatal: no upstream configured for branch ${sq}non-tracking${sq}
+ fatal: no upstream configured for branch ${SQ}non-tracking${SQ}
EOF
error_message non-tracking@{u} &&
test_i18ncmp expect error
@@ -164,7 +162,7 @@ test_expect_success 'branch@{u} error message when no upstream' '
test_expect_success '@{u} error message when no upstream' '
cat >expect <<-EOF &&
- fatal: no upstream configured for branch ${sq}master${sq}
+ fatal: no upstream configured for branch ${SQ}master${SQ}
EOF
test_must_fail git rev-parse --verify @{u} 2>actual &&
test_i18ncmp expect actual
@@ -172,7 +170,7 @@ test_expect_success '@{u} error message when no upstream' '
test_expect_success 'branch@{u} error message with misspelt branch' '
cat >expect <<-EOF &&
- fatal: no such branch: ${sq}no-such-branch${sq}
+ fatal: no such branch: ${SQ}no-such-branch${SQ}
EOF
error_message no-such-branch@{u} &&
test_i18ncmp expect error
@@ -189,7 +187,7 @@ test_expect_success '@{u} error message when not on a branch' '
test_expect_success 'branch@{u} error message if upstream branch not fetched' '
cat >expect <<-EOF &&
- fatal: upstream branch ${sq}refs/heads/side${sq} not stored as a remote-tracking branch
+ fatal: upstream branch ${SQ}refs/heads/side${SQ} not stored as a remote-tracking branch
EOF
error_message bad-upstream@{u} &&
test_i18ncmp expect error
diff --git a/t/t1600-index.sh b/t/t1600-index.sh
index 42962ed..b7c31aa 100755
--- a/t/t1600-index.sh
+++ b/t/t1600-index.sh
@@ -59,17 +59,42 @@ test_expect_success 'out of bounds index.version issues warning' '
)
'
-test_expect_success 'GIT_INDEX_VERSION takes precedence over config' '
+test_index_version () {
+ INDEX_VERSION_CONFIG=$1 &&
+ FEATURE_MANY_FILES=$2 &&
+ ENV_VAR_VERSION=$3
+ EXPECTED_OUTPUT_VERSION=$4 &&
(
rm -f .git/index &&
- GIT_INDEX_VERSION=4 &&
- export GIT_INDEX_VERSION &&
- git config --add index.version 2 &&
+ rm -f .git/config &&
+ if test "$INDEX_VERSION_CONFIG" -ne 0
+ then
+ git config --add index.version $INDEX_VERSION_CONFIG
+ fi &&
+ git config --add feature.manyFiles $FEATURE_MANY_FILES
+ if test "$ENV_VAR_VERSION" -ne 0
+ then
+ GIT_INDEX_VERSION=$ENV_VAR_VERSION &&
+ export GIT_INDEX_VERSION
+ else
+ unset GIT_INDEX_VERSION
+ fi &&
git add a 2>&1 &&
- echo 4 >expect &&
+ echo $EXPECTED_OUTPUT_VERSION >expect &&
test-tool index-version <.git/index >actual &&
test_cmp expect actual
)
+}
+
+test_expect_success 'index version config precedence' '
+ test_index_version 0 false 0 2 &&
+ test_index_version 2 false 0 2 &&
+ test_index_version 3 false 0 2 &&
+ test_index_version 4 false 0 4 &&
+ test_index_version 2 false 4 4 &&
+ test_index_version 2 true 0 2 &&
+ test_index_version 0 true 0 4 &&
+ test_index_version 0 true 2 2
'
test_done
diff --git a/t/t2022-checkout-paths.sh b/t/t2022-checkout-paths.sh
index fc3eb43..6844afa 100755
--- a/t/t2022-checkout-paths.sh
+++ b/t/t2022-checkout-paths.sh
@@ -78,4 +78,15 @@ test_expect_success 'do not touch files that are already up-to-date' '
test_cmp expect actual
'
+test_expect_success 'checkout HEAD adds deleted intent-to-add file back to index' '
+ echo "nonempty" >nonempty &&
+ >empty &&
+ git add nonempty empty &&
+ git commit -m "create files to be deleted" &&
+ git rm --cached nonempty empty &&
+ git add -N nonempty empty &&
+ git checkout HEAD nonempty empty &&
+ git diff --cached --exit-code
+'
+
test_done
diff --git a/t/t2070-restore.sh b/t/t2070-restore.sh
index 2650df1..21c3f84 100755
--- a/t/t2070-restore.sh
+++ b/t/t2070-restore.sh
@@ -95,4 +95,15 @@ test_expect_success 'restore --ignore-unmerged ignores unmerged entries' '
)
'
+test_expect_success 'restore --staged adds deleted intent-to-add file back to index' '
+ echo "nonempty" >nonempty &&
+ >empty &&
+ git add nonempty empty &&
+ git commit -m "create files to be deleted" &&
+ git rm --cached nonempty empty &&
+ git add -N nonempty empty &&
+ git restore --staged nonempty empty &&
+ git diff --cached --exit-code
+'
+
test_done
diff --git a/t/t3005-ls-files-relative.sh b/t/t3005-ls-files-relative.sh
index 209b4c7..2ec69a8 100755
--- a/t/t3005-ls-files-relative.sh
+++ b/t/t3005-ls-files-relative.sh
@@ -7,10 +7,6 @@ This test runs git ls-files with various relative path arguments.
. ./test-lib.sh
-new_line='
-'
-sq=\'
-
test_expect_success 'prepare' '
: >never-mind-me &&
git add never-mind-me &&
@@ -44,9 +40,9 @@ test_expect_success 'ls-files -c' '
cd top/sub &&
for f in ../y*
do
- echo "error: pathspec $sq$f$sq did not match any file(s) known to git"
+ echo "error: pathspec $SQ$f$SQ did not match any file(s) known to git"
done >expect.err &&
- echo "Did you forget to ${sq}git add${sq}?" >>expect.err &&
+ echo "Did you forget to ${SQ}git add${SQ}?" >>expect.err &&
ls ../x* >expect.out &&
test_must_fail git ls-files -c --error-unmatch ../[xy]* >actual.out 2>actual.err &&
test_cmp expect.out actual.out &&
@@ -59,9 +55,9 @@ test_expect_success 'ls-files -o' '
cd top/sub &&
for f in ../x*
do
- echo "error: pathspec $sq$f$sq did not match any file(s) known to git"
+ echo "error: pathspec $SQ$f$SQ did not match any file(s) known to git"
done >expect.err &&
- echo "Did you forget to ${sq}git add${sq}?" >>expect.err &&
+ echo "Did you forget to ${SQ}git add${SQ}?" >>expect.err &&
ls ../y* >expect.out &&
test_must_fail git ls-files -o --error-unmatch ../[xy]* >actual.out 2>actual.err &&
test_cmp expect.out actual.out &&
diff --git a/t/t3030-merge-recursive.sh b/t/t3030-merge-recursive.sh
index ff641b3..2170758 100755
--- a/t/t3030-merge-recursive.sh
+++ b/t/t3030-merge-recursive.sh
@@ -452,6 +452,34 @@ test_expect_success 'merge-recursive d/f conflict result' '
'
+test_expect_success SYMLINKS 'dir in working tree with symlink ancestor does not produce d/f conflict' '
+ git init sym &&
+ (
+ cd sym &&
+ ln -s . foo &&
+ mkdir bar &&
+ >bar/file &&
+ git add foo bar/file &&
+ git commit -m "foo symlink" &&
+
+ git checkout -b branch1 &&
+ git commit --allow-empty -m "empty commit" &&
+
+ git checkout master &&
+ git rm foo &&
+ mkdir foo &&
+ >foo/bar &&
+ git add foo/bar &&
+ git commit -m "replace foo symlink with real foo dir and foo/bar file" &&
+
+ git checkout branch1 &&
+
+ git cherry-pick master &&
+ test_path_is_dir foo &&
+ test_path_is_file foo/bar
+ )
+'
+
test_expect_success 'reset and 3-way merge' '
git reset --hard "$c2" &&
@@ -667,15 +695,22 @@ test_expect_success 'merging with triple rename across D/F conflict' '
test_expect_success 'merge-recursive remembers the names of all base trees' '
git reset --hard HEAD &&
+ # make the index match $c1 so that merge-recursive below does not
+ # fail early
+ git diff --binary HEAD $c1 -- | git apply --cached &&
+
# more trees than static slots used by oid_to_hex()
for commit in $c0 $c2 $c4 $c5 $c6 $c7
do
git rev-parse "$commit^{tree}"
done >trees &&
- # ignore the return code -- it only fails because the input is weird
+ # ignore the return code; it only fails because the input is weird...
test_must_fail git -c merge.verbosity=5 merge-recursive $(cat trees) -- $c1 $c3 >out &&
+ # ...but make sure it fails in the expected way
+ test_i18ngrep CONFLICT.*rename/rename out &&
+
# merge-recursive prints in reverse order, but we do not care
sort <trees >expect &&
sed -n "s/^virtual //p" out | sort >actual &&
diff --git a/t/t3201-branch-contains.sh b/t/t3201-branch-contains.sh
index 0ea4fc4..40251c9 100755
--- a/t/t3201-branch-contains.sh
+++ b/t/t3201-branch-contains.sh
@@ -192,10 +192,10 @@ test_expect_success 'branch --merged with --verbose' '
EOF
test_cmp expect actual &&
git branch --verbose --merged topic >actual &&
- cat >expect <<-\EOF &&
- master c77a0a9 second on master
- * topic 2c939f4 [ahead 1] foo
- zzz c77a0a9 second on master
+ cat >expect <<-EOF &&
+ master $(git rev-parse --short master) second on master
+ * topic $(git rev-parse --short topic ) [ahead 1] foo
+ zzz $(git rev-parse --short zzz ) second on master
EOF
test_i18ncmp expect actual
'
diff --git a/t/t3206-range-diff.sh b/t/t3206-range-diff.sh
index ec54865..0579cd9 100755
--- a/t/t3206-range-diff.sh
+++ b/t/t3206-range-diff.sh
@@ -8,17 +8,124 @@ test_description='range-diff tests'
# harm than good. We need some real history.
test_expect_success 'setup' '
- git fast-import < "$TEST_DIRECTORY"/t3206/history.export
+ git fast-import < "$TEST_DIRECTORY"/t3206/history.export &&
+ test_oid_cache <<-EOF
+ # topic
+ t1 sha1:4de457d
+ t2 sha1:fccce22
+ t3 sha1:147e64e
+ t4 sha1:a63e992
+ t1 sha256:b89f8b9
+ t2 sha256:5f12aad
+ t3 sha256:ea8b273
+ t4 sha256:14b7336
+
+ # unmodified
+ u1 sha1:35b9b25
+ u2 sha1:de345ab
+ u3 sha1:9af6654
+ u4 sha1:2901f77
+ u1 sha256:e3731be
+ u2 sha256:14fadf8
+ u3 sha256:736c4bc
+ u4 sha256:673e77d
+
+ # reordered
+ r1 sha1:aca177a
+ r2 sha1:14ad629
+ r3 sha1:ee58208
+ r4 sha1:307b27a
+ r1 sha256:f59d3aa
+ r2 sha256:fb261a8
+ r3 sha256:cb2649b
+ r4 sha256:958577e
+
+ # removed (deleted)
+ d1 sha1:7657159
+ d2 sha1:43d84d3
+ d3 sha1:a740396
+ d1 sha256:e312513
+ d2 sha256:eb19258
+ d3 sha256:1ccb3c1
+
+ # added
+ a1 sha1:2716022
+ a2 sha1:b62accd
+ a3 sha1:df46cfa
+ a4 sha1:3e64548
+ a5 sha1:12b4063
+ a1 sha256:d724f4d
+ a2 sha256:1de7762
+ a3 sha256:e159431
+ a4 sha256:b3e483c
+ a5 sha256:90866a7
+
+ # rebased
+ b1 sha1:cc9c443
+ b2 sha1:c5d9641
+ b3 sha1:28cc2b6
+ b4 sha1:5628ab7
+ b5 sha1:a31b12e
+ b1 sha256:a1a8717
+ b2 sha256:20a5862
+ b3 sha256:587172a
+ b4 sha256:2721c5d
+ b5 sha256:7b57864
+
+ # changed
+ c1 sha1:a4b3333
+ c2 sha1:f51d370
+ c3 sha1:0559556
+ c4 sha1:d966c5c
+ c1 sha256:f8c2b9d
+ c2 sha256:3fb6318
+ c3 sha256:168ab68
+ c4 sha256:3526539
+
+ # changed-message
+ m1 sha1:f686024
+ m2 sha1:4ab067d
+ m3 sha1:b9cb956
+ m4 sha1:8add5f1
+ m1 sha256:31e6281
+ m2 sha256:a06bf1b
+ m3 sha256:82dc654
+ m4 sha256:48470c5
+
+ # renamed
+ n1 sha1:f258d75
+ n2 sha1:017b62d
+ n3 sha1:3ce7af6
+ n4 sha1:1e6226b
+ n1 sha256:ad52114
+ n2 sha256:3b54c8f
+ n3 sha256:3b0a644
+ n4 sha256:e461653
+
+ # added and removed
+ s1 sha1:096b1ba
+ s2 sha1:d92e698
+ s3 sha1:9a1db4d
+ s4 sha1:fea3b5c
+ s1 sha256:a7f9134
+ s2 sha256:b4c2580
+ s3 sha256:1d62aa2
+ s4 sha256:48160e8
+
+ # Empty delimiter (included so lines match neatly)
+ __ sha1:-------
+ __ sha256:-------
+ EOF
'
test_expect_success 'simple A..B A..C (unmodified)' '
git range-diff --no-color master..topic master..unmodified \
>actual &&
cat >expected <<-EOF &&
- 1: 4de457d = 1: 35b9b25 s/5/A/
- 2: fccce22 = 2: de345ab s/4/A/
- 3: 147e64e = 3: 9af6654 s/11/B/
- 4: a63e992 = 4: 2901f77 s/12/B/
+ 1: $(test_oid t1) = 1: $(test_oid u1) s/5/A/
+ 2: $(test_oid t2) = 2: $(test_oid u2) s/4/A/
+ 3: $(test_oid t3) = 3: $(test_oid u3) s/11/B/
+ 4: $(test_oid t4) = 4: $(test_oid u4) s/12/B/
EOF
test_cmp expected actual
'
@@ -38,10 +145,10 @@ test_expect_success 'simple A B C (unmodified)' '
test_expect_success 'trivial reordering' '
git range-diff --no-color master topic reordered >actual &&
cat >expected <<-EOF &&
- 1: 4de457d = 1: aca177a s/5/A/
- 3: 147e64e = 2: 14ad629 s/11/B/
- 4: a63e992 = 3: ee58208 s/12/B/
- 2: fccce22 = 4: 307b27a s/4/A/
+ 1: $(test_oid t1) = 1: $(test_oid r1) s/5/A/
+ 3: $(test_oid t3) = 2: $(test_oid r2) s/11/B/
+ 4: $(test_oid t4) = 3: $(test_oid r3) s/12/B/
+ 2: $(test_oid t2) = 4: $(test_oid r4) s/4/A/
EOF
test_cmp expected actual
'
@@ -49,10 +156,10 @@ test_expect_success 'trivial reordering' '
test_expect_success 'removed a commit' '
git range-diff --no-color master topic removed >actual &&
cat >expected <<-EOF &&
- 1: 4de457d = 1: 7657159 s/5/A/
- 2: fccce22 < -: ------- s/4/A/
- 3: 147e64e = 2: 43d84d3 s/11/B/
- 4: a63e992 = 3: a740396 s/12/B/
+ 1: $(test_oid t1) = 1: $(test_oid d1) s/5/A/
+ 2: $(test_oid t2) < -: $(test_oid __) s/4/A/
+ 3: $(test_oid t3) = 2: $(test_oid d2) s/11/B/
+ 4: $(test_oid t4) = 3: $(test_oid d3) s/12/B/
EOF
test_cmp expected actual
'
@@ -60,11 +167,11 @@ test_expect_success 'removed a commit' '
test_expect_success 'added a commit' '
git range-diff --no-color master topic added >actual &&
cat >expected <<-EOF &&
- 1: 4de457d = 1: 2716022 s/5/A/
- 2: fccce22 = 2: b62accd s/4/A/
- -: ------- > 3: df46cfa s/6/A/
- 3: 147e64e = 4: 3e64548 s/11/B/
- 4: a63e992 = 5: 12b4063 s/12/B/
+ 1: $(test_oid t1) = 1: $(test_oid a1) s/5/A/
+ 2: $(test_oid t2) = 2: $(test_oid a2) s/4/A/
+ -: $(test_oid __) > 3: $(test_oid a3) s/6/A/
+ 3: $(test_oid t3) = 4: $(test_oid a4) s/11/B/
+ 4: $(test_oid t4) = 5: $(test_oid a5) s/12/B/
EOF
test_cmp expected actual
'
@@ -72,10 +179,10 @@ test_expect_success 'added a commit' '
test_expect_success 'new base, A B C' '
git range-diff --no-color master topic rebased >actual &&
cat >expected <<-EOF &&
- 1: 4de457d = 1: cc9c443 s/5/A/
- 2: fccce22 = 2: c5d9641 s/4/A/
- 3: 147e64e = 3: 28cc2b6 s/11/B/
- 4: a63e992 = 4: 5628ab7 s/12/B/
+ 1: $(test_oid t1) = 1: $(test_oid b1) s/5/A/
+ 2: $(test_oid t2) = 2: $(test_oid b2) s/4/A/
+ 3: $(test_oid t3) = 3: $(test_oid b3) s/11/B/
+ 4: $(test_oid t4) = 4: $(test_oid b4) s/12/B/
EOF
test_cmp expected actual
'
@@ -84,11 +191,11 @@ test_expect_success 'new base, B...C' '
# this syntax includes the commits from master!
git range-diff --no-color topic...rebased >actual &&
cat >expected <<-EOF &&
- -: ------- > 1: a31b12e unrelated
- 1: 4de457d = 2: cc9c443 s/5/A/
- 2: fccce22 = 3: c5d9641 s/4/A/
- 3: 147e64e = 4: 28cc2b6 s/11/B/
- 4: a63e992 = 5: 5628ab7 s/12/B/
+ -: $(test_oid __) > 1: $(test_oid b5) unrelated
+ 1: $(test_oid t1) = 2: $(test_oid b1) s/5/A/
+ 2: $(test_oid t2) = 3: $(test_oid b2) s/4/A/
+ 3: $(test_oid t3) = 4: $(test_oid b3) s/11/B/
+ 4: $(test_oid t4) = 5: $(test_oid b4) s/12/B/
EOF
test_cmp expected actual
'
@@ -96,9 +203,9 @@ test_expect_success 'new base, B...C' '
test_expect_success 'changed commit' '
git range-diff --no-color topic...changed >actual &&
cat >expected <<-EOF &&
- 1: 4de457d = 1: a4b3333 s/5/A/
- 2: fccce22 = 2: f51d370 s/4/A/
- 3: 147e64e ! 3: 0559556 s/11/B/
+ 1: $(test_oid t1) = 1: $(test_oid c1) s/5/A/
+ 2: $(test_oid t2) = 2: $(test_oid c2) s/4/A/
+ 3: $(test_oid t3) ! 3: $(test_oid c3) s/11/B/
@@ file: A
9
10
@@ -108,7 +215,7 @@ test_expect_success 'changed commit' '
12
13
14
- 4: a63e992 ! 4: d966c5c s/12/B/
+ 4: $(test_oid t4) ! 4: $(test_oid c4) s/12/B/
@@ file
@@ file: A
9
@@ -125,10 +232,10 @@ test_expect_success 'changed commit' '
test_expect_success 'changed commit with --no-patch diff option' '
git range-diff --no-color --no-patch topic...changed >actual &&
cat >expected <<-EOF &&
- 1: 4de457d = 1: a4b3333 s/5/A/
- 2: fccce22 = 2: f51d370 s/4/A/
- 3: 147e64e ! 3: 0559556 s/11/B/
- 4: a63e992 ! 4: d966c5c s/12/B/
+ 1: $(test_oid t1) = 1: $(test_oid c1) s/5/A/
+ 2: $(test_oid t2) = 2: $(test_oid c2) s/4/A/
+ 3: $(test_oid t3) ! 3: $(test_oid c3) s/11/B/
+ 4: $(test_oid t4) ! 4: $(test_oid c4) s/12/B/
EOF
test_cmp expected actual
'
@@ -136,16 +243,16 @@ test_expect_success 'changed commit with --no-patch diff option' '
test_expect_success 'changed commit with --stat diff option' '
git range-diff --no-color --stat topic...changed >actual &&
cat >expected <<-EOF &&
- 1: 4de457d = 1: a4b3333 s/5/A/
+ 1: $(test_oid t1) = 1: $(test_oid c1) s/5/A/
a => b | 0
1 file changed, 0 insertions(+), 0 deletions(-)
- 2: fccce22 = 2: f51d370 s/4/A/
+ 2: $(test_oid t2) = 2: $(test_oid c2) s/4/A/
a => b | 0
1 file changed, 0 insertions(+), 0 deletions(-)
- 3: 147e64e ! 3: 0559556 s/11/B/
+ 3: $(test_oid t3) ! 3: $(test_oid c3) s/11/B/
a => b | 0
1 file changed, 0 insertions(+), 0 deletions(-)
- 4: a63e992 ! 4: d966c5c s/12/B/
+ 4: $(test_oid t4) ! 4: $(test_oid c4) s/12/B/
a => b | 0
1 file changed, 0 insertions(+), 0 deletions(-)
EOF
@@ -155,9 +262,9 @@ test_expect_success 'changed commit with --stat diff option' '
test_expect_success 'changed commit with sm config' '
git range-diff --no-color --submodule=log topic...changed >actual &&
cat >expected <<-EOF &&
- 1: 4de457d = 1: a4b3333 s/5/A/
- 2: fccce22 = 2: f51d370 s/4/A/
- 3: 147e64e ! 3: 0559556 s/11/B/
+ 1: $(test_oid t1) = 1: $(test_oid c1) s/5/A/
+ 2: $(test_oid t2) = 2: $(test_oid c2) s/4/A/
+ 3: $(test_oid t3) ! 3: $(test_oid c3) s/11/B/
@@ file: A
9
10
@@ -167,7 +274,7 @@ test_expect_success 'changed commit with sm config' '
12
13
14
- 4: a63e992 ! 4: d966c5c s/12/B/
+ 4: $(test_oid t4) ! 4: $(test_oid c4) s/12/B/
@@ file
@@ file: A
9
@@ -184,8 +291,8 @@ test_expect_success 'changed commit with sm config' '
test_expect_success 'renamed file' '
git range-diff --no-color --submodule=log topic...renamed-file >actual &&
sed s/Z/\ /g >expected <<-EOF &&
- 1: 4de457d = 1: f258d75 s/5/A/
- 2: fccce22 ! 2: 017b62d s/4/A/
+ 1: $(test_oid t1) = 1: $(test_oid n1) s/5/A/
+ 2: $(test_oid t2) ! 2: $(test_oid n2) s/4/A/
@@ Metadata
ZAuthor: Thomas Rast <trast@inf.ethz.ch>
Z
@@ -198,7 +305,7 @@ test_expect_success 'renamed file' '
Z@@
Z 1
Z 2
- 3: 147e64e ! 3: 3ce7af6 s/11/B/
+ 3: $(test_oid t3) ! 3: $(test_oid n3) s/11/B/
@@ Metadata
Z ## Commit message ##
Z s/11/B/
@@ -210,7 +317,7 @@ test_expect_success 'renamed file' '
Z 8
Z 9
Z 10
- 4: a63e992 ! 4: 1e6226b s/12/B/
+ 4: $(test_oid t4) ! 4: $(test_oid n4) s/12/B/
@@ Metadata
Z ## Commit message ##
Z s/12/B/
@@ -226,11 +333,51 @@ test_expect_success 'renamed file' '
test_cmp expected actual
'
+test_expect_success 'file with mode only change' '
+ git range-diff --no-color --submodule=log topic...mode-only-change >actual &&
+ sed s/Z/\ /g >expected <<-EOF &&
+ 1: fccce22 ! 1: 4d39cb3 s/4/A/
+ @@ Metadata
+ ZAuthor: Thomas Rast <trast@inf.ethz.ch>
+ Z
+ Z ## Commit message ##
+ - s/4/A/
+ + s/4/A/ + add other-file
+ Z
+ Z ## file ##
+ Z@@
+ @@ file
+ Z A
+ Z 6
+ Z 7
+ +
+ + ## other-file (new) ##
+ 2: 147e64e ! 2: 26c107f s/11/B/
+ @@ Metadata
+ ZAuthor: Thomas Rast <trast@inf.ethz.ch>
+ Z
+ Z ## Commit message ##
+ - s/11/B/
+ + s/11/B/ + mode change other-file
+ Z
+ Z ## file ##
+ Z@@ file: A
+ @@ file: A
+ Z 12
+ Z 13
+ Z 14
+ +
+ + ## other-file (mode change 100644 => 100755) ##
+ 3: a63e992 = 3: 4c1e0f5 s/12/B/
+ EOF
+ test_cmp expected actual
+'
+
test_expect_success 'file added and later removed' '
git range-diff --no-color --submodule=log topic...added-removed >actual &&
sed s/Z/\ /g >expected <<-EOF &&
- 1: 4de457d = 1: 096b1ba s/5/A/
- 2: fccce22 ! 2: d92e698 s/4/A/
+ 1: $(test_oid t1) = 1: $(test_oid s1) s/5/A/
+ 2: $(test_oid t2) ! 2: $(test_oid s2) s/4/A/
@@ Metadata
ZAuthor: Thomas Rast <trast@inf.ethz.ch>
Z
@@ -246,7 +393,7 @@ test_expect_success 'file added and later removed' '
Z 7
+
+ ## new-file (new) ##
- 3: 147e64e ! 3: 9a1db4d s/11/B/
+ 3: $(test_oid t3) ! 3: $(test_oid s3) s/11/B/
@@ Metadata
ZAuthor: Thomas Rast <trast@inf.ethz.ch>
Z
@@ -262,7 +409,7 @@ test_expect_success 'file added and later removed' '
Z 14
+
+ ## new-file (deleted) ##
- 4: a63e992 = 4: fea3b5c s/12/B/
+ 4: $(test_oid t4) = 4: $(test_oid s4) s/12/B/
EOF
test_cmp expected actual
'
@@ -275,8 +422,8 @@ test_expect_success 'no commits on one side' '
test_expect_success 'changed message' '
git range-diff --no-color topic...changed-message >actual &&
sed s/Z/\ /g >expected <<-EOF &&
- 1: 4de457d = 1: f686024 s/5/A/
- 2: fccce22 ! 2: 4ab067d s/4/A/
+ 1: $(test_oid t1) = 1: $(test_oid m1) s/5/A/
+ 2: $(test_oid t2) ! 2: $(test_oid m2) s/4/A/
@@ Metadata
Z ## Commit message ##
Z s/4/A/
@@ -286,16 +433,16 @@ test_expect_success 'changed message' '
Z ## file ##
Z@@
Z 1
- 3: 147e64e = 3: b9cb956 s/11/B/
- 4: a63e992 = 4: 8add5f1 s/12/B/
+ 3: $(test_oid t3) = 3: $(test_oid m3) s/11/B/
+ 4: $(test_oid t4) = 4: $(test_oid m4) s/12/B/
EOF
test_cmp expected actual
'
test_expect_success 'dual-coloring' '
- sed -e "s|^:||" >expect <<-\EOF &&
- :<YELLOW>1: a4b3333 = 1: f686024 s/5/A/<RESET>
- :<RED>2: f51d370 <RESET><YELLOW>!<RESET><GREEN> 2: 4ab067d<RESET><YELLOW> s/4/A/<RESET>
+ sed -e "s|^:||" >expect <<-EOF &&
+ :<YELLOW>1: $(test_oid c1) = 1: $(test_oid m1) s/5/A/<RESET>
+ :<RED>2: $(test_oid c2) <RESET><YELLOW>!<RESET><GREEN> 2: $(test_oid m2)<RESET><YELLOW> s/4/A/<RESET>
: <REVERSE><CYAN>@@<RESET> <RESET>Metadata<RESET>
: ## Commit message ##<RESET>
: s/4/A/<RESET>
@@ -305,7 +452,7 @@ test_expect_success 'dual-coloring' '
: ## file ##<RESET>
: <CYAN> @@<RESET>
: 1<RESET>
- :<RED>3: 0559556 <RESET><YELLOW>!<RESET><GREEN> 3: b9cb956<RESET><YELLOW> s/11/B/<RESET>
+ :<RED>3: $(test_oid c3) <RESET><YELLOW>!<RESET><GREEN> 3: $(test_oid m3)<RESET><YELLOW> s/11/B/<RESET>
: <REVERSE><CYAN>@@<RESET> <RESET>file: A<RESET>
: 9<RESET>
: 10<RESET>
@@ -315,7 +462,7 @@ test_expect_success 'dual-coloring' '
: 12<RESET>
: 13<RESET>
: 14<RESET>
- :<RED>4: d966c5c <RESET><YELLOW>!<RESET><GREEN> 4: 8add5f1<RESET><YELLOW> s/12/B/<RESET>
+ :<RED>4: $(test_oid c4) <RESET><YELLOW>!<RESET><GREEN> 4: $(test_oid m4)<RESET><YELLOW> s/12/B/<RESET>
: <REVERSE><CYAN>@@<RESET> <RESET>file<RESET>
: <CYAN> @@ file: A<RESET>
: 9<RESET>
@@ -354,4 +501,8 @@ test_expect_success 'format-patch --range-diff as commentary' '
grep "> 1: .* new message" 0001-*
'
+test_expect_success 'range-diff overrides diff.noprefix internally' '
+ git -c diff.noprefix=true range-diff HEAD^...
+'
+
test_done
diff --git a/t/t3206/history.export b/t/t3206/history.export
index 7bb3814..4c808e5 100644
--- a/t/t3206/history.export
+++ b/t/t3206/history.export
@@ -55,7 +55,7 @@ A
19
20
-commit refs/heads/topic
+commit refs/heads/mode-only-change
mark :4
author Thomas Rast <trast@inf.ethz.ch> 1374485014 +0200
committer Thomas Rast <trast@inf.ethz.ch> 1374485014 +0200
@@ -678,3 +678,32 @@ s/12/B/
from :55
M 100644 :9 renamed-file
+commit refs/heads/mode-only-change
+mark :57
+author Thomas Rast <trast@inf.ethz.ch> 1374485024 +0200
+committer Thomas Gummerer <t.gummerer@gmail.com> 1570473767 +0100
+data 24
+s/4/A/ + add other-file
+from :4
+M 100644 :5 file
+M 100644 :49 other-file
+
+commit refs/heads/mode-only-change
+mark :58
+author Thomas Rast <trast@inf.ethz.ch> 1374485036 +0200
+committer Thomas Gummerer <t.gummerer@gmail.com> 1570473768 +0100
+data 33
+s/11/B/ + mode change other-file
+from :57
+M 100644 :7 file
+M 100755 :49 other-file
+
+commit refs/heads/mode-only-change
+mark :59
+author Thomas Rast <trast@inf.ethz.ch> 1374485044 +0200
+committer Thomas Gummerer <t.gummerer@gmail.com> 1570473768 +0100
+data 8
+s/12/B/
+from :58
+M 100644 :9 file
+
diff --git a/t/t3301-notes.sh b/t/t3301-notes.sh
index 704bbc6..d3fa298 100755
--- a/t/t3301-notes.sh
+++ b/t/t3301-notes.sh
@@ -66,8 +66,9 @@ test_expect_success 'show notes entry with %N' '
'
test_expect_success 'create reflog entry' '
+ ref=$(git rev-parse --short refs/notes/commits) &&
cat <<-EOF >expect &&
- a1d8fa6 refs/notes/commits@{0}: notes: Notes added by '\''git notes add'\''
+ $ref refs/notes/commits@{0}: notes: Notes added by '\''git notes add'\''
EOF
git reflog show refs/notes/commits >actual &&
test_cmp expect actual
@@ -134,8 +135,9 @@ test_expect_success 'can overwrite existing note with "git notes add -f"' '
'
test_expect_success 'show notes' '
+ commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
- commit 7a4ca6ee52a974a66cbaa78e33214535dff1d691
+ commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
@@ -152,8 +154,9 @@ test_expect_success 'show notes' '
test_expect_success 'show multi-line notes' '
test_commit 3rd &&
MSG="b3${LF}c3c3c3c3${LF}d3d3d3" git notes add &&
+ commit=$(git rev-parse HEAD) &&
cat >expect-multiline <<-EOF &&
- commit d07d62e5208f22eb5695e7eb47667dc8b9860290
+ commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
@@ -174,8 +177,9 @@ test_expect_success 'show -F notes' '
test_commit 4th &&
echo "xyzzy" >note5 &&
git notes add -F note5 &&
+ commit=$(git rev-parse HEAD) &&
cat >expect-F <<-EOF &&
- commit 0f7aa3ec6325aeb88b910453bb3eb37c49d75c11
+ commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
@@ -198,10 +202,13 @@ test_expect_success 'Re-adding -F notes without -f fails' '
'
test_expect_success 'git log --pretty=raw does not show notes' '
+ commit=$(git rev-parse HEAD) &&
+ tree=$(git rev-parse HEAD^{tree}) &&
+ parent=$(git rev-parse HEAD^) &&
cat >expect <<-EOF &&
- commit 0f7aa3ec6325aeb88b910453bb3eb37c49d75c11
- tree 05ac65288c4c4b3b709a020ae94b2ece2f2201ae
- parent d07d62e5208f22eb5695e7eb47667dc8b9860290
+ commit $commit
+ tree $tree
+ parent $parent
author A U Thor <author@example.com> 1112912173 -0700
committer C O Mitter <committer@example.com> 1112912173 -0700
@@ -291,8 +298,9 @@ test_expect_success 'git log --no-notes resets ref list' '
test_expect_success 'show -m notes' '
test_commit 5th &&
git notes add -m spam -m "foo${LF}bar${LF}baz" &&
+ commit=$(git rev-parse HEAD) &&
cat >expect-m <<-EOF &&
- commit 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
+ commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
@@ -313,8 +321,9 @@ test_expect_success 'show -m notes' '
test_expect_success 'remove note with add -f -F /dev/null' '
git notes add -f -F /dev/null &&
+ commit=$(git rev-parse HEAD) &&
cat >expect-rm-F <<-EOF &&
- commit 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
+ commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
@@ -356,14 +365,16 @@ test_expect_success 'create note with combination of -m and -F' '
test_expect_success 'remove note with "git notes remove"' '
git notes remove HEAD^ &&
git notes remove &&
+ commit=$(git rev-parse HEAD) &&
+ parent=$(git rev-parse HEAD^) &&
cat >expect-rm-remove <<-EOF &&
- commit 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
+ commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
${indent}5th
- commit 0f7aa3ec6325aeb88b910453bb3eb37c49d75c11
+ commit $parent
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
@@ -459,9 +470,11 @@ test_expect_success 'removing with --stdin --ignore-missing' '
'
test_expect_success 'list notes with "git notes list"' '
- cat >expect <<-EOF &&
- c9c6af7f78bc47490dbf3e822cf2f3c24d4b9061 7a4ca6ee52a974a66cbaa78e33214535dff1d691
- c18dc024e14f08d18d14eea0d747ff692d66d6a3 d07d62e5208f22eb5695e7eb47667dc8b9860290
+ commit_2=$(git rev-parse 2nd) &&
+ commit_3=$(git rev-parse 3rd) &&
+ sort -t" " -k2 >expect <<-EOF &&
+ $(git rev-parse refs/notes/commits:$commit_2) $commit_2
+ $(git rev-parse refs/notes/commits:$commit_3) $commit_3
EOF
git notes list >actual &&
test_cmp expect actual
@@ -474,7 +487,7 @@ test_expect_success 'list notes with "git notes"' '
test_expect_success 'list specific note with "git notes list <object>"' '
cat >expect <<-EOF &&
- c18dc024e14f08d18d14eea0d747ff692d66d6a3
+ $(git rev-parse refs/notes/commits:$commit_3)
EOF
git notes list HEAD^^ >actual &&
test_cmp expect actual
@@ -498,10 +511,11 @@ test_expect_success 'append to existing note with "git notes append"' '
'
test_expect_success '"git notes list" does not expand to "git notes list HEAD"' '
- cat >expect_list <<-EOF &&
- c9c6af7f78bc47490dbf3e822cf2f3c24d4b9061 7a4ca6ee52a974a66cbaa78e33214535dff1d691
- 4b6ad22357cc8a1296720574b8d2fbc22fab0671 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
- c18dc024e14f08d18d14eea0d747ff692d66d6a3 d07d62e5208f22eb5695e7eb47667dc8b9860290
+ commit_5=$(git rev-parse 5th) &&
+ sort -t" " -k2 >expect_list <<-EOF &&
+ $(git rev-parse refs/notes/commits:$commit_2) $commit_2
+ $(git rev-parse refs/notes/commits:$commit_3) $commit_3
+ $(git rev-parse refs/notes/commits:$commit_5) $commit_5
EOF
git notes list >actual &&
test_cmp expect_list actual
@@ -531,8 +545,9 @@ test_expect_success 'appending empty string to non-existing note does not create
test_expect_success 'create other note on a different notes ref (setup)' '
test_commit 6th &&
GIT_NOTES_REF="refs/notes/other" git notes add -m "other note" &&
+ commit=$(git rev-parse HEAD) &&
cat >expect-not-other <<-EOF &&
- commit 2c125331118caba0ff8238b7f4958ac6e93fe39c
+ commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:18:13 2005 -0700
@@ -569,8 +584,10 @@ test_expect_success 'Do not show note when core.notesRef is overridden' '
'
test_expect_success 'Show all notes when notes.displayRef=refs/notes/*' '
+ commit=$(git rev-parse HEAD) &&
+ parent=$(git rev-parse HEAD^) &&
cat >expect-both <<-EOF &&
- commit 2c125331118caba0ff8238b7f4958ac6e93fe39c
+ commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:18:13 2005 -0700
@@ -582,7 +599,7 @@ test_expect_success 'Show all notes when notes.displayRef=refs/notes/*' '
Notes (other):
${indent}other note
- commit 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
+ commit $parent
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
@@ -616,8 +633,9 @@ test_expect_success 'notes.displayRef can be given more than once' '
'
test_expect_success 'notes.displayRef respects order' '
+ commit=$(git rev-parse HEAD) &&
cat >expect-both-reversed <<-EOF &&
- commit 2c125331118caba0ff8238b7f4958ac6e93fe39c
+ commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:18:13 2005 -0700
@@ -642,14 +660,16 @@ test_expect_success 'GIT_NOTES_DISPLAY_REF works' '
'
test_expect_success 'GIT_NOTES_DISPLAY_REF overrides config' '
+ commit=$(git rev-parse HEAD) &&
+ parent=$(git rev-parse HEAD^) &&
cat >expect-none <<-EOF &&
- commit 2c125331118caba0ff8238b7f4958ac6e93fe39c
+ commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:18:13 2005 -0700
${indent}6th
- commit 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
+ commit $parent
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
@@ -666,8 +686,9 @@ test_expect_success '--show-notes=* adds to GIT_NOTES_DISPLAY_REF' '
'
test_expect_success '--no-standard-notes' '
+ commit=$(git rev-parse HEAD) &&
cat >expect-commits <<-EOF &&
- commit 2c125331118caba0ff8238b7f4958ac6e93fe39c
+ commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:18:13 2005 -0700
@@ -712,8 +733,10 @@ test_expect_success 'Allow notes on non-commits (trees, blobs, tags)' '
'
test_expect_success 'create note from other note with "git notes add -C"' '
+ test_commit 7th &&
+ commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
- commit fb01e0ca8c33b6cc0c6451dde747f97df567cb5c
+ commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:19:13 2005 -0700
@@ -722,7 +745,6 @@ test_expect_success 'create note from other note with "git notes add -C"' '
Notes:
${indent}order test
EOF
- test_commit 7th &&
git notes add -C $(git notes list HEAD^) &&
git log -1 >actual &&
test_cmp expect actual &&
@@ -744,8 +766,9 @@ test_expect_success 'create note from non-blob with "git notes add -C" fails' '
'
test_expect_success 'create note from blob with "git notes add -C" reuses blob id' '
+ commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
- commit 9a4c31c7f722b5d517e92c64e932dd751e1413bf
+ commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:20:13 2005 -0700
@@ -762,8 +785,10 @@ test_expect_success 'create note from blob with "git notes add -C" reuses blob i
'
test_expect_success 'create note from other note with "git notes add -c"' '
+ test_commit 9th &&
+ commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
- commit 2e0db4bc649e174d667a1cde19e725cf897a5bd2
+ commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:21:13 2005 -0700
@@ -772,7 +797,6 @@ test_expect_success 'create note from other note with "git notes add -c"' '
Notes:
${indent}yet another note
EOF
- test_commit 9th &&
MSG="yet another note" git notes add -c $(git notes list HEAD^^) &&
git log -1 >actual &&
test_cmp expect actual
@@ -785,8 +809,9 @@ test_expect_success 'create note from non-existing note with "git notes add -c"
'
test_expect_success 'append to note from other note with "git notes append -C"' '
+ commit=$(git rev-parse HEAD^) &&
cat >expect <<-EOF &&
- commit 2e0db4bc649e174d667a1cde19e725cf897a5bd2
+ commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:21:13 2005 -0700
@@ -803,8 +828,9 @@ test_expect_success 'append to note from other note with "git notes append -C"'
'
test_expect_success 'create note from other note with "git notes append -c"' '
+ commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
- commit 7c3b87ab368f81e11b1ea87b2ab99a71ccd25406
+ commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:22:13 2005 -0700
@@ -819,8 +845,9 @@ test_expect_success 'create note from other note with "git notes append -c"' '
'
test_expect_success 'append to note from other note with "git notes append -c"' '
+ commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
- commit 7c3b87ab368f81e11b1ea87b2ab99a71ccd25406
+ commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:22:13 2005 -0700
@@ -837,8 +864,10 @@ test_expect_success 'append to note from other note with "git notes append -c"'
'
test_expect_success 'copy note with "git notes copy"' '
+ test_commit 11th &&
+ commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
- commit a446fff8777efdc6eb8f4b7c8a5ff699484df0d5
+ commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:23:13 2005 -0700
@@ -849,7 +878,6 @@ test_expect_success 'copy note with "git notes copy"' '
${indent}
${indent}yet another note
EOF
- test_commit 11th &&
git notes copy HEAD^ HEAD &&
git log -1 >actual &&
test_cmp expect actual &&
@@ -864,8 +892,9 @@ test_expect_success 'prevent overwrite with "git notes copy"' '
'
test_expect_success 'allow overwrite with "git notes copy -f"' '
+ commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
- commit a446fff8777efdc6eb8f4b7c8a5ff699484df0d5
+ commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:23:13 2005 -0700
@@ -889,8 +918,10 @@ test_expect_success 'cannot copy note from object without notes' '
'
test_expect_success 'git notes copy --stdin' '
+ commit=$(git rev-parse HEAD) &&
+ parent=$(git rev-parse HEAD^) &&
cat >expect <<-EOF &&
- commit e871aa61182b1d95d0a6fb75445d891722863b6b
+ commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:25:13 2005 -0700
@@ -901,7 +932,7 @@ test_expect_success 'git notes copy --stdin' '
${indent}
${indent}yet another note
- commit 65e263ded02ae4e8839bc151095113737579dc12
+ commit $parent
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:24:13 2005 -0700
@@ -922,21 +953,23 @@ test_expect_success 'git notes copy --stdin' '
'
test_expect_success 'git notes copy --for-rewrite (unconfigured)' '
+ test_commit 14th &&
+ test_commit 15th &&
+ commit=$(git rev-parse HEAD) &&
+ parent=$(git rev-parse HEAD^) &&
cat >expect <<-EOF &&
- commit 4acf42e847e7fffbbf89ee365c20ac7caf40de89
+ commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:27:13 2005 -0700
${indent}15th
- commit 07c85d77059393ed0154b8c96906547a59dfcddd
+ commit $parent
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:26:13 2005 -0700
${indent}14th
EOF
- test_commit 14th &&
- test_commit 15th &&
(echo $(git rev-parse HEAD~3) $(git rev-parse HEAD^) &&
echo $(git rev-parse HEAD~2) $(git rev-parse HEAD)) |
git notes copy --for-rewrite=foo &&
@@ -945,8 +978,10 @@ test_expect_success 'git notes copy --for-rewrite (unconfigured)' '
'
test_expect_success 'git notes copy --for-rewrite (enabled)' '
+ commit=$(git rev-parse HEAD) &&
+ parent=$(git rev-parse HEAD^) &&
cat >expect <<-EOF &&
- commit 4acf42e847e7fffbbf89ee365c20ac7caf40de89
+ commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:27:13 2005 -0700
@@ -957,7 +992,7 @@ test_expect_success 'git notes copy --for-rewrite (enabled)' '
${indent}
${indent}yet another note
- commit 07c85d77059393ed0154b8c96906547a59dfcddd
+ commit $parent
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:26:13 2005 -0700
@@ -986,8 +1021,9 @@ test_expect_success 'git notes copy --for-rewrite (disabled)' '
'
test_expect_success 'git notes copy --for-rewrite (overwrite)' '
+ commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
- commit 4acf42e847e7fffbbf89ee365c20ac7caf40de89
+ commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:27:13 2005 -0700
@@ -1015,8 +1051,9 @@ test_expect_success 'git notes copy --for-rewrite (ignore)' '
'
test_expect_success 'git notes copy --for-rewrite (append)' '
+ commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
- commit 4acf42e847e7fffbbf89ee365c20ac7caf40de89
+ commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:27:13 2005 -0700
@@ -1037,8 +1074,9 @@ test_expect_success 'git notes copy --for-rewrite (append)' '
'
test_expect_success 'git notes copy --for-rewrite (append two to one)' '
+ commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
- commit 4acf42e847e7fffbbf89ee365c20ac7caf40de89
+ commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:27:13 2005 -0700
@@ -1075,8 +1113,9 @@ test_expect_success 'git notes copy --for-rewrite (append empty)' '
'
test_expect_success 'GIT_NOTES_REWRITE_MODE works' '
+ commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
- commit 4acf42e847e7fffbbf89ee365c20ac7caf40de89
+ commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:27:13 2005 -0700
@@ -1095,8 +1134,9 @@ test_expect_success 'GIT_NOTES_REWRITE_MODE works' '
'
test_expect_success 'GIT_NOTES_REWRITE_REF works' '
+ commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
- commit 4acf42e847e7fffbbf89ee365c20ac7caf40de89
+ commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:27:13 2005 -0700
diff --git a/t/t3305-notes-fanout.sh b/t/t3305-notes-fanout.sh
index 54460be..831f83d 100755
--- a/t/t3305-notes-fanout.sh
+++ b/t/t3305-notes-fanout.sh
@@ -35,15 +35,10 @@ test_expect_success 'many notes created with git-notes triggers fanout' '
git ls-tree -r --name-only refs/notes/commits |
while read path
do
- case "$path" in
- ??/??????????????????????????????????????)
- : true
- ;;
- *)
+ echo $path | grep "^../[0-9a-f]*$" || {
echo "Invalid path \"$path\"" &&
- return 1
- ;;
- esac
+ return 1;
+ }
done
'
@@ -77,15 +72,10 @@ test_expect_success 'deleting most notes triggers fanout consolidation' '
git ls-tree -r --name-only refs/notes/commits |
while read path
do
- case "$path" in
- ????????????????????????????????????????)
- : true
- ;;
- *)
+ echo $path | grep -v "^../.*" || {
echo "Invalid path \"$path\"" &&
- return 1
- ;;
- esac
+ return 1;
+ }
done
'
diff --git a/t/t3306-notes-prune.sh b/t/t3306-notes-prune.sh
index 6174808..8f4102f 100755
--- a/t/t3306-notes-prune.sh
+++ b/t/t3306-notes-prune.sh
@@ -11,23 +11,26 @@ test_expect_success 'setup: create a few commits with notes' '
test_tick &&
git commit -m 1st &&
git notes add -m "Note #1" &&
+ first=$(git rev-parse HEAD) &&
: > file2 &&
git add file2 &&
test_tick &&
git commit -m 2nd &&
git notes add -m "Note #2" &&
+ second=$(git rev-parse HEAD) &&
: > file3 &&
git add file3 &&
test_tick &&
git commit -m 3rd &&
- COMMIT_FILE=.git/objects/5e/e1c35e83ea47cd3cc4f8cbee0568915fbbbd29 &&
+ third=$(git rev-parse HEAD) &&
+ COMMIT_FILE=$(echo $third | sed "s!^..!.git/objects/&/!") &&
test -f $COMMIT_FILE &&
test-tool chmtime =+0 $COMMIT_FILE &&
git notes add -m "Note #3"
'
cat > expect <<END_OF_LOG
-commit 5ee1c35e83ea47cd3cc4f8cbee0568915fbbbd29
+commit $third
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
@@ -36,7 +39,7 @@ Date: Thu Apr 7 15:15:13 2005 -0700
Notes:
Note #3
-commit 08341ad9e94faa089d60fd3f523affb25c6da189
+commit $second
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
@@ -45,7 +48,7 @@ Date: Thu Apr 7 15:14:13 2005 -0700
Notes:
Note #2
-commit ab5f302035f2e7aaf04265f08b42034c23256e1f
+commit $first
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:13:13 2005 -0700
@@ -70,16 +73,16 @@ test_expect_success 'remove some commits' '
test_expect_success 'verify that commits are gone' '
- test_must_fail git cat-file -p 5ee1c35e83ea47cd3cc4f8cbee0568915fbbbd29 &&
- git cat-file -p 08341ad9e94faa089d60fd3f523affb25c6da189 &&
- git cat-file -p ab5f302035f2e7aaf04265f08b42034c23256e1f
+ test_must_fail git cat-file -p $third &&
+ git cat-file -p $second &&
+ git cat-file -p $first
'
test_expect_success 'verify that notes are still present' '
- git notes show 5ee1c35e83ea47cd3cc4f8cbee0568915fbbbd29 &&
- git notes show 08341ad9e94faa089d60fd3f523affb25c6da189 &&
- git notes show ab5f302035f2e7aaf04265f08b42034c23256e1f
+ git notes show $third &&
+ git notes show $second &&
+ git notes show $first
'
test_expect_success 'prune -n does not remove notes' '
@@ -90,13 +93,10 @@ test_expect_success 'prune -n does not remove notes' '
test_cmp expect actual
'
-cat > expect <<EOF
-5ee1c35e83ea47cd3cc4f8cbee0568915fbbbd29
-EOF
test_expect_success 'prune -n lists prunable notes' '
-
+ echo $third >expect &&
git notes prune -n > actual &&
test_cmp expect actual
'
@@ -109,9 +109,9 @@ test_expect_success 'prune notes' '
test_expect_success 'verify that notes are gone' '
- test_must_fail git notes show 5ee1c35e83ea47cd3cc4f8cbee0568915fbbbd29 &&
- git notes show 08341ad9e94faa089d60fd3f523affb25c6da189 &&
- git notes show ab5f302035f2e7aaf04265f08b42034c23256e1f
+ test_must_fail git notes show $third &&
+ git notes show $second &&
+ git notes show $first
'
test_expect_success 'remove some commits' '
@@ -121,21 +121,18 @@ test_expect_success 'remove some commits' '
git gc --prune=now
'
-cat > expect <<EOF
-08341ad9e94faa089d60fd3f523affb25c6da189
-EOF
-
test_expect_success 'prune -v notes' '
+ echo $second >expect &&
git notes prune -v > actual &&
test_cmp expect actual
'
test_expect_success 'verify that notes are gone' '
- test_must_fail git notes show 5ee1c35e83ea47cd3cc4f8cbee0568915fbbbd29 &&
- test_must_fail git notes show 08341ad9e94faa089d60fd3f523affb25c6da189 &&
- git notes show ab5f302035f2e7aaf04265f08b42034c23256e1f
+ test_must_fail git notes show $third &&
+ test_must_fail git notes show $second &&
+ git notes show $first
'
test_done
diff --git a/t/t3400-rebase.sh b/t/t3400-rebase.sh
index 80b23fd..ab18ac5 100755
--- a/t/t3400-rebase.sh
+++ b/t/t3400-rebase.sh
@@ -295,12 +295,48 @@ test_expect_success 'rebase --am and --show-current-patch' '
echo two >>init.t &&
git commit -a -m two &&
git tag two &&
- test_must_fail git rebase --onto init HEAD^ &&
+ test_must_fail git rebase -f --onto init HEAD^ &&
GIT_TRACE=1 git rebase --show-current-patch >/dev/null 2>stderr &&
grep "show.*$(git rev-parse two)" stderr
)
'
+test_expect_success 'rebase --am and .gitattributes' '
+ test_create_repo attributes &&
+ (
+ cd attributes &&
+ test_commit init &&
+ git config filter.test.clean "sed -e '\''s/smudged/clean/g'\''" &&
+ git config filter.test.smudge "sed -e '\''s/clean/smudged/g'\''" &&
+
+ test_commit second &&
+ git checkout -b test HEAD^ &&
+
+ echo "*.txt filter=test" >.gitattributes &&
+ git add .gitattributes &&
+ test_commit third &&
+
+ echo "This text is smudged." >a.txt &&
+ git add a.txt &&
+ test_commit fourth &&
+
+ git checkout -b removal HEAD^ &&
+ git rm .gitattributes &&
+ git add -u &&
+ test_commit fifth &&
+ git cherry-pick test &&
+
+ git checkout test &&
+ git rebase master &&
+ grep "smudged" a.txt &&
+
+ git checkout removal &&
+ git reset --hard &&
+ git rebase master &&
+ grep "clean" a.txt
+ )
+'
+
test_expect_success 'rebase--merge.sh and --show-current-patch' '
test_create_repo conflict-merge &&
(
diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh
index 461dd53..d2dfbe4 100755
--- a/t/t3404-rebase-interactive.sh
+++ b/t/t3404-rebase-interactive.sh
@@ -29,9 +29,6 @@ Initial setup:
. "$TEST_DIRECTORY"/lib-rebase.sh
-# WARNING: Modifications to the initial repository can change the SHA ID used
-# in the expect2 file for the 'stop on conflicting pick' test.
-
test_expect_success 'setup' '
test_commit A file1 &&
test_commit B file1 &&
@@ -155,8 +152,6 @@ test_expect_success 'rebase -x with empty command fails' '
test_i18ncmp expected actual
'
-LF='
-'
test_expect_success 'rebase -x with newline in command fails' '
test_when_finished "git rebase --abort ||:" &&
test_must_fail env git rebase -x "a${LF}b" @ 2>actual &&
@@ -233,25 +228,28 @@ test_expect_success 'exchange two commits' '
set_fake_editor &&
FAKE_LINES="2 1" git rebase -i HEAD~2 &&
test H = $(git cat-file commit HEAD^ | sed -ne \$p) &&
- test G = $(git cat-file commit HEAD | sed -ne \$p)
+ test G = $(git cat-file commit HEAD | sed -ne \$p) &&
+ blob1=$(git rev-parse --short HEAD^:file1) &&
+ blob2=$(git rev-parse --short HEAD:file1) &&
+ commit=$(git rev-parse --short HEAD)
'
test_expect_success 'stop on conflicting pick' '
- cat >expect <<-\EOF &&
+ cat >expect <<-EOF &&
diff --git a/file1 b/file1
- index f70f10e..fd79235 100644
+ index $blob1..$blob2 100644
--- a/file1
+++ b/file1
@@ -1 +1 @@
-A
+G
EOF
- cat >expect2 <<-\EOF &&
+ cat >expect2 <<-EOF &&
<<<<<<< HEAD
D
=======
G
- >>>>>>> 5d18e54... G
+ >>>>>>> $commit... G
EOF
git tag new-branch1 &&
set_fake_editor &&
@@ -1003,7 +1001,7 @@ test_expect_success 'rebase -i --root temporary sentinel commit' '
git checkout B &&
set_fake_editor &&
test_must_fail env FAKE_LINES="2" git rebase -i --root &&
- git cat-file commit HEAD | grep "^tree 4b825dc642cb" &&
+ git cat-file commit HEAD | grep "^tree $EMPTY_TREE" &&
git rebase --abort
'
@@ -1016,9 +1014,9 @@ test_expect_success 'rebase -i --root fixup root commit' '
test 0 = $(git cat-file commit HEAD | grep -c ^parent\ )
'
-test_expect_success 'rebase -i --root reword root commit' '
+test_expect_success 'rebase -i --root reword original root commit' '
test_when_finished "test_might_fail git rebase --abort" &&
- git checkout -b reword-root-branch master &&
+ git checkout -b reword-original-root-branch master &&
set_fake_editor &&
FAKE_LINES="reword 1 2" FAKE_COMMIT_MESSAGE="A changed" \
git rebase -i --root &&
@@ -1026,6 +1024,16 @@ test_expect_success 'rebase -i --root reword root commit' '
test -z "$(git show -s --format=%p HEAD^)"
'
+test_expect_success 'rebase -i --root reword new root commit' '
+ test_when_finished "test_might_fail git rebase --abort" &&
+ git checkout -b reword-now-root-branch master &&
+ set_fake_editor &&
+ FAKE_LINES="reword 3 1" FAKE_COMMIT_MESSAGE="C changed" \
+ git rebase -i --root &&
+ git show HEAD^ | grep "C changed" &&
+ test -z "$(git show -s --format=%p HEAD^)"
+'
+
test_expect_success 'rebase -i --root when root has untracked file conflict' '
test_when_finished "reset_rebase" &&
git checkout -b failing-root-pick A &&
@@ -1054,11 +1062,11 @@ test_expect_success 'rebase -i --root reword root when root has untracked file c
'
test_expect_success C_LOCALE_OUTPUT 'rebase --edit-todo does not work on non-interactive rebase' '
- git checkout reword-root-branch &&
+ git checkout reword-original-root-branch &&
git reset --hard &&
git checkout conflict-branch &&
set_fake_editor &&
- test_must_fail git rebase --onto HEAD~2 HEAD~ &&
+ test_must_fail git rebase -f --onto HEAD~2 HEAD~ &&
test_must_fail git rebase --edit-todo &&
git rebase --abort
'
@@ -1161,7 +1169,7 @@ test_expect_success 'rebase -i error on commits with \ in message' '
test_expect_code 1 grep " emp" error
'
-test_expect_success 'short SHA-1 setup' '
+test_expect_success SHA1 'short SHA-1 setup' '
test_when_finished "git checkout master" &&
git checkout --orphan collide &&
git rm -rf . &&
@@ -1173,7 +1181,7 @@ test_expect_success 'short SHA-1 setup' '
)
'
-test_expect_success 'short SHA-1 collide' '
+test_expect_success SHA1 'short SHA-1 collide' '
test_when_finished "reset_rebase && git checkout master" &&
git checkout collide &&
(
@@ -1419,7 +1427,6 @@ test_expect_success 'editor saves as CR/LF' '
)
'
-SQ="'"
test_expect_success 'rebase -i --gpg-sign=<key-id>' '
test_when_finished "test_might_fail git rebase --abort" &&
set_fake_editor &&
diff --git a/t/t3416-rebase-onto-threedots.sh b/t/t3416-rebase-onto-threedots.sh
index ddf2f64..9c25484 100755
--- a/t/t3416-rebase-onto-threedots.sh
+++ b/t/t3416-rebase-onto-threedots.sh
@@ -99,7 +99,64 @@ test_expect_success 'rebase -i --onto master...side' '
git checkout side &&
git reset --hard K &&
+ set_fake_editor &&
test_must_fail git rebase -i --onto master...side J
'
+test_expect_success 'rebase --keep-base --onto incompatible' '
+ test_must_fail git rebase --keep-base --onto master...
+'
+
+test_expect_success 'rebase --keep-base --root incompatible' '
+ test_must_fail git rebase --keep-base --root
+'
+
+test_expect_success 'rebase --keep-base master from topic' '
+ git reset --hard &&
+ git checkout topic &&
+ git reset --hard G &&
+
+ git rebase --keep-base master &&
+ git rev-parse C >base.expect &&
+ git merge-base master 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 master from side' '
+ git reset --hard &&
+ git checkout side &&
+ git reset --hard K &&
+
+ test_must_fail git rebase --keep-base master
+'
+
+test_expect_success 'rebase -i --keep-base master from topic' '
+ git reset --hard &&
+ git checkout topic &&
+ git reset --hard G &&
+
+ set_fake_editor &&
+ EXPECT_COUNT=2 git rebase -i --keep-base master &&
+ git rev-parse C >base.expect &&
+ git merge-base master 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 master from side' '
+ git reset --hard &&
+ git checkout side &&
+ git reset --hard K &&
+
+ set_fake_editor &&
+ test_must_fail git rebase -i --keep-base master
+'
+
test_done
diff --git a/t/t3418-rebase-continue.sh b/t/t3418-rebase-continue.sh
index 4eff14d..7a2da97 100755
--- a/t/t3418-rebase-continue.sh
+++ b/t/t3418-rebase-continue.sh
@@ -120,6 +120,20 @@ test_expect_success REBASE_P 'rebase passes merge strategy options correctly' '
git rebase --continue
'
+test_expect_success 'rebase -r passes merge strategy options correctly' '
+ rm -fr .git/rebase-* &&
+ git reset --hard commit-new-file-F3-on-topic-branch &&
+ test_commit merge-theirs &&
+ git reset --hard HEAD^ &&
+ test_commit some-other-commit &&
+ test_tick &&
+ git merge --no-ff merge-theirs &&
+ FAKE_LINES="1 3 edit 4 5 7 8 9" git rebase -i -f -r -m \
+ -s recursive --strategy-option=theirs HEAD~2 &&
+ test_commit force-change-ours &&
+ git rebase --continue
+'
+
test_expect_success '--skip after failed fixup cleans commit message' '
test_when_finished "test_might_fail git rebase --abort" &&
git checkout -b with-conflicting-fixup &&
diff --git a/t/t3420-rebase-autostash.sh b/t/t3420-rebase-autostash.sh
index b8f4d03..5f7e73c 100755
--- a/t/t3420-rebase-autostash.sh
+++ b/t/t3420-rebase-autostash.sh
@@ -37,7 +37,6 @@ test_expect_success setup '
create_expected_success_am () {
cat >expected <<-EOF
$(grep "^Created autostash: [0-9a-f][0-9a-f]*\$" actual)
- HEAD is now at $(git rev-parse --short feature-branch) third commit
First, rewinding head to replay your work on top of it...
Applying: second commit
Applying: third commit
@@ -48,7 +47,6 @@ create_expected_success_am () {
create_expected_success_interactive () {
q_to_cr >expected <<-EOF
$(grep "^Created autostash: [0-9a-f][0-9a-f]*\$" actual)
- HEAD is now at $(git rev-parse --short feature-branch) third commit
Applied autostash.
Successfully rebased and updated refs/heads/rebased-feature-branch.
EOF
@@ -57,7 +55,6 @@ create_expected_success_interactive () {
create_expected_failure_am () {
cat >expected <<-EOF
$(grep "^Created autostash: [0-9a-f][0-9a-f]*\$" actual)
- HEAD is now at $(git rev-parse --short feature-branch) third commit
First, rewinding head to replay your work on top of it...
Applying: second commit
Applying: third commit
@@ -70,7 +67,6 @@ create_expected_failure_am () {
create_expected_failure_interactive () {
cat >expected <<-EOF
$(grep "^Created autostash: [0-9a-f][0-9a-f]*\$" actual)
- HEAD is now at $(git rev-parse --short feature-branch) third commit
Applying autostash resulted in conflicts.
Your changes are safe in the stash.
You can run "git stash pop" or "git stash drop" at any time.
@@ -306,4 +302,12 @@ test_expect_success 'branch is left alone when possible' '
test unchanged-branch = "$(git rev-parse --abbrev-ref HEAD)"
'
+test_expect_success 'never change active branch' '
+ git checkout -b not-the-feature-branch unrelated-onto-branch &&
+ test_when_finished "git reset --hard && git checkout master" &&
+ echo changed >file0 &&
+ git rebase --autostash not-the-feature-branch feature-branch &&
+ test_cmp_rev not-the-feature-branch unrelated-onto-branch
+'
+
test_done
diff --git a/t/t3421-rebase-topology-linear.sh b/t/t3421-rebase-topology-linear.sh
index 7274dca..b847064 100755
--- a/t/t3421-rebase-topology-linear.sh
+++ b/t/t3421-rebase-topology-linear.sh
@@ -31,6 +31,16 @@ test_run_rebase success -m
test_run_rebase success -i
test_have_prereq !REBASE_P || test_run_rebase success -p
+test_expect_success 'setup branches and remote tracking' '
+ git tag -l >tags &&
+ for tag in $(cat tags)
+ do
+ git branch branch-$tag $tag || return 1
+ done &&
+ git remote add origin "file://$PWD" &&
+ git fetch origin
+'
+
test_run_rebase () {
result=$1
shift
@@ -57,6 +67,7 @@ test_run_rebase () {
"
}
test_run_rebase success ''
+test_run_rebase success --fork-point
test_run_rebase success -m
test_run_rebase success -i
test_have_prereq !REBASE_P || test_run_rebase failure -p
@@ -64,6 +75,23 @@ test_have_prereq !REBASE_P || test_run_rebase failure -p
test_run_rebase () {
result=$1
shift
+ test_expect_$result "rebase $* -f rewrites even if remote upstream is an ancestor" "
+ reset_rebase &&
+ git rebase $* -f branch-b branch-e &&
+ ! test_cmp_rev branch-e origin/branch-e &&
+ test_cmp_rev branch-b HEAD~2 &&
+ test_linear_range 'd e' branch-b..
+ "
+}
+test_run_rebase success ''
+test_run_rebase success --fork-point
+test_run_rebase success -m
+test_run_rebase success -i
+test_have_prereq !REBASE_P || test_run_rebase success -p
+
+test_run_rebase () {
+ result=$1
+ shift
test_expect_$result "rebase $* fast-forwards from ancestor of upstream" "
reset_rebase &&
git rebase $* e b &&
@@ -71,6 +99,7 @@ test_run_rebase () {
"
}
test_run_rebase success ''
+test_run_rebase success --fork-point
test_run_rebase success -m
test_run_rebase success -i
test_have_prereq !REBASE_P || test_run_rebase success -p
diff --git a/t/t3422-rebase-incompatible-options.sh b/t/t3422-rebase-incompatible-options.sh
index a5868ea..50e7960 100755
--- a/t/t3422-rebase-incompatible-options.sh
+++ b/t/t3422-rebase-incompatible-options.sh
@@ -76,14 +76,4 @@ test_expect_success REBASE_P \
test_must_fail git rebase --preserve-merges --rebase-merges A
'
-test_expect_success '--rebase-merges incompatible with --strategy' '
- git checkout B^0 &&
- test_must_fail git rebase --rebase-merges -s resolve A
-'
-
-test_expect_success '--rebase-merges incompatible with --strategy-option' '
- git checkout B^0 &&
- test_must_fail git rebase --rebase-merges -Xignore-space-change A
-'
-
test_done
diff --git a/t/t3427-rebase-subtree.sh b/t/t3427-rebase-subtree.sh
index d864052..bec48e6 100755
--- a/t/t3427-rebase-subtree.sh
+++ b/t/t3427-rebase-subtree.sh
@@ -11,113 +11,99 @@ commit_message() {
git log --pretty=format:%s -1 "$1"
}
+# There are a few bugs in the rebase with regards to the subtree strategy, and
+# this test script tries to document them. First, the following commit history
+# is generated (the onelines are shown, time flows from left to right):
+#
+# master1 - master2 - master3
+# \
+# README ---------------------- Add subproject master - master4 - files_subtree/master5
+#
+# Where the merge moves the files master[123].t into the subdirectory
+# files_subtree/ and master4 as well as files_subtree/master5 add files to that
+# directory directly.
+#
+# Then, in subsequent test cases, `git filter-branch` is used to distill just
+# the commits that touch files_subtree/. To give it a final pre-rebase touch,
+# an empty commit is added on top. The pre-rebase commit history looks like
+# this:
+#
+# Add subproject master - master4 - files_subtree/master5 - Empty commit
+#
+# where the root commit adds three files: master1.t, master2.t and master3.t.
+#
+# This commit history is then rebased onto `master3` with the
+# `-Xsubtree=files_subtree` option in three different ways:
+#
+# 1. using `--preserve-merges`
+# 2. using `--preserve-merges` and --keep-empty
+# 3. without specifying a rebase backend
+
test_expect_success 'setup' '
test_commit README &&
- mkdir files &&
- (
- cd files &&
- git init &&
- test_commit master1 &&
- test_commit master2 &&
- test_commit master3
- ) &&
- git fetch files master &&
- git branch files-master FETCH_HEAD &&
- git read-tree --prefix=files_subtree files-master &&
- git checkout -- files_subtree &&
- tree=$(git write-tree) &&
- head=$(git rev-parse HEAD) &&
- rev=$(git rev-parse --verify files-master^0) &&
- commit=$(git commit-tree -p $head -p $rev -m "Add subproject master" $tree) &&
- git update-ref HEAD $commit &&
- (
- cd files_subtree &&
- test_commit master4
- ) &&
- test_commit files_subtree/master5
-'
-# FAILURE: Does not preserve master4.
-test_expect_failure REBASE_P \
- 'Rebase -Xsubtree --preserve-merges --onto commit 4' '
- reset_rebase &&
- git checkout -b rebase-preserve-merges-4 master &&
- git filter-branch --prune-empty -f --subdirectory-filter files_subtree &&
- git commit -m "Empty commit" --allow-empty &&
- git rebase -Xsubtree=files_subtree --preserve-merges --onto files-master master &&
- verbose test "$(commit_message HEAD~)" = "files_subtree/master4"
+ git init files &&
+ test_commit -C files master1 &&
+ test_commit -C files master2 &&
+ test_commit -C files master3 &&
+
+ : perform subtree merge into files_subtree/ &&
+ git fetch files refs/heads/master:refs/heads/files-master &&
+ git merge -s ours --no-commit --allow-unrelated-histories \
+ files-master &&
+ git read-tree --prefix=files_subtree -u files-master &&
+ git commit -m "Add subproject master" &&
+
+ : add two extra commits to rebase &&
+ test_commit -C files_subtree master4 &&
+ test_commit files_subtree/master5 &&
+
+ git checkout -b to-rebase &&
+ git fast-export --no-data HEAD -- files_subtree/ |
+ sed -e "s%\([0-9a-f]\{40\} \)files_subtree/%\1%" |
+ git fast-import --force --quiet &&
+ git reset --hard &&
+ git commit -m "Empty commit" --allow-empty
'
-# FAILURE: Does not preserve master5.
-test_expect_failure REBASE_P \
- 'Rebase -Xsubtree --preserve-merges --onto commit 5' '
+# FAILURE: Does not preserve master4.
+test_expect_failure REBASE_P 'Rebase -Xsubtree --preserve-merges --onto commit' '
reset_rebase &&
- git checkout -b rebase-preserve-merges-5 master &&
- git filter-branch --prune-empty -f --subdirectory-filter files_subtree &&
- git commit -m "Empty commit" --allow-empty &&
+ git checkout -b rebase-preserve-merges to-rebase &&
git rebase -Xsubtree=files_subtree --preserve-merges --onto files-master master &&
+ verbose test "$(commit_message HEAD~)" = "master4" &&
verbose test "$(commit_message HEAD)" = "files_subtree/master5"
'
# FAILURE: Does not preserve master4.
-test_expect_failure REBASE_P \
- 'Rebase -Xsubtree --keep-empty --preserve-merges --onto commit 4' '
- reset_rebase &&
- git checkout -b rebase-keep-empty-4 master &&
- git filter-branch --prune-empty -f --subdirectory-filter files_subtree &&
- git commit -m "Empty commit" --allow-empty &&
- git rebase -Xsubtree=files_subtree --keep-empty --preserve-merges --onto files-master master &&
- verbose test "$(commit_message HEAD~2)" = "files_subtree/master4"
-'
-
-# FAILURE: Does not preserve master5.
-test_expect_failure REBASE_P \
- 'Rebase -Xsubtree --keep-empty --preserve-merges --onto commit 5' '
- reset_rebase &&
- git checkout -b rebase-keep-empty-5 master &&
- git filter-branch --prune-empty -f --subdirectory-filter files_subtree &&
- git commit -m "Empty commit" --allow-empty &&
- git rebase -Xsubtree=files_subtree --keep-empty --preserve-merges --onto files-master master &&
- verbose test "$(commit_message HEAD~)" = "files_subtree/master5"
-'
-
-# FAILURE: Does not preserve Empty.
-test_expect_failure REBASE_P \
- 'Rebase -Xsubtree --keep-empty --preserve-merges --onto empty commit' '
+test_expect_failure REBASE_P 'Rebase -Xsubtree --keep-empty --preserve-merges --onto commit' '
reset_rebase &&
- git checkout -b rebase-keep-empty-empty master &&
- git filter-branch --prune-empty -f --subdirectory-filter files_subtree &&
- git commit -m "Empty commit" --allow-empty &&
+ git checkout -b rebase-keep-empty to-rebase &&
git rebase -Xsubtree=files_subtree --keep-empty --preserve-merges --onto files-master master &&
+ verbose test "$(commit_message HEAD~2)" = "master4" &&
+ verbose test "$(commit_message HEAD~)" = "files_subtree/master5" &&
verbose test "$(commit_message HEAD)" = "Empty commit"
'
-# FAILURE: fatal: Could not parse object
-test_expect_failure 'Rebase -Xsubtree --onto commit 4' '
+test_expect_success 'Rebase -Xsubtree --keep-empty --onto commit' '
reset_rebase &&
- git checkout -b rebase-onto-4 master &&
- git filter-branch --prune-empty -f --subdirectory-filter files_subtree &&
- git commit -m "Empty commit" --allow-empty &&
- git rebase -Xsubtree=files_subtree --onto files-master master &&
- verbose test "$(commit_message HEAD~2)" = "files_subtree/master4"
+ git checkout -b rebase-onto to-rebase &&
+ test_must_fail git rebase -Xsubtree=files_subtree --keep-empty --onto files-master master &&
+ : first pick results in no changes &&
+ git rebase --continue &&
+ verbose test "$(commit_message HEAD~2)" = "master4" &&
+ verbose test "$(commit_message HEAD~)" = "files_subtree/master5" &&
+ verbose test "$(commit_message HEAD)" = "Empty commit"
'
-# FAILURE: fatal: Could not parse object
-test_expect_failure 'Rebase -Xsubtree --onto commit 5' '
- reset_rebase &&
- git checkout -b rebase-onto-5 master &&
- git filter-branch --prune-empty -f --subdirectory-filter files_subtree &&
- git commit -m "Empty commit" --allow-empty &&
- git rebase -Xsubtree=files_subtree --onto files-master master &&
- verbose test "$(commit_message HEAD~)" = "files_subtree/master5"
-'
-# FAILURE: fatal: Could not parse object
-test_expect_failure 'Rebase -Xsubtree --onto empty commit' '
+test_expect_success 'Rebase -Xsubtree --keep-empty --rebase-merges --onto commit' '
reset_rebase &&
- git checkout -b rebase-onto-empty master &&
- git filter-branch --prune-empty -f --subdirectory-filter files_subtree &&
- git commit -m "Empty commit" --allow-empty &&
- git rebase -Xsubtree=files_subtree --onto files-master master &&
+ git checkout -b rebase-merges-onto to-rebase &&
+ test_must_fail git rebase -Xsubtree=files_subtree --keep-empty --rebase-merges --onto files-master --root &&
+ : first pick results in no changes &&
+ git rebase --continue &&
+ verbose test "$(commit_message HEAD~2)" = "master4" &&
+ verbose test "$(commit_message HEAD~)" = "files_subtree/master5" &&
verbose test "$(commit_message HEAD)" = "Empty commit"
'
diff --git a/t/t3429-rebase-edit-todo.sh b/t/t3429-rebase-edit-todo.sh
index 76f6d30..8739cb6 100755
--- a/t/t3429-rebase-edit-todo.sh
+++ b/t/t3429-rebase-edit-todo.sh
@@ -3,9 +3,15 @@
test_description='rebase should reread the todo file if an exec modifies it'
. ./test-lib.sh
+. "$TEST_DIRECTORY"/lib-rebase.sh
+
+test_expect_success 'setup' '
+ test_commit first file &&
+ test_commit second file &&
+ test_commit third file
+'
test_expect_success 'rebase exec modifies rebase-todo' '
- test_commit initial &&
todo=.git/rebase-merge/git-rebase-todo &&
git rebase HEAD -x "echo exec touch F >>$todo" &&
test -e F
@@ -33,4 +39,17 @@ test_expect_success SHA1 'loose object cache vs re-reading todo list' '
git rebase HEAD -x "./append-todo.sh 5 6"
'
+test_expect_success 'todo is re-read after reword and squash' '
+ write_script reword-editor.sh <<-\EOS &&
+ GIT_SEQUENCE_EDITOR="echo \"exec echo $(cat file) >>actual\" >>" \
+ git rebase --edit-todo
+ EOS
+
+ test_write_lines first third >expected &&
+ set_fake_editor &&
+ GIT_SEQUENCE_EDITOR="$EDITOR" FAKE_LINES="reword 1 squash 2 fixup 3" \
+ GIT_EDITOR=./reword-editor.sh git rebase -i --root third &&
+ test_cmp expected actual
+'
+
test_done
diff --git a/t/t3430-rebase-merges.sh b/t/t3430-rebase-merges.sh
index 7b6c484..9efcf48 100755
--- a/t/t3430-rebase-merges.sh
+++ b/t/t3430-rebase-merges.sh
@@ -37,20 +37,27 @@ test_expect_success 'setup' '
test_commit A &&
git checkout -b first &&
test_commit B &&
+ b=$(git rev-parse --short HEAD) &&
git checkout master &&
test_commit C &&
+ c=$(git rev-parse --short HEAD) &&
test_commit D &&
+ d=$(git rev-parse --short HEAD) &&
git merge --no-commit B &&
test_tick &&
git commit -m E &&
git tag -m E E &&
+ e=$(git rev-parse --short HEAD) &&
git checkout -b second C &&
test_commit F &&
+ f=$(git rev-parse --short HEAD) &&
test_commit G &&
+ g=$(git rev-parse --short HEAD) &&
git checkout master &&
git merge --no-commit G &&
test_tick &&
git commit -m H &&
+ h=$(git rev-parse --short HEAD) &&
git tag -m H H &&
git checkout A &&
test_commit conflicting-G G.t
@@ -93,24 +100,24 @@ test_expect_success 'create completely different structure' '
'
test_expect_success 'generate correct todo list' '
- cat >expect <<-\EOF &&
+ cat >expect <<-EOF &&
label onto
reset onto
- pick d9df450 B
+ pick $b B
label E
reset onto
- pick 5dee784 C
+ pick $c C
label branch-point
- pick ca2c861 F
- pick 088b00a G
+ pick $f F
+ pick $g G
label H
reset branch-point # C
- pick 12bd07b D
- merge -C 2051b56 E # E
- merge -C 233d48a H # H
+ pick $d D
+ merge -C $e E # E
+ merge -C $h H # H
EOF
@@ -151,7 +158,6 @@ test_expect_success 'failed `merge -C` writes patch (may be rescheduled, too)' '
test_path_is_file .git/rebase-merge/patch
'
-SQ="'"
test_expect_success 'failed `merge <branch>` does not crash' '
test_when_finished "test_might_fail git rebase --abort" &&
git checkout conflicting-G &&
@@ -441,4 +447,25 @@ test_expect_success '--continue after resolving conflicts after a merge' '
test_path_is_missing .git/MERGE_HEAD
'
+test_expect_success '--rebase-merges with strategies' '
+ git checkout -b with-a-strategy F &&
+ test_tick &&
+ git merge -m "Merge conflicting-G" conflicting-G &&
+
+ : first, test with a merge strategy option &&
+ git rebase -ir -Xtheirs G &&
+ echo conflicting-G >expect &&
+ test_cmp expect G.t &&
+
+ : now, try with a merge strategy other than recursive &&
+ git reset --hard @{1} &&
+ write_script git-merge-override <<-\EOF &&
+ echo overridden$1 >>G.t
+ git add G.t
+ EOF
+ PATH="$PWD:$PATH" git rebase -ir -s override -Xxopt G &&
+ test_write_lines G overridden--xopt >expect &&
+ test_cmp expect G.t
+'
+
test_done
diff --git a/t/t3431-rebase-fork-point.sh b/t/t3431-rebase-fork-point.sh
new file mode 100755
index 0000000..78851b9
--- /dev/null
+++ b/t/t3431-rebase-fork-point.sh
@@ -0,0 +1,57 @@
+#!/bin/sh
+#
+# Copyright (c) 2019 Denton Liu
+#
+
+test_description='git rebase --fork-point test'
+
+. ./test-lib.sh
+
+# A---B---D---E (master)
+# \
+# C*---F---G (side)
+#
+# C was formerly part of master but master was rewound to remove C
+#
+test_expect_success setup '
+ test_commit A &&
+ test_commit B &&
+ test_commit C &&
+ git branch -t side &&
+ git reset --hard HEAD^ &&
+ test_commit D &&
+ test_commit E &&
+ git checkout side &&
+ test_commit F &&
+ test_commit G
+'
+
+test_rebase () {
+ expected="$1" &&
+ shift &&
+ test_expect_success "git rebase $*" "
+ git checkout master &&
+ git reset --hard E &&
+ git checkout side &&
+ git reset --hard G &&
+ git rebase $* &&
+ test_write_lines $expected >expect &&
+ git log --pretty=%s >actual &&
+ test_cmp expect actual
+ "
+}
+
+test_rebase 'G F E D B A'
+test_rebase 'G F D B A' --onto D
+test_rebase 'G F B A' --keep-base
+test_rebase 'G F C E D B A' --no-fork-point
+test_rebase 'G F C D B A' --no-fork-point --onto D
+test_rebase 'G F C B A' --no-fork-point --keep-base
+test_rebase 'G F E D B A' --fork-point refs/heads/master
+test_rebase 'G F D B A' --fork-point --onto D refs/heads/master
+test_rebase 'G F B A' --fork-point --keep-base refs/heads/master
+test_rebase 'G F C E D B A' refs/heads/master
+test_rebase 'G F C D B A' --onto D refs/heads/master
+test_rebase 'G F C B A' --keep-base refs/heads/master
+
+test_done
diff --git a/t/t3432-rebase-fast-forward.sh b/t/t3432-rebase-fast-forward.sh
new file mode 100755
index 0000000..034ffc7
--- /dev/null
+++ b/t/t3432-rebase-fast-forward.sh
@@ -0,0 +1,125 @@
+#!/bin/sh
+#
+# Copyright (c) 2019 Denton Liu
+#
+
+test_description='ensure rebase fast-forwards commits when possible'
+
+. ./test-lib.sh
+
+test_expect_success setup '
+ test_commit A &&
+ test_commit B &&
+ test_commit C &&
+ test_commit D &&
+ git checkout -t -b side
+'
+
+test_rebase_same_head () {
+ status_n="$1" &&
+ shift &&
+ what_n="$1" &&
+ shift &&
+ cmp_n="$1" &&
+ shift &&
+ status_f="$1" &&
+ shift &&
+ what_f="$1" &&
+ shift &&
+ cmp_f="$1" &&
+ shift &&
+ test_rebase_same_head_ $status_n $what_n $cmp_n "" "$*" &&
+ test_rebase_same_head_ $status_f $what_f $cmp_f " --no-ff" "$*"
+}
+
+test_rebase_same_head_ () {
+ status="$1" &&
+ shift &&
+ what="$1" &&
+ shift &&
+ cmp="$1" &&
+ shift &&
+ flag="$1"
+ shift &&
+ test_expect_$status "git rebase$flag $* with $changes is $what with $cmp HEAD" "
+ oldhead=\$(git rev-parse HEAD) &&
+ test_when_finished 'git reset --hard \$oldhead' &&
+ git rebase$flag $* >stdout &&
+ if test $what = work
+ then
+ # Must check this case first, for 'is up to
+ # date, rebase forced[...]rewinding head' cases
+ test_i18ngrep 'rewinding head' stdout
+ elif test $what = noop
+ then
+ test_i18ngrep 'is up to date' stdout &&
+ test_i18ngrep ! 'rebase forced' stdout
+ elif test $what = noop-force
+ then
+ test_i18ngrep 'is up to date, rebase forced' stdout
+ fi &&
+ newhead=\$(git rev-parse HEAD) &&
+ if test $cmp = same
+ then
+ test_cmp_rev \$oldhead \$newhead
+ elif test $cmp = diff
+ then
+ ! test_cmp_rev \$oldhead \$newhead
+ fi
+ "
+}
+
+changes='no changes'
+test_rebase_same_head success noop same success work same
+test_rebase_same_head success noop same success noop-force same master
+test_rebase_same_head success noop same success noop-force diff --onto B B
+test_rebase_same_head success noop same success noop-force diff --onto B... B
+test_rebase_same_head success noop same success noop-force same --onto master... master
+test_rebase_same_head success noop same success noop-force same --keep-base master
+test_rebase_same_head success noop same success noop-force same --keep-base
+test_rebase_same_head success noop same success noop-force same --no-fork-point
+test_rebase_same_head success noop same success noop-force same --keep-base --no-fork-point
+test_rebase_same_head success noop same success work same --fork-point master
+test_rebase_same_head success noop same success work diff --fork-point --onto B B
+test_rebase_same_head success noop same success work diff --fork-point --onto B... B
+test_rebase_same_head success noop same success work same --fork-point --onto master... master
+test_rebase_same_head success noop same success work same --keep-base --keep-base master
+
+test_expect_success 'add work same to side' '
+ test_commit E
+'
+
+changes='our changes'
+test_rebase_same_head success noop same success work same
+test_rebase_same_head success noop same success noop-force same master
+test_rebase_same_head success noop same success noop-force diff --onto B B
+test_rebase_same_head success noop same success noop-force diff --onto B... B
+test_rebase_same_head success noop same success noop-force same --onto master... master
+test_rebase_same_head success noop same success noop-force same --keep-base master
+test_rebase_same_head success noop same success noop-force same --keep-base
+test_rebase_same_head success noop same success noop-force same --no-fork-point
+test_rebase_same_head success noop same success noop-force same --keep-base --no-fork-point
+test_rebase_same_head success noop same success work same --fork-point master
+test_rebase_same_head success noop same success work diff --fork-point --onto B B
+test_rebase_same_head success noop same success work diff --fork-point --onto B... B
+test_rebase_same_head success noop same success work same --fork-point --onto master... master
+test_rebase_same_head success noop same success work same --fork-point --keep-base master
+
+test_expect_success 'add work same to upstream' '
+ git checkout master &&
+ test_commit F &&
+ git checkout side
+'
+
+changes='our and their changes'
+test_rebase_same_head success noop same success noop-force diff --onto B B
+test_rebase_same_head success noop same success noop-force diff --onto B... B
+test_rebase_same_head success noop same success work diff --onto master... master
+test_rebase_same_head success noop same success work diff --keep-base master
+test_rebase_same_head success noop same success work diff --keep-base
+test_rebase_same_head failure work same success work diff --fork-point --onto B B
+test_rebase_same_head failure work same success work diff --fork-point --onto B... B
+test_rebase_same_head success noop same success work diff --fork-point --onto master... master
+test_rebase_same_head success noop same success work diff --fork-point --keep-base master
+
+test_done
diff --git a/t/t3506-cherry-pick-ff.sh b/t/t3506-cherry-pick-ff.sh
index 127dd00..9d5adbc 100755
--- a/t/t3506-cherry-pick-ff.sh
+++ b/t/t3506-cherry-pick-ff.sh
@@ -16,7 +16,11 @@ test_expect_success setup '
git add file1 &&
test_tick &&
git commit -m "second" &&
- git tag second
+ git tag second &&
+ test_oid_cache <<-EOF
+ cp_ff sha1:1df192cd8bc58a2b275d842cede4d221ad9000d1
+ cp_ff sha256:e70d6b7fc064bddb516b8d512c9057094b96ce6ff08e12080acc4fe7f1d60a1d
+ EOF
'
test_expect_success 'cherry-pick using --ff fast forwards' '
@@ -102,7 +106,7 @@ test_expect_success 'cherry pick a root commit with --ff' '
git add file2 &&
git commit --amend -m "file2" &&
git cherry-pick --ff first &&
- test "$(git rev-parse --verify HEAD)" = "1df192cd8bc58a2b275d842cede4d221ad9000d1"
+ test "$(git rev-parse --verify HEAD)" = "$(test_oid cp_ff)"
'
test_expect_success 'cherry-pick --ff on unborn branch' '
diff --git a/t/t3600-rm.sh b/t/t3600-rm.sh
index 66282a7..8c8cca5 100755
--- a/t/t3600-rm.sh
+++ b/t/t3600-rm.sh
@@ -240,12 +240,14 @@ test_expect_success 'refresh index before checking if it is up-to-date' '
'
test_expect_success 'choking "git rm" should not let it die with cruft' '
+ test_oid_init &&
git reset -q --hard &&
test_when_finished "rm -f .git/index.lock && git reset -q --hard" &&
i=0 &&
+ hash=$(test_oid deadbeef) &&
while test $i -lt 12000
do
- echo "100644 1234567890123456789012345678901234567890 0 some-file-$i"
+ echo "100644 $hash 0 some-file-$i"
i=$(( $i + 1 ))
done | git update-index --index-info &&
git rm -n "some-file-*" | : &&
diff --git a/t/t3701-add-interactive.sh b/t/t3701-add-interactive.sh
index 69991a3..d50e165 100755
--- a/t/t3701-add-interactive.sh
+++ b/t/t3701-add-interactive.sh
@@ -314,7 +314,7 @@ test_expect_success C_LOCALE_OUTPUT '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/^Stage this hunk[^@]*\(@@ .*\)/\1/" \
+ sed -n -e "s/^([1-2]\/[1-2]) Stage this hunk[^@]*\(@@ .*\)/\1/" \
-e "/^[-+@ \\\\]"/p >output &&
test_must_be_empty error &&
git diff --cached >diff &&
diff --git a/t/t3800-mktag.sh b/t/t3800-mktag.sh
index 8eb4794..64dcc5e 100755
--- a/t/t3800-mktag.sh
+++ b/t/t3800-mktag.sh
@@ -23,6 +23,7 @@ check_verify_failure () {
# first create a commit, so we have a valid object/type
# for the tag.
test_expect_success 'setup' '
+ test_oid_init &&
echo Hello >A &&
git update-index --add A &&
git commit -m "Initial commit" &&
@@ -69,28 +70,28 @@ check_verify_failure '"object" line SHA1 check' '^error: char7: .*SHA1 hash$'
# 4. type line label check
cat >tag.sig <<EOF
-object 779e9b33986b1c2670fff52c5067603117b3e895
+object $head
xxxx tag
tag mytag
tagger . <> 0 +0000
EOF
-check_verify_failure '"type" line label check' '^error: char47: .*"\\ntype "$'
+check_verify_failure '"type" line label check' '^error: char.*: .*"\\ntype "$'
############################################################
# 5. type line eol check
-echo "object 779e9b33986b1c2670fff52c5067603117b3e895" >tag.sig
+echo "object $head" >tag.sig
printf "type tagsssssssssssssssssssssssssssssss" >>tag.sig
-check_verify_failure '"type" line eol check' '^error: char48: .*"\\n"$'
+check_verify_failure '"type" line eol check' '^error: char.*: .*"\\n"$'
############################################################
# 6. tag line label check #1
cat >tag.sig <<EOF
-object 779e9b33986b1c2670fff52c5067603117b3e895
+object $head
type tag
xxx mytag
tagger . <> 0 +0000
@@ -98,37 +99,37 @@ tagger . <> 0 +0000
EOF
check_verify_failure '"tag" line label check #1' \
- '^error: char57: no "tag " found$'
+ '^error: char.*: no "tag " found$'
############################################################
# 7. tag line label check #2
cat >tag.sig <<EOF
-object 779e9b33986b1c2670fff52c5067603117b3e895
+object $head
type taggggggggggggggggggggggggggggggg
tag
EOF
check_verify_failure '"tag" line label check #2' \
- '^error: char87: no "tag " found$'
+ '^error: char.*: no "tag " found$'
############################################################
# 8. type line type-name length check
cat >tag.sig <<EOF
-object 779e9b33986b1c2670fff52c5067603117b3e895
+object $head
type taggggggggggggggggggggggggggggggg
tag mytag
EOF
check_verify_failure '"type" line type-name length check' \
- '^error: char53: type too long$'
+ '^error: char.*: type too long$'
############################################################
# 9. verify object (SHA1/type) check
cat >tag.sig <<EOF
-object 779e9b33986b1c2670fff52c5067603117b3e895
+object $(test_oid deadbeef)
type tagggg
tag mytag
tagger . <> 0 +0000
@@ -150,7 +151,7 @@ tagger . <> 0 +0000
EOF
check_verify_failure 'verify tag-name check' \
- '^error: char67: could not verify tag name$'
+ '^error: char.*: could not verify tag name$'
############################################################
# 11. tagger line label check #1
@@ -164,7 +165,7 @@ This is filler
EOF
check_verify_failure '"tagger" line label check #1' \
- '^error: char70: could not find "tagger "$'
+ '^error: char.*: could not find "tagger "$'
############################################################
# 12. tagger line label check #2
@@ -179,7 +180,7 @@ This is filler
EOF
check_verify_failure '"tagger" line label check #2' \
- '^error: char70: could not find "tagger "$'
+ '^error: char.*: could not find "tagger "$'
############################################################
# 13. disallow missing tag author name
@@ -194,7 +195,7 @@ This is filler
EOF
check_verify_failure 'disallow missing tag author name' \
- '^error: char77: missing tagger name$'
+ '^error: char.*: missing tagger name$'
############################################################
# 14. disallow missing tag author name
@@ -209,7 +210,7 @@ tagger T A Gger <
EOF
check_verify_failure 'disallow malformed tagger' \
- '^error: char77: malformed tagger field$'
+ '^error: char.*: malformed tagger field$'
############################################################
# 15. allow empty tag email
@@ -238,7 +239,7 @@ tagger T A Gger <tag ger@example.com> 0 +0000
EOF
check_verify_failure 'disallow spaces in tag email' \
- '^error: char77: malformed tagger field$'
+ '^error: char.*: malformed tagger field$'
############################################################
# 17. disallow missing tag timestamp
@@ -252,7 +253,7 @@ tagger T A Gger <tagger@example.com>__
EOF
check_verify_failure 'disallow missing tag timestamp' \
- '^error: char107: missing tag timestamp$'
+ '^error: char.*: missing tag timestamp$'
############################################################
# 18. detect invalid tag timestamp1
@@ -266,7 +267,7 @@ tagger T A Gger <tagger@example.com> Tue Mar 25 15:47:44 2008
EOF
check_verify_failure 'detect invalid tag timestamp1' \
- '^error: char107: missing tag timestamp$'
+ '^error: char.*: missing tag timestamp$'
############################################################
# 19. detect invalid tag timestamp2
@@ -280,7 +281,7 @@ tagger T A Gger <tagger@example.com> 2008-03-31T12:20:15-0500
EOF
check_verify_failure 'detect invalid tag timestamp2' \
- '^error: char111: malformed tag timestamp$'
+ '^error: char.*: malformed tag timestamp$'
############################################################
# 20. detect invalid tag timezone1
@@ -294,7 +295,7 @@ tagger T A Gger <tagger@example.com> 1206478233 GMT
EOF
check_verify_failure 'detect invalid tag timezone1' \
- '^error: char118: malformed tag timezone$'
+ '^error: char.*: malformed tag timezone$'
############################################################
# 21. detect invalid tag timezone2
@@ -308,7 +309,7 @@ tagger T A Gger <tagger@example.com> 1206478233 + 30
EOF
check_verify_failure 'detect invalid tag timezone2' \
- '^error: char118: malformed tag timezone$'
+ '^error: char.*: malformed tag timezone$'
############################################################
# 22. detect invalid tag timezone3
@@ -322,7 +323,7 @@ tagger T A Gger <tagger@example.com> 1206478233 -1430
EOF
check_verify_failure 'detect invalid tag timezone3' \
- '^error: char118: malformed tag timezone$'
+ '^error: char.*: malformed tag timezone$'
############################################################
# 23. detect invalid header entry
@@ -337,7 +338,7 @@ this line should not be here
EOF
check_verify_failure 'detect invalid header entry' \
- '^error: char124: trailing garbage in tag header$'
+ '^error: char.*: trailing garbage in tag header$'
############################################################
# 24. create valid tag
diff --git a/t/t3903-stash.sh b/t/t3903-stash.sh
index b8e3378..580bfbd 100755
--- a/t/t3903-stash.sh
+++ b/t/t3903-stash.sh
@@ -7,6 +7,18 @@ test_description='Test git stash'
. ./test-lib.sh
+diff_cmp () {
+ for i in "$1" "$2"
+ do
+ sed -e 's/^index 0000000\.\.[0-9a-f]*/index 0000000..1234567/' \
+ -e 's/^index [0-9a-f]*\.\.[0-9a-f]*/index 1234567..89abcde/' \
+ -e 's/^index [0-9a-f]*,[0-9a-f]*\.\.[0-9a-f]*/index 1234567,7654321..89abcde/' \
+ "$i" >"$i.compare" || return 1
+ done &&
+ test_cmp "$1.compare" "$2.compare" &&
+ rm -f "$1.compare" "$2.compare"
+}
+
test_expect_success 'stash some dirty working directory' '
echo 1 >file &&
git add file &&
@@ -36,7 +48,7 @@ EOF
test_expect_success 'parents of stash' '
test $(git rev-parse stash^) = $(git rev-parse HEAD) &&
git diff stash^2..stash >output &&
- test_cmp expect output
+ diff_cmp expect output
'
test_expect_success 'applying bogus stash does nothing' '
@@ -210,13 +222,13 @@ test_expect_success 'stash branch' '
test refs/heads/stashbranch = $(git symbolic-ref HEAD) &&
test $(git rev-parse HEAD) = $(git rev-parse master^) &&
git diff --cached >output &&
- test_cmp expect output &&
+ diff_cmp expect output &&
git diff >output &&
- test_cmp expect1 output &&
+ diff_cmp expect1 output &&
git add file &&
git commit -m alternate\ second &&
git diff master..stashbranch >output &&
- test_cmp output expect2 &&
+ diff_cmp output expect2 &&
test 0 = $(git stash list | wc -l)
'
@@ -577,7 +589,7 @@ test_expect_success 'stash show -p - stashes on stack, stash-like argument' '
+bar
EOF
git stash show -p ${STASH_ID} >actual &&
- test_cmp expected actual
+ diff_cmp expected actual
'
test_expect_success 'stash show - no stashes on stack, stash-like argument' '
@@ -609,7 +621,7 @@ test_expect_success 'stash show -p - no stashes on stack, stash-like argument' '
+foo
EOF
git stash show -p ${STASH_ID} >actual &&
- test_cmp expected actual
+ diff_cmp expected actual
'
test_expect_success 'stash show --patience shows diff' '
@@ -627,7 +639,7 @@ test_expect_success 'stash show --patience shows diff' '
+foo
EOF
git stash show --patience ${STASH_ID} >actual &&
- test_cmp expected actual
+ diff_cmp expected actual
'
test_expect_success 'drop: fail early if specified stash is not a stash ref' '
@@ -791,7 +803,7 @@ test_expect_success 'stash where working directory contains "HEAD" file' '
git diff-index --cached --quiet HEAD &&
test "$(git rev-parse stash^)" = "$(git rev-parse HEAD)" &&
git diff stash^..stash >output &&
- test_cmp expect output
+ diff_cmp expect output
'
test_expect_success 'store called with invalid commit' '
@@ -847,7 +859,7 @@ test_expect_success 'stash list implies --first-parent -m' '
+working
EOF
git stash list --format=%gd -p >actual &&
- test_cmp expect actual
+ diff_cmp expect actual
'
test_expect_success 'stash list --cc shows combined diff' '
@@ -864,7 +876,7 @@ test_expect_success 'stash list --cc shows combined diff' '
++working
EOF
git stash list --format=%gd -p --cc >actual &&
- test_cmp expect actual
+ diff_cmp expect actual
'
test_expect_success 'stash is not confused by partial renames' '
@@ -1241,4 +1253,20 @@ test_expect_success 'stash --keep-index with file deleted in index does not resu
test_path_is_missing to-remove
'
+test_expect_success 'stash apply should succeed with unmodified file' '
+ echo base >file &&
+ git add file &&
+ git commit -m base &&
+
+ # now stash a modification
+ echo modified >file &&
+ git stash &&
+
+ # make the file stat dirty
+ cp file other &&
+ mv other file &&
+
+ git stash apply
+'
+
test_done
diff --git a/t/t3906-stash-submodule.sh b/t/t3906-stash-submodule.sh
index d7219d6..b93d1d7 100755
--- a/t/t3906-stash-submodule.sh
+++ b/t/t3906-stash-submodule.sh
@@ -1,6 +1,6 @@
#!/bin/sh
-test_description='stash apply can handle submodules'
+test_description='stash can handle submodules'
. ./test-lib.sh
. "$TEST_DIRECTORY"/lib-submodule-update.sh
@@ -21,4 +21,44 @@ KNOWN_FAILURE_CHERRY_PICK_SEES_EMPTY_COMMIT=1
KNOWN_FAILURE_NOFF_MERGE_DOESNT_CREATE_EMPTY_SUBMODULE_DIR=1
test_submodule_switch "git_stash"
+setup_basic () {
+ test_when_finished "rm -rf main sub" &&
+ git init sub &&
+ (
+ cd sub &&
+ test_commit sub_file
+ ) &&
+ git init main &&
+ (
+ cd main &&
+ git submodule add ../sub &&
+ test_commit main_file
+ )
+}
+
+test_expect_success 'stash push with submodule.recurse=true preserves dirty submodule worktree' '
+ setup_basic &&
+ (
+ cd main &&
+ git config submodule.recurse true &&
+ echo "x" >main_file.t &&
+ echo "y" >sub/sub_file.t &&
+ git stash push &&
+ test_must_fail git -C sub diff --quiet
+ )
+'
+
+test_expect_success 'stash push and pop with submodule.recurse=true preserves dirty submodule worktree' '
+ setup_basic &&
+ (
+ cd main &&
+ git config submodule.recurse true &&
+ echo "x" >main_file.t &&
+ echo "y" >sub/sub_file.t &&
+ git stash push &&
+ git stash pop &&
+ test_must_fail git -C sub diff --quiet
+ )
+'
+
test_done
diff --git a/t/t3908-stash-in-worktree.sh b/t/t3908-stash-in-worktree.sh
new file mode 100755
index 0000000..2b2b366
--- /dev/null
+++ b/t/t3908-stash-in-worktree.sh
@@ -0,0 +1,27 @@
+#!/bin/sh
+#
+# Copyright (c) 2019 Johannes E Schindelin
+#
+
+test_description='Test git stash in a worktree'
+
+. ./test-lib.sh
+
+test_expect_success 'setup' '
+ test_commit initial &&
+ git worktree add wt &&
+ test_commit -C wt in-worktree
+'
+
+test_expect_success 'apply in subdirectory' '
+ mkdir wt/subdir &&
+ (
+ cd wt/subdir &&
+ echo modified >../initial.t &&
+ git stash &&
+ git stash apply >out
+ ) &&
+ grep "\.\.\/initial\.t" wt/subdir/out
+'
+
+test_done
diff --git a/t/t4000-diff-format.sh b/t/t4000-diff-format.sh
index 8de36b7..e5116a7 100755
--- a/t/t4000-diff-format.sh
+++ b/t/t4000-diff-format.sh
@@ -78,7 +78,7 @@ test_expect_success 'git diff-files --no-patch --patch shows the patch' '
test_expect_success 'git diff-files --no-patch --patch-with-raw shows the patch and raw data' '
git diff-files --no-patch --patch-with-raw >actual &&
- grep -q "^:100644 100755 .* 0000000000000000000000000000000000000000 M path0\$" actual &&
+ grep -q "^:100644 100755 .* $ZERO_OID M path0\$" actual &&
tail -n +4 actual >actual-patch &&
compare_diff_patch expected actual-patch
'
diff --git a/t/t4002-diff-basic.sh b/t/t4002-diff-basic.sh
index 3a6c21e..cbcdd10 100755
--- a/t/t4002-diff-basic.sh
+++ b/t/t4002-diff-basic.sh
@@ -7,123 +7,272 @@ test_description='Test diff raw-output.
'
. ./test-lib.sh
+
. "$TEST_DIRECTORY"/lib-read-tree-m-3way.sh
-cat >.test-plain-OA <<\EOF
-:000000 100644 0000000000000000000000000000000000000000 ccba72ad3888a3520b39efcf780b9ee64167535d A AA
-:000000 100644 0000000000000000000000000000000000000000 7e426fb079479fd67f6d81f984e4ec649a44bc25 A AN
-:100644 000000 bcc68ef997017466d5c9094bcf7692295f588c9a 0000000000000000000000000000000000000000 D DD
-:000000 040000 0000000000000000000000000000000000000000 6d50f65d3bdab91c63444294d38f08aeff328e42 A DF
-:100644 000000 141c1f1642328e4bc46a7d801a71da392e66791e 0000000000000000000000000000000000000000 D DM
-:100644 000000 35abde1506ddf806572ff4d407bd06885d0f8ee9 0000000000000000000000000000000000000000 D DN
-:000000 100644 0000000000000000000000000000000000000000 1d41122ebdd7a640f29d3c9cc4f9d70094374762 A LL
-:100644 100644 03f24c8c4700babccfd28b654e7e8eac402ad6cd 103d9f89b50b9aad03054b579be5e7aa665f2d57 M MD
-:100644 100644 b258508afb7ceb449981bd9d63d2d3e971bf8d34 b431b272d829ff3aa4d1a5085f4394ab4d3305b6 M MM
-:100644 100644 bd084b0c27c7b6cc34f11d6d0509a29be3caf970 a716d58de4a570e0038f5c307bd8db34daea021f M MN
-:100644 100644 40c959f984c8b89a2b02520d17f00d717f024397 2ac547ae9614a00d1b28275de608131f7a0e259f M SS
-:100644 100644 4ac13458899ab908ef3b1128fa378daefc88d356 4c86f9a85fbc5e6804ee2e17a797538fbe785bca M TT
-:040000 040000 7d670fdcdb9929f6c7dac196ff78689cd1c566a1 5e5f22072bb39f6e12cf663a57cb634c76eefb49 M Z
+test_oid_init
+
+test_oid_cache <<\EOF
+aa_1 sha1:ccba72ad3888a3520b39efcf780b9ee64167535d
+aa_1 sha256:9febfbf18197819b2735c45291f138525d2476d59470f98239647544586ba403
+
+aa_2 sha1:6aa2b5335b16431a0ef71e5c0a28be69183cf6a2
+aa_2 sha256:6eaa3437de83f145a4aaa6ba355303075ade547b128ec6a2cd00a81ff7ce7a56
+
+an_1 sha1:7e426fb079479fd67f6d81f984e4ec649a44bc25
+an_1 sha256:8f92a0bec99e399a38e3bd0e1bf19fbf121e0160efb29b857df79d439f1c4536
+
+dd_1 sha1:bcc68ef997017466d5c9094bcf7692295f588c9a
+dd_1 sha256:07e17428b00639b85485d2b01083d219e2f3e3ba8579e9ca44e9cc8dd554d952
+
+df_1 sha1:6d50f65d3bdab91c63444294d38f08aeff328e42
+df_1 sha256:e367cecc27e9bf5451b1c65828cb21938d36a5f8e39c1b03ad6509cc36bb8e9d
+
+df_2 sha1:71420ab81e254145d26d6fc0cddee64c1acd4787
+df_2 sha256:0f0a86d10347ff6921d03a3c954679f3f1d14fa3d5cd82f57b32c09755f3a47d
+
+dfd1 sha1:68a6d8b91da11045cf4aa3a5ab9f2a781c701249
+dfd1 sha256:f3bd3265b02b6978ce86490d8ad026c573639c974b3de1d9faf30d8d5a77d3d5
+
+dm_1 sha1:141c1f1642328e4bc46a7d801a71da392e66791e
+dm_1 sha256:c89f8656e7b94e21ee5fbaf0e2149bbf783c51edbe2ce110349cac13059ee7ed
+
+dm_2 sha1:3c4d8de5fbad08572bab8e10eef8dbb264cf0231
+dm_2 sha256:83a572e37e0c94086294dae2cecc43d9131afd6f6c906e495c78972230b54988
+
+dn_1 sha1:35abde1506ddf806572ff4d407bd06885d0f8ee9
+dn_1 sha256:775d5852582070e620be63327bfa515fab8f71c7ac3e4f0c3cd6267b4377ba28
+
+ll_2 sha1:1d41122ebdd7a640f29d3c9cc4f9d70094374762
+ll_2 sha256:7917b4948a883cfed0a77d3d5a625dc8577d6ddcc3c6c3bbc56c4d4226a2246d
+
+md_1 sha1:03f24c8c4700babccfd28b654e7e8eac402ad6cd
+md_1 sha256:fc9f30369b978595ad685ba11ca9a17de0af16d79cd4b629975f4f1590033902
+
+md_2 sha1:103d9f89b50b9aad03054b579be5e7aa665f2d57
+md_2 sha256:fc78ec75275628762fe520479a6b2398dec295ce7aabcb1d15e5963c7b4e9317
+
+mm_1 sha1:b258508afb7ceb449981bd9d63d2d3e971bf8d34
+mm_1 sha256:a4b7847d228e900e3000285e240c20fd96f9dd41ce1445305f6eada126d4a04a
+
+mm_2 sha1:b431b272d829ff3aa4d1a5085f4394ab4d3305b6
+mm_2 sha256:3f8b83ea36aacf689bcf1a1290a9a8ed341564d32682ea6f76fea9a979186782
+
+mm_3 sha1:19989d4559aae417fedee240ccf2ba315ea4dc2b
+mm_3 sha256:71b3bfc5747ac033fff9ea0ab39ee453a3af2969890e75d6ef547b87544e2681
+
+mn_1 sha1:bd084b0c27c7b6cc34f11d6d0509a29be3caf970
+mn_1 sha256:47a67450583d7a329eb01a7c4ba644945af72c0ed2c7c95eb5a00d6e46d4d483
+
+mn_2 sha1:a716d58de4a570e0038f5c307bd8db34daea021f
+mn_2 sha256:f95104c1ebe27acb84bac25a7be98c71f6b8d3054b21f357a5be0c524ad97e08
+
+nm_1 sha1:c8f25781e8f1792e3e40b74225e20553041b5226
+nm_1 sha256:09baddc7afaa62e62e152c23c9c3ab94bf15a3894031e227e9be7fe68e1f4e49
+
+nm_2 sha1:cdb9a8c3da571502ac30225e9c17beccb8387983
+nm_2 sha256:58b5227956ac2d2a08d0efa513c0ae37430948b16791ea3869a1308dbf05536d
+
+na_1 sha1:15885881ea69115351c09b38371f0348a3fb8c67
+na_1 sha256:18e4fdd1670cd7968ee23d35bfd29e5418d56fb190c840094c1c57ceee0aad8f
+
+nd_1 sha1:a4e179e4291e5536a5e1c82e091052772d2c5a93
+nd_1 sha256:07dac9b01d00956ea0c65bd993d7de4864aeef2ed3cbb1255d9f1d949fcd6df6
+
+ss_1 sha1:40c959f984c8b89a2b02520d17f00d717f024397
+ss_1 sha256:50fc1b5df74d9910db2f9270993484235f15b69b75b01bcfb53e059289d14af9
+
+ss_2 sha1:2ac547ae9614a00d1b28275de608131f7a0e259f
+ss_2 sha256:a90f02e6044f1497d13db587d22ab12f90150a7d1e084afcf96065fab35ae2bc
+
+tt_1 sha1:4ac13458899ab908ef3b1128fa378daefc88d356
+tt_1 sha256:c53113c7dd5060e86b5b251428bd058f6726f66273c6a24bff1c61a04f498dd3
+
+tt_2 sha1:4c86f9a85fbc5e6804ee2e17a797538fbe785bca
+tt_2 sha256:0775f2a296129a7cf2862b46bc0e88c14d593f2773a3e3fb1c5193db6f5a7e77
+
+tt_3 sha1:c4e4a12231b9fa79a0053cb6077fcb21bb5b135a
+tt_3 sha256:47860f93cdd211f96443e0560f21c57ab6c2f4b0ac27ff03651a352e53fe8484
+
+z__1 sha1:7d670fdcdb9929f6c7dac196ff78689cd1c566a1
+z__1 sha256:44d0f37aff5e51cfcfdd1134c93a6419bcca7b9964f792ffcd5f9b4fcba1ee63
+
+z__2 sha1:5e5f22072bb39f6e12cf663a57cb634c76eefb49
+z__2 sha256:d29de162113190fed104eb5f010820cef4e315f89b9326e8497f7219fb737894
+
+z__3 sha1:1ba523955d5160681af65cb776411f574c1e8155
+z__3 sha256:07422d772b07794ab4369a5648e617719f89c2d2212cbeab05d97214b6471636
+
+zaa1 sha1:8acb8e9750e3f644bf323fcf3d338849db106c77
+zaa1 sha256:e79b029282c8abec2d9f3f7faceaf2a1405e02d1f368e66450ae66cf5b68d1f4
+
+zaa2 sha1:6c0b99286d0bce551ac4a7b3dff8b706edff3715
+zaa2 sha256:c82bd78c3e69ea1796e6b1a7a3ba45bb106c50e819296475b862123d3f5cc5a0
+
+zan1 sha1:087494262084cefee7ed484d20c8dc0580791272
+zan1 sha256:4b159eb3804d05599023dd074f771d06d02870f4ab24a7165add8ac3d703b8d3
+
+zdd1 sha1:879007efae624d2b1307214b24a956f0a8d686a8
+zdd1 sha256:eecfdd4d8092dd0363fb6d4548b54c6afc8982c3ed9b34e393f1d6a921d8eaa3
+
+zdm1 sha1:9b541b2275c06e3a7b13f28badf5294e2ae63df4
+zdm1 sha256:ab136e88e19a843c4bf7713d2090d5a2186ba16a6a80dacc12eeddd256a8e556
+
+zdm2 sha1:d77371d15817fcaa57eeec27f770c505ba974ec1
+zdm2 sha256:1c1a5f57363f46a15d95ce8527b3c2c158d88d16853b4acbf81bd20fd2c89a46
+
+zdn1 sha1:beb5d38c55283d280685ea21a0e50cfcc0ca064a
+zdn1 sha256:0f0eca66183617b0aa5ad74b256540329f841470922ca6760263c996d825eb18
+
+zmd1 sha1:d41fda41b7ec4de46b43cb7ea42a45001ae393d5
+zmd1 sha256:1ed32d481852eddf31a0ce12652a0ad14bf5b7a842667b5dbb0b50f35bf1c80a
+
+zmd2 sha1:a79ac3be9377639e1c7d1edf1ae1b3a5f0ccd8a9
+zmd2 sha256:b238da211b404f8917df2d9c6f7030535e904b2186131007a3c292ec6902f933
+
+zmm1 sha1:4ca22bae2527d3d9e1676498a0fba3b355bd1278
+zmm1 sha256:072b1d85b5f34fabc99dfa46008c5418df68302d3e317430006f49b32d244226
+
+zmm2 sha1:61422ba9c2c873416061a88cd40a59a35b576474
+zmm2 sha256:81dd5d2b3c5cda16fef552256aed4e2ea0802a8450a08f308a92142112ff6dda
+
+zmm3 sha1:697aad7715a1e7306ca76290a3dd4208fbaeddfa
+zmm3 sha256:8b10fab49e9be3414aa5e9a93d0e46f9569053440138a7c19a5eb5536d8e95bf
+
+zmn1 sha1:b16d7b25b869f2beb124efa53467d8a1550ad694
+zmn1 sha256:609e4f75d1295e844c826feeba213acb0b6cfc609adfe8ff705b19e3829ae3e9
+
+zmn2 sha1:a5c544c21cfcb07eb80a4d89a5b7d1570002edfd
+zmn2 sha256:d6d03edf2dc1a3b267a8205de5f41a2ff4b03def8c7ae02052b543fb09d589fc
+
+zna1 sha1:d12979c22fff69c59ca9409e7a8fe3ee25eaee80
+zna1 sha256:b37b80e789e8ea32aa323f004628f02013f632124b0282c7fe00a127d3c64c3c
+
+znd1 sha1:a18393c636b98e9bd7296b8b437ea4992b72440c
+znd1 sha256:af92a22eee8c38410a0c9d2b5135a10aeb052cbc7cf675541ed9a67bfcaf7cf9
+
+znm1 sha1:3fdbe17fd013303a2e981e1ca1c6cd6e72789087
+znm1 sha256:f75aeaa0c11e76918e381c105f0752932c6150e941fec565d24fa31098a13dc1
+
+znm2 sha1:7e09d6a3a14bd630913e8c75693cea32157b606d
+znm2 sha256:938d73cfbaa1c902a84fb5b3afd9736aa0590367fb9bd59c6c4d072ce70fcd6d
+EOF
+
+cat >.test-plain-OA <<EOF
+:000000 100644 $(test_oid zero) $(test_oid aa_1) A AA
+:000000 100644 $(test_oid zero) $(test_oid an_1) A AN
+:100644 000000 $(test_oid dd_1) $(test_oid zero) D DD
+:000000 040000 $(test_oid zero) $(test_oid df_1) A DF
+:100644 000000 $(test_oid dm_1) $(test_oid zero) D DM
+:100644 000000 $(test_oid dn_1) $(test_oid zero) D DN
+:000000 100644 $(test_oid zero) $(test_oid ll_2) A LL
+:100644 100644 $(test_oid md_1) $(test_oid md_2) M MD
+:100644 100644 $(test_oid mm_1) $(test_oid mm_2) M MM
+:100644 100644 $(test_oid mn_1) $(test_oid mn_2) M MN
+:100644 100644 $(test_oid ss_1) $(test_oid ss_2) M SS
+:100644 100644 $(test_oid tt_1) $(test_oid tt_2) M TT
+:040000 040000 $(test_oid z__1) $(test_oid z__2) M Z
EOF
-cat >.test-recursive-OA <<\EOF
-:000000 100644 0000000000000000000000000000000000000000 ccba72ad3888a3520b39efcf780b9ee64167535d A AA
-:000000 100644 0000000000000000000000000000000000000000 7e426fb079479fd67f6d81f984e4ec649a44bc25 A AN
-:100644 000000 bcc68ef997017466d5c9094bcf7692295f588c9a 0000000000000000000000000000000000000000 D DD
-:000000 100644 0000000000000000000000000000000000000000 68a6d8b91da11045cf4aa3a5ab9f2a781c701249 A DF/DF
-:100644 000000 141c1f1642328e4bc46a7d801a71da392e66791e 0000000000000000000000000000000000000000 D DM
-:100644 000000 35abde1506ddf806572ff4d407bd06885d0f8ee9 0000000000000000000000000000000000000000 D DN
-:000000 100644 0000000000000000000000000000000000000000 1d41122ebdd7a640f29d3c9cc4f9d70094374762 A LL
-:100644 100644 03f24c8c4700babccfd28b654e7e8eac402ad6cd 103d9f89b50b9aad03054b579be5e7aa665f2d57 M MD
-:100644 100644 b258508afb7ceb449981bd9d63d2d3e971bf8d34 b431b272d829ff3aa4d1a5085f4394ab4d3305b6 M MM
-:100644 100644 bd084b0c27c7b6cc34f11d6d0509a29be3caf970 a716d58de4a570e0038f5c307bd8db34daea021f M MN
-:100644 100644 40c959f984c8b89a2b02520d17f00d717f024397 2ac547ae9614a00d1b28275de608131f7a0e259f M SS
-:100644 100644 4ac13458899ab908ef3b1128fa378daefc88d356 4c86f9a85fbc5e6804ee2e17a797538fbe785bca M TT
-:000000 100644 0000000000000000000000000000000000000000 8acb8e9750e3f644bf323fcf3d338849db106c77 A Z/AA
-:000000 100644 0000000000000000000000000000000000000000 087494262084cefee7ed484d20c8dc0580791272 A Z/AN
-:100644 000000 879007efae624d2b1307214b24a956f0a8d686a8 0000000000000000000000000000000000000000 D Z/DD
-:100644 000000 9b541b2275c06e3a7b13f28badf5294e2ae63df4 0000000000000000000000000000000000000000 D Z/DM
-:100644 000000 beb5d38c55283d280685ea21a0e50cfcc0ca064a 0000000000000000000000000000000000000000 D Z/DN
-:100644 100644 d41fda41b7ec4de46b43cb7ea42a45001ae393d5 a79ac3be9377639e1c7d1edf1ae1b3a5f0ccd8a9 M Z/MD
-:100644 100644 4ca22bae2527d3d9e1676498a0fba3b355bd1278 61422ba9c2c873416061a88cd40a59a35b576474 M Z/MM
-:100644 100644 b16d7b25b869f2beb124efa53467d8a1550ad694 a5c544c21cfcb07eb80a4d89a5b7d1570002edfd M Z/MN
+cat >.test-recursive-OA <<EOF
+:000000 100644 $(test_oid zero) $(test_oid aa_1) A AA
+:000000 100644 $(test_oid zero) $(test_oid an_1) A AN
+:100644 000000 $(test_oid dd_1) $(test_oid zero) D DD
+:000000 100644 $(test_oid zero) $(test_oid dfd1) A DF/DF
+:100644 000000 $(test_oid dm_1) $(test_oid zero) D DM
+:100644 000000 $(test_oid dn_1) $(test_oid zero) D DN
+:000000 100644 $(test_oid zero) $(test_oid ll_2) A LL
+:100644 100644 $(test_oid md_1) $(test_oid md_2) M MD
+:100644 100644 $(test_oid mm_1) $(test_oid mm_2) M MM
+:100644 100644 $(test_oid mn_1) $(test_oid mn_2) M MN
+:100644 100644 $(test_oid ss_1) $(test_oid ss_2) M SS
+:100644 100644 $(test_oid tt_1) $(test_oid tt_2) M TT
+:000000 100644 $(test_oid zero) $(test_oid zaa1) A Z/AA
+:000000 100644 $(test_oid zero) $(test_oid zan1) A Z/AN
+:100644 000000 $(test_oid zdd1) $(test_oid zero) D Z/DD
+:100644 000000 $(test_oid zdm1) $(test_oid zero) D Z/DM
+:100644 000000 $(test_oid zdn1) $(test_oid zero) D Z/DN
+:100644 100644 $(test_oid zmd1) $(test_oid zmd2) M Z/MD
+:100644 100644 $(test_oid zmm1) $(test_oid zmm2) M Z/MM
+:100644 100644 $(test_oid zmn1) $(test_oid zmn2) M Z/MN
EOF
-cat >.test-plain-OB <<\EOF
-:000000 100644 0000000000000000000000000000000000000000 6aa2b5335b16431a0ef71e5c0a28be69183cf6a2 A AA
-:100644 000000 bcc68ef997017466d5c9094bcf7692295f588c9a 0000000000000000000000000000000000000000 D DD
-:000000 100644 0000000000000000000000000000000000000000 71420ab81e254145d26d6fc0cddee64c1acd4787 A DF
-:100644 100644 141c1f1642328e4bc46a7d801a71da392e66791e 3c4d8de5fbad08572bab8e10eef8dbb264cf0231 M DM
-:000000 100644 0000000000000000000000000000000000000000 1d41122ebdd7a640f29d3c9cc4f9d70094374762 A LL
-:100644 000000 03f24c8c4700babccfd28b654e7e8eac402ad6cd 0000000000000000000000000000000000000000 D MD
-:100644 100644 b258508afb7ceb449981bd9d63d2d3e971bf8d34 19989d4559aae417fedee240ccf2ba315ea4dc2b M MM
-:000000 100644 0000000000000000000000000000000000000000 15885881ea69115351c09b38371f0348a3fb8c67 A NA
-:100644 000000 a4e179e4291e5536a5e1c82e091052772d2c5a93 0000000000000000000000000000000000000000 D ND
-:100644 100644 c8f25781e8f1792e3e40b74225e20553041b5226 cdb9a8c3da571502ac30225e9c17beccb8387983 M NM
-:100644 100644 40c959f984c8b89a2b02520d17f00d717f024397 2ac547ae9614a00d1b28275de608131f7a0e259f M SS
-:100644 100644 4ac13458899ab908ef3b1128fa378daefc88d356 c4e4a12231b9fa79a0053cb6077fcb21bb5b135a M TT
-:040000 040000 7d670fdcdb9929f6c7dac196ff78689cd1c566a1 1ba523955d5160681af65cb776411f574c1e8155 M Z
+cat >.test-plain-OB <<EOF
+:000000 100644 $(test_oid zero) $(test_oid aa_2) A AA
+:100644 000000 $(test_oid dd_1) $(test_oid zero) D DD
+:000000 100644 $(test_oid zero) $(test_oid df_2) A DF
+:100644 100644 $(test_oid dm_1) $(test_oid dm_2) M DM
+:000000 100644 $(test_oid zero) $(test_oid ll_2) A LL
+:100644 000000 $(test_oid md_1) $(test_oid zero) D MD
+:100644 100644 $(test_oid mm_1) $(test_oid mm_3) M MM
+:000000 100644 $(test_oid zero) $(test_oid na_1) A NA
+:100644 000000 $(test_oid nd_1) $(test_oid zero) D ND
+:100644 100644 $(test_oid nm_1) $(test_oid nm_2) M NM
+:100644 100644 $(test_oid ss_1) $(test_oid ss_2) M SS
+:100644 100644 $(test_oid tt_1) $(test_oid tt_3) M TT
+:040000 040000 $(test_oid z__1) $(test_oid z__3) M Z
EOF
-cat >.test-recursive-OB <<\EOF
-:000000 100644 0000000000000000000000000000000000000000 6aa2b5335b16431a0ef71e5c0a28be69183cf6a2 A AA
-:100644 000000 bcc68ef997017466d5c9094bcf7692295f588c9a 0000000000000000000000000000000000000000 D DD
-:000000 100644 0000000000000000000000000000000000000000 71420ab81e254145d26d6fc0cddee64c1acd4787 A DF
-:100644 100644 141c1f1642328e4bc46a7d801a71da392e66791e 3c4d8de5fbad08572bab8e10eef8dbb264cf0231 M DM
-:000000 100644 0000000000000000000000000000000000000000 1d41122ebdd7a640f29d3c9cc4f9d70094374762 A LL
-:100644 000000 03f24c8c4700babccfd28b654e7e8eac402ad6cd 0000000000000000000000000000000000000000 D MD
-:100644 100644 b258508afb7ceb449981bd9d63d2d3e971bf8d34 19989d4559aae417fedee240ccf2ba315ea4dc2b M MM
-:000000 100644 0000000000000000000000000000000000000000 15885881ea69115351c09b38371f0348a3fb8c67 A NA
-:100644 000000 a4e179e4291e5536a5e1c82e091052772d2c5a93 0000000000000000000000000000000000000000 D ND
-:100644 100644 c8f25781e8f1792e3e40b74225e20553041b5226 cdb9a8c3da571502ac30225e9c17beccb8387983 M NM
-:100644 100644 40c959f984c8b89a2b02520d17f00d717f024397 2ac547ae9614a00d1b28275de608131f7a0e259f M SS
-:100644 100644 4ac13458899ab908ef3b1128fa378daefc88d356 c4e4a12231b9fa79a0053cb6077fcb21bb5b135a M TT
-:000000 100644 0000000000000000000000000000000000000000 6c0b99286d0bce551ac4a7b3dff8b706edff3715 A Z/AA
-:100644 000000 879007efae624d2b1307214b24a956f0a8d686a8 0000000000000000000000000000000000000000 D Z/DD
-:100644 100644 9b541b2275c06e3a7b13f28badf5294e2ae63df4 d77371d15817fcaa57eeec27f770c505ba974ec1 M Z/DM
-:100644 000000 d41fda41b7ec4de46b43cb7ea42a45001ae393d5 0000000000000000000000000000000000000000 D Z/MD
-:100644 100644 4ca22bae2527d3d9e1676498a0fba3b355bd1278 697aad7715a1e7306ca76290a3dd4208fbaeddfa M Z/MM
-:000000 100644 0000000000000000000000000000000000000000 d12979c22fff69c59ca9409e7a8fe3ee25eaee80 A Z/NA
-:100644 000000 a18393c636b98e9bd7296b8b437ea4992b72440c 0000000000000000000000000000000000000000 D Z/ND
-:100644 100644 3fdbe17fd013303a2e981e1ca1c6cd6e72789087 7e09d6a3a14bd630913e8c75693cea32157b606d M Z/NM
+cat >.test-recursive-OB <<EOF
+:000000 100644 $(test_oid zero) $(test_oid aa_2) A AA
+:100644 000000 $(test_oid dd_1) $(test_oid zero) D DD
+:000000 100644 $(test_oid zero) $(test_oid df_2) A DF
+:100644 100644 $(test_oid dm_1) $(test_oid dm_2) M DM
+:000000 100644 $(test_oid zero) $(test_oid ll_2) A LL
+:100644 000000 $(test_oid md_1) $(test_oid zero) D MD
+:100644 100644 $(test_oid mm_1) $(test_oid mm_3) M MM
+:000000 100644 $(test_oid zero) $(test_oid na_1) A NA
+:100644 000000 $(test_oid nd_1) $(test_oid zero) D ND
+:100644 100644 $(test_oid nm_1) $(test_oid nm_2) M NM
+:100644 100644 $(test_oid ss_1) $(test_oid ss_2) M SS
+:100644 100644 $(test_oid tt_1) $(test_oid tt_3) M TT
+:000000 100644 $(test_oid zero) $(test_oid zaa2) A Z/AA
+:100644 000000 $(test_oid zdd1) $(test_oid zero) D Z/DD
+:100644 100644 $(test_oid zdm1) $(test_oid zdm2) M Z/DM
+:100644 000000 $(test_oid zmd1) $(test_oid zero) D Z/MD
+:100644 100644 $(test_oid zmm1) $(test_oid zmm3) M Z/MM
+:000000 100644 $(test_oid zero) $(test_oid zna1) A Z/NA
+:100644 000000 $(test_oid znd1) $(test_oid zero) D Z/ND
+:100644 100644 $(test_oid znm1) $(test_oid znm2) M Z/NM
EOF
-cat >.test-plain-AB <<\EOF
-:100644 100644 ccba72ad3888a3520b39efcf780b9ee64167535d 6aa2b5335b16431a0ef71e5c0a28be69183cf6a2 M AA
-:100644 000000 7e426fb079479fd67f6d81f984e4ec649a44bc25 0000000000000000000000000000000000000000 D AN
-:000000 100644 0000000000000000000000000000000000000000 71420ab81e254145d26d6fc0cddee64c1acd4787 A DF
-:040000 000000 6d50f65d3bdab91c63444294d38f08aeff328e42 0000000000000000000000000000000000000000 D DF
-:000000 100644 0000000000000000000000000000000000000000 3c4d8de5fbad08572bab8e10eef8dbb264cf0231 A DM
-:000000 100644 0000000000000000000000000000000000000000 35abde1506ddf806572ff4d407bd06885d0f8ee9 A DN
-:100644 000000 103d9f89b50b9aad03054b579be5e7aa665f2d57 0000000000000000000000000000000000000000 D MD
-:100644 100644 b431b272d829ff3aa4d1a5085f4394ab4d3305b6 19989d4559aae417fedee240ccf2ba315ea4dc2b M MM
-:100644 100644 a716d58de4a570e0038f5c307bd8db34daea021f bd084b0c27c7b6cc34f11d6d0509a29be3caf970 M MN
-:000000 100644 0000000000000000000000000000000000000000 15885881ea69115351c09b38371f0348a3fb8c67 A NA
-:100644 000000 a4e179e4291e5536a5e1c82e091052772d2c5a93 0000000000000000000000000000000000000000 D ND
-:100644 100644 c8f25781e8f1792e3e40b74225e20553041b5226 cdb9a8c3da571502ac30225e9c17beccb8387983 M NM
-:100644 100644 4c86f9a85fbc5e6804ee2e17a797538fbe785bca c4e4a12231b9fa79a0053cb6077fcb21bb5b135a M TT
-:040000 040000 5e5f22072bb39f6e12cf663a57cb634c76eefb49 1ba523955d5160681af65cb776411f574c1e8155 M Z
+cat >.test-plain-AB <<EOF
+:100644 100644 $(test_oid aa_1) $(test_oid aa_2) M AA
+:100644 000000 $(test_oid an_1) $(test_oid zero) D AN
+:000000 100644 $(test_oid zero) $(test_oid df_2) A DF
+:040000 000000 $(test_oid df_1) $(test_oid zero) D DF
+:000000 100644 $(test_oid zero) $(test_oid dm_2) A DM
+:000000 100644 $(test_oid zero) $(test_oid dn_1) A DN
+:100644 000000 $(test_oid md_2) $(test_oid zero) D MD
+:100644 100644 $(test_oid mm_2) $(test_oid mm_3) M MM
+:100644 100644 $(test_oid mn_2) $(test_oid mn_1) M MN
+:000000 100644 $(test_oid zero) $(test_oid na_1) A NA
+:100644 000000 $(test_oid nd_1) $(test_oid zero) D ND
+:100644 100644 $(test_oid nm_1) $(test_oid nm_2) M NM
+:100644 100644 $(test_oid tt_2) $(test_oid tt_3) M TT
+:040000 040000 $(test_oid z__2) $(test_oid z__3) M Z
EOF
-cat >.test-recursive-AB <<\EOF
-:100644 100644 ccba72ad3888a3520b39efcf780b9ee64167535d 6aa2b5335b16431a0ef71e5c0a28be69183cf6a2 M AA
-:100644 000000 7e426fb079479fd67f6d81f984e4ec649a44bc25 0000000000000000000000000000000000000000 D AN
-:000000 100644 0000000000000000000000000000000000000000 71420ab81e254145d26d6fc0cddee64c1acd4787 A DF
-:100644 000000 68a6d8b91da11045cf4aa3a5ab9f2a781c701249 0000000000000000000000000000000000000000 D DF/DF
-:000000 100644 0000000000000000000000000000000000000000 3c4d8de5fbad08572bab8e10eef8dbb264cf0231 A DM
-:000000 100644 0000000000000000000000000000000000000000 35abde1506ddf806572ff4d407bd06885d0f8ee9 A DN
-:100644 000000 103d9f89b50b9aad03054b579be5e7aa665f2d57 0000000000000000000000000000000000000000 D MD
-:100644 100644 b431b272d829ff3aa4d1a5085f4394ab4d3305b6 19989d4559aae417fedee240ccf2ba315ea4dc2b M MM
-:100644 100644 a716d58de4a570e0038f5c307bd8db34daea021f bd084b0c27c7b6cc34f11d6d0509a29be3caf970 M MN
-:000000 100644 0000000000000000000000000000000000000000 15885881ea69115351c09b38371f0348a3fb8c67 A NA
-:100644 000000 a4e179e4291e5536a5e1c82e091052772d2c5a93 0000000000000000000000000000000000000000 D ND
-:100644 100644 c8f25781e8f1792e3e40b74225e20553041b5226 cdb9a8c3da571502ac30225e9c17beccb8387983 M NM
-:100644 100644 4c86f9a85fbc5e6804ee2e17a797538fbe785bca c4e4a12231b9fa79a0053cb6077fcb21bb5b135a M TT
-:100644 100644 8acb8e9750e3f644bf323fcf3d338849db106c77 6c0b99286d0bce551ac4a7b3dff8b706edff3715 M Z/AA
-:100644 000000 087494262084cefee7ed484d20c8dc0580791272 0000000000000000000000000000000000000000 D Z/AN
-:000000 100644 0000000000000000000000000000000000000000 d77371d15817fcaa57eeec27f770c505ba974ec1 A Z/DM
-:000000 100644 0000000000000000000000000000000000000000 beb5d38c55283d280685ea21a0e50cfcc0ca064a A Z/DN
-:100644 000000 a79ac3be9377639e1c7d1edf1ae1b3a5f0ccd8a9 0000000000000000000000000000000000000000 D Z/MD
-:100644 100644 61422ba9c2c873416061a88cd40a59a35b576474 697aad7715a1e7306ca76290a3dd4208fbaeddfa M Z/MM
-:100644 100644 a5c544c21cfcb07eb80a4d89a5b7d1570002edfd b16d7b25b869f2beb124efa53467d8a1550ad694 M Z/MN
-:000000 100644 0000000000000000000000000000000000000000 d12979c22fff69c59ca9409e7a8fe3ee25eaee80 A Z/NA
-:100644 000000 a18393c636b98e9bd7296b8b437ea4992b72440c 0000000000000000000000000000000000000000 D Z/ND
-:100644 100644 3fdbe17fd013303a2e981e1ca1c6cd6e72789087 7e09d6a3a14bd630913e8c75693cea32157b606d M Z/NM
+cat >.test-recursive-AB <<EOF
+:100644 100644 $(test_oid aa_1) $(test_oid aa_2) M AA
+:100644 000000 $(test_oid an_1) $(test_oid zero) D AN
+:000000 100644 $(test_oid zero) $(test_oid df_2) A DF
+:100644 000000 $(test_oid dfd1) $(test_oid zero) D DF/DF
+:000000 100644 $(test_oid zero) $(test_oid dm_2) A DM
+:000000 100644 $(test_oid zero) $(test_oid dn_1) A DN
+:100644 000000 $(test_oid md_2) $(test_oid zero) D MD
+:100644 100644 $(test_oid mm_2) $(test_oid mm_3) M MM
+:100644 100644 $(test_oid mn_2) $(test_oid mn_1) M MN
+:000000 100644 $(test_oid zero) $(test_oid na_1) A NA
+:100644 000000 $(test_oid nd_1) $(test_oid zero) D ND
+:100644 100644 $(test_oid nm_1) $(test_oid nm_2) M NM
+:100644 100644 $(test_oid tt_2) $(test_oid tt_3) M TT
+:100644 100644 $(test_oid zaa1) $(test_oid zaa2) M Z/AA
+:100644 000000 $(test_oid zan1) $(test_oid zero) D Z/AN
+:000000 100644 $(test_oid zero) $(test_oid zdm2) A Z/DM
+:000000 100644 $(test_oid zero) $(test_oid zdn1) A Z/DN
+:100644 000000 $(test_oid zmd2) $(test_oid zero) D Z/MD
+:100644 100644 $(test_oid zmm2) $(test_oid zmm3) M Z/MM
+:100644 100644 $(test_oid zmn2) $(test_oid zmn1) M Z/MN
+:000000 100644 $(test_oid zero) $(test_oid zna1) A Z/NA
+:100644 000000 $(test_oid znd1) $(test_oid zero) D Z/ND
+:100644 100644 $(test_oid znm1) $(test_oid znm2) M Z/NM
EOF
cmp_diff_files_output () {
diff --git a/t/t4009-diff-rename-4.sh b/t/t4009-diff-rename-4.sh
index 3641fd8..b63bdf0 100755
--- a/t/t4009-diff-rename-4.sh
+++ b/t/t4009-diff-rename-4.sh
@@ -14,6 +14,7 @@ test_expect_success \
'cat "$TEST_DIRECTORY"/diff-lib/COPYING >COPYING &&
echo frotz >rezrov &&
git update-index --add COPYING rezrov &&
+ orig=$(git hash-object COPYING) &&
tree=$(git write-tree) &&
echo $tree'
@@ -22,6 +23,8 @@ test_expect_success \
'sed -e 's/HOWEVER/However/' <COPYING >COPYING.1 &&
sed -e 's/GPL/G.P.L/g' <COPYING >COPYING.2 &&
rm -f COPYING &&
+ c1=$(git hash-object COPYING.1) &&
+ c2=$(git hash-object COPYING.2) &&
git update-index --add --remove COPYING COPYING.?'
# tree has COPYING and rezrov. work tree has COPYING.1 and COPYING.2,
@@ -31,11 +34,11 @@ test_expect_success \
git diff-index -z -C $tree >current
-cat >expected <<\EOF
-:100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 0603b3238a076dc6c8022aedc6648fa523a17178 C1234
+cat >expected <<EOF
+:100644 100644 $orig $c1 C1234
COPYING
COPYING.1
-:100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 06c67961bbaed34a127f76d261f4c0bf73eda471 R1234
+:100644 100644 $orig $c2 R1234
COPYING
COPYING.2
EOF
@@ -57,10 +60,10 @@ test_expect_success \
# about rezrov.
git diff-index -z -C $tree >current
-cat >expected <<\EOF
-:100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 06c67961bbaed34a127f76d261f4c0bf73eda471 M
+cat >expected <<EOF
+:100644 100644 $orig $c2 M
COPYING
-:100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 0603b3238a076dc6c8022aedc6648fa523a17178 C1234
+:100644 100644 $orig $c1 C1234
COPYING
COPYING.1
EOF
@@ -82,8 +85,8 @@ test_expect_success \
git update-index --add --remove COPYING COPYING.1'
git diff-index -z -C --find-copies-harder $tree >current
-cat >expected <<\EOF
-:100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 0603b3238a076dc6c8022aedc6648fa523a17178 C1234
+cat >expected <<EOF
+:100644 100644 $orig $c1 C1234
COPYING
COPYING.1
EOF
diff --git a/t/t4013-diff-various.sh b/t/t4013-diff-various.sh
index a9054d2..5ac94b3 100755
--- a/t/t4013-diff-various.sh
+++ b/t/t4013-diff-various.sh
@@ -7,9 +7,6 @@ test_description='Various diff formatting options'
. ./test-lib.sh
-LF='
-'
-
test_expect_success setup '
GIT_AUTHOR_DATE="2006-06-26 00:00:00 +0000" &&
diff --git a/t/t4014-format-patch.sh b/t/t4014-format-patch.sh
index 88db013..69267b1 100755
--- a/t/t4014-format-patch.sh
+++ b/t/t4014-format-patch.sh
@@ -1778,6 +1778,32 @@ test_expect_success 'From line has expected format' '
test_cmp from filtered
'
+test_expect_success 'format-patch -o with no leading directories' '
+ rm -fr patches &&
+ git format-patch -o patches master..side &&
+ count=$(git rev-list --count master..side) &&
+ ls patches >list &&
+ test_line_count = $count list
+'
+
+test_expect_success 'format-patch -o with leading existing directories' '
+ rm -rf existing-dir &&
+ mkdir existing-dir &&
+ git format-patch -o existing-dir/patches master..side &&
+ count=$(git rev-list --count master..side) &&
+ ls existing-dir/patches >list &&
+ test_line_count = $count list
+'
+
+test_expect_success 'format-patch -o with leading non-existing directories' '
+ rm -rf non-existing-dir &&
+ git format-patch -o non-existing-dir/patches master..side &&
+ count=$(git rev-list --count master..side) &&
+ test_path_is_dir non-existing-dir &&
+ ls non-existing-dir/patches >list &&
+ test_line_count = $count list
+'
+
test_expect_success 'format-patch format.outputDirectory option' '
test_config format.outputDirectory patches &&
rm -fr patches &&
diff --git a/t/t4018-diff-funcname.sh b/t/t4018-diff-funcname.sh
index 9261d6d..6f5ef00 100755
--- a/t/t4018-diff-funcname.sh
+++ b/t/t4018-diff-funcname.sh
@@ -31,6 +31,7 @@ diffpatterns="
cpp
csharp
css
+ dts
fortran
fountain
golang
diff --git a/t/t4018/dts-labels b/t/t4018/dts-labels
new file mode 100644
index 0000000..b21ef87
--- /dev/null
+++ b/t/t4018/dts-labels
@@ -0,0 +1,9 @@
+/ {
+ label_1: node1@ff00 {
+ label2: RIGHT {
+ vendor,some-property;
+
+ ChangeMe = <0x45-30>;
+ };
+ };
+};
diff --git a/t/t4018/dts-node-unitless b/t/t4018/dts-node-unitless
new file mode 100644
index 0000000..c5287d9
--- /dev/null
+++ b/t/t4018/dts-node-unitless
@@ -0,0 +1,8 @@
+/ {
+ label_1: node1 {
+ RIGHT {
+ prop-array = <1>, <4>;
+ ChangeMe = <0xffeedd00>;
+ };
+ };
+};
diff --git a/t/t4018/dts-nodes b/t/t4018/dts-nodes
new file mode 100644
index 0000000..5a4334b
--- /dev/null
+++ b/t/t4018/dts-nodes
@@ -0,0 +1,8 @@
+/ {
+ label_1: node1@ff00 {
+ RIGHT@deadf00,4000 {
+ #size-cells = <1>;
+ ChangeMe = <0xffeedd00>;
+ };
+ };
+};
diff --git a/t/t4018/dts-nodes-boolean-prop b/t/t4018/dts-nodes-boolean-prop
new file mode 100644
index 0000000..afc6b5b
--- /dev/null
+++ b/t/t4018/dts-nodes-boolean-prop
@@ -0,0 +1,9 @@
+/ {
+ label_1: node1@ff00 {
+ RIGHT@deadf00,4000 {
+ boolean-prop1;
+
+ ChangeMe;
+ };
+ };
+};
diff --git a/t/t4018/dts-nodes-comment1 b/t/t4018/dts-nodes-comment1
new file mode 100644
index 0000000..559dfce
--- /dev/null
+++ b/t/t4018/dts-nodes-comment1
@@ -0,0 +1,8 @@
+/ {
+ label_1: node1@ff00 {
+ RIGHT@deadf00,4000 /* &a comment */ {
+ #size-cells = <1>;
+ ChangeMe = <0xffeedd00>;
+ };
+ };
+};
diff --git a/t/t4018/dts-nodes-comment2 b/t/t4018/dts-nodes-comment2
new file mode 100644
index 0000000..27e9718
--- /dev/null
+++ b/t/t4018/dts-nodes-comment2
@@ -0,0 +1,8 @@
+/ {
+ label_1: node1@ff00 {
+ RIGHT@deadf00,4000 { /* a trailing comment */
+ #size-cells = <1>;
+ ChangeMe = <0xffeedd00>;
+ };
+ };
+};
diff --git a/t/t4018/dts-nodes-multiline-prop b/t/t4018/dts-nodes-multiline-prop
new file mode 100644
index 0000000..072d58b
--- /dev/null
+++ b/t/t4018/dts-nodes-multiline-prop
@@ -0,0 +1,13 @@
+/ {
+ label_1: node1@ff00 {
+ RIGHT@deadf00,4000 {
+ multilineprop = <3>,
+ <4>,
+ <5>,
+ <6>,
+ <7>;
+
+ ChangeMe = <0xffeedd00>;
+ };
+ };
+};
diff --git a/t/t4018/dts-reference b/t/t4018/dts-reference
new file mode 100644
index 0000000..8f0c87d
--- /dev/null
+++ b/t/t4018/dts-reference
@@ -0,0 +1,9 @@
+&label_1 {
+ TEST = <455>;
+};
+
+&RIGHT {
+ vendor,some-property;
+
+ ChangeMe = <0x45-30>;
+};
diff --git a/t/t4018/dts-root b/t/t4018/dts-root
new file mode 100644
index 0000000..4353b82
--- /dev/null
+++ b/t/t4018/dts-root
@@ -0,0 +1,5 @@
+/ { RIGHT /* Technically just supposed to be a slash and brace */
+ #size-cells = <1>;
+
+ ChangeMe = <0xffeedd00>;
+};
diff --git a/t/t4018/dts-root-comment b/t/t4018/dts-root-comment
new file mode 100644
index 0000000..333a625
--- /dev/null
+++ b/t/t4018/dts-root-comment
@@ -0,0 +1,8 @@
+/ { RIGHT /* Technically just supposed to be a slash and brace */
+ #size-cells = <1>;
+
+ /* This comment should be ignored */
+
+ some-property = <40+2>;
+ ChangeMe = <0xffeedd00>;
+};
diff --git a/t/t4034-diff-words.sh b/t/t4034-diff-words.sh
index 912df91..9a93c2a 100755
--- a/t/t4034-diff-words.sh
+++ b/t/t4034-diff-words.sh
@@ -303,6 +303,7 @@ test_language_driver bibtex
test_language_driver cpp
test_language_driver csharp
test_language_driver css
+test_language_driver dts
test_language_driver fortran
test_language_driver html
test_language_driver java
diff --git a/t/t4034/dts/expect b/t/t4034/dts/expect
new file mode 100644
index 0000000..560fc99
--- /dev/null
+++ b/t/t4034/dts/expect
@@ -0,0 +1,37 @@
+<BOLD>diff --git a/pre b/post<RESET>
+<BOLD>index b6a9051..7803aee 100644<RESET>
+<BOLD>--- a/pre<RESET>
+<BOLD>+++ b/post<RESET>
+<CYAN>@@ -1,32 +1,32 @@<RESET>
+/ {<RESET>
+ <RED>this_handle<RESET><GREEN>HANDLE_2<RESET>: <RED>node<RESET><GREEN>new-node<RESET>@<RED>f00<RESET><GREEN>eeda<RESET> {
+ compatible = "<RED>mydev<RESET><GREEN>vendor,compat<RESET>";
+ string-prop = <RED>start<RESET><GREEN>end<RESET>: "hello <RED>world!<RESET><GREEN>world?<RESET>" <RED>end<RESET><GREEN>start<RESET>: ;
+ <RED>#size-cells<RESET><GREEN>#address-cells<RESET> = <<RED>0+0<RESET><GREEN>0+40<RESET>>;
+ reg = <<RED>0xf00<RESET><GREEN>0xeeda<RESET>>;
+ prop = <<GREEN>(<RESET>1<GREEN>)<RESET>>;
+ prop = <<GREEN>(<RESET>-1e10<GREEN>)<RESET>>;
+ prop = <(!<RED>3<RESET><GREEN>1<RESET>)>;
+ prop = <(~<RED>3<RESET><GREEN>1<RESET>)>;
+ prop = <(<RED>3<RESET><GREEN>1<RESET>*<RED>4<RESET><GREEN>2<RESET>)>;
+ prop = <(<RED>3<RESET><GREEN>1<RESET>&<RED>4<RESET><GREEN>2<RESET>)>;
+ prop = <(<RED>3<RESET><GREEN>1<RESET>*<RED>4<RESET><GREEN>2<RESET>)>;
+ prop = <(<RED>3<RESET><GREEN>1<RESET>/<RED>4<RESET><GREEN>2<RESET>)>;
+ prop = <(<RED>3<RESET><GREEN>1<RESET>%<RED>4<RESET><GREEN>2<RESET>)>;
+ prop = <(<RED>3+4<RESET><GREEN>1+2<RESET>)>;
+ prop = <(<RED>3-4<RESET><GREEN>1-2<RESET>)>;
+ prop = /bits/ <RED>64<RESET><GREEN>32<RESET> <(<RED>3<RESET><GREEN>1<RESET><<<RED>4<RESET><GREEN>2<RESET>)>;
+ prop = <(<RED>3<RESET><GREEN>1<RESET>>><RED>4<RESET><GREEN>2<RESET>)>;
+ prop = <(<RED>3<RESET><GREEN>1<RESET>&<RED>4<RESET><GREEN>2<RESET>)>;
+ prop = <(<RED>3<RESET><GREEN>1<RESET>^<RED>4<RESET><GREEN>2<RESET>)>;
+ prop = <(<RED>3<RESET><GREEN>1<RESET>|<RED>4<RESET><GREEN>2<RESET>)>;
+ prop = <(<RED>3<RESET><GREEN>1<RESET>&&<RED>4<RESET><GREEN>2<RESET>)>;
+ prop = <(<RED>3<RESET><GREEN>1<RESET>||<RED>4<RESET><GREEN>2<RESET>)>;
+ prop = <(<RED>4?5<RESET><GREEN>1?2<RESET>:3)>;
+ list = <&<RED>this_handle<RESET><GREEN>HANDLE_2<RESET>>, <0 0 0 <RED>0<RESET><GREEN>1<RESET>>;
+ };<RESET>
+
+ &<RED>phandle<RESET><GREEN>phandle2<RESET> {
+ <RED>pre-phandle<RESET><GREEN>prop_handle<RESET> = <&<RED>this_handle<RESET><GREEN>HANDLE_2<RESET>>;
+ };<RESET>
+};<RESET>
diff --git a/t/t4034/dts/post b/t/t4034/dts/post
new file mode 100644
index 0000000..7803aee
--- /dev/null
+++ b/t/t4034/dts/post
@@ -0,0 +1,32 @@
+/ {
+ HANDLE_2: new-node@eeda {
+ compatible = "vendor,compat";
+ string-prop = end: "hello world?" start: ;
+ #address-cells = <0+40>;
+ reg = <0xeeda>;
+ prop = <(1)>;
+ prop = <(-1e10)>;
+ prop = <(!1)>;
+ prop = <(~1)>;
+ prop = <(1*2)>;
+ prop = <(1&2)>;
+ prop = <(1*2)>;
+ prop = <(1/2)>;
+ prop = <(1%2)>;
+ prop = <(1+2)>;
+ prop = <(1-2)>;
+ prop = /bits/ 32 <(1<<2)>;
+ prop = <(1>>2)>;
+ prop = <(1&2)>;
+ prop = <(1^2)>;
+ prop = <(1|2)>;
+ prop = <(1&&2)>;
+ prop = <(1||2)>;
+ prop = <(1?2:3)>;
+ list = <&HANDLE_2>, <0 0 0 1>;
+ };
+
+ &phandle2 {
+ prop_handle = <&HANDLE_2>;
+ };
+};
diff --git a/t/t4034/dts/pre b/t/t4034/dts/pre
new file mode 100644
index 0000000..b6a9051
--- /dev/null
+++ b/t/t4034/dts/pre
@@ -0,0 +1,32 @@
+/ {
+ this_handle: node@f00 {
+ compatible = "mydev";
+ string-prop = start: "hello world!" end: ;
+ #size-cells = <0+0>;
+ reg = <0xf00>;
+ prop = <1>;
+ prop = <-1e10>;
+ prop = <(!3)>;
+ prop = <(~3)>;
+ prop = <(3*4)>;
+ prop = <(3&4)>;
+ prop = <(3*4)>;
+ prop = <(3/4)>;
+ prop = <(3%4)>;
+ prop = <(3+4)>;
+ prop = <(3-4)>;
+ prop = /bits/ 64 <(3<<4)>;
+ prop = <(3>>4)>;
+ prop = <(3&4)>;
+ prop = <(3^4)>;
+ prop = <(3|4)>;
+ prop = <(3&&4)>;
+ prop = <(3||4)>;
+ prop = <(4?5:3)>;
+ list = <&this_handle>, <0 0 0 0>;
+ };
+
+ &phandle {
+ pre-phandle = <&this_handle>;
+ };
+};
diff --git a/t/t4038-diff-combined.sh b/t/t4038-diff-combined.sh
index d4afe12..b9d876e 100755
--- a/t/t4038-diff-combined.sh
+++ b/t/t4038-diff-combined.sh
@@ -509,7 +509,7 @@ test_expect_success FUNNYNAMES '--combined-all-paths and --raw and funny names'
test_expect_success FUNNYNAMES '--combined-all-paths and --raw -and -z and funny names' '
printf "aaf8087c3cbd4db8e185a2d074cf27c53cfb75d7\0::100644 100644 100644 f00c965d8307308469e537302baa73048488f162 088bd5d92c2a8e0203ca8e7e4c2a5c692f6ae3f7 333b9c62519f285e1854830ade0fe1ef1d40ee1b RR\0file\twith\ttabs\0i\tam\ttabbed\0fickle\tnaming\0" >expect &&
git diff-tree -c -M --raw --combined-all-paths -z HEAD >actual &&
- test_cmp -a expect actual
+ test_cmp expect actual
'
test_expect_success FUNNYNAMES '--combined-all-paths and --cc and funny names' '
diff --git a/t/t4067-diff-partial-clone.sh b/t/t4067-diff-partial-clone.sh
index 90c8fb2..4831ad3 100755
--- a/t/t4067-diff-partial-clone.sh
+++ b/t/t4067-diff-partial-clone.sh
@@ -75,6 +75,37 @@ test_expect_success 'diff skips same-OID blobs' '
! grep "want $(cat hash-b)" trace
'
+test_expect_success 'when fetching missing objects, diff skips GITLINKs' '
+ test_when_finished "rm -rf sub server client trace" &&
+
+ test_create_repo sub &&
+ test_commit -C sub first &&
+
+ test_create_repo server &&
+ echo a >server/a &&
+ git -C server add a &&
+ git -C server submodule add "file://$(pwd)/sub" &&
+ git -C server commit -m x &&
+
+ test_commit -C server/sub second &&
+ echo another-a >server/a &&
+ git -C server add a sub &&
+ git -C server commit -m x &&
+
+ test_config -C server uploadpack.allowfilter 1 &&
+ test_config -C server uploadpack.allowanysha1inwant 1 &&
+ git clone --bare --filter=blob:limit=0 "file://$(pwd)/server" client &&
+
+ echo a | git hash-object --stdin >hash-old-a &&
+ echo another-a | git hash-object --stdin >hash-new-a &&
+
+ # Ensure that a and another-a are fetched, and check (by successful
+ # execution of the diff) that no invalid OIDs are sent.
+ GIT_TRACE_PACKET="$(pwd)/trace" git -C client diff HEAD^ HEAD &&
+ grep "want $(cat hash-old-a)" trace &&
+ grep "want $(cat hash-new-a)" trace
+'
+
test_expect_success 'diff with rename detection batches blobs' '
test_when_finished "rm -rf server client trace" &&
diff --git a/t/t4150-am.sh b/t/t4150-am.sh
index 3f7f750..4f1e24e 100755
--- a/t/t4150-am.sh
+++ b/t/t4150-am.sh
@@ -1061,4 +1061,56 @@ test_expect_success 'am --quit keeps HEAD where it is' '
test_cmp expected actual
'
+test_expect_success 'am and .gitattibutes' '
+ test_create_repo attributes &&
+ (
+ cd attributes &&
+ test_commit init &&
+ git config filter.test.clean "sed -e '\''s/smudged/clean/g'\''" &&
+ git config filter.test.smudge "sed -e '\''s/clean/smudged/g'\''" &&
+
+ test_commit second &&
+ git checkout -b test HEAD^ &&
+
+ echo "*.txt filter=test conflict-marker-size=10" >.gitattributes &&
+ git add .gitattributes &&
+ test_commit third &&
+
+ echo "This text is smudged." >a.txt &&
+ git add a.txt &&
+ test_commit fourth &&
+
+ git checkout -b removal HEAD^ &&
+ git rm .gitattributes &&
+ git add -u &&
+ test_commit fifth &&
+ git cherry-pick test &&
+
+ git checkout -b conflict third &&
+ echo "This text is different." >a.txt &&
+ git add a.txt &&
+ test_commit sixth &&
+
+ git checkout test &&
+ git format-patch --stdout master..HEAD >patches &&
+ git reset --hard master &&
+ git am patches &&
+ grep "smudged" a.txt &&
+
+ git checkout removal &&
+ git reset --hard &&
+ git format-patch --stdout master..HEAD >patches &&
+ git reset --hard master &&
+ git am patches &&
+ grep "clean" a.txt &&
+
+ git checkout conflict &&
+ git reset --hard &&
+ git format-patch --stdout master..HEAD >patches &&
+ git reset --hard fourth &&
+ test_must_fail git am -3 patches &&
+ grep "<<<<<<<<<<" a.txt
+ )
+'
+
test_done
diff --git a/t/t4202-log.sh b/t/t4202-log.sh
index c202093..e803ba4 100755
--- a/t/t4202-log.sh
+++ b/t/t4202-log.sh
@@ -837,6 +837,21 @@ test_expect_success 'decorate-refs and decorate-refs-exclude' '
test_cmp expect.decorate actual
'
+test_expect_success 'decorate-refs-exclude and simplify-by-decoration' '
+ cat >expect.decorate <<-\EOF &&
+ Merge-tag-reach (HEAD -> master)
+ reach (tag: reach, reach)
+ seventh (tag: seventh)
+ Merge-branch-tangle
+ Merge-branch-side-early-part-into-tangle (tangle)
+ tangle-a (tag: tangle-a)
+ EOF
+ git log -n6 --decorate=short --pretty="tformat:%f%d" \
+ --decorate-refs-exclude="*octopus*" \
+ --simplify-by-decoration >actual &&
+ test_cmp expect.decorate actual
+'
+
test_expect_success 'log.decorate config parsing' '
git log --oneline --decorate=full >expect.full &&
git log --oneline --decorate=short >expect.short &&
@@ -1707,4 +1722,11 @@ test_expect_success '--exclude-promisor-objects does not BUG-crash' '
test_must_fail git log --exclude-promisor-objects source-a
'
+test_expect_success 'log --end-of-options' '
+ git update-ref refs/heads/--source HEAD &&
+ git log --end-of-options --source >actual &&
+ git log >expect &&
+ test_cmp expect actual
+'
+
test_done
diff --git a/t/t4210-log-i18n.sh b/t/t4210-log-i18n.sh
index 7c51943..6e61f57 100755
--- a/t/t4210-log-i18n.sh
+++ b/t/t4210-log-i18n.sh
@@ -1,12 +1,15 @@
#!/bin/sh
test_description='test log with i18n features'
-. ./test-lib.sh
+. ./lib-gettext.sh
# two forms of é
utf8_e=$(printf '\303\251')
latin1_e=$(printf '\351')
+# invalid UTF-8
+invalid_e=$(printf '\303\50)') # ")" at end to close opening "("
+
test_expect_success 'create commits in different encodings' '
test_tick &&
cat >msg <<-EOF &&
@@ -48,9 +51,43 @@ test_expect_success !MINGW 'log --grep does not find non-reencoded values (utf8)
test_must_be_empty actual
'
-test_expect_success 'log --grep does not find non-reencoded values (latin1)' '
+test_expect_success !MINGW 'log --grep does not find non-reencoded values (latin1)' '
git log --encoding=ISO-8859-1 --format=%s --grep=$utf8_e >actual &&
test_must_be_empty actual
'
+for engine in fixed basic extended perl
+do
+ prereq=
+ if test $engine = "perl"
+ then
+ prereq="PCRE"
+ else
+ prereq=""
+ fi
+ force_regex=
+ if test $engine != "fixed"
+ then
+ force_regex=.*
+ fi
+ test_expect_success !MINGW,GETTEXT_LOCALE,$prereq "-c grep.patternType=$engine log --grep does not find non-reencoded values (latin1 + locale)" "
+ cat >expect <<-\EOF &&
+ latin1
+ utf8
+ EOF
+ LC_ALL=\"$is_IS_locale\" git -c grep.patternType=$engine log --encoding=ISO-8859-1 --format=%s --grep=\"$force_regex$latin1_e\" >actual &&
+ test_cmp expect actual
+ "
+
+ test_expect_success !MINGW,GETTEXT_LOCALE,$prereq "-c grep.patternType=$engine log --grep does not find non-reencoded values (latin1 + locale)" "
+ LC_ALL=\"$is_IS_locale\" git -c grep.patternType=$engine log --encoding=ISO-8859-1 --format=%s --grep=\"$force_regex$utf8_e\" >actual &&
+ test_must_be_empty actual
+ "
+
+ test_expect_success !MINGW,GETTEXT_LOCALE,$prereq "-c grep.patternType=$engine log --grep does not die on invalid UTF-8 value (latin1 + locale + invalid needle)" "
+ LC_ALL=\"$is_IS_locale\" git -c grep.patternType=$engine log --encoding=ISO-8859-1 --format=%s --grep=\"$force_regex$invalid_e\" >actual &&
+ test_must_be_empty actual
+ "
+done
+
test_done
diff --git a/t/t4211-line-log.sh b/t/t4211-line-log.sh
index 1db7bd0..8319163 100755
--- a/t/t4211-line-log.sh
+++ b/t/t4211-line-log.sh
@@ -132,4 +132,86 @@ test_expect_success '--raw is forbidden' '
test_must_fail git log -L1,24:b.c --raw
'
+test_expect_success 'setup for checking fancy rename following' '
+ git checkout --orphan moves-start &&
+ git reset --hard &&
+
+ printf "%s\n" 12 13 14 15 b c d e >file-1 &&
+ printf "%s\n" 22 23 24 25 B C D E >file-2 &&
+ git add file-1 file-2 &&
+ test_tick &&
+ git commit -m "Add file-1 and file-2" &&
+ oid_add_f1_f2=$(git rev-parse --short HEAD) &&
+
+ git checkout -b moves-main &&
+ printf "%s\n" 11 12 13 14 15 b c d e >file-1 &&
+ git commit -a -m "Modify file-1 on main" &&
+ oid_mod_f1_main=$(git rev-parse --short HEAD) &&
+
+ printf "%s\n" 21 22 23 24 25 B C D E >file-2 &&
+ git commit -a -m "Modify file-2 on main #1" &&
+ oid_mod_f2_main_1=$(git rev-parse --short HEAD) &&
+
+ git mv file-1 renamed-1 &&
+ git commit -m "Rename file-1 to renamed-1 on main" &&
+
+ printf "%s\n" 11 12 13 14 15 b c d e f >renamed-1 &&
+ git commit -a -m "Modify renamed-1 on main" &&
+ oid_mod_r1_main=$(git rev-parse --short HEAD) &&
+
+ printf "%s\n" 21 22 23 24 25 B C D E F >file-2 &&
+ git commit -a -m "Modify file-2 on main #2" &&
+ oid_mod_f2_main_2=$(git rev-parse --short HEAD) &&
+
+ git checkout -b moves-side moves-start &&
+ printf "%s\n" 12 13 14 15 16 b c d e >file-1 &&
+ git commit -a -m "Modify file-1 on side #1" &&
+ oid_mod_f1_side_1=$(git rev-parse --short HEAD) &&
+
+ printf "%s\n" 22 23 24 25 26 B C D E >file-2 &&
+ git commit -a -m "Modify file-2 on side" &&
+ oid_mod_f2_side=$(git rev-parse --short HEAD) &&
+
+ git mv file-2 renamed-2 &&
+ git commit -m "Rename file-2 to renamed-2 on side" &&
+
+ printf "%s\n" 12 13 14 15 16 a b c d e >file-1 &&
+ git commit -a -m "Modify file-1 on side #2" &&
+ oid_mod_f1_side_2=$(git rev-parse --short HEAD) &&
+
+ printf "%s\n" 22 23 24 25 26 A B C D E >renamed-2 &&
+ git commit -a -m "Modify renamed-2 on side" &&
+ oid_mod_r2_side=$(git rev-parse --short HEAD) &&
+
+ git checkout moves-main &&
+ git merge moves-side &&
+ oid_merge=$(git rev-parse --short HEAD)
+'
+
+test_expect_success 'fancy rename following #1' '
+ cat >expect <<-EOF &&
+ $oid_merge Merge branch '\''moves-side'\'' into moves-main
+ $oid_mod_f1_side_2 Modify file-1 on side #2
+ $oid_mod_f1_side_1 Modify file-1 on side #1
+ $oid_mod_r1_main Modify renamed-1 on main
+ $oid_mod_f1_main Modify file-1 on main
+ $oid_add_f1_f2 Add file-1 and file-2
+ EOF
+ git log -L1:renamed-1 --oneline --no-patch >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success 'fancy rename following #2' '
+ cat >expect <<-EOF &&
+ $oid_merge Merge branch '\''moves-side'\'' into moves-main
+ $oid_mod_r2_side Modify renamed-2 on side
+ $oid_mod_f2_side Modify file-2 on side
+ $oid_mod_f2_main_2 Modify file-2 on main #2
+ $oid_mod_f2_main_1 Modify file-2 on main #1
+ $oid_add_f1_f2 Add file-1 and file-2
+ EOF
+ git log -L1:renamed-2 --oneline --no-patch >actual &&
+ test_cmp expect actual
+'
+
test_done
diff --git a/t/t4214-log-graph-octopus.sh b/t/t4214-log-graph-octopus.sh
index dab96c8..3ae8e51 100755
--- a/t/t4214-log-graph-octopus.sh
+++ b/t/t4214-log-graph-octopus.sh
@@ -5,6 +5,25 @@ test_description='git log --graph of skewed left octopus merge.'
. ./test-lib.sh
test_expect_success 'set up merge history' '
+ test_commit initial &&
+ for i in 1 2 3 4 ; do
+ git checkout master -b $i || return $?
+ # Make tag name different from branch name, to avoid
+ # ambiguity error when calling checkout.
+ test_commit $i $i $i tag$i || return $?
+ done &&
+ git checkout 1 -b merge &&
+ test_merge octopus-merge 1 2 3 4 &&
+ test_commit after-merge &&
+ git checkout 1 -b L &&
+ test_commit left &&
+ git checkout 4 -b crossover &&
+ test_commit after-4 &&
+ git checkout initial -b more-L &&
+ test_commit after-initial
+'
+
+test_expect_success 'log --graph with tricky octopus merge, no color' '
cat >expect.uncolored <<-\EOF &&
* left
| *---. octopus-merge
@@ -19,6 +38,13 @@ test_expect_success 'set up merge history' '
|/
* initial
EOF
+ git log --color=never --graph --date-order --pretty=tformat:%s left octopus-merge >actual.raw &&
+ sed "s/ *\$//" actual.raw >actual &&
+ test_cmp expect.uncolored actual
+'
+
+test_expect_success 'log --graph with tricky octopus merge with colors' '
+ test_config log.graphColors red,green,yellow,blue,magenta,cyan &&
cat >expect.colors <<-\EOF &&
* left
<RED>|<RESET> *<BLUE>-<RESET><BLUE>-<RESET><MAGENTA>-<RESET><MAGENTA>.<RESET> octopus-merge
@@ -33,33 +59,11 @@ test_expect_success 'set up merge history' '
<MAGENTA>|<RESET><MAGENTA>/<RESET>
* initial
EOF
- test_commit initial &&
- for i in 1 2 3 4 ; do
- git checkout master -b $i || return $?
- # Make tag name different from branch name, to avoid
- # ambiguity error when calling checkout.
- test_commit $i $i $i tag$i || return $?
- done &&
- git checkout 1 -b merge &&
- test_tick &&
- git merge -m octopus-merge 1 2 3 4 &&
- git checkout 1 -b L &&
- test_commit left
-'
-
-test_expect_success 'log --graph with tricky octopus merge with colors' '
- test_config log.graphColors red,green,yellow,blue,magenta,cyan &&
- git log --color=always --graph --date-order --pretty=tformat:%s --all >actual.colors.raw &&
+ git log --color=always --graph --date-order --pretty=tformat:%s left octopus-merge >actual.colors.raw &&
test_decode_color <actual.colors.raw | sed "s/ *\$//" >actual.colors &&
test_cmp expect.colors actual.colors
'
-test_expect_success 'log --graph with tricky octopus merge, no color' '
- git log --color=never --graph --date-order --pretty=tformat:%s --all >actual.raw &&
- sed "s/ *\$//" actual.raw >actual &&
- test_cmp expect.uncolored actual
-'
-
# Repeat the previous two tests with "normal" octopus merge (i.e.,
# without the first parent skewing to the "left" branch column).
@@ -76,7 +80,7 @@ test_expect_success 'log --graph with normal octopus merge, no color' '
|/
* initial
EOF
- git log --color=never --graph --date-order --pretty=tformat:%s merge >actual.raw &&
+ git log --color=never --graph --date-order --pretty=tformat:%s octopus-merge >actual.raw &&
sed "s/ *\$//" actual.raw >actual &&
test_cmp expect.uncolored actual
'
@@ -95,8 +99,283 @@ test_expect_success 'log --graph with normal octopus merge with colors' '
* initial
EOF
test_config log.graphColors red,green,yellow,blue,magenta,cyan &&
- git log --color=always --graph --date-order --pretty=tformat:%s merge >actual.colors.raw &&
+ git log --color=always --graph --date-order --pretty=tformat:%s octopus-merge >actual.colors.raw &&
+ test_decode_color <actual.colors.raw | sed "s/ *\$//" >actual.colors &&
+ test_cmp expect.colors actual.colors
+'
+
+test_expect_success 'log --graph with normal octopus merge and child, no color' '
+ cat >expect.uncolored <<-\EOF &&
+ * after-merge
+ *---. octopus-merge
+ |\ \ \
+ | | | * 4
+ | | * | 3
+ | | |/
+ | * | 2
+ | |/
+ * | 1
+ |/
+ * initial
+ EOF
+ git log --color=never --graph --date-order --pretty=tformat:%s after-merge >actual.raw &&
+ sed "s/ *\$//" actual.raw >actual &&
+ test_cmp expect.uncolored actual
+'
+
+test_expect_failure 'log --graph with normal octopus and child merge with colors' '
+ cat >expect.colors <<-\EOF &&
+ * after-merge
+ *<BLUE>-<RESET><BLUE>-<RESET><MAGENTA>-<RESET><MAGENTA>.<RESET> octopus-merge
+ <GREEN>|<RESET><YELLOW>\<RESET> <BLUE>\<RESET> <MAGENTA>\<RESET>
+ <GREEN>|<RESET> <YELLOW>|<RESET> <BLUE>|<RESET> * 4
+ <GREEN>|<RESET> <YELLOW>|<RESET> * <MAGENTA>|<RESET> 3
+ <GREEN>|<RESET> <YELLOW>|<RESET> <MAGENTA>|<RESET><MAGENTA>/<RESET>
+ <GREEN>|<RESET> * <MAGENTA>|<RESET> 2
+ <GREEN>|<RESET> <MAGENTA>|<RESET><MAGENTA>/<RESET>
+ * <MAGENTA>|<RESET> 1
+ <MAGENTA>|<RESET><MAGENTA>/<RESET>
+ * initial
+ EOF
+ test_config log.graphColors red,green,yellow,blue,magenta,cyan &&
+ git log --color=always --graph --date-order --pretty=tformat:%s after-merge >actual.colors.raw &&
+ test_decode_color <actual.colors.raw | sed "s/ *\$//" >actual.colors &&
+ test_cmp expect.colors actual.colors
+'
+
+test_expect_success 'log --graph with tricky octopus merge and its child, no color' '
+ cat >expect.uncolored <<-\EOF &&
+ * left
+ | * after-merge
+ | *---. octopus-merge
+ | |\ \ \
+ |/ / / /
+ | | | * 4
+ | | * | 3
+ | | |/
+ | * | 2
+ | |/
+ * | 1
+ |/
+ * initial
+ EOF
+ git log --color=never --graph --date-order --pretty=tformat:%s left after-merge >actual.raw &&
+ sed "s/ *\$//" actual.raw >actual &&
+ test_cmp expect.uncolored actual
+'
+
+test_expect_failure 'log --graph with tricky octopus merge and its child with colors' '
+ test_config log.graphColors red,green,yellow,blue,magenta,cyan &&
+ cat >expect.colors <<-\EOF &&
+ * left
+ <RED>|<RESET> * after-merge
+ <RED>|<RESET> *<MAGENTA>-<RESET><MAGENTA>-<RESET><CYAN>-<RESET><CYAN>.<RESET> octopus-merge
+ <RED>|<RESET> <RED>|<RESET><BLUE>\<RESET> <MAGENTA>\<RESET> <CYAN>\<RESET>
+ <RED>|<RESET><RED>/<RESET> <BLUE>/<RESET> <MAGENTA>/<RESET> <CYAN>/<RESET>
+ <RED>|<RESET> <BLUE>|<RESET> <MAGENTA>|<RESET> * 4
+ <RED>|<RESET> <BLUE>|<RESET> * <CYAN>|<RESET> 3
+ <RED>|<RESET> <BLUE>|<RESET> <CYAN>|<RESET><CYAN>/<RESET>
+ <RED>|<RESET> * <CYAN>|<RESET> 2
+ <RED>|<RESET> <CYAN>|<RESET><CYAN>/<RESET>
+ * <CYAN>|<RESET> 1
+ <CYAN>|<RESET><CYAN>/<RESET>
+ * initial
+ EOF
+ git log --color=always --graph --date-order --pretty=tformat:%s left after-merge >actual.colors.raw &&
+ test_decode_color <actual.colors.raw | sed "s/ *\$//" >actual.colors &&
+ test_cmp expect.colors actual.colors
+'
+
+test_expect_success 'log --graph with crossover in octopus merge, no color' '
+ cat >expect.uncolored <<-\EOF &&
+ * after-4
+ | *---. octopus-merge
+ | |\ \ \
+ | |_|_|/
+ |/| | |
+ * | | | 4
+ | | | * 3
+ | |_|/
+ |/| |
+ | | * 2
+ | |/
+ |/|
+ | * 1
+ |/
+ * initial
+ EOF
+ git log --color=never --graph --date-order --pretty=tformat:%s after-4 octopus-merge >actual.raw &&
+ sed "s/ *\$//" actual.raw >actual &&
+ test_cmp expect.uncolored actual
+'
+
+test_expect_failure 'log --graph with crossover in octopus merge with colors' '
+ test_config log.graphColors red,green,yellow,blue,magenta,cyan &&
+ cat >expect.colors <<-\EOF &&
+ * after-4
+ <RED>|<RESET> *<BLUE>-<RESET><BLUE>-<RESET><RED>-<RESET><RED>.<RESET> octopus-merge
+ <RED>|<RESET> <GREEN>|<RESET><YELLOW>\<RESET> <BLUE>\<RESET> <RED>\<RESET>
+ <RED>|<RESET> <GREEN>|<RESET><RED>_<RESET><YELLOW>|<RESET><RED>_<RESET><BLUE>|<RESET><RED>/<RESET>
+ <RED>|<RESET><RED>/<RESET><GREEN>|<RESET> <YELLOW>|<RESET> <BLUE>|<RESET>
+ * <GREEN>|<RESET> <YELLOW>|<RESET> <BLUE>|<RESET> 4
+ <MAGENTA>|<RESET> <GREEN>|<RESET> <YELLOW>|<RESET> * 3
+ <MAGENTA>|<RESET> <GREEN>|<RESET><MAGENTA>_<RESET><YELLOW>|<RESET><MAGENTA>/<RESET>
+ <MAGENTA>|<RESET><MAGENTA>/<RESET><GREEN>|<RESET> <YELLOW>|<RESET>
+ <MAGENTA>|<RESET> <GREEN>|<RESET> * 2
+ <MAGENTA>|<RESET> <GREEN>|<RESET><MAGENTA>/<RESET>
+ <MAGENTA>|<RESET><MAGENTA>/<RESET><GREEN>|<RESET>
+ <MAGENTA>|<RESET> * 1
+ <MAGENTA>|<RESET><MAGENTA>/<RESET>
+ * initial
+ EOF
+ git log --color=always --graph --date-order --pretty=tformat:%s after-4 octopus-merge >actual.colors.raw &&
+ test_decode_color <actual.colors.raw | sed "s/ *\$//" >actual.colors &&
+ test_cmp expect.colors actual.colors
+'
+
+test_expect_success 'log --graph with crossover in octopus merge and its child, no color' '
+ cat >expect.uncolored <<-\EOF &&
+ * after-4
+ | * after-merge
+ | *---. octopus-merge
+ | |\ \ \
+ | |_|_|/
+ |/| | |
+ * | | | 4
+ | | | * 3
+ | |_|/
+ |/| |
+ | | * 2
+ | |/
+ |/|
+ | * 1
+ |/
+ * initial
+ EOF
+ git log --color=never --graph --date-order --pretty=tformat:%s after-4 after-merge >actual.raw &&
+ sed "s/ *\$//" actual.raw >actual &&
+ test_cmp expect.uncolored actual
+'
+
+test_expect_failure 'log --graph with crossover in octopus merge and its child with colors' '
+ test_config log.graphColors red,green,yellow,blue,magenta,cyan &&
+ cat >expect.colors <<-\EOF &&
+ * after-4
+ <RED>|<RESET> * after-merge
+ <RED>|<RESET> *<MAGENTA>-<RESET><MAGENTA>-<RESET><RED>-<RESET><RED>.<RESET> octopus-merge
+ <RED>|<RESET> <YELLOW>|<RESET><BLUE>\<RESET> <MAGENTA>\<RESET> <RED>\<RESET>
+ <RED>|<RESET> <YELLOW>|<RESET><RED>_<RESET><BLUE>|<RESET><RED>_<RESET><MAGENTA>|<RESET><RED>/<RESET>
+ <RED>|<RESET><RED>/<RESET><YELLOW>|<RESET> <BLUE>|<RESET> <MAGENTA>|<RESET>
+ * <YELLOW>|<RESET> <BLUE>|<RESET> <MAGENTA>|<RESET> 4
+ <CYAN>|<RESET> <YELLOW>|<RESET> <BLUE>|<RESET> * 3
+ <CYAN>|<RESET> <YELLOW>|<RESET><CYAN>_<RESET><BLUE>|<RESET><CYAN>/<RESET>
+ <CYAN>|<RESET><CYAN>/<RESET><YELLOW>|<RESET> <BLUE>|<RESET>
+ <CYAN>|<RESET> <YELLOW>|<RESET> * 2
+ <CYAN>|<RESET> <YELLOW>|<RESET><CYAN>/<RESET>
+ <CYAN>|<RESET><CYAN>/<RESET><YELLOW>|<RESET>
+ <CYAN>|<RESET> * 1
+ <CYAN>|<RESET><CYAN>/<RESET>
+ * initial
+ EOF
+ git log --color=always --graph --date-order --pretty=tformat:%s after-4 after-merge >actual.colors.raw &&
+ test_decode_color <actual.colors.raw | sed "s/ *\$//" >actual.colors &&
+ test_cmp expect.colors actual.colors
+'
+
+test_expect_success 'log --graph with unrelated commit and octopus tip, no color' '
+ cat >expect.uncolored <<-\EOF &&
+ * after-initial
+ | *---. octopus-merge
+ | |\ \ \
+ | | | | * 4
+ | |_|_|/
+ |/| | |
+ | | | * 3
+ | |_|/
+ |/| |
+ | | * 2
+ | |/
+ |/|
+ | * 1
+ |/
+ * initial
+ EOF
+ git log --color=never --graph --date-order --pretty=tformat:%s after-initial octopus-merge >actual.raw &&
+ sed "s/ *\$//" actual.raw >actual &&
+ test_cmp expect.uncolored actual
+'
+
+test_expect_success 'log --graph with unrelated commit and octopus tip with colors' '
+ test_config log.graphColors red,green,yellow,blue,magenta,cyan &&
+ cat >expect.colors <<-\EOF &&
+ * after-initial
+ <RED>|<RESET> *<BLUE>-<RESET><BLUE>-<RESET><MAGENTA>-<RESET><MAGENTA>.<RESET> octopus-merge
+ <RED>|<RESET> <GREEN>|<RESET><YELLOW>\<RESET> <BLUE>\<RESET> <MAGENTA>\<RESET>
+ <RED>|<RESET> <GREEN>|<RESET> <YELLOW>|<RESET> <BLUE>|<RESET> * 4
+ <RED>|<RESET> <GREEN>|<RESET><RED>_<RESET><YELLOW>|<RESET><RED>_<RESET><BLUE>|<RESET><RED>/<RESET>
+ <RED>|<RESET><RED>/<RESET><GREEN>|<RESET> <YELLOW>|<RESET> <BLUE>|<RESET>
+ <RED>|<RESET> <GREEN>|<RESET> <YELLOW>|<RESET> * 3
+ <RED>|<RESET> <GREEN>|<RESET><RED>_<RESET><YELLOW>|<RESET><RED>/<RESET>
+ <RED>|<RESET><RED>/<RESET><GREEN>|<RESET> <YELLOW>|<RESET>
+ <RED>|<RESET> <GREEN>|<RESET> * 2
+ <RED>|<RESET> <GREEN>|<RESET><RED>/<RESET>
+ <RED>|<RESET><RED>/<RESET><GREEN>|<RESET>
+ <RED>|<RESET> * 1
+ <RED>|<RESET><RED>/<RESET>
+ * initial
+ EOF
+ git log --color=always --graph --date-order --pretty=tformat:%s after-initial octopus-merge >actual.colors.raw &&
+ test_decode_color <actual.colors.raw | sed "s/ *\$//" >actual.colors &&
+ test_cmp expect.colors actual.colors
+'
+
+test_expect_success 'log --graph with unrelated commit and octopus child, no color' '
+ cat >expect.uncolored <<-\EOF &&
+ * after-initial
+ | * after-merge
+ | *---. octopus-merge
+ | |\ \ \
+ | | | | * 4
+ | |_|_|/
+ |/| | |
+ | | | * 3
+ | |_|/
+ |/| |
+ | | * 2
+ | |/
+ |/|
+ | * 1
+ |/
+ * initial
+ EOF
+ git log --color=never --graph --date-order --pretty=tformat:%s after-initial after-merge >actual.raw &&
+ sed "s/ *\$//" actual.raw >actual &&
+ test_cmp expect.uncolored actual
+'
+
+test_expect_failure 'log --graph with unrelated commit and octopus child with colors' '
+ test_config log.graphColors red,green,yellow,blue,magenta,cyan &&
+ cat >expect.colors <<-\EOF &&
+ * after-initial
+ <RED>|<RESET> * after-merge
+ <RED>|<RESET> *<MAGENTA>-<RESET><MAGENTA>-<RESET><CYAN>-<RESET><CYAN>.<RESET> octopus-merge
+ <RED>|<RESET> <YELLOW>|<RESET><BLUE>\<RESET> <MAGENTA>\<RESET> <CYAN>\<RESET>
+ <RED>|<RESET> <YELLOW>|<RESET> <BLUE>|<RESET> <MAGENTA>|<RESET> * 4
+ <RED>|<RESET> <YELLOW>|<RESET><RED>_<RESET><BLUE>|<RESET><RED>_<RESET><MAGENTA>|<RESET><RED>/<RESET>
+ <RED>|<RESET><RED>/<RESET><YELLOW>|<RESET> <BLUE>|<RESET> <MAGENTA>|<RESET>
+ <RED>|<RESET> <YELLOW>|<RESET> <BLUE>|<RESET> * 3
+ <RED>|<RESET> <YELLOW>|<RESET><RED>_<RESET><BLUE>|<RESET><RED>/<RESET>
+ <RED>|<RESET><RED>/<RESET><YELLOW>|<RESET> <BLUE>|<RESET>
+ <RED>|<RESET> <YELLOW>|<RESET> * 2
+ <RED>|<RESET> <YELLOW>|<RESET><RED>/<RESET>
+ <RED>|<RESET><RED>/<RESET><YELLOW>|<RESET>
+ <RED>|<RESET> * 1
+ <RED>|<RESET><RED>/<RESET>
+ * initial
+ EOF
+ git log --color=always --graph --date-order --pretty=tformat:%s after-initial after-merge >actual.colors.raw &&
test_decode_color <actual.colors.raw | sed "s/ *\$//" >actual.colors &&
test_cmp expect.colors actual.colors
'
+
test_done
diff --git a/t/t5004-archive-corner-cases.sh b/t/t5004-archive-corner-cases.sh
index 271eb5a..3e7b23c 100755
--- a/t/t5004-archive-corner-cases.sh
+++ b/t/t5004-archive-corner-cases.sh
@@ -204,4 +204,23 @@ test_expect_success EXPENSIVE,LONG_IS_64BIT,UNZIP,UNZIP_ZIP64_SUPPORT,ZIPINFO \
grep $size big.lst
'
+build_tree() {
+ perl -e '
+ my $hash = $ARGV[0];
+ foreach my $order (2..6) {
+ $first = 10 ** $order;
+ foreach my $i (-13..-9) {
+ my $name = "a" x ($first + $i);
+ print "100644 blob $hash\t$name\n"
+ }
+ }
+ ' "$1"
+}
+
+test_expect_success 'tar archive with long paths' '
+ blob=$(echo foo | git hash-object -w --stdin) &&
+ tree=$(build_tree $blob | git mktree) &&
+ git archive -o long_paths.tar $tree
+'
+
test_done
diff --git a/t/t5307-pack-missing-commit.sh b/t/t5307-pack-missing-commit.sh
index dacb440..f4338ab 100755
--- a/t/t5307-pack-missing-commit.sh
+++ b/t/t5307-pack-missing-commit.sh
@@ -24,11 +24,11 @@ test_expect_success 'check corruption' '
'
test_expect_success 'rev-list notices corruption (1)' '
- test_must_fail env GIT_TEST_COMMIT_GRAPH=0 git rev-list HEAD
+ test_must_fail env GIT_TEST_COMMIT_GRAPH=0 git -c core.commitGraph=false rev-list HEAD
'
test_expect_success 'rev-list notices corruption (2)' '
- test_must_fail env GIT_TEST_COMMIT_GRAPH=0 git rev-list --objects HEAD
+ test_must_fail env GIT_TEST_COMMIT_GRAPH=0 git -c core.commitGraph=false rev-list --objects HEAD
'
test_expect_success 'pack-objects notices corruption' '
diff --git a/t/t5318-commit-graph.sh b/t/t5318-commit-graph.sh
index 22cb9d6..d42b3ef 100755
--- a/t/t5318-commit-graph.sh
+++ b/t/t5318-commit-graph.sh
@@ -23,11 +23,10 @@ test_expect_success 'write graph with no packs' '
test_path_is_missing info/commit-graph
'
-test_expect_success 'close with correct error on bad input' '
+test_expect_success 'exit with correct error on bad input to --stdin-packs' '
cd "$TRASH_DIRECTORY/full" &&
echo doesnotexist >in &&
- { git commit-graph write --stdin-packs <in 2>stderr; ret=$?; } &&
- test "$ret" = 1 &&
+ test_expect_code 1 git commit-graph write --stdin-packs <in 2>stderr &&
test_i18ngrep "error adding pack" stderr
'
@@ -41,6 +40,15 @@ test_expect_success 'create commits and repack' '
git repack
'
+test_expect_success 'exit with correct error on bad input to --stdin-commits' '
+ cd "$TRASH_DIRECTORY/full" &&
+ echo HEAD | test_expect_code 1 git commit-graph write --stdin-commits 2>stderr &&
+ test_i18ngrep "invalid commit object id" stderr &&
+ # valid tree OID, but not a commit OID
+ git rev-parse HEAD^{tree} | test_expect_code 1 git commit-graph write --stdin-commits 2>stderr &&
+ test_i18ngrep "invalid commit object id" stderr
+'
+
graph_git_two_modes() {
git -c core.commitGraph=true $1 >output
git -c core.commitGraph=false $1 >expect
@@ -116,6 +124,42 @@ test_expect_success 'Add more commits' '
git repack
'
+test_expect_success 'commit-graph write progress off for redirected stderr' '
+ cd "$TRASH_DIRECTORY/full" &&
+ git commit-graph write 2>err &&
+ test_line_count = 0 err
+'
+
+test_expect_success 'commit-graph write force progress on for stderr' '
+ cd "$TRASH_DIRECTORY/full" &&
+ git commit-graph write --progress 2>err &&
+ test_file_not_empty err
+'
+
+test_expect_success 'commit-graph write with the --no-progress option' '
+ cd "$TRASH_DIRECTORY/full" &&
+ git commit-graph write --no-progress 2>err &&
+ test_line_count = 0 err
+'
+
+test_expect_success 'commit-graph verify progress off for redirected stderr' '
+ cd "$TRASH_DIRECTORY/full" &&
+ git commit-graph verify 2>err &&
+ test_line_count = 0 err
+'
+
+test_expect_success 'commit-graph verify force progress on for stderr' '
+ cd "$TRASH_DIRECTORY/full" &&
+ git commit-graph verify --progress 2>err &&
+ test_file_not_empty err
+'
+
+test_expect_success 'commit-graph verify with the --no-progress option' '
+ cd "$TRASH_DIRECTORY/full" &&
+ git commit-graph verify --no-progress 2>err &&
+ test_line_count = 0 err
+'
+
# Current graph structure:
#
# __M3___
@@ -577,4 +621,47 @@ test_expect_success 'get_commit_tree_in_graph works for non-the_repository' '
test_cmp expect actual
'
+test_expect_success 'corrupt commit-graph write (broken parent)' '
+ rm -rf repo &&
+ git init repo &&
+ (
+ cd repo &&
+ empty="$(git mktree </dev/null)" &&
+ cat >broken <<-EOF &&
+ tree $empty
+ parent 0000000000000000000000000000000000000000
+ author whatever <whatever@example.com> 1234 -0000
+ committer whatever <whatever@example.com> 1234 -0000
+
+ broken commit
+ EOF
+ broken="$(git hash-object -w -t commit --literally broken)" &&
+ git commit-tree -p "$broken" -m "good commit" "$empty" >good &&
+ test_must_fail git commit-graph write --stdin-commits \
+ <good 2>test_err &&
+ test_i18ngrep "unable to parse commit" test_err
+ )
+'
+
+test_expect_success 'corrupt commit-graph write (missing tree)' '
+ rm -rf repo &&
+ git init repo &&
+ (
+ cd repo &&
+ tree="$(git mktree </dev/null)" &&
+ cat >broken <<-EOF &&
+ parent 0000000000000000000000000000000000000000
+ author whatever <whatever@example.com> 1234 -0000
+ committer whatever <whatever@example.com> 1234 -0000
+
+ broken commit
+ EOF
+ broken="$(git hash-object -w -t commit --literally broken)" &&
+ git commit-tree -p "$broken" -m "good" "$tree" >good &&
+ test_must_fail git commit-graph write --stdin-commits \
+ <good 2>test_err &&
+ test_i18ngrep "unable to get tree for" test_err
+ )
+'
+
test_done
diff --git a/t/t5324-split-commit-graph.sh b/t/t5324-split-commit-graph.sh
index 99f4ef4..115aabd 100755
--- a/t/t5324-split-commit-graph.sh
+++ b/t/t5324-split-commit-graph.sh
@@ -8,6 +8,7 @@ GIT_TEST_COMMIT_GRAPH=0
test_expect_success 'setup repo' '
git init &&
git config core.commitGraph true &&
+ git config gc.writeCommitGraph false &&
infodir=".git/objects/info" &&
graphdir="$infodir/commit-graphs" &&
test_oid_init
@@ -319,7 +320,7 @@ test_expect_success 'add octopus merge' '
git merge commits/3 commits/4 &&
git branch merge/octopus &&
git commit-graph write --reachable --split &&
- git commit-graph verify 2>err &&
+ git commit-graph verify --progress 2>err &&
test_line_count = 3 err &&
test_i18ngrep ! warning err &&
test_line_count = 3 $graphdir/commit-graph-chain
@@ -334,6 +335,7 @@ test_expect_success 'split across alternate where alternate is not split' '
git clone --no-hardlinks . alt-split &&
(
cd alt-split &&
+ rm -f .git/objects/info/commit-graph &&
echo "$(pwd)"/../.git/objects >.git/objects/info/alternates &&
test_commit 18 &&
git commit-graph write --reachable --split &&
diff --git a/t/t5500-fetch-pack.sh b/t/t5500-fetch-pack.sh
index 1c71c0e..6b97923 100755
--- a/t/t5500-fetch-pack.sh
+++ b/t/t5500-fetch-pack.sh
@@ -708,13 +708,22 @@ do
# file with scheme
for p in file
do
- test_expect_success "fetch-pack --diag-url $p://$h/$r" '
+ test_expect_success !MINGW "fetch-pack --diag-url $p://$h/$r" '
check_prot_path $p://$h/$r $p "/$r"
'
+ test_expect_success MINGW "fetch-pack --diag-url $p://$h/$r" '
+ check_prot_path $p://$h/$r $p "//$h/$r"
+ '
+ test_expect_success MINGW "fetch-pack --diag-url $p:///$r" '
+ check_prot_path $p:///$r $p "/$r"
+ '
# No "/~" -> "~" conversion for file
- test_expect_success "fetch-pack --diag-url $p://$h/~$r" '
+ test_expect_success !MINGW "fetch-pack --diag-url $p://$h/~$r" '
check_prot_path $p://$h/~$r $p "/~$r"
'
+ test_expect_success MINGW "fetch-pack --diag-url $p://$h/~$r" '
+ check_prot_path $p://$h/~$r $p "//$h/~$r"
+ '
done
# file without scheme
for h in nohost nohost:12 [::1] [::1]:23 [ [:aa
@@ -783,6 +792,44 @@ test_expect_success 'clone shallow since selects no commits' '
)
'
+# A few subtle things about the request in this test:
+#
+# - the server must have commit-graphs present and enabled
+#
+# - the history is such that our want/have share a common ancestor ("base"
+# here)
+#
+# - we send only a single have, which is fewer than a normal client would
+# send. This ensures that we don't parse "base" up front with
+# parse_object(), but rather traverse to it as a parent while deciding if we
+# can stop the "have" negotiation, and call parse_commit(). The former
+# sees the actual object data and so always loads the three oid, whereas the
+# latter will try to load it lazily.
+#
+# - we must use protocol v2, because it handles the "have" negotiation before
+# processing the shallow directives
+#
+test_expect_success 'shallow since with commit graph and already-seen commit' '
+ test_create_repo shallow-since-graph &&
+ (
+ cd shallow-since-graph &&
+ test_commit base &&
+ test_commit master &&
+ git checkout -b other HEAD^ &&
+ test_commit other &&
+ git commit-graph write --reachable &&
+ git config core.commitGraph true &&
+
+ GIT_PROTOCOL=version=2 git upload-pack . <<-EOF >/dev/null
+ 0012command=fetch
+ 00010013deepen-since 1
+ 0032want $(git rev-parse other)
+ 0032have $(git rev-parse master)
+ 0000
+ EOF
+ )
+'
+
test_expect_success 'shallow clone exclude tag two' '
test_create_repo shallow-exclude &&
(
@@ -920,4 +967,7 @@ test_expect_success 'fetch with --filter=blob:limit=0 and HTTP' '
fetch_filter_blob_limit_zero "$HTTPD_DOCUMENT_ROOT_PATH/server" "$HTTPD_URL/smart/server"
'
+# DO NOT add non-httpd-specific tests here, because the last part of this
+# test script is only executed when httpd is available and enabled.
+
test_done
diff --git a/t/t5510-fetch.sh b/t/t5510-fetch.sh
index 139f710..4b60282 100755
--- a/t/t5510-fetch.sh
+++ b/t/t5510-fetch.sh
@@ -570,6 +570,35 @@ test_expect_success 'LHS of refspec follows ref disambiguation rules' '
)
'
+test_expect_success 'fetch.writeCommitGraph' '
+ git clone three write &&
+ (
+ cd three &&
+ test_commit new
+ ) &&
+ (
+ cd write &&
+ git -c fetch.writeCommitGraph fetch origin &&
+ test_path_is_file .git/objects/info/commit-graphs/commit-graph-chain
+ )
+'
+
+test_expect_success 'fetch.writeCommitGraph with submodules' '
+ git clone dups super &&
+ (
+ cd super &&
+ git submodule add "file://$TRASH_DIRECTORY/three" &&
+ git commit -m "add submodule"
+ ) &&
+ git clone "super" super-clone &&
+ (
+ cd super-clone &&
+ rm -rf .git/objects/info &&
+ git -c fetch.writeCommitGraph=true fetch origin &&
+ test_path_is_file .git/objects/info/commit-graphs/commit-graph-chain
+ )
+'
+
# configured prune tests
set_config_tristate () {
@@ -902,6 +931,29 @@ test_expect_success C_LOCALE_OUTPUT 'fetch compact output' '
test_cmp expect actual
'
+test_expect_success '--no-show-forced-updates' '
+ mkdir forced-updates &&
+ (
+ cd forced-updates &&
+ git init &&
+ test_commit 1 &&
+ test_commit 2
+ ) &&
+ git clone forced-updates forced-update-clone &&
+ git clone forced-updates no-forced-update-clone &&
+ git -C forced-updates reset --hard HEAD~1 &&
+ (
+ cd forced-update-clone &&
+ git fetch --show-forced-updates origin 2>output &&
+ test_i18ngrep "(forced update)" output
+ ) &&
+ (
+ cd no-forced-update-clone &&
+ git fetch --no-show-forced-updates origin 2>output &&
+ test_i18ngrep ! "(forced update)" output
+ )
+'
+
setup_negotiation_tip () {
SERVER="$1"
URL="$2"
@@ -978,27 +1030,7 @@ test_expect_success '--negotiation-tip limits "have" lines sent with HTTP protoc
check_negotiation_tip
'
-test_expect_success '--no-show-forced-updates' '
- mkdir forced-updates &&
- (
- cd forced-updates &&
- git init &&
- test_commit 1 &&
- test_commit 2
- ) &&
- git clone forced-updates forced-update-clone &&
- git clone forced-updates no-forced-update-clone &&
- git -C forced-updates reset --hard HEAD~1 &&
- (
- cd forced-update-clone &&
- git fetch --show-forced-updates origin 2>output &&
- test_i18ngrep "(forced update)" output
- ) &&
- (
- cd no-forced-update-clone &&
- git fetch --no-show-forced-updates origin 2>output &&
- ! test_i18ngrep "(forced update)" output
- )
-'
+# DO NOT add non-httpd-specific tests here, because the last part of this
+# test script is only executed when httpd is available and enabled.
test_done
diff --git a/t/t5514-fetch-multiple.sh b/t/t5514-fetch-multiple.sh
index 5426d4b..de8e2f1 100755
--- a/t/t5514-fetch-multiple.sh
+++ b/t/t5514-fetch-multiple.sh
@@ -183,4 +183,15 @@ test_expect_success 'git fetch --all --tags' '
test_cmp expect test8/output
'
+test_expect_success 'parallel' '
+ git remote add one ./bogus1 &&
+ git remote add two ./bogus2 &&
+
+ test_must_fail env GIT_TRACE="$PWD/trace" \
+ git fetch --jobs=2 --multiple one two 2>err &&
+ grep "preparing to run up to 2 tasks" trace &&
+ test_i18ngrep "could not fetch .one.*128" err &&
+ test_i18ngrep "could not fetch .two.*128" err
+'
+
test_done
diff --git a/t/t5515-fetch-merge-logic.sh b/t/t5515-fetch-merge-logic.sh
index e55d847..961eb35 100755
--- a/t/t5515-fetch-merge-logic.sh
+++ b/t/t5515-fetch-merge-logic.sh
@@ -12,9 +12,6 @@ GIT_TEST_PROTOCOL_VERSION=
. ./test-lib.sh
-LF='
-'
-
test_expect_success setup '
GIT_AUTHOR_DATE="2006-06-26 00:00:00 +0000" &&
GIT_COMMITTER_DATE="2006-06-26 00:00:00 +0000" &&
diff --git a/t/t5517-push-mirror.sh b/t/t5517-push-mirror.sh
index c05a661..e4edd56 100755
--- a/t/t5517-push-mirror.sh
+++ b/t/t5517-push-mirror.sh
@@ -265,4 +265,14 @@ test_expect_success 'remote.foo.mirror=no has no effect' '
'
+test_expect_success 'push to mirrored repository with refspec fails' '
+ mk_repo_pair &&
+ (
+ cd master &&
+ echo one >foo && git add foo && git commit -m one &&
+ git config --add remote.up.mirror true &&
+ test_must_fail git push up master
+ )
+'
+
test_done
diff --git a/t/t5537-fetch-shallow.sh b/t/t5537-fetch-shallow.sh
index 66f0b64..97a6772 100755
--- a/t/t5537-fetch-shallow.sh
+++ b/t/t5537-fetch-shallow.sh
@@ -255,4 +255,7 @@ test_expect_success 'shallow fetches check connectivity before writing shallow f
git -C client fsck
'
+# DO NOT add non-httpd-specific tests here, because the last part of this
+# test script is only executed when httpd is available and enabled.
+
test_done
diff --git a/t/t5541-http-push-smart.sh b/t/t5541-http-push-smart.sh
index b86ddb6..4c97078 100755
--- a/t/t5541-http-push-smart.sh
+++ b/t/t5541-http-push-smart.sh
@@ -184,11 +184,12 @@ test_expect_success 'push --atomic also prevents branch creation, reports collat
test_config -C "$d" http.receivepack true &&
up="$HTTPD_URL"/smart/atomic-branches.git &&
- # Tell "$up" about two branches for now
+ # Tell "$up" about three branches for now
test_commit atomic1 &&
test_commit atomic2 &&
git branch collateral &&
- git push "$up" master collateral &&
+ git branch other &&
+ git push "$up" master collateral other &&
# collateral is a valid push, but should be failed by atomic push
git checkout collateral &&
@@ -226,6 +227,41 @@ test_expect_success 'push --atomic also prevents branch creation, reports collat
grep "^ ! .*rejected.* collateral -> collateral .*atomic push failed" output
'
+test_expect_success 'push --atomic fails on server-side errors' '
+ # Use previously set up repository
+ d=$HTTPD_DOCUMENT_ROOT_PATH/atomic-branches.git &&
+ test_config -C "$d" http.receivepack true &&
+ up="$HTTPD_URL"/smart/atomic-branches.git &&
+
+ # break ref updates for other on the remote site
+ mkdir "$d/refs/heads/other.lock" &&
+
+ # add the new commit to other
+ git branch -f other collateral &&
+
+ # --atomic should cause entire push to be rejected
+ test_must_fail git push --atomic "$up" atomic other 2>output &&
+
+ # the new branch should not have been created upstream
+ test_must_fail git -C "$d" show-ref --verify refs/heads/atomic &&
+
+ # upstream should still reflect atomic2, the last thing we pushed
+ # successfully
+ git rev-parse atomic2 >expected &&
+ # ...to other.
+ git -C "$d" rev-parse refs/heads/other >actual &&
+ test_cmp expected actual &&
+
+ # the new branch should not have been created upstream
+ test_must_fail git -C "$d" show-ref --verify refs/heads/atomic &&
+
+ # the failed refs should be indicated to the user
+ grep "^ ! .*rejected.* other -> other .*atomic transaction failed" output &&
+
+ # the collateral failure refs should be indicated to the user
+ grep "^ ! .*rejected.* atomic -> atomic .*atomic transaction failed" output
+'
+
test_expect_success 'push --all can push to empty repo' '
d=$HTTPD_DOCUMENT_ROOT_PATH/empty-all.git &&
git init --bare "$d" &&
@@ -262,7 +298,7 @@ test_expect_success TTY 'push shows progress when stderr is a tty' '
cd "$ROOT_PATH"/test_repo_clone &&
test_commit noisy &&
test_terminal git push >output 2>&1 &&
- test_i18ngrep "Writing objects" output
+ test_i18ngrep "^Writing objects" output
'
test_expect_success TTY 'push --quiet silences status and progress' '
@@ -277,7 +313,7 @@ test_expect_success TTY 'push --no-progress silences progress but not status' '
test_commit no-progress &&
test_terminal git push --no-progress >output 2>&1 &&
test_i18ngrep "^To http" output &&
- test_i18ngrep ! "Writing objects" output
+ test_i18ngrep ! "^Writing objects" output
'
test_expect_success 'push --progress shows progress to non-tty' '
@@ -285,7 +321,7 @@ test_expect_success 'push --progress shows progress to non-tty' '
test_commit progress &&
git push --progress >output 2>&1 &&
test_i18ngrep "^To http" output &&
- test_i18ngrep "Writing objects" output
+ test_i18ngrep "^Writing objects" output
'
test_expect_success 'http push gives sane defaults to reflog' '
diff --git a/t/t5545-push-options.sh b/t/t5545-push-options.sh
index 6d1d59c..04b34c4 100755
--- a/t/t5545-push-options.sh
+++ b/t/t5545-push-options.sh
@@ -278,4 +278,7 @@ test_expect_success 'push options keep quoted characters intact (http)' '
test_cmp expect "$HTTPD_DOCUMENT_ROOT_PATH"/upstream.git/hooks/pre-receive.push_options
'
+# DO NOT add non-httpd-specific tests here, because the last part of this
+# test script is only executed when httpd is available and enabled.
+
test_done
diff --git a/t/t5552-skipping-fetch-negotiator.sh b/t/t5552-skipping-fetch-negotiator.sh
index 8a14be5..f70cbcc 100755
--- a/t/t5552-skipping-fetch-negotiator.sh
+++ b/t/t5552-skipping-fetch-negotiator.sh
@@ -60,29 +60,6 @@ test_expect_success 'commits with no parents are sent regardless of skip distanc
have_not_sent c6 c4 c3
'
-test_expect_success 'unknown fetch.negotiationAlgorithm values error out' '
- rm -rf server client trace &&
- git init server &&
- test_commit -C server to_fetch &&
-
- git init client &&
- test_commit -C client on_client &&
- git -C client checkout on_client &&
-
- test_config -C client fetch.negotiationAlgorithm invalid &&
- test_must_fail git -C client fetch "$(pwd)/server" 2>err &&
- test_i18ngrep "unknown fetch negotiation algorithm" err &&
-
- # Explicit "default" value
- test_config -C client fetch.negotiationAlgorithm default &&
- git -C client -c fetch.negotiationAlgorithm=default fetch "$(pwd)/server" &&
-
- # Implementation detail: If there is nothing to fetch, we will not error out
- test_config -C client fetch.negotiationAlgorithm invalid &&
- git -C client fetch "$(pwd)/server" 2>err &&
- test_i18ngrep ! "unknown fetch negotiation algorithm" err
-'
-
test_expect_success 'when two skips collide, favor the larger one' '
rm -rf server client trace &&
git init server &&
diff --git a/t/t5553-set-upstream.sh b/t/t5553-set-upstream.sh
new file mode 100755
index 0000000..81975ad
--- /dev/null
+++ b/t/t5553-set-upstream.sh
@@ -0,0 +1,178 @@
+#!/bin/sh
+
+test_description='"git fetch/pull --set-upstream" basic tests.'
+. ./test-lib.sh
+
+check_config () {
+ printf "%s\n" "$2" "$3" >"expect.$1" &&
+ {
+ git config "branch.$1.remote" && git config "branch.$1.merge"
+ } >"actual.$1" &&
+ test_cmp "expect.$1" "actual.$1"
+}
+
+check_config_missing () {
+ test_expect_code 1 git config "branch.$1.remote" &&
+ test_expect_code 1 git config "branch.$1.merge"
+}
+
+clear_config () {
+ for branch in "$@"; do
+ test_might_fail git config --unset-all "branch.$branch.remote"
+ test_might_fail git config --unset-all "branch.$branch.merge"
+ done
+}
+
+ensure_fresh_upstream () {
+ rm -rf parent && git init --bare parent
+}
+
+test_expect_success 'setup bare parent fetch' '
+ ensure_fresh_upstream &&
+ git remote add upstream parent
+'
+
+test_expect_success 'setup commit on master and other fetch' '
+ test_commit one &&
+ git push upstream master &&
+ git checkout -b other &&
+ test_commit two &&
+ git push upstream other
+'
+
+# tests for fetch --set-upstream
+
+test_expect_success 'fetch --set-upstream does not set upstream w/o branch' '
+ clear_config master other &&
+ git checkout master &&
+ git fetch --set-upstream upstream &&
+ check_config_missing master &&
+ check_config_missing other
+'
+
+test_expect_success 'fetch --set-upstream upstream master sets branch master but not other' '
+ clear_config master other &&
+ git fetch --set-upstream upstream master &&
+ check_config master upstream refs/heads/master &&
+ check_config_missing other
+'
+
+test_expect_success 'fetch --set-upstream upstream other sets branch other' '
+ clear_config master other &&
+ git fetch --set-upstream upstream other &&
+ check_config master upstream refs/heads/other &&
+ check_config_missing other
+'
+
+test_expect_success 'fetch --set-upstream master:other does not set the branch other2' '
+ clear_config other2 &&
+ git fetch --set-upstream upstream master:other2 &&
+ check_config_missing other2
+'
+
+test_expect_success 'fetch --set-upstream http://nosuchdomain.example.com fails with invalid url' '
+ # master explicitly not cleared, we check that it is not touched from previous value
+ clear_config other other2 &&
+ test_must_fail git fetch --set-upstream http://nosuchdomain.example.com &&
+ check_config master upstream refs/heads/other &&
+ check_config_missing other &&
+ check_config_missing other2
+'
+
+test_expect_success 'fetch --set-upstream with valid URL sets upstream to URL' '
+ clear_config other other2 &&
+ url="file://'"$PWD"'" &&
+ git fetch --set-upstream "$url" &&
+ check_config master "$url" HEAD &&
+ check_config_missing other &&
+ check_config_missing other2
+'
+
+# tests for pull --set-upstream
+
+test_expect_success 'setup bare parent pull' '
+ git remote rm upstream &&
+ ensure_fresh_upstream &&
+ git remote add upstream parent
+'
+
+test_expect_success 'setup commit on master and other pull' '
+ test_commit three &&
+ git push --tags upstream master &&
+ test_commit four &&
+ git push upstream other
+'
+
+test_expect_success 'pull --set-upstream upstream master sets branch master but not other' '
+ clear_config master other &&
+ git pull --set-upstream upstream master &&
+ check_config master upstream refs/heads/master &&
+ check_config_missing other
+'
+
+test_expect_success 'pull --set-upstream master:other2 does not set the branch other2' '
+ clear_config other2 &&
+ git pull --set-upstream upstream master:other2 &&
+ check_config_missing other2
+'
+
+test_expect_success 'pull --set-upstream upstream other sets branch master' '
+ clear_config master other &&
+ git pull --set-upstream upstream other &&
+ check_config master upstream refs/heads/other &&
+ check_config_missing other
+'
+
+test_expect_success 'pull --set-upstream upstream tag does not set the tag' '
+ clear_config three &&
+ git pull --tags --set-upstream upstream three &&
+ check_config_missing three
+'
+
+test_expect_success 'pull --set-upstream http://nosuchdomain.example.com fails with invalid url' '
+ # master explicitly not cleared, we check that it is not touched from previous value
+ clear_config other other2 three &&
+ test_must_fail git pull --set-upstream http://nosuchdomain.example.com &&
+ check_config master upstream refs/heads/other &&
+ check_config_missing other &&
+ check_config_missing other2 &&
+ check_config_missing three
+'
+
+test_expect_success 'pull --set-upstream upstream HEAD sets branch HEAD' '
+ clear_config master other &&
+ git pull --set-upstream upstream HEAD &&
+ check_config master upstream HEAD &&
+ git checkout other &&
+ git pull --set-upstream upstream HEAD &&
+ check_config other upstream HEAD
+'
+
+test_expect_success 'pull --set-upstream upstream with more than one branch does nothing' '
+ clear_config master three &&
+ git pull --set-upstream upstream master three &&
+ check_config_missing master &&
+ check_config_missing three
+'
+
+test_expect_success 'pull --set-upstream with valid URL sets upstream to URL' '
+ clear_config master other other2 &&
+ git checkout master &&
+ url="file://'"$PWD"'" &&
+ git pull --set-upstream "$url" &&
+ check_config master "$url" HEAD &&
+ check_config_missing other &&
+ check_config_missing other2
+'
+
+test_expect_success 'pull --set-upstream with valid URL and branch sets branch' '
+ clear_config master other other2 &&
+ git checkout master &&
+ url="file://'"$PWD"'" &&
+ git pull --set-upstream "$url" master &&
+ check_config master "$url" refs/heads/master &&
+ check_config_missing other &&
+ check_config_missing other2
+'
+
+test_done
diff --git a/t/t5601-clone.sh b/t/t5601-clone.sh
index 37d7680..ad8c411 100755
--- a/t/t5601-clone.sh
+++ b/t/t5601-clone.sh
@@ -434,7 +434,6 @@ test_expect_success 'double quoted plink.exe in GIT_SSH_COMMAND' '
expect_ssh "-v -P 123" myhost src
'
-SQ="'"
test_expect_success 'single quoted plink.exe in GIT_SSH_COMMAND' '
copy_ssh_wrapper_as "$TRASH_DIRECTORY/plink.exe" &&
GIT_SSH_COMMAND="$SQ$TRASH_DIRECTORY/plink.exe$SQ -v" \
@@ -654,7 +653,8 @@ partial_clone () {
git -C client fsck &&
# Ensure that unneeded blobs are not inadvertently fetched.
- test_config -C client extensions.partialclone "not a remote" &&
+ test_config -C client remote.origin.promisor "false" &&
+ git -C client config --unset remote.origin.partialclonefilter &&
test_must_fail git -C client cat-file -e "$HASH1" &&
# But this blob was fetched, because clone performs an initial checkout
@@ -739,4 +739,7 @@ test_expect_success 'partial clone using HTTP' '
partial_clone "$HTTPD_DOCUMENT_ROOT_PATH/server" "$HTTPD_URL/smart/server"
'
+# DO NOT add non-httpd-specific tests here, because the last part of this
+# test script is only executed when httpd is available and enabled.
+
test_done
diff --git a/t/t5607-clone-bundle.sh b/t/t5607-clone-bundle.sh
index 2a0fb15..b7a3fdf 100755
--- a/t/t5607-clone-bundle.sh
+++ b/t/t5607-clone-bundle.sh
@@ -83,4 +83,15 @@ test_expect_success 'failed bundle creation does not leave cruft' '
test_path_is_missing fail.bundle.lock
'
+test_expect_success 'fetch SHA-1 from bundle' '
+ test_create_repo foo &&
+ test_commit -C foo x &&
+ git -C foo bundle create tip.bundle -1 master &&
+ git -C foo rev-parse HEAD >hash &&
+
+ # Exercise to ensure that fetching a SHA-1 from a bundle works with no
+ # errors
+ git fetch --no-tags foo/tip.bundle "$(cat hash)"
+'
+
test_done
diff --git a/t/t5616-partial-clone.sh b/t/t5616-partial-clone.sh
index b91ef54..eaa33a8 100755
--- a/t/t5616-partial-clone.sh
+++ b/t/t5616-partial-clone.sh
@@ -42,8 +42,16 @@ test_expect_success 'do partial clone 1' '
test_cmp expect_1.oids observed.oids &&
test "$(git -C pc1 config --local core.repositoryformatversion)" = "1" &&
- test "$(git -C pc1 config --local extensions.partialclone)" = "origin" &&
- test "$(git -C pc1 config --local core.partialclonefilter)" = "blob:none"
+ test "$(git -C pc1 config --local remote.origin.promisor)" = "true" &&
+ test "$(git -C pc1 config --local remote.origin.partialclonefilter)" = "blob:none"
+'
+
+test_expect_success 'verify that .promisor file contains refs fetched' '
+ ls pc1/.git/objects/pack/pack-*.promisor >promisorlist &&
+ test_line_count = 1 promisorlist &&
+ git -C srv.bare rev-list HEAD >headhash &&
+ grep "$(cat headhash) HEAD" $(cat promisorlist) &&
+ grep "$(cat headhash) refs/heads/master" $(cat promisorlist)
'
# checkout master to force dynamic object fetch of blobs at HEAD.
@@ -208,6 +216,25 @@ test_expect_success 'use fsck before and after manually fetching a missing subtr
test_cmp unique_types.expected unique_types.observed
'
+test_expect_success 'implicitly construct combine: filter with repeated flags' '
+ GIT_TRACE=$(pwd)/trace git clone --bare \
+ --filter=blob:none --filter=tree:1 \
+ "file://$(pwd)/srv.bare" pc2 &&
+ grep "trace:.* git pack-objects .*--filter=combine:blob:none+tree:1" \
+ trace &&
+ git -C pc2 rev-list --objects --missing=allow-any HEAD >objects &&
+
+ # We should have gotten some root trees.
+ grep " $" objects &&
+ # Should not have gotten any non-root trees or blobs.
+ ! grep " ." objects &&
+
+ xargs -n 1 git -C pc2 cat-file -t <objects >types &&
+ sort -u types >unique_types.actual &&
+ test_write_lines commit tree >unique_types.expected &&
+ test_cmp unique_types.expected unique_types.actual
+'
+
test_expect_success 'partial clone fetches blobs pointed to by refs even if normally filtered out' '
rm -rf src dst &&
git init src &&
@@ -241,6 +268,42 @@ test_expect_success 'fetch what is specified on CLI even if already promised' '
! grep "?$(cat blob)" missing_after
'
+test_expect_success 'setup src repo for sparse filter' '
+ git init sparse-src &&
+ git -C sparse-src config --local uploadpack.allowfilter 1 &&
+ git -C sparse-src config --local uploadpack.allowanysha1inwant 1 &&
+ test_commit -C sparse-src one &&
+ test_commit -C sparse-src two &&
+ echo /one.t >sparse-src/only-one &&
+ git -C sparse-src add . &&
+ git -C sparse-src commit -m "add sparse checkout files"
+'
+
+test_expect_success 'partial clone with sparse filter succeeds' '
+ rm -rf dst.git &&
+ git clone --no-local --bare \
+ --filter=sparse:oid=master:only-one \
+ sparse-src dst.git &&
+ (
+ cd dst.git &&
+ git rev-list --objects --missing=print HEAD >out &&
+ grep "^$(git rev-parse HEAD:one.t)" out &&
+ grep "^?$(git rev-parse HEAD:two.t)" out
+ )
+'
+
+test_expect_success 'partial clone with unresolvable sparse filter fails cleanly' '
+ rm -rf dst.git &&
+ test_must_fail git clone --no-local --bare \
+ --filter=sparse:oid=master:no-such-name \
+ sparse-src dst.git 2>err &&
+ test_i18ngrep "unable to access sparse blob in .master:no-such-name" err &&
+ test_must_fail git clone --no-local --bare \
+ --filter=sparse:oid=master \
+ sparse-src dst.git 2>err &&
+ test_i18ngrep "unable to parse sparse filter data in" err
+'
+
. "$TEST_DIRECTORY"/lib-httpd.sh
start_httpd
@@ -417,4 +480,7 @@ test_expect_success 'tolerate server sending REF_DELTA against missing promisor
! test -e "$HTTPD_ROOT_PATH/one-time-sed"
'
+# DO NOT add non-httpd-specific tests here, because the last part of this
+# test script is only executed when httpd is available and enabled.
+
test_done
diff --git a/t/t5700-protocol-v1.sh b/t/t5700-protocol-v1.sh
index 7c9511c..2571eb9 100755
--- a/t/t5700-protocol-v1.sh
+++ b/t/t5700-protocol-v1.sh
@@ -292,4 +292,7 @@ test_expect_success 'push with http:// using protocol v1' '
grep "git< version 1" log
'
+# DO NOT add non-httpd-specific tests here, because the last part of this
+# test script is only executed when httpd is available and enabled.
+
test_done
diff --git a/t/t5702-protocol-v2.sh b/t/t5702-protocol-v2.sh
index 011b81d..ae9175c 100755
--- a/t/t5702-protocol-v2.sh
+++ b/t/t5702-protocol-v2.sh
@@ -631,6 +631,19 @@ test_expect_success 'fetch with http:// using protocol v2' '
grep "git< version 2" log
'
+test_expect_success 'fetch with http:// by hash without tag following with protocol v2 does not list refs' '
+ test_when_finished "rm -f log" &&
+
+ test_commit -C "$HTTPD_DOCUMENT_ROOT_PATH/http_parent" two_a &&
+ git -C "$HTTPD_DOCUMENT_ROOT_PATH/http_parent" rev-parse two_a >two_a_hash &&
+
+ GIT_TRACE_PACKET="$(pwd)/log" git -C http_child -c protocol.version=2 \
+ fetch --no-tags origin $(cat two_a_hash) &&
+
+ grep "fetch< version 2" log &&
+ ! grep "fetch> command=ls-refs" log
+'
+
test_expect_success 'fetch from namespaced repo respects namespaces' '
test_when_finished "rm -f log" &&
@@ -723,4 +736,7 @@ test_expect_success 'when server does not send "ready", expect FLUSH' '
test_i18ngrep "expected no other sections to be sent after no .ready." err
'
+# DO NOT add non-httpd-specific tests here, because the last part of this
+# test script is only executed when httpd is available and enabled.
+
test_done
diff --git a/t/t5703-upload-pack-ref-in-want.sh b/t/t5703-upload-pack-ref-in-want.sh
index de4b610..3a2c143 100755
--- a/t/t5703-upload-pack-ref-in-want.sh
+++ b/t/t5703-upload-pack-ref-in-want.sh
@@ -157,106 +157,6 @@ test_expect_success 'want-ref with ref we already have commit for' '
check_output
'
-. "$TEST_DIRECTORY"/lib-httpd.sh
-start_httpd
-
-REPO="$HTTPD_DOCUMENT_ROOT_PATH/repo"
-LOCAL_PRISTINE="$(pwd)/local_pristine"
-
-test_expect_success 'setup repos for change-while-negotiating test' '
- (
- git init "$REPO" &&
- cd "$REPO" &&
- >.git/git-daemon-export-ok &&
- test_commit m1 &&
- git tag -d m1 &&
-
- # Local repo with many commits (so that negotiation will take
- # more than 1 request/response pair)
- git clone "http://127.0.0.1:$LIB_HTTPD_PORT/smart/repo" "$LOCAL_PRISTINE" &&
- cd "$LOCAL_PRISTINE" &&
- git checkout -b side &&
- test_commit_bulk --id=s 33 &&
-
- # Add novel commits to upstream
- git checkout master &&
- cd "$REPO" &&
- test_commit m2 &&
- test_commit m3 &&
- git tag -d m2 m3
- ) &&
- git -C "$LOCAL_PRISTINE" remote set-url origin "http://127.0.0.1:$LIB_HTTPD_PORT/one_time_sed/repo" &&
- git -C "$LOCAL_PRISTINE" config protocol.version 2
-'
-
-inconsistency () {
- # Simulate that the server initially reports $2 as the ref
- # corresponding to $1, and after that, $1 as the ref corresponding to
- # $1. This corresponds to the real-life situation where the server's
- # repository appears to change during negotiation, for example, when
- # different servers in a load-balancing arrangement serve (stateless)
- # RPCs during a single negotiation.
- printf "s/%s/%s/" \
- $(git -C "$REPO" rev-parse $1 | tr -d "\n") \
- $(git -C "$REPO" rev-parse $2 | tr -d "\n") \
- >"$HTTPD_ROOT_PATH/one-time-sed"
-}
-
-test_expect_success 'server is initially ahead - no ref in want' '
- git -C "$REPO" config uploadpack.allowRefInWant false &&
- rm -rf local &&
- cp -r "$LOCAL_PRISTINE" local &&
- inconsistency master 1234567890123456789012345678901234567890 &&
- test_must_fail git -C local fetch 2>err &&
- test_i18ngrep "fatal: remote error: upload-pack: not our ref" err
-'
-
-test_expect_success 'server is initially ahead - ref in want' '
- git -C "$REPO" config uploadpack.allowRefInWant true &&
- rm -rf local &&
- cp -r "$LOCAL_PRISTINE" local &&
- inconsistency master 1234567890123456789012345678901234567890 &&
- git -C local fetch &&
-
- git -C "$REPO" rev-parse --verify master >expected &&
- git -C local rev-parse --verify refs/remotes/origin/master >actual &&
- test_cmp expected actual
-'
-
-test_expect_success 'server is initially behind - no ref in want' '
- git -C "$REPO" config uploadpack.allowRefInWant false &&
- rm -rf local &&
- cp -r "$LOCAL_PRISTINE" local &&
- inconsistency master "master^" &&
- git -C local fetch &&
-
- git -C "$REPO" rev-parse --verify "master^" >expected &&
- git -C local rev-parse --verify refs/remotes/origin/master >actual &&
- test_cmp expected actual
-'
-
-test_expect_success 'server is initially behind - ref in want' '
- git -C "$REPO" config uploadpack.allowRefInWant true &&
- rm -rf local &&
- cp -r "$LOCAL_PRISTINE" local &&
- inconsistency master "master^" &&
- git -C local fetch &&
-
- git -C "$REPO" rev-parse --verify "master" >expected &&
- git -C local rev-parse --verify refs/remotes/origin/master >actual &&
- test_cmp expected actual
-'
-
-test_expect_success 'server loses a ref - ref in want' '
- git -C "$REPO" config uploadpack.allowRefInWant true &&
- rm -rf local &&
- cp -r "$LOCAL_PRISTINE" local &&
- echo "s/master/raster/" >"$HTTPD_ROOT_PATH/one-time-sed" &&
- test_must_fail git -C local fetch 2>err &&
-
- test_i18ngrep "fatal: remote error: unknown ref refs/heads/raster" err
-'
-
REPO="$(pwd)/repo"
LOCAL_PRISTINE="$(pwd)/local_pristine"
@@ -372,4 +272,108 @@ test_expect_success 'fetching with wildcard that matches multiple refs' '
grep "want-ref refs/heads/o/bar" log
'
+. "$TEST_DIRECTORY"/lib-httpd.sh
+start_httpd
+
+REPO="$HTTPD_DOCUMENT_ROOT_PATH/repo"
+LOCAL_PRISTINE="$(pwd)/local_pristine"
+
+test_expect_success 'setup repos for change-while-negotiating test' '
+ (
+ git init "$REPO" &&
+ cd "$REPO" &&
+ >.git/git-daemon-export-ok &&
+ test_commit m1 &&
+ git tag -d m1 &&
+
+ # Local repo with many commits (so that negotiation will take
+ # more than 1 request/response pair)
+ rm -rf "$LOCAL_PRISTINE" &&
+ git clone "http://127.0.0.1:$LIB_HTTPD_PORT/smart/repo" "$LOCAL_PRISTINE" &&
+ cd "$LOCAL_PRISTINE" &&
+ git checkout -b side &&
+ test_commit_bulk --id=s 33 &&
+
+ # Add novel commits to upstream
+ git checkout master &&
+ cd "$REPO" &&
+ test_commit m2 &&
+ test_commit m3 &&
+ git tag -d m2 m3
+ ) &&
+ git -C "$LOCAL_PRISTINE" remote set-url origin "http://127.0.0.1:$LIB_HTTPD_PORT/one_time_sed/repo" &&
+ git -C "$LOCAL_PRISTINE" config protocol.version 2
+'
+
+inconsistency () {
+ # Simulate that the server initially reports $2 as the ref
+ # corresponding to $1, and after that, $1 as the ref corresponding to
+ # $1. This corresponds to the real-life situation where the server's
+ # repository appears to change during negotiation, for example, when
+ # different servers in a load-balancing arrangement serve (stateless)
+ # RPCs during a single negotiation.
+ printf "s/%s/%s/" \
+ $(git -C "$REPO" rev-parse $1 | tr -d "\n") \
+ $(git -C "$REPO" rev-parse $2 | tr -d "\n") \
+ >"$HTTPD_ROOT_PATH/one-time-sed"
+}
+
+test_expect_success 'server is initially ahead - no ref in want' '
+ git -C "$REPO" config uploadpack.allowRefInWant false &&
+ rm -rf local &&
+ cp -r "$LOCAL_PRISTINE" local &&
+ inconsistency master 1234567890123456789012345678901234567890 &&
+ test_must_fail git -C local fetch 2>err &&
+ test_i18ngrep "fatal: remote error: upload-pack: not our ref" err
+'
+
+test_expect_success 'server is initially ahead - ref in want' '
+ git -C "$REPO" config uploadpack.allowRefInWant true &&
+ rm -rf local &&
+ cp -r "$LOCAL_PRISTINE" local &&
+ inconsistency master 1234567890123456789012345678901234567890 &&
+ git -C local fetch &&
+
+ git -C "$REPO" rev-parse --verify master >expected &&
+ git -C local rev-parse --verify refs/remotes/origin/master >actual &&
+ test_cmp expected actual
+'
+
+test_expect_success 'server is initially behind - no ref in want' '
+ git -C "$REPO" config uploadpack.allowRefInWant false &&
+ rm -rf local &&
+ cp -r "$LOCAL_PRISTINE" local &&
+ inconsistency master "master^" &&
+ git -C local fetch &&
+
+ git -C "$REPO" rev-parse --verify "master^" >expected &&
+ git -C local rev-parse --verify refs/remotes/origin/master >actual &&
+ test_cmp expected actual
+'
+
+test_expect_success 'server is initially behind - ref in want' '
+ git -C "$REPO" config uploadpack.allowRefInWant true &&
+ rm -rf local &&
+ cp -r "$LOCAL_PRISTINE" local &&
+ inconsistency master "master^" &&
+ git -C local fetch &&
+
+ git -C "$REPO" rev-parse --verify "master" >expected &&
+ git -C local rev-parse --verify refs/remotes/origin/master >actual &&
+ test_cmp expected actual
+'
+
+test_expect_success 'server loses a ref - ref in want' '
+ git -C "$REPO" config uploadpack.allowRefInWant true &&
+ rm -rf local &&
+ cp -r "$LOCAL_PRISTINE" local &&
+ echo "s/master/raster/" >"$HTTPD_ROOT_PATH/one-time-sed" &&
+ test_must_fail git -C local fetch 2>err &&
+
+ test_i18ngrep "fatal: remote error: unknown ref refs/heads/raster" err
+'
+
+# DO NOT add non-httpd-specific tests here, because the last part of this
+# test script is only executed when httpd is available and enabled.
+
test_done
diff --git a/t/t5801-remote-helpers.sh b/t/t5801-remote-helpers.sh
index 2d6c4a2..121e5c6 100755
--- a/t/t5801-remote-helpers.sh
+++ b/t/t5801-remote-helpers.sh
@@ -247,7 +247,6 @@ clean_mark () {
test_expect_success 'proper failure checks for fetching' '
(cd local &&
test_must_fail env GIT_REMOTE_TESTGIT_FAILURE=1 git fetch 2>error &&
- cat error &&
test_i18ngrep -q "error while running fast-import" error
)
'
diff --git a/t/t6000-rev-list-misc.sh b/t/t6000-rev-list-misc.sh
index 52a9e38..b8cf823 100755
--- a/t/t6000-rev-list-misc.sh
+++ b/t/t6000-rev-list-misc.sh
@@ -140,4 +140,12 @@ test_expect_success '--header shows a NUL after each commit' '
test_cmp expect actual
'
+test_expect_success 'rev-list --end-of-options' '
+ git update-ref refs/heads/--output=yikes HEAD &&
+ git rev-list --end-of-options --output=yikes >actual &&
+ test_path_is_missing yikes &&
+ git rev-list HEAD >expect &&
+ test_cmp expect actual
+'
+
test_done
diff --git a/t/t6006-rev-list-format.sh b/t/t6006-rev-list-format.sh
index da113d9..cfb74d0 100755
--- a/t/t6006-rev-list-format.sh
+++ b/t/t6006-rev-list-format.sh
@@ -501,9 +501,8 @@ test_expect_success 'reflog identity' '
'
test_expect_success 'oneline with empty message' '
- git commit -m "dummy" --allow-empty &&
- git commit -m "dummy" --allow-empty &&
- git filter-branch --msg-filter "sed -e s/dummy//" HEAD^^.. &&
+ git commit --allow-empty --cleanup=verbatim -m "$LF" &&
+ git commit --allow-empty --allow-empty-message &&
git rev-list --oneline HEAD >test.txt &&
test_line_count = 5 test.txt &&
git rev-list --oneline --graph HEAD >testg.txt &&
diff --git a/t/t6011-rev-list-with-bad-commit.sh b/t/t6011-rev-list-with-bad-commit.sh
index 545b461..bad02cf 100755
--- a/t/t6011-rev-list-with-bad-commit.sh
+++ b/t/t6011-rev-list-with-bad-commit.sh
@@ -42,7 +42,7 @@ test_expect_success 'corrupt second commit object' \
'
test_expect_success 'rev-list should fail' '
- test_must_fail env GIT_TEST_COMMIT_GRAPH=0 git rev-list --all > /dev/null
+ test_must_fail env GIT_TEST_COMMIT_GRAPH=0 git -c core.commitGraph=false rev-list --all > /dev/null
'
test_expect_success 'git repack _MUST_ fail' \
diff --git a/t/t6036-recursive-corner-cases.sh b/t/t6036-recursive-corner-cases.sh
index d23b948..7fddcc8 100755
--- a/t/t6036-recursive-corner-cases.sh
+++ b/t/t6036-recursive-corner-cases.sh
@@ -1562,6 +1562,7 @@ test_expect_success 'check nested conflicts' '
cd nested_conflicts &&
git clean -f &&
+ MASTER=$(git rev-parse --short master) &&
git checkout L2^0 &&
# Merge must fail; there is a conflict
@@ -1582,7 +1583,7 @@ test_expect_success 'check nested conflicts' '
git cat-file -p R1:a >theirs &&
test_must_fail git merge-file --diff3 \
-L "Temporary merge branch 1" \
- -L "merged common ancestors" \
+ -L "$MASTER" \
-L "Temporary merge branch 2" \
ours \
base \
@@ -1594,7 +1595,7 @@ test_expect_success 'check nested conflicts' '
git cat-file -p R1:b >theirs &&
test_must_fail git merge-file --diff3 \
-L "Temporary merge branch 1" \
- -L "merged common ancestors" \
+ -L "$MASTER" \
-L "Temporary merge branch 2" \
ours \
base \
@@ -1732,6 +1733,7 @@ test_expect_success 'check virtual merge base with nested conflicts' '
(
cd virtual_merge_base_has_nested_conflicts &&
+ MASTER=$(git rev-parse --short master) &&
git checkout L3^0 &&
# Merge must fail; there is a conflict
@@ -1760,7 +1762,7 @@ test_expect_success 'check virtual merge base with nested conflicts' '
cp left merged-once &&
test_must_fail git merge-file --diff3 \
-L "Temporary merge branch 1" \
- -L "merged common ancestors" \
+ -L "$MASTER" \
-L "Temporary merge branch 2" \
merged-once \
base \
diff --git a/t/t6047-diff3-conflict-markers.sh b/t/t6047-diff3-conflict-markers.sh
new file mode 100755
index 0000000..860542a
--- /dev/null
+++ b/t/t6047-diff3-conflict-markers.sh
@@ -0,0 +1,202 @@
+#!/bin/sh
+
+test_description='recursive merge diff3 style conflict markers'
+
+. ./test-lib.sh
+
+# Setup:
+# L1
+# \
+# ?
+# /
+# R1
+#
+# Where:
+# L1 and R1 both have a file named 'content' but have no common history
+#
+
+test_expect_success 'setup no merge base' '
+ test_create_repo no_merge_base &&
+ (
+ cd no_merge_base &&
+
+ git checkout -b L &&
+ test_commit A content A &&
+
+ git checkout --orphan R &&
+ test_commit B content B
+ )
+'
+
+test_expect_success 'check no merge base' '
+ (
+ cd no_merge_base &&
+
+ git checkout L^0 &&
+
+ test_must_fail git -c merge.conflictstyle=diff3 merge --allow-unrelated-histories -s recursive R^0 &&
+
+ grep "|||||| empty tree" content
+ )
+'
+
+# Setup:
+# L1
+# / \
+# master ?
+# \ /
+# R1
+#
+# Where:
+# L1 and R1 have modified the same file ('content') in conflicting ways
+#
+
+test_expect_success 'setup unique merge base' '
+ test_create_repo unique_merge_base &&
+ (
+ cd unique_merge_base &&
+
+ test_commit base content "1
+2
+3
+4
+5
+" &&
+
+ git branch L &&
+ git branch R &&
+
+ git checkout L &&
+ test_commit L content "1
+2
+3
+4
+5
+7" &&
+
+ git checkout R &&
+ git rm content &&
+ test_commit R renamed "1
+2
+3
+4
+5
+six"
+ )
+'
+
+test_expect_success 'check unique merge base' '
+ (
+ cd unique_merge_base &&
+
+ git checkout L^0 &&
+ MASTER=$(git rev-parse --short master) &&
+
+ test_must_fail git -c merge.conflictstyle=diff3 merge -s recursive R^0 &&
+
+ grep "|||||| $MASTER:content" renamed
+ )
+'
+
+# Setup:
+# L1---L2--L3
+# / \ / \
+# master X1 ?
+# \ / \ /
+# R1---R2--R3
+#
+# Where:
+# commits L1 and R1 have modified the same file in non-conflicting ways
+# X1 is an auto-generated merge-base used when merging L1 and R1
+# commits L2 and R2 are merges of R1 and L1 into L1 and R1, respectively
+# commits L3 and R3 both modify 'content' in conflicting ways
+#
+
+test_expect_success 'setup multiple merge bases' '
+ test_create_repo multiple_merge_bases &&
+ (
+ cd multiple_merge_bases &&
+
+ test_commit initial content "1
+2
+3
+4
+5" &&
+
+ git branch L &&
+ git branch R &&
+
+ # Create L1
+ git checkout L &&
+ test_commit L1 content "0
+1
+2
+3
+4
+5" &&
+
+ # Create R1
+ git checkout R &&
+ test_commit R1 content "1
+2
+3
+4
+5
+6" &&
+
+ # Create L2
+ git checkout L &&
+ git merge R1 &&
+
+ # Create R2
+ git checkout R &&
+ git merge L1 &&
+
+ # Create L3
+ git checkout L &&
+ test_commit L3 content "0
+1
+2
+3
+4
+5
+A" &&
+
+ # Create R3
+ git checkout R &&
+ git rm content &&
+ test_commit R3 renamed "0
+2
+3
+4
+5
+six"
+ )
+'
+
+test_expect_success 'check multiple merge bases' '
+ (
+ cd multiple_merge_bases &&
+
+ git checkout L^0 &&
+
+ test_must_fail git -c merge.conflictstyle=diff3 merge -s recursive R^0 &&
+
+ grep "|||||| merged common ancestors:content" renamed
+ )
+'
+
+test_expect_success 'rebase describes fake ancestor base' '
+ test_create_repo rebase &&
+ (
+ cd rebase &&
+ test_commit base file &&
+ test_commit master file &&
+ git checkout -b side HEAD^ &&
+ test_commit side file &&
+ test_must_fail git -c merge.conflictstyle=diff3 rebase master &&
+ grep "||||||| constructed merge base" file
+ )
+'
+
+test_done
diff --git a/t/t6112-rev-list-filters-objects.sh b/t/t6112-rev-list-filters-objects.sh
index acd7f5a..de0e5a5 100755
--- a/t/t6112-rev-list-filters-objects.sh
+++ b/t/t6112-rev-list-filters-objects.sh
@@ -278,7 +278,19 @@ test_expect_success 'verify skipping tree iteration when not collecting omits' '
test_line_count = 2 actual &&
# Make sure no other trees were considered besides the root.
- ! grep "Skipping contents of tree [^.]" filter_trace
+ ! grep "Skipping contents of tree [^.]" filter_trace &&
+
+ # Try this again with "combine:". If both sub-filters are skipping
+ # trees, the composite filter should also skip trees. This is not
+ # important unless the user does combine:tree:X+tree:Y or another filter
+ # besides "tree:" is implemented in the future which can skip trees.
+ GIT_TRACE=1 git -C r3 rev-list \
+ --objects --filter=combine:tree:1+tree:3 HEAD 2>filter_trace &&
+
+ # Only skip the dir1/ tree, which is shared between the two commits.
+ grep "Skipping contents of tree " filter_trace >actual &&
+ test_write_lines "Skipping contents of tree dir1/..." >expected &&
+ test_cmp expected actual
'
# Test tree:# filters.
@@ -330,6 +342,148 @@ test_expect_success 'verify tree:3 includes everything expected' '
test_line_count = 10 actual
'
+test_expect_success 'combine:... for a simple combination' '
+ git -C r3 rev-list --objects --filter=combine:tree:2+blob:none HEAD \
+ >actual &&
+
+ expect_has HEAD "" &&
+ expect_has HEAD~1 "" &&
+ expect_has HEAD dir1 &&
+
+ # There are also 2 commit objects
+ test_line_count = 5 actual &&
+
+ cp actual expected &&
+
+ # Try again using repeated --filter - this is equivalent to a manual
+ # combine with "combine:...+..."
+ git -C r3 rev-list --objects --filter=combine:tree:2 \
+ --filter=blob:none HEAD >actual &&
+
+ test_cmp expected actual
+'
+
+test_expect_success 'combine:... with URL encoding' '
+ git -C r3 rev-list --objects \
+ --filter=combine:tree%3a2+blob:%6Eon%65 HEAD >actual &&
+
+ expect_has HEAD "" &&
+ expect_has HEAD~1 "" &&
+ expect_has HEAD dir1 &&
+
+ # There are also 2 commit objects
+ test_line_count = 5 actual
+'
+
+expect_invalid_filter_spec () {
+ spec="$1" &&
+ err="$2" &&
+
+ test_must_fail git -C r3 rev-list --objects --filter="$spec" HEAD \
+ >actual 2>actual_stderr &&
+ test_must_be_empty actual &&
+ test_i18ngrep "$err" actual_stderr
+}
+
+test_expect_success 'combine:... while URL-encoding things that should not be' '
+ expect_invalid_filter_spec combine%3Atree:2+blob:none \
+ "invalid filter-spec"
+'
+
+test_expect_success 'combine: with nothing after the :' '
+ expect_invalid_filter_spec combine: "expected something after combine:"
+'
+
+test_expect_success 'parse error in first sub-filter in combine:' '
+ expect_invalid_filter_spec combine:tree:asdf+blob:none \
+ "expected .tree:<depth>."
+'
+
+test_expect_success 'combine:... with non-encoded reserved chars' '
+ expect_invalid_filter_spec combine:tree:2+sparse:@xyz \
+ "must escape char in sub-filter-spec: .@." &&
+ expect_invalid_filter_spec combine:tree:2+sparse:\` \
+ "must escape char in sub-filter-spec: .\`." &&
+ expect_invalid_filter_spec combine:tree:2+sparse:~abc \
+ "must escape char in sub-filter-spec: .\~."
+'
+
+test_expect_success 'validate err msg for "combine:<valid-filter>+"' '
+ expect_invalid_filter_spec combine:tree:2+ "expected .tree:<depth>."
+'
+
+test_expect_success 'combine:... with edge-case hex digits: Ff Aa 0 9' '
+ git -C r3 rev-list --objects --filter="combine:tree:2+bl%6Fb:n%6fne" \
+ HEAD >actual &&
+ test_line_count = 5 actual &&
+ git -C r3 rev-list --objects --filter="combine:tree%3A2+blob%3anone" \
+ HEAD >actual &&
+ test_line_count = 5 actual &&
+ git -C r3 rev-list --objects --filter="combine:tree:%30" HEAD >actual &&
+ test_line_count = 2 actual &&
+ git -C r3 rev-list --objects --filter="combine:tree:%39+blob:none" \
+ HEAD >actual &&
+ test_line_count = 5 actual
+'
+
+test_expect_success 'add sparse pattern blobs whose paths have reserved chars' '
+ cp r3/pattern r3/pattern1+renamed% &&
+ cp r3/pattern "r3/p;at%ter+n" &&
+ cp r3/pattern r3/^~pattern &&
+ git -C r3 add pattern1+renamed% "p;at%ter+n" ^~pattern &&
+ git -C r3 commit -m "add sparse pattern files with reserved chars"
+'
+
+test_expect_success 'combine:... with more than two sub-filters' '
+ git -C r3 rev-list --objects \
+ --filter=combine:tree:3+blob:limit=40+sparse:oid=master:pattern \
+ HEAD >actual &&
+
+ expect_has HEAD "" &&
+ expect_has HEAD~1 "" &&
+ expect_has HEAD~2 "" &&
+ expect_has HEAD dir1 &&
+ expect_has HEAD dir1/sparse1 &&
+ expect_has HEAD dir1/sparse2 &&
+
+ # Should also have 3 commits
+ test_line_count = 9 actual &&
+
+ # Try again, this time making sure the last sub-filter is only
+ # URL-decoded once.
+ cp actual expect &&
+
+ git -C r3 rev-list --objects \
+ --filter=combine:tree:3+blob:limit=40+sparse:oid=master:pattern1%2brenamed%25 \
+ HEAD >actual &&
+ test_cmp expect actual &&
+
+ # Use the same composite filter again, but with a pattern file name that
+ # requires encoding multiple characters, and use implicit filter
+ # combining.
+ test_when_finished "rm -f trace1" &&
+ GIT_TRACE=$(pwd)/trace1 git -C r3 rev-list --objects \
+ --filter=tree:3 --filter=blob:limit=40 \
+ --filter=sparse:oid="master:p;at%ter+n" \
+ HEAD >actual &&
+
+ test_cmp expect actual &&
+ grep "Add to combine filter-spec: sparse:oid=master:p%3bat%25ter%2bn" \
+ trace1 &&
+
+ # Repeat the above test, but this time, the characters to encode are in
+ # the LHS of the combined filter.
+ test_when_finished "rm -f trace2" &&
+ GIT_TRACE=$(pwd)/trace2 git -C r3 rev-list --objects \
+ --filter=sparse:oid=master:^~pattern \
+ --filter=tree:3 --filter=blob:limit=40 \
+ HEAD >actual &&
+
+ test_cmp expect actual &&
+ grep "Add to combine filter-spec: sparse:oid=master:%5e%7epattern" \
+ trace2
+'
+
# Test provisional omit collection logic with a repo that has objects appearing
# at multiple depths - first deeper than the filter's threshold, then shallow.
@@ -373,6 +527,37 @@ test_expect_success 'verify skipping tree iteration when collecting omits' '
test_cmp expect actual
'
+test_expect_success 'setup r5' '
+ git init r5 &&
+ mkdir -p r5/subdir &&
+
+ echo 1 >r5/short-root &&
+ echo 12345 >r5/long-root &&
+ echo a >r5/subdir/short-subdir &&
+ echo abcde >r5/subdir/long-subdir &&
+
+ git -C r5 add short-root long-root subdir &&
+ git -C r5 commit -m "commit msg"
+'
+
+test_expect_success 'verify collecting omits in combined: filter' '
+ # Note that this test guards against the naive implementation of simply
+ # giving both filters the same "omits" set and expecting it to
+ # automatically merge them.
+ git -C r5 rev-list --objects --quiet --filter-print-omitted \
+ --filter=combine:tree:2+blob:limit=3 HEAD >actual &&
+
+ # Expect 0 trees/commits, 3 blobs omitted (all blobs except short-root)
+ omitted_1=$(echo 12345 | git hash-object --stdin) &&
+ omitted_2=$(echo a | git hash-object --stdin) &&
+ omitted_3=$(echo abcde | git hash-object --stdin) &&
+
+ grep ~$omitted_1 actual &&
+ grep ~$omitted_2 actual &&
+ grep ~$omitted_3 actual &&
+ test_line_count = 3 actual
+'
+
# Test tree:<depth> where a tree is iterated to twice - once where a subentry is
# too deep to be included, and again where the blob inside it is shallow enough
# to be included. This makes sure we don't use LOFR_MARK_SEEN incorrectly (we
@@ -441,11 +626,4 @@ test_expect_success 'expand blob limit in protocol' '
grep "blob:limit=1024" trace
'
-test_expect_success 'expand tree depth limit in protocol' '
- GIT_TRACE_PACKET="$(pwd)/tree_trace" git -c protocol.version=2 clone \
- --filter=tree:0k "file://$(pwd)/r2" tree &&
- ! grep "tree:0k" tree_trace &&
- grep "tree:0" tree_trace
-'
-
test_done
diff --git a/t/t6120-describe.sh b/t/t6120-describe.sh
index 2b883d8..45047d0 100755
--- a/t/t6120-describe.sh
+++ b/t/t6120-describe.sh
@@ -424,4 +424,19 @@ test_expect_success 'describe complains about missing object' '
test_must_fail git describe $ZERO_OID
'
+test_expect_success 'name-rev a rev shortly after epoch' '
+ test_when_finished "git checkout master" &&
+
+ git checkout --orphan no-timestamp-underflow &&
+ # Any date closer to epoch than the CUTOFF_DATE_SLOP constant
+ # in builtin/name-rev.c.
+ GIT_COMMITTER_DATE="@1234 +0000" \
+ git commit -m "committer date shortly after epoch" &&
+ old_commit_oid=$(git rev-parse HEAD) &&
+
+ echo "$old_commit_oid no-timestamp-underflow" >expect &&
+ git name-rev $old_commit_oid >actual &&
+ test_cmp expect actual
+'
+
test_done
diff --git a/t/t6300-for-each-ref.sh b/t/t6300-for-each-ref.sh
index ab69aa1..9c910ce 100755
--- a/t/t6300-for-each-ref.sh
+++ b/t/t6300-for-each-ref.sh
@@ -526,6 +526,25 @@ test_expect_success 'Check ambiguous head and tag refs II (loose)' '
test_cmp expected actual
'
+test_expect_success 'create tag without tagger' '
+ git tag -a -m "Broken tag" taggerless &&
+ git tag -f taggerless $(git cat-file tag taggerless |
+ sed -e "/^tagger /d" |
+ git hash-object --stdin -w -t tag)
+'
+
+test_atom refs/tags/taggerless type 'commit'
+test_atom refs/tags/taggerless tag 'taggerless'
+test_atom refs/tags/taggerless tagger ''
+test_atom refs/tags/taggerless taggername ''
+test_atom refs/tags/taggerless taggeremail ''
+test_atom refs/tags/taggerless taggerdate ''
+test_atom refs/tags/taggerless committer ''
+test_atom refs/tags/taggerless committername ''
+test_atom refs/tags/taggerless committeremail ''
+test_atom refs/tags/taggerless committerdate ''
+test_atom refs/tags/taggerless subject 'Broken tag'
+
test_expect_success 'an unusual tag with an incomplete line' '
git tag -m "bogo" bogo &&
diff --git a/t/t6501-freshen-objects.sh b/t/t6501-freshen-objects.sh
index 033871e..f30b484 100755
--- a/t/t6501-freshen-objects.sh
+++ b/t/t6501-freshen-objects.sh
@@ -137,7 +137,7 @@ test_expect_success 'do not complain about existing broken links (commit)' '
some message
EOF
commit=$(git hash-object -t commit -w broken-commit) &&
- git gc 2>stderr &&
+ git gc -q 2>stderr &&
verbose git cat-file -e $commit &&
test_must_be_empty stderr
'
@@ -147,7 +147,7 @@ test_expect_success 'do not complain about existing broken links (tree)' '
100644 blob 0000000000000000000000000000000000000003 foo
EOF
tree=$(git mktree --missing <broken-tree) &&
- git gc 2>stderr &&
+ git gc -q 2>stderr &&
git cat-file -e $tree &&
test_must_be_empty stderr
'
@@ -162,7 +162,7 @@ test_expect_success 'do not complain about existing broken links (tag)' '
this is a broken tag
EOF
tag=$(git hash-object -t tag -w broken-tag) &&
- git gc 2>stderr &&
+ git gc -q 2>stderr &&
git cat-file -e $tag &&
test_must_be_empty stderr
'
diff --git a/t/t7009-filter-branch-null-sha1.sh b/t/t7008-filter-branch-null-sha1.sh
index 9ba9f24..9ba9f24 100755
--- a/t/t7009-filter-branch-null-sha1.sh
+++ b/t/t7008-filter-branch-null-sha1.sh
diff --git a/t/t7300-clean.sh b/t/t7300-clean.sh
index a2c45d1..6e6d24c 100755
--- a/t/t7300-clean.sh
+++ b/t/t7300-clean.sh
@@ -117,6 +117,7 @@ test_expect_success C_LOCALE_OUTPUT 'git clean with relative prefix' '
would_clean=$(
cd docs &&
git clean -n ../src |
+ grep part3 |
sed -n -e "s|^Would remove ||p"
) &&
verbose test "$would_clean" = ../src/part3.c
@@ -129,6 +130,7 @@ test_expect_success C_LOCALE_OUTPUT 'git clean with absolute path' '
would_clean=$(
cd docs &&
git clean -n "$(pwd)/../src" |
+ grep part3 |
sed -n -e "s|^Would remove ||p"
) &&
verbose test "$would_clean" = ../src/part3.c
@@ -547,7 +549,7 @@ test_expect_failure 'nested (non-empty) bare repositories should be cleaned even
test_path_is_missing strange_bare
'
-test_expect_success 'giving path in nested git work tree will remove it' '
+test_expect_success 'giving path in nested git work tree will NOT remove it' '
rm -fr repo &&
mkdir repo &&
(
@@ -559,7 +561,7 @@ test_expect_success 'giving path in nested git work tree will remove it' '
git clean -f -d repo/bar/baz &&
test_path_is_file repo/.git/HEAD &&
test_path_is_dir repo/bar/ &&
- test_path_is_missing repo/bar/baz
+ test_path_is_file repo/bar/baz/hello.world
'
test_expect_success 'giving path to nested .git will not remove it' '
@@ -577,7 +579,7 @@ test_expect_success 'giving path to nested .git will not remove it' '
test_path_is_dir untracked/
'
-test_expect_success 'giving path to nested .git/ will remove contents' '
+test_expect_success 'giving path to nested .git/ will NOT remove contents' '
rm -fr repo untracked &&
mkdir repo untracked &&
(
@@ -587,7 +589,7 @@ test_expect_success 'giving path to nested .git/ will remove contents' '
) &&
git clean -f -d repo/.git/ &&
test_path_is_dir repo/.git &&
- test_dir_is_empty repo/.git &&
+ test_path_is_file repo/.git/HEAD &&
test_path_is_dir untracked/
'
@@ -669,6 +671,60 @@ test_expect_success 'git clean -d skips untracked dirs containing ignored files'
test_path_is_missing foo/b/bb
'
+test_expect_success 'git clean -d skips nested repo containing ignored files' '
+ test_when_finished "rm -rf nested-repo-with-ignored-file" &&
+
+ git init nested-repo-with-ignored-file &&
+ (
+ cd nested-repo-with-ignored-file &&
+ >file &&
+ git add file &&
+ git commit -m Initial &&
+
+ # This file is ignored by a .gitignore rule in the outer repo
+ # added in the previous test.
+ >ignoreme
+ ) &&
+
+ git clean -fd &&
+
+ test_path_is_file nested-repo-with-ignored-file/.git/index &&
+ test_path_is_file nested-repo-with-ignored-file/ignoreme &&
+ test_path_is_file nested-repo-with-ignored-file/file
+'
+
+test_expect_success 'git clean handles being told what to clean' '
+ mkdir -p d1 d2 &&
+ touch d1/ut d2/ut &&
+ git clean -f */ut &&
+ test_path_is_missing d1/ut &&
+ test_path_is_missing d2/ut
+'
+
+test_expect_success 'git clean handles being told what to clean, with -d' '
+ mkdir -p d1 d2 &&
+ touch d1/ut d2/ut &&
+ git clean -ffd */ut &&
+ test_path_is_missing d1/ut &&
+ test_path_is_missing d2/ut
+'
+
+test_expect_success 'git clean works if a glob is passed without -d' '
+ mkdir -p d1 d2 &&
+ touch d1/ut d2/ut &&
+ git clean -f "*ut" &&
+ test_path_is_missing d1/ut &&
+ test_path_is_missing d2/ut
+'
+
+test_expect_success 'git clean works if a glob is passed with -d' '
+ mkdir -p d1 d2 &&
+ touch d1/ut d2/ut &&
+ git clean -ffd "*ut" &&
+ test_path_is_missing d1/ut &&
+ test_path_is_missing d2/ut
+'
+
test_expect_success MINGW 'handle clean & core.longpaths = false nicely' '
test_config core.longpaths false &&
a50=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa &&
diff --git a/t/t7400-submodule-basic.sh b/t/t7400-submodule-basic.sh
index a208cb2..691b5fc 100755
--- a/t/t7400-submodule-basic.sh
+++ b/t/t7400-submodule-basic.sh
@@ -527,7 +527,6 @@ test_expect_success 'update --init' '
test_must_fail git config submodule.example.url &&
git submodule update init 2> update.out &&
- cat update.out &&
test_i18ngrep "not initialized" update.out &&
test_must_fail git rev-parse --resolve-git-dir init/.git &&
@@ -545,7 +544,6 @@ test_expect_success 'update --init from subdirectory' '
(
cd sub &&
git submodule update ../init 2>update.out &&
- cat update.out &&
test_i18ngrep "not initialized" update.out &&
test_must_fail git rev-parse --resolve-git-dir ../init/.git &&
diff --git a/t/t7406-submodule-update.sh b/t/t7406-submodule-update.sh
index c973278..df34c99 100755
--- a/t/t7406-submodule-update.sh
+++ b/t/t7406-submodule-update.sh
@@ -158,7 +158,6 @@ test_expect_success 'submodule update --init from and of subdirectory' '
test_i18ncmp expect2 actual2
'
-apos="'";
test_expect_success 'submodule update does not fetch already present commits' '
(cd submodule &&
echo line3 >> file &&
@@ -168,7 +167,7 @@ test_expect_success 'submodule update does not fetch already present commits' '
) &&
(cd super/submodule &&
head=$(git rev-parse --verify HEAD) &&
- echo "Submodule path ${apos}submodule$apos: checked out $apos$head$apos" > ../../expected &&
+ echo "Submodule path ${SQ}submodule$SQ: checked out $SQ$head$SQ" > ../../expected &&
git reset --hard HEAD~1
) &&
(cd super &&
diff --git a/t/t7419-submodule-set-branch.sh b/t/t7419-submodule-set-branch.sh
index c4b370e..fd25f78 100755
--- a/t/t7419-submodule-set-branch.sh
+++ b/t/t7419-submodule-set-branch.sh
@@ -34,7 +34,7 @@ test_expect_success 'submodule config cache setup' '
test_expect_success 'ensure submodule branch is unset' '
(cd super &&
- test_must_fail grep branch .gitmodules
+ ! grep branch .gitmodules
)
'
@@ -54,7 +54,7 @@ test_expect_success 'test submodule set-branch --branch' '
test_expect_success 'test submodule set-branch --default' '
(cd super &&
git submodule set-branch --default submodule &&
- test_must_fail grep branch .gitmodules &&
+ ! grep branch .gitmodules &&
git submodule update --remote &&
cat <<-\EOF >expect &&
a
@@ -80,7 +80,7 @@ test_expect_success 'test submodule set-branch -b' '
test_expect_success 'test submodule set-branch -d' '
(cd super &&
git submodule set-branch -d submodule &&
- test_must_fail grep branch .gitmodules &&
+ ! grep branch .gitmodules &&
git submodule update --remote &&
cat <<-\EOF >expect &&
a
diff --git a/t/t7503-pre-commit-and-pre-merge-commit-hooks.sh b/t/t7503-pre-commit-and-pre-merge-commit-hooks.sh
new file mode 100755
index 0000000..b348545
--- /dev/null
+++ b/t/t7503-pre-commit-and-pre-merge-commit-hooks.sh
@@ -0,0 +1,281 @@
+#!/bin/sh
+
+test_description='pre-commit and pre-merge-commit hooks'
+
+. ./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 &&
+ git commit -m "zeroth" &&
+ git checkout -b side &&
+ echo "foo" >foo &&
+ git add foo &&
+ git commit -m "make it non-ff" &&
+ git branch side-orig side &&
+ git checkout master
+'
+
+test_expect_success 'setup conflicting branches' '
+ test_when_finished "git checkout master" &&
+ git checkout -b conflicting-a master &&
+ echo a >conflicting &&
+ git add conflicting &&
+ git commit -m conflicting-a &&
+ git checkout -b conflicting-b master &&
+ echo b >conflicting &&
+ git add conflicting &&
+ git commit -m conflicting-b
+'
+
+test_expect_success 'with no hook' '
+ test_when_finished "rm -f actual_hooks" &&
+ echo "foo" >file &&
+ git add file &&
+ git commit -m "first" &&
+ test_path_is_missing actual_hooks
+'
+
+test_expect_success 'with no hook (merge)' '
+ test_when_finished "rm -f actual_hooks" &&
+ git branch -f side side-orig &&
+ git checkout side &&
+ git merge -m "merge master" master &&
+ git checkout master &&
+ test_path_is_missing actual_hooks
+'
+
+test_expect_success '--no-verify with no hook' '
+ test_when_finished "rm -f actual_hooks" &&
+ echo "bar" >file &&
+ git add file &&
+ git commit --no-verify -m "bar" &&
+ test_path_is_missing actual_hooks
+'
+
+test_expect_success '--no-verify with no hook (merge)' '
+ test_when_finished "rm -f actual_hooks" &&
+ git branch -f side side-orig &&
+ git checkout side &&
+ git merge --no-verify -m "merge master" master &&
+ git checkout master &&
+ test_path_is_missing actual_hooks
+'
+
+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 &&
+ echo "more" >>file &&
+ git add file &&
+ git commit -m "more" &&
+ test_cmp expected_hooks actual_hooks
+'
+
+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 &&
+ git checkout side &&
+ git merge -m "merge master" master &&
+ git checkout master &&
+ test_cmp expected_hooks actual_hooks
+'
+
+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 master" &&
+ cp "$HOOKDIR/success.sample" "$PREMERGE" &&
+ cp "$HOOKDIR/success.sample" "$PRECOMMIT" &&
+
+ 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 a+b >conflicting &&
+ git add conflicting &&
+ git commit -m "resolve conflict" &&
+ test_cmp expected_hooks actual_hooks
+'
+
+test_expect_success '--no-verify with succeeding hook' '
+ test_when_finished "rm -f \"$PRECOMMIT\" actual_hooks" &&
+ cp "$HOOKDIR/success.sample" "$PRECOMMIT" &&
+ echo "even more" >>file &&
+ git add file &&
+ git commit --no-verify -m "even more" &&
+ test_path_is_missing actual_hooks
+'
+
+test_expect_success '--no-verify with succeeding hook (merge)' '
+ test_when_finished "rm -f \"$PREMERGE\" actual_hooks" &&
+ cp "$HOOKDIR/success.sample" "$PREMERGE" &&
+ git branch -f side side-orig &&
+ git checkout side &&
+ git merge --no-verify -m "merge master" master &&
+ git checkout master &&
+ test_path_is_missing actual_hooks
+'
+
+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 &&
+ echo "another" >>file &&
+ git add file &&
+ test_must_fail git commit -m "another" &&
+ test_cmp expected_hooks actual_hooks
+'
+
+test_expect_success '--no-verify with failing hook' '
+ test_when_finished "rm -f \"$PRECOMMIT\" actual_hooks" &&
+ cp "$HOOKDIR/fail.sample" "$PRECOMMIT" &&
+ echo "stuff" >>file &&
+ git add file &&
+ git commit --no-verify -m "stuff" &&
+ test_path_is_missing actual_hooks
+'
+
+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 &&
+ git checkout side &&
+ test_must_fail git merge -m "merge master" master &&
+ git checkout master &&
+ test_cmp expected_hooks actual_hooks
+'
+
+test_expect_success '--no-verify with failing hook (merge)' '
+ test_when_finished "rm -f \"$PREMERGE\" actual_hooks" &&
+ cp "$HOOKDIR/fail.sample" "$PREMERGE" &&
+ git branch -f side side-orig &&
+ git checkout side &&
+ git merge --no-verify -m "merge master" master &&
+ git checkout master &&
+ test_path_is_missing actual_hooks
+'
+
+test_expect_success POSIXPERM 'with non-executable hook' '
+ test_when_finished "rm -f \"$PRECOMMIT\" actual_hooks" &&
+ cp "$HOOKDIR/non-exec.sample" "$PRECOMMIT" &&
+ echo "content" >>file &&
+ git add file &&
+ git commit -m "content" &&
+ test_path_is_missing actual_hooks
+'
+
+test_expect_success POSIXPERM '--no-verify with non-executable hook' '
+ test_when_finished "rm -f \"$PRECOMMIT\" actual_hooks" &&
+ cp "$HOOKDIR/non-exec.sample" "$PRECOMMIT" &&
+ echo "more content" >>file &&
+ git add file &&
+ git commit --no-verify -m "more content" &&
+ test_path_is_missing actual_hooks
+'
+
+test_expect_success POSIXPERM 'with non-executable hook (merge)' '
+ test_when_finished "rm -f \"$PREMERGE\" actual_hooks" &&
+ cp "$HOOKDIR/non-exec.sample" "$PREMERGE" &&
+ git branch -f side side-orig &&
+ git checkout side &&
+ git merge -m "merge master" master &&
+ git checkout master &&
+ test_path_is_missing actual_hooks
+'
+
+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" &&
+ git branch -f side side-orig &&
+ git checkout side &&
+ git merge --no-verify -m "merge master" master &&
+ git checkout master &&
+ test_path_is_missing actual_hooks
+'
+
+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 &&
+ echo "more content" >>file &&
+ git add file &&
+ mkdir success &&
+ (
+ cd success &&
+ git commit -m "hook requires GIT_PREFIX = success/"
+ ) &&
+ test_cmp expected_hooks actual_hooks
+'
+
+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 &&
+ echo "more content" >>file &&
+ git add file &&
+ mkdir fail &&
+ (
+ cd fail &&
+ test_must_fail git commit -m "hook must fail"
+ ) &&
+ git checkout -- file &&
+ test_cmp expected_hooks actual_hooks
+'
+
+test_expect_success 'check the author in hook' '
+ test_when_finished "rm -f \"$PRECOMMIT\" expected_hooks actual_hooks" &&
+ cp "$HOOKDIR/check-author.sample" "$PRECOMMIT" &&
+ cat >expected_hooks <<-EOF &&
+ $PRECOMMIT
+ $PRECOMMIT
+ $PRECOMMIT
+ EOF
+ test_must_fail git commit --allow-empty -m "by a.u.thor" &&
+ (
+ GIT_AUTHOR_NAME="New Author" &&
+ GIT_AUTHOR_EMAIL="newauthor@example.com" &&
+ export GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL &&
+ git commit --allow-empty -m "by new.author via env" &&
+ git show -s
+ ) &&
+ git commit --author="New Author <newauthor@example.com>" \
+ --allow-empty -m "by new.author via command line" &&
+ git show -s &&
+ test_cmp expected_hooks actual_hooks
+'
+
+test_done
diff --git a/t/t7503-pre-commit-hook.sh b/t/t7503-pre-commit-hook.sh
deleted file mode 100755
index 984889b..0000000
--- a/t/t7503-pre-commit-hook.sh
+++ /dev/null
@@ -1,139 +0,0 @@
-#!/bin/sh
-
-test_description='pre-commit hook'
-
-. ./test-lib.sh
-
-test_expect_success 'with no hook' '
-
- echo "foo" > file &&
- git add file &&
- git commit -m "first"
-
-'
-
-test_expect_success '--no-verify with no hook' '
-
- echo "bar" > file &&
- git add file &&
- git commit --no-verify -m "bar"
-
-'
-
-# now install hook that always succeeds
-HOOKDIR="$(git rev-parse --git-dir)/hooks"
-HOOK="$HOOKDIR/pre-commit"
-mkdir -p "$HOOKDIR"
-cat > "$HOOK" <<EOF
-#!/bin/sh
-exit 0
-EOF
-chmod +x "$HOOK"
-
-test_expect_success 'with succeeding hook' '
-
- echo "more" >> file &&
- git add file &&
- git commit -m "more"
-
-'
-
-test_expect_success '--no-verify with succeeding hook' '
-
- echo "even more" >> file &&
- git add file &&
- git commit --no-verify -m "even more"
-
-'
-
-# now a hook that fails
-cat > "$HOOK" <<EOF
-#!/bin/sh
-exit 1
-EOF
-
-test_expect_success 'with failing hook' '
-
- echo "another" >> file &&
- git add file &&
- test_must_fail git commit -m "another"
-
-'
-
-test_expect_success '--no-verify with failing hook' '
-
- echo "stuff" >> file &&
- git add file &&
- git commit --no-verify -m "stuff"
-
-'
-
-chmod -x "$HOOK"
-test_expect_success POSIXPERM 'with non-executable hook' '
-
- echo "content" >> file &&
- git add file &&
- git commit -m "content"
-
-'
-
-test_expect_success POSIXPERM '--no-verify with non-executable hook' '
-
- echo "more content" >> file &&
- git add file &&
- git commit --no-verify -m "more content"
-
-'
-chmod +x "$HOOK"
-
-# a hook that checks $GIT_PREFIX and succeeds inside the
-# success/ subdirectory only
-cat > "$HOOK" <<EOF
-#!/bin/sh
-test \$GIT_PREFIX = success/
-EOF
-
-test_expect_success 'with hook requiring GIT_PREFIX' '
-
- echo "more content" >> file &&
- git add file &&
- mkdir success &&
- (
- cd success &&
- git commit -m "hook requires GIT_PREFIX = success/"
- ) &&
- rmdir success
-'
-
-test_expect_success 'with failing hook requiring GIT_PREFIX' '
-
- echo "more content" >> file &&
- git add file &&
- mkdir fail &&
- (
- cd fail &&
- test_must_fail git commit -m "hook must fail"
- ) &&
- rmdir fail &&
- git checkout -- file
-'
-
-test_expect_success 'check the author in hook' '
- write_script "$HOOK" <<-\EOF &&
- test "$GIT_AUTHOR_NAME" = "New Author" &&
- test "$GIT_AUTHOR_EMAIL" = "newauthor@example.com"
- EOF
- test_must_fail git commit --allow-empty -m "by a.u.thor" &&
- (
- GIT_AUTHOR_NAME="New Author" &&
- GIT_AUTHOR_EMAIL="newauthor@example.com" &&
- export GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL &&
- git commit --allow-empty -m "by new.author via env" &&
- git show -s
- ) &&
- git commit --author="New Author <newauthor@example.com>" \
- --allow-empty -m "by new.author via command line" &&
- git show -s
-'
-
-test_done
diff --git a/t/t7505-prepare-commit-msg-hook.sh b/t/t7505-prepare-commit-msg-hook.sh
index ba8bd1b..94f85cd 100755
--- a/t/t7505-prepare-commit-msg-hook.sh
+++ b/t/t7505-prepare-commit-msg-hook.sh
@@ -241,13 +241,7 @@ test_rebase () {
git add b &&
git rebase --continue
) &&
- if test "$mode" = -p # reword amended after pick
- then
- n=18
- else
- n=17
- fi &&
- git log --pretty=%s -g -n$n HEAD@{1} >actual &&
+ git log --pretty=%s -g -n18 HEAD@{1} >actual &&
test_cmp "$TEST_DIRECTORY/t7505/expected-rebase${mode:--i}" actual
'
}
diff --git a/t/t7505/expected-rebase-i b/t/t7505/expected-rebase-i
index c514bdb..93bada5 100644
--- a/t/t7505/expected-rebase-i
+++ b/t/t7505/expected-rebase-i
@@ -7,7 +7,8 @@ message (no editor) [edit rebase-10]
message [fixup rebase-9]
message (no editor) [fixup rebase-8]
message (no editor) [squash rebase-7]
-message [reword rebase-6]
+HEAD [reword rebase-6]
+message (no editor) [reword rebase-6]
message [squash rebase-5]
message (no editor) [fixup rebase-4]
message (no editor) [pick rebase-3]
diff --git a/t/t7512-status-help.sh b/t/t7512-status-help.sh
index e01c285..66d7a62 100755
--- a/t/t7512-status-help.sh
+++ b/t/t7512-status-help.sh
@@ -733,6 +733,7 @@ test_expect_success 'status when cherry-picking before resolving conflicts' '
On branch cherry_branch
You are currently cherry-picking commit $TO_CHERRY_PICK.
(fix conflicts and run "git cherry-pick --continue")
+ (use "git cherry-pick --skip" to skip this patch)
(use "git cherry-pick --abort" to cancel the cherry-pick operation)
Unmerged paths:
@@ -757,6 +758,7 @@ test_expect_success 'status when cherry-picking after resolving conflicts' '
On branch cherry_branch
You are currently cherry-picking commit $TO_CHERRY_PICK.
(all conflicts fixed: run "git cherry-pick --continue")
+ (use "git cherry-pick --skip" to skip this patch)
(use "git cherry-pick --abort" to cancel the cherry-pick operation)
Changes to be committed:
@@ -778,6 +780,7 @@ test_expect_success 'status when cherry-picking after committing conflict resolu
On branch cherry_branch
Cherry-pick currently in progress.
(run "git cherry-pick --continue" to continue)
+ (use "git cherry-pick --skip" to skip this patch)
(use "git cherry-pick --abort" to cancel the cherry-pick operation)
nothing to commit (use -u to show untracked files)
@@ -835,6 +838,7 @@ test_expect_success 'status while reverting commit (conflicts)' '
On branch master
You are currently reverting commit $TO_REVERT.
(fix conflicts and run "git revert --continue")
+ (use "git revert --skip" to skip this patch)
(use "git revert --abort" to cancel the revert operation)
Unmerged paths:
@@ -855,6 +859,7 @@ test_expect_success 'status while reverting commit (conflicts resolved)' '
On branch master
You are currently reverting commit $TO_REVERT.
(all conflicts fixed: run "git revert --continue")
+ (use "git revert --skip" to skip this patch)
(use "git revert --abort" to cancel the revert operation)
Changes to be committed:
@@ -887,6 +892,7 @@ test_expect_success 'status while reverting after committing conflict resolution
On branch master
Revert currently in progress.
(run "git revert --continue" to continue)
+ (use "git revert --skip" to skip this patch)
(use "git revert --abort" to cancel the revert operation)
nothing to commit (use -u to show untracked files)
diff --git a/t/t7519-status-fsmonitor.sh b/t/t7519-status-fsmonitor.sh
index 81a375f..997d5fb 100755
--- a/t/t7519-status-fsmonitor.sh
+++ b/t/t7519-status-fsmonitor.sh
@@ -354,4 +354,23 @@ test_expect_success 'discard_index() also discards fsmonitor info' '
test_cmp expect actual
'
+# Test unstaging entries that:
+# - Are not flagged with CE_FSMONITOR_VALID
+# - Have a position in the index >= the number of entries present in the index
+# after unstaging.
+test_expect_success 'status succeeds after staging/unstaging' '
+ test_create_repo fsmonitor-stage-unstage &&
+ (
+ cd fsmonitor-stage-unstage &&
+ test_commit initial &&
+ git update-index --fsmonitor &&
+ removed=$(test_seq 1 100 | sed "s/^/z/") &&
+ touch $removed &&
+ git add $removed &&
+ git config core.fsmonitor "$TEST_DIRECTORY/t7519/fsmonitor-env" &&
+ FSMONITOR_LIST="$removed" git restore -S $removed &&
+ FSMONITOR_LIST="$removed" git status
+ )
+'
+
test_done
diff --git a/t/t7519/fsmonitor-env b/t/t7519/fsmonitor-env
new file mode 100755
index 0000000..8f1f7ab
--- /dev/null
+++ b/t/t7519/fsmonitor-env
@@ -0,0 +1,24 @@
+#!/bin/sh
+#
+# An test hook script to integrate with git to test fsmonitor.
+#
+# The hook is passed a version (currently 1) and a time in nanoseconds
+# formatted as a string and outputs to stdout all files that have been
+# modified since the given time. Paths must be relative to the root of
+# the working tree and separated by a single NUL.
+#
+#echo "$0 $*" >&2
+
+if test "$#" -ne 2
+then
+ echo "$0: exactly 2 arguments expected" >&2
+ exit 2
+fi
+
+if test "$1" != 1
+then
+ echo "Unsupported core.fsmonitor hook version." >&2
+ exit 1
+fi
+
+printf '%s\n' $FSMONITOR_LIST
diff --git a/t/t7812-grep-icase-non-ascii.sh b/t/t7812-grep-icase-non-ascii.sh
index 0c685d3..531eb59 100755
--- a/t/t7812-grep-icase-non-ascii.sh
+++ b/t/t7812-grep-icase-non-ascii.sh
@@ -53,4 +53,32 @@ test_expect_success REGEX_LOCALE 'pickaxe -i on non-ascii' '
test_cmp expected actual
'
+test_expect_success GETTEXT_LOCALE,LIBPCRE2 'PCRE v2: setup invalid UTF-8 data' '
+ printf "\\200\\n" >invalid-0x80 &&
+ echo "ævar" >expected &&
+ cat expected >>invalid-0x80 &&
+ git add invalid-0x80
+'
+
+test_expect_success GETTEXT_LOCALE,LIBPCRE2 'PCRE v2: grep ASCII from invalid UTF-8 data' '
+ git grep -h "var" invalid-0x80 >actual &&
+ test_cmp expected actual &&
+ git grep -h "(*NO_JIT)var" invalid-0x80 >actual &&
+ test_cmp expected actual
+'
+
+test_expect_success GETTEXT_LOCALE,LIBPCRE2 'PCRE v2: grep non-ASCII from invalid UTF-8 data' '
+ git grep -h "æ" invalid-0x80 >actual &&
+ test_cmp expected actual &&
+ git grep -h "(*NO_JIT)æ" invalid-0x80 &&
+ test_cmp expected actual
+'
+
+test_expect_success GETTEXT_LOCALE,LIBPCRE2 'PCRE v2: grep non-ASCII from invalid UTF-8 data with -i' '
+ test_might_fail git grep -hi "Æ" invalid-0x80 >actual &&
+ test_cmp expected actual &&
+ test_must_fail git grep -hi "(*NO_JIT)Æ" invalid-0x80 &&
+ test_cmp expected actual
+'
+
test_done
diff --git a/t/t7814-grep-recurse-submodules.sh b/t/t7814-grep-recurse-submodules.sh
index a11366b..946f91f 100755
--- a/t/t7814-grep-recurse-submodules.sh
+++ b/t/t7814-grep-recurse-submodules.sh
@@ -408,4 +408,25 @@ test_expect_success 'grep --recurse-submodules with submodules without .gitmodul
test_cmp expect actual
'
+reset_and_clean () {
+ git reset --hard &&
+ git clean -fd &&
+ git submodule foreach --recursive 'git reset --hard' &&
+ git submodule foreach --recursive 'git clean -fd'
+}
+
+test_expect_success 'grep --recurse-submodules without --cached considers worktree modifications' '
+ reset_and_clean &&
+ echo "A modified line in submodule" >>submodule/a &&
+ echo "submodule/a:A modified line in submodule" >expect &&
+ git grep --recurse-submodules "A modified line in submodule" >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success 'grep --recurse-submodules with --cached ignores worktree modifications' '
+ reset_and_clean &&
+ echo "A modified line in submodule" >>submodule/a &&
+ test_must_fail git grep --recurse-submodules --cached "A modified line in submodule" >actual 2>&1 &&
+ test_must_be_empty actual
+'
test_done
diff --git a/t/t7008-grep-binary.sh b/t/t7815-grep-binary.sh
index 2d87c49..90ebb64 100755
--- a/t/t7008-grep-binary.sh
+++ b/t/t7815-grep-binary.sh
@@ -4,41 +4,6 @@ test_description='git grep in binary files'
. ./test-lib.sh
-nul_match () {
- matches=$1
- flags=$2
- pattern=$3
- pattern_human=$(echo "$pattern" | sed 's/Q/<NUL>/g')
-
- if test "$matches" = 1
- then
- test_expect_success "git grep -f f $flags '$pattern_human' a" "
- printf '$pattern' | q_to_nul >f &&
- git grep -f f $flags a
- "
- elif test "$matches" = 0
- then
- test_expect_success "git grep -f f $flags '$pattern_human' a" "
- printf '$pattern' | q_to_nul >f &&
- test_must_fail git grep -f f $flags a
- "
- elif test "$matches" = T1
- then
- test_expect_failure "git grep -f f $flags '$pattern_human' a" "
- printf '$pattern' | q_to_nul >f &&
- git grep -f f $flags a
- "
- elif test "$matches" = T0
- then
- test_expect_failure "git grep -f f $flags '$pattern_human' a" "
- printf '$pattern' | q_to_nul >f &&
- test_must_fail git grep -f f $flags a
- "
- else
- test_expect_success "PANIC: Test framework error. Unknown matches value $matches" 'false'
- fi
-}
-
test_expect_success 'setup' "
echo 'binaryQfileQm[*]cQ*æQð' | q_to_nul >a &&
git add a &&
@@ -102,72 +67,6 @@ test_expect_failure 'git grep .fi a' '
git grep .fi a
'
-nul_match 1 '-F' 'yQf'
-nul_match 0 '-F' 'yQx'
-nul_match 1 '-Fi' 'YQf'
-nul_match 0 '-Fi' 'YQx'
-nul_match 1 '' 'yQf'
-nul_match 0 '' 'yQx'
-nul_match 1 '' 'æQð'
-nul_match 1 '-F' 'eQm[*]c'
-nul_match 1 '-Fi' 'EQM[*]C'
-
-# Regex patterns that would match but shouldn't with -F
-nul_match 0 '-F' 'yQ[f]'
-nul_match 0 '-F' '[y]Qf'
-nul_match 0 '-Fi' 'YQ[F]'
-nul_match 0 '-Fi' '[Y]QF'
-nul_match 0 '-F' 'æQ[ð]'
-nul_match 0 '-F' '[æ]Qð'
-nul_match 0 '-Fi' 'ÆQ[Ã]'
-nul_match 0 '-Fi' '[Æ]QÃ'
-
-# kwset is disabled on -i & non-ASCII. No way to match non-ASCII \0
-# patterns case-insensitively.
-nul_match T1 '-i' 'ÆQÃ'
-
-# \0 implicitly disables regexes. This is an undocumented internal
-# limitation.
-nul_match T1 '' 'yQ[f]'
-nul_match T1 '' '[y]Qf'
-nul_match T1 '-i' 'YQ[F]'
-nul_match T1 '-i' '[Y]Qf'
-nul_match T1 '' 'æQ[ð]'
-nul_match T1 '' '[æ]Qð'
-nul_match T1 '-i' 'ÆQ[Ã]'
-
-# ... because of \0 implicitly disabling regexes regexes that
-# should/shouldn't match don't do the right thing.
-nul_match T1 '' 'eQm.*cQ'
-nul_match T1 '-i' 'EQM.*cQ'
-nul_match T0 '' 'eQm[*]c'
-nul_match T0 '-i' 'EQM[*]C'
-
-# Due to the REG_STARTEND extension when kwset() is disabled on -i &
-# non-ASCII the string will be matched in its entirety, but the
-# pattern will be cut off at the first \0.
-nul_match 0 '-i' 'NOMATCHQð'
-nul_match T0 '-i' '[Æ]QNOMATCH'
-nul_match T0 '-i' '[æ]QNOMATCH'
-# Matches, but for the wrong reasons, just stops at [æ]
-nul_match 1 '-i' '[Æ]Qð'
-nul_match 1 '-i' '[æ]Qð'
-
-# Ensure that the matcher doesn't regress to something that stops at
-# \0
-nul_match 0 '-F' 'yQ[f]'
-nul_match 0 '-Fi' 'YQ[F]'
-nul_match 0 '' 'yQNOMATCH'
-nul_match 0 '' 'QNOMATCH'
-nul_match 0 '-i' 'YQNOMATCH'
-nul_match 0 '-i' 'QNOMATCH'
-nul_match 0 '-F' 'æQ[ð]'
-nul_match 0 '-Fi' 'ÆQ[Ã]'
-nul_match 0 '' 'yQNÓMATCH'
-nul_match 0 '' 'QNÓMATCH'
-nul_match 0 '-i' 'YQNÓMATCH'
-nul_match 0 '-i' 'QNÓMATCH'
-
test_expect_success 'grep respects binary diff attribute' '
echo text >t &&
git add t &&
diff --git a/t/t7816-grep-binary-pattern.sh b/t/t7816-grep-binary-pattern.sh
new file mode 100755
index 0000000..60bab29
--- /dev/null
+++ b/t/t7816-grep-binary-pattern.sh
@@ -0,0 +1,127 @@
+#!/bin/sh
+
+test_description='git grep with a binary pattern files'
+
+. ./lib-gettext.sh
+
+nul_match_internal () {
+ matches=$1
+ prereqs=$2
+ lc_all=$3
+ extra_flags=$4
+ flags=$5
+ pattern=$6
+ pattern_human=$(echo "$pattern" | sed 's/Q/<NUL>/g')
+
+ if test "$matches" = 1
+ then
+ test_expect_success $prereqs "LC_ALL='$lc_all' git grep $extra_flags -f f $flags '$pattern_human' a" "
+ printf '$pattern' | q_to_nul >f &&
+ LC_ALL='$lc_all' git grep $extra_flags -f f $flags a
+ "
+ elif test "$matches" = 0
+ then
+ test_expect_success $prereqs "LC_ALL='$lc_all' git grep $extra_flags -f f $flags '$pattern_human' a" "
+ >stderr &&
+ printf '$pattern' | q_to_nul >f &&
+ test_must_fail env LC_ALL=\"$lc_all\" git grep $extra_flags -f f $flags a 2>stderr &&
+ test_i18ngrep ! 'This is only supported with -P under PCRE v2' stderr
+ "
+ elif test "$matches" = P
+ then
+ test_expect_success $prereqs "error, PCRE v2 only: LC_ALL='$lc_all' git grep -f f $flags '$pattern_human' a" "
+ >stderr &&
+ printf '$pattern' | q_to_nul >f &&
+ test_must_fail env LC_ALL=\"$lc_all\" git grep -f f $flags a 2>stderr &&
+ test_i18ngrep 'This is only supported with -P under PCRE v2' stderr
+ "
+ else
+ test_expect_success "PANIC: Test framework error. Unknown matches value $matches" 'false'
+ fi
+}
+
+nul_match () {
+ matches=$1
+ matches_pcre2=$2
+ matches_pcre2_locale=$3
+ flags=$4
+ pattern=$5
+ pattern_human=$(echo "$pattern" | sed 's/Q/<NUL>/g')
+
+ nul_match_internal "$matches" "" "C" "" "$flags" "$pattern"
+ nul_match_internal "$matches_pcre2" "LIBPCRE2" "C" "-P" "$flags" "$pattern"
+ nul_match_internal "$matches_pcre2_locale" "LIBPCRE2,GETTEXT_LOCALE" "$is_IS_locale" "-P" "$flags" "$pattern"
+}
+
+test_expect_success 'setup' "
+ echo 'binaryQfileQm[*]cQ*æQð' | q_to_nul >a &&
+ git add a &&
+ git commit -m.
+"
+
+# Simple fixed-string matching that can use kwset (no -i && non-ASCII)
+nul_match P P P '-F' 'yQf'
+nul_match P P P '-F' 'yQx'
+nul_match P P P '-Fi' 'YQf'
+nul_match P P P '-Fi' 'YQx'
+nul_match P P 1 '' 'yQf'
+nul_match P P 0 '' 'yQx'
+nul_match P P 1 '' 'æQð'
+nul_match P P P '-F' 'eQm[*]c'
+nul_match P P P '-Fi' 'EQM[*]C'
+
+# Regex patterns that would match but shouldn't with -F
+nul_match P P P '-F' 'yQ[f]'
+nul_match P P P '-F' '[y]Qf'
+nul_match P P P '-Fi' 'YQ[F]'
+nul_match P P P '-Fi' '[Y]QF'
+nul_match P P P '-F' 'æQ[ð]'
+nul_match P P P '-F' '[æ]Qð'
+
+# The -F kwset codepath can't handle -i && non-ASCII...
+nul_match P 1 1 '-i' '[æ]Qð'
+
+# ...PCRE v2 only matches non-ASCII with -i casefolding under UTF-8
+# semantics
+nul_match P P P '-Fi' 'ÆQ[Ã]'
+nul_match P 0 1 '-i' 'ÆQ[Ã]'
+nul_match P 0 1 '-i' '[Æ]QÃ'
+nul_match P 0 1 '-i' '[Æ]Qð'
+nul_match P 0 1 '-i' 'ÆQÃ'
+
+# \0 in regexes can only work with -P & PCRE v2
+nul_match P P 1 '' 'yQ[f]'
+nul_match P P 1 '' '[y]Qf'
+nul_match P P 1 '-i' 'YQ[F]'
+nul_match P P 1 '-i' '[Y]Qf'
+nul_match P P 1 '' 'æQ[ð]'
+nul_match P P 1 '' '[æ]Qð'
+nul_match P P 1 '-i' 'ÆQ[Ã]'
+nul_match P P 1 '' 'eQm.*cQ'
+nul_match P P 1 '-i' 'EQM.*cQ'
+nul_match P P 0 '' 'eQm[*]c'
+nul_match P P 0 '-i' 'EQM[*]C'
+
+# Assert that we're using REG_STARTEND and the pattern doesn't match
+# just because it's cut off at the first \0.
+nul_match P P 0 '-i' 'NOMATCHQð'
+nul_match P P 0 '-i' '[Æ]QNOMATCH'
+nul_match P P 0 '-i' '[æ]QNOMATCH'
+
+# Ensure that the matcher doesn't regress to something that stops at
+# \0
+nul_match P P P '-F' 'yQ[f]'
+nul_match P P P '-Fi' 'YQ[F]'
+nul_match P P 0 '' 'yQNOMATCH'
+nul_match P P 0 '' 'QNOMATCH'
+nul_match P P 0 '-i' 'YQNOMATCH'
+nul_match P P 0 '-i' 'QNOMATCH'
+nul_match P P P '-F' 'æQ[ð]'
+nul_match P P P '-Fi' 'ÆQ[Ã]'
+nul_match P P 1 '-i' 'ÆQ[Ã]'
+nul_match P P 0 '' 'yQNÓMATCH'
+nul_match P P 0 '' 'QNÓMATCH'
+nul_match P P 0 '-i' 'YQNÓMATCH'
+nul_match P P 0 '-i' 'QNÓMATCH'
+
+test_done
diff --git a/t/t9300-fast-import.sh b/t/t9300-fast-import.sh
index 141b7fa..e707fb8 100755
--- a/t/t9300-fast-import.sh
+++ b/t/t9300-fast-import.sh
@@ -85,6 +85,36 @@ test_expect_success 'A: create pack from stdin' '
An annotated tag that annotates a blob.
EOF
+ tag to-be-deleted
+ from :3
+ data <<EOF
+ Another annotated tag that annotates a blob.
+ EOF
+
+ reset refs/tags/to-be-deleted
+ from 0000000000000000000000000000000000000000
+
+ tag nested
+ mark :6
+ from :4
+ data <<EOF
+ Tag of our lovely commit
+ EOF
+
+ reset refs/tags/nested
+ from 0000000000000000000000000000000000000000
+
+ tag nested
+ mark :7
+ from :6
+ data <<EOF
+ Tag of tag of our lovely commit
+ EOF
+
+ alias
+ mark :8
+ to :5
+
INPUT_END
git fast-import --export-marks=marks.out <input &&
git whatchanged master
@@ -157,12 +187,19 @@ test_expect_success 'A: verify tag/series-A-blob' '
test_cmp expect actual
'
+test_expect_success 'A: verify tag deletion is successful' '
+ test_must_fail git rev-parse --verify refs/tags/to-be-deleted
+'
+
test_expect_success 'A: verify marks output' '
cat >expect <<-EOF &&
:2 $(git rev-parse --verify master:file2)
:3 $(git rev-parse --verify master:file3)
:4 $(git rev-parse --verify master:file4)
:5 $(git rev-parse --verify master^0)
+ :6 $(git cat-file tag nested | grep object | cut -d" " -f 2)
+ :7 $(git rev-parse --verify nested)
+ :8 $(git rev-parse --verify master^0)
EOF
test_cmp expect marks.out
'
@@ -2781,7 +2818,6 @@ test_expect_success 'S: filemodify with garbage after mark must fail' '
COMMIT
M 100644 :403x hello.c
EOF
- cat err &&
test_i18ngrep "space after mark" err
'
@@ -2798,7 +2834,6 @@ test_expect_success 'S: filemodify with garbage after inline must fail' '
inline
BLOB
EOF
- cat err &&
test_i18ngrep "nvalid dataref" err
'
@@ -2812,7 +2847,6 @@ test_expect_success 'S: filemodify with garbage after sha1 must fail' '
COMMIT
M 100644 ${sha1}x hello.c
EOF
- cat err &&
test_i18ngrep "space after SHA1" err
'
@@ -2828,7 +2862,6 @@ test_expect_success 'S: notemodify with garbage after mark dataref must fail' '
COMMIT
N :202x :302
EOF
- cat err &&
test_i18ngrep "space after mark" err
'
@@ -2844,7 +2877,6 @@ test_expect_success 'S: notemodify with garbage after inline dataref must fail'
note blob
BLOB
EOF
- cat err &&
test_i18ngrep "nvalid dataref" err
'
@@ -2858,7 +2890,6 @@ test_expect_success 'S: notemodify with garbage after sha1 dataref must fail' '
COMMIT
N ${sha1}x :302
EOF
- cat err &&
test_i18ngrep "space after SHA1" err
'
@@ -2874,7 +2905,6 @@ test_expect_success 'S: notemodify with garbage after mark commit-ish must fail'
COMMIT
N :202 :302x
EOF
- cat err &&
test_i18ngrep "after mark" err
'
@@ -2908,7 +2938,6 @@ test_expect_success 'S: from with garbage after mark must fail' '
EOF
# now evaluate the error
- cat err &&
test_i18ngrep "after mark" err
'
@@ -2928,7 +2957,6 @@ test_expect_success 'S: merge with garbage after mark must fail' '
merge :303x
M 100644 :403 hello.c
EOF
- cat err &&
test_i18ngrep "after mark" err
'
@@ -2944,7 +2972,6 @@ test_expect_success 'S: tag with garbage after mark must fail' '
tag S
TAG
EOF
- cat err &&
test_i18ngrep "after mark" err
'
@@ -2955,7 +2982,6 @@ test_expect_success 'S: cat-blob with garbage after mark must fail' '
test_must_fail git fast-import --import-marks=marks <<-EOF 2>err &&
cat-blob :403x
EOF
- cat err &&
test_i18ngrep "after mark" err
'
@@ -2966,7 +2992,6 @@ test_expect_success 'S: ls with garbage after mark must fail' '
test_must_fail git fast-import --import-marks=marks <<-EOF 2>err &&
ls :302x hello.c
EOF
- cat err &&
test_i18ngrep "space after mark" err
'
@@ -2975,7 +3000,6 @@ test_expect_success 'S: ls with garbage after sha1 must fail' '
test_must_fail git fast-import --import-marks=marks <<-EOF 2>err &&
ls ${sha1}x hello.c
EOF
- cat err &&
test_i18ngrep "space after tree-ish" err
'
diff --git a/t/t9350-fast-export.sh b/t/t9350-fast-export.sh
index b4004e0..2e4e214 100755
--- a/t/t9350-fast-export.sh
+++ b/t/t9350-fast-export.sh
@@ -53,6 +53,33 @@ test_expect_success 'fast-export | fast-import' '
'
+test_expect_success 'fast-export ^muss^{commit} muss' '
+ git fast-export --tag-of-filtered-object=rewrite ^muss^{commit} muss >actual &&
+ cat >expected <<-EOF &&
+ tag muss
+ from $(git rev-parse --verify muss^{commit})
+ $(git cat-file tag muss | grep tagger)
+ data 9
+ valentin
+
+ EOF
+ test_cmp expected actual
+'
+
+test_expect_success 'fast-export --mark-tags ^muss^{commit} muss' '
+ git fast-export --mark-tags --tag-of-filtered-object=rewrite ^muss^{commit} muss >actual &&
+ cat >expected <<-EOF &&
+ tag muss
+ mark :1
+ from $(git rev-parse --verify muss^{commit})
+ $(git cat-file tag muss | grep tagger)
+ data 9
+ valentin
+
+ EOF
+ test_cmp expected actual
+'
+
test_expect_success 'fast-export master~2..master' '
git fast-export master~2..master >actual &&
@@ -513,10 +540,41 @@ test_expect_success 'tree_tag' '
'
# NEEDSWORK: not just check return status, but validate the output
+# Note that these tests DO NOTHING other than print a warning that
+# they are ommitting the one tag we asked them to export (because the
+# tags resolve to a tree). They exist just to make sure we do not
+# abort but instead just warn.
test_expect_success 'tree_tag-obj' 'git fast-export tree_tag-obj'
test_expect_success 'tag-obj_tag' 'git fast-export tag-obj_tag'
test_expect_success 'tag-obj_tag-obj' 'git fast-export tag-obj_tag-obj'
+test_expect_success 'handling tags of blobs' '
+ git tag -a -m "Tag of a blob" blobtag $(git rev-parse master:file) &&
+ git fast-export blobtag >actual &&
+ cat >expect <<-EOF &&
+ blob
+ mark :1
+ data 9
+ die Luft
+
+ tag blobtag
+ from :1
+ tagger $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
+ data 14
+ Tag of a blob
+
+ EOF
+ test_cmp expect actual
+'
+
+test_expect_success 'handling nested tags' '
+ git tag -a -m "This is a nested tag" nested muss &&
+ git fast-export --mark-tags nested >output &&
+ grep "^from $ZERO_OID$" output &&
+ grep "^tag nested$" output >tag_lines &&
+ test_line_count = 2 tag_lines
+'
+
test_expect_success 'directory becomes symlink' '
git init dirtosymlink &&
git init result &&
@@ -567,17 +625,15 @@ test_expect_success 'fast-export quotes pathnames' '
'
test_expect_success 'test bidirectionality' '
- >marks-cur &&
- >marks-new &&
git init marks-test &&
- git fast-export --export-marks=marks-cur --import-marks=marks-cur --branches | \
- git --git-dir=marks-test/.git fast-import --export-marks=marks-new --import-marks=marks-new &&
+ git fast-export --export-marks=marks-cur --import-marks-if-exists=marks-cur --branches | \
+ git --git-dir=marks-test/.git fast-import --export-marks=marks-new --import-marks-if-exists=marks-new &&
(cd marks-test &&
git reset --hard &&
echo Wohlauf > file &&
git commit -a -m "back in time") &&
- git --git-dir=marks-test/.git fast-export --export-marks=marks-new --import-marks=marks-new --branches | \
- git fast-import --export-marks=marks-cur --import-marks=marks-cur
+ git --git-dir=marks-test/.git fast-export --export-marks=marks-new --import-marks-if-exists=marks-new --branches | \
+ git fast-import --export-marks=marks-cur --import-marks-if-exists=marks-cur
'
cat > expected << EOF
diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh
index 5187e2e..e90ac56 100755
--- a/t/t9902-completion.sh
+++ b/t/t9902-completion.sh
@@ -28,10 +28,10 @@ complete ()
#
# (2) A test makes sure that common subcommands are included in the
# completion for "git <TAB>", and a plumbing is excluded. "add",
-# "filter-branch" and "ls-files" are listed for this.
+# "rebase" and "ls-files" are listed for this.
-GIT_TESTING_ALL_COMMAND_LIST='add checkout check-attr filter-branch ls-files'
-GIT_TESTING_PORCELAIN_COMMAND_LIST='add checkout filter-branch'
+GIT_TESTING_ALL_COMMAND_LIST='add checkout check-attr rebase ls-files'
+GIT_TESTING_PORCELAIN_COMMAND_LIST='add checkout rebase'
. "$GIT_BUILD_DIR/contrib/completion/git-completion.bash"
@@ -1392,12 +1392,12 @@ test_expect_success 'basic' '
# built-in
grep -q "^add \$" out &&
# script
- grep -q "^filter-branch \$" out &&
+ grep -q "^rebase \$" out &&
# plumbing
! grep -q "^ls-files \$" out &&
- run_completion "git f" &&
- ! grep -q -v "^f" out
+ run_completion "git r" &&
+ ! grep -q -v "^r" out
'
test_expect_success 'double dash "git" itself' '
@@ -1701,6 +1701,69 @@ do
'
done
+test_expect_success 'git config - section' '
+ test_completion "git config br" <<-\EOF
+ branch.Z
+ browser.Z
+ EOF
+'
+
+test_expect_success 'git config - variable name' '
+ test_completion "git config log.d" <<-\EOF
+ log.date Z
+ log.decorate Z
+ EOF
+'
+
+test_expect_success 'git config - value' '
+ test_completion "git config color.pager " <<-\EOF
+ false Z
+ true Z
+ EOF
+'
+
+test_expect_success 'git -c - section' '
+ test_completion "git -c br" <<-\EOF
+ branch.Z
+ browser.Z
+ EOF
+'
+
+test_expect_success 'git -c - variable name' '
+ test_completion "git -c log.d" <<-\EOF
+ log.date=Z
+ log.decorate=Z
+ EOF
+'
+
+test_expect_success 'git -c - value' '
+ test_completion "git -c color.pager=" <<-\EOF
+ false Z
+ true Z
+ EOF
+'
+
+test_expect_success 'git clone --config= - section' '
+ test_completion "git clone --config=br" <<-\EOF
+ branch.Z
+ browser.Z
+ EOF
+'
+
+test_expect_success 'git clone --config= - variable name' '
+ test_completion "git clone --config=log.d" <<-\EOF
+ log.date=Z
+ log.decorate=Z
+ EOF
+'
+
+test_expect_success 'git clone --config= - value' '
+ test_completion "git clone --config=color.pager=" <<-\EOF
+ false Z
+ true Z
+ EOF
+'
+
test_expect_success 'sourcing the completion script clears cached commands' '
__git_compute_all_commands &&
verbose test -n "$__git_all_commands" &&
diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh
index e0b3f28..b299ecc 100644
--- a/t/test-lib-functions.sh
+++ b/t/test-lib-functions.sh
@@ -228,9 +228,11 @@ test_commit () {
# can be a tag pointing to the commit-to-merge.
test_merge () {
+ label="$1" &&
+ shift &&
test_tick &&
- git merge -m "$1" "$2" &&
- git tag "$1"
+ git merge -m "$label" "$@" &&
+ git tag "$label"
}
# Efficiently create <nr> commits, each with a unique number (from 1 to <nr>
@@ -580,7 +582,7 @@ test_expect_failure () {
export test_prereq
if ! test_skip "$@"
then
- say >&3 "checking known breakage: $2"
+ say >&3 "checking known breakage of $TEST_NUMBER.$test_count '$1': $2"
if test_run_ "$2" expecting_failure
then
test_known_broken_ok_ "$1"
@@ -600,7 +602,7 @@ test_expect_success () {
export test_prereq
if ! test_skip "$@"
then
- say >&3 "expecting success: $2"
+ say >&3 "expecting success of $TEST_NUMBER.$test_count '$1': $2"
if test_run_ "$2"
then
test_ok_ "$1"
diff --git a/t/test-lib.sh b/t/test-lib.sh
index 30b07e3..e06fa02 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -212,6 +212,8 @@ fi
TEST_STRESS_JOB_SFX="${GIT_TEST_STRESS_JOB_NR:+.stress-$GIT_TEST_STRESS_JOB_NR}"
TEST_NAME="$(basename "$0" .sh)"
+TEST_NUMBER="${TEST_NAME%%-*}"
+TEST_NUMBER="${TEST_NUMBER#t}"
TEST_RESULTS_DIR="$TEST_OUTPUT_DIRECTORY/test-results"
TEST_RESULTS_BASE="$TEST_RESULTS_DIR/$TEST_NAME$TEST_STRESS_JOB_SFX"
TRASH_DIRECTORY="trash directory.$TEST_NAME$TEST_STRESS_JOB_SFX"
@@ -507,6 +509,9 @@ EMPTY_BLOB=e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
LF='
'
+# Single quote
+SQ=\'
+
# UTF-8 ZERO WIDTH NON-JOINER, which HFS+ ignores
# when case-folding filenames
u200c=$(printf '\342\200\214')
@@ -567,6 +572,7 @@ export TERM
error () {
say_color error "error: $*"
+ finalize_junit_xml
GIT_EXIT_OK=t
exit 1
}
@@ -695,7 +701,7 @@ test_failure_ () {
say_color error "not ok $test_count - $1"
shift
printf '%s\n' "$*" | sed -e 's/^/# /'
- test "$immediate" = "" || { GIT_EXIT_OK=t; exit 1; }
+ test "$immediate" = "" || { finalize_junit_xml; GIT_EXIT_OK=t; exit 1; }
}
test_known_broken_ok_ () {
@@ -1063,6 +1069,25 @@ write_junit_xml_testcase () {
junit_have_testcase=t
}
+finalize_junit_xml () {
+ if test -n "$write_junit_xml" && test -n "$junit_xml_path"
+ then
+ test -n "$junit_have_testcase" || {
+ junit_start=$(test-tool date getnanos)
+ write_junit_xml_testcase "all tests skipped"
+ }
+
+ # adjust the overall time
+ junit_time=$(test-tool date getnanos $junit_suite_start)
+ sed "s/<testsuite [^>]*/& time=\"$junit_time\"/" \
+ <"$junit_xml_path" >"$junit_xml_path.new"
+ mv "$junit_xml_path.new" "$junit_xml_path"
+
+ write_junit_xml " </testsuite>" "</testsuites>"
+ write_junit_xml=
+ fi
+}
+
test_atexit_cleanup=:
test_atexit_handler () {
# In a succeeding test script 'test_atexit_handler' is invoked
@@ -1085,21 +1110,7 @@ test_done () {
# removed, so the commands can access pidfiles and socket files.
test_atexit_handler
- if test -n "$write_junit_xml" && test -n "$junit_xml_path"
- then
- test -n "$junit_have_testcase" || {
- junit_start=$(test-tool date getnanos)
- write_junit_xml_testcase "all tests skipped"
- }
-
- # adjust the overall time
- junit_time=$(test-tool date getnanos $junit_suite_start)
- sed "s/<testsuite [^>]*/& time=\"$junit_time\"/" \
- <"$junit_xml_path" >"$junit_xml_path.new"
- mv "$junit_xml_path.new" "$junit_xml_path"
-
- write_junit_xml " </testsuite>" "</testsuites>"
- fi
+ finalize_junit_xml
if test -z "$HARNESS_ACTIVE"
then
diff --git a/tag.c b/tag.c
index 5db870e..bfa0e31 100644
--- a/tag.c
+++ b/tag.c
@@ -212,3 +212,10 @@ int parse_tag(struct tag *item)
free(data);
return ret;
}
+
+struct object_id *get_tagged_oid(struct tag *tag)
+{
+ if (!tag->tagged)
+ die("bad tag");
+ return &tag->tagged->oid;
+}
diff --git a/tag.h b/tag.h
index 03265fb..3ce8e72 100644
--- a/tag.h
+++ b/tag.h
@@ -19,5 +19,6 @@ struct object *deref_tag(struct repository *r, struct object *, const char *, in
struct object *deref_tag_noverify(struct object *);
int gpg_verify_tag(const struct object_id *oid,
const char *name_to_report, unsigned flags);
+struct object_id *get_tagged_oid(struct tag *tag);
#endif /* TAG_H */
diff --git a/templates/hooks--pre-merge-commit.sample b/templates/hooks--pre-merge-commit.sample
new file mode 100755
index 0000000..399eab1
--- /dev/null
+++ b/templates/hooks--pre-merge-commit.sample
@@ -0,0 +1,13 @@
+#!/bin/sh
+#
+# An example hook script to verify what is about to be committed.
+# Called by "git merge" with no arguments. The hook should
+# exit with non-zero status after issuing an appropriate message to
+# stderr if it wants to stop the merge commit.
+#
+# To enable this hook, rename this file to "pre-merge-commit".
+
+. git-sh-setup
+test -x "$GIT_DIR/hooks/pre-commit" &&
+ exec "$GIT_DIR/hooks/pre-commit"
+:
diff --git a/trace.c b/trace.c
index fa4a2e7..b3ef0e6 100644
--- a/trace.c
+++ b/trace.c
@@ -88,8 +88,6 @@ static int prepare_trace_line(const char *file, int line,
if (!trace_want(key))
return 0;
- set_try_to_free_routine(NULL); /* is never reset */
-
/* unit tests may want to disable additional trace output */
if (trace_want(&trace_bare))
return 1;
diff --git a/trace2/tr2_dst.c b/trace2/tr2_dst.c
index 5dda0ca..ae052a0 100644
--- a/trace2/tr2_dst.c
+++ b/trace2/tr2_dst.c
@@ -8,6 +8,19 @@
*/
#define MAX_AUTO_ATTEMPTS 10
+/*
+ * Sentinel file used to detect when we should discard new traces to avoid
+ * writing too many trace files to a directory.
+ */
+#define DISCARD_SENTINEL_NAME "git-trace2-discard"
+
+/*
+ * When set to zero, disables directory file count checks. Otherwise, controls
+ * how many files we can write to a directory before entering discard mode.
+ * This can be overridden via the TR2_SYSENV_MAX_FILES setting.
+ */
+static int tr2env_max_files = 0;
+
static int tr2_dst_want_warning(void)
{
static int tr2env_dst_debug = -1;
@@ -32,9 +45,75 @@ void tr2_dst_trace_disable(struct tr2_dst *dst)
dst->need_close = 0;
}
+/*
+ * Check to make sure we're not overloading the target directory with too many
+ * files. First get the threshold (if present) from the config or envvar. If
+ * it's zero or unset, disable this check. Next check for the presence of a
+ * sentinel file, then check file count.
+ *
+ * Returns 0 if tracing should proceed as normal. Returns 1 if the sentinel file
+ * already exists, which means tracing should be disabled. Returns -1 if there
+ * are too many files but there was no sentinel file, which means we have
+ * created and should write traces to the sentinel file.
+ *
+ * We expect that some trace processing system is gradually collecting files
+ * from the target directory; after it removes the sentinel file we'll start
+ * writing traces again.
+ */
+static int tr2_dst_too_many_files(struct tr2_dst *dst, const char *tgt_prefix)
+{
+ int file_count = 0, max_files = 0, ret = 0;
+ const char *max_files_var;
+ DIR *dirp;
+ struct strbuf path = STRBUF_INIT, sentinel_path = STRBUF_INIT;
+ struct stat statbuf;
+
+ /* Get the config or envvar and decide if we should continue this check */
+ max_files_var = tr2_sysenv_get(TR2_SYSENV_MAX_FILES);
+ if (max_files_var && *max_files_var && ((max_files = atoi(max_files_var)) >= 0))
+ tr2env_max_files = max_files;
+
+ if (!tr2env_max_files) {
+ ret = 0;
+ goto cleanup;
+ }
+
+ strbuf_addstr(&path, tgt_prefix);
+ if (!is_dir_sep(path.buf[path.len - 1])) {
+ strbuf_addch(&path, '/');
+ }
+
+ /* check sentinel */
+ strbuf_addbuf(&sentinel_path, &path);
+ strbuf_addstr(&sentinel_path, DISCARD_SENTINEL_NAME);
+ if (!stat(sentinel_path.buf, &statbuf)) {
+ ret = 1;
+ goto cleanup;
+ }
+
+ /* check file count */
+ dirp = opendir(path.buf);
+ while (file_count < tr2env_max_files && dirp && readdir(dirp))
+ file_count++;
+ if (dirp)
+ closedir(dirp);
+
+ if (file_count >= tr2env_max_files) {
+ dst->too_many_files = 1;
+ dst->fd = open(sentinel_path.buf, O_WRONLY | O_CREAT | O_EXCL, 0666);
+ ret = -1;
+ goto cleanup;
+ }
+
+cleanup:
+ strbuf_release(&path);
+ strbuf_release(&sentinel_path);
+ return ret;
+}
+
static int tr2_dst_try_auto_path(struct tr2_dst *dst, const char *tgt_prefix)
{
- int fd;
+ int too_many_files;
const char *last_slash, *sid = tr2_sid_get();
struct strbuf path = STRBUF_INIT;
size_t base_path_len;
@@ -50,18 +129,29 @@ static int tr2_dst_try_auto_path(struct tr2_dst *dst, const char *tgt_prefix)
strbuf_addstr(&path, sid);
base_path_len = path.len;
- for (attempt_count = 0; attempt_count < MAX_AUTO_ATTEMPTS; attempt_count++) {
- if (attempt_count > 0) {
- strbuf_setlen(&path, base_path_len);
- strbuf_addf(&path, ".%d", attempt_count);
+ too_many_files = tr2_dst_too_many_files(dst, tgt_prefix);
+ if (!too_many_files) {
+ for (attempt_count = 0; attempt_count < MAX_AUTO_ATTEMPTS; attempt_count++) {
+ if (attempt_count > 0) {
+ strbuf_setlen(&path, base_path_len);
+ strbuf_addf(&path, ".%d", attempt_count);
+ }
+
+ dst->fd = open(path.buf, O_WRONLY | O_CREAT | O_EXCL, 0666);
+ if (dst->fd != -1)
+ break;
}
-
- fd = open(path.buf, O_WRONLY | O_CREAT | O_EXCL, 0666);
- if (fd != -1)
- break;
+ } else if (too_many_files == 1) {
+ strbuf_release(&path);
+ if (tr2_dst_want_warning())
+ warning("trace2: not opening %s trace file due to too "
+ "many files in target directory %s",
+ tr2_sysenv_display_name(dst->sysenv_var),
+ tgt_prefix);
+ return 0;
}
- if (fd == -1) {
+ if (dst->fd == -1) {
if (tr2_dst_want_warning())
warning("trace2: could not open '%.*s' for '%s' tracing: %s",
(int) base_path_len, path.buf,
@@ -75,7 +165,6 @@ static int tr2_dst_try_auto_path(struct tr2_dst *dst, const char *tgt_prefix)
strbuf_release(&path);
- dst->fd = fd;
dst->need_close = 1;
dst->initialized = 1;
@@ -215,13 +304,8 @@ connected:
static void tr2_dst_malformed_warning(struct tr2_dst *dst,
const char *tgt_value)
{
- struct strbuf buf = STRBUF_INIT;
-
- strbuf_addf(&buf, "trace2: unknown value for '%s': '%s'",
- tr2_sysenv_display_name(dst->sysenv_var), tgt_value);
- warning("%s", buf.buf);
-
- strbuf_release(&buf);
+ warning("trace2: unknown value for '%s': '%s'",
+ tr2_sysenv_display_name(dst->sysenv_var), tgt_value);
}
int tr2_dst_get_trace_fd(struct tr2_dst *dst)
diff --git a/trace2/tr2_dst.h b/trace2/tr2_dst.h
index 3adf3ba..b1a8c14 100644
--- a/trace2/tr2_dst.h
+++ b/trace2/tr2_dst.h
@@ -9,6 +9,7 @@ struct tr2_dst {
int fd;
unsigned int initialized : 1;
unsigned int need_close : 1;
+ unsigned int too_many_files : 1;
};
/*
diff --git a/trace2/tr2_sysenv.c b/trace2/tr2_sysenv.c
index 5958cfc..3c3792e 100644
--- a/trace2/tr2_sysenv.c
+++ b/trace2/tr2_sysenv.c
@@ -49,6 +49,9 @@ static struct tr2_sysenv_entry tr2_sysenv_settings[] = {
"trace2.perftarget" },
[TR2_SYSENV_PERF_BRIEF] = { "GIT_TRACE2_PERF_BRIEF",
"trace2.perfbrief" },
+
+ [TR2_SYSENV_MAX_FILES] = { "GIT_TRACE2_MAX_FILES",
+ "trace2.maxfiles" },
};
/* clang-format on */
diff --git a/trace2/tr2_sysenv.h b/trace2/tr2_sysenv.h
index 8dd82a7..d4364a7 100644
--- a/trace2/tr2_sysenv.h
+++ b/trace2/tr2_sysenv.h
@@ -24,6 +24,8 @@ enum tr2_sysenv_variable {
TR2_SYSENV_PERF,
TR2_SYSENV_PERF_BRIEF,
+ TR2_SYSENV_MAX_FILES,
+
TR2_SYSENV_MUST_BE_LAST
};
diff --git a/trace2/tr2_tgt_event.c b/trace2/tr2_tgt_event.c
index c2852d1..6353e8a 100644
--- a/trace2/tr2_tgt_event.c
+++ b/trace2/tr2_tgt_event.c
@@ -10,16 +10,17 @@
#include "trace2/tr2_tgt.h"
#include "trace2/tr2_tls.h"
-static struct tr2_dst tr2dst_event = { TR2_SYSENV_EVENT, 0, 0, 0 };
+static struct tr2_dst tr2dst_event = { TR2_SYSENV_EVENT, 0, 0, 0, 0 };
/*
- * The version number of the JSON data generated by the EVENT target
- * in this source file. Update this if you make a significant change
- * to the JSON fields or message structure. You probably do not need
- * to update this if you just add another call to one of the existing
- * TRACE2 API methods.
+ * The version number of the JSON data generated by the EVENT target in this
+ * source file. The version should be incremented if new event types are added,
+ * if existing fields are removed, or if there are significant changes in
+ * interpretation of existing events or fields. Smaller changes, such as adding
+ * a new field to an existing event, do not require an increment to the EVENT
+ * format version.
*/
-#define TR2_EVENT_VERSION "1"
+#define TR2_EVENT_VERSION "2"
/*
* Region nesting limit for messages written to the event target.
@@ -107,6 +108,19 @@ static void event_fmt_prepare(const char *event_name, const char *file,
jw_object_intmax(jw, "repo", repo->trace2_repo_id);
}
+static void fn_too_many_files_fl(const char *file, int line)
+{
+ const char *event_name = "too_many_files";
+ struct json_writer jw = JSON_WRITER_INIT;
+
+ jw_object_begin(&jw, 0);
+ event_fmt_prepare(event_name, file, line, NULL, &jw);
+ jw_end(&jw);
+
+ tr2_dst_write_line(&tr2dst_event, &jw.json);
+ jw_release(&jw);
+}
+
static void fn_version_fl(const char *file, int line)
{
const char *event_name = "version";
@@ -120,6 +134,9 @@ static void fn_version_fl(const char *file, int line)
tr2_dst_write_line(&tr2dst_event, &jw.json);
jw_release(&jw);
+
+ if (tr2dst_event.too_many_files)
+ fn_too_many_files_fl(file, line);
}
static void fn_start_fl(const char *file, int line,
@@ -205,11 +222,6 @@ static void maybe_add_string_va(struct json_writer *jw, const char *field_name,
strbuf_release(&buf);
return;
}
-
- if (fmt && *fmt) {
- jw_object_string(jw, field_name, fmt);
- return;
- }
}
static void fn_error_va_fl(const char *file, int line, const char *fmt,
diff --git a/trace2/tr2_tgt_normal.c b/trace2/tr2_tgt_normal.c
index 00b116d..31b602c 100644
--- a/trace2/tr2_tgt_normal.c
+++ b/trace2/tr2_tgt_normal.c
@@ -9,7 +9,7 @@
#include "trace2/tr2_tgt.h"
#include "trace2/tr2_tls.h"
-static struct tr2_dst tr2dst_normal = { TR2_SYSENV_NORMAL, 0, 0, 0 };
+static struct tr2_dst tr2dst_normal = { TR2_SYSENV_NORMAL, 0, 0, 0, 0 };
/*
* Use the TR2_SYSENV_NORMAL_BRIEF setting to omit the "<time> <file>:<line>"
@@ -87,7 +87,7 @@ static void fn_start_fl(const char *file, int line,
struct strbuf buf_payload = STRBUF_INIT;
strbuf_addstr(&buf_payload, "start ");
- sq_quote_argv_pretty(&buf_payload, argv);
+ sq_append_quote_argv_pretty(&buf_payload, argv);
normal_io_write_fl(file, line, &buf_payload);
strbuf_release(&buf_payload);
}
@@ -135,11 +135,6 @@ static void maybe_append_string_va(struct strbuf *buf, const char *fmt,
va_end(copy_ap);
return;
}
-
- if (fmt && *fmt) {
- strbuf_addstr(buf, fmt);
- return;
- }
}
static void fn_error_va_fl(const char *file, int line, const char *fmt,
@@ -147,8 +142,11 @@ static void fn_error_va_fl(const char *file, int line, const char *fmt,
{
struct strbuf buf_payload = STRBUF_INIT;
- strbuf_addstr(&buf_payload, "error ");
- maybe_append_string_va(&buf_payload, fmt, ap);
+ strbuf_addstr(&buf_payload, "error");
+ if (fmt && *fmt) {
+ strbuf_addch(&buf_payload, ' ');
+ maybe_append_string_va(&buf_payload, fmt, ap);
+ }
normal_io_write_fl(file, line, &buf_payload);
strbuf_release(&buf_payload);
}
@@ -188,8 +186,8 @@ static void fn_alias_fl(const char *file, int line, const char *alias,
{
struct strbuf buf_payload = STRBUF_INIT;
- strbuf_addf(&buf_payload, "alias %s ->", alias);
- sq_quote_argv_pretty(&buf_payload, argv);
+ strbuf_addf(&buf_payload, "alias %s -> ", alias);
+ sq_append_quote_argv_pretty(&buf_payload, argv);
normal_io_write_fl(file, line, &buf_payload);
strbuf_release(&buf_payload);
}
@@ -200,12 +198,12 @@ static void fn_child_start_fl(const char *file, int line,
{
struct strbuf buf_payload = STRBUF_INIT;
- strbuf_addf(&buf_payload, "child_start[%d] ", cmd->trace2_child_id);
+ strbuf_addf(&buf_payload, "child_start[%d]", cmd->trace2_child_id);
if (cmd->dir) {
- strbuf_addstr(&buf_payload, " cd");
+ strbuf_addstr(&buf_payload, " cd ");
sq_quote_buf_pretty(&buf_payload, cmd->dir);
- strbuf_addstr(&buf_payload, "; ");
+ strbuf_addstr(&buf_payload, ";");
}
/*
@@ -213,9 +211,10 @@ static void fn_child_start_fl(const char *file, int line,
* See trace_add_env() in run-command.c as used by original trace.c
*/
+ strbuf_addch(&buf_payload, ' ');
if (cmd->git_cmd)
- strbuf_addstr(&buf_payload, "git");
- sq_quote_argv_pretty(&buf_payload, cmd->argv);
+ strbuf_addstr(&buf_payload, "git ");
+ sq_append_quote_argv_pretty(&buf_payload, cmd->argv);
normal_io_write_fl(file, line, &buf_payload);
strbuf_release(&buf_payload);
@@ -240,9 +239,11 @@ static void fn_exec_fl(const char *file, int line, uint64_t us_elapsed_absolute,
struct strbuf buf_payload = STRBUF_INIT;
strbuf_addf(&buf_payload, "exec[%d] ", exec_id);
- if (exe)
+ if (exe) {
strbuf_addstr(&buf_payload, exe);
- sq_quote_argv_pretty(&buf_payload, argv);
+ strbuf_addch(&buf_payload, ' ');
+ }
+ sq_append_quote_argv_pretty(&buf_payload, argv);
normal_io_write_fl(file, line, &buf_payload);
strbuf_release(&buf_payload);
}
diff --git a/trace2/tr2_tgt_perf.c b/trace2/tr2_tgt_perf.c
index ea0cbbe..ffac802 100644
--- a/trace2/tr2_tgt_perf.c
+++ b/trace2/tr2_tgt_perf.c
@@ -11,7 +11,7 @@
#include "trace2/tr2_tgt.h"
#include "trace2/tr2_tls.h"
-static struct tr2_dst tr2dst_perf = { TR2_SYSENV_PERF, 0, 0, 0 };
+static struct tr2_dst tr2dst_perf = { TR2_SYSENV_PERF, 0, 0, 0, 0 };
/*
* Use TR2_SYSENV_PERF_BRIEF to omit the "<time> <file>:<line>"
@@ -21,10 +21,10 @@ static struct tr2_dst tr2dst_perf = { TR2_SYSENV_PERF, 0, 0, 0 };
*/
static int tr2env_perf_be_brief;
-#define TR2FMT_PERF_FL_WIDTH (50)
+#define TR2FMT_PERF_FL_WIDTH (28)
#define TR2FMT_PERF_MAX_EVENT_NAME (12)
-#define TR2FMT_PERF_REPO_WIDTH (4)
-#define TR2FMT_PERF_CATEGORY_WIDTH (10)
+#define TR2FMT_PERF_REPO_WIDTH (3)
+#define TR2FMT_PERF_CATEGORY_WIDTH (12)
#define TR2_DOTS_BUFFER_SIZE (100)
#define TR2_INDENT (2)
@@ -79,17 +79,36 @@ static void perf_fmt_prepare(const char *event_name,
if (!tr2env_perf_be_brief) {
struct tr2_tbuf tb_now;
+ size_t fl_end_col;
tr2_tbuf_local_time(&tb_now);
strbuf_addstr(buf, tb_now.buf);
strbuf_addch(buf, ' ');
- if (file && *file)
- strbuf_addf(buf, "%s:%d ", file, line);
- while (buf->len < TR2FMT_PERF_FL_WIDTH)
+ fl_end_col = buf->len + TR2FMT_PERF_FL_WIDTH;
+
+ if (file && *file) {
+ struct strbuf buf_fl = STRBUF_INIT;
+
+ strbuf_addf(&buf_fl, "%s:%d", file, line);
+
+ if (buf_fl.len <= TR2FMT_PERF_FL_WIDTH)
+ strbuf_addbuf(buf, &buf_fl);
+ else {
+ size_t avail = TR2FMT_PERF_FL_WIDTH - 3;
+ strbuf_addstr(buf, "...");
+ strbuf_add(buf,
+ &buf_fl.buf[buf_fl.len - avail],
+ avail);
+ }
+
+ strbuf_release(&buf_fl);
+ }
+
+ while (buf->len < fl_end_col)
strbuf_addch(buf, ' ');
- strbuf_addstr(buf, "| ");
+ strbuf_addstr(buf, " | ");
}
strbuf_addf(buf, "d%d | ", tr2_sid_depth());
@@ -102,7 +121,7 @@ static void perf_fmt_prepare(const char *event_name,
strbuf_addf(buf, "r%d ", repo->trace2_repo_id);
while (buf->len < len)
strbuf_addch(buf, ' ');
- strbuf_addstr(buf, "| ");
+ strbuf_addstr(buf, " | ");
if (p_us_elapsed_absolute)
strbuf_addf(buf, "%9.6f | ",
@@ -116,8 +135,8 @@ static void perf_fmt_prepare(const char *event_name,
else
strbuf_addf(buf, "%9s | ", " ");
- strbuf_addf(buf, "%-*s | ", TR2FMT_PERF_CATEGORY_WIDTH,
- (category ? category : ""));
+ strbuf_addf(buf, "%-*.*s | ", TR2FMT_PERF_CATEGORY_WIDTH,
+ TR2FMT_PERF_CATEGORY_WIDTH, (category ? category : ""));
if (ctx->nr_open_regions > 0) {
int len_indent = TR2_INDENT_LENGTH(ctx);
@@ -165,7 +184,7 @@ static void fn_start_fl(const char *file, int line,
const char *event_name = "start";
struct strbuf buf_payload = STRBUF_INIT;
- sq_quote_argv_pretty(&buf_payload, argv);
+ sq_append_quote_argv_pretty(&buf_payload, argv);
perf_io_write_fl(file, line, event_name, NULL, &us_elapsed_absolute,
NULL, NULL, &buf_payload);
@@ -220,11 +239,6 @@ static void maybe_append_string_va(struct strbuf *buf, const char *fmt,
va_end(copy_ap);
return;
}
-
- if (fmt && *fmt) {
- strbuf_addstr(buf, fmt);
- return;
- }
}
static void fn_error_va_fl(const char *file, int line, const char *fmt,
@@ -285,8 +299,9 @@ static void fn_alias_fl(const char *file, int line, const char *alias,
const char *event_name = "alias";
struct strbuf buf_payload = STRBUF_INIT;
- strbuf_addf(&buf_payload, "alias:%s argv:", alias);
- sq_quote_argv_pretty(&buf_payload, argv);
+ strbuf_addf(&buf_payload, "alias:%s argv:[", alias);
+ sq_append_quote_argv_pretty(&buf_payload, argv);
+ strbuf_addch(&buf_payload, ']');
perf_io_write_fl(file, line, event_name, NULL, NULL, NULL, NULL,
&buf_payload);
@@ -315,10 +330,14 @@ static void fn_child_start_fl(const char *file, int line,
sq_quote_buf_pretty(&buf_payload, cmd->dir);
}
- strbuf_addstr(&buf_payload, " argv:");
- if (cmd->git_cmd)
- strbuf_addstr(&buf_payload, " git");
- sq_quote_argv_pretty(&buf_payload, cmd->argv);
+ strbuf_addstr(&buf_payload, " argv:[");
+ if (cmd->git_cmd) {
+ strbuf_addstr(&buf_payload, "git");
+ if (cmd->argv[0])
+ strbuf_addch(&buf_payload, ' ');
+ }
+ sq_append_quote_argv_pretty(&buf_payload, cmd->argv);
+ strbuf_addch(&buf_payload, ']');
perf_io_write_fl(file, line, event_name, NULL, &us_elapsed_absolute,
NULL, NULL, &buf_payload);
@@ -369,10 +388,14 @@ static void fn_exec_fl(const char *file, int line, uint64_t us_elapsed_absolute,
struct strbuf buf_payload = STRBUF_INIT;
strbuf_addf(&buf_payload, "id:%d ", exec_id);
- strbuf_addstr(&buf_payload, "argv:");
- if (exe)
- strbuf_addf(&buf_payload, " %s", exe);
- sq_quote_argv_pretty(&buf_payload, argv);
+ strbuf_addstr(&buf_payload, "argv:[");
+ if (exe) {
+ strbuf_addstr(&buf_payload, exe);
+ if (argv[0])
+ strbuf_addch(&buf_payload, ' ');
+ }
+ sq_append_quote_argv_pretty(&buf_payload, argv);
+ strbuf_addch(&buf_payload, ']');
perf_io_write_fl(file, line, event_name, NULL, &us_elapsed_absolute,
NULL, NULL, &buf_payload);
@@ -433,8 +456,11 @@ static void fn_region_enter_printf_va_fl(const char *file, int line,
struct strbuf buf_payload = STRBUF_INIT;
if (label)
- strbuf_addf(&buf_payload, "label:%s ", label);
- maybe_append_string_va(&buf_payload, fmt, ap);
+ strbuf_addf(&buf_payload, "label:%s", label);
+ if (fmt && *fmt) {
+ strbuf_addch(&buf_payload, ' ');
+ maybe_append_string_va(&buf_payload, fmt, ap);
+ }
perf_io_write_fl(file, line, event_name, repo, &us_elapsed_absolute,
NULL, category, &buf_payload);
@@ -450,8 +476,11 @@ static void fn_region_leave_printf_va_fl(
struct strbuf buf_payload = STRBUF_INIT;
if (label)
- strbuf_addf(&buf_payload, "label:%s ", label);
- maybe_append_string_va(&buf_payload, fmt, ap);
+ strbuf_addf(&buf_payload, "label:%s", label);
+ if (fmt && *fmt) {
+ strbuf_addch(&buf_payload, ' ' );
+ maybe_append_string_va(&buf_payload, fmt, ap);
+ }
perf_io_write_fl(file, line, event_name, repo, &us_elapsed_absolute,
&us_elapsed_region, category, &buf_payload);
diff --git a/transport-helper.c b/transport-helper.c
index 6b05a88..a9d6902 100644
--- a/transport-helper.c
+++ b/transport-helper.c
@@ -33,6 +33,16 @@ struct helper_data {
check_connectivity : 1,
no_disconnect_req : 1,
no_private_update : 1;
+
+ /*
+ * As an optimization, the transport code may invoke fetch before
+ * get_refs_list. If this happens, and if the transport helper doesn't
+ * support connect or stateless_connect, we need to invoke
+ * get_refs_list ourselves if we haven't already done so. Keep track of
+ * whether we have invoked get_refs_list.
+ */
+ unsigned get_refs_list_called : 1;
+
char *export_marks;
char *import_marks;
/* These go from remote name (as in "list") to private name */
@@ -652,17 +662,25 @@ static int connect_helper(struct transport *transport, const char *name,
return 0;
}
+static struct ref *get_refs_list_using_list(struct transport *transport,
+ int for_push);
+
static int fetch(struct transport *transport,
int nr_heads, struct ref **to_fetch)
{
struct helper_data *data = transport->data;
int i, count;
+ get_helper(transport);
+
if (process_connect(transport, 0)) {
do_take_over(transport);
return transport->vtable->fetch(transport, nr_heads, to_fetch);
}
+ if (!data->get_refs_list_called)
+ get_refs_list_using_list(transport, 0);
+
count = 0;
for (i = 0; i < nr_heads; i++)
if (!(to_fetch[i]->status & REF_STATUS_UPTODATE))
@@ -682,13 +700,9 @@ static int fetch(struct transport *transport,
set_helper_option(transport, "update-shallow", "true");
if (data->transport_options.filter_options.choice) {
- struct strbuf expanded_filter_spec = STRBUF_INIT;
- expand_list_objects_filter_spec(
- &data->transport_options.filter_options,
- &expanded_filter_spec);
- set_helper_option(transport, "filter",
- expanded_filter_spec.buf);
- strbuf_release(&expanded_filter_spec);
+ const char *spec = expand_list_objects_filter_spec(
+ &data->transport_options.filter_options);
+ set_helper_option(transport, "filter", spec);
}
if (data->transport_options.negotiation_tips)
@@ -840,6 +854,10 @@ static void set_common_push_options(struct transport *transport,
die(_("helper %s does not support --signed=if-asked"), name);
}
+ if (flags & TRANSPORT_PUSH_ATOMIC)
+ if (set_helper_option(transport, TRANS_OPT_ATOMIC, "true") != 0)
+ die(_("helper %s does not support --atomic"), name);
+
if (flags & TRANSPORT_PUSH_OPTIONS) {
struct string_list_item *item;
for_each_string_list_item(item, transport->push_options)
@@ -1059,6 +1077,19 @@ static int has_attribute(const char *attrs, const char *attr)
static struct ref *get_refs_list(struct transport *transport, int for_push,
const struct argv_array *ref_prefixes)
{
+ get_helper(transport);
+
+ if (process_connect(transport, for_push)) {
+ do_take_over(transport);
+ return transport->vtable->get_refs_list(transport, for_push, ref_prefixes);
+ }
+
+ return get_refs_list_using_list(transport, for_push);
+}
+
+static struct ref *get_refs_list_using_list(struct transport *transport,
+ int for_push)
+{
struct helper_data *data = transport->data;
struct child_process *helper;
struct ref *ret = NULL;
@@ -1066,13 +1097,9 @@ static struct ref *get_refs_list(struct transport *transport, int for_push,
struct ref *posn;
struct strbuf buf = STRBUF_INIT;
+ data->get_refs_list_called = 1;
helper = get_helper(transport);
- if (process_connect(transport, for_push)) {
- do_take_over(transport);
- return transport->vtable->get_refs_list(transport, for_push, ref_prefixes);
- }
-
if (data->push && for_push)
write_str_in_full(helper->in, "list for-push\n");
else
@@ -1119,7 +1146,6 @@ static struct ref *get_refs_list(struct transport *transport, int for_push,
}
static struct transport_vtable vtable = {
- 0,
set_helper_option,
get_refs_list,
fetch,
diff --git a/transport-internal.h b/transport-internal.h
index 004bee5..1cde625 100644
--- a/transport-internal.h
+++ b/transport-internal.h
@@ -7,12 +7,6 @@ struct argv_array;
struct transport_vtable {
/**
- * This transport supports the fetch() function being called
- * without get_refs_list() first being called.
- */
- unsigned fetch_without_list : 1;
-
- /**
* Returns 0 if successful, positive if the option is not
* recognized or is inapplicable, and negative if the option
* is applicable but the value is invalid.
diff --git a/transport.c b/transport.c
index 778c60b..83379a0 100644
--- a/transport.c
+++ b/transport.c
@@ -122,6 +122,7 @@ static void set_upstreams(struct transport *transport, struct ref *refs,
struct bundle_transport_data {
int fd;
struct bundle_header header;
+ unsigned get_refs_from_bundle_called : 1;
};
static struct ref *get_refs_from_bundle(struct transport *transport,
@@ -135,6 +136,8 @@ static struct ref *get_refs_from_bundle(struct transport *transport,
if (for_push)
return NULL;
+ data->get_refs_from_bundle_called = 1;
+
if (data->fd > 0)
close(data->fd);
data->fd = read_bundle_header(transport->url, &data->header);
@@ -154,6 +157,9 @@ static int fetch_refs_from_bundle(struct transport *transport,
int nr_heads, struct ref **to_fetch)
{
struct bundle_transport_data *data = transport->data;
+
+ if (!data->get_refs_from_bundle_called)
+ get_refs_from_bundle(transport, 0, NULL);
return unbundle(the_repository, &data->header, data->fd,
transport->progress ? BUNDLE_VERBOSE : 0);
}
@@ -224,6 +230,7 @@ static int set_git_option(struct git_transport_options *opts,
opts->no_dependents = !!value;
return 0;
} else if (!strcmp(name, TRANS_OPT_LIST_OBJECTS_FILTER)) {
+ list_objects_filter_die_if_populated(&opts->filter_options);
parse_list_objects_filter(&opts->filter_options, value);
return 0;
}
@@ -742,7 +749,6 @@ static int disconnect_git(struct transport *transport)
}
static struct transport_vtable taken_over_vtable = {
- 1,
NULL,
get_refs_via_connect,
fetch_refs_via_pack,
@@ -892,7 +898,6 @@ void transport_check_allowed(const char *type)
}
static struct transport_vtable bundle_vtable = {
- 0,
NULL,
get_refs_from_bundle,
fetch_refs_from_bundle,
@@ -902,7 +907,6 @@ static struct transport_vtable bundle_vtable = {
};
static struct transport_vtable builtin_smart_vtable = {
- 1,
NULL,
get_refs_via_connect,
fetch_refs_via_pack,
@@ -1141,8 +1145,10 @@ int transport_push(struct repository *r,
refspec_ref_prefixes(rs, &ref_prefixes);
+ trace2_region_enter("transport_push", "get_refs_list", r);
remote_refs = transport->vtable->get_refs_list(transport, 1,
&ref_prefixes);
+ trace2_region_leave("transport_push", "get_refs_list", r);
argv_array_clear(&ref_prefixes);
@@ -1178,6 +1184,7 @@ int transport_push(struct repository *r,
struct ref *ref = remote_refs;
struct oid_array commits = OID_ARRAY_INIT;
+ trace2_region_enter("transport_push", "push_submodules", r);
for (; ref; ref = ref->next)
if (!is_null_oid(&ref->new_oid))
oid_array_append(&commits,
@@ -1190,9 +1197,11 @@ int transport_push(struct repository *r,
transport->push_options,
pretend)) {
oid_array_clear(&commits);
+ trace2_region_leave("transport_push", "push_submodules", r);
die(_("failed to push all needed submodules"));
}
oid_array_clear(&commits);
+ trace2_region_leave("transport_push", "push_submodules", r);
}
if (((flags & TRANSPORT_RECURSE_SUBMODULES_CHECK) ||
@@ -1203,6 +1212,7 @@ int transport_push(struct repository *r,
struct string_list needs_pushing = STRING_LIST_INIT_DUP;
struct oid_array commits = OID_ARRAY_INIT;
+ trace2_region_enter("transport_push", "check_submodules", r);
for (; ref; ref = ref->next)
if (!is_null_oid(&ref->new_oid))
oid_array_append(&commits,
@@ -1213,15 +1223,19 @@ int transport_push(struct repository *r,
transport->remote->name,
&needs_pushing)) {
oid_array_clear(&commits);
+ trace2_region_leave("transport_push", "check_submodules", r);
die_with_unpushed_submodules(&needs_pushing);
}
string_list_clear(&needs_pushing, 0);
oid_array_clear(&commits);
+ trace2_region_leave("transport_push", "check_submodules", r);
}
- if (!(flags & TRANSPORT_RECURSE_SUBMODULES_ONLY))
+ if (!(flags & TRANSPORT_RECURSE_SUBMODULES_ONLY)) {
+ trace2_region_enter("transport_push", "push_refs", r);
push_ret = transport->vtable->push_refs(transport, remote_refs, flags);
- else
+ trace2_region_leave("transport_push", "push_refs", r);
+ } else
push_ret = 0;
err = push_had_errors(remote_refs);
ret = push_ret | err;
@@ -1285,15 +1299,6 @@ int transport_fetch_refs(struct transport *transport, struct ref *refs)
struct ref **heads = NULL;
struct ref *rm;
- if (!transport->vtable->fetch_without_list)
- /*
- * Some transports (e.g. the built-in bundle transport and the
- * transport helper interface) do not work when fetching is
- * done immediately after transport creation. List the remote
- * refs anyway (if not already listed) as a workaround.
- */
- transport_get_remote_refs(transport, NULL);
-
for (rm = refs; rm; rm = rm->next) {
nr_refs++;
if (rm->peer_ref &&
diff --git a/transport.h b/transport.h
index 0b5f780..e0131da 100644
--- a/transport.h
+++ b/transport.h
@@ -208,6 +208,9 @@ void transport_check_allowed(const char *type);
/* Filter objects for partial clone and fetch */
#define TRANS_OPT_LIST_OBJECTS_FILTER "filter"
+/* Request atomic (all-or-nothing) updates when pushing */
+#define TRANS_OPT_ATOMIC "atomic"
+
/**
* Returns 0 if the option was used, non-zero otherwise. Prints a
* message to stderr if the option is not used.
diff --git a/tree-walk.c b/tree-walk.c
index c20b62f..bea819d 100644
--- a/tree-walk.c
+++ b/tree-walk.c
@@ -170,40 +170,61 @@ int tree_entry_gently(struct tree_desc *desc, struct name_entry *entry)
void setup_traverse_info(struct traverse_info *info, const char *base)
{
- int pathlen = strlen(base);
+ size_t pathlen = strlen(base);
static struct traverse_info dummy;
memset(info, 0, sizeof(*info));
if (pathlen && base[pathlen-1] == '/')
pathlen--;
info->pathlen = pathlen ? pathlen + 1 : 0;
- info->name.path = base;
- info->name.pathlen = pathlen;
- if (pathlen) {
- hashcpy(info->name.oid.hash, (const unsigned char *)base + pathlen + 1);
+ info->name = base;
+ info->namelen = pathlen;
+ if (pathlen)
info->prev = &dummy;
- }
}
-char *make_traverse_path(char *path, const struct traverse_info *info, const struct name_entry *n)
+char *make_traverse_path(char *path, size_t pathlen,
+ const struct traverse_info *info,
+ const char *name, size_t namelen)
{
- int len = tree_entry_len(n);
- int pathlen = info->pathlen;
+ /* Always points to the end of the name we're about to add */
+ size_t pos = st_add(info->pathlen, namelen);
+
+ if (pos >= pathlen)
+ BUG("too small buffer passed to make_traverse_path");
- path[pathlen + len] = 0;
+ path[pos] = 0;
for (;;) {
- memcpy(path + pathlen, n->path, len);
- if (!pathlen)
+ if (pos < namelen)
+ BUG("traverse_info pathlen does not match strings");
+ pos -= namelen;
+ memcpy(path + pos, name, namelen);
+
+ if (!pos)
break;
- path[--pathlen] = '/';
- n = &info->name;
- len = tree_entry_len(n);
+ path[--pos] = '/';
+
+ if (!info)
+ BUG("traverse_info ran out of list items");
+ name = info->name;
+ namelen = info->namelen;
info = info->prev;
- pathlen -= len;
}
return path;
}
+void strbuf_make_traverse_path(struct strbuf *out,
+ const struct traverse_info *info,
+ const char *name, size_t namelen)
+{
+ size_t len = traverse_path_len(info, namelen);
+
+ strbuf_grow(out, len);
+ make_traverse_path(out->buf + out->len, out->alloc - out->len,
+ info, name, namelen);
+ strbuf_setlen(out, out->len + len);
+}
+
struct tree_desc_skip {
struct tree_desc_skip *prev;
const void *ptr;
@@ -400,13 +421,12 @@ int traverse_trees(struct index_state *istate,
tx[i].d = t[i];
if (info->prev) {
- strbuf_grow(&base, info->pathlen);
- make_traverse_path(base.buf, info->prev, &info->name);
- base.buf[info->pathlen-1] = '/';
- strbuf_setlen(&base, info->pathlen);
- traverse_path = xstrndup(base.buf, info->pathlen);
+ strbuf_make_traverse_path(&base, info->prev,
+ info->name, info->namelen);
+ strbuf_addch(&base, '/');
+ traverse_path = xstrndup(base.buf, base.len);
} else {
- traverse_path = xstrndup(info->name.path, info->pathlen);
+ traverse_path = xstrndup(info->name, info->pathlen);
}
info->traverse_path = traverse_path;
for (;;) {
diff --git a/tree-walk.h b/tree-walk.h
index 2a5db29..abe2caf 100644
--- a/tree-walk.h
+++ b/tree-walk.h
@@ -58,8 +58,11 @@ enum get_oid_result get_tree_entry_follow_symlinks(struct repository *r, struct
struct traverse_info {
const char *traverse_path;
struct traverse_info *prev;
- struct name_entry name;
- int pathlen;
+ const char *name;
+ size_t namelen;
+ unsigned mode;
+
+ size_t pathlen;
struct pathspec *pathspec;
unsigned long df_conflicts;
@@ -69,12 +72,17 @@ struct traverse_info {
};
int get_tree_entry(struct repository *, const struct object_id *, const char *, struct object_id *, unsigned short *);
-char *make_traverse_path(char *path, const struct traverse_info *info, const struct name_entry *n);
+char *make_traverse_path(char *path, size_t pathlen, const struct traverse_info *info,
+ const char *name, size_t namelen);
+void strbuf_make_traverse_path(struct strbuf *out,
+ const struct traverse_info *info,
+ const char *name, size_t namelen);
void setup_traverse_info(struct traverse_info *info, const char *base);
-static inline int traverse_path_len(const struct traverse_info *info, const struct name_entry *n)
+static inline size_t traverse_path_len(const struct traverse_info *info,
+ size_t namelen)
{
- return info->pathlen + tree_entry_len(n);
+ return st_add(info->pathlen, namelen);
}
/* in general, positive means "kind of interesting" */
diff --git a/tree.c b/tree.c
index 4720945..1466bcc 100644
--- a/tree.c
+++ b/tree.c
@@ -244,19 +244,7 @@ void free_tree_buffer(struct tree *tree)
struct tree *parse_tree_indirect(const struct object_id *oid)
{
- struct object *obj = parse_object(the_repository, oid);
- do {
- if (!obj)
- return NULL;
- if (obj->type == OBJ_TREE)
- return (struct tree *) obj;
- else if (obj->type == OBJ_COMMIT)
- obj = &(get_commit_tree(((struct commit *)obj))->object);
- else if (obj->type == OBJ_TAG)
- obj = ((struct tag *) obj)->tagged;
- else
- return NULL;
- if (!obj->parsed)
- parse_object(the_repository, &obj->oid);
- } while (1);
+ struct repository *r = the_repository;
+ struct object *obj = parse_object(r, oid);
+ return (struct tree *)repo_peel_to_type(r, NULL, 0, obj, OBJ_TREE);
}
diff --git a/unpack-trees.c b/unpack-trees.c
index 62276d4..33ea781 100644
--- a/unpack-trees.c
+++ b/unpack-trees.c
@@ -11,12 +11,11 @@
#include "refs.h"
#include "attr.h"
#include "split-index.h"
-#include "dir.h"
#include "submodule.h"
#include "submodule-config.h"
#include "fsmonitor.h"
#include "object-store.h"
-#include "fetch-object.h"
+#include "promisor-remote.h"
/*
* Error messages expected by scripts out of plumbing commands such as
@@ -400,7 +399,7 @@ static int check_updates(struct unpack_trees_options *o)
load_gitmodules_file(index, &state);
enable_delayed_checkout(&state);
- if (repository_format_partial_clone && o->update && !o->dry_run) {
+ if (has_promisor_remote() && o->update && !o->dry_run) {
/*
* Prefetch the objects that are to be checked out in the loop
* below.
@@ -419,8 +418,8 @@ static int check_updates(struct unpack_trees_options *o)
oid_array_append(&to_fetch, &ce->oid);
}
if (to_fetch.nr)
- fetch_objects(repository_format_partial_clone,
- to_fetch.oid, to_fetch.nr);
+ promisor_remote_get_direct(the_repository,
+ to_fetch.oid, to_fetch.nr);
oid_array_clear(&to_fetch);
}
for (i = 0; i < index->cache_nr; i++) {
@@ -632,7 +631,7 @@ static int unpack_index_entry(struct cache_entry *ce,
return ret;
}
-static int find_cache_pos(struct traverse_info *, const struct name_entry *);
+static int find_cache_pos(struct traverse_info *, const char *p, size_t len);
static void restore_cache_bottom(struct traverse_info *info, int bottom)
{
@@ -651,7 +650,7 @@ static int switch_cache_bottom(struct traverse_info *info)
if (o->diff_index_cached)
return 0;
ret = o->cache_bottom;
- pos = find_cache_pos(info->prev, &info->name);
+ pos = find_cache_pos(info->prev, info->name, info->namelen);
if (pos < -1)
o->cache_bottom = -2 - pos;
@@ -686,21 +685,19 @@ static int index_pos_by_traverse_info(struct name_entry *names,
struct traverse_info *info)
{
struct unpack_trees_options *o = info->data;
- int len = traverse_path_len(info, names);
- char *name = xmalloc(len + 1 /* slash */ + 1 /* NUL */);
+ struct strbuf name = STRBUF_INIT;
int pos;
- make_traverse_path(name, info, names);
- name[len++] = '/';
- name[len] = '\0';
- pos = index_name_pos(o->src_index, name, len);
+ strbuf_make_traverse_path(&name, info, names->path, names->pathlen);
+ strbuf_addch(&name, '/');
+ pos = index_name_pos(o->src_index, name.buf, name.len);
if (pos >= 0)
BUG("This is a directory and should not exist in index");
pos = -pos - 1;
- if (!starts_with(o->src_index->cache[pos]->name, name) ||
- (pos > 0 && starts_with(o->src_index->cache[pos-1]->name, name)))
+ if (!starts_with(o->src_index->cache[pos]->name, name.buf) ||
+ (pos > 0 && starts_with(o->src_index->cache[pos-1]->name, name.buf)))
BUG("pos must point at the first entry in this directory");
- free(name);
+ strbuf_release(&name);
return pos;
}
@@ -811,8 +808,10 @@ static int traverse_trees_recursive(int n, unsigned long dirmask,
newinfo = *info;
newinfo.prev = info;
newinfo.pathspec = info->pathspec;
- newinfo.name = *p;
- newinfo.pathlen += tree_entry_len(p) + 1;
+ newinfo.name = p->path;
+ newinfo.namelen = p->pathlen;
+ newinfo.mode = p->mode;
+ newinfo.pathlen = st_add3(newinfo.pathlen, tree_entry_len(p), 1);
newinfo.df_conflicts |= df_conflicts;
/*
@@ -863,14 +862,18 @@ static int traverse_trees_recursive(int n, unsigned long dirmask,
* itself - the caller needs to do the final check for the cache
* entry having more data at the end!
*/
-static int do_compare_entry_piecewise(const struct cache_entry *ce, const struct traverse_info *info, const struct name_entry *n)
+static int do_compare_entry_piecewise(const struct cache_entry *ce,
+ const struct traverse_info *info,
+ const char *name, size_t namelen,
+ unsigned mode)
{
- int len, pathlen, ce_len;
+ int pathlen, ce_len;
const char *ce_name;
if (info->prev) {
int cmp = do_compare_entry_piecewise(ce, info->prev,
- &info->name);
+ info->name, info->namelen,
+ info->mode);
if (cmp)
return cmp;
}
@@ -884,15 +887,15 @@ static int do_compare_entry_piecewise(const struct cache_entry *ce, const struct
ce_len -= pathlen;
ce_name = ce->name + pathlen;
- len = tree_entry_len(n);
- return df_name_compare(ce_name, ce_len, S_IFREG, n->path, len, n->mode);
+ return df_name_compare(ce_name, ce_len, S_IFREG, name, namelen, mode);
}
static int do_compare_entry(const struct cache_entry *ce,
const struct traverse_info *info,
- const struct name_entry *n)
+ const char *name, size_t namelen,
+ unsigned mode)
{
- int len, pathlen, ce_len;
+ int pathlen, ce_len;
const char *ce_name;
int cmp;
@@ -902,7 +905,7 @@ static int do_compare_entry(const struct cache_entry *ce,
* it is quicker to use the precomputed version.
*/
if (!info->traverse_path)
- return do_compare_entry_piecewise(ce, info, n);
+ return do_compare_entry_piecewise(ce, info, name, namelen, mode);
cmp = strncmp(ce->name, info->traverse_path, info->pathlen);
if (cmp)
@@ -917,13 +920,12 @@ static int do_compare_entry(const struct cache_entry *ce,
ce_len -= pathlen;
ce_name = ce->name + pathlen;
- len = tree_entry_len(n);
- return df_name_compare(ce_name, ce_len, S_IFREG, n->path, len, n->mode);
+ return df_name_compare(ce_name, ce_len, S_IFREG, name, namelen, mode);
}
static int compare_entry(const struct cache_entry *ce, const struct traverse_info *info, const struct name_entry *n)
{
- int cmp = do_compare_entry(ce, info, n);
+ int cmp = do_compare_entry(ce, info, n->path, n->pathlen, n->mode);
if (cmp)
return cmp;
@@ -931,7 +933,7 @@ static int compare_entry(const struct cache_entry *ce, const struct traverse_inf
* Even if the beginning compared identically, the ce should
* compare as bigger than a directory leading up to it!
*/
- return ce_namelen(ce) > traverse_path_len(info, n);
+ return ce_namelen(ce) > traverse_path_len(info, tree_entry_len(n));
}
static int ce_in_traverse_path(const struct cache_entry *ce,
@@ -939,7 +941,8 @@ static int ce_in_traverse_path(const struct cache_entry *ce,
{
if (!info->prev)
return 1;
- if (do_compare_entry(ce, info->prev, &info->name))
+ if (do_compare_entry(ce, info->prev,
+ info->name, info->namelen, info->mode))
return 0;
/*
* If ce (blob) is the same name as the path (which is a tree
@@ -954,7 +957,7 @@ static struct cache_entry *create_ce_entry(const struct traverse_info *info,
struct index_state *istate,
int is_transient)
{
- int len = traverse_path_len(info, n);
+ size_t len = traverse_path_len(info, tree_entry_len(n));
struct cache_entry *ce =
is_transient ?
make_empty_transient_cache_entry(len) :
@@ -964,7 +967,8 @@ static struct cache_entry *create_ce_entry(const struct traverse_info *info,
ce->ce_flags = create_ce_flags(stage);
ce->ce_namelen = len;
oidcpy(&ce->oid, &n->oid);
- make_traverse_path(ce->name, info, n);
+ /* len+1 because the cache_entry allocates space for NUL */
+ make_traverse_path(ce->name, len + 1, info, n->path, n->pathlen);
return ce;
}
@@ -1057,13 +1061,12 @@ static int unpack_failed(struct unpack_trees_options *o, const char *message)
* the directory.
*/
static int find_cache_pos(struct traverse_info *info,
- const struct name_entry *p)
+ const char *p, size_t p_len)
{
int pos;
struct unpack_trees_options *o = info->data;
struct index_state *index = o->src_index;
int pfxlen = info->pathlen;
- int p_len = tree_entry_len(p);
for (pos = o->cache_bottom; pos < index->cache_nr; pos++) {
const struct cache_entry *ce = index->cache[pos];
@@ -1099,7 +1102,7 @@ static int find_cache_pos(struct traverse_info *info,
ce_len = ce_slash - ce_name;
else
ce_len = ce_namelen(ce) - pfxlen;
- cmp = name_compare(p->path, p_len, ce_name, ce_len);
+ cmp = name_compare(p, p_len, ce_name, ce_len);
/*
* Exact match; if we have a directory we need to
* delay returning it.
@@ -1114,7 +1117,7 @@ static int find_cache_pos(struct traverse_info *info,
* E.g. ce_name == "t-i", and p->path == "t"; we may
* have "t/a" in the index.
*/
- if (p_len < ce_len && !memcmp(ce_name, p->path, p_len) &&
+ if (p_len < ce_len && !memcmp(ce_name, p, p_len) &&
ce_name[p_len] < '/')
continue; /* keep looking */
break;
@@ -1125,7 +1128,7 @@ static int find_cache_pos(struct traverse_info *info,
static struct cache_entry *find_cache_entry(struct traverse_info *info,
const struct name_entry *p)
{
- int pos = find_cache_pos(info, p);
+ int pos = find_cache_pos(info, p->path, p->pathlen);
struct unpack_trees_options *o = info->data;
if (0 <= pos)
@@ -1138,10 +1141,10 @@ static void debug_path(struct traverse_info *info)
{
if (info->prev) {
debug_path(info->prev);
- if (*info->prev->name.path)
+ if (*info->prev->name)
putchar('/');
}
- printf("%s", info->name.path);
+ printf("%s", info->name);
}
static void debug_name_entry(int i, struct name_entry *n)
@@ -1265,7 +1268,8 @@ static int clear_ce_flags_1(struct index_state *istate,
struct cache_entry **cache, int nr,
struct strbuf *prefix,
int select_mask, int clear_mask,
- struct exclude_list *el, int defval);
+ struct pattern_list *pl,
+ enum pattern_match_result default_match);
/* Whole directory matching */
static int clear_ce_flags_dir(struct index_state *istate,
@@ -1273,19 +1277,21 @@ static int clear_ce_flags_dir(struct index_state *istate,
struct strbuf *prefix,
char *basename,
int select_mask, int clear_mask,
- struct exclude_list *el, int defval)
+ struct pattern_list *pl,
+ enum pattern_match_result default_match)
{
struct cache_entry **cache_end;
int dtype = DT_DIR;
- int ret = is_excluded_from_list(prefix->buf, prefix->len,
- basename, &dtype, el, istate);
int rc;
+ enum pattern_match_result ret;
+ ret = path_matches_pattern_list(prefix->buf, prefix->len,
+ basename, &dtype, pl, istate);
strbuf_addch(prefix, '/');
/* If undecided, use matching result of parent dir in defval */
- if (ret < 0)
- ret = defval;
+ if (ret == UNDECIDED)
+ ret = default_match;
for (cache_end = cache; cache_end != cache + nr; cache_end++) {
struct cache_entry *ce = *cache_end;
@@ -1294,23 +1300,23 @@ static int clear_ce_flags_dir(struct index_state *istate,
}
/*
- * TODO: check el, if there are no patterns that may conflict
+ * TODO: check pl, if there are no patterns that may conflict
* with ret (iow, we know in advance the incl/excl
* decision for the entire directory), clear flag here without
* calling clear_ce_flags_1(). That function will call
- * the expensive is_excluded_from_list() on every entry.
+ * the expensive path_matches_pattern_list() on every entry.
*/
rc = clear_ce_flags_1(istate, cache, cache_end - cache,
prefix,
select_mask, clear_mask,
- el, ret);
+ pl, ret);
strbuf_setlen(prefix, prefix->len - 1);
return rc;
}
/*
* Traverse the index, find every entry that matches according to
- * o->el. Do "ce_flags &= ~clear_mask" on those entries. Return the
+ * o->pl. Do "ce_flags &= ~clear_mask" on those entries. Return the
* number of traversed entries.
*
* If select_mask is non-zero, only entries whose ce_flags has on of
@@ -1327,7 +1333,8 @@ static int clear_ce_flags_1(struct index_state *istate,
struct cache_entry **cache, int nr,
struct strbuf *prefix,
int select_mask, int clear_mask,
- struct exclude_list *el, int defval)
+ struct pattern_list *pl,
+ enum pattern_match_result default_match)
{
struct cache_entry **cache_end = cache + nr;
@@ -1338,7 +1345,8 @@ static int clear_ce_flags_1(struct index_state *istate,
while(cache != cache_end) {
struct cache_entry *ce = *cache;
const char *name, *slash;
- int len, dtype, ret;
+ int len, dtype;
+ enum pattern_match_result ret;
if (select_mask && !(ce->ce_flags & select_mask)) {
cache++;
@@ -1362,7 +1370,7 @@ static int clear_ce_flags_1(struct index_state *istate,
prefix,
prefix->buf + prefix->len - len,
select_mask, clear_mask,
- el, defval);
+ pl, default_match);
/* clear_c_f_dir eats a whole dir already? */
if (processed) {
@@ -1374,18 +1382,20 @@ static int clear_ce_flags_1(struct index_state *istate,
strbuf_addch(prefix, '/');
cache += clear_ce_flags_1(istate, cache, cache_end - cache,
prefix,
- select_mask, clear_mask, el, defval);
+ select_mask, clear_mask, pl,
+ default_match);
strbuf_setlen(prefix, prefix->len - len - 1);
continue;
}
/* Non-directory */
dtype = ce_to_dtype(ce);
- ret = is_excluded_from_list(ce->name, ce_namelen(ce),
- name, &dtype, el, istate);
- if (ret < 0)
- ret = defval;
- if (ret > 0)
+ ret = path_matches_pattern_list(ce->name,
+ ce_namelen(ce),
+ name, &dtype, pl, istate);
+ if (ret == UNDECIDED)
+ ret = default_match;
+ if (ret == MATCHED)
ce->ce_flags &= ~clear_mask;
cache++;
}
@@ -1394,7 +1404,7 @@ static int clear_ce_flags_1(struct index_state *istate,
static int clear_ce_flags(struct index_state *istate,
int select_mask, int clear_mask,
- struct exclude_list *el)
+ struct pattern_list *pl)
{
static struct strbuf prefix = STRBUF_INIT;
@@ -1405,13 +1415,13 @@ static int clear_ce_flags(struct index_state *istate,
istate->cache_nr,
&prefix,
select_mask, clear_mask,
- el, 0);
+ pl, 0);
}
/*
* Set/Clear CE_NEW_SKIP_WORKTREE according to $GIT_DIR/info/sparse-checkout
*/
-static void mark_new_skip_worktree(struct exclude_list *el,
+static void mark_new_skip_worktree(struct pattern_list *pl,
struct index_state *istate,
int select_flag, int skip_wt_flag)
{
@@ -1437,7 +1447,7 @@ static void mark_new_skip_worktree(struct exclude_list *el,
* 2. Widen worktree according to sparse-checkout file.
* Matched entries will have skip_wt_flag cleared (i.e. "in")
*/
- clear_ce_flags(istate, select_flag, skip_wt_flag, el);
+ clear_ce_flags(istate, select_flag, skip_wt_flag, pl);
}
static int verify_absent(const struct cache_entry *,
@@ -1453,21 +1463,21 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
{
int i, ret;
static struct cache_entry *dfc;
- struct exclude_list el;
+ struct pattern_list pl;
if (len > MAX_UNPACK_TREES)
die("unpack_trees takes at most %d trees", MAX_UNPACK_TREES);
trace_performance_enter();
- memset(&el, 0, sizeof(el));
+ memset(&pl, 0, sizeof(pl));
if (!core_apply_sparse_checkout || !o->update)
o->skip_sparse_checkout = 1;
if (!o->skip_sparse_checkout) {
char *sparse = git_pathdup("info/sparse-checkout");
- if (add_excludes_from_file_to_list(sparse, "", 0, &el, NULL) < 0)
+ if (add_patterns_from_file_to_list(sparse, "", 0, &pl, NULL) < 0)
o->skip_sparse_checkout = 1;
else
- o->el = &el;
+ o->pl = &pl;
free(sparse);
}
@@ -1498,7 +1508,7 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
* Sparse checkout loop #1: set NEW_SKIP_WORKTREE on existing entries
*/
if (!o->skip_sparse_checkout)
- mark_new_skip_worktree(o->el, o->src_index, 0, CE_NEW_SKIP_WORKTREE);
+ mark_new_skip_worktree(o->pl, o->src_index, 0, CE_NEW_SKIP_WORKTREE);
if (!dfc)
dfc = xcalloc(1, cache_entry_size(0));
@@ -1563,7 +1573,7 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
* If the will have NEW_SKIP_WORKTREE, also set CE_SKIP_WORKTREE
* so apply_sparse_checkout() won't attempt to remove it from worktree
*/
- mark_new_skip_worktree(o->el, &o->result, CE_ADDED, CE_SKIP_WORKTREE | CE_NEW_SKIP_WORKTREE);
+ mark_new_skip_worktree(o->pl, &o->result, CE_ADDED, CE_SKIP_WORKTREE | CE_NEW_SKIP_WORKTREE);
ret = 0;
for (i = 0; i < o->result.cache_nr; i++) {
@@ -1631,7 +1641,7 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
done:
trace_performance_leave("unpack_trees");
- clear_exclude_list(&el);
+ clear_pattern_list(&pl);
return ret;
return_failed:
diff --git a/unpack-trees.h b/unpack-trees.h
index d344d7d..f2eee0c 100644
--- a/unpack-trees.h
+++ b/unpack-trees.h
@@ -10,7 +10,7 @@
struct cache_entry;
struct unpack_trees_options;
-struct exclude_list;
+struct pattern_list;
typedef int (*merge_fn_t)(const struct cache_entry * const *src,
struct unpack_trees_options *options);
@@ -83,7 +83,7 @@ struct unpack_trees_options {
struct index_state *src_index;
struct index_state result;
- struct exclude_list *el; /* for internal use */
+ struct pattern_list *pl; /* for internal use */
};
int unpack_trees(unsigned n, struct tree_desc *t,
diff --git a/upload-pack.c b/upload-pack.c
index 222cd3a..a00d7ec 100644
--- a/upload-pack.c
+++ b/upload-pack.c
@@ -140,18 +140,17 @@ static void create_pack_file(const struct object_array *have_obj,
argv_array_push(&pack_objects.args, "--delta-base-offset");
if (use_include_tag)
argv_array_push(&pack_objects.args, "--include-tag");
- if (filter_options.filter_spec) {
- struct strbuf expanded_filter_spec = STRBUF_INIT;
- expand_list_objects_filter_spec(&filter_options,
- &expanded_filter_spec);
+ if (filter_options.choice) {
+ const char *spec =
+ expand_list_objects_filter_spec(&filter_options);
if (pack_objects.use_shell) {
struct strbuf buf = STRBUF_INIT;
- sq_quote_buf(&buf, expanded_filter_spec.buf);
+ sq_quote_buf(&buf, spec);
argv_array_pushf(&pack_objects.args, "--filter=%s", buf.buf);
strbuf_release(&buf);
} else {
argv_array_pushf(&pack_objects.args, "--filter=%s",
- expanded_filter_spec.buf);
+ spec);
}
}
@@ -722,7 +721,7 @@ static void deepen_by_rev_list(struct packet_writer *writer, int ac,
{
struct commit_list *result;
- close_commit_graph(the_repository->objects);
+ disable_commit_graph(the_repository);
result = get_shallow_commits_by_rev_list(ac, av, SHALLOW, NOT_SHALLOW);
send_shallow(writer, result);
free_commit_list(result);
@@ -884,6 +883,7 @@ static void receive_needs(struct packet_reader *reader, struct object_array *wan
if (skip_prefix(reader->line, "filter ", &arg)) {
if (!filter_capability_requested)
die("git upload-pack: filtering capability not negotiated");
+ list_objects_filter_die_if_populated(&filter_options);
parse_list_objects_filter(&filter_options, arg);
continue;
}
@@ -1305,6 +1305,7 @@ static void process_args(struct packet_reader *request,
}
if (allow_filter && skip_prefix(arg, "filter ", &p)) {
+ list_objects_filter_die_if_populated(&filter_options);
parse_list_objects_filter(&filter_options, p);
continue;
}
diff --git a/url.c b/url.c
index 1b8ef78..e34e5e7 100644
--- a/url.c
+++ b/url.c
@@ -86,6 +86,12 @@ char *url_decode_mem(const char *url, int len)
return url_decode_internal(&url, len, NULL, &out, 0);
}
+char *url_percent_decode(const char *encoded)
+{
+ struct strbuf out = STRBUF_INIT;
+ return url_decode_internal(&encoded, strlen(encoded), NULL, &out, 0);
+}
+
char *url_decode_parameter_name(const char **query)
{
struct strbuf out = STRBUF_INIT;
diff --git a/url.h b/url.h
index 00b7d58..2a27c34 100644
--- a/url.h
+++ b/url.h
@@ -7,6 +7,14 @@ int is_url(const char *url);
int is_urlschemechar(int first_flag, int ch);
char *url_decode(const char *url);
char *url_decode_mem(const char *url, int len);
+
+/*
+ * Similar to the url_decode_{,mem} methods above, but doesn't assume there
+ * is a scheme followed by a : at the start of the string. Instead, %-sequences
+ * before any : are also parsed.
+ */
+char *url_percent_decode(const char *encoded);
+
char *url_decode_parameter_name(const char **query);
char *url_decode_parameter_value(const char **query);
diff --git a/userdiff.c b/userdiff.c
index e74a6d4..e187d35 100644
--- a/userdiff.c
+++ b/userdiff.c
@@ -23,6 +23,15 @@ IPATTERN("ada",
"[a-zA-Z][a-zA-Z0-9_]*"
"|[-+]?[0-9][0-9#_.aAbBcCdDeEfF]*([eE][+-]?[0-9_]+)?"
"|=>|\\.\\.|\\*\\*|:=|/=|>=|<=|<<|>>|<>"),
+PATTERNS("dts",
+ "!;\n"
+ "!=\n"
+ /* lines beginning with a word optionally preceded by '&' or the root */
+ "^[ \t]*((/[ \t]*\\{|&?[a-zA-Z_]).*)",
+ /* -- */
+ /* Property names and math operators */
+ "[a-zA-Z0-9,._+?#-]+"
+ "|[-+*/%&^|!~]|>>|<<|&&|\\|\\|"),
IPATTERN("fortran",
"!^([C*]|[ \t]*!)\n"
"!^[ \t]*MODULE[ \t]+PROCEDURE[ \t]\n"
diff --git a/utf8.c b/utf8.c
index 3b42fad..5c8f151 100644
--- a/utf8.c
+++ b/utf8.c
@@ -95,13 +95,11 @@ static int git_wcwidth(ucs_char_t ch)
return -1;
/* binary search in table of non-spacing characters */
- if (bisearch(ch, zero_width, sizeof(zero_width)
- / sizeof(struct interval) - 1))
+ if (bisearch(ch, zero_width, ARRAY_SIZE(zero_width) - 1))
return 0;
/* binary search in table of double width characters */
- if (bisearch(ch, double_width, sizeof(double_width)
- / sizeof(struct interval) - 1))
+ if (bisearch(ch, double_width, ARRAY_SIZE(double_width) - 1))
return 2;
return 1;
diff --git a/wrapper.c b/wrapper.c
index 1e45ab7..e1eaef2 100644
--- a/wrapper.c
+++ b/wrapper.c
@@ -4,12 +4,6 @@
#include "cache.h"
#include "config.h"
-static void do_nothing(size_t size)
-{
-}
-
-static void (*try_to_free_routine)(size_t size) = do_nothing;
-
static int memory_limit_check(size_t size, int gentle)
{
static size_t limit = 0;
@@ -30,24 +24,11 @@ static int memory_limit_check(size_t size, int gentle)
return 0;
}
-try_to_free_t set_try_to_free_routine(try_to_free_t routine)
-{
- try_to_free_t old = try_to_free_routine;
- if (!routine)
- routine = do_nothing;
- try_to_free_routine = routine;
- return old;
-}
-
char *xstrdup(const char *str)
{
char *ret = strdup(str);
- if (!ret) {
- try_to_free_routine(strlen(str) + 1);
- ret = strdup(str);
- if (!ret)
- die("Out of memory, strdup failed");
- }
+ if (!ret)
+ die("Out of memory, strdup failed");
return ret;
}
@@ -61,19 +42,13 @@ static void *do_xmalloc(size_t size, int gentle)
if (!ret && !size)
ret = malloc(1);
if (!ret) {
- try_to_free_routine(size);
- ret = malloc(size);
- if (!ret && !size)
- ret = malloc(1);
- if (!ret) {
- if (!gentle)
- die("Out of memory, malloc failed (tried to allocate %lu bytes)",
- (unsigned long)size);
- else {
- error("Out of memory, malloc failed (tried to allocate %lu bytes)",
- (unsigned long)size);
- return NULL;
- }
+ if (!gentle)
+ die("Out of memory, malloc failed (tried to allocate %lu bytes)",
+ (unsigned long)size);
+ else {
+ error("Out of memory, malloc failed (tried to allocate %lu bytes)",
+ (unsigned long)size);
+ return NULL;
}
}
#ifdef XMALLOC_POISON
@@ -138,14 +113,8 @@ void *xrealloc(void *ptr, size_t size)
ret = realloc(ptr, size);
if (!ret && !size)
ret = realloc(ptr, 1);
- if (!ret) {
- try_to_free_routine(size);
- ret = realloc(ptr, size);
- if (!ret && !size)
- ret = realloc(ptr, 1);
- if (!ret)
- die("Out of memory, realloc failed");
- }
+ if (!ret)
+ die("Out of memory, realloc failed");
return ret;
}
@@ -160,14 +129,8 @@ void *xcalloc(size_t nmemb, size_t size)
ret = calloc(nmemb, size);
if (!ret && (!nmemb || !size))
ret = calloc(1, 1);
- if (!ret) {
- try_to_free_routine(nmemb * size);
- ret = calloc(nmemb, size);
- if (!ret && (!nmemb || !size))
- ret = calloc(1, 1);
- if (!ret)
- die("Out of memory, calloc failed");
- }
+ if (!ret)
+ die("Out of memory, calloc failed");
return ret;
}
@@ -478,7 +441,9 @@ int git_mkstemps_mode(char *pattern, int suffix_len, int mode)
"abcdefghijklmnopqrstuvwxyz"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"0123456789";
- static const int num_letters = 62;
+ 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;
@@ -487,12 +452,12 @@ int git_mkstemps_mode(char *pattern, int suffix_len, int mode)
len = strlen(pattern);
- if (len < 6 + suffix_len) {
+ if (len < num_x + suffix_len) {
errno = EINVAL;
return -1;
}
- if (strncmp(&pattern[len - 6 - suffix_len], "XXXXXX", 6)) {
+ if (strncmp(&pattern[len - num_x - suffix_len], x_pattern, num_x)) {
errno = EINVAL;
return -1;
}
@@ -503,16 +468,15 @@ int git_mkstemps_mode(char *pattern, int suffix_len, int mode)
*/
gettimeofday(&tv, NULL);
value = ((uint64_t)tv.tv_usec << 16) ^ tv.tv_sec ^ getpid();
- filename_template = &pattern[len - 6 - suffix_len];
+ filename_template = &pattern[len - num_x - suffix_len];
for (count = 0; count < TMP_MAX; ++count) {
uint64_t v = value;
+ int i;
/* Fill in the random bits. */
- filename_template[0] = letters[v % num_letters]; v /= num_letters;
- filename_template[1] = letters[v % num_letters]; v /= num_letters;
- filename_template[2] = letters[v % num_letters]; v /= num_letters;
- filename_template[3] = letters[v % num_letters]; v /= num_letters;
- filename_template[4] = letters[v % num_letters]; v /= num_letters;
- filename_template[5] = letters[v % num_letters]; v /= num_letters;
+ for (i = 0; i < num_x; i++) {
+ filename_template[i] = letters[v % num_letters];
+ v /= num_letters;
+ }
fd = open(pattern, O_CREAT | O_EXCL | O_RDWR, mode);
if (fd >= 0)
diff --git a/wt-status.c b/wt-status.c
index 9f6c65a..cc6f945 100644
--- a/wt-status.c
+++ b/wt-status.c
@@ -1434,6 +1434,8 @@ static void show_cherry_pick_in_progress(struct wt_status *s,
status_printf_ln(s, color,
_(" (all conflicts fixed: run \"git cherry-pick --continue\")"));
status_printf_ln(s, color,
+ _(" (use \"git cherry-pick --skip\" to skip this patch)"));
+ status_printf_ln(s, color,
_(" (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)"));
}
wt_longstatus_print_trailer(s);
@@ -1461,6 +1463,8 @@ static void show_revert_in_progress(struct wt_status *s,
status_printf_ln(s, color,
_(" (all conflicts fixed: run \"git revert --continue\")"));
status_printf_ln(s, color,
+ _(" (use \"git revert --skip\" to skip this patch)"));
+ status_printf_ln(s, color,
_(" (use \"git revert --abort\" to cancel the revert operation)"));
}
wt_longstatus_print_trailer(s);
@@ -2025,7 +2029,7 @@ static void wt_porcelain_v2_print_tracking(struct wt_status *s)
char eol = s->null_termination ? '\0' : '\n';
fprintf(s->fp, "# branch.oid %s%c",
- (s->is_initial ? "(initial)" : sha1_to_hex(s->sha1_commit)),
+ (s->is_initial ? "(initial)" : oid_to_hex(&s->oid_commit)),
eol);
if (!s->branch)
diff --git a/wt-status.h b/wt-status.h
index 77dad5b..71c3f25 100644
--- a/wt-status.h
+++ b/wt-status.h
@@ -116,7 +116,7 @@ struct wt_status {
int rename_limit;
enum wt_status_format status_format;
struct wt_status_state state;
- unsigned char sha1_commit[GIT_MAX_RAWSZ]; /* when not Initial */
+ struct object_id oid_commit; /* when not Initial */
/* These are computed during processing of the individual sections */
int committable;
diff --git a/xdiff/xdiffi.c b/xdiff/xdiffi.c
index 1f1f4a3..bd03513 100644
--- a/xdiff/xdiffi.c
+++ b/xdiff/xdiffi.c
@@ -38,9 +38,9 @@ typedef struct s_xdpsplit {
* Basically considers a "box" (off1, off2, lim1, lim2) and scan from both
* the forward diagonal starting from (off1, off2) and the backward diagonal
* starting from (lim1, lim2). If the K values on the same diagonal crosses
- * returns the furthest point of reach. We might end up having to expensive
- * cases using this algorithm is full, so a little bit of heuristic is needed
- * to cut the search and to return a suboptimal point.
+ * returns the furthest point of reach. We might encounter expensive edge cases
+ * using this algorithm, so a little bit of heuristic is needed to cut the
+ * search and to return a suboptimal point.
*/
static long xdl_split(unsigned long const *ha1, long off1, long lim1,
unsigned long const *ha2, long off2, long lim2,
@@ -63,11 +63,13 @@ static long xdl_split(unsigned long const *ha1, long off1, long lim1,
int got_snake = 0;
/*
- * We need to extent the diagonal "domain" by one. If the next
+ * We need to extend the diagonal "domain" by one. If the next
* values exits the box boundaries we need to change it in the
- * opposite direction because (max - min) must be a power of two.
+ * opposite direction because (max - min) must be a power of
+ * two.
+ *
* Also we initialize the external K value to -1 so that we can
- * avoid extra conditions check inside the core loop.
+ * avoid extra conditions in the check inside the core loop.
*/
if (fmin > dmin)
kvdf[--fmin - 1] = -1;
@@ -98,11 +100,13 @@ static long xdl_split(unsigned long const *ha1, long off1, long lim1,
}
/*
- * We need to extent the diagonal "domain" by one. If the next
+ * We need to extend the diagonal "domain" by one. If the next
* values exits the box boundaries we need to change it in the
- * opposite direction because (max - min) must be a power of two.
+ * opposite direction because (max - min) must be a power of
+ * two.
+ *
* Also we initialize the external K value to -1 so that we can
- * avoid extra conditions check inside the core loop.
+ * avoid extra conditions in the check inside the core loop.
*/
if (bmin > dmin)
kvdb[--bmin - 1] = XDL_LINE_MAX;
@@ -138,7 +142,7 @@ static long xdl_split(unsigned long const *ha1, long off1, long lim1,
/*
* If the edit cost is above the heuristic trigger and if
* we got a good snake, we sample current diagonals to see
- * if some of the, have reached an "interesting" path. Our
+ * if some of them have reached an "interesting" path. Our
* measure is a function of the distance from the diagonal
* corner (i1 + i2) penalized with the distance from the
* mid diagonal itself. If this value is above the current
@@ -196,8 +200,9 @@ static long xdl_split(unsigned long const *ha1, long off1, long lim1,
}
/*
- * Enough is enough. We spent too much time here and now we collect
- * the furthest reaching path using the (i1 + i2) measure.
+ * Enough is enough. We spent too much time here and now we
+ * collect the furthest reaching path using the (i1 + i2)
+ * measure.
*/
if (ec >= xenv->mxcost) {
long fbest, fbest1, bbest, bbest1;
@@ -244,9 +249,9 @@ static long xdl_split(unsigned long const *ha1, long off1, long lim1,
/*
- * Rule: "Divide et Impera". Recursively split the box in sub-boxes by calling
- * the box splitting function. Note that the real job (marking changed lines)
- * is done in the two boundary reaching checks.
+ * Rule: "Divide et Impera" (divide & conquer). Recursively split the box in
+ * sub-boxes by calling the box splitting function. Note that the real job
+ * (marking changed lines) is done in the two boundary reaching checks.
*/
int xdl_recs_cmp(diffdata_t *dd1, long off1, long lim1,
diffdata_t *dd2, long off2, long lim2,
@@ -323,7 +328,9 @@ int xdl_do_diff(mmfile_t *mf1, mmfile_t *mf2, xpparam_t const *xpp,
}
/*
- * Allocate and setup K vectors to be used by the differential algorithm.
+ * Allocate and setup K vectors to be used by the differential
+ * algorithm.
+ *
* One is to store the forward path and one to store the backward path.
*/
ndiags = xe->xdf1.nreff + xe->xdf2.nreff + 3;
@@ -394,8 +401,8 @@ static int recs_match(xrecord_t *rec1, xrecord_t *rec2, long flags)
/*
* If a line is indented more than this, get_indent() just returns this value.
* This avoids having to do absurd amounts of work for data that are not
- * human-readable text, and also ensures that the output of get_indent fits within
- * an int.
+ * human-readable text, and also ensures that the output of get_indent fits
+ * within an int.
*/
#define MAX_INDENT 200
@@ -429,9 +436,9 @@ static int get_indent(xrecord_t *rec)
}
/*
- * If more than this number of consecutive blank rows are found, just return this
- * value. This avoids requiring O(N^2) work for pathological cases, and also
- * ensures that the output of score_split fits in an int.
+ * If more than this number of consecutive blank rows are found, just return
+ * this value. This avoids requiring O(N^2) work for pathological cases, and
+ * also ensures that the output of score_split fits in an int.
*/
#define MAX_BLANKS 20
@@ -443,8 +450,8 @@ struct split_measurement {
int end_of_file;
/*
- * How much is the line immediately following the split indented (or -1 if
- * the line is blank):
+ * How much is the line immediately following the split indented (or -1
+ * if the line is blank):
*/
int indent;
@@ -454,8 +461,8 @@ struct split_measurement {
int pre_blank;
/*
- * How much is the nearest non-blank line above the split indented (or -1
- * if there is no such line)?
+ * How much is the nearest non-blank line above the split indented (or
+ * -1 if there is no such line)?
*/
int pre_indent;
@@ -581,13 +588,13 @@ static void measure_split(const xdfile_t *xdf, long split,
/*
* Compute a badness score for the hypothetical split whose measurements are
- * stored in m. The weight factors were determined empirically using the tools and
- * corpus described in
+ * stored in m. The weight factors were determined empirically using the tools
+ * and corpus described in
*
* https://github.com/mhagger/diff-slider-tools
*
- * Also see that project if you want to improve the weights based on, for example,
- * a larger or more diverse corpus.
+ * Also see that project if you want to improve the weights based on, for
+ * example, a larger or more diverse corpus.
*/
static void score_add_split(const struct split_measurement *m, struct split_score *s)
{
@@ -809,13 +816,16 @@ int xdl_change_compact(xdfile_t *xdf, xdfile_t *xdfo, long flags) {
group_init(xdfo, &go);
while (1) {
- /* If the group is empty in the to-be-compacted file, skip it: */
+ /*
+ * If the group is empty in the to-be-compacted file, skip it:
+ */
if (g.end == g.start)
goto next;
/*
* Now shift the change up and then down as far as possible in
- * each direction. If it bumps into any other changes, merge them.
+ * each direction. If it bumps into any other changes, merge
+ * them.
*/
do {
groupsize = g.end - g.start;
@@ -858,17 +868,17 @@ int xdl_change_compact(xdfile_t *xdf, xdfile_t *xdfo, long flags) {
* If the group can be shifted, then we can possibly use this
* freedom to produce a more intuitive diff.
*
- * The group is currently shifted as far down as possible, so the
- * heuristics below only have to handle upwards shifts.
+ * The group is currently shifted as far down as possible, so
+ * the heuristics below only have to handle upwards shifts.
*/
if (g.end == earliest_end) {
/* no shifting was possible */
} else if (end_matching_other != -1) {
/*
- * Move the possibly merged group of changes back to line
- * up with the last group of changes from the other file
- * that it can align with.
+ * Move the possibly merged group of changes back to
+ * line up with the last group of changes from the
+ * other file that it can align with.
*/
while (go.end == go.start) {
if (group_slide_up(xdf, &g, flags))
@@ -879,14 +889,15 @@ int xdl_change_compact(xdfile_t *xdf, xdfile_t *xdfo, long flags) {
} else if (flags & XDF_INDENT_HEURISTIC) {
/*
* Indent heuristic: a group of pure add/delete lines
- * implies two splits, one between the end of the "before"
- * context and the start of the group, and another between
- * the end of the group and the beginning of the "after"
- * context. Some splits are aesthetically better and some
- * are worse. We compute a badness "score" for each split,
- * and add the scores for the two splits to define a
- * "score" for each position that the group can be shifted
- * to. Then we pick the shift with the lowest score.
+ * implies two splits, one between the end of the
+ * "before" context and the start of the group, and
+ * another between the end of the group and the
+ * beginning of the "after" context. Some splits are
+ * aesthetically better and some are worse. We compute
+ * a badness "score" for each split, and add the scores
+ * for the two splits to define a "score" for each
+ * position that the group can be shifted to. Then we
+ * pick the shift with the lowest score.
*/
long shift, best_shift = -1;
struct split_score best_score;