summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--.travis.yml12
-rw-r--r--Documentation/CodingGuidelines5
-rw-r--r--Documentation/RelNotes/2.8.0.txt427
-rw-r--r--Documentation/blame-options.txt7
-rw-r--r--Documentation/config.txt87
-rw-r--r--Documentation/fetch-options.txt15
-rw-r--r--Documentation/git-blame.txt3
-rw-r--r--Documentation/git-bundle.txt2
-rw-r--r--Documentation/git-check-ignore.txt1
-rw-r--r--Documentation/git-clone.txt3
-rw-r--r--Documentation/git-config.txt20
-rw-r--r--Documentation/git-credential-cache.txt2
-rw-r--r--Documentation/git-for-each-ref.txt20
-rw-r--r--Documentation/git-format-patch.txt6
-rw-r--r--Documentation/git-grep.txt13
-rw-r--r--Documentation/git-interpret-trailers.txt24
-rw-r--r--Documentation/git-ls-files.txt22
-rw-r--r--Documentation/git-ls-remote.txt18
-rw-r--r--Documentation/git-pull.txt4
-rw-r--r--Documentation/git-push.txt9
-rw-r--r--Documentation/git-rebase.txt2
-rw-r--r--Documentation/git-repack.txt2
-rw-r--r--Documentation/git-svn.txt12
-rw-r--r--Documentation/git-update-index.txt67
-rw-r--r--Documentation/git.txt9
-rw-r--r--Documentation/gitcore-tutorial.txt18
-rw-r--r--Documentation/gitignore.txt53
-rw-r--r--Documentation/gittutorial.txt2
-rw-r--r--Documentation/merge-strategies.txt12
-rw-r--r--Documentation/pretty-options.txt8
-rw-r--r--Documentation/revisions.txt31
-rw-r--r--Documentation/technical/api-remote.txt4
-rw-r--r--Documentation/urls.txt6
-rw-r--r--Documentation/user-manual.txt2
-rwxr-xr-xGIT-VERSION-GEN2
-rw-r--r--Makefile28
-rw-r--r--README.md (renamed from README)56
l---------RelNotes2
-rw-r--r--bisect.c8
-rw-r--r--builtin/am.c37
-rw-r--r--builtin/apply.c16
-rw-r--r--builtin/blame.c34
-rw-r--r--builtin/cat-file.c2
-rw-r--r--builtin/check-attr.c22
-rw-r--r--builtin/check-ignore.c20
-rw-r--r--builtin/check-mailmap.c2
-rw-r--r--builtin/checkout-index.c95
-rw-r--r--builtin/checkout.c3
-rw-r--r--builtin/clean.c6
-rw-r--r--builtin/clone.c25
-rw-r--r--builtin/column.c2
-rw-r--r--builtin/commit.c2
-rw-r--r--builtin/config.c33
-rw-r--r--builtin/fetch-pack.c2
-rw-r--r--builtin/fetch.c17
-rw-r--r--builtin/grep.c60
-rw-r--r--builtin/hash-object.c13
-rw-r--r--builtin/interpret-trailers.c13
-rw-r--r--builtin/log.c6
-rw-r--r--builtin/ls-files.c35
-rw-r--r--builtin/ls-remote.c90
-rw-r--r--builtin/mktree.c14
-rw-r--r--builtin/notes.c33
-rw-r--r--builtin/pull.c17
-rw-r--r--builtin/push.c42
-rw-r--r--builtin/remote.c33
-rw-r--r--builtin/repack.c2
-rw-r--r--builtin/rev-parse.c4
-rw-r--r--builtin/send-pack.c2
-rw-r--r--builtin/shortlog.c186
-rw-r--r--builtin/update-index.c100
-rw-r--r--builtin/worktree.c15
-rw-r--r--cache.h16
-rw-r--r--compat/mingw.c100
-rw-r--r--compat/mingw.h28
-rw-r--r--compat/nedmalloc/malloc.c.h7
-rw-r--r--compat/poll/poll.c2
-rw-r--r--compat/terminal.c2
-rw-r--r--compat/win32/pthread.h9
-rw-r--r--compat/winansi.c5
-rw-r--r--config.c60
-rw-r--r--config.mak.uname36
-rw-r--r--configure.ac7
-rw-r--r--connect.c12
-rw-r--r--connect.h2
-rw-r--r--contrib/completion/git-completion.bash4
-rwxr-xr-xcontrib/examples/git-commit.sh8
-rwxr-xr-xcontrib/examples/git-fetch.sh4
-rwxr-xr-xcontrib/examples/git-merge.sh4
-rwxr-xr-xcontrib/examples/git-repack.sh4
-rwxr-xr-xcontrib/examples/git-revert.sh8
-rw-r--r--contrib/subtree/Makefile6
-rwxr-xr-xcontrib/subtree/git-subtree.sh10
-rwxr-xr-xcontrib/thunderbird-patch-inline/appp.sh4
-rw-r--r--convert.c277
-rw-r--r--convert.h3
-rw-r--r--credential-cache--daemon.c42
-rw-r--r--credential-store.c2
-rw-r--r--credential.c2
-rw-r--r--daemon.c2
-rw-r--r--dir.c266
-rw-r--r--dir.h6
-rw-r--r--environment.c7
-rw-r--r--fast-import.c4
-rwxr-xr-xgit-gui/po/glossary/txt-to-pot.sh4
-rwxr-xr-xgit-p4.py9
-rw-r--r--git-rebase--interactive.sh3
-rw-r--r--git-sh-setup.sh4
-rwxr-xr-xgit-submodule.sh29
-rw-r--r--git.c63
-rw-r--r--http.c186
-rw-r--r--http.h2
-rw-r--r--ident.c64
-rw-r--r--mailinfo.c8
-rw-r--r--merge-recursive.c14
-rw-r--r--merge-recursive.h1
-rw-r--r--notes-cache.c11
-rw-r--r--notes-utils.c6
-rw-r--r--notes.c21
-rw-r--r--notes.h17
-rw-r--r--pack-bitmap.c13
-rw-r--r--pack-revindex.c99
-rw-r--r--pack-revindex.h11
-rw-r--r--perl/Git.pm3
-rw-r--r--perl/Git/SVN/Editor.pm4
-rw-r--r--perl/Git/SVN/GlobSpec.pm18
-rw-r--r--po/TEAMS2
-rw-r--r--po/de.po2993
-rw-r--r--po/fr.po3033
-rw-r--r--po/git.pot2881
-rw-r--r--po/ko.po3106
-rw-r--r--po/ru.po3018
-rw-r--r--po/sv.po2895
-rw-r--r--po/vi.po2894
-rw-r--r--po/zh_CN.po3011
-rw-r--r--read-cache.c27
-rw-r--r--ref-filter.c458
-rw-r--r--refs.h2
-rw-r--r--refs/files-backend.c147
-rw-r--r--remote-curl.c19
-rw-r--r--remote-testsvn.c4
-rw-r--r--remote.c87
-rw-r--r--remote.h4
-rw-r--r--rerere.c4
-rw-r--r--revision.c9
-rw-r--r--run-command.c319
-rw-r--r--run-command.h77
-rw-r--r--sequencer.c2
-rw-r--r--sha1_file.c2
-rw-r--r--sha1_name.c20
-rw-r--r--shell.c2
-rw-r--r--sigchain.c9
-rw-r--r--sigchain.h1
-rw-r--r--strbuf.c39
-rw-r--r--strbuf.h37
-rw-r--r--submodule-config.c4
-rw-r--r--submodule.c140
-rw-r--r--submodule.h2
-rw-r--r--t/Makefile6
-rw-r--r--t/lib-git-daemon.sh5
-rw-r--r--t/lib-git-svn.sh12
-rw-r--r--t/lib-httpd.sh4
-rw-r--r--t/lib-httpd/apache.conf3
-rwxr-xr-xt/t0001-init.sh15
-rwxr-xr-xt/t0002-gitfile.sh2
-rwxr-xr-xt/t0008-ignores.sh2
-rwxr-xr-xt/t0021-conversion.sh16
-rwxr-xr-xt/t0027-auto-crlf.sh417
-rwxr-xr-xt/t0060-path-utils.sh9
-rwxr-xr-xt/t0061-run-command.sh53
-rwxr-xr-xt/t1100-commit-tree-options.sh4
-rwxr-xr-xt/t1300-repo-config.sh161
-rwxr-xr-xt/t1308-config-set.sh4
-rwxr-xr-xt/t1401-symbolic-ref.sh17
-rwxr-xr-xt/t1410-reflog.sh24
-rwxr-xr-xt/t1508-at-combinations.sh6
-rwxr-xr-xt/t1511-rev-parse-caret.sh57
-rwxr-xr-xt/t1512-rev-parse-disambiguation.sh8
-rwxr-xr-xt/t1700-split-index.sh2
-rwxr-xr-xt/t2011-checkout-invalid-head.sh39
-rwxr-xr-xt/t2025-worktree-add.sh19
-rwxr-xr-xt/t2102-update-index-symlinks.sh2
-rwxr-xr-xt/t3001-ls-files-others-exclude.sh7
-rwxr-xr-xt/t3007-ls-files-other-negative.sh153
-rwxr-xr-xt/t3030-merge-recursive.sh2
-rwxr-xr-xt/t3032-merge-recursive-space-options.sh (renamed from t/t3032-merge-recursive-options.sh)2
-rwxr-xr-xt/t3034-merge-recursive-rename-options.sh312
-rwxr-xr-xt/t3100-ls-tree-restrict.sh2
-rwxr-xr-xt/t3101-ls-tree-dirname.sh2
-rwxr-xr-xt/t3210-pack-refs.sh2
-rwxr-xr-xt/t3300-funny-names.sh1
-rwxr-xr-xt/t3301-notes.sh10
-rwxr-xr-xt/t3308-notes-merge.sh22
-rwxr-xr-xt/t3403-rebase-skip.sh2
-rwxr-xr-xt/t3511-cherry-pick-x.sh14
-rwxr-xr-xt/t3600-rm.sh6
-rwxr-xr-xt/t3700-add.sh16
-rwxr-xr-xt/t3703-add-magic-pathspec.sh2
-rwxr-xr-xt/t3902-quoted.sh1
-rwxr-xr-xt/t4014-format-patch.sh15
-rwxr-xr-xt/t4016-diff-quote.sh1
-rwxr-xr-xt/t4135-apply-weird-filenames.sh3
-rwxr-xr-xt/t4201-shortlog.sh22
-rwxr-xr-xt/t5100-mailinfo.sh12
-rwxr-xr-xt/t5300-pack-object.sh18
-rwxr-xr-xt/t5301-sliding-window.sh14
-rwxr-xr-xt/t5302-pack-index.sh34
-rwxr-xr-xt/t5303-pack-corruption-resilience.sh16
-rwxr-xr-xt/t5304-prune.sh2
-rwxr-xr-xt/t5305-include-tag.sh8
-rwxr-xr-xt/t5500-fetch-pack.sh20
-rwxr-xr-xt/t5505-remote.sh40
-rwxr-xr-xt/t5506-remote-groups.sh2
-rwxr-xr-xt/t5510-fetch.sh56
-rwxr-xr-xt/t5512-ls-remote.sh45
-rwxr-xr-xt/t5515-fetch-merge-logic.sh4
-rwxr-xr-xt/t5516-fetch-push.sh4
-rwxr-xr-xt/t5517-push-mirror.sh2
-rwxr-xr-xt/t5520-pull.sh10
-rwxr-xr-xt/t5522-pull-symlink.sh2
-rwxr-xr-xt/t5526-fetch-submodules.sh71
-rwxr-xr-xt/t5530-upload-pack-error.sh2
-rwxr-xr-xt/t5532-fetch-proxy.sh4
-rwxr-xr-xt/t5537-fetch-shallow.sh4
-rwxr-xr-xt/t5538-push-shallow.sh4
-rwxr-xr-xt/t5550-http-fetch-dumb.sh8
-rwxr-xr-xt/t5570-git-daemon.sh30
-rwxr-xr-xt/t5601-clone.sh43
-rwxr-xr-xt/t5700-clone-reference.sh2
-rwxr-xr-xt/t5710-info-alternate.sh2
-rwxr-xr-xt/t5900-repo-selection.sh2
-rwxr-xr-xt/t6001-rev-list-graft.sh12
-rwxr-xr-xt/t6002-rev-list-bisect.sh6
-rwxr-xr-xt/t6015-rev-list-show-all-parents.sh6
-rwxr-xr-xt/t6032-merge-large-rename.sh2
-rwxr-xr-xt/t6132-pathspec-exclude.sh2
-rwxr-xr-xt/t6302-for-each-ref-filter.sh42
-rwxr-xr-xt/t7001-mv.sh6
-rwxr-xr-xt/t7003-filter-branch.sh6
-rwxr-xr-xt/t7004-tag.sh16
-rwxr-xr-xt/t7006-pager.sh2
-rwxr-xr-xt/t7008-grep-binary.sh3
-rwxr-xr-xt/t7063-status-untracked-cache.sh89
-rwxr-xr-xt/t7103-reset-bare.sh2
-rwxr-xr-xt/t7406-submodule-update.sh4
-rwxr-xr-xt/t7408-submodule-reference.sh2
-rwxr-xr-xt/t7504-commit-msg-hook.sh2
-rwxr-xr-xt/t7505-prepare-commit-msg-hook.sh32
-rwxr-xr-xt/t7513-interpret-trailers.sh40
-rwxr-xr-xt/t7517-per-repo-email.sh39
-rwxr-xr-xt/t7602-merge-octopus-many.sh8
-rwxr-xr-xt/t7700-repack.sh4
-rwxr-xr-xt/t7800-difftool.sh14
-rwxr-xr-xt/t7810-grep.sh49
-rwxr-xr-xt/t8003-blame-corner-cases.sh4
-rwxr-xr-xt/t9001-send-email.sh12
-rwxr-xr-xt/t9003-help-autocorrect.sh52
-rwxr-xr-xt/t9100-git-svn-basic.sh23
-rwxr-xr-xt/t9101-git-svn-props.sh30
-rwxr-xr-xt/t9104-git-svn-follow-parent.sh68
-rwxr-xr-xt/t9105-git-svn-commit-diff.sh4
-rwxr-xr-xt/t9107-git-svn-migrate.sh28
-rwxr-xr-xt/t9108-git-svn-glob.sh29
-rwxr-xr-xt/t9109-git-svn-multi-glob.sh41
-rwxr-xr-xt/t9110-git-svn-use-svm-props.sh2
-rwxr-xr-xt/t9114-git-svn-dcommit-merge.sh12
-rwxr-xr-xt/t9115-git-svn-dcommit-funky-renames.sh40
-rwxr-xr-xt/t9118-git-svn-funky-branch-names.sh14
-rwxr-xr-xt/t9119-git-svn-info.sh2
-rwxr-xr-xt/t9124-git-svn-dcommit-auto-props.sh16
-rwxr-xr-xt/t9129-git-svn-i18n-commitencoding.sh16
-rwxr-xr-xt/t9130-git-svn-authors-file.sh14
-rwxr-xr-xt/t9132-git-svn-broken-symlink.sh4
-rwxr-xr-xt/t9137-git-svn-dcommit-clobber-series.sh24
-rwxr-xr-xt/t9138-git-svn-authors-prog.sh2
-rwxr-xr-xt/t9145-git-svn-master-branch.sh4
-rwxr-xr-xt/t9150-svk-mergetickets.sh2
-rwxr-xr-xt/t9168-git-svn-partially-globbed-names.sh223
-rwxr-xr-xt/t9200-git-cvsexportcommit.sh2
-rwxr-xr-xt/t9300-fast-import.sh68
-rwxr-xr-xt/t9350-fast-export.sh6
-rwxr-xr-xt/t9400-git-cvsserver-server.sh6
-rwxr-xr-xt/t9401-git-cvsserver-crlf.sh6
-rwxr-xr-xt/t9402-git-cvsserver-refs.sh6
-rwxr-xr-xt/t9501-gitweb-standalone-http-status.sh6
-rwxr-xr-xt/t9700/test.pl8
-rwxr-xr-xt/t9827-git-p4-change-filetype.sh66
-rwxr-xr-xt/t9901-git-web--browse.sh2
-rwxr-xr-xt/t9903-bash-prompt.sh2
-rw-r--r--t/test-lib.sh2
-rw-r--r--test-dump-untracked-cache.c4
-rw-r--r--test-fake-ssh.c30
-rw-r--r--test-path-utils.c2
-rw-r--r--test-run-command.c54
-rw-r--r--test-sha1-array.c2
-rwxr-xr-xtest-sha1.sh8
-rw-r--r--trailer.c71
-rw-r--r--trailer.h3
-rw-r--r--transport-helper.c20
-rw-r--r--transport.c354
-rw-r--r--transport.h8
-rw-r--r--tree-walk.c7
-rw-r--r--tree-walk.h1
-rw-r--r--unimplemented.sh2
-rw-r--r--unpack-trees.c51
-rw-r--r--walker.c2
-rw-r--r--wrapper.c20
-rw-r--r--wt-status.c8
309 files changed, 19159 insertions, 13462 deletions
diff --git a/.gitignore b/.gitignore
index 1c2f832138..5087ce1eb7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -187,6 +187,7 @@
/test-dump-cache-tree
/test-dump-split-index
/test-dump-untracked-cache
+/test-fake-ssh
/test-scrap-cache-tree
/test-genrandom
/test-hashmap
diff --git a/.travis.yml b/.travis.yml
index c3bf9c6d4d..78e433ba71 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,5 +1,11 @@
language: c
+sudo: false
+
+cache:
+ directories:
+ - $HOME/travis-cache
+
os:
- linux
- osx
@@ -15,12 +21,12 @@ addons:
env:
global:
+ - DEVELOPER=1
- P4_VERSION="15.2"
- GIT_LFS_VERSION="1.1.0"
- DEFAULT_TEST_TARGET=prove
- - GIT_PROVE_OPTS="--timer --jobs 3"
+ - GIT_PROVE_OPTS="--timer --jobs 3 --state=failed,slow,save"
- GIT_TEST_OPTS="--verbose --tee"
- - CFLAGS="-g -O2 -Wall -Werror"
- GIT_TEST_CLONE_2GB=YesPlease
# t9810 occasionally fails on Travis CI OS X
# t9816 occasionally fails with "TAP out of sequence errors" on Travis CI OS X
@@ -67,6 +73,8 @@ before_install:
p4 -V | grep Rev.;
echo "$(tput setaf 6)Git-LFS Version$(tput sgr0)";
git-lfs version;
+ mkdir -p $HOME/travis-cache;
+ ln -s $HOME/travis-cache/.prove t/.prove;
before_script: make --jobs=2
diff --git a/Documentation/CodingGuidelines b/Documentation/CodingGuidelines
index c6e536f180..0ddd36879a 100644
--- a/Documentation/CodingGuidelines
+++ b/Documentation/CodingGuidelines
@@ -171,6 +171,11 @@ For C programs:
- We try to keep to at most 80 characters per line.
+ - As a Git developer we assume you have a reasonably modern compiler
+ and we recommend you to enable the DEVELOPER makefile knob to
+ ensure your patch is clear of all compiler warnings we care about,
+ by e.g. "echo DEVELOPER=1 >>config.mak".
+
- We try to support a wide range of C compilers to compile Git with,
including old ones. That means that you should not use C99
initializers, even if a lot of compilers grok it.
diff --git a/Documentation/RelNotes/2.8.0.txt b/Documentation/RelNotes/2.8.0.txt
new file mode 100644
index 0000000000..6eb16ebb6f
--- /dev/null
+++ b/Documentation/RelNotes/2.8.0.txt
@@ -0,0 +1,427 @@
+Git 2.8 Release Notes
+=====================
+
+Backward compatibility note
+---------------------------
+
+The rsync:// transport has been removed.
+
+
+Updates since v2.7
+------------------
+
+UI, Workflows & Features
+
+ * It turns out "git clone" over rsync transport has been broken when
+ the source repository has packed references for a long time, and
+ nobody noticed nor complained about it.
+
+ * "push" learned that its "--delete" option can be shortened to
+ "-d", just like "branch --delete" and "branch -d" are the same
+ thing.
+
+ * "git blame" learned to produce the progress eye-candy when it takes
+ too much time before emitting the first line of the result.
+
+ * "git grep" can now be configured (or told from the command line)
+ how many threads to use when searching in the working tree files.
+
+ * Some "git notes" operations, e.g. "git log --notes=<note>", should
+ be able to read notes from any tree-ish that is shaped like a notes
+ tree, but the notes infrastructure required that the argument must
+ be a ref under refs/notes/. Loosen it to require a valid ref only
+ when the operation would update the notes (in which case we must
+ have a place to store the updated notes tree, iow, a ref).
+
+ * "git grep" by default does not fall back to its "--no-index"
+ behaviour outside a directory under Git's control (otherwise the
+ user may by mistake end up running a huge recursive search); with a
+ new configuration (set in $HOME/.gitconfig--by definition this
+ cannot be set in the config file per project), this safety can be
+ disabled.
+
+ * "git pull --rebase" has been extended to allow invoking
+ "rebase -i".
+
+ * "git p4" learned to cope with the type of a file getting changed.
+
+ * "git format-patch" learned to notice format.outputDirectory
+ configuration variable. This allows "-o <dir>" option to be
+ omitted on the command line if you always use the same directory in
+ your workflow.
+
+ * "interpret-trailers" has been taught to optionally update a file in
+ place, instead of always writing the result to the standard output.
+
+ * Many commands that read files that are expected to contain text
+ that is generated (or can be edited) by the end user to control
+ their behaviour (e.g. "git grep -f <filename>") have been updated
+ to be more tolerant to lines that are terminated with CRLF (they
+ used to treat such a line to contain payload that ends with CR,
+ which is usually not what the users expect).
+
+ * "git notes merge" used to limit the source of the merged notes tree
+ to somewhere under refs/notes/ hierarchy, which was too limiting
+ when inventing a workflow to exchange notes with remote
+ repositories using remote-tracking notes trees (located in e.g.
+ refs/remote-notes/ or somesuch).
+
+ * "git ls-files" learned a new "--eol" option to help diagnose
+ end-of-line problems.
+
+ * "ls-remote" learned an option to show which branch the remote
+ repository advertises as its primary by pointing its HEAD at.
+
+ * New http.proxyAuthMethod configuration variable can be used to
+ specify what authentication method to use, as a way to work around
+ proxies that do not give error response expected by libcurl when
+ CURLAUTH_ANY is used. Also, the codepath for proxy authentication
+ has been taught to use credential API to store the authentication
+ material in user's keyrings.
+
+ * Update the untracked cache subsystem and change its primary UI from
+ "git update-index" to "git config".
+
+ * There were a few "now I am doing this thing" progress messages in
+ the TCP connection code that can be triggered by setting a verbose
+ option internally in the code, but "git fetch -v" and friends never
+ passed the verbose option down to that codepath.
+
+ * Clean/smudge filters defined in a configuration file of lower
+ precedence can now be overridden to be a pass-through no-op by
+ setting the variable to an empty string.
+
+ * A new "<branch>^{/!-<pattern>}" notation can be used to name a
+ commit that is reachable from <branch> that does not match the
+ given <pattern>.
+
+ * The "user.useConfigOnly" configuration variable can be used to
+ force the user to always set user.email & user.name configuration
+ variables, serving as a reminder for those who work on multiple
+ projects and do not want to put these in their $HOME/.gitconfig.
+
+ * "git fetch" and friends that make network connections can now be
+ told to only use ipv4 (or ipv6).
+
+ * Some authentication methods do not need username or password, but
+ libcurl needs some hint that it needs to perform authentication.
+ Supplying an empty username and password string is a valid way to
+ do so, but you can set the http.[<url>.]emptyAuth configuration
+ variable to achieve the same, if you find it cleaner.
+
+ * You can now set http.[<url>.]pinnedpubkey to specify the pinned
+ public key when building with recent enough versions of libcURL.
+
+ * The configuration system has been taught to phrase where it found a
+ bad configuration variable in a better way in its error messages.
+ "git config" learnt a new "--show-origin" option to indicate where
+ the values come from.
+
+ * The "credential-cache" daemon process used to run in whatever
+ directory it happened to start in, but this made umount(2)ing the
+ filesystem that houses the repository harder; now the process
+ chdir()s to the directory that house its own socket on startup.
+
+ * When "git submodule update" did not result in fetching the commit
+ object in the submodule that is referenced by the superproject, the
+ command learned to retry another fetch, specifically asking for
+ that commit that may not be connected to the refs it usually
+ fetches.
+
+ * "git merge-recursive" learned "--no-renames" option to disable its
+ rename detection logic.
+
+ * Across the transition at around Git version 2.0, the user used to
+ get a pretty loud warning when running "git push" without setting
+ push.default configuration variable. We no longer warn because the
+ transition was completed a long time ago.
+
+ * README has been renamed to README.md and its contents got tweaked
+ slightly to make it easier on the eyes.
+
+
+Performance, Internal Implementation, Development Support etc.
+
+ * Add a framework to spawn a group of processes in parallel, and use
+ it to run "git fetch --recurse-submodules" in parallel.
+
+ * A slight update to the Makefile to mark ".PHONY" targets as such
+ correctly.
+
+ * In-core storage of the reverse index for .pack files (which lets
+ you go from a pack offset to an object name) has been streamlined.
+
+ * d95138e6 (setup: set env $GIT_WORK_TREE when work tree is set, like
+ $GIT_DIR, 2015-06-26) attempted to work around a glitch in alias
+ handling by overwriting GIT_WORK_TREE environment variable to
+ affect subprocesses when set_git_work_tree() gets called, which
+ resulted in a rather unpleasant regression to "clone" and "init".
+ Try to address the same issue by always restoring the environment
+ and respawning the real underlying command when handling alias.
+
+ * The low-level code that is used to create symbolic references has
+ been updated to share more code with the code that deals with
+ normal references.
+
+ * strbuf_getline() and friends have been redefined to make it easier
+ to identify which callsite of (new) strbuf_getline_lf() should
+ allow and silently ignore carriage-return at the end of the line to
+ help users on DOSsy systems.
+
+ * "git shortlog" used to accumulate various pieces of information
+ regardless of what was asked to be shown in the final output. It
+ has been optimized by noticing what need not to be collected
+ (e.g. there is no need to collect the log messages when showing
+ only the number of changes).
+
+ * "git checkout $branch" (and other operations that share the same
+ underlying machinery) has been optimized.
+
+ * Automated tests in Travis CI environment has been optimized by
+ persisting runtime statistics of previous "prove" run, executing
+ tests that take longer before other ones; this reduces the total
+ wallclock time.
+
+ * Test scripts have been updated to remove assumptions that are not
+ portable between Git for POSIX and Git for Windows, or to skip ones
+ with expectations that are not satisfiable on Git for Windows.
+
+ * Some calls to strcpy(3) triggers a false warning from static
+ analysers that are less intelligent than humans, and reducing the
+ number of these false hits helps us notice real issues. A few
+ calls to strcpy(3) in a couple of protrams that are already safe
+ has been rewritten to avoid false warnings.
+
+ * The "name_path" API was an attempt to reduce the need to construct
+ the full path out of a series of path components while walking a
+ tree hierarchy, but over time made less efficient because the path
+ needs to be flattened, e.g. to be compared with another path that
+ is already flat. The API has been removed and its users have been
+ rewritten to simplify the overall code complexity.
+
+ * Help those who debug http(s) part of the system.
+ (merge 0054045 sp/remote-curl-ssl-strerror later to maint).
+
+ * The internal API to interact with "remote.*" configuration
+ variables has been streamlined.
+
+ * The ref-filter's format-parsing code has been refactored, in
+ preparation for "branch --format" and friends.
+
+ * Traditionally, the tests that try commands that work on the
+ contents in the working tree were named with "worktree" in their
+ filenames, but with the recent addition of "git worktree"
+ subcommand, whose tests are also named similarly, it has become
+ harder to tell them apart. The traditional tests have been renamed
+ to use "work-tree" instead in an attempt to differentiate them.
+ (merge 5549029 mg/work-tree-tests later to maint).
+
+ * Many codepaths forget to check return value from git_config_set();
+ the function is made to die() to make sure we do not proceed when
+ setting a configuration variable failed.
+ (merge 3d18064 ps/config-error later to maint).
+
+ * Handling of errors while writing into our internal asynchronous
+ process has been made more robust, which reduces flakiness in our
+ tests.
+ (merge 43f3afc jk/epipe-in-async later to maint).
+
+ * There is a new DEVELOPER knob that enables many compiler warning
+ options in the Makefile.
+
+ * The way the test scripts configure the Apache web server has been
+ updated to work also for Apache 2.4 running on RedHat derived
+ distros.
+
+ * Out of maintenance gcc on OSX 10.6 fails to compile the code in
+ 'master'; work it around by using clang by default on the platform.
+
+
+Also contains various documentation updates and code clean-ups.
+
+
+Fixes since v2.7
+----------------
+
+Unless otherwise noted, all the fixes since v2.7 in the maintenance
+track are contained in this release (see the maintenance releases'
+notes for details).
+
+ * An earlier change in 2.5.x-era broke users' hooks and aliases by
+ exporting GIT_WORK_TREE to point at the root of the working tree,
+ interfering when they tried to use a different working tree without
+ 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
+ to reset 'alloc' to 0 when it cleared 'nr' to discard the managed
+ array.
+
+ * Paths that have been told the index about with "add -N" are not
+ quite yet in the index, but a few commands behaved as if they
+ already are in a harmful way.
+
+ * "git send-email" was confused by escaped quotes stored in the alias
+ files saved by "mutt", which has been corrected.
+
+ * A few unportable C construct have been spotted by clang compiler
+ and have been fixed.
+
+ * The documentation has been updated to hint the connection between
+ the '--signoff' option and DCO.
+
+ * "git reflog" incorrectly assumed that all objects that used to be
+ at the tip of a ref must be commits, which caused it to segfault.
+
+ * The ignore mechanism saw a few regressions around untracked file
+ listing and sparse checkout selection areas in 2.7.0; the change
+ that is responsible for the regression has been reverted.
+
+ * Another try to improve the ignore mechanism that lets you say "this
+ is excluded" and then later say "oh, no, this part (that is a
+ subset of the previous part) is not excluded". This has still a
+ known limitation, though.
+
+ * Some codepaths used fopen(3) when opening a fixed path in $GIT_DIR
+ (e.g. COMMIT_EDITMSG) that is meant to be left after the command is
+ done. This however did not work well if the repository is set to
+ be shared with core.sharedRepository and the umask of the previous
+ user is tighter. They have been made to work better by calling
+ unlink(2) and retrying after fopen(3) fails with EPERM.
+
+ * Asking gitweb for a nonexistent commit left a warning in the server
+ log.
+
+ Somebody may want to follow this up with an additional test, perhaps?
+ IIRC, we do test that no Perl warnings are given to the server log,
+ so this should have been caught if our test coverage were good.
+
+ * "git rebase", unlike all other callers of "gc --auto", did not
+ ignore the exit code from "gc --auto".
+
+ * Many codepaths that run "gc --auto" before exiting kept packfiles
+ mapped and left the file descriptors to them open, which was not
+ friendly to systems that cannot remove files that are open. They
+ now close the packs before doing so.
+
+ * A recent optimization to filter-branch in v2.7.0 introduced a
+ regression when --prune-empty filter is used, which has been
+ corrected.
+
+ * The description for SANITY prerequisite the test suite uses has
+ been clarified both in the comment and in the implementation.
+
+ * "git tag" started listing a tag "foo" as "tags/foo" when a branch
+ named "foo" exists in the same repository; remove this unnecessary
+ disambiguation, which is a regression introduced in v2.7.0.
+
+ * The way "git svn" uses auth parameter was broken by Subversion
+ 1.9.0 and later.
+
+ * The "split" subcommand of "git subtree" (in contrib/) incorrectly
+ skipped merges when it shouldn't, which was corrected.
+
+ * A few options of "git diff" did not work well when the command was
+ run from a subdirectory.
+
+ * The command line completion learned a handful of additional options
+ and command specific syntax.
+
+ * dirname() emulation has been added, as Msys2 lacks it.
+
+ * The underlying machinery used by "ls-files -o" and other commands
+ has been taught not to create empty submodule ref cache for a
+ directory that is not a submodule. This removes a ton of wasted
+ CPU cycles.
+
+ * "git worktree" had a broken code that attempted to auto-fix
+ possible inconsistency that results from end-users moving a
+ worktree to different places without telling Git (the original
+ repository needs to maintain backpointers to its worktrees, but
+ "mv" run by end-users who are not familiar with that fact will
+ obviously not adjust them), which actually made things worse
+ when triggered.
+
+ * The low-level merge machinery has been taught to use CRLF line
+ termination when inserting conflict markers to merged contents that
+ are themselves CRLF line-terminated.
+
+ * "git push --force-with-lease" has been taught to report if the push
+ needed to force (or fast-forwarded).
+
+ * The emulated "yes" command used in our test scripts has been
+ tweaked not to spend too much time generating unnecessary output
+ that is not used, to help those who test on Windows where it would
+ not stop until it fills the pipe buffer due to lack of SIGPIPE.
+
+ * The documentation for "git clean" has been corrected; it mentioned
+ that .git/modules/* are removed by giving two "-f", which has never
+ been the case.
+
+ * The vimdiff backend for "git mergetool" has been tweaked to arrange
+ and number buffers in the order that would match the expectation of
+ majority of people who read left to right, then top down and assign
+ buffers 1 2 3 4 "mentally" to local base remote merge windows based
+ on that order.
+
+ * "git show 'HEAD:Foo[BAR]Baz'" did not interpret the argument as a
+ rev, i.e. the object named by the the pathname with wildcard
+ characters in a tree object.
+ (merge aac4fac nd/dwim-wildcards-as-pathspecs later to maint).
+
+ * "git rev-parse --git-common-dir" used in the worktree feature
+ misbehaved when run from a subdirectory.
+ (merge 17f1365 nd/git-common-dir-fix later to maint).
+
+ * "git worktree add -B <branchname>" did not work.
+
+ * The "v(iew)" subcommand of the interactive "git am -i" command was
+ broken in 2.6.0 timeframe when the command was rewritten in C.
+ (merge 708b8cc jc/am-i-v-fix later to maint).
+
+ * "git merge-tree" used to mishandle "both sides added" conflict with
+ its own "create a fake ancestor file that has the common parts of
+ what both sides have added and do a 3-way merge" logic; this has
+ been updated to use the usual "3-way merge with an empty blob as
+ the fake common ancestor file" approach used in the rest of the
+ system.
+ (merge 907681e jk/no-diff-emit-common later to maint).
+
+ * The memory ownership rule of fill_textconv() API, which was a bit
+ tricky, has been documented a bit better.
+ (merge a64e6a4 jk/more-comments-on-textconv later to maint).
+
+ * Update various codepaths to avoid manually-counted malloc().
+ (merge 08c95df jk/tighten-alloc later to maint).
+
+ * The documentation did not clearly state that the 'simple' mode is
+ now the default for "git push" when push.default configuration is
+ not set.
+ (merge f6b1fb3 mm/push-simple-doc later to maint).
+
+ * Recent versions of GNU grep are pickier when their input contains
+ arbitrary binary data, which some of our tests uses. Rewrite the
+ tests to sidestep the problem.
+ (merge 3b1442d jk/grep-binary-workaround-in-test later to maint).
+
+ * A helper function "git submodule" uses since v2.7.0 to list the
+ modules that match the pathspec argument given to its subcommands
+ (e.g. "submodule add <repo> <path>") has been fixed.
+ (merge 2b56bb7 sb/submodule-module-list-fix later to maint).
+
+ * "git config section.var value" to set a value in per-repository
+ configuration file failed when it was run outside any repository,
+ but didn't say the reason correctly.
+ (merge 638fa62 js/config-set-in-non-repository later to maint).
+
+ * The code to read the pack data using the offsets stored in the pack
+ idx file has been made more carefully check the validity of the
+ data in the idx.
+ (merge 7465feb jk/pack-idx-corruption-safety later to maint).
+
+ * Other minor clean-ups and documentation updates
+ (merge f459823 ak/extract-argv0-last-dir-sep later to maint).
+ (merge 63ca1c0 ak/git-strip-extension-from-dashed-command later to maint).
+ (merge 4867f11 ps/plug-xdl-merge-leak later to maint).
+ (merge 4938686 dt/initial-ref-xn-commit-doc later to maint).
+ (merge 9537f21 ma/update-hooks-sample-typofix later to maint).
diff --git a/Documentation/blame-options.txt b/Documentation/blame-options.txt
index 760eab7428..02cb6845cd 100644
--- a/Documentation/blame-options.txt
+++ b/Documentation/blame-options.txt
@@ -69,6 +69,13 @@ include::line-range-format.txt[]
iso format is used. For supported values, see the discussion
of the --date option at linkgit:git-log[1].
+--[no-]progress::
+ Progress status is reported on the standard error stream
+ by default when it is attached to a terminal. This flag
+ enables progress reporting even if not attached to a
+ terminal. Can't use `--progress` together with `--porcelain`
+ or `--incremental`.
+
-M|<num>|::
Detect moved or copied lines within a file. When a commit
moves or copies a block of lines (e.g. the original file
diff --git a/Documentation/config.txt b/Documentation/config.txt
index f61788668e..2cd6bdd7d2 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -308,6 +308,15 @@ core.trustctime::
crawlers and some backup systems).
See linkgit:git-update-index[1]. True by default.
+core.untrackedCache::
+ Determines what to do about the untracked cache feature of the
+ index. It will be kept, if this variable is unset or set to
+ `keep`. It will automatically be added if set to `true`. And
+ 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.
+
core.checkStat::
Determines which stat fields to match between the index
and work tree. The user can set this to 'default' or
@@ -870,6 +879,8 @@ When preserve, also pass `--preserve-merges` along to 'git rebase'
so that locally committed merge commits will not be flattened
by running 'git pull'.
+
+When the value is `interactive`, the rebase is run in interactive mode.
++
*NOTE*: this is a possibly dangerous operation; do *not* use
it unless you understand the implications (see linkgit:git-rebase[1]
for details).
@@ -1243,6 +1254,10 @@ format.coverLetter::
format-patch is invoked, but in addition can be set to "auto", to
generate a cover-letter only when there's more than one patch.
+format.outputDirectory::
+ Set a custom directory to store the resulting files instead of the
+ current working directory.
+
filter.<driver>.clean::
The command which is used to convert the content of a worktree
file to a blob upon checkin. See linkgit:gitattributes[5] for
@@ -1450,6 +1465,14 @@ grep.extendedRegexp::
option is ignored when the 'grep.patternType' option is set to a value
other than 'default'.
+grep.threads::
+ Number of grep worker threads to use.
+ See `grep.threads` in linkgit:git-grep[1] for more information.
+
+grep.fallbackToNoIndex::
+ If set to true, fall back to git grep --no-index if git grep
+ is executed outside of a git repository. Defaults to false.
+
gpg.program::
Use this custom program instead of "gpg" found on $PATH when
making or verifying a PGP signature. The program must support the
@@ -1596,9 +1619,40 @@ help.htmlPath::
http.proxy::
Override the HTTP proxy, normally configured using the 'http_proxy',
- 'https_proxy', and 'all_proxy' environment variables (see
- `curl(1)`). This can be overridden on a per-remote basis; see
- remote.<name>.proxy
+ 'https_proxy', and 'all_proxy' environment variables (see `curl(1)`). In
+ addition to the syntax understood by curl, it is possible to specify a
+ proxy string with a user name but no password, in which case git will
+ attempt to acquire one in the same way it does for other credentials. See
+ linkgit:gitcredentials[7] for more information. The syntax thus is
+ '[protocol://][user[:password]@]proxyhost[:port]'. This can be overridden
+ on a per-remote basis; see remote.<name>.proxy
+
+http.proxyAuthMethod::
+ Set the method with which to authenticate against the HTTP proxy. This
+ only takes effect if the configured proxy string contains a user name part
+ (i.e. is of the form 'user@host' or 'user@host:port'). This can be
+ overridden on a per-remote basis; see `remote.<name>.proxyAuthMethod`.
+ Both can be overridden by the 'GIT_HTTP_PROXY_AUTHMETHOD' environment
+ variable. Possible values are:
++
+--
+* `anyauth` - Automatically pick a suitable authentication method. It is
+ assumed that the proxy answers an unauthenticated request with a 407
+ status code and one or more Proxy-authenticate headers with supported
+ authentication methods. This is the default.
+* `basic` - HTTP Basic authentication
+* `digest` - HTTP Digest authentication; this prevents the password from being
+ transmitted to the proxy in clear text
+* `negotiate` - GSS-Negotiate authentication (compare the --negotiate option
+ of `curl(1)`)
+* `ntlm` - NTLM authentication (compare the --ntlm option of `curl(1)`)
+--
+
+http.emptyAuth::
+ Attempt authentication without seeking a username or password. This
+ can be used to attempt GSS-Negotiate authentication without specifying
+ a username in the URL, as libcurl normally requires a username for
+ authentication.
http.cookieFile::
File containing previously stored cookie lines which should be used
@@ -1679,6 +1733,14 @@ http.sslCAPath::
with when fetching or pushing over HTTPS. Can be overridden
by the 'GIT_SSL_CAPATH' environment variable.
+http.pinnedpubkey::
+ Public key of the https service. It may either be the filename of
+ a PEM or DER encoded public key file or a string starting with
+ 'sha256//' followed by the base64 encoded sha256 hash of the
+ public key. See also libcurl 'CURLOPT_PINNEDPUBLICKEY'. git will
+ exit with an error if this option is set but not supported by
+ cURL.
+
http.sslTry::
Attempt to use AUTH SSL/TLS and encrypted data transfers
when connecting via regular FTP protocol. This might be needed
@@ -2074,7 +2136,7 @@ pack.indexVersion::
larger than 2 GB.
+
If you have an old Git that does not understand the version 2 `*.idx` file,
-cloning or fetching over a non native protocol (e.g. "http" and "rsync")
+cloning or fetching over a non native protocol (e.g. "http")
that will copy both `*.pack` file and corresponding `*.idx` file from the
other side may give you a repository that cannot be accessed with your
older version of Git. If the `*.pack` file is smaller than 2 GB, however,
@@ -2149,6 +2211,8 @@ When preserve, also pass `--preserve-merges` along to 'git rebase'
so that locally committed merge commits will not be flattened
by running 'git pull'.
+
+When the value is `interactive`, the rebase is run in interactive mode.
++
*NOTE*: this is a possibly dangerous operation; do *not* use
it unless you understand the implications (see linkgit:git-rebase[1]
for details).
@@ -2407,6 +2471,11 @@ remote.<name>.proxy::
the proxy to use for that remote. Set to the empty string to
disable proxying for that remote.
+remote.<name>.proxyAuthMethod::
+ For remotes that require curl (http, https and ftp), the method to use for
+ authenticating against the proxy in use (probably set in
+ `remote.<name>.proxy`). See `http.proxyAuthMethod`.
+
remote.<name>.fetch::
The default set of "refspec" for linkgit:git-fetch[1]. See
linkgit:git-fetch[1].
@@ -2775,6 +2844,16 @@ user.name::
Can be overridden by the 'GIT_AUTHOR_NAME' and 'GIT_COMMITTER_NAME'
environment variables. See linkgit:git-commit-tree[1].
+user.useConfigOnly::
+ Instruct Git to avoid trying to guess defaults for 'user.email'
+ and 'user.name', and instead retrieve the values only from the
+ configuration. For example, if you have multiple email addresses
+ and would like to use a different one for each repository, then
+ with this configuration option set to `true` in the global config
+ along with a name, Git will prompt you to set up an email before
+ making new commits in a newly cloned repository.
+ Defaults to `false`.
+
user.signingKey::
If linkgit:git-tag[1] or linkgit:git-commit[1] is not selecting the
key you want it to automatically when creating a signed tag or
diff --git a/Documentation/fetch-options.txt b/Documentation/fetch-options.txt
index 78cd2653cd..036edfb099 100644
--- a/Documentation/fetch-options.txt
+++ b/Documentation/fetch-options.txt
@@ -101,6 +101,13 @@ ifndef::git-pull[]
reference to a commit that isn't already in the local submodule
clone.
+-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.
+
--no-recurse-submodules::
Disable recursive fetching of submodules (this has the same effect as
using the '--recurse-submodules=no' option).
@@ -151,3 +158,11 @@ endif::git-pull[]
by default when it is attached to a terminal, unless -q
is specified. This flag forces progress status even if the
standard error stream is not directed to a terminal.
+
+-4::
+--ipv4::
+ Use IPv4 addresses only, ignoring IPv6 addresses.
+
+-6::
+--ipv6::
+ Use IPv6 addresses only, ignoring IPv4 addresses.
diff --git a/Documentation/git-blame.txt b/Documentation/git-blame.txt
index e6e947c808..ba5417567c 100644
--- a/Documentation/git-blame.txt
+++ b/Documentation/git-blame.txt
@@ -10,7 +10,8 @@ SYNOPSIS
[verse]
'git blame' [-c] [-b] [-l] [--root] [-t] [-f] [-n] [-s] [-e] [-p] [-w] [--incremental]
[-L <range>] [-S <revs-file>] [-M] [-C] [-C] [-C] [--since=<date>]
- [--abbrev=<n>] [<rev> | --contents <file> | --reverse <rev>] [--] <file>
+ [--progress] [--abbrev=<n>] [<rev> | --contents <file> | --reverse <rev>]
+ [--] <file>
DESCRIPTION
-----------
diff --git a/Documentation/git-bundle.txt b/Documentation/git-bundle.txt
index 0417562eb7..3a8120c3b3 100644
--- a/Documentation/git-bundle.txt
+++ b/Documentation/git-bundle.txt
@@ -20,7 +20,7 @@ DESCRIPTION
Some workflows require that one or more branches of development on one
machine be replicated on another machine, but the two machines cannot
be directly connected, and therefore the interactive Git protocols (git,
-ssh, rsync, http) cannot be used. This command provides support for
+ssh, http) cannot be used. This command provides support for
'git fetch' and 'git pull' to operate by packaging objects and references
in an archive at the originating machine, then importing those into
another repository using 'git fetch' and 'git pull'
diff --git a/Documentation/git-check-ignore.txt b/Documentation/git-check-ignore.txt
index e94367a5ed..f60ee051f8 100644
--- a/Documentation/git-check-ignore.txt
+++ b/Documentation/git-check-ignore.txt
@@ -114,6 +114,7 @@ SEE ALSO
linkgit:gitignore[5]
linkgit:gitconfig[5]
linkgit:git-ls-files[1]
+GIT_TRACE_EXCLUDE in linkgit:git[1]
GIT
---
diff --git a/Documentation/git-clone.txt b/Documentation/git-clone.txt
index 789b668f77..b7c467a001 100644
--- a/Documentation/git-clone.txt
+++ b/Documentation/git-clone.txt
@@ -115,8 +115,7 @@ objects from the source repository into a pack in the cloned repository.
--quiet::
-q::
Operate quietly. Progress is not reported to the standard
- error stream. This flag is also passed to the `rsync'
- command when given.
+ error stream.
--verbose::
-v::
diff --git a/Documentation/git-config.txt b/Documentation/git-config.txt
index 2608ca74ac..153b2d89b5 100644
--- a/Documentation/git-config.txt
+++ b/Documentation/git-config.txt
@@ -9,18 +9,18 @@ git-config - Get and set repository or global options
SYNOPSIS
--------
[verse]
-'git config' [<file-option>] [type] [-z|--null] name [value [value_regex]]
+'git config' [<file-option>] [type] [--show-origin] [-z|--null] name [value [value_regex]]
'git config' [<file-option>] [type] --add name value
'git config' [<file-option>] [type] --replace-all name value [value_regex]
-'git config' [<file-option>] [type] [-z|--null] --get name [value_regex]
-'git config' [<file-option>] [type] [-z|--null] --get-all name [value_regex]
-'git config' [<file-option>] [type] [-z|--null] [--name-only] --get-regexp name_regex [value_regex]
+'git config' [<file-option>] [type] [--show-origin] [-z|--null] --get name [value_regex]
+'git config' [<file-option>] [type] [--show-origin] [-z|--null] --get-all name [value_regex]
+'git config' [<file-option>] [type] [--show-origin] [-z|--null] [--name-only] --get-regexp name_regex [value_regex]
'git config' [<file-option>] [type] [-z|--null] --get-urlmatch name URL
'git config' [<file-option>] --unset name [value_regex]
'git config' [<file-option>] --unset-all name [value_regex]
'git config' [<file-option>] --rename-section old_name new_name
'git config' [<file-option>] --remove-section name
-'git config' [<file-option>] [-z|--null] [--name-only] -l | --list
+'git config' [<file-option>] [--show-origin] [-z|--null] [--name-only] -l | --list
'git config' [<file-option>] --get-color name [default]
'git config' [<file-option>] --get-colorbool name [stdout-is-tty]
'git config' [<file-option>] -e | --edit
@@ -194,6 +194,12 @@ See also <<FILES>>.
Output only the names of config variables for `--list` or
`--get-regexp`.
+--show-origin::
+ Augment the output of all queried config options with the
+ origin type (file, standard input, blob, command line) and
+ the actual origin (config file path, ref, or blob id if
+ applicable).
+
--get-colorbool name [stdout-is-tty]::
Find the color setting for `name` (e.g. `color.diff`) and output
@@ -219,7 +225,9 @@ See also <<FILES>>.
--[no-]includes::
Respect `include.*` directives in config files when looking up
- values. Defaults to on.
+ values. Defaults to `off` when a specific file is given (e.g.,
+ using `--file`, `--global`, etc) and `on` when searching all
+ config files.
[[FILES]]
FILES
diff --git a/Documentation/git-credential-cache.txt b/Documentation/git-credential-cache.txt
index 89b730632d..96208f822e 100644
--- a/Documentation/git-credential-cache.txt
+++ b/Documentation/git-credential-cache.txt
@@ -36,7 +36,7 @@ OPTIONS
cache daemon if one is not started). Defaults to
`~/.git-credential-cache/socket`. If your home directory is on a
network-mounted filesystem, you may need to change this to a
- local filesystem.
+ local filesystem. You must specify an absolute path.
CONTROLLING THE DAEMON
----------------------
diff --git a/Documentation/git-for-each-ref.txt b/Documentation/git-for-each-ref.txt
index 2e3e96f663..012e8f9a08 100644
--- a/Documentation/git-for-each-ref.txt
+++ b/Documentation/git-for-each-ref.txt
@@ -133,14 +133,18 @@ color::
align::
Left-, middle-, or right-align the content between
- %(align:...) and %(end). The "align:" is followed by `<width>`
- and `<position>` in any order separated by a comma, where the
- `<position>` is either left, right or middle, default being
- left and `<width>` is the total length of the content with
- alignment. If the contents length is more than the width then
- no alignment is performed. If used with '--quote' everything
- in between %(align:...) and %(end) is quoted, but if nested
- then only the topmost level performs quoting.
+ %(align:...) and %(end). The "align:" is followed by
+ `width=<width>` and `position=<position>` in any order
+ separated by a comma, where the `<position>` is either left,
+ right or middle, default being left and `<width>` is the total
+ length of the content with alignment. For brevity, the
+ "width=" and/or "position=" prefixes may be omitted, and bare
+ <width> and <position> used instead. For instance,
+ `%(align:<width>,<position>)`. If the contents length is more
+ than the width then no alignment is performed. If used with
+ '--quote' everything in between %(align:...) and %(end) is
+ quoted, but if nested then only the topmost level performs
+ quoting.
In addition to the above, for commit and tag objects, the header
field names (`tree`, `parent`, `object`, `type`, and `tag`) can
diff --git a/Documentation/git-format-patch.txt b/Documentation/git-format-patch.txt
index b149e09065..6821441d7d 100644
--- a/Documentation/git-format-patch.txt
+++ b/Documentation/git-format-patch.txt
@@ -57,7 +57,11 @@ The names of the output files are printed to standard
output, unless the `--stdout` option is specified.
If `-o` is specified, output files are created in <dir>. Otherwise
-they are created in the current working directory.
+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 .`.
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-grep.txt b/Documentation/git-grep.txt
index 4a44d6da13..cb0f6cf678 100644
--- a/Documentation/git-grep.txt
+++ b/Documentation/git-grep.txt
@@ -23,6 +23,7 @@ SYNOPSIS
[--break] [--heading] [-p | --show-function]
[-A <post-context>] [-B <pre-context>] [-C <context>]
[-W | --function-context]
+ [--threads <num>]
[-f <file>] [-e] <pattern>
[--and|--or|--not|(|)|-e <pattern>...]
[ [--[no-]exclude-standard] [--cached | --no-index | --untracked] | <tree>...]
@@ -53,9 +54,17 @@ grep.extendedRegexp::
option is ignored when the 'grep.patternType' option is set to a value
other than 'default'.
+grep.threads::
+ Number of grep worker threads to use. If unset (or set to 0),
+ 8 threads are used by default (for now).
+
grep.fullName::
If set to true, enable '--full-name' option by default.
+grep.fallbackToNoIndex::
+ If set to true, fall back to git grep --no-index if git grep
+ is executed outside of a git repository. Defaults to false.
+
OPTIONS
-------
@@ -227,6 +236,10 @@ OPTIONS
effectively showing the whole function in which the match was
found.
+--threads <num>::
+ Number of grep worker threads to use.
+ See `grep.threads` in 'CONFIGURATION' for more information.
+
-f <file>::
Read patterns from <file>, one per line.
diff --git a/Documentation/git-interpret-trailers.txt b/Documentation/git-interpret-trailers.txt
index 0ecd497c4d..a77b901f1d 100644
--- a/Documentation/git-interpret-trailers.txt
+++ b/Documentation/git-interpret-trailers.txt
@@ -8,7 +8,7 @@ git-interpret-trailers - help add structured information into commit messages
SYNOPSIS
--------
[verse]
-'git interpret-trailers' [--trim-empty] [(--trailer <token>[(=|:)<value>])...] [<file>...]
+'git interpret-trailers' [--in-place] [--trim-empty] [(--trailer <token>[(=|:)<value>])...] [<file>...]
DESCRIPTION
-----------
@@ -64,6 +64,9 @@ folding rules, the encoding rules and probably many other rules.
OPTIONS
-------
+--in-place::
+ Edit the files in place.
+
--trim-empty::
If the <value> part of any trailer contains only whitespace,
the whole trailer will be removed from the resulting message.
@@ -216,6 +219,25 @@ Signed-off-by: Alice <alice@example.com>
Signed-off-by: Bob <bob@example.com>
------------
+* Use the '--in-place' option to edit a message file in place:
++
+------------
+$ cat msg.txt
+subject
+
+message
+
+Signed-off-by: Bob <bob@example.com>
+$ git interpret-trailers --trailer 'Acked-by: Alice <alice@example.com>' --in-place msg.txt
+$ cat msg.txt
+subject
+
+message
+
+Signed-off-by: Bob <bob@example.com>
+Acked-by: Alice <alice@example.com>
+------------
+
* Extract the last commit as a patch, and add a 'Cc' and a
'Reviewed-by' trailer to it:
+
diff --git a/Documentation/git-ls-files.txt b/Documentation/git-ls-files.txt
index e26f01fb1d..75c3f4157d 100644
--- a/Documentation/git-ls-files.txt
+++ b/Documentation/git-ls-files.txt
@@ -12,6 +12,7 @@ SYNOPSIS
'git ls-files' [-z] [-t] [-v]
(--[cached|deleted|others|ignored|stage|unmerged|killed|modified])*
(-[c|d|o|i|s|u|k|m])*
+ [--eol]
[-x <pattern>|--exclude=<pattern>]
[-X <file>|--exclude-from=<file>]
[--exclude-per-directory=<file>]
@@ -147,6 +148,24 @@ a space) at the start of each line:
possible for manual inspection; the exact format may change at
any time.
+--eol::
+ Show <eolinfo> and <eolattr> of files.
+ <eolinfo> is the file content identification used by Git when
+ the "text" attribute is "auto" (or not set and core.autocrlf is not false).
+ <eolinfo> is either "-text", "none", "lf", "crlf", "mixed" or "".
++
+"" means the file is not a regular file, it is not in the index or
+not accessible in the working tree.
++
+<eolattr> is the attribute that is used when checking out or committing,
+it is either "", "-text", "text", "text=auto", "text eol=lf", "text eol=crlf".
+Note: Currently Git does not support "text=auto eol=lf" or "text=auto eol=crlf",
+that may change in the future.
++
+Both the <eolinfo> in the index ("i/<eolinfo>")
+and in the working tree ("w/<eolinfo>") are shown for regular files,
+followed by the ("attr/<eolattr>").
+
\--::
Do not interpret any more arguments as options.
@@ -161,6 +180,9 @@ which case it outputs:
[<tag> ]<mode> <object> <stage> <file>
+'git ls-files --eol' will show
+ i/<eolinfo><SPACES>w/<eolinfo><SPACES>attr/<eolattr><SPACE*><TAB><file>
+
'git ls-files --unmerged' and 'git ls-files --stage' can be used to examine
detailed information on unmerged paths.
diff --git a/Documentation/git-ls-remote.txt b/Documentation/git-ls-remote.txt
index d510c05e11..5f2628c8f8 100644
--- a/Documentation/git-ls-remote.txt
+++ b/Documentation/git-ls-remote.txt
@@ -9,8 +9,9 @@ git-ls-remote - List references in a remote repository
SYNOPSIS
--------
[verse]
-'git ls-remote' [--heads] [--tags] [--upload-pack=<exec>]
- [--exit-code] <repository> [<refs>...]
+'git ls-remote' [--heads] [--tags] [--refs] [--upload-pack=<exec>]
+ [-q | --quiet] [--exit-code] [--get-url]
+ [--symref] [<repository> [<refs>...]]
DESCRIPTION
-----------
@@ -29,6 +30,13 @@ OPTIONS
both, references stored in refs/heads and refs/tags are
displayed.
+--refs::
+ Do not show peeled tags or pseudorefs like HEAD in the output.
+
+-q::
+--quiet::
+ Do not print remote URL to stderr.
+
--upload-pack=<exec>::
Specify the full path of 'git-upload-pack' on the remote
host. This allows listing references from repositories accessed via
@@ -46,6 +54,12 @@ OPTIONS
"url.<base>.insteadOf" config setting (See linkgit:git-config[1]) and
exit without talking to the remote.
+--symref::
+ In addition to the object pointed by it, show the underlying
+ ref pointed by it when showing a symbolic ref. Currently,
+ upload-pack only shows the symref HEAD, so it will be the only
+ one shown by ls-remote.
+
<repository>::
The "remote" repository to query. This parameter can be
either a URL or the name of a remote (see the GIT URLS and
diff --git a/Documentation/git-pull.txt b/Documentation/git-pull.txt
index 93c72a29ce..a62a2a615d 100644
--- a/Documentation/git-pull.txt
+++ b/Documentation/git-pull.txt
@@ -101,7 +101,7 @@ Options related to merging
include::merge-options.txt[]
-r::
---rebase[=false|true|preserve]::
+--rebase[=false|true|preserve|interactive]::
When true, rebase the current branch on top of the upstream
branch after fetching. If there is a remote-tracking branch
corresponding to the upstream branch and the upstream branch
@@ -113,6 +113,8 @@ to `git rebase` so that locally created merge commits will not be flattened.
+
When false, merge the current branch into the upstream branch.
+
+When `interactive`, enable the interactive mode of rebase.
++
See `pull.rebase`, `branch.<name>.rebase` and `branch.autoSetupRebase` in
linkgit:git-config[1] if you want to make `git pull` always use
`--rebase` instead of merging.
diff --git a/Documentation/git-push.txt b/Documentation/git-push.txt
index af521f8990..cf6ee4a4df 100644
--- a/Documentation/git-push.txt
+++ b/Documentation/git-push.txt
@@ -10,7 +10,7 @@ SYNOPSIS
--------
[verse]
'git push' [--all | --mirror | --tags] [--follow-tags] [--atomic] [-n | --dry-run] [--receive-pack=<git-receive-pack>]
- [--repo=<repository>] [-f | --force] [--prune] [-v | --verbose]
+ [--repo=<repository>] [-f | --force] [-d | --delete] [--prune] [-v | --verbose]
[-u | --set-upstream]
[--[no-]signed|--sign=(true|false|if-asked)]
[--force-with-lease[=<refname>[:<expect>]]]
@@ -284,6 +284,13 @@ origin +master` to force a push to the `master` branch). See the
default is --verify, giving the hook a chance to prevent the
push. With --no-verify, the hook is bypassed completely.
+-4::
+--ipv4::
+ Use IPv4 addresses only, ignoring IPv6 addresses.
+
+-6::
+--ipv6::
+ Use IPv6 addresses only, ignoring IPv4 addresses.
include::urls-remotes.txt[]
diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt
index 6cca8bb51d..6ed610a031 100644
--- a/Documentation/git-rebase.txt
+++ b/Documentation/git-rebase.txt
@@ -3,7 +3,7 @@ git-rebase(1)
NAME
----
-git-rebase - Forward-port local commits to the updated upstream head
+git-rebase - Reapply commits on top of another base tip
SYNOPSIS
--------
diff --git a/Documentation/git-repack.txt b/Documentation/git-repack.txt
index 0e0bd363d6..af230d0647 100644
--- a/Documentation/git-repack.txt
+++ b/Documentation/git-repack.txt
@@ -133,7 +133,7 @@ By default, the command passes `--delta-base-offset` option to
'git pack-objects'; this typically results in slightly smaller packs,
but the generated packs are incompatible with versions of Git older than
version 1.4.4. If you need to share your repository with such ancient Git
-versions, either directly or via the dumb http or rsync protocol, then you
+versions, either directly or via the dumb http protocol, then you
need to set the configuration variable `repack.UseDeltaBaseOffset` to
"false" and repack. Access from old Git versions over the native protocol
is unaffected by this option as the conversion is performed on the fly
diff --git a/Documentation/git-svn.txt b/Documentation/git-svn.txt
index 0c0f60b20e..fb23a98a17 100644
--- a/Documentation/git-svn.txt
+++ b/Documentation/git-svn.txt
@@ -1034,6 +1034,8 @@ listed below are allowed:
url = http://server.org/svn
fetch = trunk/project-a:refs/remotes/project-a/trunk
branches = branches/*/project-a:refs/remotes/project-a/branches/*
+ branches = branches/release_*:refs/remotes/project-a/branches/release_*
+ branches = branches/re*se:refs/remotes/project-a/branches/*
tags = tags/*/project-a:refs/remotes/project-a/tags/*
------------------------------------------------------------------------
@@ -1044,6 +1046,16 @@ independent path component (surrounded by '/' or EOL). This
type of configuration is not automatically created by 'init' and
should be manually entered with a text-editor or using 'git config'.
+Also note that only one asterisk is allowed per word. For example:
+
+ branches = branches/re*se:refs/remotes/project-a/branches/*
+
+will match branches 'release', 'rese', 're123se', however
+
+ branches = branches/re*s*e:refs/remotes/project-a/branches/*
+
+will produce an error.
+
It is also possible to fetch a subset of branches or tags by using a
comma-separated list of names within braces. For example:
diff --git a/Documentation/git-update-index.txt b/Documentation/git-update-index.txt
index f4e5a85351..c6cbed189c 100644
--- a/Documentation/git-update-index.txt
+++ b/Documentation/git-update-index.txt
@@ -18,7 +18,7 @@ SYNOPSIS
[--[no-]skip-worktree]
[--ignore-submodules]
[--[no-]split-index]
- [--[no-|force-]untracked-cache]
+ [--[no-|test-|force-]untracked-cache]
[--really-refresh] [--unresolve] [--again | -g]
[--info-only] [--index-info]
[-z] [--stdin] [--index-version <n>]
@@ -174,17 +174,30 @@ may not support it yet.
--untracked-cache::
--no-untracked-cache::
- Enable or disable untracked cache extension. This could speed
- up for commands that involve determining untracked files such
- as `git status`. The underlying operating system and file
- system must change `st_mtime` field of a directory if files
- are added or deleted in that directory.
+ Enable or disable untracked cache feature. Please use
+ `--test-untracked-cache` before enabling it.
++
+These options take effect whatever the value of the `core.untrackedCache`
+configuration variable (see linkgit:git-config[1]). But a warning is
+emitted when the change goes against the configured value, as the
+configured value will take effect next time the index is read and this
+will remove the intended effect of the option.
+
+--test-untracked-cache::
+ Only perform tests on the working directory to make sure
+ untracked cache can be used. You have to manually enable
+ untracked cache using `--untracked-cache` or
+ `--force-untracked-cache` or the `core.untrackedCache`
+ configuration variable afterwards if you really want to use
+ it. If a test fails the exit code is 1 and a message
+ explains what is not working as needed, otherwise the exit
+ code is 0 and OK is printed.
--force-untracked-cache::
- For safety, `--untracked-cache` performs tests on the working
- directory to make sure untracked cache can be used. These
- tests can take a few seconds. `--force-untracked-cache` can be
- used to skip the tests.
+ Same as `--untracked-cache`. Provided for backwards
+ compatibility with older versions of Git where
+ `--untracked-cache` used to imply `--test-untracked-cache` but
+ this option would enable the extension unconditionally.
\--::
Do not interpret any more arguments as options.
@@ -375,6 +388,37 @@ Although this bit looks similar to assume-unchanged bit, its goal is
different from assume-unchanged bit's. Skip-worktree also takes
precedence over assume-unchanged bit when both are set.
+Untracked cache
+---------------
+
+This cache is meant to speed up commands that involve determining
+untracked files such as `git status`.
+
+This feature works by recording the mtime of the working tree
+directories and then omitting reading directories and stat calls
+against files in those directories whose mtime hasn't changed. For
+this to work the underlying operating system and file system must
+change the `st_mtime` field of directories if files in the directory
+are added, modified or deleted.
+
+You can test whether the filesystem supports that with the
+`--test-untracked-cache` option. The `--untracked-cache` option used
+to implicitly perform that test in older versions of Git, but that's
+no longer the case.
+
+If you want to enable (or disable) this feature, it is easier to use
+the `core.untrackedCache` configuration variable (see
+linkgit:git-config[1]) than using the `--untracked-cache` option to
+`git update-index` in each repository, especially if you want to do so
+across all repositories you use, because you can set the configuration
+variable to `true` (or `false`) in your `$HOME/.gitconfig` just once
+and have it affect all repositories you touch.
+
+When the `core.untrackedCache` configuration variable is changed, the
+untracked cache is added to or removed from the index the next time a
+command reads the index; while when `--[no-|force-]untracked-cache`
+are used, the untracked cache is immediately added to or removed from
+the index.
Configuration
-------------
@@ -400,6 +444,9 @@ It can be useful when the inode change time is regularly modified by
something outside Git (file system crawlers and backup systems use
ctime for marking files processed) (see linkgit:git-config[1]).
+The untracked cache extension can be enabled by the
+`core.untrackedCache` configuration variable (see
+linkgit:git-config[1]).
SEE ALSO
--------
diff --git a/Documentation/git.txt b/Documentation/git.txt
index c3da46dc6a..f9252d5591 100644
--- a/Documentation/git.txt
+++ b/Documentation/git.txt
@@ -1066,6 +1066,11 @@ of clones and fetches.
cloning of shallow repositories.
See 'GIT_TRACE' for available trace output options.
+'GIT_TRACE_EXCLUDE'::
+ Enables trace messages that can help debugging .gitignore
+ processing. See 'GIT_TRACE' for available trace output
+ options.
+
'GIT_LITERAL_PATHSPECS'::
Setting this variable to `1` will cause Git to treat all
pathspecs literally, rather than as glob patterns. For example,
@@ -1124,9 +1129,7 @@ of clones and fetches.
connection (or proxy, if configured)
- `ssh`: git over ssh (including `host:path` syntax,
- `git+ssh://`, etc).
-
- - `rsync`: git over rsync
+ `ssh://`, etc).
- `http`: git over http, both "smart http" and "dumb http".
Note that this does _not_ include `https`; if you want both,
diff --git a/Documentation/gitcore-tutorial.txt b/Documentation/gitcore-tutorial.txt
index 36e9ab3e16..15b3bfa8db 100644
--- a/Documentation/gitcore-tutorial.txt
+++ b/Documentation/gitcore-tutorial.txt
@@ -710,7 +710,7 @@ files).
Again, this can all be simplified with
----------------
-$ git clone rsync://rsync.kernel.org/pub/scm/git/git.git/ my-git
+$ git clone git://git.kernel.org/pub/scm/git/git.git/ my-git
$ cd my-git
$ git checkout
----------------
@@ -1011,20 +1011,6 @@ $ git fetch <remote-repository>
One of the following transports can be used to name the
repository to download from:
-Rsync::
- `rsync://remote.machine/path/to/repo.git/`
-+
-Rsync transport is usable for both uploading and downloading,
-but is completely unaware of what git does, and can produce
-unexpected results when you download from the public repository
-while the repository owner is uploading into it via `rsync`
-transport. Most notably, it could update the files under
-`refs/` which holds the object name of the topmost commits
-before uploading the files in `objects/` -- the downloader would
-obtain head commit object name while that object itself is still
-not available in the repository. For this reason, it is
-considered deprecated.
-
SSH::
`remote.machine:/path/to/repo.git/` or
+
@@ -1430,7 +1416,7 @@ while, depending on how active your project is.
When a repository is synchronized via `git push` and `git pull`
objects packed in the source repository are usually stored
-unpacked in the destination, unless rsync transport is used.
+unpacked in the destination.
While this allows you to use different packing strategies on
both ends, it also means you may need to repack both
repositories every once in a while.
diff --git a/Documentation/gitignore.txt b/Documentation/gitignore.txt
index 473623d631..91d1ce2a89 100644
--- a/Documentation/gitignore.txt
+++ b/Documentation/gitignore.txt
@@ -82,12 +82,12 @@ PATTERN FORMAT
- An optional prefix "`!`" which negates the pattern; any
matching file excluded by a previous pattern will become
- included again. It is not possible to re-include a file if a parent
- directory of that file is excluded. Git doesn't list excluded
- directories for performance reasons, so any patterns on contained
- files have no effect, no matter where they are defined.
+ included again.
Put a backslash ("`\`") in front of the first "`!`" for patterns
that begin with a literal "`!`", for example, "`\!important!.txt`".
+ It is possible to re-include a file if a parent directory of that
+ file is excluded if certain conditions are met. See section NOTES
+ for detail.
- If the pattern ends with a slash, it is removed for the
purpose of the following description, but it would only find
@@ -141,6 +141,51 @@ not tracked by Git remain untracked.
To stop tracking a file that is currently tracked, use
'git rm --cached'.
+To re-include files or directories when their parent directory is
+excluded, the following conditions must be met:
+
+ - The rules to exclude a directory and re-include a subset back must
+ be in the same .gitignore file.
+
+ - The directory part in the re-include rules must be literal (i.e. no
+ wildcards and has to start with a `/`).
+
+A re-inclusion of a directory makes all files in the directory
+unignored. For example, suppose you have files `.gitignore`,
+`dir/file1`, `dir/file2`, and `dir/file3`, and have the following in
+your `.gitignore`:
+
+----------------
+# .gitignore is not mentioned in .gitignore
+*
+!/dir
+# dir/file1 is not mentioned in .gitignore
+dir/file2
+!dir/file3
+----------------
+
+Then:
+
+ - `.gitignore` gets ignored, because it matches the `*` at the top
+ level;
+
+ - `dir/file1` does not get ignored, because `/dir` marks everything
+ underneath `dir/` directory to be 're-included' unless otherwise
+ specified;
+
+ - `dir/file2` gets ignored, because `dir/file2` matches it.
+
+ - `dir/file3` does not get ignored, because `!dir/file3` matches it.
+ Note that the entry `!dir/file3` is redundant because everything
+ underneath `dir/` is marked to be 're-included' already.
+
+Some earlier versions of Git treated `!/dir` above differently in
+that it did not cause the paths under it unignored (but merely told
+Git that patterns that begin with dir/ should not be ignored), but
+this has been corrected to be consistent with `/dir` that says "the
+directory `dir/` and everything below are ignored."
+
+
EXAMPLES
--------
diff --git a/Documentation/gittutorial.txt b/Documentation/gittutorial.txt
index b00c67df46..b3b58d324e 100644
--- a/Documentation/gittutorial.txt
+++ b/Documentation/gittutorial.txt
@@ -451,7 +451,7 @@ perform clones and pulls using the ssh protocol:
bob$ git clone alice.org:/home/alice/project myrepo
-------------------------------------
-Alternatively, Git has a native protocol, or can use rsync or http;
+Alternatively, Git has a native protocol, or can use http;
see linkgit:git-pull[1] for details.
Git can also be used in a CVS-like mode, with a central repository
diff --git a/Documentation/merge-strategies.txt b/Documentation/merge-strategies.txt
index 7bbd19b300..2eb92b9327 100644
--- a/Documentation/merge-strategies.txt
+++ b/Documentation/merge-strategies.txt
@@ -81,9 +81,17 @@ no-renormalize;;
Disables the `renormalize` option. This overrides the
`merge.renormalize` configuration variable.
+no-renames;;
+ Turn off rename detection.
+ See also linkgit:git-diff[1] `--no-renames`.
+
+find-renames[=<n>];;
+ Turn on rename detection, optionally setting the similarity
+ threshold. This is the default.
+ See also linkgit:git-diff[1] `--find-renames`.
+
rename-threshold=<n>;;
- Controls the similarity threshold used for rename detection.
- See also linkgit:git-diff[1] `-M`.
+ Deprecated synonym for `find-renames=<n>`.
subtree[=<path>];;
This option is a more advanced form of 'subtree' strategy, where
diff --git a/Documentation/pretty-options.txt b/Documentation/pretty-options.txt
index 4b659ac1a6..54b88b6dca 100644
--- a/Documentation/pretty-options.txt
+++ b/Documentation/pretty-options.txt
@@ -43,7 +43,7 @@ people using 80-column terminals.
commit may be copied to the output.
ifndef::git-rev-list[]
---notes[=<ref>]::
+--notes[=<treeish>]::
Show the notes (see linkgit:git-notes[1]) that annotate the
commit, when showing the commit log message. This is the default
for `git log`, `git show` and `git whatchanged` commands when
@@ -54,8 +54,8 @@ By default, the notes shown are from the notes refs listed in the
'core.notesRef' and 'notes.displayRef' variables (or corresponding
environment overrides). See linkgit:git-config[1] for more details.
+
-With an optional '<ref>' argument, show this notes ref instead of the
-default notes ref(s). The ref specifies the full refname when it begins
+With an optional '<treeish>' argument, use the treeish to find the notes
+to display. The treeish can specify the full refname when it begins
with `refs/notes/`; when it begins with `notes/`, `refs/` and otherwise
`refs/notes/` is prefixed to form a full name of the ref.
+
@@ -71,7 +71,7 @@ being displayed. Examples: "--notes=foo" will show only notes from
"--notes --notes=foo --no-notes --notes=bar" will only show notes
from "refs/notes/bar".
---show-notes[=<ref>]::
+--show-notes[=<treeish>]::
--[no-]standard-notes::
These options are deprecated. Use the above --notes/--no-notes
options instead.
diff --git a/Documentation/revisions.txt b/Documentation/revisions.txt
index d85e303364..19314e3b7f 100644
--- a/Documentation/revisions.txt
+++ b/Documentation/revisions.txt
@@ -61,11 +61,11 @@ some output processing may assume ref names in UTF-8.
'@'::
'@' alone is a shortcut for 'HEAD'.
-'<refname>@\{<date>\}', e.g. 'master@\{yesterday\}', 'HEAD@\{5 minutes ago\}'::
+'<refname>@{<date>}', e.g. 'master@\{yesterday\}', 'HEAD@{5 minutes ago}'::
A ref followed by the suffix '@' with a date specification
enclosed in a brace
- pair (e.g. '\{yesterday\}', '\{1 month 2 weeks 3 days 1 hour 1
- second ago\}' or '\{1979-02-26 18:30:00\}') specifies the value
+ pair (e.g. '\{yesterday\}', '{1 month 2 weeks 3 days 1 hour 1
+ second ago}' or '{1979-02-26 18:30:00}') specifies the value
of the ref at a prior point in time. This suffix may only be
used immediately following a ref name and the ref must have an
existing log ('$GIT_DIR/logs/<ref>'). Note that this looks up the state
@@ -73,7 +73,7 @@ some output processing may assume ref names in UTF-8.
'master' branch last week. If you want to look at commits made during
certain times, see '--since' and '--until'.
-'<refname>@\{<n>\}', e.g. 'master@\{1\}'::
+'<refname>@{<n>}', e.g. 'master@\{1\}'::
A ref followed by the suffix '@' with an ordinal specification
enclosed in a brace pair (e.g. '\{1\}', '\{15\}') specifies
the n-th prior value of that ref. For example 'master@\{1\}'
@@ -82,13 +82,13 @@ some output processing may assume ref names in UTF-8.
immediately following a ref name and the ref must have an existing
log ('$GIT_DIR/logs/<refname>').
-'@\{<n>\}', e.g. '@\{1\}'::
+'@{<n>}', e.g. '@\{1\}'::
You can use the '@' construct with an empty ref part to get at a
reflog entry of the current branch. For example, if you are on
branch 'blabla' then '@\{1\}' means the same as 'blabla@\{1\}'.
-'@\{-<n>\}', e.g. '@\{-1\}'::
- The construct '@\{-<n>\}' means the <n>th branch/commit checked out
+'@{-<n>}', e.g. '@{-1}'::
+ The construct '@{-<n>}' means the <n>th branch/commit checked out
before the current one.
'<branchname>@\{upstream\}', e.g. 'master@\{upstream\}', '@\{u\}'::
@@ -139,7 +139,7 @@ from one location and push to another. In a non-triangular workflow,
'<rev>{caret}1{caret}1{caret}1'. See below for an illustration of
the usage of this form.
-'<rev>{caret}\{<type>\}', e.g. 'v0.99.8{caret}\{commit\}'::
+'<rev>{caret}{<type>}', e.g. 'v0.99.8{caret}\{commit\}'::
A suffix '{caret}' followed by an object type name enclosed in
brace pair means dereference the object at '<rev>' recursively until
an object of type '<type>' is found or the object cannot be
@@ -159,13 +159,13 @@ it does not have to be dereferenced even once to get to an object.
'rev{caret}\{tag\}' can be used to ensure that 'rev' identifies an
existing tag object.
-'<rev>{caret}\{\}', e.g. 'v0.99.8{caret}\{\}'::
+'<rev>{caret}{}', e.g. 'v0.99.8{caret}{}'::
A suffix '{caret}' followed by an empty brace pair
means the object could be a tag,
and dereference the tag recursively until a non-tag object is
found.
-'<rev>{caret}\{/<text>\}', e.g. 'HEAD^{/fix nasty bug}'::
+'<rev>{caret}{/<text>}', e.g. 'HEAD^{/fix nasty bug}'::
A suffix '{caret}' to a revision parameter, followed by a brace
pair that contains a text led by a slash,
is the same as the ':/fix nasty bug' syntax below except that
@@ -176,11 +176,12 @@ existing tag object.
A colon, followed by a slash, followed by a text, names
a commit whose commit message matches the specified regular expression.
This name returns the youngest matching commit which is
- reachable from any ref. If the commit message starts with a
- '!' you have to repeat that; the special sequence ':/!',
- followed by something else than '!', is reserved for now.
- The regular expression can match any part of the commit message. To
- match messages starting with a string, one can use e.g. ':/^foo'.
+ reachable from any ref. The regular expression can match any part of the
+ commit message. To match messages starting with a string, one can use
+ e.g. ':/^foo'. The special sequence ':/!' is reserved for modifiers to what
+ is matched. ':/!-foo' performs a negative match, while ':/!!foo' matches a
+ literal '!' character, followed by 'foo'. Any other sequence beginning with
+ ':/!' is reserved for now.
'<rev>:<path>', e.g. 'HEAD:README', ':README', 'master:./README'::
A suffix ':' followed by a path names the blob or tree
diff --git a/Documentation/technical/api-remote.txt b/Documentation/technical/api-remote.txt
index 2cfdd224a8..f10941b2e8 100644
--- a/Documentation/technical/api-remote.txt
+++ b/Documentation/technical/api-remote.txt
@@ -51,6 +51,10 @@ struct remote
The proxy to use for curl (http, https, ftp, etc.) URLs.
+`http_proxy_authmethod`::
+
+ The method used for authenticating against `http_proxy`.
+
struct remotes can be found by name with remote_get(), and iterated
through with for_each_remote(). remote_get(NULL) will return the
default remote, given the current branch and configuration.
diff --git a/Documentation/urls.txt b/Documentation/urls.txt
index 9ccb24677e..b05da95788 100644
--- a/Documentation/urls.txt
+++ b/Documentation/urls.txt
@@ -7,9 +7,8 @@ Depending on the transport protocol, some of this information may be
absent.
Git supports ssh, git, http, and https protocols (in addition, ftp,
-and ftps can be used for fetching and rsync can be used for fetching
-and pushing, but these are inefficient and deprecated; do not use
-them).
+and ftps can be used for fetching, but this is inefficient and
+deprecated; do not use it).
The native transport (i.e. git:// URL) does no authentication and
should be used with caution on unsecured networks.
@@ -20,7 +19,6 @@ The following syntaxes may be used with them:
- git://host.xz{startsb}:port{endsb}/path/to/repo.git/
- http{startsb}s{endsb}://host.xz{startsb}:port{endsb}/path/to/repo.git/
- ftp{startsb}s{endsb}://host.xz{startsb}:port{endsb}/path/to/repo.git/
-- rsync://host.xz/path/to/repo.git/
An alternative scp-like syntax may also be used with the ssh protocol:
diff --git a/Documentation/user-manual.txt b/Documentation/user-manual.txt
index ec6bacfcdf..5e07454572 100644
--- a/Documentation/user-manual.txt
+++ b/Documentation/user-manual.txt
@@ -2134,7 +2134,7 @@ browsing the repository using gitweb. The default server when using
instaweb is lighttpd.
See the file gitweb/INSTALL in the Git source tree and
-linkgit:gitweb[1] for instructions on details setting up a permament
+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]]
diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN
index c3ec13b5ab..b373d8ae8d 100755
--- a/GIT-VERSION-GEN
+++ b/GIT-VERSION-GEN
@@ -1,7 +1,7 @@
#!/bin/sh
GVF=GIT-VERSION-FILE
-DEF_VER=v2.7.3
+DEF_VER=v2.8.0-rc2
LF='
'
diff --git a/Makefile b/Makefile
index fd19b544c2..2742a6977c 100644
--- a/Makefile
+++ b/Makefile
@@ -264,6 +264,9 @@ all::
#
# Define NO_TCLTK if you do not want Tcl/Tk GUI.
#
+# Define SANE_TEXT_GREP to "-a" if you use recent versions of GNU grep
+# and egrep that are pickier when their input contains non-ASCII data.
+#
# The TCL_PATH variable governs the location of the Tcl interpreter
# used to optimize git-gui for your system. Only used if NO_TCLTK
# is not set. Defaults to the bare 'tclsh'.
@@ -380,6 +383,18 @@ ALL_CFLAGS = $(CPPFLAGS) $(CFLAGS)
ALL_LDFLAGS = $(LDFLAGS)
STRIP ?= strip
+ifdef DEVELOPER
+CFLAGS += -Werror \
+ -Wdeclaration-after-statement \
+ -Wno-format-zero-length \
+ -Wold-style-definition \
+ -Woverflow \
+ -Wpointer-arith \
+ -Wstrict-prototypes \
+ -Wunused \
+ -Wvla
+endif
+
# Create as necessary, replace existing, make ranlib unneeded.
ARFLAGS = rcs
@@ -583,6 +598,7 @@ TEST_PROGRAMS_NEED_X += test-delta
TEST_PROGRAMS_NEED_X += test-dump-cache-tree
TEST_PROGRAMS_NEED_X += test-dump-split-index
TEST_PROGRAMS_NEED_X += test-dump-untracked-cache
+TEST_PROGRAMS_NEED_X += test-fake-ssh
TEST_PROGRAMS_NEED_X += test-genrandom
TEST_PROGRAMS_NEED_X += test-hashmap
TEST_PROGRAMS_NEED_X += test-index-version
@@ -1727,7 +1743,7 @@ common-cmds.h: $(wildcard Documentation/git-*.txt)
SCRIPT_DEFINES = $(SHELL_PATH_SQ):$(DIFF_SQ):$(GIT_VERSION):\
$(localedir_SQ):$(NO_CURL):$(USE_GETTEXT_SCHEME):$(SANE_TOOL_PATH_SQ):\
- $(gitwebdir_SQ):$(PERL_PATH_SQ)
+ $(gitwebdir_SQ):$(PERL_PATH_SQ):$(SANE_TEXT_GREP)
define cmd_munge_script
$(RM) $@ $@+ && \
sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
@@ -1739,6 +1755,7 @@ sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
-e $(BROKEN_PATH_FIX) \
-e 's|@@GITWEBDIR@@|$(gitwebdir_SQ)|g' \
-e 's|@@PERL@@|$(PERL_PATH_SQ)|g' \
+ -e 's|@@SANE_TEXT_GREP@@|$(SANE_TEXT_GREP)|g' \
$@.sh >$@+
endef
@@ -2025,6 +2042,7 @@ $(VCSSVN_LIB): $(VCSSVN_OBJS)
export DEFAULT_EDITOR DEFAULT_PAGER
+.PHONY: doc man html info pdf
doc:
$(MAKE) -C Documentation all
@@ -2068,6 +2086,7 @@ po/git.pot: $(GENERATED_H) FORCE
$(LOCALIZED_PERL)
mv $@+ $@
+.PHONY: pot
pot: po/git.pot
POFILES := $(wildcard po/*.po)
@@ -2277,6 +2296,7 @@ mergetools_instdir_SQ = $(subst ','\'',$(mergetools_instdir))
install_bindir_programs := $(patsubst %,%$X,$(BINDIR_PROGRAMS_NEED_X)) $(BINDIR_PROGRAMS_NO_X)
+.PHONY: profile-install profile-fast-install
profile-install: profile
$(MAKE) install
@@ -2343,6 +2363,8 @@ endif
done && \
./check_bindir "z$$bindir" "z$$execdir" "$$bindir/git-add$X"
+.PHONY: install-gitweb install-doc install-man install-html install-info install-pdf
+.PHONY: quick-install-doc quick-install-man quick-install-html
install-gitweb:
$(MAKE) -C gitweb install
@@ -2402,6 +2424,7 @@ rpm: dist
htmldocs = git-htmldocs-$(GIT_VERSION)
manpages = git-manpages-$(GIT_VERSION)
+.PHONY: dist-doc distclean
dist-doc:
$(RM) -r .doc-tmp-dir
mkdir .doc-tmp-dir
@@ -2470,6 +2493,8 @@ ALL_COMMANDS += git
ALL_COMMANDS += gitk
ALL_COMMANDS += gitweb
ALL_COMMANDS += git-gui git-citool
+
+.PHONY: check-docs
check-docs::
@(for v in $(ALL_COMMANDS); \
do \
@@ -2514,6 +2539,7 @@ check-builtins::
### Test suite coverage testing
#
.PHONY: coverage coverage-clean coverage-compile coverage-test coverage-report
+.PHONY: coverage-untested-functions cover_db cover_db_html
.PHONY: coverage-clean-results
coverage:
diff --git a/README b/README.md
index 1083735d1c..d1ffbb6170 100644
--- a/README
+++ b/README.md
@@ -1,19 +1,5 @@
-////////////////////////////////////////////////////////////////
-
- Git - the stupid content tracker
-
-////////////////////////////////////////////////////////////////
-
-"git" can mean anything, depending on your mood.
-
- - random three-letter combination that is pronounceable, and not
- actually used by any common UNIX command. The fact that it is a
- mispronunciation of "get" may or may not be relevant.
- - stupid. contemptible and despicable. simple. Take your pick from the
- dictionary of slang.
- - "global information tracker": you're in a good mood, and it actually
- works for you. Angels sing, and a light suddenly fills the room.
- - "goddamn idiotic truckload of sh*t": when it breaks
+Git - fast, scalable, distributed revision control system
+=========================================================
Git is a fast, scalable, distributed revision control system with an
unusually rich command set that provides both high-level operations
@@ -24,27 +10,27 @@ License version 2 (some parts of it are under different licenses,
compatible with the GPLv2). It was originally written by Linus
Torvalds with help of a group of hackers around the net.
-Please read the file INSTALL for installation instructions.
+Please read the file [INSTALL][] for installation instructions.
+
+Many Git online resources are accessible from http://git-scm.com/
+including full documentation and Git related tools.
-See Documentation/gittutorial.txt to get started, then see
-Documentation/giteveryday.txt for a useful minimum set of commands, and
-Documentation/git-commandname.txt for documentation of each command.
+See [Documentation/gittutorial.txt][] to get started, then see
+[Documentation/giteveryday.txt][] for a useful minimum set of commands, and
+[Documentation/git-commandname.txt][] for documentation of each command.
If git has been correctly installed, then the tutorial can also be
read with "man gittutorial" or "git help tutorial", and the
documentation of each command with "man git-commandname" or "git help
commandname".
-CVS users may also want to read Documentation/gitcvs-migration.txt
+CVS users may also want to read [Documentation/gitcvs-migration.txt][]
("man gitcvs-migration" or "git help cvs-migration" if git is
installed).
-Many Git online resources are accessible from http://git-scm.com/
-including full documentation and Git related tools.
-
The user discussion and development of Git take place on the Git
mailing list -- everyone is welcome to post bug reports, feature
requests, comments and patches to git@vger.kernel.org (read
-Documentation/SubmittingPatches for instructions on patch submission).
+[Documentation/SubmittingPatches][] for instructions on patch submission).
To subscribe to the list, send an email with just "subscribe git" in
the body to majordomo@vger.kernel.org. The mailing list archives are
available at http://news.gmane.org/gmane.comp.version-control.git/,
@@ -54,3 +40,23 @@ The maintainer frequently sends the "What's cooking" reports that
list the current status of various development topics to the mailing
list. The discussion following them give a good reference for
project status, development direction and remaining tasks.
+
+The name "git" was given by Linus Torvalds when he wrote the very
+first version. He described the tool as "the stupid content tracker"
+and the name as (depending on your mood):
+
+ - random three-letter combination that is pronounceable, and not
+ actually used by any common UNIX command. The fact that it is a
+ mispronunciation of "get" may or may not be relevant.
+ - stupid. contemptible and despicable. simple. Take your pick from the
+ dictionary of slang.
+ - "global information tracker": you're in a good mood, and it actually
+ works for you. Angels sing, and a light suddenly fills the room.
+ - "goddamn idiotic truckload of sh*t": when it breaks
+
+[INSTALL]: INSTALL
+[Documentation/gittutorial.txt]: Documentation/gittutorial.txt
+[Documentation/giteveryday.txt]: Documentation/giteveryday.txt
+[Documentation/git-commandname.txt]: Documentation/git-commandname.txt
+[Documentation/gitcvs-migration.txt]: Documentation/gitcvs-migration.txt
+[Documentation/SubmittingPatches]: Documentation/SubmittingPatches
diff --git a/RelNotes b/RelNotes
index 65d6f36d39..7db30403c3 120000
--- a/RelNotes
+++ b/RelNotes
@@ -1 +1 @@
-Documentation/RelNotes/2.7.3.txt \ No newline at end of file
+Documentation/RelNotes/2.8.0.txt \ No newline at end of file
diff --git a/bisect.c b/bisect.c
index 6d0793b9fc..7996c2907b 100644
--- a/bisect.c
+++ b/bisect.c
@@ -440,7 +440,7 @@ static void read_bisect_paths(struct argv_array *array)
if (!fp)
die_errno("Could not open file '%s'", filename);
- while (strbuf_getline(&str, fp, '\n') != EOF) {
+ while (strbuf_getline_lf(&str, fp) != EOF) {
strbuf_trim(&str);
if (sq_dequote_to_argv_array(str.buf, array))
die("Badly quoted content in file '%s': %s",
@@ -668,7 +668,7 @@ static int is_expected_rev(const struct object_id *oid)
if (!fp)
return 0;
- if (strbuf_getline(&str, fp, '\n') != EOF)
+ if (strbuf_getline_lf(&str, fp) != EOF)
res = !strcmp(str.buf, oid_to_hex(oid));
strbuf_release(&str);
@@ -914,9 +914,9 @@ void read_bisect_terms(const char **read_bad, const char **read_good)
strerror(errno));
}
} else {
- strbuf_getline(&str, fp, '\n');
+ strbuf_getline_lf(&str, fp);
*read_bad = strbuf_detach(&str, NULL);
- strbuf_getline(&str, fp, '\n');
+ strbuf_getline_lf(&str, fp);
*read_good = strbuf_detach(&str, NULL);
}
strbuf_release(&str);
diff --git a/builtin/am.c b/builtin/am.c
index 5668e0c3a5..d003939bc5 100644
--- a/builtin/am.c
+++ b/builtin/am.c
@@ -46,21 +46,6 @@ static int is_empty_file(const char *filename)
}
/**
- * Like strbuf_getline(), but treats both '\n' and "\r\n" as line terminators.
- */
-static int strbuf_getline_crlf(struct strbuf *sb, FILE *fp)
-{
- if (strbuf_getwholeline(sb, fp, '\n'))
- return EOF;
- if (sb->buf[sb->len - 1] == '\n') {
- strbuf_setlen(sb, sb->len - 1);
- if (sb->len > 0 && sb->buf[sb->len - 1] == '\r')
- strbuf_setlen(sb, sb->len - 1);
- }
- return 0;
-}
-
-/**
* Returns the length of the first line of msg.
*/
static int linelen(const char *msg)
@@ -284,7 +269,7 @@ static char *read_shell_var(FILE *fp, const char *key)
struct strbuf sb = STRBUF_INIT;
const char *str;
- if (strbuf_getline(&sb, fp, '\n'))
+ if (strbuf_getline_lf(&sb, fp))
goto fail;
if (!skip_prefix(sb.buf, key, &str))
@@ -573,7 +558,7 @@ static int copy_notes_for_rebase(const struct am_state *state)
fp = xfopen(am_path(state, "rewritten"), "r");
- while (!strbuf_getline(&sb, fp, '\n')) {
+ while (!strbuf_getline_lf(&sb, fp)) {
unsigned char from_obj[GIT_SHA1_RAWSZ], to_obj[GIT_SHA1_RAWSZ];
if (sb.len != GIT_SHA1_HEXSZ * 2 + 1) {
@@ -628,7 +613,7 @@ static int is_mail(FILE *fp)
if (regcomp(&regex, header_regex, REG_NOSUB | REG_EXTENDED))
die("invalid pattern: %s", header_regex);
- while (!strbuf_getline_crlf(&sb, fp)) {
+ while (!strbuf_getline(&sb, fp)) {
if (!sb.len)
break; /* End of header */
@@ -675,7 +660,7 @@ static int detect_patch_format(const char **paths)
fp = xfopen(*paths, "r");
- while (!strbuf_getline_crlf(&l1, fp)) {
+ while (!strbuf_getline(&l1, fp)) {
if (l1.len)
break;
}
@@ -696,9 +681,9 @@ static int detect_patch_format(const char **paths)
}
strbuf_reset(&l2);
- strbuf_getline_crlf(&l2, fp);
+ strbuf_getline(&l2, fp);
strbuf_reset(&l3);
- strbuf_getline_crlf(&l3, fp);
+ strbuf_getline(&l3, fp);
/*
* If the second line is empty and the third is a From, Author or Date
@@ -817,7 +802,7 @@ static int stgit_patch_to_mail(FILE *out, FILE *in, int keep_cr)
struct strbuf sb = STRBUF_INIT;
int subject_printed = 0;
- while (!strbuf_getline(&sb, in, '\n')) {
+ while (!strbuf_getline_lf(&sb, in)) {
const char *str;
if (str_isspace(sb.buf))
@@ -875,7 +860,7 @@ static int split_mail_stgit_series(struct am_state *state, const char **paths,
return error(_("could not open '%s' for reading: %s"), *paths,
strerror(errno));
- while (!strbuf_getline(&sb, fp, '\n')) {
+ while (!strbuf_getline_lf(&sb, fp)) {
if (*sb.buf == '#')
continue; /* skip comment lines */
@@ -900,7 +885,7 @@ static int hg_patch_to_mail(FILE *out, FILE *in, int keep_cr)
{
struct strbuf sb = STRBUF_INIT;
- while (!strbuf_getline(&sb, in, '\n')) {
+ while (!strbuf_getline_lf(&sb, in)) {
const char *str;
if (skip_prefix(sb.buf, "# User ", &str))
@@ -1317,7 +1302,7 @@ static int parse_mail(struct am_state *state, const char *mail)
/* Extract message and author information */
fp = xfopen(am_path(state, "info"), "r");
- while (!strbuf_getline(&sb, fp, '\n')) {
+ while (!strbuf_getline_lf(&sb, fp)) {
const char *x;
if (skip_prefix(sb.buf, "Subject: ", &x)) {
@@ -1383,7 +1368,7 @@ static int get_mail_commit_sha1(unsigned char *commit_id, const char *mail)
FILE *fp = xfopen(mail, "r");
const char *x;
- if (strbuf_getline(&sb, fp, '\n'))
+ if (strbuf_getline_lf(&sb, fp))
return -1;
if (!skip_prefix(sb.buf, "From ", &x))
diff --git a/builtin/apply.c b/builtin/apply.c
index 0db6d14cc2..42c610e2ec 100644
--- a/builtin/apply.c
+++ b/builtin/apply.c
@@ -4464,16 +4464,6 @@ static int option_parse_p(const struct option *opt,
return 0;
}
-static int option_parse_z(const struct option *opt,
- const char *arg, int unset)
-{
- if (unset)
- line_termination = '\n';
- else
- line_termination = 0;
- return 0;
-}
-
static int option_parse_space_change(const struct option *opt,
const char *arg, int unset)
{
@@ -4546,9 +4536,9 @@ int cmd_apply(int argc, const char **argv, const char *prefix_)
N_( "attempt three-way merge if a patch does not apply")),
OPT_FILENAME(0, "build-fake-ancestor", &fake_ancestor,
N_("build a temporary index based on embedded index information")),
- { OPTION_CALLBACK, 'z', NULL, NULL, NULL,
- N_("paths are separated with NUL character"),
- PARSE_OPT_NOARG, option_parse_z },
+ /* Think twice before adding "--nul" synonym to this */
+ OPT_SET_INT('z', NULL, &line_termination,
+ N_("paths are separated with NUL character"), '\0'),
OPT_INTEGER('C', NULL, &p_context,
N_("ensure at least <n> lines of context match")),
{ OPTION_CALLBACK, 0, "whitespace", &whitespace_option, N_("action"),
diff --git a/builtin/blame.c b/builtin/blame.c
index 0b4f0bbb53..e982fb8137 100644
--- a/builtin/blame.c
+++ b/builtin/blame.c
@@ -28,6 +28,7 @@
#include "line-range.h"
#include "line-log.h"
#include "dir.h"
+#include "progress.h"
static char blame_usage[] = N_("git blame [<options>] [<rev-opts>] [<rev>] [--] <file>");
@@ -50,6 +51,7 @@ static int incremental;
static int xdl_opts;
static int abbrev = -1;
static int no_whole_file_rename;
+static int show_progress;
static struct date_mode blame_date_mode = { DATE_ISO8601 };
static size_t blame_date_width;
@@ -127,6 +129,11 @@ struct origin {
char path[FLEX_ARRAY];
};
+struct progress_info {
+ struct progress *progress;
+ int blamed_lines;
+};
+
static int diff_hunks(mmfile_t *file_a, mmfile_t *file_b, long ctxlen,
xdl_emit_hunk_consume_func_t hunk_func, void *cb_data)
{
@@ -1744,7 +1751,8 @@ static int emit_one_suspect_detail(struct origin *suspect, int repeat)
* The blame_entry is found to be guilty for the range.
* Show it in incremental output.
*/
-static void found_guilty_entry(struct blame_entry *ent)
+static void found_guilty_entry(struct blame_entry *ent,
+ struct progress_info *pi)
{
if (incremental) {
struct origin *suspect = ent->suspect;
@@ -1756,6 +1764,8 @@ static void found_guilty_entry(struct blame_entry *ent)
write_filename_info(suspect->path);
maybe_flush_or_die(stdout, "stdout");
}
+ pi->blamed_lines += ent->num_lines;
+ display_progress(pi->progress, pi->blamed_lines);
}
/*
@@ -1766,6 +1776,11 @@ static void assign_blame(struct scoreboard *sb, int opt)
{
struct rev_info *revs = sb->revs;
struct commit *commit = prio_queue_get(&sb->commits);
+ struct progress_info pi = { NULL, 0 };
+
+ if (show_progress)
+ pi.progress = start_progress_delay(_("Blaming lines"),
+ sb->num_lines, 50, 1);
while (commit) {
struct blame_entry *ent;
@@ -1807,7 +1822,7 @@ static void assign_blame(struct scoreboard *sb, int opt)
suspect->guilty = 1;
for (;;) {
struct blame_entry *next = ent->next;
- found_guilty_entry(ent);
+ found_guilty_entry(ent, &pi);
if (next) {
ent = next;
continue;
@@ -1823,6 +1838,8 @@ static void assign_blame(struct scoreboard *sb, int opt)
if (DEBUG) /* sanity */
sanity_check_refcnt(sb);
}
+
+ stop_progress(&pi.progress);
}
static const char *format_time(unsigned long time, const char *tz_str,
@@ -2514,6 +2531,7 @@ int cmd_blame(int argc, const char **argv, const char *prefix)
OPT_BOOL('b', NULL, &blank_boundary, N_("Show blank SHA-1 for boundary commits (Default: off)")),
OPT_BOOL(0, "root", &show_root, N_("Do not treat root commits as boundaries (Default: off)")),
OPT_BOOL(0, "show-stats", &show_stats, N_("Show work cost statistics")),
+ OPT_BOOL(0, "progress", &show_progress, N_("Force progress reporting")),
OPT_BIT(0, "score-debug", &output_option, N_("Show output score for blame entries"), OUTPUT_SHOW_SCORE),
OPT_BIT('f', "show-name", &output_option, N_("Show original filename (Default: auto)"), OUTPUT_SHOW_NAME),
OPT_BIT('n', "show-number", &output_option, N_("Show original linenumber (Default: off)"), OUTPUT_SHOW_NUMBER),
@@ -2549,6 +2567,7 @@ int cmd_blame(int argc, const char **argv, const char *prefix)
save_commit_buffer = 0;
dashdash_pos = 0;
+ show_progress = -1;
parse_options_start(&ctx, argc, argv, prefix, options,
PARSE_OPT_KEEP_DASHDASH | PARSE_OPT_KEEP_ARGV0);
@@ -2573,6 +2592,13 @@ parse_done:
DIFF_OPT_CLR(&revs.diffopt, FOLLOW_RENAMES);
argc = parse_options_end(&ctx);
+ if (incremental || (output_option & OUTPUT_PORCELAIN)) {
+ if (show_progress > 0)
+ die("--progress can't be used with --incremental or porcelain formats");
+ show_progress = 0;
+ } else if (show_progress < 0)
+ show_progress = isatty(2);
+
if (0 < abbrev)
/* one more abbrev length is needed for the boundary commit */
abbrev++;
@@ -2822,11 +2848,11 @@ parse_done:
read_mailmap(&mailmap, NULL);
+ assign_blame(&sb, opt);
+
if (!incremental)
setup_pager();
- assign_blame(&sb, opt);
-
free(final_commit_name);
if (incremental)
diff --git a/builtin/cat-file.c b/builtin/cat-file.c
index c0fd8dbb1c..54db1184a0 100644
--- a/builtin/cat-file.c
+++ b/builtin/cat-file.c
@@ -401,7 +401,7 @@ static int batch_objects(struct batch_options *opt)
save_warning = warn_on_object_refname_ambiguity;
warn_on_object_refname_ambiguity = 0;
- while (strbuf_getline(&buf, stdin, '\n') != EOF) {
+ while (strbuf_getline(&buf, stdin) != EOF) {
if (data.split_on_whitespace) {
/*
* Split at first whitespace, tying off the beginning
diff --git a/builtin/check-attr.c b/builtin/check-attr.c
index 265c9ba022..53a5a18c16 100644
--- a/builtin/check-attr.c
+++ b/builtin/check-attr.c
@@ -72,23 +72,23 @@ static void check_attr(const char *prefix, int cnt,
static void check_attr_stdin_paths(const char *prefix, int cnt,
struct git_attr_check *check)
{
- struct strbuf buf, nbuf;
- int line_termination = nul_term_line ? 0 : '\n';
-
- strbuf_init(&buf, 0);
- strbuf_init(&nbuf, 0);
- while (strbuf_getline(&buf, stdin, line_termination) != EOF) {
- if (line_termination && buf.buf[0] == '"') {
- strbuf_reset(&nbuf);
- if (unquote_c_style(&nbuf, buf.buf, NULL))
+ struct strbuf buf = STRBUF_INIT;
+ struct strbuf unquoted = STRBUF_INIT;
+ strbuf_getline_fn getline_fn;
+
+ getline_fn = nul_term_line ? strbuf_getline_nul : strbuf_getline_lf;
+ while (getline_fn(&buf, stdin) != EOF) {
+ if (!nul_term_line && buf.buf[0] == '"') {
+ strbuf_reset(&unquoted);
+ if (unquote_c_style(&unquoted, buf.buf, NULL))
die("line is badly quoted");
- strbuf_swap(&buf, &nbuf);
+ strbuf_swap(&buf, &unquoted);
}
check_attr(prefix, cnt, check, buf.buf);
maybe_flush_or_die(stdout, "attribute to stdout");
}
strbuf_release(&buf);
- strbuf_release(&nbuf);
+ strbuf_release(&unquoted);
}
static NORETURN void error_with_usage(const char *msg)
diff --git a/builtin/check-ignore.c b/builtin/check-ignore.c
index 43f361797a..1d73d3ca3d 100644
--- a/builtin/check-ignore.c
+++ b/builtin/check-ignore.c
@@ -115,19 +115,19 @@ static int check_ignore(struct dir_struct *dir,
static int check_ignore_stdin_paths(struct dir_struct *dir, const char *prefix)
{
- struct strbuf buf, nbuf;
+ struct strbuf buf = STRBUF_INIT;
+ struct strbuf unquoted = STRBUF_INIT;
char *pathspec[2] = { NULL, NULL };
- int line_termination = nul_term_line ? 0 : '\n';
+ strbuf_getline_fn getline_fn;
int num_ignored = 0;
- strbuf_init(&buf, 0);
- strbuf_init(&nbuf, 0);
- while (strbuf_getline(&buf, stdin, line_termination) != EOF) {
- if (line_termination && buf.buf[0] == '"') {
- strbuf_reset(&nbuf);
- if (unquote_c_style(&nbuf, buf.buf, NULL))
+ getline_fn = nul_term_line ? strbuf_getline_nul : strbuf_getline_lf;
+ while (getline_fn(&buf, stdin) != EOF) {
+ if (!nul_term_line && buf.buf[0] == '"') {
+ strbuf_reset(&unquoted);
+ if (unquote_c_style(&unquoted, buf.buf, NULL))
die("line is badly quoted");
- strbuf_swap(&buf, &nbuf);
+ strbuf_swap(&buf, &unquoted);
}
pathspec[0] = buf.buf;
num_ignored += check_ignore(dir, prefix,
@@ -135,7 +135,7 @@ static int check_ignore_stdin_paths(struct dir_struct *dir, const char *prefix)
maybe_flush_or_die(stdout, "check-ignore to stdout");
}
strbuf_release(&buf);
- strbuf_release(&nbuf);
+ strbuf_release(&unquoted);
return num_ignored;
}
diff --git a/builtin/check-mailmap.c b/builtin/check-mailmap.c
index eaaea546d3..cf0f54f6b9 100644
--- a/builtin/check-mailmap.c
+++ b/builtin/check-mailmap.c
@@ -54,7 +54,7 @@ int cmd_check_mailmap(int argc, const char **argv, const char *prefix)
if (use_stdin) {
struct strbuf buf = STRBUF_INIT;
- while (strbuf_getline(&buf, stdin, '\n') != EOF) {
+ while (strbuf_getline_lf(&buf, stdin) != EOF) {
check_mailmap(&mailmap, buf.buf);
maybe_flush_or_die(stdout, "stdout");
}
diff --git a/builtin/checkout-index.c b/builtin/checkout-index.c
index 8028c3768f..92c69672e9 100644
--- a/builtin/checkout-index.c
+++ b/builtin/checkout-index.c
@@ -11,7 +11,7 @@
#include "parse-options.h"
#define CHECKOUT_ALL 4
-static int line_termination = '\n';
+static int nul_term_line;
static int checkout_stage; /* default to checkout stage0 */
static int to_tempfile;
static char topath[4][TEMPORARY_FILENAME_LENGTH + 1];
@@ -35,7 +35,8 @@ static void write_tempfile_record(const char *name, const char *prefix)
fputs(topath[checkout_stage], stdout);
putchar('\t');
- write_name_quoted_relative(name, prefix, stdout, line_termination);
+ write_name_quoted_relative(name, prefix, stdout,
+ nul_term_line ? '\0' : '\n');
for (i = 0; i < 4; i++) {
topath[i][0] = 0;
@@ -129,36 +130,6 @@ static const char * const builtin_checkout_index_usage[] = {
static struct lock_file lock_file;
-static int option_parse_u(const struct option *opt,
- const char *arg, int unset)
-{
- int *newfd = opt->value;
-
- state.refresh_cache = 1;
- state.istate = &the_index;
- if (*newfd < 0)
- *newfd = hold_locked_index(&lock_file, 1);
- return 0;
-}
-
-static int option_parse_z(const struct option *opt,
- const char *arg, int unset)
-{
- if (unset)
- line_termination = '\n';
- else
- line_termination = 0;
- return 0;
-}
-
-static int option_parse_prefix(const struct option *opt,
- const char *arg, int unset)
-{
- state.base_dir = arg;
- state.base_dir_len = strlen(arg);
- return 0;
-}
-
static int option_parse_stage(const struct option *opt,
const char *arg, int unset)
{
@@ -170,7 +141,7 @@ static int option_parse_stage(const struct option *opt,
if ('1' <= ch && ch <= '3')
checkout_stage = arg[0] - '0';
else
- die("stage should be between 1 and 3 or all");
+ die(_("stage should be between 1 and 3 or all"));
}
return 0;
}
@@ -183,6 +154,7 @@ int cmd_checkout_index(int argc, const char **argv, const char *prefix)
int read_from_stdin = 0;
int prefix_length;
int force = 0, quiet = 0, not_new = 0;
+ int index_opt = 0;
struct option builtin_checkout_index_options[] = {
OPT_BOOL('a', "all", &all,
N_("check out all files in the index")),
@@ -191,22 +163,19 @@ int cmd_checkout_index(int argc, const char **argv, const char *prefix)
N_("no warning for existing files and files not in index")),
OPT_BOOL('n', "no-create", &not_new,
N_("don't checkout new files")),
- { OPTION_CALLBACK, 'u', "index", &newfd, NULL,
- N_("update stat information in the index file"),
- PARSE_OPT_NOARG, option_parse_u },
- { OPTION_CALLBACK, 'z', NULL, NULL, NULL,
- N_("paths are separated with NUL character"),
- PARSE_OPT_NOARG, option_parse_z },
+ OPT_BOOL('u', "index", &index_opt,
+ N_("update stat information in the index file")),
+ OPT_BOOL('z', NULL, &nul_term_line,
+ N_("paths are separated with NUL character")),
OPT_BOOL(0, "stdin", &read_from_stdin,
N_("read list of paths from the standard input")),
OPT_BOOL(0, "temp", &to_tempfile,
N_("write the content to temporary files")),
- OPT_CALLBACK(0, "prefix", NULL, N_("string"),
- N_("when creating files, prepend <string>"),
- option_parse_prefix),
- OPT_CALLBACK(0, "stage", NULL, NULL,
+ OPT_STRING(0, "prefix", &state.base_dir, N_("string"),
+ N_("when creating files, prepend <string>")),
+ { OPTION_CALLBACK, 0, "stage", NULL, "1-3|all",
N_("copy out the files from named stage"),
- option_parse_stage),
+ PARSE_OPT_NONEG, option_parse_stage },
OPT_END()
};
@@ -214,7 +183,6 @@ int cmd_checkout_index(int argc, const char **argv, const char *prefix)
usage_with_options(builtin_checkout_index_usage,
builtin_checkout_index_options);
git_config(git_default_config, NULL);
- state.base_dir = "";
prefix_length = prefix ? strlen(prefix) : 0;
if (read_cache() < 0) {
@@ -227,15 +195,17 @@ int cmd_checkout_index(int argc, const char **argv, const char *prefix)
state.quiet = quiet;
state.not_new = not_new;
- if (state.base_dir_len || to_tempfile) {
- /* when --prefix is specified we do not
- * want to update cache.
- */
- if (state.refresh_cache) {
- rollback_lock_file(&lock_file);
- newfd = -1;
- }
- state.refresh_cache = 0;
+ if (!state.base_dir)
+ state.base_dir = "";
+ state.base_dir_len = strlen(state.base_dir);
+
+ /*
+ * when --prefix is specified we do not want to update cache.
+ */
+ if (index_opt && !state.base_dir_len && !to_tempfile) {
+ state.refresh_cache = 1;
+ state.istate = &the_index;
+ newfd = hold_locked_index(&lock_file, 1);
}
/* Check out named files first */
@@ -253,24 +223,27 @@ int cmd_checkout_index(int argc, const char **argv, const char *prefix)
}
if (read_from_stdin) {
- struct strbuf buf = STRBUF_INIT, nbuf = STRBUF_INIT;
+ struct strbuf buf = STRBUF_INIT;
+ struct strbuf unquoted = STRBUF_INIT;
+ strbuf_getline_fn getline_fn;
if (all)
die("git checkout-index: don't mix '--all' and '--stdin'");
- while (strbuf_getline(&buf, stdin, line_termination) != EOF) {
+ getline_fn = nul_term_line ? strbuf_getline_nul : strbuf_getline_lf;
+ while (getline_fn(&buf, stdin) != EOF) {
char *p;
- if (line_termination && buf.buf[0] == '"') {
- strbuf_reset(&nbuf);
- if (unquote_c_style(&nbuf, buf.buf, NULL))
+ if (!nul_term_line && buf.buf[0] == '"') {
+ strbuf_reset(&unquoted);
+ if (unquote_c_style(&unquoted, buf.buf, NULL))
die("line is badly quoted");
- strbuf_swap(&buf, &nbuf);
+ strbuf_swap(&buf, &unquoted);
}
p = prefix_path(prefix, prefix_length, buf.buf);
checkout_file(p, prefix);
free(p);
}
- strbuf_release(&nbuf);
+ strbuf_release(&unquoted);
strbuf_release(&buf);
}
diff --git a/builtin/checkout.c b/builtin/checkout.c
index d53ab75ac9..efcbd8f6b5 100644
--- a/builtin/checkout.c
+++ b/builtin/checkout.c
@@ -661,7 +661,8 @@ static void update_refs_for_switch(const struct checkout_opts *opts,
describe_detached_head(_("HEAD is now at"), new->commit);
}
} else if (new->path) { /* Switch branches. */
- create_symref("HEAD", new->path, msg.buf);
+ if (create_symref("HEAD", new->path, msg.buf) < 0)
+ die(_("unable to update HEAD"));
if (!opts->quiet) {
if (old->path && !strcmp(new->path, old->path)) {
if (opts->new_branch_force)
diff --git a/builtin/clean.c b/builtin/clean.c
index fb1824ce95..0371010afb 100644
--- a/builtin/clean.c
+++ b/builtin/clean.c
@@ -570,7 +570,7 @@ static int *list_and_choose(struct menu_opts *opts, struct menu_stuff *stuff)
clean_get_color(CLEAN_COLOR_RESET));
}
- if (strbuf_getline(&choice, stdin, '\n') != EOF) {
+ if (strbuf_getline_lf(&choice, stdin) != EOF) {
strbuf_trim(&choice);
} else {
eof = 1;
@@ -652,7 +652,7 @@ static int filter_by_patterns_cmd(void)
clean_print_color(CLEAN_COLOR_PROMPT);
printf(_("Input ignore patterns>> "));
clean_print_color(CLEAN_COLOR_RESET);
- if (strbuf_getline(&confirm, stdin, '\n') != EOF)
+ if (strbuf_getline_lf(&confirm, stdin) != EOF)
strbuf_trim(&confirm);
else
putchar('\n');
@@ -750,7 +750,7 @@ static int ask_each_cmd(void)
qname = quote_path_relative(item->string, NULL, &buf);
/* TRANSLATORS: Make sure to keep [y/N] as is */
printf(_("Remove %s [y/N]? "), qname);
- if (strbuf_getline(&confirm, stdin, '\n') != EOF) {
+ if (strbuf_getline_lf(&confirm, stdin) != EOF) {
strbuf_trim(&confirm);
} else {
putchar('\n');
diff --git a/builtin/clone.c b/builtin/clone.c
index 8a90cad5b5..661639255c 100644
--- a/builtin/clone.c
+++ b/builtin/clone.c
@@ -47,6 +47,7 @@ static const char *real_git_dir;
static char *option_upload_pack = "git-upload-pack";
static int option_verbosity;
static int option_progress = -1;
+static enum transport_family family;
static struct string_list option_config;
static struct string_list option_reference;
static int option_dissociate;
@@ -92,6 +93,10 @@ static struct option builtin_clone_options[] = {
N_("separate git dir from working tree")),
OPT_STRING_LIST('c', "config", &option_config, N_("key=value"),
N_("set config inside the new repository")),
+ OPT_SET_INT('4', "ipv4", &family, N_("use IPv4 addresses only"),
+ TRANSPORT_FAMILY_IPV4),
+ OPT_SET_INT('6', "ipv6", &family, N_("use IPv6 addresses only"),
+ TRANSPORT_FAMILY_IPV6),
OPT_END()
};
@@ -231,8 +236,8 @@ static char *guess_dir_name(const char *repo, int is_bundle, int is_bare)
strip_suffix_mem(start, &len, is_bundle ? ".bundle" : ".git");
if (!len || (len == 1 && *start == '/'))
- die("No directory name could be guessed.\n"
- "Please specify a directory on the command line");
+ die(_("No directory name could be guessed.\n"
+ "Please specify a directory on the command line"));
if (is_bare)
dir = xstrfmt("%.*s.git", (int)len, start);
@@ -339,7 +344,7 @@ static void copy_alternates(struct strbuf *src, struct strbuf *dst,
FILE *in = fopen(src->buf, "r");
struct strbuf line = STRBUF_INIT;
- while (strbuf_getline(&line, in, '\n') != EOF) {
+ while (strbuf_getline(&line, in) != EOF) {
char *abs_path;
if (!line.len || line.buf[0] == '#')
continue;
@@ -636,9 +641,11 @@ static void update_remote_refs(const struct ref *refs,
struct strbuf head_ref = STRBUF_INIT;
strbuf_addstr(&head_ref, branch_top);
strbuf_addstr(&head_ref, "HEAD");
- create_symref(head_ref.buf,
- remote_head_points_at->peer_ref->name,
- msg);
+ if (create_symref(head_ref.buf,
+ remote_head_points_at->peer_ref->name,
+ msg) < 0)
+ die(_("unable to update %s"), head_ref.buf);
+ strbuf_release(&head_ref);
}
}
@@ -648,7 +655,8 @@ static void update_head(const struct ref *our, const struct ref *remote,
const char *head;
if (our && skip_prefix(our->name, "refs/heads/", &head)) {
/* Local default branch link */
- create_symref("HEAD", our->name, NULL);
+ if (create_symref("HEAD", our->name, NULL) < 0)
+ die(_("unable to update HEAD"));
if (!option_bare) {
update_ref(msg, "HEAD", our->old_oid.hash, NULL, 0,
UPDATE_REFS_DIE_ON_ERR);
@@ -742,7 +750,7 @@ static void write_config(struct string_list *config)
for (i = 0; i < config->nr; i++) {
if (git_config_parse_parameter(config->items[i].string,
write_one_config, NULL) < 0)
- die("unable to write parameters to config file");
+ die(_("unable to write parameters to config file"));
}
}
@@ -967,6 +975,7 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
remote = remote_get(option_origin);
transport = transport_get(remote, remote->url[0]);
transport_set_verbosity(transport, option_verbosity, option_progress);
+ transport->family = family;
path = get_repo_path(remote->url[0], &is_bundle);
is_local = option_local != 0 && path && !is_bundle;
diff --git a/builtin/column.c b/builtin/column.c
index 449413c8a8..33314b4d71 100644
--- a/builtin/column.c
+++ b/builtin/column.c
@@ -51,7 +51,7 @@ int cmd_column(int argc, const char **argv, const char *prefix)
die(_("--command must be the first argument"));
}
finalize_colopts(&colopts, -1);
- while (!strbuf_getline(&sb, stdin, '\n'))
+ while (!strbuf_getline(&sb, stdin))
string_list_append(&list, sb.buf);
print_columns(&list, colopts, &copts);
diff --git a/builtin/commit.c b/builtin/commit.c
index 89bf6ad38a..b3bd2d4181 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -1690,7 +1690,7 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
if (fp == NULL)
die_errno(_("could not open '%s' for reading"),
git_path_merge_head());
- while (strbuf_getline(&m, fp, '\n') != EOF) {
+ while (strbuf_getline_lf(&m, fp) != EOF) {
struct commit *parent;
parent = get_merge_parent(m.buf);
diff --git a/builtin/config.c b/builtin/config.c
index 746233e4bb..ca9f834ae6 100644
--- a/builtin/config.c
+++ b/builtin/config.c
@@ -3,6 +3,7 @@
#include "color.h"
#include "parse-options.h"
#include "urlmatch.h"
+#include "quote.h"
static const char *const builtin_config_usage[] = {
N_("git config [<options>]"),
@@ -27,6 +28,7 @@ static int actions, types;
static const char *get_color_slot, *get_colorbool_slot;
static int end_null;
static int respect_includes = -1;
+static int show_origin;
#define ACTION_GET (1<<0)
#define ACTION_GET_ALL (1<<1)
@@ -81,6 +83,7 @@ static struct option builtin_config_options[] = {
OPT_BOOL('z', "null", &end_null, N_("terminate values with NUL byte")),
OPT_BOOL(0, "name-only", &omit_values, N_("show variable names only")),
OPT_BOOL(0, "includes", &respect_includes, N_("respect include directives on lookup")),
+ OPT_BOOL(0, "show-origin", &show_origin, N_("show origin of config (file, standard input, blob, command line)")),
OPT_END(),
};
@@ -91,8 +94,28 @@ static void check_argc(int argc, int min, int max) {
usage_with_options(builtin_config_usage, builtin_config_options);
}
+static void show_config_origin(struct strbuf *buf)
+{
+ const char term = end_null ? '\0' : '\t';
+
+ strbuf_addstr(buf, current_config_origin_type());
+ strbuf_addch(buf, ':');
+ if (end_null)
+ strbuf_addstr(buf, current_config_name());
+ else
+ quote_c_style(current_config_name(), buf, NULL, 0);
+ strbuf_addch(buf, term);
+}
+
static int show_all_config(const char *key_, const char *value_, void *cb)
{
+ if (show_origin) {
+ struct strbuf buf = STRBUF_INIT;
+ show_config_origin(&buf);
+ /* Use fwrite as "buf" can contain \0's if "end_null" is set. */
+ fwrite(buf.buf, 1, buf.len, stdout);
+ strbuf_release(&buf);
+ }
if (!omit_values && value_)
printf("%s%c%s%c", key_, delim, value_, term);
else
@@ -108,6 +131,8 @@ struct strbuf_list {
static int format_config(struct strbuf *buf, const char *key_, const char *value_)
{
+ if (show_origin)
+ show_config_origin(buf);
if (show_keys)
strbuf_addstr(buf, key_);
if (!omit_values) {
@@ -541,6 +566,14 @@ int cmd_config(int argc, const char **argv, const char *prefix)
error("--name-only is only applicable to --list or --get-regexp");
usage_with_options(builtin_config_usage, builtin_config_options);
}
+
+ if (show_origin && !(actions &
+ (ACTION_GET|ACTION_GET_ALL|ACTION_GET_REGEXP|ACTION_LIST))) {
+ error("--show-origin is only applicable to --get, --get-all, "
+ "--get-regexp, and --list.");
+ usage_with_options(builtin_config_usage, builtin_config_options);
+ }
+
if (actions == ACTION_LIST) {
check_argc(argc, 0, 0);
if (git_config_with_options(show_all_config, NULL,
diff --git a/builtin/fetch-pack.c b/builtin/fetch-pack.c
index 7d5914f921..79a611fda1 100644
--- a/builtin/fetch-pack.c
+++ b/builtin/fetch-pack.c
@@ -149,7 +149,7 @@ int cmd_fetch_pack(int argc, const char **argv, const char *prefix)
else {
/* read from stdin one ref per line, until EOF */
struct strbuf line = STRBUF_INIT;
- while (strbuf_getline(&line, stdin, '\n') != EOF)
+ while (strbuf_getline_lf(&line, stdin) != EOF)
add_sought_entry(&sought, &nr_sought, &alloc_sought, line.buf);
strbuf_release(&line);
}
diff --git a/builtin/fetch.c b/builtin/fetch.c
index 683f08ec91..e4639d8eb1 100644
--- a/builtin/fetch.c
+++ b/builtin/fetch.c
@@ -37,6 +37,8 @@ static int prune = -1; /* unspecified */
static int all, append, dry_run, force, keep, multiple, update_head_ok, verbosity;
static int progress = -1, recurse_submodules = RECURSE_SUBMODULES_DEFAULT;
static int tags = TAGS_DEFAULT, unshallow, update_shallow;
+static int max_children = 1;
+static enum transport_family family;
static const char *depth;
static const char *upload_pack;
static struct strbuf default_rla = STRBUF_INIT;
@@ -99,6 +101,8 @@ 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,
+ N_("number of submodules fetched in parallel")),
OPT_BOOL('p', "prune", &prune,
N_("prune remote-tracking branches no longer on remote")),
{ OPTION_CALLBACK, 0, "recurse-submodules", NULL, N_("on-demand"),
@@ -124,6 +128,10 @@ static struct option builtin_fetch_options[] = {
N_("accept refs that update .git/shallow")),
{ OPTION_CALLBACK, 0, "refmap", NULL, N_("refmap"),
N_("specify fetch refmap"), PARSE_OPT_NONEG, parse_refmap_arg },
+ OPT_SET_INT('4', "ipv4", &family, N_("use IPv4 addresses only"),
+ TRANSPORT_FAMILY_IPV4),
+ OPT_SET_INT('6', "ipv6", &family, N_("use IPv6 addresses only"),
+ TRANSPORT_FAMILY_IPV6),
OPT_END()
};
@@ -861,6 +869,7 @@ static struct transport *prepare_transport(struct remote *remote)
struct transport *transport;
transport = transport_get(remote, NULL);
transport_set_verbosity(transport, verbosity, progress);
+ transport->family = family;
if (upload_pack)
set_option(transport, TRANS_OPT_UPLOADPACK, upload_pack);
if (keep)
@@ -1013,10 +1022,9 @@ static int add_remote_or_group(const char *name, struct string_list *list)
git_config(get_remote_group, &g);
if (list->nr == prev_nr) {
- struct remote *remote;
- if (!remote_is_configured(name))
+ struct remote *remote = remote_get(name);
+ if (!remote_is_configured(remote))
return 0;
- remote = remote_get(name);
string_list_append(list, remote->name);
}
return 1;
@@ -1213,7 +1221,8 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
result = fetch_populated_submodules(&options,
submodule_prefix,
recurse_submodules,
- verbosity < 0);
+ verbosity < 0,
+ max_children);
argv_array_clear(&options);
}
diff --git a/builtin/grep.c b/builtin/grep.c
index 65c02010c7..aa7435f380 100644
--- a/builtin/grep.c
+++ b/builtin/grep.c
@@ -24,11 +24,11 @@ static char const * const grep_usage[] = {
NULL
};
-static int use_threads = 1;
+#define GREP_NUM_THREADS_DEFAULT 8
+static int num_threads;
#ifndef NO_PTHREADS
-#define THREADS 8
-static pthread_t threads[THREADS];
+static pthread_t *threads;
/* We use one producer thread and THREADS consumer
* threads. The producer adds struct work_items to 'todo' and the
@@ -63,13 +63,13 @@ static pthread_mutex_t grep_mutex;
static inline void grep_lock(void)
{
- if (use_threads)
+ if (num_threads)
pthread_mutex_lock(&grep_mutex);
}
static inline void grep_unlock(void)
{
- if (use_threads)
+ if (num_threads)
pthread_mutex_unlock(&grep_mutex);
}
@@ -206,7 +206,8 @@ static void start_threads(struct grep_opt *opt)
strbuf_init(&todo[i].out, 0);
}
- for (i = 0; i < ARRAY_SIZE(threads); i++) {
+ threads = xcalloc(num_threads, sizeof(*threads));
+ for (i = 0; i < num_threads; i++) {
int err;
struct grep_opt *o = grep_opt_dup(opt);
o->output = strbuf_out;
@@ -238,12 +239,14 @@ static int wait_all(void)
pthread_cond_broadcast(&cond_add);
grep_unlock();
- for (i = 0; i < ARRAY_SIZE(threads); i++) {
+ for (i = 0; i < num_threads; i++) {
void *h;
pthread_join(threads[i], &h);
hit |= (int) (intptr_t) h;
}
+ free(threads);
+
pthread_mutex_destroy(&grep_mutex);
pthread_mutex_destroy(&grep_read_mutex);
pthread_mutex_destroy(&grep_attr_mutex);
@@ -267,6 +270,14 @@ static int grep_cmd_config(const char *var, const char *value, void *cb)
int st = grep_config(var, value, cb);
if (git_color_default_config(var, value, cb) < 0)
st = -1;
+
+ if (!strcmp(var, "grep.threads")) {
+ num_threads = git_config_int(var, value);
+ if (num_threads < 0)
+ die(_("invalid number of threads specified (%d) for %s"),
+ num_threads, var);
+ }
+
return st;
}
@@ -294,7 +305,7 @@ static int grep_sha1(struct grep_opt *opt, const unsigned char *sha1,
}
#ifndef NO_PTHREADS
- if (use_threads) {
+ if (num_threads) {
add_work(opt, GREP_SOURCE_SHA1, pathbuf.buf, path, sha1);
strbuf_release(&pathbuf);
return 0;
@@ -323,7 +334,7 @@ static int grep_file(struct grep_opt *opt, const char *filename)
strbuf_addstr(&buf, filename);
#ifndef NO_PTHREADS
- if (use_threads) {
+ if (num_threads) {
add_work(opt, GREP_SOURCE_FILE, buf.buf, filename, filename);
strbuf_release(&buf);
return 0;
@@ -562,7 +573,7 @@ static int file_callback(const struct option *opt, const char *arg, int unset)
patterns = from_stdin ? stdin : fopen(arg, "r");
if (!patterns)
die_errno(_("cannot open '%s'"), arg);
- while (strbuf_getline(&sb, patterns, '\n') == 0) {
+ while (strbuf_getline(&sb, patterns) == 0) {
/* ignore empty line like grep does */
if (sb.len == 0)
continue;
@@ -697,6 +708,8 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
N_("show <n> context lines before matches")),
OPT_INTEGER('A', "after-context", &opt.post_context,
N_("show <n> context lines after matches")),
+ OPT_INTEGER(0, "threads", &num_threads,
+ N_("use <n> worker threads")),
OPT_NUMBER_CALLBACK(&opt, N_("shortcut for -C NUM"),
context_callback),
OPT_BOOL('p', "show-function", &opt.funcname,
@@ -755,9 +768,15 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
PARSE_OPT_STOP_AT_NON_OPTION);
grep_commit_pattern_type(pattern_type_arg, &opt);
- if (use_index && !startup_info->have_repository)
- /* die the same way as if we did it at the beginning */
- setup_git_directory();
+ if (use_index && !startup_info->have_repository) {
+ int fallback = 0;
+ git_config_get_bool("grep.fallbacktonoindex", &fallback);
+ if (fallback)
+ use_index = 0;
+ else
+ /* die the same way as if we did it at the beginning */
+ setup_git_directory();
+ }
/*
* skip a -- separator; we know it cannot be
@@ -786,7 +805,6 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
opt.output_priv = &path_list;
opt.output = append_path;
string_list_append(&path_list, show_in_pager);
- use_threads = 0;
}
if (!opt.pattern_list)
@@ -817,14 +835,18 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
}
#ifndef NO_PTHREADS
- if (list.nr || cached || online_cpus() == 1)
- use_threads = 0;
+ if (list.nr || cached || show_in_pager)
+ num_threads = 0;
+ else if (num_threads == 0)
+ num_threads = GREP_NUM_THREADS_DEFAULT;
+ else if (num_threads < 0)
+ die(_("invalid number of threads specified (%d)"), num_threads);
#else
- use_threads = 0;
+ num_threads = 0;
#endif
#ifndef NO_PTHREADS
- if (use_threads) {
+ if (num_threads) {
if (!(opt.name_only || opt.unmatch_name_only || opt.count)
&& (opt.pre_context || opt.post_context ||
opt.file_break || opt.funcbody))
@@ -894,7 +916,7 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
hit = grep_objects(&opt, &pathspec, &list);
}
- if (use_threads)
+ if (num_threads)
hit |= wait_all();
if (hit && show_in_pager)
run_pager(&opt, prefix);
diff --git a/builtin/hash-object.c b/builtin/hash-object.c
index 43b098b76c..f7d3567dd0 100644
--- a/builtin/hash-object.c
+++ b/builtin/hash-object.c
@@ -58,20 +58,21 @@ static void hash_object(const char *path, const char *type, const char *vpath,
static void hash_stdin_paths(const char *type, int no_filters, unsigned flags,
int literally)
{
- struct strbuf buf = STRBUF_INIT, nbuf = STRBUF_INIT;
+ struct strbuf buf = STRBUF_INIT;
+ struct strbuf unquoted = STRBUF_INIT;
- while (strbuf_getline(&buf, stdin, '\n') != EOF) {
+ while (strbuf_getline(&buf, stdin) != EOF) {
if (buf.buf[0] == '"') {
- strbuf_reset(&nbuf);
- if (unquote_c_style(&nbuf, buf.buf, NULL))
+ strbuf_reset(&unquoted);
+ if (unquote_c_style(&unquoted, buf.buf, NULL))
die("line is badly quoted");
- strbuf_swap(&buf, &nbuf);
+ strbuf_swap(&buf, &unquoted);
}
hash_object(buf.buf, type, no_filters ? NULL : buf.buf, flags,
literally);
}
strbuf_release(&buf);
- strbuf_release(&nbuf);
+ strbuf_release(&unquoted);
}
int cmd_hash_object(int argc, const char **argv, const char *prefix)
diff --git a/builtin/interpret-trailers.c b/builtin/interpret-trailers.c
index 46838d24a9..b99ae4be88 100644
--- a/builtin/interpret-trailers.c
+++ b/builtin/interpret-trailers.c
@@ -12,16 +12,18 @@
#include "trailer.h"
static const char * const git_interpret_trailers_usage[] = {
- N_("git interpret-trailers [--trim-empty] [(--trailer <token>[(=|:)<value>])...] [<file>...]"),
+ N_("git interpret-trailers [--in-place] [--trim-empty] [(--trailer <token>[(=|:)<value>])...] [<file>...]"),
NULL
};
int cmd_interpret_trailers(int argc, const char **argv, const char *prefix)
{
+ int in_place = 0;
int trim_empty = 0;
struct string_list trailers = STRING_LIST_INIT_DUP;
struct option options[] = {
+ OPT_BOOL(0, "in-place", &in_place, N_("edit files in place")),
OPT_BOOL(0, "trim-empty", &trim_empty, N_("trim empty trailers")),
OPT_STRING_LIST(0, "trailer", &trailers, N_("trailer"),
N_("trailer(s) to add")),
@@ -34,9 +36,12 @@ int cmd_interpret_trailers(int argc, const char **argv, const char *prefix)
if (argc) {
int i;
for (i = 0; i < argc; i++)
- process_trailers(argv[i], trim_empty, &trailers);
- } else
- process_trailers(NULL, trim_empty, &trailers);
+ process_trailers(argv[i], in_place, trim_empty, &trailers);
+ } else {
+ if (in_place)
+ die(_("no input file given for in-place editing"));
+ process_trailers(NULL, in_place, trim_empty, &trailers);
+ }
string_list_clear(&trailers, 0);
diff --git a/builtin/log.c b/builtin/log.c
index e00cea75cc..0d738d6ddc 100644
--- a/builtin/log.c
+++ b/builtin/log.c
@@ -699,6 +699,7 @@ static int do_signoff;
static const char *signature = git_version_string;
static const char *signature_file;
static int config_cover_letter;
+static const char *config_output_directory;
enum {
COVER_UNSET,
@@ -777,6 +778,8 @@ static int git_format_config(const char *var, const char *value, void *cb)
config_cover_letter = git_config_bool(var, value) ? COVER_ON : COVER_OFF;
return 0;
}
+ if (!strcmp(var, "format.outputdirectory"))
+ return git_config_string(&config_output_directory, var, value);
return git_log_config(var, value, cb);
}
@@ -1391,6 +1394,9 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
if (rev.show_notes)
init_display_notes(&rev.notes_opt);
+ if (!output_directory && !use_stdout)
+ output_directory = config_output_directory;
+
if (!use_stdout)
output_directory = set_outdir(prefix, output_directory);
else
diff --git a/builtin/ls-files.c b/builtin/ls-files.c
index b6a7cb0c7c..f02e3d23bb 100644
--- a/builtin/ls-files.c
+++ b/builtin/ls-files.c
@@ -27,6 +27,7 @@ static int show_killed;
static int show_valid_bit;
static int line_terminator = '\n';
static int debug_mode;
+static int show_eol;
static const char *prefix;
static int max_prefix_len;
@@ -47,6 +48,23 @@ static const char *tag_modified = "";
static const char *tag_skip_worktree = "";
static const char *tag_resolve_undo = "";
+static void write_eolinfo(const struct cache_entry *ce, const char *path)
+{
+ if (!show_eol)
+ return;
+ else {
+ struct stat st;
+ const char *i_txt = "";
+ const char *w_txt = "";
+ const char *a_txt = get_convert_attr_ascii(path);
+ if (ce && S_ISREG(ce->ce_mode))
+ i_txt = get_cached_convert_stats_ascii(ce->name);
+ if (!lstat(path, &st) && S_ISREG(st.st_mode))
+ w_txt = get_wt_convert_stats_ascii(path);
+ printf("i/%-5s w/%-5s attr/%-17s\t", i_txt, w_txt, a_txt);
+ }
+}
+
static void write_name(const char *name)
{
/*
@@ -68,6 +86,7 @@ static void show_dir_entry(const char *tag, struct dir_entry *ent)
return;
fputs(tag, stdout);
+ write_eolinfo(NULL, ent->name);
write_name(ent->name);
}
@@ -170,6 +189,7 @@ static void show_ce_entry(const char *tag, const struct cache_entry *ce)
find_unique_abbrev(ce->sha1,abbrev),
ce_stage(ce));
}
+ write_eolinfo(ce, ce->name);
write_name(ce->name);
if (debug_mode) {
const struct stat_data *sd = &ce->ce_stat_data;
@@ -359,14 +379,6 @@ static const char * const ls_files_usage[] = {
NULL
};
-static int option_parse_z(const struct option *opt,
- const char *arg, int unset)
-{
- line_terminator = unset ? '\n' : '\0';
-
- return 0;
-}
-
static int option_parse_exclude(const struct option *opt,
const char *arg, int unset)
{
@@ -408,9 +420,9 @@ int cmd_ls_files(int argc, const char **argv, const char *cmd_prefix)
struct exclude_list *el;
struct string_list exclude_list = STRING_LIST_INIT_NODUP;
struct option builtin_ls_files_options[] = {
- { OPTION_CALLBACK, 'z', NULL, NULL, NULL,
- N_("paths are separated with NUL character"),
- PARSE_OPT_NOARG, option_parse_z },
+ /* Think twice before adding "--nul" synonym to this */
+ OPT_SET_INT('z', NULL, &line_terminator,
+ N_("paths are separated with NUL character"), '\0'),
OPT_BOOL('t', NULL, &show_tag,
N_("identify the file status with tags")),
OPT_BOOL('v', NULL, &show_valid_bit,
@@ -433,6 +445,7 @@ int cmd_ls_files(int argc, const char **argv, const char *cmd_prefix)
OPT_BIT(0, "directory", &dir.flags,
N_("show 'other' directories' names only"),
DIR_SHOW_OTHER_DIRECTORIES),
+ OPT_BOOL(0, "eol", &show_eol, N_("show line endings of files")),
OPT_NEGBIT(0, "empty-directory", &dir.flags,
N_("don't show empty directories"),
DIR_HIDE_EMPTY_DIRECTORIES),
diff --git a/builtin/ls-remote.c b/builtin/ls-remote.c
index fa65a8448a..66cdd45cc1 100644
--- a/builtin/ls-remote.c
+++ b/builtin/ls-remote.c
@@ -3,9 +3,12 @@
#include "transport.h"
#include "remote.h"
-static const char ls_remote_usage[] =
-"git ls-remote [--heads] [--tags] [--upload-pack=<exec>]\n"
-" [-q | --quiet] [--exit-code] [--get-url] [<repository> [<refs>...]]";
+static const char * const ls_remote_usage[] = {
+ N_("git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
+ " [-q | --quiet] [--exit-code] [--get-url]\n"
+ " [--symref] [<repository> [<refs>...]]"),
+ NULL
+};
/*
* Is there one among the list of patterns that match the tail part
@@ -30,12 +33,12 @@ static int tail_match(const char **pattern, const char *path)
int cmd_ls_remote(int argc, const char **argv, const char *prefix)
{
- int i;
const char *dest = NULL;
unsigned flags = 0;
int get_url = 0;
int quiet = 0;
int status = 0;
+ int show_symref_target = 0;
const char *uploadpack = NULL;
const char **pattern = NULL;
@@ -43,59 +46,36 @@ int cmd_ls_remote(int argc, const char **argv, const char *prefix)
struct transport *transport;
const struct ref *ref;
- if (argc == 2 && !strcmp("-h", argv[1]))
- usage(ls_remote_usage);
+ struct option options[] = {
+ OPT__QUIET(&quiet, N_("do not print remote URL")),
+ OPT_STRING(0, "upload-pack", &uploadpack, N_("exec"),
+ N_("path of git-upload-pack on the remote host")),
+ { OPTION_STRING, 0, "exec", &uploadpack, N_("exec"),
+ N_("path of git-upload-pack on the remote host"),
+ PARSE_OPT_HIDDEN },
+ OPT_BIT('t', "tags", &flags, N_("limit to tags"), REF_TAGS),
+ OPT_BIT('h', "heads", &flags, N_("limit to heads"), REF_HEADS),
+ OPT_BIT(0, "refs", &flags, N_("do not show peeled tags"), REF_NORMAL),
+ OPT_BOOL(0, "get-url", &get_url,
+ N_("take url.<base>.insteadOf into account")),
+ OPT_SET_INT(0, "exit-code", &status,
+ N_("exit with exit code 2 if no matching refs are found"), 2),
+ OPT_BOOL(0, "symref", &show_symref_target,
+ N_("show underlying ref in addition to the object pointed by it")),
+ OPT_END()
+ };
- for (i = 1; i < argc; i++) {
- const char *arg = argv[i];
+ argc = parse_options(argc, argv, prefix, options, ls_remote_usage,
+ PARSE_OPT_STOP_AT_NON_OPTION);
+ dest = argv[0];
- if (*arg == '-') {
- if (starts_with(arg, "--upload-pack=")) {
- uploadpack = arg + 14;
- continue;
- }
- if (starts_with(arg, "--exec=")) {
- uploadpack = arg + 7;
- continue;
- }
- if (!strcmp("--tags", arg) || !strcmp("-t", arg)) {
- flags |= REF_TAGS;
- continue;
- }
- if (!strcmp("--heads", arg) || !strcmp("-h", arg)) {
- flags |= REF_HEADS;
- continue;
- }
- if (!strcmp("--refs", arg)) {
- flags |= REF_NORMAL;
- continue;
- }
- if (!strcmp("--quiet", arg) || !strcmp("-q", arg)) {
- quiet = 1;
- continue;
- }
- if (!strcmp("--get-url", arg)) {
- get_url = 1;
- continue;
- }
- if (!strcmp("--exit-code", arg)) {
- /* return this code if no refs are reported */
- status = 2;
- continue;
- }
- usage(ls_remote_usage);
- }
- dest = arg;
- i++;
- break;
+ if (argc > 1) {
+ int i;
+ pattern = xcalloc(argc, sizeof(const char *));
+ for (i = 1; i < argc; i++)
+ pattern[i - 1] = xstrfmt("*/%s", argv[i]);
}
- if (argv[i]) {
- int j;
- pattern = xcalloc(argc - i + 1, sizeof(const char *));
- for (j = i; j < argc; j++)
- pattern[j - i] = xstrfmt("*/%s", argv[j]);
- }
remote = remote_get(dest);
if (!remote) {
if (dest)
@@ -125,7 +105,9 @@ int cmd_ls_remote(int argc, const char **argv, const char *prefix)
continue;
if (!tail_match(pattern, ref->name))
continue;
- printf("%s %s\n", oid_to_hex(&ref->old_oid), ref->name);
+ if (show_symref_target && ref->symref)
+ printf("ref: %s\t%s\n", ref->symref, ref->name);
+ printf("%s\t%s\n", oid_to_hex(&ref->old_oid), ref->name);
status = 0; /* we found something */
}
return status;
diff --git a/builtin/mktree.c b/builtin/mktree.c
index b0aab65353..4282b62c59 100644
--- a/builtin/mktree.c
+++ b/builtin/mktree.c
@@ -66,7 +66,7 @@ static const char *mktree_usage[] = {
NULL
};
-static void mktree_line(char *buf, size_t len, int line_termination, int allow_missing)
+static void mktree_line(char *buf, size_t len, int nul_term_line, int allow_missing)
{
char *ptr, *ntr;
unsigned mode;
@@ -98,7 +98,7 @@ static void mktree_line(char *buf, size_t len, int line_termination, int allow_m
*ntr++ = 0; /* now at the beginning of SHA1 */
path = ntr + 41; /* at the beginning of name */
- if (line_termination && path[0] == '"') {
+ if (!nul_term_line && path[0] == '"') {
struct strbuf p_uq = STRBUF_INIT;
if (unquote_c_style(&p_uq, path, NULL))
die("invalid quoting");
@@ -142,23 +142,25 @@ int cmd_mktree(int ac, const char **av, const char *prefix)
{
struct strbuf sb = STRBUF_INIT;
unsigned char sha1[20];
- int line_termination = '\n';
+ int nul_term_line = 0;
int allow_missing = 0;
int is_batch_mode = 0;
int got_eof = 0;
+ strbuf_getline_fn getline_fn;
const struct option option[] = {
- OPT_SET_INT('z', NULL, &line_termination, N_("input is NUL terminated"), '\0'),
+ OPT_BOOL('z', NULL, &nul_term_line, N_("input is NUL terminated")),
OPT_SET_INT( 0 , "missing", &allow_missing, N_("allow missing objects"), 1),
OPT_SET_INT( 0 , "batch", &is_batch_mode, N_("allow creation of more than one tree"), 1),
OPT_END()
};
ac = parse_options(ac, av, prefix, option, mktree_usage, 0);
+ getline_fn = nul_term_line ? strbuf_getline_nul : strbuf_getline_lf;
while (!got_eof) {
while (1) {
- if (strbuf_getline(&sb, stdin, line_termination) == EOF) {
+ if (getline_fn(&sb, stdin) == EOF) {
got_eof = 1;
break;
}
@@ -168,7 +170,7 @@ int cmd_mktree(int ac, const char **av, const char *prefix)
break;
die("input format error: (blank line only valid in batch mode)");
}
- mktree_line(sb.buf, sb.len, line_termination, allow_missing);
+ mktree_line(sb.buf, sb.len, nul_term_line, allow_missing);
}
if (is_batch_mode && got_eof && used < 1) {
/*
diff --git a/builtin/notes.c b/builtin/notes.c
index 52aa9af74b..ed6f2222f4 100644
--- a/builtin/notes.c
+++ b/builtin/notes.c
@@ -286,11 +286,11 @@ static int notes_copy_from_stdin(int force, const char *rewrite_cmd)
if (!c)
return 0;
} else {
- init_notes(NULL, NULL, NULL, 0);
+ init_notes(NULL, NULL, NULL, NOTES_INIT_WRITABLE);
t = &default_notes_tree;
}
- while (strbuf_getline(&buf, stdin, '\n') != EOF) {
+ while (strbuf_getline_lf(&buf, stdin) != EOF) {
unsigned char from_obj[20], to_obj[20];
struct strbuf **split;
int err;
@@ -329,15 +329,18 @@ static int notes_copy_from_stdin(int force, const char *rewrite_cmd)
return ret;
}
-static struct notes_tree *init_notes_check(const char *subcommand)
+static struct notes_tree *init_notes_check(const char *subcommand,
+ int flags)
{
struct notes_tree *t;
- init_notes(NULL, NULL, NULL, 0);
+ const char *ref;
+ init_notes(NULL, NULL, NULL, flags);
t = &default_notes_tree;
- if (!starts_with(t->ref, "refs/notes/"))
+ ref = (flags & NOTES_INIT_WRITABLE) ? t->update_ref : t->ref;
+ if (!starts_with(ref, "refs/notes/"))
die("Refusing to %s notes in %s (outside of refs/notes/)",
- subcommand, t->ref);
+ subcommand, ref);
return t;
}
@@ -360,7 +363,7 @@ static int list(int argc, const char **argv, const char *prefix)
usage_with_options(git_notes_list_usage, options);
}
- t = init_notes_check("list");
+ t = init_notes_check("list", 0);
if (argc) {
if (get_sha1(argv[0], object))
die(_("Failed to resolve '%s' as a valid ref."), argv[0]);
@@ -420,7 +423,7 @@ static int add(int argc, const char **argv, const char *prefix)
if (get_sha1(object_ref, object))
die(_("Failed to resolve '%s' as a valid ref."), object_ref);
- t = init_notes_check("add");
+ t = init_notes_check("add", NOTES_INIT_WRITABLE);
note = get_note(t, object);
if (note) {
@@ -511,7 +514,7 @@ static int copy(int argc, const char **argv, const char *prefix)
if (get_sha1(object_ref, object))
die(_("Failed to resolve '%s' as a valid ref."), object_ref);
- t = init_notes_check("copy");
+ t = init_notes_check("copy", NOTES_INIT_WRITABLE);
note = get_note(t, object);
if (note) {
@@ -589,7 +592,7 @@ static int append_edit(int argc, const char **argv, const char *prefix)
if (get_sha1(object_ref, object))
die(_("Failed to resolve '%s' as a valid ref."), object_ref);
- t = init_notes_check(argv[0]);
+ t = init_notes_check(argv[0], NOTES_INIT_WRITABLE);
note = get_note(t, object);
prepare_note_data(object, &d, edit ? note : NULL);
@@ -652,7 +655,7 @@ static int show(int argc, const char **argv, const char *prefix)
if (get_sha1(object_ref, object))
die(_("Failed to resolve '%s' as a valid ref."), object_ref);
- t = init_notes_check("show");
+ t = init_notes_check("show", 0);
note = get_note(t, object);
if (!note)
@@ -806,10 +809,10 @@ static int merge(int argc, const char **argv, const char *prefix)
o.local_ref = default_notes_ref();
strbuf_addstr(&remote_ref, argv[0]);
- expand_notes_ref(&remote_ref);
+ expand_loose_notes_ref(&remote_ref);
o.remote_ref = remote_ref.buf;
- t = init_notes_check("merge");
+ t = init_notes_check("merge", NOTES_INIT_WRITABLE);
if (strategy) {
if (parse_notes_merge_strategy(strategy, &o.strategy)) {
@@ -901,7 +904,7 @@ static int remove_cmd(int argc, const char **argv, const char *prefix)
argc = parse_options(argc, argv, prefix, options,
git_notes_remove_usage, 0);
- t = init_notes_check("remove");
+ t = init_notes_check("remove", NOTES_INIT_WRITABLE);
if (!argc && !from_stdin) {
retval = remove_one_note(t, "HEAD", flag);
@@ -943,7 +946,7 @@ static int prune(int argc, const char **argv, const char *prefix)
usage_with_options(git_notes_prune_usage, options);
}
- t = init_notes_check("prune");
+ t = init_notes_check("prune", NOTES_INIT_WRITABLE);
prune_notes(t, (verbose ? NOTES_PRUNE_VERBOSE : 0) |
(show_only ? NOTES_PRUNE_VERBOSE|NOTES_PRUNE_DRYRUN : 0) );
diff --git a/builtin/pull.c b/builtin/pull.c
index 5145fc60a0..10eff03967 100644
--- a/builtin/pull.c
+++ b/builtin/pull.c
@@ -22,7 +22,8 @@ enum rebase_type {
REBASE_INVALID = -1,
REBASE_FALSE = 0,
REBASE_TRUE,
- REBASE_PRESERVE
+ REBASE_PRESERVE,
+ REBASE_INTERACTIVE
};
/**
@@ -42,6 +43,8 @@ static enum rebase_type parse_config_rebase(const char *key, const char *value,
return REBASE_TRUE;
else if (!strcmp(value, "preserve"))
return REBASE_PRESERVE;
+ else if (!strcmp(value, "interactive"))
+ return REBASE_INTERACTIVE;
if (fatal)
die(_("Invalid value for %s: %s"), key, value);
@@ -95,6 +98,7 @@ static int opt_force;
static char *opt_tags;
static char *opt_prune;
static char *opt_recurse_submodules;
+static char *max_children;
static int opt_dry_run;
static char *opt_keep;
static char *opt_depth;
@@ -112,7 +116,7 @@ static struct option pull_options[] = {
/* Options passed to git-merge or git-rebase */
OPT_GROUP(N_("Options related to merging")),
{ OPTION_CALLBACK, 'r', "rebase", &opt_rebase,
- "false|true|preserve",
+ "false|true|preserve|interactive",
N_("incorporate changes by rebasing rather than merging"),
PARSE_OPT_OPTARG, parse_opt_rebase },
OPT_PASSTHRU('n', NULL, &opt_diffstat, NULL,
@@ -178,6 +182,9 @@ static struct option pull_options[] = {
N_("on-demand"),
N_("control recursive fetching of submodules"),
PARSE_OPT_OPTARG),
+ OPT_PASSTHRU('j', "jobs", &max_children, N_("n"),
+ N_("number of submodules pulled in parallel"),
+ PARSE_OPT_OPTARG),
OPT_BOOL(0, "dry-run", &opt_dry_run,
N_("dry run")),
OPT_PASSTHRU('k', "keep", &opt_keep, NULL,
@@ -378,7 +385,7 @@ static void get_merge_heads(struct sha1_array *merge_heads)
if (!(fp = fopen(filename, "r")))
die_errno(_("could not open '%s' for reading"), filename);
- while (strbuf_getline(&sb, fp, '\n') != EOF) {
+ while (strbuf_getline_lf(&sb, fp) != EOF) {
if (get_sha1_hex(sb.buf, sha1))
continue; /* invalid line: does not start with SHA1 */
if (starts_with(sb.buf + GIT_SHA1_HEXSZ, "\tnot-for-merge\t"))
@@ -525,6 +532,8 @@ static int run_fetch(const char *repo, const char **refspecs)
argv_array_push(&args, opt_prune);
if (opt_recurse_submodules)
argv_array_push(&args, opt_recurse_submodules);
+ if (max_children)
+ argv_array_push(&args, max_children);
if (opt_dry_run)
argv_array_push(&args, "--dry-run");
if (opt_keep)
@@ -772,6 +781,8 @@ static int run_rebase(const unsigned char *curr_head,
/* Options passed to git-rebase */
if (opt_rebase == REBASE_PRESERVE)
argv_array_push(&args, "--preserve-merges");
+ else if (opt_rebase == REBASE_INTERACTIVE)
+ argv_array_push(&args, "--interactive");
if (opt_diffstat)
argv_array_push(&args, opt_diffstat);
argv_array_pushv(&args, opt_strategies.argv);
diff --git a/builtin/push.c b/builtin/push.c
index 8963dbdf3d..4e9e4dbab2 100644
--- a/builtin/push.c
+++ b/builtin/push.c
@@ -23,6 +23,7 @@ static const char *receivepack;
static int verbosity;
static int progress = -1;
static int recurse_submodules = RECURSE_SUBMODULES_DEFAULT;
+static enum transport_family family;
static struct push_cas_option cas;
@@ -204,37 +205,6 @@ static void setup_push_current(struct remote *remote, struct branch *branch)
add_refspec(branch->name);
}
-static char warn_unspecified_push_default_msg[] =
-N_("push.default is unset; its implicit value has changed in\n"
- "Git 2.0 from 'matching' to 'simple'. To squelch this message\n"
- "and maintain the traditional behavior, use:\n"
- "\n"
- " git config --global push.default matching\n"
- "\n"
- "To squelch this message and adopt the new behavior now, use:\n"
- "\n"
- " git config --global push.default simple\n"
- "\n"
- "When push.default is set to 'matching', git will push local branches\n"
- "to the remote branches that already exist with the same name.\n"
- "\n"
- "Since Git 2.0, Git defaults to the more conservative 'simple'\n"
- "behavior, which only pushes the current branch to the corresponding\n"
- "remote branch that 'git pull' uses to update the current branch.\n"
- "\n"
- "See 'git help config' and search for 'push.default' for further information.\n"
- "(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode\n"
- "'current' instead of 'simple' if you sometimes use older versions of Git)");
-
-static void warn_unspecified_push_default_configuration(void)
-{
- static int warn_once;
-
- if (warn_once++)
- return;
- warning("%s\n", _(warn_unspecified_push_default_msg));
-}
-
static int is_workflow_triangular(struct remote *remote)
{
struct remote *fetch_remote = remote_get(NULL);
@@ -253,9 +223,6 @@ static void setup_default_push_refspecs(struct remote *remote)
break;
case PUSH_DEFAULT_UNSPECIFIED:
- warn_unspecified_push_default_configuration();
- /* fallthru */
-
case PUSH_DEFAULT_SIMPLE:
if (triangular)
setup_push_current(remote, branch);
@@ -346,6 +313,7 @@ static int push_with_options(struct transport *transport, int flags)
unsigned int reject_reasons;
transport_set_verbosity(transport, verbosity, progress);
+ transport->family = family;
if (receivepack)
transport_set_option(transport,
@@ -538,7 +506,7 @@ int cmd_push(int argc, const char **argv, const char *prefix)
OPT_BIT( 0 , "all", &flags, N_("push all refs"), TRANSPORT_PUSH_ALL),
OPT_BIT( 0 , "mirror", &flags, N_("mirror all refs"),
(TRANSPORT_PUSH_MIRROR|TRANSPORT_PUSH_FORCE)),
- OPT_BOOL( 0, "delete", &deleterefs, N_("delete refs")),
+ OPT_BOOL('d', "delete", &deleterefs, N_("delete refs")),
OPT_BOOL( 0 , "tags", &tags, N_("push tags (can't be used with --all or --mirror)")),
OPT_BIT('n' , "dry-run", &flags, N_("dry run"), TRANSPORT_PUSH_DRY_RUN),
OPT_BIT( 0, "porcelain", &flags, N_("machine-readable output"), TRANSPORT_PUSH_PORCELAIN),
@@ -565,6 +533,10 @@ int cmd_push(int argc, const char **argv, const char *prefix)
0, "signed", &push_cert, "yes|no|if-asked", N_("GPG sign the push"),
PARSE_OPT_OPTARG, option_parse_push_signed },
OPT_BIT(0, "atomic", &flags, N_("request atomic transaction on remote side"), TRANSPORT_PUSH_ATOMIC),
+ OPT_SET_INT('4', "ipv4", &family, N_("use IPv4 addresses only"),
+ TRANSPORT_FAMILY_IPV4),
+ OPT_SET_INT('6', "ipv6", &family, N_("use IPv6 addresses only"),
+ TRANSPORT_FAMILY_IPV6),
OPT_END()
};
diff --git a/builtin/remote.c b/builtin/remote.c
index 43136951b5..fda5c2e53d 100644
--- a/builtin/remote.c
+++ b/builtin/remote.c
@@ -186,10 +186,7 @@ static int add(int argc, const char **argv)
url = argv[1];
remote = remote_get(name);
- if (remote && (remote->url_nr > 1 ||
- (strcmp(name, remote->url[0]) &&
- strcmp(url, remote->url[0])) ||
- remote->fetch_refspec_nr))
+ if (remote_is_configured(remote))
die(_("remote %s already exists."), name);
strbuf_addf(&buf2, "refs/heads/test:refs/remotes/%s/test", name);
@@ -247,7 +244,7 @@ static int add(int argc, const char **argv)
struct branch_info {
char *remote_name;
struct string_list merge;
- int rebase;
+ enum { NO_REBASE, NORMAL_REBASE, INTERACTIVE_REBASE } rebase;
};
static struct string_list branch_list;
@@ -307,7 +304,9 @@ static int config_read_branches(const char *key, const char *value, void *cb)
if (v >= 0)
info->rebase = v;
else if (!strcmp(value, "preserve"))
- info->rebase = 1;
+ info->rebase = NORMAL_REBASE;
+ else if (!strcmp(value, "interactive"))
+ info->rebase = INTERACTIVE_REBASE;
}
}
return 0;
@@ -623,14 +622,14 @@ static int mv(int argc, const char **argv)
rename.remote_branches = &remote_branches;
oldremote = remote_get(rename.old);
- if (!oldremote)
+ if (!remote_is_configured(oldremote))
die(_("No such remote: %s"), rename.old);
if (!strcmp(rename.old, rename.new) && oldremote->origin != REMOTE_CONFIG)
return migrate_file(oldremote);
newremote = remote_get(rename.new);
- if (newremote && (newremote->url_nr > 1 || newremote->fetch_refspec_nr))
+ if (remote_is_configured(newremote))
die(_("remote %s already exists."), rename.new);
strbuf_addf(&buf, "refs/heads/test:refs/remotes/%s/test", rename.new);
@@ -758,7 +757,7 @@ static int rm(int argc, const char **argv)
usage_with_options(builtin_remote_rm_usage, options);
remote = remote_get(argv[1]);
- if (!remote)
+ if (!remote_is_configured(remote))
die(_("No such remote: %s"), argv[1]);
known_remotes.to_delete = remote;
@@ -964,7 +963,9 @@ static int show_local_info_item(struct string_list_item *item, void *cb_data)
printf(" %-*s ", show_info->width, item->string);
if (branch_info->rebase) {
- printf_ln(_("rebases onto remote %s"), merge->items[0].string);
+ printf_ln(_(branch_info->rebase == INTERACTIVE_REBASE ?
+ "rebases interactively onto remote %s" :
+ "rebases onto remote %s"), merge->items[0].string);
return 0;
} else if (show_info->any_rebase) {
printf_ln(_(" merges with remote %s"), merge->items[0].string);
@@ -1417,9 +1418,9 @@ static int set_remote_branches(const char *remotename, const char **branches,
strbuf_addf(&key, "remote.%s.fetch", remotename);
- if (!remote_is_configured(remotename))
- die(_("No such remote '%s'"), remotename);
remote = remote_get(remotename);
+ if (!remote_is_configured(remote))
+ die(_("No such remote '%s'"), remotename);
if (!add_mode && remove_all_fetch_refspecs(remotename, key.buf)) {
strbuf_release(&key);
@@ -1471,9 +1472,9 @@ static int get_url(int argc, const char **argv)
remotename = argv[0];
- if (!remote_is_configured(remotename))
- die(_("No such remote '%s'"), remotename);
remote = remote_get(remotename);
+ if (!remote_is_configured(remote))
+ die(_("No such remote '%s'"), remotename);
url_nr = 0;
if (push_mode) {
@@ -1539,9 +1540,9 @@ static int set_url(int argc, const char **argv)
if (delete_mode)
oldurl = newurl;
- if (!remote_is_configured(remotename))
- die(_("No such remote '%s'"), remotename);
remote = remote_get(remotename);
+ if (!remote_is_configured(remote))
+ die(_("No such remote '%s'"), remotename);
if (push_mode) {
strbuf_addf(&name_buf, "remote.%s.pushurl", remotename);
diff --git a/builtin/repack.c b/builtin/repack.c
index 945611006a..858db38f52 100644
--- a/builtin/repack.c
+++ b/builtin/repack.c
@@ -266,7 +266,7 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
return ret;
out = xfdopen(cmd.out, "r");
- while (strbuf_getline(&line, out, '\n') != EOF) {
+ while (strbuf_getline_lf(&line, out) != EOF) {
if (line.len != 40)
die("repack: Expecting 40 character sha1 lines only from pack-objects.");
string_list_append(&names, line.buf);
diff --git a/builtin/rev-parse.c b/builtin/rev-parse.c
index 7a4f2c0b0c..cf8487b3b9 100644
--- a/builtin/rev-parse.c
+++ b/builtin/rev-parse.c
@@ -383,7 +383,7 @@ static int cmd_parseopt(int argc, const char **argv, const char *prefix)
/* get the usage up to the first line with a -- on it */
for (;;) {
- if (strbuf_getline(&sb, stdin, '\n') == EOF)
+ if (strbuf_getline(&sb, stdin) == EOF)
die("premature end of input");
ALLOC_GROW(usage, unb + 1, usz);
if (!strcmp("--", sb.buf)) {
@@ -396,7 +396,7 @@ static int cmd_parseopt(int argc, const char **argv, const char *prefix)
}
/* parse: (<short>|<short>,<long>|<long>)[*=?!]*<arghint>? SP+ <help> */
- while (strbuf_getline(&sb, stdin, '\n') != EOF) {
+ while (strbuf_getline(&sb, stdin) != EOF) {
const char *s;
const char *help;
struct option *o;
diff --git a/builtin/send-pack.c b/builtin/send-pack.c
index f6e5d643c1..5b9dd6a9d8 100644
--- a/builtin/send-pack.c
+++ b/builtin/send-pack.c
@@ -212,7 +212,7 @@ int cmd_send_pack(int argc, const char **argv, const char *prefix)
argv_array_push(&all_refspecs, buf);
} else {
struct strbuf line = STRBUF_INIT;
- while (strbuf_getline(&line, stdin, '\n') != EOF)
+ while (strbuf_getline(&line, stdin) != EOF)
argv_array_push(&all_refspecs, line.buf);
strbuf_release(&line);
}
diff --git a/builtin/shortlog.c b/builtin/shortlog.c
index 35ebd17f80..bfc082e584 100644
--- a/builtin/shortlog.c
+++ b/builtin/shortlog.c
@@ -14,7 +14,26 @@ static char const * const shortlog_usage[] = {
NULL
};
-static int compare_by_number(const void *a1, const void *a2)
+/*
+ * The util field of our string_list_items will contain one of two things:
+ *
+ * - if --summary is not in use, it will point to a string list of the
+ * oneline subjects assigned to this author
+ *
+ * - if --summary is in use, we don't need that list; we only need to know
+ * its size. So we abuse the pointer slot to store our integer counter.
+ *
+ * This macro accesses the latter.
+ */
+#define UTIL_TO_INT(x) ((intptr_t)(x)->util)
+
+static int compare_by_counter(const void *a1, const void *a2)
+{
+ const struct string_list_item *i1 = a1, *i2 = a2;
+ return UTIL_TO_INT(i2) - UTIL_TO_INT(i1);
+}
+
+static int compare_by_list(const void *a1, const void *a2)
{
const struct string_list_item *i1 = a1, *i2 = a2;
const struct string_list *l1 = i1->util, *l2 = i2->util;
@@ -31,13 +50,9 @@ static void insert_one_record(struct shortlog *log,
const char *author,
const char *oneline)
{
- const char *dot3 = log->common_repo_prefix;
- char *buffer, *p;
struct string_list_item *item;
const char *mailbuf, *namebuf;
size_t namelen, maillen;
- const char *eol;
- struct strbuf subject = STRBUF_INIT;
struct strbuf namemailbuf = STRBUF_INIT;
struct ident_split ident;
@@ -56,98 +71,95 @@ static void insert_one_record(struct shortlog *log,
strbuf_addf(&namemailbuf, " <%.*s>", (int)maillen, mailbuf);
item = string_list_insert(&log->list, namemailbuf.buf);
- if (item->util == NULL)
- item->util = xcalloc(1, sizeof(struct string_list));
-
- /* Skip any leading whitespace, including any blank lines. */
- while (*oneline && isspace(*oneline))
- oneline++;
- eol = strchr(oneline, '\n');
- if (!eol)
- eol = oneline + strlen(oneline);
- if (starts_with(oneline, "[PATCH")) {
- char *eob = strchr(oneline, ']');
- if (eob && (!eol || eob < eol))
- oneline = eob + 1;
- }
- while (*oneline && isspace(*oneline) && *oneline != '\n')
- oneline++;
- format_subject(&subject, oneline, " ");
- buffer = strbuf_detach(&subject, NULL);
-
- if (dot3) {
- int dot3len = strlen(dot3);
- if (dot3len > 5) {
- while ((p = strstr(buffer, dot3)) != NULL) {
- int taillen = strlen(p) - dot3len;
- memcpy(p, "/.../", 5);
- memmove(p + 5, p + dot3len, taillen + 1);
+
+ if (log->summary)
+ item->util = (void *)(UTIL_TO_INT(item) + 1);
+ else {
+ const char *dot3 = log->common_repo_prefix;
+ char *buffer, *p;
+ struct strbuf subject = STRBUF_INIT;
+ const char *eol;
+
+ /* Skip any leading whitespace, including any blank lines. */
+ while (*oneline && isspace(*oneline))
+ oneline++;
+ eol = strchr(oneline, '\n');
+ if (!eol)
+ eol = oneline + strlen(oneline);
+ if (starts_with(oneline, "[PATCH")) {
+ char *eob = strchr(oneline, ']');
+ if (eob && (!eol || eob < eol))
+ oneline = eob + 1;
+ }
+ while (*oneline && isspace(*oneline) && *oneline != '\n')
+ oneline++;
+ format_subject(&subject, oneline, " ");
+ buffer = strbuf_detach(&subject, NULL);
+
+ if (dot3) {
+ int dot3len = strlen(dot3);
+ if (dot3len > 5) {
+ while ((p = strstr(buffer, dot3)) != NULL) {
+ int taillen = strlen(p) - dot3len;
+ memcpy(p, "/.../", 5);
+ memmove(p + 5, p + dot3len, taillen + 1);
+ }
}
}
- }
- string_list_append(item->util, buffer);
+ if (item->util == NULL)
+ item->util = xcalloc(1, sizeof(struct string_list));
+ string_list_append(item->util, buffer);
+ }
}
static void read_from_stdin(struct shortlog *log)
{
- char author[1024], oneline[1024];
+ struct strbuf author = STRBUF_INIT;
+ struct strbuf oneline = STRBUF_INIT;
- while (fgets(author, sizeof(author), stdin) != NULL) {
- if (!(author[0] == 'A' || author[0] == 'a') ||
- !starts_with(author + 1, "uthor: "))
+ while (strbuf_getline_lf(&author, stdin) != EOF) {
+ const char *v;
+ if (!skip_prefix(author.buf, "Author: ", &v) &&
+ !skip_prefix(author.buf, "author ", &v))
continue;
- while (fgets(oneline, sizeof(oneline), stdin) &&
- oneline[0] != '\n')
+ while (strbuf_getline_lf(&oneline, stdin) != EOF &&
+ oneline.len)
; /* discard headers */
- while (fgets(oneline, sizeof(oneline), stdin) &&
- oneline[0] == '\n')
+ while (strbuf_getline_lf(&oneline, stdin) != EOF &&
+ !oneline.len)
; /* discard blanks */
- insert_one_record(log, author + 8, oneline);
+ insert_one_record(log, v, oneline.buf);
}
+ strbuf_release(&author);
+ strbuf_release(&oneline);
}
void shortlog_add_commit(struct shortlog *log, struct commit *commit)
{
- const char *author = NULL, *buffer;
- struct strbuf buf = STRBUF_INIT;
- struct strbuf ufbuf = STRBUF_INIT;
-
- pp_commit_easy(CMIT_FMT_RAW, commit, &buf);
- buffer = buf.buf;
- while (*buffer && *buffer != '\n') {
- const char *eol = strchr(buffer, '\n');
-
- if (eol == NULL)
- eol = buffer + strlen(buffer);
+ struct strbuf author = STRBUF_INIT;
+ struct strbuf oneline = STRBUF_INIT;
+ struct pretty_print_context ctx = {0};
+
+ ctx.fmt = CMIT_FMT_USERFORMAT;
+ ctx.abbrev = log->abbrev;
+ ctx.subject = "";
+ ctx.after_subject = "";
+ ctx.date_mode.type = DATE_NORMAL;
+ ctx.output_encoding = get_log_output_encoding();
+
+ format_commit_message(commit, "%an <%ae>", &author, &ctx);
+ if (!log->summary) {
+ if (log->user_format)
+ pretty_print_commit(&ctx, commit, &oneline);
else
- eol++;
-
- if (starts_with(buffer, "author "))
- author = buffer + 7;
- buffer = eol;
- }
- if (!author) {
- warning(_("Missing author: %s"),
- oid_to_hex(&commit->object.oid));
- return;
+ format_commit_message(commit, "%s", &oneline, &ctx);
}
- if (log->user_format) {
- struct pretty_print_context ctx = {0};
- ctx.fmt = CMIT_FMT_USERFORMAT;
- ctx.abbrev = log->abbrev;
- ctx.subject = "";
- ctx.after_subject = "";
- ctx.date_mode.type = DATE_NORMAL;
- ctx.output_encoding = get_log_output_encoding();
- pretty_print_commit(&ctx, commit, &ufbuf);
- buffer = ufbuf.buf;
- } else if (*buffer) {
- buffer++;
- }
- insert_one_record(log, author, !*buffer ? "<none>" : buffer);
- strbuf_release(&ufbuf);
- strbuf_release(&buf);
+
+ insert_one_record(log, author.buf, oneline.len ? oneline.buf : "<none>");
+
+ strbuf_release(&author);
+ strbuf_release(&oneline);
}
static void get_from_rev(struct rev_info *rev, struct shortlog *log)
@@ -294,14 +306,14 @@ void shortlog_output(struct shortlog *log)
if (log->sort_by_number)
qsort(log->list.items, log->list.nr, sizeof(struct string_list_item),
- compare_by_number);
+ log->summary ? compare_by_counter : compare_by_list);
for (i = 0; i < log->list.nr; i++) {
- struct string_list *onelines = log->list.items[i].util;
-
+ const struct string_list_item *item = &log->list.items[i];
if (log->summary) {
- printf("%6d\t%s\n", onelines->nr, log->list.items[i].string);
+ printf("%6d\t%s\n", (int)UTIL_TO_INT(item), item->string);
} else {
- printf("%s (%d):\n", log->list.items[i].string, onelines->nr);
+ struct string_list *onelines = item->util;
+ printf("%s (%d):\n", item->string, onelines->nr);
for (j = onelines->nr - 1; j >= 0; j--) {
const char *msg = onelines->items[j].string;
@@ -314,11 +326,11 @@ void shortlog_output(struct shortlog *log)
printf(" %s\n", msg);
}
putchar('\n');
+ onelines->strdup_strings = 1;
+ string_list_clear(onelines, 0);
+ free(onelines);
}
- onelines->strdup_strings = 1;
- string_list_clear(onelines, 0);
- free(onelines);
log->list.items[i].util = NULL;
}
diff --git a/builtin/update-index.c b/builtin/update-index.c
index 7431938fa6..1c94ca59bf 100644
--- a/builtin/update-index.c
+++ b/builtin/update-index.c
@@ -35,6 +35,15 @@ static int mark_skip_worktree_only;
#define UNMARK_FLAG 2
static struct strbuf mtime_dir = STRBUF_INIT;
+/* Untracked cache mode */
+enum uc_mode {
+ UC_UNSPECIFIED = -1,
+ UC_DISABLE = 0,
+ UC_ENABLE,
+ UC_TEST,
+ UC_FORCE
+};
+
__attribute__((format (printf, 1, 2)))
static void report(const char *fmt, ...)
{
@@ -121,7 +130,7 @@ static int test_if_untracked_cache_is_supported(void)
if (!mkdtemp(mtime_dir.buf))
die_errno("Could not make temporary directory");
- fprintf(stderr, _("Testing "));
+ fprintf(stderr, _("Testing mtime in '%s' "), xgetcwd());
atexit(remove_test_directory);
xstat_mtime_dir(&st);
fill_stat_data(&base, &st);
@@ -468,12 +477,14 @@ static void update_one(const char *path)
report("add '%s'", path);
}
-static void read_index_info(int line_termination)
+static void read_index_info(int nul_term_line)
{
struct strbuf buf = STRBUF_INIT;
struct strbuf uq = STRBUF_INIT;
+ strbuf_getline_fn getline_fn;
- while (strbuf_getline(&buf, stdin, line_termination) != EOF) {
+ getline_fn = nul_term_line ? strbuf_getline_nul : strbuf_getline_lf;
+ while (getline_fn(&buf, stdin) != EOF) {
char *ptr, *tab;
char *path_name;
unsigned char sha1[20];
@@ -522,7 +533,7 @@ static void read_index_info(int line_termination)
goto bad_line;
path_name = ptr;
- if (line_termination && path_name[0] == '"') {
+ if (!nul_term_line && path_name[0] == '"') {
strbuf_reset(&uq);
if (unquote_c_style(&uq, path_name, NULL)) {
die("git update-index: bad quoting of path name");
@@ -844,12 +855,12 @@ static int cacheinfo_callback(struct parse_opt_ctx_t *ctx,
static int stdin_cacheinfo_callback(struct parse_opt_ctx_t *ctx,
const struct option *opt, int unset)
{
- int *line_termination = opt->value;
+ int *nul_term_line = opt->value;
if (ctx->argc != 1)
return error("option '%s' must be the last argument", opt->long_name);
allow_add = allow_replace = allow_remove = 1;
- read_index_info(*line_termination);
+ read_index_info(*nul_term_line);
return 0;
}
@@ -901,8 +912,8 @@ static int reupdate_callback(struct parse_opt_ctx_t *ctx,
int cmd_update_index(int argc, const char **argv, const char *prefix)
{
- int newfd, entries, has_errors = 0, line_termination = '\n';
- int untracked_cache = -1;
+ int newfd, entries, has_errors = 0, nul_term_line = 0;
+ enum uc_mode untracked_cache = UC_UNSPECIFIED;
int read_from_stdin = 0;
int prefix_length = prefix ? strlen(prefix) : 0;
int preferred_index_format = 0;
@@ -912,6 +923,7 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
int split_index = -1;
struct lock_file *lock_file;
struct parse_opt_ctx_t ctx;
+ strbuf_getline_fn getline_fn;
int parseopt_state = PARSE_OPT_UNKNOWN;
struct option options[] = {
OPT_BIT('q', NULL, &refresh_args.flags,
@@ -963,13 +975,13 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
N_("add to index only; do not add content to object database"), 1),
OPT_SET_INT(0, "force-remove", &force_remove,
N_("remove named paths even if present in worktree"), 1),
- OPT_SET_INT('z', NULL, &line_termination,
- N_("with --stdin: input lines are terminated by null bytes"), '\0'),
+ OPT_BOOL('z', NULL, &nul_term_line,
+ N_("with --stdin: input lines are terminated by null bytes")),
{OPTION_LOWLEVEL_CALLBACK, 0, "stdin", &read_from_stdin, NULL,
N_("read list of paths to be updated from standard input"),
PARSE_OPT_NONEG | PARSE_OPT_NOARG,
(parse_opt_cb *) stdin_callback},
- {OPTION_LOWLEVEL_CALLBACK, 0, "index-info", &line_termination, NULL,
+ {OPTION_LOWLEVEL_CALLBACK, 0, "index-info", &nul_term_line, NULL,
N_("add entries from standard input to the index"),
PARSE_OPT_NONEG | PARSE_OPT_NOARG,
(parse_opt_cb *) stdin_cacheinfo_callback},
@@ -996,8 +1008,10 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
N_("enable or disable split index")),
OPT_BOOL(0, "untracked-cache", &untracked_cache,
N_("enable/disable untracked cache")),
+ OPT_SET_INT(0, "test-untracked-cache", &untracked_cache,
+ N_("test if the filesystem supports untracked cache"), UC_TEST),
OPT_SET_INT(0, "force-untracked-cache", &untracked_cache,
- N_("enable untracked cache without testing the filesystem"), 2),
+ N_("enable untracked cache without testing the filesystem"), UC_FORCE),
OPT_END()
};
@@ -1057,6 +1071,8 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
}
}
argc = parse_options_end(&ctx);
+
+ getline_fn = nul_term_line ? strbuf_getline_nul : strbuf_getline_lf;
if (preferred_index_format) {
if (preferred_index_format < INDEX_FORMAT_LB ||
INDEX_FORMAT_UB < preferred_index_format)
@@ -1070,16 +1086,17 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
}
if (read_from_stdin) {
- struct strbuf buf = STRBUF_INIT, nbuf = STRBUF_INIT;
+ struct strbuf buf = STRBUF_INIT;
+ struct strbuf unquoted = STRBUF_INIT;
setup_work_tree();
- while (strbuf_getline(&buf, stdin, line_termination) != EOF) {
+ while (getline_fn(&buf, stdin) != EOF) {
char *p;
- if (line_termination && buf.buf[0] == '"') {
- strbuf_reset(&nbuf);
- if (unquote_c_style(&nbuf, buf.buf, NULL))
+ if (!nul_term_line && buf.buf[0] == '"') {
+ strbuf_reset(&unquoted);
+ if (unquote_c_style(&unquoted, buf.buf, NULL))
die("line is badly quoted");
- strbuf_swap(&buf, &nbuf);
+ strbuf_swap(&buf, &unquoted);
}
p = prefix_path(prefix, prefix_length, buf.buf);
update_one(p);
@@ -1087,7 +1104,7 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
chmod_path(set_executable_bit, p);
free(p);
}
- strbuf_release(&nbuf);
+ strbuf_release(&unquoted);
strbuf_release(&buf);
}
@@ -1104,27 +1121,32 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
the_index.split_index = NULL;
the_index.cache_changed |= SOMETHING_CHANGED;
}
- if (untracked_cache > 0) {
- struct untracked_cache *uc;
- if (untracked_cache < 2) {
- setup_work_tree();
- if (!test_if_untracked_cache_is_supported())
- return 1;
- }
- if (!the_index.untracked) {
- uc = xcalloc(1, sizeof(*uc));
- strbuf_init(&uc->ident, 100);
- uc->exclude_per_dir = ".gitignore";
- /* should be the same flags used by git-status */
- uc->dir_flags = DIR_SHOW_OTHER_DIRECTORIES | DIR_HIDE_EMPTY_DIRECTORIES;
- the_index.untracked = uc;
- }
- add_untracked_ident(the_index.untracked);
- the_index.cache_changed |= UNTRACKED_CHANGED;
- } else if (!untracked_cache && the_index.untracked) {
- the_index.untracked = NULL;
- the_index.cache_changed |= UNTRACKED_CHANGED;
+ switch (untracked_cache) {
+ case UC_UNSPECIFIED:
+ break;
+ case UC_DISABLE:
+ if (git_config_get_untracked_cache() == 1)
+ warning("core.untrackedCache is set to true; "
+ "remove or change it, if you really want to "
+ "disable the untracked cache");
+ remove_untracked_cache(&the_index);
+ report(_("Untracked cache disabled"));
+ break;
+ case UC_TEST:
+ setup_work_tree();
+ return !test_if_untracked_cache_is_supported();
+ case UC_ENABLE:
+ case UC_FORCE:
+ if (git_config_get_untracked_cache() == 0)
+ warning("core.untrackedCache is set to false; "
+ "remove or change it, if you really want to "
+ "enable the untracked cache");
+ add_untracked_cache(&the_index);
+ report(_("Untracked cache enabled for '%s'"), get_git_work_tree());
+ break;
+ default:
+ die("Bug: bad untracked_cache value: %d", untracked_cache);
}
if (active_cache_changed) {
diff --git a/builtin/worktree.c b/builtin/worktree.c
index 0a45710be8..38b56096bd 100644
--- a/builtin/worktree.c
+++ b/builtin/worktree.c
@@ -201,9 +201,7 @@ static int add_worktree(const char *path, const char *refname,
die(_("'%s' already exists"), path);
/* is 'refname' a branch or commit? */
- if (opts->force_new_branch) /* definitely a branch */
- ;
- else if (!opts->detach && !strbuf_check_branch_ref(&symref, refname) &&
+ if (!opts->detach && !strbuf_check_branch_ref(&symref, refname) &&
ref_exists(symref.buf)) { /* it's a branch */
if (!opts->force)
die_if_checked_out(symref.buf);
@@ -336,9 +334,18 @@ static int add(int ac, const char **av, const char *prefix)
branch = ac < 2 ? "HEAD" : av[1];
opts.force_new_branch = !!new_branch_force;
- if (opts.force_new_branch)
+ if (opts.force_new_branch) {
+ struct strbuf symref = STRBUF_INIT;
+
opts.new_branch = new_branch_force;
+ if (!opts.force &&
+ !strbuf_check_branch_ref(&symref, opts.new_branch) &&
+ ref_exists(symref.buf))
+ die_if_checked_out(symref.buf);
+ strbuf_release(&symref);
+ }
+
if (ac < 2 && !opts.new_branch && !opts.detach) {
int n;
const char *s = worktree_basename(path, &n);
diff --git a/cache.h b/cache.h
index 1a2cec0b88..b829410f6d 100644
--- a/cache.h
+++ b/cache.h
@@ -9,6 +9,7 @@
#include "convert.h"
#include "trace.h"
#include "string-list.h"
+#include "pack-revindex.h"
#include SHA1_HEADER
#ifndef platform_SHA_CTX
@@ -1320,6 +1321,7 @@ extern struct packed_git {
freshened:1,
do_not_close:1;
unsigned char sha1[20];
+ struct revindex_entry *revindex;
/* something like ".git/objects/pack/xxxxx.pack" */
char pack_name[FLEX_ARRAY]; /* more */
} *packed_git;
@@ -1516,8 +1518,8 @@ struct git_config_source {
typedef int (*config_fn_t)(const char *, const char *, void *);
extern int git_default_config(const char *, const char *, void *);
extern int git_config_from_file(config_fn_t fn, const char *, void *);
-extern int git_config_from_buf(config_fn_t fn, const char *name,
- const char *buf, size_t len, void *data);
+extern int git_config_from_mem(config_fn_t fn, const char *origin_type,
+ const char *name, const char *buf, size_t len, void *data);
extern void git_config_push_parameter(const char *text);
extern int git_config_from_parameters(config_fn_t fn, void *data);
extern void git_config(config_fn_t fn, void *);
@@ -1560,6 +1562,8 @@ extern const char *get_log_output_encoding(void);
extern const char *get_commit_output_encoding(void);
extern int git_config_parse_parameter(const char *, config_fn_t fn, void *data);
+extern const char *current_config_origin_type(void);
+extern const char *current_config_name(void);
struct config_include_data {
int depth;
@@ -1638,6 +1642,14 @@ extern int git_config_get_bool(const char *key, int *dest);
extern int git_config_get_bool_or_int(const char *key, int *is_bool, int *dest);
extern int git_config_get_maybe_bool(const char *key, int *dest);
extern int git_config_get_pathname(const char *key, const char **dest);
+extern int git_config_get_untracked_cache(void);
+
+/*
+ * This is a hack for test programs like test-dump-untracked-cache to
+ * ensure that they do not modify the untracked cache when reading it.
+ * Do not use it otherwise!
+ */
+extern int ignore_untracked_cache_config;
struct key_value_info {
const char *filename;
diff --git a/compat/mingw.c b/compat/mingw.c
index af56c1fe61..54c82ecf20 100644
--- a/compat/mingw.c
+++ b/compat/mingw.c
@@ -6,6 +6,8 @@
#include "../run-command.h"
#include "../cache.h"
+#define HCAST(type, handle) ((type)(intptr_t)handle)
+
static const int delay[] = { 0, 1, 10, 20, 40 };
int err_win_to_posix(DWORD winerr)
@@ -452,6 +454,39 @@ static inline time_t filetime_to_time_t(const FILETIME *ft)
return (time_t)(filetime_to_hnsec(ft) / 10000000);
}
+/**
+ * Verifies that safe_create_leading_directories() would succeed.
+ */
+static int has_valid_directory_prefix(wchar_t *wfilename)
+{
+ int n = wcslen(wfilename);
+
+ while (n > 0) {
+ wchar_t c = wfilename[--n];
+ DWORD attributes;
+
+ if (!is_dir_sep(c))
+ continue;
+
+ wfilename[n] = L'\0';
+ attributes = GetFileAttributesW(wfilename);
+ wfilename[n] = c;
+ if (attributes == FILE_ATTRIBUTE_DIRECTORY ||
+ attributes == FILE_ATTRIBUTE_DEVICE)
+ return 1;
+ if (attributes == INVALID_FILE_ATTRIBUTES)
+ switch (GetLastError()) {
+ case ERROR_PATH_NOT_FOUND:
+ continue;
+ case ERROR_FILE_NOT_FOUND:
+ /* This implies parent directory exists. */
+ return 1;
+ }
+ return 0;
+ }
+ return 1;
+}
+
/* We keep the do_lstat code in a separate function to avoid recursion.
* When a path ends with a slash, the stat will fail with ENOENT. In
* this case, we strip the trailing slashes and stat again.
@@ -512,6 +547,12 @@ static int do_lstat(int follow, const char *file_name, struct stat *buf)
case ERROR_NOT_ENOUGH_MEMORY:
errno = ENOMEM;
break;
+ case ERROR_PATH_NOT_FOUND:
+ if (!has_valid_directory_prefix(wfilename)) {
+ errno = ENOTDIR;
+ break;
+ }
+ /* fallthru */
default:
errno = ENOENT;
break;
@@ -691,13 +732,13 @@ int pipe(int filedes[2])
errno = err_win_to_posix(GetLastError());
return -1;
}
- filedes[0] = _open_osfhandle((int)h[0], O_NOINHERIT);
+ filedes[0] = _open_osfhandle(HCAST(int, h[0]), O_NOINHERIT);
if (filedes[0] < 0) {
CloseHandle(h[0]);
CloseHandle(h[1]);
return -1;
}
- filedes[1] = _open_osfhandle((int)h[1], O_NOINHERIT);
+ filedes[1] = _open_osfhandle(HCAST(int, h[1]), O_NOINHERIT);
if (filedes[1] < 0) {
close(filedes[0]);
CloseHandle(h[1]);
@@ -1601,7 +1642,12 @@ repeat:
if (gle == ERROR_ACCESS_DENIED &&
(attrs = GetFileAttributesW(wpnew)) != INVALID_FILE_ATTRIBUTES) {
if (attrs & FILE_ATTRIBUTE_DIRECTORY) {
- errno = EISDIR;
+ DWORD attrsold = GetFileAttributesW(wpold);
+ if (attrsold == INVALID_FILE_ATTRIBUTES ||
+ !(attrsold & FILE_ATTRIBUTE_DIRECTORY))
+ errno = EISDIR;
+ else if (!_wrmdir(wpnew))
+ goto repeat;
return -1;
}
if ((attrs & FILE_ATTRIBUTE_READONLY) &&
@@ -1846,7 +1892,8 @@ void mingw_open_html(const char *unixpath)
die("cannot run browser");
printf("Launching default browser to display HTML ...\n");
- r = (int)ShellExecute(NULL, "open", htmlpath, NULL, "\\", SW_SHOWNORMAL);
+ r = HCAST(int, ShellExecute(NULL, "open", htmlpath,
+ NULL, "\\", SW_SHOWNORMAL));
FreeLibrary(shell32);
/* see the MSDN documentation referring to the result codes here */
if (r <= 32) {
@@ -2044,6 +2091,37 @@ int xwcstoutf(char *utf, const wchar_t *wcs, size_t utflen)
return -1;
}
+static void setup_windows_environment()
+{
+ char *tmp = getenv("TMPDIR");
+
+ /* on Windows it is TMP and TEMP */
+ if (!tmp) {
+ if (!(tmp = getenv("TMP")))
+ tmp = getenv("TEMP");
+ if (tmp) {
+ setenv("TMPDIR", tmp, 1);
+ tmp = getenv("TMPDIR");
+ }
+ }
+
+ if (tmp) {
+ /*
+ * Convert all dir separators to forward slashes,
+ * to help shell commands called from the Git
+ * executable (by not mistaking the dir separators
+ * for escape characters).
+ */
+ for (; *tmp; tmp++)
+ if (*tmp == '\\')
+ *tmp = '/';
+ }
+
+ /* simulate TERM to enable auto-color (see color.c) */
+ if (!getenv("TERM"))
+ setenv("TERM", "cygwin", 1);
+}
+
/*
* Disable MSVCRT command line wildcard expansion (__getmainargs called from
* mingw startup code, see init.c in mingw runtime).
@@ -2122,19 +2200,7 @@ void mingw_startup()
qsort(environ, i, sizeof(char*), compareenv);
/* fix Windows specific environment settings */
-
- /* on Windows it is TMP and TEMP */
- if (!mingw_getenv("TMPDIR")) {
- const char *tmp = mingw_getenv("TMP");
- if (!tmp)
- tmp = mingw_getenv("TEMP");
- if (tmp)
- setenv("TMPDIR", tmp, 1);
- }
-
- /* simulate TERM to enable auto-color (see color.c) */
- if (!getenv("TERM"))
- setenv("TERM", "cygwin", 1);
+ setup_windows_environment();
/* initialize critical section for waitpid pinfo_t list */
InitializeCriticalSection(&pinfo_cs);
diff --git a/compat/mingw.h b/compat/mingw.h
index a5fb52f977..8c5bf5076b 100644
--- a/compat/mingw.h
+++ b/compat/mingw.h
@@ -1,27 +1,43 @@
+#ifdef __MINGW64_VERSION_MAJOR
+#include <stdint.h>
+#include <wchar.h>
+typedef _sigset_t sigset_t;
+#endif
#include <winsock2.h>
#include <ws2tcpip.h>
+/* MinGW-w64 reports to have flockfile, but it does not actually have it. */
+#ifdef __MINGW64_VERSION_MAJOR
+#undef _POSIX_THREAD_SAFE_FUNCTIONS
+#endif
+
/*
* things that are not available in header files
*/
-typedef int pid_t;
typedef int uid_t;
typedef int socklen_t;
+#ifndef __MINGW64_VERSION_MAJOR
+typedef int pid_t;
#define hstrerror strerror
+#endif
#define S_IFLNK 0120000 /* Symbolic link */
#define S_ISLNK(x) (((x) & S_IFMT) == S_IFLNK)
#define S_ISSOCK(x) 0
+#ifndef S_IRWXG
#define S_IRGRP 0
#define S_IWGRP 0
#define S_IXGRP 0
#define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP)
+#endif
+#ifndef S_IRWXO
#define S_IROTH 0
#define S_IWOTH 0
#define S_IXOTH 0
#define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH)
+#endif
#define S_ISUID 0004000
#define S_ISGID 0002000
@@ -100,8 +116,10 @@ static inline int symlink(const char *oldpath, const char *newpath)
{ errno = ENOSYS; return -1; }
static inline int fchmod(int fildes, mode_t mode)
{ errno = ENOSYS; return -1; }
+#ifndef __MINGW64_VERSION_MAJOR
static inline pid_t fork(void)
{ errno = ENOSYS; return -1; }
+#endif
static inline unsigned int alarm(unsigned int seconds)
{ return 0; }
static inline int fsync(int fd)
@@ -176,8 +194,10 @@ int pipe(int filedes[2]);
unsigned int sleep (unsigned int seconds);
int mkstemp(char *template);
int gettimeofday(struct timeval *tv, void *tz);
+#ifndef __MINGW64_VERSION_MAJOR
struct tm *gmtime_r(const time_t *timep, struct tm *result);
struct tm *localtime_r(const time_t *timep, struct tm *result);
+#endif
int getpagesize(void); /* defined in MinGW's libgcc.a */
struct passwd *getpwuid(uid_t uid);
int setitimer(int type, struct itimerval *in, struct itimerval *out);
@@ -301,8 +321,10 @@ static inline int getrlimit(int resource, struct rlimit *rlp)
/*
* Use mingw specific stat()/lstat()/fstat() implementations on Windows.
*/
+#ifndef __MINGW64_VERSION_MAJOR
#define off_t off64_t
#define lseek _lseeki64
+#endif
/* use struct stat with 64 bit st_size */
#ifdef stat
@@ -378,8 +400,12 @@ static inline char *mingw_find_last_dir_sep(const char *path)
int mingw_offset_1st_component(const char *path);
#define offset_1st_component mingw_offset_1st_component
#define PATH_SEP ';'
+#ifndef __MINGW64_VERSION_MAJOR
#define PRIuMAX "I64u"
#define PRId64 "I64d"
+#else
+#include <inttypes.h>
+#endif
void mingw_open_html(const char *path);
#define open_html mingw_open_html
diff --git a/compat/nedmalloc/malloc.c.h b/compat/nedmalloc/malloc.c.h
index f216a2a7d3..b833ff9225 100644
--- a/compat/nedmalloc/malloc.c.h
+++ b/compat/nedmalloc/malloc.c.h
@@ -720,6 +720,9 @@ struct mallinfo {
inlining are defined as macros, so these aren't used for them.
*/
+#ifdef __MINGW64_VERSION_MAJOR
+#undef FORCEINLINE
+#endif
#ifndef FORCEINLINE
#if defined(__GNUC__)
#define FORCEINLINE __inline __attribute__ ((always_inline))
@@ -1382,6 +1385,7 @@ LONG __cdecl _InterlockedExchange(LONG volatile *Target, LONG Value);
/*** Atomic operations ***/
#if (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) > 40100
+ #undef _ReadWriteBarrier
#define _ReadWriteBarrier() __sync_synchronize()
#else
static __inline__ __attribute__((always_inline)) long __sync_lock_test_and_set(volatile long * const Target, const long Value)
@@ -1798,9 +1802,10 @@ struct win32_mlock_t
volatile long threadid;
};
+static inline int return_0(int i) { return 0; }
#define MLOCK_T struct win32_mlock_t
#define CURRENT_THREAD win32_getcurrentthreadid()
-#define INITIAL_LOCK(sl) (memset(sl, 0, sizeof(MLOCK_T)), 0)
+#define INITIAL_LOCK(sl) (memset(sl, 0, sizeof(MLOCK_T)), return_0(0))
#define ACQUIRE_LOCK(sl) win32_acquire_lock(sl)
#define RELEASE_LOCK(sl) win32_release_lock(sl)
#define TRY_LOCK(sl) win32_try_lock(sl)
diff --git a/compat/poll/poll.c b/compat/poll/poll.c
index db4e03ed79..b10adc780f 100644
--- a/compat/poll/poll.c
+++ b/compat/poll/poll.c
@@ -76,7 +76,7 @@
#ifdef WIN32_NATIVE
-#define IsConsoleHandle(h) (((long) (h) & 3) == 3)
+#define IsConsoleHandle(h) (((long) (intptr_t) (h) & 3) == 3)
static BOOL
IsSocketHandle (HANDLE h)
diff --git a/compat/terminal.c b/compat/terminal.c
index 313897d581..fa13ee672d 100644
--- a/compat/terminal.c
+++ b/compat/terminal.c
@@ -122,7 +122,7 @@ char *git_terminal_prompt(const char *prompt, int echo)
fputs(prompt, output_fh);
fflush(output_fh);
- r = strbuf_getline(&buf, input_fh, '\n');
+ r = strbuf_getline_lf(&buf, input_fh);
if (!echo) {
putc('\n', output_fh);
fflush(output_fh);
diff --git a/compat/win32/pthread.h b/compat/win32/pthread.h
index 8ad187344f..b6ed9e7462 100644
--- a/compat/win32/pthread.h
+++ b/compat/win32/pthread.h
@@ -18,7 +18,10 @@
*/
#define pthread_mutex_t CRITICAL_SECTION
-#define pthread_mutex_init(a,b) (InitializeCriticalSection((a)), 0)
+static inline int return_0(int i) {
+ return 0;
+}
+#define pthread_mutex_init(a,b) return_0((InitializeCriticalSection((a)), 0))
#define pthread_mutex_destroy(a) DeleteCriticalSection((a))
#define pthread_mutex_lock EnterCriticalSection
#define pthread_mutex_unlock LeaveCriticalSection
@@ -75,9 +78,9 @@ extern 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);
-static inline int pthread_exit(void *ret)
+static inline void NORETURN pthread_exit(void *ret)
{
- ExitThread((DWORD)ret);
+ ExitThread((DWORD)(intptr_t)ret);
}
typedef DWORD pthread_key_t;
diff --git a/compat/winansi.c b/compat/winansi.c
index ceff55bd67..5dfa5ed61f 100644
--- a/compat/winansi.c
+++ b/compat/winansi.c
@@ -23,6 +23,7 @@ static HANDLE hthread, hread, hwrite;
static HANDLE hconsole1, hconsole2;
#ifdef __MINGW32__
+#if !defined(__MINGW64_VERSION_MAJOR) || __MINGW64_VERSION_MAJOR < 5
typedef struct _CONSOLE_FONT_INFOEX {
ULONG cbSize;
DWORD nFont;
@@ -32,6 +33,7 @@ typedef struct _CONSOLE_FONT_INFOEX {
WCHAR FaceName[LF_FACESIZE];
} CONSOLE_FONT_INFOEX, *PCONSOLE_FONT_INFOEX;
#endif
+#endif
typedef BOOL (WINAPI *PGETCURRENTCONSOLEFONTEX)(HANDLE, BOOL,
PCONSOLE_FONT_INFOEX);
@@ -452,7 +454,8 @@ static HANDLE duplicate_handle(HANDLE hnd)
HANDLE hresult, hproc = GetCurrentProcess();
if (!DuplicateHandle(hproc, hnd, hproc, &hresult, 0, TRUE,
DUPLICATE_SAME_ACCESS))
- die_lasterr("DuplicateHandle(%li) failed", (long) hnd);
+ die_lasterr("DuplicateHandle(%li) failed",
+ (long) (intptr_t) hnd);
return hresult;
}
diff --git a/config.c b/config.c
index 03544e7a3f..9ba40bc1b0 100644
--- a/config.c
+++ b/config.c
@@ -24,6 +24,7 @@ struct config_source {
size_t pos;
} buf;
} u;
+ const char *origin_type;
const char *name;
const char *path;
int die_on_error;
@@ -471,9 +472,9 @@ static int git_parse_source(config_fn_t fn, void *data)
break;
}
if (cf->die_on_error)
- die(_("bad config file line %d in %s"), cf->linenr, cf->name);
+ die(_("bad config line %d in %s %s"), cf->linenr, cf->origin_type, cf->name);
else
- return error(_("bad config file line %d in %s"), cf->linenr, cf->name);
+ return error(_("bad config line %d in %s %s"), cf->linenr, cf->origin_type, cf->name);
}
static int parse_unit_factor(const char *end, uintmax_t *val)
@@ -588,9 +589,9 @@ static void die_bad_number(const char *name, const char *value)
if (!value)
value = "";
- if (cf && cf->name)
- die(_("bad numeric config value '%s' for '%s' in %s: %s"),
- value, name, cf->name, reason);
+ if (cf && cf->origin_type && cf->name)
+ die(_("bad numeric config value '%s' for '%s' in %s %s: %s"),
+ value, name, cf->origin_type, cf->name, reason);
die(_("bad numeric config value '%s' for '%s': %s"), value, name, reason);
}
@@ -1061,11 +1062,13 @@ static int do_config_from(struct config_source *top, config_fn_t fn, void *data)
}
static int do_config_from_file(config_fn_t fn,
- const char *name, const char *path, FILE *f, void *data)
+ const char *origin_type, const char *name, const char *path, FILE *f,
+ void *data)
{
struct config_source top;
top.u.file = f;
+ top.origin_type = origin_type;
top.name = name;
top.path = path;
top.die_on_error = 1;
@@ -1078,7 +1081,7 @@ static int do_config_from_file(config_fn_t fn,
static int git_config_from_stdin(config_fn_t fn, void *data)
{
- return do_config_from_file(fn, "<stdin>", NULL, stdin, data);
+ return do_config_from_file(fn, "standard input", "", NULL, stdin, data);
}
int git_config_from_file(config_fn_t fn, const char *filename, void *data)
@@ -1089,21 +1092,22 @@ int git_config_from_file(config_fn_t fn, const char *filename, void *data)
f = fopen(filename, "r");
if (f) {
flockfile(f);
- ret = do_config_from_file(fn, filename, filename, f, data);
+ ret = do_config_from_file(fn, "file", filename, filename, f, data);
funlockfile(f);
fclose(f);
}
return ret;
}
-int git_config_from_buf(config_fn_t fn, const char *name, const char *buf,
- size_t len, void *data)
+int git_config_from_mem(config_fn_t fn, const char *origin_type,
+ const char *name, const char *buf, size_t len, void *data)
{
struct config_source top;
top.u.buf.buf = buf;
top.u.buf.len = len;
top.u.buf.pos = 0;
+ top.origin_type = origin_type;
top.name = name;
top.path = NULL;
top.die_on_error = 0;
@@ -1132,7 +1136,7 @@ static int git_config_from_blob_sha1(config_fn_t fn,
return error("reference '%s' does not point to a blob", name);
}
- ret = git_config_from_buf(fn, name, buf, size, data);
+ ret = git_config_from_mem(fn, "blob", name, buf, size, data);
free(buf);
return ret;
@@ -1594,6 +1598,30 @@ int git_config_get_pathname(const char *key, const char **dest)
return ret;
}
+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 */
+}
+
NORETURN
void git_die_config_linenr(const char *key, const char *filename, int linenr)
{
@@ -2411,3 +2439,13 @@ int parse_config_key(const char *var,
return 0;
}
+
+const char *current_config_origin_type(void)
+{
+ return cf && cf->origin_type ? cf->origin_type : "command line";
+}
+
+const char *current_config_name(void)
+{
+ return cf && cf->name ? cf->name : "";
+}
diff --git a/config.mak.uname b/config.mak.uname
index f34dcaad20..1139b44007 100644
--- a/config.mak.uname
+++ b/config.mak.uname
@@ -37,6 +37,7 @@ ifeq ($(uname_S),Linux)
HAVE_CLOCK_GETTIME = YesPlease
HAVE_CLOCK_MONOTONIC = YesPlease
HAVE_GETDELIM = YesPlease
+ SANE_TEXT_GREP=-a
endif
ifeq ($(uname_S),GNU/kFreeBSD)
HAVE_ALLOCA_H = YesPlease
@@ -102,6 +103,9 @@ ifeq ($(uname_S),Darwin)
ifeq ($(shell expr "$(uname_R)" : '[15]\.'),2)
NO_STRLCPY = YesPlease
endif
+ ifeq ($(shell test "`expr "$(uname_R)" : '\([0-9][0-9]*\)\.'`" -eq 10 && echo 1),1)
+ CC = clang
+ endif
ifeq ($(shell test "`expr "$(uname_R)" : '\([0-9][0-9]*\)\.'`" -ge 11 && echo 1),1)
HAVE_GETDELIM = YesPlease
endif
@@ -518,13 +522,12 @@ ifneq (,$(findstring MINGW,$(uname_S)))
NO_INET_NTOP = YesPlease
NO_POSIX_GOODIES = UnfortunatelyYes
DEFAULT_HELP_FORMAT = html
- COMPAT_CFLAGS += -D__USE_MINGW_ACCESS -D_USE_32BIT_TIME_T -DNOGDI -Icompat -Icompat/win32
+ COMPAT_CFLAGS += -DNOGDI -Icompat -Icompat/win32
COMPAT_CFLAGS += -DSTRIP_EXTENSION=\".exe\"
COMPAT_OBJS += compat/mingw.o compat/winansi.o \
compat/win32/pthread.o compat/win32/syslog.o \
compat/win32/dirent.o
BASIC_CFLAGS += -DPROTECT_NTFS_DEFAULT=1
- BASIC_LDFLAGS += -Wl,--large-address-aware
EXTLIBS += -lws2_32
GITLIBS += git.res
PTHREAD_LIBS =
@@ -541,8 +544,35 @@ ifneq (,$(wildcard ../THIS_IS_MSYSGIT))
INTERNAL_QSORT = YesPlease
HAVE_LIBCHARSET_H = YesPlease
NO_GETTEXT = YesPlease
+ COMPAT_CLFAGS += -D__USE_MINGW_ACCESS
else
- NO_CURL = YesPlease
+ ifeq ($(shell expr "$(uname_R)" : '2\.'),2)
+ # MSys2
+ prefix = /usr/
+ ifeq (MINGW32,$(MSYSTEM))
+ prefix = /mingw32
+ endif
+ ifeq (MINGW64,$(MSYSTEM))
+ prefix = /mingw64
+ else
+ COMPAT_CFLAGS += -D_USE_32BIT_TIME_T
+ BASIC_LDFLAGS += -Wl,--large-address-aware
+ endif
+ CC = gcc
+ COMPAT_CFLAGS += -D__USE_MINGW_ANSI_STDIO=0
+ INSTALL = /bin/install
+ NO_R_TO_GCC_LINKER = YesPlease
+ INTERNAL_QSORT = YesPlease
+ HAVE_LIBCHARSET_H = YesPlease
+ NO_GETTEXT =
+ USE_GETTEXT_SCHEME = fallthrough
+ USE_LIBPCRE= YesPlease
+ NO_CURL =
+ USE_NED_ALLOCATOR = YesPlease
+ else
+ COMPAT_CFLAGS += -D__USE_MINGW_ANSI_STDIO
+ NO_CURL = YesPlease
+ endif
endif
endif
ifeq ($(uname_S),QNX)
diff --git a/configure.ac b/configure.ac
index 89e2590bd6..0cd9f4680b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -471,6 +471,13 @@ if test -n "$ASCIIDOC"; then
esac
fi
+if grep -a ascii configure.ac >/dev/null; then
+ AC_MSG_RESULT([Using 'grep -a' for sane_grep])
+ SANE_TEXT_GREP=-a
+else
+ SANE_TEXT_GREP=
+fi
+GIT_CONF_SUBST([SANE_TEXT_GREP])
## Checks for libraries.
AC_MSG_NOTICE([CHECKS for libraries])
diff --git a/connect.c b/connect.c
index fd7ffe1840..c53f3f1c55 100644
--- a/connect.c
+++ b/connect.c
@@ -267,9 +267,9 @@ static enum protocol get_protocol(const char *name)
return PROTO_SSH;
if (!strcmp(name, "git"))
return PROTO_GIT;
- if (!strcmp(name, "git+ssh"))
+ if (!strcmp(name, "git+ssh")) /* deprecated - do not use */
return PROTO_SSH;
- if (!strcmp(name, "ssh+git"))
+ if (!strcmp(name, "ssh+git")) /* deprecated - do not use */
return PROTO_SSH;
if (!strcmp(name, "file"))
return PROTO_FILE;
@@ -357,6 +357,10 @@ static int git_tcp_connect_sock(char *host, int flags)
port = "<none>";
memset(&hints, 0, sizeof(hints));
+ if (flags & CONNECT_IPV4)
+ hints.ai_family = AF_INET;
+ else if (flags & CONNECT_IPV6)
+ hints.ai_family = AF_INET6;
hints.ai_socktype = SOCK_STREAM;
hints.ai_protocol = IPPROTO_TCP;
@@ -783,6 +787,10 @@ struct child_process *git_connect(int fd[2], const char *url,
}
argv_array_push(&conn->args, ssh);
+ if (flags & CONNECT_IPV4)
+ argv_array_push(&conn->args, "-4");
+ else if (flags & CONNECT_IPV6)
+ argv_array_push(&conn->args, "-6");
if (tortoiseplink)
argv_array_push(&conn->args, "-batch");
if (port) {
diff --git a/connect.h b/connect.h
index c41a6850f1..01f14cdf3f 100644
--- a/connect.h
+++ b/connect.h
@@ -3,6 +3,8 @@
#define CONNECT_VERBOSE (1u << 0)
#define CONNECT_DIAG_URL (1u << 1)
+#define CONNECT_IPV4 (1u << 2)
+#define CONNECT_IPV6 (1u << 3)
extern struct child_process *git_connect(int fd[2], const char *url, const char *prog, int flags);
extern int finish_connect(struct child_process *conn);
extern int git_connection_is_socket(struct child_process *conn);
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 00d729996f..e3918c87e3 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1312,6 +1312,7 @@ _git_grep ()
--full-name --line-number
--extended-regexp --basic-regexp --fixed-strings
--perl-regexp
+ --threads
--files-with-matches --name-only
--files-without-match
--max-depth
@@ -1812,7 +1813,7 @@ _git_config ()
return
;;
branch.*.rebase)
- __gitcomp "false true"
+ __gitcomp "false true preserve interactive"
return
;;
remote.pushdefault)
@@ -2059,6 +2060,7 @@ _git_config ()
core.sparseCheckout
core.symlinks
core.trustctime
+ core.untrackedCache
core.warnAmbiguousRefs
core.whitespace
core.worktree
diff --git a/contrib/examples/git-commit.sh b/contrib/examples/git-commit.sh
index 934505bab9..86c9cfa0c7 100755
--- a/contrib/examples/git-commit.sh
+++ b/contrib/examples/git-commit.sh
@@ -574,10 +574,10 @@ then
if test "$templatefile" != ""
then
# Test whether this is just the unaltered template.
- if cnt=`sed -e '/^#/d' < "$templatefile" |
+ if cnt=$(sed -e '/^#/d' < "$templatefile" |
git stripspace |
diff "$GIT_DIR"/COMMIT_BAREMSG - |
- wc -l` &&
+ wc -l) &&
test 0 -lt $cnt
then
have_commitmsg=t
@@ -630,8 +630,8 @@ then
fi
if test -z "$quiet"
then
- commit=`git diff-tree --always --shortstat --pretty="format:%h: %s"\
- --abbrev --summary --root HEAD --`
+ commit=$(git diff-tree --always --shortstat --pretty="format:%h: %s"\
+ --abbrev --summary --root HEAD --)
echo "Created${initial_commit:+ initial} commit $commit"
fi
fi
diff --git a/contrib/examples/git-fetch.sh b/contrib/examples/git-fetch.sh
index 554070909c..57d2e5616f 100755
--- a/contrib/examples/git-fetch.sh
+++ b/contrib/examples/git-fetch.sh
@@ -146,13 +146,13 @@ esac
reflist=$(get_remote_refs_for_fetch "$@")
if test "$tags"
then
- taglist=`IFS=' ' &&
+ taglist=$(IFS=' ' &&
echo "$ls_remote_result" |
git show-ref --exclude-existing=refs/tags/ |
while read sha1 name
do
echo ".${name}:${name}"
- done` || exit
+ done) || exit
if test "$#" -gt 1
then
# remote URL plus explicit refspecs; we need to merge them.
diff --git a/contrib/examples/git-merge.sh b/contrib/examples/git-merge.sh
index 52f2aafb9d..ee99f1a4ee 100755
--- a/contrib/examples/git-merge.sh
+++ b/contrib/examples/git-merge.sh
@@ -523,10 +523,10 @@ do
if test "$exit" -eq 1
then
- cnt=`{
+ cnt=$({
git diff-files --name-only
git ls-files --unmerged
- } | wc -l`
+ } | wc -l)
if test $best_cnt -le 0 || test $cnt -le $best_cnt
then
best_strategy=$strategy
diff --git a/contrib/examples/git-repack.sh b/contrib/examples/git-repack.sh
index 96e3fed326..672af93443 100755
--- a/contrib/examples/git-repack.sh
+++ b/contrib/examples/git-repack.sh
@@ -67,8 +67,8 @@ case ",$all_into_one," in
,t,)
args= existing=
if [ -d "$PACKDIR" ]; then
- for e in `cd "$PACKDIR" && find . -type f -name '*.pack' \
- | sed -e 's/^\.\///' -e 's/\.pack$//'`
+ for e in $(cd "$PACKDIR" && find . -type f -name '*.pack' \
+ | sed -e 's/^\.\///' -e 's/\.pack$//')
do
if [ -e "$PACKDIR/$e.keep" ]; then
: keep
diff --git a/contrib/examples/git-revert.sh b/contrib/examples/git-revert.sh
index 7e2aad5491..197838d10b 100755
--- a/contrib/examples/git-revert.sh
+++ b/contrib/examples/git-revert.sh
@@ -138,8 +138,8 @@ cherry-pick)
}'
logmsg=$(git show -s --pretty=raw --encoding="$encoding" "$commit")
- set_author_env=`echo "$logmsg" |
- LANG=C LC_ALL=C sed -ne "$pick_author_script"`
+ set_author_env=$(echo "$logmsg" |
+ LANG=C LC_ALL=C sed -ne "$pick_author_script")
eval "$set_author_env"
export GIT_AUTHOR_NAME
export GIT_AUTHOR_EMAIL
@@ -160,9 +160,9 @@ cherry-pick)
esac >.msg
eval GITHEAD_$head=HEAD
-eval GITHEAD_$next='`git show -s \
+eval GITHEAD_$next='$(git show -s \
--pretty=oneline --encoding="$encoding" "$commit" |
- sed -e "s/^[^ ]* //"`'
+ sed -e "s/^[^ ]* //")'
export GITHEAD_$head GITHEAD_$next
# This three way merge is an interesting one. We are at
diff --git a/contrib/subtree/Makefile b/contrib/subtree/Makefile
index 3071baf493..6afa9aafdf 100644
--- a/contrib/subtree/Makefile
+++ b/contrib/subtree/Makefile
@@ -37,6 +37,7 @@ GIT_SUBTREE_DOC := git-subtree.1
GIT_SUBTREE_XML := git-subtree.xml
GIT_SUBTREE_TXT := git-subtree.txt
GIT_SUBTREE_HTML := git-subtree.html
+GIT_SUBTREE_TEST := ../../git-subtree
all:: $(GIT_SUBTREE)
@@ -71,7 +72,10 @@ $(GIT_SUBTREE_HTML): $(GIT_SUBTREE_TXT)
$(ASCIIDOC) -b xhtml11 -d manpage -f $(ASCIIDOC_CONF) \
-agit_version=$(GIT_VERSION) $^
-test:
+$(GIT_SUBTREE_TEST): $(GIT_SUBTREE)
+ cp $< $@
+
+test: $(GIT_SUBTREE_TEST)
$(MAKE) -C t/ test
clean:
diff --git a/contrib/subtree/git-subtree.sh b/contrib/subtree/git-subtree.sh
index 5c8372709b..7a39b30ad0 100755
--- a/contrib/subtree/git-subtree.sh
+++ b/contrib/subtree/git-subtree.sh
@@ -245,7 +245,10 @@ find_latest_squash()
case "$a" in
START) sq="$b" ;;
git-subtree-mainline:) main="$b" ;;
- git-subtree-split:) sub="$b" ;;
+ git-subtree-split:)
+ sub="$(git rev-parse "$b^0")" ||
+ die "could not rev-parse split hash $b from commit $sq"
+ ;;
END)
if [ -n "$sub" ]; then
if [ -n "$main" ]; then
@@ -278,7 +281,10 @@ find_existing_splits()
case "$a" in
START) sq="$b" ;;
git-subtree-mainline:) main="$b" ;;
- git-subtree-split:) sub="$b" ;;
+ git-subtree-split:)
+ sub="$(git rev-parse "$b^0")" ||
+ die "could not rev-parse split hash $b from commit $sq"
+ ;;
END)
debug " Main is: '$main'"
if [ -z "$main" -a -n "$sub" ]; then
diff --git a/contrib/thunderbird-patch-inline/appp.sh b/contrib/thunderbird-patch-inline/appp.sh
index 8dc73ece15..1053872eea 100755
--- a/contrib/thunderbird-patch-inline/appp.sh
+++ b/contrib/thunderbird-patch-inline/appp.sh
@@ -31,8 +31,8 @@ BODY=$(sed -e "1,/${SEP}/d" $1)
CMT_MSG=$(sed -e '1,/^$/d' -e '/^---$/,$d' "${PATCH}")
DIFF=$(sed -e '1,/^---$/d' "${PATCH}")
-CCS=`echo -e "$CMT_MSG\n$HEADERS" | sed -n -e 's/^Cc: \(.*\)$/\1,/gp' \
- -e 's/^Signed-off-by: \(.*\)/\1,/gp'`
+CCS=$(echo -e "$CMT_MSG\n$HEADERS" | sed -n -e 's/^Cc: \(.*\)$/\1,/gp' \
+ -e 's/^Signed-off-by: \(.*\)/\1,/gp')
echo "$SUBJECT" > $1
echo "Cc: $CCS" >> $1
diff --git a/convert.c b/convert.c
index 814e814438..f524b8d7f4 100644
--- a/convert.c
+++ b/convert.c
@@ -13,18 +13,25 @@
* translation when the "text" attribute or "auto_crlf" option is set.
*/
+/* Stat bits: When BIN is set, the txt bits are unset */
+#define CONVERT_STAT_BITS_TXT_LF 0x1
+#define CONVERT_STAT_BITS_TXT_CRLF 0x2
+#define CONVERT_STAT_BITS_BIN 0x4
+
enum crlf_action {
- CRLF_GUESS = -1,
- CRLF_BINARY = 0,
+ CRLF_UNDEFINED,
+ CRLF_BINARY,
CRLF_TEXT,
- CRLF_INPUT,
- CRLF_CRLF,
- CRLF_AUTO
+ CRLF_TEXT_INPUT,
+ CRLF_TEXT_CRLF,
+ CRLF_AUTO,
+ CRLF_AUTO_INPUT,
+ CRLF_AUTO_CRLF
};
struct text_stat {
/* NUL, CR, LF and CRLF counts */
- unsigned nul, cr, lf, crlf;
+ unsigned nul, lonecr, lonelf, crlf;
/* These are just approximations! */
unsigned printable, nonprintable;
@@ -39,13 +46,15 @@ static void gather_stats(const char *buf, unsigned long size, struct text_stat *
for (i = 0; i < size; i++) {
unsigned char c = buf[i];
if (c == '\r') {
- stats->cr++;
- if (i+1 < size && buf[i+1] == '\n')
+ if (i+1 < size && buf[i+1] == '\n') {
stats->crlf++;
+ i++;
+ } else
+ stats->lonecr++;
continue;
}
if (c == '\n') {
- stats->lf++;
+ stats->lonelf++;
continue;
}
if (c == 127)
@@ -75,23 +84,84 @@ static void gather_stats(const char *buf, unsigned long size, struct text_stat *
/*
* The same heuristics as diff.c::mmfile_is_binary()
+ * We treat files with bare CR as binary
*/
-static int is_binary(unsigned long size, struct text_stat *stats)
+static int convert_is_binary(unsigned long size, const struct text_stat *stats)
{
-
+ if (stats->lonecr)
+ return 1;
if (stats->nul)
return 1;
if ((stats->printable >> 7) < stats->nonprintable)
return 1;
- /*
- * Other heuristics? Average line length might be relevant,
- * as might LF vs CR vs CRLF counts..
- *
- * NOTE! It might be normal to have a low ratio of CRLF to LF
- * (somebody starts with a LF-only file and edits it with an editor
- * that adds CRLF only to lines that are added..). But do we
- * want to support CR-only? Probably not.
- */
+ return 0;
+}
+
+static unsigned int gather_convert_stats(const char *data, unsigned long size)
+{
+ struct text_stat stats;
+ int ret = 0;
+ if (!data || !size)
+ return 0;
+ gather_stats(data, size, &stats);
+ if (convert_is_binary(size, &stats))
+ ret |= CONVERT_STAT_BITS_BIN;
+ if (stats.crlf)
+ ret |= CONVERT_STAT_BITS_TXT_CRLF;
+ if (stats.lonelf)
+ ret |= CONVERT_STAT_BITS_TXT_LF;
+
+ return ret;
+}
+
+static const char *gather_convert_stats_ascii(const char *data, unsigned long size)
+{
+ unsigned int convert_stats = gather_convert_stats(data, size);
+
+ if (convert_stats & CONVERT_STAT_BITS_BIN)
+ return "-text";
+ switch (convert_stats) {
+ case CONVERT_STAT_BITS_TXT_LF:
+ return "lf";
+ case CONVERT_STAT_BITS_TXT_CRLF:
+ return "crlf";
+ case CONVERT_STAT_BITS_TXT_LF | CONVERT_STAT_BITS_TXT_CRLF:
+ return "mixed";
+ default:
+ return "none";
+ }
+}
+
+const char *get_cached_convert_stats_ascii(const char *path)
+{
+ const char *ret;
+ unsigned long sz;
+ void *data = read_blob_data_from_cache(path, &sz);
+ ret = gather_convert_stats_ascii(data, sz);
+ free(data);
+ return ret;
+}
+
+const char *get_wt_convert_stats_ascii(const char *path)
+{
+ const char *ret = "";
+ struct strbuf sb = STRBUF_INIT;
+ if (strbuf_read_file(&sb, path, 0) >= 0)
+ ret = gather_convert_stats_ascii(sb.buf, sb.len);
+ strbuf_release(&sb);
+ return ret;
+}
+
+static int text_eol_is_crlf(void)
+{
+ if (auto_crlf == AUTO_CRLF_TRUE)
+ return 1;
+ else if (auto_crlf == AUTO_CRLF_INPUT)
+ return 0;
+ if (core_eol == EOL_CRLF)
+ return 1;
+ if (core_eol == EOL_UNSET && EOL_NATIVE == EOL_CRLF)
+ return 1;
return 0;
}
@@ -100,23 +170,19 @@ static enum eol output_eol(enum crlf_action crlf_action)
switch (crlf_action) {
case CRLF_BINARY:
return EOL_UNSET;
- case CRLF_CRLF:
+ case CRLF_TEXT_CRLF:
return EOL_CRLF;
- case CRLF_INPUT:
+ case CRLF_TEXT_INPUT:
return EOL_LF;
- case CRLF_GUESS:
- if (!auto_crlf)
- return EOL_UNSET;
- /* fall through */
+ case CRLF_UNDEFINED:
+ case CRLF_AUTO_CRLF:
+ case CRLF_AUTO_INPUT:
case CRLF_TEXT:
case CRLF_AUTO:
- if (auto_crlf == AUTO_CRLF_TRUE)
- return EOL_CRLF;
- else if (auto_crlf == AUTO_CRLF_INPUT)
- return EOL_LF;
- else if (core_eol == EOL_UNSET)
- return EOL_NATIVE;
+ /* fall through */
+ return text_eol_is_crlf() ? EOL_CRLF : EOL_LF;
}
+ warning("Illegal crlf_action %d\n", (int)crlf_action);
return core_eol;
}
@@ -142,7 +208,7 @@ static void check_safe_crlf(const char *path, enum crlf_action crlf_action,
* CRLFs would be added by checkout:
* check if we have "naked" LFs
*/
- if (stats->lf != stats->crlf) {
+ if (stats->lonelf) {
if (checksafe == SAFE_CRLF_WARN)
warning("LF will be replaced by CRLF in %s.\nThe file will have its original line endings in your working directory.", path);
else /* i.e. SAFE_CRLF_FAIL */
@@ -173,7 +239,6 @@ static int crlf_to_git(const char *path, const char *src, size_t len,
char *dst;
if (crlf_action == CRLF_BINARY ||
- (crlf_action == CRLF_GUESS && auto_crlf == AUTO_CRLF_FALSE) ||
(src && !len))
return 0;
@@ -186,22 +251,11 @@ static int crlf_to_git(const char *path, const char *src, size_t len,
gather_stats(src, len, &stats);
- if (crlf_action == CRLF_AUTO || crlf_action == CRLF_GUESS) {
- /*
- * We're currently not going to even try to convert stuff
- * that has bare CR characters. Does anybody do that crazy
- * stuff?
- */
- if (stats.cr != stats.crlf)
- return 0;
-
- /*
- * And add some heuristics for binary vs text, of course...
- */
- if (is_binary(len, &stats))
+ if (crlf_action == CRLF_AUTO || crlf_action == CRLF_AUTO_INPUT || crlf_action == CRLF_AUTO_CRLF) {
+ if (convert_is_binary(len, &stats))
return 0;
- if (crlf_action == CRLF_GUESS) {
+ if (crlf_action == CRLF_AUTO_INPUT || crlf_action == CRLF_AUTO_CRLF) {
/*
* If the file in the index has any CR in it, do not convert.
* This is the new safer autocrlf handling.
@@ -213,8 +267,8 @@ static int crlf_to_git(const char *path, const char *src, size_t len,
check_safe_crlf(path, crlf_action, &stats, checksafe);
- /* Optimization: No CR? Nothing to convert, regardless. */
- if (!stats.cr)
+ /* Optimization: No CRLF? Nothing to convert, regardless. */
+ if (!stats.crlf)
return 0;
/*
@@ -228,7 +282,7 @@ static int crlf_to_git(const char *path, const char *src, size_t len,
if (strbuf_avail(buf) + buf->len < len)
strbuf_grow(buf, len - buf->len);
dst = buf->buf;
- if (crlf_action == CRLF_AUTO || crlf_action == CRLF_GUESS) {
+ if (crlf_action == CRLF_AUTO || crlf_action == CRLF_AUTO_INPUT || crlf_action == CRLF_AUTO_CRLF) {
/*
* If we guessed, we already know we rejected a file with
* lone CR, and we can strip a CR without looking at what
@@ -261,27 +315,19 @@ static int crlf_to_worktree(const char *path, const char *src, size_t len,
gather_stats(src, len, &stats);
- /* No LF? Nothing to convert, regardless. */
- if (!stats.lf)
+ /* No "naked" LF? Nothing to convert, regardless. */
+ if (!stats.lonelf)
return 0;
- /* Was it already in CRLF format? */
- if (stats.lf == stats.crlf)
- return 0;
-
- if (crlf_action == CRLF_AUTO || crlf_action == CRLF_GUESS) {
- if (crlf_action == CRLF_GUESS) {
+ if (crlf_action == CRLF_AUTO || crlf_action == CRLF_AUTO_INPUT || crlf_action == CRLF_AUTO_CRLF) {
+ if (crlf_action == CRLF_AUTO_INPUT || crlf_action == CRLF_AUTO_CRLF) {
/* If we have any CR or CRLF line endings, we do not touch it */
/* This is the new safer autocrlf-handling */
- if (stats.cr > 0 || stats.crlf > 0)
+ if (stats.lonecr || stats.crlf )
return 0;
}
- /* If we have any bare CR characters, we're not going to touch it */
- if (stats.cr != stats.crlf)
- return 0;
-
- if (is_binary(len, &stats))
+ if (convert_is_binary(len, &stats))
return 0;
}
@@ -289,7 +335,7 @@ static int crlf_to_worktree(const char *path, const char *src, size_t len,
if (src == buf->buf)
to_free = strbuf_detach(buf, NULL);
- strbuf_grow(buf, len + stats.lf - stats.crlf);
+ strbuf_grow(buf, len + stats.lonelf);
for (;;) {
const char *nl = memchr(src, '\n', len);
if (!nl)
@@ -395,7 +441,7 @@ static int apply_filter(const char *path, const char *src, size_t len, int fd,
struct async async;
struct filter_params params;
- if (!cmd)
+ if (!cmd || !*cmd)
return 0;
if (!dst)
@@ -657,7 +703,7 @@ static int ident_to_worktree(const char *path, const char *src, size_t len,
return 1;
}
-static enum crlf_action git_path_check_crlf(const char *path, struct git_attr_check *check)
+static enum crlf_action git_path_check_crlf(struct git_attr_check *check)
{
const char *value = check->value;
@@ -668,13 +714,13 @@ static enum crlf_action git_path_check_crlf(const char *path, struct git_attr_ch
else if (ATTR_UNSET(value))
;
else if (!strcmp(value, "input"))
- return CRLF_INPUT;
+ return CRLF_TEXT_INPUT;
else if (!strcmp(value, "auto"))
return CRLF_AUTO;
- return CRLF_GUESS;
+ return CRLF_UNDEFINED;
}
-static enum eol git_path_check_eol(const char *path, struct git_attr_check *check)
+static enum eol git_path_check_eol(struct git_attr_check *check)
{
const char *value = check->value;
@@ -687,8 +733,7 @@ static enum eol git_path_check_eol(const char *path, struct git_attr_check *chec
return EOL_UNSET;
}
-static struct convert_driver *git_path_check_convert(const char *path,
- struct git_attr_check *check)
+static struct convert_driver *git_path_check_convert(struct git_attr_check *check)
{
const char *value = check->value;
struct convert_driver *drv;
@@ -701,28 +746,17 @@ static struct convert_driver *git_path_check_convert(const char *path,
return NULL;
}
-static int git_path_check_ident(const char *path, struct git_attr_check *check)
+static int git_path_check_ident(struct git_attr_check *check)
{
const char *value = check->value;
return !!ATTR_TRUE(value);
}
-static enum crlf_action input_crlf_action(enum crlf_action text_attr, enum eol eol_attr)
-{
- if (text_attr == CRLF_BINARY)
- return CRLF_BINARY;
- if (eol_attr == EOL_LF)
- return CRLF_INPUT;
- if (eol_attr == EOL_CRLF)
- return CRLF_CRLF;
- return text_attr;
-}
-
struct conv_attrs {
struct convert_driver *drv;
- enum crlf_action crlf_action;
- enum eol eol_attr;
+ enum crlf_action attr_action; /* What attr says */
+ enum crlf_action crlf_action; /* When no attr is set, use core.autocrlf */
int ident;
};
@@ -744,18 +778,33 @@ static void convert_attrs(struct conv_attrs *ca, const char *path)
}
if (!git_check_attr(path, NUM_CONV_ATTRS, ccheck)) {
- ca->crlf_action = git_path_check_crlf(path, ccheck + 4);
- if (ca->crlf_action == CRLF_GUESS)
- ca->crlf_action = git_path_check_crlf(path, ccheck + 0);
- ca->ident = git_path_check_ident(path, ccheck + 1);
- ca->drv = git_path_check_convert(path, ccheck + 2);
- ca->eol_attr = git_path_check_eol(path, ccheck + 3);
+ ca->crlf_action = git_path_check_crlf(ccheck + 4);
+ if (ca->crlf_action == CRLF_UNDEFINED)
+ ca->crlf_action = git_path_check_crlf(ccheck + 0);
+ ca->attr_action = ca->crlf_action;
+ ca->ident = git_path_check_ident(ccheck + 1);
+ ca->drv = git_path_check_convert(ccheck + 2);
+ if (ca->crlf_action != CRLF_BINARY) {
+ enum eol eol_attr = git_path_check_eol(ccheck + 3);
+ if (eol_attr == EOL_LF)
+ ca->crlf_action = CRLF_TEXT_INPUT;
+ else if (eol_attr == EOL_CRLF)
+ ca->crlf_action = CRLF_TEXT_CRLF;
+ }
+ ca->attr_action = ca->crlf_action;
} else {
ca->drv = NULL;
- ca->crlf_action = CRLF_GUESS;
- ca->eol_attr = EOL_UNSET;
+ ca->crlf_action = CRLF_UNDEFINED;
ca->ident = 0;
}
+ if (ca->crlf_action == CRLF_TEXT)
+ ca->crlf_action = text_eol_is_crlf() ? CRLF_TEXT_CRLF : CRLF_TEXT_INPUT;
+ if (ca->crlf_action == CRLF_UNDEFINED && auto_crlf == AUTO_CRLF_FALSE)
+ ca->crlf_action = CRLF_BINARY;
+ if (ca->crlf_action == CRLF_UNDEFINED && auto_crlf == AUTO_CRLF_TRUE)
+ ca->crlf_action = CRLF_AUTO_CRLF;
+ if (ca->crlf_action == CRLF_UNDEFINED && auto_crlf == AUTO_CRLF_INPUT)
+ ca->crlf_action = CRLF_AUTO_INPUT;
}
int would_convert_to_git_filter_fd(const char *path)
@@ -777,6 +826,32 @@ int would_convert_to_git_filter_fd(const char *path)
return apply_filter(path, NULL, 0, -1, NULL, ca.drv->clean);
}
+const char *get_convert_attr_ascii(const char *path)
+{
+ struct conv_attrs ca;
+
+ convert_attrs(&ca, path);
+ switch (ca.attr_action) {
+ case CRLF_UNDEFINED:
+ return "";
+ case CRLF_BINARY:
+ return "-text";
+ case CRLF_TEXT:
+ return "text";
+ case CRLF_TEXT_INPUT:
+ return "text eol=lf";
+ case CRLF_TEXT_CRLF:
+ return "text eol=crlf";
+ case CRLF_AUTO:
+ return "text=auto";
+ case CRLF_AUTO_CRLF:
+ return "text=auto eol=crlf"; /* This is not supported yet */
+ case CRLF_AUTO_INPUT:
+ return "text=auto eol=lf"; /* This is not supported yet */
+ }
+ return "";
+}
+
int convert_to_git(const char *path, const char *src, size_t len,
struct strbuf *dst, enum safe_crlf checksafe)
{
@@ -799,7 +874,6 @@ int convert_to_git(const char *path, const char *src, size_t len,
src = dst->buf;
len = dst->len;
}
- ca.crlf_action = input_crlf_action(ca.crlf_action, ca.eol_attr);
ret |= crlf_to_git(path, src, len, dst, ca.crlf_action, checksafe);
if (ret && dst) {
src = dst->buf;
@@ -820,7 +894,6 @@ void convert_to_git_filter_fd(const char *path, int fd, struct strbuf *dst,
if (!apply_filter(path, NULL, 0, fd, dst, ca.drv->clean))
die("%s: clean filter '%s' failed", path, ca.drv->name);
- ca.crlf_action = input_crlf_action(ca.crlf_action, ca.eol_attr);
crlf_to_git(path, dst->buf, dst->len, dst, ca.crlf_action, checksafe);
ident_to_git(path, dst->buf, dst->len, dst, ca.ident);
}
@@ -850,7 +923,6 @@ static int convert_to_working_tree_internal(const char *path, const char *src,
* is a smudge filter. The filter might expect CRLFs.
*/
if (filter || !normalizing) {
- ca.crlf_action = input_crlf_action(ca.crlf_action, ca.eol_attr);
ret |= crlf_to_worktree(path, src, len, dst, ca.crlf_action);
if (ret) {
src = dst->buf;
@@ -1319,14 +1391,15 @@ struct stream_filter *get_stream_filter(const char *path, const unsigned char *s
if (ca.ident)
filter = ident_filter(sha1);
- crlf_action = input_crlf_action(ca.crlf_action, ca.eol_attr);
+ crlf_action = ca.crlf_action;
- if ((crlf_action == CRLF_BINARY) || (crlf_action == CRLF_INPUT) ||
- (crlf_action == CRLF_GUESS && auto_crlf == AUTO_CRLF_FALSE))
+ if ((crlf_action == CRLF_BINARY) ||
+ crlf_action == CRLF_AUTO_INPUT ||
+ (crlf_action == CRLF_TEXT_INPUT))
filter = cascade_filter(filter, &null_filter_singleton);
else if (output_eol(crlf_action) == EOL_CRLF &&
- !(crlf_action == CRLF_AUTO || crlf_action == CRLF_GUESS))
+ !(crlf_action == CRLF_AUTO || crlf_action == CRLF_AUTO_CRLF))
filter = cascade_filter(filter, lf_to_crlf_filter());
return filter;
diff --git a/convert.h b/convert.h
index d9d853cd3d..ccf436bfbf 100644
--- a/convert.h
+++ b/convert.h
@@ -32,6 +32,9 @@ enum eol {
};
extern enum eol core_eol;
+extern const char *get_cached_convert_stats_ascii(const char *path);
+extern const char *get_wt_convert_stats_ascii(const char *path);
+extern const char *get_convert_attr_ascii(const char *path);
/* returns 1 if *dst was used */
extern int convert_to_git(const char *path, const char *src, size_t len,
diff --git a/credential-cache--daemon.c b/credential-cache--daemon.c
index 9365f2ce5c..caef21e4fc 100644
--- a/credential-cache--daemon.c
+++ b/credential-cache--daemon.c
@@ -96,12 +96,12 @@ static int read_request(FILE *fh, struct credential *c,
static struct strbuf item = STRBUF_INIT;
const char *p;
- strbuf_getline(&item, fh, '\n');
+ strbuf_getline_lf(&item, fh);
if (!skip_prefix(item.buf, "action=", &p))
return error("client sent bogus action line: %s", item.buf);
strbuf_addstr(action, p);
- strbuf_getline(&item, fh, '\n');
+ strbuf_getline_lf(&item, fh);
if (!skip_prefix(item.buf, "timeout=", &p))
return error("client sent bogus timeout line: %s", item.buf);
*timeout = atoi(p);
@@ -215,7 +215,7 @@ static const char permissions_advice[] =
"users may be able to read your cached credentials. Consider running:\n"
"\n"
" chmod 0700 %s";
-static void check_socket_directory(const char *path)
+static void init_socket_directory(const char *path)
{
struct stat st;
char *path_copy = xstrdup(path);
@@ -224,20 +224,27 @@ static void check_socket_directory(const char *path)
if (!stat(dir, &st)) {
if (st.st_mode & 077)
die(permissions_advice, dir);
- free(path_copy);
- return;
+ } else {
+ /*
+ * We must be sure to create the directory with the correct mode,
+ * not just chmod it after the fact; otherwise, there is a race
+ * condition in which somebody can chdir to it, sleep, then try to open
+ * our protected socket.
+ */
+ if (safe_create_leading_directories_const(dir) < 0)
+ die_errno("unable to create directories for '%s'", dir);
+ if (mkdir(dir, 0700) < 0)
+ die_errno("unable to mkdir '%s'", dir);
}
- /*
- * We must be sure to create the directory with the correct mode,
- * not just chmod it after the fact; otherwise, there is a race
- * condition in which somebody can chdir to it, sleep, then try to open
- * our protected socket.
- */
- if (safe_create_leading_directories_const(dir) < 0)
- die_errno("unable to create directories for '%s'", dir);
- if (mkdir(dir, 0700) < 0)
- die_errno("unable to mkdir '%s'", dir);
+ if (chdir(dir))
+ /*
+ * We don't actually care what our cwd is; we chdir here just to
+ * be a friendly daemon and avoid tying up our original cwd.
+ * If this fails, it's OK to just continue without that benefit.
+ */
+ ;
+
free(path_copy);
}
@@ -264,7 +271,10 @@ int main(int argc, const char **argv)
if (!socket_path)
usage_with_options(usage, options);
- check_socket_directory(socket_path);
+ if (!is_absolute_path(socket_path))
+ die("socket directory must be an absolute path");
+
+ init_socket_directory(socket_path);
register_tempfile(&socket_file, socket_path);
if (ignore_sighup)
diff --git a/credential-store.c b/credential-store.c
index 54c4e04737..57141679ab 100644
--- a/credential-store.c
+++ b/credential-store.c
@@ -23,7 +23,7 @@ static int parse_credential_file(const char *fn,
return found_credential;
}
- while (strbuf_getline(&line, fh, '\n') != EOF) {
+ while (strbuf_getline_lf(&line, fh) != EOF) {
credential_from_url(&entry, line.buf);
if (entry.username && entry.password &&
credential_match(c, &entry)) {
diff --git a/credential.c b/credential.c
index b146ad8481..7d6501d190 100644
--- a/credential.c
+++ b/credential.c
@@ -142,7 +142,7 @@ int credential_read(struct credential *c, FILE *fp)
{
struct strbuf line = STRBUF_INIT;
- while (strbuf_getline(&line, fp, '\n') != EOF) {
+ while (strbuf_getline_lf(&line, fp) != EOF) {
char *key = line.buf;
char *value = strchr(key, '=');
diff --git a/daemon.c b/daemon.c
index 1e258ac8f9..8d45c336f5 100644
--- a/daemon.c
+++ b/daemon.c
@@ -424,7 +424,7 @@ static void copy_to_log(int fd)
return;
}
- while (strbuf_getline(&line, fp, '\n') != EOF) {
+ while (strbuf_getline_lf(&line, fp) != EOF) {
logerror("%s", line.buf);
strbuf_setlen(&line, 0);
}
diff --git a/dir.c b/dir.c
index 3087b7eb2e..69e0be6aa2 100644
--- a/dir.c
+++ b/dir.c
@@ -53,6 +53,8 @@ static enum path_treatment read_directory_recursive(struct dir_struct *dir,
int check_only, const struct path_simplify *simplify);
static int get_dtype(struct dirent *de, const char *path, int len);
+static struct trace_key trace_exclude = TRACE_KEY_INIT(EXCLUDE);
+
/* helper string functions with support for the ignore_case flag */
int strcmp_icase(const char *a, const char *b)
{
@@ -514,6 +516,7 @@ void add_exclude(const char *string, const char *base,
x->baselen = baselen;
x->flags = flags;
x->srcpos = srcpos;
+ string_list_init(&x->sticky_paths, 1);
ALLOC_GROW(el->excludes, el->nr + 1, el->alloc);
el->excludes[el->nr++] = x;
x->el = el;
@@ -554,8 +557,10 @@ void clear_exclude_list(struct exclude_list *el)
{
int i;
- for (i = 0; i < el->nr; i++)
+ for (i = 0; i < el->nr; i++) {
+ string_list_clear(&el->excludes[i]->sticky_paths, 0);
free(el->excludes[i]);
+ }
free(el->excludes);
free(el->filebuf);
@@ -870,7 +875,7 @@ int match_pathname(const char *pathname, int pathlen,
* then our prefix match is all we need; we
* do not need to call fnmatch at all.
*/
- if (!patternlen && !namelen)
+ if (!patternlen && (!namelen || *name == '/'))
return 1;
}
@@ -879,6 +884,113 @@ int match_pathname(const char *pathname, int pathlen,
WM_PATHNAME) == 0;
}
+static void add_sticky(struct exclude *exc, const char *pathname, int pathlen)
+{
+ struct strbuf sb = STRBUF_INIT;
+ int i;
+
+ for (i = exc->sticky_paths.nr - 1; i >= 0; i--) {
+ const char *sticky = exc->sticky_paths.items[i].string;
+ int len = strlen(sticky);
+
+ if (pathlen < len && sticky[pathlen] == '/' &&
+ !strncmp(pathname, sticky, pathlen))
+ return;
+ }
+
+ strbuf_add(&sb, pathname, pathlen);
+ string_list_append_nodup(&exc->sticky_paths, strbuf_detach(&sb, NULL));
+}
+
+static int match_sticky(struct exclude *exc, const char *pathname, int pathlen, int dtype)
+{
+ int i;
+
+ for (i = exc->sticky_paths.nr - 1; i >= 0; i--) {
+ const char *sticky = exc->sticky_paths.items[i].string;
+ int len = strlen(sticky);
+
+ if (pathlen == len && dtype == DT_DIR &&
+ !strncmp(pathname, sticky, len))
+ return 1;
+
+ if (pathlen > len && pathname[len] == '/' &&
+ !strncmp(pathname, sticky, len))
+ return 1;
+ }
+
+ return 0;
+}
+
+static inline int different_decisions(const struct exclude *a,
+ const struct exclude *b)
+{
+ return (a->flags & EXC_FLAG_NEGATIVE) != (b->flags & EXC_FLAG_NEGATIVE);
+}
+
+/*
+ * Return non-zero if pathname is a directory and an ancestor of the
+ * literal path in a pattern.
+ */
+static int match_directory_part(const char *pathname, int pathlen,
+ int *dtype, struct exclude *x)
+{
+ const char *base = x->base;
+ int baselen = x->baselen ? x->baselen - 1 : 0;
+ const char *pattern = x->pattern;
+ int prefix = x->nowildcardlen;
+ int patternlen = x->patternlen;
+
+ if (*dtype == DT_UNKNOWN)
+ *dtype = get_dtype(NULL, pathname, pathlen);
+ if (*dtype != DT_DIR)
+ return 0;
+
+ if (*pattern == '/') {
+ pattern++;
+ patternlen--;
+ prefix--;
+ }
+
+ if (baselen) {
+ if (((pathlen < baselen && base[pathlen] == '/') ||
+ pathlen == baselen) &&
+ !strncmp_icase(pathname, base, pathlen))
+ return 1;
+ pathname += baselen + 1;
+ pathlen -= baselen + 1;
+ }
+
+
+ if (prefix &&
+ (((pathlen < prefix && pattern[pathlen] == '/') ||
+ pathlen == prefix) &&
+ !strncmp_icase(pathname, pattern, pathlen)))
+ return 1;
+
+ return 0;
+}
+
+static struct exclude *should_descend(const char *pathname, int pathlen,
+ int *dtype, struct exclude_list *el,
+ struct exclude *exc)
+{
+ int i;
+
+ for (i = el->nr - 1; 0 <= i; i--) {
+ struct exclude *x = el->excludes[i];
+
+ if (x == exc)
+ break;
+
+ if (!(x->flags & EXC_FLAG_NODIR) &&
+ different_decisions(x, exc) &&
+ match_directory_part(pathname, pathlen, dtype, x))
+ return x;
+ }
+ return NULL;
+}
+
/*
* Scan the given exclude list in reverse to see whether pathname
* should be ignored. The first match (i.e. the last on the list), if
@@ -892,16 +1004,32 @@ static struct exclude *last_exclude_matching_from_list(const char *pathname,
struct exclude_list *el)
{
struct exclude *exc = NULL; /* undecided */
- int i;
+ int i, maybe_descend = 0;
if (!el->nr)
return NULL; /* undefined */
+ trace_printf_key(&trace_exclude, "exclude: from %s\n", el->src);
+
for (i = el->nr - 1; 0 <= i; i--) {
struct exclude *x = el->excludes[i];
const char *exclude = x->pattern;
int prefix = x->nowildcardlen;
+ if (!maybe_descend && i < el->nr - 1 &&
+ different_decisions(x, el->excludes[i+1]))
+ maybe_descend = 1;
+
+ if (x->sticky_paths.nr) {
+ if (*dtype == DT_UNKNOWN)
+ *dtype = get_dtype(NULL, pathname, pathlen);
+ if (match_sticky(x, pathname, pathlen, *dtype)) {
+ exc = x;
+ break;
+ }
+ continue;
+ }
+
if (x->flags & EXC_FLAG_MUSTBEDIR) {
if (*dtype == DT_UNKNOWN)
*dtype = get_dtype(NULL, pathname, pathlen);
@@ -928,6 +1056,45 @@ static struct exclude *last_exclude_matching_from_list(const char *pathname,
break;
}
}
+
+ if (!exc) {
+ trace_printf_key(&trace_exclude, "exclude: %.*s => n/a\n",
+ pathlen, pathname);
+ return NULL;
+ }
+
+ /*
+ * We have found a matching pattern "exc" that may exclude whole
+ * directory. We also found that there may be a pattern that matches
+ * something inside the directory and reincludes stuff.
+ *
+ * Go through the patterns again, find that pattern and double check.
+ * If it's true, return "undecided" and keep descending in. "exc" is
+ * marked sticky so that it continues to match inside the directory.
+ */
+ if (!(exc->flags & EXC_FLAG_NEGATIVE) && maybe_descend) {
+ struct exclude *x;
+
+ if (*dtype == DT_UNKNOWN)
+ *dtype = get_dtype(NULL, pathname, pathlen);
+
+ if (*dtype == DT_DIR &&
+ (x = should_descend(pathname, pathlen, dtype, el, exc))) {
+ add_sticky(exc, pathname, pathlen);
+ trace_printf_key(&trace_exclude,
+ "exclude: %.*s vs %s at line %d => %s,"
+ " forced open by %s at line %d => n/a\n",
+ pathlen, pathname, exc->pattern, exc->srcpos,
+ exc->flags & EXC_FLAG_NEGATIVE ? "no" : "yes",
+ x->pattern, x->srcpos);
+ return NULL;
+ }
+ }
+
+ trace_printf_key(&trace_exclude, "exclude: %.*s vs %s at line %d => %s%s\n",
+ pathlen, pathname, exc->pattern, exc->srcpos,
+ exc->flags & EXC_FLAG_NEGATIVE ? "no" : "yes",
+ exc->sticky_paths.nr ? " (stuck)" : "");
return exc;
}
@@ -1673,9 +1840,13 @@ static enum path_treatment read_directory_recursive(struct dir_struct *dir,
struct cached_dir cdir;
enum path_treatment state, subdir_state, dir_state = path_none;
struct strbuf path = STRBUF_INIT;
+ static int level = 0;
strbuf_add(&path, base, baselen);
+ trace_printf_key(&trace_exclude, "exclude: [%d] enter '%.*s'\n",
+ level++, baselen, base);
+
if (open_cached_dir(&cdir, dir, untracked, &path, check_only))
goto out;
@@ -1739,6 +1910,8 @@ static enum path_treatment read_directory_recursive(struct dir_struct *dir,
}
close_cached_dir(&cdir);
out:
+ trace_printf_key(&trace_exclude, "exclude: [%d] leave '%.*s'\n",
+ --level, baselen, base);
strbuf_release(&path);
return dir_state;
@@ -1829,31 +2002,67 @@ static const char *get_ident_string(void)
return sb.buf;
if (uname(&uts) < 0)
die_errno(_("failed to get kernel name and information"));
- strbuf_addf(&sb, "Location %s, system %s %s %s", get_git_work_tree(),
- uts.sysname, uts.release, uts.version);
+ strbuf_addf(&sb, "Location %s, system %s", get_git_work_tree(),
+ uts.sysname);
return sb.buf;
}
static int ident_in_untracked(const struct untracked_cache *uc)
{
- const char *end = uc->ident.buf + uc->ident.len;
- const char *p = uc->ident.buf;
+ /*
+ * Previous git versions may have saved many NUL separated
+ * strings in the "ident" field, but it is insane to manage
+ * many locations, so just take care of the first one.
+ */
- for (p = uc->ident.buf; p < end; p += strlen(p) + 1)
- if (!strcmp(p, get_ident_string()))
- return 1;
- return 0;
+ return !strcmp(uc->ident.buf, get_ident_string());
}
-void add_untracked_ident(struct untracked_cache *uc)
+static void set_untracked_ident(struct untracked_cache *uc)
{
- if (ident_in_untracked(uc))
- return;
+ strbuf_reset(&uc->ident);
strbuf_addstr(&uc->ident, get_ident_string());
- /* this strbuf contains a list of strings, save NUL too */
+
+ /*
+ * This strbuf used to contain a list of NUL separated
+ * strings, so save NUL too for backward compatibility.
+ */
strbuf_addch(&uc->ident, 0);
}
+static void new_untracked_cache(struct index_state *istate)
+{
+ struct untracked_cache *uc = xcalloc(1, sizeof(*uc));
+ strbuf_init(&uc->ident, 100);
+ uc->exclude_per_dir = ".gitignore";
+ /* should be the same flags used by git-status */
+ uc->dir_flags = DIR_SHOW_OTHER_DIRECTORIES | DIR_HIDE_EMPTY_DIRECTORIES;
+ set_untracked_ident(uc);
+ istate->untracked = uc;
+ istate->cache_changed |= UNTRACKED_CHANGED;
+}
+
+void add_untracked_cache(struct index_state *istate)
+{
+ if (!istate->untracked) {
+ new_untracked_cache(istate);
+ } else {
+ if (!ident_in_untracked(istate->untracked)) {
+ free_untracked_cache(istate->untracked);
+ new_untracked_cache(istate);
+ }
+ }
+}
+
+void remove_untracked_cache(struct index_state *istate)
+{
+ if (istate->untracked) {
+ free_untracked_cache(istate->untracked);
+ istate->untracked = NULL;
+ istate->cache_changed |= UNTRACKED_CHANGED;
+ }
+}
+
static struct untracked_cache_dir *validate_untracked_cache(struct dir_struct *dir,
int base_len,
const struct pathspec *pathspec)
@@ -1911,7 +2120,7 @@ static struct untracked_cache_dir *validate_untracked_cache(struct dir_struct *d
return NULL;
if (!ident_in_untracked(dir->untracked)) {
- warning(_("Untracked cache is disabled on this system."));
+ warning(_("Untracked cache is disabled on this system or location."));
return NULL;
}
@@ -1939,6 +2148,25 @@ static struct untracked_cache_dir *validate_untracked_cache(struct dir_struct *d
return root;
}
+static void clear_sticky(struct dir_struct *dir)
+{
+ struct exclude_list_group *g;
+ struct exclude_list *el;
+ struct exclude *x;
+ int i, j, k;
+
+ for (i = EXC_CMDL; i <= EXC_FILE; i++) {
+ g = &dir->exclude_list_group[i];
+ for (j = g->nr - 1; j >= 0; j--) {
+ el = &g->el[j];
+ for (k = el->nr - 1; 0 <= k; k--) {
+ x = el->excludes[k];
+ string_list_clear(&x->sticky_paths, 0);
+ }
+ }
+ }
+}
+
int read_directory(struct dir_struct *dir, const char *path, int len, const struct pathspec *pathspec)
{
struct path_simplify *simplify;
@@ -1960,6 +2188,12 @@ int read_directory(struct dir_struct *dir, const char *path, int len, const stru
return dir->nr;
/*
+ * Stay on the safe side. if read_directory() has run once on
+ * "dir", some sticky flag may have been left. Clear them all.
+ */
+ clear_sticky(dir);
+
+ /*
* exclude patterns are treated like positive ones in
* create_simplify. Usually exclude patterns should be a
* subset of positive ones, which has no impacts on
diff --git a/dir.h b/dir.h
index 7b5855dd80..3ec3fb0dca 100644
--- a/dir.h
+++ b/dir.h
@@ -4,6 +4,7 @@
/* See Documentation/technical/api-directory-listing.txt */
#include "strbuf.h"
+#include "string-list.h"
struct dir_entry {
unsigned int len;
@@ -34,6 +35,8 @@ struct exclude {
* and from -1 decrementing for patterns from CLI args.
*/
int srcpos;
+
+ struct string_list sticky_paths;
};
/*
@@ -307,5 +310,6 @@ void untracked_cache_add_to_index(struct index_state *, const char *);
void free_untracked_cache(struct untracked_cache *);
struct untracked_cache *read_untracked_extension(const void *data, unsigned long sz);
void write_untracked_extension(struct strbuf *out, struct untracked_cache *untracked);
-void add_untracked_ident(struct untracked_cache *);
+void add_untracked_cache(struct index_state *istate);
+void remove_untracked_cache(struct index_state *istate);
#endif
diff --git a/environment.c b/environment.c
index 1cc4aab4ea..6dec9d0403 100644
--- a/environment.c
+++ b/environment.c
@@ -87,6 +87,13 @@ int auto_comment_line_char;
/* Parallel index stat data preload? */
int core_preload_index = 1;
+/*
+ * This is a hack for test programs like test-dump-untracked-cache to
+ * ensure that they do not modify the untracked cache when reading it.
+ * Do not use it otherwise!
+ */
+int ignore_untracked_cache_config;
+
/* This is set by setup_git_dir_gently() and/or git_default_config() */
char *git_work_tree_cfg;
static char *work_tree;
diff --git a/fast-import.c b/fast-import.c
index 75f77480a2..9fc7093406 100644
--- a/fast-import.c
+++ b/fast-import.c
@@ -1886,7 +1886,7 @@ static int read_next_command(void)
struct recent_command *rc;
strbuf_detach(&command_buf, NULL);
- stdin_eof = strbuf_getline(&command_buf, stdin, '\n');
+ stdin_eof = strbuf_getline_lf(&command_buf, stdin);
if (stdin_eof)
return EOF;
@@ -1958,7 +1958,7 @@ static int parse_data(struct strbuf *sb, uintmax_t limit, uintmax_t *len_res)
strbuf_detach(&command_buf, NULL);
for (;;) {
- if (strbuf_getline(&command_buf, stdin, '\n') == EOF)
+ if (strbuf_getline_lf(&command_buf, stdin) == EOF)
die("EOF in data (terminator '%s' not found)", term);
if (term_len == command_buf.len
&& !strcmp(term, command_buf.buf))
diff --git a/git-gui/po/glossary/txt-to-pot.sh b/git-gui/po/glossary/txt-to-pot.sh
index 49bf7c5365..8249915d3c 100755
--- a/git-gui/po/glossary/txt-to-pot.sh
+++ b/git-gui/po/glossary/txt-to-pot.sh
@@ -11,7 +11,7 @@
if [ $# -eq 0 ]
then
cat <<!
-Usage: `basename $0` git-gui-glossary.txt > git-gui-glossary.pot
+Usage: $(basename $0) git-gui-glossary.txt > git-gui-glossary.pot
!
exit 1;
fi
@@ -33,7 +33,7 @@ cat <<!
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: `date +'%Y-%m-%d %H:%M%z'`\n"
+"POT-Creation-Date: $(date +'%Y-%m-%d %H:%M%z')\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"
diff --git a/git-p4.py b/git-p4.py
index c33dece5d2..825b9f32d5 100755
--- a/git-p4.py
+++ b/git-p4.py
@@ -253,8 +253,8 @@ def p4_add(f):
def p4_delete(f):
p4_system(["delete", wildcard_encode(f)])
-def p4_edit(f):
- p4_system(["edit", wildcard_encode(f)])
+def p4_edit(f, *options):
+ p4_system(["edit"] + list(options) + [wildcard_encode(f)])
def p4_revert(f):
p4_system(["revert", wildcard_encode(f)])
@@ -1554,6 +1554,7 @@ class P4Submit(Command, P4UserMap):
diff = read_pipe_lines("git diff-tree -r %s \"%s^\" \"%s\"" % (self.diffOpts, id, id))
filesToAdd = set()
+ filesToChangeType = set()
filesToDelete = set()
editedFiles = set()
pureRenameCopy = set()
@@ -1614,6 +1615,8 @@ class P4Submit(Command, P4UserMap):
os.unlink(dest)
filesToDelete.add(src)
editedFiles.add(dest)
+ elif modifier == "T":
+ filesToChangeType.add(path)
else:
die("unknown modifier %s for %s" % (modifier, path))
@@ -1673,6 +1676,8 @@ class P4Submit(Command, P4UserMap):
#
system(applyPatchCmd)
+ for f in filesToChangeType:
+ p4_edit(f, "-t", "auto")
for f in filesToAdd:
p4_add(f)
for f in filesToDelete:
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh
index c0cfe88a3d..4cde685b43 100644
--- a/git-rebase--interactive.sh
+++ b/git-rebase--interactive.sh
@@ -1233,7 +1233,8 @@ then
git rev-list $revisions |
while read rev
do
- if test -f "$rewritten"/$rev && test "$(sane_grep "$rev" "$state_dir"/not-cherry-picks)" = ""
+ if test -f "$rewritten"/$rev &&
+ ! sane_grep "$rev" "$state_dir"/not-cherry-picks >/dev/null
then
# Use -f2 because if rev-list is telling us this commit is
# not worthwhile, we don't want to track its multiple heads,
diff --git a/git-sh-setup.sh b/git-sh-setup.sh
index 4691fbcb64..c48139a494 100644
--- a/git-sh-setup.sh
+++ b/git-sh-setup.sh
@@ -168,11 +168,11 @@ git_pager() {
}
sane_grep () {
- GREP_OPTIONS= LC_ALL=C grep "$@"
+ GREP_OPTIONS= LC_ALL=C grep @@SANE_TEXT_GREP@@ "$@"
}
sane_egrep () {
- GREP_OPTIONS= LC_ALL=C egrep "$@"
+ GREP_OPTIONS= LC_ALL=C egrep @@SANE_TEXT_GREP@@ "$@"
}
is_bare_repository () {
diff --git a/git-submodule.sh b/git-submodule.sh
index 9bc5c5f94d..43c68deee9 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -591,6 +591,24 @@ cmd_deinit()
done
}
+is_tip_reachable () (
+ clear_local_git_env
+ cd "$1" &&
+ rev=$(git rev-list -n 1 "$2" --not --all 2>/dev/null) &&
+ test -z "$rev"
+)
+
+fetch_in_submodule () (
+ clear_local_git_env
+ cd "$1" &&
+ case "$2" in
+ '')
+ git fetch ;;
+ *)
+ git fetch $(get_default_remote) "$2" ;;
+ esac
+)
+
#
# Update each submodule path to correct revision, using clone and checkout as needed
#
@@ -745,10 +763,15 @@ Maybe you want to use 'update --init'?")"
then
# Run fetch only if $sha1 isn't present or it
# is not reachable from a ref.
- (clear_local_git_env; cd "$sm_path" &&
- ( (rev=$(git rev-list -n 1 $sha1 --not --all 2>/dev/null) &&
- test -z "$rev") || git-fetch)) ||
+ is_tip_reachable "$sm_path" "$sha1" ||
+ fetch_in_submodule "$sm_path" ||
die "$(eval_gettext "Unable to fetch in submodule path '\$displaypath'")"
+
+ # Now we tried the usual fetch, but $sha1 may
+ # not be reachable from any of the refs
+ is_tip_reachable "$sm_path" "$sha1" ||
+ fetch_in_submodule "$sm_path" "$sha1" ||
+ die "$(eval_gettext "Fetched in submodule path '\$displaypath', but it did not contain $sha1. Direct fetching of that commit failed.")"
fi
# Is this something we just cloned?
diff --git a/git.c b/git.c
index c19d6bf47b..6cc0c077f9 100644
--- a/git.c
+++ b/git.c
@@ -25,14 +25,14 @@ static const char *env_names[] = {
GIT_PREFIX_ENVIRONMENT
};
static char *orig_env[4];
-static int saved_environment;
+static int save_restore_env_balance;
-static void save_env(void)
+static void save_env_before_alias(void)
{
int i;
- if (saved_environment)
- return;
- saved_environment = 1;
+
+ assert(save_restore_env_balance == 0);
+ save_restore_env_balance = 1;
orig_cwd = xgetcwd();
for (i = 0; i < ARRAY_SIZE(env_names); i++) {
orig_env[i] = getenv(env_names[i]);
@@ -41,17 +41,25 @@ static void save_env(void)
}
}
-static void restore_env(void)
+static void restore_env(int external_alias)
{
int i;
- if (orig_cwd && chdir(orig_cwd))
+
+ assert(save_restore_env_balance == 1);
+ save_restore_env_balance = 0;
+ if (!external_alias && orig_cwd && chdir(orig_cwd))
die_errno("could not move to %s", orig_cwd);
free(orig_cwd);
for (i = 0; i < ARRAY_SIZE(env_names); i++) {
- if (orig_env[i])
+ if (external_alias &&
+ !strcmp(env_names[i], GIT_PREFIX_ENVIRONMENT))
+ continue;
+ if (orig_env[i]) {
setenv(env_names[i], orig_env[i], 1);
- else
+ free(orig_env[i]);
+ } else {
unsetenv(env_names[i]);
+ }
}
}
@@ -226,14 +234,14 @@ static int handle_options(const char ***argv, int *argc, int *envchanged)
static int handle_alias(int *argcp, const char ***argv)
{
int envchanged = 0, ret = 0, saved_errno = errno;
- const char *subdir;
int count, option_count;
const char **new_argv;
const char *alias_command;
char *alias_string;
int unused_nongit;
- subdir = setup_git_directory_gently(&unused_nongit);
+ save_env_before_alias();
+ setup_git_directory_gently(&unused_nongit);
alias_command = (*argv)[0];
alias_string = alias_lookup(alias_command);
@@ -242,6 +250,7 @@ static int handle_alias(int *argcp, const char ***argv)
struct child_process child = CHILD_PROCESS_INIT;
commit_pager_choice();
+ restore_env(1);
child.use_shell = 1;
argv_array_push(&child.args, alias_string + 1);
@@ -287,8 +296,7 @@ static int handle_alias(int *argcp, const char ***argv)
ret = 1;
}
- if (subdir && chdir(subdir))
- die_errno("Cannot change to '%s'", subdir);
+ restore_env(0);
errno = saved_errno;
@@ -303,7 +311,6 @@ static int handle_alias(int *argcp, const char ***argv)
* RUN_SETUP for reading from the configuration file.
*/
#define NEED_WORK_TREE (1<<3)
-#define NO_SETUP (1<<4)
struct cmd_struct {
const char *cmd;
@@ -385,7 +392,7 @@ static struct cmd_struct commands[] = {
{ "cherry", cmd_cherry, RUN_SETUP },
{ "cherry-pick", cmd_cherry_pick, RUN_SETUP | NEED_WORK_TREE },
{ "clean", cmd_clean, RUN_SETUP | NEED_WORK_TREE },
- { "clone", cmd_clone, NO_SETUP },
+ { "clone", cmd_clone },
{ "column", cmd_column, RUN_SETUP_GENTLY },
{ "commit", cmd_commit, RUN_SETUP | NEED_WORK_TREE },
{ "commit-tree", cmd_commit_tree, RUN_SETUP },
@@ -411,8 +418,8 @@ static struct cmd_struct commands[] = {
{ "hash-object", cmd_hash_object },
{ "help", cmd_help },
{ "index-pack", cmd_index_pack, RUN_SETUP_GENTLY },
- { "init", cmd_init_db, NO_SETUP },
- { "init-db", cmd_init_db, NO_SETUP },
+ { "init", cmd_init_db },
+ { "init-db", cmd_init_db },
{ "interpret-trailers", cmd_interpret_trailers, RUN_SETUP_GENTLY },
{ "log", cmd_log, RUN_SETUP },
{ "ls-files", cmd_ls_files, RUN_SETUP },
@@ -529,12 +536,8 @@ static void handle_builtin(int argc, const char **argv)
}
builtin = get_builtin(cmd);
- if (builtin) {
- if (saved_environment && (builtin->option & NO_SETUP))
- restore_env();
- else
- exit(run_builtin(builtin, argc, argv));
- }
+ if (builtin)
+ exit(run_builtin(builtin, argc, argv));
}
static void execv_dashed_external(const char **argv)
@@ -578,8 +581,17 @@ static int run_argv(int *argcp, const char ***argv)
int done_alias = 0;
while (1) {
- /* See if it's a builtin */
- handle_builtin(*argcp, *argv);
+ /*
+ * If we tried alias and futzed with our environment,
+ * it no longer is safe to invoke builtins directly in
+ * general. We have to spawn them as dashed externals.
+ *
+ * NEEDSWORK: if we can figure out cases
+ * where it is safe to do, we can avoid spawning a new
+ * process.
+ */
+ if (!done_alias)
+ handle_builtin(*argcp, *argv);
/* .. then try the external ones */
execv_dashed_external(*argv);
@@ -590,7 +602,6 @@ static int run_argv(int *argcp, const char ***argv)
*/
if (done_alias)
break;
- save_env();
if (!handle_alias(argcp, argv))
break;
done_alias = 1;
diff --git a/http.c b/http.c
index 0da9e66398..69da4454d8 100644
--- a/http.c
+++ b/http.c
@@ -11,6 +11,11 @@
#include "gettext.h"
#include "transport.h"
+#if LIBCURL_VERSION_NUM >= 0x070a08
+long int git_curl_ipresolve = CURL_IPRESOLVE_WHATEVER;
+#else
+long int git_curl_ipresolve;
+#endif
int active_requests;
int http_is_verbose;
size_t http_post_buffer = 16 * LARGE_PACKET_MAX;
@@ -57,16 +62,41 @@ static const char *ssl_key;
#if LIBCURL_VERSION_NUM >= 0x070908
static const char *ssl_capath;
#endif
+#if LIBCURL_VERSION_NUM >= 0x072c00
+static const char *ssl_pinnedkey;
+#endif
static const char *ssl_cainfo;
static long curl_low_speed_limit = -1;
static long curl_low_speed_time = -1;
static int curl_ftp_no_epsv;
static const char *curl_http_proxy;
+static const char *curl_no_proxy;
+static const char *http_proxy_authmethod;
+static struct {
+ const char *name;
+ long curlauth_param;
+} proxy_authmethods[] = {
+ { "basic", CURLAUTH_BASIC },
+ { "digest", CURLAUTH_DIGEST },
+ { "negotiate", CURLAUTH_GSSNEGOTIATE },
+ { "ntlm", CURLAUTH_NTLM },
+#ifdef LIBCURL_CAN_HANDLE_AUTH_ANY
+ { "anyauth", CURLAUTH_ANY },
+#endif
+ /*
+ * CURLAUTH_DIGEST_IE has no corresponding command-line option in
+ * curl(1) and is not included in CURLAUTH_ANY, so we leave it out
+ * here, too
+ */
+};
+static struct credential proxy_auth = CREDENTIAL_INIT;
+static const char *curl_proxyuserpwd;
static const char *curl_cookie_file;
static int curl_save_cookies;
struct credential http_auth = CREDENTIAL_INIT;
static int http_proactive_auth;
static const char *user_agent;
+static int curl_empty_auth;
#if LIBCURL_VERSION_NUM >= 0x071700
/* Use CURLOPT_KEYPASSWD as is */
@@ -159,6 +189,9 @@ static void finish_active_slot(struct active_request_slot *slot)
#else
slot->results->auth_avail = 0;
#endif
+
+ curl_easy_getinfo(slot->curl, CURLINFO_HTTP_CONNECTCODE,
+ &slot->results->http_connectcode);
}
/* Run callback if appropriate */
@@ -256,6 +289,9 @@ static int http_options(const char *var, const char *value, void *cb)
if (!strcmp("http.proxy", var))
return git_config_string(&curl_http_proxy, var, value);
+ if (!strcmp("http.proxyauthmethod", var))
+ return git_config_string(&http_proxy_authmethod, var, value);
+
if (!strcmp("http.cookiefile", var))
return git_config_string(&curl_cookie_file, var, value);
if (!strcmp("http.savecookies", var)) {
@@ -273,14 +309,31 @@ static int http_options(const char *var, const char *value, void *cb)
if (!strcmp("http.useragent", var))
return git_config_string(&user_agent, var, value);
+ if (!strcmp("http.emptyauth", var)) {
+ curl_empty_auth = git_config_bool(var, value);
+ return 0;
+ }
+
+ if (!strcmp("http.pinnedpubkey", var)) {
+#if LIBCURL_VERSION_NUM >= 0x072c00
+ return git_config_pathname(&ssl_pinnedkey, var, value);
+#else
+ warning(_("Public key pinning not supported with cURL < 7.44.0"));
+ return 0;
+#endif
+ }
+
/* Fall back on the default ones */
return git_default_config(var, value, cb);
}
static void init_curl_http_auth(CURL *result)
{
- if (!http_auth.username)
+ if (!http_auth.username) {
+ if (curl_empty_auth)
+ curl_easy_setopt(result, CURLOPT_USERPWD, ":");
return;
+ }
credential_fill(&http_auth);
@@ -304,6 +357,64 @@ static void init_curl_http_auth(CURL *result)
#endif
}
+/* *var must be free-able */
+static void var_override(const char **var, char *value)
+{
+ if (value) {
+ free((void *)*var);
+ *var = xstrdup(value);
+ }
+}
+
+static void set_proxyauth_name_password(CURL *result)
+{
+#if LIBCURL_VERSION_NUM >= 0x071301
+ curl_easy_setopt(result, CURLOPT_PROXYUSERNAME,
+ proxy_auth.username);
+ curl_easy_setopt(result, CURLOPT_PROXYPASSWORD,
+ proxy_auth.password);
+#else
+ struct strbuf s = STRBUF_INIT;
+
+ strbuf_addstr_urlencode(&s, proxy_auth.username, 1);
+ strbuf_addch(&s, ':');
+ strbuf_addstr_urlencode(&s, proxy_auth.password, 1);
+ curl_proxyuserpwd = strbuf_detach(&s, NULL);
+ curl_easy_setopt(result, CURLOPT_PROXYUSERPWD, curl_proxyuserpwd);
+#endif
+}
+
+static void init_curl_proxy_auth(CURL *result)
+{
+ if (proxy_auth.username) {
+ if (!proxy_auth.password)
+ credential_fill(&proxy_auth);
+ set_proxyauth_name_password(result);
+ }
+
+ var_override(&http_proxy_authmethod, getenv("GIT_HTTP_PROXY_AUTHMETHOD"));
+
+#if LIBCURL_VERSION_NUM >= 0x070a07 /* CURLOPT_PROXYAUTH and CURLAUTH_ANY */
+ if (http_proxy_authmethod) {
+ int i;
+ for (i = 0; i < ARRAY_SIZE(proxy_authmethods); i++) {
+ if (!strcmp(http_proxy_authmethod, proxy_authmethods[i].name)) {
+ curl_easy_setopt(result, CURLOPT_PROXYAUTH,
+ proxy_authmethods[i].curlauth_param);
+ break;
+ }
+ }
+ if (i == ARRAY_SIZE(proxy_authmethods)) {
+ warning("unsupported proxy authentication method %s: using anyauth",
+ http_proxy_authmethod);
+ curl_easy_setopt(result, CURLOPT_PROXYAUTH, CURLAUTH_ANY);
+ }
+ }
+ else
+ curl_easy_setopt(result, CURLOPT_PROXYAUTH, CURLAUTH_ANY);
+#endif
+}
+
static int has_cert_password(void)
{
if (ssl_cert == NULL || ssl_cert_password_required != 1)
@@ -415,6 +526,10 @@ static CURL *get_curl_handle(void)
if (ssl_capath != NULL)
curl_easy_setopt(result, CURLOPT_CAPATH, ssl_capath);
#endif
+#if LIBCURL_VERSION_NUM >= 0x072c00
+ if (ssl_pinnedkey != NULL)
+ curl_easy_setopt(result, CURLOPT_PINNEDPUBLICKEY, ssl_pinnedkey);
+#endif
if (ssl_cainfo != NULL)
curl_easy_setopt(result, CURLOPT_CAINFO, ssl_cainfo);
@@ -462,6 +577,31 @@ static CURL *get_curl_handle(void)
curl_easy_setopt(result, CURLOPT_USE_SSL, CURLUSESSL_TRY);
#endif
+ /*
+ * CURL also examines these variables as a fallback; but we need to query
+ * them here in order to decide whether to prompt for missing password (cf.
+ * init_curl_proxy_auth()).
+ *
+ * Unlike many other common environment variables, these are historically
+ * lowercase only. It appears that CURL did not know this and implemented
+ * only uppercase variants, which was later corrected to take both - with
+ * the exception of http_proxy, which is lowercase only also in CURL. As
+ * the lowercase versions are the historical quasi-standard, they take
+ * precedence here, as in CURL.
+ */
+ if (!curl_http_proxy) {
+ if (!strcmp(http_auth.protocol, "https")) {
+ var_override(&curl_http_proxy, getenv("HTTPS_PROXY"));
+ var_override(&curl_http_proxy, getenv("https_proxy"));
+ } else {
+ var_override(&curl_http_proxy, getenv("http_proxy"));
+ }
+ if (!curl_http_proxy) {
+ var_override(&curl_http_proxy, getenv("ALL_PROXY"));
+ var_override(&curl_http_proxy, getenv("all_proxy"));
+ }
+ }
+
if (curl_http_proxy) {
curl_easy_setopt(result, CURLOPT_PROXY, curl_http_proxy);
#if LIBCURL_VERSION_NUM >= 0x071800
@@ -475,10 +615,23 @@ static CURL *get_curl_handle(void)
curl_easy_setopt(result,
CURLOPT_PROXYTYPE, CURLPROXY_SOCKS4);
#endif
- }
-#if LIBCURL_VERSION_NUM >= 0x070a07
- curl_easy_setopt(result, CURLOPT_PROXYAUTH, CURLAUTH_ANY);
+ if (strstr(curl_http_proxy, "://"))
+ credential_from_url(&proxy_auth, curl_http_proxy);
+ else {
+ struct strbuf url = STRBUF_INIT;
+ strbuf_addf(&url, "http://%s", curl_http_proxy);
+ credential_from_url(&proxy_auth, url.buf);
+ strbuf_release(&url);
+ }
+
+ curl_easy_setopt(result, CURLOPT_PROXY, proxy_auth.host);
+#if LIBCURL_VERSION_NUM >= 0x071304
+ var_override(&curl_no_proxy, getenv("NO_PROXY"));
+ var_override(&curl_no_proxy, getenv("no_proxy"));
+ curl_easy_setopt(result, CURLOPT_NOPROXY, curl_no_proxy);
#endif
+ }
+ init_curl_proxy_auth(result);
set_curl_keepalive(result);
@@ -519,6 +672,9 @@ void http_init(struct remote *remote, const char *url, int proactive_auth)
if (remote && remote->http_proxy)
curl_http_proxy = xstrdup(remote->http_proxy);
+ if (remote)
+ var_override(&http_proxy_authmethod, remote->http_proxy_authmethod);
+
pragma_header = curl_slist_append(pragma_header, "Pragma: no-cache");
no_pragma_header = curl_slist_append(no_pragma_header, "Pragma:");
@@ -617,6 +773,18 @@ void http_cleanup(void)
curl_http_proxy = NULL;
}
+ if (proxy_auth.password) {
+ memset(proxy_auth.password, 0, strlen(proxy_auth.password));
+ free(proxy_auth.password);
+ proxy_auth.password = NULL;
+ }
+
+ free((void *)curl_proxyuserpwd);
+ curl_proxyuserpwd = NULL;
+
+ free((void *)http_proxy_authmethod);
+ http_proxy_authmethod = NULL;
+
if (cert_auth.password != NULL) {
memset(cert_auth.password, 0, strlen(cert_auth.password));
free(cert_auth.password);
@@ -692,10 +860,14 @@ struct active_request_slot *get_active_slot(void)
curl_easy_setopt(slot->curl, CURLOPT_HTTPGET, 1);
curl_easy_setopt(slot->curl, CURLOPT_FAILONERROR, 1);
curl_easy_setopt(slot->curl, CURLOPT_RANGE, NULL);
+
+#if LIBCURL_VERSION_NUM >= 0x070a08
+ curl_easy_setopt(slot->curl, CURLOPT_IPRESOLVE, git_curl_ipresolve);
+#endif
#ifdef LIBCURL_CAN_HANDLE_AUTH_ANY
curl_easy_setopt(slot->curl, CURLOPT_HTTPAUTH, http_auth_methods);
#endif
- if (http_auth.password)
+ if (http_auth.password || curl_empty_auth)
init_curl_http_auth(slot->curl);
return slot;
@@ -946,6 +1118,8 @@ static int handle_curl_result(struct slot_results *results)
if (results->curl_result == CURLE_OK) {
credential_approve(&http_auth);
+ if (proxy_auth.password)
+ credential_approve(&proxy_auth);
return HTTP_OK;
} else if (missing_target(results))
return HTTP_MISSING_TARGET;
@@ -960,6 +1134,8 @@ static int handle_curl_result(struct slot_results *results)
return HTTP_REAUTH;
}
} else {
+ if (results->http_connectcode == 407)
+ credential_reject(&proxy_auth);
#if LIBCURL_VERSION_NUM >= 0x070c00
if (!curl_errorstr[0])
strlcpy(curl_errorstr,
diff --git a/http.h b/http.h
index 4f97b60b5c..4ef4bbda7d 100644
--- a/http.h
+++ b/http.h
@@ -54,6 +54,7 @@ struct slot_results {
CURLcode curl_result;
long http_code;
long auth_avail;
+ long http_connectcode;
};
struct active_request_slot {
@@ -106,6 +107,7 @@ extern void http_init(struct remote *remote, const char *url,
int proactive_auth);
extern void http_cleanup(void);
+extern long int git_curl_ipresolve;
extern int active_requests;
extern int http_is_verbose;
extern size_t http_post_buffer;
diff --git a/ident.c b/ident.c
index daf7e1ea83..6e125821f0 100644
--- a/ident.c
+++ b/ident.c
@@ -13,11 +13,14 @@ static struct strbuf git_default_date = STRBUF_INIT;
static int default_email_is_bogus;
static int default_name_is_bogus;
+static int ident_use_config_only;
+
#define IDENT_NAME_GIVEN 01
#define IDENT_MAIL_GIVEN 02
#define IDENT_ALL_GIVEN (IDENT_NAME_GIVEN|IDENT_MAIL_GIVEN)
static int committer_ident_explicitly_given;
static int author_ident_explicitly_given;
+static int ident_config_given;
#ifdef NO_GECOS_IN_PWENT
#define get_gecos(ignored) "&"
@@ -76,7 +79,7 @@ static int add_mailname_host(struct strbuf *buf)
strerror(errno));
return -1;
}
- if (strbuf_getline(&mailnamebuf, mailname, '\n') == EOF) {
+ if (strbuf_getline(&mailnamebuf, mailname) == EOF) {
if (ferror(mailname))
warning("cannot read /etc/mailname: %s",
strerror(errno));
@@ -345,32 +348,40 @@ const char *fmt_ident(const char *name, const char *email,
int want_date = !(flag & IDENT_NO_DATE);
int want_name = !(flag & IDENT_NO_NAME);
- if (want_name && !name)
- name = ident_default_name();
- if (!email)
- email = ident_default_email();
-
- if (want_name && !*name) {
- struct passwd *pw;
-
- if (strict) {
- if (name == git_default_name.buf)
+ if (want_name) {
+ int using_default = 0;
+ if (!name) {
+ name = ident_default_name();
+ using_default = 1;
+ if (strict && default_name_is_bogus) {
fputs(env_hint, stderr);
- die("empty ident name (for <%s>) not allowed", email);
+ die("unable to auto-detect name (got '%s')", name);
+ }
+ if (strict && ident_use_config_only
+ && !(ident_config_given & IDENT_NAME_GIVEN))
+ die("user.useConfigOnly set but no name given");
+ }
+ if (!*name) {
+ struct passwd *pw;
+ if (strict) {
+ if (using_default)
+ fputs(env_hint, stderr);
+ die("empty ident name (for <%s>) not allowed", email);
+ }
+ pw = xgetpwuid_self(NULL);
+ name = pw->pw_name;
}
- pw = xgetpwuid_self(NULL);
- name = pw->pw_name;
- }
-
- if (want_name && strict &&
- name == git_default_name.buf && default_name_is_bogus) {
- fputs(env_hint, stderr);
- die("unable to auto-detect name (got '%s')", name);
}
- if (strict && email == git_default_email.buf && default_email_is_bogus) {
- fputs(env_hint, stderr);
- die("unable to auto-detect email address (got '%s')", email);
+ if (!email) {
+ email = ident_default_email();
+ if (strict && default_email_is_bogus) {
+ fputs(env_hint, stderr);
+ die("unable to auto-detect email address (got '%s')", email);
+ }
+ if (strict && ident_use_config_only
+ && !(ident_config_given & IDENT_MAIL_GIVEN))
+ die("user.useConfigOnly set but no mail given");
}
strbuf_reset(&ident);
@@ -444,6 +455,11 @@ int author_ident_sufficiently_given(void)
int git_ident_config(const char *var, const char *value, void *data)
{
+ if (!strcmp(var, "user.useconfigonly")) {
+ ident_use_config_only = git_config_bool(var, value);
+ return 0;
+ }
+
if (!strcmp(var, "user.name")) {
if (!value)
return config_error_nonbool(var);
@@ -451,6 +467,7 @@ int git_ident_config(const char *var, const char *value, void *data)
strbuf_addstr(&git_default_name, value);
committer_ident_explicitly_given |= IDENT_NAME_GIVEN;
author_ident_explicitly_given |= IDENT_NAME_GIVEN;
+ ident_config_given |= IDENT_NAME_GIVEN;
return 0;
}
@@ -461,6 +478,7 @@ int git_ident_config(const char *var, const char *value, void *data)
strbuf_addstr(&git_default_email, value);
committer_ident_explicitly_given |= IDENT_MAIL_GIVEN;
author_ident_explicitly_given |= IDENT_MAIL_GIVEN;
+ ident_config_given |= IDENT_MAIL_GIVEN;
return 0;
}
diff --git a/mailinfo.c b/mailinfo.c
index f289941f7e..9f19ca1080 100644
--- a/mailinfo.c
+++ b/mailinfo.c
@@ -732,7 +732,7 @@ static int read_one_header_line(struct strbuf *line, FILE *in)
struct strbuf continuation = STRBUF_INIT;
/* Get the first part of the line. */
- if (strbuf_getline(line, in, '\n'))
+ if (strbuf_getline_lf(line, in))
return 0;
/*
@@ -756,7 +756,7 @@ static int read_one_header_line(struct strbuf *line, FILE *in)
peek = fgetc(in); ungetc(peek, in);
if (peek != ' ' && peek != '\t')
break;
- if (strbuf_getline(&continuation, in, '\n'))
+ if (strbuf_getline_lf(&continuation, in))
break;
continuation.buf[0] = ' ';
strbuf_rtrim(&continuation);
@@ -769,7 +769,7 @@ static int read_one_header_line(struct strbuf *line, FILE *in)
static int find_boundary(struct mailinfo *mi, struct strbuf *line)
{
- while (!strbuf_getline(line, mi->input, '\n')) {
+ while (!strbuf_getline_lf(line, mi->input)) {
if (*(mi->content_top) && is_multipart_boundary(mi, line))
return 1;
}
@@ -820,7 +820,7 @@ again:
strbuf_release(&newline);
/* replenish line */
- if (strbuf_getline(line, mi->input, '\n'))
+ if (strbuf_getline_lf(line, mi->input))
return 0;
strbuf_addch(line, '\n');
return 1;
diff --git a/merge-recursive.c b/merge-recursive.c
index 8eabde20fb..b880ae50e7 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -482,6 +482,9 @@ static struct string_list *get_renames(struct merge_options *o,
struct diff_options opts;
renames = xcalloc(1, sizeof(struct string_list));
+ if (!o->detect_rename)
+ return renames;
+
diff_setup(&opts);
DIFF_OPT_SET(&opts, RECURSIVE);
DIFF_OPT_CLR(&opts, RENAME_EMPTY);
@@ -2039,6 +2042,7 @@ void init_merge_options(struct merge_options *o)
o->diff_rename_limit = -1;
o->merge_rename_limit = -1;
o->renormalize = 0;
+ o->detect_rename = 1;
merge_recursive_config(o);
if (getenv("GIT_MERGE_VERBOSITY"))
o->verbosity =
@@ -2088,9 +2092,17 @@ int parse_merge_opt(struct merge_options *o, const char *s)
o->renormalize = 1;
else if (!strcmp(s, "no-renormalize"))
o->renormalize = 0;
- else if (skip_prefix(s, "rename-threshold=", &arg)) {
+ else if (!strcmp(s, "no-renames"))
+ o->detect_rename = 0;
+ else if (!strcmp(s, "find-renames")) {
+ o->detect_rename = 1;
+ o->rename_score = 0;
+ }
+ else if (skip_prefix(s, "find-renames=", &arg) ||
+ skip_prefix(s, "rename-threshold=", &arg)) {
if ((o->rename_score = parse_rename_score(&arg)) == -1 || *arg != 0)
return -1;
+ o->detect_rename = 1;
}
else
return -1;
diff --git a/merge-recursive.h b/merge-recursive.h
index 9e090a3470..52f0201f68 100644
--- a/merge-recursive.h
+++ b/merge-recursive.h
@@ -17,6 +17,7 @@ struct merge_options {
unsigned renormalize : 1;
long xdl_opts;
int verbosity;
+ int detect_rename;
int diff_rename_limit;
int merge_rename_limit;
int rename_score;
diff --git a/notes-cache.c b/notes-cache.c
index c4e9bb7f6c..5dfc5cbd08 100644
--- a/notes-cache.c
+++ b/notes-cache.c
@@ -32,14 +32,14 @@ void notes_cache_init(struct notes_cache *c, const char *name,
const char *validity)
{
struct strbuf ref = STRBUF_INIT;
- int flags = 0;
+ int flags = NOTES_INIT_WRITABLE;
memset(c, 0, sizeof(*c));
c->validity = xstrdup(validity);
strbuf_addf(&ref, "refs/notes/%s", name);
if (!notes_cache_match_validity(ref.buf, validity))
- flags = NOTES_INIT_EMPTY;
+ flags |= NOTES_INIT_EMPTY;
init_notes(&c->tree, ref.buf, combine_notes_overwrite, flags);
strbuf_release(&ref);
}
@@ -49,7 +49,8 @@ int notes_cache_write(struct notes_cache *c)
unsigned char tree_sha1[20];
unsigned char commit_sha1[20];
- if (!c || !c->tree.initialized || !c->tree.ref || !*c->tree.ref)
+ if (!c || !c->tree.initialized || !c->tree.update_ref ||
+ !*c->tree.update_ref)
return -1;
if (!c->tree.dirty)
return 0;
@@ -59,8 +60,8 @@ int notes_cache_write(struct notes_cache *c)
if (commit_tree(c->validity, strlen(c->validity), tree_sha1, NULL,
commit_sha1, NULL, NULL) < 0)
return -1;
- if (update_ref("update notes cache", c->tree.ref, commit_sha1, NULL,
- 0, UPDATE_REFS_QUIET_ON_ERR) < 0)
+ if (update_ref("update notes cache", c->tree.update_ref, commit_sha1,
+ NULL, 0, UPDATE_REFS_QUIET_ON_ERR) < 0)
return -1;
return 0;
diff --git a/notes-utils.c b/notes-utils.c
index 299e34bccc..24a33616a4 100644
--- a/notes-utils.c
+++ b/notes-utils.c
@@ -37,7 +37,7 @@ void commit_notes(struct notes_tree *t, const char *msg)
if (!t)
t = &default_notes_tree;
- if (!t->initialized || !t->ref || !*t->ref)
+ if (!t->initialized || !t->update_ref || !*t->update_ref)
die(_("Cannot commit uninitialized/unreferenced notes tree"));
if (!t->dirty)
return; /* don't have to commit an unchanged tree */
@@ -48,7 +48,7 @@ void commit_notes(struct notes_tree *t, const char *msg)
create_notes_commit(t, NULL, buf.buf, buf.len, commit_sha1);
strbuf_insert(&buf, 0, "notes: ", 7); /* commit message starts at index 7 */
- update_ref(buf.buf, t->ref, commit_sha1, NULL, 0,
+ update_ref(buf.buf, t->update_ref, commit_sha1, NULL, 0,
UPDATE_REFS_DIE_ON_ERR);
strbuf_release(&buf);
@@ -148,7 +148,7 @@ struct notes_rewrite_cfg *init_copy_notes_for_rewrite(const char *cmd)
free(c);
return NULL;
}
- c->trees = load_notes_trees(c->refs);
+ c->trees = load_notes_trees(c->refs, NOTES_INIT_WRITABLE);
string_list_clear(c->refs, 0);
free(c->refs);
return c;
diff --git a/notes.c b/notes.c
index 8b59ccdb11..88cf4747c1 100644
--- a/notes.c
+++ b/notes.c
@@ -1011,13 +1011,16 @@ void init_notes(struct notes_tree *t, const char *notes_ref,
t->first_non_note = NULL;
t->prev_non_note = NULL;
t->ref = xstrdup_or_null(notes_ref);
+ t->update_ref = (flags & NOTES_INIT_WRITABLE) ? t->ref : NULL;
t->combine_notes = combine_notes;
t->initialized = 1;
t->dirty = 0;
if (flags & NOTES_INIT_EMPTY || !notes_ref ||
- read_ref(notes_ref, object_sha1))
+ get_sha1_treeish(notes_ref, object_sha1))
return;
+ if (flags & NOTES_INIT_WRITABLE && read_ref(notes_ref, object_sha1))
+ die("Cannot use notes ref %s", notes_ref);
if (get_tree_entry(object_sha1, "", sha1, &mode))
die("Failed to read notes tree referenced by %s (%s)",
notes_ref, sha1_to_hex(object_sha1));
@@ -1027,7 +1030,7 @@ void init_notes(struct notes_tree *t, const char *notes_ref,
load_subtree(t, &root_tree, t->root, 0);
}
-struct notes_tree **load_notes_trees(struct string_list *refs)
+struct notes_tree **load_notes_trees(struct string_list *refs, int flags)
{
struct string_list_item *item;
int counter = 0;
@@ -1035,7 +1038,7 @@ struct notes_tree **load_notes_trees(struct string_list *refs)
ALLOC_ARRAY(trees, refs->nr + 1);
for_each_string_list_item(item, refs) {
struct notes_tree *t = xcalloc(1, sizeof(struct notes_tree));
- init_notes(t, item->string, combine_notes_ignore, 0);
+ init_notes(t, item->string, combine_notes_ignore, flags);
trees[counter++] = t;
}
trees[counter] = NULL;
@@ -1071,7 +1074,7 @@ void init_display_notes(struct display_notes_opt *opt)
item->string);
}
- display_notes_trees = load_notes_trees(&display_notes_refs);
+ display_notes_trees = load_notes_trees(&display_notes_refs, 0);
string_list_clear(&display_notes_refs, 0);
}
@@ -1303,3 +1306,13 @@ void expand_notes_ref(struct strbuf *sb)
else
strbuf_insert(sb, 0, "refs/notes/", 11);
}
+
+void expand_loose_notes_ref(struct strbuf *sb)
+{
+ unsigned char object[20];
+
+ if (get_sha1(sb->buf, object)) {
+ /* fallback to expand_notes_ref */
+ expand_notes_ref(sb);
+ }
+}
diff --git a/notes.h b/notes.h
index 2a3f923380..5345642cfd 100644
--- a/notes.h
+++ b/notes.h
@@ -44,6 +44,7 @@ extern struct notes_tree {
struct int_node *root;
struct non_note *first_non_note, *prev_non_note;
char *ref;
+ char *update_ref;
combine_notes_fn combine_notes;
int initialized;
int dirty;
@@ -72,6 +73,13 @@ const char *default_notes_ref(void);
#define NOTES_INIT_EMPTY 1
/*
+ * By default, the notes tree is only readable, and the notes ref can be
+ * any treeish. The notes tree can however be made writable with this flag,
+ * in which case only strict ref names can be used.
+ */
+#define NOTES_INIT_WRITABLE 2
+
+/*
* Initialize the given notes_tree with the notes tree structure at the given
* ref. If given ref is NULL, the value of the $GIT_NOTES_REF environment
* variable is used, and if that is missing, the default notes ref is used
@@ -276,7 +284,7 @@ void format_display_notes(const unsigned char *object_sha1,
* Load the notes tree from each ref listed in 'refs'. The output is
* an array of notes_tree*, terminated by a NULL.
*/
-struct notes_tree **load_notes_trees(struct string_list *refs);
+struct notes_tree **load_notes_trees(struct string_list *refs, int flags);
/*
* Add all refs that match 'glob' to the 'list'.
@@ -294,4 +302,11 @@ void string_list_add_refs_from_colon_sep(struct string_list *list,
/* Expand inplace a note ref like "foo" or "notes/foo" into "refs/notes/foo" */
void expand_notes_ref(struct strbuf *sb);
+/*
+ * Similar to expand_notes_ref, but will check whether the ref can be located
+ * via get_sha1 first, and only falls back to expand_notes_ref in the case
+ * where get_sha1 fails.
+ */
+void expand_loose_notes_ref(struct strbuf *sb);
+
#endif
diff --git a/pack-bitmap.c b/pack-bitmap.c
index d92394692e..b949e51716 100644
--- a/pack-bitmap.c
+++ b/pack-bitmap.c
@@ -33,9 +33,6 @@ static struct bitmap_index {
/* Packfile to which this bitmap index belongs to */
struct packed_git *pack;
- /* reverse index for the packfile */
- struct pack_revindex *reverse_index;
-
/*
* Mark the first `reuse_objects` in the packfile as reused:
* they will be sent as-is without using them for repacking
@@ -308,7 +305,7 @@ static int load_pack_bitmap(void)
bitmap_git.bitmaps = kh_init_sha1();
bitmap_git.ext_index.positions = kh_init_sha1_pos();
- bitmap_git.reverse_index = revindex_for_pack(bitmap_git.pack);
+ load_pack_revindex(bitmap_git.pack);
if (!(bitmap_git.commits = read_bitmap_1(&bitmap_git)) ||
!(bitmap_git.trees = read_bitmap_1(&bitmap_git)) ||
@@ -380,7 +377,7 @@ static inline int bitmap_position_packfile(const unsigned char *sha1)
if (!offset)
return -1;
- return find_revindex_position(bitmap_git.reverse_index, offset);
+ return find_revindex_position(bitmap_git.pack, offset);
}
static int bitmap_position(const unsigned char *sha1)
@@ -626,7 +623,7 @@ static void show_objects_for_type(
if (pos + offset < bitmap_git.reuse_objects)
continue;
- entry = &bitmap_git.reverse_index->revindex[pos + offset];
+ entry = &bitmap_git.pack->revindex[pos + offset];
sha1 = nth_packed_object_sha1(bitmap_git.pack, entry->nr);
if (bitmap_git.hashes)
@@ -800,7 +797,7 @@ int reuse_partial_packfile_from_bitmap(struct packed_git **packfile,
return -1;
bitmap_git.reuse_objects = *entries = reuse_objects;
- *up_to = bitmap_git.reverse_index->revindex[reuse_objects].offset;
+ *up_to = bitmap_git.pack->revindex[reuse_objects].offset;
*packfile = bitmap_git.pack;
return 0;
@@ -1033,7 +1030,7 @@ int rebuild_existing_bitmaps(struct packing_data *mapping,
struct revindex_entry *entry;
struct object_entry *oe;
- entry = &bitmap_git.reverse_index->revindex[i];
+ entry = &bitmap_git.pack->revindex[i];
sha1 = nth_packed_object_sha1(bitmap_git.pack, entry->nr);
oe = packlist_find(mapping, sha1, NULL);
diff --git a/pack-revindex.c b/pack-revindex.c
index f6a3613beb..96d51c3467 100644
--- a/pack-revindex.c
+++ b/pack-revindex.c
@@ -8,52 +8,13 @@
* size is easily available by examining the pack entry header). It is
* also rather expensive to find the sha1 for an object given its offset.
*
- * We build a hashtable of existing packs (pack_revindex), and keep reverse
- * index here -- pack index file is sorted by object name mapping to offset;
- * this pack_revindex[].revindex array is a list of offset/index_nr pairs
+ * The pack index file is sorted by object name mapping to offset;
+ * this revindex array is a list of offset/index_nr pairs
* ordered by offset, so if you know the offset of an object, next offset
* is where its packed representation ends and the index_nr can be used to
* get the object sha1 from the main index.
*/
-static struct pack_revindex *pack_revindex;
-static int pack_revindex_hashsz;
-
-static int pack_revindex_ix(struct packed_git *p)
-{
- unsigned long ui = (unsigned long)(intptr_t)p;
- int i;
-
- ui = ui ^ (ui >> 16); /* defeat structure alignment */
- i = (int)(ui % pack_revindex_hashsz);
- while (pack_revindex[i].p) {
- if (pack_revindex[i].p == p)
- return i;
- if (++i == pack_revindex_hashsz)
- i = 0;
- }
- return -1 - i;
-}
-
-static void init_pack_revindex(void)
-{
- int num;
- struct packed_git *p;
-
- for (num = 0, p = packed_git; p; p = p->next)
- num++;
- if (!num)
- return;
- pack_revindex_hashsz = num * 11;
- pack_revindex = xcalloc(pack_revindex_hashsz, sizeof(*pack_revindex));
- for (p = packed_git; p; p = p->next) {
- num = pack_revindex_ix(p);
- num = - 1 - num;
- pack_revindex[num].p = p;
- }
- /* revindex elements are lazily initialized */
-}
-
/*
* This is a least-significant-digit radix sort.
*
@@ -158,14 +119,13 @@ static void sort_revindex(struct revindex_entry *entries, unsigned n, off_t max)
/*
* Ordered list of offsets of objects in the pack.
*/
-static void create_pack_revindex(struct pack_revindex *rix)
+static void create_pack_revindex(struct packed_git *p)
{
- struct packed_git *p = rix->p;
unsigned num_ent = p->num_objects;
unsigned i;
const char *index = p->index_data;
- ALLOC_ARRAY(rix->revindex, num_ent + 1);
+ ALLOC_ARRAY(p->revindex, num_ent + 1);
index += 4 * 256;
if (p->index_version > 1) {
@@ -175,55 +135,42 @@ static void create_pack_revindex(struct pack_revindex *rix)
for (i = 0; i < num_ent; i++) {
uint32_t off = ntohl(*off_32++);
if (!(off & 0x80000000)) {
- rix->revindex[i].offset = off;
+ p->revindex[i].offset = off;
} else {
- rix->revindex[i].offset =
+ p->revindex[i].offset =
((uint64_t)ntohl(*off_64++)) << 32;
- rix->revindex[i].offset |=
+ p->revindex[i].offset |=
ntohl(*off_64++);
}
- rix->revindex[i].nr = i;
+ p->revindex[i].nr = i;
}
} else {
for (i = 0; i < num_ent; i++) {
uint32_t hl = *((uint32_t *)(index + 24 * i));
- rix->revindex[i].offset = ntohl(hl);
- rix->revindex[i].nr = i;
+ p->revindex[i].offset = ntohl(hl);
+ p->revindex[i].nr = i;
}
}
/* This knows the pack format -- the 20-byte trailer
* follows immediately after the last object data.
*/
- rix->revindex[num_ent].offset = p->pack_size - 20;
- rix->revindex[num_ent].nr = -1;
- sort_revindex(rix->revindex, num_ent, p->pack_size);
+ p->revindex[num_ent].offset = p->pack_size - 20;
+ p->revindex[num_ent].nr = -1;
+ sort_revindex(p->revindex, num_ent, p->pack_size);
}
-struct pack_revindex *revindex_for_pack(struct packed_git *p)
+void load_pack_revindex(struct packed_git *p)
{
- int num;
- struct pack_revindex *rix;
-
- if (!pack_revindex_hashsz)
- init_pack_revindex();
-
- num = pack_revindex_ix(p);
- if (num < 0)
- die("internal error: pack revindex fubar");
-
- rix = &pack_revindex[num];
- if (!rix->revindex)
- create_pack_revindex(rix);
-
- return rix;
+ if (!p->revindex)
+ create_pack_revindex(p);
}
-int find_revindex_position(struct pack_revindex *pridx, off_t ofs)
+int find_revindex_position(struct packed_git *p, off_t ofs)
{
int lo = 0;
- int hi = pridx->p->num_objects + 1;
- struct revindex_entry *revindex = pridx->revindex;
+ int hi = p->num_objects + 1;
+ struct revindex_entry *revindex = p->revindex;
do {
unsigned mi = lo + (hi - lo) / 2;
@@ -241,11 +188,13 @@ int find_revindex_position(struct pack_revindex *pridx, off_t ofs)
struct revindex_entry *find_pack_revindex(struct packed_git *p, off_t ofs)
{
- struct pack_revindex *pridx = revindex_for_pack(p);
- int pos = find_revindex_position(pridx, ofs);
+ int pos;
+
+ load_pack_revindex(p);
+ pos = find_revindex_position(p, ofs);
if (pos < 0)
return NULL;
- return pridx->revindex + pos;
+ return p->revindex + pos;
}
diff --git a/pack-revindex.h b/pack-revindex.h
index d737f98965..e262f3efe8 100644
--- a/pack-revindex.h
+++ b/pack-revindex.h
@@ -1,18 +1,15 @@
#ifndef PACK_REVINDEX_H
#define PACK_REVINDEX_H
+struct packed_git;
+
struct revindex_entry {
off_t offset;
unsigned int nr;
};
-struct pack_revindex {
- struct packed_git *p;
- struct revindex_entry *revindex;
-};
-
-struct pack_revindex *revindex_for_pack(struct packed_git *p);
-int find_revindex_position(struct pack_revindex *pridx, off_t ofs);
+void load_pack_revindex(struct packed_git *p);
+int find_revindex_position(struct packed_git *p, off_t ofs);
struct revindex_entry *find_pack_revindex(struct packed_git *p, off_t ofs);
diff --git a/perl/Git.pm b/perl/Git.pm
index 19ef081103..49eb88af8d 100644
--- a/perl/Git.pm
+++ b/perl/Git.pm
@@ -188,7 +188,8 @@ sub repository {
};
if ($dir) {
- $dir =~ m#^/# or $dir = $opts{Directory} . '/' . $dir;
+ _verify_require();
+ File::Spec->file_name_is_absolute($dir) or $dir = $opts{Directory} . '/' . $dir;
$opts{Repository} = abs_path($dir);
# If --git-dir went ok, this shouldn't die either.
diff --git a/perl/Git/SVN/Editor.pm b/perl/Git/SVN/Editor.pm
index c50176eec9..4c4199afec 100644
--- a/perl/Git/SVN/Editor.pm
+++ b/perl/Git/SVN/Editor.pm
@@ -41,6 +41,7 @@ sub new {
"$self->{svn_path}/" : '';
$self->{config} = $opts->{config};
$self->{mergeinfo} = $opts->{mergeinfo};
+ $self->{pathnameencoding} = Git::config('svn.pathnameencoding');
return $self;
}
@@ -143,11 +144,12 @@ sub repo_path {
sub url_path {
my ($self, $path) = @_;
+ $path = $self->repo_path($path);
if ($self->{url} =~ m#^https?://#) {
# characters are taken from subversion/libsvn_subr/path.c
$path =~ s#([^~a-zA-Z0-9_./!$&'()*+,-])#sprintf("%%%02X",ord($1))#eg;
}
- $self->{url} . '/' . $self->repo_path($path);
+ $self->{url} . '/' . $path;
}
sub rmdirs {
diff --git a/perl/Git/SVN/GlobSpec.pm b/perl/Git/SVN/GlobSpec.pm
index c95f5d76ca..a0a8d17621 100644
--- a/perl/Git/SVN/GlobSpec.pm
+++ b/perl/Git/SVN/GlobSpec.pm
@@ -8,19 +8,23 @@ sub new {
$re =~ s!/+$!!g; # no need for trailing slashes
my (@left, @right, @patterns);
my $state = "left";
- my $die_msg = "Only one set of wildcard directories " .
- "(e.g. '*' or '*/*/*') is supported: '$glob'\n";
+ my $die_msg = "Only one set of wildcards " .
+ "(e.g. '*' or '*/*/*') is supported: $glob\n";
for my $part (split(m|/|, $glob)) {
- if ($part =~ /\*/ && $part ne "*") {
- die "Invalid pattern in '$glob': $part\n";
- } elsif ($pattern_ok && $part =~ /[{}]/ &&
+ if ($pattern_ok && $part =~ /[{}]/ &&
$part !~ /^\{[^{}]+\}/) {
die "Invalid pattern in '$glob': $part\n";
}
- if ($part eq "*") {
+ my $nstars = $part =~ tr/*//;
+ if ($nstars > 1) {
+ die "Only one '*' is allowed in a pattern: '$part'\n";
+ }
+ if ($part =~ /(.*)\*(.*)/) {
die $die_msg if $state eq "right";
+ my ($l, $r) = ($1, $2);
$state = "pattern";
- push(@patterns, "[^/]*");
+ my $pat = quotemeta($l) . '[^/]*' . quotemeta($r);
+ push(@patterns, $pat);
} elsif ($pattern_ok && $part =~ /^\{(.*)\}$/) {
die $die_msg if $state eq "right";
$state = "pattern";
diff --git a/po/TEAMS b/po/TEAMS
index df12b5819c..56274ad4f3 100644
--- a/po/TEAMS
+++ b/po/TEAMS
@@ -11,7 +11,7 @@ Leader: Alex Henrie <alexhenrie24@gmail.com>
Language: de (German)
Repository: https://github.com/ralfth/git-po-de
-Leader: Ralf Thielow <ralf.thielow@googlemail.com>
+Leader: Ralf Thielow <ralf.thielow@gmail.com>
Members: Thomas Rast <tr@thomasrast.ch>
Jan Krüger <jk@jk.gs>
Christian Stimming <stimming@tuhh.de>
diff --git a/po/de.po b/po/de.po
index 8c5f05dd56..e53e438736 100644
--- a/po/de.po
+++ b/po/de.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Git\n"
"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2015-12-22 22:50+0800\n"
+"POT-Creation-Date: 2016-02-28 20:31+0800\n"
"PO-Revision-Date: 2015-01-21 15:01+0800\n"
"Last-Translator: Ralf Thielow <ralf.thielow@gmail.com>\n"
"Language-Team: German <>\n"
@@ -31,7 +31,7 @@ msgstr ""
"dann 'git add/rm <Datei>', um die Auflösung entsprechend zu markieren\n"
"und zu committen."
-#: advice.c:101 builtin/merge.c:1225
+#: advice.c:101 builtin/merge.c:1226
msgid "You have not concluded your merge (MERGE_HEAD exists)."
msgstr "Sie haben Ihren Merge nicht abgeschlossen (MERGE_HEAD existiert)."
@@ -75,7 +75,7 @@ msgstr "Format"
msgid "archive format"
msgstr "Archivformat"
-#: archive.c:430 builtin/log.c:1229
+#: archive.c:430 builtin/log.c:1232
msgid "prefix"
msgstr "Präfix"
@@ -83,11 +83,11 @@ 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:432 builtin/archive.c:88 builtin/blame.c:2535
-#: builtin/blame.c:2536 builtin/config.c:58 builtin/fast-export.c:987
-#: builtin/fast-export.c:989 builtin/grep.c:707 builtin/hash-object.c:99
-#: builtin/ls-files.c:446 builtin/ls-files.c:449 builtin/notes.c:395
-#: builtin/notes.c:558 builtin/read-tree.c:109 parse-options.h:153
+#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2547
+#: builtin/blame.c:2548 builtin/config.c:60 builtin/fast-export.c:987
+#: builtin/fast-export.c:989 builtin/grep.c:720 builtin/hash-object.c:100
+#: builtin/ls-files.c:459 builtin/ls-files.c:462 builtin/notes.c:398
+#: builtin/notes.c:561 builtin/read-tree.c:109 parse-options.h:153
msgid "file"
msgstr "Datei"
@@ -119,7 +119,7 @@ msgstr "besser komprimieren"
msgid "list supported archive formats"
msgstr "unterstützte Archivformate auflisten"
-#: archive.c:451 builtin/archive.c:90 builtin/clone.c:77
+#: archive.c:451 builtin/archive.c:90 builtin/clone.c:78
msgid "repo"
msgstr "Repository"
@@ -127,7 +127,7 @@ msgstr "Repository"
msgid "retrieve the archive from remote repository <repo>"
msgstr "Archiv vom Remote-Repository <Repository> abrufen"
-#: archive.c:453 builtin/archive.c:92 builtin/notes.c:479
+#: archive.c:453 builtin/archive.c:92 builtin/notes.c:482
msgid "command"
msgstr "Programm"
@@ -135,7 +135,7 @@ msgstr "Programm"
msgid "path to the remote git-upload-archive command"
msgstr "Pfad zum externen \"git-upload-archive\"-Programm"
-#: attr.c:265
+#: attr.c:263
msgid ""
"Negative patterns are ignored in git attributes\n"
"Use '\\!' for literal leading exclamation."
@@ -143,87 +143,105 @@ msgstr ""
"Verneinende Muster werden in Git-Attributen ignoriert.\n"
"Benutzen Sie '\\!' für führende Ausrufezeichen."
-#: branch.c:61
+#: branch.c:53
+#, c-format
+msgid ""
+"\n"
+"After fixing the error cause you may try to fix up\n"
+"the remote tracking information by invoking\n"
+"\"git branch --set-upstream-to=%s%s%s\"."
+msgstr ""
+"\n"
+"Nachdem Sie die Fehlerursache behoben haben, können Sie\n"
+"die Tracking-Informationen mit"
+"\"git branch --set-upstream-to=%s%s%s\""
+"erneut setzen."
+
+#: branch.c:67
#, c-format
msgid "Not setting branch %s as its own upstream."
msgstr "Branch %s kann nicht sein eigener Upstream-Branch sein."
-#: branch.c:84
+#: branch.c:93
#, c-format
msgid "Branch %s set up to track remote branch %s from %s by rebasing."
msgstr ""
"Branch %s konfiguriert zum Folgen von Remote-Branch %s von %s durch Rebase."
-#: branch.c:85
+#: branch.c:94
#, c-format
msgid "Branch %s set up to track remote branch %s from %s."
msgstr "Branch %s konfiguriert zum Folgen von Remote-Branch %s von %s."
-#: branch.c:89
+#: branch.c:98
#, c-format
msgid "Branch %s set up to track local branch %s by rebasing."
msgstr "Branch %s konfiguriert zum Folgen von lokalem Branch %s durch Rebase."
-#: branch.c:90
+#: branch.c:99
#, c-format
msgid "Branch %s set up to track local branch %s."
msgstr "Branch %s konfiguriert zum Folgen von lokalem Branch %s."
-#: branch.c:95
+#: branch.c:104
#, c-format
msgid "Branch %s set up to track remote ref %s by rebasing."
msgstr "Branch %s konfiguriert zum Folgen von Remote-Referenz %s durch Rebase."
-#: branch.c:96
+#: branch.c:105
#, c-format
msgid "Branch %s set up to track remote ref %s."
msgstr "Branch %s konfiguriert zum Folgen von Remote-Referenz %s."
-#: branch.c:100
+#: branch.c:109
#, c-format
msgid "Branch %s set up to track local ref %s by rebasing."
msgstr ""
"Branch %s konfiguriert zum Folgen von lokaler Referenz %s durch Rebase."
-#: branch.c:101
+#: branch.c:110
#, c-format
msgid "Branch %s set up to track local ref %s."
msgstr "Branch %s konfiguriert zum Folgen von lokaler Referenz %s."
-#: branch.c:134
+#: branch.c:119
+msgid "Unable to write upstream branch configuration"
+msgstr "Konnte Konfiguration zu Upstream-Branch nicht schreiben."
+
+#: branch.c:156
#, c-format
msgid "Not tracking: ambiguous information for ref %s"
msgstr ""
"Konfiguration zum Folgen von Branch nicht eingerichtet. Referenz %s ist "
"mehrdeutig."
-#: branch.c:163
+#: branch.c:185
#, c-format
msgid "'%s' is not a valid branch name."
msgstr "'%s' ist kein gültiger Branchname."
-#: branch.c:168
+#: branch.c:190
#, c-format
msgid "A branch named '%s' already exists."
msgstr "Branch '%s' existiert bereits."
-#: branch.c:176
+#: branch.c:198
msgid "Cannot force update the current branch."
msgstr "Kann Aktualisierung des aktuellen Branches nicht erzwingen."
-#: branch.c:196
+#: branch.c:218
#, c-format
msgid "Cannot setup tracking information; starting point '%s' is not a branch."
msgstr ""
"Kann Tracking-Informationen nicht einrichten; Startpunkt '%s' ist kein "
"Branch."
-#: branch.c:198
+#: branch.c:220
#, c-format
msgid "the requested upstream branch '%s' does not exist"
msgstr "der angeforderte Upstream-Branch '%s' existiert nicht"
-#: branch.c:200
+#: branch.c:222
msgid ""
"\n"
"If you are planning on basing your work on an upstream\n"
@@ -244,22 +262,22 @@ msgstr ""
"\"git push -u\" verwenden, um den Upstream-Branch beim \"push\"\n"
"zu konfigurieren."
-#: branch.c:244
+#: branch.c:266
#, c-format
msgid "Not a valid object name: '%s'."
msgstr "Ungültiger Objekt-Name: '%s'"
-#: branch.c:264
+#: branch.c:286
#, c-format
msgid "Ambiguous object name: '%s'."
msgstr "mehrdeutiger Objekt-Name: '%s'"
-#: branch.c:269
+#: branch.c:291
#, c-format
msgid "Not a valid branch point: '%s'."
msgstr "Ungültiger Branchpunkt: '%s'"
-#: branch.c:322
+#: branch.c:344
#, c-format
msgid "'%s' is already checked out at '%s'"
msgstr "'%s' ist bereits in '%s' ausgecheckt"
@@ -283,10 +301,10 @@ msgstr "Konnte '%s' nicht öffnen"
msgid "Repository lacks these prerequisite commits:"
msgstr "Dem Repository fehlen folgende vorausgesetzte Commits:"
-#: bundle.c:163 ref-filter.c:1372 sequencer.c:636 sequencer.c:1083
-#: builtin/blame.c:2734 builtin/commit.c:1045 builtin/log.c:334
-#: builtin/log.c:849 builtin/log.c:1461 builtin/log.c:1694 builtin/merge.c:358
-#: builtin/shortlog.c:158
+#: bundle.c:163 ref-filter.c:1462 sequencer.c:627 sequencer.c:1074
+#: builtin/blame.c:2754 builtin/commit.c:1045 builtin/log.c:334
+#: builtin/log.c:852 builtin/log.c:1467 builtin/log.c:1700 builtin/merge.c:358
+#: builtin/shortlog.c:170
msgid "revision walk setup failed"
msgstr "Einrichtung des Revisionsgangs fehlgeschlagen"
@@ -325,7 +343,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:443 builtin/log.c:157 builtin/log.c:1369 builtin/shortlog.c:261
+#: bundle.c:443 builtin/log.c:157 builtin/log.c:1372 builtin/shortlog.c:273
#, c-format
msgid "unrecognized argument: %s"
msgstr "nicht erkanntes Argument: %s"
@@ -348,8 +366,8 @@ msgstr "Erstellung der Paketindexdatei abgebrochen"
msgid "invalid color value: %.*s"
msgstr "Ungültiger Farbwert: %.*s"
-#: commit.c:40 builtin/am.c:452 builtin/am.c:488 builtin/am.c:1520
-#: builtin/am.c:2149
+#: commit.c:40 builtin/am.c:437 builtin/am.c:473 builtin/am.c:1505
+#: builtin/am.c:2135
#, c-format
msgid "could not parse %s"
msgstr "konnte %s nicht parsen"
@@ -363,63 +381,68 @@ msgstr "%s %s ist kein Commit!"
msgid "memory exhausted"
msgstr "Speicher verbraucht"
-#: config.c:474 config.c:476
+#: config.c:475 config.c:477
#, c-format
-msgid "bad config file line %d in %s"
-msgstr "Zeile %d in Konfigurationsdatei %s ist ungültig."
+msgid "bad config line %d in %s %s"
+msgstr "Zeile %d in Konfiguration %s %s ist ungültig."
-#: config.c:592
+#: config.c:593
#, c-format
-msgid "bad numeric config value '%s' for '%s' in %s: %s"
-msgstr "Ungültiger numerischer Wert '%s' für Konfiguration '%s' in %s: %s"
+msgid "bad numeric config value '%s' for '%s' in %s %s: %s"
+msgstr "Ungültiger numerischer Wert '%s' für Konfiguration '%s' in %s %s: %s"
-#: config.c:594
+#: config.c:595
#, c-format
msgid "bad numeric config value '%s' for '%s': %s"
msgstr "Ungültiger numerischer Wert '%s' für Konfiguration '%s': %s"
-#: config.c:679
+#: config.c:680
#, c-format
msgid "failed to expand user dir in: '%s'"
msgstr "Fehler beim Erweitern des Nutzerverzeichnisses in: '%s'"
-#: config.c:757 config.c:768
+#: config.c:758 config.c:769
#, c-format
msgid "bad zlib compression level %d"
msgstr "ungültiger zlib Komprimierungsgrad %d"
-#: config.c:890
+#: config.c:891
#, c-format
msgid "invalid mode for object creation: %s"
msgstr "Ungültiger Modus für Objekterstellung: %s"
-#: config.c:1216
+#: config.c:1220
msgid "unable to parse command-line config"
msgstr ""
-"Konnte die über die Kommandozeile angegebene Konfiguration nicht parsen."
+"Konnte die über die Befehlszeile angegebene Konfiguration nicht parsen."
-#: config.c:1277
+#: config.c:1281
msgid "unknown error occured while reading the configuration files"
msgstr ""
"Es trat ein unbekannter Fehler beim Lesen der Konfigurationsdateien auf."
-#: config.c:1601
+#: config.c:1629
#, c-format
msgid "unable to parse '%s' from command-line config"
msgstr ""
-"Konnte Wert '%s' aus der über die Kommandozeile angegebenen\n"
-"Konfiguration nicht parsen."
+"Konnte Wert '%s' aus der über die Befehlszeile angegebenen Konfiguration\n"
+"nicht parsen."
-#: config.c:1603
+#: config.c:1631
#, 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:1662
+#: config.c:1690
#, c-format
msgid "%s has multiple values"
msgstr "%s hat mehrere Werte"
+#: config.c:2226
+#, c-format
+msgid "Could not set '%s' to '%s'"
+msgstr "Konnte '%s' nicht zu '%s' setzen."
+
#: connected.c:69
msgid "Could not run 'git rev-list'"
msgstr "Konnte 'git rev-list' nicht ausführen"
@@ -536,16 +559,16 @@ msgstr ""
"Fehler in 'diff.dirstat' Konfigurationsvariable gefunden:\n"
"%s"
-#: diff.c:3000
+#: diff.c:2997
#, c-format
msgid "external diff died, stopping at %s"
msgstr "externes Diff-Programm unerwartet beendet, angehalten bei %s"
-#: diff.c:3396
+#: diff.c:3393
msgid "--follow requires exactly one pathspec"
msgstr "--follow erfordert genau eine Pfadspezifikation"
-#: diff.c:3559
+#: diff.c:3556
#, c-format
msgid ""
"Failed to parse --dirstat/-X option parameter:\n"
@@ -554,18 +577,19 @@ msgstr ""
"Fehler beim Parsen des --dirstat/-X Optionsparameters:\n"
"%s"
-#: diff.c:3573
+#: diff.c:3570
#, c-format
msgid "Failed to parse --submodule option parameter: '%s'"
msgstr "Fehler beim Parsen des --submodule Optionsparameters: '%s'"
-#: dir.c:1915
+#: dir.c:2004
msgid "failed to get kernel name and information"
msgstr "Fehler beim Sammeln von Namen und Informationen zum Kernel"
-#: dir.c:1998
-msgid "Untracked cache is disabled on this system."
-msgstr "Cache für unversionierte Dateien ist auf diesem System deaktiviert."
+#: dir.c:2123
+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."
#: gpg-interface.c:166 gpg-interface.c:237
msgid "could not run gpg."
@@ -604,52 +628,52 @@ msgstr "'%s': %s"
msgid "'%s': short read %s"
msgstr "'%s': read() zu kurz %s"
-#: help.c:207
+#: help.c:205
#, c-format
msgid "available git commands in '%s'"
-msgstr "Vorhandene Git-Kommandos in '%s'"
+msgstr "Vorhandene Git-Befehle in '%s'"
-#: help.c:214
+#: help.c:212
msgid "git commands available from elsewhere on your $PATH"
-msgstr "Vorhandene Git-Kommandos anderswo in Ihrem $PATH"
+msgstr "Vorhandene Git-Befehle anderswo in Ihrem $PATH"
-#: help.c:246
+#: help.c:244
msgid "These are common Git commands used in various situations:"
-msgstr "Allgemeine Git-Kommandos, verwendet in verschiedenen Situationen:"
+msgstr "Allgemeine Git-Befehle, verwendet in verschiedenen Situationen:"
-#: help.c:311
+#: help.c:309
#, c-format
msgid ""
"'%s' appears to be a git command, but we were not\n"
"able to execute it. Maybe git-%s is broken?"
msgstr ""
-"'%s' scheint ein git-Kommando zu sein, konnte aber\n"
+"'%s' scheint ein git-Befehl zu sein, konnte aber\n"
"nicht ausgeführt werden. Vielleicht ist git-%s fehlerhaft?"
-#: help.c:368
+#: help.c:366
msgid "Uh oh. Your system reports no Git commands at all."
-msgstr "Uh oh. Keine Git-Kommandos auf Ihrem System vorhanden."
+msgstr "Uh oh. Keine Git-Befehle auf Ihrem System vorhanden."
-#: help.c:390
+#: help.c:388
#, c-format
msgid ""
"WARNING: You called a Git command named '%s', which does not exist.\n"
"Continuing under the assumption that you meant '%s'"
msgstr ""
-"Warnung: Sie haben das nicht existierende Git-Kommando '%s' ausgeführt.\n"
+"Warnung: Sie haben den nicht existierenden Git-Befehl '%s' ausgeführt.\n"
"Setze fort unter der Annahme, dass Sie '%s' gemeint haben."
-#: help.c:395
+#: help.c:393
#, c-format
msgid "in %0.1f seconds automatically..."
msgstr "Automatische Ausführung in %0.1f Sekunden ..."
-#: help.c:402
+#: help.c:400
#, c-format
msgid "git: '%s' is not a git command. See 'git --help'."
-msgstr "git: '%s' ist kein Git-Kommando. Siehe 'git --help'."
+msgstr "git: '%s' ist kein Git-Befehl. Siehe 'git --help'."
-#: help.c:406 help.c:466
+#: help.c:404 help.c:464
msgid ""
"\n"
"Did you mean this?"
@@ -663,7 +687,7 @@ msgstr[1] ""
"\n"
"Haben Sie eines von diesen gemeint?"
-#: help.c:462
+#: help.c:460
#, c-format
msgid "%s: %s - %s"
msgstr "%s: %s - %s"
@@ -672,8 +696,8 @@ msgstr "%s: %s - %s"
msgid "failed to read the cache"
msgstr "Lesen des Zwischenspeichers fehlgeschlagen"
-#: merge.c:94 builtin/am.c:2022 builtin/am.c:2057 builtin/checkout.c:376
-#: builtin/checkout.c:587 builtin/clone.c:722
+#: merge.c:94 builtin/am.c:2008 builtin/am.c:2043 builtin/checkout.c:376
+#: builtin/checkout.c:587 builtin/clone.c:730
msgid "unable to write new index file"
msgstr "Konnte neue Index-Datei nicht schreiben."
@@ -691,64 +715,64 @@ msgstr "addinfo_cache für Pfad '%s' fehlgeschlagen"
msgid "error building trees"
msgstr "Fehler beim Erstellen der \"Tree\"-Objekte"
-#: merge-recursive.c:686
+#: merge-recursive.c:689
#, c-format
msgid "failed to create path '%s'%s"
msgstr "Fehler beim Erstellen des Pfades '%s'%s"
-#: merge-recursive.c:697
+#: merge-recursive.c:700
#, 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:711 merge-recursive.c:732
+#: merge-recursive.c:714 merge-recursive.c:735
msgid ": perhaps a D/F conflict?"
msgstr ": vielleicht ein Verzeichnis/Datei-Konflikt?"
-#: merge-recursive.c:722
+#: merge-recursive.c:725
#, c-format
msgid "refusing to lose untracked file at '%s'"
msgstr "verweigere, da unversionierte Dateien in '%s' verloren gehen würden"
-#: merge-recursive.c:762
+#: merge-recursive.c:765
#, c-format
msgid "cannot read object %s '%s'"
msgstr "kann Objekt %s '%s' nicht lesen"
-#: merge-recursive.c:764
+#: merge-recursive.c:767
#, c-format
msgid "blob expected for %s '%s'"
msgstr "Blob erwartet für %s '%s'"
-#: merge-recursive.c:787 builtin/clone.c:369
+#: merge-recursive.c:790 builtin/clone.c:374
#, c-format
msgid "failed to open '%s'"
msgstr "Fehler beim Öffnen von '%s'"
-#: merge-recursive.c:795
+#: merge-recursive.c:798
#, c-format
msgid "failed to symlink '%s'"
msgstr "Fehler beim Erstellen einer symbolischen Verknüpfung für '%s'"
-#: merge-recursive.c:798
+#: merge-recursive.c:801
#, 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:936
+#: merge-recursive.c:939
msgid "Failed to execute internal merge"
msgstr "Fehler bei Ausführung des internen Merges"
-#: merge-recursive.c:940
+#: merge-recursive.c:943
#, c-format
msgid "Unable to add %s to database"
msgstr "Konnte %s nicht zur Datenbank hinzufügen"
-#: merge-recursive.c:956
+#: merge-recursive.c:959
msgid "unsupported object type in the tree"
msgstr "nicht unterstützter Objekttyp im Verzeichnis"
-#: merge-recursive.c:1031 merge-recursive.c:1045
+#: merge-recursive.c:1034 merge-recursive.c:1048
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -757,7 +781,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:1037 merge-recursive.c:1050
+#: merge-recursive.c:1040 merge-recursive.c:1053
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -766,20 +790,20 @@ 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:1091
+#: merge-recursive.c:1094
msgid "rename"
msgstr "umbenennen"
-#: merge-recursive.c:1091
+#: merge-recursive.c:1094
msgid "renamed"
msgstr "umbenannt"
-#: merge-recursive.c:1147
+#: merge-recursive.c:1150
#, 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:1169
+#: merge-recursive.c:1172
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
@@ -788,148 +812,148 @@ msgstr ""
"KONFLIKT (umbenennen/umbenennen): Benenne um \"%s\"->\"%s\" in Branch \"%s\" "
"und \"%s\"->\"%s\" in Branch \"%s\"%s"
-#: merge-recursive.c:1174
+#: merge-recursive.c:1177
msgid " (left unresolved)"
msgstr " (bleibt unaufgelöst)"
-#: merge-recursive.c:1228
+#: merge-recursive.c:1231
#, 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:1258
+#: merge-recursive.c:1261
#, c-format
msgid "Renaming %s to %s and %s to %s instead"
msgstr "Benenne stattdessen %s nach %s und %s nach %s um"
-#: merge-recursive.c:1457
+#: merge-recursive.c:1460
#, c-format
msgid "CONFLICT (rename/add): Rename %s->%s in %s. %s added in %s"
msgstr ""
"KONFLIKT (umbenennen/hinzufügen): Benenne um %s->%s in %s. %s hinzugefügt in "
"%s"
-#: merge-recursive.c:1467
+#: merge-recursive.c:1470
#, c-format
msgid "Adding merged %s"
msgstr "Füge zusammengeführte Datei %s hinzu"
-#: merge-recursive.c:1472 merge-recursive.c:1674
+#: merge-recursive.c:1475 merge-recursive.c:1677
#, c-format
msgid "Adding as %s instead"
msgstr "Füge stattdessen als %s hinzu"
-#: merge-recursive.c:1523
+#: merge-recursive.c:1526
#, c-format
msgid "cannot read object %s"
msgstr "kann Objekt %s nicht lesen"
-#: merge-recursive.c:1526
+#: merge-recursive.c:1529
#, c-format
msgid "object %s is not a blob"
msgstr "Objekt %s ist kein Blob"
-#: merge-recursive.c:1578
+#: merge-recursive.c:1581
msgid "modify"
msgstr "ändern"
-#: merge-recursive.c:1578
+#: merge-recursive.c:1581
msgid "modified"
msgstr "geändert"
-#: merge-recursive.c:1588
+#: merge-recursive.c:1591
msgid "content"
msgstr "Inhalt"
-#: merge-recursive.c:1595
+#: merge-recursive.c:1598
msgid "add/add"
msgstr "hinzufügen/hinzufügen"
-#: merge-recursive.c:1629
+#: merge-recursive.c:1632
#, c-format
msgid "Skipped %s (merged same as existing)"
msgstr "%s ausgelassen (Ergebnis des Merges existiert bereits)"
-#: merge-recursive.c:1643
+#: merge-recursive.c:1646
#, c-format
msgid "Auto-merging %s"
msgstr "automatischer Merge von %s"
-#: merge-recursive.c:1647 git-submodule.sh:1025
+#: merge-recursive.c:1650 git-submodule.sh:1048
msgid "submodule"
msgstr "Submodul"
-#: merge-recursive.c:1648
+#: merge-recursive.c:1651
#, c-format
msgid "CONFLICT (%s): Merge conflict in %s"
msgstr "KONFLIKT (%s): Merge-Konflikt in %s"
-#: merge-recursive.c:1734
+#: merge-recursive.c:1737
#, c-format
msgid "Removing %s"
msgstr "Entferne %s"
-#: merge-recursive.c:1759
+#: merge-recursive.c:1762
msgid "file/directory"
msgstr "Datei/Verzeichnis"
-#: merge-recursive.c:1765
+#: merge-recursive.c:1768
msgid "directory/file"
msgstr "Verzeichnis/Datei"
-#: merge-recursive.c:1770
+#: merge-recursive.c:1773
#, 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:1780
+#: merge-recursive.c:1783
#, c-format
msgid "Adding %s"
msgstr "Füge %s hinzu"
-#: merge-recursive.c:1797
+#: merge-recursive.c:1800
msgid "Fatal merge failure, shouldn't happen."
msgstr "Fataler Merge-Fehler. Sollte nicht passieren."
-#: merge-recursive.c:1816
+#: merge-recursive.c:1819
msgid "Already up-to-date!"
msgstr "Bereits aktuell!"
-#: merge-recursive.c:1825
+#: merge-recursive.c:1828
#, c-format
msgid "merging of trees %s and %s failed"
msgstr "Zusammenführen der \"Tree\"-Objekte %s und %s fehlgeschlagen"
-#: merge-recursive.c:1855
+#: merge-recursive.c:1858
#, c-format
msgid "Unprocessed path??? %s"
msgstr "unverarbeiteter Pfad??? %s"
-#: merge-recursive.c:1903
+#: merge-recursive.c:1906
msgid "Merging:"
msgstr "Merge:"
-#: merge-recursive.c:1916
+#: merge-recursive.c:1919
#, 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:1953
+#: merge-recursive.c:1956
msgid "merge returned no commit"
msgstr "Merge hat keinen Commit zurückgegeben"
-#: merge-recursive.c:2010
+#: merge-recursive.c:2013
#, c-format
msgid "Could not parse object '%s'"
msgstr "Konnte Objekt '%s' nicht parsen."
-#: merge-recursive.c:2021 builtin/merge.c:645
+#: merge-recursive.c:2024 builtin/merge.c:646
msgid "Unable to write index."
msgstr "Konnte Index nicht schreiben."
@@ -1048,14 +1072,14 @@ msgstr "Pfadspezifikation '%s' befindet sich in Submodul '%.*s'"
#, c-format
msgid "%s: pathspec magic not supported by this command: %s"
msgstr ""
-"%s: Pfadspezifikationsangabe wird von diesem Kommando nicht unterstützt: %s"
+"%s: Pfadspezifikationsangabe wird von diesem Befehl nicht unterstützt: %s"
-#: pathspec.c:432
+#: pathspec.c:433
#, c-format
msgid "pathspec '%s' is beyond a symbolic link"
msgstr "Pfadspezifikation '%s' ist hinter einer symbolischen Verknüpfung"
-#: pathspec.c:441
+#: pathspec.c:442
msgid ""
"There is nothing to exclude from by :(exclude) patterns.\n"
"Perhaps you forgot to add either ':/' or '.' ?"
@@ -1089,166 +1113,192 @@ msgstr ""
"GIT_INDEX_VERSION gesetzt, aber Wert ungültig.\n"
"Verwende Version %i"
-#: refs.c:543 builtin/merge.c:760 builtin/merge.c:871 builtin/merge.c:973
-#: builtin/merge.c:983
+#: refs.c:543 builtin/merge.c:761 builtin/merge.c:872 builtin/merge.c:974
+#: builtin/merge.c:984
#, c-format
msgid "Could not open '%s' for writing"
msgstr "Konnte '%s' nicht zum Schreiben öffnen."
-#: refs/files-backend.c:2359
+#: refs/files-backend.c:2374
#, c-format
msgid "could not delete reference %s: %s"
msgstr "Konnte Referenz %s nicht entfernen: %s"
-#: refs/files-backend.c:2362
+#: refs/files-backend.c:2377
#, c-format
msgid "could not delete references: %s"
msgstr "Konnte Referenzen nicht entfernen: %s"
-#: refs/files-backend.c:2371
+#: refs/files-backend.c:2386
#, c-format
msgid "could not remove reference %s"
msgstr "Konnte Referenz %s nicht löschen"
-#: ref-filter.c:245
+#: ref-filter.c:55
#, c-format
-msgid "format: %%(end) atom used without corresponding atom"
-msgstr "Format: %%(end) Atom ohne zugehöriges Atom verwendet"
+msgid "expected format: %%(color:<color>)"
+msgstr "Erwartetes Format: %%(color:<Farbe>)"
+
+#: ref-filter.c:57
+#, c-format
+msgid "unrecognized color: %%(color:%s)"
+msgstr "nicht erkannte Farbe: %%(color:%s)"
-#: ref-filter.c:704
+#: ref-filter.c:71
+#, c-format
+msgid "unrecognized format: %%(%s)"
+msgstr "nicht erkanntes Format: %%(%s)"
+
+#: ref-filter.c:101
#, c-format
msgid "positive value expected contents:lines=%s"
msgstr "Positiver Wert erwartet contents:lines=%s"
-#: ref-filter.c:833
+#: ref-filter.c:103
#, c-format
-msgid "expected format: %%(color:<color>)"
-msgstr "Erwartetes Format: %%(color:<Farbe>)"
+msgid "unrecognized %%(contents) argument: %s"
+msgstr "nicht erkanntes %%(contents) Argument: %s"
-#: ref-filter.c:835
-msgid "unable to parse format"
-msgstr "Konnte Format nicht parsen."
+#: ref-filter.c:113
+#, c-format
+msgid "unrecognized %%(objectname) argument: %s"
+msgstr "nicht erkanntes %%(objectname) Argument: %s"
-#: ref-filter.c:870
+#: ref-filter.c:135
#, c-format
msgid "expected format: %%(align:<width>,<position>)"
msgstr "Erwartetes Format: %%(align:<Breite>,<Position>)"
-#: ref-filter.c:893
+#: ref-filter.c:147
+#, c-format
+msgid "unrecognized position:%s"
+msgstr "nicht erkannte Position:%s"
+
+#: ref-filter.c:151
+#, c-format
+msgid "unrecognized width:%s"
+msgstr "nicht erkannte Breite:%s"
+
+#: ref-filter.c:157
#, c-format
-msgid "improper format entered align:%s"
-msgstr "Sie haben ein ungültiges Format eingegeben align:%s"
+msgid "unrecognized %%(align) argument: %s"
+msgstr "nicht erkanntes %%(align) Argument: %s"
-#: ref-filter.c:898
+#: ref-filter.c:161
#, c-format
msgid "positive width expected with the %%(align) atom"
msgstr "Positive Breitenangabe für %%(align) erwartet"
-#: ref-filter.c:1219
+#: ref-filter.c:372
+#, c-format
+msgid "format: %%(end) atom used without corresponding atom"
+msgstr "Format: %%(end) Atom ohne zugehöriges Atom verwendet"
+
+#: ref-filter.c:1311
#, c-format
msgid "malformed object at '%s'"
msgstr "fehlerhaftes Objekt bei '%s'"
-#: ref-filter.c:1561
+#: ref-filter.c:1651
#, c-format
msgid "format: %%(end) atom missing"
msgstr "Format: %%(end) Atom fehlt"
-#: ref-filter.c:1615
+#: ref-filter.c:1705
#, c-format
msgid "malformed object name %s"
msgstr "Missgebildeter Objektname %s"
-#: remote.c:756
+#: remote.c:745
#, 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:760
+#: remote.c:749
#, c-format
msgid "%s usually tracks %s, not %s"
msgstr "%s folgt üblicherweise %s, nicht %s"
-#: remote.c:764
+#: remote.c:753
#, c-format
msgid "%s tracks both %s and %s"
msgstr "%s folgt sowohl %s als auch %s"
-#: remote.c:772
+#: remote.c:761
msgid "Internal error"
msgstr "Interner Fehler"
-#: remote.c:1687 remote.c:1730
+#: remote.c:1677 remote.c:1720
msgid "HEAD does not point to a branch"
msgstr "HEAD zeigt auf keinen Branch"
-#: remote.c:1696
+#: remote.c:1686
#, c-format
msgid "no such branch: '%s'"
msgstr "Kein solcher Branch: '%s'"
-#: remote.c:1699
+#: remote.c:1689
#, c-format
msgid "no upstream configured for branch '%s'"
msgstr "Kein Upstream-Branch für Branch '%s' konfiguriert."
-#: remote.c:1705
+#: remote.c:1695
#, 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:1720
+#: remote.c:1710
#, 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:1735
+#: remote.c:1725
#, c-format
msgid "branch '%s' has no remote for pushing"
msgstr "Branch '%s' hat keinen Upstream-Branch gesetzt"
-#: remote.c:1746
+#: remote.c:1736
#, c-format
msgid "push refspecs for '%s' do not include '%s'"
msgstr "Push-Refspecs für '%s' beinhalten nicht '%s'"
-#: remote.c:1759
+#: remote.c:1749
msgid "push has no destination (push.default is 'nothing')"
msgstr "kein Ziel für \"push\" (push.default ist 'nothing')"
-#: remote.c:1781
+#: remote.c:1771
msgid "cannot resolve 'simple' push to a single destination"
msgstr "kann einzelnes Ziel für \"push\" im Modus 'simple' nicht auflösen"
-#: remote.c:2083
+#: remote.c:2073
#, 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:2087
+#: remote.c:2077
msgid " (use \"git branch --unset-upstream\" to fixup)\n"
msgstr " (benutzen Sie \"git branch --unset-upstream\" zum Beheben)\n"
-#: remote.c:2090
+#: remote.c:2080
#, c-format
msgid "Your branch is up-to-date with '%s'.\n"
msgstr "Ihr Branch ist auf dem selben Stand wie '%s'.\n"
-#: remote.c:2094
+#: remote.c:2084
#, 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 vor '%s' um %d Commit.\n"
msgstr[1] "Ihr Branch ist vor '%s' um %d Commits.\n"
-#: remote.c:2100
+#: remote.c:2090
msgid " (use \"git push\" to publish your local commits)\n"
msgstr " (benutzen Sie \"git push\", um lokale Commits zu publizieren)\n"
-#: remote.c:2103
+#: remote.c:2093
#, c-format
msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
msgid_plural ""
@@ -1258,12 +1308,12 @@ msgstr[0] ""
msgstr[1] ""
"Ihr Branch ist zu '%s' um %d Commits hinterher, und kann vorgespult werden.\n"
-#: remote.c:2111
+#: remote.c:2101
msgid " (use \"git pull\" to update your local branch)\n"
msgstr ""
" (benutzen Sie \"git pull\", um Ihren lokalen Branch zu aktualisieren)\n"
-#: remote.c:2114
+#: remote.c:2104
#, c-format
msgid ""
"Your branch and '%s' have diverged,\n"
@@ -1278,30 +1328,30 @@ msgstr[1] ""
"Ihr Branch und '%s' sind divergiert,\n"
"und haben jeweils %d und %d unterschiedliche Commits.\n"
-#: remote.c:2124
+#: remote.c:2114
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"
-#: revision.c:2193
+#: revision.c:2131
msgid "your current branch appears to be broken"
msgstr "Ihr aktueller Branch scheint fehlerhaft zu sein."
-#: revision.c:2196
+#: revision.c:2134
#, c-format
msgid "your current branch '%s' does not have any commits yet"
msgstr "Ihr aktueller Branch '%s' hat noch keine Commits."
-#: revision.c:2390
+#: revision.c:2328
msgid "--first-parent is incompatible with --bisect"
msgstr "Die Optionen --first-parent und --bisect sind inkompatibel."
-#: run-command.c:90
+#: run-command.c:92
msgid "open /dev/null failed"
msgstr "Öffnen von /dev/null fehlgeschlagen"
-#: run-command.c:92
+#: run-command.c:94
#, c-format
msgid "dup2(%d,%d) failed"
msgstr "dup2(%d,%d) fehlgeschlagen"
@@ -1327,7 +1377,7 @@ msgstr ""
msgid "the receiving end does not support --atomic push"
msgstr "die Gegenseite unterstützt keinen atomaren Versand (\"--atomic push\")"
-#: sequencer.c:183
+#: sequencer.c:174
msgid ""
"after resolving the conflicts, mark the corrected paths\n"
"with 'git add <paths>' or 'git rm <paths>'"
@@ -1335,7 +1385,7 @@ msgstr ""
"nach Auflösung der Konflikte, markieren Sie die korrigierten Pfade\n"
"mit 'git add <Pfade>' oder 'git rm <Pfade>'"
-#: sequencer.c:186
+#: sequencer.c:177
msgid ""
"after resolving the conflicts, mark the corrected paths\n"
"with 'git add <paths>' or 'git rm <paths>'\n"
@@ -1345,231 +1395,231 @@ msgstr ""
"mit 'git add <Pfade>' oder 'git rm <Pfade>'und tragen Sie das Ergebnis mit\n"
"'git commit' ein"
-#: sequencer.c:199 sequencer.c:842 sequencer.c:922
+#: sequencer.c:190 sequencer.c:833 sequencer.c:913
#, c-format
msgid "Could not write to %s"
msgstr "Konnte nicht nach %s schreiben"
-#: sequencer.c:202
+#: sequencer.c:193
#, c-format
msgid "Error wrapping up %s"
msgstr "Fehler bei Nachbereitung von %s"
-#: sequencer.c:217
+#: sequencer.c:208
msgid "Your local changes would be overwritten by cherry-pick."
msgstr ""
"Ihre lokalen Änderungen würden von \"cherry-pick\" überschrieben werden."
-#: sequencer.c:219
+#: sequencer.c:210
msgid "Your local changes would be overwritten by revert."
msgstr "Ihre lokalen Änderungen würden von \"revert\" überschrieben werden."
-#: sequencer.c:222
+#: sequencer.c:213
msgid "Commit your changes or stash them to proceed."
msgstr ""
"Committen Sie Ihre Änderungen oder benutzen Sie \"stash\", um fortzufahren."
#. TRANSLATORS: %s will be "revert" or "cherry-pick"
-#: sequencer.c:309
+#: sequencer.c:300
#, c-format
msgid "%s: Unable to write new index file"
msgstr "%s: Konnte neue Index-Datei nicht schreiben"
-#: sequencer.c:327
+#: sequencer.c:318
msgid "Could not resolve HEAD commit\n"
msgstr "Konnte Commit von HEAD nicht auflösen\n"
-#: sequencer.c:347
+#: sequencer.c:338
msgid "Unable to update cache tree\n"
msgstr "Konnte Cache-Verzeichnis nicht aktualisieren\n"
-#: sequencer.c:399
+#: sequencer.c:390
#, c-format
msgid "Could not parse commit %s\n"
msgstr "Konnte Commit %s nicht parsen\n"
-#: sequencer.c:404
+#: sequencer.c:395
#, c-format
msgid "Could not parse parent commit %s\n"
msgstr "Konnte Eltern-Commit %s nicht parsen\n"
-#: sequencer.c:469
+#: sequencer.c:460
msgid "Your index file is unmerged."
msgstr "Ihre Index-Datei ist nicht zusammengeführt."
-#: sequencer.c:488
+#: sequencer.c:479
#, 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:496
+#: sequencer.c:487
#, c-format
msgid "Commit %s does not have parent %d"
msgstr "Commit %s hat keinen Elternteil %d"
-#: sequencer.c:500
+#: sequencer.c:491
#, c-format
msgid "Mainline was specified but commit %s is not a merge."
msgstr "Hauptlinie wurde spezifiziert, aber Commit %s ist kein Merge."
#. TRANSLATORS: The first %s will be "revert" or
#. "cherry-pick", the second %s a SHA1
-#: sequencer.c:513
+#: sequencer.c:504
#, c-format
msgid "%s: cannot parse parent commit %s"
msgstr "%s: kann Eltern-Commit %s nicht parsen"
-#: sequencer.c:517
+#: sequencer.c:508
#, c-format
msgid "Cannot get commit message for %s"
msgstr "Kann keine Commit-Beschreibung für %s bekommen"
-#: sequencer.c:603
+#: sequencer.c:594
#, c-format
msgid "could not revert %s... %s"
msgstr "Konnte \"revert\" nicht auf %s... (%s) ausführen"
-#: sequencer.c:604
+#: sequencer.c:595
#, c-format
msgid "could not apply %s... %s"
msgstr "Konnte %s... (%s) nicht anwenden"
-#: sequencer.c:639
+#: sequencer.c:630
msgid "empty commit set passed"
msgstr "leere Menge von Commits übergeben"
-#: sequencer.c:647
+#: sequencer.c:638
#, c-format
msgid "git %s: failed to read the index"
msgstr "git %s: Fehler beim Lesen des Index"
-#: sequencer.c:651
+#: sequencer.c:642
#, c-format
msgid "git %s: failed to refresh the index"
msgstr "git %s: Fehler beim Aktualisieren des Index"
-#: sequencer.c:711
+#: sequencer.c:702
#, c-format
msgid "Cannot %s during a %s"
msgstr "Kann %s nicht während eines %s durchführen"
-#: sequencer.c:733
+#: sequencer.c:724
#, c-format
msgid "Could not parse line %d."
msgstr "Konnte Zeile %d nicht parsen."
-#: sequencer.c:738
+#: sequencer.c:729
msgid "No commits parsed."
msgstr "Keine Commits geparst."
-#: sequencer.c:750
+#: sequencer.c:741
#, c-format
msgid "Could not open %s"
msgstr "Konnte %s nicht öffnen"
-#: sequencer.c:754
+#: sequencer.c:745
#, c-format
msgid "Could not read %s."
msgstr "Konnte %s nicht lesen."
-#: sequencer.c:761
+#: sequencer.c:752
#, c-format
msgid "Unusable instruction sheet: %s"
msgstr "Unbenutzbares Instruktionsblatt: %s"
-#: sequencer.c:791
+#: sequencer.c:782
#, c-format
msgid "Invalid key: %s"
msgstr "Ungültiger Schlüssel: %s"
-#: sequencer.c:794 builtin/pull.c:47 builtin/pull.c:49
+#: sequencer.c:785 builtin/pull.c:50 builtin/pull.c:52
#, c-format
msgid "Invalid value for %s: %s"
msgstr "Ungültiger Wert für %s: %s"
-#: sequencer.c:804
+#: sequencer.c:795
#, c-format
msgid "Malformed options sheet: %s"
msgstr "Fehlerhaftes Optionsblatt: %s"
-#: sequencer.c:823
+#: sequencer.c:814
msgid "a cherry-pick or revert is already in progress"
msgstr "\"cherry-pick\" oder \"revert\" ist bereits im Gang"
-#: sequencer.c:824
+#: sequencer.c:815
msgid "try \"git cherry-pick (--continue | --quit | --abort)\""
msgstr "versuchen Sie \"git cherry-pick (--continue | --quit | --abort)\""
-#: sequencer.c:828
+#: sequencer.c:819
#, c-format
msgid "Could not create sequencer directory %s"
msgstr "Konnte \"sequencer\"-Verzeichnis %s nicht erstellen"
-#: sequencer.c:844 sequencer.c:926
+#: sequencer.c:835 sequencer.c:917
#, c-format
msgid "Error wrapping up %s."
msgstr "Fehler beim Einpacken von %s."
-#: sequencer.c:863 sequencer.c:996
+#: sequencer.c:854 sequencer.c:987
msgid "no cherry-pick or revert in progress"
msgstr "kein \"cherry-pick\" oder \"revert\" im Gang"
-#: sequencer.c:865
+#: sequencer.c:856
msgid "cannot resolve HEAD"
msgstr "kann HEAD nicht auflösen"
-#: sequencer.c:867
+#: sequencer.c:858
msgid "cannot abort from a branch yet to be born"
msgstr "kann nicht abbrechen: bin auf einem Branch, der noch geboren wird"
-#: sequencer.c:887 builtin/apply.c:4287
+#: sequencer.c:878 builtin/apply.c:4287
#, c-format
msgid "cannot open %s: %s"
msgstr "Kann %s nicht öffnen: %s"
-#: sequencer.c:890
+#: sequencer.c:881
#, c-format
msgid "cannot read %s: %s"
msgstr "Kann %s nicht lesen: %s"
-#: sequencer.c:891
+#: sequencer.c:882
msgid "unexpected end of file"
msgstr "Unerwartetes Dateiende"
-#: sequencer.c:897
+#: sequencer.c:888
#, 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:919
+#: sequencer.c:910
#, c-format
msgid "Could not format %s."
msgstr "Konnte %s nicht formatieren."
-#: sequencer.c:1064
+#: sequencer.c:1055
#, c-format
msgid "%s: can't cherry-pick a %s"
msgstr "%s: %s kann nicht in \"cherry-pick\" benutzt werden"
-#: sequencer.c:1067
+#: sequencer.c:1058
#, c-format
msgid "%s: bad revision"
msgstr "%s: ungültiger Commit"
-#: sequencer.c:1101
+#: sequencer.c:1092
msgid "Can't revert as initial commit"
msgstr "Kann nicht als allerersten Commit einen Revert ausführen."
-#: sequencer.c:1102
+#: sequencer.c:1093
msgid "Can't cherry-pick into empty head"
msgstr "Kann nicht als allerersten Commit einen Cherry-Pick ausführen."
-#: setup.c:248
+#: setup.c:246
#, c-format
msgid "failed to read %s"
msgstr "Fehler beim Lesen von %s"
-#: sha1_name.c:463
+#: sha1_name.c:462
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"
@@ -1594,62 +1644,81 @@ msgstr ""
"indem Sie \"git config advice.objectNameWarning false\"\n"
"ausführen."
-#: submodule.c:61 submodule.c:95
+#: submodule.c:62 submodule.c:96
msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
msgstr ""
"Kann nicht zusammengeführte .gitmodules-Datei nicht ändern, lösen\n"
"Sie zuerst die Konflikte auf"
-#: submodule.c:65 submodule.c:99
+#: submodule.c:66 submodule.c:100
#, c-format
msgid "Could not find section in .gitmodules where path=%s"
msgstr "Konnte keine Sektion in .gitmodules mit Pfad \"%s\" finden"
-#: submodule.c:73
+#: submodule.c:74
#, c-format
msgid "Could not update .gitmodules entry %s"
msgstr "Konnte Eintrag '%s' in .gitmodules nicht aktualisieren"
-#: submodule.c:106
+#: submodule.c:107
#, c-format
msgid "Could not remove .gitmodules entry for %s"
msgstr "Konnte Eintrag '%s' nicht aus .gitmodules entfernen"
-#: submodule.c:117
+#: submodule.c:118
msgid "staging updated .gitmodules failed"
msgstr "Konnte aktualisierte .gitmodules-Datei nicht zum Commit vormerken"
-#: submodule.c:1040
-#, c-format
-msgid "Could not set core.worktree in %s"
-msgstr "Konnte core.worktree in '%s' nicht setzen."
-
-#: trailer.c:491 trailer.c:495 trailer.c:499 trailer.c:553 trailer.c:557
-#: trailer.c:561
+#: trailer.c:492 trailer.c:496 trailer.c:500 trailer.c:554 trailer.c:558
+#: trailer.c:562
#, c-format
msgid "unknown value '%s' for key '%s'"
msgstr "unbekannter Wert '%s' für Schlüssel %s"
-#: trailer.c:543 trailer.c:548 builtin/remote.c:296
+#: trailer.c:544 trailer.c:549 builtin/remote.c:289
#, c-format
msgid "more than one %s"
msgstr "mehr als ein %s"
-#: trailer.c:581
+#: trailer.c:582
#, c-format
msgid "empty trailer token in trailer '%.*s'"
msgstr "leerer Anhang-Token in Anhang '%.*s'"
-#: trailer.c:701
+#: trailer.c:702
#, c-format
msgid "could not read input file '%s'"
msgstr "Konnte Eingabe-Datei '%s' nicht lesen"
-#: trailer.c:704
+#: trailer.c:705
msgid "could not read from stdin"
msgstr "konnte nicht von der Standard-Eingabe lesen"
-#: transport-helper.c:1025
+#: trailer.c:857 builtin/am.c:42
+#, c-format
+msgid "could not stat %s"
+msgstr "Konnte '%s' nicht lesen"
+
+#: trailer.c:859
+#, c-format
+msgid "file %s is not a regular file"
+msgstr "Datei '%s' ist keine reguläre Datei"
+
+#: trailer.c:861
+#, c-format
+msgid "file %s is not writable by user"
+msgstr "Datei %s ist vom Benutzer nicht beschreibbar."
+
+#: trailer.c:873
+msgid "could not open temporary file"
+msgstr "konnte temporäre Datei '%s' nicht öffnen"
+
+#: trailer.c:912
+#, c-format
+msgid "could not rename temporary file to %s"
+msgstr "konnte temporäre Datei nicht zu %s umbenennen"
+
+#: transport-helper.c:1041
#, c-format
msgid "Could not read ref %s"
msgstr "Konnte Referenz %s nicht lesen."
@@ -1687,47 +1756,47 @@ msgstr "ungültige Portnummer"
msgid "invalid '..' path segment"
msgstr "ungültiges '..' Pfadsegment"
-#: wrapper.c:219 wrapper.c:362
+#: wrapper.c:222 wrapper.c:381
#, c-format
msgid "could not open '%s' for reading and writing"
msgstr "Konnte '%s' nicht zum Lesen und Schreiben öffnen."
-#: wrapper.c:221 wrapper.c:364
+#: wrapper.c:224 wrapper.c:383
#, c-format
msgid "could not open '%s' for writing"
msgstr "Konnte '%s' nicht zum Schreiben öffnen."
-#: wrapper.c:223 wrapper.c:366 builtin/am.c:338 builtin/commit.c:1691
-#: builtin/merge.c:1074 builtin/pull.c:380
+#: wrapper.c:226 wrapper.c:385 builtin/am.c:323 builtin/commit.c:1691
+#: builtin/merge.c:1075 builtin/pull.c:387
#, c-format
msgid "could not open '%s' for reading"
msgstr "Konnte '%s' nicht zum Lesen öffnen."
-#: wrapper.c:579
+#: wrapper.c:611
#, c-format
msgid "unable to access '%s': %s"
msgstr "konnte nicht auf '%s' zugreifen: %s"
-#: wrapper.c:600
+#: wrapper.c:632
#, c-format
msgid "unable to access '%s'"
msgstr "konnte nicht auf '%s' zugreifen"
-#: wrapper.c:608
+#: wrapper.c:640
msgid "unable to get current working directory"
msgstr "Konnte aktuelles Arbeitsverzeichnis nicht bekommen."
-#: wrapper.c:635
+#: wrapper.c:667
#, c-format
msgid "could not open %s for writing"
msgstr "Konnte '%s' nicht zum Schreiben öffnen."
-#: wrapper.c:646 builtin/am.c:425
+#: wrapper.c:678 builtin/am.c:410
#, c-format
msgid "could not write to %s"
msgstr "Konnte nicht nach '%s' schreiben."
-#: wrapper.c:652
+#: wrapper.c:684
#, c-format
msgid "could not close %s"
msgstr "Konnte '%s' nicht schließen."
@@ -1944,14 +2013,14 @@ msgstr ""
#: wt-status.c:1105
msgid "No commands done."
-msgstr "Keine Kommandos ausgeführt."
+msgstr "Keine Befehle ausgeführt."
#: wt-status.c:1108
#, c-format
msgid "Last command done (%d command done):"
msgid_plural "Last commands done (%d commands done):"
-msgstr[0] "Letztes Kommando ausgeführt (%d Kommando ausgeführt):"
-msgstr[1] "Letzte Kommandos ausgeführt (%d Kommandos ausgeführt):"
+msgstr[0] "Zuletzt ausgeführter Befehl (%d Befehl ausgeführt):"
+msgstr[1] "Zuletzt ausgeführte Befehle (%d Befehle ausgeführt):"
#: wt-status.c:1119
#, c-format
@@ -1960,14 +2029,14 @@ msgstr " (mehr Informationen in Datei %s)"
#: wt-status.c:1124
msgid "No commands remaining."
-msgstr "Keine Kommandos verbleibend."
+msgstr "Keine Befehle verbleibend."
#: wt-status.c:1127
#, c-format
msgid "Next command to do (%d remaining command):"
msgid_plural "Next commands to do (%d remaining commands):"
-msgstr[0] "Nächstes auszuführendes Kommando (%d Kommando verbleibend):"
-msgstr[1] "Nächste auszuführende Kommandos (%d Kommandos verbleibend):"
+msgstr[0] "Nächster auszuführender Befehl (%d Befehle verbleibend):"
+msgstr[1] "Nächste auszuführende Befehle (%d Befehle verbleibend):"
#: wt-status.c:1135
msgid " (use \"git rebase --edit-todo\" to view and edit)"
@@ -2227,7 +2296,7 @@ msgstr "entfernt"
msgid "behind "
msgstr "hinterher "
-#: compat/precompose_utf8.c:56 builtin/clone.c:408
+#: compat/precompose_utf8.c:57 builtin/clone.c:413
#, c-format
msgid "failed to unlink '%s'"
msgstr "Konnte '%s' nicht entfernen."
@@ -2255,7 +2324,7 @@ msgid "Unstaged changes after refreshing the index:"
msgstr ""
"Nicht zum Commit vorgemerkte Änderungen nach Aktualisierung der Staging-Area:"
-#: builtin/add.c:194 builtin/rev-parse.c:796
+#: builtin/add.c:194 builtin/rev-parse.c:797
msgid "Could not read the index"
msgstr "Konnte den Index nicht lesen"
@@ -2292,15 +2361,15 @@ msgstr ""
"Die folgenden Pfade werden durch eine Ihrer \".gitignore\" Dateien "
"ignoriert:\n"
-#: builtin/add.c:249 builtin/clean.c:894 builtin/fetch.c:108 builtin/mv.c:110
-#: builtin/prune-packed.c:55 builtin/pull.c:182 builtin/push.c:543
-#: builtin/remote.c:1345 builtin/rm.c:268 builtin/send-pack.c:162
+#: builtin/add.c:249 builtin/clean.c:870 builtin/fetch.c:112 builtin/mv.c:111
+#: builtin/prune-packed.c:55 builtin/pull.c:189 builtin/push.c:511
+#: builtin/remote.c:1330 builtin/rm.c:268 builtin/send-pack.c:162
msgid "dry run"
msgstr "Probelauf"
-#: builtin/add.c:250 builtin/apply.c:4571 builtin/check-ignore.c:19
+#: builtin/add.c:250 builtin/apply.c:4561 builtin/check-ignore.c:19
#: builtin/commit.c:1322 builtin/count-objects.c:85 builtin/fsck.c:558
-#: builtin/log.c:1645 builtin/mv.c:109 builtin/read-tree.c:114
+#: builtin/log.c:1651 builtin/mv.c:110 builtin/read-tree.c:114
msgid "be verbose"
msgstr "erweiterte Ausgaben"
@@ -2308,7 +2377,7 @@ msgstr "erweiterte Ausgaben"
msgid "interactive picking"
msgstr "interaktives Auswählen"
-#: builtin/add.c:253 builtin/checkout.c:1153 builtin/reset.c:286
+#: builtin/add.c:253 builtin/checkout.c:1155 builtin/reset.c:286
msgid "select hunks interactively"
msgstr "Blöcke interaktiv auswählen"
@@ -2379,144 +2448,139 @@ msgstr "Nichts spezifiziert, nichts hinzugefügt.\n"
msgid "Maybe you wanted to say 'git add .'?\n"
msgstr "Meinten Sie vielleicht 'git add .'?\n"
-#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:938
-#: builtin/commit.c:337 builtin/mv.c:130 builtin/reset.c:235 builtin/rm.c:298
-#: builtin/submodule--helper.c:40
+#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:914
+#: builtin/commit.c:337 builtin/mv.c:131 builtin/reset.c:235 builtin/rm.c:298
+#: builtin/submodule--helper.c:35
msgid "index file corrupt"
msgstr "Index-Datei beschädigt"
-#: builtin/add.c:439 builtin/apply.c:4669 builtin/mv.c:279 builtin/rm.c:430
+#: builtin/add.c:439 builtin/apply.c:4659 builtin/mv.c:280 builtin/rm.c:430
msgid "Unable to write new index file"
msgstr "Konnte neue Index-Datei nicht schreiben."
-#: builtin/am.c:42
-#, c-format
-msgid "could not stat %s"
-msgstr "Konnte '%s' nicht lesen"
-
-#: builtin/am.c:271 builtin/commit.c:738 builtin/merge.c:1077
+#: builtin/am.c:256 builtin/commit.c:738 builtin/merge.c:1078
#, c-format
msgid "could not read '%s'"
msgstr "Konnte '%s' nicht lesen"
-#: builtin/am.c:445
+#: builtin/am.c:430
msgid "could not parse author script"
msgstr "konnte Autor-Skript nicht parsen"
-#: builtin/am.c:522
+#: builtin/am.c:507
#, c-format
msgid "'%s' was deleted by the applypatch-msg hook"
msgstr "'%s' wurde durch den applypatch-msg Hook entfernt"
-#: builtin/am.c:563 builtin/notes.c:300
+#: builtin/am.c:548 builtin/notes.c:300
#, c-format
msgid "Malformed input line: '%s'."
msgstr "Fehlerhafte Eingabezeile: '%s'."
-#: builtin/am.c:600 builtin/notes.c:315
+#: builtin/am.c:585 builtin/notes.c:315
#, c-format
msgid "Failed to copy notes from '%s' to '%s'"
msgstr "Fehler beim Kopieren der Notizen von '%s' nach '%s'"
-#: builtin/am.c:626
+#: builtin/am.c:611
msgid "fseek failed"
msgstr "\"fseek\" fehlgeschlagen"
-#: builtin/am.c:787 builtin/am.c:875
+#: builtin/am.c:772 builtin/am.c:860
#, c-format
msgid "could not open '%s' for reading: %s"
msgstr "Konnte '%s' nicht zum Lesen öffnen: %s"
-#: builtin/am.c:794
+#: builtin/am.c:779
#, c-format
msgid "could not open '%s' for writing: %s"
msgstr "Konnte '%s' nicht zum Schreiben öffnen: %s"
-#: builtin/am.c:803
+#: builtin/am.c:788
#, c-format
msgid "could not parse patch '%s'"
msgstr "konnte Patch '%s' nicht parsen"
-#: builtin/am.c:868
+#: builtin/am.c:853
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:916
+#: builtin/am.c:901
msgid "invalid timestamp"
msgstr "ungültiger Zeitstempel"
-#: builtin/am.c:919 builtin/am.c:927
+#: builtin/am.c:904 builtin/am.c:912
msgid "invalid Date line"
msgstr "Ungültige \"Date\"-Zeile"
-#: builtin/am.c:924
+#: builtin/am.c:909
msgid "invalid timezone offset"
msgstr "Ungültiger Offset in der Zeitzone"
-#: builtin/am.c:1011
+#: builtin/am.c:996
msgid "Patch format detection failed."
msgstr "Patch-Formaterkennung fehlgeschlagen."
-#: builtin/am.c:1016 builtin/clone.c:373
+#: builtin/am.c:1001 builtin/clone.c:378
#, c-format
msgid "failed to create directory '%s'"
msgstr "Fehler beim Erstellen von Verzeichnis '%s'"
-#: builtin/am.c:1020
+#: builtin/am.c:1005
msgid "Failed to split patches."
msgstr "Fehler beim Aufteilen der Patches."
-#: builtin/am.c:1152 builtin/commit.c:363
+#: builtin/am.c:1137 builtin/commit.c:363
msgid "unable to write index file"
msgstr "Konnte Index-Datei nicht schreiben."
-#: builtin/am.c:1203
+#: builtin/am.c:1188
#, 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:1204
+#: builtin/am.c:1189
#, 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:1205
+#: builtin/am.c:1190
#, 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:1343
+#: builtin/am.c:1328
msgid "Patch is empty. Was it split wrong?"
msgstr "Patch ist leer. War dessen Aufteilung falsch?"
-#: builtin/am.c:1417 builtin/log.c:1347
+#: builtin/am.c:1402 builtin/log.c:1350
#, c-format
msgid "invalid ident line: %s"
msgstr "Ungültige Identifikationszeile: %s"
-#: builtin/am.c:1444
+#: builtin/am.c:1429
#, c-format
msgid "unable to parse commit %s"
msgstr "Konnte Commit '%s' nicht parsen."
-#: builtin/am.c:1646
+#: builtin/am.c:1631
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:1648
+#: builtin/am.c:1633
msgid "Using index info to reconstruct a base tree..."
msgstr ""
"Verwende Informationen aus der Staging-Area, um ein Basisverzeichnis "
"nachzustellen ..."
-#: builtin/am.c:1667
+#: builtin/am.c:1652
msgid ""
"Did you hand edit your patch?\n"
"It does not apply to blobs recorded in its index."
@@ -2524,39 +2588,39 @@ msgstr ""
"Haben Sie den Patch per Hand editiert?\n"
"Er kann nicht auf die Blobs in seiner 'index' Zeile angewendet werden."
-#: builtin/am.c:1673
+#: builtin/am.c:1658
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:1688
+#: builtin/am.c:1673
msgid "Failed to merge in the changes."
msgstr "Merge der Änderungen fehlgeschlagen."
-#: builtin/am.c:1712 builtin/merge.c:632
+#: builtin/am.c:1697 builtin/merge.c:633
msgid "git write-tree failed to write a tree"
msgstr "\"git write-tree\" schlug beim Schreiben eines \"Tree\"-Objektes fehl"
-#: builtin/am.c:1719
+#: builtin/am.c:1704
msgid "applying to an empty history"
msgstr "auf leere Historie anwenden"
-#: builtin/am.c:1732 builtin/commit.c:1755 builtin/merge.c:829
-#: builtin/merge.c:854
+#: builtin/am.c:1717 builtin/commit.c:1755 builtin/merge.c:830
+#: builtin/merge.c:855
msgid "failed to write commit object"
msgstr "Fehler beim Schreiben des Commit-Objektes."
-#: builtin/am.c:1764 builtin/am.c:1768
+#: builtin/am.c:1749 builtin/am.c:1753
#, c-format
msgid "cannot resume: %s does not exist."
msgstr "Kann nicht fortsetzen: %s existiert nicht"
-#: builtin/am.c:1784
+#: builtin/am.c:1769
msgid "cannot be interactive without stdin connected to a terminal."
msgstr ""
"Kann nicht interaktiv sein, ohne dass die Standard-Eingabe mit einem "
"Terminal verbunden ist."
-#: builtin/am.c:1789
+#: builtin/am.c:1774
msgid "Commit Body is:"
msgstr "Commit-Beschreibung ist:"
@@ -2564,35 +2628,35 @@ msgstr "Commit-Beschreibung ist:"
#. in your translation. The program will only accept English
#. input at this point.
#.
-#: builtin/am.c:1799
+#: builtin/am.c:1784
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:1849
+#: builtin/am.c:1834
#, c-format
msgid "Dirty index: cannot apply patches (dirty: %s)"
msgstr "Geänderter Index: kann Patches nicht anwenden (geändert: %s)"
-#: builtin/am.c:1884 builtin/am.c:1955
+#: builtin/am.c:1869 builtin/am.c:1941
#, c-format
msgid "Applying: %.*s"
msgstr "Wende an: %.*s"
-#: builtin/am.c:1900
+#: builtin/am.c:1885
msgid "No changes -- Patch already applied."
msgstr "Keine Änderungen -- Patches bereits angewendet."
-#: builtin/am.c:1908
+#: builtin/am.c:1893
#, c-format
msgid "Patch failed at %s %.*s"
msgstr "Anwendung des Patches fehlgeschlagen bei %s %.*s"
-#: builtin/am.c:1914
+#: builtin/am.c:1899
#, c-format
msgid "The copy of the patch that failed is found in: %s"
msgstr "Die Kopie des fehlgeschlagenen Patches befindet sich in: %s"
-#: builtin/am.c:1958
+#: builtin/am.c:1944
msgid ""
"No changes - did you forget to use 'git add'?\n"
"If there is nothing left to stage, chances are that something else\n"
@@ -2603,7 +2667,7 @@ msgstr ""
"diese bereits anderweitig eingefügt worden sein; Sie könnten diesen Patch\n"
"auslassen."
-#: builtin/am.c:1965
+#: builtin/am.c:1951
msgid ""
"You still have unmerged paths in your index.\n"
"Did you forget to use 'git add'?"
@@ -2611,17 +2675,17 @@ msgstr ""
"Sie haben immer noch nicht zusammengeführte Pfade im Index.\n"
"Haben Sie vergessen 'git add' zu benutzen?"
-#: builtin/am.c:2073 builtin/am.c:2077 builtin/am.c:2089 builtin/reset.c:308
+#: builtin/am.c:2059 builtin/am.c:2063 builtin/am.c:2075 builtin/reset.c:308
#: builtin/reset.c:316
#, c-format
msgid "Could not parse object '%s'."
msgstr "Konnte Objekt '%s' nicht parsen."
-#: builtin/am.c:2125
+#: builtin/am.c:2111
msgid "failed to clean index"
msgstr "Fehler beim Bereinigen des Index"
-#: builtin/am.c:2159
+#: builtin/am.c:2145
msgid ""
"You seem to have moved HEAD since the last 'am' failure.\n"
"Not rewinding to ORIG_HEAD"
@@ -2629,153 +2693,153 @@ msgstr ""
"Sie scheinen seit dem letzten gescheiterten 'am' HEAD geändert zu haben.\n"
"Keine Zurücksetzung zu ORIG_HEAD."
-#: builtin/am.c:2220
+#: builtin/am.c:2206
#, c-format
msgid "Invalid value for --patch-format: %s"
msgstr "Ungültiger Wert für --patch-format: %s"
-#: builtin/am.c:2253
+#: builtin/am.c:2239
msgid "git am [<options>] [(<mbox>|<Maildir>)...]"
msgstr "git am [<Optionen>] [(<mbox>|<E-Mail-Verzeichnis>)...]"
-#: builtin/am.c:2254
+#: builtin/am.c:2240
msgid "git am [<options>] (--continue | --skip | --abort)"
msgstr "git am [<Optionen>] (--continue | --skip | --abort)"
-#: builtin/am.c:2260
+#: builtin/am.c:2246
msgid "run interactively"
msgstr "interaktiv ausführen"
-#: builtin/am.c:2262
+#: builtin/am.c:2248
msgid "historical option -- no-op"
msgstr "historische Option -- kein Effekt"
-#: builtin/am.c:2264
+#: builtin/am.c:2250
msgid "allow fall back on 3way merging if needed"
msgstr "erlaube, falls notwendig, das Zurückfallen auf einen 3-Wege-Merge"
-#: builtin/am.c:2265 builtin/init-db.c:474 builtin/prune-packed.c:57
+#: builtin/am.c:2251 builtin/init-db.c:474 builtin/prune-packed.c:57
#: builtin/repack.c:171
msgid "be quiet"
msgstr "weniger Ausgaben"
-#: builtin/am.c:2267
+#: builtin/am.c:2253
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:2270
+#: builtin/am.c:2256
msgid "recode into utf8 (default)"
msgstr "nach UTF-8 umkodieren (Standard)"
-#: builtin/am.c:2272
+#: builtin/am.c:2258
msgid "pass -k flag to git-mailinfo"
msgstr "-k an git-mailinfo übergeben"
-#: builtin/am.c:2274
+#: builtin/am.c:2260
msgid "pass -b flag to git-mailinfo"
msgstr "-b an git-mailinfo übergeben"
-#: builtin/am.c:2276
+#: builtin/am.c:2262
msgid "pass -m flag to git-mailinfo"
msgstr "-m an git-mailinfo übergeben"
-#: builtin/am.c:2278
+#: builtin/am.c:2264
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:2281
+#: builtin/am.c:2267
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:2284
+#: builtin/am.c:2270
msgid "strip everything before a scissors line"
msgstr "alles vor einer Scheren-Zeile entfernen"
-#: builtin/am.c:2285 builtin/apply.c:4554
+#: builtin/am.c:2271 builtin/apply.c:4544
msgid "action"
msgstr "Aktion"
-#: builtin/am.c:2286 builtin/am.c:2289 builtin/am.c:2292 builtin/am.c:2295
-#: builtin/am.c:2298 builtin/am.c:2301 builtin/am.c:2304 builtin/am.c:2307
-#: builtin/am.c:2313
+#: builtin/am.c:2272 builtin/am.c:2275 builtin/am.c:2278 builtin/am.c:2281
+#: builtin/am.c:2284 builtin/am.c:2287 builtin/am.c:2290 builtin/am.c:2293
+#: builtin/am.c:2299
msgid "pass it through git-apply"
msgstr "an git-apply übergeben"
-#: builtin/am.c:2294 builtin/apply.c:4578
+#: builtin/am.c:2280 builtin/apply.c:4568
msgid "root"
msgstr "Wurzelverzeichnis"
-#: builtin/am.c:2297 builtin/am.c:2300 builtin/apply.c:4516
-#: builtin/apply.c:4519 builtin/clone.c:85 builtin/fetch.c:93
-#: builtin/pull.c:167 builtin/submodule--helper.c:78
-#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
+#: builtin/am.c:2283 builtin/am.c:2286 builtin/apply.c:4506
+#: builtin/apply.c:4509 builtin/clone.c:86 builtin/fetch.c:95
+#: builtin/pull.c:171 builtin/submodule--helper.c:72
+#: builtin/submodule--helper.c:160 builtin/submodule--helper.c:163
msgid "path"
msgstr "Pfad"
-#: builtin/am.c:2303 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
-#: builtin/grep.c:693 builtin/merge.c:198 builtin/pull.c:127
-#: builtin/repack.c:178 builtin/repack.c:182 builtin/show-branch.c:645
-#: builtin/show-ref.c:175 builtin/tag.c:340 parse-options.h:132
-#: parse-options.h:134 parse-options.h:244
+#: builtin/am.c:2289 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
+#: builtin/grep.c:704 builtin/merge.c:198 builtin/pull.c:131
+#: builtin/pull.c:185 builtin/repack.c:178 builtin/repack.c:182
+#: builtin/show-branch.c:645 builtin/show-ref.c:175 builtin/tag.c:340
+#: parse-options.h:132 parse-options.h:134 parse-options.h:244
msgid "n"
msgstr "Anzahl"
-#: builtin/am.c:2306 builtin/apply.c:4522
+#: builtin/am.c:2292 builtin/apply.c:4512
msgid "num"
msgstr "Anzahl"
-#: builtin/am.c:2309 builtin/for-each-ref.c:37 builtin/replace.c:438
+#: builtin/am.c:2295 builtin/for-each-ref.c:37 builtin/replace.c:438
#: builtin/tag.c:372
msgid "format"
msgstr "Format"
-#: builtin/am.c:2310
+#: builtin/am.c:2296
msgid "format the patch(es) are in"
msgstr "Patch-Format"
-#: builtin/am.c:2316
+#: builtin/am.c:2302
msgid "override error message when patch failure occurs"
msgstr "Meldung bei fehlerhafter Patch-Anwendung überschreiben"
-#: builtin/am.c:2318
+#: builtin/am.c:2304
msgid "continue applying patches after resolving a conflict"
msgstr "Anwendung der Patches nach Auflösung eines Konfliktes fortsetzen"
-#: builtin/am.c:2321
+#: builtin/am.c:2307
msgid "synonyms for --continue"
msgstr "Synonyme für --continue"
-#: builtin/am.c:2324
+#: builtin/am.c:2310
msgid "skip the current patch"
msgstr "den aktuellen Patch auslassen"
-#: builtin/am.c:2327
+#: builtin/am.c:2313
msgid "restore the original branch and abort the patching operation."
msgstr ""
"ursprünglichen Branch wiederherstellen und Anwendung der Patches abbrechen"
-#: builtin/am.c:2331
+#: builtin/am.c:2317
msgid "lie about committer date"
msgstr "Autor-Datum als Commit-Datum verwenden"
-#: builtin/am.c:2333
+#: builtin/am.c:2319
msgid "use current timestamp for author date"
msgstr "aktuellen Zeitstempel als Autor-Datum verwenden"
-#: builtin/am.c:2335 builtin/commit.c:1593 builtin/merge.c:225
-#: builtin/pull.c:155 builtin/revert.c:92 builtin/tag.c:355
+#: builtin/am.c:2321 builtin/commit.c:1593 builtin/merge.c:225
+#: builtin/pull.c:159 builtin/revert.c:92 builtin/tag.c:355
msgid "key-id"
msgstr "GPG-Schlüsselkennung"
-#: builtin/am.c:2336
+#: builtin/am.c:2322
msgid "GPG-sign commits"
msgstr "Commits mit GPG signieren"
-#: builtin/am.c:2339
+#: builtin/am.c:2325
msgid "(internal use for git-rebase)"
msgstr "(intern für git-rebase verwendet)"
-#: builtin/am.c:2354
+#: builtin/am.c:2340
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."
@@ -2783,16 +2847,16 @@ msgstr ""
"Die -b/--binary Option hat seit Langem keinen Effekt und wird\n"
"entfernt. Bitte verwenden Sie diese nicht mehr."
-#: builtin/am.c:2361
+#: builtin/am.c:2347
msgid "failed to read the index"
msgstr "Fehler beim Lesen des Index"
-#: builtin/am.c:2376
+#: builtin/am.c:2362
#, 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:2400
+#: builtin/am.c:2386
#, c-format
msgid ""
"Stray %s directory found.\n"
@@ -2801,7 +2865,7 @@ msgstr ""
"Stray %s Verzeichnis gefunden.\n"
"Benutzen Sie \"git am --abort\", um es zu entfernen."
-#: builtin/am.c:2406
+#: builtin/am.c:2392
msgid "Resolve operation not in progress, we are not resuming."
msgstr "Es ist keine Auflösung im Gange, es wird nicht fortgesetzt."
@@ -3152,148 +3216,148 @@ msgstr "nicht erkannte Eingabe"
msgid "unable to read index file"
msgstr "Konnte Index-Datei nicht lesen"
-#: builtin/apply.c:4517
+#: builtin/apply.c:4507
msgid "don't apply changes matching the given path"
msgstr "keine Änderungen im angegebenen Pfad anwenden"
-#: builtin/apply.c:4520
+#: builtin/apply.c:4510
msgid "apply changes matching the given path"
msgstr "Änderungen nur im angegebenen Pfad anwenden"
-#: builtin/apply.c:4523
+#: builtin/apply.c:4513
msgid "remove <num> leading slashes from traditional diff paths"
msgstr ""
"<Anzahl> vorangestellte Schrägstriche von herkömmlichen Differenzpfaden "
"entfernen"
-#: builtin/apply.c:4526
+#: builtin/apply.c:4516
msgid "ignore additions made by the patch"
msgstr "hinzugefügte Zeilen des Patches ignorieren"
-#: builtin/apply.c:4528
+#: builtin/apply.c:4518
msgid "instead of applying the patch, output diffstat for the input"
msgstr ""
"anstatt der Anwendung des Patches, den \"diffstat\" für die Eingabe "
"ausgegeben"
-#: builtin/apply.c:4532
+#: builtin/apply.c:4522
msgid "show number of added and deleted lines in decimal notation"
msgstr ""
"die Anzahl von hinzugefügten/entfernten Zeilen in Dezimalnotation anzeigen"
-#: builtin/apply.c:4534
+#: builtin/apply.c:4524
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"
-#: builtin/apply.c:4536
+#: builtin/apply.c:4526
msgid "instead of applying the patch, see if the patch is applicable"
msgstr ""
"anstatt der Anwendung des Patches, zeige ob Patch angewendet werden kann"
-#: builtin/apply.c:4538
+#: builtin/apply.c:4528
msgid "make sure the patch is applicable to the current index"
msgstr ""
"sicherstellen, dass der Patch mit dem aktuellen Index angewendet werden kann"
-#: builtin/apply.c:4540
+#: builtin/apply.c:4530
msgid "apply a patch without touching the working tree"
msgstr "Patch anwenden, ohne Änderungen im Arbeitsverzeichnis vorzunehmen"
-#: builtin/apply.c:4542
+#: builtin/apply.c:4532
msgid "accept a patch that touches outside the working area"
msgstr ""
"Patch anwenden, der Änderungen außerhalb des Arbeitsverzeichnisses vornimmt"
-#: builtin/apply.c:4544
+#: builtin/apply.c:4534
msgid "also apply the patch (use with --stat/--summary/--check)"
msgstr "Patch anwenden (Benutzung mit --stat/--summary/--check)"
-#: builtin/apply.c:4546
+#: builtin/apply.c:4536
msgid "attempt three-way merge if a patch does not apply"
msgstr "versuche 3-Wege-Merge, wenn der Patch nicht angewendet werden konnte"
-#: builtin/apply.c:4548
+#: builtin/apply.c:4538
msgid "build a temporary index based on embedded index information"
msgstr ""
"einen temporären Index, basierend auf den integrierten Index-Informationen, "
"erstellen"
-#: builtin/apply.c:4550 builtin/checkout-index.c:198 builtin/ls-files.c:412
+#: builtin/apply.c:4541 builtin/checkout-index.c:169 builtin/ls-files.c:425
msgid "paths are separated with NUL character"
msgstr "Pfade sind getrennt durch NUL Zeichen"
-#: builtin/apply.c:4553
+#: builtin/apply.c:4543
msgid "ensure at least <n> lines of context match"
msgstr ""
"sicher stellen, dass mindestens <n> Zeilen des Kontextes übereinstimmen"
-#: builtin/apply.c:4555
+#: builtin/apply.c:4545
msgid "detect new or modified lines that have whitespace errors"
msgstr "neue oder geänderte Zeilen, die Whitespace-Fehler haben, ermitteln"
-#: builtin/apply.c:4558 builtin/apply.c:4561
+#: builtin/apply.c:4548 builtin/apply.c:4551
msgid "ignore changes in whitespace when finding context"
msgstr "Änderungen im Whitespace bei der Suche des Kontextes ignorieren"
-#: builtin/apply.c:4564
+#: builtin/apply.c:4554
msgid "apply the patch in reverse"
msgstr "den Patch in umgekehrter Reihenfolge anwenden"
-#: builtin/apply.c:4566
+#: builtin/apply.c:4556
msgid "don't expect at least one line of context"
msgstr "keinen Kontext erwarten"
-#: builtin/apply.c:4568
+#: builtin/apply.c:4558
msgid "leave the rejected hunks in corresponding *.rej files"
msgstr ""
"zurückgewiesene Patch-Blöcke in entsprechenden *.rej Dateien hinterlassen"
-#: builtin/apply.c:4570
+#: builtin/apply.c:4560
msgid "allow overlapping hunks"
msgstr "sich überlappende Patch-Blöcke erlauben"
-#: builtin/apply.c:4573
+#: builtin/apply.c:4563
msgid "tolerate incorrectly detected missing new-line at the end of file"
msgstr "fehlerhaft erkannten fehlenden Zeilenumbruch am Dateiende tolerieren"
-#: builtin/apply.c:4576
+#: builtin/apply.c:4566
msgid "do not trust the line counts in the hunk headers"
msgstr "den Zeilennummern im Kopf des Patch-Blocks nicht vertrauen"
-#: builtin/apply.c:4579
+#: builtin/apply.c:4569
msgid "prepend <root> to all filenames"
msgstr "<Wurzelverzeichnis> vor alle Dateinamen stellen"
-#: builtin/apply.c:4601
+#: builtin/apply.c:4591
msgid "--3way outside a repository"
msgstr ""
"Die Option --3way kann nicht außerhalb eines Repositories verwendet werden."
-#: builtin/apply.c:4609
+#: builtin/apply.c:4599
msgid "--index outside a repository"
msgstr ""
"Die Option --index kann nicht außerhalb eines Repositories verwendet werden."
-#: builtin/apply.c:4612
+#: builtin/apply.c:4602
msgid "--cached outside a repository"
msgstr ""
"Die Option --cached kann nicht außerhalb eines Repositories verwendet werden."
-#: builtin/apply.c:4631
+#: builtin/apply.c:4621
#, c-format
msgid "can't open patch '%s'"
msgstr "kann Patch '%s' nicht öffnen"
-#: builtin/apply.c:4645
+#: builtin/apply.c:4635
#, 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"
-#: builtin/apply.c:4651 builtin/apply.c:4661
+#: builtin/apply.c:4641 builtin/apply.c:4651
#, c-format
msgid "%d line adds whitespace errors."
msgid_plural "%d lines add whitespace errors."
@@ -3347,106 +3411,114 @@ msgstr "'git bisect next' ausführen"
msgid "update BISECT_HEAD instead of checking out the current commit"
msgstr "BISECT_HEAD aktualisieren, anstatt den aktuellen Commit auszuchecken"
-#: builtin/blame.c:32
+#: builtin/blame.c:33
msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>"
msgstr "git blame [<Optionen>] [<rev-opts>] [<Commit>] [--] <Datei>"
-#: builtin/blame.c:37
+#: builtin/blame.c:38
msgid "<rev-opts> are documented in git-rev-list(1)"
msgstr "<rev-opts> sind dokumentiert in git-rev-list(1)"
-#: builtin/blame.c:2519
+#: builtin/blame.c:1782
+msgid "Blaming lines"
+msgstr "Verarbeite Zeilen"
+
+#: builtin/blame.c:2530
msgid "Show blame entries as we find them, incrementally"
msgstr "\"blame\"-Einträge schrittweise anzeigen, während wir sie generieren"
-#: builtin/blame.c:2520
+#: builtin/blame.c:2531
msgid "Show blank SHA-1 for boundary commits (Default: off)"
msgstr "leere SHA-1 für Grenz-Commits anzeigen (Standard: aus)"
-#: builtin/blame.c:2521
+#: builtin/blame.c:2532
msgid "Do not treat root commits as boundaries (Default: off)"
msgstr "Ursprungs-Commit nicht als Grenzen behandeln (Standard: aus)"
-#: builtin/blame.c:2522
+#: builtin/blame.c:2533
msgid "Show work cost statistics"
msgstr "Statistiken zum Arbeitsaufwand anzeigen"
-#: builtin/blame.c:2523
+#: builtin/blame.c:2534
+msgid "Force progress reporting"
+msgstr "Fortschrittsanzeige erzwingen"
+
+#: builtin/blame.c:2535
msgid "Show output score for blame entries"
msgstr "Ausgabebewertung für \"blame\"-Einträge anzeigen"
-#: builtin/blame.c:2524
+#: builtin/blame.c:2536
msgid "Show original filename (Default: auto)"
msgstr "ursprünglichen Dateinamen anzeigen (Standard: auto)"
-#: builtin/blame.c:2525
+#: builtin/blame.c:2537
msgid "Show original linenumber (Default: off)"
msgstr "ursprüngliche Zeilennummer anzeigen (Standard: aus)"
-#: builtin/blame.c:2526
+#: builtin/blame.c:2538
msgid "Show in a format designed for machine consumption"
msgstr "Anzeige in einem Format für maschinelle Auswertung"
-#: builtin/blame.c:2527
+#: builtin/blame.c:2539
msgid "Show porcelain format with per-line commit information"
msgstr ""
"Anzeige in Format für Fremdprogramme mit Commit-Informationen pro Zeile"
-#: builtin/blame.c:2528
+#: builtin/blame.c:2540
msgid "Use the same output mode as git-annotate (Default: off)"
msgstr ""
"Den gleichen Ausgabemodus benutzen wie \"git-annotate\" (Standard: aus)"
-#: builtin/blame.c:2529
+#: builtin/blame.c:2541
msgid "Show raw timestamp (Default: off)"
msgstr "Unbearbeiteten Zeitstempel anzeigen (Standard: aus)"
-#: builtin/blame.c:2530
+#: builtin/blame.c:2542
msgid "Show long commit SHA1 (Default: off)"
msgstr "Langen Commit-SHA1 anzeigen (Standard: aus)"
-#: builtin/blame.c:2531
+#: builtin/blame.c:2543
msgid "Suppress author name and timestamp (Default: off)"
msgstr "Den Namen des Autors und den Zeitstempel unterdrücken (Standard: aus)"
-#: builtin/blame.c:2532
+#: builtin/blame.c:2544
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:2533
+#: builtin/blame.c:2545
msgid "Ignore whitespace differences"
msgstr "Unterschiede im Whitespace ignorieren"
-#: builtin/blame.c:2534
+#: builtin/blame.c:2546
msgid "Spend extra cycles to find better match"
msgstr "Länger arbeiten, um bessere Übereinstimmungen zu finden"
-#: builtin/blame.c:2535
+#: builtin/blame.c:2547
msgid "Use revisions from <file> instead of calling git-rev-list"
msgstr "Commits von <Datei> benutzen, anstatt \"git-rev-list\" aufzurufen"
-#: builtin/blame.c:2536
+#: builtin/blame.c:2548
msgid "Use <file>'s contents as the final image"
msgstr "Inhalte der <Datei>en als endgültiges Abbild benutzen"
-#: builtin/blame.c:2537 builtin/blame.c:2538
+#: builtin/blame.c:2549 builtin/blame.c:2550
msgid "score"
msgstr "Bewertung"
-#: builtin/blame.c:2537
+#: builtin/blame.c:2549
msgid "Find line copies within and across files"
msgstr "kopierte Zeilen innerhalb oder zwischen Dateien finden"
-#: builtin/blame.c:2538
+#: builtin/blame.c:2550
msgid "Find line movements within and across files"
msgstr "verschobene Zeilen innerhalb oder zwischen Dateien finden"
-#: builtin/blame.c:2539
+#: builtin/blame.c:2551
msgid "n,m"
msgstr "n,m"
-#: builtin/blame.c:2539
+#: builtin/blame.c:2551
msgid "Process only line range n,m, counting from 1"
msgstr "nur Zeilen im Bereich n,m verarbeiten, gezählt von 1"
@@ -3456,7 +3528,7 @@ msgstr "nur Zeilen im Bereich n,m verarbeiten, gezählt von 1"
#. takes 22 places, is the longest among various forms of
#. relative timestamps, but your language may need more or
#. fewer display columns.
-#: builtin/blame.c:2620
+#: builtin/blame.c:2640
msgid "4 years, 11 months ago"
msgstr "vor 4 Jahren, und 11 Monaten"
@@ -3659,157 +3731,157 @@ msgstr ""
"Branch ist umbenannt, aber die Aktualisierung der Konfigurationsdatei ist "
"fehlgeschlagen."
-#: builtin/branch.c:587
+#: builtin/branch.c:586
#, c-format
msgid "could not write branch description template: %s"
msgstr "Konnte Beschreibungsvorlage für Branch nicht schreiben: %s"
-#: builtin/branch.c:616
+#: builtin/branch.c:615
msgid "Generic options"
msgstr "Allgemeine Optionen"
-#: builtin/branch.c:618
+#: builtin/branch.c:617
msgid "show hash and subject, give twice for upstream branch"
msgstr "Hash und Betreff anzeigen; -vv: zusätzlich Upstream-Branch"
-#: builtin/branch.c:619
+#: builtin/branch.c:618
msgid "suppress informational messages"
msgstr "Informationsmeldungen unterdrücken"
-#: builtin/branch.c:620
+#: builtin/branch.c:619
msgid "set up tracking mode (see git-pull(1))"
msgstr "den Ãœbernahmemodus einstellen (siehe git-pull(1))"
-#: builtin/branch.c:622
+#: builtin/branch.c:621
msgid "change upstream info"
msgstr "Informationen zum Upstream-Branch ändern"
-#: builtin/branch.c:626
+#: builtin/branch.c:625
msgid "use colored output"
msgstr "farbige Ausgaben verwenden"
-#: builtin/branch.c:627
+#: builtin/branch.c:626
msgid "act on remote-tracking branches"
msgstr "auf Remote-Tracking-Branches wirken"
-#: builtin/branch.c:629 builtin/branch.c:630
+#: builtin/branch.c:628 builtin/branch.c:629
msgid "print only branches that contain the commit"
msgstr "nur Branches ausgeben, welche diesen Commit beinhalten"
-#: builtin/branch.c:633
+#: builtin/branch.c:632
msgid "Specific git-branch actions:"
msgstr "spezifische Aktionen für \"git-branch\":"
-#: builtin/branch.c:634
+#: builtin/branch.c:633
msgid "list both remote-tracking and local branches"
msgstr "Remote-Tracking und lokale Branches auflisten"
-#: builtin/branch.c:636
+#: builtin/branch.c:635
msgid "delete fully merged branch"
msgstr "vollständig zusammengeführten Branch entfernen"
-#: builtin/branch.c:637
+#: builtin/branch.c:636
msgid "delete branch (even if not merged)"
msgstr "Branch löschen (auch wenn nicht zusammengeführt)"
-#: builtin/branch.c:638
+#: builtin/branch.c:637
msgid "move/rename a branch and its reflog"
msgstr "einen Branch und dessen Reflog verschieben/umbenennen"
-#: builtin/branch.c:639
+#: builtin/branch.c:638
msgid "move/rename a branch, even if target exists"
msgstr ""
"einen Branch verschieben/umbenennen, auch wenn das Ziel bereits existiert"
-#: builtin/branch.c:640
+#: builtin/branch.c:639
msgid "list branch names"
msgstr "Branchnamen auflisten"
-#: builtin/branch.c:641
+#: builtin/branch.c:640
msgid "create the branch's reflog"
msgstr "das Reflog des Branches erzeugen"
-#: builtin/branch.c:643
+#: builtin/branch.c:642
msgid "edit the description for the branch"
msgstr "die Beschreibung für den Branch bearbeiten"
-#: builtin/branch.c:644
+#: builtin/branch.c:643
msgid "force creation, move/rename, deletion"
msgstr "Erstellung, Verschiebung/Umbenennung oder Löschung erzwingen"
-#: builtin/branch.c:645
+#: builtin/branch.c:644
msgid "print only branches that are merged"
msgstr "nur zusammengeführte Branches ausgeben"
-#: builtin/branch.c:646
+#: builtin/branch.c:645
msgid "print only branches that are not merged"
msgstr "nur nicht zusammengeführte Branches ausgeben"
-#: builtin/branch.c:647
+#: builtin/branch.c:646
msgid "list branches in columns"
msgstr "Branches in Spalten auflisten"
-#: builtin/branch.c:648 builtin/for-each-ref.c:38 builtin/tag.c:366
+#: builtin/branch.c:647 builtin/for-each-ref.c:38 builtin/tag.c:366
msgid "key"
msgstr "Schüssel"
-#: builtin/branch.c:649 builtin/for-each-ref.c:39 builtin/tag.c:367
+#: builtin/branch.c:648 builtin/for-each-ref.c:39 builtin/tag.c:367
msgid "field name to sort on"
msgstr "sortiere nach diesem Feld"
-#: builtin/branch.c:651 builtin/for-each-ref.c:41 builtin/notes.c:398
-#: builtin/notes.c:401 builtin/notes.c:561 builtin/notes.c:564
+#: builtin/branch.c:650 builtin/for-each-ref.c:41 builtin/notes.c:401
+#: builtin/notes.c:404 builtin/notes.c:564 builtin/notes.c:567
#: builtin/tag.c:369
msgid "object"
msgstr "Objekt"
-#: builtin/branch.c:652
+#: builtin/branch.c:651
msgid "print only branches of the object"
msgstr "nur Branches von diesem Objekt ausgeben"
-#: builtin/branch.c:670
+#: builtin/branch.c:669
msgid "Failed to resolve HEAD as a valid ref."
msgstr "Konnte HEAD nicht als gültige Referenz auflösen."
-#: builtin/branch.c:674 builtin/clone.c:697
+#: builtin/branch.c:673 builtin/clone.c:705
msgid "HEAD not found below refs/heads!"
msgstr "HEAD wurde nicht unter \"refs/heads\" gefunden!"
-#: builtin/branch.c:694
+#: builtin/branch.c:693
msgid "--column and --verbose are incompatible"
msgstr "Die Optionen --column und --verbose sind inkompatibel."
-#: builtin/branch.c:705 builtin/branch.c:747
+#: builtin/branch.c:704 builtin/branch.c:746
msgid "branch name required"
msgstr "Branchname erforderlich"
-#: builtin/branch.c:723
+#: builtin/branch.c:722
msgid "Cannot give description to detached HEAD"
msgstr "zu losgelöstem HEAD kann keine Beschreibung hinterlegt werden"
-#: builtin/branch.c:728
+#: builtin/branch.c:727
msgid "cannot edit description of more than one branch"
msgstr "Beschreibung von mehr als einem Branch kann nicht bearbeitet werden"
-#: builtin/branch.c:735
+#: builtin/branch.c:734
#, c-format
msgid "No commit on branch '%s' yet."
msgstr "Noch kein Commit in Branch '%s'."
-#: builtin/branch.c:738
+#: builtin/branch.c:737
#, c-format
msgid "No branch named '%s'."
msgstr "Branch '%s' nicht vorhanden."
-#: builtin/branch.c:753
+#: builtin/branch.c:752
msgid "too many branches for a rename operation"
msgstr "zu viele Branches für eine Umbenennen-Operation angegeben"
-#: builtin/branch.c:758
+#: builtin/branch.c:757
msgid "too many branches to set new upstream"
msgstr "zu viele Branches angegeben, um Upstream-Branch zu setzen"
-#: builtin/branch.c:762
+#: builtin/branch.c:761
#, c-format
msgid ""
"could not set upstream of HEAD to %s when it does not point to any branch."
@@ -3817,43 +3889,43 @@ msgstr ""
"Konnte keinen neuen Upstream-Branch von HEAD zu %s setzen, da dieser auf\n"
"keinen Branch zeigt."
-#: builtin/branch.c:765 builtin/branch.c:787 builtin/branch.c:808
+#: builtin/branch.c:764 builtin/branch.c:786 builtin/branch.c:807
#, c-format
msgid "no such branch '%s'"
msgstr "Kein solcher Branch '%s'"
-#: builtin/branch.c:769
+#: builtin/branch.c:768
#, c-format
msgid "branch '%s' does not exist"
msgstr "Branch '%s' existiert nicht"
-#: builtin/branch.c:781
+#: builtin/branch.c:780
msgid "too many branches to unset upstream"
msgstr ""
"zu viele Branches angegeben, um Konfiguration zu Upstream-Branch zu entfernen"
-#: builtin/branch.c:785
+#: builtin/branch.c:784
msgid "could not unset upstream of HEAD when it does not point to any branch."
msgstr ""
"Konnte Konfiguration zu Upstream-Branch von HEAD nicht entfernen, da dieser\n"
"auf keinen Branch zeigt."
-#: builtin/branch.c:791
+#: builtin/branch.c:790
#, c-format
msgid "Branch '%s' has no upstream information"
msgstr "Branch '%s' hat keinen Upstream-Branch gesetzt"
-#: builtin/branch.c:805
+#: builtin/branch.c:804
msgid "it does not make sense to create 'HEAD' manually"
msgstr "'HEAD' darf nicht manuell erstellt werden"
-#: builtin/branch.c:811
+#: builtin/branch.c:810
msgid "-a and -r options to 'git branch' do not make sense with a branch name"
msgstr ""
"Die Optionen -a und -r bei 'git branch' können nicht gemeimsam mit einem "
"Branchnamen verwendet werden."
-#: builtin/branch.c:814
+#: builtin/branch.c:813
#, c-format
msgid ""
"The --set-upstream flag is deprecated and will be removed. Consider using --"
@@ -3862,7 +3934,7 @@ msgstr ""
"Die --set-upstream Option ist veraltet und wird entfernt. Benutzen Sie --"
"track oder --set-upstream-to\n"
-#: builtin/branch.c:831
+#: builtin/branch.c:830
#, c-format
msgid ""
"\n"
@@ -3873,12 +3945,12 @@ msgstr ""
"Wenn Sie wollten, dass '%s' den Branch '%s' als Upstream-Branch hat, führen "
"Sie aus:\n"
-#: builtin/branch.c:832
+#: builtin/branch.c:831
#, c-format
msgid " git branch -d %s\n"
msgstr " git branch -d %s\n"
-#: builtin/branch.c:833
+#: builtin/branch.c:832
#, c-format
msgid " git branch --set-upstream-to %s\n"
msgstr " git branch --set-upstream-to %s\n"
@@ -3977,7 +4049,7 @@ msgstr "alle Attribute einer Datei ausgeben"
msgid "use .gitattributes only from the index"
msgstr "nur .gitattributes vom Index verwenden"
-#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:96
+#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:97
msgid "read file names from stdin"
msgstr "Dateinamen von der Standard-Eingabe lesen"
@@ -3985,7 +4057,7 @@ 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:18 builtin/checkout.c:1134 builtin/gc.c:325
+#: builtin/check-ignore.c:18 builtin/checkout.c:1136 builtin/gc.c:325
msgid "suppress progress reporting"
msgstr "Fortschrittsanzeige unterdrücken"
@@ -4039,52 +4111,56 @@ msgstr "Konnte Kontakt '%s' nicht parsen."
msgid "no contacts specified"
msgstr "keine Kontakte angegeben"
-#: builtin/checkout-index.c:126
+#: builtin/checkout-index.c:127
msgid "git checkout-index [<options>] [--] [<file>...]"
msgstr "git checkout-index [<Optionen>] [--] [<Datei>...]"
-#: builtin/checkout-index.c:188
+#: builtin/checkout-index.c:144
+msgid "stage should be between 1 and 3 or all"
+msgstr "--stage sollte zwischen 1 und 3 oder 'all' sein"
+
+#: builtin/checkout-index.c:160
msgid "check out all files in the index"
msgstr "alle Dateien im Index auschecken"
-#: builtin/checkout-index.c:189
+#: builtin/checkout-index.c:161
msgid "force overwrite of existing files"
msgstr "das Ãœberschreiben bereits existierender Dateien erzwingen"
-#: builtin/checkout-index.c:191
+#: builtin/checkout-index.c:163
msgid "no warning for existing files and files not in index"
msgstr ""
"keine Warnung für existierende Dateien, und Dateien, die sich nicht im Index "
"befinden"
-#: builtin/checkout-index.c:193
+#: builtin/checkout-index.c:165
msgid "don't checkout new files"
msgstr "keine neuen Dateien auschecken"
-#: builtin/checkout-index.c:195
+#: builtin/checkout-index.c:167
msgid "update stat information in the index file"
msgstr "Dateiinformationen in der Index-Datei aktualisieren"
-#: builtin/checkout-index.c:201
+#: builtin/checkout-index.c:171
msgid "read list of paths from the standard input"
msgstr "eine Liste von Pfaden von der Standard-Eingabe lesen"
-#: builtin/checkout-index.c:203
+#: builtin/checkout-index.c:173
msgid "write the content to temporary files"
msgstr "den Inhalt in temporäre Dateien schreiben"
-#: builtin/checkout-index.c:204 builtin/column.c:30
+#: builtin/checkout-index.c:174 builtin/column.c:30
+#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
#: builtin/submodule--helper.c:172 builtin/submodule--helper.c:175
-#: builtin/submodule--helper.c:178 builtin/submodule--helper.c:181
msgid "string"
msgstr "Zeichenkette"
-#: builtin/checkout-index.c:205
+#: builtin/checkout-index.c:175
msgid "when creating files, prepend <string>"
msgstr ""
"wenn Dateien erzeugt werden, stelle <Zeichenkette> dem Dateinamen voran"
-#: builtin/checkout-index.c:208
+#: builtin/checkout-index.c:177
msgid "copy out the files from named stage"
msgstr "Dateien von dem benannten Stand kopieren"
@@ -4165,37 +4241,37 @@ msgstr "Kann \"reflog\" für '%s' nicht durchführen: %s\n"
msgid "HEAD is now at"
msgstr "HEAD ist jetzt bei"
-#: builtin/checkout.c:668
+#: builtin/checkout.c:669
#, c-format
msgid "Reset branch '%s'\n"
msgstr "Setze Branch '%s' neu\n"
-#: builtin/checkout.c:671
+#: builtin/checkout.c:672
#, c-format
msgid "Already on '%s'\n"
msgstr "Bereits auf '%s'\n"
-#: builtin/checkout.c:675
+#: builtin/checkout.c:676
#, c-format
msgid "Switched to and reset branch '%s'\n"
msgstr "Zu umgesetztem Branch '%s' gewechselt\n"
-#: builtin/checkout.c:677 builtin/checkout.c:1066
+#: builtin/checkout.c:678 builtin/checkout.c:1068
#, c-format
msgid "Switched to a new branch '%s'\n"
msgstr "Zu neuem Branch '%s' gewechselt\n"
-#: builtin/checkout.c:679
+#: builtin/checkout.c:680
#, c-format
msgid "Switched to branch '%s'\n"
msgstr "Zu Branch '%s' gewechselt\n"
-#: builtin/checkout.c:731
+#: builtin/checkout.c:732
#, c-format
msgid " ... and %d more.\n"
msgstr " ... und %d weitere.\n"
-#: builtin/checkout.c:737
+#: builtin/checkout.c:738
#, c-format
msgid ""
"Warning: you are leaving %d commit behind, not connected to\n"
@@ -4218,7 +4294,7 @@ msgstr[1] ""
"\n"
"%s\n"
-#: builtin/checkout.c:756
+#: builtin/checkout.c:757
#, c-format
msgid ""
"If you want to keep it by creating a new branch, this may be a good time\n"
@@ -4245,152 +4321,152 @@ msgstr[1] ""
" git branch <neuer-Branchname> %s\n"
"\n"
-#: builtin/checkout.c:792
+#: builtin/checkout.c:793
msgid "internal error in revision walk"
msgstr "interner Fehler im Revisionsgang"
-#: builtin/checkout.c:796
+#: builtin/checkout.c:797
msgid "Previous HEAD position was"
msgstr "Vorherige Position von HEAD war"
-#: builtin/checkout.c:823 builtin/checkout.c:1061
+#: builtin/checkout.c:824 builtin/checkout.c:1063
msgid "You are on a branch yet to be born"
msgstr "Sie sind auf einem Branch, der noch geboren wird"
-#: builtin/checkout.c:968
+#: builtin/checkout.c:969
#, c-format
msgid "only one reference expected, %d given."
msgstr "nur eine Referenz erwartet, %d gegeben."
-#: builtin/checkout.c:1007 builtin/worktree.c:213
+#: builtin/checkout.c:1009 builtin/worktree.c:211
#, c-format
msgid "invalid reference: %s"
msgstr "Ungültige Referenz: %s"
-#: builtin/checkout.c:1036
+#: builtin/checkout.c:1038
#, c-format
msgid "reference is not a tree: %s"
msgstr "Referenz ist kein \"Tree\"-Objekt: %s"
-#: builtin/checkout.c:1075
+#: builtin/checkout.c:1077
msgid "paths cannot be used with switching branches"
msgstr "Pfade können nicht beim Wechseln von Branches verwendet werden"
-#: builtin/checkout.c:1078 builtin/checkout.c:1082
+#: builtin/checkout.c:1080 builtin/checkout.c:1084
#, c-format
msgid "'%s' cannot be used with switching branches"
msgstr "'%s' kann nicht beim Wechseln von Branches verwendet werden"
-#: builtin/checkout.c:1086 builtin/checkout.c:1089 builtin/checkout.c:1094
-#: builtin/checkout.c:1097
+#: builtin/checkout.c:1088 builtin/checkout.c:1091 builtin/checkout.c:1096
+#: builtin/checkout.c:1099
#, c-format
msgid "'%s' cannot be used with '%s'"
msgstr "'%s' kann nicht mit '%s' verwendet werden"
-#: builtin/checkout.c:1102
+#: builtin/checkout.c:1104
#, c-format
msgid "Cannot switch branch to a non-commit '%s'"
msgstr "Kann Branch nicht zu Nicht-Commit '%s' wechseln"
-#: builtin/checkout.c:1135 builtin/checkout.c:1137 builtin/clone.c:83
-#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:320
-#: builtin/worktree.c:322
+#: builtin/checkout.c:1137 builtin/checkout.c:1139 builtin/clone.c:84
+#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:318
+#: builtin/worktree.c:320
msgid "branch"
msgstr "Branch"
-#: builtin/checkout.c:1136
+#: builtin/checkout.c:1138
msgid "create and checkout a new branch"
msgstr "einen neuen Branch erzeugen und auschecken"
-#: builtin/checkout.c:1138
+#: builtin/checkout.c:1140
msgid "create/reset and checkout a branch"
msgstr "einen Branch erstellen/umsetzen und auschecken"
-#: builtin/checkout.c:1139
+#: builtin/checkout.c:1141
msgid "create reflog for new branch"
msgstr "das Reflog für den neuen Branch erzeugen"
-#: builtin/checkout.c:1140
+#: builtin/checkout.c:1142
msgid "detach the HEAD at named commit"
msgstr "HEAD zu benanntem Commit setzen"
-#: builtin/checkout.c:1141
+#: builtin/checkout.c:1143
msgid "set upstream info for new branch"
msgstr "Informationen zum Upstream-Branch für den neuen Branch setzen"
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
msgid "new-branch"
msgstr "neuer Branch"
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
msgid "new unparented branch"
msgstr "neuer Branch ohne Eltern-Commit"
-#: builtin/checkout.c:1144
+#: builtin/checkout.c:1146
msgid "checkout our version for unmerged files"
msgstr "unsere Variante für nicht zusammengeführte Dateien auschecken"
-#: builtin/checkout.c:1146
+#: builtin/checkout.c:1148
msgid "checkout their version for unmerged files"
msgstr "ihre Variante für nicht zusammengeführte Dateien auschecken"
-#: builtin/checkout.c:1148
+#: builtin/checkout.c:1150
msgid "force checkout (throw away local modifications)"
msgstr "Auschecken erzwingen (verwirft lokale Änderungen)"
-#: builtin/checkout.c:1149
+#: builtin/checkout.c:1151
msgid "perform a 3-way merge with the new branch"
msgstr "einen 3-Wege-Merge mit dem neuen Branch ausführen"
-#: builtin/checkout.c:1150 builtin/merge.c:227
+#: builtin/checkout.c:1152 builtin/merge.c:227
msgid "update ignored files (default)"
msgstr "ignorierte Dateien aktualisieren (Standard)"
-#: builtin/checkout.c:1151 builtin/log.c:1266 parse-options.h:250
+#: builtin/checkout.c:1153 builtin/log.c:1269 parse-options.h:250
msgid "style"
msgstr "Stil"
-#: builtin/checkout.c:1152
+#: builtin/checkout.c:1154
msgid "conflict style (merge or diff3)"
msgstr "Konfliktstil (merge oder diff3)"
-#: builtin/checkout.c:1155
+#: builtin/checkout.c:1157
msgid "do not limit pathspecs to sparse entries only"
msgstr "keine Einschränkung bei Pfadspezifikationen zum partiellen Auschecken"
-#: builtin/checkout.c:1157
+#: builtin/checkout.c:1159
msgid "second guess 'git checkout <no-such-branch>'"
msgstr "second guess 'git checkout <no-such-branch>'"
-#: builtin/checkout.c:1159
+#: builtin/checkout.c:1161
msgid "do not check if another worktree is holding the given ref"
msgstr ""
"Prüfung, ob die Referenz bereits in einem anderen Arbeitsverzeichnis "
"ausgecheckt wurde, deaktivieren"
-#: builtin/checkout.c:1160 builtin/clone.c:57 builtin/fetch.c:112
-#: builtin/merge.c:224 builtin/pull.c:109 builtin/push.c:558
+#: builtin/checkout.c:1162 builtin/clone.c:58 builtin/fetch.c:116
+#: builtin/merge.c:224 builtin/pull.c:113 builtin/push.c:526
#: builtin/send-pack.c:168
msgid "force progress reporting"
msgstr "Fortschrittsanzeige erzwingen"
-#: builtin/checkout.c:1191
+#: builtin/checkout.c:1193
msgid "-b, -B and --orphan are mutually exclusive"
msgstr "Die Optionen -b, -B und --orphan schließen sich gegenseitig aus."
-#: builtin/checkout.c:1208
+#: builtin/checkout.c:1210
msgid "--track needs a branch name"
msgstr "Bei der Option --track muss ein Branchname angegeben werden."
-#: builtin/checkout.c:1213
+#: builtin/checkout.c:1215
msgid "Missing branch name; try -b"
msgstr "Vermisse Branchnamen; versuchen Sie -b"
-#: builtin/checkout.c:1249
+#: builtin/checkout.c:1251
msgid "invalid path specification"
msgstr "ungültige Pfadspezifikation"
-#: builtin/checkout.c:1256
+#: builtin/checkout.c:1258
#, c-format
msgid ""
"Cannot update paths and switch to branch '%s' at the same time.\n"
@@ -4400,12 +4476,12 @@ msgstr ""
"Haben Sie beabsichtigt '%s' auszuchecken, welcher nicht als Commit aufgelöst "
"werden kann?"
-#: builtin/checkout.c:1261
+#: builtin/checkout.c:1263
#, c-format
msgid "git checkout: --detach does not take a path argument '%s'"
msgstr "git checkout: --detach nimmt kein Pfad-Argument '%s'"
-#: builtin/checkout.c:1265
+#: builtin/checkout.c:1267
msgid ""
"git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
"checking out of the index."
@@ -4444,7 +4520,7 @@ msgstr "Würde Repository %s überspringen\n"
msgid "failed to remove %s"
msgstr "Fehler beim Löschen von %s"
-#: builtin/clean.c:315
+#: builtin/clean.c:291
msgid ""
"Prompt help:\n"
"1 - select a numbered item\n"
@@ -4456,7 +4532,7 @@ msgstr ""
"foo - Element anhand eines eindeutigen Präfix auswählen\n"
" - (leer) nichts auswählen"
-#: builtin/clean.c:319
+#: builtin/clean.c:295
msgid ""
"Prompt help:\n"
"1 - select a single item\n"
@@ -4476,36 +4552,36 @@ msgstr ""
"* - alle Elemente auswählen\n"
" - (leer) Auswahl beenden"
-#: builtin/clean.c:535
+#: builtin/clean.c:511
#, c-format
msgid "Huh (%s)?"
msgstr "Wie bitte (%s)?"
-#: builtin/clean.c:677
+#: builtin/clean.c:653
#, c-format
msgid "Input ignore patterns>> "
msgstr "Ignorier-Muster eingeben>> "
-#: builtin/clean.c:714
+#: builtin/clean.c:690
#, c-format
msgid "WARNING: Cannot find items matched by: %s"
msgstr "WARNUNG: Kann keine Einträge finden die Muster entsprechen: %s"
-#: builtin/clean.c:735
+#: builtin/clean.c:711
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:776
+#: builtin/clean.c:752
#, c-format
msgid "Remove %s [y/N]? "
msgstr "'%s' löschen [y/N]? "
-#: builtin/clean.c:801
+#: builtin/clean.c:777
msgid "Bye."
msgstr "Tschüss."
-#: builtin/clean.c:809
+#: builtin/clean.c:785
msgid ""
"clean - start cleaning\n"
"filter by pattern - exclude items from deletion\n"
@@ -4523,62 +4599,62 @@ msgstr ""
"help - diese Meldung anzeigen\n"
"? - Hilfe zur Auswahl mittels Eingabe anzeigen"
-#: builtin/clean.c:836
+#: builtin/clean.c:812
msgid "*** Commands ***"
-msgstr "*** Kommandos ***"
+msgstr "*** Befehle ***"
-#: builtin/clean.c:837
+#: builtin/clean.c:813
msgid "What now"
msgstr "Was nun"
-#: builtin/clean.c:845
+#: builtin/clean.c:821
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:862
+#: builtin/clean.c:838
msgid "No more files to clean, exiting."
msgstr "Keine Dateien mehr zum Löschen, beende."
-#: builtin/clean.c:893
+#: builtin/clean.c:869
msgid "do not print names of files removed"
msgstr "keine Namen von gelöschten Dateien ausgeben"
-#: builtin/clean.c:895
+#: builtin/clean.c:871
msgid "force"
msgstr "Aktion erzwingen"
-#: builtin/clean.c:896
+#: builtin/clean.c:872
msgid "interactive cleaning"
msgstr "interaktives Clean"
-#: builtin/clean.c:898
+#: builtin/clean.c:874
msgid "remove whole directories"
msgstr "ganze Verzeichnisse löschen"
-#: builtin/clean.c:899 builtin/describe.c:407 builtin/grep.c:709
-#: builtin/ls-files.c:443 builtin/name-rev.c:307 builtin/show-ref.c:182
+#: builtin/clean.c:875 builtin/describe.c:407 builtin/grep.c:722
+#: builtin/ls-files.c:456 builtin/name-rev.c:307 builtin/show-ref.c:182
msgid "pattern"
msgstr "Muster"
-#: builtin/clean.c:900
+#: builtin/clean.c:876
msgid "add <pattern> to ignore rules"
msgstr "<Muster> zu den Regeln für ignorierte Pfade hinzufügen"
-#: builtin/clean.c:901
+#: builtin/clean.c:877
msgid "remove ignored files, too"
msgstr "auch ignorierte Dateien löschen"
-#: builtin/clean.c:903
+#: builtin/clean.c:879
msgid "remove only ignored files"
msgstr "nur ignorierte Dateien löschen"
-#: builtin/clean.c:921
+#: builtin/clean.c:897
msgid "-x and -X cannot be used together"
msgstr "Die Optionen -x und -X können nicht gemeinsam verwendet werden."
-#: builtin/clean.c:925
+#: builtin/clean.c:901
msgid ""
"clean.requireForce set to true and neither -i, -n, nor -f given; refusing to "
"clean"
@@ -4586,7 +4662,7 @@ msgstr ""
"clean.requireForce auf \"true\" gesetzt und weder -i, -n noch -f gegeben; "
"\"clean\" verweigert"
-#: builtin/clean.c:928
+#: builtin/clean.c:904
msgid ""
"clean.requireForce defaults to true and neither -i, -n, nor -f given; "
"refusing to clean"
@@ -4598,151 +4674,160 @@ msgstr ""
msgid "git clone [<options>] [--] <repo> [<dir>]"
msgstr "git clone [<Optionen>] [--] <Repository> [<Verzeichnis>]"
-#: builtin/clone.c:59
+#: builtin/clone.c:60
msgid "don't create a checkout"
msgstr "kein Auschecken"
-#: builtin/clone.c:60 builtin/clone.c:62 builtin/init-db.c:469
+#: builtin/clone.c:61 builtin/clone.c:63 builtin/init-db.c:469
msgid "create a bare repository"
msgstr "ein Bare-Repository erstellen"
-#: builtin/clone.c:64
+#: builtin/clone.c:65
msgid "create a mirror repository (implies bare)"
msgstr "ein Spiegelarchiv erstellen (impliziert --bare)"
-#: builtin/clone.c:66
+#: builtin/clone.c:67
msgid "to clone from a local repository"
msgstr "von einem lokalen Repository klonen"
-#: builtin/clone.c:68
+#: builtin/clone.c:69
msgid "don't use local hardlinks, always copy"
msgstr "lokal keine harten Verweise verwenden, immer Kopien"
-#: builtin/clone.c:70
+#: builtin/clone.c:71
msgid "setup as shared repository"
msgstr "als verteiltes Repository einrichten"
-#: builtin/clone.c:72 builtin/clone.c:74
+#: builtin/clone.c:73 builtin/clone.c:75
msgid "initialize submodules in the clone"
msgstr "Submodule im Klon initialisieren"
-#: builtin/clone.c:75 builtin/init-db.c:466
+#: builtin/clone.c:76 builtin/init-db.c:466
msgid "template-directory"
msgstr "Vorlagenverzeichnis"
-#: builtin/clone.c:76 builtin/init-db.c:467
+#: builtin/clone.c:77 builtin/init-db.c:467
msgid "directory from which templates will be used"
msgstr "Verzeichnis, von welchem die Vorlagen verwendet werden"
-#: builtin/clone.c:78 builtin/submodule--helper.c:179
+#: builtin/clone.c:79 builtin/submodule--helper.c:173
msgid "reference repository"
msgstr "Repository referenzieren"
-#: builtin/clone.c:80
+#: builtin/clone.c:81
msgid "use --reference only while cloning"
msgstr "--reference nur während des Klonens benutzen"
-#: builtin/clone.c:81 builtin/column.c:26 builtin/merge-file.c:44
+#: builtin/clone.c:82 builtin/column.c:26 builtin/merge-file.c:44
msgid "name"
msgstr "Name"
-#: builtin/clone.c:82
+#: builtin/clone.c:83
msgid "use <name> instead of 'origin' to track upstream"
msgstr "<Name> statt 'origin' für Upstream-Repository verwenden"
-#: builtin/clone.c:84
+#: builtin/clone.c:85
msgid "checkout <branch> instead of the remote's HEAD"
msgstr "<Branch> auschecken, anstatt HEAD des Remote-Repositories"
-#: builtin/clone.c:86
+#: builtin/clone.c:87
msgid "path to git-upload-pack on the remote"
msgstr "Pfad zu \"git-upload-pack\" auf der Gegenseite"
-#: builtin/clone.c:87 builtin/fetch.c:113 builtin/grep.c:654
-#: builtin/pull.c:186
+#: builtin/clone.c:88 builtin/fetch.c:117 builtin/grep.c:665
+#: builtin/pull.c:193
msgid "depth"
msgstr "Tiefe"
-#: builtin/clone.c:88
+#: builtin/clone.c:89
msgid "create a shallow clone of that depth"
msgstr ""
"einen Klon mit unvollständiger Historie (shallow) in dieser Tiefe erstellen"
-#: builtin/clone.c:90
+#: builtin/clone.c:91
msgid "clone only one branch, HEAD or --branch"
msgstr "nur einen Branch klonen, HEAD oder --branch"
-#: builtin/clone.c:91 builtin/init-db.c:475
+#: builtin/clone.c:92 builtin/init-db.c:475
msgid "gitdir"
msgstr ".git-Verzeichnis"
-#: builtin/clone.c:92 builtin/init-db.c:476
+#: builtin/clone.c:93 builtin/init-db.c:476
msgid "separate git dir from working tree"
msgstr "Git-Verzeichnis vom Arbeitsverzeichnis separieren"
-#: builtin/clone.c:93
+#: builtin/clone.c:94
msgid "key=value"
msgstr "Schlüssel=Wert"
-#: builtin/clone.c:94
+#: builtin/clone.c:95
msgid "set config inside the new repository"
msgstr "Konfiguration innerhalb des neuen Repositories setzen"
-#: builtin/clone.c:300
+#: builtin/clone.c:96 builtin/fetch.c:131 builtin/push.c:536
+msgid "use IPv4 addresses only"
+msgstr "nur IPv4-Adressen benutzen"
+
+#: builtin/clone.c:98 builtin/fetch.c:133 builtin/push.c:538
+msgid "use IPv6 addresses only"
+msgstr "nur IPv6-Adressen benutzen"
+
+#: builtin/clone.c:305
#, 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"
+msgstr ""
+"Referenziertes Repository '%s' wird noch nicht als verknüpftes\n"
"Arbeitsverzeichnis unterstützt."
-#: builtin/clone.c:302
+#: builtin/clone.c:307
#, c-format
msgid "reference repository '%s' is not a local repository."
msgstr "Referenziertes Repository '%s' ist kein lokales Repository."
-#: builtin/clone.c:307
+#: builtin/clone.c:312
#, c-format
msgid "reference repository '%s' is shallow"
msgstr ""
"Referenziertes Repository '%s' hat eine unvollständige Historie (shallow)."
-#: builtin/clone.c:310
+#: builtin/clone.c:315
#, c-format
msgid "reference repository '%s' is grafted"
msgstr ""
"Referenziertes Repository '%s' ist mit künstlichen Vorgängern (\"grafts\") "
"eingehängt."
-#: builtin/clone.c:375 builtin/diff.c:84
+#: builtin/clone.c:380 builtin/diff.c:84
#, c-format
msgid "failed to stat '%s'"
msgstr "Konnte '%s' nicht lesen"
-#: builtin/clone.c:377
+#: builtin/clone.c:382
#, c-format
msgid "%s exists and is not a directory"
msgstr "%s existiert und ist kein Verzeichnis"
-#: builtin/clone.c:391
+#: builtin/clone.c:396
#, c-format
msgid "failed to stat %s\n"
msgstr "Konnte %s nicht lesen\n"
-#: builtin/clone.c:413
+#: builtin/clone.c:418
#, c-format
msgid "failed to create link '%s'"
msgstr "Konnte Verweis '%s' nicht erstellen"
-#: builtin/clone.c:417
+#: builtin/clone.c:422
#, c-format
msgid "failed to copy file to '%s'"
msgstr "Konnte Datei nicht nach '%s' kopieren"
-#: builtin/clone.c:442 builtin/clone.c:626
+#: builtin/clone.c:447 builtin/clone.c:631
#, c-format
msgid "done.\n"
msgstr "Fertig.\n"
-#: builtin/clone.c:454
+#: builtin/clone.c:459
msgid ""
"Clone succeeded, but checkout failed.\n"
"You can inspect what was checked out with 'git status'\n"
@@ -4752,123 +4837,123 @@ msgstr ""
"Sie können mit 'git status' prüfen, was ausgecheckt worden ist\n"
"und das Auschecken mit 'git checkout -f HEAD' erneut versuchen.\n"
-#: builtin/clone.c:531
+#: builtin/clone.c:536
#, c-format
msgid "Could not find remote branch %s to clone."
msgstr "Konnte zu klonenden Remote-Branch %s nicht finden."
-#: builtin/clone.c:621
+#: builtin/clone.c:626
#, c-format
msgid "Checking connectivity... "
msgstr "Prüfe Konnektivität ... "
-#: builtin/clone.c:624
+#: builtin/clone.c:629
msgid "remote did not send all necessary objects"
msgstr "Remote-Repository hat nicht alle erforderlichen Objekte gesendet."
-#: builtin/clone.c:688
+#: builtin/clone.c:696
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:719
+#: builtin/clone.c:727
msgid "unable to checkout working tree"
msgstr "Arbeitsverzeichnis konnte nicht ausgecheckt werden"
-#: builtin/clone.c:808
+#: builtin/clone.c:816
msgid "cannot repack to clean up"
msgstr "Kann \"repack\" zum Aufräumen nicht aufrufen"
-#: builtin/clone.c:810
+#: builtin/clone.c:818
msgid "cannot unlink temporary alternates file"
msgstr "Kann temporäre \"alternates\"-Datei nicht entfernen"
-#: builtin/clone.c:842
+#: builtin/clone.c:850
msgid "Too many arguments."
msgstr "Zu viele Argumente."
-#: builtin/clone.c:846
+#: builtin/clone.c:854
msgid "You must specify a repository to clone."
msgstr "Sie müssen ein Repository zum Klonen angeben."
-#: builtin/clone.c:857
+#: builtin/clone.c:865
#, c-format
msgid "--bare and --origin %s options are incompatible."
msgstr "Die Optionen --bare und --origin %s sind inkompatibel."
-#: builtin/clone.c:860
+#: builtin/clone.c:868
msgid "--bare and --separate-git-dir are incompatible."
msgstr "Die Optionen --bare und --separate-git-dir sind inkompatibel."
-#: builtin/clone.c:873
+#: builtin/clone.c:881
#, c-format
msgid "repository '%s' does not exist"
msgstr "Repository '%s' existiert nicht."
-#: builtin/clone.c:879 builtin/fetch.c:1166
+#: builtin/clone.c:887 builtin/fetch.c:1174
#, c-format
msgid "depth %s is not a positive number"
msgstr "Tiefe %s ist keine positive Zahl"
-#: builtin/clone.c:889
+#: builtin/clone.c:897
#, 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:899
+#: builtin/clone.c:907
#, c-format
msgid "working tree '%s' already exists."
msgstr "Arbeitsverzeichnis '%s' existiert bereits."
-#: builtin/clone.c:914 builtin/clone.c:925 builtin/submodule--helper.c:224
-#: builtin/worktree.c:221 builtin/worktree.c:248
+#: builtin/clone.c:922 builtin/clone.c:933 builtin/submodule--helper.c:218
+#: builtin/worktree.c:219 builtin/worktree.c:246
#, c-format
msgid "could not create leading directories of '%s'"
msgstr "Konnte führende Verzeichnisse von '%s' nicht erstellen."
-#: builtin/clone.c:917
+#: builtin/clone.c:925
#, c-format
msgid "could not create work tree dir '%s'"
msgstr "Konnte Arbeitsverzeichnis '%s' nicht erstellen"
-#: builtin/clone.c:935
+#: builtin/clone.c:943
#, c-format
msgid "Cloning into bare repository '%s'...\n"
msgstr "Klone in Bare-Repository '%s' ...\n"
-#: builtin/clone.c:937
+#: builtin/clone.c:945
#, c-format
msgid "Cloning into '%s'...\n"
msgstr "Klone nach '%s' ...\n"
-#: builtin/clone.c:975
+#: builtin/clone.c:984
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:978
+#: builtin/clone.c:987
msgid "source repository is shallow, ignoring --local"
msgstr ""
"Quelle ist ein Repository mit unvollständiger Historie (shallow),ignoriere --"
"local"
-#: builtin/clone.c:983
+#: builtin/clone.c:992
msgid "--local is ignored"
msgstr "--local wird ignoriert"
-#: builtin/clone.c:987
+#: builtin/clone.c:996
#, c-format
msgid "Don't know how to clone %s"
msgstr "Weiß nicht wie %s zu klonen ist."
-#: builtin/clone.c:1036 builtin/clone.c:1044
+#: builtin/clone.c:1045 builtin/clone.c:1053
#, c-format
msgid "Remote branch %s not found in upstream %s"
msgstr "Remote-Branch %s nicht im Upstream-Repository %s gefunden"
-#: builtin/clone.c:1047
+#: builtin/clone.c:1056
msgid "You appear to have cloned an empty repository."
msgstr "Sie scheinen ein leeres Repository geklont zu haben."
@@ -4929,7 +5014,7 @@ msgstr ""
"Ihr Name und E-Mail Adresse wurden automatisch auf Basis\n"
"Ihres Benutzer- und Rechnernamens konfiguriert. Bitte prüfen Sie, dass\n"
"diese zutreffend sind. Sie können diese Meldung unterdrücken, indem Sie\n"
-"diese explizit setzen. Führen Sie dazu das folgende Kommando aus und folgen\n"
+"diese explizit setzen. Führen Sie dazu den folgenden Befehl aus und folgen\n"
"Sie den Anweisungen in Ihrem Editor, um die Konfigurationsdatei zu "
"bearbeiten:\n"
"\n"
@@ -4973,7 +5058,7 @@ msgid ""
"remove the commit entirely with \"git reset HEAD^\".\n"
msgstr ""
"Sie fragten den jüngsten Commit nachzubessern, aber das würde diesen leer\n"
-"machen. Sie können Ihr Kommando mit --allow-empty wiederholen, oder diesen\n"
+"machen. Sie können Ihren Befehl mit --allow-empty wiederholen, oder diesen\n"
"Commit mit \"git reset HEAD^\" vollständig entfernen.\n"
#: builtin/commit.c:78
@@ -5084,7 +5169,7 @@ msgstr ""
msgid "could not lookup commit %s"
msgstr "Konnte Commit %s nicht nachschlagen"
-#: builtin/commit.c:702 builtin/shortlog.c:273
+#: builtin/commit.c:702 builtin/shortlog.c:285
#, c-format
msgid "(reading log message from standard input)\n"
msgstr "(lese Log-Nachricht von Standard-Eingabe)\n"
@@ -5281,8 +5366,8 @@ msgstr "Status im Kurzformat anzeigen"
msgid "show branch information"
msgstr "Branchinformationen anzeigen"
-#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:544
-#: builtin/worktree.c:423
+#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:512
+#: builtin/worktree.c:430
msgid "machine-readable output"
msgstr "maschinenlesbare Ausgabe"
@@ -5373,8 +5458,8 @@ msgstr "Datum"
msgid "override date for commit"
msgstr "Datum eines Commits überschreiben"
-#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:392
-#: builtin/notes.c:555 builtin/tag.c:349
+#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:395
+#: builtin/notes.c:558 builtin/tag.c:349
msgid "message"
msgstr "Beschreibung"
@@ -5411,7 +5496,7 @@ 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:1588 builtin/log.c:1216 builtin/revert.c:86
+#: builtin/commit.c:1588 builtin/log.c:1219 builtin/revert.c:86
msgid "add Signed-off-by:"
msgstr "'Signed-off-by:'-Zeile hinzufügen"
@@ -5436,7 +5521,7 @@ msgstr ""
msgid "include status in commit message template"
msgstr "Status in die Commit-Beschreibungsvorlage einfügen"
-#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:156
+#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:160
#: builtin/revert.c:93
msgid "GPG sign commit"
msgstr "Commit mit GPG signieren"
@@ -5528,139 +5613,143 @@ msgstr ""
"voll und Ihr Kontingent nicht aufgebraucht ist und führen Sie\n"
"anschließend \"git reset HEAD\" zu Wiederherstellung aus."
-#: builtin/config.c:8
+#: builtin/config.c:9
msgid "git config [<options>]"
msgstr "git config [<Optionen>]"
-#: builtin/config.c:54
+#: builtin/config.c:56
msgid "Config file location"
msgstr "Ort der Konfigurationsdatei"
-#: builtin/config.c:55
+#: builtin/config.c:57
msgid "use global config file"
msgstr "globale Konfigurationsdatei verwenden"
-#: builtin/config.c:56
+#: builtin/config.c:58
msgid "use system config file"
msgstr "systemweite Konfigurationsdatei verwenden"
-#: builtin/config.c:57
+#: builtin/config.c:59
msgid "use repository config file"
msgstr "Konfigurationsdatei des Repositories verwenden"
-#: builtin/config.c:58
+#: builtin/config.c:60
msgid "use given config file"
msgstr "die angegebene Konfigurationsdatei verwenden"
-#: builtin/config.c:59
+#: builtin/config.c:61
msgid "blob-id"
msgstr "Blob-Id"
-#: builtin/config.c:59
+#: builtin/config.c:61
msgid "read config from given blob object"
msgstr "Konfiguration von angegebenem Blob-Objekt lesen"
-#: builtin/config.c:60
+#: builtin/config.c:62
msgid "Action"
msgstr "Aktion"
-#: builtin/config.c:61
+#: builtin/config.c:63
msgid "get value: name [value-regex]"
msgstr "Wert zurückgeben: Name [Wert-regex]"
-#: builtin/config.c:62
+#: builtin/config.c:64
msgid "get all values: key [value-regex]"
msgstr "alle Werte zurückgeben: Schlüssel [Wert-regex]"
-#: builtin/config.c:63
+#: builtin/config.c:65
msgid "get values for regexp: name-regex [value-regex]"
msgstr "Werte für den regulären Ausdruck zurückgeben: Name-regex [Wert-regex]"
-#: builtin/config.c:64
+#: builtin/config.c:66
msgid "get value specific for the URL: section[.var] URL"
msgstr "Wert spezifisch für eine URL zurückgeben: section[.var] URL"
-#: builtin/config.c:65
+#: builtin/config.c:67
msgid "replace all matching variables: name value [value_regex]"
msgstr "alle passenden Variablen ersetzen: Name Wert [Wert-regex] "
-#: builtin/config.c:66
+#: builtin/config.c:68
msgid "add a new variable: name value"
msgstr "neue Variable hinzufügen: Name Wert"
-#: builtin/config.c:67
+#: builtin/config.c:69
msgid "remove a variable: name [value-regex]"
msgstr "eine Variable entfernen: Name [Wert-regex]"
-#: builtin/config.c:68
+#: builtin/config.c:70
msgid "remove all matches: name [value-regex]"
msgstr "alle Ãœbereinstimmungen entfernen: Name [Wert-regex]"
-#: builtin/config.c:69
+#: builtin/config.c:71
msgid "rename section: old-name new-name"
msgstr "eine Sektion umbenennen: alter-Name neuer-Name"
-#: builtin/config.c:70
+#: builtin/config.c:72
msgid "remove a section: name"
msgstr "eine Sektion entfernen: Name"
-#: builtin/config.c:71
+#: builtin/config.c:73
msgid "list all"
msgstr "alles auflisten"
-#: builtin/config.c:72
+#: builtin/config.c:74
msgid "open an editor"
msgstr "einen Editor öffnen"
-#: builtin/config.c:73
+#: builtin/config.c:75
msgid "find the color configured: slot [default]"
msgstr "die konfigurierte Farbe finden: Slot [Standard]"
-#: builtin/config.c:74
+#: builtin/config.c:76
msgid "find the color setting: slot [stdout-is-tty]"
msgstr "die Farbeinstellung finden: Slot [Standard-Ausgabe-ist-Terminal]"
-#: builtin/config.c:75
+#: builtin/config.c:77
msgid "Type"
msgstr "Typ"
-#: builtin/config.c:76
+#: builtin/config.c:78
msgid "value is \"true\" or \"false\""
msgstr "Wert ist \"true\" oder \"false\""
-#: builtin/config.c:77
+#: builtin/config.c:79
msgid "value is decimal number"
msgstr "Wert ist eine Dezimalzahl"
-#: builtin/config.c:78
+#: builtin/config.c:80
msgid "value is --bool or --int"
msgstr "Wert ist --bool oder --int"
-#: builtin/config.c:79
+#: builtin/config.c:81
msgid "value is a path (file or directory name)"
msgstr "Wert ist ein Pfad (Datei oder Verzeichnisname)"
-#: builtin/config.c:80
+#: builtin/config.c:82
msgid "Other"
msgstr "Sonstiges"
-#: builtin/config.c:81
+#: builtin/config.c:83
msgid "terminate values with NUL byte"
msgstr "schließt Werte mit NUL-Byte ab"
-#: builtin/config.c:82
+#: builtin/config.c:84
msgid "show variable names only"
msgstr "nur Variablennamen anzeigen"
-#: builtin/config.c:83
+#: builtin/config.c:85
msgid "respect include directives on lookup"
msgstr "beachtet \"include\"-Direktiven beim Nachschlagen"
-#: builtin/config.c:303
+#: builtin/config.c:86
+msgid "show origin of config (file, standard input, blob, command line)"
+msgstr "Ursprung der Konfiguration anzeigen (Datei, Standard-Eingabe, Blob, Befehlszeile)"
+
+#: builtin/config.c:328
msgid "unable to parse default color value"
msgstr "konnte Standard-Farbwert nicht parsen"
-#: builtin/config.c:441
+#: builtin/config.c:469
#, c-format
msgid ""
"# This is Git's per-user configuration file.\n"
@@ -5675,7 +5764,7 @@ msgstr ""
"#\tname = %s\n"
"#\temail = %s\n"
-#: builtin/config.c:575
+#: builtin/config.c:611
#, c-format
msgid "cannot create configuration file %s"
msgstr "Konnte Konfigurationsdatei '%s' nicht erstellen."
@@ -5927,167 +6016,171 @@ msgstr "git fetch --multiple [<Optionen>] [(<Repository> | <Gruppe>)...]"
msgid "git fetch --all [<options>]"
msgstr "git fetch --all [<Optionen>]"
-#: builtin/fetch.c:90 builtin/pull.c:162
+#: builtin/fetch.c:92 builtin/pull.c:166
msgid "fetch from all remotes"
msgstr "fordert von allen Remote-Repositories an"
-#: builtin/fetch.c:92 builtin/pull.c:165
+#: builtin/fetch.c:94 builtin/pull.c:169
msgid "append to .git/FETCH_HEAD instead of overwriting"
msgstr "an .git/FETCH_HEAD anhängen, anstatt zu überschreiben"
-#: builtin/fetch.c:94 builtin/pull.c:168
+#: builtin/fetch.c:96 builtin/pull.c:172
msgid "path to upload pack on remote end"
msgstr "Pfad des Programms zum Hochladen von Paketen auf der Gegenseite"
-#: builtin/fetch.c:95 builtin/pull.c:170
+#: builtin/fetch.c:97 builtin/pull.c:174
msgid "force overwrite of local branch"
msgstr "das Ãœberschreiben von lokalen Branches erzwingen"
-#: builtin/fetch.c:97
+#: builtin/fetch.c:99
msgid "fetch from multiple remotes"
msgstr "von mehreren Remote-Repositories anfordern"
-#: builtin/fetch.c:99 builtin/pull.c:172
+#: builtin/fetch.c:101 builtin/pull.c:176
msgid "fetch all tags and associated objects"
msgstr "alle Tags und verbundene Objekte anfordern"
-#: builtin/fetch.c:101
+#: builtin/fetch.c:103
msgid "do not fetch all tags (--no-tags)"
msgstr "nicht alle Tags anfordern (--no-tags)"
-#: builtin/fetch.c:103 builtin/pull.c:175
+#: builtin/fetch.c:105
+msgid "number of submodules fetched in parallel"
+msgstr "Anzahl der parallel anzufordernden Submodule"
+
+#: builtin/fetch.c:107 builtin/pull.c:179
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:104 builtin/pull.c:178
+#: builtin/fetch.c:108 builtin/pull.c:182
msgid "on-demand"
msgstr "bei-Bedarf"
-#: builtin/fetch.c:105 builtin/pull.c:179
+#: builtin/fetch.c:109 builtin/pull.c:183
msgid "control recursive fetching of submodules"
msgstr "rekursive Anforderungen von Submodulen kontrollieren"
-#: builtin/fetch.c:109 builtin/pull.c:184
+#: builtin/fetch.c:113 builtin/pull.c:191
msgid "keep downloaded pack"
msgstr "heruntergeladenes Paket behalten"
-#: builtin/fetch.c:111
+#: builtin/fetch.c:115
msgid "allow updating of HEAD ref"
msgstr "Aktualisierung der \"HEAD\"-Referenz erlauben"
-#: builtin/fetch.c:114 builtin/pull.c:187
+#: builtin/fetch.c:118 builtin/pull.c:194
msgid "deepen history of shallow clone"
msgstr ""
"die Historie eines Klons mit unvollständiger Historie (shallow) vertiefen"
-#: builtin/fetch.c:116 builtin/pull.c:190
+#: builtin/fetch.c:120 builtin/pull.c:197
msgid "convert to a complete repository"
msgstr "zu einem vollständigen Repository konvertieren"
-#: builtin/fetch.c:118 builtin/log.c:1233
+#: builtin/fetch.c:122 builtin/log.c:1236
msgid "dir"
msgstr "Verzeichnis"
-#: builtin/fetch.c:119
+#: builtin/fetch.c:123
msgid "prepend this to submodule path output"
msgstr "dies an die Ausgabe der Submodul-Pfade voranstellen"
-#: builtin/fetch.c:122
+#: builtin/fetch.c:126
msgid "default mode for recursion"
msgstr "Standard-Modus für Rekursion"
-#: builtin/fetch.c:124 builtin/pull.c:193
+#: builtin/fetch.c:128 builtin/pull.c:200
msgid "accept refs that update .git/shallow"
msgstr "Referenzen, die .git/shallow aktualisieren, akzeptieren"
-#: builtin/fetch.c:125 builtin/pull.c:195
+#: builtin/fetch.c:129 builtin/pull.c:202
msgid "refmap"
msgstr "Refmap"
-#: builtin/fetch.c:126 builtin/pull.c:196
+#: builtin/fetch.c:130 builtin/pull.c:203
msgid "specify fetch refmap"
msgstr "Refmap für 'fetch' angeben"
-#: builtin/fetch.c:378
+#: builtin/fetch.c:386
msgid "Couldn't find remote ref HEAD"
msgstr "Konnte Remote-Referenz von HEAD nicht finden."
-#: builtin/fetch.c:458
+#: builtin/fetch.c:466
#, c-format
msgid "object %s not found"
msgstr "Objekt %s nicht gefunden"
-#: builtin/fetch.c:463
+#: builtin/fetch.c:471
msgid "[up to date]"
msgstr "[aktuell]"
-#: builtin/fetch.c:477
+#: builtin/fetch.c:485
#, c-format
msgid "! %-*s %-*s -> %s (can't fetch in current branch)"
msgstr ""
"! %-*s %-*s -> %s (kann \"fetch\" im aktuellen Branch nicht ausführen)"
-#: builtin/fetch.c:478 builtin/fetch.c:566
+#: builtin/fetch.c:486 builtin/fetch.c:574
msgid "[rejected]"
msgstr "[zurückgewiesen]"
-#: builtin/fetch.c:489
+#: builtin/fetch.c:497
msgid "[tag update]"
msgstr "[Tag Aktualisierung]"
-#: builtin/fetch.c:491 builtin/fetch.c:526 builtin/fetch.c:544
+#: builtin/fetch.c:499 builtin/fetch.c:534 builtin/fetch.c:552
msgid " (unable to update local ref)"
msgstr " (kann lokale Referenz nicht aktualisieren)"
-#: builtin/fetch.c:509
+#: builtin/fetch.c:517
msgid "[new tag]"
msgstr "[neues Tag]"
-#: builtin/fetch.c:512
+#: builtin/fetch.c:520
msgid "[new branch]"
msgstr "[neuer Branch]"
-#: builtin/fetch.c:515
+#: builtin/fetch.c:523
msgid "[new ref]"
msgstr "[neue Referenz]"
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
msgid "unable to update local ref"
msgstr "kann lokale Referenz nicht aktualisieren"
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
msgid "forced update"
msgstr "Aktualisierung erzwungen"
-#: builtin/fetch.c:568
+#: builtin/fetch.c:576
msgid "(non-fast-forward)"
msgstr "(kein Vorspulen)"
-#: builtin/fetch.c:602 builtin/fetch.c:843
+#: builtin/fetch.c:610 builtin/fetch.c:851
#, c-format
msgid "cannot open %s: %s\n"
msgstr "kann %s nicht öffnen: %s\n"
-#: builtin/fetch.c:611
+#: builtin/fetch.c:619
#, c-format
msgid "%s did not send all necessary objects\n"
msgstr "%s hat nicht alle erforderlichen Objekte gesendet\n"
-#: builtin/fetch.c:629
+#: builtin/fetch.c:637
#, c-format
msgid "reject %s because shallow roots are not allowed to be updated"
msgstr ""
"%s wurde zurückgewiesen, da Ursprungs-Commits von Repositoriesmit "
"unvollständiger Historie (shallow) nicht aktualisiert werden dürfen."
-#: builtin/fetch.c:716 builtin/fetch.c:808
+#: builtin/fetch.c:724 builtin/fetch.c:816
#, c-format
msgid "From %.*s\n"
msgstr "Von %.*s\n"
-#: builtin/fetch.c:727
+#: builtin/fetch.c:735
#, c-format
msgid ""
"some local refs could not be updated; try running\n"
@@ -6096,57 +6189,57 @@ 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:779
+#: builtin/fetch.c:787
#, c-format
msgid " (%s will become dangling)"
msgstr " (%s wird unreferenziert)"
-#: builtin/fetch.c:780
+#: builtin/fetch.c:788
#, c-format
msgid " (%s has become dangling)"
msgstr " (%s wurde unreferenziert)"
-#: builtin/fetch.c:812
+#: builtin/fetch.c:820
msgid "[deleted]"
msgstr "[gelöscht]"
-#: builtin/fetch.c:813 builtin/remote.c:1040
+#: builtin/fetch.c:821 builtin/remote.c:1025
msgid "(none)"
msgstr "(nichts)"
-#: builtin/fetch.c:833
+#: builtin/fetch.c:841
#, 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:852
+#: builtin/fetch.c:860
#, 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:855
+#: builtin/fetch.c:863
#, c-format
msgid "Option \"%s\" is ignored for %s\n"
msgstr "Option \"%s\" wird ignoriert für %s\n"
-#: builtin/fetch.c:911
+#: builtin/fetch.c:920
#, c-format
msgid "Don't know how to fetch from %s"
msgstr "Weiß nicht wie von %s angefordert wird."
-#: builtin/fetch.c:1072
+#: builtin/fetch.c:1080
#, c-format
msgid "Fetching %s\n"
msgstr "Fordere an von %s\n"
-#: builtin/fetch.c:1074 builtin/remote.c:96
+#: builtin/fetch.c:1082 builtin/remote.c:96
#, c-format
msgid "Could not fetch %s"
msgstr "Konnte nicht von %s anfordern"
-#: builtin/fetch.c:1092
+#: builtin/fetch.c:1100
msgid ""
"No remote repository specified. Please, specify either a URL or a\n"
"remote name from which new revisions should be fetched."
@@ -6155,35 +6248,35 @@ msgstr ""
"oder den Namen des Remote-Repositories an, von welchem neue\n"
"Commits angefordert werden sollen."
-#: builtin/fetch.c:1115
+#: builtin/fetch.c:1123
msgid "You need to specify a tag name."
msgstr "Sie müssen den Namen des Tags angeben."
-#: builtin/fetch.c:1157
+#: builtin/fetch.c:1165
msgid "--depth and --unshallow cannot be used together"
msgstr ""
"Die Optionen --depth und --unshallow können nicht gemeinsam verwendet werden."
-#: builtin/fetch.c:1159
+#: builtin/fetch.c:1167
msgid "--unshallow on a complete repository does not make sense"
msgstr ""
"Die Option --unshallow kann nicht in einem Repository mit unvollständiger "
"Historie verwendet werden."
-#: builtin/fetch.c:1179
+#: builtin/fetch.c:1187
msgid "fetch --all does not take a repository argument"
msgstr "fetch --all akzeptiert kein Repository als Argument"
-#: builtin/fetch.c:1181
+#: builtin/fetch.c:1189
msgid "fetch --all does not make sense with refspecs"
msgstr "fetch --all kann nicht mit Refspecs verwendet werden."
-#: builtin/fetch.c:1192
+#: builtin/fetch.c:1200
#, c-format
msgid "No such remote or remote group: %s"
msgstr "Kein Remote-Repository (einzeln oder Gruppe): %s"
-#: builtin/fetch.c:1200
+#: builtin/fetch.c:1208
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"
@@ -6418,236 +6511,250 @@ msgstr ""
msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]"
msgstr "git grep [<Optionen>] [-e] <Muster> [<Commit>...] [[--] <Pfad>...]"
-#: builtin/grep.c:218
+#: builtin/grep.c:219
#, c-format
msgid "grep: failed to create thread: %s"
msgstr "grep: Fehler beim Erzeugen eines Thread: %s"
-#: builtin/grep.c:441 builtin/grep.c:476
+#: builtin/grep.c:277
+#, c-format
+msgid "invalid number of threads specified (%d) for %s"
+msgstr "ungültige Anzahl von Threads (%d) für %s angegeben"
+
+#: builtin/grep.c:452 builtin/grep.c:487
#, c-format
msgid "unable to read tree (%s)"
msgstr "konnte \"Tree\"-Objekt (%s) nicht lesen"
-#: builtin/grep.c:491
+#: builtin/grep.c:502
#, 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:547
+#: builtin/grep.c:558
#, c-format
msgid "switch `%c' expects a numerical value"
msgstr "Schalter '%c' erwartet einen numerischen Wert"
-#: builtin/grep.c:564
+#: builtin/grep.c:575
#, c-format
msgid "cannot open '%s'"
msgstr "kann '%s' nicht öffnen"
-#: builtin/grep.c:633
+#: builtin/grep.c:644
msgid "search in index instead of in the work tree"
msgstr "im Index anstatt im Arbeitsverzeichnis suchen"
-#: builtin/grep.c:635
+#: builtin/grep.c:646
msgid "find in contents not managed by git"
msgstr "auch in Inhalten finden, die nicht von Git verwaltet werden"
-#: builtin/grep.c:637
+#: builtin/grep.c:648
msgid "search in both tracked and untracked files"
msgstr "in versionierten und unversionierten Dateien suchen"
-#: builtin/grep.c:639
+#: builtin/grep.c:650
msgid "ignore files specified via '.gitignore'"
msgstr "Dateien, die über '.gitignore' angegeben sind, ignorieren"
-#: builtin/grep.c:642
+#: builtin/grep.c:653
msgid "show non-matching lines"
msgstr "Zeilen ohne Ãœbereinstimmungen anzeigen"
-#: builtin/grep.c:644
+#: builtin/grep.c:655
msgid "case insensitive matching"
msgstr "Übereinstimmungen unabhängig von Groß- und Kleinschreibung finden"
-#: builtin/grep.c:646
+#: builtin/grep.c:657
msgid "match patterns only at word boundaries"
msgstr "nur ganze Wörter suchen"
-#: builtin/grep.c:648
+#: builtin/grep.c:659
msgid "process binary files as text"
msgstr "binäre Dateien als Text verarbeiten"
-#: builtin/grep.c:650
+#: builtin/grep.c:661
msgid "don't match patterns in binary files"
msgstr "keine Muster in Binärdateien finden"
-#: builtin/grep.c:653
+#: builtin/grep.c:664
msgid "process binary files with textconv filters"
msgstr "binäre Dateien mit \"textconv\"-Filtern verarbeiten"
-#: builtin/grep.c:655
+#: builtin/grep.c:666
msgid "descend at most <depth> levels"
msgstr "höchstens <Tiefe> Ebenen durchlaufen"
-#: builtin/grep.c:659
+#: builtin/grep.c:670
msgid "use extended POSIX regular expressions"
msgstr "erweiterte reguläre Ausdrücke aus POSIX verwenden"
-#: builtin/grep.c:662
+#: builtin/grep.c:673
msgid "use basic POSIX regular expressions (default)"
msgstr "grundlegende reguläre Ausdrücke aus POSIX verwenden (Standard)"
-#: builtin/grep.c:665
+#: builtin/grep.c:676
msgid "interpret patterns as fixed strings"
msgstr "Muster als feste Zeichenketten interpretieren"
-#: builtin/grep.c:668
+#: builtin/grep.c:679
msgid "use Perl-compatible regular expressions"
msgstr "Perl-kompatible reguläre Ausdrücke verwenden"
-#: builtin/grep.c:671
+#: builtin/grep.c:682
msgid "show line numbers"
msgstr "Zeilennummern anzeigen"
-#: builtin/grep.c:672
+#: builtin/grep.c:683
msgid "don't show filenames"
msgstr "keine Dateinamen anzeigen"
-#: builtin/grep.c:673
+#: builtin/grep.c:684
msgid "show filenames"
msgstr "Dateinamen anzeigen"
-#: builtin/grep.c:675
+#: builtin/grep.c:686
msgid "show filenames relative to top directory"
msgstr "Dateinamen relativ zum Projektverzeichnis anzeigen"
-#: builtin/grep.c:677
+#: builtin/grep.c:688
msgid "show only filenames instead of matching lines"
msgstr "nur Dateinamen anzeigen anstatt übereinstimmende Zeilen"
-#: builtin/grep.c:679
+#: builtin/grep.c:690
msgid "synonym for --files-with-matches"
msgstr "Synonym für --files-with-matches"
-#: builtin/grep.c:682
+#: builtin/grep.c:693
msgid "show only the names of files without match"
msgstr "nur die Dateinamen ohne Ãœbereinstimmungen anzeigen"
-#: builtin/grep.c:684
+#: builtin/grep.c:695
msgid "print NUL after filenames"
msgstr "NUL-Zeichen nach Dateinamen ausgeben"
-#: builtin/grep.c:686
+#: builtin/grep.c:697
msgid "show the number of matches instead of matching lines"
msgstr "anstatt der Zeilen, die Anzahl der übereinstimmenden Zeilen anzeigen"
-#: builtin/grep.c:687
+#: builtin/grep.c:698
msgid "highlight matches"
msgstr "Ãœbereinstimmungen hervorheben"
-#: builtin/grep.c:689
+#: builtin/grep.c:700
msgid "print empty line between matches from different files"
msgstr ""
"eine Leerzeile zwischen Ãœbereinstimmungen in verschiedenen Dateien ausgeben"
-#: builtin/grep.c:691
+#: builtin/grep.c:702
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:694
+#: builtin/grep.c:705
msgid "show <n> context lines before and after matches"
msgstr "<n> Zeilen vor und nach den Ãœbereinstimmungen anzeigen"
-#: builtin/grep.c:697
+#: builtin/grep.c:708
msgid "show <n> context lines before matches"
msgstr "<n> Zeilen vor den Ãœbereinstimmungen anzeigen"
-#: builtin/grep.c:699
+#: builtin/grep.c:710
msgid "show <n> context lines after matches"
msgstr "<n> Zeilen nach den Ãœbereinstimmungen anzeigen"
-#: builtin/grep.c:700
+#: builtin/grep.c:712
+msgid "use <n> worker threads"
+msgstr "<n> Threads benutzen"
+
+#: builtin/grep.c:713
msgid "shortcut for -C NUM"
msgstr "Kurzform für -C NUM"
-#: builtin/grep.c:703
+#: builtin/grep.c:716
msgid "show a line with the function name before matches"
msgstr "eine Zeile mit dem Funktionsnamen vor Ãœbereinstimmungen anzeigen"
-#: builtin/grep.c:705
+#: builtin/grep.c:718
msgid "show the surrounding function"
msgstr "die umgebende Funktion anzeigen"
-#: builtin/grep.c:708
+#: builtin/grep.c:721
msgid "read patterns from file"
msgstr "Muster von einer Datei lesen"
-#: builtin/grep.c:710
+#: builtin/grep.c:723
msgid "match <pattern>"
msgstr "<Muster> finden"
-#: builtin/grep.c:712
+#: builtin/grep.c:725
msgid "combine patterns specified with -e"
msgstr "Muster kombinieren, die mit -e angegeben wurden"
-#: builtin/grep.c:724
+#: builtin/grep.c:737
msgid "indicate hit with exit status without output"
msgstr "Ãœbereinstimmungen nur durch Beendigungsstatus anzeigen"
-#: builtin/grep.c:726
+#: builtin/grep.c:739
msgid "show only matches from files that match all patterns"
msgstr ""
"nur Ãœbereinstimmungen von Dateien anzeigen, die allen Mustern entsprechen"
-#: builtin/grep.c:728
+#: builtin/grep.c:741
msgid "show parse tree for grep expression"
msgstr "geparstes Verzeichnis für \"grep\"-Ausdruck anzeigen"
-#: builtin/grep.c:732
+#: builtin/grep.c:745
msgid "pager"
msgstr "Anzeigeprogramm"
-#: builtin/grep.c:732
+#: builtin/grep.c:745
msgid "show matching files in the pager"
msgstr "Dateien mit Ãœbereinstimmungen im Anzeigeprogramm anzeigen"
-#: builtin/grep.c:735
+#: builtin/grep.c:748
msgid "allow calling of grep(1) (ignored by this build)"
msgstr "den Aufruf von grep(1) erlauben (von dieser Programmversion ignoriert)"
-#: builtin/grep.c:793
+#: builtin/grep.c:811
msgid "no pattern given."
msgstr "keine Muster angegeben"
-#: builtin/grep.c:851
+#: builtin/grep.c:843 builtin/index-pack.c:1475
+#, c-format
+msgid "invalid number of threads specified (%d)"
+msgstr "ungültige Anzahl von Threads angegeben (%d)"
+
+#: builtin/grep.c:873
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:877
+#: builtin/grep.c:899
msgid "--cached or --untracked cannot be used with --no-index."
msgstr ""
"Die Optionen --cached und --untracked können nicht mit --no-index verwendet "
"werden."
-#: builtin/grep.c:882
+#: builtin/grep.c:904
msgid "--no-index or --untracked cannot be used with revs."
msgstr ""
"Die Optionen --no-index und --untracked können nicht mit Commits verwendet "
"werden."
-#: builtin/grep.c:885
+#: builtin/grep.c:907
msgid "--[no-]exclude-standard cannot be used for tracked contents."
msgstr ""
"Die Option --[no-]exclude-standard kann nicht mit versionierten Inhalten "
"verwendet werden."
-#: builtin/grep.c:893
+#: builtin/grep.c:915
msgid "both --cached and trees are given."
msgstr "Die Option --cached kann nicht mit \"Tree\"-Objekten verwendet werden."
-#: builtin/hash-object.c:80
+#: builtin/hash-object.c:81
msgid ""
"git hash-object [-t <type>] [-w] [--path=<file> | --no-filters] [--stdin] "
"[--] <file>..."
@@ -6655,44 +6762,44 @@ msgstr ""
"git hash-object [-t <Art>] [-w] [--path=<Datei> | --no-filters] [--stdin] "
"[--] <Datei>..."
-#: builtin/hash-object.c:81
+#: builtin/hash-object.c:82
msgid "git hash-object --stdin-paths"
msgstr "git hash-object --stdin-paths"
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
msgid "type"
msgstr "Art"
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
msgid "object type"
msgstr "Art des Objektes"
-#: builtin/hash-object.c:93
+#: builtin/hash-object.c:94
msgid "write the object into the object database"
msgstr "das Objekt in die Objektdatenbank schreiben"
-#: builtin/hash-object.c:95
+#: builtin/hash-object.c:96
msgid "read the object from stdin"
msgstr "das Objekt von der Standard-Eingabe lesen"
-#: builtin/hash-object.c:97
+#: builtin/hash-object.c:98
msgid "store file as is without filters"
msgstr "Datei wie sie ist speichern, ohne Filter"
-#: builtin/hash-object.c:98
+#: builtin/hash-object.c:99
msgid ""
"just hash any random garbage to create corrupt objects for debugging Git"
msgstr ""
"Hash über zufällige Daten, zur Erzeugung von beschädigten Objekten zur\n"
"Fehlersuche in Git, erzeugen"
-#: builtin/hash-object.c:99
+#: builtin/hash-object.c:100
msgid "process file as it were from this path"
msgstr "Datei verarbeiten, als ob sie von diesem Pfad wäre"
#: builtin/help.c:41
msgid "print all available commands"
-msgstr "alle vorhandenen Kommandos anzeigen"
+msgstr "alle vorhandenen Befehle anzeigen"
#: builtin/help.c:42
msgid "print list of useful guides"
@@ -6712,7 +6819,7 @@ msgstr "Info-Seite anzeigen"
#: builtin/help.c:52
msgid "git help [--all] [--guides] [--man | --web | --info] [<command>]"
-msgstr "git help [--all] [--guides] [--man | --web | --info] [<Kommando>]"
+msgstr "git help [--all] [--guides] [--man | --web | --info] [<Befehl>]"
#: builtin/help.c:64
#, c-format
@@ -6737,7 +6844,7 @@ msgstr "Version des emacsclient '%d' ist zu alt (< 22)."
msgid "failed to exec '%s': %s"
msgstr "Fehler beim Ausführen von '%s': %s"
-#: builtin/help.c:208
+#: builtin/help.c:205
#, c-format
msgid ""
"'%s': path for unsupported man viewer.\n"
@@ -6746,70 +6853,70 @@ msgstr ""
"'%s': Pfad für nicht unterstützten Handbuchbetrachter.\n"
"Sie könnten stattdessen 'man.<Werkzeug>.cmd' benutzen."
-#: builtin/help.c:220
+#: builtin/help.c:217
#, c-format
msgid ""
"'%s': cmd for supported man viewer.\n"
"Please consider using 'man.<tool>.path' instead."
msgstr ""
-"'%s': Kommando für unterstützten Handbuchbetrachter.\n"
+"'%s': Programm für unterstützten Handbuchbetrachter.\n"
"Sie könnten stattdessen 'man.<Werkzeug>.path' benutzen."
-#: builtin/help.c:337
+#: builtin/help.c:334
#, c-format
msgid "'%s': unknown man viewer."
msgstr "'%s': unbekannter Handbuch-Betrachter."
-#: builtin/help.c:354
+#: builtin/help.c:351
msgid "no man viewer handled the request"
msgstr "kein Handbuch-Betrachter konnte mit dieser Anfrage umgehen"
-#: builtin/help.c:362
+#: builtin/help.c:359
msgid "no info viewer handled the request"
msgstr "kein Informations-Betrachter konnte mit dieser Anfrage umgehen"
-#: builtin/help.c:411
+#: builtin/help.c:408
msgid "Defining attributes per path"
msgstr "Definition von Attributen pro Pfad"
-#: builtin/help.c:412
+#: builtin/help.c:409
msgid "Everyday Git With 20 Commands Or So"
-msgstr "Tägliche Benutzung von Git mit ungefähr 20 Kommandos"
+msgstr "Tägliche Benutzung von Git mit ungefähr 20 Befehlen"
-#: builtin/help.c:413
+#: builtin/help.c:410
msgid "A Git glossary"
msgstr "Ein Git-Glossar"
-#: builtin/help.c:414
+#: builtin/help.c:411
msgid "Specifies intentionally untracked files to ignore"
msgstr "Spezifikation von bewusst ignorierten, unversionierten Dateien"
-#: builtin/help.c:415
+#: builtin/help.c:412
msgid "Defining submodule properties"
msgstr "Definition von Submodul-Eigenschaften"
-#: builtin/help.c:416
+#: builtin/help.c:413
msgid "Specifying revisions and ranges for Git"
msgstr "Spezifikation von Commits und Bereichen für Git"
-#: builtin/help.c:417
+#: builtin/help.c:414
msgid "A tutorial introduction to Git (for version 1.5.1 or newer)"
msgstr "Eine einführende Anleitung zu Git (für Version 1.5.1 oder neuer)"
-#: builtin/help.c:418
+#: builtin/help.c:415
msgid "An overview of recommended workflows with Git"
msgstr "Eine Übersicht über empfohlene Arbeitsabläufe mit Git"
-#: builtin/help.c:430
+#: builtin/help.c:427
msgid "The common Git guides are:\n"
msgstr "Die allgemein verwendeten Git-Anleitungen sind:\n"
-#: builtin/help.c:451 builtin/help.c:468
+#: builtin/help.c:448 builtin/help.c:465
#, c-format
msgid "usage: %s%s"
msgstr "Verwendung: %s%s"
-#: builtin/help.c:484
+#: builtin/help.c:481
#, c-format
msgid "`git %s' is aliased to `%s'"
msgstr "für `git %s' wurde der Alias `%s' angelegt"
@@ -7046,11 +7153,6 @@ msgstr "Kann Indexdatei nicht speichern"
msgid "bad pack.indexversion=%<PRIu32>"
msgstr "\"pack.indexversion=%<PRIu32>\" ist ungültig"
-#: builtin/index-pack.c:1475
-#, c-format
-msgid "invalid number of threads specified (%d)"
-msgstr "ungültige Anzahl von Threads angegeben (%d)"
-
#: builtin/index-pack.c:1479 builtin/index-pack.c:1663
#, c-format
msgid "no threads support, ignoring %s"
@@ -7225,24 +7327,32 @@ msgstr "Kann nicht auf Arbeitsverzeichnis '%s' zugreifen."
#: builtin/interpret-trailers.c:15
msgid ""
-"git interpret-trailers [--trim-empty] [(--trailer <token>[(=|:)<value>])...] "
-"[<file>...]"
+"git interpret-trailers [--in-place] [--trim-empty] [(--trailer "
+"<token>[(=|:)<value>])...] [<file>...]"
msgstr ""
-"git interpret-trailers [--trim-empty] [(--trailer <Token>[(=|:)<Wert>])...] "
-"[<Datei>...]"
+"git interpret-trailers [--in-place] [--trim-empty] [(--trailer "
+"<Token>[(=|:)<Wert>])...] [<Datei>...]"
+
+#: builtin/interpret-trailers.c:26
+msgid "edit files in place"
+msgstr "vorhandene Dateien direkt bearbeiten"
-#: builtin/interpret-trailers.c:25
+#: builtin/interpret-trailers.c:27
msgid "trim empty trailers"
msgstr "kürzt leere Anhänge"
-#: builtin/interpret-trailers.c:26
+#: builtin/interpret-trailers.c:28
msgid "trailer"
msgstr "Anhang"
-#: builtin/interpret-trailers.c:27
+#: builtin/interpret-trailers.c:29
msgid "trailer(s) to add"
msgstr "Anhang/Anhänge hinzufügen"
+#: builtin/interpret-trailers.c:42
+msgid "no input file given for in-place editing"
+msgstr "keine Datei zur direkten Bearbeitung angegeben"
+
#: builtin/log.c:43
msgid "git log [<options>] [<revision-range>] [[--] <path>...]"
msgstr "git log [<Optionen>] [<Commitbereich>] [[--] <Pfad>...]"
@@ -7296,226 +7406,226 @@ msgstr "Kann Objekt %s nicht lesen."
msgid "Unknown type: %d"
msgstr "Unbekannter Typ: %d"
-#: builtin/log.c:714
+#: builtin/log.c:715
msgid "format.headers without value"
msgstr "format.headers ohne Wert"
-#: builtin/log.c:798
+#: builtin/log.c:801
msgid "name of output directory is too long"
msgstr "Name des Ausgabeverzeichnisses ist zu lang."
-#: builtin/log.c:813
+#: builtin/log.c:816
#, c-format
msgid "Cannot open patch file %s"
msgstr "Kann Patch-Datei %s nicht öffnen"
-#: builtin/log.c:827
+#: builtin/log.c:830
msgid "Need exactly one range."
msgstr "Brauche genau einen Commit-Bereich."
-#: builtin/log.c:837
+#: builtin/log.c:840
msgid "Not a range."
msgstr "Kein Commit-Bereich."
-#: builtin/log.c:943
+#: builtin/log.c:946
msgid "Cover letter needs email format"
msgstr "Anschreiben benötigt E-Mail-Format"
-#: builtin/log.c:1022
+#: builtin/log.c:1025
#, c-format
msgid "insane in-reply-to: %s"
msgstr "ungültiges in-reply-to: %s"
-#: builtin/log.c:1050
+#: builtin/log.c:1053
msgid "git format-patch [<options>] [<since> | <revision-range>]"
msgstr "git format-patch [<Optionen>] [<seit> | <Commitbereich>]"
-#: builtin/log.c:1095
+#: builtin/log.c:1098
msgid "Two output directories?"
msgstr "Zwei Ausgabeverzeichnisse?"
-#: builtin/log.c:1211
+#: builtin/log.c:1214
msgid "use [PATCH n/m] even with a single patch"
msgstr "[PATCH n/m] auch mit einzelnem Patch verwenden"
-#: builtin/log.c:1214
+#: builtin/log.c:1217
msgid "use [PATCH] even with multiple patches"
msgstr "[PATCH] auch mit mehreren Patches verwenden"
-#: builtin/log.c:1218
+#: builtin/log.c:1221
msgid "print patches to standard out"
msgstr "Ausgabe der Patches in Standard-Ausgabe"
-#: builtin/log.c:1220
+#: builtin/log.c:1223
msgid "generate a cover letter"
msgstr "ein Deckblatt erzeugen"
-#: builtin/log.c:1222
+#: builtin/log.c:1225
msgid "use simple number sequence for output file names"
msgstr "einfache Nummernfolge für die Namen der Ausgabedateien verwenden"
-#: builtin/log.c:1223
+#: builtin/log.c:1226
msgid "sfx"
msgstr "Dateiendung"
-#: builtin/log.c:1224
+#: builtin/log.c:1227
msgid "use <sfx> instead of '.patch'"
msgstr "<Dateiendung> anstatt '.patch' verwenden"
-#: builtin/log.c:1226
+#: builtin/log.c:1229
msgid "start numbering patches at <n> instead of 1"
msgstr "die Nummerierung der Patches bei <n> anstatt bei 1 beginnen"
-#: builtin/log.c:1228
+#: builtin/log.c:1231
msgid "mark the series as Nth re-roll"
msgstr "die Serie als n-te Fassung kennzeichnen"
-#: builtin/log.c:1230
+#: builtin/log.c:1233
msgid "Use [<prefix>] instead of [PATCH]"
msgstr "[<Präfix>] anstatt [PATCH] verwenden"
-#: builtin/log.c:1233
+#: builtin/log.c:1236
msgid "store resulting files in <dir>"
msgstr "erzeugte Dateien in <Verzeichnis> speichern"
-#: builtin/log.c:1236
+#: builtin/log.c:1239
msgid "don't strip/add [PATCH]"
msgstr "[PATCH] nicht entfernen/hinzufügen"
-#: builtin/log.c:1239
+#: builtin/log.c:1242
msgid "don't output binary diffs"
msgstr "keine binären Unterschiede ausgeben"
-#: builtin/log.c:1241
+#: builtin/log.c:1244
msgid "output all-zero hash in From header"
msgstr "Hash mit Nullen in \"From\"-Header ausgeben"
-#: builtin/log.c:1243
+#: builtin/log.c:1246
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:1245
+#: builtin/log.c:1248
msgid "show patch format instead of default (patch + stat)"
msgstr "Patchformat anstatt des Standards anzeigen (Patch + Zusammenfassung)"
-#: builtin/log.c:1247
+#: builtin/log.c:1250
msgid "Messaging"
msgstr "E-Mail-Einstellungen"
-#: builtin/log.c:1248
+#: builtin/log.c:1251
msgid "header"
msgstr "Header"
-#: builtin/log.c:1249
+#: builtin/log.c:1252
msgid "add email header"
msgstr "E-Mail-Header hinzufügen"
-#: builtin/log.c:1250 builtin/log.c:1252
+#: builtin/log.c:1253 builtin/log.c:1255
msgid "email"
msgstr "E-Mail"
-#: builtin/log.c:1250
+#: builtin/log.c:1253
msgid "add To: header"
msgstr "\"To:\"-Header hinzufügen"
-#: builtin/log.c:1252
+#: builtin/log.c:1255
msgid "add Cc: header"
msgstr "\"Cc:\"-Header hinzufügen"
-#: builtin/log.c:1254
+#: builtin/log.c:1257
msgid "ident"
msgstr "Ident"
-#: builtin/log.c:1255
+#: builtin/log.c:1258
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:1257
+#: builtin/log.c:1260
msgid "message-id"
msgstr "message-id"
-#: builtin/log.c:1258
+#: builtin/log.c:1261
msgid "make first mail a reply to <message-id>"
msgstr "aus erster E-Mail eine Antwort zu <message-id> machen"
-#: builtin/log.c:1259 builtin/log.c:1262
+#: builtin/log.c:1262 builtin/log.c:1265
msgid "boundary"
msgstr "Grenze"
-#: builtin/log.c:1260
+#: builtin/log.c:1263
msgid "attach the patch"
msgstr "den Patch anhängen"
-#: builtin/log.c:1263
+#: builtin/log.c:1266
msgid "inline the patch"
msgstr "den Patch direkt in die Nachricht einfügen"
-#: builtin/log.c:1267
+#: builtin/log.c:1270
msgid "enable message threading, styles: shallow, deep"
msgstr "Nachrichtenverkettung aktivieren, Stile: shallow, deep"
-#: builtin/log.c:1269
+#: builtin/log.c:1272
msgid "signature"
msgstr "Signatur"
-#: builtin/log.c:1270
+#: builtin/log.c:1273
msgid "add a signature"
msgstr "eine Signatur hinzufügen"
-#: builtin/log.c:1272
+#: builtin/log.c:1275
msgid "add a signature from a file"
msgstr "eine Signatur aus einer Datei hinzufügen"
-#: builtin/log.c:1273
+#: builtin/log.c:1276
msgid "don't print the patch filenames"
msgstr "keine Dateinamen der Patches anzeigen"
-#: builtin/log.c:1362
+#: builtin/log.c:1365
msgid "-n and -k are mutually exclusive."
msgstr "Die Optionen -n und -k schließen sich gegenseitig aus."
-#: builtin/log.c:1364
+#: builtin/log.c:1367
msgid "--subject-prefix and -k are mutually exclusive."
msgstr "Die Optionen --subject-prefix und -k schließen sich gegenseitig aus."
-#: builtin/log.c:1372
+#: builtin/log.c:1375
msgid "--name-only does not make sense"
msgstr "Die Option --name-only kann nicht verwendet werden."
-#: builtin/log.c:1374
+#: builtin/log.c:1377
msgid "--name-status does not make sense"
msgstr "Die Option --name-status kann nicht verwendet werden."
-#: builtin/log.c:1376
+#: builtin/log.c:1379
msgid "--check does not make sense"
msgstr "Die Option --check kann nicht verwendet werden."
-#: builtin/log.c:1401
+#: builtin/log.c:1407
msgid "standard output, or directory, which one?"
msgstr "Standard-Ausgabe oder Verzeichnis, welches von beidem?"
-#: builtin/log.c:1403
+#: builtin/log.c:1409
#, c-format
msgid "Could not create directory '%s'"
msgstr "Konnte Verzeichnis '%s' nicht erstellen."
-#: builtin/log.c:1500
+#: builtin/log.c:1506
#, c-format
msgid "unable to read signature file '%s'"
msgstr "Konnte Signatur-Datei '%s' nicht lesen"
-#: builtin/log.c:1563
+#: builtin/log.c:1569
msgid "Failed to create output files"
msgstr "Fehler beim Erstellen der Ausgabedateien."
-#: builtin/log.c:1611
+#: builtin/log.c:1617
msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
msgstr "git cherry [-v] [<Upstream> [<Branch> [<Limit>]]]"
-#: builtin/log.c:1665
+#: builtin/log.c:1671
#, c-format
msgid ""
"Could not find a tracked remote branch, please specify <upstream> manually.\n"
@@ -7523,108 +7633,159 @@ msgstr ""
"Konnte gefolgten Remote-Branch nicht finden, bitte geben Sie <Upstream> "
"manuell an.\n"
-#: builtin/log.c:1676 builtin/log.c:1678 builtin/log.c:1690
+#: builtin/log.c:1682 builtin/log.c:1684 builtin/log.c:1696
#, c-format
msgid "Unknown commit %s"
msgstr "Unbekannter Commit %s"
-#: builtin/ls-files.c:358
+#: builtin/ls-files.c:378
msgid "git ls-files [<options>] [<file>...]"
msgstr "git ls-files [<Optionen>] [<Datei>...]"
-#: builtin/ls-files.c:415
+#: builtin/ls-files.c:427
msgid "identify the file status with tags"
msgstr "den Dateistatus mit Tags anzeigen"
-#: builtin/ls-files.c:417
+#: builtin/ls-files.c:429
msgid "use lowercase letters for 'assume unchanged' files"
msgstr ""
"Kleinbuchstaben für Dateien mit 'assume unchanged' Markierung verwenden"
-#: builtin/ls-files.c:419
+#: builtin/ls-files.c:431
msgid "show cached files in the output (default)"
msgstr "zwischengespeicherte Dateien in der Ausgabe anzeigen (Standard)"
-#: builtin/ls-files.c:421
+#: builtin/ls-files.c:433
msgid "show deleted files in the output"
msgstr "entfernte Dateien in der Ausgabe anzeigen"
-#: builtin/ls-files.c:423
+#: builtin/ls-files.c:435
msgid "show modified files in the output"
msgstr "geänderte Dateien in der Ausgabe anzeigen"
-#: builtin/ls-files.c:425
+#: builtin/ls-files.c:437
msgid "show other files in the output"
msgstr "sonstige Dateien in der Ausgabe anzeigen"
-#: builtin/ls-files.c:427
+#: builtin/ls-files.c:439
msgid "show ignored files in the output"
msgstr "ignorierte Dateien in der Ausgabe anzeigen"
-#: builtin/ls-files.c:430
+#: builtin/ls-files.c:442
msgid "show staged contents' object name in the output"
msgstr ""
"Objektnamen von Inhalten, die zum Commit vorgemerkt sind, in der Ausgabe "
"anzeigen"
-#: builtin/ls-files.c:432
+#: builtin/ls-files.c:444
msgid "show files on the filesystem that need to be removed"
msgstr "Dateien im Dateisystem, die gelöscht werden müssen, anzeigen"
-#: builtin/ls-files.c:434
+#: builtin/ls-files.c:446
msgid "show 'other' directories' names only"
msgstr "nur Namen von 'sonstigen' Verzeichnissen anzeigen"
-#: builtin/ls-files.c:437
+#: builtin/ls-files.c:448
+msgid "show line endings of files"
+msgstr "Zeilenenden von Dateien anzeigen"
+
+#: builtin/ls-files.c:450
msgid "don't show empty directories"
msgstr "keine leeren Verzeichnisse anzeigen"
-#: builtin/ls-files.c:440
+#: builtin/ls-files.c:453
msgid "show unmerged files in the output"
msgstr "nicht zusammengeführte Dateien in der Ausgabe anzeigen"
-#: builtin/ls-files.c:442
+#: builtin/ls-files.c:455
msgid "show resolve-undo information"
msgstr "'resolve-undo' Informationen anzeigen"
-#: builtin/ls-files.c:444
+#: builtin/ls-files.c:457
msgid "skip files matching pattern"
msgstr "Dateien auslassen, die einem Muster entsprechen"
-#: builtin/ls-files.c:447
+#: builtin/ls-files.c:460
msgid "exclude patterns are read from <file>"
msgstr "Muster, gelesen von <Datei>, ausschließen"
-#: builtin/ls-files.c:450
+#: builtin/ls-files.c:463
msgid "read additional per-directory exclude patterns in <file>"
msgstr "zusätzliche pro-Verzeichnis Auschlussmuster aus <Datei> auslesen"
-#: builtin/ls-files.c:452
+#: builtin/ls-files.c:465
msgid "add the standard git exclusions"
msgstr "die standardmäßigen Git-Ausschlüsse hinzufügen"
-#: builtin/ls-files.c:455
+#: builtin/ls-files.c:468
msgid "make the output relative to the project top directory"
msgstr "Ausgabe relativ zum Projektverzeichnis"
-#: builtin/ls-files.c:458
+#: builtin/ls-files.c:471
msgid "if any <file> is not in the index, treat this as an error"
msgstr "als Fehler behandeln, wenn sich eine <Datei> nicht im Index befindet"
-#: builtin/ls-files.c:459
+#: builtin/ls-files.c:472
msgid "tree-ish"
msgstr "Commit-Referenz"
-#: builtin/ls-files.c:460
+#: builtin/ls-files.c:473
msgid "pretend that paths removed since <tree-ish> are still present"
msgstr ""
"vorgeben, dass Pfade, die seit <Commit-Referenz> gelöscht wurden, immer noch "
"vorhanden sind"
-#: builtin/ls-files.c:462
+#: builtin/ls-files.c:475
msgid "show debugging data"
msgstr "Ausgaben zur Fehlersuche anzeigen"
+#: builtin/ls-remote.c:7
+msgid ""
+"git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
+" [-q | --quiet] [--exit-code] [--get-url]\n"
+" [--symref] [<repository> [<refs>...]]"
+msgstr ""
+"git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<Programm>]\n"
+" [-q | --quiet] [--exit-code] [--get-url]\n"
+" [--symref] [<Repository> [<Referenzen>...]]"
+
+#: builtin/ls-remote.c:50
+msgid "do not print remote URL"
+msgstr "URL des Remote-Repositories nicht ausgeben"
+
+#: builtin/ls-remote.c:51 builtin/ls-remote.c:53
+msgid "exec"
+msgstr "Programm"
+
+#: builtin/ls-remote.c:52 builtin/ls-remote.c:54
+msgid "path of git-upload-pack on the remote host"
+msgstr "Pfad zu \"git-upload-pack\" auf der Gegenseite"
+
+#: builtin/ls-remote.c:56
+msgid "limit to tags"
+msgstr "auf Tags einschränken"
+
+#: builtin/ls-remote.c:57
+msgid "limit to heads"
+msgstr "auf Branches einschränken"
+
+#: builtin/ls-remote.c:58
+msgid "do not show peeled tags"
+msgstr "keine Tags anzeigen, die andere Tags enthalten"
+
+#: builtin/ls-remote.c:60
+msgid "take url.<base>.insteadOf into account"
+msgstr "url.<Basis>.insteadOf berücksichtigen"
+
+#: builtin/ls-remote.c:62
+msgid "exit with exit code 2 if no matching refs are found"
+msgstr "mit Rückkehrwert 2 beenden, wenn keine übereinstimmenden Referenzen\n"
+"gefunden wurden"
+
+#: builtin/ls-remote.c:64
+msgid "show underlying ref in addition to the object pointed by it"
+msgstr "zusätzlich die auf durch dieses Objekt verwiesene Referenzen anzeigen"
+
#: builtin/ls-tree.c:28
msgid "git ls-tree [<options>] <tree-ish> [<path>...]"
msgstr "git ls-tree [<Optionen>] <Commit-Referenz> [<Pfad>...]"
@@ -7694,33 +7855,33 @@ msgstr "Verfügbare Strategien sind:"
msgid "Available custom strategies are:"
msgstr "Verfügbare benutzerdefinierte Strategien sind:"
-#: builtin/merge.c:193 builtin/pull.c:119
+#: builtin/merge.c:193 builtin/pull.c:123
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:196 builtin/pull.c:122
+#: builtin/merge.c:196 builtin/pull.c:126
msgid "show a diffstat at the end of the merge"
msgstr "eine Zusammenfassung der Unterschiede am Schluss des Merges anzeigen"
-#: builtin/merge.c:197 builtin/pull.c:125
+#: builtin/merge.c:197 builtin/pull.c:129
msgid "(synonym to --stat)"
msgstr "(Synonym für --stat)"
-#: builtin/merge.c:199 builtin/pull.c:128
+#: builtin/merge.c:199 builtin/pull.c:132
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:202 builtin/pull.c:131
+#: builtin/merge.c:202 builtin/pull.c:135
msgid "create a single commit instead of doing a merge"
msgstr "einen einzelnen Commit anstatt eines Merges erzeugen"
-#: builtin/merge.c:204 builtin/pull.c:134
+#: builtin/merge.c:204 builtin/pull.c:138
msgid "perform a commit if the merge succeeds (default)"
msgstr "einen Commit durchführen, wenn der Merge erfolgreich war (Standard)"
-#: builtin/merge.c:206 builtin/pull.c:137
+#: builtin/merge.c:206 builtin/pull.c:141
msgid "edit message before committing"
msgstr "Bearbeitung der Beschreibung vor dem Commit"
@@ -7728,7 +7889,7 @@ msgstr "Bearbeitung der Beschreibung vor dem Commit"
msgid "allow fast-forward (default)"
msgstr "Vorspulen erlauben (Standard)"
-#: builtin/merge.c:209 builtin/pull.c:143
+#: builtin/merge.c:209 builtin/pull.c:147
msgid "abort if fast-forward is not possible"
msgstr "abbrechen, wenn kein Vorspulen möglich ist"
@@ -7736,20 +7897,20 @@ msgstr "abbrechen, wenn kein Vorspulen möglich ist"
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:214 builtin/notes.c:767 builtin/pull.c:148
+#: builtin/merge.c:214 builtin/notes.c:770 builtin/pull.c:152
#: builtin/revert.c:89
msgid "strategy"
msgstr "Strategie"
-#: builtin/merge.c:215 builtin/pull.c:149
+#: builtin/merge.c:215 builtin/pull.c:153
msgid "merge strategy to use"
msgstr "zu verwendende Merge-Strategie"
-#: builtin/merge.c:216 builtin/pull.c:152
+#: builtin/merge.c:216 builtin/pull.c:156
msgid "option=value"
msgstr "Option=Wert"
-#: builtin/merge.c:217 builtin/pull.c:153
+#: builtin/merge.c:217 builtin/pull.c:157
msgid "option for selected merge strategy"
msgstr "Option für ausgewählte Merge-Strategie"
@@ -7788,8 +7949,8 @@ msgstr " (nichts zu quetschen)"
msgid "Squash commit -- not updating HEAD\n"
msgstr "Quetsche Commit -- HEAD wird nicht aktualisiert\n"
-#: builtin/merge.c:344 builtin/merge.c:763 builtin/merge.c:975
-#: builtin/merge.c:988
+#: builtin/merge.c:344 builtin/merge.c:764 builtin/merge.c:976
+#: builtin/merge.c:989
#, c-format
msgid "Could not write to '%s'"
msgstr "Konnte nicht nach '%s' schreiben."
@@ -7807,43 +7968,43 @@ msgstr "Schließe SQUASH_MSG ab"
msgid "No merge message -- not updating HEAD\n"
msgstr "Keine Merge-Commit-Beschreibung -- HEAD wird nicht aktualisiert\n"
-#: builtin/merge.c:447
+#: builtin/merge.c:448
#, c-format
msgid "'%s' does not point to a commit"
msgstr "'%s' zeigt auf keinen Commit"
-#: builtin/merge.c:537
+#: builtin/merge.c:538
#, c-format
msgid "Bad branch.%s.mergeoptions string: %s"
msgstr "Ungültiger branch.%s.mergeoptions String: %s"
-#: builtin/merge.c:656
+#: builtin/merge.c:657
msgid "Not handling anything other than two heads merge."
msgstr "Es wird nur der Merge von zwei Branches behandelt."
-#: builtin/merge.c:670
+#: builtin/merge.c:671
#, c-format
msgid "Unknown option for merge-recursive: -X%s"
msgstr "Unbekannte Option für merge-recursive: -X%s"
-#: builtin/merge.c:683
+#: builtin/merge.c:684
#, c-format
msgid "unable to write %s"
msgstr "konnte %s nicht schreiben"
-#: builtin/merge.c:772
+#: builtin/merge.c:773
#, c-format
msgid "Could not read from '%s'"
msgstr "konnte nicht von '%s' lesen"
-#: builtin/merge.c:781
+#: builtin/merge.c:782
#, 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:787
+#: builtin/merge.c:788
#, c-format
msgid ""
"Please enter a commit message to explain why this merge is necessary,\n"
@@ -7859,55 +8020,55 @@ msgstr ""
"Zeilen beginnend mit '%c' werden ignoriert, und eine leere Beschreibung\n"
"bricht den Commit ab.\n"
-#: builtin/merge.c:811
+#: builtin/merge.c:812
msgid "Empty commit message."
msgstr "Leere Commit-Beschreibung"
-#: builtin/merge.c:823
+#: builtin/merge.c:824
#, c-format
msgid "Wonderful.\n"
msgstr "Wunderbar.\n"
-#: builtin/merge.c:878
+#: builtin/merge.c:879
#, 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:894
+#: builtin/merge.c:895
#, c-format
msgid "'%s' is not a commit"
msgstr "'%s' ist kein Commit"
-#: builtin/merge.c:935
+#: builtin/merge.c:936
msgid "No current branch."
msgstr "Sie befinden sich auf keinem Branch."
-#: builtin/merge.c:937
+#: builtin/merge.c:938
msgid "No remote for the current branch."
msgstr "Kein Remote-Repository für den aktuellen Branch."
-#: builtin/merge.c:939
+#: builtin/merge.c:940
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:944
+#: builtin/merge.c:945
#, c-format
msgid "No remote-tracking branch for %s from %s"
msgstr "Kein Remote-Tracking-Branch für %s von %s"
-#: builtin/merge.c:1079
+#: builtin/merge.c:1080
#, c-format
msgid "could not close '%s'"
msgstr "Konnte '%s' nicht schließen"
-#: builtin/merge.c:1206
+#: builtin/merge.c:1207
msgid "There is no merge to abort (MERGE_HEAD missing)."
msgstr "Es gibt keinen Merge zum Abbrechen (MERGE_HEAD fehlt)"
-#: builtin/merge.c:1222
+#: builtin/merge.c:1223
msgid ""
"You have not concluded your merge (MERGE_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -7915,7 +8076,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:1229
+#: builtin/merge.c:1230
msgid ""
"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -7923,105 +8084,105 @@ 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:1232
+#: builtin/merge.c:1233
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:1241
+#: builtin/merge.c:1242
msgid "You cannot combine --squash with --no-ff."
msgstr "Sie können --squash nicht mit --no-ff kombinieren."
-#: builtin/merge.c:1249
+#: builtin/merge.c:1250
msgid "No commit specified and merge.defaultToUpstream not set."
msgstr "Kein Commit angegeben und merge.defaultToUpstream ist nicht gesetzt."
-#: builtin/merge.c:1266
+#: builtin/merge.c:1267
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:1268
+#: builtin/merge.c:1269
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:1274
+#: builtin/merge.c:1275
#, c-format
msgid "%s - not something we can merge"
msgstr "%s - nichts was wir zusammenführen können"
-#: builtin/merge.c:1276
+#: builtin/merge.c:1277
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:1331
+#: builtin/merge.c:1332
#, 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."
-#: builtin/merge.c:1334
+#: builtin/merge.c:1335
#, 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."
-#: builtin/merge.c:1337
+#: builtin/merge.c:1338
#, c-format
msgid "Commit %s does not have a GPG signature."
msgstr "Commit %s hat keine GPG-Signatur."
-#: builtin/merge.c:1340
+#: builtin/merge.c:1341
#, 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"
-#: builtin/merge.c:1423
+#: builtin/merge.c:1424
#, c-format
msgid "Updating %s..%s\n"
msgstr "Aktualisiere %s..%s\n"
-#: builtin/merge.c:1460
+#: builtin/merge.c:1461
#, c-format
msgid "Trying really trivial in-index merge...\n"
msgstr "Probiere wirklich trivialen \"in-index\"-Merge ...\n"
-#: builtin/merge.c:1467
+#: builtin/merge.c:1468
#, c-format
msgid "Nope.\n"
msgstr "Nein.\n"
-#: builtin/merge.c:1499
+#: builtin/merge.c:1500
msgid "Not possible to fast-forward, aborting."
msgstr "Vorspulen nicht möglich, breche ab."
-#: builtin/merge.c:1522 builtin/merge.c:1601
+#: builtin/merge.c:1523 builtin/merge.c:1602
#, c-format
msgid "Rewinding the tree to pristine...\n"
msgstr "Rücklauf des Verzeichnisses bis zum Ursprung ...\n"
-#: builtin/merge.c:1526
+#: builtin/merge.c:1527
#, c-format
msgid "Trying merge strategy %s...\n"
msgstr "Probiere Merge-Strategie %s ...\n"
-#: builtin/merge.c:1592
+#: builtin/merge.c:1593
#, c-format
msgid "No merge strategy handled the merge.\n"
msgstr "Keine Merge-Strategie behandelt diesen Merge.\n"
-#: builtin/merge.c:1594
+#: builtin/merge.c:1595
#, c-format
msgid "Merge with strategy %s failed.\n"
msgstr "Merge mit Strategie %s fehlgeschlagen.\n"
-#: builtin/merge.c:1603
+#: builtin/merge.c:1604
#, 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:1615
+#: builtin/merge.c:1616
#, c-format
msgid "Automatic merge went well; stopped before committing as requested\n"
msgstr ""
@@ -8107,19 +8268,19 @@ msgstr "keine Warnung bei Konflikten"
msgid "set labels for file1/orig-file/file2"
msgstr "Beschriftung für Datei1/orig-Datei/Datei2 setzen"
-#: builtin/mktree.c:64
+#: builtin/mktree.c:65
msgid "git mktree [-z] [--missing] [--batch]"
msgstr "git mktree [-z] [--missing] [--batch]"
-#: builtin/mktree.c:150
+#: builtin/mktree.c:152
msgid "input is NUL terminated"
msgstr "Eingabe ist durch NUL-Zeichen abgeschlossen"
-#: builtin/mktree.c:151 builtin/write-tree.c:24
+#: builtin/mktree.c:153 builtin/write-tree.c:24
msgid "allow missing objects"
msgstr "fehlende Objekte erlauben"
-#: builtin/mktree.c:152
+#: builtin/mktree.c:154
msgid "allow creation of more than one tree"
msgstr "die Erstellung von mehr als einem \"Tree\"-Objekt erlauben"
@@ -8127,93 +8288,93 @@ msgstr "die Erstellung von mehr als einem \"Tree\"-Objekt erlauben"
msgid "git mv [<options>] <source>... <destination>"
msgstr "git mv [<Optionen>] <Quelle>... <Ziel>"
-#: builtin/mv.c:69
+#: builtin/mv.c:70
#, c-format
msgid "Directory %s is in index and no submodule?"
msgstr "Verzeichnis %s ist zum Commit vorgemerkt und kein Submodul?"
-#: builtin/mv.c:71
+#: builtin/mv.c:72
msgid "Please stage your changes to .gitmodules or stash them to proceed"
msgstr ""
"Bitte merken Sie Ihre Änderungen in .gitmodules zum Commit vor oder "
"benutzen\n"
"Sie \"stash\", um fortzufahren."
-#: builtin/mv.c:89
+#: builtin/mv.c:90
#, c-format
msgid "%.*s is in index"
msgstr "%.*s ist zum Commit vorgemerkt"
-#: builtin/mv.c:111
+#: builtin/mv.c:112
msgid "force move/rename even if target exists"
msgstr "Verschieben/Umbenennen erzwingen, auch wenn das Ziel existiert"
-#: builtin/mv.c:112
+#: builtin/mv.c:113
msgid "skip move/rename errors"
msgstr "Fehler beim Verschieben oder Umbenennen überspringen"
-#: builtin/mv.c:151
+#: builtin/mv.c:152
#, c-format
msgid "destination '%s' is not a directory"
msgstr "Ziel '%s' ist kein Verzeichnis"
-#: builtin/mv.c:162
+#: builtin/mv.c:163
#, c-format
msgid "Checking rename of '%s' to '%s'\n"
msgstr "Prüfe Umbenennung von '%s' nach '%s'\n"
-#: builtin/mv.c:166
+#: builtin/mv.c:167
msgid "bad source"
msgstr "ungültige Quelle"
-#: builtin/mv.c:169
+#: builtin/mv.c:170
msgid "can not move directory into itself"
msgstr "kann Verzeichnis nicht in sich selbst verschieben"
-#: builtin/mv.c:172
+#: builtin/mv.c:173
msgid "cannot move directory over file"
msgstr "kann Verzeichnis nicht über Datei verschieben"
-#: builtin/mv.c:181
+#: builtin/mv.c:182
msgid "source directory is empty"
msgstr "Quellverzeichnis ist leer"
-#: builtin/mv.c:206
+#: builtin/mv.c:207
msgid "not under version control"
msgstr "nicht unter Versionskontrolle"
-#: builtin/mv.c:209
+#: builtin/mv.c:210
msgid "destination exists"
msgstr "Ziel existiert bereits"
-#: builtin/mv.c:217
+#: builtin/mv.c:218
#, c-format
msgid "overwriting '%s'"
msgstr "überschreibe '%s'"
-#: builtin/mv.c:220
+#: builtin/mv.c:221
msgid "Cannot overwrite"
msgstr "Kann nicht überschreiben"
-#: builtin/mv.c:223
+#: builtin/mv.c:224
msgid "multiple sources for the same target"
msgstr "mehrere Quellen für das selbe Ziel"
-#: builtin/mv.c:225
+#: builtin/mv.c:226
msgid "destination directory does not exist"
msgstr "Zielverzeichnis existiert nicht"
-#: builtin/mv.c:232
+#: builtin/mv.c:233
#, c-format
msgid "%s, source=%s, destination=%s"
msgstr "%s, Quelle=%s, Ziel=%s"
-#: builtin/mv.c:253
+#: builtin/mv.c:254
#, c-format
msgid "Renaming %s to %s\n"
msgstr "Benenne %s nach %s um\n"
-#: builtin/mv.c:256 builtin/remote.c:728 builtin/repack.c:365
+#: builtin/mv.c:257 builtin/remote.c:714 builtin/repack.c:365
#, c-format
msgid "renaming '%s' failed"
msgstr "Umbenennung von '%s' fehlgeschlagen"
@@ -8414,9 +8575,9 @@ msgid "could not open or read '%s'"
msgstr "konnte '%s' nicht öffnen oder lesen"
#: builtin/notes.c:253 builtin/notes.c:304 builtin/notes.c:306
-#: builtin/notes.c:366 builtin/notes.c:421 builtin/notes.c:507
-#: builtin/notes.c:512 builtin/notes.c:590 builtin/notes.c:653
-#: builtin/notes.c:877 builtin/tag.c:456
+#: builtin/notes.c:369 builtin/notes.c:424 builtin/notes.c:510
+#: builtin/notes.c:515 builtin/notes.c:593 builtin/notes.c:656
+#: builtin/notes.c:880 builtin/tag.c:456
#, c-format
msgid "Failed to resolve '%s' as a valid ref."
msgstr "Konnte '%s' nicht als gültige Referenz auflösen."
@@ -8431,42 +8592,42 @@ msgstr "Fehler beim Lesen des Objektes '%s'."
msgid "Cannot read note data from non-blob object '%s'."
msgstr "Kann Notiz-Daten nicht von Nicht-Blob Objekt '%s' lesen."
-#: builtin/notes.c:359 builtin/notes.c:414 builtin/notes.c:490
-#: builtin/notes.c:502 builtin/notes.c:578 builtin/notes.c:646
-#: builtin/notes.c:942
+#: builtin/notes.c:362 builtin/notes.c:417 builtin/notes.c:493
+#: builtin/notes.c:505 builtin/notes.c:581 builtin/notes.c:649
+#: builtin/notes.c:945
msgid "too many parameters"
msgstr "zu viele Parameter"
-#: builtin/notes.c:372 builtin/notes.c:659
+#: builtin/notes.c:375 builtin/notes.c:662
#, c-format
msgid "No note found for object %s."
msgstr "Keine Notiz für Objekt %s gefunden."
-#: builtin/notes.c:393 builtin/notes.c:556
+#: builtin/notes.c:396 builtin/notes.c:559
msgid "note contents as a string"
msgstr "Notizinhalte als Zeichenkette"
-#: builtin/notes.c:396 builtin/notes.c:559
+#: builtin/notes.c:399 builtin/notes.c:562
msgid "note contents in a file"
msgstr "Notizinhalte in einer Datei"
-#: builtin/notes.c:399 builtin/notes.c:562
+#: builtin/notes.c:402 builtin/notes.c:565
msgid "reuse and edit specified note object"
msgstr "Wiederverwendung und Bearbeitung des angegebenen Notiz-Objektes"
-#: builtin/notes.c:402 builtin/notes.c:565
+#: builtin/notes.c:405 builtin/notes.c:568
msgid "reuse specified note object"
msgstr "Wiederverwendung des angegebenen Notiz-Objektes"
-#: builtin/notes.c:405 builtin/notes.c:568
+#: builtin/notes.c:408 builtin/notes.c:571
msgid "allow storing empty note"
msgstr "Speichern leerer Notiz erlauben"
-#: builtin/notes.c:406 builtin/notes.c:477
+#: builtin/notes.c:409 builtin/notes.c:480
msgid "replace existing notes"
msgstr "existierende Notizen ersetzen"
-#: builtin/notes.c:431
+#: builtin/notes.c:434
#, c-format
msgid ""
"Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite "
@@ -8475,31 +8636,31 @@ msgstr ""
"Konnte Notizen nicht hinzufügen. Existierende Notizen für Objekt %s "
"gefunden. Verwenden Sie '-f', um die existierenden Notizen zu überschreiben."
-#: builtin/notes.c:446 builtin/notes.c:525
+#: builtin/notes.c:449 builtin/notes.c:528
#, c-format
msgid "Overwriting existing notes for object %s\n"
msgstr "Überschreibe existierende Notizen für Objekt %s\n"
-#: builtin/notes.c:457 builtin/notes.c:618 builtin/notes.c:882
+#: builtin/notes.c:460 builtin/notes.c:621 builtin/notes.c:885
#, c-format
msgid "Removing note for object %s\n"
msgstr "Entferne Notiz für Objekt %s\n"
-#: builtin/notes.c:478
+#: builtin/notes.c:481
msgid "read objects from stdin"
msgstr "Objekte von der Standard-Eingabe lesen"
-#: builtin/notes.c:480
+#: builtin/notes.c:483
msgid "load rewriting config for <command> (implies --stdin)"
msgstr ""
-"Konfiguration für <Kommando> beim Umschreiben von Versionen laden "
+"Konfiguration für <Befehl> zum Umschreiben von Commits laden "
"(impliziert --stdin)"
-#: builtin/notes.c:498
+#: builtin/notes.c:501
msgid "too few parameters"
msgstr "zu wenig Parameter"
-#: builtin/notes.c:519
+#: builtin/notes.c:522
#, c-format
msgid ""
"Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite "
@@ -8508,29 +8669,29 @@ msgstr ""
"Kann Notizen nicht kopieren. Existierende Notizen für Objekt %s gefunden. "
"Verwenden Sie '-f', um die existierenden Notizen zu überschreiben."
-#: builtin/notes.c:531
+#: builtin/notes.c:534
#, c-format
msgid "Missing notes on source object %s. Cannot copy."
msgstr "Keine Notizen für Quell-Objekt %s. Kopie nicht möglich."
-#: builtin/notes.c:583
+#: builtin/notes.c:586
#, c-format
msgid ""
"The -m/-F/-c/-C options have been deprecated for the 'edit' subcommand.\n"
"Please use 'git notes add -f -m/-F/-c/-C' instead.\n"
msgstr ""
-"Die Optionen -m/-F/-c/-C sind für das Unterkommando 'edit' veraltet.\n"
+"Die Optionen -m/-F/-c/-C sind für den Unterbefehl 'edit' veraltet.\n"
"Bitte benutzen Sie stattdessen 'git notes add -f -m/-F/-c/-C'.\n"
-#: builtin/notes.c:764
+#: builtin/notes.c:767
msgid "General options"
msgstr "Allgemeine Optionen"
-#: builtin/notes.c:766
+#: builtin/notes.c:769
msgid "Merge options"
msgstr "Merge-Optionen"
-#: builtin/notes.c:768
+#: builtin/notes.c:771
msgid ""
"resolve notes conflicts using the given strategy (manual/ours/theirs/union/"
"cat_sort_uniq)"
@@ -8538,54 +8699,54 @@ msgstr ""
"löst Konflikte bei Notizen mit der angegebenen Strategie auf (manual/ours/"
"theirs/union/cat_sort_uniq)"
-#: builtin/notes.c:770
+#: builtin/notes.c:773
msgid "Committing unmerged notes"
msgstr "nicht zusammengeführte Notizen eintragen"
-#: builtin/notes.c:772
+#: builtin/notes.c:775
msgid "finalize notes merge by committing unmerged notes"
msgstr ""
"Merge von Notizen abschließen, in dem nicht zusammengeführte Notizen "
"committet werden"
-#: builtin/notes.c:774
+#: builtin/notes.c:777
msgid "Aborting notes merge resolution"
msgstr "Konfliktauflösung beim Merge von Notizen abbrechen"
-#: builtin/notes.c:776
+#: builtin/notes.c:779
msgid "abort notes merge"
msgstr "Merge von Notizen abbrechen"
-#: builtin/notes.c:853
+#: builtin/notes.c:856
#, c-format
msgid "A notes merge into %s is already in-progress at %s"
msgstr "Ein Merge von Notizen nach %s ist bereits im Gange bei %s"
-#: builtin/notes.c:880
+#: builtin/notes.c:883
#, c-format
msgid "Object %s has no note\n"
msgstr "Objekt %s hat keine Notiz\n"
-#: builtin/notes.c:892
+#: builtin/notes.c:895
msgid "attempt to remove non-existent note is not an error"
msgstr "der Versuch, eine nicht existierende Notiz zu löschen, ist kein Fehler"
-#: builtin/notes.c:895
+#: builtin/notes.c:898
msgid "read object names from the standard input"
msgstr "Objektnamen von der Standard-Eingabe lesen"
-#: builtin/notes.c:976
+#: builtin/notes.c:979
msgid "notes-ref"
msgstr "Notiz-Referenz"
-#: builtin/notes.c:977
+#: builtin/notes.c:980
msgid "use notes from <notes-ref>"
msgstr "Notizen von <Notiz-Referenz> verwenden"
-#: builtin/notes.c:1012 builtin/remote.c:1647
+#: builtin/notes.c:1015 builtin/remote.c:1626
#, c-format
msgid "Unknown subcommand: %s"
-msgstr "Unbekanntes Unterkommando: %s"
+msgstr "Unbekannter Unterbefehl: %s"
#: builtin/pack-objects.c:28
msgid ""
@@ -8606,176 +8767,176 @@ msgstr ""
msgid "deflate error (%d)"
msgstr "Fehler beim Komprimieren (%d)"
-#: builtin/pack-objects.c:771
+#: builtin/pack-objects.c:772
msgid "Writing objects"
msgstr "Schreibe Objekte"
-#: builtin/pack-objects.c:1011
+#: builtin/pack-objects.c:1012
msgid "disabling bitmap writing, as some objects are not being packed"
msgstr ""
"Deaktiviere Schreiben des Bitmap-Index, da einige Objekte nicht in\n"
"eine Pack-Datei geschrieben wurden"
-#: builtin/pack-objects.c:2171
+#: builtin/pack-objects.c:2172
msgid "Compressing objects"
msgstr "Komprimiere Objekte"
-#: builtin/pack-objects.c:2568
+#: builtin/pack-objects.c:2558
#, c-format
msgid "unsupported index version %s"
msgstr "Nicht unterstützte Index-Version %s"
-#: builtin/pack-objects.c:2572
+#: builtin/pack-objects.c:2562
#, c-format
msgid "bad index version '%s'"
msgstr "Ungültige Index-Version '%s'"
-#: builtin/pack-objects.c:2602
+#: builtin/pack-objects.c:2592
msgid "do not show progress meter"
msgstr "keine Fortschrittsanzeige anzeigen"
-#: builtin/pack-objects.c:2604
+#: builtin/pack-objects.c:2594
msgid "show progress meter"
msgstr "Fortschrittsanzeige anzeigen"
-#: builtin/pack-objects.c:2606
+#: builtin/pack-objects.c:2596
msgid "show progress meter during object writing phase"
msgstr ""
"Forschrittsanzeige während der Phase des Schreibens der Objekte anzeigen"
-#: builtin/pack-objects.c:2609
+#: builtin/pack-objects.c:2599
msgid "similar to --all-progress when progress meter is shown"
msgstr "ähnlich zu --all-progress wenn Fortschrittsanzeige darstellt wird"
-#: builtin/pack-objects.c:2610
+#: builtin/pack-objects.c:2600
msgid "version[,offset]"
msgstr "version[,offset]"
-#: builtin/pack-objects.c:2611
+#: builtin/pack-objects.c:2601
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:2614
+#: builtin/pack-objects.c:2604
msgid "maximum size of each output pack file"
msgstr "maximale Größe für jede ausgegebene Paketdatei"
-#: builtin/pack-objects.c:2616
+#: builtin/pack-objects.c:2606
msgid "ignore borrowed objects from alternate object store"
msgstr "geliehene Objekte von alternativem Objektspeicher ignorieren"
-#: builtin/pack-objects.c:2618
+#: builtin/pack-objects.c:2608
msgid "ignore packed objects"
msgstr "gepackte Objekte ignorieren"
-#: builtin/pack-objects.c:2620
+#: builtin/pack-objects.c:2610
msgid "limit pack window by objects"
msgstr "Paketfenster durch Objekte begrenzen"
-#: builtin/pack-objects.c:2622
+#: builtin/pack-objects.c:2612
msgid "limit pack window by memory in addition to object limit"
msgstr ""
"Paketfenster, zusätzlich zur Objektbegrenzung, durch Speicher begrenzen"
-#: builtin/pack-objects.c:2624
+#: builtin/pack-objects.c:2614
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:2626
+#: builtin/pack-objects.c:2616
msgid "reuse existing deltas"
msgstr "existierende Unterschiede wiederverwenden"
-#: builtin/pack-objects.c:2628
+#: builtin/pack-objects.c:2618
msgid "reuse existing objects"
msgstr "existierende Objekte wiederverwenden"
-#: builtin/pack-objects.c:2630
+#: builtin/pack-objects.c:2620
msgid "use OFS_DELTA objects"
msgstr "OFS_DELTA Objekte verwenden"
-#: builtin/pack-objects.c:2632
+#: builtin/pack-objects.c:2622
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:2634
+#: builtin/pack-objects.c:2624
msgid "do not create an empty pack output"
msgstr "keine leeren Pakete erzeugen"
-#: builtin/pack-objects.c:2636
+#: builtin/pack-objects.c:2626
msgid "read revision arguments from standard input"
msgstr "Argumente bezüglich Commits von der Standard-Eingabe lesen"
-#: builtin/pack-objects.c:2638
+#: builtin/pack-objects.c:2628
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:2641
+#: builtin/pack-objects.c:2631
msgid "include objects reachable from any reference"
msgstr "Objekte einschließen, die von jeder Referenz erreichbar sind"
-#: builtin/pack-objects.c:2644
+#: builtin/pack-objects.c:2634
msgid "include objects referred by reflog entries"
msgstr ""
"Objekte einschließen, die von Einträgen des Reflogs referenziert werden"
-#: builtin/pack-objects.c:2647
+#: builtin/pack-objects.c:2637
msgid "include objects referred to by the index"
msgstr "Objekte einschließen, die vom Index referenziert werden"
-#: builtin/pack-objects.c:2650
+#: builtin/pack-objects.c:2640
msgid "output pack to stdout"
msgstr "Paket in die Standard-Ausgabe schreiben"
-#: builtin/pack-objects.c:2652
+#: builtin/pack-objects.c:2642
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:2654
+#: builtin/pack-objects.c:2644
msgid "keep unreachable objects"
msgstr "nicht erreichbare Objekte behalten"
-#: builtin/pack-objects.c:2655 parse-options.h:142
+#: builtin/pack-objects.c:2645 parse-options.h:142
msgid "time"
msgstr "Zeit"
-#: builtin/pack-objects.c:2656
+#: builtin/pack-objects.c:2646
msgid "unpack unreachable objects newer than <time>"
msgstr "nicht erreichbare Objekte entpacken, die neuer als <Zeit> sind"
-#: builtin/pack-objects.c:2659
+#: builtin/pack-objects.c:2649
msgid "create thin packs"
msgstr "dünnere Pakete erzeugen"
-#: builtin/pack-objects.c:2661
+#: builtin/pack-objects.c:2651
msgid "create packs suitable for shallow fetches"
msgstr ""
"Pakete geeignet für Abholung mit unvollständiger Historie (shallow) erzeugen"
-#: builtin/pack-objects.c:2663
+#: builtin/pack-objects.c:2653
msgid "ignore packs that have companion .keep file"
msgstr "Pakete ignorieren, die .keep Dateien haben"
-#: builtin/pack-objects.c:2665
+#: builtin/pack-objects.c:2655
msgid "pack compression level"
msgstr "Komprimierungsgrad für Paketierung"
-#: builtin/pack-objects.c:2667
+#: builtin/pack-objects.c:2657
msgid "do not hide commits by grafts"
msgstr "keine künstlichen Vorgänger-Commits (\"grafts\") verbergen"
-#: builtin/pack-objects.c:2669
+#: builtin/pack-objects.c:2659
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:2671
+#: builtin/pack-objects.c:2661
msgid "write a bitmap index together with the pack index"
msgstr "Bitmap-Index zusammen mit Pack-Index schreiben"
-#: builtin/pack-objects.c:2762
+#: builtin/pack-objects.c:2752
msgid "Counting objects"
msgstr "Zähle Objekte"
@@ -8819,52 +8980,56 @@ msgstr "Objekte älter als <Zeit> verfallen lassen"
msgid "cannot prune in a precious-objects repo"
msgstr "kann \"prune\" in precious-objects Repository nicht ausführen"
-#: builtin/pull.c:69
+#: builtin/pull.c:72
msgid "git pull [<options>] [<repository> [<refspec>...]]"
msgstr "git pull [<Optionen>] [<Repository> [<Refspec>...]]"
-#: builtin/pull.c:113
+#: builtin/pull.c:117
msgid "Options related to merging"
msgstr "Optionen bezogen auf Merge"
-#: builtin/pull.c:116
+#: builtin/pull.c:120
msgid "incorporate changes by rebasing rather than merging"
msgstr "Integration von Änderungen durch Rebase statt Merge"
-#: builtin/pull.c:140 builtin/revert.c:105
+#: builtin/pull.c:144 builtin/revert.c:105
msgid "allow fast-forward"
msgstr "Vorspulen erlauben"
-#: builtin/pull.c:146
+#: builtin/pull.c:150
msgid "verify that the named commit has a valid GPG signature"
msgstr "den genannten Commit auf eine gültige GPG-Signatur überprüfen"
-#: builtin/pull.c:160
+#: builtin/pull.c:164
msgid "Options related to fetching"
msgstr "Optionen bezogen auf Fetch"
-#: builtin/pull.c:268
+#: builtin/pull.c:186
+msgid "number of submodules pulled in parallel"
+msgstr "Anzahl der parallel mit 'pull' zu verarbeitenden Submodule"
+
+#: builtin/pull.c:275
#, c-format
msgid "Invalid value for pull.ff: %s"
msgstr "Ungültiger Wert für pull.ff: %s"
-#: builtin/pull.c:352
+#: builtin/pull.c:359
msgid "Cannot pull with rebase: You have unstaged changes."
msgstr ""
"Kann \"pull\" mit \"rebase\" nicht ausführen: Sie haben Änderungen, die "
"nicht zum Commit vorgemerkt sind."
-#: builtin/pull.c:358
+#: builtin/pull.c:365
msgid "Additionally, your index contains uncommitted changes."
msgstr "Zusätzlich beinhaltet die Staging-Area nicht committete Änderungen."
-#: builtin/pull.c:360
+#: builtin/pull.c:367
msgid "Cannot pull with rebase: Your index contains uncommitted changes."
msgstr ""
"Kann \"pull\" mit \"rebase\" nicht ausführen: Die Staging-Area beinhaltet "
"nicht committete Änderungen."
-#: builtin/pull.c:436
+#: builtin/pull.c:443
msgid ""
"There is no candidate for rebasing against among the refs that you just "
"fetched."
@@ -8872,14 +9037,14 @@ msgstr ""
"Es gibt keinen Kandidaten für Rebase innerhalb der Referenzen, die eben "
"angefordert wurden."
-#: builtin/pull.c:438
+#: builtin/pull.c:445
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:439
+#: builtin/pull.c:446
msgid ""
"Generally this means that you provided a wildcard refspec which had no\n"
"matches on the remote end."
@@ -8887,7 +9052,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:442
+#: builtin/pull.c:449
#, c-format
msgid ""
"You asked to pull from the remote '%s', but did not specify\n"
@@ -8897,31 +9062,31 @@ msgstr ""
"Sie führten \"pull\" von Remote-Repository '%s' aus, ohne einen\n"
"Branch anzugeben. Da das nicht das konfigurierte Standard-Remote-\n"
"Repository für den aktuellen Branch ist, müssen Sie einen Branch auf\n"
-"der Kommandozeile angeben."
+"der Befehlszeile angeben."
-#: builtin/pull.c:447
+#: builtin/pull.c:454
msgid "You are not currently on a branch."
msgstr "Im Moment auf keinem Branch."
-#: builtin/pull.c:449 builtin/pull.c:464
+#: builtin/pull.c:456 builtin/pull.c:471
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:451 builtin/pull.c:466
+#: builtin/pull.c:458 builtin/pull.c:473
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:452 builtin/pull.c:467
+#: builtin/pull.c:459 builtin/pull.c:474
msgid "See git-pull(1) for details."
msgstr "Siehe git-pull(1) für weitere Details."
-#: builtin/pull.c:462
+#: builtin/pull.c:469
msgid "There is no tracking information for the current branch."
msgstr "Es gibt keine Tracking-Informationen für den aktuellen Branch."
-#: builtin/pull.c:471
+#: builtin/pull.c:478
#, c-format
msgid ""
"If you wish to set tracking information for this branch you can do so with:\n"
@@ -8934,7 +9099,7 @@ msgstr ""
"\n"
" git branch --set-upstream-to=%s/<Branch> %s\n"
-#: builtin/pull.c:476
+#: builtin/pull.c:483
#, c-format
msgid ""
"Your configuration specifies to merge with the ref '%s'\n"
@@ -8944,13 +9109,13 @@ msgstr ""
"des Remote-Repositories durchzuführen, aber diese Referenz\n"
"wurde nicht angefordert."
-#: builtin/pull.c:830
+#: builtin/pull.c:841
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:859
+#: builtin/pull.c:870
#, c-format
msgid ""
"fetch updated the current branch head.\n"
@@ -8960,7 +9125,7 @@ msgstr ""
"\"fetch\" aktualisierte die Spitze des aktuellen Branches.\n"
"Spule Ihr Arbeitsverzeichnis von Commit %s vor."
-#: builtin/pull.c:864
+#: builtin/pull.c:875
#, c-format
msgid ""
"Cannot fast-forward your working tree.\n"
@@ -8977,11 +9142,11 @@ msgstr ""
"$ git reset --hard\n"
"zur Wiederherstellung aus."
-#: builtin/pull.c:879
+#: builtin/pull.c:890
msgid "Cannot merge multiple branches into empty head."
msgstr "Kann nicht mehrere Branches in einen leeren Branch zusammenführen."
-#: builtin/pull.c:883
+#: builtin/pull.c:894
msgid "Cannot rebase onto multiple branches."
msgstr "Kann Rebase nicht auf mehrere Branches ausführen."
@@ -8989,15 +9154,15 @@ msgstr "Kann Rebase nicht auf mehrere Branches ausführen."
msgid "git push [<options>] [<repository> [<refspec>...]]"
msgstr "git push [<Optionen>] [<Repository> [<Refspec>...]]"
-#: builtin/push.c:88
+#: builtin/push.c:89
msgid "tag shorthand without <tag>"
msgstr "Kurzschrift für Tag ohne <Tag>"
-#: builtin/push.c:98
+#: builtin/push.c:99
msgid "--delete only accepts plain target ref names"
msgstr "Die Option --delete akzeptiert nur reine Referenznamen als Ziel."
-#: builtin/push.c:142
+#: builtin/push.c:143
msgid ""
"\n"
"To choose either option permanently, see push.default in 'git help config'."
@@ -9006,7 +9171,7 @@ msgstr ""
"Um eine Variante permanent zu verwenden, siehe push.default in 'git help "
"config'."
-#: builtin/push.c:145
+#: builtin/push.c:146
#, c-format
msgid ""
"The upstream branch of your current branch does not match\n"
@@ -9032,7 +9197,7 @@ msgstr ""
" git push %s %s\n"
"%s"
-#: builtin/push.c:160
+#: builtin/push.c:161
#, c-format
msgid ""
"You are not currently on a branch.\n"
@@ -9047,7 +9212,7 @@ msgstr ""
"\n"
" git push %s HEAD:<Name-des-Remote-Branches>\n"
-#: builtin/push.c:174
+#: builtin/push.c:175
#, c-format
msgid ""
"The current branch %s has no upstream branch.\n"
@@ -9061,13 +9226,13 @@ msgstr ""
"\n"
" git push --set-upstream %s %s\n"
-#: builtin/push.c:182
+#: builtin/push.c:183
#, c-format
msgid "The current branch %s has multiple upstream branches, refusing to push."
msgstr ""
"Der aktuelle Branch %s hat mehrere Upstream-Branches, \"push\" verweigert."
-#: builtin/push.c:185
+#: builtin/push.c:186
#, c-format
msgid ""
"You are pushing to remote '%s', which is not the upstream of\n"
@@ -9078,65 +9243,14 @@ msgstr ""
"Branches '%s' ist, ohne anzugeben, was versendet werden soll, um welchen\n"
"Remote-Branch zu aktualisieren."
-#: builtin/push.c:208
-msgid ""
-"push.default is unset; its implicit value has changed in\n"
-"Git 2.0 from 'matching' to 'simple'. To squelch this message\n"
-"and maintain the traditional behavior, use:\n"
-"\n"
-" git config --global push.default matching\n"
-"\n"
-"To squelch this message and adopt the new behavior now, use:\n"
-"\n"
-" git config --global push.default simple\n"
-"\n"
-"When push.default is set to 'matching', git will push local branches\n"
-"to the remote branches that already exist with the same name.\n"
-"\n"
-"Since Git 2.0, Git defaults to the more conservative 'simple'\n"
-"behavior, which only pushes the current branch to the corresponding\n"
-"remote branch that 'git pull' uses to update the current branch.\n"
-"\n"
-"See 'git help config' and search for 'push.default' for further "
-"information.\n"
-"(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode\n"
-"'current' instead of 'simple' if you sometimes use older versions of Git)"
-msgstr ""
-"'push.default' ist nicht gesetzt; der implizit gesetzte Wert\n"
-"wurde in Git 2.0 von 'matching' nach 'simple' geändert. Um diese Meldung zu\n"
-"unterdrücken und das aktuelle Verhalten nach Änderung des Standardwertes\n"
-"beizubehalten, benutzen Sie:\n"
-"\n"
-" git config --global push.default matching\n"
-"\n"
-"Um diese Meldung zu unterdrücken und das neue Verhalten jetzt zu übernehmen, "
-"benutzen Sie:\n"
-"\n"
-" git config --global push.default simple\n"
-"\n"
-"Wenn 'push.default' auf den Wert 'matching' gesetzt ist, werden lokale\n"
-"Branches zu den Remote-Branches mit den selben Namen versendet.\n"
-"\n"
-"In Git 2.0 wurde das Standardverhalten zu 'simple' geändert. Hierbei wird\n"
-"der aktuelle Branch zu dem entsprechenden Remote-Branch versendet, den\n"
-"'git pull' zur Aktualisierung des aktuellen Branches verwendet.\n"
-"\n"
-"Führen Sie 'git help config' aus und suchen Sie nach 'push.default' für\n"
-"weitere Informationen.\n"
-"(Der Modus 'simple' wurde in Git 1.7.11 eingeführt. Benutzen Sie den "
-"ähnlichen\n"
-"Modus 'current' anstatt 'simple', falls Sie gelegentlich ältere Versionen "
-"von\n"
-"Git benutzen.)"
-
-#: builtin/push.c:275
+#: builtin/push.c:242
msgid ""
"You didn't specify any refspecs to push, and push.default is \"nothing\"."
msgstr ""
"Sie haben keine Refspec für \"push\" angegeben, und push.default ist "
"\"nothing\"."
-#: builtin/push.c:282
+#: builtin/push.c:249
msgid ""
"Updates were rejected because the tip of your current branch is behind\n"
"its remote counterpart. Integrate the remote changes (e.g.\n"
@@ -9145,12 +9259,12 @@ msgid ""
msgstr ""
"Aktualisierungen wurden zurückgewiesen, weil die Spitze Ihres aktuellen\n"
"Branches hinter seinem externen Gegenstück zurückgefallen ist. Führen Sie\n"
-"die externen Änderungen zusammen (z.B. 'git pull ...') bevor Sie \"push\"\n"
+"die externen Änderungen zusammen (z. B. 'git pull ...') bevor Sie \"push\"\n"
"erneut ausführen.\n"
"Siehe auch die Sektion 'Note about fast-forwards' in 'git push --help'\n"
"für weitere Details."
-#: builtin/push.c:288
+#: builtin/push.c:255
msgid ""
"Updates were rejected because a pushed branch tip is behind its remote\n"
"counterpart. Check out this branch and integrate the remote changes\n"
@@ -9160,11 +9274,11 @@ msgstr ""
"Aktualisierungen wurden zurückgewiesen, weil die Spitze eines versendeten\n"
"Branches hinter seinem externen Gegenstück zurückgefallen ist. Checken Sie\n"
"diesen Branch aus und führen Sie die externen Änderungen zusammen\n"
-"(z.B. 'git pull ...') bevor Sie erneut \"push\" ausführen.\n"
+"(z. B. 'git pull ...') bevor Sie erneut \"push\" ausführen.\n"
"Siehe auch die Sektion 'Note about fast-forwards' in 'git push --help'\n"
"für weitere Details."
-#: builtin/push.c:294
+#: builtin/push.c:261
msgid ""
"Updates were rejected because the remote contains work that you do\n"
"not have locally. This is usually caused by another repository pushing\n"
@@ -9177,19 +9291,19 @@ msgstr ""
"die lokal nicht vorhanden sind. Das wird üblicherweise durch einen \"push\" "
"von\n"
"Commits auf dieselbe Referenz von einem anderen Repository aus verursacht.\n"
-"Vielleicht müssen Sie die externen Änderungen zusammenzuführen (z.B. 'git "
+"Vielleicht müssen Sie die externen Änderungen zusammenführen (z. B. 'git "
"pull ...')\n"
"bevor Sie erneut \"push\" ausführen.\n"
"Siehe auch die Sektion 'Note about fast-forwards' in 'git push --help'\n"
"für weitere Details."
-#: builtin/push.c:301
+#: builtin/push.c:268
msgid "Updates were rejected because the tag already exists in the remote."
msgstr ""
"Aktualisierungen wurden zurückgewiesen, weil das Tag bereits\n"
"im Remote-Repository existiert."
-#: builtin/push.c:304
+#: builtin/push.c:271
msgid ""
"You cannot update a remote ref that points at a non-commit object,\n"
"or update a remote ref to make it point at a non-commit object,\n"
@@ -9199,22 +9313,22 @@ msgstr ""
"das kein Commit ist, oder es auf ein solches Objekt zeigen lassen, ohne\n"
"die Option '--force' zu verwenden.\n"
-#: builtin/push.c:363
+#: builtin/push.c:331
#, c-format
msgid "Pushing to %s\n"
msgstr "Versende nach %s\n"
-#: builtin/push.c:367
+#: builtin/push.c:335
#, c-format
msgid "failed to push some refs to '%s'"
msgstr "Fehler beim Versenden einiger Referenzen nach '%s'"
-#: builtin/push.c:397
+#: builtin/push.c:365
#, c-format
msgid "bad repository '%s'"
msgstr "ungültiges Repository '%s'"
-#: builtin/push.c:398
+#: builtin/push.c:366
msgid ""
"No configured push destination.\n"
"Either specify the URL from the command-line or configure a remote "
@@ -9227,7 +9341,7 @@ msgid ""
" git push <name>\n"
msgstr ""
"Kein Ziel für \"push\" konfiguriert.\n"
-"Entweder spezifizieren Sie die URL von der Kommandozeile oder konfigurieren "
+"Entweder spezifizieren Sie die URL von der Befehlszeile oder konfigurieren "
"ein Remote-Repository unter Benutzung von\n"
"\n"
" git remote add <Name> <URL>\n"
@@ -9236,104 +9350,100 @@ msgstr ""
"\n"
" git push <Name>\n"
-#: builtin/push.c:413
+#: builtin/push.c:381
msgid "--all and --tags are incompatible"
msgstr "Die Optionen --all und --tags sind inkompatibel."
-#: builtin/push.c:414
+#: builtin/push.c:382
msgid "--all can't be combined with refspecs"
msgstr "Die Option --all kann nicht mit Refspecs kombiniert werden."
-#: builtin/push.c:419
+#: builtin/push.c:387
msgid "--mirror and --tags are incompatible"
msgstr "Die Optionen --mirror und --tags sind inkompatibel."
-#: builtin/push.c:420
+#: builtin/push.c:388
msgid "--mirror can't be combined with refspecs"
msgstr "Die Option --mirror kann nicht mit Refspecs kombiniert werden."
-#: builtin/push.c:425
+#: builtin/push.c:393
msgid "--all and --mirror are incompatible"
msgstr "Die Optionen --all und --mirror sind inkompatibel."
-#: builtin/push.c:537
+#: builtin/push.c:505
msgid "repository"
msgstr "Repository"
-#: builtin/push.c:538 builtin/send-pack.c:161
+#: builtin/push.c:506 builtin/send-pack.c:161
msgid "push all refs"
msgstr "alle Referenzen versenden"
-#: builtin/push.c:539 builtin/send-pack.c:163
+#: builtin/push.c:507 builtin/send-pack.c:163
msgid "mirror all refs"
msgstr "alle Referenzen spiegeln"
-#: builtin/push.c:541
+#: builtin/push.c:509
msgid "delete refs"
msgstr "Referenzen löschen"
-#: builtin/push.c:542
+#: builtin/push.c:510
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:545 builtin/send-pack.c:164
+#: builtin/push.c:513 builtin/send-pack.c:164
msgid "force updates"
msgstr "Aktualisierung erzwingen"
-#: builtin/push.c:547 builtin/send-pack.c:175
+#: builtin/push.c:515 builtin/send-pack.c:175
msgid "refname>:<expect"
msgstr "Referenzname>:<Erwartungswert"
-#: builtin/push.c:548 builtin/send-pack.c:176
+#: builtin/push.c:516 builtin/send-pack.c:176
msgid "require old value of ref to be at this value"
msgstr "Referenz muss sich auf dem angegebenen Wert befinden"
-#: builtin/push.c:550
-msgid "check|on-demand|no"
-msgstr "check|on-demand|no"
-
-#: builtin/push.c:551
+#: builtin/push.c:519
msgid "control recursive pushing of submodules"
msgstr "rekursiven \"push\" von Submodulen steuern"
-#: builtin/push.c:553 builtin/send-pack.c:169
+#: builtin/push.c:521 builtin/send-pack.c:169
msgid "use thin pack"
msgstr "kleinere Pakete verwenden"
-#: builtin/push.c:554 builtin/push.c:555 builtin/send-pack.c:158
+#: builtin/push.c:522 builtin/push.c:523 builtin/send-pack.c:158
#: builtin/send-pack.c:159
msgid "receive pack program"
msgstr "'receive pack' Programm"
-#: builtin/push.c:556
+#: builtin/push.c:524
msgid "set upstream for git pull/status"
msgstr "Upstream für \"git pull/status\" setzen"
-#: builtin/push.c:559
+#: builtin/push.c:527
msgid "prune locally removed refs"
msgstr "lokal gelöschte Referenzen entfernen"
-#: builtin/push.c:561
+#: builtin/push.c:529
msgid "bypass pre-push hook"
msgstr "\"pre-push hook\" umgehen"
-#: builtin/push.c:562
+#: builtin/push.c:530
msgid "push missing but relevant tags"
msgstr "fehlende, aber relevante Tags versenden"
-#: builtin/push.c:565 builtin/send-pack.c:166
+#: builtin/push.c:533 builtin/send-pack.c:166
msgid "GPG sign the push"
msgstr "signiert \"push\" mit GPG"
-#: builtin/push.c:567 builtin/send-pack.c:170
+#: builtin/push.c:535 builtin/send-pack.c:170
msgid "request atomic transaction on remote side"
msgstr "Referenzen atomar versenden"
-#: builtin/push.c:577
+#: builtin/push.c:549
msgid "--delete is incompatible with --all, --mirror and --tags"
msgstr "Die Option --delete ist inkompatibel mit --all, --mirror und --tags."
-#: builtin/push.c:579
+#: builtin/push.c:551
msgid "--delete doesn't make sense without any refs"
msgstr "Die Option --delete kann nur mit Referenzen verwendet werden."
@@ -9412,12 +9522,12 @@ msgstr "Anwendung des Filters für spärliches Auschecken überspringen"
msgid "debug unpack-trees"
msgstr "Entpacken der Bäume protokollieren"
-#: builtin/reflog.c:428
+#: builtin/reflog.c:423
#, c-format
msgid "'%s' for '%s' is not a valid timestamp"
msgstr "'%s' ist kein gültiger Zeitstempel für '%s'"
-#: builtin/reflog.c:545 builtin/reflog.c:550
+#: builtin/reflog.c:540 builtin/reflog.c:545
#, c-format
msgid "'%s' is not a valid timestamp"
msgstr "'%s' ist kein gültiger Zeitstempel"
@@ -9564,55 +9674,45 @@ msgstr ""
"Die Angabe von zu folgenden Branches kann nur mit dem Anfordern von "
"Spiegelarchiven verwendet werden."
-#: builtin/remote.c:193 builtin/remote.c:643
+#: builtin/remote.c:190 builtin/remote.c:633
#, c-format
msgid "remote %s already exists."
msgstr "externes Repository %s existiert bereits"
-#: builtin/remote.c:197 builtin/remote.c:647
+#: builtin/remote.c:194 builtin/remote.c:637
#, c-format
msgid "'%s' is not a valid remote name"
msgstr "'%s' ist kein gültiger Name für ein Remote-Repository"
-#: builtin/remote.c:241
+#: builtin/remote.c:234
#, c-format
msgid "Could not setup master '%s'"
msgstr "Konnte symbolische Referenz für Hauptbranch von '%s' nicht einrichten"
-#: builtin/remote.c:341
+#: builtin/remote.c:336
#, c-format
msgid "Could not get fetch map for refspec %s"
msgstr "Konnte Fetch-Map für Refspec %s nicht bekommen"
-#: builtin/remote.c:442 builtin/remote.c:450
+#: builtin/remote.c:437 builtin/remote.c:445
msgid "(matching)"
msgstr "(übereinstimmend)"
-#: builtin/remote.c:454
+#: builtin/remote.c:449
msgid "(delete)"
msgstr "(lösche)"
-#: builtin/remote.c:594 builtin/remote.c:600 builtin/remote.c:606
-#, c-format
-msgid "Could not append '%s' to '%s'"
-msgstr "Konnte '%s' nicht an '%s' anhängen."
-
-#: builtin/remote.c:636 builtin/remote.c:775 builtin/remote.c:875
+#: builtin/remote.c:626 builtin/remote.c:761 builtin/remote.c:858
#, c-format
msgid "No such remote: %s"
msgstr "Kein solches Remote-Repository: %s"
-#: builtin/remote.c:653
+#: builtin/remote.c:643
#, c-format
msgid "Could not rename config section '%s' to '%s'"
msgstr "Konnte Sektion '%s' in Konfiguration nicht nach '%s' umbenennen"
-#: builtin/remote.c:659 builtin/remote.c:827
-#, c-format
-msgid "Could not remove config section '%s'"
-msgstr "Konnte Sektion '%s' nicht aus Konfiguration entfernen"
-
-#: builtin/remote.c:674
+#: builtin/remote.c:663
#, c-format
msgid ""
"Not updating non-default fetch refspec\n"
@@ -9623,27 +9723,17 @@ msgstr ""
"\t%s\n"
"\tBitte aktualisieren Sie, falls notwendig, die Konfiguration manuell."
-#: builtin/remote.c:680
-#, c-format
-msgid "Could not append '%s'"
-msgstr "Konnte '%s' nicht anhängen."
-
-#: builtin/remote.c:691
-#, c-format
-msgid "Could not set '%s'"
-msgstr "Konnte '%s' nicht setzen"
-
-#: builtin/remote.c:713
+#: builtin/remote.c:699
#, c-format
msgid "deleting '%s' failed"
msgstr "Konnte '%s' nicht löschen"
-#: builtin/remote.c:747
+#: builtin/remote.c:733
#, c-format
msgid "creating '%s' failed"
msgstr "Konnte '%s' nicht erstellen"
-#: builtin/remote.c:813
+#: builtin/remote.c:796
msgid ""
"Note: A branch outside the refs/remotes/ hierarchy was not removed;\n"
"to delete it, use:"
@@ -9659,120 +9749,125 @@ msgstr[1] ""
"entfernt;\n"
"um diese zu entfernen, benutzen Sie:"
-#: builtin/remote.c:928
+#: builtin/remote.c:810
+#, c-format
+msgid "Could not remove config section '%s'"
+msgstr "Konnte Sektion '%s' nicht aus Konfiguration entfernen"
+
+#: builtin/remote.c:911
#, c-format
msgid " new (next fetch will store in remotes/%s)"
msgstr " neu (wird bei nächstem \"fetch\" in remotes/%s gespeichert)"
-#: builtin/remote.c:931
+#: builtin/remote.c:914
msgid " tracked"
msgstr " gefolgt"
-#: builtin/remote.c:933
+#: builtin/remote.c:916
msgid " stale (use 'git remote prune' to remove)"
msgstr " veraltet (benutzen Sie 'git remote prune' zum Löschen)"
-#: builtin/remote.c:935
+#: builtin/remote.c:918
msgid " ???"
msgstr " ???"
-#: builtin/remote.c:976
+#: builtin/remote.c:959
#, c-format
msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch"
msgstr "ungültiges branch.%s.merge; kann Rebase nicht auf > 1 Branch ausführen"
-#: builtin/remote.c:983
+#: builtin/remote.c:967
#, c-format
-msgid "rebases onto remote %s"
-msgstr "Rebase auf Remote-Branch %s"
+msgid "rebases interactively onto remote %s"
+msgstr "interaktiver Rebase auf Remote-Branch %s"
-#: builtin/remote.c:986
+#: builtin/remote.c:971
#, c-format
msgid " merges with remote %s"
msgstr " führt mit Remote-Branch %s zusammen"
-#: builtin/remote.c:987
+#: builtin/remote.c:972
msgid " and with remote"
msgstr " und mit Remote-Branch"
-#: builtin/remote.c:989
+#: builtin/remote.c:974
#, c-format
msgid "merges with remote %s"
msgstr "führt mit Remote-Branch %s zusammen"
-#: builtin/remote.c:990
+#: builtin/remote.c:975
msgid " and with remote"
msgstr " und mit Remote-Branch"
-#: builtin/remote.c:1036
+#: builtin/remote.c:1021
msgid "create"
msgstr "erstellt"
-#: builtin/remote.c:1039
+#: builtin/remote.c:1024
msgid "delete"
msgstr "gelöscht"
-#: builtin/remote.c:1043
+#: builtin/remote.c:1028
msgid "up to date"
msgstr "aktuell"
-#: builtin/remote.c:1046
+#: builtin/remote.c:1031
msgid "fast-forwardable"
msgstr "vorspulbar"
-#: builtin/remote.c:1049
+#: builtin/remote.c:1034
msgid "local out of date"
msgstr "lokal nicht aktuell"
-#: builtin/remote.c:1056
+#: builtin/remote.c:1041
#, c-format
msgid " %-*s forces to %-*s (%s)"
msgstr " %-*s erzwingt Versandt nach %-*s (%s)"
-#: builtin/remote.c:1059
+#: builtin/remote.c:1044
#, c-format
msgid " %-*s pushes to %-*s (%s)"
msgstr " %-*s versendet nach %-*s (%s)"
-#: builtin/remote.c:1063
+#: builtin/remote.c:1048
#, c-format
msgid " %-*s forces to %s"
msgstr " %-*s erzwingt Versand nach %s"
-#: builtin/remote.c:1066
+#: builtin/remote.c:1051
#, c-format
msgid " %-*s pushes to %s"
msgstr " %-*s versendet nach %s"
-#: builtin/remote.c:1134
+#: builtin/remote.c:1119
msgid "do not query remotes"
msgstr "keine Abfrage von Remote-Repositories"
-#: builtin/remote.c:1161
+#: builtin/remote.c:1146
#, c-format
msgid "* remote %s"
msgstr "* Remote-Repository %s"
-#: builtin/remote.c:1162
+#: builtin/remote.c:1147
#, c-format
msgid " Fetch URL: %s"
msgstr " URL zum Abholen: %s"
-#: builtin/remote.c:1163 builtin/remote.c:1314
+#: builtin/remote.c:1148 builtin/remote.c:1299
msgid "(no URL)"
msgstr "(keine URL)"
-#: builtin/remote.c:1172 builtin/remote.c:1174
+#: builtin/remote.c:1157 builtin/remote.c:1159
#, c-format
msgid " Push URL: %s"
msgstr " URL zum Versenden: %s"
-#: builtin/remote.c:1176 builtin/remote.c:1178 builtin/remote.c:1180
+#: builtin/remote.c:1161 builtin/remote.c:1163 builtin/remote.c:1165
#, c-format
msgid " HEAD branch: %s"
msgstr " Hauptbranch: %s"
-#: builtin/remote.c:1182
+#: builtin/remote.c:1167
#, c-format
msgid ""
" HEAD branch (remote HEAD is ambiguous, may be one of the following):\n"
@@ -9780,161 +9875,161 @@ msgstr ""
" Hauptbranch (externer HEAD ist mehrdeutig, könnte einer der folgenden "
"sein):\n"
-#: builtin/remote.c:1194
+#: builtin/remote.c:1179
#, c-format
msgid " Remote branch:%s"
msgid_plural " Remote branches:%s"
msgstr[0] " Remote-Branch:%s"
msgstr[1] " Remote-Branches:%s"
-#: builtin/remote.c:1197 builtin/remote.c:1224
+#: builtin/remote.c:1182 builtin/remote.c:1209
msgid " (status not queried)"
msgstr " (Zustand nicht abgefragt)"
-#: builtin/remote.c:1206
+#: builtin/remote.c:1191
msgid " Local branch configured for 'git pull':"
msgid_plural " Local branches configured for 'git pull':"
msgstr[0] " Lokaler Branch konfiguriert für 'git pull':"
msgstr[1] " Lokale Branches konfiguriert für 'git pull':"
-#: builtin/remote.c:1214
+#: builtin/remote.c:1199
msgid " Local refs will be mirrored by 'git push'"
msgstr " Lokale Referenzen werden von 'git push' gespiegelt"
-#: builtin/remote.c:1221
+#: builtin/remote.c:1206
#, c-format
msgid " Local ref configured for 'git push'%s:"
msgid_plural " Local refs configured for 'git push'%s:"
msgstr[0] " Lokale Referenz konfiguriert für 'git push'%s:"
msgstr[1] " Lokale Referenzen konfiguriert für 'git push'%s:"
-#: builtin/remote.c:1242
+#: builtin/remote.c:1227
msgid "set refs/remotes/<name>/HEAD according to remote"
msgstr "setzt refs/remotes/<Name>/HEAD gemäß dem Remote-Repository"
-#: builtin/remote.c:1244
+#: builtin/remote.c:1229
msgid "delete refs/remotes/<name>/HEAD"
msgstr "entfernt refs/remotes/<Name>/HEAD"
-#: builtin/remote.c:1259
+#: builtin/remote.c:1244
msgid "Cannot determine remote HEAD"
msgstr "Kann HEAD des Remote-Repositories nicht bestimmen"
-#: builtin/remote.c:1261
+#: builtin/remote.c:1246
msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
msgstr ""
"Mehrere Hauptbranches im Remote-Repository. Bitte wählen Sie explizit einen "
"aus mit:"
-#: builtin/remote.c:1271
+#: builtin/remote.c:1256
#, c-format
msgid "Could not delete %s"
msgstr "Konnte %s nicht entfernen"
-#: builtin/remote.c:1279
+#: builtin/remote.c:1264
#, c-format
msgid "Not a valid ref: %s"
msgstr "keine gültige Referenz: %s"
-#: builtin/remote.c:1281
+#: builtin/remote.c:1266
#, c-format
msgid "Could not setup %s"
msgstr "Konnte %s nicht einrichten"
-#: builtin/remote.c:1299
+#: builtin/remote.c:1284
#, c-format
msgid " %s will become dangling!"
msgstr " %s wird unreferenziert!"
-#: builtin/remote.c:1300
+#: builtin/remote.c:1285
#, c-format
msgid " %s has become dangling!"
msgstr " %s wurde unreferenziert!"
-#: builtin/remote.c:1310
+#: builtin/remote.c:1295
#, c-format
msgid "Pruning %s"
msgstr "entferne veraltete Branches von %s"
-#: builtin/remote.c:1311
+#: builtin/remote.c:1296
#, c-format
msgid "URL: %s"
msgstr "URL: %s"
-#: builtin/remote.c:1327
+#: builtin/remote.c:1312
#, c-format
msgid " * [would prune] %s"
msgstr " * [würde veralteten Branch entfernen] %s"
-#: builtin/remote.c:1330
+#: builtin/remote.c:1315
#, c-format
msgid " * [pruned] %s"
msgstr "* [veralteten Branch entfernt] %s"
-#: builtin/remote.c:1375
+#: builtin/remote.c:1360
msgid "prune remotes after fetching"
msgstr "entferne veraltete Branches im Remote-Repository nach \"fetch\""
-#: builtin/remote.c:1441 builtin/remote.c:1498 builtin/remote.c:1566
+#: builtin/remote.c:1423 builtin/remote.c:1477 builtin/remote.c:1545
#, c-format
msgid "No such remote '%s'"
msgstr "Kein solches Remote-Repository '%s'"
-#: builtin/remote.c:1461
+#: builtin/remote.c:1439
msgid "add branch"
msgstr "Branch hinzufügen"
-#: builtin/remote.c:1468
+#: builtin/remote.c:1446
msgid "no remote specified"
msgstr "kein Remote-Repository angegeben"
-#: builtin/remote.c:1485
+#: builtin/remote.c:1463
msgid "query push URLs rather than fetch URLs"
msgstr "nur URLs für Push ausgeben"
-#: builtin/remote.c:1487
+#: builtin/remote.c:1465
msgid "return all URLs"
msgstr "alle URLs ausgeben"
-#: builtin/remote.c:1515
+#: builtin/remote.c:1493
#, c-format
msgid "no URLs configured for remote '%s'"
msgstr "Keine URLs für Remote-Repository '%s' konfiguriert."
-#: builtin/remote.c:1541
+#: builtin/remote.c:1519
msgid "manipulate push URLs"
msgstr "URLs für \"push\" manipulieren"
-#: builtin/remote.c:1543
+#: builtin/remote.c:1521
msgid "add URL"
msgstr "URL hinzufügen"
-#: builtin/remote.c:1545
+#: builtin/remote.c:1523
msgid "delete URLs"
msgstr "URLs löschen"
-#: builtin/remote.c:1552
+#: builtin/remote.c:1530
msgid "--add --delete doesn't make sense"
msgstr ""
"Die Optionen --add und --delete können nicht gemeinsam verwendet werden."
-#: builtin/remote.c:1592
+#: builtin/remote.c:1571
#, c-format
msgid "Invalid old URL pattern: %s"
msgstr "ungültiges altes URL Format: %s"
-#: builtin/remote.c:1600
+#: builtin/remote.c:1579
#, c-format
msgid "No such URL found: %s"
msgstr "Keine solche URL gefunden: %s"
-#: builtin/remote.c:1602
+#: builtin/remote.c:1581
msgid "Will not delete all non-push URLs"
msgstr "Werde keine URLs entfernen, die nicht für \"push\" bestimmt sind"
-#: builtin/remote.c:1616
+#: builtin/remote.c:1595
msgid "be verbose; must be placed before a subcommand"
-msgstr "erweiterte Ausgaben; muss vor einem Unterkommando angegeben werden"
+msgstr "erweiterte Ausgaben; muss vor einem Unterbefehl angegeben werden"
#: builtin/repack.c:17
msgid "git repack [<options>]"
@@ -10238,7 +10333,7 @@ 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:354
+#: builtin/rev-list.c:350
msgid "rev-list does not support display of notes"
msgstr "rev-list unterstützt keine Anzeige von Notizen"
@@ -10280,7 +10375,7 @@ msgstr "git revert [<Optionen>] <Commit-Angabe>..."
#: builtin/revert.c:23
msgid "git revert <subcommand>"
-msgstr "git revert <Unterkommando>"
+msgstr "git revert <Unterbefehl>"
#: builtin/revert.c:28
msgid "git cherry-pick [<options>] <commit-ish>..."
@@ -10288,7 +10383,7 @@ msgstr "git cherry-pick [<Optionen>] <Commit-Angabe>..."
#: builtin/revert.c:29
msgid "git cherry-pick <subcommand>"
-msgstr "git cherry-pick <Unterkommando>"
+msgstr "git cherry-pick <Unterbefehl>"
#: builtin/revert.c:71
#, c-format
@@ -10500,28 +10595,23 @@ msgstr "Status des Remote-Helpers ausgeben"
msgid "git shortlog [<options>] [<revision-range>] [[--] [<path>...]]"
msgstr "git shortlog [<Optionen>] [<Commitbereich>] [[--] [<Pfad>...]]"
-#: builtin/shortlog.c:131
-#, c-format
-msgid "Missing author: %s"
-msgstr "fehlender Autor: %s"
-
-#: builtin/shortlog.c:230
+#: builtin/shortlog.c:242
msgid "sort output according to the number of commits per author"
msgstr "die Ausgabe entsprechend der Anzahl von Commits pro Autor sortieren"
-#: builtin/shortlog.c:232
+#: builtin/shortlog.c:244
msgid "Suppress commit descriptions, only provides commit count"
msgstr "Commit-Beschreibungen unterdrücken, nur Anzahl der Commits liefern"
-#: builtin/shortlog.c:234
+#: builtin/shortlog.c:246
msgid "Show the email address of each author"
msgstr "die E-Mail-Adresse von jedem Autor anzeigen"
-#: builtin/shortlog.c:235
+#: builtin/shortlog.c:247
msgid "w[,i1[,i2]]"
msgstr "w[,i1[,i2]]"
-#: builtin/shortlog.c:236
+#: builtin/shortlog.c:248
msgid "Linewrap output"
msgstr "Ausgabe mit Zeilenumbrüchen"
@@ -10664,47 +10754,48 @@ msgstr "git stripspace [-c | --comment-lines]"
#: builtin/stripspace.c:35
msgid "skip and remove all lines starting with comment character"
-msgstr "alle Zeilen, die mit dem Kommentarzeichen beginnen, überspringen und "
+msgstr ""
+"alle Zeilen, die mit dem Kommentarzeichen beginnen, überspringen und "
"entfernen"
#: builtin/stripspace.c:38
-msgid "prepend comment character and blank to each line"
-msgstr "Kommentarzeichen mit Leerzeichen an jeder Zeile voranstellen"
+msgid "prepend comment character and space to each line"
+msgstr "Kommentarzeichen mit Leerzeichen an jede Zeile voranstellen"
-#: builtin/submodule--helper.c:79 builtin/submodule--helper.c:167
+#: builtin/submodule--helper.c:73 builtin/submodule--helper.c:161
msgid "alternative anchor for relative paths"
msgstr "Alternativer Anker für relative Pfade"
-#: builtin/submodule--helper.c:84
+#: builtin/submodule--helper.c:78
msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
msgstr "git submodule--helper list [--prefix=<Pfad>] [<Pfad>...]"
-#: builtin/submodule--helper.c:114
+#: builtin/submodule--helper.c:108
msgid "git submodule--helper name <path>"
msgstr "git submodule--helper name <Pfad>"
-#: builtin/submodule--helper.c:120
+#: builtin/submodule--helper.c:114
#, c-format
msgid "no submodule mapping found in .gitmodules for path '%s'"
msgstr "Keine Submodul-Zuordnung in .gitmodules für Pfad '%s' gefunden"
-#: builtin/submodule--helper.c:170
+#: builtin/submodule--helper.c:164
msgid "where the new submodule will be cloned to"
msgstr "Pfad für neues Submodul"
-#: builtin/submodule--helper.c:173
+#: builtin/submodule--helper.c:167
msgid "name of the new submodule"
msgstr "Name des neuen Submoduls"
-#: builtin/submodule--helper.c:176
+#: builtin/submodule--helper.c:170
msgid "url where to clone the submodule from"
msgstr "URL von der das Submodul geklont wird"
-#: builtin/submodule--helper.c:182
+#: builtin/submodule--helper.c:176
msgid "depth for shallow clones"
msgstr "Tiefe des Klons mit unvollständiger Historie (shallow)"
-#: builtin/submodule--helper.c:188
+#: builtin/submodule--helper.c:182
msgid ""
"git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
"<repository>] [--name <name>] [--url <url>][--depth <depth>] [--] [<path>...]"
@@ -10712,40 +10803,40 @@ msgstr ""
"git submodule--helper clone [--prefix=<Pfad>] [--quiet] [--reference "
"<Repository>] [--name <Name>] [--url <URL>][--depth <Tiefe>] [--] [<Pfad>...]"
-#: builtin/submodule--helper.c:202 builtin/submodule--helper.c:208
-#: builtin/submodule--helper.c:216
+#: builtin/submodule--helper.c:196 builtin/submodule--helper.c:202
+#: builtin/submodule--helper.c:210
#, c-format
msgid "could not create directory '%s'"
msgstr "Konnte Verzeichnis '%s' nicht erstellen."
-#: builtin/submodule--helper.c:204
+#: builtin/submodule--helper.c:198
#, c-format
msgid "clone of '%s' into submodule path '%s' failed"
msgstr "Klonen von '%s' in Submodul-Pfad '%s' fehlgeschlagen"
-#: builtin/submodule--helper.c:227
+#: builtin/submodule--helper.c:221
#, c-format
msgid "cannot open file '%s'"
msgstr "Kann Datei '%s' nicht öffnen"
-#: builtin/submodule--helper.c:232
+#: builtin/submodule--helper.c:226
#, c-format
msgid "could not close file %s"
msgstr "Konnte Datei '%s' nicht schließen."
-#: builtin/submodule--helper.c:247
+#: builtin/submodule--helper.c:241
#, c-format
msgid "could not get submodule directory for '%s'"
msgstr "Konnte Submodul-Verzeichnis '%s' nicht finden."
-#: builtin/submodule--helper.c:273
+#: builtin/submodule--helper.c:267
msgid "fatal: submodule--helper subcommand must be called with a subcommand"
-msgstr "fatal: submodule--helper muss mit einem Unterkommando aufgerufen werden"
+msgstr "fatal: submodule--helper muss mit einem Unterbefehl aufgerufen werden"
-#: builtin/submodule--helper.c:280
+#: builtin/submodule--helper.c:274
#, c-format
msgid "fatal: '%s' is not a valid submodule--helper subcommand"
-msgstr "fatal: '%s' ist kein gültiges Unterkommando von submodule--helper"
+msgstr "fatal: '%s' ist kein gültiger Unterbefehl von submodule--helper"
#: builtin/symbolic-ref.c:7
msgid "git symbolic-ref [<options>] <name> [<ref>]"
@@ -10988,206 +11079,219 @@ msgstr "Tag '%s' aktualisiert (war %s)\n"
msgid "Unpacking objects"
msgstr "Entpacke Objekte"
-#: builtin/update-index.c:70
+#: builtin/update-index.c:79
#, c-format
msgid "failed to create directory %s"
msgstr "Fehler beim Erstellen von Verzeichnis '%s'"
-#: builtin/update-index.c:76
+#: builtin/update-index.c:85
#, c-format
msgid "failed to stat %s"
msgstr "Konnte '%s' nicht lesen"
-#: builtin/update-index.c:86
+#: builtin/update-index.c:95
#, c-format
msgid "failed to create file %s"
msgstr "Konnte Datei '%s' nicht erstellen"
-#: builtin/update-index.c:94
+#: builtin/update-index.c:103
#, c-format
msgid "failed to delete file %s"
msgstr "Konnte Datei '%s' nicht löschen"
-#: builtin/update-index.c:101 builtin/update-index.c:203
+#: builtin/update-index.c:110 builtin/update-index.c:212
#, c-format
msgid "failed to delete directory %s"
msgstr "Konnte Verzeichnis '%s' nicht löschen"
-#: builtin/update-index.c:124
+#: builtin/update-index.c:133
#, c-format
-msgid "Testing "
-msgstr "Prüfe "
+msgid "Testing mtime in '%s' "
+msgstr "Prüfe mtime in '%s' "
-#: builtin/update-index.c:136
+#: builtin/update-index.c:145
msgid "directory stat info does not change after adding a new file"
msgstr ""
"Verzeichnisinformationen haben sich nach Hinzufügen einer neuen Datei nicht "
"geändert"
-#: builtin/update-index.c:149
+#: builtin/update-index.c:158
msgid "directory stat info does not change after adding a new directory"
msgstr ""
"Verzeichnisinformationen haben sich nach Hinzufügen eines neuen "
"Verzeichnisses nicht geändert"
-#: builtin/update-index.c:162
+#: builtin/update-index.c:171
msgid "directory stat info changes after updating a file"
msgstr ""
"Verzeichnisinformationen haben sich nach Aktualisierung einer Datei geändert"
-#: builtin/update-index.c:173
+#: builtin/update-index.c:182
msgid "directory stat info changes after adding a file inside subdirectory"
msgstr ""
"Verzeichnisinformationen haben sich nach Hinzufügen einer Datei in ein "
"Unterverzeichnis geändert"
-#: builtin/update-index.c:184
+#: builtin/update-index.c:193
msgid "directory stat info does not change after deleting a file"
msgstr ""
"Verzeichnisinformationen haben sich nach dem Löschen einer Datei nicht "
"geändert"
-#: builtin/update-index.c:197
+#: builtin/update-index.c:206
msgid "directory stat info does not change after deleting a directory"
msgstr ""
"Verzeichnisinformationen haben sich nach dem Löschen eines Verzeichnisses "
"nicht geändert"
-#: builtin/update-index.c:204
+#: builtin/update-index.c:213
msgid " OK"
msgstr " OK"
-#: builtin/update-index.c:564
+#: builtin/update-index.c:575
msgid "git update-index [<options>] [--] [<file>...]"
msgstr "git update-index [<Optionen>] [--] [<Datei>...]"
-#: builtin/update-index.c:918
+#: builtin/update-index.c:930
msgid "continue refresh even when index needs update"
msgstr ""
"Aktualisierung fortsetzen, auch wenn der Index aktualisiert werden muss"
-#: builtin/update-index.c:921
+#: builtin/update-index.c:933
msgid "refresh: ignore submodules"
msgstr "Aktualisierung: ignoriert Submodule"
-#: builtin/update-index.c:924
+#: builtin/update-index.c:936
msgid "do not ignore new files"
msgstr "keine neuen Dateien ignorieren"
-#: builtin/update-index.c:926
+#: builtin/update-index.c:938
msgid "let files replace directories and vice-versa"
msgstr "Dateien Verzeichnisse ersetzen lassen, und umgedreht"
-#: builtin/update-index.c:928
+#: builtin/update-index.c:940
msgid "notice files missing from worktree"
msgstr "fehlende Dateien im Arbeitsverzeichnis beachten"
-#: builtin/update-index.c:930
+#: builtin/update-index.c:942
msgid "refresh even if index contains unmerged entries"
msgstr ""
"aktualisieren, auch wenn der Index nicht zusammengeführte Einträge beinhaltet"
-#: builtin/update-index.c:933
+#: builtin/update-index.c:945
msgid "refresh stat information"
msgstr "Dateiinformationen aktualisieren"
-#: builtin/update-index.c:937
+#: builtin/update-index.c:949
msgid "like --refresh, but ignore assume-unchanged setting"
msgstr "wie --refresh, ignoriert aber \"assume-unchanged\" Einstellung"
-#: builtin/update-index.c:941
+#: builtin/update-index.c:953
msgid "<mode>,<object>,<path>"
msgstr "<Modus>,<Objekt>,<Pfad>"
-#: builtin/update-index.c:942
+#: builtin/update-index.c:954
msgid "add the specified entry to the index"
msgstr "den angegebenen Eintrag zum Commit vormerken"
-#: builtin/update-index.c:946
+#: builtin/update-index.c:958
msgid "(+/-)x"
msgstr "(+/-)x"
-#: builtin/update-index.c:947
+#: builtin/update-index.c:959
msgid "override the executable bit of the listed files"
msgstr "das \"ausführbar\"-Bit der aufgelisteten Dateien überschreiben"
-#: builtin/update-index.c:951
+#: builtin/update-index.c:963
msgid "mark files as \"not changing\""
msgstr "diese Datei immer als unverändert betrachten"
-#: builtin/update-index.c:954
+#: builtin/update-index.c:966
msgid "clear assumed-unchanged bit"
msgstr "\"assumed-unchanged\"-Bit löschen"
-#: builtin/update-index.c:957
+#: builtin/update-index.c:969
msgid "mark files as \"index-only\""
msgstr "Dateien als \"index-only\" markieren"
-#: builtin/update-index.c:960
+#: builtin/update-index.c:972
msgid "clear skip-worktree bit"
msgstr "\"skip-worktree\"-Bit löschen"
-#: builtin/update-index.c:963
+#: builtin/update-index.c:975
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:965
+#: builtin/update-index.c:977
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:967
+#: builtin/update-index.c:979
msgid "with --stdin: input lines are terminated by null bytes"
msgstr "mit --stdin: eingegebene Zeilen sind durch NUL-Bytes abgeschlossen"
-#: builtin/update-index.c:969
+#: builtin/update-index.c:981
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:973
+#: builtin/update-index.c:985
msgid "add entries from standard input to the index"
msgstr "Einträge von der Standard-Eingabe zum Commit vormerken"
-#: builtin/update-index.c:977
+#: builtin/update-index.c:989
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:981
+#: builtin/update-index.c:993
msgid "only update entries that differ from HEAD"
msgstr "nur Einträge aktualisieren, die unterschiedlich zu HEAD sind"
-#: builtin/update-index.c:985
+#: builtin/update-index.c:997
msgid "ignore files missing from worktree"
msgstr "fehlende Dateien im Arbeitsverzeichnis ignorieren"
-#: builtin/update-index.c:988
+#: builtin/update-index.c:1000
msgid "report actions to standard output"
msgstr "die Aktionen in der Standard-Ausgabe ausgeben"
-#: builtin/update-index.c:990
+#: builtin/update-index.c:1002
msgid "(for porcelains) forget saved unresolved conflicts"
msgstr "(für Fremdprogramme) keine gespeicherten, nicht aufgelöste Konflikte"
-#: builtin/update-index.c:994
+#: builtin/update-index.c:1006
msgid "write index in this format"
msgstr "Index-Datei in diesem Format schreiben"
-#: builtin/update-index.c:996
+#: builtin/update-index.c:1008
msgid "enable or disable split index"
msgstr "Splitting des Index aktivieren oder deaktivieren"
-#: builtin/update-index.c:998
+#: builtin/update-index.c:1010
msgid "enable/disable untracked cache"
msgstr "Cache für unversionierte Dateien aktivieren oder deaktivieren"
-#: builtin/update-index.c:1000
+#: builtin/update-index.c:1012
+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:1014
msgid "enable untracked cache without testing the filesystem"
msgstr ""
"Cache für unversionierte Dateien ohne Prüfung des Dateisystems aktivieren"
+#: builtin/update-index.c:1134
+msgid "Untracked cache disabled"
+msgstr "Cache für unversionierte Dateien deaktiviert"
+
+#: builtin/update-index.c:1146
+#, c-format
+msgid "Untracked cache enabled for '%s'"
+msgstr "Cache für unversionierte Dateien für '%s' aktiviert"
+
#: builtin/update-ref.c:9
msgid "git update-ref [<options>] -d <refname> [<old-val>]"
msgstr "git update-ref [<Optionen>] -d <Referenzname> [<alter-Wert>]"
@@ -11304,35 +11408,35 @@ msgstr "Fehler beim Löschen: %s"
msgid "'%s' already exists"
msgstr "'%s' existiert bereits"
-#: builtin/worktree.c:235
+#: builtin/worktree.c:233
#, c-format
msgid "could not create directory of '%s'"
msgstr "Konnte Verzeichnis '%s' nicht erstellen."
-#: builtin/worktree.c:271
+#: builtin/worktree.c:269
#, c-format
msgid "Preparing %s (identifier %s)"
msgstr "Bereite %s vor (Identifikation %s)"
-#: builtin/worktree.c:319
+#: builtin/worktree.c:317
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:321
+#: builtin/worktree.c:319
msgid "create a new branch"
msgstr "neuen Branch erstellen"
-#: builtin/worktree.c:323
+#: builtin/worktree.c:321
msgid "create or reset a branch"
msgstr "Branch erstellen oder umsetzen"
-#: builtin/worktree.c:324
+#: builtin/worktree.c:322
msgid "detach HEAD at named commit"
msgstr "HEAD bei benanntem Commit loslösen"
-#: builtin/worktree.c:331
+#: builtin/worktree.c:329
msgid "-b, -B, and --detach are mutually exclusive"
msgstr "-b, -B und --detach schließen sich gegenseitig aus"
@@ -11352,7 +11456,7 @@ msgstr "das \"Tree\"-Objekt für ein Unterverzeichnis <Präfix> schreiben"
msgid "only useful for debugging"
msgstr "nur nützlich für Fehlersuche"
-#: credential-cache--daemon.c:255
+#: credential-cache--daemon.c:262
msgid "print debugging messages to stderr"
msgstr "Meldungen zur Fehlersuche in Standard-Fehlerausgabe ausgeben"
@@ -11362,11 +11466,16 @@ msgid ""
"concept guides. See 'git help <command>' or 'git help <concept>'\n"
"to read about a specific subcommand or concept."
msgstr ""
-"'git help -a' und 'git help -g' listet verfügbare Unterkommandos und\n"
-"einige Anleitungen zu Git-Konzepten auf. Benutzen Sie 'git help <Kommando>'\n"
-"oder 'git help <Konzept>', um mehr über ein spezifisches Kommando oder\n"
+"'git help -a' und 'git help -g' listet verfügbare Unterbefehle und\n"
+"einige Anleitungen zu Git-Konzepten auf. Benutzen Sie 'git help <Befehl>'\n"
+"oder 'git help <Konzept>', um mehr über einen spezifischen Befehl oder\n"
"Konzept zu erfahren."
+#: http.c:320
+msgid "Public key pinning not supported with cURL < 7.44.0"
+msgstr "Das Anheften des öffentlichen Schlüssels wird mit cURL < 7.44.0\n"
+"nicht unterstützt."
+
#: common-cmds.h:9
msgid "start a working area (see also: git help tutorial)"
msgstr "Arbeitsverzeichnis anlegen (siehe auch: git help tutorial)"
@@ -11682,7 +11791,7 @@ msgstr "'$term' ist kein gültiger Begriff"
#: git-bisect.sh:578
#, sh-format
msgid "can't use the builtin command '$term' as a term"
-msgstr "Kann eingebautes Kommando '$term' nicht als Begriff verwenden"
+msgstr "Kann eingebauten Befehl '$term' nicht als Begriff verwenden"
#: git-bisect.sh:587 git-bisect.sh:593
#, sh-format
@@ -11693,7 +11802,7 @@ msgstr "Kann Bedeutung von '$term' nicht ändern."
#, sh-format
msgid "Invalid command: you're currently in a $TERM_BAD/$TERM_GOOD bisect."
msgstr ""
-"Ungültiges Kommando: Sie sind gerade bei einer binären $TERM_BAD/$TERM_GOOD "
+"Ungültiger Befehl: Sie sind gerade bei einer binären $TERM_BAD/$TERM_GOOD "
"Suche."
#: git-bisect.sh:636
@@ -11799,7 +11908,7 @@ msgstr ""
"\t$cmd_live_rebase\n"
"Wenn das nicht der Fall ist, probieren Sie bitte\n"
"\t$cmd_clear_stale_rebase\n"
-"und führen Sie dieses Kommando nochmal aus. Es wird angehalten, falls noch\n"
+"und führen Sie diesen Befehl nochmal aus. Es wird angehalten, falls noch\n"
"etwas Schützenswertes vorhanden ist."
#: git-rebase.sh:468
@@ -12079,7 +12188,7 @@ msgid ""
"option."
msgstr ""
"oder Sie sich unsicher sind, was das bedeutet, wählen Sie einen anderen "
-"Namenmit der Option '--name'."
+"Namen mit der Option '--name'."
#: git-submodule.sh:347
#, sh-format
@@ -12192,7 +12301,7 @@ msgstr ""
"Submodul '$name' ($url) für Pfad '$displaypath' wurde aus der Konfiguration "
"entfernt."
-#: git-submodule.sh:705
+#: git-submodule.sh:723
#, sh-format
msgid ""
"Submodule path '$displaypath' not initialized\n"
@@ -12201,52 +12310,52 @@ msgstr ""
"Submodul-Pfad '$displaypath' ist nicht initialisiert.\n"
"Vielleicht möchten Sie 'update --init' benutzen?"
-#: git-submodule.sh:718
+#: git-submodule.sh:736
#, sh-format
msgid "Unable to find current revision in submodule path '$displaypath'"
msgstr "Konnte aktuellen Commit in Submodul-Pfad '$displaypath' nicht finden."
-#: git-submodule.sh:727
+#: git-submodule.sh:745
#, sh-format
msgid "Unable to fetch in submodule path '$sm_path'"
msgstr "Konnte \"fetch\" in Submodul-Pfad '$sm_path' nicht ausführen"
-#: git-submodule.sh:751
+#: git-submodule.sh:768
#, sh-format
msgid "Unable to fetch in submodule path '$displaypath'"
msgstr "Konnte \"fetch\" in Submodul-Pfad '$displaypath' nicht ausführen"
-#: git-submodule.sh:765
+#: git-submodule.sh:788
#, sh-format
msgid "Unable to checkout '$sha1' in submodule path '$displaypath'"
msgstr "Konnte '$sha1' in Submodul-Pfad '$displaypath' nicht auschecken."
-#: git-submodule.sh:766
+#: git-submodule.sh:789
#, sh-format
msgid "Submodule path '$displaypath': checked out '$sha1'"
msgstr "Submodul-Pfad: '$displaypath': '$sha1' ausgecheckt"
-#: git-submodule.sh:770
+#: git-submodule.sh:793
#, sh-format
msgid "Unable to rebase '$sha1' in submodule path '$displaypath'"
msgstr "Rebase auf '$sha1' in Submodul-Pfad '$displaypath' nicht möglich"
-#: git-submodule.sh:771
+#: git-submodule.sh:794
#, sh-format
msgid "Submodule path '$displaypath': rebased into '$sha1'"
msgstr "Submodul-Pfad '$displaypath': Rebase auf '$sha1'"
-#: git-submodule.sh:776
+#: git-submodule.sh:799
#, sh-format
msgid "Unable to merge '$sha1' in submodule path '$displaypath'"
msgstr "Merge von '$sha1' in Submodul-Pfad '$displaypath' fehlgeschlagen"
-#: git-submodule.sh:777
+#: git-submodule.sh:800
#, sh-format
msgid "Submodule path '$displaypath': merged in '$sha1'"
msgstr "Submodul-Pfad '$displaypath': zusammengeführt in '$sha1'"
-#: git-submodule.sh:782
+#: git-submodule.sh:805
#, sh-format
msgid ""
"Execution of '$command $sha1' failed in submodule path '$prefix$sm_path'"
@@ -12254,56 +12363,132 @@ msgstr ""
"Ausführung von '$command $sha1' in Submodul-Pfad '$prefix$sm_path' "
"fehlgeschlagen"
-#: git-submodule.sh:783
+#: git-submodule.sh:806
#, sh-format
msgid "Submodule path '$prefix$sm_path': '$command $sha1'"
msgstr "Submodul-Pfad '$prefix$sm_path': '$command $sha1'"
-#: git-submodule.sh:813
+#: git-submodule.sh:836
#, sh-format
msgid "Failed to recurse into submodule path '$displaypath'"
msgstr "Fehler bei Rekursion in Submodul-Pfad '$displaypath'"
-#: git-submodule.sh:921
+#: git-submodule.sh:944
msgid "The --cached option cannot be used with the --files option"
msgstr ""
"Die Optionen --cached und --files können nicht gemeinsam verwendet werden."
-#: git-submodule.sh:973
+#: git-submodule.sh:996
#, sh-format
msgid "unexpected mode $mod_dst"
msgstr "unerwarteter Modus $mod_dst"
-#: git-submodule.sh:993
+#: git-submodule.sh:1016
#, sh-format
msgid " Warn: $display_name doesn't contain commit $sha1_src"
msgstr " Warnung: $display_name beinhaltet nicht Commit $sha1_src"
-#: git-submodule.sh:996
+#: git-submodule.sh:1019
#, sh-format
msgid " Warn: $display_name doesn't contain commit $sha1_dst"
msgstr " Warnung: $display_name beinhaltet nicht Commit $sha1_dst"
-#: git-submodule.sh:999
+#: git-submodule.sh:1022
#, sh-format
msgid " Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst"
msgstr ""
" Warnung: $display_name beinhaltet nicht die Commits $sha1_src und $sha1_dst"
-#: git-submodule.sh:1024
+#: git-submodule.sh:1047
msgid "blob"
msgstr "Blob"
-#: git-submodule.sh:1142
+#: git-submodule.sh:1165
#, sh-format
msgid "Failed to recurse into submodule path '$sm_path'"
msgstr "Fehler bei Rekursion in Submodul-Pfad '$sm_path'"
-#: git-submodule.sh:1206
+#: git-submodule.sh:1229
#, sh-format
msgid "Synchronizing submodule url for '$displaypath'"
msgstr "Synchronisiere Submodul-URL für '$displaypath'"
+#~ msgid "unable to parse format"
+#~ msgstr "Konnte Format nicht parsen."
+
+#~ msgid "improper format entered align:%s"
+#~ msgstr "Sie haben ein ungültiges Format eingegeben align:%s"
+
+#~ msgid "Could not set core.worktree in %s"
+#~ msgstr "Konnte core.worktree in '%s' nicht setzen."
+
+#~ msgid ""
+#~ "push.default is unset; its implicit value has changed in\n"
+#~ "Git 2.0 from 'matching' to 'simple'. To squelch this message\n"
+#~ "and maintain the traditional behavior, use:\n"
+#~ "\n"
+#~ " git config --global push.default matching\n"
+#~ "\n"
+#~ "To squelch this message and adopt the new behavior now, use:\n"
+#~ "\n"
+#~ " git config --global push.default simple\n"
+#~ "\n"
+#~ "When push.default is set to 'matching', git will push local branches\n"
+#~ "to the remote branches that already exist with the same name.\n"
+#~ "\n"
+#~ "Since Git 2.0, Git defaults to the more conservative 'simple'\n"
+#~ "behavior, which only pushes the current branch to the corresponding\n"
+#~ "remote branch that 'git pull' uses to update the current branch.\n"
+#~ "\n"
+#~ "See 'git help config' and search for 'push.default' for further "
+#~ "information.\n"
+#~ "(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode\n"
+#~ "'current' instead of 'simple' if you sometimes use older versions of Git)"
+#~ msgstr ""
+#~ "'push.default' ist nicht gesetzt; der implizit gesetzte Wert\n"
+#~ "wurde in Git 2.0 von 'matching' nach 'simple' geändert. Um diese Meldung "
+#~ "zu\n"
+#~ "unterdrücken und das aktuelle Verhalten nach Änderung des Standardwertes\n"
+#~ "beizubehalten, benutzen Sie:\n"
+#~ "\n"
+#~ " git config --global push.default matching\n"
+#~ "\n"
+#~ "Um diese Meldung zu unterdrücken und das neue Verhalten jetzt zu "
+#~ "übernehmen, benutzen Sie:\n"
+#~ "\n"
+#~ " git config --global push.default simple\n"
+#~ "\n"
+#~ "Wenn 'push.default' auf den Wert 'matching' gesetzt ist, werden lokale\n"
+#~ "Branches zu den Remote-Branches mit den selben Namen versendet.\n"
+#~ "\n"
+#~ "In Git 2.0 wurde das Standardverhalten zu 'simple' geändert. Hierbei "
+#~ "wird\n"
+#~ "der aktuelle Branch zu dem entsprechenden Remote-Branch versendet, den\n"
+#~ "'git pull' zur Aktualisierung des aktuellen Branches verwendet.\n"
+#~ "\n"
+#~ "Führen Sie 'git help config' aus und suchen Sie nach 'push.default' für\n"
+#~ "weitere Informationen.\n"
+#~ "(Der Modus 'simple' wurde in Git 1.7.11 eingeführt. Benutzen Sie den "
+#~ "ähnlichen\n"
+#~ "Modus 'current' anstatt 'simple', falls Sie gelegentlich ältere Versionen "
+#~ "von\n"
+#~ "Git benutzen.)"
+
+#~ msgid "check|on-demand|no"
+#~ msgstr "check|on-demand|no"
+
+#~ msgid "Could not append '%s'"
+#~ msgstr "Konnte '%s' nicht anhängen."
+
+#~ msgid "Could not set '%s'"
+#~ msgstr "Konnte '%s' nicht setzen"
+
+#~ msgid "Missing author: %s"
+#~ msgstr "fehlender Autor: %s"
+
+#~ msgid "Testing "
+#~ msgstr "Prüfe "
+
#~ msgid "unable to look up current user in the passwd file: %s"
#~ msgstr "konnte aktuellen Benutzer nicht in Passwort-Datei finden: %s"
diff --git a/po/fr.po b/po/fr.po
index facc5c6b7e..d47ccab51b 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -73,8 +73,8 @@ msgid ""
msgstr ""
"Project-Id-Version: git\n"
"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2015-12-22 22:50+0800\n"
-"PO-Revision-Date: 2015-12-24 07:36+0100\n"
+"POT-Creation-Date: 2016-03-12 22:05+0800\n"
+"PO-Revision-Date: 2016-03-14 20:26+0100\n"
"Last-Translator: Jean-Noël Avila <jn.avila@free.fr>\n"
"Language-Team: Jean-Noël Avila <jn.avila@free.fr>\n"
"Language: fr\n"
@@ -96,7 +96,7 @@ msgstr ""
"Corrigez-les puis lancez 'git add/rm <fichier>'\n"
"si nécessaire pour marquer la résolution et valider."
-#: advice.c:101 builtin/merge.c:1225
+#: advice.c:101 builtin/merge.c:1226
msgid "You have not concluded your merge (MERGE_HEAD exists)."
msgstr "Vous n'avez pas terminé votre fusion (MERGE_HEAD existe)."
@@ -140,7 +140,7 @@ msgstr "fmt"
msgid "archive format"
msgstr "format d'archive"
-#: archive.c:430 builtin/log.c:1229
+#: archive.c:430 builtin/log.c:1232
msgid "prefix"
msgstr "préfixe"
@@ -148,10 +148,10 @@ msgstr "préfixe"
msgid "prepend prefix to each pathname in the archive"
msgstr "préfixer chaque chemin de fichier dans l'archive"
-#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2535 builtin/blame.c:2536
-#: builtin/config.c:58 builtin/fast-export.c:987 builtin/fast-export.c:989
-#: builtin/grep.c:707 builtin/hash-object.c:99 builtin/ls-files.c:446
-#: builtin/ls-files.c:449 builtin/notes.c:395 builtin/notes.c:558
+#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2547 builtin/blame.c:2548
+#: builtin/config.c:60 builtin/fast-export.c:987 builtin/fast-export.c:989
+#: builtin/grep.c:720 builtin/hash-object.c:100 builtin/ls-files.c:459
+#: builtin/ls-files.c:462 builtin/notes.c:398 builtin/notes.c:561
#: builtin/read-tree.c:109 parse-options.h:153
msgid "file"
msgstr "fichier"
@@ -184,7 +184,7 @@ msgstr "compression efficace"
msgid "list supported archive formats"
msgstr "afficher les formats d'archive supportés"
-#: archive.c:451 builtin/archive.c:90 builtin/clone.c:77
+#: archive.c:451 builtin/archive.c:90 builtin/clone.c:78
msgid "repo"
msgstr "dépôt"
@@ -192,7 +192,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:453 builtin/archive.c:92 builtin/notes.c:479
+#: archive.c:453 builtin/archive.c:92 builtin/notes.c:482
msgid "command"
msgstr "commande"
@@ -200,7 +200,7 @@ msgstr "commande"
msgid "path to the remote git-upload-archive command"
msgstr "chemin vers la commande distante git-upload-archive"
-#: attr.c:265
+#: attr.c:263
msgid ""
"Negative patterns are ignored in git attributes\n"
"Use '\\!' for literal leading exclamation."
@@ -208,90 +208,107 @@ msgstr ""
"Les motifs de négation sont ignorés dans les attributs git\n"
"Utilisez '\\!' pour un point d'exclamation littéral."
-#: branch.c:61
+#: branch.c:53
+#, c-format
+msgid ""
+"\n"
+"After fixing the error cause you may try to fix up\n"
+"the remote tracking information by invoking\n"
+"\"git branch --set-upstream-to=%s%s%s\"."
+msgstr ""
+"\n"
+"Après correction de la cause de l'erreur, vous pouvez essayer de corriger\n"
+"l'information de suivi distant en invoquant\n"
+"\"git branch --setup-upstream-to=%s%s%s\"."
+
+#: branch.c:67
#, c-format
msgid "Not setting branch %s as its own upstream."
msgstr "La branche %s ne peut pas être sa propre branche amont."
-#: branch.c:84
+#: branch.c:93
#, c-format
msgid "Branch %s set up to track remote branch %s from %s by rebasing."
msgstr ""
"La branche %s est paramétrée pour suivre la branche distante %s de %s en "
"rebasant."
-#: branch.c:85
+#: branch.c:94
#, c-format
msgid "Branch %s set up to track remote branch %s from %s."
msgstr ""
"La branche %s est paramétrée pour suivre la branche distante %s depuis %s."
-#: branch.c:89
+#: branch.c:98
#, c-format
msgid "Branch %s set up to track local branch %s by rebasing."
msgstr ""
"La branche %s est paramétrée pour suivre la branche locale %s en rebasant."
-#: branch.c:90
+#: branch.c:99
#, c-format
msgid "Branch %s set up to track local branch %s."
msgstr "La branche %s est paramétrée pour suivre la branche locale %s."
-#: branch.c:95
+#: branch.c:104
#, c-format
msgid "Branch %s set up to track remote ref %s by rebasing."
msgstr ""
"La branche %s est paramétrée pour suivre la référence distante %s en "
"rebasant."
-#: branch.c:96
+#: branch.c:105
#, c-format
msgid "Branch %s set up to track remote ref %s."
msgstr "La branche %s est paramétrée pour suivre la référence distante %s."
-#: branch.c:100
+#: branch.c:109
#, c-format
msgid "Branch %s set up to track local ref %s by rebasing."
msgstr ""
"La branche %s est paramétrée pour suivre la référence locale %s en rebasant."
-#: branch.c:101
+#: branch.c:110
#, c-format
msgid "Branch %s set up to track local ref %s."
msgstr "La branche %s est paramétrée pour suivre la référence locale %s."
-#: branch.c:134
+#: branch.c:119
+msgid "Unable to write upstream branch configuration"
+msgstr "Échec de l'écriture de la configuration de branche amont"
+
+#: branch.c:156
#, c-format
msgid "Not tracking: ambiguous information for ref %s"
msgstr "Pas de suivi : information ambiguë pour la référence %s"
-#: branch.c:163
+#: branch.c:185
#, c-format
msgid "'%s' is not a valid branch name."
msgstr "'%s' n'est pas un nom de branche valide."
-#: branch.c:168
+#: branch.c:190
#, c-format
msgid "A branch named '%s' already exists."
msgstr "Une branche nommée '%s' existe déjà."
-#: branch.c:176
+#: branch.c:198
msgid "Cannot force update the current branch."
msgstr "Impossible de forcer la mise à jour de la branche courante."
-#: branch.c:196
+#: branch.c:218
#, c-format
msgid "Cannot setup tracking information; starting point '%s' is not a branch."
msgstr ""
"Impossible de paramétrer le suivi de branche ; le point de départ '%s' n'est "
"pas une branche."
-#: branch.c:198
+#: branch.c:220
#, c-format
msgid "the requested upstream branch '%s' does not exist"
msgstr "la branche amont demandée '%s' n'existe pas"
-#: branch.c:200
+#: branch.c:222
msgid ""
"\n"
"If you are planning on basing your work on an upstream\n"
@@ -311,22 +328,22 @@ msgstr ""
"sa jumelle distante, vous pouvez utiliser \"git push -u\"\n"
"pour paramétrer le suivi distant en même temps que vous poussez."
-#: branch.c:244
+#: branch.c:266
#, c-format
msgid "Not a valid object name: '%s'."
msgstr "Nom d'objet invalide : '%s'."
-#: branch.c:264
+#: branch.c:286
#, c-format
msgid "Ambiguous object name: '%s'."
msgstr "Nom d'objet ambigu : '%s'."
-#: branch.c:269
+#: branch.c:291
#, c-format
msgid "Not a valid branch point: '%s'."
msgstr "Point d'embranchement invalide : '%s'."
-#: branch.c:322
+#: branch.c:344
#, c-format
msgid "'%s' is already checked out at '%s'"
msgstr "'%s' est déjà extrait dans '%s'"
@@ -350,10 +367,10 @@ msgstr "impossible d'ouvrir '%s'"
msgid "Repository lacks these prerequisite commits:"
msgstr "Le dépôt ne dispose pas des commits prérequis suivants :"
-#: bundle.c:163 ref-filter.c:1372 sequencer.c:636 sequencer.c:1083
-#: builtin/blame.c:2734 builtin/commit.c:1045 builtin/log.c:334
-#: builtin/log.c:849 builtin/log.c:1461 builtin/log.c:1694 builtin/merge.c:358
-#: builtin/shortlog.c:158
+#: bundle.c:163 ref-filter.c:1462 sequencer.c:627 sequencer.c:1074
+#: builtin/blame.c:2754 builtin/commit.c:1045 builtin/log.c:334
+#: builtin/log.c:852 builtin/log.c:1467 builtin/log.c:1700 builtin/merge.c:358
+#: builtin/shortlog.c:170
msgid "revision walk setup failed"
msgstr "échec de la préparation du parcours des révisions"
@@ -392,7 +409,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:443 builtin/log.c:157 builtin/log.c:1369 builtin/shortlog.c:261
+#: bundle.c:443 builtin/log.c:157 builtin/log.c:1372 builtin/shortlog.c:273
#, c-format
msgid "unrecognized argument: %s"
msgstr "argument non reconnu : %s"
@@ -415,8 +432,8 @@ msgstr "l'index de groupe a disparu"
msgid "invalid color value: %.*s"
msgstr "Valeur invalide de couleur : %.*s"
-#: commit.c:40 builtin/am.c:452 builtin/am.c:488 builtin/am.c:1520
-#: builtin/am.c:2149
+#: commit.c:40 builtin/am.c:437 builtin/am.c:473 builtin/am.c:1505
+#: builtin/am.c:2135
#, c-format
msgid "could not parse %s"
msgstr "impossible d'analyser %s"
@@ -430,62 +447,67 @@ msgstr "%s %s n'est pas un commit !"
msgid "memory exhausted"
msgstr "plus de mémoire"
-#: config.c:474 config.c:476
+#: config.c:475 config.c:477
#, c-format
-msgid "bad config file line %d in %s"
-msgstr "ligne %d de fichier de config incorrecte dans %s"
+msgid "bad config line %d in %s %s"
+msgstr "ligne %d de fichier de config incorrecte dans %s %s"
-#: config.c:592
+#: config.c:593
#, c-format
-msgid "bad numeric config value '%s' for '%s' in %s: %s"
+msgid "bad numeric config value '%s' for '%s' in %s %s: %s"
msgstr ""
-"valeur numérique de configuration incorrecte '%s' pour '%s' dans %s : %s"
+"valeur numérique de configuration incorrecte '%s' pour '%s' dans %s %s : %s"
-#: config.c:594
+#: config.c:595
#, c-format
msgid "bad numeric config value '%s' for '%s': %s"
msgstr "valeur numérique de configuration invalide '%s' pour '%s' : %s"
-#: config.c:679
+#: config.c:680
#, c-format
msgid "failed to expand user dir in: '%s'"
msgstr "impossible d'étendre le répertoire utilisateur dans : '%s'"
-#: config.c:757 config.c:768
+#: config.c:758 config.c:769
#, c-format
msgid "bad zlib compression level %d"
msgstr "niveau de compression zlib incorrect %d"
-#: config.c:890
+#: config.c:891
#, c-format
msgid "invalid mode for object creation: %s"
msgstr "mode invalide pour la création d'objet : %s"
-#: config.c:1216
+#: config.c:1220
msgid "unable to parse command-line config"
msgstr "lecture de la configuration de ligne de commande impossible"
-#: config.c:1277
+#: config.c:1281
msgid "unknown error occured while reading the configuration files"
msgstr "erreur inconnue pendant la lecture des fichiers de configuration"
-#: config.c:1601
+#: config.c:1629
#, 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:1603
+#: config.c:1631
#, 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:1662
+#: config.c:1690
#, c-format
msgid "%s has multiple values"
msgstr "%s a des valeurs multiples"
+#: config.c:2226
+#, c-format
+msgid "Could not set '%s' to '%s'"
+msgstr "Impossible de régler '%s' à '%s'"
+
#: connected.c:69
msgid "Could not run 'git rev-list'"
msgstr "Impossible de lancer 'git rev-list'"
@@ -603,16 +625,16 @@ msgstr ""
"Erreurs dans la variable de configuration 'diff.dirstat' :\n"
"%s"
-#: diff.c:3000
+#: diff.c:2997
#, c-format
msgid "external diff died, stopping at %s"
msgstr "l'application de diff externe a disparu, arrêt à %s"
-#: diff.c:3396
+#: diff.c:3393
msgid "--follow requires exactly one pathspec"
msgstr "--follow a besoin d'une spécification de chemin unique"
-#: diff.c:3559
+#: diff.c:3556
#, c-format
msgid ""
"Failed to parse --dirstat/-X option parameter:\n"
@@ -621,18 +643,18 @@ msgstr ""
"Impossible d'analyser le paramètre de l'option --dirstat/-X :\n"
"%s"
-#: diff.c:3573
+#: diff.c:3570
#, c-format
msgid "Failed to parse --submodule option parameter: '%s'"
msgstr "Impossible d'analyser le paramètre de l'option --submodule : '%s'"
-#: dir.c:1915
+#: dir.c:2004
msgid "failed to get kernel name and information"
msgstr "echec de l'obtention d'information de kernel"
-#: dir.c:1998
-msgid "Untracked cache is disabled on this system."
-msgstr "Le cache non suivi est désactivé sur ce système."
+#: dir.c:2123
+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."
#: gpg-interface.c:166 gpg-interface.c:237
msgid "could not run gpg."
@@ -671,20 +693,20 @@ msgstr "'%s' : %s"
msgid "'%s': short read %s"
msgstr "'%s' : lecture tronquée %s"
-#: help.c:207
+#: help.c:205
#, c-format
msgid "available git commands in '%s'"
msgstr "commandes git disponibles dans '%s'"
-#: help.c:214
+#: help.c:212
msgid "git commands available from elsewhere on your $PATH"
msgstr "commandes git disponibles depuis un autre endroit de votre $PATH"
-#: help.c:246
+#: help.c:244
msgid "These are common Git commands used in various situations:"
msgstr "Ci-dessous les commandes Git habituelles dans diverses situations :"
-#: help.c:311
+#: help.c:309
#, c-format
msgid ""
"'%s' appears to be a git command, but we were not\n"
@@ -693,11 +715,11 @@ msgstr ""
"'%s' semble être une commande git, mais elle n'a pas pu\n"
"être exécutée. Peut-être git-%s est-elle cassée ?"
-#: help.c:368
+#: help.c:366
msgid "Uh oh. Your system reports no Git commands at all."
msgstr "Ahem. Votre système n'indique aucune commande Git."
-#: help.c:390
+#: help.c:388
#, c-format
msgid ""
"WARNING: You called a Git command named '%s', which does not exist.\n"
@@ -707,17 +729,17 @@ msgstr ""
"pas.\n"
"Continuons en supposant que vous avez voulu dire '%s'"
-#: help.c:395
+#: help.c:393
#, c-format
msgid "in %0.1f seconds automatically..."
msgstr "dans %0.1f secondes automatiquement..."
-#: help.c:402
+#: help.c:400
#, c-format
msgid "git: '%s' is not a git command. See 'git --help'."
msgstr "git : '%s' n'est pas une commande git. Voir 'git --help'."
-#: help.c:406 help.c:466
+#: help.c:404 help.c:464
msgid ""
"\n"
"Did you mean this?"
@@ -731,7 +753,7 @@ msgstr[1] ""
"\n"
"Vouliez-vous dire un de ceux-là ?"
-#: help.c:462
+#: help.c:460
#, c-format
msgid "%s: %s - %s"
msgstr "%s: %s - %s"
@@ -740,8 +762,8 @@ msgstr "%s: %s - %s"
msgid "failed to read the cache"
msgstr "impossible de lire le cache"
-#: merge.c:94 builtin/am.c:2022 builtin/am.c:2057 builtin/checkout.c:376
-#: builtin/checkout.c:587 builtin/clone.c:722
+#: merge.c:94 builtin/am.c:2008 builtin/am.c:2043 builtin/checkout.c:376
+#: builtin/checkout.c:587 builtin/clone.c:730
msgid "unable to write new index file"
msgstr "impossible d'écrire le nouveau fichier d'index"
@@ -759,64 +781,64 @@ msgstr "échec de addinfo_cache pour le chemin '%s'"
msgid "error building trees"
msgstr "erreur de construction des arbres"
-#: merge-recursive.c:686
+#: merge-recursive.c:689
#, c-format
msgid "failed to create path '%s'%s"
msgstr "impossible de créer le chemin '%s' %s"
-#: merge-recursive.c:697
+#: merge-recursive.c:700
#, 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:711 merge-recursive.c:732
+#: merge-recursive.c:714 merge-recursive.c:735
msgid ": perhaps a D/F conflict?"
msgstr ": peut-être un conflit D/F ?"
-#: merge-recursive.c:722
+#: merge-recursive.c:725
#, c-format
msgid "refusing to lose untracked file at '%s'"
msgstr "refus de perdre le fichier non suivi '%s'"
-#: merge-recursive.c:762
+#: merge-recursive.c:765
#, c-format
msgid "cannot read object %s '%s'"
msgstr "impossible de lire l'objet %s '%s'"
-#: merge-recursive.c:764
+#: merge-recursive.c:767
#, c-format
msgid "blob expected for %s '%s'"
msgstr "blob attendu pour %s '%s'"
-#: merge-recursive.c:787 builtin/clone.c:369
+#: merge-recursive.c:790 builtin/clone.c:374
#, c-format
msgid "failed to open '%s'"
msgstr "échec à l'ouverture de '%s'"
-#: merge-recursive.c:795
+#: merge-recursive.c:798
#, c-format
msgid "failed to symlink '%s'"
msgstr "échec à la création du lien symbolique '%s'"
-#: merge-recursive.c:798
+#: merge-recursive.c:801
#, c-format
msgid "do not know what to do with %06o %s '%s'"
msgstr "ne sait pas traiter %06o %s '%s'"
-#: merge-recursive.c:936
+#: merge-recursive.c:939
msgid "Failed to execute internal merge"
msgstr "Échec à l'exécution de la fusion interne"
-#: merge-recursive.c:940
+#: merge-recursive.c:943
#, c-format
msgid "Unable to add %s to database"
msgstr "Impossible d'ajouter %s à la base de données"
-#: merge-recursive.c:956
+#: merge-recursive.c:959
msgid "unsupported object type in the tree"
msgstr "type d'objet non supporté dans l'arbre"
-#: merge-recursive.c:1031 merge-recursive.c:1045
+#: merge-recursive.c:1034 merge-recursive.c:1048
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -825,7 +847,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:1037 merge-recursive.c:1050
+#: merge-recursive.c:1040 merge-recursive.c:1053
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -834,20 +856,20 @@ 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:1091
+#: merge-recursive.c:1094
msgid "rename"
msgstr "renommage"
-#: merge-recursive.c:1091
+#: merge-recursive.c:1094
msgid "renamed"
msgstr "renommé"
-#: merge-recursive.c:1147
+#: merge-recursive.c:1150
#, 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:1169
+#: merge-recursive.c:1172
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
@@ -856,146 +878,146 @@ msgstr ""
"CONFLIT (renommage/renommage) : Renommage de \"%s\"->\"%s\" dans la branche "
"\"%s\" et renommage \"%s\"->\"%s\" dans \"%s\"%s"
-#: merge-recursive.c:1174
+#: merge-recursive.c:1177
msgid " (left unresolved)"
msgstr " (laissé non résolu)"
-#: merge-recursive.c:1228
+#: merge-recursive.c:1231
#, 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:1258
+#: merge-recursive.c:1261
#, c-format
msgid "Renaming %s to %s and %s to %s instead"
msgstr "Renommage de %s en %s et de %s en %s à la place"
-#: merge-recursive.c:1457
+#: merge-recursive.c:1460
#, c-format
msgid "CONFLICT (rename/add): Rename %s->%s in %s. %s added in %s"
msgstr ""
"CONFLIT (renommage/ajout) : Renommage de %s->%s dans %s. %s ajouté dans %s"
-#: merge-recursive.c:1467
+#: merge-recursive.c:1470
#, c-format
msgid "Adding merged %s"
msgstr "Ajout de %s fusionné"
-#: merge-recursive.c:1472 merge-recursive.c:1674
+#: merge-recursive.c:1475 merge-recursive.c:1677
#, c-format
msgid "Adding as %s instead"
msgstr "Ajout plutôt comme %s"
-#: merge-recursive.c:1523
+#: merge-recursive.c:1526
#, c-format
msgid "cannot read object %s"
msgstr "impossible de lire l'objet %s"
-#: merge-recursive.c:1526
+#: merge-recursive.c:1529
#, c-format
msgid "object %s is not a blob"
msgstr "l'objet %s n'est pas un blob"
-#: merge-recursive.c:1578
+#: merge-recursive.c:1581
msgid "modify"
msgstr "modification"
-#: merge-recursive.c:1578
+#: merge-recursive.c:1581
msgid "modified"
msgstr "modifié"
-#: merge-recursive.c:1588
+#: merge-recursive.c:1591
msgid "content"
msgstr "contenu"
-#: merge-recursive.c:1595
+#: merge-recursive.c:1598
msgid "add/add"
msgstr "ajout/ajout"
-#: merge-recursive.c:1629
+#: merge-recursive.c:1632
#, c-format
msgid "Skipped %s (merged same as existing)"
msgstr "%s sauté (fusion identique à l'existant)"
-#: merge-recursive.c:1643
+#: merge-recursive.c:1646
#, c-format
msgid "Auto-merging %s"
msgstr "Fusion automatique de %s"
-#: merge-recursive.c:1647 git-submodule.sh:1025
+#: merge-recursive.c:1650 git-submodule.sh:1048
msgid "submodule"
msgstr "sous-module"
-#: merge-recursive.c:1648
+#: merge-recursive.c:1651
#, c-format
msgid "CONFLICT (%s): Merge conflict in %s"
msgstr "CONFLIT (%s) : Conflit de fusion dans %s"
-#: merge-recursive.c:1734
+#: merge-recursive.c:1737
#, c-format
msgid "Removing %s"
msgstr "Suppression de %s"
-#: merge-recursive.c:1759
+#: merge-recursive.c:1762
msgid "file/directory"
msgstr "fichier/répertoire"
-#: merge-recursive.c:1765
+#: merge-recursive.c:1768
msgid "directory/file"
msgstr "répertoire/fichier"
-#: merge-recursive.c:1770
+#: merge-recursive.c:1773
#, 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:1780
+#: merge-recursive.c:1783
#, c-format
msgid "Adding %s"
msgstr "Ajout de %s"
-#: merge-recursive.c:1797
+#: merge-recursive.c:1800
msgid "Fatal merge failure, shouldn't happen."
msgstr "Échec fatal de fusion, qui ne devrait jamais arriver."
-#: merge-recursive.c:1816
+#: merge-recursive.c:1819
msgid "Already up-to-date!"
msgstr "Déjà à jour !"
-#: merge-recursive.c:1825
+#: merge-recursive.c:1828
#, c-format
msgid "merging of trees %s and %s failed"
msgstr "échec de fusion des arbres %s et %s"
-#: merge-recursive.c:1855
+#: merge-recursive.c:1858
#, c-format
msgid "Unprocessed path??? %s"
msgstr "Chemin non traité ??? %s"
-#: merge-recursive.c:1903
+#: merge-recursive.c:1906
msgid "Merging:"
msgstr "Fusion :"
-#: merge-recursive.c:1916
+#: merge-recursive.c:1919
#, 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:1953
+#: merge-recursive.c:1956
msgid "merge returned no commit"
msgstr "la fusion n'a pas retourné de commit"
-#: merge-recursive.c:2010
+#: merge-recursive.c:2013
#, c-format
msgid "Could not parse object '%s'"
msgstr "Impossible d'analyser l'objet '%s'"
-#: merge-recursive.c:2021 builtin/merge.c:645
+#: merge-recursive.c:2024 builtin/merge.c:646
msgid "Unable to write index."
msgstr "Impossible d'écrire l'index."
@@ -1115,12 +1137,12 @@ msgstr ""
"%s : le spécificateur magique de chemin n'est pas supporté par cette "
"commande : %s"
-#: pathspec.c:432
+#: pathspec.c:433
#, c-format
msgid "pathspec '%s' is beyond a symbolic link"
msgstr "le chemin '%s' est au-delà d'un lien symbolique"
-#: pathspec.c:441
+#: pathspec.c:442
msgid ""
"There is nothing to exclude from by :(exclude) patterns.\n"
"Perhaps you forgot to add either ':/' or '.' ?"
@@ -1154,166 +1176,251 @@ msgstr ""
"GIT_INDEX_VERSION est renseigné, mais la valeur est invalide.\n"
"Utilisation de la version %i"
-#: refs.c:543 builtin/merge.c:760 builtin/merge.c:871 builtin/merge.c:973
-#: builtin/merge.c:983
+#: refs.c:543 builtin/merge.c:761 builtin/merge.c:872 builtin/merge.c:974
+#: builtin/merge.c:984
#, c-format
msgid "Could not open '%s' for writing"
msgstr "Impossible d'ouvrir '%s' en écriture"
-#: refs/files-backend.c:2359
+#: refs/files-backend.c:2374
#, c-format
msgid "could not delete reference %s: %s"
msgstr "Impossible de supprimer la référence %s : %s"
-#: refs/files-backend.c:2362
+#: refs/files-backend.c:2377
#, c-format
msgid "could not delete references: %s"
msgstr "impossible de supprimer les références : %s"
-#: refs/files-backend.c:2371
+#: refs/files-backend.c:2386
#, c-format
msgid "could not remove reference %s"
msgstr "impossible de supprimer la référence %s"
-#: ref-filter.c:245
+#: ref-filter.c:55
#, c-format
-msgid "format: %%(end) atom used without corresponding atom"
-msgstr "format : atome %%(end) utilisé sans atome correspondant"
+msgid "expected format: %%(color:<color>)"
+msgstr "format attendu : %%(color:<couleur>)"
+
+#: ref-filter.c:57
+#, c-format
+msgid "unrecognized color: %%(color:%s)"
+msgstr "couleur non reconnue : %%(color:%s)"
+
+#: ref-filter.c:71
+#, c-format
+msgid "unrecognized format: %%(%s)"
+msgstr "format non reconnu %%(%s)"
+
+#: ref-filter.c:77
+#, c-format
+msgid "%%(body) does not take arguments"
+msgstr "%%(body) n'accepte pas d'argument"
+
+#: ref-filter.c:84
+#, c-format
+msgid "%%(subject) does not take arguments"
+msgstr "%%(subject) n'accepte pas d'argument"
-#: ref-filter.c:704
+#: ref-filter.c:101
#, c-format
msgid "positive value expected contents:lines=%s"
msgstr "valeur positive attendue contents:lines=%s"
-#: ref-filter.c:833
+#: ref-filter.c:103
#, c-format
-msgid "expected format: %%(color:<color>)"
-msgstr "format attendu : %%(color:<couleur>)"
+msgid "unrecognized %%(contents) argument: %s"
+msgstr "argument %%(contents) non reconnu : %s"
-#: ref-filter.c:835
-msgid "unable to parse format"
-msgstr "impossible d'analyser le format"
+#: ref-filter.c:113
+#, c-format
+msgid "unrecognized %%(objectname) argument: %s"
+msgstr "argument %%(objectname) non reconnu : %s"
-#: ref-filter.c:870
+#: ref-filter.c:135
#, c-format
msgid "expected format: %%(align:<width>,<position>)"
msgstr "format attendu : %%(align:<largeur>,<position>)"
-#: ref-filter.c:893
+#: ref-filter.c:147
+#, c-format
+msgid "unrecognized position:%s"
+msgstr "position non reconnue : %s"
+
+#: ref-filter.c:151
+#, c-format
+msgid "unrecognized width:%s"
+msgstr "largeur non reconnue : %s"
+
+#: ref-filter.c:157
#, c-format
-msgid "improper format entered align:%s"
-msgstr "format non convenable align:%s"
+msgid "unrecognized %%(align) argument: %s"
+msgstr "argument %%(align) non reconnu : %s"
-#: ref-filter.c:898
+#: ref-filter.c:161
#, c-format
msgid "positive width expected with the %%(align) atom"
msgstr "valeur positive attendue avec l'atome %%(align)"
-#: ref-filter.c:1219
+#: ref-filter.c:244
+#, c-format
+msgid "malformed field name: %.*s"
+msgstr "nom de champ malformé %.*s"
+
+#: ref-filter.c:270
+#, c-format
+msgid "unknown field name: %.*s"
+msgstr "nom de champ inconnu : %.*s"
+
+#: ref-filter.c:372
+#, c-format
+msgid "format: %%(end) atom used without corresponding atom"
+msgstr "format : atome %%(end) utilisé sans atome correspondant"
+
+#: ref-filter.c:424
+#, c-format
+msgid "malformed format string %s"
+msgstr "Chaîne de formatage mal formée %s"
+
+#: ref-filter.c:878
+msgid ":strip= requires a positive integer argument"
+msgstr ":strip= requiert un argument entier positif"
+
+#: ref-filter.c:883
+#, c-format
+msgid "ref '%s' does not have %ld components to :strip"
+msgstr "la réf '%s' n'a pas %ld composants à :strip"
+
+#: ref-filter.c:1046
+#, c-format
+msgid "unknown %.*s format %s"
+msgstr "format de %.*s inconnu %s"
+
+#: ref-filter.c:1066 ref-filter.c:1097
+#, c-format
+msgid "missing object %s for %s"
+msgstr "objet manquant %s pour %s"
+
+#: ref-filter.c:1069 ref-filter.c:1100
+#, c-format
+msgid "parse_object_buffer failed on %s for %s"
+msgstr "echec de parse_object_buffer sur %s pour %s"
+
+#: ref-filter.c:1311
#, c-format
msgid "malformed object at '%s'"
msgstr "objet malformé à '%s'"
-#: ref-filter.c:1561
+#: ref-filter.c:1373
+#, c-format
+msgid "ignoring ref with broken name %s"
+msgstr "réf avec un nom cassé %s ignoré"
+
+#: ref-filter.c:1378
+#, c-format
+msgid "ignoring broken ref %s"
+msgstr "réf cassé %s ignoré"
+
+#: ref-filter.c:1651
#, c-format
msgid "format: %%(end) atom missing"
msgstr "format: atome %%(end) manquant"
-#: ref-filter.c:1615
+#: ref-filter.c:1705
#, c-format
msgid "malformed object name %s"
msgstr "nom d'objet malformé %s"
-#: remote.c:756
+#: remote.c:745
#, 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:760
+#: remote.c:749
#, c-format
msgid "%s usually tracks %s, not %s"
msgstr "%s suit habituellement %s, pas %s"
-#: remote.c:764
+#: remote.c:753
#, c-format
msgid "%s tracks both %s and %s"
msgstr "%s suit à la fois %s et %s"
-#: remote.c:772
+#: remote.c:761
msgid "Internal error"
msgstr "Erreur interne"
-#: remote.c:1687 remote.c:1730
+#: remote.c:1677 remote.c:1720
msgid "HEAD does not point to a branch"
msgstr "HEAD ne pointe pas sur une branche"
-#: remote.c:1696
+#: remote.c:1686
#, c-format
msgid "no such branch: '%s'"
msgstr "pas de branche '%s'"
-#: remote.c:1699
+#: remote.c:1689
#, c-format
msgid "no upstream configured for branch '%s'"
msgstr "aucune branche amont configurée pour la branche '%s'"
-#: remote.c:1705
+#: remote.c:1695
#, 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:1720
+#: remote.c:1710
#, 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:1735
+#: remote.c:1725
#, c-format
msgid "branch '%s' has no remote for pushing"
msgstr "la branche '%s' n'a aucune branche distante de poussée"
-#: remote.c:1746
+#: remote.c:1736
#, 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:1759
+#: remote.c:1749
msgid "push has no destination (push.default is 'nothing')"
msgstr "la poussée n'a pas de destination (push.default vaut 'nothing')"
-#: remote.c:1781
+#: remote.c:1771
msgid "cannot resolve 'simple' push to a single destination"
msgstr ""
"impossible de résoudre une poussée 'simple' pour une destination unique"
-#: remote.c:2083
+#: remote.c:2073
#, 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:2087
+#: remote.c:2077
msgid " (use \"git branch --unset-upstream\" to fixup)\n"
msgstr " (utilisez \"git branch --unset-upstream\" pour corriger)\n"
-#: remote.c:2090
+#: remote.c:2080
#, c-format
msgid "Your branch is up-to-date with '%s'.\n"
msgstr "Votre branche est à jour avec '%s'.\n"
-#: remote.c:2094
+#: remote.c:2084
#, 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:2100
+#: remote.c:2090
msgid " (use \"git push\" to publish your local commits)\n"
msgstr " (utilisez \"git push\" pour publier vos commits locaux)\n"
-#: remote.c:2103
+#: remote.c:2093
#, c-format
msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
msgid_plural ""
@@ -1325,11 +1432,11 @@ msgstr[1] ""
"Votre branche est en retard sur '%s' de %d commits, et peut être mise à jour "
"en avance rapide.\n"
-#: remote.c:2111
+#: remote.c:2101
msgid " (use \"git pull\" to update your local branch)\n"
msgstr " (utilisez \"git pull\" pour mettre à jour votre branche locale)\n"
-#: remote.c:2114
+#: remote.c:2104
#, c-format
msgid ""
"Your branch and '%s' have diverged,\n"
@@ -1344,29 +1451,29 @@ msgstr[1] ""
"Votre branche et '%s' ont divergé,\n"
"et ont %d et %d commits différents chacune respectivement.\n"
-#: remote.c:2124
+#: remote.c:2114
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"
-#: revision.c:2193
+#: revision.c:2131
msgid "your current branch appears to be broken"
msgstr "votre branche actuelle semble cassée"
-#: revision.c:2196
+#: revision.c:2134
#, 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:2390
+#: revision.c:2328
msgid "--first-parent is incompatible with --bisect"
msgstr "--first-parent est incompatible avec --bisect"
-#: run-command.c:90
+#: run-command.c:92
msgid "open /dev/null failed"
msgstr "échec de l'ouverture de /dev/null"
-#: run-command.c:92
+#: run-command.c:94
#, c-format
msgid "dup2(%d,%d) failed"
msgstr "échec de dup2(%d,%d)"
@@ -1391,7 +1498,7 @@ msgstr ""
msgid "the receiving end does not support --atomic push"
msgstr "Le receveur ne gère pas les poussées avec --atomic"
-#: sequencer.c:183
+#: sequencer.c:174
msgid ""
"after resolving the conflicts, mark the corrected paths\n"
"with 'git add <paths>' or 'git rm <paths>'"
@@ -1399,7 +1506,7 @@ msgstr ""
"après résolution des conflits, marquez les chemins corrigés\n"
"avec 'git add <chemins>' ou 'git rm <chemins>'"
-#: sequencer.c:186
+#: sequencer.c:177
msgid ""
"after resolving the conflicts, mark the corrected paths\n"
"with 'git add <paths>' or 'git rm <paths>'\n"
@@ -1409,67 +1516,67 @@ msgstr ""
"avec 'git add <chemins>' ou 'git rm <chemins>'\n"
"puis validez le résultat avec 'git commit'"
-#: sequencer.c:199 sequencer.c:842 sequencer.c:922
+#: sequencer.c:190 sequencer.c:833 sequencer.c:913
#, c-format
msgid "Could not write to %s"
msgstr "Impossible d'écrire dans %s"
-#: sequencer.c:202
+#: sequencer.c:193
#, c-format
msgid "Error wrapping up %s"
msgstr "Erreur à l'emballage de %s"
-#: sequencer.c:217
+#: sequencer.c:208
msgid "Your local changes would be overwritten by cherry-pick."
msgstr "Vos modifications locales seraient écrasées par cherry-pick."
-#: sequencer.c:219
+#: sequencer.c:210
msgid "Your local changes would be overwritten by revert."
msgstr "Vos modifications locales seraient écrasées par revert."
-#: sequencer.c:222
+#: sequencer.c:213
msgid "Commit your changes or stash them to proceed."
msgstr "Validez vos modifications ou les remiser pour continuer."
#. TRANSLATORS: %s will be "revert" or "cherry-pick"
-#: sequencer.c:309
+#: sequencer.c:300
#, c-format
msgid "%s: Unable to write new index file"
msgstr "%s: Impossible d'écrire le nouveau fichier index"
-#: sequencer.c:327
+#: sequencer.c:318
msgid "Could not resolve HEAD commit\n"
msgstr "Impossible de résoudre le commit HEAD\n"
-#: sequencer.c:347
+#: sequencer.c:338
msgid "Unable to update cache tree\n"
msgstr "Impossible de mettre à jour l'arbre de cache\n"
-#: sequencer.c:399
+#: sequencer.c:390
#, c-format
msgid "Could not parse commit %s\n"
msgstr "Impossible d'analyser le commit %s\n"
-#: sequencer.c:404
+#: sequencer.c:395
#, c-format
msgid "Could not parse parent commit %s\n"
msgstr "Impossible d'analyser le commit parent %s\n"
-#: sequencer.c:469
+#: sequencer.c:460
msgid "Your index file is unmerged."
msgstr "Votre fichier d'index n'est pas fusionné."
-#: sequencer.c:488
+#: sequencer.c:479
#, 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:496
+#: sequencer.c:487
#, c-format
msgid "Commit %s does not have parent %d"
msgstr "Le commit %s n'a pas le parent %d"
-#: sequencer.c:500
+#: sequencer.c:491
#, c-format
msgid "Mainline was specified but commit %s is not a merge."
msgstr ""
@@ -1478,162 +1585,176 @@ msgstr ""
#. TRANSLATORS: The first %s will be "revert" or
#. "cherry-pick", the second %s a SHA1
-#: sequencer.c:513
+#: sequencer.c:504
#, c-format
msgid "%s: cannot parse parent commit %s"
msgstr "%s : impossible d'analyser le commit parent %s"
-#: sequencer.c:517
+#: sequencer.c:508
#, c-format
msgid "Cannot get commit message for %s"
msgstr "Impossible d'obtenir un message de validation pour %s"
-#: sequencer.c:603
+#: sequencer.c:594
#, c-format
msgid "could not revert %s... %s"
msgstr "impossible d'annuler %s... %s"
-#: sequencer.c:604
+#: sequencer.c:595
#, c-format
msgid "could not apply %s... %s"
msgstr "impossible d'appliquer %s... %s"
-#: sequencer.c:639
+#: sequencer.c:630
msgid "empty commit set passed"
msgstr "l'ensemble de commits spécifié est vide"
-#: sequencer.c:647
+#: sequencer.c:638
#, c-format
msgid "git %s: failed to read the index"
msgstr "git %s : échec à la lecture de l'index"
-#: sequencer.c:651
+#: sequencer.c:642
#, c-format
msgid "git %s: failed to refresh the index"
msgstr "git %s : échec du rafraîchissement de l'index"
-#: sequencer.c:711
+#: sequencer.c:702
#, c-format
msgid "Cannot %s during a %s"
msgstr "Impossible de %s pendant un %s"
-#: sequencer.c:733
+#: sequencer.c:724
#, c-format
msgid "Could not parse line %d."
msgstr "Impossible d'analyser la ligne %d."
-#: sequencer.c:738
+#: sequencer.c:729
msgid "No commits parsed."
msgstr "Aucun commit analysé."
-#: sequencer.c:750
+#: sequencer.c:741
#, c-format
msgid "Could not open %s"
msgstr "Impossible d'ouvrir %s"
-#: sequencer.c:754
+#: sequencer.c:745
#, c-format
msgid "Could not read %s."
msgstr "Impossible de lire %s."
-#: sequencer.c:761
+#: sequencer.c:752
#, c-format
msgid "Unusable instruction sheet: %s"
msgstr "Feuille d'instruction inutilisable : %s"
-#: sequencer.c:791
+#: sequencer.c:782
#, c-format
msgid "Invalid key: %s"
msgstr "Clé invalide: %s"
-#: sequencer.c:794 builtin/pull.c:47 builtin/pull.c:49
+#: sequencer.c:785 builtin/pull.c:50 builtin/pull.c:52
#, c-format
msgid "Invalid value for %s: %s"
msgstr "Valeur invalide pour %s : %s"
-#: sequencer.c:804
+#: sequencer.c:795
#, c-format
msgid "Malformed options sheet: %s"
msgstr "Feuille d'options malformée : %s"
-#: sequencer.c:823
+#: sequencer.c:814
msgid "a cherry-pick or revert is already in progress"
msgstr "un picorage ou un retour est déjà en cours"
-#: sequencer.c:824
+#: sequencer.c:815
msgid "try \"git cherry-pick (--continue | --quit | --abort)\""
msgstr "essayez \"git cherry-pick (--continue|--quit|-- abort)\""
-#: sequencer.c:828
+#: sequencer.c:819
#, c-format
msgid "Could not create sequencer directory %s"
msgstr "Impossible de créer le répertoire de séquenceur %s"
-#: sequencer.c:844 sequencer.c:926
+#: sequencer.c:835 sequencer.c:917
#, c-format
msgid "Error wrapping up %s."
msgstr "Erreur lors de l'emballage de %s."
-#: sequencer.c:863 sequencer.c:996
+#: sequencer.c:854 sequencer.c:987
msgid "no cherry-pick or revert in progress"
msgstr "aucun picorage ou retour en cours"
-#: sequencer.c:865
+#: sequencer.c:856
msgid "cannot resolve HEAD"
msgstr "impossible de résoudre HEAD"
-#: sequencer.c:867
+#: sequencer.c:858
msgid "cannot abort from a branch yet to be born"
msgstr "impossible d'abandonner depuis une branche non encore créée"
-#: sequencer.c:887 builtin/apply.c:4287
+#: sequencer.c:878 builtin/apply.c:4287
#, c-format
msgid "cannot open %s: %s"
msgstr "impossible d'ouvrir %s : %s"
-#: sequencer.c:890
+#: sequencer.c:881
#, c-format
msgid "cannot read %s: %s"
msgstr "impossible de lire %s : %s"
-#: sequencer.c:891
+#: sequencer.c:882
msgid "unexpected end of file"
msgstr "fin de fichier inattendue"
-#: sequencer.c:897
+#: sequencer.c:888
#, 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:919
+#: sequencer.c:910
#, c-format
msgid "Could not format %s."
msgstr "Impossible de formater %s."
-#: sequencer.c:1064
+#: sequencer.c:1055
#, c-format
msgid "%s: can't cherry-pick a %s"
msgstr "%s : impossible de picorer un %s"
-#: sequencer.c:1067
+#: sequencer.c:1058
#, c-format
msgid "%s: bad revision"
msgstr "%s : mauvaise révision"
-#: sequencer.c:1101
+#: sequencer.c:1092
msgid "Can't revert as initial commit"
msgstr "Impossible d'annuler en tant que commit initial"
-#: sequencer.c:1102
+#: sequencer.c:1093
msgid "Can't cherry-pick into empty head"
msgstr "Impossible de picorer vers une HEAD vide"
-#: setup.c:248
+#: setup.c:246
#, c-format
msgid "failed to read %s"
msgstr "échec de la lecture de %s"
-#: sha1_name.c:463
+#: sha1_file.c:1080
+msgid "offset before end of packfile (broken .idx?)"
+msgstr "offset avant la fin du fichier paquet (.idx cassé ?)"
+
+#: sha1_file.c:2459
+#, 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 ?)"
+
+#: sha1_file.c:2463
+#, c-format
+msgid "offset beyond end of pack index for %s (truncated index?)"
+msgstr "offset au delà de la fin de l'index de paquet pour %s (index tronqué ?)"
+
+#: sha1_name.c:462
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"
@@ -1658,63 +1779,87 @@ msgstr ""
"message\n"
"en lançant \"git config advice.objectNameWarning false\""
-#: submodule.c:61 submodule.c:95
+#: submodule.c:62 submodule.c:96
msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
msgstr ""
"Modification impossible de .gitmodules non fusionné, résolvez les conflits "
"d'abord"
-#: submodule.c:65 submodule.c:99
+#: submodule.c:66 submodule.c:100
#, c-format
msgid "Could not find section in .gitmodules where path=%s"
msgstr "Impossible de trouver une section où path=%s dans .gitmodules"
-#: submodule.c:73
+#: submodule.c:74
#, c-format
msgid "Could not update .gitmodules entry %s"
msgstr "Impossible de mettre à jour l'élément %s de .gitmodules"
# ici %s est un chemin
-#: submodule.c:106
+#: submodule.c:107
#, c-format
msgid "Could not remove .gitmodules entry for %s"
msgstr "Impossible de supprimer l'élément de .gitmodules pour %s"
-#: submodule.c:117
+#: submodule.c:118
msgid "staging updated .gitmodules failed"
msgstr "échec de la mise en index du .gitmodules mis à jour"
-#: submodule.c:1040
+#: trailer.c:237
#, c-format
-msgid "Could not set core.worktree in %s"
-msgstr "Impossible de paramétrer core.worktree dans %s"
+msgid "running trailer command '%s' failed"
+msgstr "échec de la commande trailer '%s'"
-#: trailer.c:491 trailer.c:495 trailer.c:499 trailer.c:553 trailer.c:557
-#: trailer.c:561
+#: trailer.c:492 trailer.c:496 trailer.c:500 trailer.c:554 trailer.c:558
+#: trailer.c:562
#, c-format
msgid "unknown value '%s' for key '%s'"
msgstr "valeur inconnue '%s' pour la clé '%s'"
-#: trailer.c:543 trailer.c:548 builtin/remote.c:296
+#: trailer.c:544 trailer.c:549 builtin/remote.c:289
#, c-format
msgid "more than one %s"
msgstr "plus d'un %s"
-#: trailer.c:581
+#: trailer.c:582
#, c-format
msgid "empty trailer token in trailer '%.*s'"
msgstr "symbole vide dans la ligne de fin '%.*s'"
-#: trailer.c:701
+#: trailer.c:702
#, c-format
msgid "could not read input file '%s'"
msgstr "impossible de lire le fichier d'entrée '%s'"
-#: trailer.c:704
+#: trailer.c:705
msgid "could not read from stdin"
msgstr "Impossible de lire depuis l'entrée standard"
-#: transport-helper.c:1025
+#: trailer.c:857 builtin/am.c:42
+#, c-format
+msgid "could not stat %s"
+msgstr "stat impossible de %s"
+
+#: trailer.c:859
+#, c-format
+msgid "file %s is not a regular file"
+msgstr "%s n'est pas un fichier régulier"
+
+#: trailer.c:861
+#, c-format
+msgid "file %s is not writable by user"
+msgstr "le fichier %s n'est pas inscriptible par l'utilisateur"
+
+#: trailer.c:873
+msgid "could not open temporary file"
+msgstr "impossible de créer un fichier temporaire"
+
+#: trailer.c:912
+#, c-format
+msgid "could not rename temporary file to %s"
+msgstr "impossible de renommer un fichier temporaire en %s"
+
+#: transport-helper.c:1041
#, c-format
msgid "Could not read ref %s"
msgstr "impossible de lire la réf %s"
@@ -1752,47 +1897,47 @@ msgstr "numéro de port invalide"
msgid "invalid '..' path segment"
msgstr "segment de chemin '..' invalide"
-#: wrapper.c:219 wrapper.c:362
+#: wrapper.c:222 wrapper.c:381
#, c-format
msgid "could not open '%s' for reading and writing"
msgstr "impossible d'ouvrir '%s' en lecture/écriture"
-#: wrapper.c:221 wrapper.c:364
+#: wrapper.c:224 wrapper.c:383
#, c-format
msgid "could not open '%s' for writing"
msgstr "impossible d'ouvrir '%s' en écriture"
-#: wrapper.c:223 wrapper.c:366 builtin/am.c:338 builtin/commit.c:1691
-#: builtin/merge.c:1074 builtin/pull.c:380
+#: wrapper.c:226 wrapper.c:385 builtin/am.c:323 builtin/commit.c:1691
+#: builtin/merge.c:1075 builtin/pull.c:387
#, c-format
msgid "could not open '%s' for reading"
msgstr "impossible d'ouvrir '%s' en lecture"
-#: wrapper.c:579
+#: wrapper.c:611
#, c-format
msgid "unable to access '%s': %s"
msgstr "impossible d'accéder à '%s' : %s"
-#: wrapper.c:600
+#: wrapper.c:632
#, c-format
msgid "unable to access '%s'"
msgstr "impossible d'accéder à '%s'"
-#: wrapper.c:608
+#: wrapper.c:640
msgid "unable to get current working directory"
msgstr "impossible d'accéder au répertoire de travail courant"
-#: wrapper.c:635
+#: wrapper.c:667
#, c-format
msgid "could not open %s for writing"
msgstr "Impossible d'ouvrir '%s' en écriture"
-#: wrapper.c:646 builtin/am.c:425
+#: wrapper.c:678 builtin/am.c:410
#, c-format
msgid "could not write to %s"
msgstr "Impossible d'écrire dans %s"
-#: wrapper.c:652
+#: wrapper.c:684
#, c-format
msgid "could not close %s"
msgstr "impossible de fermer %s"
@@ -2268,7 +2413,7 @@ msgstr "disparue"
msgid "behind "
msgstr "derrière "
-#: compat/precompose_utf8.c:56 builtin/clone.c:408
+#: compat/precompose_utf8.c:57 builtin/clone.c:413
#, c-format
msgid "failed to unlink '%s'"
msgstr "échec lors de l'unlink de '%s'"
@@ -2295,7 +2440,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:194 builtin/rev-parse.c:796
+#: builtin/add.c:194 builtin/rev-parse.c:797
msgid "Could not read the index"
msgstr "Impossible de lire l'index"
@@ -2331,15 +2476,15 @@ 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:249 builtin/clean.c:894 builtin/fetch.c:108 builtin/mv.c:110
-#: builtin/prune-packed.c:55 builtin/pull.c:182 builtin/push.c:543
-#: builtin/remote.c:1345 builtin/rm.c:268 builtin/send-pack.c:162
+#: builtin/add.c:249 builtin/clean.c:870 builtin/fetch.c:112 builtin/mv.c:111
+#: builtin/prune-packed.c:55 builtin/pull.c:189 builtin/push.c:511
+#: builtin/remote.c:1330 builtin/rm.c:268 builtin/send-pack.c:162
msgid "dry run"
msgstr "simuler l'action"
-#: builtin/add.c:250 builtin/apply.c:4571 builtin/check-ignore.c:19
+#: builtin/add.c:250 builtin/apply.c:4561 builtin/check-ignore.c:19
#: builtin/commit.c:1322 builtin/count-objects.c:85 builtin/fsck.c:558
-#: builtin/log.c:1645 builtin/mv.c:109 builtin/read-tree.c:114
+#: builtin/log.c:1651 builtin/mv.c:110 builtin/read-tree.c:114
msgid "be verbose"
msgstr "mode verbeux"
@@ -2347,7 +2492,7 @@ msgstr "mode verbeux"
msgid "interactive picking"
msgstr "sélection interactive"
-#: builtin/add.c:253 builtin/checkout.c:1153 builtin/reset.c:286
+#: builtin/add.c:253 builtin/checkout.c:1155 builtin/reset.c:286
msgid "select hunks interactively"
msgstr "sélection interactive des sections"
@@ -2418,140 +2563,135 @@ 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/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:938
-#: builtin/commit.c:337 builtin/mv.c:130 builtin/reset.c:235 builtin/rm.c:298
-#: builtin/submodule--helper.c:40
+#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:914
+#: builtin/commit.c:337 builtin/mv.c:131 builtin/reset.c:235 builtin/rm.c:298
+#: builtin/submodule--helper.c:35
msgid "index file corrupt"
msgstr "fichier d'index corrompu"
-#: builtin/add.c:439 builtin/apply.c:4669 builtin/mv.c:279 builtin/rm.c:430
+#: builtin/add.c:439 builtin/apply.c:4659 builtin/mv.c:280 builtin/rm.c:430
msgid "Unable to write new index file"
msgstr "Impossible d'écrire le nouveau fichier d'index"
-#: builtin/am.c:42
-#, c-format
-msgid "could not stat %s"
-msgstr "stat impossible de %s"
-
-#: builtin/am.c:271 builtin/commit.c:738 builtin/merge.c:1077
+#: builtin/am.c:256 builtin/commit.c:738 builtin/merge.c:1078
#, c-format
msgid "could not read '%s'"
msgstr "impossible de lire '%s'"
-#: builtin/am.c:445
+#: builtin/am.c:430
msgid "could not parse author script"
msgstr "impossible d'analyser le script author"
-#: builtin/am.c:522
+#: builtin/am.c:507
#, c-format
msgid "'%s' was deleted by the applypatch-msg hook"
msgstr "'%s' a été effacé par le crochet applypatch-msg"
-#: builtin/am.c:563 builtin/notes.c:300
+#: builtin/am.c:548 builtin/notes.c:300
#, c-format
msgid "Malformed input line: '%s'."
msgstr "Ligne en entrée malformée : '%s'."
-#: builtin/am.c:600 builtin/notes.c:315
+#: builtin/am.c:585 builtin/notes.c:315
#, c-format
msgid "Failed to copy notes from '%s' to '%s'"
msgstr "Impossible de copier les notes de '%s' vers '%s'"
-#: builtin/am.c:626
+#: builtin/am.c:611
msgid "fseek failed"
msgstr "échec de fseek"
-#: builtin/am.c:787 builtin/am.c:875
+#: builtin/am.c:772 builtin/am.c:860
#, c-format
msgid "could not open '%s' for reading: %s"
msgstr "impossible d'ouvrir '%s' en lecture : %s"
-#: builtin/am.c:794
+#: builtin/am.c:779
#, c-format
msgid "could not open '%s' for writing: %s"
msgstr "impossible d'ouvrir '%s' en écriture : %s"
-#: builtin/am.c:803
+#: builtin/am.c:788
#, c-format
msgid "could not parse patch '%s'"
msgstr "impossible d'analyser le patch '%s'"
-#: builtin/am.c:868
+#: builtin/am.c:853
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:916
+#: builtin/am.c:901
msgid "invalid timestamp"
msgstr "horodatage invalide"
-#: builtin/am.c:919 builtin/am.c:927
+#: builtin/am.c:904 builtin/am.c:912
msgid "invalid Date line"
msgstr "ligne de Date invalide"
-#: builtin/am.c:924
+#: builtin/am.c:909
msgid "invalid timezone offset"
msgstr "décalage horaire invalide"
-#: builtin/am.c:1011
+#: builtin/am.c:996
msgid "Patch format detection failed."
msgstr "Échec de détection du format du patch."
-#: builtin/am.c:1016 builtin/clone.c:373
+#: builtin/am.c:1001 builtin/clone.c:378
#, c-format
msgid "failed to create directory '%s'"
msgstr "échec de la création du répertoire '%s'"
-#: builtin/am.c:1020
+#: builtin/am.c:1005
msgid "Failed to split patches."
msgstr "Échec de découpage des patchs."
-#: builtin/am.c:1152 builtin/commit.c:363
+#: builtin/am.c:1137 builtin/commit.c:363
msgid "unable to write index file"
msgstr "impossible d'écrire le fichier d'index"
-#: builtin/am.c:1203
+#: builtin/am.c:1188
#, 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:1204
+#: builtin/am.c:1189
#, 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:1205
+#: builtin/am.c:1190
#, 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:1343
+#: builtin/am.c:1328
msgid "Patch is empty. Was it split wrong?"
msgstr "Le patch est vide. Le découpage était-il bon ?"
-#: builtin/am.c:1417 builtin/log.c:1347
+#: builtin/am.c:1402 builtin/log.c:1350
#, c-format
msgid "invalid ident line: %s"
msgstr "ligne d'identification invalide : %s"
-#: builtin/am.c:1444
+#: builtin/am.c:1429
#, c-format
msgid "unable to parse commit %s"
msgstr "impossible d'analyser le commit %s"
-#: builtin/am.c:1646
+#: builtin/am.c:1631
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:1648
+#: builtin/am.c:1633
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:1667
+#: builtin/am.c:1652
msgid ""
"Did you hand edit your patch?\n"
"It does not apply to blobs recorded in its index."
@@ -2559,38 +2699,38 @@ msgstr ""
"Avez-vous édité le patch à la main ?\n"
"Il ne s'applique pas aux blobs enregistrés dans son index."
-#: builtin/am.c:1673
+#: builtin/am.c:1658
msgid "Falling back to patching base and 3-way merge..."
msgstr "Retour à un patch de la base et fusion à 3 points..."
-#: builtin/am.c:1688
+#: builtin/am.c:1673
msgid "Failed to merge in the changes."
msgstr "Échec d'intégration des modifications."
-#: builtin/am.c:1712 builtin/merge.c:632
+#: builtin/am.c:1697 builtin/merge.c:633
msgid "git write-tree failed to write a tree"
msgstr "git write-tree a échoué à écrire un arbre"
-#: builtin/am.c:1719
+#: builtin/am.c:1704
msgid "applying to an empty history"
msgstr "application à un historique vide"
-#: builtin/am.c:1732 builtin/commit.c:1755 builtin/merge.c:829
-#: builtin/merge.c:854
+#: builtin/am.c:1717 builtin/commit.c:1755 builtin/merge.c:830
+#: builtin/merge.c:855
msgid "failed to write commit object"
msgstr "échec de l'écriture de l'objet commit"
-#: builtin/am.c:1764 builtin/am.c:1768
+#: builtin/am.c:1749 builtin/am.c:1753
#, c-format
msgid "cannot resume: %s does not exist."
msgstr "impossible de continuer : %s n'existe pas."
-#: builtin/am.c:1784
+#: builtin/am.c:1769
msgid "cannot be interactive without stdin connected to a terminal."
msgstr ""
"impossible d'être interactif sans entrée standard connectée à un terminal."
-#: builtin/am.c:1789
+#: builtin/am.c:1774
msgid "Commit Body is:"
msgstr "Le corps de la validation est :"
@@ -2598,35 +2738,35 @@ msgstr "Le corps de la validation est :"
#. in your translation. The program will only accept English
#. input at this point.
#.
-#: builtin/am.c:1799
+#: builtin/am.c:1784
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:1849
+#: builtin/am.c:1834
#, c-format
msgid "Dirty index: cannot apply patches (dirty: %s)"
msgstr "Index sale : impossible d'appliquer des patchs (sales : %s)"
-#: builtin/am.c:1884 builtin/am.c:1955
+#: builtin/am.c:1869 builtin/am.c:1941
#, c-format
msgid "Applying: %.*s"
msgstr "Application de %.*s"
-#: builtin/am.c:1900
+#: builtin/am.c:1885
msgid "No changes -- Patch already applied."
msgstr "Pas de changement -- Patch déjà appliqué."
-#: builtin/am.c:1908
+#: builtin/am.c:1893
#, c-format
msgid "Patch failed at %s %.*s"
msgstr "le patch a échoué à %s %.*s"
-#: builtin/am.c:1914
+#: builtin/am.c:1899
#, c-format
msgid "The copy of the patch that failed is found in: %s"
msgstr "La copie du patch qui a échoué se trouve dans : %s"
-#: builtin/am.c:1958
+#: builtin/am.c:1944
msgid ""
"No changes - did you forget to use 'git add'?\n"
"If there is nothing left to stage, chances are that something else\n"
@@ -2637,7 +2777,7 @@ msgstr ""
"introduit les mêmes changements ; vous pourriez avoir envie de sauter ce "
"patch."
-#: builtin/am.c:1965
+#: builtin/am.c:1951
msgid ""
"You still have unmerged paths in your index.\n"
"Did you forget to use 'git add'?"
@@ -2645,17 +2785,17 @@ msgstr ""
"Vous avez toujours des chemins non fusionnés dans votre index\n"
"Auriez-vous oublié de faire 'git add' ?"
-#: builtin/am.c:2073 builtin/am.c:2077 builtin/am.c:2089 builtin/reset.c:308
+#: builtin/am.c:2059 builtin/am.c:2063 builtin/am.c:2075 builtin/reset.c:308
#: builtin/reset.c:316
#, c-format
msgid "Could not parse object '%s'."
msgstr "Impossible d'analyser l'objet '%s'."
-#: builtin/am.c:2125
+#: builtin/am.c:2111
msgid "failed to clean index"
msgstr "échec du nettoyage de l'index"
-#: builtin/am.c:2159
+#: builtin/am.c:2145
msgid ""
"You seem to have moved HEAD since the last 'am' failure.\n"
"Not rewinding to ORIG_HEAD"
@@ -2663,154 +2803,154 @@ msgstr ""
"Vous semblez avoir déplacé la HEAD depuis le dernier échec de 'am'.\n"
"Pas de retour à ORIG_HEAD"
-#: builtin/am.c:2220
+#: builtin/am.c:2206
#, c-format
msgid "Invalid value for --patch-format: %s"
msgstr "Valeur invalide pour --patch-format : %s"
-#: builtin/am.c:2253
+#: builtin/am.c:2239
msgid "git am [<options>] [(<mbox>|<Maildir>)...]"
msgstr "git am [<options>] [(<mbox>|<Maildir>)...]"
-#: builtin/am.c:2254
+#: builtin/am.c:2240
msgid "git am [<options>] (--continue | --skip | --abort)"
msgstr "git am [<options>] (--continue | --quit | --abort)"
-#: builtin/am.c:2260
+#: builtin/am.c:2246
msgid "run interactively"
msgstr "exécution interactive"
-#: builtin/am.c:2262
+#: builtin/am.c:2248
msgid "historical option -- no-op"
msgstr "option historique -- no-op"
-#: builtin/am.c:2264
+#: builtin/am.c:2250
msgid "allow fall back on 3way merging if needed"
msgstr "permettre de revenir à une fusion à 3 points si nécessaire"
-#: builtin/am.c:2265 builtin/init-db.c:474 builtin/prune-packed.c:57
+#: builtin/am.c:2251 builtin/init-db.c:474 builtin/prune-packed.c:57
#: builtin/repack.c:171
msgid "be quiet"
msgstr "être silencieux"
-#: builtin/am.c:2267
+#: builtin/am.c:2253
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:2270
+#: builtin/am.c:2256
msgid "recode into utf8 (default)"
msgstr "recoder en utf-8 (par défaut)"
-#: builtin/am.c:2272
+#: builtin/am.c:2258
msgid "pass -k flag to git-mailinfo"
msgstr "passer l'option -k à git-mailinfo"
-#: builtin/am.c:2274
+#: builtin/am.c:2260
msgid "pass -b flag to git-mailinfo"
msgstr "passer l'option -b à git-mailinfo"
-#: builtin/am.c:2276
+#: builtin/am.c:2262
msgid "pass -m flag to git-mailinfo"
msgstr "passer l'option -m à git-mailinfo"
-#: builtin/am.c:2278
+#: builtin/am.c:2264
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:2281
+#: builtin/am.c:2267
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:2284
+#: builtin/am.c:2270
msgid "strip everything before a scissors line"
msgstr "retirer tout le contenu avant la ligne des ciseaux"
-#: builtin/am.c:2285 builtin/apply.c:4554
+#: builtin/am.c:2271 builtin/apply.c:4544
msgid "action"
msgstr "action"
-#: builtin/am.c:2286 builtin/am.c:2289 builtin/am.c:2292 builtin/am.c:2295
-#: builtin/am.c:2298 builtin/am.c:2301 builtin/am.c:2304 builtin/am.c:2307
-#: builtin/am.c:2313
+#: builtin/am.c:2272 builtin/am.c:2275 builtin/am.c:2278 builtin/am.c:2281
+#: builtin/am.c:2284 builtin/am.c:2287 builtin/am.c:2290 builtin/am.c:2293
+#: builtin/am.c:2299
msgid "pass it through git-apply"
msgstr "le passer jusqu'à git-apply"
-#: builtin/am.c:2294 builtin/apply.c:4578
+#: builtin/am.c:2280 builtin/apply.c:4568
msgid "root"
msgstr "racine"
-#: builtin/am.c:2297 builtin/am.c:2300 builtin/apply.c:4516
-#: builtin/apply.c:4519 builtin/clone.c:85 builtin/fetch.c:93
-#: builtin/pull.c:167 builtin/submodule--helper.c:78
-#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
+#: builtin/am.c:2283 builtin/am.c:2286 builtin/apply.c:4506
+#: builtin/apply.c:4509 builtin/clone.c:86 builtin/fetch.c:95
+#: builtin/pull.c:171 builtin/submodule--helper.c:72
+#: builtin/submodule--helper.c:160 builtin/submodule--helper.c:163
msgid "path"
msgstr "chemin"
-#: builtin/am.c:2303 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
-#: builtin/grep.c:693 builtin/merge.c:198 builtin/pull.c:127
+#: builtin/am.c:2289 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
+#: builtin/grep.c:704 builtin/merge.c:198 builtin/pull.c:131 builtin/pull.c:185
#: builtin/repack.c:178 builtin/repack.c:182 builtin/show-branch.c:645
#: builtin/show-ref.c:175 builtin/tag.c:340 parse-options.h:132
#: parse-options.h:134 parse-options.h:244
msgid "n"
msgstr "n"
-#: builtin/am.c:2306 builtin/apply.c:4522
+#: builtin/am.c:2292 builtin/apply.c:4512
msgid "num"
msgstr "num"
-#: builtin/am.c:2309 builtin/for-each-ref.c:37 builtin/replace.c:438
+#: builtin/am.c:2295 builtin/for-each-ref.c:37 builtin/replace.c:438
#: builtin/tag.c:372
msgid "format"
msgstr "format"
-#: builtin/am.c:2310
+#: builtin/am.c:2296
msgid "format the patch(es) are in"
msgstr "format de présentation des patchs"
-#: builtin/am.c:2316
+#: builtin/am.c:2302
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:2318
+#: builtin/am.c:2304
msgid "continue applying patches after resolving a conflict"
msgstr "continuer à appliquer les patchs après résolution d'un conflit"
-#: builtin/am.c:2321
+#: builtin/am.c:2307
msgid "synonyms for --continue"
msgstr "synonymes de --continue"
-#: builtin/am.c:2324
+#: builtin/am.c:2310
msgid "skip the current patch"
msgstr "sauter le patch courant"
-#: builtin/am.c:2327
+#: builtin/am.c:2313
msgid "restore the original branch and abort the patching operation."
msgstr ""
"restaurer la branche originale et abandonner les applications de patch."
-#: builtin/am.c:2331
+#: builtin/am.c:2317
msgid "lie about committer date"
msgstr "mentir sur la date de validation"
-#: builtin/am.c:2333
+#: builtin/am.c:2319
msgid "use current timestamp for author date"
msgstr "utiliser l'horodatage actuel pour la date d'auteur"
-#: builtin/am.c:2335 builtin/commit.c:1593 builtin/merge.c:225
-#: builtin/pull.c:155 builtin/revert.c:92 builtin/tag.c:355
+#: builtin/am.c:2321 builtin/commit.c:1593 builtin/merge.c:225
+#: builtin/pull.c:159 builtin/revert.c:92 builtin/tag.c:355
msgid "key-id"
msgstr "id de clé"
-#: builtin/am.c:2336
+#: builtin/am.c:2322
msgid "GPG-sign commits"
msgstr "signer les commits avec GPG"
-#: builtin/am.c:2339
+#: builtin/am.c:2325
msgid "(internal use for git-rebase)"
msgstr "(utilisation interne pour git-rebase)"
-#: builtin/am.c:2354
+#: builtin/am.c:2340
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."
@@ -2818,17 +2958,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:2361
+#: builtin/am.c:2347
msgid "failed to read the index"
msgstr "échec à la lecture de l'index"
-#: builtin/am.c:2376
+#: builtin/am.c:2362
#, 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:2400
+#: builtin/am.c:2386
#, c-format
msgid ""
"Stray %s directory found.\n"
@@ -2837,7 +2977,7 @@ msgstr ""
"Répertoire abandonné %s trouvé.\n"
"Utilisez \"git am --abort\" pour le supprimer."
-#: builtin/am.c:2406
+#: builtin/am.c:2392
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 "
@@ -3196,137 +3336,137 @@ msgstr "entrée non reconnue"
msgid "unable to read index file"
msgstr "lecture du fichier d'index impossible"
-#: builtin/apply.c:4517
+#: builtin/apply.c:4507
msgid "don't apply changes matching the given path"
msgstr "ne pas appliquer les modifications qui correspondent au chemin donné"
-#: builtin/apply.c:4520
+#: builtin/apply.c:4510
msgid "apply changes matching the given path"
msgstr "appliquer les modifications qui correspondent au chemin donné"
-#: builtin/apply.c:4523
+#: builtin/apply.c:4513
msgid "remove <num> leading slashes from traditional diff paths"
msgstr "supprimer <num> barres obliques des chemins traditionnels de diff"
-#: builtin/apply.c:4526
+#: builtin/apply.c:4516
msgid "ignore additions made by the patch"
msgstr "ignorer les additions réalisées par le patch"
-#: builtin/apply.c:4528
+#: builtin/apply.c:4518
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"
-#: builtin/apply.c:4532
+#: builtin/apply.c:4522
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"
-#: builtin/apply.c:4534
+#: builtin/apply.c:4524
msgid "instead of applying the patch, output a summary for the input"
msgstr "au lieu d'appliquer le patch, afficher un résumer de l'entrée"
-#: builtin/apply.c:4536
+#: builtin/apply.c:4526
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"
-#: builtin/apply.c:4538
+#: builtin/apply.c:4528
msgid "make sure the patch is applicable to the current index"
msgstr "s'assurer que le patch est applicable sur l'index actuel"
-#: builtin/apply.c:4540
+#: builtin/apply.c:4530
msgid "apply a patch without touching the working tree"
msgstr "appliquer les patch sans toucher à la copie de travail"
-#: builtin/apply.c:4542
+#: builtin/apply.c:4532
msgid "accept a patch that touches outside the working area"
msgstr "accepter un patch qui touche hors de la copie de travail"
-#: builtin/apply.c:4544
+#: builtin/apply.c:4534
msgid "also apply the patch (use with --stat/--summary/--check)"
msgstr "appliquer aussi le patch (à utiliser avec ---stat/--summary/--check)"
-#: builtin/apply.c:4546
+#: builtin/apply.c:4536
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"
-#: builtin/apply.c:4548
+#: builtin/apply.c:4538
msgid "build a temporary index based on embedded index information"
msgstr ""
"construire un index temporaire fondé sur l'information de l'index embarqué"
-#: builtin/apply.c:4550 builtin/checkout-index.c:198 builtin/ls-files.c:412
+#: builtin/apply.c:4541 builtin/checkout-index.c:169 builtin/ls-files.c:425
msgid "paths are separated with NUL character"
msgstr "les chemins sont séparés par un caractère NUL"
-#: builtin/apply.c:4553
+#: builtin/apply.c:4543
msgid "ensure at least <n> lines of context match"
msgstr "s'assurer d'au moins <n> lignes de correspondance de contexte"
-#: builtin/apply.c:4555
+#: builtin/apply.c:4545
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"
-#: builtin/apply.c:4558 builtin/apply.c:4561
+#: builtin/apply.c:4548 builtin/apply.c:4551
msgid "ignore changes in whitespace when finding context"
msgstr "ignorer des modifications d'espace lors de la recherche de contexte"
-#: builtin/apply.c:4564
+#: builtin/apply.c:4554
msgid "apply the patch in reverse"
msgstr "appliquer le patch en sens inverse"
-#: builtin/apply.c:4566
+#: builtin/apply.c:4556
msgid "don't expect at least one line of context"
msgstr "ne pas s'attendre à au moins une ligne de contexte"
-#: builtin/apply.c:4568
+#: builtin/apply.c:4558
msgid "leave the rejected hunks in corresponding *.rej files"
msgstr "laisser les sections rejetées dans les fichiers *.rej correspondants"
-#: builtin/apply.c:4570
+#: builtin/apply.c:4560
msgid "allow overlapping hunks"
msgstr "accepter les recouvrements de sections"
-#: builtin/apply.c:4573
+#: builtin/apply.c:4563
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"
-#: builtin/apply.c:4576
+#: builtin/apply.c:4566
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"
-#: builtin/apply.c:4579
+#: builtin/apply.c:4569
msgid "prepend <root> to all filenames"
msgstr "préfixer tous les noms de fichier avec <root>"
-#: builtin/apply.c:4601
+#: builtin/apply.c:4591
msgid "--3way outside a repository"
msgstr "--3way hors d'un dépôt"
-#: builtin/apply.c:4609
+#: builtin/apply.c:4599
msgid "--index outside a repository"
msgstr "--index hors d'un dépôt"
-#: builtin/apply.c:4612
+#: builtin/apply.c:4602
msgid "--cached outside a repository"
msgstr "--cached hors d'un dépôt"
-#: builtin/apply.c:4631
+#: builtin/apply.c:4621
#, c-format
msgid "can't open patch '%s'"
msgstr "ouverture impossible du patch '%s'"
-#: builtin/apply.c:4645
+#: builtin/apply.c:4635
#, 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"
-#: builtin/apply.c:4651 builtin/apply.c:4661
+#: builtin/apply.c:4641 builtin/apply.c:4651
#, c-format
msgid "%d line adds whitespace errors."
msgid_plural "%d lines add whitespace errors."
@@ -3380,108 +3520,116 @@ msgstr "effectuer 'git bisect next'"
msgid "update BISECT_HEAD instead of checking out the current commit"
msgstr "mettre à jour BISECT_HEAD au lieu d'extraire le commit actuel"
-#: builtin/blame.c:32
+#: builtin/blame.c:33
msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>"
msgstr "git blame [<options>] [<options-de-révision>] [<rev>] [--] <fichier>"
-#: builtin/blame.c:37
+#: builtin/blame.c:38
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:2519
+#: builtin/blame.c:1782
+msgid "Blaming lines"
+msgstr "Assignation de blâme au lignes"
+
+#: builtin/blame.c:2530
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:2520
+#: builtin/blame.c:2531
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:2521
+#: builtin/blame.c:2532
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:2522
+#: builtin/blame.c:2533
msgid "Show work cost statistics"
msgstr "Montrer les statistiques de coût d'activité"
-#: builtin/blame.c:2523
+#: builtin/blame.c:2534
+msgid "Force progress reporting"
+msgstr "Forcer l'affichage de l'état d'avancement"
+
+#: builtin/blame.c:2535
msgid "Show output score for blame entries"
msgstr "Montrer le score de sortie pour les éléments de blâme"
-#: builtin/blame.c:2524
+#: builtin/blame.c:2536
msgid "Show original filename (Default: auto)"
msgstr "Montrer les noms de fichier originaux (Défaut : auto)"
-#: builtin/blame.c:2525
+#: builtin/blame.c:2537
msgid "Show original linenumber (Default: off)"
msgstr "Montrer les numéros de lignes originaux (Défaut : désactivé)"
-#: builtin/blame.c:2526
+#: builtin/blame.c:2538
msgid "Show in a format designed for machine consumption"
msgstr "Afficher dans un format propice à la consommation par machine"
-#: builtin/blame.c:2527
+#: builtin/blame.c:2539
msgid "Show porcelain format with per-line commit information"
msgstr "Afficher en format porcelaine avec l'information de commit par ligne"
-#: builtin/blame.c:2528
+#: builtin/blame.c:2540
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:2529
+#: builtin/blame.c:2541
msgid "Show raw timestamp (Default: off)"
msgstr "Afficher les horodatages bruts (Défaut : désactivé)"
-#: builtin/blame.c:2530
+#: builtin/blame.c:2542
msgid "Show long commit SHA1 (Default: off)"
msgstr "Afficher les longs SHA1 de commits (Défaut : désactivé)"
-#: builtin/blame.c:2531
+#: builtin/blame.c:2543
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:2532
+#: builtin/blame.c:2544
msgid "Show author email instead of name (Default: off)"
msgstr "Afficher l'e-mail de l'auteur au lieu du nom (Défaut : désactivé)"
-#: builtin/blame.c:2533
+#: builtin/blame.c:2545
msgid "Ignore whitespace differences"
msgstr "Ignorer les différences d'espace"
-#: builtin/blame.c:2534
+#: builtin/blame.c:2546
msgid "Spend extra cycles to find better match"
msgstr ""
"Dépenser des cycles supplémentaires pour trouver une meilleure correspondance"
-#: builtin/blame.c:2535
+#: builtin/blame.c:2547
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:2536
+#: builtin/blame.c:2548
msgid "Use <file>'s contents as the final image"
msgstr "Utiliser le contenu de <fichier> comme image finale"
-#: builtin/blame.c:2537 builtin/blame.c:2538
+#: builtin/blame.c:2549 builtin/blame.c:2550
msgid "score"
msgstr "score"
-#: builtin/blame.c:2537
+#: builtin/blame.c:2549
msgid "Find line copies within and across files"
msgstr "Trouver les copies de ligne dans et entre les fichiers"
-#: builtin/blame.c:2538
+#: builtin/blame.c:2550
msgid "Find line movements within and across files"
msgstr "Trouver les mouvements de ligne dans et entre les fichiers"
-#: builtin/blame.c:2539
+#: builtin/blame.c:2551
msgid "n,m"
msgstr "n,m"
-#: builtin/blame.c:2539
+#: builtin/blame.c:2551
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"
@@ -3492,7 +3640,7 @@ msgstr ""
#. takes 22 places, is the longest among various forms of
#. relative timestamps, but your language may need more or
#. fewer display columns.
-#: builtin/blame.c:2620
+#: builtin/blame.c:2640
msgid "4 years, 11 months ago"
msgstr "il y a 10 ans et 11 mois"
@@ -3694,156 +3842,156 @@ msgstr ""
"La branche est renommée, mais la mise à jour du fichier de configuration a "
"échoué"
-#: builtin/branch.c:587
+#: builtin/branch.c:586
#, c-format
msgid "could not write branch description template: %s"
msgstr "impossible d'écrire le modèle de description de branche : %s"
-#: builtin/branch.c:616
+#: builtin/branch.c:615
msgid "Generic options"
msgstr "Options génériques"
-#: builtin/branch.c:618
+#: builtin/branch.c:617
msgid "show hash and subject, give twice for upstream branch"
msgstr "afficher le hachage et le sujet, doublé pour la branche amont"
-#: builtin/branch.c:619
+#: builtin/branch.c:618
msgid "suppress informational messages"
msgstr "supprimer les messages d'information"
-#: builtin/branch.c:620
+#: builtin/branch.c:619
msgid "set up tracking mode (see git-pull(1))"
msgstr "régler le mode de suivi (voir git-pull(1))"
-#: builtin/branch.c:622
+#: builtin/branch.c:621
msgid "change upstream info"
msgstr "modifier l'information amont"
-#: builtin/branch.c:626
+#: builtin/branch.c:625
msgid "use colored output"
msgstr "utiliser la coloration dans la sortie"
-#: builtin/branch.c:627
+#: builtin/branch.c:626
msgid "act on remote-tracking branches"
msgstr "agir sur les branches de suivi distantes"
-#: builtin/branch.c:629 builtin/branch.c:630
+#: builtin/branch.c:628 builtin/branch.c:629
msgid "print only branches that contain the commit"
msgstr "afficher seulement les branches qui contiennent le commit"
-#: builtin/branch.c:633
+#: builtin/branch.c:632
msgid "Specific git-branch actions:"
msgstr "Actions spécifiques à git-branch :"
-#: builtin/branch.c:634
+#: builtin/branch.c:633
msgid "list both remote-tracking and local branches"
msgstr "afficher à la fois les branches de suivi et les branches locales"
-#: builtin/branch.c:636
+#: builtin/branch.c:635
msgid "delete fully merged branch"
msgstr "supprimer une branche totalement fusionnée"
-#: builtin/branch.c:637
+#: builtin/branch.c:636
msgid "delete branch (even if not merged)"
msgstr "supprimer une branche (même non fusionnée)"
-#: builtin/branch.c:638
+#: builtin/branch.c:637
msgid "move/rename a branch and its reflog"
msgstr "déplacer/renommer une branche et son reflog"
-#: builtin/branch.c:639
+#: builtin/branch.c:638
msgid "move/rename a branch, even if target exists"
msgstr "déplacer/renommer une branche, même si la cible existe"
-#: builtin/branch.c:640
+#: builtin/branch.c:639
msgid "list branch names"
msgstr "afficher les noms des branches"
-#: builtin/branch.c:641
+#: builtin/branch.c:640
msgid "create the branch's reflog"
msgstr "créer le reflog de la branche"
-#: builtin/branch.c:643
+#: builtin/branch.c:642
msgid "edit the description for the branch"
msgstr "éditer la description de la branche"
-#: builtin/branch.c:644
+#: builtin/branch.c:643
msgid "force creation, move/rename, deletion"
msgstr "forcer la création, le déplacement/renommage, ou la suppression"
-#: builtin/branch.c:645
+#: builtin/branch.c:644
msgid "print only branches that are merged"
msgstr "afficher seulement les branches qui sont fusionnées"
-#: builtin/branch.c:646
+#: builtin/branch.c:645
msgid "print only branches that are not merged"
msgstr "afficher seulement les branches qui ne sont pas fusionnées"
-#: builtin/branch.c:647
+#: builtin/branch.c:646
msgid "list branches in columns"
msgstr "afficher les branches en colonnes"
-#: builtin/branch.c:648 builtin/for-each-ref.c:38 builtin/tag.c:366
+#: builtin/branch.c:647 builtin/for-each-ref.c:38 builtin/tag.c:366
msgid "key"
msgstr "clé"
-#: builtin/branch.c:649 builtin/for-each-ref.c:39 builtin/tag.c:367
+#: builtin/branch.c:648 builtin/for-each-ref.c:39 builtin/tag.c:367
msgid "field name to sort on"
msgstr "nom du champ servant à trier"
-#: builtin/branch.c:651 builtin/for-each-ref.c:41 builtin/notes.c:398
-#: builtin/notes.c:401 builtin/notes.c:561 builtin/notes.c:564
+#: builtin/branch.c:650 builtin/for-each-ref.c:41 builtin/notes.c:401
+#: builtin/notes.c:404 builtin/notes.c:564 builtin/notes.c:567
#: builtin/tag.c:369
msgid "object"
msgstr "objet"
-#: builtin/branch.c:652
+#: builtin/branch.c:651
msgid "print only branches of the object"
msgstr "afficher seulement les branches de l'objet"
-#: builtin/branch.c:670
+#: builtin/branch.c:669
msgid "Failed to resolve HEAD as a valid ref."
msgstr "Échec de résolution de HEAD comme référence valide."
-#: builtin/branch.c:674 builtin/clone.c:697
+#: builtin/branch.c:673 builtin/clone.c:705
msgid "HEAD not found below refs/heads!"
msgstr "HEAD non trouvée sous refs/heads !"
-#: builtin/branch.c:694
+#: builtin/branch.c:693
msgid "--column and --verbose are incompatible"
msgstr "--column et --verbose sont incompatibles"
-#: builtin/branch.c:705 builtin/branch.c:747
+#: builtin/branch.c:704 builtin/branch.c:746
msgid "branch name required"
msgstr "le nom de branche est requis"
-#: builtin/branch.c:723
+#: builtin/branch.c:722
msgid "Cannot give description to detached HEAD"
msgstr "Impossible de décrire une HEAD détachée"
-#: builtin/branch.c:728
+#: builtin/branch.c:727
msgid "cannot edit description of more than one branch"
msgstr "impossible d'éditer la description de plus d'une branche"
-#: builtin/branch.c:735
+#: builtin/branch.c:734
#, c-format
msgid "No commit on branch '%s' yet."
msgstr "Aucun commit sur la branche '%s'."
-#: builtin/branch.c:738
+#: builtin/branch.c:737
#, c-format
msgid "No branch named '%s'."
msgstr "Aucune branche nommée '%s'."
-#: builtin/branch.c:753
+#: builtin/branch.c:752
msgid "too many branches for a rename operation"
msgstr "trop de branches pour une opération de renommage"
-#: builtin/branch.c:758
+#: builtin/branch.c:757
msgid "too many branches to set new upstream"
msgstr "trop de branches pour spécifier une branche amont"
-#: builtin/branch.c:762
+#: builtin/branch.c:761
#, c-format
msgid ""
"could not set upstream of HEAD to %s when it does not point to any branch."
@@ -3851,41 +3999,41 @@ msgstr ""
"impossible de spécifier une branche amont de HEAD par %s qui ne pointe sur "
"aucune branche."
-#: builtin/branch.c:765 builtin/branch.c:787 builtin/branch.c:808
+#: builtin/branch.c:764 builtin/branch.c:786 builtin/branch.c:807
#, c-format
msgid "no such branch '%s'"
msgstr "pas de branche '%s'"
-#: builtin/branch.c:769
+#: builtin/branch.c:768
#, c-format
msgid "branch '%s' does not exist"
msgstr "la branche '%s' n'existe pas"
-#: builtin/branch.c:781
+#: builtin/branch.c:780
msgid "too many branches to unset upstream"
msgstr "trop de branches pour désactiver un amont"
-#: builtin/branch.c:785
+#: builtin/branch.c:784
msgid "could not unset upstream of HEAD when it does not point to any branch."
msgstr ""
"impossible de désactiver une branche amont de HEAD quand elle ne pointe sur "
"aucune branche."
-#: builtin/branch.c:791
+#: builtin/branch.c:790
#, c-format
msgid "Branch '%s' has no upstream information"
msgstr "La branche '%s' n'a aucune information de branche amont"
-#: builtin/branch.c:805
+#: builtin/branch.c:804
msgid "it does not make sense to create 'HEAD' manually"
msgstr "créer manuellement 'HEAD' n'a pas de sens"
-#: builtin/branch.c:811
+#: builtin/branch.c:810
msgid "-a and -r options to 'git branch' do not make sense with a branch name"
msgstr ""
"les options -a et -r de 'git branch' n'ont pas de sens avec un nom de branche"
-#: builtin/branch.c:814
+#: builtin/branch.c:813
#, c-format
msgid ""
"The --set-upstream flag is deprecated and will be removed. Consider using --"
@@ -3894,7 +4042,7 @@ msgstr ""
"l'option --set-upstream est obsolète et va disparaître. Utilisez plutôt --"
"track ou --set-upstream-to\n"
-#: builtin/branch.c:831
+#: builtin/branch.c:830
#, c-format
msgid ""
"\n"
@@ -3905,12 +4053,12 @@ msgstr ""
"Si vous vouliez que '%s' suive '%s', faîtes ceci :\n"
"\n"
-#: builtin/branch.c:832
+#: builtin/branch.c:831
#, c-format
msgid " git branch -d %s\n"
msgstr " git branch -d %s\n"
-#: builtin/branch.c:833
+#: builtin/branch.c:832
#, c-format
msgid " git branch --set-upstream-to %s\n"
msgstr " git branch --set-upstream-to %s\n"
@@ -4007,7 +4155,7 @@ msgstr "afficher tous les attributs associés au fichier"
msgid "use .gitattributes only from the index"
msgstr "utiliser .gitattributes seulement depuis l'index"
-#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:96
+#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:97
msgid "read file names from stdin"
msgstr "lire les noms de fichier depuis l'entrée standard"
@@ -4016,7 +4164,7 @@ 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:18 builtin/checkout.c:1134 builtin/gc.c:325
+#: builtin/check-ignore.c:18 builtin/checkout.c:1136 builtin/gc.c:325
msgid "suppress progress reporting"
msgstr "supprimer l'état d'avancement"
@@ -4069,51 +4217,55 @@ msgstr "impossible d'analyser le contact : %s"
msgid "no contacts specified"
msgstr "aucun contact spécifié"
-#: builtin/checkout-index.c:126
+#: builtin/checkout-index.c:127
msgid "git checkout-index [<options>] [--] [<file>...]"
msgstr "git checkout-index [<options>] [--] [<fichier>...]"
-#: builtin/checkout-index.c:188
+#: builtin/checkout-index.c:144
+msgid "stage should be between 1 and 3 or all"
+msgstr "stage doit valoir entre 1 et 3, ou all"
+
+#: builtin/checkout-index.c:160
msgid "check out all files in the index"
msgstr "extraire tous les fichiers présents dans l'index"
-#: builtin/checkout-index.c:189
+#: builtin/checkout-index.c:161
msgid "force overwrite of existing files"
msgstr "forcer l'écrasement des fichiers existants"
-#: builtin/checkout-index.c:191
+#: builtin/checkout-index.c:163
msgid "no warning for existing files and files not in index"
msgstr ""
"pas d'avertissement pour les fichiers existants et les fichiers absents de "
"l'index"
-#: builtin/checkout-index.c:193
+#: builtin/checkout-index.c:165
msgid "don't checkout new files"
msgstr "ne pas extraire les nouveaux fichiers"
-#: builtin/checkout-index.c:195
+#: builtin/checkout-index.c:167
msgid "update stat information in the index file"
msgstr "mettre à jour l'information de stat dans le fichier d'index"
-#: builtin/checkout-index.c:201
+#: builtin/checkout-index.c:171
msgid "read list of paths from the standard input"
msgstr "lire la liste des chemins depuis l'entrée standard"
-#: builtin/checkout-index.c:203
+#: builtin/checkout-index.c:173
msgid "write the content to temporary files"
msgstr "écrire le contenu dans des fichiers temporaires"
-#: builtin/checkout-index.c:204 builtin/column.c:30
+#: builtin/checkout-index.c:174 builtin/column.c:30
+#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
#: builtin/submodule--helper.c:172 builtin/submodule--helper.c:175
-#: builtin/submodule--helper.c:178 builtin/submodule--helper.c:181
msgid "string"
msgstr "chaîne"
-#: builtin/checkout-index.c:205
+#: builtin/checkout-index.c:175
msgid "when creating files, prepend <string>"
msgstr "lors de la création de fichiers, préfixer par <chaîne>"
-#: builtin/checkout-index.c:208
+#: builtin/checkout-index.c:177
msgid "copy out the files from named stage"
msgstr "copier les fichiers depuis l'index nommé"
@@ -4195,37 +4347,41 @@ msgstr "Impossible de faire un reflog pour '%s' : %s\n"
msgid "HEAD is now at"
msgstr "HEAD est maintenant sur"
-#: builtin/checkout.c:668
+#: builtin/checkout.c:665 builtin/clone.c:659
+msgid "unable to update HEAD"
+msgstr "impossible de mettre à jour HEAD"
+
+#: builtin/checkout.c:669
#, c-format
msgid "Reset branch '%s'\n"
msgstr "Remise à zéro de la branche '%s'\n"
-#: builtin/checkout.c:671
+#: builtin/checkout.c:672
#, c-format
msgid "Already on '%s'\n"
msgstr "Déjà sur '%s'\n"
-#: builtin/checkout.c:675
+#: builtin/checkout.c:676
#, c-format
msgid "Switched to and reset branch '%s'\n"
msgstr "Basculement et remise à zéro de la branche '%s'\n"
-#: builtin/checkout.c:677 builtin/checkout.c:1066
+#: builtin/checkout.c:678 builtin/checkout.c:1068
#, c-format
msgid "Switched to a new branch '%s'\n"
msgstr "Basculement sur la nouvelle branche '%s'\n"
-#: builtin/checkout.c:679
+#: builtin/checkout.c:680
#, c-format
msgid "Switched to branch '%s'\n"
msgstr "Basculement sur la branche '%s'\n"
-#: builtin/checkout.c:731
+#: builtin/checkout.c:732
#, c-format
msgid " ... and %d more.\n"
msgstr " ... et %d en plus.\n"
-#: builtin/checkout.c:737
+#: builtin/checkout.c:738
#, c-format
msgid ""
"Warning: you are leaving %d commit behind, not connected to\n"
@@ -4248,7 +4404,7 @@ msgstr[1] ""
"\n"
"%s\n"
-#: builtin/checkout.c:756
+#: builtin/checkout.c:757
#, c-format
msgid ""
"If you want to keep it by creating a new branch, this may be a good time\n"
@@ -4277,151 +4433,151 @@ msgstr[1] ""
"git branch <nouvelle-branche> %s\n"
"\n"
-#: builtin/checkout.c:792
+#: builtin/checkout.c:793
msgid "internal error in revision walk"
msgstr "erreur interne lors du parcours des révisions"
-#: builtin/checkout.c:796
+#: builtin/checkout.c:797
msgid "Previous HEAD position was"
msgstr "La position précédente de HEAD était sur"
-#: builtin/checkout.c:823 builtin/checkout.c:1061
+#: builtin/checkout.c:824 builtin/checkout.c:1063
msgid "You are on a branch yet to be born"
msgstr "Vous êtes sur une branche qui doit encore naître"
-#: builtin/checkout.c:968
+#: builtin/checkout.c:969
#, c-format
msgid "only one reference expected, %d given."
msgstr "une seule référence attendue, %d fournies."
-#: builtin/checkout.c:1007 builtin/worktree.c:213
+#: builtin/checkout.c:1009 builtin/worktree.c:211
#, c-format
msgid "invalid reference: %s"
msgstr "référence invalide : %s"
-#: builtin/checkout.c:1036
+#: builtin/checkout.c:1038
#, c-format
msgid "reference is not a tree: %s"
msgstr "la référence n'est pas un arbre : %s"
-#: builtin/checkout.c:1075
+#: builtin/checkout.c:1077
msgid "paths cannot be used with switching branches"
msgstr "impossible d'utiliser des chemins avec un basculement de branches"
-#: builtin/checkout.c:1078 builtin/checkout.c:1082
+#: builtin/checkout.c:1080 builtin/checkout.c:1084
#, c-format
msgid "'%s' cannot be used with switching branches"
msgstr "'%s' ne peut pas être utilisé avec un basculement de branches"
-#: builtin/checkout.c:1086 builtin/checkout.c:1089 builtin/checkout.c:1094
-#: builtin/checkout.c:1097
+#: builtin/checkout.c:1088 builtin/checkout.c:1091 builtin/checkout.c:1096
+#: builtin/checkout.c:1099
#, c-format
msgid "'%s' cannot be used with '%s'"
msgstr "'%s' ne peut pas être utilisé avec '%s'"
-#: builtin/checkout.c:1102
+#: builtin/checkout.c:1104
#, c-format
msgid "Cannot switch branch to a non-commit '%s'"
msgstr "Impossible de basculer de branche vers '%s' qui n'est pas un commit"
-#: builtin/checkout.c:1135 builtin/checkout.c:1137 builtin/clone.c:83
-#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:320
-#: builtin/worktree.c:322
+#: builtin/checkout.c:1137 builtin/checkout.c:1139 builtin/clone.c:84
+#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:318
+#: builtin/worktree.c:320
msgid "branch"
msgstr "branche"
-#: builtin/checkout.c:1136
+#: builtin/checkout.c:1138
msgid "create and checkout a new branch"
msgstr "créer et extraire une nouvelle branche"
-#: builtin/checkout.c:1138
+#: builtin/checkout.c:1140
msgid "create/reset and checkout a branch"
msgstr "créer/réinitialiser et extraire une branche"
-#: builtin/checkout.c:1139
+#: builtin/checkout.c:1141
msgid "create reflog for new branch"
msgstr "créer un reflog pour une nouvelle branche"
-#: builtin/checkout.c:1140
+#: builtin/checkout.c:1142
msgid "detach the HEAD at named commit"
msgstr "détacher la HEAD à la validation nommée"
-#: builtin/checkout.c:1141
+#: builtin/checkout.c:1143
msgid "set upstream info for new branch"
msgstr "paramétrer les coordonnées de branche amont pour une nouvelle branche"
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
msgid "new-branch"
msgstr "nouvelle branche"
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
msgid "new unparented branch"
msgstr "nouvelle branche sans parent"
-#: builtin/checkout.c:1144
+#: builtin/checkout.c:1146
msgid "checkout our version for unmerged files"
msgstr "extraire notre version pour les fichiers non fusionnés"
-#: builtin/checkout.c:1146
+#: builtin/checkout.c:1148
msgid "checkout their version for unmerged files"
msgstr "extraire leur version pour les fichiers non fusionnés"
-#: builtin/checkout.c:1148
+#: builtin/checkout.c:1150
msgid "force checkout (throw away local modifications)"
msgstr "forcer l'extraction (laisser tomber les modifications locales)"
-#: builtin/checkout.c:1149
+#: builtin/checkout.c:1151
msgid "perform a 3-way merge with the new branch"
msgstr "effectuer une fusion à 3 points avec la nouvelle branche"
-#: builtin/checkout.c:1150 builtin/merge.c:227
+#: builtin/checkout.c:1152 builtin/merge.c:227
msgid "update ignored files (default)"
msgstr "mettre à jour les fichiers ignorés (par défaut)"
-#: builtin/checkout.c:1151 builtin/log.c:1266 parse-options.h:250
+#: builtin/checkout.c:1153 builtin/log.c:1269 parse-options.h:250
msgid "style"
msgstr "style"
-#: builtin/checkout.c:1152
+#: builtin/checkout.c:1154
msgid "conflict style (merge or diff3)"
msgstr "style de conflit (fusion ou diff3)"
-#: builtin/checkout.c:1155
+#: builtin/checkout.c:1157
msgid "do not limit pathspecs to sparse entries only"
msgstr "ne pas limiter les spécificateurs de chemins aux seuls éléments creux"
-#: builtin/checkout.c:1157
+#: builtin/checkout.c:1159
msgid "second guess 'git checkout <no-such-branch>'"
msgstr "réessayer d'interpréter 'git checkout <branche-inexistante>'"
-#: builtin/checkout.c:1159
+#: builtin/checkout.c:1161
msgid "do not check if another worktree is holding the given ref"
msgstr ""
"ne pas vérifier si une autre copie de travail contient le référence fournie"
-#: builtin/checkout.c:1160 builtin/clone.c:57 builtin/fetch.c:112
-#: builtin/merge.c:224 builtin/pull.c:109 builtin/push.c:558
+#: builtin/checkout.c:1162 builtin/clone.c:58 builtin/fetch.c:116
+#: builtin/merge.c:224 builtin/pull.c:113 builtin/push.c:526
#: builtin/send-pack.c:168
msgid "force progress reporting"
msgstr "forcer l'affichage de l'état d'avancement"
-#: builtin/checkout.c:1191
+#: builtin/checkout.c:1193
msgid "-b, -B and --orphan are mutually exclusive"
msgstr "-b, -B et --orphan sont mutuellement exclusifs"
-#: builtin/checkout.c:1208
+#: builtin/checkout.c:1210
msgid "--track needs a branch name"
msgstr "--track requiert un nom de branche"
-#: builtin/checkout.c:1213
+#: builtin/checkout.c:1215
msgid "Missing branch name; try -b"
msgstr "Nom de branche manquant ; essayez -b"
-#: builtin/checkout.c:1249
+#: builtin/checkout.c:1251
msgid "invalid path specification"
msgstr "spécification de chemin invalide"
-#: builtin/checkout.c:1256
+#: builtin/checkout.c:1258
#, c-format
msgid ""
"Cannot update paths and switch to branch '%s' at the same time.\n"
@@ -4431,12 +4587,12 @@ msgstr ""
"en même temps.\n"
"Souhaitiez-vous extraire '%s' qui ne peut être résolu comme commit ?"
-#: builtin/checkout.c:1261
+#: builtin/checkout.c:1263
#, c-format
msgid "git checkout: --detach does not take a path argument '%s'"
msgstr "git checkout: --detach n'accepte pas un argument de chemin '%s'"
-#: builtin/checkout.c:1265
+#: builtin/checkout.c:1267
msgid ""
"git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
"checking out of the index."
@@ -4475,7 +4631,7 @@ msgstr "Ignorerait le dépôt %s\n"
msgid "failed to remove %s"
msgstr "échec de la suppression de %s"
-#: builtin/clean.c:315
+#: builtin/clean.c:291
msgid ""
"Prompt help:\n"
"1 - select a numbered item\n"
@@ -4487,7 +4643,7 @@ msgstr ""
"foo - sélectionner un élément par un préfixe unique\n"
" - (vide) ne rien sélectionner"
-#: builtin/clean.c:319
+#: builtin/clean.c:295
msgid ""
"Prompt help:\n"
"1 - select a single item\n"
@@ -4507,36 +4663,36 @@ msgstr ""
"* - choisir tous les éléments\n"
" - (vide) terminer la sélection"
-#: builtin/clean.c:535
+#: builtin/clean.c:511
#, c-format
msgid "Huh (%s)?"
msgstr "Hein (%s) ?"
-#: builtin/clean.c:677
+#: builtin/clean.c:653
#, c-format
msgid "Input ignore patterns>> "
msgstr "Entrez les motifs à ignorer>> "
-#: builtin/clean.c:714
+#: builtin/clean.c:690
#, c-format
msgid "WARNING: Cannot find items matched by: %s"
msgstr "ATTENTION : Impossible de trouver les éléments correspondant à : %s"
-#: builtin/clean.c:735
+#: builtin/clean.c:711
msgid "Select items to delete"
msgstr "Sélectionner les éléments à supprimer"
#. TRANSLATORS: Make sure to keep [y/N] as is
-#: builtin/clean.c:776
+#: builtin/clean.c:752
#, c-format
msgid "Remove %s [y/N]? "
msgstr "Supprimer %s [y/N] ? "
-#: builtin/clean.c:801
+#: builtin/clean.c:777
msgid "Bye."
msgstr "Au revoir."
-#: builtin/clean.c:809
+#: builtin/clean.c:785
msgid ""
"clean - start cleaning\n"
"filter by pattern - exclude items from deletion\n"
@@ -4554,62 +4710,62 @@ msgstr ""
"help - cet écran\n"
"? - aide pour la sélection en ligne"
-#: builtin/clean.c:836
+#: builtin/clean.c:812
msgid "*** Commands ***"
msgstr "*** Commandes ***"
-#: builtin/clean.c:837
+#: builtin/clean.c:813
msgid "What now"
msgstr "Et maintenant ?"
-#: builtin/clean.c:845
+#: builtin/clean.c:821
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:862
+#: builtin/clean.c:838
msgid "No more files to clean, exiting."
msgstr "Plus de fichier à nettoyer, sortie."
-#: builtin/clean.c:893
+#: builtin/clean.c:869
msgid "do not print names of files removed"
msgstr "ne pas afficher les noms des fichiers supprimés"
-#: builtin/clean.c:895
+#: builtin/clean.c:871
msgid "force"
msgstr "forcer"
-#: builtin/clean.c:896
+#: builtin/clean.c:872
msgid "interactive cleaning"
msgstr "nettoyage interactif"
-#: builtin/clean.c:898
+#: builtin/clean.c:874
msgid "remove whole directories"
msgstr "supprimer les répertoires entiers"
-#: builtin/clean.c:899 builtin/describe.c:407 builtin/grep.c:709
-#: builtin/ls-files.c:443 builtin/name-rev.c:307 builtin/show-ref.c:182
+#: builtin/clean.c:875 builtin/describe.c:407 builtin/grep.c:722
+#: builtin/ls-files.c:456 builtin/name-rev.c:307 builtin/show-ref.c:182
msgid "pattern"
msgstr "motif"
-#: builtin/clean.c:900
+#: builtin/clean.c:876
msgid "add <pattern> to ignore rules"
msgstr "ajouter <motif> aux règles ignore"
-#: builtin/clean.c:901
+#: builtin/clean.c:877
msgid "remove ignored files, too"
msgstr "supprimer les fichiers ignorés, aussi"
-#: builtin/clean.c:903
+#: builtin/clean.c:879
msgid "remove only ignored files"
msgstr "supprimer seulement les fichiers ignorés"
-#: builtin/clean.c:921
+#: builtin/clean.c:897
msgid "-x and -X cannot be used together"
msgstr "-x et -X ne peuvent pas être utilisés ensemble"
-#: builtin/clean.c:925
+#: builtin/clean.c:901
msgid ""
"clean.requireForce set to true and neither -i, -n, nor -f given; refusing to "
"clean"
@@ -4617,7 +4773,7 @@ msgstr ""
"clean.requireForce positionné à true et ni -i, -n ou -f fourni ; refus de "
"nettoyer"
-#: builtin/clean.c:928
+#: builtin/clean.c:904
msgid ""
"clean.requireForce defaults to true and neither -i, -n, nor -f given; "
"refusing to clean"
@@ -4629,147 +4785,163 @@ msgstr ""
msgid "git clone [<options>] [--] <repo> [<dir>]"
msgstr "git clone [<options>] [--] <dépôt> [<répertoire>]"
-#: builtin/clone.c:59
+#: builtin/clone.c:60
msgid "don't create a checkout"
msgstr "ne pas créer d'extraction"
-#: builtin/clone.c:60 builtin/clone.c:62 builtin/init-db.c:469
+#: builtin/clone.c:61 builtin/clone.c:63 builtin/init-db.c:469
msgid "create a bare repository"
msgstr "créer un dépôt nu"
-#: builtin/clone.c:64
+#: builtin/clone.c:65
msgid "create a mirror repository (implies bare)"
msgstr "créer un dépôt miroir (implique dépôt nu)"
-#: builtin/clone.c:66
+#: builtin/clone.c:67
msgid "to clone from a local repository"
msgstr "pour cloner depuis un dépôt local"
-#: builtin/clone.c:68
+#: builtin/clone.c:69
msgid "don't use local hardlinks, always copy"
msgstr "ne pas utiliser de liens durs locaux, toujours copier"
-#: builtin/clone.c:70
+#: builtin/clone.c:71
msgid "setup as shared repository"
msgstr "régler comme dépôt partagé"
-#: builtin/clone.c:72 builtin/clone.c:74
+#: builtin/clone.c:73 builtin/clone.c:75
msgid "initialize submodules in the clone"
msgstr "initialiser les sous-modules dans le clone"
-#: builtin/clone.c:75 builtin/init-db.c:466
+#: builtin/clone.c:76 builtin/init-db.c:466
msgid "template-directory"
msgstr "répertoire-modèle"
-#: builtin/clone.c:76 builtin/init-db.c:467
+#: builtin/clone.c:77 builtin/init-db.c:467
msgid "directory from which templates will be used"
msgstr "répertoire depuis lequel les modèles vont être utilisés"
-#: builtin/clone.c:78 builtin/submodule--helper.c:179
+#: builtin/clone.c:79 builtin/submodule--helper.c:173
msgid "reference repository"
msgstr "dépôt de référence"
-#: builtin/clone.c:80
+#: builtin/clone.c:81
msgid "use --reference only while cloning"
msgstr "utiliser seulement --reference pour cloner"
-#: builtin/clone.c:81 builtin/column.c:26 builtin/merge-file.c:44
+#: builtin/clone.c:82 builtin/column.c:26 builtin/merge-file.c:44
msgid "name"
msgstr "nom"
-#: builtin/clone.c:82
+#: builtin/clone.c:83
msgid "use <name> instead of 'origin' to track upstream"
msgstr "utiliser <nom> au lieu de 'origin' pour suivre la branche amont"
-#: builtin/clone.c:84
+#: builtin/clone.c:85
msgid "checkout <branch> instead of the remote's HEAD"
msgstr "extraire <branche> au lieu de la HEAD du répertoire distant"
-#: builtin/clone.c:86
+#: builtin/clone.c:87
msgid "path to git-upload-pack on the remote"
msgstr "chemin vers git-upload-pack sur le serveur distant"
-#: builtin/clone.c:87 builtin/fetch.c:113 builtin/grep.c:654 builtin/pull.c:186
+#: builtin/clone.c:88 builtin/fetch.c:117 builtin/grep.c:665 builtin/pull.c:193
msgid "depth"
msgstr "profondeur"
-#: builtin/clone.c:88
+#: builtin/clone.c:89
msgid "create a shallow clone of that depth"
msgstr "créer un clone superficiel de cette profondeur"
-#: builtin/clone.c:90
+#: builtin/clone.c:91
msgid "clone only one branch, HEAD or --branch"
msgstr "cloner seulement une branche, HEAD ou --branch"
-#: builtin/clone.c:91 builtin/init-db.c:475
+#: builtin/clone.c:92 builtin/init-db.c:475
msgid "gitdir"
msgstr "gitdir"
-#: builtin/clone.c:92 builtin/init-db.c:476
+#: builtin/clone.c:93 builtin/init-db.c:476
msgid "separate git dir from working tree"
msgstr "séparer le répertoire git de la copie de travail"
-#: builtin/clone.c:93
+#: builtin/clone.c:94
msgid "key=value"
msgstr "clé=valeur"
-#: builtin/clone.c:94
+#: builtin/clone.c:95
msgid "set config inside the new repository"
msgstr "régler la configuration dans le nouveau dépôt"
-#: builtin/clone.c:300
+#: builtin/clone.c:96 builtin/fetch.c:131 builtin/push.c:536
+msgid "use IPv4 addresses only"
+msgstr "n'utiliser que des adresses IPv4"
+
+#: builtin/clone.c:98 builtin/fetch.c:133 builtin/push.c:538
+msgid "use IPv6 addresses only"
+msgstr "n'utiliser que des adresses IPv6"
+
+#: builtin/clone.c:239
+msgid ""
+"No directory name could be guessed.\n"
+"Please specify a directory on the command line"
+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:305
#, 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é"
+"encore supporté."
-#: builtin/clone.c:302
+#: builtin/clone.c:307
#, 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."
-#: builtin/clone.c:307
+#: builtin/clone.c:312
#, c-format
msgid "reference repository '%s' is shallow"
msgstr "le dépôt de référence '%s' est superficiel"
-#: builtin/clone.c:310
+#: builtin/clone.c:315
#, c-format
msgid "reference repository '%s' is grafted"
msgstr "le dépôt de référence '%s' est greffé"
-#: builtin/clone.c:375 builtin/diff.c:84
+#: builtin/clone.c:380 builtin/diff.c:84
#, c-format
msgid "failed to stat '%s'"
msgstr "échec du stat de '%s'"
-#: builtin/clone.c:377
+#: builtin/clone.c:382
#, c-format
msgid "%s exists and is not a directory"
msgstr "%s existe et n'est pas un répertoire"
-#: builtin/clone.c:391
+#: builtin/clone.c:396
#, c-format
msgid "failed to stat %s\n"
msgstr "échec du stat de %s\n"
-#: builtin/clone.c:413
+#: builtin/clone.c:418
#, c-format
msgid "failed to create link '%s'"
msgstr "échec de la création du lien '%s'"
-#: builtin/clone.c:417
+#: builtin/clone.c:422
#, c-format
msgid "failed to copy file to '%s'"
msgstr "échec de la copie vers '%s'"
-#: builtin/clone.c:442 builtin/clone.c:626
+#: builtin/clone.c:447 builtin/clone.c:631
#, c-format
msgid "done.\n"
msgstr "fait.\n"
-#: builtin/clone.c:454
+#: builtin/clone.c:459
msgid ""
"Clone succeeded, but checkout failed.\n"
"You can inspect what was checked out with 'git status'\n"
@@ -4779,121 +4951,130 @@ msgstr ""
"Vous pouvez inspecter ce qui a été extrait avec 'git status'\n"
"et réessayer l'extraction avec 'git checkout -f HEAD'\n"
-#: builtin/clone.c:531
+#: builtin/clone.c:536
#, c-format
msgid "Could not find remote branch %s to clone."
msgstr "Impossible de trouver la branche distante '%s' à cloner."
-#: builtin/clone.c:621
+#: builtin/clone.c:626
#, c-format
msgid "Checking connectivity... "
msgstr "Vérification de la connectivité... "
-#: builtin/clone.c:624
+#: builtin/clone.c:629
msgid "remote did not send all necessary objects"
msgstr "le serveur distant n'a pas envoyé tous les objets nécessaires"
-#: builtin/clone.c:688
+#: builtin/clone.c:647
+#, c-format
+msgid "unable to update %s"
+msgstr "impossible de mettre à jour %s"
+
+#: builtin/clone.c:696
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:719
+#: builtin/clone.c:727
msgid "unable to checkout working tree"
msgstr "impossible d'extraire la copie de travail"
-#: builtin/clone.c:808
+#: builtin/clone.c:753
+msgid "unable to write parameters to config file"
+msgstr "impossible d'écrire les paramètres dans le fichier de configuration"
+
+#: builtin/clone.c:816
msgid "cannot repack to clean up"
msgstr "impossible de remballer pour nettoyer"
-#: builtin/clone.c:810
+#: builtin/clone.c:818
msgid "cannot unlink temporary alternates file"
msgstr "impossible de unlinker le fichier temporaire alternates"
-#: builtin/clone.c:842
+#: builtin/clone.c:850
msgid "Too many arguments."
msgstr "Trop d'arguments."
-#: builtin/clone.c:846
+#: builtin/clone.c:854
msgid "You must specify a repository to clone."
msgstr "Vous devez spécifier un dépôt à cloner."
-#: builtin/clone.c:857
+#: builtin/clone.c:865
#, c-format
msgid "--bare and --origin %s options are incompatible."
msgstr "les options --bare et --origin %s sont incompatibles."
-#: builtin/clone.c:860
+#: builtin/clone.c:868
msgid "--bare and --separate-git-dir are incompatible."
msgstr "--bare et --separate-git-dir sont incompatibles."
-#: builtin/clone.c:873
+#: builtin/clone.c:881
#, c-format
msgid "repository '%s' does not exist"
msgstr "le dépôt '%s' n'existe pas"
-#: builtin/clone.c:879 builtin/fetch.c:1166
+#: builtin/clone.c:887 builtin/fetch.c:1174
#, c-format
msgid "depth %s is not a positive number"
msgstr "la profondeur %s n'est pas un entier positif"
-#: builtin/clone.c:889
+#: builtin/clone.c:897
#, 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:899
+#: builtin/clone.c:907
#, c-format
msgid "working tree '%s' already exists."
msgstr "la copie de travail '%s' existe déjà."
-#: builtin/clone.c:914 builtin/clone.c:925 builtin/submodule--helper.c:224
-#: builtin/worktree.c:221 builtin/worktree.c:248
+#: builtin/clone.c:922 builtin/clone.c:933 builtin/submodule--helper.c:218
+#: builtin/worktree.c:219 builtin/worktree.c:246
#, 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:917
+#: builtin/clone.c:925
#, 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:935
+#: builtin/clone.c:943
#, c-format
msgid "Cloning into bare repository '%s'...\n"
msgstr "Clonage dans le dépôt nu '%s'\n"
-#: builtin/clone.c:937
+#: builtin/clone.c:945
#, c-format
msgid "Cloning into '%s'...\n"
msgstr "Clonage dans '%s'...\n"
-#: builtin/clone.c:975
+#: builtin/clone.c:984
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:978
+#: builtin/clone.c:987
msgid "source repository is shallow, ignoring --local"
msgstr "le dépôt source est superficiel, option --local ignorée"
-#: builtin/clone.c:983
+#: builtin/clone.c:992
msgid "--local is ignored"
msgstr "--local est ignoré"
-#: builtin/clone.c:987
+#: builtin/clone.c:996
#, c-format
msgid "Don't know how to clone %s"
msgstr "Je ne sais pas cloner %s"
-#: builtin/clone.c:1036 builtin/clone.c:1044
+#: builtin/clone.c:1045 builtin/clone.c:1053
#, 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:1047
+#: builtin/clone.c:1056
msgid "You appear to have cloned an empty repository."
msgstr "Vous semblez avoir cloné un dépôt vide."
@@ -5108,7 +5289,7 @@ msgstr ""
msgid "could not lookup commit %s"
msgstr "impossible de rechercher le commit %s"
-#: builtin/commit.c:702 builtin/shortlog.c:273
+#: builtin/commit.c:702 builtin/shortlog.c:285
#, c-format
msgid "(reading log message from standard input)\n"
msgstr "(lecture du message de journal depuis l'entrée standard)\n"
@@ -5296,8 +5477,8 @@ msgstr "afficher le statut avec concision"
msgid "show branch information"
msgstr "afficher l'information de branche"
-#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:544
-#: builtin/worktree.c:423
+#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:512
+#: builtin/worktree.c:430
msgid "machine-readable output"
msgstr "sortie pour traitement automatique"
@@ -5388,8 +5569,8 @@ msgstr "date"
msgid "override date for commit"
msgstr "remplacer la date pour la validation"
-#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:392
-#: builtin/notes.c:555 builtin/tag.c:349
+#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:395
+#: builtin/notes.c:558 builtin/tag.c:349
msgid "message"
msgstr "message"
@@ -5425,7 +5606,7 @@ 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:1588 builtin/log.c:1216 builtin/revert.c:86
+#: builtin/commit.c:1588 builtin/log.c:1219 builtin/revert.c:86
msgid "add Signed-off-by:"
msgstr "ajouter une entrée Signed-off-by :"
@@ -5449,7 +5630,7 @@ msgstr "comment éliminer les espaces et les commentaires # du message"
msgid "include status in commit message template"
msgstr "inclure le statut dans le modèle de message de validation"
-#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:156
+#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:160
#: builtin/revert.c:93
msgid "GPG sign commit"
msgstr "signer la validation avec GPG"
@@ -5540,140 +5721,146 @@ msgstr ""
"new_index. Vérifiez que le disque n'est pas plein ou que le quota\n"
"n'a pas été dépassé, puis lancez \"git reset HEAD\" pour réparer."
-#: builtin/config.c:8
+#: builtin/config.c:9
msgid "git config [<options>]"
msgstr "git config [<options>]"
-#: builtin/config.c:54
+#: builtin/config.c:56
msgid "Config file location"
msgstr "Emplacement du fichier de configuration"
-#: builtin/config.c:55
+#: builtin/config.c:57
msgid "use global config file"
msgstr "utiliser les fichier de configuration global"
-#: builtin/config.c:56
+#: builtin/config.c:58
msgid "use system config file"
msgstr "utiliser le fichier de configuration du système"
-#: builtin/config.c:57
+#: builtin/config.c:59
msgid "use repository config file"
msgstr "utiliser le fichier de configuration du dépôt"
-#: builtin/config.c:58
+#: builtin/config.c:60
msgid "use given config file"
msgstr "utiliser le fichier de configuration spécifié"
-#: builtin/config.c:59
+#: builtin/config.c:61
msgid "blob-id"
msgstr "blob-id"
-#: builtin/config.c:59
+#: builtin/config.c:61
msgid "read config from given blob object"
msgstr "lire la configuration depuis l'objet blob fourni"
-#: builtin/config.c:60
+#: builtin/config.c:62
msgid "Action"
msgstr "Action"
-#: builtin/config.c:61
+#: builtin/config.c:63
msgid "get value: name [value-regex]"
msgstr "obtenir la valeur : nom [regex-de-valeur]"
-#: builtin/config.c:62
+#: builtin/config.c:64
msgid "get all values: key [value-regex]"
msgstr "obtenir toutes les valeurs : clé [regex-de-valeur]"
-#: builtin/config.c:63
+#: builtin/config.c:65
msgid "get values for regexp: name-regex [value-regex]"
msgstr "obtenir les valeur pour la regexp : regex-de-nom [regex-de-valeur]"
-#: builtin/config.c:64
+#: builtin/config.c:66
msgid "get value specific for the URL: section[.var] URL"
msgstr "obtenir la valeur spécifique pour l'URL : section[.var] URL"
-#: builtin/config.c:65
+#: builtin/config.c:67
msgid "replace all matching variables: name value [value_regex]"
msgstr ""
"remplacer toutes les variables correspondant : nom valeur [regex-de-valeur]"
-#: builtin/config.c:66
+#: builtin/config.c:68
msgid "add a new variable: name value"
msgstr "ajouter une nouvelle variable : nom valeur"
-#: builtin/config.c:67
+#: builtin/config.c:69
msgid "remove a variable: name [value-regex]"
msgstr "supprimer une variable : nom [regex-de-valeur]"
-#: builtin/config.c:68
+#: builtin/config.c:70
msgid "remove all matches: name [value-regex]"
msgstr "supprimer toutes les correspondances nom [regex-de-valeur]"
-#: builtin/config.c:69
+#: builtin/config.c:71
msgid "rename section: old-name new-name"
msgstr "renommer une section : ancien-nom nouveau-nom"
-#: builtin/config.c:70
+#: builtin/config.c:72
msgid "remove a section: name"
msgstr "supprimer une section : nom"
-#: builtin/config.c:71
+#: builtin/config.c:73
msgid "list all"
msgstr "afficher tout"
-#: builtin/config.c:72
+#: builtin/config.c:74
msgid "open an editor"
msgstr "ouvrir un éditeur"
-#: builtin/config.c:73
+#: builtin/config.c:75
msgid "find the color configured: slot [default]"
msgstr "trouver la couleur configurée : slot [par défaut]"
-#: builtin/config.c:74
+#: builtin/config.c:76
msgid "find the color setting: slot [stdout-is-tty]"
msgstr "trouver le réglage de la couleur : slot [stdout-est-tty]"
-#: builtin/config.c:75
+#: builtin/config.c:77
msgid "Type"
msgstr "Type"
-#: builtin/config.c:76
+#: builtin/config.c:78
msgid "value is \"true\" or \"false\""
msgstr "la valeur est \"true\" (vrai) ou \"false\" (faux)"
-#: builtin/config.c:77
+#: builtin/config.c:79
msgid "value is decimal number"
msgstr "la valeur est un nombre décimal"
-#: builtin/config.c:78
+#: builtin/config.c:80
msgid "value is --bool or --int"
msgstr "la valeur est --bool ou --int"
-#: builtin/config.c:79
+#: builtin/config.c:81
msgid "value is a path (file or directory name)"
msgstr "la valeur est un chemin (vers un fichier ou un répertoire)"
-#: builtin/config.c:80
+#: builtin/config.c:82
msgid "Other"
msgstr "Autre"
-#: builtin/config.c:81
+#: builtin/config.c:83
msgid "terminate values with NUL byte"
msgstr "terminer les valeurs avec un caractère NUL"
-#: builtin/config.c:82
+#: builtin/config.c:84
msgid "show variable names only"
msgstr "n'afficher que les noms de variable"
-#: builtin/config.c:83
+#: builtin/config.c:85
msgid "respect include directives on lookup"
msgstr "respecter les directives d'inclusion lors de la recherche"
-#: builtin/config.c:303
+#: builtin/config.c:86
+msgid "show origin of config (file, standard input, blob, command line)"
+msgstr ""
+"afficher l'origine de la configuration (fichier, entrée standard, blob, "
+"ligne de commande)"
+
+#: builtin/config.c:328
msgid "unable to parse default color value"
msgstr "impossible de lire la valeur de couleur par défaut"
-#: builtin/config.c:441
+#: builtin/config.c:469
#, c-format
msgid ""
"# This is Git's per-user configuration file.\n"
@@ -5688,7 +5875,7 @@ msgstr ""
"#\tname = %s\n"
"#\temail = %s\n"
-#: builtin/config.c:575
+#: builtin/config.c:611
#, c-format
msgid "cannot create configuration file %s"
msgstr "création impossible du fichier de configuration '%s'"
@@ -5941,164 +6128,168 @@ msgstr "git fetch --multiple [<options>] [(<dépôt> | <groupe>)...]"
msgid "git fetch --all [<options>]"
msgstr "git fetch --all [<options>]"
-#: builtin/fetch.c:90 builtin/pull.c:162
+#: builtin/fetch.c:92 builtin/pull.c:166
msgid "fetch from all remotes"
msgstr "récupérer depuis tous le dépôts distants"
-#: builtin/fetch.c:92 builtin/pull.c:165
+#: builtin/fetch.c:94 builtin/pull.c:169
msgid "append to .git/FETCH_HEAD instead of overwriting"
msgstr "ajouter à .git/FETCH_HEAD au lieu de l'écraser"
-#: builtin/fetch.c:94 builtin/pull.c:168
+#: builtin/fetch.c:96 builtin/pull.c:172
msgid "path to upload pack on remote end"
msgstr "chemin vers lequel télécharger le paquet sur le poste distant"
-#: builtin/fetch.c:95 builtin/pull.c:170
+#: builtin/fetch.c:97 builtin/pull.c:174
msgid "force overwrite of local branch"
msgstr "forcer l'écrasement de la branche locale"
-#: builtin/fetch.c:97
+#: builtin/fetch.c:99
msgid "fetch from multiple remotes"
msgstr "récupérer depuis plusieurs dépôts distants"
-#: builtin/fetch.c:99 builtin/pull.c:172
+#: builtin/fetch.c:101 builtin/pull.c:176
msgid "fetch all tags and associated objects"
msgstr "récupérer toutes les étiquettes et leurs objets associés"
-#: builtin/fetch.c:101
+#: builtin/fetch.c:103
msgid "do not fetch all tags (--no-tags)"
msgstr "ne pas récupérer toutes les étiquettes (--no-tags)"
-#: builtin/fetch.c:103 builtin/pull.c:175
+#: builtin/fetch.c:105
+msgid "number of submodules fetched in parallel"
+msgstr "nombre de sous-modules récupérés en parallèle"
+
+#: builtin/fetch.c:107 builtin/pull.c:179
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:104 builtin/pull.c:178
+#: builtin/fetch.c:108 builtin/pull.c:182
msgid "on-demand"
msgstr "à la demande"
-#: builtin/fetch.c:105 builtin/pull.c:179
+#: builtin/fetch.c:109 builtin/pull.c:183
msgid "control recursive fetching of submodules"
msgstr "contrôler la récupération récursive dans les sous-modules"
-#: builtin/fetch.c:109 builtin/pull.c:184
+#: builtin/fetch.c:113 builtin/pull.c:191
msgid "keep downloaded pack"
msgstr "conserver le paquet téléchargé"
-#: builtin/fetch.c:111
+#: builtin/fetch.c:115
msgid "allow updating of HEAD ref"
msgstr "permettre la mise à jour de la référence HEAD"
-#: builtin/fetch.c:114 builtin/pull.c:187
+#: builtin/fetch.c:118 builtin/pull.c:194
msgid "deepen history of shallow clone"
msgstr "approfondir l'historique d'un clone superficiel"
-#: builtin/fetch.c:116 builtin/pull.c:190
+#: builtin/fetch.c:120 builtin/pull.c:197
msgid "convert to a complete repository"
msgstr "convertir en un dépôt complet"
-#: builtin/fetch.c:118 builtin/log.c:1233
+#: builtin/fetch.c:122 builtin/log.c:1236
msgid "dir"
msgstr "dir"
-#: builtin/fetch.c:119
+#: builtin/fetch.c:123
msgid "prepend this to submodule path output"
msgstr "préfixer ceci à la sortie du chemin du sous-module"
-#: builtin/fetch.c:122
+#: builtin/fetch.c:126
msgid "default mode for recursion"
msgstr "mode par défaut pour la récursion"
-#: builtin/fetch.c:124 builtin/pull.c:193
+#: builtin/fetch.c:128 builtin/pull.c:200
msgid "accept refs that update .git/shallow"
msgstr "accepter les références qui mettent à jour .git/shallow"
-#: builtin/fetch.c:125 builtin/pull.c:195
+#: builtin/fetch.c:129 builtin/pull.c:202
msgid "refmap"
msgstr "correspondance de référence"
-#: builtin/fetch.c:126 builtin/pull.c:196
+#: builtin/fetch.c:130 builtin/pull.c:203
msgid "specify fetch refmap"
msgstr "spécifier une correspondance de référence pour la récupération"
-#: builtin/fetch.c:378
+#: builtin/fetch.c:386
msgid "Couldn't find remote ref HEAD"
msgstr "impossible de trouver la référence HEAD distante"
-#: builtin/fetch.c:458
+#: builtin/fetch.c:466
#, c-format
msgid "object %s not found"
msgstr "objet %s non trouvé"
-#: builtin/fetch.c:463
+#: builtin/fetch.c:471
msgid "[up to date]"
msgstr "[à jour]"
-#: builtin/fetch.c:477
+#: builtin/fetch.c:485
#, c-format
msgid "! %-*s %-*s -> %s (can't fetch in current branch)"
msgstr "! %-*s %-*s -> %s (impossible de récupérer la branche actuelle)"
-#: builtin/fetch.c:478 builtin/fetch.c:566
+#: builtin/fetch.c:486 builtin/fetch.c:574
msgid "[rejected]"
msgstr "[rejeté]"
-#: builtin/fetch.c:489
+#: builtin/fetch.c:497
msgid "[tag update]"
msgstr "[mise à jour de l'étiquette]"
-#: builtin/fetch.c:491 builtin/fetch.c:526 builtin/fetch.c:544
+#: builtin/fetch.c:499 builtin/fetch.c:534 builtin/fetch.c:552
msgid " (unable to update local ref)"
msgstr " (impossible de mettre à jour la référence locale)"
-#: builtin/fetch.c:509
+#: builtin/fetch.c:517
msgid "[new tag]"
msgstr "[nouvelle étiquette]"
-#: builtin/fetch.c:512
+#: builtin/fetch.c:520
msgid "[new branch]"
msgstr "[nouvelle branche]"
-#: builtin/fetch.c:515
+#: builtin/fetch.c:523
msgid "[new ref]"
msgstr "[nouvelle référence]"
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
msgid "unable to update local ref"
msgstr "impossible de mettre à jour la référence locale"
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
msgid "forced update"
msgstr "mise à jour forcée"
-#: builtin/fetch.c:568
+#: builtin/fetch.c:576
msgid "(non-fast-forward)"
msgstr "(pas d'avance rapide)"
-#: builtin/fetch.c:602 builtin/fetch.c:843
+#: builtin/fetch.c:610 builtin/fetch.c:851
#, c-format
msgid "cannot open %s: %s\n"
msgstr "impossible d'ouvrir %s : %s\n"
-#: builtin/fetch.c:611
+#: builtin/fetch.c:619
#, 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:629
+#: builtin/fetch.c:637
#, 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:716 builtin/fetch.c:808
+#: builtin/fetch.c:724 builtin/fetch.c:816
#, c-format
msgid "From %.*s\n"
msgstr "Depuis %.*s\n"
-#: builtin/fetch.c:727
+#: builtin/fetch.c:735
#, c-format
msgid ""
"some local refs could not be updated; try running\n"
@@ -6107,55 +6298,55 @@ 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:779
+#: builtin/fetch.c:787
#, c-format
msgid " (%s will become dangling)"
msgstr " (%s sera en suspens)"
-#: builtin/fetch.c:780
+#: builtin/fetch.c:788
#, c-format
msgid " (%s has become dangling)"
msgstr " (%s est devenu en suspens)"
-#: builtin/fetch.c:812
+#: builtin/fetch.c:820
msgid "[deleted]"
msgstr "[supprimé]"
-#: builtin/fetch.c:813 builtin/remote.c:1040
+#: builtin/fetch.c:821 builtin/remote.c:1025
msgid "(none)"
msgstr "(aucun(e))"
-#: builtin/fetch.c:833
+#: builtin/fetch.c:841
#, 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:852
+#: builtin/fetch.c:860
#, 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:855
+#: builtin/fetch.c:863
#, c-format
msgid "Option \"%s\" is ignored for %s\n"
msgstr "L'option \"%s\" est ignorée pour %s\n"
-#: builtin/fetch.c:911
+#: builtin/fetch.c:920
#, c-format
msgid "Don't know how to fetch from %s"
msgstr "Je ne sais pas récupérer depuis %s"
-#: builtin/fetch.c:1072
+#: builtin/fetch.c:1080
#, c-format
msgid "Fetching %s\n"
msgstr "Récupération de %s\n"
-#: builtin/fetch.c:1074 builtin/remote.c:96
+#: builtin/fetch.c:1082 builtin/remote.c:96
#, c-format
msgid "Could not fetch %s"
msgstr "Impossible de récupérer %s"
-#: builtin/fetch.c:1092
+#: builtin/fetch.c:1100
msgid ""
"No remote repository specified. Please, specify either a URL or a\n"
"remote name from which new revisions should be fetched."
@@ -6163,32 +6354,32 @@ 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:1115
+#: builtin/fetch.c:1123
msgid "You need to specify a tag name."
msgstr "Vous devez spécifier un nom d'étiquette."
-#: builtin/fetch.c:1157
+#: builtin/fetch.c:1165
msgid "--depth and --unshallow cannot be used together"
msgstr "--depth et --unshallow ne peuvent pas être utilisés ensemble"
-#: builtin/fetch.c:1159
+#: builtin/fetch.c:1167
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:1179
+#: builtin/fetch.c:1187
msgid "fetch --all does not take a repository argument"
msgstr "fetch --all n'accepte pas d'argument de dépôt"
-#: builtin/fetch.c:1181
+#: builtin/fetch.c:1189
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:1192
+#: builtin/fetch.c:1200
#, c-format
msgid "No such remote or remote group: %s"
msgstr "distant ou groupe distant inexistant : %s"
-#: builtin/fetch.c:1200
+#: builtin/fetch.c:1208
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 "
@@ -6421,233 +6612,247 @@ msgstr ""
msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]"
msgstr "git grep [<options>] [-e] <motif> [<révision>...] [[--] <chemin>...]"
-#: builtin/grep.c:218
+#: builtin/grep.c:219
#, c-format
msgid "grep: failed to create thread: %s"
msgstr "grep : échec de création du fil: %s"
-#: builtin/grep.c:441 builtin/grep.c:476
+#: builtin/grep.c:277
+#, c-format
+msgid "invalid number of threads specified (%d) for %s"
+msgstr "nombre de fils spécifié invalide (%d) pour %s"
+
+#: builtin/grep.c:452 builtin/grep.c:487
#, c-format
msgid "unable to read tree (%s)"
msgstr "impossible de lire l'arbre (%s)"
-#: builtin/grep.c:491
+#: builtin/grep.c:502
#, 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:547
+#: builtin/grep.c:558
#, c-format
msgid "switch `%c' expects a numerical value"
msgstr "l'option '%c' attend un valeur numérique"
-#: builtin/grep.c:564
+#: builtin/grep.c:575
#, c-format
msgid "cannot open '%s'"
msgstr "impossible d'ouvrir '%s'"
-#: builtin/grep.c:633
+#: builtin/grep.c:644
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:635
+#: builtin/grep.c:646
msgid "find in contents not managed by git"
msgstr "rechercher dans les contenus non gérés par git"
-#: builtin/grep.c:637
+#: builtin/grep.c:648
msgid "search in both tracked and untracked files"
msgstr "rechercher dans les fichiers suivis et non-suivis"
-#: builtin/grep.c:639
+#: builtin/grep.c:650
msgid "ignore files specified via '.gitignore'"
msgstr "ignorer les fichiers spécifiés via '.gitignore'"
-#: builtin/grep.c:642
+#: builtin/grep.c:653
msgid "show non-matching lines"
msgstr "afficher les lignes qui ne correspondent pas"
-#: builtin/grep.c:644
+#: builtin/grep.c:655
msgid "case insensitive matching"
msgstr "correspondance insensible à la casse"
-#: builtin/grep.c:646
+#: builtin/grep.c:657
msgid "match patterns only at word boundaries"
msgstr "rechercher les motifs aux séparateurs de mots"
-#: builtin/grep.c:648
+#: builtin/grep.c:659
msgid "process binary files as text"
msgstr "traiter les fichiers binaires comme texte"
-#: builtin/grep.c:650
+#: builtin/grep.c:661
msgid "don't match patterns in binary files"
msgstr "ne pas chercher les motifs dans les fichiers binaires"
-#: builtin/grep.c:653
+#: builtin/grep.c:664
msgid "process binary files with textconv filters"
msgstr "traiter les fichiers binaires avec les filtres textconv"
-#: builtin/grep.c:655
+#: builtin/grep.c:666
msgid "descend at most <depth> levels"
msgstr "descendre au plus de <profondeur> dans l'arborescence"
-#: builtin/grep.c:659
+#: builtin/grep.c:670
msgid "use extended POSIX regular expressions"
msgstr "utiliser des expressions régulières étendues POSIX"
-#: builtin/grep.c:662
+#: builtin/grep.c:673
msgid "use basic POSIX regular expressions (default)"
msgstr "utiliser des expressions régulières basiques POSIX (par défaut)"
-#: builtin/grep.c:665
+#: builtin/grep.c:676
msgid "interpret patterns as fixed strings"
msgstr "interpréter les motifs comme de chaînes fixes"
-#: builtin/grep.c:668
+#: builtin/grep.c:679
msgid "use Perl-compatible regular expressions"
msgstr "utiliser des expressions régulières compatibles avec Perl"
-#: builtin/grep.c:671
+#: builtin/grep.c:682
msgid "show line numbers"
msgstr "afficher les numéros de ligne"
-#: builtin/grep.c:672
+#: builtin/grep.c:683
msgid "don't show filenames"
msgstr "ne pas pas afficher les noms de fichier"
-#: builtin/grep.c:673
+#: builtin/grep.c:684
msgid "show filenames"
msgstr "afficher les noms de fichier"
-#: builtin/grep.c:675
+#: builtin/grep.c:686
msgid "show filenames relative to top directory"
msgstr "afficher les noms de fichiers relativement au répertoire de base"
-#: builtin/grep.c:677
+#: builtin/grep.c:688
msgid "show only filenames instead of matching lines"
msgstr "n'afficher que les noms de fichiers au lieu des lignes correspondant"
-#: builtin/grep.c:679
+#: builtin/grep.c:690
msgid "synonym for --files-with-matches"
msgstr "synonyme pour --files-with-matches"
-#: builtin/grep.c:682
+#: builtin/grep.c:693
msgid "show only the names of files without match"
msgstr "n'afficher que les noms des fichiers sans correspondance"
-#: builtin/grep.c:684
+#: builtin/grep.c:695
msgid "print NUL after filenames"
msgstr "imprimer une caractère NUL après le noms de fichier"
-#: builtin/grep.c:686
+#: builtin/grep.c:697
msgid "show the number of matches instead of matching lines"
msgstr "afficher le nombre de correspondances au lieu des lignes correspondant"
-#: builtin/grep.c:687
+#: builtin/grep.c:698
msgid "highlight matches"
msgstr "mettre en évidence les correspondances"
-#: builtin/grep.c:689
+#: builtin/grep.c:700
msgid "print empty line between matches from different files"
msgstr ""
"imprimer une ligne vide entre les correspondances de fichiers différents"
-#: builtin/grep.c:691
+#: builtin/grep.c:702
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:694
+#: builtin/grep.c:705
msgid "show <n> context lines before and after matches"
msgstr "afficher <n> lignes de contexte avant et après les correspondances"
-#: builtin/grep.c:697
+#: builtin/grep.c:708
msgid "show <n> context lines before matches"
msgstr "afficher <n> lignes de contexte avant les correspondances"
-#: builtin/grep.c:699
+#: builtin/grep.c:710
msgid "show <n> context lines after matches"
msgstr "afficher <n> lignes de contexte après les correspondances"
-#: builtin/grep.c:700
+#: builtin/grep.c:712
+msgid "use <n> worker threads"
+msgstr "utiliser <n> fils de travail"
+
+#: builtin/grep.c:713
msgid "shortcut for -C NUM"
msgstr "raccourci pour -C NUM"
-#: builtin/grep.c:703
+#: builtin/grep.c:716
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:705
+#: builtin/grep.c:718
msgid "show the surrounding function"
msgstr "afficher la fonction contenante"
-#: builtin/grep.c:708
+#: builtin/grep.c:721
msgid "read patterns from file"
msgstr "lire les motifs depuis fichier"
-#: builtin/grep.c:710
+#: builtin/grep.c:723
msgid "match <pattern>"
msgstr "rechercher <motif>"
-#: builtin/grep.c:712
+#: builtin/grep.c:725
msgid "combine patterns specified with -e"
msgstr "combiner les motifs spécifiés par -e"
-#: builtin/grep.c:724
+#: builtin/grep.c:737
msgid "indicate hit with exit status without output"
msgstr ""
"indiquer des correspondances avec le code de sortie mais sans rien afficher"
-#: builtin/grep.c:726
+#: builtin/grep.c:739
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:728
+#: builtin/grep.c:741
msgid "show parse tree for grep expression"
msgstr "afficher l'arbre d'analyse pour le motif grep"
-#: builtin/grep.c:732
+#: builtin/grep.c:745
msgid "pager"
msgstr "pagineur"
-#: builtin/grep.c:732
+#: builtin/grep.c:745
msgid "show matching files in the pager"
msgstr "afficher les fichiers correspondant dans le pagineur"
-#: builtin/grep.c:735
+#: builtin/grep.c:748
msgid "allow calling of grep(1) (ignored by this build)"
msgstr "permettre l'appel de grep(1) (ignoré par ce build)"
-#: builtin/grep.c:793
+#: builtin/grep.c:811
msgid "no pattern given."
msgstr "aucun motif fourni."
-#: builtin/grep.c:851
+#: builtin/grep.c:843 builtin/index-pack.c:1475
+#, c-format
+msgid "invalid number of threads specified (%d)"
+msgstr "nombre de fils spécifié invalide (%d)"
+
+#: builtin/grep.c:873
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:877
+#: builtin/grep.c:899
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:882
+#: builtin/grep.c:904
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:885
+#: builtin/grep.c:907
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:893
+#: builtin/grep.c:915
msgid "both --cached and trees are given."
msgstr "--cached et des arbres sont fournis en même temps."
-#: builtin/hash-object.c:80
+#: builtin/hash-object.c:81
msgid ""
"git hash-object [-t <type>] [-w] [--path=<file> | --no-filters] [--stdin] "
"[--] <file>..."
@@ -6655,38 +6860,38 @@ msgstr ""
"git hash-object [-t <type>] [-w] [--path=<fichier> | --no-filters] [--stdin] "
"[--] <fichier>..."
-#: builtin/hash-object.c:81
+#: builtin/hash-object.c:82
msgid "git hash-object --stdin-paths"
msgstr "git hash-object --stdin-paths"
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
msgid "type"
msgstr "type"
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
msgid "object type"
msgstr "type d'objet"
-#: builtin/hash-object.c:93
+#: builtin/hash-object.c:94
msgid "write the object into the object database"
msgstr "écrire l'objet dans la base de donnée d'objets"
-#: builtin/hash-object.c:95
+#: builtin/hash-object.c:96
msgid "read the object from stdin"
msgstr "lire l'objet depuis l'entrée standard"
-#: builtin/hash-object.c:97
+#: builtin/hash-object.c:98
msgid "store file as is without filters"
msgstr "stocker le fichier tel quel sans filtrage"
-#: builtin/hash-object.c:98
+#: builtin/hash-object.c:99
msgid ""
"just hash any random garbage to create corrupt objects for debugging Git"
msgstr ""
"juste hasher n'importe quel contenu pour créer des objets corrompus pour "
"debugger Git"
-#: builtin/hash-object.c:99
+#: builtin/hash-object.c:100
msgid "process file as it were from this path"
msgstr "traiter le fichier comme s'il venait de ce chemin"
@@ -6737,7 +6942,7 @@ msgstr "la version d'emacsclient '%d' est trop ancienne (<22)."
msgid "failed to exec '%s': %s"
msgstr "échec de l'exécution de '%s' : %s"
-#: builtin/help.c:208
+#: builtin/help.c:205
#, c-format
msgid ""
"'%s': path for unsupported man viewer.\n"
@@ -6746,7 +6951,7 @@ msgstr ""
"'%s' : chemin pour l'utilitaire de visualisation de manuel non supporté.\n"
"Veuillez utiliser plutôt 'man.<outil>.cmd'."
-#: builtin/help.c:220
+#: builtin/help.c:217
#, c-format
msgid ""
"'%s': cmd for supported man viewer.\n"
@@ -6755,62 +6960,62 @@ msgstr ""
"'%s' : chemin pour l'utilitaire de visualisation de manuel supporté.\n"
"Veuillez utiliser plutôt 'man.<outil>.cmd'."
-#: builtin/help.c:337
+#: builtin/help.c:334
#, c-format
msgid "'%s': unknown man viewer."
msgstr "'%s' : visualiseur de manuel inconnu."
-#: builtin/help.c:354
+#: builtin/help.c:351
msgid "no man viewer handled the request"
msgstr "aucun visualiseur de manuel n'a pris en charge la demande"
-#: builtin/help.c:362
+#: builtin/help.c:359
msgid "no info viewer handled the request"
msgstr "aucun visualiseur de 'info' n'a pris en charge la demande"
-#: builtin/help.c:411
+#: builtin/help.c:408
msgid "Defining attributes per path"
msgstr "Définition des attributs par chemin"
-#: builtin/help.c:412
+#: builtin/help.c:409
msgid "Everyday Git With 20 Commands Or So"
msgstr "Git de tous les jours avec à peu près 20 commandes"
-#: builtin/help.c:413
+#: builtin/help.c:410
msgid "A Git glossary"
msgstr "Un glossaire Git"
-#: builtin/help.c:414
+#: builtin/help.c:411
msgid "Specifies intentionally untracked files to ignore"
msgstr "Spécifie les fichiers non-suivis à ignorer intentionnellement"
-#: builtin/help.c:415
+#: builtin/help.c:412
msgid "Defining submodule properties"
msgstr "Définition des propriétés de sous-module"
-#: builtin/help.c:416
+#: builtin/help.c:413
msgid "Specifying revisions and ranges for Git"
msgstr "Spécification des révisions et portées pour Git"
-#: builtin/help.c:417
+#: builtin/help.c:414
msgid "A tutorial introduction to Git (for version 1.5.1 or newer)"
msgstr ""
"Une introduction pratique à Git (pour les versions 1.5.1 et supérieures)"
-#: builtin/help.c:418
+#: builtin/help.c:415
msgid "An overview of recommended workflows with Git"
msgstr "Un aperçu des flux de travail recommandés avec Git"
-#: builtin/help.c:430
+#: builtin/help.c:427
msgid "The common Git guides are:\n"
msgstr "Les guides Git populaires sont : \n"
-#: builtin/help.c:451 builtin/help.c:468
+#: builtin/help.c:448 builtin/help.c:465
#, c-format
msgid "usage: %s%s"
msgstr "usage : %s%s"
-#: builtin/help.c:484
+#: builtin/help.c:481
#, c-format
msgid "`git %s' is aliased to `%s'"
msgstr "`git %s\" est un alias de `%s'"
@@ -7047,60 +7252,55 @@ msgstr "impossible de stocker le fichier d'index"
msgid "bad pack.indexversion=%<PRIu32>"
msgstr "mauvais pack.indexversion=%<PRIu32>"
-#: builtin/index-pack.c:1475
-#, c-format
-msgid "invalid number of threads specified (%d)"
-msgstr "nombre de fils spécifié invalide (%d)"
-
-#: builtin/index-pack.c:1479 builtin/index-pack.c:1663
+#: builtin/index-pack.c:1479 builtin/index-pack.c:1664
#, c-format
msgid "no threads support, ignoring %s"
msgstr "pas de support des fils, ignore %s"
-#: builtin/index-pack.c:1537
+#: builtin/index-pack.c:1538
#, c-format
msgid "Cannot open existing pack file '%s'"
msgstr "Impossible d'ouvrir le fichier paquet existant '%s'"
-#: builtin/index-pack.c:1539
+#: builtin/index-pack.c:1540
#, c-format
msgid "Cannot open existing pack idx file for '%s'"
msgstr "Impossible d'ouvrir le fichier paquet d'index existant pour '%s'"
-#: builtin/index-pack.c:1586
+#: builtin/index-pack.c:1587
#, c-format
msgid "non delta: %d object"
msgid_plural "non delta: %d objects"
msgstr[0] "pas un delta : %d objet"
msgstr[1] "pas un delta : %d objets"
-#: builtin/index-pack.c:1593
+#: builtin/index-pack.c:1594
#, c-format
msgid "chain length = %d: %lu object"
msgid_plural "chain length = %d: %lu objects"
msgstr[0] "longueur chaînée = %d : %lu objet"
msgstr[1] "longueur chaînée = %d : %lu objets"
-#: builtin/index-pack.c:1623
+#: builtin/index-pack.c:1624
msgid "Cannot come back to cwd"
msgstr "Impossible de revenir au répertoire de travail courant"
-#: builtin/index-pack.c:1675 builtin/index-pack.c:1678
-#: builtin/index-pack.c:1690 builtin/index-pack.c:1694
+#: builtin/index-pack.c:1676 builtin/index-pack.c:1679
+#: builtin/index-pack.c:1691 builtin/index-pack.c:1695
#, c-format
msgid "bad %s"
msgstr "mauvais %s"
-#: builtin/index-pack.c:1708
+#: builtin/index-pack.c:1709
msgid "--fix-thin cannot be used without --stdin"
msgstr "--fix-thin ne peut pas être utilisé sans --stdin"
-#: builtin/index-pack.c:1712 builtin/index-pack.c:1721
+#: builtin/index-pack.c:1713 builtin/index-pack.c:1722
#, c-format
msgid "packfile name '%s' does not end with '.pack'"
msgstr "le nom de fichier paquet '%s' ne se termine pas par '.pack'"
-#: builtin/index-pack.c:1729
+#: builtin/index-pack.c:1730
msgid "--verify with no packfile name given"
msgstr "--verify sans nom de fichier paquet donné"
@@ -7227,24 +7427,32 @@ msgstr "Impossible d'accéder à l'arbre de travail '%s'"
#: builtin/interpret-trailers.c:15
msgid ""
-"git interpret-trailers [--trim-empty] [(--trailer <token>[(=|:)<value>])...] "
-"[<file>...]"
+"git interpret-trailers [--in-place] [--trim-empty] [(--trailer "
+"<token>[(=|:)<value>])...] [<file>...]"
msgstr ""
-"git interpret-trailers [--trim-empty] [(--trailer "
+"git interpret-trailers [--in-place] [--trim-empty] [(--trailer "
"<symbole>[(=|:)<valeur>])...] [<fichier>...]"
-#: builtin/interpret-trailers.c:25
+#: builtin/interpret-trailers.c:26
+msgid "edit files in place"
+msgstr "éditer les fichiers sur place"
+
+#: builtin/interpret-trailers.c:27
msgid "trim empty trailers"
msgstr "éliminer les lignes de fin vides"
-#: builtin/interpret-trailers.c:26
+#: builtin/interpret-trailers.c:28
msgid "trailer"
msgstr "ligne de fin"
-#: builtin/interpret-trailers.c:27
+#: builtin/interpret-trailers.c:29
msgid "trailer(s) to add"
msgstr "ligne(s) de fin à ajouter"
+#: builtin/interpret-trailers.c:42
+msgid "no input file given for in-place editing"
+msgstr "aucun fichier en entrée pour l'éditon sur place"
+
#: builtin/log.c:43
msgid "git log [<options>] [<revision-range>] [[--] <path>...]"
msgstr "git log [<options>] [<plage de révisions>] [[--] <chemin>...]"
@@ -7300,226 +7508,226 @@ msgstr "Impossible de lire l'objet %s"
msgid "Unknown type: %d"
msgstr "Type inconnu : %d"
-#: builtin/log.c:714
+#: builtin/log.c:715
msgid "format.headers without value"
msgstr "format.headers sans valeur"
-#: builtin/log.c:798
+#: builtin/log.c:801
msgid "name of output directory is too long"
msgstr "le nom du répertoire de sortie est trop long"
-#: builtin/log.c:813
+#: builtin/log.c:816
#, c-format
msgid "Cannot open patch file %s"
msgstr "Impossible d'ouvrir le fichier correctif %s"
-#: builtin/log.c:827
+#: builtin/log.c:830
msgid "Need exactly one range."
msgstr "Exactement une plage nécessaire."
-#: builtin/log.c:837
+#: builtin/log.c:840
msgid "Not a range."
msgstr "Ceci n'est pas une plage."
-#: builtin/log.c:943
+#: builtin/log.c:946
msgid "Cover letter needs email format"
msgstr "La lettre de motivation doit être au format e-mail"
-#: builtin/log.c:1022
+#: builtin/log.c:1025
#, c-format
msgid "insane in-reply-to: %s"
msgstr "in-reply-to aberrant : %s"
-#: builtin/log.c:1050
+#: builtin/log.c:1053
msgid "git format-patch [<options>] [<since> | <revision-range>]"
msgstr "git format-patch [<options>] [<depuis> | <plage de révisions>]"
-#: builtin/log.c:1095
+#: builtin/log.c:1098
msgid "Two output directories?"
msgstr "Deux répertoires de sortie ?"
-#: builtin/log.c:1211
+#: builtin/log.c:1214
msgid "use [PATCH n/m] even with a single patch"
msgstr "utiliser [PATCH n/m] même avec un patch unique"
-#: builtin/log.c:1214
+#: builtin/log.c:1217
msgid "use [PATCH] even with multiple patches"
msgstr "utiliser [PATCH] même avec des patchs multiples"
-#: builtin/log.c:1218
+#: builtin/log.c:1221
msgid "print patches to standard out"
msgstr "afficher les patchs sur la sortie standard"
-#: builtin/log.c:1220
+#: builtin/log.c:1223
msgid "generate a cover letter"
msgstr "générer une lettre de motivation"
-#: builtin/log.c:1222
+#: builtin/log.c:1225
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:1223
+#: builtin/log.c:1226
msgid "sfx"
msgstr "sfx"
-#: builtin/log.c:1224
+#: builtin/log.c:1227
msgid "use <sfx> instead of '.patch'"
msgstr "utiliser <sfx> au lieu de '.patch'"
-#: builtin/log.c:1226
+#: builtin/log.c:1229
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:1228
+#: builtin/log.c:1231
msgid "mark the series as Nth re-roll"
msgstr "marquer la série comme une Nième réédition"
-#: builtin/log.c:1230
+#: builtin/log.c:1233
msgid "Use [<prefix>] instead of [PATCH]"
msgstr "utiliser [<préfixe>] au lieu de [PATCH]"
-#: builtin/log.c:1233
+#: builtin/log.c:1236
msgid "store resulting files in <dir>"
msgstr "stocker les fichiers résultats dans <répertoire>"
-#: builtin/log.c:1236
+#: builtin/log.c:1239
msgid "don't strip/add [PATCH]"
msgstr "ne pas retirer/ajouter [PATCH]"
-#: builtin/log.c:1239
+#: builtin/log.c:1242
msgid "don't output binary diffs"
msgstr "ne pas imprimer les diffs binaires"
-#: builtin/log.c:1241
+#: builtin/log.c:1244
msgid "output all-zero hash in From header"
msgstr "écrire une empreinte à zéro dans l'entête From"
-#: builtin/log.c:1243
+#: builtin/log.c:1246
msgid "don't include a patch matching a commit upstream"
msgstr "ne pas inclure un patch correspondant à un commit amont"
-#: builtin/log.c:1245
+#: builtin/log.c:1248
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:1247
+#: builtin/log.c:1250
msgid "Messaging"
msgstr "Communication"
-#: builtin/log.c:1248
+#: builtin/log.c:1251
msgid "header"
msgstr "en-tête"
-#: builtin/log.c:1249
+#: builtin/log.c:1252
msgid "add email header"
msgstr "ajouter l'en-tête d'e-mail"
-#: builtin/log.c:1250 builtin/log.c:1252
+#: builtin/log.c:1253 builtin/log.c:1255
msgid "email"
msgstr "e-mail"
-#: builtin/log.c:1250
+#: builtin/log.c:1253
msgid "add To: header"
msgstr "ajouter l'en-tête \"To:\""
-#: builtin/log.c:1252
+#: builtin/log.c:1255
msgid "add Cc: header"
msgstr "ajouter l'en-tête \"Cc:\""
-#: builtin/log.c:1254
+#: builtin/log.c:1257
msgid "ident"
msgstr "ident"
-#: builtin/log.c:1255
+#: builtin/log.c:1258
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:1257
+#: builtin/log.c:1260
msgid "message-id"
msgstr "id-message"
-#: builtin/log.c:1258
+#: builtin/log.c:1261
msgid "make first mail a reply to <message-id>"
msgstr "répondre dans le premier message à <id-message>"
-#: builtin/log.c:1259 builtin/log.c:1262
+#: builtin/log.c:1262 builtin/log.c:1265
msgid "boundary"
msgstr "limite"
-#: builtin/log.c:1260
+#: builtin/log.c:1263
msgid "attach the patch"
msgstr "attacher le patch"
-#: builtin/log.c:1263
+#: builtin/log.c:1266
msgid "inline the patch"
msgstr "patch à l'intérieur"
-#: builtin/log.c:1267
+#: builtin/log.c:1270
msgid "enable message threading, styles: shallow, deep"
msgstr ""
"activer l'enfilage de message, styles : shallow (superficiel), deep (profond)"
-#: builtin/log.c:1269
+#: builtin/log.c:1272
msgid "signature"
msgstr "signature"
-#: builtin/log.c:1270
+#: builtin/log.c:1273
msgid "add a signature"
msgstr "ajouter une signature"
-#: builtin/log.c:1272
+#: builtin/log.c:1275
msgid "add a signature from a file"
msgstr "ajouter une signature depuis un fichier"
-#: builtin/log.c:1273
+#: builtin/log.c:1276
msgid "don't print the patch filenames"
msgstr "ne pas afficher les noms de fichiers des patchs"
-#: builtin/log.c:1362
+#: builtin/log.c:1365
msgid "-n and -k are mutually exclusive."
msgstr "-n et -k sont mutuellement exclusifs."
-#: builtin/log.c:1364
+#: builtin/log.c:1367
msgid "--subject-prefix and -k are mutually exclusive."
msgstr "--subject-prefix et -k sont mutuellement exclusifs."
-#: builtin/log.c:1372
+#: builtin/log.c:1375
msgid "--name-only does not make sense"
msgstr "--name-only n'a pas de sens"
-#: builtin/log.c:1374
+#: builtin/log.c:1377
msgid "--name-status does not make sense"
msgstr "--name-status n'a pas de sens"
-#: builtin/log.c:1376
+#: builtin/log.c:1379
msgid "--check does not make sense"
msgstr "--check n'a pas de sens"
-#: builtin/log.c:1401
+#: builtin/log.c:1407
msgid "standard output, or directory, which one?"
msgstr "sortie standard, ou répertoire, lequel ?"
-#: builtin/log.c:1403
+#: builtin/log.c:1409
#, c-format
msgid "Could not create directory '%s'"
msgstr "Impossible de créer le répertoire '%s'"
-#: builtin/log.c:1500
+#: builtin/log.c:1506
#, c-format
msgid "unable to read signature file '%s'"
msgstr "lecture du fichier de signature '%s' impossible"
-#: builtin/log.c:1563
+#: builtin/log.c:1569
msgid "Failed to create output files"
msgstr "Échec de création des fichiers en sortie"
-#: builtin/log.c:1611
+#: builtin/log.c:1617
msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
msgstr "git cherry [-v] [<branche_amont> [<head> [<limite>]]]"
-#: builtin/log.c:1665
+#: builtin/log.c:1671
#, c-format
msgid ""
"Could not find a tracked remote branch, please specify <upstream> manually.\n"
@@ -7527,106 +7735,158 @@ msgstr ""
"Impossible de trouver une branche distante suivie, merci de spécifier "
"<branche_amont> manuellement.\n"
-#: builtin/log.c:1676 builtin/log.c:1678 builtin/log.c:1690
+#: builtin/log.c:1682 builtin/log.c:1684 builtin/log.c:1696
#, c-format
msgid "Unknown commit %s"
msgstr "Commit inconnu %s"
-#: builtin/ls-files.c:358
+#: builtin/ls-files.c:378
msgid "git ls-files [<options>] [<file>...]"
msgstr "git ls-files [<options>] [<fichier>...]"
-#: builtin/ls-files.c:415
+#: builtin/ls-files.c:427
msgid "identify the file status with tags"
msgstr "identifier le statut de fichier avec les étiquettes"
-#: builtin/ls-files.c:417
+#: builtin/ls-files.c:429
msgid "use lowercase letters for 'assume unchanged' files"
msgstr "utiliser des minuscules pour les fichier 'assumés inchangés'"
-#: builtin/ls-files.c:419
+#: builtin/ls-files.c:431
msgid "show cached files in the output (default)"
msgstr "afficher les fichiers mis en cache dans la sortie (défaut)"
-#: builtin/ls-files.c:421
+#: builtin/ls-files.c:433
msgid "show deleted files in the output"
msgstr "afficher les fichiers supprimés dans la sortie"
-#: builtin/ls-files.c:423
+#: builtin/ls-files.c:435
msgid "show modified files in the output"
msgstr "afficher les fichiers modifiés dans la sortie"
-#: builtin/ls-files.c:425
+#: builtin/ls-files.c:437
msgid "show other files in the output"
msgstr "afficher les autres fichiers dans la sortie"
-#: builtin/ls-files.c:427
+#: builtin/ls-files.c:439
msgid "show ignored files in the output"
msgstr "afficher les fichiers ignorés dans la sortie"
-#: builtin/ls-files.c:430
+#: builtin/ls-files.c:442
msgid "show staged contents' object name in the output"
msgstr "afficher les nom des objets indexés dans la sortie"
-#: builtin/ls-files.c:432
+#: builtin/ls-files.c:444
msgid "show files on the filesystem that need to be removed"
msgstr ""
"afficher les fichiers du système de fichiers qui ont besoin d'être supprimés"
-#: builtin/ls-files.c:434
+#: builtin/ls-files.c:446
msgid "show 'other' directories' names only"
msgstr "afficher seulement les noms des répertoires 'other'"
-#: builtin/ls-files.c:437
+#: builtin/ls-files.c:448
+msgid "show line endings of files"
+msgstr "afficher les fins de lignes des fichiers"
+
+#: builtin/ls-files.c:450
msgid "don't show empty directories"
msgstr "ne pas afficher les répertoires vides"
-#: builtin/ls-files.c:440
+#: builtin/ls-files.c:453
msgid "show unmerged files in the output"
msgstr "afficher les fichiers non fusionnés dans la sortie"
-#: builtin/ls-files.c:442
+#: builtin/ls-files.c:455
msgid "show resolve-undo information"
msgstr "afficher l'information resolv-undo"
-#: builtin/ls-files.c:444
+#: builtin/ls-files.c:457
msgid "skip files matching pattern"
msgstr "sauter les fichiers correspondant au motif"
-#: builtin/ls-files.c:447
+#: builtin/ls-files.c:460
msgid "exclude patterns are read from <file>"
msgstr "les motifs d'exclusion sont lus depuis <fichier>"
-#: builtin/ls-files.c:450
+#: builtin/ls-files.c:463
msgid "read additional per-directory exclude patterns in <file>"
msgstr "lire des motifs d'exclusion additionnels par répertoire dans <fichier>"
-#: builtin/ls-files.c:452
+#: builtin/ls-files.c:465
msgid "add the standard git exclusions"
msgstr "ajouter les exclusions git standard"
-#: builtin/ls-files.c:455
+#: builtin/ls-files.c:468
msgid "make the output relative to the project top directory"
msgstr "afficher en relatif par rapport au répertoire racine du projet"
-#: builtin/ls-files.c:458
+#: builtin/ls-files.c:471
msgid "if any <file> is not in the index, treat this as an error"
msgstr "si un <fichier> n'est pas dans l'index, traiter cela comme une erreur"
-#: builtin/ls-files.c:459
+#: builtin/ls-files.c:472
msgid "tree-ish"
msgstr "arbre ou apparenté"
-#: builtin/ls-files.c:460
+#: builtin/ls-files.c:473
msgid "pretend that paths removed since <tree-ish> are still present"
msgstr ""
"considérer que les chemins supprimés depuis <arbre ou apparenté> sont "
"toujours présents"
-#: builtin/ls-files.c:462
+#: builtin/ls-files.c:475
msgid "show debugging data"
msgstr "afficher les données de débogage"
+#: builtin/ls-remote.c:7
+msgid ""
+"git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
+" [-q | --quiet] [--exit-code] [--get-url]\n"
+" [--symref] [<repository> [<refs>...]]"
+msgstr ""
+"git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
+" [-q | --quiet] [--exit-code] [--get-url]\n"
+" [--symref] [<dépôt> [<références>...]]"
+
+#: builtin/ls-remote.c:50
+msgid "do not print remote URL"
+msgstr "ne pas afficher les URL distantes"
+
+#: builtin/ls-remote.c:51 builtin/ls-remote.c:53
+msgid "exec"
+msgstr "exécutable"
+
+#: builtin/ls-remote.c:52 builtin/ls-remote.c:54
+msgid "path of git-upload-pack on the remote host"
+msgstr "chemin vers git-upload-pack sur le serveur distant"
+
+#: builtin/ls-remote.c:56
+msgid "limit to tags"
+msgstr "limiter aux étiquettes"
+
+#: builtin/ls-remote.c:57
+msgid "limit to heads"
+msgstr "limiter aux heads"
+
+#: builtin/ls-remote.c:58
+msgid "do not show peeled tags"
+msgstr "ne pas afficher les étiquettes pelées"
+
+#: builtin/ls-remote.c:60
+msgid "take url.<base>.insteadOf into account"
+msgstr "prendre en compte url.<base>.insteadOf"
+
+#: builtin/ls-remote.c:62
+msgid "exit with exit code 2 if no matching refs are found"
+msgstr ""
+"sortir avec un code d'erreur 2 si aucune correspondance de référence n'est "
+"trouvée"
+
+#: builtin/ls-remote.c:64
+msgid "show underlying ref in addition to the object pointed by it"
+msgstr "afficher la réf sous-jacente en plus de l'objet pointé par elle"
+
#: builtin/ls-tree.c:28
msgid "git ls-tree [<options>] <tree-ish> [<path>...]"
msgstr "git ls-tree [<options>] <arbre ou apparenté> [<chemin>...]"
@@ -7696,33 +7956,33 @@ msgstr "Les stratégies disponibles sont :"
msgid "Available custom strategies are:"
msgstr "Les stratégies personnalisées sont :"
-#: builtin/merge.c:193 builtin/pull.c:119
+#: builtin/merge.c:193 builtin/pull.c:123
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:196 builtin/pull.c:122
+#: builtin/merge.c:196 builtin/pull.c:126
msgid "show a diffstat at the end of the merge"
msgstr "afficher un diffstat à la fin de la fusion"
-#: builtin/merge.c:197 builtin/pull.c:125
+#: builtin/merge.c:197 builtin/pull.c:129
msgid "(synonym to --stat)"
msgstr "(synonyme de --stat)"
-#: builtin/merge.c:199 builtin/pull.c:128
+#: builtin/merge.c:199 builtin/pull.c:132
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:202 builtin/pull.c:131
+#: builtin/merge.c:202 builtin/pull.c:135
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:204 builtin/pull.c:134
+#: builtin/merge.c:204 builtin/pull.c:138
msgid "perform a commit if the merge succeeds (default)"
msgstr "effectuer une validation si la fusion réussit (défaut)"
-#: builtin/merge.c:206 builtin/pull.c:137
+#: builtin/merge.c:206 builtin/pull.c:141
msgid "edit message before committing"
msgstr "éditer le message avant la validation"
@@ -7730,7 +7990,7 @@ msgstr "éditer le message avant la validation"
msgid "allow fast-forward (default)"
msgstr "autoriser l'avance rapide (défaut)"
-#: builtin/merge.c:209 builtin/pull.c:143
+#: builtin/merge.c:209 builtin/pull.c:147
msgid "abort if fast-forward is not possible"
msgstr "abandonner si l'avance rapide n'est pas possible"
@@ -7738,20 +7998,20 @@ msgstr "abandonner si l'avance rapide n'est pas possible"
msgid "Verify that the named commit has a valid GPG signature"
msgstr "Vérifier que la validation a une signature GPG valide"
-#: builtin/merge.c:214 builtin/notes.c:767 builtin/pull.c:148
+#: builtin/merge.c:214 builtin/notes.c:770 builtin/pull.c:152
#: builtin/revert.c:89
msgid "strategy"
msgstr "stratégie"
-#: builtin/merge.c:215 builtin/pull.c:149
+#: builtin/merge.c:215 builtin/pull.c:153
msgid "merge strategy to use"
msgstr "stratégie de fusion à utiliser"
-#: builtin/merge.c:216 builtin/pull.c:152
+#: builtin/merge.c:216 builtin/pull.c:156
msgid "option=value"
msgstr "option=valeur"
-#: builtin/merge.c:217 builtin/pull.c:153
+#: builtin/merge.c:217 builtin/pull.c:157
msgid "option for selected merge strategy"
msgstr "option pour la stratégie de fusion sélectionnée"
@@ -7790,8 +8050,8 @@ msgstr " (rien à compresser)"
msgid "Squash commit -- not updating HEAD\n"
msgstr "Validation compressée -- HEAD non mise à jour\n"
-#: builtin/merge.c:344 builtin/merge.c:763 builtin/merge.c:975
-#: builtin/merge.c:988
+#: builtin/merge.c:344 builtin/merge.c:764 builtin/merge.c:976
+#: builtin/merge.c:989
#, c-format
msgid "Could not write to '%s'"
msgstr "Impossible d'écrire dans '%s'"
@@ -7809,43 +8069,43 @@ msgstr "Finition de SQUASH_MSG"
msgid "No merge message -- not updating HEAD\n"
msgstr "Pas de message de fusion -- pas de mise à jour de HEAD\n"
-#: builtin/merge.c:447
+#: builtin/merge.c:448
#, c-format
msgid "'%s' does not point to a commit"
msgstr "'%s' ne pointe pas sur un commit"
-#: builtin/merge.c:537
+#: builtin/merge.c:538
#, c-format
msgid "Bad branch.%s.mergeoptions string: %s"
msgstr "Mauvaise chaîne branch.%s.mergeoptions : %s"
-#: builtin/merge.c:656
+#: builtin/merge.c:657
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:670
+#: builtin/merge.c:671
#, c-format
msgid "Unknown option for merge-recursive: -X%s"
msgstr "Options inconnue pour merge-recursive : -X%s"
-#: builtin/merge.c:683
+#: builtin/merge.c:684
#, c-format
msgid "unable to write %s"
msgstr "impossible d'écrire %s"
-#: builtin/merge.c:772
+#: builtin/merge.c:773
#, c-format
msgid "Could not read from '%s'"
msgstr "Impossible de lire depuis '%s'"
-#: builtin/merge.c:781
+#: builtin/merge.c:782
#, 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:787
+#: builtin/merge.c:788
#, c-format
msgid ""
"Please enter a commit message to explain why this merge is necessary,\n"
@@ -7862,54 +8122,54 @@ msgstr ""
"Les lignes commençant par '%c' seront ignorées, et un message vide\n"
"abandonne la validation.\n"
-#: builtin/merge.c:811
+#: builtin/merge.c:812
msgid "Empty commit message."
msgstr "Message de validation vide."
-#: builtin/merge.c:823
+#: builtin/merge.c:824
#, c-format
msgid "Wonderful.\n"
msgstr "Merveilleux.\n"
-#: builtin/merge.c:878
+#: builtin/merge.c:879
#, 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:894
+#: builtin/merge.c:895
#, c-format
msgid "'%s' is not a commit"
msgstr "'%s' n'est pas une validation"
-#: builtin/merge.c:935
+#: builtin/merge.c:936
msgid "No current branch."
msgstr "Pas de branche courante."
-#: builtin/merge.c:937
+#: builtin/merge.c:938
msgid "No remote for the current branch."
msgstr "Pas de branche distante pour la branche courante."
-#: builtin/merge.c:939
+#: builtin/merge.c:940
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:944
+#: builtin/merge.c:945
#, c-format
msgid "No remote-tracking branch for %s from %s"
msgstr "Pas de branche de suivi pour %s depuis %s"
-#: builtin/merge.c:1079
+#: builtin/merge.c:1080
#, c-format
msgid "could not close '%s'"
msgstr "impossible de fermer '%s'"
-#: builtin/merge.c:1206
+#: builtin/merge.c:1207
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:1222
+#: builtin/merge.c:1223
msgid ""
"You have not concluded your merge (MERGE_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -7917,7 +8177,7 @@ msgstr ""
"Vous n'avez pas terminé votre fusion (MERGE_HEAD existe).\n"
"Veuillez valider vos modifications avant de pouvoir fusionner."
-#: builtin/merge.c:1229
+#: builtin/merge.c:1230
msgid ""
"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -7925,102 +8185,102 @@ msgstr ""
"Vous n'avez pas terminé votre picorage (CHERRY_PICK_HEAD existe).\n"
"Veuillez valider vos modifications avant de pouvoir fusionner."
-#: builtin/merge.c:1232
+#: builtin/merge.c:1233
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:1241
+#: builtin/merge.c:1242
msgid "You cannot combine --squash with --no-ff."
msgstr "Vous ne pouvez pas combiner --squash avec --no-ff."
-#: builtin/merge.c:1249
+#: builtin/merge.c:1250
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:1266
+#: builtin/merge.c:1267
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:1268
+#: builtin/merge.c:1269
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:1274
+#: builtin/merge.c:1275
#, c-format
msgid "%s - not something we can merge"
msgstr "%s - pas possible de fusionner ceci"
-#: builtin/merge.c:1276
+#: builtin/merge.c:1277
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:1331
+#: builtin/merge.c:1332
#, 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."
-#: builtin/merge.c:1334
+#: builtin/merge.c:1335
#, 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."
-#: builtin/merge.c:1337
+#: builtin/merge.c:1338
#, c-format
msgid "Commit %s does not have a GPG signature."
msgstr "La validation %s n'a pas de signature GPG."
-#: builtin/merge.c:1340
+#: builtin/merge.c:1341
#, 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"
-#: builtin/merge.c:1423
+#: builtin/merge.c:1424
#, c-format
msgid "Updating %s..%s\n"
msgstr "Mise à jour %s..%s\n"
-#: builtin/merge.c:1460
+#: builtin/merge.c:1461
#, c-format
msgid "Trying really trivial in-index merge...\n"
msgstr "Essai de fusion vraiment triviale dans l'index...\n"
-#: builtin/merge.c:1467
+#: builtin/merge.c:1468
#, c-format
msgid "Nope.\n"
msgstr "Non.\n"
-#: builtin/merge.c:1499
+#: builtin/merge.c:1500
msgid "Not possible to fast-forward, aborting."
msgstr "Pas possible d'avancer rapidement, abandon."
-#: builtin/merge.c:1522 builtin/merge.c:1601
+#: builtin/merge.c:1523 builtin/merge.c:1602
#, c-format
msgid "Rewinding the tree to pristine...\n"
msgstr "Retour de l'arbre à l'original...\n"
-#: builtin/merge.c:1526
+#: builtin/merge.c:1527
#, c-format
msgid "Trying merge strategy %s...\n"
msgstr "Essai de la stratégie de fusion %s...\n"
-#: builtin/merge.c:1592
+#: builtin/merge.c:1593
#, 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:1594
+#: builtin/merge.c:1595
#, c-format
msgid "Merge with strategy %s failed.\n"
msgstr "La fusion avec la stratégie %s a échoué.\n"
-#: builtin/merge.c:1603
+#: builtin/merge.c:1604
#, 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:1615
+#: builtin/merge.c:1616
#, c-format
msgid "Automatic merge went well; stopped before committing as requested\n"
msgstr ""
@@ -8106,19 +8366,19 @@ 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/mktree.c:64
+#: builtin/mktree.c:65
msgid "git mktree [-z] [--missing] [--batch]"
msgstr "git mktree [-z] [--missing] [--batch]"
-#: builtin/mktree.c:150
+#: builtin/mktree.c:152
msgid "input is NUL terminated"
msgstr "l'entrée se termine par NUL"
-#: builtin/mktree.c:151 builtin/write-tree.c:24
+#: builtin/mktree.c:153 builtin/write-tree.c:24
msgid "allow missing objects"
msgstr "autoriser les objets manquants"
-#: builtin/mktree.c:152
+#: builtin/mktree.c:154
msgid "allow creation of more than one tree"
msgstr "autoriser la création de plus d'un arbre"
@@ -8126,92 +8386,92 @@ msgstr "autoriser la création de plus d'un arbre"
msgid "git mv [<options>] <source>... <destination>"
msgstr "git mv [<options>] <source>... <destination>"
-#: builtin/mv.c:69
+#: builtin/mv.c:70
#, c-format
msgid "Directory %s is in index and no submodule?"
msgstr "Le répertoire %s est dans l'index et pourtant aucun sous-module ?"
-#: builtin/mv.c:71
+#: builtin/mv.c:72
msgid "Please stage your changes to .gitmodules or stash them to proceed"
msgstr ""
"Veuillez indexer vos modifications de .gitmodules ou les remiser pour "
"continuer"
-#: builtin/mv.c:89
+#: builtin/mv.c:90
#, c-format
msgid "%.*s is in index"
msgstr "%.*s est dans l'index"
-#: builtin/mv.c:111
+#: builtin/mv.c:112
msgid "force move/rename even if target exists"
msgstr "forcer le déplacement/renommage même si la cible existe"
-#: builtin/mv.c:112
+#: builtin/mv.c:113
msgid "skip move/rename errors"
msgstr "sauter les erreurs de déplacement/renommage"
-#: builtin/mv.c:151
+#: builtin/mv.c:152
#, c-format
msgid "destination '%s' is not a directory"
msgstr "la destination '%s' n'est pas un répertoire"
-#: builtin/mv.c:162
+#: builtin/mv.c:163
#, c-format
msgid "Checking rename of '%s' to '%s'\n"
msgstr "Vérification du renommage de '%s' en '%s'\n"
-#: builtin/mv.c:166
+#: builtin/mv.c:167
msgid "bad source"
msgstr "mauvaise source"
-#: builtin/mv.c:169
+#: builtin/mv.c:170
msgid "can not move directory into itself"
msgstr "impossible de déplacer un répertoire dans lui-même"
-#: builtin/mv.c:172
+#: builtin/mv.c:173
msgid "cannot move directory over file"
msgstr "impossible de déplacer un répertoire sur un fichier"
-#: builtin/mv.c:181
+#: builtin/mv.c:182
msgid "source directory is empty"
msgstr "le répertoire source est vide"
-#: builtin/mv.c:206
+#: builtin/mv.c:207
msgid "not under version control"
msgstr "pas sous le contrôle de version"
-#: builtin/mv.c:209
+#: builtin/mv.c:210
msgid "destination exists"
msgstr "la destination existe"
-#: builtin/mv.c:217
+#: builtin/mv.c:218
#, c-format
msgid "overwriting '%s'"
msgstr "écrasement de '%s'"
-#: builtin/mv.c:220
+#: builtin/mv.c:221
msgid "Cannot overwrite"
msgstr "Impossible d'écraser"
-#: builtin/mv.c:223
+#: builtin/mv.c:224
msgid "multiple sources for the same target"
msgstr "multiples sources pour la même destination"
-#: builtin/mv.c:225
+#: builtin/mv.c:226
msgid "destination directory does not exist"
msgstr "le répertoire de destination n'existe pas"
-#: builtin/mv.c:232
+#: builtin/mv.c:233
#, c-format
msgid "%s, source=%s, destination=%s"
msgstr "%s, source=%s, destination=%s"
-#: builtin/mv.c:253
+#: builtin/mv.c:254
#, c-format
msgid "Renaming %s to %s\n"
msgstr "Renommage de %s en %s\n"
-#: builtin/mv.c:256 builtin/remote.c:728 builtin/repack.c:365
+#: builtin/mv.c:257 builtin/remote.c:714 builtin/repack.c:365
#, c-format
msgid "renaming '%s' failed"
msgstr "le renommage de '%s' a échoué"
@@ -8412,9 +8672,9 @@ msgid "could not open or read '%s'"
msgstr "impossible d'ouvrir ou lire '%s'"
#: builtin/notes.c:253 builtin/notes.c:304 builtin/notes.c:306
-#: builtin/notes.c:366 builtin/notes.c:421 builtin/notes.c:507
-#: builtin/notes.c:512 builtin/notes.c:590 builtin/notes.c:653
-#: builtin/notes.c:877 builtin/tag.c:456
+#: builtin/notes.c:369 builtin/notes.c:424 builtin/notes.c:510
+#: builtin/notes.c:515 builtin/notes.c:593 builtin/notes.c:656
+#: builtin/notes.c:880 builtin/tag.c:456
#, c-format
msgid "Failed to resolve '%s' as a valid ref."
msgstr "Impossible de résoudre '%s' comme une référence valide."
@@ -8429,42 +8689,42 @@ msgstr "Impossible de lire l'objet '%s'."
msgid "Cannot read note data from non-blob object '%s'."
msgstr "Impossible de lire les informations de note d'un objet non-blob '%s'."
-#: builtin/notes.c:359 builtin/notes.c:414 builtin/notes.c:490
-#: builtin/notes.c:502 builtin/notes.c:578 builtin/notes.c:646
-#: builtin/notes.c:942
+#: builtin/notes.c:362 builtin/notes.c:417 builtin/notes.c:493
+#: builtin/notes.c:505 builtin/notes.c:581 builtin/notes.c:649
+#: builtin/notes.c:945
msgid "too many parameters"
msgstr "trop de paramètres"
-#: builtin/notes.c:372 builtin/notes.c:659
+#: builtin/notes.c:375 builtin/notes.c:662
#, c-format
msgid "No note found for object %s."
msgstr "Pas de note trouvée pour l'objet %s."
-#: builtin/notes.c:393 builtin/notes.c:556
+#: builtin/notes.c:396 builtin/notes.c:559
msgid "note contents as a string"
msgstr "contenu de la note sous forme de chaîne"
-#: builtin/notes.c:396 builtin/notes.c:559
+#: builtin/notes.c:399 builtin/notes.c:562
msgid "note contents in a file"
msgstr "contenu de la note dans un fichier"
-#: builtin/notes.c:399 builtin/notes.c:562
+#: builtin/notes.c:402 builtin/notes.c:565
msgid "reuse and edit specified note object"
msgstr "réutiliser et éditer l'objet de note spécifié"
-#: builtin/notes.c:402 builtin/notes.c:565
+#: builtin/notes.c:405 builtin/notes.c:568
msgid "reuse specified note object"
msgstr "réutiliser l'objet de note spécifié"
-#: builtin/notes.c:405 builtin/notes.c:568
+#: builtin/notes.c:408 builtin/notes.c:571
msgid "allow storing empty note"
msgstr "permettre de stocker une note vide"
-#: builtin/notes.c:406 builtin/notes.c:477
+#: builtin/notes.c:409 builtin/notes.c:480
msgid "replace existing notes"
msgstr "remplacer les notes existantes"
-#: builtin/notes.c:431
+#: builtin/notes.c:434
#, c-format
msgid ""
"Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite "
@@ -8473,30 +8733,30 @@ msgstr ""
"Impossible d'ajouter des notes. Des notes ont été trouvées pour l'objet %s. "
"Utilisez '-f' pour écraser les notes existantes"
-#: builtin/notes.c:446 builtin/notes.c:525
+#: builtin/notes.c:449 builtin/notes.c:528
#, c-format
msgid "Overwriting existing notes for object %s\n"
msgstr "Écrasement des notes existantes pour l'objet %s\n"
-#: builtin/notes.c:457 builtin/notes.c:618 builtin/notes.c:882
+#: builtin/notes.c:460 builtin/notes.c:621 builtin/notes.c:885
#, c-format
msgid "Removing note for object %s\n"
msgstr "Suppression de la note pour l'objet %s\n"
-#: builtin/notes.c:478
+#: builtin/notes.c:481
msgid "read objects from stdin"
msgstr "lire les objets depuis l'entrée standard"
-#: builtin/notes.c:480
+#: builtin/notes.c:483
msgid "load rewriting config for <command> (implies --stdin)"
msgstr ""
"charger la configuration de réécriture pour <commande> (implique --stdin)"
-#: builtin/notes.c:498
+#: builtin/notes.c:501
msgid "too few parameters"
msgstr "pas assez de paramètres"
-#: builtin/notes.c:519
+#: builtin/notes.c:522
#, c-format
msgid ""
"Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite "
@@ -8505,12 +8765,12 @@ msgstr ""
"Impossible de copier des notes. Des notes ont été trouvées pour l'objet %s. "
"Utilisez '-f' pour écraser les notes existantes"
-#: builtin/notes.c:531
+#: builtin/notes.c:534
#, c-format
msgid "Missing notes on source object %s. Cannot copy."
msgstr "Notes manquantes sur l'objet source %s. Impossible de copier."
-#: builtin/notes.c:583
+#: builtin/notes.c:586
#, c-format
msgid ""
"The -m/-F/-c/-C options have been deprecated for the 'edit' subcommand.\n"
@@ -8519,15 +8779,15 @@ msgstr ""
"Les options -m/-F/-c/-C sont obsolètes pour la sous-commande 'edit'.\n"
"Veuillez utiliser 'git notes add -f -m/-F/-c/-C' à la place.\n"
-#: builtin/notes.c:764
+#: builtin/notes.c:767
msgid "General options"
msgstr "Options générales"
-#: builtin/notes.c:766
+#: builtin/notes.c:769
msgid "Merge options"
msgstr "Options de fusion"
-#: builtin/notes.c:768
+#: builtin/notes.c:771
msgid ""
"resolve notes conflicts using the given strategy (manual/ours/theirs/union/"
"cat_sort_uniq)"
@@ -8535,50 +8795,50 @@ msgstr ""
"résoudre les conflits de notes en utilisant la stratégie donnée (manual/ours/"
"theirs/union/cat_sort_uniq)"
-#: builtin/notes.c:770
+#: builtin/notes.c:773
msgid "Committing unmerged notes"
msgstr "Validation des notes non fusionnées"
-#: builtin/notes.c:772
+#: builtin/notes.c:775
msgid "finalize notes merge by committing unmerged notes"
msgstr "finaliser la fusion de notes en validant les notes non fusionnées"
-#: builtin/notes.c:774
+#: builtin/notes.c:777
msgid "Aborting notes merge resolution"
msgstr "Abandon de la résolution de fusion des notes"
-#: builtin/notes.c:776
+#: builtin/notes.c:779
msgid "abort notes merge"
msgstr "abandonner la fusion de notes"
-#: builtin/notes.c:853
+#: builtin/notes.c:856
#, c-format
msgid "A notes merge into %s is already in-progress at %s"
msgstr "Une fusion de notes dans %s est déjà en cours avec %s"
-#: builtin/notes.c:880
+#: builtin/notes.c:883
#, c-format
msgid "Object %s has no note\n"
msgstr "L'objet %s n'a pas de note\n"
-#: builtin/notes.c:892
+#: builtin/notes.c:895
msgid "attempt to remove non-existent note is not an error"
msgstr ""
"la tentative de suppression d'une note non existante n'est pas une erreur"
-#: builtin/notes.c:895
+#: builtin/notes.c:898
msgid "read object names from the standard input"
msgstr "lire les noms d'objet depuis l'entrée standard"
-#: builtin/notes.c:976
+#: builtin/notes.c:979
msgid "notes-ref"
msgstr "références-notes"
-#: builtin/notes.c:977
+#: builtin/notes.c:980
msgid "use notes from <notes-ref>"
msgstr "utiliser les notes depuis <références-notes>"
-#: builtin/notes.c:1012 builtin/remote.c:1647
+#: builtin/notes.c:1015 builtin/remote.c:1626
#, c-format
msgid "Unknown subcommand: %s"
msgstr "Sous-commande inconnue : %s"
@@ -8602,175 +8862,175 @@ msgstr ""
msgid "deflate error (%d)"
msgstr "erreur de compression (%d)"
-#: builtin/pack-objects.c:771
+#: builtin/pack-objects.c:772
msgid "Writing objects"
msgstr "Écriture des objets"
-#: builtin/pack-objects.c:1011
+#: builtin/pack-objects.c:1012
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:2171
+#: builtin/pack-objects.c:2172
msgid "Compressing objects"
msgstr "Compression des objets"
-#: builtin/pack-objects.c:2568
+#: builtin/pack-objects.c:2558
#, c-format
msgid "unsupported index version %s"
msgstr "version d'index non supportée %s"
-#: builtin/pack-objects.c:2572
+#: builtin/pack-objects.c:2562
#, c-format
msgid "bad index version '%s'"
msgstr "mauvaise version d'index '%s'"
-#: builtin/pack-objects.c:2602
+#: builtin/pack-objects.c:2592
msgid "do not show progress meter"
msgstr "ne pas afficher la barre de progression"
-#: builtin/pack-objects.c:2604
+#: builtin/pack-objects.c:2594
msgid "show progress meter"
msgstr "afficher la barre de progression"
-#: builtin/pack-objects.c:2606
+#: builtin/pack-objects.c:2596
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:2609
+#: builtin/pack-objects.c:2599
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:2610
+#: builtin/pack-objects.c:2600
msgid "version[,offset]"
msgstr "version[,offset]"
-#: builtin/pack-objects.c:2611
+#: builtin/pack-objects.c:2601
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:2614
+#: builtin/pack-objects.c:2604
msgid "maximum size of each output pack file"
msgstr "taille maximum de chaque fichier paquet en sortie"
-#: builtin/pack-objects.c:2616
+#: builtin/pack-objects.c:2606
msgid "ignore borrowed objects from alternate object store"
msgstr "ignorer les objets empruntés à un autre magasin d'objets"
-#: builtin/pack-objects.c:2618
+#: builtin/pack-objects.c:2608
msgid "ignore packed objects"
msgstr "ignorer les objets empaquetés"
-#: builtin/pack-objects.c:2620
+#: builtin/pack-objects.c:2610
msgid "limit pack window by objects"
msgstr "limiter la fenêtre d'empaquetage par objets"
-#: builtin/pack-objects.c:2622
+#: builtin/pack-objects.c:2612
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:2624
+#: builtin/pack-objects.c:2614
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:2626
+#: builtin/pack-objects.c:2616
msgid "reuse existing deltas"
msgstr "réutiliser les deltas existants"
-#: builtin/pack-objects.c:2628
+#: builtin/pack-objects.c:2618
msgid "reuse existing objects"
msgstr "réutiliser les objets existants"
-#: builtin/pack-objects.c:2630
+#: builtin/pack-objects.c:2620
msgid "use OFS_DELTA objects"
msgstr "utiliser les objets OFS_DELTA"
-#: builtin/pack-objects.c:2632
+#: builtin/pack-objects.c:2622
msgid "use threads when searching for best delta matches"
msgstr ""
"utiliser des fils lors de la recherche pour une meilleurs correspondance des "
"deltas"
-#: builtin/pack-objects.c:2634
+#: builtin/pack-objects.c:2624
msgid "do not create an empty pack output"
msgstr "ne pas créer un paquet vide"
-#: builtin/pack-objects.c:2636
+#: builtin/pack-objects.c:2626
msgid "read revision arguments from standard input"
msgstr "lire les paramètres de révision depuis l'entrée standard"
-#: builtin/pack-objects.c:2638
+#: builtin/pack-objects.c:2628
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:2641
+#: builtin/pack-objects.c:2631
msgid "include objects reachable from any reference"
msgstr "inclure les objets accessibles depuis toute référence"
-#: builtin/pack-objects.c:2644
+#: builtin/pack-objects.c:2634
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:2647
+#: builtin/pack-objects.c:2637
msgid "include objects referred to by the index"
msgstr "inclure les objets référencés par l'index"
-#: builtin/pack-objects.c:2650
+#: builtin/pack-objects.c:2640
msgid "output pack to stdout"
msgstr "afficher l'empaquetage sur la sortie standard"
-#: builtin/pack-objects.c:2652
+#: builtin/pack-objects.c:2642
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:2654
+#: builtin/pack-objects.c:2644
msgid "keep unreachable objects"
msgstr "garder les objets inaccessibles"
-#: builtin/pack-objects.c:2655 parse-options.h:142
+#: builtin/pack-objects.c:2645 parse-options.h:142
msgid "time"
msgstr "heure"
-#: builtin/pack-objects.c:2656
+#: builtin/pack-objects.c:2646
msgid "unpack unreachable objects newer than <time>"
msgstr "dépaqueter les objets inaccessibles plus récents que <heure>"
-#: builtin/pack-objects.c:2659
+#: builtin/pack-objects.c:2649
msgid "create thin packs"
msgstr "créer des paquets légers"
-#: builtin/pack-objects.c:2661
+#: builtin/pack-objects.c:2651
msgid "create packs suitable for shallow fetches"
msgstr "créer des paquets permettant des récupérations superficielles"
-#: builtin/pack-objects.c:2663
+#: builtin/pack-objects.c:2653
msgid "ignore packs that have companion .keep file"
msgstr "ignorer les paquets qui ont un fichier .keep"
-#: builtin/pack-objects.c:2665
+#: builtin/pack-objects.c:2655
msgid "pack compression level"
msgstr "niveau de compression du paquet"
-#: builtin/pack-objects.c:2667
+#: builtin/pack-objects.c:2657
msgid "do not hide commits by grafts"
msgstr "ne pas cacher les validations par greffes"
-#: builtin/pack-objects.c:2669
+#: builtin/pack-objects.c:2659
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:2671
+#: builtin/pack-objects.c:2661
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:2762
+#: builtin/pack-objects.c:2752
msgid "Counting objects"
msgstr "Décompte des objets"
@@ -8814,51 +9074,55 @@ msgstr "faire expirer les objets plus vieux que <heure>"
msgid "cannot prune in a precious-objects repo"
msgstr "impossible de nettoyer dans un dépôt d'objets précieux"
-#: builtin/pull.c:69
+#: builtin/pull.c:72
msgid "git pull [<options>] [<repository> [<refspec>...]]"
msgstr "git pull [<options>] [<dépôt> [<spécification-de-référence>...]]"
-#: builtin/pull.c:113
+#: builtin/pull.c:117
msgid "Options related to merging"
msgstr "Options relatives à la fusion"
-#: builtin/pull.c:116
+#: builtin/pull.c:120
msgid "incorporate changes by rebasing rather than merging"
msgstr "incorporer les modifications en rebasant plutôt qu'en fusionnant"
-#: builtin/pull.c:140 builtin/revert.c:105
+#: builtin/pull.c:144 builtin/revert.c:105
msgid "allow fast-forward"
msgstr "autoriser l'avance rapide"
-#: builtin/pull.c:146
+#: builtin/pull.c:150
msgid "verify that the named commit has a valid GPG signature"
msgstr "vérifier que le commit nommé a une signature GPG valide"
-#: builtin/pull.c:160
+#: builtin/pull.c:164
msgid "Options related to fetching"
msgstr "Options relatives au rapatriement"
-#: builtin/pull.c:268
+#: builtin/pull.c:186
+msgid "number of submodules pulled in parallel"
+msgstr "nombre de sous-modules tirés en parallèle"
+
+#: builtin/pull.c:275
#, c-format
msgid "Invalid value for pull.ff: %s"
msgstr "Valeur invalide pour pull.ff : %s"
-#: builtin/pull.c:352
+#: builtin/pull.c:359
msgid "Cannot pull with rebase: You have unstaged changes."
msgstr ""
"impossible de tirer avec rebasage. Vous avez des modifications non indexées."
-#: builtin/pull.c:358
+#: builtin/pull.c:365
msgid "Additionally, your index contains uncommitted changes."
msgstr "De plus, votre index contient des modifications non validées."
-#: builtin/pull.c:360
+#: builtin/pull.c:367
msgid "Cannot pull with rebase: Your index contains uncommitted changes."
msgstr ""
"impossible de tirer avec rebasage : votre index contient des modifications "
"non validées."
-#: builtin/pull.c:436
+#: builtin/pull.c:443
msgid ""
"There is no candidate for rebasing against among the refs that you just "
"fetched."
@@ -8866,14 +9130,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:438
+#: builtin/pull.c:445
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:439
+#: builtin/pull.c:446
msgid ""
"Generally this means that you provided a wildcard refspec which had no\n"
"matches on the remote end."
@@ -8881,7 +9145,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:442
+#: builtin/pull.c:449
#, c-format
msgid ""
"You asked to pull from the remote '%s', but did not specify\n"
@@ -8893,27 +9157,27 @@ msgstr ""
"configuration\n"
"pour la branche actuelle, vous devez spécifier la branche avec la commande."
-#: builtin/pull.c:447
+#: builtin/pull.c:454
msgid "You are not currently on a branch."
msgstr "Vous n'êtes actuellement sur aucune branche."
-#: builtin/pull.c:449 builtin/pull.c:464
+#: builtin/pull.c:456 builtin/pull.c:471
msgid "Please specify which branch you want to rebase against."
msgstr "Veuillez spécifier sur quelle branche vous souhaiter rebaser."
-#: builtin/pull.c:451 builtin/pull.c:466
+#: builtin/pull.c:458 builtin/pull.c:473
msgid "Please specify which branch you want to merge with."
msgstr "Veuillez spécifier une branche avec laquelle fusionner."
-#: builtin/pull.c:452 builtin/pull.c:467
+#: builtin/pull.c:459 builtin/pull.c:474
msgid "See git-pull(1) for details."
msgstr "Référez-vous à git-pull(1) pour de plus amples détails."
-#: builtin/pull.c:462
+#: builtin/pull.c:469
msgid "There is no tracking information for the current branch."
msgstr "Pas d'information de suivi distant pour la branche actuelle."
-#: builtin/pull.c:471
+#: builtin/pull.c:478
#, c-format
msgid ""
"If you wish to set tracking information for this branch you can do so with:\n"
@@ -8925,7 +9189,7 @@ msgstr ""
"\n"
" git branch --set-upstream-to=%s/<branche> %s\n"
-#: builtin/pull.c:476
+#: builtin/pull.c:483
#, c-format
msgid ""
"Your configuration specifies to merge with the ref '%s'\n"
@@ -8935,13 +9199,13 @@ msgstr ""
"'%s'\n"
"du serveur distant, mais cette référence n'a pas été récupérée."
-#: builtin/pull.c:830
+#: builtin/pull.c:841
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:859
+#: builtin/pull.c:870
#, c-format
msgid ""
"fetch updated the current branch head.\n"
@@ -8952,7 +9216,7 @@ msgstr ""
"avance rapide de votre copie de travail\n"
"depuis le commit %s."
-#: builtin/pull.c:864
+#: builtin/pull.c:875
#, c-format
msgid ""
"Cannot fast-forward your working tree.\n"
@@ -8970,11 +9234,11 @@ msgstr ""
"$ git reset --hard\n"
"pour régénérer."
-#: builtin/pull.c:879
+#: builtin/pull.c:890
msgid "Cannot merge multiple branches into empty head."
msgstr "Impossible de fusionner de multiples branches sur une tête vide."
-#: builtin/pull.c:883
+#: builtin/pull.c:894
msgid "Cannot rebase onto multiple branches."
msgstr "Impossible de rebaser sur de multiples branches."
@@ -8982,15 +9246,15 @@ msgstr "Impossible de rebaser sur de multiples branches."
msgid "git push [<options>] [<repository> [<refspec>...]]"
msgstr "git push [<options>] [<dépôt> [<spécification-de-référence>...]]"
-#: builtin/push.c:88
+#: builtin/push.c:89
msgid "tag shorthand without <tag>"
msgstr "raccourci d'étiquette sans <étiquette>"
-#: builtin/push.c:98
+#: builtin/push.c:99
msgid "--delete only accepts plain target ref names"
msgstr "--delete accepte seulement des noms entiers de références cibles"
-#: builtin/push.c:142
+#: builtin/push.c:143
msgid ""
"\n"
"To choose either option permanently, see push.default in 'git help config'."
@@ -8999,7 +9263,7 @@ msgstr ""
"Pour choisir l'option de manière permanente, voir push.default dans 'git "
"help config'."
-#: builtin/push.c:145
+#: builtin/push.c:146
#, c-format
msgid ""
"The upstream branch of your current branch does not match\n"
@@ -9024,7 +9288,7 @@ msgstr ""
" git push %s %s\n"
"%s"
-#: builtin/push.c:160
+#: builtin/push.c:161
#, c-format
msgid ""
"You are not currently on a branch.\n"
@@ -9039,7 +9303,7 @@ msgstr ""
"\n"
" git push %s HEAD:<nom-de-la-branche-amont>\n"
-#: builtin/push.c:174
+#: builtin/push.c:175
#, c-format
msgid ""
"The current branch %s has no upstream branch.\n"
@@ -9053,13 +9317,13 @@ msgstr ""
"\n"
" git push --set-upstream %s %s\n"
-#: builtin/push.c:182
+#: builtin/push.c:183
#, c-format
msgid "The current branch %s has multiple upstream branches, refusing to push."
msgstr ""
"La branche courante %s a de multiples branches amont, impossible de pousser."
-#: builtin/push.c:185
+#: builtin/push.c:186
#, c-format
msgid ""
"You are pushing to remote '%s', which is not the upstream of\n"
@@ -9070,65 +9334,14 @@ msgstr ""
"pas une branche amont de votre branche courante '%s', sans me dire\n"
"quoi pousser pour mettre à jour quelle branche amont."
-#: builtin/push.c:208
-msgid ""
-"push.default is unset; its implicit value has changed in\n"
-"Git 2.0 from 'matching' to 'simple'. To squelch this message\n"
-"and maintain the traditional behavior, use:\n"
-"\n"
-" git config --global push.default matching\n"
-"\n"
-"To squelch this message and adopt the new behavior now, use:\n"
-"\n"
-" git config --global push.default simple\n"
-"\n"
-"When push.default is set to 'matching', git will push local branches\n"
-"to the remote branches that already exist with the same name.\n"
-"\n"
-"Since Git 2.0, Git defaults to the more conservative 'simple'\n"
-"behavior, which only pushes the current branch to the corresponding\n"
-"remote branch that 'git pull' uses to update the current branch.\n"
-"\n"
-"See 'git help config' and search for 'push.default' for further "
-"information.\n"
-"(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode\n"
-"'current' instead of 'simple' if you sometimes use older versions of Git)"
-msgstr ""
-"push.default n'est pas défini ; sa valeur implicite a changé dans Git 2.0\n"
-"de 'matching' vers 'simple'. Pour supprimer ce message et maintenir\n"
-"le comportement actuel après la modification de la valeur de défaut, "
-"utilisez :\n"
-"\n"
-" git config --global push.default matching\n"
-"\n"
-"Pour supprimer ce message et adopter le nouveau comportement maintenant, "
-"utilisez :\n"
-"\n"
-" git config --global push.default simple\n"
-"\n"
-"Quand push.default vaudra 'matching', git poussera les branches locales\n"
-"sur les branches distantes qui existent déjà avec le même nom.\n"
-"\n"
-"Depuis Git 2.0, Git utilise par défaut le comportement plus conservatif "
-"'simple'\n"
-"qui ne pousse la branche courante que vers la branche distante "
-"correspondante\n"
-"que 'git pull' utilise pour mettre à jour la branche courante.\n"
-" \n"
-"Voir 'git help config' et chercher 'push.default' pour plus d'information.\n"
-"(le mode 'simple' a été introduit dans Git 1.7.11. Utilisez le mode "
-"similaire\n"
-"'current' au lieu de 'simple' si vous utilisez de temps en temps d'anciennes "
-"versions de Git)"
-
-#: builtin/push.c:275
+#: builtin/push.c:242
msgid ""
"You didn't specify any refspecs to push, and push.default is \"nothing\"."
msgstr ""
"Vous n'avez pas spécifié de spécifications de référence à pousser, et push."
"default est \"nothing\"."
-#: builtin/push.c:282
+#: builtin/push.c:249
msgid ""
"Updates were rejected because the tip of your current branch is behind\n"
"its remote counterpart. Integrate the remote changes (e.g.\n"
@@ -9143,7 +9356,7 @@ msgstr ""
"Voir la 'Note à propos des avances rapides' dans 'git push --help' pour plus "
"d'information."
-#: builtin/push.c:288
+#: builtin/push.c:255
msgid ""
"Updates were rejected because a pushed branch tip is behind its remote\n"
"counterpart. Check out this branch and integrate the remote changes\n"
@@ -9152,13 +9365,13 @@ msgid ""
msgstr ""
"Les mises à jour ont été rejetées car la pointe de la branche courante est "
"derrière\n"
-"son homologue distant. Extrayez cette branche et Intégrez les changements "
+"son homologue distant. Extrayez cette branche et intégrez les changements "
"distants\n"
"(par exemple 'git pull ...') avant de pousser à nouveau.\n"
"Voir la 'Note à propos des avances rapides' dans 'git push --help' pour plus "
"d'information."
-#: builtin/push.c:294
+#: builtin/push.c:261
msgid ""
"Updates were rejected because the remote contains work that you do\n"
"not have locally. This is usually caused by another repository pushing\n"
@@ -9176,13 +9389,13 @@ msgstr ""
"Voir la 'Note à propos des avances rapides' dans 'git push --help' pour plus "
"d'information."
-#: builtin/push.c:301
+#: builtin/push.c:268
msgid "Updates were rejected because the tag already exists in the remote."
msgstr ""
"Les mises à jour ont été rejetées car l'étiquette existe déjà dans la "
"branche distante."
-#: builtin/push.c:304
+#: builtin/push.c:271
msgid ""
"You cannot update a remote ref that points at a non-commit object,\n"
"or update a remote ref to make it point at a non-commit object,\n"
@@ -9194,22 +9407,22 @@ msgstr ""
"pointer\n"
"vers un objet qui n'est pas un commit, sans utiliser l'option '--force'.\n"
-#: builtin/push.c:363
+#: builtin/push.c:331
#, c-format
msgid "Pushing to %s\n"
msgstr "Poussée vers %s\n"
-#: builtin/push.c:367
+#: builtin/push.c:335
#, c-format
msgid "failed to push some refs to '%s'"
msgstr "impossible de pousser des références vers '%s'"
-#: builtin/push.c:397
+#: builtin/push.c:365
#, c-format
msgid "bad repository '%s'"
msgstr "mauvais dépôt '%s'"
-#: builtin/push.c:398
+#: builtin/push.c:366
msgid ""
"No configured push destination.\n"
"Either specify the URL from the command-line or configure a remote "
@@ -9231,105 +9444,101 @@ msgstr ""
"\n"
" git push <nom>\n"
-#: builtin/push.c:413
+#: builtin/push.c:381
msgid "--all and --tags are incompatible"
msgstr "--all et --tags sont incompatibles"
-#: builtin/push.c:414
+#: builtin/push.c:382
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:419
+#: builtin/push.c:387
msgid "--mirror and --tags are incompatible"
msgstr "--mirror et --tags sont incompatibles"
-#: builtin/push.c:420
+#: builtin/push.c:388
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:425
+#: builtin/push.c:393
msgid "--all and --mirror are incompatible"
msgstr "--all et --mirror sont incompatibles"
-#: builtin/push.c:537
+#: builtin/push.c:505
msgid "repository"
msgstr "dépôt"
-#: builtin/push.c:538 builtin/send-pack.c:161
+#: builtin/push.c:506 builtin/send-pack.c:161
msgid "push all refs"
msgstr "pousser toutes les références"
-#: builtin/push.c:539 builtin/send-pack.c:163
+#: builtin/push.c:507 builtin/send-pack.c:163
msgid "mirror all refs"
msgstr "refléter toutes les références"
-#: builtin/push.c:541
+#: builtin/push.c:509
msgid "delete refs"
msgstr "supprimer les références"
-#: builtin/push.c:542
+#: builtin/push.c:510
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:545 builtin/send-pack.c:164
+#: builtin/push.c:513 builtin/send-pack.c:164
msgid "force updates"
msgstr "forcer les mises à jour"
-#: builtin/push.c:547 builtin/send-pack.c:175
+#: builtin/push.c:515 builtin/send-pack.c:175
msgid "refname>:<expect"
msgstr "nom de référence>:<attendu"
-#: builtin/push.c:548 builtin/send-pack.c:176
+#: builtin/push.c:516 builtin/send-pack.c:176
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:550
-msgid "check|on-demand|no"
-msgstr "check|on-demand|no"
-
-#: builtin/push.c:551
+#: builtin/push.c:519
msgid "control recursive pushing of submodules"
msgstr "contrôler la poussée récursive des sous-modules"
-#: builtin/push.c:553 builtin/send-pack.c:169
+#: builtin/push.c:521 builtin/send-pack.c:169
msgid "use thin pack"
msgstr "utiliser un empaquetage léger"
-#: builtin/push.c:554 builtin/push.c:555 builtin/send-pack.c:158
+#: builtin/push.c:522 builtin/push.c:523 builtin/send-pack.c:158
#: builtin/send-pack.c:159
msgid "receive pack program"
msgstr "recevoir le programme d'empaquetage"
-#: builtin/push.c:556
+#: builtin/push.c:524
msgid "set upstream for git pull/status"
msgstr "définir la branche amont pour git pull/status"
-#: builtin/push.c:559
+#: builtin/push.c:527
msgid "prune locally removed refs"
msgstr "éliminer les références locales supprimées"
-#: builtin/push.c:561
+#: builtin/push.c:529
msgid "bypass pre-push hook"
msgstr "éviter d'utiliser le crochet pre-push"
-#: builtin/push.c:562
+#: builtin/push.c:530
msgid "push missing but relevant tags"
msgstr "pousser les étiquettes manquantes mais pertinentes"
-#: builtin/push.c:565 builtin/send-pack.c:166
+#: builtin/push.c:533 builtin/send-pack.c:166
msgid "GPG sign the push"
msgstr "signer la poussée avec GPG"
-#: builtin/push.c:567 builtin/send-pack.c:170
+#: builtin/push.c:535 builtin/send-pack.c:170
msgid "request atomic transaction on remote side"
msgstr "demande une transaction atomique sur le serveur distant"
-#: builtin/push.c:577
+#: builtin/push.c:549
msgid "--delete is incompatible with --all, --mirror and --tags"
msgstr "--delete est incompatible avec --all, --mirror et --tags"
-#: builtin/push.c:579
+#: builtin/push.c:551
msgid "--delete doesn't make sense without any refs"
msgstr "--delete n'a pas de sens sans aucune référence"
@@ -9408,12 +9617,12 @@ msgstr "sauter l'application du filtre d'extraction creuse"
msgid "debug unpack-trees"
msgstr "déboguer unpack-trees"
-#: builtin/reflog.c:428
+#: builtin/reflog.c:423
#, c-format
msgid "'%s' for '%s' is not a valid timestamp"
msgstr "'%s' pour '%s' n'est pas un horodatage valide"
-#: builtin/reflog.c:545 builtin/reflog.c:550
+#: builtin/reflog.c:540 builtin/reflog.c:545
#, c-format
msgid "'%s' is not a valid timestamp"
msgstr "'%s' n'est pas un horodatage valide"
@@ -9559,57 +9768,47 @@ msgstr ""
"spécifier les branches à suivre n'a de sens qu'avec des miroirs de "
"rapatriement"
-#: builtin/remote.c:193 builtin/remote.c:643
+#: builtin/remote.c:190 builtin/remote.c:633
#, c-format
msgid "remote %s already exists."
msgstr "la distante %s existe déjà."
-#: builtin/remote.c:197 builtin/remote.c:647
+#: builtin/remote.c:194 builtin/remote.c:637
#, c-format
msgid "'%s' is not a valid remote name"
msgstr "'%s' n'est pas un nom valide de distante"
-#: builtin/remote.c:241
+#: builtin/remote.c:234
#, c-format
msgid "Could not setup master '%s'"
msgstr "Impossible de paramétrer la maîtresse '%s'"
-#: builtin/remote.c:341
+#: builtin/remote.c:336
#, c-format
msgid "Could not get fetch map for refspec %s"
msgstr ""
"Impossible d'obtenir une correspondance distante pour la spécification de "
"référence %s"
-#: builtin/remote.c:442 builtin/remote.c:450
+#: builtin/remote.c:437 builtin/remote.c:445
msgid "(matching)"
msgstr "(correspond)"
-#: builtin/remote.c:454
+#: builtin/remote.c:449
msgid "(delete)"
msgstr "(supprimer)"
-#: builtin/remote.c:594 builtin/remote.c:600 builtin/remote.c:606
-#, c-format
-msgid "Could not append '%s' to '%s'"
-msgstr "Impossible d'ajouter '%s' à '%s'"
-
-#: builtin/remote.c:636 builtin/remote.c:775 builtin/remote.c:875
+#: builtin/remote.c:626 builtin/remote.c:761 builtin/remote.c:858
#, c-format
msgid "No such remote: %s"
msgstr "Distante inconnue : %s"
-#: builtin/remote.c:653
+#: builtin/remote.c:643
#, c-format
msgid "Could not rename config section '%s' to '%s'"
msgstr "Impossible de renommer la section de configuration '%s' en '%s'"
-#: builtin/remote.c:659 builtin/remote.c:827
-#, c-format
-msgid "Could not remove config section '%s'"
-msgstr "Impossible de supprimer la section de configuration '%s'"
-
-#: builtin/remote.c:674
+#: builtin/remote.c:663
#, c-format
msgid ""
"Not updating non-default fetch refspec\n"
@@ -9620,27 +9819,17 @@ msgstr ""
"\t%s\n"
"\tVeuillez mettre à jour la configuration manuellement si nécessaire."
-#: builtin/remote.c:680
-#, c-format
-msgid "Could not append '%s'"
-msgstr "Impossible d'ajouter '%s'"
-
-#: builtin/remote.c:691
-#, c-format
-msgid "Could not set '%s'"
-msgstr "Impossible de définir '%s'"
-
-#: builtin/remote.c:713
+#: builtin/remote.c:699
#, c-format
msgid "deleting '%s' failed"
msgstr "échec de suppression de '%s'"
-#: builtin/remote.c:747
+#: builtin/remote.c:733
#, c-format
msgid "creating '%s' failed"
msgstr "échec de création de '%s'"
-#: builtin/remote.c:813
+#: builtin/remote.c:796
msgid ""
"Note: A branch outside the refs/remotes/ hierarchy was not removed;\n"
"to delete it, use:"
@@ -9655,120 +9844,125 @@ msgstr[1] ""
"supprimées ;\n"
"pour les supprimer, utilisez :"
-#: builtin/remote.c:928
+#: builtin/remote.c:810
+#, c-format
+msgid "Could not remove config section '%s'"
+msgstr "Impossible de supprimer la section de configuration '%s'"
+
+#: builtin/remote.c:911
#, c-format
msgid " new (next fetch will store in remotes/%s)"
msgstr " nouveau (le prochain rapatriement (fetch) stockera dans remotes/%s)"
-#: builtin/remote.c:931
+#: builtin/remote.c:914
msgid " tracked"
msgstr " suivi"
-#: builtin/remote.c:933
+#: builtin/remote.c:916
msgid " stale (use 'git remote prune' to remove)"
msgstr " dépassé (utilisez 'git remote prune' pour supprimer)"
-#: builtin/remote.c:935
+#: builtin/remote.c:918
msgid " ???"
msgstr " ???"
-#: builtin/remote.c:976
+#: builtin/remote.c:959
#, c-format
msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch"
msgstr "branch.%s.merge invalide ; ne peut pas rebaser sur plus d'une branche"
-#: builtin/remote.c:983
+#: builtin/remote.c:967
#, c-format
-msgid "rebases onto remote %s"
-msgstr "rebase sur la distante %s"
+msgid "rebases interactively onto remote %s"
+msgstr "rebase de manière interactive sur la distante %s"
-#: builtin/remote.c:986
+#: builtin/remote.c:971
#, c-format
msgid " merges with remote %s"
msgstr " fusionne avec la distante %s"
-#: builtin/remote.c:987
+#: builtin/remote.c:972
msgid " and with remote"
msgstr " et avec la distante"
-#: builtin/remote.c:989
+#: builtin/remote.c:974
#, c-format
msgid "merges with remote %s"
msgstr "fusionne avec la distante %s"
-#: builtin/remote.c:990
+#: builtin/remote.c:975
msgid " and with remote"
msgstr " et avec la distante"
-#: builtin/remote.c:1036
+#: builtin/remote.c:1021
msgid "create"
msgstr "créer"
-#: builtin/remote.c:1039
+#: builtin/remote.c:1024
msgid "delete"
msgstr "supprimer"
-#: builtin/remote.c:1043
+#: builtin/remote.c:1028
msgid "up to date"
msgstr "à jour"
-#: builtin/remote.c:1046
+#: builtin/remote.c:1031
msgid "fast-forwardable"
msgstr "peut être mis à jour en avance rapide"
-#: builtin/remote.c:1049
+#: builtin/remote.c:1034
msgid "local out of date"
msgstr "le local n'est pas à jour"
-#: builtin/remote.c:1056
+#: builtin/remote.c:1041
#, c-format
msgid " %-*s forces to %-*s (%s)"
msgstr " %-*s force vers %-*s (%s)"
-#: builtin/remote.c:1059
+#: builtin/remote.c:1044
#, c-format
msgid " %-*s pushes to %-*s (%s)"
msgstr " %-*s pousse vers %-*s (%s)"
-#: builtin/remote.c:1063
+#: builtin/remote.c:1048
#, c-format
msgid " %-*s forces to %s"
msgstr " %-*s force vers %s"
-#: builtin/remote.c:1066
+#: builtin/remote.c:1051
#, c-format
msgid " %-*s pushes to %s"
msgstr " %-*s pousse vers %s"
-#: builtin/remote.c:1134
+#: builtin/remote.c:1119
msgid "do not query remotes"
msgstr "ne pas interroger les distantes"
-#: builtin/remote.c:1161
+#: builtin/remote.c:1146
#, c-format
msgid "* remote %s"
msgstr "* distante %s"
-#: builtin/remote.c:1162
+#: builtin/remote.c:1147
#, c-format
msgid " Fetch URL: %s"
msgstr " URL de rapatriement : %s"
-#: builtin/remote.c:1163 builtin/remote.c:1314
+#: builtin/remote.c:1148 builtin/remote.c:1299
msgid "(no URL)"
msgstr "(pas d'URL)"
-#: builtin/remote.c:1172 builtin/remote.c:1174
+#: builtin/remote.c:1157 builtin/remote.c:1159
#, c-format
msgid " Push URL: %s"
msgstr " URL push : %s"
-#: builtin/remote.c:1176 builtin/remote.c:1178 builtin/remote.c:1180
+#: builtin/remote.c:1161 builtin/remote.c:1163 builtin/remote.c:1165
#, c-format
msgid " HEAD branch: %s"
msgstr " Branche HEAD : %s"
-#: builtin/remote.c:1182
+#: builtin/remote.c:1167
#, c-format
msgid ""
" HEAD branch (remote HEAD is ambiguous, may be one of the following):\n"
@@ -9776,158 +9970,158 @@ msgstr ""
" Branche HEAD (la HEAD distante est ambiguë, peut être l'une des "
"suivantes) :\n"
-#: builtin/remote.c:1194
+#: builtin/remote.c:1179
#, c-format
msgid " Remote branch:%s"
msgid_plural " Remote branches:%s"
msgstr[0] " Branche distante :%s"
msgstr[1] " Branches distantes :%s"
-#: builtin/remote.c:1197 builtin/remote.c:1224
+#: builtin/remote.c:1182 builtin/remote.c:1209
msgid " (status not queried)"
msgstr " (statut non demandé)"
-#: builtin/remote.c:1206
+#: builtin/remote.c:1191
msgid " Local branch configured for 'git pull':"
msgid_plural " Local branches configured for 'git pull':"
msgstr[0] " Branche locale configurée pour 'git pull' :"
msgstr[1] " Branches locales configurées pour 'git pull' :"
-#: builtin/remote.c:1214
+#: builtin/remote.c:1199
msgid " Local refs will be mirrored by 'git push'"
msgstr " Les références locales seront reflétées par 'git push'"
-#: builtin/remote.c:1221
+#: builtin/remote.c:1206
#, c-format
msgid " Local ref configured for 'git push'%s:"
msgid_plural " Local refs configured for 'git push'%s:"
msgstr[0] " Référence locale configurée pour 'git push'%s :"
msgstr[1] " Références locales configurées pour 'git push'%s :"
-#: builtin/remote.c:1242
+#: builtin/remote.c:1227
msgid "set refs/remotes/<name>/HEAD according to remote"
msgstr "définir refs/remotes/<nom>/HEAD selon la distante"
-#: builtin/remote.c:1244
+#: builtin/remote.c:1229
msgid "delete refs/remotes/<name>/HEAD"
msgstr "supprimer refs/remotes/<nom>/HEAD"
-#: builtin/remote.c:1259
+#: builtin/remote.c:1244
msgid "Cannot determine remote HEAD"
msgstr "Impossible de déterminer la HEAD distante"
-#: builtin/remote.c:1261
+#: builtin/remote.c:1246
msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
msgstr ""
"Il y a de multiples branches HEAD distantes. Veuillez en choisir une "
"explicitement avec :"
-#: builtin/remote.c:1271
+#: builtin/remote.c:1256
#, c-format
msgid "Could not delete %s"
msgstr "Impossible de supprimer %s"
-#: builtin/remote.c:1279
+#: builtin/remote.c:1264
#, c-format
msgid "Not a valid ref: %s"
msgstr "Référence non valide : %s"
-#: builtin/remote.c:1281
+#: builtin/remote.c:1266
#, c-format
msgid "Could not setup %s"
msgstr "Impossible de paramétrer %s"
-#: builtin/remote.c:1299
+#: builtin/remote.c:1284
#, c-format
msgid " %s will become dangling!"
msgstr " %s se retrouvera en suspens !"
-#: builtin/remote.c:1300
+#: builtin/remote.c:1285
#, c-format
msgid " %s has become dangling!"
msgstr " %s se retrouve en suspens !"
-#: builtin/remote.c:1310
+#: builtin/remote.c:1295
#, c-format
msgid "Pruning %s"
msgstr "Élimination de %s"
-#: builtin/remote.c:1311
+#: builtin/remote.c:1296
#, c-format
msgid "URL: %s"
msgstr "URL : %s"
-#: builtin/remote.c:1327
+#: builtin/remote.c:1312
#, c-format
msgid " * [would prune] %s"
msgstr " * [serait éliminé] %s"
-#: builtin/remote.c:1330
+#: builtin/remote.c:1315
#, c-format
msgid " * [pruned] %s"
msgstr " * [éliminé] %s"
-#: builtin/remote.c:1375
+#: builtin/remote.c:1360
msgid "prune remotes after fetching"
msgstr "éliminer les distants après le rapatriement"
-#: builtin/remote.c:1441 builtin/remote.c:1498 builtin/remote.c:1566
+#: builtin/remote.c:1423 builtin/remote.c:1477 builtin/remote.c:1545
#, c-format
msgid "No such remote '%s'"
msgstr "Pas de serveur remote '%s'"
-#: builtin/remote.c:1461
+#: builtin/remote.c:1439
msgid "add branch"
msgstr "ajouter une branche"
-#: builtin/remote.c:1468
+#: builtin/remote.c:1446
msgid "no remote specified"
msgstr "pas de serveur distant spécifié"
-#: builtin/remote.c:1485
+#: builtin/remote.c:1463
msgid "query push URLs rather than fetch URLs"
msgstr "interroger les URLs de poussée plutôt que les URLs de récupération"
-#: builtin/remote.c:1487
+#: builtin/remote.c:1465
msgid "return all URLs"
msgstr "retourner toutes les URLs"
-#: builtin/remote.c:1515
+#: builtin/remote.c:1493
#, c-format
msgid "no URLs configured for remote '%s'"
msgstr "aucune URL configurée pour le dépôt distant '%s'"
-#: builtin/remote.c:1541
+#: builtin/remote.c:1519
msgid "manipulate push URLs"
msgstr "manipuler les URLs push"
-#: builtin/remote.c:1543
+#: builtin/remote.c:1521
msgid "add URL"
msgstr "ajouter une URL"
-#: builtin/remote.c:1545
+#: builtin/remote.c:1523
msgid "delete URLs"
msgstr "supprimer des URLs"
-#: builtin/remote.c:1552
+#: builtin/remote.c:1530
msgid "--add --delete doesn't make sense"
msgstr "--add --delete n'a aucun sens"
-#: builtin/remote.c:1592
+#: builtin/remote.c:1571
#, c-format
msgid "Invalid old URL pattern: %s"
msgstr "Motif d'URL ancien invalide : %s"
-#: builtin/remote.c:1600
+#: builtin/remote.c:1579
#, c-format
msgid "No such URL found: %s"
msgstr "Pas d'URL trouvée : %s"
-#: builtin/remote.c:1602
+#: builtin/remote.c:1581
msgid "Will not delete all non-push URLs"
msgstr "Pas de suppression de toutes les URLs non-push"
-#: builtin/remote.c:1616
+#: builtin/remote.c:1595
msgid "be verbose; must be placed before a subcommand"
msgstr "être verbeux : doit être placé avant une sous-commande"
@@ -10234,7 +10428,7 @@ 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:354
+#: builtin/rev-list.c:350
msgid "rev-list does not support display of notes"
msgstr "rev-list ne supporte l'affichage des notes"
@@ -10492,30 +10686,25 @@ msgstr "afficher les messages du greffon de protocole distant"
msgid "git shortlog [<options>] [<revision-range>] [[--] [<path>...]]"
msgstr "git shortlog [<options>] [<intervalle-révisions>] [[--] [<chemin>...]]"
-#: builtin/shortlog.c:131
-#, c-format
-msgid "Missing author: %s"
-msgstr "Auteur manquant : %s"
-
-#: builtin/shortlog.c:230
+#: builtin/shortlog.c:242
msgid "sort output according to the number of commits per author"
msgstr "trier la sortie sur le nombre de validations par auteur"
-#: builtin/shortlog.c:232
+#: builtin/shortlog.c:244
msgid "Suppress commit descriptions, only provides commit count"
msgstr ""
"Supprimer les descriptions de validation, fournit seulement le nombre de "
"validations"
-#: builtin/shortlog.c:234
+#: builtin/shortlog.c:246
msgid "Show the email address of each author"
msgstr "Afficher l'adresse e-mail de chaque auteur"
-#: builtin/shortlog.c:235
+#: builtin/shortlog.c:247
msgid "w[,i1[,i2]]"
msgstr "w[,i1[,i2]]"
-#: builtin/shortlog.c:236
+#: builtin/shortlog.c:248
msgid "Linewrap output"
msgstr "Couper les lignes"
@@ -10665,45 +10854,45 @@ msgstr ""
"commentaire"
#: builtin/stripspace.c:38
-msgid "prepend comment character and blank to each line"
+msgid "prepend comment character and space to each line"
msgstr "ajouter devant chaque ligne le caractère de commentaire et un espace"
-#: builtin/submodule--helper.c:79 builtin/submodule--helper.c:167
+#: builtin/submodule--helper.c:73 builtin/submodule--helper.c:161
msgid "alternative anchor for relative paths"
msgstr "ancre alternative pour les chemins relatifs"
-#: builtin/submodule--helper.c:84
+#: builtin/submodule--helper.c:78
msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
msgstr "git submodule--helper list [--prefix=<chemin>] [<chemin>...]"
-#: builtin/submodule--helper.c:114
+#: builtin/submodule--helper.c:108
msgid "git submodule--helper name <path>"
msgstr "git submodule--helper <nom> <chemin>"
-#: builtin/submodule--helper.c:120
+#: builtin/submodule--helper.c:114
#, c-format
msgid "no submodule mapping found in .gitmodules for path '%s'"
msgstr ""
"Pas de mise en correspondance du sous-module trouvé dans .gitmodules pour le "
"chemin '%s'"
-#: builtin/submodule--helper.c:170
+#: builtin/submodule--helper.c:164
msgid "where the new submodule will be cloned to"
msgstr "emplacement où le sous-module sera cloné"
-#: builtin/submodule--helper.c:173
+#: builtin/submodule--helper.c:167
msgid "name of the new submodule"
msgstr "nom du nouveau sous-module"
-#: builtin/submodule--helper.c:176
+#: builtin/submodule--helper.c:170
msgid "url where to clone the submodule from"
msgstr "URL depuis laquelle cloner le sous-module"
-#: builtin/submodule--helper.c:182
+#: builtin/submodule--helper.c:176
msgid "depth for shallow clones"
msgstr "profondeur de l'historique des clones superficiels"
-#: builtin/submodule--helper.c:188
+#: builtin/submodule--helper.c:182
msgid ""
"git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
"<repository>] [--name <name>] [--url <url>][--depth <depth>] [--] [<path>...]"
@@ -10712,39 +10901,39 @@ msgstr ""
"<dépôt>] [--name <nom>] [--url <url>][--depth <profondeur>] [--] "
"[<chemin>...]"
-#: builtin/submodule--helper.c:202 builtin/submodule--helper.c:208
-#: builtin/submodule--helper.c:216
+#: builtin/submodule--helper.c:196 builtin/submodule--helper.c:202
+#: builtin/submodule--helper.c:210
#, c-format
msgid "could not create directory '%s'"
msgstr "impossible de créer le répertoire '%s'"
-#: builtin/submodule--helper.c:204
+#: builtin/submodule--helper.c:198
#, c-format
msgid "clone of '%s' into submodule path '%s' failed"
msgstr "Le clonage de '%s' dans le chemin de sous-module '%s' a échoué"
-#: builtin/submodule--helper.c:227
+#: builtin/submodule--helper.c:221
#, c-format
msgid "cannot open file '%s'"
msgstr "impossible d'ouvrir le fichier '%s'"
-#: builtin/submodule--helper.c:232
+#: builtin/submodule--helper.c:226
#, c-format
msgid "could not close file %s"
msgstr "impossible de fermer le fichier %s"
-#: builtin/submodule--helper.c:247
+#: builtin/submodule--helper.c:241
#, c-format
msgid "could not get submodule directory for '%s'"
msgstr "impossible de créer le répertoire de sous-module pour '%s'"
-#: builtin/submodule--helper.c:273
+#: builtin/submodule--helper.c:267
msgid "fatal: submodule--helper subcommand must be called with a subcommand"
msgstr ""
"fatal : la sous-commande submodule--helper doit être appelée avec une sous-"
"commande"
-#: builtin/submodule--helper.c:280
+#: builtin/submodule--helper.c:274
#, c-format
msgid "fatal: '%s' is not a valid submodule--helper subcommand"
msgstr "fatal : '%s' n'est pas une sous-commande valide de submodule--helper"
@@ -10961,7 +11150,7 @@ msgstr "l'option --points-at est autorisée seulement avec -l."
#: builtin/tag.c:425
msgid "--merged and --no-merged option are only allowed with -l"
-msgstr "les options --merged et --no-merged ne sont autorisées qu'avec -l."
+msgstr "les options --merged et --no-merged ne sont autorisées qu'avec -l"
#: builtin/tag.c:433
msgid "only one -F or -m option is allowed."
@@ -10990,200 +11179,213 @@ msgstr "Étiquette '%s' mise à jour (elle était sur %s)\n"
msgid "Unpacking objects"
msgstr "Dépaquetage des objets"
-#: builtin/update-index.c:70
+#: builtin/update-index.c:79
#, c-format
msgid "failed to create directory %s"
msgstr "échec de la création du répertoire %s"
-#: builtin/update-index.c:76
+#: builtin/update-index.c:85
#, c-format
msgid "failed to stat %s"
msgstr "échec du stat de %s"
-#: builtin/update-index.c:86
+#: builtin/update-index.c:95
#, c-format
msgid "failed to create file %s"
msgstr "échec de la création du fichier %s"
-#: builtin/update-index.c:94
+#: builtin/update-index.c:103
#, c-format
msgid "failed to delete file %s"
msgstr "échec de la suppression du fichier %s"
-#: builtin/update-index.c:101 builtin/update-index.c:203
+#: builtin/update-index.c:110 builtin/update-index.c:212
#, c-format
msgid "failed to delete directory %s"
msgstr "échec de la suppression du répertoire %s"
-#: builtin/update-index.c:124
+#: builtin/update-index.c:133
#, c-format
-msgid "Testing "
-msgstr "Test en cours "
+msgid "Testing mtime in '%s' "
+msgstr "Test du mtime dans '%s' "
-#: builtin/update-index.c:136
+#: builtin/update-index.c:145
msgid "directory stat info does not change after adding a new file"
msgstr ""
"l'information de stat du répertoire ne change pas après ajout d'un fichier"
-#: builtin/update-index.c:149
+#: builtin/update-index.c:158
msgid "directory stat info does not change after adding a new directory"
msgstr ""
"l'information de stat du répertoire ne change pas après ajout d'un répertoire"
-#: builtin/update-index.c:162
+#: builtin/update-index.c:171
msgid "directory stat info changes after updating a file"
msgstr ""
"l'information de stat du répertoire change après mise à jour d'un fichier"
-#: builtin/update-index.c:173
+#: builtin/update-index.c:182
msgid "directory stat info changes after adding a file inside subdirectory"
msgstr ""
"l'information de stat du répertoire change après l'ajout d'un fichier dans "
"un sous-répertoire"
-#: builtin/update-index.c:184
+#: builtin/update-index.c:193
msgid "directory stat info does not change after deleting a file"
msgstr ""
"l'information de stat du répertoire ne change pas après la suppression d'un "
"fichier<"
-#: builtin/update-index.c:197
+#: builtin/update-index.c:206
msgid "directory stat info does not change after deleting a directory"
msgstr ""
"l'information de stat du répertoire ne change pas après la suppression d'un "
"répertoire"
-#: builtin/update-index.c:204
+#: builtin/update-index.c:213
msgid " OK"
msgstr " OK"
-#: builtin/update-index.c:564
+#: builtin/update-index.c:575
msgid "git update-index [<options>] [--] [<file>...]"
msgstr "git update-index [<options>] [--] [<fichier>...]"
-#: builtin/update-index.c:918
+#: builtin/update-index.c:930
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:921
+#: builtin/update-index.c:933
msgid "refresh: ignore submodules"
msgstr "rafraîchir : ignorer les sous-modules"
-#: builtin/update-index.c:924
+#: builtin/update-index.c:936
msgid "do not ignore new files"
msgstr "ne pas ignorer les nouveaux fichiers"
-#: builtin/update-index.c:926
+#: builtin/update-index.c:938
msgid "let files replace directories and vice-versa"
msgstr "laisser les fichiers remplacer des répertoires et vice-versa"
-#: builtin/update-index.c:928
+#: builtin/update-index.c:940
msgid "notice files missing from worktree"
msgstr "aviser des fichiers manquants dans la copie de travail"
-#: builtin/update-index.c:930
+#: builtin/update-index.c:942
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:933
+#: builtin/update-index.c:945
msgid "refresh stat information"
msgstr "rafraîchir l'information de stat"
-#: builtin/update-index.c:937
+#: builtin/update-index.c:949
msgid "like --refresh, but ignore assume-unchanged setting"
msgstr "comme --refresh, mais en ignorant l'option assume-unchanged"
-#: builtin/update-index.c:941
+#: builtin/update-index.c:953
msgid "<mode>,<object>,<path>"
msgstr "<mode>, <objet>, <chemin>"
-#: builtin/update-index.c:942
+#: builtin/update-index.c:954
msgid "add the specified entry to the index"
msgstr "ajouter l'élément spécifié dans l'index"
-#: builtin/update-index.c:946
+#: builtin/update-index.c:958
msgid "(+/-)x"
msgstr "(+/-)x"
-#: builtin/update-index.c:947
+#: builtin/update-index.c:959
msgid "override the executable bit of the listed files"
msgstr "outrepasser le bit exécutable pour les fichiers listés"
-#: builtin/update-index.c:951
+#: builtin/update-index.c:963
msgid "mark files as \"not changing\""
msgstr "marquer les fichiers comme \"non changeants\""
-#: builtin/update-index.c:954
+#: builtin/update-index.c:966
msgid "clear assumed-unchanged bit"
msgstr "mettre à zéro le bit supposé-non-modifié"
-#: builtin/update-index.c:957
+#: builtin/update-index.c:969
msgid "mark files as \"index-only\""
msgstr "marquer les fichiers comme \"index seulement\""
-#: builtin/update-index.c:960
+#: builtin/update-index.c:972
msgid "clear skip-worktree bit"
msgstr "mettre à zéro le bit sauter-la-copie-de travail"
-#: builtin/update-index.c:963
+#: builtin/update-index.c:975
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:965
+#: builtin/update-index.c:977
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:967
+#: builtin/update-index.c:979
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:969
+#: builtin/update-index.c:981
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:973
+#: builtin/update-index.c:985
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:977
+#: builtin/update-index.c:989
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:981
+#: builtin/update-index.c:993
msgid "only update entries that differ from HEAD"
msgstr "mettre à jour seulement les éléments qui diffèrent de HEAD"
-#: builtin/update-index.c:985
+#: builtin/update-index.c:997
msgid "ignore files missing from worktree"
msgstr "ignorer les fichiers manquants dans la copie de travail"
-#: builtin/update-index.c:988
+#: builtin/update-index.c:1000
msgid "report actions to standard output"
msgstr "afficher les actions sur la sortie standard"
-#: builtin/update-index.c:990
+#: builtin/update-index.c:1002
msgid "(for porcelains) forget saved unresolved conflicts"
msgstr "(pour porcelaines) oublier les conflits sauvés et non résolus"
-#: builtin/update-index.c:994
+#: builtin/update-index.c:1006
msgid "write index in this format"
msgstr "écrire l'index dans ce format"
-#: builtin/update-index.c:996
+#: builtin/update-index.c:1008
msgid "enable or disable split index"
msgstr "activer ou désactiver l'index divisé"
-#: builtin/update-index.c:998
+#: builtin/update-index.c:1010
msgid "enable/disable untracked cache"
-msgstr "activer ou désactiver le cache non-suivi"
+msgstr "activer ou désactiver le cache de non-suivis"
-#: builtin/update-index.c:1000
+#: builtin/update-index.c:1012
+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:1014
msgid "enable untracked cache without testing the filesystem"
-msgstr "activer le cache non-suivi sans tester le système de fichier"
+msgstr "activer le cache de non-suivis sans tester le système de fichier"
+
+#: builtin/update-index.c:1134
+msgid "Untracked cache disabled"
+msgstr "Le cache non suivi est désactivé"
+
+#: builtin/update-index.c:1146
+#, c-format
+msgid "Untracked cache enabled for '%s'"
+msgstr "Le cache non suivi est activé pour '%s'"
#: builtin/update-ref.c:9
msgid "git update-ref [<options>] -d <refname> [<old-val>]"
@@ -11305,35 +11507,35 @@ msgstr "échec de la suppression de %s"
msgid "'%s' already exists"
msgstr "'%s' existe déjà"
-#: builtin/worktree.c:235
+#: builtin/worktree.c:233
#, c-format
msgid "could not create directory of '%s'"
msgstr "impossible de créer le répertoire de '%s'"
-#: builtin/worktree.c:271
+#: builtin/worktree.c:269
#, c-format
msgid "Preparing %s (identifier %s)"
msgstr "Préparation de %s (identifiant %s)"
-#: builtin/worktree.c:319
+#: builtin/worktree.c:317
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:321
+#: builtin/worktree.c:319
msgid "create a new branch"
msgstr "créer une nouvelle branche"
-#: builtin/worktree.c:323
+#: builtin/worktree.c:321
msgid "create or reset a branch"
msgstr "créer ou réinitialiser une branche"
-#: builtin/worktree.c:324
+#: builtin/worktree.c:322
msgid "detach HEAD at named commit"
msgstr "détacher la HEAD au commit nommé"
-#: builtin/worktree.c:331
+#: builtin/worktree.c:329
msgid "-b, -B, and --detach are mutually exclusive"
msgstr "-b, -B et --detach sont mutuellement exclusifs"
@@ -11353,7 +11555,7 @@ msgstr "écrire l'objet arbre pour un sous-répertoire <préfixe>"
msgid "only useful for debugging"
msgstr "seulement utile pour le débogage"
-#: credential-cache--daemon.c:255
+#: credential-cache--daemon.c:262
msgid "print debugging messages to stderr"
msgstr "afficher les messages de debug sur stderr"
@@ -11367,6 +11569,10 @@ msgstr ""
"quelques concepts. Voir 'git help <commande>' ou 'git help <concept>'\n"
"pour en lire plus à propos d'une commande spécifique ou d'un concept."
+#: http.c:321
+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"
+
#: common-cmds.h:9
msgid "start a working area (see also: git help tutorial)"
msgstr "démarrer une zone de travail (voir aussi : git help tutorial)"
@@ -11451,9 +11657,8 @@ msgid "Update remote refs along with associated objects"
msgstr "Mettre à jour les références distantes ainsi que les objets associés"
#: common-cmds.h:32
-msgid "Forward-port local commits to the updated upstream head"
-msgstr ""
-"Reporter les validations locales sur le sommet mis à jour d'une branche amont"
+msgid "Reapply commits on top of another base tip"
+msgstr "Réapplication des commits sur le sommet de l'autre base"
#: common-cmds.h:33
msgid "Reset current HEAD to the specified state"
@@ -12179,7 +12384,7 @@ msgstr ""
"Le sous-module '$name' ($url) n'est pas enregistré pour le chemin "
"'$displaypath'"
-#: git-submodule.sh:705
+#: git-submodule.sh:723
#, sh-format
msgid ""
"Submodule path '$displaypath' not initialized\n"
@@ -12188,57 +12393,57 @@ msgstr ""
"Chemin de sous-module '$displaypath' non initialisé\n"
"Peut-être souhaitez-vous utiliser 'update --init' ?"
-#: git-submodule.sh:718
+#: git-submodule.sh:736
#, sh-format
msgid "Unable to find current revision in submodule path '$displaypath'"
msgstr ""
"Impossible de trouver la révision courante dans le chemin de sous-module "
"'$displaypath'"
-#: git-submodule.sh:727
+#: git-submodule.sh:745
#, sh-format
msgid "Unable to fetch in submodule path '$sm_path'"
msgstr "Impossible de rapatrier dans le chemin de sous-module '$sm_path'"
-#: git-submodule.sh:751
+#: git-submodule.sh:768
#, sh-format
msgid "Unable to fetch in submodule path '$displaypath'"
msgstr "Impossible de rapatrier dans le chemin de sous-module '$displaypath'"
-#: git-submodule.sh:765
+#: git-submodule.sh:788
#, sh-format
msgid "Unable to checkout '$sha1' in submodule path '$displaypath'"
msgstr ""
"Impossible d'extraire '$sha1' dans le chemin de sous-module '$displaypath'"
-#: git-submodule.sh:766
+#: git-submodule.sh:789
#, sh-format
msgid "Submodule path '$displaypath': checked out '$sha1'"
msgstr "Chemin de sous-module '$displaypath' : '$sha1' extrait"
-#: git-submodule.sh:770
+#: git-submodule.sh:793
#, sh-format
msgid "Unable to rebase '$sha1' in submodule path '$displaypath'"
msgstr ""
"Impossible de rebaser '$sha1' dans le chemin de sous-module '$displaypath'"
-#: git-submodule.sh:771
+#: git-submodule.sh:794
#, sh-format
msgid "Submodule path '$displaypath': rebased into '$sha1'"
msgstr "Chemin de sous-module '$displaypath' : rebasé dans '$sha1'"
-#: git-submodule.sh:776
+#: git-submodule.sh:799
#, sh-format
msgid "Unable to merge '$sha1' in submodule path '$displaypath'"
msgstr ""
"Impossible de fusionner '$sha1' dans le chemin de sous-module '$displaypath'"
-#: git-submodule.sh:777
+#: git-submodule.sh:800
#, sh-format
msgid "Submodule path '$displaypath': merged in '$sha1'"
msgstr "Chemin de sous-module '$displaypath' : fusionné dans '$sha1'"
-#: git-submodule.sh:782
+#: git-submodule.sh:805
#, sh-format
msgid ""
"Execution of '$command $sha1' failed in submodule path '$prefix$sm_path'"
@@ -12246,56 +12451,137 @@ msgstr ""
"L'exécution de '$command $sha1' a échoué dans le chemin de sous-module "
"'$prefix$sm_path'"
-#: git-submodule.sh:783
+#: git-submodule.sh:806
#, sh-format
msgid "Submodule path '$prefix$sm_path': '$command $sha1'"
msgstr "Chemin de sous-module '$prefix$sm_path' : '$command $sha1'"
-#: git-submodule.sh:813
+#: git-submodule.sh:836
#, sh-format
msgid "Failed to recurse into submodule path '$displaypath'"
msgstr "Échec de parcours dans le chemin du sous-module '$displaypath'"
-#: git-submodule.sh:921
+#: git-submodule.sh:944
msgid "The --cached option cannot be used with the --files option"
msgstr "L'option --cached ne peut pas être utilisée avec l'option --files"
-#: git-submodule.sh:973
+#: git-submodule.sh:996
#, sh-format
msgid "unexpected mode $mod_dst"
msgstr "mode $mod_dst inattendu"
-#: git-submodule.sh:993
+#: git-submodule.sh:1016
#, sh-format
msgid " Warn: $display_name doesn't contain commit $sha1_src"
msgstr " Attention : $display_name ne contient pas la validation $sha1_src"
-#: git-submodule.sh:996
+#: git-submodule.sh:1019
#, sh-format
msgid " Warn: $display_name doesn't contain commit $sha1_dst"
msgstr " Attention : $display_name ne contient pas la validation $sha1_dst"
-#: git-submodule.sh:999
+#: git-submodule.sh:1022
#, sh-format
msgid " Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst"
msgstr ""
" Attention : $display_name ne contient pas les validations $sha1_src et "
"$sha1_dst"
-#: git-submodule.sh:1024
+#: git-submodule.sh:1047
msgid "blob"
msgstr "blob"
-#: git-submodule.sh:1142
+#: git-submodule.sh:1165
#, sh-format
msgid "Failed to recurse into submodule path '$sm_path'"
msgstr "Échec de parcours dans le chemin du sous-module '$sm_path'"
-#: git-submodule.sh:1206
+#: git-submodule.sh:1229
#, sh-format
msgid "Synchronizing submodule url for '$displaypath'"
msgstr "Synchronisation de l'URL sous-module pour '$displaypath'"
+#~ msgid "Forward-port local commits to the updated upstream head"
+#~ msgstr ""
+#~ "Reporter les validations locales sur le sommet mis à jour d'une branche "
+#~ "amont"
+
+#~ msgid "unable to parse format"
+#~ msgstr "impossible d'analyser le format"
+
+#~ msgid "improper format entered align:%s"
+#~ msgstr "format non convenable align:%s"
+
+#~ msgid "Could not set core.worktree in %s"
+#~ msgstr "Impossible de paramétrer core.worktree dans %s"
+
+#~ msgid ""
+#~ "push.default is unset; its implicit value has changed in\n"
+#~ "Git 2.0 from 'matching' to 'simple'. To squelch this message\n"
+#~ "and maintain the traditional behavior, use:\n"
+#~ "\n"
+#~ " git config --global push.default matching\n"
+#~ "\n"
+#~ "To squelch this message and adopt the new behavior now, use:\n"
+#~ "\n"
+#~ " git config --global push.default simple\n"
+#~ "\n"
+#~ "When push.default is set to 'matching', git will push local branches\n"
+#~ "to the remote branches that already exist with the same name.\n"
+#~ "\n"
+#~ "Since Git 2.0, Git defaults to the more conservative 'simple'\n"
+#~ "behavior, which only pushes the current branch to the corresponding\n"
+#~ "remote branch that 'git pull' uses to update the current branch.\n"
+#~ "\n"
+#~ "See 'git help config' and search for 'push.default' for further "
+#~ "information.\n"
+#~ "(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode\n"
+#~ "'current' instead of 'simple' if you sometimes use older versions of Git)"
+#~ msgstr ""
+#~ "push.default n'est pas défini ; sa valeur implicite a changé dans Git "
+#~ "2.0\n"
+#~ "de 'matching' vers 'simple'. Pour supprimer ce message et maintenir\n"
+#~ "le comportement actuel après la modification de la valeur de défaut, "
+#~ "utilisez :\n"
+#~ "\n"
+#~ " git config --global push.default matching\n"
+#~ "\n"
+#~ "Pour supprimer ce message et adopter le nouveau comportement maintenant, "
+#~ "utilisez :\n"
+#~ "\n"
+#~ " git config --global push.default simple\n"
+#~ "\n"
+#~ "Quand push.default vaudra 'matching', git poussera les branches locales\n"
+#~ "sur les branches distantes qui existent déjà avec le même nom.\n"
+#~ "\n"
+#~ "Depuis Git 2.0, Git utilise par défaut le comportement plus conservatif "
+#~ "'simple'\n"
+#~ "qui ne pousse la branche courante que vers la branche distante "
+#~ "correspondante\n"
+#~ "que 'git pull' utilise pour mettre à jour la branche courante.\n"
+#~ " \n"
+#~ "Voir 'git help config' et chercher 'push.default' pour plus "
+#~ "d'information.\n"
+#~ "(le mode 'simple' a été introduit dans Git 1.7.11. Utilisez le mode "
+#~ "similaire\n"
+#~ "'current' au lieu de 'simple' si vous utilisez de temps en temps "
+#~ "d'anciennes versions de Git)"
+
+#~ msgid "check|on-demand|no"
+#~ msgstr "check|on-demand|no"
+
+#~ msgid "Could not append '%s'"
+#~ msgstr "Impossible d'ajouter '%s'"
+
+#~ msgid "Could not set '%s'"
+#~ msgstr "Impossible de définir '%s'"
+
+#~ msgid "Missing author: %s"
+#~ msgstr "Auteur manquant : %s"
+
+#~ msgid "Testing "
+#~ msgstr "Test en cours "
+
#~ msgid "unable to look up current user in the passwd file: %s"
#~ msgstr ""
#~ "impossible de rechercher l'utilisateur actuel dans le fichier de mots de "
@@ -12369,9 +12655,6 @@ msgstr "Synchronisation de l'URL sous-module pour '$displaypath'"
#~ msgid "unable to parse value '%s' for option %s"
#~ msgstr "impossible d'analyser la valeur '%s' pour l'option %s"
-#~ msgid "unable to resolve HEAD"
-#~ msgstr "impossible de résoudre HEAD"
-
#~ msgid "-b and -B are mutually exclusive"
#~ msgstr "-b et -B sont mutuellement exclusifs"
@@ -12437,9 +12720,6 @@ msgstr "Synchronisation de l'URL sous-module pour '$displaypath'"
#~ msgid "prune .git/worktrees"
#~ msgstr "éliminer .git/worktrees"
-#~ msgid "--worktrees does not take extra arguments"
-#~ msgstr "--worktrees n'accepte pas d'argument supplémentaire"
-
#~ msgid "The most commonly used git commands are:"
#~ msgstr "Les commandes git les plus utilisées sont :"
@@ -12470,9 +12750,6 @@ msgstr "Synchronisation de l'URL sous-module pour '$displaypath'"
#~ msgid "force creation (when already exists)"
#~ msgstr "forcer la création (même si la cible existe)"
-#~ msgid "Malformed ident string: '%s'"
-#~ msgstr "Chaîne ident mal formée : '%s'"
-
#~ msgid "slot"
#~ msgstr "emplacement"
diff --git a/po/git.pot b/po/git.pot
index 068f4bbd10..72ef798cde 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: 2015-12-22 22:50+0800\n"
+"POT-Creation-Date: 2016-03-16 00:16+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"
@@ -29,7 +29,7 @@ msgid ""
"as appropriate to mark resolution and make a commit."
msgstr ""
-#: advice.c:101 builtin/merge.c:1225
+#: advice.c:101 builtin/merge.c:1226
msgid "You have not concluded your merge (MERGE_HEAD exists)."
msgstr ""
@@ -71,7 +71,7 @@ msgstr ""
msgid "archive format"
msgstr ""
-#: archive.c:430 builtin/log.c:1229
+#: archive.c:430 builtin/log.c:1232
msgid "prefix"
msgstr ""
@@ -79,11 +79,11 @@ msgstr ""
msgid "prepend prefix to each pathname in the archive"
msgstr ""
-#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2535
-#: builtin/blame.c:2536 builtin/config.c:58 builtin/fast-export.c:987
-#: builtin/fast-export.c:989 builtin/grep.c:707 builtin/hash-object.c:99
-#: builtin/ls-files.c:446 builtin/ls-files.c:449 builtin/notes.c:395
-#: builtin/notes.c:558 builtin/read-tree.c:109 parse-options.h:153
+#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2547
+#: builtin/blame.c:2548 builtin/config.c:60 builtin/fast-export.c:987
+#: builtin/fast-export.c:989 builtin/grep.c:720 builtin/hash-object.c:100
+#: builtin/ls-files.c:459 builtin/ls-files.c:462 builtin/notes.c:398
+#: builtin/notes.c:561 builtin/read-tree.c:109 parse-options.h:153
msgid "file"
msgstr ""
@@ -115,7 +115,7 @@ msgstr ""
msgid "list supported archive formats"
msgstr ""
-#: archive.c:451 builtin/archive.c:90 builtin/clone.c:77
+#: archive.c:451 builtin/archive.c:90 builtin/clone.c:78
msgid "repo"
msgstr ""
@@ -123,7 +123,7 @@ msgstr ""
msgid "retrieve the archive from remote repository <repo>"
msgstr ""
-#: archive.c:453 builtin/archive.c:92 builtin/notes.c:479
+#: archive.c:453 builtin/archive.c:92 builtin/notes.c:482
msgid "command"
msgstr ""
@@ -131,87 +131,100 @@ msgstr ""
msgid "path to the remote git-upload-archive command"
msgstr ""
-#: attr.c:265
+#: attr.c:263
msgid ""
"Negative patterns are ignored in git attributes\n"
"Use '\\!' for literal leading exclamation."
msgstr ""
-#: branch.c:61
+#: branch.c:53
+#, c-format
+msgid ""
+"\n"
+"After fixing the error cause you may try to fix up\n"
+"the remote tracking information by invoking\n"
+"\"git branch --set-upstream-to=%s%s%s\"."
+msgstr ""
+
+#: branch.c:67
#, c-format
msgid "Not setting branch %s as its own upstream."
msgstr ""
-#: branch.c:84
+#: branch.c:93
#, c-format
msgid "Branch %s set up to track remote branch %s from %s by rebasing."
msgstr ""
-#: branch.c:85
+#: branch.c:94
#, c-format
msgid "Branch %s set up to track remote branch %s from %s."
msgstr ""
-#: branch.c:89
+#: branch.c:98
#, c-format
msgid "Branch %s set up to track local branch %s by rebasing."
msgstr ""
-#: branch.c:90
+#: branch.c:99
#, c-format
msgid "Branch %s set up to track local branch %s."
msgstr ""
-#: branch.c:95
+#: branch.c:104
#, c-format
msgid "Branch %s set up to track remote ref %s by rebasing."
msgstr ""
-#: branch.c:96
+#: branch.c:105
#, c-format
msgid "Branch %s set up to track remote ref %s."
msgstr ""
-#: branch.c:100
+#: branch.c:109
#, c-format
msgid "Branch %s set up to track local ref %s by rebasing."
msgstr ""
-#: branch.c:101
+#: branch.c:110
#, c-format
msgid "Branch %s set up to track local ref %s."
msgstr ""
-#: branch.c:134
+#: branch.c:119
+msgid "Unable to write upstream branch configuration"
+msgstr ""
+
+#: branch.c:156
#, c-format
msgid "Not tracking: ambiguous information for ref %s"
msgstr ""
-#: branch.c:163
+#: branch.c:185
#, c-format
msgid "'%s' is not a valid branch name."
msgstr ""
-#: branch.c:168
+#: branch.c:190
#, c-format
msgid "A branch named '%s' already exists."
msgstr ""
-#: branch.c:176
+#: branch.c:198
msgid "Cannot force update the current branch."
msgstr ""
-#: branch.c:196
+#: branch.c:218
#, c-format
msgid "Cannot setup tracking information; starting point '%s' is not a branch."
msgstr ""
-#: branch.c:198
+#: branch.c:220
#, c-format
msgid "the requested upstream branch '%s' does not exist"
msgstr ""
-#: branch.c:200
+#: branch.c:222
msgid ""
"\n"
"If you are planning on basing your work on an upstream\n"
@@ -223,22 +236,22 @@ msgid ""
"\"git push -u\" to set the upstream config as you push."
msgstr ""
-#: branch.c:244
+#: branch.c:266
#, c-format
msgid "Not a valid object name: '%s'."
msgstr ""
-#: branch.c:264
+#: branch.c:286
#, c-format
msgid "Ambiguous object name: '%s'."
msgstr ""
-#: branch.c:269
+#: branch.c:291
#, c-format
msgid "Not a valid branch point: '%s'."
msgstr ""
-#: branch.c:322
+#: branch.c:344
#, c-format
msgid "'%s' is already checked out at '%s'"
msgstr ""
@@ -262,10 +275,10 @@ msgstr ""
msgid "Repository lacks these prerequisite commits:"
msgstr ""
-#: bundle.c:163 ref-filter.c:1372 sequencer.c:636 sequencer.c:1083
-#: builtin/blame.c:2734 builtin/commit.c:1045 builtin/log.c:334
-#: builtin/log.c:849 builtin/log.c:1461 builtin/log.c:1694 builtin/merge.c:358
-#: builtin/shortlog.c:158
+#: bundle.c:163 ref-filter.c:1462 sequencer.c:627 sequencer.c:1074
+#: builtin/blame.c:2754 builtin/commit.c:1045 builtin/log.c:334
+#: builtin/log.c:852 builtin/log.c:1467 builtin/log.c:1700 builtin/merge.c:358
+#: builtin/shortlog.c:170
msgid "revision walk setup failed"
msgstr ""
@@ -304,7 +317,7 @@ msgstr ""
msgid "ref '%s' is excluded by the rev-list options"
msgstr ""
-#: bundle.c:443 builtin/log.c:157 builtin/log.c:1369 builtin/shortlog.c:261
+#: bundle.c:443 builtin/log.c:157 builtin/log.c:1372 builtin/shortlog.c:273
#, c-format
msgid "unrecognized argument: %s"
msgstr ""
@@ -327,8 +340,8 @@ msgstr ""
msgid "invalid color value: %.*s"
msgstr ""
-#: commit.c:40 builtin/am.c:452 builtin/am.c:488 builtin/am.c:1520
-#: builtin/am.c:2149
+#: commit.c:40 builtin/am.c:437 builtin/am.c:473 builtin/am.c:1505
+#: builtin/am.c:2135
#, c-format
msgid "could not parse %s"
msgstr ""
@@ -342,59 +355,64 @@ msgstr ""
msgid "memory exhausted"
msgstr ""
-#: config.c:474 config.c:476
+#: config.c:475 config.c:477
#, c-format
-msgid "bad config file line %d in %s"
+msgid "bad config line %d in %s %s"
msgstr ""
-#: config.c:592
+#: config.c:593
#, c-format
-msgid "bad numeric config value '%s' for '%s' in %s: %s"
+msgid "bad numeric config value '%s' for '%s' in %s %s: %s"
msgstr ""
-#: config.c:594
+#: config.c:595
#, c-format
msgid "bad numeric config value '%s' for '%s': %s"
msgstr ""
-#: config.c:679
+#: config.c:680
#, c-format
msgid "failed to expand user dir in: '%s'"
msgstr ""
-#: config.c:757 config.c:768
+#: config.c:758 config.c:769
#, c-format
msgid "bad zlib compression level %d"
msgstr ""
-#: config.c:890
+#: config.c:891
#, c-format
msgid "invalid mode for object creation: %s"
msgstr ""
-#: config.c:1216
+#: config.c:1220
msgid "unable to parse command-line config"
msgstr ""
-#: config.c:1277
+#: config.c:1281
msgid "unknown error occured while reading the configuration files"
msgstr ""
-#: config.c:1601
+#: config.c:1629
#, c-format
msgid "unable to parse '%s' from command-line config"
msgstr ""
-#: config.c:1603
+#: config.c:1631
#, c-format
msgid "bad config variable '%s' in file '%s' at line %d"
msgstr ""
-#: config.c:1662
+#: config.c:1690
#, c-format
msgid "%s has multiple values"
msgstr ""
+#: config.c:2226
+#, c-format
+msgid "Could not set '%s' to '%s'"
+msgstr ""
+
#: connected.c:69
msgid "Could not run 'git rev-list'"
msgstr ""
@@ -508,33 +526,33 @@ msgid ""
"%s"
msgstr ""
-#: diff.c:3000
+#: diff.c:2997
#, c-format
msgid "external diff died, stopping at %s"
msgstr ""
-#: diff.c:3396
+#: diff.c:3393
msgid "--follow requires exactly one pathspec"
msgstr ""
-#: diff.c:3559
+#: diff.c:3556
#, c-format
msgid ""
"Failed to parse --dirstat/-X option parameter:\n"
"%s"
msgstr ""
-#: diff.c:3573
+#: diff.c:3570
#, c-format
msgid "Failed to parse --submodule option parameter: '%s'"
msgstr ""
-#: dir.c:1915
+#: dir.c:2004
msgid "failed to get kernel name and information"
msgstr ""
-#: dir.c:1998
-msgid "Untracked cache is disabled on this system."
+#: dir.c:2123
+msgid "Untracked cache is disabled on this system or location."
msgstr ""
#: gpg-interface.c:166 gpg-interface.c:237
@@ -574,48 +592,48 @@ msgstr ""
msgid "'%s': short read %s"
msgstr ""
-#: help.c:207
+#: help.c:205
#, c-format
msgid "available git commands in '%s'"
msgstr ""
-#: help.c:214
+#: help.c:212
msgid "git commands available from elsewhere on your $PATH"
msgstr ""
-#: help.c:246
+#: help.c:244
msgid "These are common Git commands used in various situations:"
msgstr ""
-#: help.c:311
+#: help.c:309
#, c-format
msgid ""
"'%s' appears to be a git command, but we were not\n"
"able to execute it. Maybe git-%s is broken?"
msgstr ""
-#: help.c:368
+#: help.c:366
msgid "Uh oh. Your system reports no Git commands at all."
msgstr ""
-#: help.c:390
+#: help.c:388
#, c-format
msgid ""
"WARNING: You called a Git command named '%s', which does not exist.\n"
"Continuing under the assumption that you meant '%s'"
msgstr ""
-#: help.c:395
+#: help.c:393
#, c-format
msgid "in %0.1f seconds automatically..."
msgstr ""
-#: help.c:402
+#: help.c:400
#, c-format
msgid "git: '%s' is not a git command. See 'git --help'."
msgstr ""
-#: help.c:406 help.c:466
+#: help.c:404 help.c:464
msgid ""
"\n"
"Did you mean this?"
@@ -625,7 +643,7 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: help.c:462
+#: help.c:460
#, c-format
msgid "%s: %s - %s"
msgstr ""
@@ -634,8 +652,8 @@ msgstr ""
msgid "failed to read the cache"
msgstr ""
-#: merge.c:94 builtin/am.c:2022 builtin/am.c:2057 builtin/checkout.c:376
-#: builtin/checkout.c:587 builtin/clone.c:722
+#: merge.c:94 builtin/am.c:2008 builtin/am.c:2043 builtin/checkout.c:376
+#: builtin/checkout.c:587 builtin/clone.c:730
msgid "unable to write new index file"
msgstr ""
@@ -653,233 +671,233 @@ msgstr ""
msgid "error building trees"
msgstr ""
-#: merge-recursive.c:686
+#: merge-recursive.c:689
#, c-format
msgid "failed to create path '%s'%s"
msgstr ""
-#: merge-recursive.c:697
+#: merge-recursive.c:700
#, c-format
msgid "Removing %s to make room for subdirectory\n"
msgstr ""
-#: merge-recursive.c:711 merge-recursive.c:732
+#: merge-recursive.c:714 merge-recursive.c:735
msgid ": perhaps a D/F conflict?"
msgstr ""
-#: merge-recursive.c:722
+#: merge-recursive.c:725
#, c-format
msgid "refusing to lose untracked file at '%s'"
msgstr ""
-#: merge-recursive.c:762
+#: merge-recursive.c:765
#, c-format
msgid "cannot read object %s '%s'"
msgstr ""
-#: merge-recursive.c:764
+#: merge-recursive.c:767
#, c-format
msgid "blob expected for %s '%s'"
msgstr ""
-#: merge-recursive.c:787 builtin/clone.c:369
+#: merge-recursive.c:790 builtin/clone.c:374
#, c-format
msgid "failed to open '%s'"
msgstr ""
-#: merge-recursive.c:795
+#: merge-recursive.c:798
#, c-format
msgid "failed to symlink '%s'"
msgstr ""
-#: merge-recursive.c:798
+#: merge-recursive.c:801
#, c-format
msgid "do not know what to do with %06o %s '%s'"
msgstr ""
-#: merge-recursive.c:936
+#: merge-recursive.c:939
msgid "Failed to execute internal merge"
msgstr ""
-#: merge-recursive.c:940
+#: merge-recursive.c:943
#, c-format
msgid "Unable to add %s to database"
msgstr ""
-#: merge-recursive.c:956
+#: merge-recursive.c:959
msgid "unsupported object type in the tree"
msgstr ""
-#: merge-recursive.c:1031 merge-recursive.c:1045
+#: merge-recursive.c:1034 merge-recursive.c:1048
#, 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:1037 merge-recursive.c:1050
+#: merge-recursive.c:1040 merge-recursive.c:1053
#, 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:1091
+#: merge-recursive.c:1094
msgid "rename"
msgstr ""
-#: merge-recursive.c:1091
+#: merge-recursive.c:1094
msgid "renamed"
msgstr ""
-#: merge-recursive.c:1147
+#: merge-recursive.c:1150
#, c-format
msgid "%s is a directory in %s adding as %s instead"
msgstr ""
-#: merge-recursive.c:1169
+#: merge-recursive.c:1172
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
"\"->\"%s\" in \"%s\"%s"
msgstr ""
-#: merge-recursive.c:1174
+#: merge-recursive.c:1177
msgid " (left unresolved)"
msgstr ""
-#: merge-recursive.c:1228
+#: merge-recursive.c:1231
#, c-format
msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
msgstr ""
-#: merge-recursive.c:1258
+#: merge-recursive.c:1261
#, c-format
msgid "Renaming %s to %s and %s to %s instead"
msgstr ""
-#: merge-recursive.c:1457
+#: merge-recursive.c:1460
#, c-format
msgid "CONFLICT (rename/add): Rename %s->%s in %s. %s added in %s"
msgstr ""
-#: merge-recursive.c:1467
+#: merge-recursive.c:1470
#, c-format
msgid "Adding merged %s"
msgstr ""
-#: merge-recursive.c:1472 merge-recursive.c:1674
+#: merge-recursive.c:1475 merge-recursive.c:1677
#, c-format
msgid "Adding as %s instead"
msgstr ""
-#: merge-recursive.c:1523
+#: merge-recursive.c:1526
#, c-format
msgid "cannot read object %s"
msgstr ""
-#: merge-recursive.c:1526
+#: merge-recursive.c:1529
#, c-format
msgid "object %s is not a blob"
msgstr ""
-#: merge-recursive.c:1578
+#: merge-recursive.c:1581
msgid "modify"
msgstr ""
-#: merge-recursive.c:1578
+#: merge-recursive.c:1581
msgid "modified"
msgstr ""
-#: merge-recursive.c:1588
+#: merge-recursive.c:1591
msgid "content"
msgstr ""
-#: merge-recursive.c:1595
+#: merge-recursive.c:1598
msgid "add/add"
msgstr ""
-#: merge-recursive.c:1629
+#: merge-recursive.c:1632
#, c-format
msgid "Skipped %s (merged same as existing)"
msgstr ""
-#: merge-recursive.c:1643
+#: merge-recursive.c:1646
#, c-format
msgid "Auto-merging %s"
msgstr ""
-#: merge-recursive.c:1647 git-submodule.sh:1025
+#: merge-recursive.c:1650 git-submodule.sh:1048
msgid "submodule"
msgstr ""
-#: merge-recursive.c:1648
+#: merge-recursive.c:1651
#, c-format
msgid "CONFLICT (%s): Merge conflict in %s"
msgstr ""
-#: merge-recursive.c:1734
+#: merge-recursive.c:1737
#, c-format
msgid "Removing %s"
msgstr ""
-#: merge-recursive.c:1759
+#: merge-recursive.c:1762
msgid "file/directory"
msgstr ""
-#: merge-recursive.c:1765
+#: merge-recursive.c:1768
msgid "directory/file"
msgstr ""
-#: merge-recursive.c:1770
+#: merge-recursive.c:1773
#, c-format
msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
msgstr ""
-#: merge-recursive.c:1780
+#: merge-recursive.c:1783
#, c-format
msgid "Adding %s"
msgstr ""
-#: merge-recursive.c:1797
+#: merge-recursive.c:1800
msgid "Fatal merge failure, shouldn't happen."
msgstr ""
-#: merge-recursive.c:1816
+#: merge-recursive.c:1819
msgid "Already up-to-date!"
msgstr ""
-#: merge-recursive.c:1825
+#: merge-recursive.c:1828
#, c-format
msgid "merging of trees %s and %s failed"
msgstr ""
-#: merge-recursive.c:1855
+#: merge-recursive.c:1858
#, c-format
msgid "Unprocessed path??? %s"
msgstr ""
-#: merge-recursive.c:1903
+#: merge-recursive.c:1906
msgid "Merging:"
msgstr ""
-#: merge-recursive.c:1916
+#: merge-recursive.c:1919
#, c-format
msgid "found %u common ancestor:"
msgid_plural "found %u common ancestors:"
msgstr[0] ""
msgstr[1] ""
-#: merge-recursive.c:1953
+#: merge-recursive.c:1956
msgid "merge returned no commit"
msgstr ""
-#: merge-recursive.c:2010
+#: merge-recursive.c:2013
#, c-format
msgid "Could not parse object '%s'"
msgstr ""
-#: merge-recursive.c:2021 builtin/merge.c:645
+#: merge-recursive.c:2024 builtin/merge.c:646
msgid "Unable to write index."
msgstr ""
@@ -993,12 +1011,12 @@ msgstr ""
msgid "%s: pathspec magic not supported by this command: %s"
msgstr ""
-#: pathspec.c:432
+#: pathspec.c:433
#, c-format
msgid "pathspec '%s' is beyond a symbolic link"
msgstr ""
-#: pathspec.c:441
+#: pathspec.c:442
msgid ""
"There is nothing to exclude from by :(exclude) patterns.\n"
"Perhaps you forgot to add either ':/' or '.' ?"
@@ -1026,163 +1044,248 @@ msgid ""
"Using version %i"
msgstr ""
-#: refs.c:543 builtin/merge.c:760 builtin/merge.c:871 builtin/merge.c:973
-#: builtin/merge.c:983
+#: refs.c:543 builtin/merge.c:761 builtin/merge.c:872 builtin/merge.c:974
+#: builtin/merge.c:984
#, c-format
msgid "Could not open '%s' for writing"
msgstr ""
-#: refs/files-backend.c:2359
+#: refs/files-backend.c:2374
#, c-format
msgid "could not delete reference %s: %s"
msgstr ""
-#: refs/files-backend.c:2362
+#: refs/files-backend.c:2377
#, c-format
msgid "could not delete references: %s"
msgstr ""
-#: refs/files-backend.c:2371
+#: refs/files-backend.c:2386
#, c-format
msgid "could not remove reference %s"
msgstr ""
-#: ref-filter.c:245
+#: ref-filter.c:55
#, c-format
-msgid "format: %%(end) atom used without corresponding atom"
+msgid "expected format: %%(color:<color>)"
msgstr ""
-#: ref-filter.c:704
+#: ref-filter.c:57
+#, c-format
+msgid "unrecognized color: %%(color:%s)"
+msgstr ""
+
+#: ref-filter.c:71
+#, c-format
+msgid "unrecognized format: %%(%s)"
+msgstr ""
+
+#: ref-filter.c:77
+#, c-format
+msgid "%%(body) does not take arguments"
+msgstr ""
+
+#: ref-filter.c:84
+#, c-format
+msgid "%%(subject) does not take arguments"
+msgstr ""
+
+#: ref-filter.c:101
#, c-format
msgid "positive value expected contents:lines=%s"
msgstr ""
-#: ref-filter.c:833
+#: ref-filter.c:103
#, c-format
-msgid "expected format: %%(color:<color>)"
+msgid "unrecognized %%(contents) argument: %s"
msgstr ""
-#: ref-filter.c:835
-msgid "unable to parse format"
+#: ref-filter.c:113
+#, c-format
+msgid "unrecognized %%(objectname) argument: %s"
msgstr ""
-#: ref-filter.c:870
+#: ref-filter.c:135
#, c-format
msgid "expected format: %%(align:<width>,<position>)"
msgstr ""
-#: ref-filter.c:893
+#: ref-filter.c:147
#, c-format
-msgid "improper format entered align:%s"
+msgid "unrecognized position:%s"
msgstr ""
-#: ref-filter.c:898
+#: ref-filter.c:151
+#, c-format
+msgid "unrecognized width:%s"
+msgstr ""
+
+#: ref-filter.c:157
+#, c-format
+msgid "unrecognized %%(align) argument: %s"
+msgstr ""
+
+#: ref-filter.c:161
#, c-format
msgid "positive width expected with the %%(align) atom"
msgstr ""
-#: ref-filter.c:1219
+#: ref-filter.c:244
+#, c-format
+msgid "malformed field name: %.*s"
+msgstr ""
+
+#: ref-filter.c:270
+#, c-format
+msgid "unknown field name: %.*s"
+msgstr ""
+
+#: ref-filter.c:372
+#, c-format
+msgid "format: %%(end) atom used without corresponding atom"
+msgstr ""
+
+#: ref-filter.c:424
+#, c-format
+msgid "malformed format string %s"
+msgstr ""
+
+#: ref-filter.c:878
+msgid ":strip= requires a positive integer argument"
+msgstr ""
+
+#: ref-filter.c:883
+#, c-format
+msgid "ref '%s' does not have %ld components to :strip"
+msgstr ""
+
+#: ref-filter.c:1046
+#, c-format
+msgid "unknown %.*s format %s"
+msgstr ""
+
+#: ref-filter.c:1066 ref-filter.c:1097
+#, c-format
+msgid "missing object %s for %s"
+msgstr ""
+
+#: ref-filter.c:1069 ref-filter.c:1100
+#, c-format
+msgid "parse_object_buffer failed on %s for %s"
+msgstr ""
+
+#: ref-filter.c:1311
#, c-format
msgid "malformed object at '%s'"
msgstr ""
-#: ref-filter.c:1561
+#: ref-filter.c:1373
+#, c-format
+msgid "ignoring ref with broken name %s"
+msgstr ""
+
+#: ref-filter.c:1378
+#, c-format
+msgid "ignoring broken ref %s"
+msgstr ""
+
+#: ref-filter.c:1651
#, c-format
msgid "format: %%(end) atom missing"
msgstr ""
-#: ref-filter.c:1615
+#: ref-filter.c:1705
#, c-format
msgid "malformed object name %s"
msgstr ""
-#: remote.c:756
+#: remote.c:745
#, c-format
msgid "Cannot fetch both %s and %s to %s"
msgstr ""
-#: remote.c:760
+#: remote.c:749
#, c-format
msgid "%s usually tracks %s, not %s"
msgstr ""
-#: remote.c:764
+#: remote.c:753
#, c-format
msgid "%s tracks both %s and %s"
msgstr ""
-#: remote.c:772
+#: remote.c:761
msgid "Internal error"
msgstr ""
-#: remote.c:1687 remote.c:1730
+#: remote.c:1677 remote.c:1720
msgid "HEAD does not point to a branch"
msgstr ""
-#: remote.c:1696
+#: remote.c:1686
#, c-format
msgid "no such branch: '%s'"
msgstr ""
-#: remote.c:1699
+#: remote.c:1689
#, c-format
msgid "no upstream configured for branch '%s'"
msgstr ""
-#: remote.c:1705
+#: remote.c:1695
#, c-format
msgid "upstream branch '%s' not stored as a remote-tracking branch"
msgstr ""
-#: remote.c:1720
+#: remote.c:1710
#, c-format
msgid "push destination '%s' on remote '%s' has no local tracking branch"
msgstr ""
-#: remote.c:1735
+#: remote.c:1725
#, c-format
msgid "branch '%s' has no remote for pushing"
msgstr ""
-#: remote.c:1746
+#: remote.c:1736
#, c-format
msgid "push refspecs for '%s' do not include '%s'"
msgstr ""
-#: remote.c:1759
+#: remote.c:1749
msgid "push has no destination (push.default is 'nothing')"
msgstr ""
-#: remote.c:1781
+#: remote.c:1771
msgid "cannot resolve 'simple' push to a single destination"
msgstr ""
-#: remote.c:2083
+#: remote.c:2073
#, c-format
msgid "Your branch is based on '%s', but the upstream is gone.\n"
msgstr ""
-#: remote.c:2087
+#: remote.c:2077
msgid " (use \"git branch --unset-upstream\" to fixup)\n"
msgstr ""
-#: remote.c:2090
+#: remote.c:2080
#, c-format
msgid "Your branch is up-to-date with '%s'.\n"
msgstr ""
-#: remote.c:2094
+#: remote.c:2084
#, 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:2100
+#: remote.c:2090
msgid " (use \"git push\" to publish your local commits)\n"
msgstr ""
-#: remote.c:2103
+#: remote.c:2093
#, c-format
msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
msgid_plural ""
@@ -1190,11 +1293,11 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: remote.c:2111
+#: remote.c:2101
msgid " (use \"git pull\" to update your local branch)\n"
msgstr ""
-#: remote.c:2114
+#: remote.c:2104
#, c-format
msgid ""
"Your branch and '%s' have diverged,\n"
@@ -1205,28 +1308,28 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: remote.c:2124
+#: remote.c:2114
msgid " (use \"git pull\" to merge the remote branch into yours)\n"
msgstr ""
-#: revision.c:2193
+#: revision.c:2131
msgid "your current branch appears to be broken"
msgstr ""
-#: revision.c:2196
+#: revision.c:2134
#, c-format
msgid "your current branch '%s' does not have any commits yet"
msgstr ""
-#: revision.c:2390
+#: revision.c:2328
msgid "--first-parent is incompatible with --bisect"
msgstr ""
-#: run-command.c:90
+#: run-command.c:92
msgid "open /dev/null failed"
msgstr ""
-#: run-command.c:92
+#: run-command.c:94
#, c-format
msgid "dup2(%d,%d) failed"
msgstr ""
@@ -1249,242 +1352,256 @@ msgstr ""
msgid "the receiving end does not support --atomic push"
msgstr ""
-#: sequencer.c:183
+#: sequencer.c:174
msgid ""
"after resolving the conflicts, mark the corrected paths\n"
"with 'git add <paths>' or 'git rm <paths>'"
msgstr ""
-#: sequencer.c:186
+#: sequencer.c:177
msgid ""
"after resolving the conflicts, mark the corrected paths\n"
"with 'git add <paths>' or 'git rm <paths>'\n"
"and commit the result with 'git commit'"
msgstr ""
-#: sequencer.c:199 sequencer.c:842 sequencer.c:922
+#: sequencer.c:190 sequencer.c:833 sequencer.c:913
#, c-format
msgid "Could not write to %s"
msgstr ""
-#: sequencer.c:202
+#: sequencer.c:193
#, c-format
msgid "Error wrapping up %s"
msgstr ""
-#: sequencer.c:217
+#: sequencer.c:208
msgid "Your local changes would be overwritten by cherry-pick."
msgstr ""
-#: sequencer.c:219
+#: sequencer.c:210
msgid "Your local changes would be overwritten by revert."
msgstr ""
-#: sequencer.c:222
+#: sequencer.c:213
msgid "Commit your changes or stash them to proceed."
msgstr ""
#. TRANSLATORS: %s will be "revert" or "cherry-pick"
-#: sequencer.c:309
+#: sequencer.c:300
#, c-format
msgid "%s: Unable to write new index file"
msgstr ""
-#: sequencer.c:327
+#: sequencer.c:318
msgid "Could not resolve HEAD commit\n"
msgstr ""
-#: sequencer.c:347
+#: sequencer.c:338
msgid "Unable to update cache tree\n"
msgstr ""
-#: sequencer.c:399
+#: sequencer.c:390
#, c-format
msgid "Could not parse commit %s\n"
msgstr ""
-#: sequencer.c:404
+#: sequencer.c:395
#, c-format
msgid "Could not parse parent commit %s\n"
msgstr ""
-#: sequencer.c:469
+#: sequencer.c:460
msgid "Your index file is unmerged."
msgstr ""
-#: sequencer.c:488
+#: sequencer.c:479
#, c-format
msgid "Commit %s is a merge but no -m option was given."
msgstr ""
-#: sequencer.c:496
+#: sequencer.c:487
#, c-format
msgid "Commit %s does not have parent %d"
msgstr ""
-#: sequencer.c:500
+#: sequencer.c:491
#, c-format
msgid "Mainline was specified but commit %s is not a merge."
msgstr ""
#. TRANSLATORS: The first %s will be "revert" or
#. "cherry-pick", the second %s a SHA1
-#: sequencer.c:513
+#: sequencer.c:504
#, c-format
msgid "%s: cannot parse parent commit %s"
msgstr ""
-#: sequencer.c:517
+#: sequencer.c:508
#, c-format
msgid "Cannot get commit message for %s"
msgstr ""
-#: sequencer.c:603
+#: sequencer.c:594
#, c-format
msgid "could not revert %s... %s"
msgstr ""
-#: sequencer.c:604
+#: sequencer.c:595
#, c-format
msgid "could not apply %s... %s"
msgstr ""
-#: sequencer.c:639
+#: sequencer.c:630
msgid "empty commit set passed"
msgstr ""
-#: sequencer.c:647
+#: sequencer.c:638
#, c-format
msgid "git %s: failed to read the index"
msgstr ""
-#: sequencer.c:651
+#: sequencer.c:642
#, c-format
msgid "git %s: failed to refresh the index"
msgstr ""
-#: sequencer.c:711
+#: sequencer.c:702
#, c-format
msgid "Cannot %s during a %s"
msgstr ""
-#: sequencer.c:733
+#: sequencer.c:724
#, c-format
msgid "Could not parse line %d."
msgstr ""
-#: sequencer.c:738
+#: sequencer.c:729
msgid "No commits parsed."
msgstr ""
-#: sequencer.c:750
+#: sequencer.c:741
#, c-format
msgid "Could not open %s"
msgstr ""
-#: sequencer.c:754
+#: sequencer.c:745
#, c-format
msgid "Could not read %s."
msgstr ""
-#: sequencer.c:761
+#: sequencer.c:752
#, c-format
msgid "Unusable instruction sheet: %s"
msgstr ""
-#: sequencer.c:791
+#: sequencer.c:782
#, c-format
msgid "Invalid key: %s"
msgstr ""
-#: sequencer.c:794 builtin/pull.c:47 builtin/pull.c:49
+#: sequencer.c:785 builtin/pull.c:50 builtin/pull.c:52
#, c-format
msgid "Invalid value for %s: %s"
msgstr ""
-#: sequencer.c:804
+#: sequencer.c:795
#, c-format
msgid "Malformed options sheet: %s"
msgstr ""
-#: sequencer.c:823
+#: sequencer.c:814
msgid "a cherry-pick or revert is already in progress"
msgstr ""
-#: sequencer.c:824
+#: sequencer.c:815
msgid "try \"git cherry-pick (--continue | --quit | --abort)\""
msgstr ""
-#: sequencer.c:828
+#: sequencer.c:819
#, c-format
msgid "Could not create sequencer directory %s"
msgstr ""
-#: sequencer.c:844 sequencer.c:926
+#: sequencer.c:835 sequencer.c:917
#, c-format
msgid "Error wrapping up %s."
msgstr ""
-#: sequencer.c:863 sequencer.c:996
+#: sequencer.c:854 sequencer.c:987
msgid "no cherry-pick or revert in progress"
msgstr ""
-#: sequencer.c:865
+#: sequencer.c:856
msgid "cannot resolve HEAD"
msgstr ""
-#: sequencer.c:867
+#: sequencer.c:858
msgid "cannot abort from a branch yet to be born"
msgstr ""
-#: sequencer.c:887 builtin/apply.c:4287
+#: sequencer.c:878 builtin/apply.c:4287
#, c-format
msgid "cannot open %s: %s"
msgstr ""
-#: sequencer.c:890
+#: sequencer.c:881
#, c-format
msgid "cannot read %s: %s"
msgstr ""
-#: sequencer.c:891
+#: sequencer.c:882
msgid "unexpected end of file"
msgstr ""
-#: sequencer.c:897
+#: sequencer.c:888
#, c-format
msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
msgstr ""
-#: sequencer.c:919
+#: sequencer.c:910
#, c-format
msgid "Could not format %s."
msgstr ""
-#: sequencer.c:1064
+#: sequencer.c:1055
#, c-format
msgid "%s: can't cherry-pick a %s"
msgstr ""
-#: sequencer.c:1067
+#: sequencer.c:1058
#, c-format
msgid "%s: bad revision"
msgstr ""
-#: sequencer.c:1101
+#: sequencer.c:1092
msgid "Can't revert as initial commit"
msgstr ""
-#: sequencer.c:1102
+#: sequencer.c:1093
msgid "Can't cherry-pick into empty head"
msgstr ""
-#: setup.c:248
+#: setup.c:246
#, c-format
msgid "failed to read %s"
msgstr ""
-#: sha1_name.c:463
+#: sha1_file.c:1080
+msgid "offset before end of packfile (broken .idx?)"
+msgstr ""
+
+#: sha1_file.c:2459
+#, c-format
+msgid "offset before start of pack index for %s (corrupt index?)"
+msgstr ""
+
+#: sha1_file.c:2463
+#, c-format
+msgid "offset beyond end of pack index for %s (truncated index?)"
+msgstr ""
+
+#: sha1_name.c:462
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"
@@ -1497,60 +1614,84 @@ msgid ""
"running \"git config advice.objectNameWarning false\""
msgstr ""
-#: submodule.c:61 submodule.c:95
+#: submodule.c:62 submodule.c:96
msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
msgstr ""
-#: submodule.c:65 submodule.c:99
+#: submodule.c:66 submodule.c:100
#, c-format
msgid "Could not find section in .gitmodules where path=%s"
msgstr ""
-#: submodule.c:73
+#: submodule.c:74
#, c-format
msgid "Could not update .gitmodules entry %s"
msgstr ""
-#: submodule.c:106
+#: submodule.c:107
#, c-format
msgid "Could not remove .gitmodules entry for %s"
msgstr ""
-#: submodule.c:117
+#: submodule.c:118
msgid "staging updated .gitmodules failed"
msgstr ""
-#: submodule.c:1040
+#: trailer.c:237
#, c-format
-msgid "Could not set core.worktree in %s"
+msgid "running trailer command '%s' failed"
msgstr ""
-#: trailer.c:491 trailer.c:495 trailer.c:499 trailer.c:553 trailer.c:557
-#: trailer.c:561
+#: trailer.c:492 trailer.c:496 trailer.c:500 trailer.c:554 trailer.c:558
+#: trailer.c:562
#, c-format
msgid "unknown value '%s' for key '%s'"
msgstr ""
-#: trailer.c:543 trailer.c:548 builtin/remote.c:296
+#: trailer.c:544 trailer.c:549 builtin/remote.c:289
#, c-format
msgid "more than one %s"
msgstr ""
-#: trailer.c:581
+#: trailer.c:582
#, c-format
msgid "empty trailer token in trailer '%.*s'"
msgstr ""
-#: trailer.c:701
+#: trailer.c:702
#, c-format
msgid "could not read input file '%s'"
msgstr ""
-#: trailer.c:704
+#: trailer.c:705
msgid "could not read from stdin"
msgstr ""
-#: transport-helper.c:1025
+#: trailer.c:857 builtin/am.c:42
+#, c-format
+msgid "could not stat %s"
+msgstr ""
+
+#: trailer.c:859
+#, c-format
+msgid "file %s is not a regular file"
+msgstr ""
+
+#: trailer.c:861
+#, c-format
+msgid "file %s is not writable by user"
+msgstr ""
+
+#: trailer.c:873
+msgid "could not open temporary file"
+msgstr ""
+
+#: trailer.c:912
+#, c-format
+msgid "could not rename temporary file to %s"
+msgstr ""
+
+#: transport-helper.c:1041
#, c-format
msgid "Could not read ref %s"
msgstr ""
@@ -1588,47 +1729,47 @@ msgstr ""
msgid "invalid '..' path segment"
msgstr ""
-#: wrapper.c:219 wrapper.c:362
+#: wrapper.c:222 wrapper.c:381
#, c-format
msgid "could not open '%s' for reading and writing"
msgstr ""
-#: wrapper.c:221 wrapper.c:364
+#: wrapper.c:224 wrapper.c:383
#, c-format
msgid "could not open '%s' for writing"
msgstr ""
-#: wrapper.c:223 wrapper.c:366 builtin/am.c:338 builtin/commit.c:1691
-#: builtin/merge.c:1074 builtin/pull.c:380
+#: wrapper.c:226 wrapper.c:385 builtin/am.c:323 builtin/commit.c:1691
+#: builtin/merge.c:1075 builtin/pull.c:387
#, c-format
msgid "could not open '%s' for reading"
msgstr ""
-#: wrapper.c:579
+#: wrapper.c:611
#, c-format
msgid "unable to access '%s': %s"
msgstr ""
-#: wrapper.c:600
+#: wrapper.c:632
#, c-format
msgid "unable to access '%s'"
msgstr ""
-#: wrapper.c:608
+#: wrapper.c:640
msgid "unable to get current working directory"
msgstr ""
-#: wrapper.c:635
+#: wrapper.c:667
#, c-format
msgid "could not open %s for writing"
msgstr ""
-#: wrapper.c:646 builtin/am.c:425
+#: wrapper.c:678 builtin/am.c:410
#, c-format
msgid "could not write to %s"
msgstr ""
-#: wrapper.c:652
+#: wrapper.c:684
#, c-format
msgid "could not close %s"
msgstr ""
@@ -2070,7 +2211,11 @@ msgstr ""
msgid "behind "
msgstr ""
-#: compat/precompose_utf8.c:56 builtin/clone.c:408
+#: wt-status.c:1680 wt-status.c:1683
+msgid "ahead "
+msgstr ""
+
+#: compat/precompose_utf8.c:57 builtin/clone.c:413
#, c-format
msgid "failed to unlink '%s'"
msgstr ""
@@ -2097,7 +2242,7 @@ msgstr ""
msgid "Unstaged changes after refreshing the index:"
msgstr ""
-#: builtin/add.c:194 builtin/rev-parse.c:796
+#: builtin/add.c:194 builtin/rev-parse.c:797
msgid "Could not read the index"
msgstr ""
@@ -2132,15 +2277,15 @@ msgstr ""
msgid "The following paths are ignored by one of your .gitignore files:\n"
msgstr ""
-#: builtin/add.c:249 builtin/clean.c:894 builtin/fetch.c:108 builtin/mv.c:110
-#: builtin/prune-packed.c:55 builtin/pull.c:182 builtin/push.c:543
-#: builtin/remote.c:1345 builtin/rm.c:268 builtin/send-pack.c:162
+#: builtin/add.c:249 builtin/clean.c:870 builtin/fetch.c:112 builtin/mv.c:111
+#: builtin/prune-packed.c:55 builtin/pull.c:189 builtin/push.c:511
+#: builtin/remote.c:1330 builtin/rm.c:268 builtin/send-pack.c:162
msgid "dry run"
msgstr ""
-#: builtin/add.c:250 builtin/apply.c:4571 builtin/check-ignore.c:19
+#: builtin/add.c:250 builtin/apply.c:4561 builtin/check-ignore.c:19
#: builtin/commit.c:1322 builtin/count-objects.c:85 builtin/fsck.c:558
-#: builtin/log.c:1645 builtin/mv.c:109 builtin/read-tree.c:114
+#: builtin/log.c:1651 builtin/mv.c:110 builtin/read-tree.c:114
msgid "be verbose"
msgstr ""
@@ -2148,7 +2293,7 @@ msgstr ""
msgid "interactive picking"
msgstr ""
-#: builtin/add.c:253 builtin/checkout.c:1153 builtin/reset.c:286
+#: builtin/add.c:253 builtin/checkout.c:1155 builtin/reset.c:286
msgid "select hunks interactively"
msgstr ""
@@ -2215,171 +2360,166 @@ msgstr ""
msgid "Maybe you wanted to say 'git add .'?\n"
msgstr ""
-#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:938
-#: builtin/commit.c:337 builtin/mv.c:130 builtin/reset.c:235 builtin/rm.c:298
-#: builtin/submodule--helper.c:40
+#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:914
+#: builtin/commit.c:337 builtin/mv.c:131 builtin/reset.c:235 builtin/rm.c:298
+#: builtin/submodule--helper.c:35
msgid "index file corrupt"
msgstr ""
-#: builtin/add.c:439 builtin/apply.c:4669 builtin/mv.c:279 builtin/rm.c:430
+#: builtin/add.c:439 builtin/apply.c:4659 builtin/mv.c:280 builtin/rm.c:430
msgid "Unable to write new index file"
msgstr ""
-#: builtin/am.c:42
-#, c-format
-msgid "could not stat %s"
-msgstr ""
-
-#: builtin/am.c:271 builtin/commit.c:738 builtin/merge.c:1077
+#: builtin/am.c:256 builtin/commit.c:738 builtin/merge.c:1078
#, c-format
msgid "could not read '%s'"
msgstr ""
-#: builtin/am.c:445
+#: builtin/am.c:430
msgid "could not parse author script"
msgstr ""
-#: builtin/am.c:522
+#: builtin/am.c:507
#, c-format
msgid "'%s' was deleted by the applypatch-msg hook"
msgstr ""
-#: builtin/am.c:563 builtin/notes.c:300
+#: builtin/am.c:548 builtin/notes.c:300
#, c-format
msgid "Malformed input line: '%s'."
msgstr ""
-#: builtin/am.c:600 builtin/notes.c:315
+#: builtin/am.c:585 builtin/notes.c:315
#, c-format
msgid "Failed to copy notes from '%s' to '%s'"
msgstr ""
-#: builtin/am.c:626
+#: builtin/am.c:611
msgid "fseek failed"
msgstr ""
-#: builtin/am.c:787 builtin/am.c:875
+#: builtin/am.c:772 builtin/am.c:860
#, c-format
msgid "could not open '%s' for reading: %s"
msgstr ""
-#: builtin/am.c:794
+#: builtin/am.c:779
#, c-format
msgid "could not open '%s' for writing: %s"
msgstr ""
-#: builtin/am.c:803
+#: builtin/am.c:788
#, c-format
msgid "could not parse patch '%s'"
msgstr ""
-#: builtin/am.c:868
+#: builtin/am.c:853
msgid "Only one StGIT patch series can be applied at once"
msgstr ""
-#: builtin/am.c:916
+#: builtin/am.c:901
msgid "invalid timestamp"
msgstr ""
-#: builtin/am.c:919 builtin/am.c:927
+#: builtin/am.c:904 builtin/am.c:912
msgid "invalid Date line"
msgstr ""
-#: builtin/am.c:924
+#: builtin/am.c:909
msgid "invalid timezone offset"
msgstr ""
-#: builtin/am.c:1011
+#: builtin/am.c:996
msgid "Patch format detection failed."
msgstr ""
-#: builtin/am.c:1016 builtin/clone.c:373
+#: builtin/am.c:1001 builtin/clone.c:378
#, c-format
msgid "failed to create directory '%s'"
msgstr ""
-#: builtin/am.c:1020
+#: builtin/am.c:1005
msgid "Failed to split patches."
msgstr ""
-#: builtin/am.c:1152 builtin/commit.c:363
+#: builtin/am.c:1137 builtin/commit.c:363
msgid "unable to write index file"
msgstr ""
-#: builtin/am.c:1203
+#: builtin/am.c:1188
#, c-format
msgid "When you have resolved this problem, run \"%s --continue\"."
msgstr ""
-#: builtin/am.c:1204
+#: builtin/am.c:1189
#, c-format
msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
msgstr ""
-#: builtin/am.c:1205
+#: builtin/am.c:1190
#, c-format
msgid "To restore the original branch and stop patching, run \"%s --abort\"."
msgstr ""
-#: builtin/am.c:1343
+#: builtin/am.c:1328
msgid "Patch is empty. Was it split wrong?"
msgstr ""
-#: builtin/am.c:1417 builtin/log.c:1347
+#: builtin/am.c:1402 builtin/log.c:1350
#, c-format
msgid "invalid ident line: %s"
msgstr ""
-#: builtin/am.c:1444
+#: builtin/am.c:1429
#, c-format
msgid "unable to parse commit %s"
msgstr ""
-#: builtin/am.c:1646
+#: builtin/am.c:1631
msgid "Repository lacks necessary blobs to fall back on 3-way merge."
msgstr ""
-#: builtin/am.c:1648
+#: builtin/am.c:1633
msgid "Using index info to reconstruct a base tree..."
msgstr ""
-#: builtin/am.c:1667
+#: builtin/am.c:1652
msgid ""
"Did you hand edit your patch?\n"
"It does not apply to blobs recorded in its index."
msgstr ""
-#: builtin/am.c:1673
+#: builtin/am.c:1658
msgid "Falling back to patching base and 3-way merge..."
msgstr ""
-#: builtin/am.c:1688
+#: builtin/am.c:1673
msgid "Failed to merge in the changes."
msgstr ""
-#: builtin/am.c:1712 builtin/merge.c:632
+#: builtin/am.c:1697 builtin/merge.c:633
msgid "git write-tree failed to write a tree"
msgstr ""
-#: builtin/am.c:1719
+#: builtin/am.c:1704
msgid "applying to an empty history"
msgstr ""
-#: builtin/am.c:1732 builtin/commit.c:1755 builtin/merge.c:829
-#: builtin/merge.c:854
+#: builtin/am.c:1717 builtin/commit.c:1755 builtin/merge.c:830
+#: builtin/merge.c:855
msgid "failed to write commit object"
msgstr ""
-#: builtin/am.c:1764 builtin/am.c:1768
+#: builtin/am.c:1749 builtin/am.c:1753
#, c-format
msgid "cannot resume: %s does not exist."
msgstr ""
-#: builtin/am.c:1784
+#: builtin/am.c:1769
msgid "cannot be interactive without stdin connected to a terminal."
msgstr ""
-#: builtin/am.c:1789
+#: builtin/am.c:1774
msgid "Commit Body is:"
msgstr ""
@@ -2387,231 +2527,231 @@ msgstr ""
#. in your translation. The program will only accept English
#. input at this point.
#.
-#: builtin/am.c:1799
+#: builtin/am.c:1784
msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
msgstr ""
-#: builtin/am.c:1849
+#: builtin/am.c:1834
#, c-format
msgid "Dirty index: cannot apply patches (dirty: %s)"
msgstr ""
-#: builtin/am.c:1884 builtin/am.c:1955
+#: builtin/am.c:1869 builtin/am.c:1941
#, c-format
msgid "Applying: %.*s"
msgstr ""
-#: builtin/am.c:1900
+#: builtin/am.c:1885
msgid "No changes -- Patch already applied."
msgstr ""
-#: builtin/am.c:1908
+#: builtin/am.c:1893
#, c-format
msgid "Patch failed at %s %.*s"
msgstr ""
-#: builtin/am.c:1914
+#: builtin/am.c:1899
#, c-format
msgid "The copy of the patch that failed is found in: %s"
msgstr ""
-#: builtin/am.c:1958
+#: builtin/am.c:1944
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:1965
+#: builtin/am.c:1951
msgid ""
"You still have unmerged paths in your index.\n"
"Did you forget to use 'git add'?"
msgstr ""
-#: builtin/am.c:2073 builtin/am.c:2077 builtin/am.c:2089 builtin/reset.c:308
+#: builtin/am.c:2059 builtin/am.c:2063 builtin/am.c:2075 builtin/reset.c:308
#: builtin/reset.c:316
#, c-format
msgid "Could not parse object '%s'."
msgstr ""
-#: builtin/am.c:2125
+#: builtin/am.c:2111
msgid "failed to clean index"
msgstr ""
-#: builtin/am.c:2159
+#: builtin/am.c:2145
msgid ""
"You seem to have moved HEAD since the last 'am' failure.\n"
"Not rewinding to ORIG_HEAD"
msgstr ""
-#: builtin/am.c:2220
+#: builtin/am.c:2206
#, c-format
msgid "Invalid value for --patch-format: %s"
msgstr ""
-#: builtin/am.c:2253
+#: builtin/am.c:2239
msgid "git am [<options>] [(<mbox>|<Maildir>)...]"
msgstr ""
-#: builtin/am.c:2254
+#: builtin/am.c:2240
msgid "git am [<options>] (--continue | --skip | --abort)"
msgstr ""
-#: builtin/am.c:2260
+#: builtin/am.c:2246
msgid "run interactively"
msgstr ""
-#: builtin/am.c:2262
+#: builtin/am.c:2248
msgid "historical option -- no-op"
msgstr ""
-#: builtin/am.c:2264
+#: builtin/am.c:2250
msgid "allow fall back on 3way merging if needed"
msgstr ""
-#: builtin/am.c:2265 builtin/init-db.c:474 builtin/prune-packed.c:57
+#: builtin/am.c:2251 builtin/init-db.c:474 builtin/prune-packed.c:57
#: builtin/repack.c:171
msgid "be quiet"
msgstr ""
-#: builtin/am.c:2267
+#: builtin/am.c:2253
msgid "add a Signed-off-by line to the commit message"
msgstr ""
-#: builtin/am.c:2270
+#: builtin/am.c:2256
msgid "recode into utf8 (default)"
msgstr ""
-#: builtin/am.c:2272
+#: builtin/am.c:2258
msgid "pass -k flag to git-mailinfo"
msgstr ""
-#: builtin/am.c:2274
+#: builtin/am.c:2260
msgid "pass -b flag to git-mailinfo"
msgstr ""
-#: builtin/am.c:2276
+#: builtin/am.c:2262
msgid "pass -m flag to git-mailinfo"
msgstr ""
-#: builtin/am.c:2278
+#: builtin/am.c:2264
msgid "pass --keep-cr flag to git-mailsplit for mbox format"
msgstr ""
-#: builtin/am.c:2281
+#: builtin/am.c:2267
msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
msgstr ""
-#: builtin/am.c:2284
+#: builtin/am.c:2270
msgid "strip everything before a scissors line"
msgstr ""
-#: builtin/am.c:2285 builtin/apply.c:4554
+#: builtin/am.c:2271 builtin/apply.c:4544
msgid "action"
msgstr ""
-#: builtin/am.c:2286 builtin/am.c:2289 builtin/am.c:2292 builtin/am.c:2295
-#: builtin/am.c:2298 builtin/am.c:2301 builtin/am.c:2304 builtin/am.c:2307
-#: builtin/am.c:2313
+#: builtin/am.c:2272 builtin/am.c:2275 builtin/am.c:2278 builtin/am.c:2281
+#: builtin/am.c:2284 builtin/am.c:2287 builtin/am.c:2290 builtin/am.c:2293
+#: builtin/am.c:2299
msgid "pass it through git-apply"
msgstr ""
-#: builtin/am.c:2294 builtin/apply.c:4578
+#: builtin/am.c:2280 builtin/apply.c:4568
msgid "root"
msgstr ""
-#: builtin/am.c:2297 builtin/am.c:2300 builtin/apply.c:4516
-#: builtin/apply.c:4519 builtin/clone.c:85 builtin/fetch.c:93
-#: builtin/pull.c:167 builtin/submodule--helper.c:78
-#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
+#: builtin/am.c:2283 builtin/am.c:2286 builtin/apply.c:4506
+#: builtin/apply.c:4509 builtin/clone.c:86 builtin/fetch.c:95
+#: builtin/pull.c:171 builtin/submodule--helper.c:72
+#: builtin/submodule--helper.c:160 builtin/submodule--helper.c:163
msgid "path"
msgstr ""
-#: builtin/am.c:2303 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
-#: builtin/grep.c:693 builtin/merge.c:198 builtin/pull.c:127
-#: builtin/repack.c:178 builtin/repack.c:182 builtin/show-branch.c:645
-#: builtin/show-ref.c:175 builtin/tag.c:340 parse-options.h:132
-#: parse-options.h:134 parse-options.h:244
+#: builtin/am.c:2289 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
+#: builtin/grep.c:704 builtin/merge.c:198 builtin/pull.c:131
+#: builtin/pull.c:185 builtin/repack.c:178 builtin/repack.c:182
+#: builtin/show-branch.c:645 builtin/show-ref.c:175 builtin/tag.c:340
+#: parse-options.h:132 parse-options.h:134 parse-options.h:244
msgid "n"
msgstr ""
-#: builtin/am.c:2306 builtin/apply.c:4522
+#: builtin/am.c:2292 builtin/apply.c:4512
msgid "num"
msgstr ""
-#: builtin/am.c:2309 builtin/for-each-ref.c:37 builtin/replace.c:438
+#: builtin/am.c:2295 builtin/for-each-ref.c:37 builtin/replace.c:438
#: builtin/tag.c:372
msgid "format"
msgstr ""
-#: builtin/am.c:2310
+#: builtin/am.c:2296
msgid "format the patch(es) are in"
msgstr ""
-#: builtin/am.c:2316
+#: builtin/am.c:2302
msgid "override error message when patch failure occurs"
msgstr ""
-#: builtin/am.c:2318
+#: builtin/am.c:2304
msgid "continue applying patches after resolving a conflict"
msgstr ""
-#: builtin/am.c:2321
+#: builtin/am.c:2307
msgid "synonyms for --continue"
msgstr ""
-#: builtin/am.c:2324
+#: builtin/am.c:2310
msgid "skip the current patch"
msgstr ""
-#: builtin/am.c:2327
+#: builtin/am.c:2313
msgid "restore the original branch and abort the patching operation."
msgstr ""
-#: builtin/am.c:2331
+#: builtin/am.c:2317
msgid "lie about committer date"
msgstr ""
-#: builtin/am.c:2333
+#: builtin/am.c:2319
msgid "use current timestamp for author date"
msgstr ""
-#: builtin/am.c:2335 builtin/commit.c:1593 builtin/merge.c:225
-#: builtin/pull.c:155 builtin/revert.c:92 builtin/tag.c:355
+#: builtin/am.c:2321 builtin/commit.c:1593 builtin/merge.c:225
+#: builtin/pull.c:159 builtin/revert.c:92 builtin/tag.c:355
msgid "key-id"
msgstr ""
-#: builtin/am.c:2336
+#: builtin/am.c:2322
msgid "GPG-sign commits"
msgstr ""
-#: builtin/am.c:2339
+#: builtin/am.c:2325
msgid "(internal use for git-rebase)"
msgstr ""
-#: builtin/am.c:2354
+#: builtin/am.c:2340
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:2361
+#: builtin/am.c:2347
msgid "failed to read the index"
msgstr ""
-#: builtin/am.c:2376
+#: builtin/am.c:2362
#, c-format
msgid "previous rebase directory %s still exists but mbox given."
msgstr ""
-#: builtin/am.c:2400
+#: builtin/am.c:2386
#, c-format
msgid ""
"Stray %s directory found.\n"
"Use \"git am --abort\" to remove it."
msgstr ""
-#: builtin/am.c:2406
+#: builtin/am.c:2392
msgid "Resolve operation not in progress, we are not resuming."
msgstr ""
@@ -2950,131 +3090,131 @@ msgstr ""
msgid "unable to read index file"
msgstr ""
-#: builtin/apply.c:4517
+#: builtin/apply.c:4507
msgid "don't apply changes matching the given path"
msgstr ""
-#: builtin/apply.c:4520
+#: builtin/apply.c:4510
msgid "apply changes matching the given path"
msgstr ""
-#: builtin/apply.c:4523
+#: builtin/apply.c:4513
msgid "remove <num> leading slashes from traditional diff paths"
msgstr ""
-#: builtin/apply.c:4526
+#: builtin/apply.c:4516
msgid "ignore additions made by the patch"
msgstr ""
-#: builtin/apply.c:4528
+#: builtin/apply.c:4518
msgid "instead of applying the patch, output diffstat for the input"
msgstr ""
-#: builtin/apply.c:4532
+#: builtin/apply.c:4522
msgid "show number of added and deleted lines in decimal notation"
msgstr ""
-#: builtin/apply.c:4534
+#: builtin/apply.c:4524
msgid "instead of applying the patch, output a summary for the input"
msgstr ""
-#: builtin/apply.c:4536
+#: builtin/apply.c:4526
msgid "instead of applying the patch, see if the patch is applicable"
msgstr ""
-#: builtin/apply.c:4538
+#: builtin/apply.c:4528
msgid "make sure the patch is applicable to the current index"
msgstr ""
-#: builtin/apply.c:4540
+#: builtin/apply.c:4530
msgid "apply a patch without touching the working tree"
msgstr ""
-#: builtin/apply.c:4542
+#: builtin/apply.c:4532
msgid "accept a patch that touches outside the working area"
msgstr ""
-#: builtin/apply.c:4544
+#: builtin/apply.c:4534
msgid "also apply the patch (use with --stat/--summary/--check)"
msgstr ""
-#: builtin/apply.c:4546
+#: builtin/apply.c:4536
msgid "attempt three-way merge if a patch does not apply"
msgstr ""
-#: builtin/apply.c:4548
+#: builtin/apply.c:4538
msgid "build a temporary index based on embedded index information"
msgstr ""
-#: builtin/apply.c:4550 builtin/checkout-index.c:198 builtin/ls-files.c:412
+#: builtin/apply.c:4541 builtin/checkout-index.c:169 builtin/ls-files.c:425
msgid "paths are separated with NUL character"
msgstr ""
-#: builtin/apply.c:4553
+#: builtin/apply.c:4543
msgid "ensure at least <n> lines of context match"
msgstr ""
-#: builtin/apply.c:4555
+#: builtin/apply.c:4545
msgid "detect new or modified lines that have whitespace errors"
msgstr ""
-#: builtin/apply.c:4558 builtin/apply.c:4561
+#: builtin/apply.c:4548 builtin/apply.c:4551
msgid "ignore changes in whitespace when finding context"
msgstr ""
-#: builtin/apply.c:4564
+#: builtin/apply.c:4554
msgid "apply the patch in reverse"
msgstr ""
-#: builtin/apply.c:4566
+#: builtin/apply.c:4556
msgid "don't expect at least one line of context"
msgstr ""
-#: builtin/apply.c:4568
+#: builtin/apply.c:4558
msgid "leave the rejected hunks in corresponding *.rej files"
msgstr ""
-#: builtin/apply.c:4570
+#: builtin/apply.c:4560
msgid "allow overlapping hunks"
msgstr ""
-#: builtin/apply.c:4573
+#: builtin/apply.c:4563
msgid "tolerate incorrectly detected missing new-line at the end of file"
msgstr ""
-#: builtin/apply.c:4576
+#: builtin/apply.c:4566
msgid "do not trust the line counts in the hunk headers"
msgstr ""
-#: builtin/apply.c:4579
+#: builtin/apply.c:4569
msgid "prepend <root> to all filenames"
msgstr ""
-#: builtin/apply.c:4601
+#: builtin/apply.c:4591
msgid "--3way outside a repository"
msgstr ""
-#: builtin/apply.c:4609
+#: builtin/apply.c:4599
msgid "--index outside a repository"
msgstr ""
-#: builtin/apply.c:4612
+#: builtin/apply.c:4602
msgid "--cached outside a repository"
msgstr ""
-#: builtin/apply.c:4631
+#: builtin/apply.c:4621
#, c-format
msgid "can't open patch '%s'"
msgstr ""
-#: builtin/apply.c:4645
+#: builtin/apply.c:4635
#, c-format
msgid "squelched %d whitespace error"
msgid_plural "squelched %d whitespace errors"
msgstr[0] ""
msgstr[1] ""
-#: builtin/apply.c:4651 builtin/apply.c:4661
+#: builtin/apply.c:4641 builtin/apply.c:4651
#, c-format
msgid "%d line adds whitespace errors."
msgid_plural "%d lines add whitespace errors."
@@ -3128,103 +3268,111 @@ msgstr ""
msgid "update BISECT_HEAD instead of checking out the current commit"
msgstr ""
-#: builtin/blame.c:32
+#: builtin/blame.c:33
msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>"
msgstr ""
-#: builtin/blame.c:37
+#: builtin/blame.c:38
msgid "<rev-opts> are documented in git-rev-list(1)"
msgstr ""
-#: builtin/blame.c:2519
+#: builtin/blame.c:1782
+msgid "Blaming lines"
+msgstr ""
+
+#: builtin/blame.c:2530
msgid "Show blame entries as we find them, incrementally"
msgstr ""
-#: builtin/blame.c:2520
+#: builtin/blame.c:2531
msgid "Show blank SHA-1 for boundary commits (Default: off)"
msgstr ""
-#: builtin/blame.c:2521
+#: builtin/blame.c:2532
msgid "Do not treat root commits as boundaries (Default: off)"
msgstr ""
-#: builtin/blame.c:2522
+#: builtin/blame.c:2533
msgid "Show work cost statistics"
msgstr ""
-#: builtin/blame.c:2523
+#: builtin/blame.c:2534
+msgid "Force progress reporting"
+msgstr ""
+
+#: builtin/blame.c:2535
msgid "Show output score for blame entries"
msgstr ""
-#: builtin/blame.c:2524
+#: builtin/blame.c:2536
msgid "Show original filename (Default: auto)"
msgstr ""
-#: builtin/blame.c:2525
+#: builtin/blame.c:2537
msgid "Show original linenumber (Default: off)"
msgstr ""
-#: builtin/blame.c:2526
+#: builtin/blame.c:2538
msgid "Show in a format designed for machine consumption"
msgstr ""
-#: builtin/blame.c:2527
+#: builtin/blame.c:2539
msgid "Show porcelain format with per-line commit information"
msgstr ""
-#: builtin/blame.c:2528
+#: builtin/blame.c:2540
msgid "Use the same output mode as git-annotate (Default: off)"
msgstr ""
-#: builtin/blame.c:2529
+#: builtin/blame.c:2541
msgid "Show raw timestamp (Default: off)"
msgstr ""
-#: builtin/blame.c:2530
+#: builtin/blame.c:2542
msgid "Show long commit SHA1 (Default: off)"
msgstr ""
-#: builtin/blame.c:2531
+#: builtin/blame.c:2543
msgid "Suppress author name and timestamp (Default: off)"
msgstr ""
-#: builtin/blame.c:2532
+#: builtin/blame.c:2544
msgid "Show author email instead of name (Default: off)"
msgstr ""
-#: builtin/blame.c:2533
+#: builtin/blame.c:2545
msgid "Ignore whitespace differences"
msgstr ""
-#: builtin/blame.c:2534
+#: builtin/blame.c:2546
msgid "Spend extra cycles to find better match"
msgstr ""
-#: builtin/blame.c:2535
+#: builtin/blame.c:2547
msgid "Use revisions from <file> instead of calling git-rev-list"
msgstr ""
-#: builtin/blame.c:2536
+#: builtin/blame.c:2548
msgid "Use <file>'s contents as the final image"
msgstr ""
-#: builtin/blame.c:2537 builtin/blame.c:2538
+#: builtin/blame.c:2549 builtin/blame.c:2550
msgid "score"
msgstr ""
-#: builtin/blame.c:2537
+#: builtin/blame.c:2549
msgid "Find line copies within and across files"
msgstr ""
-#: builtin/blame.c:2538
+#: builtin/blame.c:2550
msgid "Find line movements within and across files"
msgstr ""
-#: builtin/blame.c:2539
+#: builtin/blame.c:2551
msgid "n,m"
msgstr ""
-#: builtin/blame.c:2539
+#: builtin/blame.c:2551
msgid "Process only line range n,m, counting from 1"
msgstr ""
@@ -3234,7 +3382,7 @@ msgstr ""
#. takes 22 places, is the longest among various forms of
#. relative timestamps, but your language may need more or
#. fewer display columns.
-#: builtin/blame.c:2620
+#: builtin/blame.c:2640
msgid "4 years, 11 months ago"
msgstr ""
@@ -3426,200 +3574,200 @@ msgstr ""
msgid "Branch is renamed, but update of config-file failed"
msgstr ""
-#: builtin/branch.c:587
+#: builtin/branch.c:586
#, c-format
msgid "could not write branch description template: %s"
msgstr ""
-#: builtin/branch.c:616
+#: builtin/branch.c:615
msgid "Generic options"
msgstr ""
-#: builtin/branch.c:618
+#: builtin/branch.c:617
msgid "show hash and subject, give twice for upstream branch"
msgstr ""
-#: builtin/branch.c:619
+#: builtin/branch.c:618
msgid "suppress informational messages"
msgstr ""
-#: builtin/branch.c:620
+#: builtin/branch.c:619
msgid "set up tracking mode (see git-pull(1))"
msgstr ""
-#: builtin/branch.c:622
+#: builtin/branch.c:621
msgid "change upstream info"
msgstr ""
-#: builtin/branch.c:626
+#: builtin/branch.c:625
msgid "use colored output"
msgstr ""
-#: builtin/branch.c:627
+#: builtin/branch.c:626
msgid "act on remote-tracking branches"
msgstr ""
-#: builtin/branch.c:629 builtin/branch.c:630
+#: builtin/branch.c:628 builtin/branch.c:629
msgid "print only branches that contain the commit"
msgstr ""
-#: builtin/branch.c:633
+#: builtin/branch.c:632
msgid "Specific git-branch actions:"
msgstr ""
-#: builtin/branch.c:634
+#: builtin/branch.c:633
msgid "list both remote-tracking and local branches"
msgstr ""
-#: builtin/branch.c:636
+#: builtin/branch.c:635
msgid "delete fully merged branch"
msgstr ""
-#: builtin/branch.c:637
+#: builtin/branch.c:636
msgid "delete branch (even if not merged)"
msgstr ""
-#: builtin/branch.c:638
+#: builtin/branch.c:637
msgid "move/rename a branch and its reflog"
msgstr ""
-#: builtin/branch.c:639
+#: builtin/branch.c:638
msgid "move/rename a branch, even if target exists"
msgstr ""
-#: builtin/branch.c:640
+#: builtin/branch.c:639
msgid "list branch names"
msgstr ""
-#: builtin/branch.c:641
+#: builtin/branch.c:640
msgid "create the branch's reflog"
msgstr ""
-#: builtin/branch.c:643
+#: builtin/branch.c:642
msgid "edit the description for the branch"
msgstr ""
-#: builtin/branch.c:644
+#: builtin/branch.c:643
msgid "force creation, move/rename, deletion"
msgstr ""
-#: builtin/branch.c:645
+#: builtin/branch.c:644
msgid "print only branches that are merged"
msgstr ""
-#: builtin/branch.c:646
+#: builtin/branch.c:645
msgid "print only branches that are not merged"
msgstr ""
-#: builtin/branch.c:647
+#: builtin/branch.c:646
msgid "list branches in columns"
msgstr ""
-#: builtin/branch.c:648 builtin/for-each-ref.c:38 builtin/tag.c:366
+#: builtin/branch.c:647 builtin/for-each-ref.c:38 builtin/tag.c:366
msgid "key"
msgstr ""
-#: builtin/branch.c:649 builtin/for-each-ref.c:39 builtin/tag.c:367
+#: builtin/branch.c:648 builtin/for-each-ref.c:39 builtin/tag.c:367
msgid "field name to sort on"
msgstr ""
-#: builtin/branch.c:651 builtin/for-each-ref.c:41 builtin/notes.c:398
-#: builtin/notes.c:401 builtin/notes.c:561 builtin/notes.c:564
+#: builtin/branch.c:650 builtin/for-each-ref.c:41 builtin/notes.c:401
+#: builtin/notes.c:404 builtin/notes.c:564 builtin/notes.c:567
#: builtin/tag.c:369
msgid "object"
msgstr ""
-#: builtin/branch.c:652
+#: builtin/branch.c:651
msgid "print only branches of the object"
msgstr ""
-#: builtin/branch.c:670
+#: builtin/branch.c:669
msgid "Failed to resolve HEAD as a valid ref."
msgstr ""
-#: builtin/branch.c:674 builtin/clone.c:697
+#: builtin/branch.c:673 builtin/clone.c:705
msgid "HEAD not found below refs/heads!"
msgstr ""
-#: builtin/branch.c:694
+#: builtin/branch.c:693
msgid "--column and --verbose are incompatible"
msgstr ""
-#: builtin/branch.c:705 builtin/branch.c:747
+#: builtin/branch.c:704 builtin/branch.c:746
msgid "branch name required"
msgstr ""
-#: builtin/branch.c:723
+#: builtin/branch.c:722
msgid "Cannot give description to detached HEAD"
msgstr ""
-#: builtin/branch.c:728
+#: builtin/branch.c:727
msgid "cannot edit description of more than one branch"
msgstr ""
-#: builtin/branch.c:735
+#: builtin/branch.c:734
#, c-format
msgid "No commit on branch '%s' yet."
msgstr ""
-#: builtin/branch.c:738
+#: builtin/branch.c:737
#, c-format
msgid "No branch named '%s'."
msgstr ""
-#: builtin/branch.c:753
+#: builtin/branch.c:752
msgid "too many branches for a rename operation"
msgstr ""
-#: builtin/branch.c:758
+#: builtin/branch.c:757
msgid "too many branches to set new upstream"
msgstr ""
-#: builtin/branch.c:762
+#: builtin/branch.c:761
#, c-format
msgid ""
"could not set upstream of HEAD to %s when it does not point to any branch."
msgstr ""
-#: builtin/branch.c:765 builtin/branch.c:787 builtin/branch.c:808
+#: builtin/branch.c:764 builtin/branch.c:786 builtin/branch.c:807
#, c-format
msgid "no such branch '%s'"
msgstr ""
-#: builtin/branch.c:769
+#: builtin/branch.c:768
#, c-format
msgid "branch '%s' does not exist"
msgstr ""
-#: builtin/branch.c:781
+#: builtin/branch.c:780
msgid "too many branches to unset upstream"
msgstr ""
-#: builtin/branch.c:785
+#: builtin/branch.c:784
msgid "could not unset upstream of HEAD when it does not point to any branch."
msgstr ""
-#: builtin/branch.c:791
+#: builtin/branch.c:790
#, c-format
msgid "Branch '%s' has no upstream information"
msgstr ""
-#: builtin/branch.c:805
+#: builtin/branch.c:804
msgid "it does not make sense to create 'HEAD' manually"
msgstr ""
-#: builtin/branch.c:811
+#: builtin/branch.c:810
msgid "-a and -r options to 'git branch' do not make sense with a branch name"
msgstr ""
-#: builtin/branch.c:814
+#: builtin/branch.c:813
#, c-format
msgid ""
"The --set-upstream flag is deprecated and will be removed. Consider using --"
"track or --set-upstream-to\n"
msgstr ""
-#: builtin/branch.c:831
+#: builtin/branch.c:830
#, c-format
msgid ""
"\n"
@@ -3627,12 +3775,12 @@ msgid ""
"\n"
msgstr ""
-#: builtin/branch.c:832
+#: builtin/branch.c:831
#, c-format
msgid " git branch -d %s\n"
msgstr ""
-#: builtin/branch.c:833
+#: builtin/branch.c:832
#, c-format
msgid " git branch --set-upstream-to %s\n"
msgstr ""
@@ -3724,7 +3872,7 @@ msgstr ""
msgid "use .gitattributes only from the index"
msgstr ""
-#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:96
+#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:97
msgid "read file names from stdin"
msgstr ""
@@ -3732,7 +3880,7 @@ msgstr ""
msgid "terminate input and output records by a NUL character"
msgstr ""
-#: builtin/check-ignore.c:18 builtin/checkout.c:1134 builtin/gc.c:325
+#: builtin/check-ignore.c:18 builtin/checkout.c:1136 builtin/gc.c:325
msgid "suppress progress reporting"
msgstr ""
@@ -3785,49 +3933,53 @@ msgstr ""
msgid "no contacts specified"
msgstr ""
-#: builtin/checkout-index.c:126
+#: builtin/checkout-index.c:127
msgid "git checkout-index [<options>] [--] [<file>...]"
msgstr ""
-#: builtin/checkout-index.c:188
+#: builtin/checkout-index.c:144
+msgid "stage should be between 1 and 3 or all"
+msgstr ""
+
+#: builtin/checkout-index.c:160
msgid "check out all files in the index"
msgstr ""
-#: builtin/checkout-index.c:189
+#: builtin/checkout-index.c:161
msgid "force overwrite of existing files"
msgstr ""
-#: builtin/checkout-index.c:191
+#: builtin/checkout-index.c:163
msgid "no warning for existing files and files not in index"
msgstr ""
-#: builtin/checkout-index.c:193
+#: builtin/checkout-index.c:165
msgid "don't checkout new files"
msgstr ""
-#: builtin/checkout-index.c:195
+#: builtin/checkout-index.c:167
msgid "update stat information in the index file"
msgstr ""
-#: builtin/checkout-index.c:201
+#: builtin/checkout-index.c:171
msgid "read list of paths from the standard input"
msgstr ""
-#: builtin/checkout-index.c:203
+#: builtin/checkout-index.c:173
msgid "write the content to temporary files"
msgstr ""
-#: builtin/checkout-index.c:204 builtin/column.c:30
+#: builtin/checkout-index.c:174 builtin/column.c:30
+#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
#: builtin/submodule--helper.c:172 builtin/submodule--helper.c:175
-#: builtin/submodule--helper.c:178 builtin/submodule--helper.c:181
msgid "string"
msgstr ""
-#: builtin/checkout-index.c:205
+#: builtin/checkout-index.c:175
msgid "when creating files, prepend <string>"
msgstr ""
-#: builtin/checkout-index.c:208
+#: builtin/checkout-index.c:177
msgid "copy out the files from named stage"
msgstr ""
@@ -3907,37 +4059,41 @@ msgstr ""
msgid "HEAD is now at"
msgstr ""
-#: builtin/checkout.c:668
+#: builtin/checkout.c:665 builtin/clone.c:659
+msgid "unable to update HEAD"
+msgstr ""
+
+#: builtin/checkout.c:669
#, c-format
msgid "Reset branch '%s'\n"
msgstr ""
-#: builtin/checkout.c:671
+#: builtin/checkout.c:672
#, c-format
msgid "Already on '%s'\n"
msgstr ""
-#: builtin/checkout.c:675
+#: builtin/checkout.c:676
#, c-format
msgid "Switched to and reset branch '%s'\n"
msgstr ""
-#: builtin/checkout.c:677 builtin/checkout.c:1066
+#: builtin/checkout.c:678 builtin/checkout.c:1068
#, c-format
msgid "Switched to a new branch '%s'\n"
msgstr ""
-#: builtin/checkout.c:679
+#: builtin/checkout.c:680
#, c-format
msgid "Switched to branch '%s'\n"
msgstr ""
-#: builtin/checkout.c:731
+#: builtin/checkout.c:732
#, c-format
msgid " ... and %d more.\n"
msgstr ""
-#: builtin/checkout.c:737
+#: builtin/checkout.c:738
#, c-format
msgid ""
"Warning: you are leaving %d commit behind, not connected to\n"
@@ -3952,7 +4108,7 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: builtin/checkout.c:756
+#: builtin/checkout.c:757
#, c-format
msgid ""
"If you want to keep it by creating a new branch, this may be a good time\n"
@@ -3969,162 +4125,162 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: builtin/checkout.c:792
+#: builtin/checkout.c:793
msgid "internal error in revision walk"
msgstr ""
-#: builtin/checkout.c:796
+#: builtin/checkout.c:797
msgid "Previous HEAD position was"
msgstr ""
-#: builtin/checkout.c:823 builtin/checkout.c:1061
+#: builtin/checkout.c:824 builtin/checkout.c:1063
msgid "You are on a branch yet to be born"
msgstr ""
-#: builtin/checkout.c:968
+#: builtin/checkout.c:969
#, c-format
msgid "only one reference expected, %d given."
msgstr ""
-#: builtin/checkout.c:1007 builtin/worktree.c:213
+#: builtin/checkout.c:1009 builtin/worktree.c:211
#, c-format
msgid "invalid reference: %s"
msgstr ""
-#: builtin/checkout.c:1036
+#: builtin/checkout.c:1038
#, c-format
msgid "reference is not a tree: %s"
msgstr ""
-#: builtin/checkout.c:1075
+#: builtin/checkout.c:1077
msgid "paths cannot be used with switching branches"
msgstr ""
-#: builtin/checkout.c:1078 builtin/checkout.c:1082
+#: builtin/checkout.c:1080 builtin/checkout.c:1084
#, c-format
msgid "'%s' cannot be used with switching branches"
msgstr ""
-#: builtin/checkout.c:1086 builtin/checkout.c:1089 builtin/checkout.c:1094
-#: builtin/checkout.c:1097
+#: builtin/checkout.c:1088 builtin/checkout.c:1091 builtin/checkout.c:1096
+#: builtin/checkout.c:1099
#, c-format
msgid "'%s' cannot be used with '%s'"
msgstr ""
-#: builtin/checkout.c:1102
+#: builtin/checkout.c:1104
#, c-format
msgid "Cannot switch branch to a non-commit '%s'"
msgstr ""
-#: builtin/checkout.c:1135 builtin/checkout.c:1137 builtin/clone.c:83
-#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:320
-#: builtin/worktree.c:322
+#: builtin/checkout.c:1137 builtin/checkout.c:1139 builtin/clone.c:84
+#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:318
+#: builtin/worktree.c:320
msgid "branch"
msgstr ""
-#: builtin/checkout.c:1136
+#: builtin/checkout.c:1138
msgid "create and checkout a new branch"
msgstr ""
-#: builtin/checkout.c:1138
+#: builtin/checkout.c:1140
msgid "create/reset and checkout a branch"
msgstr ""
-#: builtin/checkout.c:1139
+#: builtin/checkout.c:1141
msgid "create reflog for new branch"
msgstr ""
-#: builtin/checkout.c:1140
+#: builtin/checkout.c:1142
msgid "detach the HEAD at named commit"
msgstr ""
-#: builtin/checkout.c:1141
+#: builtin/checkout.c:1143
msgid "set upstream info for new branch"
msgstr ""
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
msgid "new-branch"
msgstr ""
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
msgid "new unparented branch"
msgstr ""
-#: builtin/checkout.c:1144
+#: builtin/checkout.c:1146
msgid "checkout our version for unmerged files"
msgstr ""
-#: builtin/checkout.c:1146
+#: builtin/checkout.c:1148
msgid "checkout their version for unmerged files"
msgstr ""
-#: builtin/checkout.c:1148
+#: builtin/checkout.c:1150
msgid "force checkout (throw away local modifications)"
msgstr ""
-#: builtin/checkout.c:1149
+#: builtin/checkout.c:1151
msgid "perform a 3-way merge with the new branch"
msgstr ""
-#: builtin/checkout.c:1150 builtin/merge.c:227
+#: builtin/checkout.c:1152 builtin/merge.c:227
msgid "update ignored files (default)"
msgstr ""
-#: builtin/checkout.c:1151 builtin/log.c:1266 parse-options.h:250
+#: builtin/checkout.c:1153 builtin/log.c:1269 parse-options.h:250
msgid "style"
msgstr ""
-#: builtin/checkout.c:1152
+#: builtin/checkout.c:1154
msgid "conflict style (merge or diff3)"
msgstr ""
-#: builtin/checkout.c:1155
+#: builtin/checkout.c:1157
msgid "do not limit pathspecs to sparse entries only"
msgstr ""
-#: builtin/checkout.c:1157
+#: builtin/checkout.c:1159
msgid "second guess 'git checkout <no-such-branch>'"
msgstr ""
-#: builtin/checkout.c:1159
+#: builtin/checkout.c:1161
msgid "do not check if another worktree is holding the given ref"
msgstr ""
-#: builtin/checkout.c:1160 builtin/clone.c:57 builtin/fetch.c:112
-#: builtin/merge.c:224 builtin/pull.c:109 builtin/push.c:558
+#: builtin/checkout.c:1162 builtin/clone.c:58 builtin/fetch.c:116
+#: builtin/merge.c:224 builtin/pull.c:113 builtin/push.c:526
#: builtin/send-pack.c:168
msgid "force progress reporting"
msgstr ""
-#: builtin/checkout.c:1191
+#: builtin/checkout.c:1193
msgid "-b, -B and --orphan are mutually exclusive"
msgstr ""
-#: builtin/checkout.c:1208
+#: builtin/checkout.c:1210
msgid "--track needs a branch name"
msgstr ""
-#: builtin/checkout.c:1213
+#: builtin/checkout.c:1215
msgid "Missing branch name; try -b"
msgstr ""
-#: builtin/checkout.c:1249
+#: builtin/checkout.c:1251
msgid "invalid path specification"
msgstr ""
-#: builtin/checkout.c:1256
+#: builtin/checkout.c:1258
#, c-format
msgid ""
"Cannot update paths and switch to branch '%s' at the same time.\n"
"Did you intend to checkout '%s' which can not be resolved as commit?"
msgstr ""
-#: builtin/checkout.c:1261
+#: builtin/checkout.c:1263
#, c-format
msgid "git checkout: --detach does not take a path argument '%s'"
msgstr ""
-#: builtin/checkout.c:1265
+#: builtin/checkout.c:1267
msgid ""
"git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
"checking out of the index."
@@ -4160,7 +4316,7 @@ msgstr ""
msgid "failed to remove %s"
msgstr ""
-#: builtin/clean.c:315
+#: builtin/clean.c:291
msgid ""
"Prompt help:\n"
"1 - select a numbered item\n"
@@ -4168,7 +4324,7 @@ msgid ""
" - (empty) select nothing"
msgstr ""
-#: builtin/clean.c:319
+#: builtin/clean.c:295
msgid ""
"Prompt help:\n"
"1 - select a single item\n"
@@ -4180,36 +4336,36 @@ msgid ""
" - (empty) finish selecting"
msgstr ""
-#: builtin/clean.c:535
+#: builtin/clean.c:511
#, c-format
msgid "Huh (%s)?"
msgstr ""
-#: builtin/clean.c:677
+#: builtin/clean.c:653
#, c-format
msgid "Input ignore patterns>> "
msgstr ""
-#: builtin/clean.c:714
+#: builtin/clean.c:690
#, c-format
msgid "WARNING: Cannot find items matched by: %s"
msgstr ""
-#: builtin/clean.c:735
+#: builtin/clean.c:711
msgid "Select items to delete"
msgstr ""
#. TRANSLATORS: Make sure to keep [y/N] as is
-#: builtin/clean.c:776
+#: builtin/clean.c:752
#, c-format
msgid "Remove %s [y/N]? "
msgstr ""
-#: builtin/clean.c:801
+#: builtin/clean.c:777
msgid "Bye."
msgstr ""
-#: builtin/clean.c:809
+#: builtin/clean.c:785
msgid ""
"clean - start cleaning\n"
"filter by pattern - exclude items from deletion\n"
@@ -4220,68 +4376,68 @@ msgid ""
"? - help for prompt selection"
msgstr ""
-#: builtin/clean.c:836
+#: builtin/clean.c:812
msgid "*** Commands ***"
msgstr ""
-#: builtin/clean.c:837
+#: builtin/clean.c:813
msgid "What now"
msgstr ""
-#: builtin/clean.c:845
+#: builtin/clean.c:821
msgid "Would remove the following item:"
msgid_plural "Would remove the following items:"
msgstr[0] ""
msgstr[1] ""
-#: builtin/clean.c:862
+#: builtin/clean.c:838
msgid "No more files to clean, exiting."
msgstr ""
-#: builtin/clean.c:893
+#: builtin/clean.c:869
msgid "do not print names of files removed"
msgstr ""
-#: builtin/clean.c:895
+#: builtin/clean.c:871
msgid "force"
msgstr ""
-#: builtin/clean.c:896
+#: builtin/clean.c:872
msgid "interactive cleaning"
msgstr ""
-#: builtin/clean.c:898
+#: builtin/clean.c:874
msgid "remove whole directories"
msgstr ""
-#: builtin/clean.c:899 builtin/describe.c:407 builtin/grep.c:709
-#: builtin/ls-files.c:443 builtin/name-rev.c:307 builtin/show-ref.c:182
+#: builtin/clean.c:875 builtin/describe.c:407 builtin/grep.c:722
+#: builtin/ls-files.c:456 builtin/name-rev.c:307 builtin/show-ref.c:182
msgid "pattern"
msgstr ""
-#: builtin/clean.c:900
+#: builtin/clean.c:876
msgid "add <pattern> to ignore rules"
msgstr ""
-#: builtin/clean.c:901
+#: builtin/clean.c:877
msgid "remove ignored files, too"
msgstr ""
-#: builtin/clean.c:903
+#: builtin/clean.c:879
msgid "remove only ignored files"
msgstr ""
-#: builtin/clean.c:921
+#: builtin/clean.c:897
msgid "-x and -X cannot be used together"
msgstr ""
-#: builtin/clean.c:925
+#: builtin/clean.c:901
msgid ""
"clean.requireForce set to true and neither -i, -n, nor -f given; refusing to "
"clean"
msgstr ""
-#: builtin/clean.c:928
+#: builtin/clean.c:904
msgid ""
"clean.requireForce defaults to true and neither -i, -n, nor -f given; "
"refusing to clean"
@@ -4291,263 +4447,286 @@ msgstr ""
msgid "git clone [<options>] [--] <repo> [<dir>]"
msgstr ""
-#: builtin/clone.c:59
+#: builtin/clone.c:60
msgid "don't create a checkout"
msgstr ""
-#: builtin/clone.c:60 builtin/clone.c:62 builtin/init-db.c:469
+#: builtin/clone.c:61 builtin/clone.c:63 builtin/init-db.c:469
msgid "create a bare repository"
msgstr ""
-#: builtin/clone.c:64
+#: builtin/clone.c:65
msgid "create a mirror repository (implies bare)"
msgstr ""
-#: builtin/clone.c:66
+#: builtin/clone.c:67
msgid "to clone from a local repository"
msgstr ""
-#: builtin/clone.c:68
+#: builtin/clone.c:69
msgid "don't use local hardlinks, always copy"
msgstr ""
-#: builtin/clone.c:70
+#: builtin/clone.c:71
msgid "setup as shared repository"
msgstr ""
-#: builtin/clone.c:72 builtin/clone.c:74
+#: builtin/clone.c:73 builtin/clone.c:75
msgid "initialize submodules in the clone"
msgstr ""
-#: builtin/clone.c:75 builtin/init-db.c:466
+#: builtin/clone.c:76 builtin/init-db.c:466
msgid "template-directory"
msgstr ""
-#: builtin/clone.c:76 builtin/init-db.c:467
+#: builtin/clone.c:77 builtin/init-db.c:467
msgid "directory from which templates will be used"
msgstr ""
-#: builtin/clone.c:78 builtin/submodule--helper.c:179
+#: builtin/clone.c:79 builtin/submodule--helper.c:173
msgid "reference repository"
msgstr ""
-#: builtin/clone.c:80
+#: builtin/clone.c:81
msgid "use --reference only while cloning"
msgstr ""
-#: builtin/clone.c:81 builtin/column.c:26 builtin/merge-file.c:44
+#: builtin/clone.c:82 builtin/column.c:26 builtin/merge-file.c:44
msgid "name"
msgstr ""
-#: builtin/clone.c:82
+#: builtin/clone.c:83
msgid "use <name> instead of 'origin' to track upstream"
msgstr ""
-#: builtin/clone.c:84
+#: builtin/clone.c:85
msgid "checkout <branch> instead of the remote's HEAD"
msgstr ""
-#: builtin/clone.c:86
+#: builtin/clone.c:87
msgid "path to git-upload-pack on the remote"
msgstr ""
-#: builtin/clone.c:87 builtin/fetch.c:113 builtin/grep.c:654
-#: builtin/pull.c:186
+#: builtin/clone.c:88 builtin/fetch.c:117 builtin/grep.c:665
+#: builtin/pull.c:193
msgid "depth"
msgstr ""
-#: builtin/clone.c:88
+#: builtin/clone.c:89
msgid "create a shallow clone of that depth"
msgstr ""
-#: builtin/clone.c:90
+#: builtin/clone.c:91
msgid "clone only one branch, HEAD or --branch"
msgstr ""
-#: builtin/clone.c:91 builtin/init-db.c:475
+#: builtin/clone.c:92 builtin/init-db.c:475
msgid "gitdir"
msgstr ""
-#: builtin/clone.c:92 builtin/init-db.c:476
+#: builtin/clone.c:93 builtin/init-db.c:476
msgid "separate git dir from working tree"
msgstr ""
-#: builtin/clone.c:93
+#: builtin/clone.c:94
msgid "key=value"
msgstr ""
-#: builtin/clone.c:94
+#: builtin/clone.c:95
msgid "set config inside the new repository"
msgstr ""
-#: builtin/clone.c:300
+#: builtin/clone.c:96 builtin/fetch.c:131 builtin/push.c:536
+msgid "use IPv4 addresses only"
+msgstr ""
+
+#: builtin/clone.c:98 builtin/fetch.c:133 builtin/push.c:538
+msgid "use IPv6 addresses only"
+msgstr ""
+
+#: builtin/clone.c:239
+msgid ""
+"No directory name could be guessed.\n"
+"Please specify a directory on the command line"
+msgstr ""
+
+#: builtin/clone.c:305
#, c-format
msgid "reference repository '%s' as a linked checkout is not supported yet."
msgstr ""
-#: builtin/clone.c:302
+#: builtin/clone.c:307
#, c-format
msgid "reference repository '%s' is not a local repository."
msgstr ""
-#: builtin/clone.c:307
+#: builtin/clone.c:312
#, c-format
msgid "reference repository '%s' is shallow"
msgstr ""
-#: builtin/clone.c:310
+#: builtin/clone.c:315
#, c-format
msgid "reference repository '%s' is grafted"
msgstr ""
-#: builtin/clone.c:375 builtin/diff.c:84
+#: builtin/clone.c:380 builtin/diff.c:84
#, c-format
msgid "failed to stat '%s'"
msgstr ""
-#: builtin/clone.c:377
+#: builtin/clone.c:382
#, c-format
msgid "%s exists and is not a directory"
msgstr ""
-#: builtin/clone.c:391
+#: builtin/clone.c:396
#, c-format
msgid "failed to stat %s\n"
msgstr ""
-#: builtin/clone.c:413
+#: builtin/clone.c:418
#, c-format
msgid "failed to create link '%s'"
msgstr ""
-#: builtin/clone.c:417
+#: builtin/clone.c:422
#, c-format
msgid "failed to copy file to '%s'"
msgstr ""
-#: builtin/clone.c:442 builtin/clone.c:626
+#: builtin/clone.c:447 builtin/clone.c:631
#, c-format
msgid "done.\n"
msgstr ""
-#: builtin/clone.c:454
+#: builtin/clone.c:459
msgid ""
"Clone succeeded, but checkout failed.\n"
"You can inspect what was checked out with 'git status'\n"
"and retry the checkout with 'git checkout -f HEAD'\n"
msgstr ""
-#: builtin/clone.c:531
+#: builtin/clone.c:536
#, c-format
msgid "Could not find remote branch %s to clone."
msgstr ""
-#: builtin/clone.c:621
+#: builtin/clone.c:626
#, c-format
msgid "Checking connectivity... "
msgstr ""
-#: builtin/clone.c:624
+#: builtin/clone.c:629
msgid "remote did not send all necessary objects"
msgstr ""
-#: builtin/clone.c:688
+#: builtin/clone.c:647
+#, c-format
+msgid "unable to update %s"
+msgstr ""
+
+#: builtin/clone.c:696
msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
msgstr ""
-#: builtin/clone.c:719
+#: builtin/clone.c:727
msgid "unable to checkout working tree"
msgstr ""
-#: builtin/clone.c:808
+#: builtin/clone.c:753
+msgid "unable to write parameters to config file"
+msgstr ""
+
+#: builtin/clone.c:816
msgid "cannot repack to clean up"
msgstr ""
-#: builtin/clone.c:810
+#: builtin/clone.c:818
msgid "cannot unlink temporary alternates file"
msgstr ""
-#: builtin/clone.c:842
+#: builtin/clone.c:850
msgid "Too many arguments."
msgstr ""
-#: builtin/clone.c:846
+#: builtin/clone.c:854
msgid "You must specify a repository to clone."
msgstr ""
-#: builtin/clone.c:857
+#: builtin/clone.c:865
#, c-format
msgid "--bare and --origin %s options are incompatible."
msgstr ""
-#: builtin/clone.c:860
+#: builtin/clone.c:868
msgid "--bare and --separate-git-dir are incompatible."
msgstr ""
-#: builtin/clone.c:873
+#: builtin/clone.c:881
#, c-format
msgid "repository '%s' does not exist"
msgstr ""
-#: builtin/clone.c:879 builtin/fetch.c:1166
+#: builtin/clone.c:887 builtin/fetch.c:1174
#, c-format
msgid "depth %s is not a positive number"
msgstr ""
-#: builtin/clone.c:889
+#: builtin/clone.c:897
#, c-format
msgid "destination path '%s' already exists and is not an empty directory."
msgstr ""
-#: builtin/clone.c:899
+#: builtin/clone.c:907
#, c-format
msgid "working tree '%s' already exists."
msgstr ""
-#: builtin/clone.c:914 builtin/clone.c:925 builtin/submodule--helper.c:224
-#: builtin/worktree.c:221 builtin/worktree.c:248
+#: builtin/clone.c:922 builtin/clone.c:933 builtin/submodule--helper.c:218
+#: builtin/worktree.c:219 builtin/worktree.c:246
#, c-format
msgid "could not create leading directories of '%s'"
msgstr ""
-#: builtin/clone.c:917
+#: builtin/clone.c:925
#, c-format
msgid "could not create work tree dir '%s'"
msgstr ""
-#: builtin/clone.c:935
+#: builtin/clone.c:943
#, c-format
msgid "Cloning into bare repository '%s'...\n"
msgstr ""
-#: builtin/clone.c:937
+#: builtin/clone.c:945
#, c-format
msgid "Cloning into '%s'...\n"
msgstr ""
-#: builtin/clone.c:975
+#: builtin/clone.c:984
msgid "--depth is ignored in local clones; use file:// instead."
msgstr ""
-#: builtin/clone.c:978
+#: builtin/clone.c:987
msgid "source repository is shallow, ignoring --local"
msgstr ""
-#: builtin/clone.c:983
+#: builtin/clone.c:992
msgid "--local is ignored"
msgstr ""
-#: builtin/clone.c:987
+#: builtin/clone.c:996
#, c-format
msgid "Don't know how to clone %s"
msgstr ""
-#: builtin/clone.c:1036 builtin/clone.c:1044
+#: builtin/clone.c:1045 builtin/clone.c:1053
#, c-format
msgid "Remote branch %s not found in upstream %s"
msgstr ""
-#: builtin/clone.c:1047
+#: builtin/clone.c:1056
msgid "You appear to have cloned an empty repository."
msgstr ""
@@ -4720,7 +4899,7 @@ msgstr ""
msgid "could not lookup commit %s"
msgstr ""
-#: builtin/commit.c:702 builtin/shortlog.c:273
+#: builtin/commit.c:702 builtin/shortlog.c:285
#, c-format
msgid "(reading log message from standard input)\n"
msgstr ""
@@ -4888,8 +5067,8 @@ msgstr ""
msgid "show branch information"
msgstr ""
-#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:544
-#: builtin/worktree.c:423
+#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:512
+#: builtin/worktree.c:430
msgid "machine-readable output"
msgstr ""
@@ -4976,8 +5155,8 @@ msgstr ""
msgid "override date for commit"
msgstr ""
-#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:392
-#: builtin/notes.c:555 builtin/tag.c:349
+#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:395
+#: builtin/notes.c:558 builtin/tag.c:349
msgid "message"
msgstr ""
@@ -5010,7 +5189,7 @@ msgstr ""
msgid "the commit is authored by me now (used with -C/-c/--amend)"
msgstr ""
-#: builtin/commit.c:1588 builtin/log.c:1216 builtin/revert.c:86
+#: builtin/commit.c:1588 builtin/log.c:1219 builtin/revert.c:86
msgid "add Signed-off-by:"
msgstr ""
@@ -5034,7 +5213,7 @@ msgstr ""
msgid "include status in commit message template"
msgstr ""
-#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:156
+#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:160
#: builtin/revert.c:93
msgid "GPG sign commit"
msgstr ""
@@ -5122,139 +5301,143 @@ msgid ""
"not exceeded, and then \"git reset HEAD\" to recover."
msgstr ""
-#: builtin/config.c:8
+#: builtin/config.c:9
msgid "git config [<options>]"
msgstr ""
-#: builtin/config.c:54
+#: builtin/config.c:56
msgid "Config file location"
msgstr ""
-#: builtin/config.c:55
+#: builtin/config.c:57
msgid "use global config file"
msgstr ""
-#: builtin/config.c:56
+#: builtin/config.c:58
msgid "use system config file"
msgstr ""
-#: builtin/config.c:57
+#: builtin/config.c:59
msgid "use repository config file"
msgstr ""
-#: builtin/config.c:58
+#: builtin/config.c:60
msgid "use given config file"
msgstr ""
-#: builtin/config.c:59
+#: builtin/config.c:61
msgid "blob-id"
msgstr ""
-#: builtin/config.c:59
+#: builtin/config.c:61
msgid "read config from given blob object"
msgstr ""
-#: builtin/config.c:60
+#: builtin/config.c:62
msgid "Action"
msgstr ""
-#: builtin/config.c:61
+#: builtin/config.c:63
msgid "get value: name [value-regex]"
msgstr ""
-#: builtin/config.c:62
+#: builtin/config.c:64
msgid "get all values: key [value-regex]"
msgstr ""
-#: builtin/config.c:63
+#: builtin/config.c:65
msgid "get values for regexp: name-regex [value-regex]"
msgstr ""
-#: builtin/config.c:64
+#: builtin/config.c:66
msgid "get value specific for the URL: section[.var] URL"
msgstr ""
-#: builtin/config.c:65
+#: builtin/config.c:67
msgid "replace all matching variables: name value [value_regex]"
msgstr ""
-#: builtin/config.c:66
+#: builtin/config.c:68
msgid "add a new variable: name value"
msgstr ""
-#: builtin/config.c:67
+#: builtin/config.c:69
msgid "remove a variable: name [value-regex]"
msgstr ""
-#: builtin/config.c:68
+#: builtin/config.c:70
msgid "remove all matches: name [value-regex]"
msgstr ""
-#: builtin/config.c:69
+#: builtin/config.c:71
msgid "rename section: old-name new-name"
msgstr ""
-#: builtin/config.c:70
+#: builtin/config.c:72
msgid "remove a section: name"
msgstr ""
-#: builtin/config.c:71
+#: builtin/config.c:73
msgid "list all"
msgstr ""
-#: builtin/config.c:72
+#: builtin/config.c:74
msgid "open an editor"
msgstr ""
-#: builtin/config.c:73
+#: builtin/config.c:75
msgid "find the color configured: slot [default]"
msgstr ""
-#: builtin/config.c:74
+#: builtin/config.c:76
msgid "find the color setting: slot [stdout-is-tty]"
msgstr ""
-#: builtin/config.c:75
+#: builtin/config.c:77
msgid "Type"
msgstr ""
-#: builtin/config.c:76
+#: builtin/config.c:78
msgid "value is \"true\" or \"false\""
msgstr ""
-#: builtin/config.c:77
+#: builtin/config.c:79
msgid "value is decimal number"
msgstr ""
-#: builtin/config.c:78
+#: builtin/config.c:80
msgid "value is --bool or --int"
msgstr ""
-#: builtin/config.c:79
+#: builtin/config.c:81
msgid "value is a path (file or directory name)"
msgstr ""
-#: builtin/config.c:80
+#: builtin/config.c:82
msgid "Other"
msgstr ""
-#: builtin/config.c:81
+#: builtin/config.c:83
msgid "terminate values with NUL byte"
msgstr ""
-#: builtin/config.c:82
+#: builtin/config.c:84
msgid "show variable names only"
msgstr ""
-#: builtin/config.c:83
+#: builtin/config.c:85
msgid "respect include directives on lookup"
msgstr ""
-#: builtin/config.c:303
+#: builtin/config.c:86
+msgid "show origin of config (file, standard input, blob, command line)"
+msgstr ""
+
+#: builtin/config.c:328
msgid "unable to parse default color value"
msgstr ""
-#: builtin/config.c:441
+#: builtin/config.c:469
#, c-format
msgid ""
"# This is Git's per-user configuration file.\n"
@@ -5264,7 +5447,7 @@ msgid ""
"#\temail = %s\n"
msgstr ""
-#: builtin/config.c:575
+#: builtin/config.c:611
#, c-format
msgid "cannot create configuration file %s"
msgstr ""
@@ -5508,247 +5691,251 @@ msgstr ""
msgid "git fetch --all [<options>]"
msgstr ""
-#: builtin/fetch.c:90 builtin/pull.c:162
+#: builtin/fetch.c:92 builtin/pull.c:166
msgid "fetch from all remotes"
msgstr ""
-#: builtin/fetch.c:92 builtin/pull.c:165
+#: builtin/fetch.c:94 builtin/pull.c:169
msgid "append to .git/FETCH_HEAD instead of overwriting"
msgstr ""
-#: builtin/fetch.c:94 builtin/pull.c:168
+#: builtin/fetch.c:96 builtin/pull.c:172
msgid "path to upload pack on remote end"
msgstr ""
-#: builtin/fetch.c:95 builtin/pull.c:170
+#: builtin/fetch.c:97 builtin/pull.c:174
msgid "force overwrite of local branch"
msgstr ""
-#: builtin/fetch.c:97
+#: builtin/fetch.c:99
msgid "fetch from multiple remotes"
msgstr ""
-#: builtin/fetch.c:99 builtin/pull.c:172
+#: builtin/fetch.c:101 builtin/pull.c:176
msgid "fetch all tags and associated objects"
msgstr ""
-#: builtin/fetch.c:101
+#: builtin/fetch.c:103
msgid "do not fetch all tags (--no-tags)"
msgstr ""
-#: builtin/fetch.c:103 builtin/pull.c:175
+#: builtin/fetch.c:105
+msgid "number of submodules fetched in parallel"
+msgstr ""
+
+#: builtin/fetch.c:107 builtin/pull.c:179
msgid "prune remote-tracking branches no longer on remote"
msgstr ""
-#: builtin/fetch.c:104 builtin/pull.c:178
+#: builtin/fetch.c:108 builtin/pull.c:182
msgid "on-demand"
msgstr ""
-#: builtin/fetch.c:105 builtin/pull.c:179
+#: builtin/fetch.c:109 builtin/pull.c:183
msgid "control recursive fetching of submodules"
msgstr ""
-#: builtin/fetch.c:109 builtin/pull.c:184
+#: builtin/fetch.c:113 builtin/pull.c:191
msgid "keep downloaded pack"
msgstr ""
-#: builtin/fetch.c:111
+#: builtin/fetch.c:115
msgid "allow updating of HEAD ref"
msgstr ""
-#: builtin/fetch.c:114 builtin/pull.c:187
+#: builtin/fetch.c:118 builtin/pull.c:194
msgid "deepen history of shallow clone"
msgstr ""
-#: builtin/fetch.c:116 builtin/pull.c:190
+#: builtin/fetch.c:120 builtin/pull.c:197
msgid "convert to a complete repository"
msgstr ""
-#: builtin/fetch.c:118 builtin/log.c:1233
+#: builtin/fetch.c:122 builtin/log.c:1236
msgid "dir"
msgstr ""
-#: builtin/fetch.c:119
+#: builtin/fetch.c:123
msgid "prepend this to submodule path output"
msgstr ""
-#: builtin/fetch.c:122
+#: builtin/fetch.c:126
msgid "default mode for recursion"
msgstr ""
-#: builtin/fetch.c:124 builtin/pull.c:193
+#: builtin/fetch.c:128 builtin/pull.c:200
msgid "accept refs that update .git/shallow"
msgstr ""
-#: builtin/fetch.c:125 builtin/pull.c:195
+#: builtin/fetch.c:129 builtin/pull.c:202
msgid "refmap"
msgstr ""
-#: builtin/fetch.c:126 builtin/pull.c:196
+#: builtin/fetch.c:130 builtin/pull.c:203
msgid "specify fetch refmap"
msgstr ""
-#: builtin/fetch.c:378
+#: builtin/fetch.c:386
msgid "Couldn't find remote ref HEAD"
msgstr ""
-#: builtin/fetch.c:458
+#: builtin/fetch.c:466
#, c-format
msgid "object %s not found"
msgstr ""
-#: builtin/fetch.c:463
+#: builtin/fetch.c:471
msgid "[up to date]"
msgstr ""
-#: builtin/fetch.c:477
+#: builtin/fetch.c:485
#, c-format
msgid "! %-*s %-*s -> %s (can't fetch in current branch)"
msgstr ""
-#: builtin/fetch.c:478 builtin/fetch.c:566
+#: builtin/fetch.c:486 builtin/fetch.c:574
msgid "[rejected]"
msgstr ""
-#: builtin/fetch.c:489
+#: builtin/fetch.c:497
msgid "[tag update]"
msgstr ""
-#: builtin/fetch.c:491 builtin/fetch.c:526 builtin/fetch.c:544
+#: builtin/fetch.c:499 builtin/fetch.c:534 builtin/fetch.c:552
msgid " (unable to update local ref)"
msgstr ""
-#: builtin/fetch.c:509
+#: builtin/fetch.c:517
msgid "[new tag]"
msgstr ""
-#: builtin/fetch.c:512
+#: builtin/fetch.c:520
msgid "[new branch]"
msgstr ""
-#: builtin/fetch.c:515
+#: builtin/fetch.c:523
msgid "[new ref]"
msgstr ""
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
msgid "unable to update local ref"
msgstr ""
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
msgid "forced update"
msgstr ""
-#: builtin/fetch.c:568
+#: builtin/fetch.c:576
msgid "(non-fast-forward)"
msgstr ""
-#: builtin/fetch.c:602 builtin/fetch.c:843
+#: builtin/fetch.c:610 builtin/fetch.c:851
#, c-format
msgid "cannot open %s: %s\n"
msgstr ""
-#: builtin/fetch.c:611
+#: builtin/fetch.c:619
#, c-format
msgid "%s did not send all necessary objects\n"
msgstr ""
-#: builtin/fetch.c:629
+#: builtin/fetch.c:637
#, c-format
msgid "reject %s because shallow roots are not allowed to be updated"
msgstr ""
-#: builtin/fetch.c:716 builtin/fetch.c:808
+#: builtin/fetch.c:724 builtin/fetch.c:816
#, c-format
msgid "From %.*s\n"
msgstr ""
-#: builtin/fetch.c:727
+#: builtin/fetch.c:735
#, 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:779
+#: builtin/fetch.c:787
#, c-format
msgid " (%s will become dangling)"
msgstr ""
-#: builtin/fetch.c:780
+#: builtin/fetch.c:788
#, c-format
msgid " (%s has become dangling)"
msgstr ""
-#: builtin/fetch.c:812
+#: builtin/fetch.c:820
msgid "[deleted]"
msgstr ""
-#: builtin/fetch.c:813 builtin/remote.c:1040
+#: builtin/fetch.c:821 builtin/remote.c:1025
msgid "(none)"
msgstr ""
-#: builtin/fetch.c:833
+#: builtin/fetch.c:841
#, c-format
msgid "Refusing to fetch into current branch %s of non-bare repository"
msgstr ""
-#: builtin/fetch.c:852
+#: builtin/fetch.c:860
#, c-format
msgid "Option \"%s\" value \"%s\" is not valid for %s"
msgstr ""
-#: builtin/fetch.c:855
+#: builtin/fetch.c:863
#, c-format
msgid "Option \"%s\" is ignored for %s\n"
msgstr ""
-#: builtin/fetch.c:911
+#: builtin/fetch.c:920
#, c-format
msgid "Don't know how to fetch from %s"
msgstr ""
-#: builtin/fetch.c:1072
+#: builtin/fetch.c:1080
#, c-format
msgid "Fetching %s\n"
msgstr ""
-#: builtin/fetch.c:1074 builtin/remote.c:96
+#: builtin/fetch.c:1082 builtin/remote.c:96
#, c-format
msgid "Could not fetch %s"
msgstr ""
-#: builtin/fetch.c:1092
+#: builtin/fetch.c:1100
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:1115
+#: builtin/fetch.c:1123
msgid "You need to specify a tag name."
msgstr ""
-#: builtin/fetch.c:1157
+#: builtin/fetch.c:1165
msgid "--depth and --unshallow cannot be used together"
msgstr ""
-#: builtin/fetch.c:1159
+#: builtin/fetch.c:1167
msgid "--unshallow on a complete repository does not make sense"
msgstr ""
-#: builtin/fetch.c:1179
+#: builtin/fetch.c:1187
msgid "fetch --all does not take a repository argument"
msgstr ""
-#: builtin/fetch.c:1181
+#: builtin/fetch.c:1189
msgid "fetch --all does not make sense with refspecs"
msgstr ""
-#: builtin/fetch.c:1192
+#: builtin/fetch.c:1200
#, c-format
msgid "No such remote or remote group: %s"
msgstr ""
-#: builtin/fetch.c:1200
+#: builtin/fetch.c:1208
msgid "Fetching a group and specifying refspecs does not make sense"
msgstr ""
@@ -5963,259 +6150,273 @@ msgstr ""
msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]"
msgstr ""
-#: builtin/grep.c:218
+#: builtin/grep.c:219
#, c-format
msgid "grep: failed to create thread: %s"
msgstr ""
-#: builtin/grep.c:441 builtin/grep.c:476
+#: builtin/grep.c:277
+#, c-format
+msgid "invalid number of threads specified (%d) for %s"
+msgstr ""
+
+#: builtin/grep.c:452 builtin/grep.c:487
#, c-format
msgid "unable to read tree (%s)"
msgstr ""
-#: builtin/grep.c:491
+#: builtin/grep.c:502
#, c-format
msgid "unable to grep from object of type %s"
msgstr ""
-#: builtin/grep.c:547
+#: builtin/grep.c:558
#, c-format
msgid "switch `%c' expects a numerical value"
msgstr ""
-#: builtin/grep.c:564
+#: builtin/grep.c:575
#, c-format
msgid "cannot open '%s'"
msgstr ""
-#: builtin/grep.c:633
+#: builtin/grep.c:644
msgid "search in index instead of in the work tree"
msgstr ""
-#: builtin/grep.c:635
+#: builtin/grep.c:646
msgid "find in contents not managed by git"
msgstr ""
-#: builtin/grep.c:637
+#: builtin/grep.c:648
msgid "search in both tracked and untracked files"
msgstr ""
-#: builtin/grep.c:639
+#: builtin/grep.c:650
msgid "ignore files specified via '.gitignore'"
msgstr ""
-#: builtin/grep.c:642
+#: builtin/grep.c:653
msgid "show non-matching lines"
msgstr ""
-#: builtin/grep.c:644
+#: builtin/grep.c:655
msgid "case insensitive matching"
msgstr ""
-#: builtin/grep.c:646
+#: builtin/grep.c:657
msgid "match patterns only at word boundaries"
msgstr ""
-#: builtin/grep.c:648
+#: builtin/grep.c:659
msgid "process binary files as text"
msgstr ""
-#: builtin/grep.c:650
+#: builtin/grep.c:661
msgid "don't match patterns in binary files"
msgstr ""
-#: builtin/grep.c:653
+#: builtin/grep.c:664
msgid "process binary files with textconv filters"
msgstr ""
-#: builtin/grep.c:655
+#: builtin/grep.c:666
msgid "descend at most <depth> levels"
msgstr ""
-#: builtin/grep.c:659
+#: builtin/grep.c:670
msgid "use extended POSIX regular expressions"
msgstr ""
-#: builtin/grep.c:662
+#: builtin/grep.c:673
msgid "use basic POSIX regular expressions (default)"
msgstr ""
-#: builtin/grep.c:665
+#: builtin/grep.c:676
msgid "interpret patterns as fixed strings"
msgstr ""
-#: builtin/grep.c:668
+#: builtin/grep.c:679
msgid "use Perl-compatible regular expressions"
msgstr ""
-#: builtin/grep.c:671
+#: builtin/grep.c:682
msgid "show line numbers"
msgstr ""
-#: builtin/grep.c:672
+#: builtin/grep.c:683
msgid "don't show filenames"
msgstr ""
-#: builtin/grep.c:673
+#: builtin/grep.c:684
msgid "show filenames"
msgstr ""
-#: builtin/grep.c:675
+#: builtin/grep.c:686
msgid "show filenames relative to top directory"
msgstr ""
-#: builtin/grep.c:677
+#: builtin/grep.c:688
msgid "show only filenames instead of matching lines"
msgstr ""
-#: builtin/grep.c:679
+#: builtin/grep.c:690
msgid "synonym for --files-with-matches"
msgstr ""
-#: builtin/grep.c:682
+#: builtin/grep.c:693
msgid "show only the names of files without match"
msgstr ""
-#: builtin/grep.c:684
+#: builtin/grep.c:695
msgid "print NUL after filenames"
msgstr ""
-#: builtin/grep.c:686
+#: builtin/grep.c:697
msgid "show the number of matches instead of matching lines"
msgstr ""
-#: builtin/grep.c:687
+#: builtin/grep.c:698
msgid "highlight matches"
msgstr ""
-#: builtin/grep.c:689
+#: builtin/grep.c:700
msgid "print empty line between matches from different files"
msgstr ""
-#: builtin/grep.c:691
+#: builtin/grep.c:702
msgid "show filename only once above matches from same file"
msgstr ""
-#: builtin/grep.c:694
+#: builtin/grep.c:705
msgid "show <n> context lines before and after matches"
msgstr ""
-#: builtin/grep.c:697
+#: builtin/grep.c:708
msgid "show <n> context lines before matches"
msgstr ""
-#: builtin/grep.c:699
+#: builtin/grep.c:710
msgid "show <n> context lines after matches"
msgstr ""
-#: builtin/grep.c:700
+#: builtin/grep.c:712
+msgid "use <n> worker threads"
+msgstr ""
+
+#: builtin/grep.c:713
msgid "shortcut for -C NUM"
msgstr ""
-#: builtin/grep.c:703
+#: builtin/grep.c:716
msgid "show a line with the function name before matches"
msgstr ""
-#: builtin/grep.c:705
+#: builtin/grep.c:718
msgid "show the surrounding function"
msgstr ""
-#: builtin/grep.c:708
+#: builtin/grep.c:721
msgid "read patterns from file"
msgstr ""
-#: builtin/grep.c:710
+#: builtin/grep.c:723
msgid "match <pattern>"
msgstr ""
-#: builtin/grep.c:712
+#: builtin/grep.c:725
msgid "combine patterns specified with -e"
msgstr ""
-#: builtin/grep.c:724
+#: builtin/grep.c:737
msgid "indicate hit with exit status without output"
msgstr ""
-#: builtin/grep.c:726
+#: builtin/grep.c:739
msgid "show only matches from files that match all patterns"
msgstr ""
-#: builtin/grep.c:728
+#: builtin/grep.c:741
msgid "show parse tree for grep expression"
msgstr ""
-#: builtin/grep.c:732
+#: builtin/grep.c:745
msgid "pager"
msgstr ""
-#: builtin/grep.c:732
+#: builtin/grep.c:745
msgid "show matching files in the pager"
msgstr ""
-#: builtin/grep.c:735
+#: builtin/grep.c:748
msgid "allow calling of grep(1) (ignored by this build)"
msgstr ""
-#: builtin/grep.c:793
+#: builtin/grep.c:811
msgid "no pattern given."
msgstr ""
-#: builtin/grep.c:851
+#: builtin/grep.c:843 builtin/index-pack.c:1475
+#, c-format
+msgid "invalid number of threads specified (%d)"
+msgstr ""
+
+#: builtin/grep.c:873
msgid "--open-files-in-pager only works on the worktree"
msgstr ""
-#: builtin/grep.c:877
+#: builtin/grep.c:899
msgid "--cached or --untracked cannot be used with --no-index."
msgstr ""
-#: builtin/grep.c:882
+#: builtin/grep.c:904
msgid "--no-index or --untracked cannot be used with revs."
msgstr ""
-#: builtin/grep.c:885
+#: builtin/grep.c:907
msgid "--[no-]exclude-standard cannot be used for tracked contents."
msgstr ""
-#: builtin/grep.c:893
+#: builtin/grep.c:915
msgid "both --cached and trees are given."
msgstr ""
-#: builtin/hash-object.c:80
+#: builtin/hash-object.c:81
msgid ""
"git hash-object [-t <type>] [-w] [--path=<file> | --no-filters] [--stdin] "
"[--] <file>..."
msgstr ""
-#: builtin/hash-object.c:81
+#: builtin/hash-object.c:82
msgid "git hash-object --stdin-paths"
msgstr ""
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
msgid "type"
msgstr ""
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
msgid "object type"
msgstr ""
-#: builtin/hash-object.c:93
+#: builtin/hash-object.c:94
msgid "write the object into the object database"
msgstr ""
-#: builtin/hash-object.c:95
+#: builtin/hash-object.c:96
msgid "read the object from stdin"
msgstr ""
-#: builtin/hash-object.c:97
+#: builtin/hash-object.c:98
msgid "store file as is without filters"
msgstr ""
-#: builtin/hash-object.c:98
+#: builtin/hash-object.c:99
msgid ""
"just hash any random garbage to create corrupt objects for debugging Git"
msgstr ""
-#: builtin/hash-object.c:99
+#: builtin/hash-object.c:100
msgid "process file as it were from this path"
msgstr ""
@@ -6266,75 +6467,75 @@ msgstr ""
msgid "failed to exec '%s': %s"
msgstr ""
-#: builtin/help.c:208
+#: builtin/help.c:205
#, c-format
msgid ""
"'%s': path for unsupported man viewer.\n"
"Please consider using 'man.<tool>.cmd' instead."
msgstr ""
-#: builtin/help.c:220
+#: builtin/help.c:217
#, c-format
msgid ""
"'%s': cmd for supported man viewer.\n"
"Please consider using 'man.<tool>.path' instead."
msgstr ""
-#: builtin/help.c:337
+#: builtin/help.c:334
#, c-format
msgid "'%s': unknown man viewer."
msgstr ""
-#: builtin/help.c:354
+#: builtin/help.c:351
msgid "no man viewer handled the request"
msgstr ""
-#: builtin/help.c:362
+#: builtin/help.c:359
msgid "no info viewer handled the request"
msgstr ""
-#: builtin/help.c:411
+#: builtin/help.c:408
msgid "Defining attributes per path"
msgstr ""
-#: builtin/help.c:412
+#: builtin/help.c:409
msgid "Everyday Git With 20 Commands Or So"
msgstr ""
-#: builtin/help.c:413
+#: builtin/help.c:410
msgid "A Git glossary"
msgstr ""
-#: builtin/help.c:414
+#: builtin/help.c:411
msgid "Specifies intentionally untracked files to ignore"
msgstr ""
-#: builtin/help.c:415
+#: builtin/help.c:412
msgid "Defining submodule properties"
msgstr ""
-#: builtin/help.c:416
+#: builtin/help.c:413
msgid "Specifying revisions and ranges for Git"
msgstr ""
-#: builtin/help.c:417
+#: builtin/help.c:414
msgid "A tutorial introduction to Git (for version 1.5.1 or newer)"
msgstr ""
-#: builtin/help.c:418
+#: builtin/help.c:415
msgid "An overview of recommended workflows with Git"
msgstr ""
-#: builtin/help.c:430
+#: builtin/help.c:427
msgid "The common Git guides are:\n"
msgstr ""
-#: builtin/help.c:451 builtin/help.c:468
+#: builtin/help.c:448 builtin/help.c:465
#, c-format
msgid "usage: %s%s"
msgstr ""
-#: builtin/help.c:484
+#: builtin/help.c:481
#, c-format
msgid "`git %s' is aliased to `%s'"
msgstr ""
@@ -6570,60 +6771,55 @@ msgstr ""
msgid "bad pack.indexversion=%<PRIu32>"
msgstr ""
-#: builtin/index-pack.c:1475
-#, c-format
-msgid "invalid number of threads specified (%d)"
-msgstr ""
-
-#: builtin/index-pack.c:1479 builtin/index-pack.c:1663
+#: builtin/index-pack.c:1479 builtin/index-pack.c:1664
#, c-format
msgid "no threads support, ignoring %s"
msgstr ""
-#: builtin/index-pack.c:1537
+#: builtin/index-pack.c:1538
#, c-format
msgid "Cannot open existing pack file '%s'"
msgstr ""
-#: builtin/index-pack.c:1539
+#: builtin/index-pack.c:1540
#, c-format
msgid "Cannot open existing pack idx file for '%s'"
msgstr ""
-#: builtin/index-pack.c:1586
+#: builtin/index-pack.c:1587
#, c-format
msgid "non delta: %d object"
msgid_plural "non delta: %d objects"
msgstr[0] ""
msgstr[1] ""
-#: builtin/index-pack.c:1593
+#: builtin/index-pack.c:1594
#, c-format
msgid "chain length = %d: %lu object"
msgid_plural "chain length = %d: %lu objects"
msgstr[0] ""
msgstr[1] ""
-#: builtin/index-pack.c:1623
+#: builtin/index-pack.c:1624
msgid "Cannot come back to cwd"
msgstr ""
-#: builtin/index-pack.c:1675 builtin/index-pack.c:1678
-#: builtin/index-pack.c:1690 builtin/index-pack.c:1694
+#: builtin/index-pack.c:1676 builtin/index-pack.c:1679
+#: builtin/index-pack.c:1691 builtin/index-pack.c:1695
#, c-format
msgid "bad %s"
msgstr ""
-#: builtin/index-pack.c:1708
+#: builtin/index-pack.c:1709
msgid "--fix-thin cannot be used without --stdin"
msgstr ""
-#: builtin/index-pack.c:1712 builtin/index-pack.c:1721
+#: builtin/index-pack.c:1713 builtin/index-pack.c:1722
#, c-format
msgid "packfile name '%s' does not end with '.pack'"
msgstr ""
-#: builtin/index-pack.c:1729
+#: builtin/index-pack.c:1730
msgid "--verify with no packfile name given"
msgstr ""
@@ -6745,22 +6941,30 @@ msgstr ""
#: builtin/interpret-trailers.c:15
msgid ""
-"git interpret-trailers [--trim-empty] [(--trailer <token>[(=|:)<value>])...] "
-"[<file>...]"
+"git interpret-trailers [--in-place] [--trim-empty] [(--trailer "
+"<token>[(=|:)<value>])...] [<file>...]"
msgstr ""
-#: builtin/interpret-trailers.c:25
+#: builtin/interpret-trailers.c:26
+msgid "edit files in place"
+msgstr ""
+
+#: builtin/interpret-trailers.c:27
msgid "trim empty trailers"
msgstr ""
-#: builtin/interpret-trailers.c:26
+#: builtin/interpret-trailers.c:28
msgid "trailer"
msgstr ""
-#: builtin/interpret-trailers.c:27
+#: builtin/interpret-trailers.c:29
msgid "trailer(s) to add"
msgstr ""
+#: builtin/interpret-trailers.c:42
+msgid "no input file given for in-place editing"
+msgstr ""
+
#: builtin/log.c:43
msgid "git log [<options>] [<revision-range>] [[--] <path>...]"
msgstr ""
@@ -6814,325 +7018,372 @@ msgstr ""
msgid "Unknown type: %d"
msgstr ""
-#: builtin/log.c:714
+#: builtin/log.c:715
msgid "format.headers without value"
msgstr ""
-#: builtin/log.c:798
+#: builtin/log.c:801
msgid "name of output directory is too long"
msgstr ""
-#: builtin/log.c:813
+#: builtin/log.c:816
#, c-format
msgid "Cannot open patch file %s"
msgstr ""
-#: builtin/log.c:827
+#: builtin/log.c:830
msgid "Need exactly one range."
msgstr ""
-#: builtin/log.c:837
+#: builtin/log.c:840
msgid "Not a range."
msgstr ""
-#: builtin/log.c:943
+#: builtin/log.c:946
msgid "Cover letter needs email format"
msgstr ""
-#: builtin/log.c:1022
+#: builtin/log.c:1025
#, c-format
msgid "insane in-reply-to: %s"
msgstr ""
-#: builtin/log.c:1050
+#: builtin/log.c:1053
msgid "git format-patch [<options>] [<since> | <revision-range>]"
msgstr ""
-#: builtin/log.c:1095
+#: builtin/log.c:1098
msgid "Two output directories?"
msgstr ""
-#: builtin/log.c:1211
+#: builtin/log.c:1214
msgid "use [PATCH n/m] even with a single patch"
msgstr ""
-#: builtin/log.c:1214
+#: builtin/log.c:1217
msgid "use [PATCH] even with multiple patches"
msgstr ""
-#: builtin/log.c:1218
+#: builtin/log.c:1221
msgid "print patches to standard out"
msgstr ""
-#: builtin/log.c:1220
+#: builtin/log.c:1223
msgid "generate a cover letter"
msgstr ""
-#: builtin/log.c:1222
+#: builtin/log.c:1225
msgid "use simple number sequence for output file names"
msgstr ""
-#: builtin/log.c:1223
+#: builtin/log.c:1226
msgid "sfx"
msgstr ""
-#: builtin/log.c:1224
+#: builtin/log.c:1227
msgid "use <sfx> instead of '.patch'"
msgstr ""
-#: builtin/log.c:1226
+#: builtin/log.c:1229
msgid "start numbering patches at <n> instead of 1"
msgstr ""
-#: builtin/log.c:1228
+#: builtin/log.c:1231
msgid "mark the series as Nth re-roll"
msgstr ""
-#: builtin/log.c:1230
+#: builtin/log.c:1233
msgid "Use [<prefix>] instead of [PATCH]"
msgstr ""
-#: builtin/log.c:1233
+#: builtin/log.c:1236
msgid "store resulting files in <dir>"
msgstr ""
-#: builtin/log.c:1236
+#: builtin/log.c:1239
msgid "don't strip/add [PATCH]"
msgstr ""
-#: builtin/log.c:1239
+#: builtin/log.c:1242
msgid "don't output binary diffs"
msgstr ""
-#: builtin/log.c:1241
+#: builtin/log.c:1244
msgid "output all-zero hash in From header"
msgstr ""
-#: builtin/log.c:1243
+#: builtin/log.c:1246
msgid "don't include a patch matching a commit upstream"
msgstr ""
-#: builtin/log.c:1245
+#: builtin/log.c:1248
msgid "show patch format instead of default (patch + stat)"
msgstr ""
-#: builtin/log.c:1247
+#: builtin/log.c:1250
msgid "Messaging"
msgstr ""
-#: builtin/log.c:1248
+#: builtin/log.c:1251
msgid "header"
msgstr ""
-#: builtin/log.c:1249
+#: builtin/log.c:1252
msgid "add email header"
msgstr ""
-#: builtin/log.c:1250 builtin/log.c:1252
+#: builtin/log.c:1253 builtin/log.c:1255
msgid "email"
msgstr ""
-#: builtin/log.c:1250
+#: builtin/log.c:1253
msgid "add To: header"
msgstr ""
-#: builtin/log.c:1252
+#: builtin/log.c:1255
msgid "add Cc: header"
msgstr ""
-#: builtin/log.c:1254
+#: builtin/log.c:1257
msgid "ident"
msgstr ""
-#: builtin/log.c:1255
+#: builtin/log.c:1258
msgid "set From address to <ident> (or committer ident if absent)"
msgstr ""
-#: builtin/log.c:1257
+#: builtin/log.c:1260
msgid "message-id"
msgstr ""
-#: builtin/log.c:1258
+#: builtin/log.c:1261
msgid "make first mail a reply to <message-id>"
msgstr ""
-#: builtin/log.c:1259 builtin/log.c:1262
+#: builtin/log.c:1262 builtin/log.c:1265
msgid "boundary"
msgstr ""
-#: builtin/log.c:1260
+#: builtin/log.c:1263
msgid "attach the patch"
msgstr ""
-#: builtin/log.c:1263
+#: builtin/log.c:1266
msgid "inline the patch"
msgstr ""
-#: builtin/log.c:1267
+#: builtin/log.c:1270
msgid "enable message threading, styles: shallow, deep"
msgstr ""
-#: builtin/log.c:1269
+#: builtin/log.c:1272
msgid "signature"
msgstr ""
-#: builtin/log.c:1270
+#: builtin/log.c:1273
msgid "add a signature"
msgstr ""
-#: builtin/log.c:1272
+#: builtin/log.c:1275
msgid "add a signature from a file"
msgstr ""
-#: builtin/log.c:1273
+#: builtin/log.c:1276
msgid "don't print the patch filenames"
msgstr ""
-#: builtin/log.c:1362
+#: builtin/log.c:1365
msgid "-n and -k are mutually exclusive."
msgstr ""
-#: builtin/log.c:1364
+#: builtin/log.c:1367
msgid "--subject-prefix and -k are mutually exclusive."
msgstr ""
-#: builtin/log.c:1372
+#: builtin/log.c:1375
msgid "--name-only does not make sense"
msgstr ""
-#: builtin/log.c:1374
+#: builtin/log.c:1377
msgid "--name-status does not make sense"
msgstr ""
-#: builtin/log.c:1376
+#: builtin/log.c:1379
msgid "--check does not make sense"
msgstr ""
-#: builtin/log.c:1401
+#: builtin/log.c:1407
msgid "standard output, or directory, which one?"
msgstr ""
-#: builtin/log.c:1403
+#: builtin/log.c:1409
#, c-format
msgid "Could not create directory '%s'"
msgstr ""
-#: builtin/log.c:1500
+#: builtin/log.c:1506
#, c-format
msgid "unable to read signature file '%s'"
msgstr ""
-#: builtin/log.c:1563
+#: builtin/log.c:1569
msgid "Failed to create output files"
msgstr ""
-#: builtin/log.c:1611
+#: builtin/log.c:1617
msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
msgstr ""
-#: builtin/log.c:1665
+#: builtin/log.c:1671
#, c-format
msgid ""
"Could not find a tracked remote branch, please specify <upstream> manually.\n"
msgstr ""
-#: builtin/log.c:1676 builtin/log.c:1678 builtin/log.c:1690
+#: builtin/log.c:1682 builtin/log.c:1684 builtin/log.c:1696
#, c-format
msgid "Unknown commit %s"
msgstr ""
-#: builtin/ls-files.c:358
+#: builtin/ls-files.c:378
msgid "git ls-files [<options>] [<file>...]"
msgstr ""
-#: builtin/ls-files.c:415
+#: builtin/ls-files.c:427
msgid "identify the file status with tags"
msgstr ""
-#: builtin/ls-files.c:417
+#: builtin/ls-files.c:429
msgid "use lowercase letters for 'assume unchanged' files"
msgstr ""
-#: builtin/ls-files.c:419
+#: builtin/ls-files.c:431
msgid "show cached files in the output (default)"
msgstr ""
-#: builtin/ls-files.c:421
+#: builtin/ls-files.c:433
msgid "show deleted files in the output"
msgstr ""
-#: builtin/ls-files.c:423
+#: builtin/ls-files.c:435
msgid "show modified files in the output"
msgstr ""
-#: builtin/ls-files.c:425
+#: builtin/ls-files.c:437
msgid "show other files in the output"
msgstr ""
-#: builtin/ls-files.c:427
+#: builtin/ls-files.c:439
msgid "show ignored files in the output"
msgstr ""
-#: builtin/ls-files.c:430
+#: builtin/ls-files.c:442
msgid "show staged contents' object name in the output"
msgstr ""
-#: builtin/ls-files.c:432
+#: builtin/ls-files.c:444
msgid "show files on the filesystem that need to be removed"
msgstr ""
-#: builtin/ls-files.c:434
+#: builtin/ls-files.c:446
msgid "show 'other' directories' names only"
msgstr ""
-#: builtin/ls-files.c:437
+#: builtin/ls-files.c:448
+msgid "show line endings of files"
+msgstr ""
+
+#: builtin/ls-files.c:450
msgid "don't show empty directories"
msgstr ""
-#: builtin/ls-files.c:440
+#: builtin/ls-files.c:453
msgid "show unmerged files in the output"
msgstr ""
-#: builtin/ls-files.c:442
+#: builtin/ls-files.c:455
msgid "show resolve-undo information"
msgstr ""
-#: builtin/ls-files.c:444
+#: builtin/ls-files.c:457
msgid "skip files matching pattern"
msgstr ""
-#: builtin/ls-files.c:447
+#: builtin/ls-files.c:460
msgid "exclude patterns are read from <file>"
msgstr ""
-#: builtin/ls-files.c:450
+#: builtin/ls-files.c:463
msgid "read additional per-directory exclude patterns in <file>"
msgstr ""
-#: builtin/ls-files.c:452
+#: builtin/ls-files.c:465
msgid "add the standard git exclusions"
msgstr ""
-#: builtin/ls-files.c:455
+#: builtin/ls-files.c:468
msgid "make the output relative to the project top directory"
msgstr ""
-#: builtin/ls-files.c:458
+#: builtin/ls-files.c:471
msgid "if any <file> is not in the index, treat this as an error"
msgstr ""
-#: builtin/ls-files.c:459
+#: builtin/ls-files.c:472
msgid "tree-ish"
msgstr ""
-#: builtin/ls-files.c:460
+#: builtin/ls-files.c:473
msgid "pretend that paths removed since <tree-ish> are still present"
msgstr ""
-#: builtin/ls-files.c:462
+#: builtin/ls-files.c:475
msgid "show debugging data"
msgstr ""
+#: builtin/ls-remote.c:7
+msgid ""
+"git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
+" [-q | --quiet] [--exit-code] [--get-url]\n"
+" [--symref] [<repository> [<refs>...]]"
+msgstr ""
+
+#: builtin/ls-remote.c:50
+msgid "do not print remote URL"
+msgstr ""
+
+#: builtin/ls-remote.c:51 builtin/ls-remote.c:53
+msgid "exec"
+msgstr ""
+
+#: builtin/ls-remote.c:52 builtin/ls-remote.c:54
+msgid "path of git-upload-pack on the remote host"
+msgstr ""
+
+#: builtin/ls-remote.c:56
+msgid "limit to tags"
+msgstr ""
+
+#: builtin/ls-remote.c:57
+msgid "limit to heads"
+msgstr ""
+
+#: builtin/ls-remote.c:58
+msgid "do not show peeled tags"
+msgstr ""
+
+#: builtin/ls-remote.c:60
+msgid "take url.<base>.insteadOf into account"
+msgstr ""
+
+#: builtin/ls-remote.c:62
+msgid "exit with exit code 2 if no matching refs are found"
+msgstr ""
+
+#: builtin/ls-remote.c:64
+msgid "show underlying ref in addition to the object pointed by it"
+msgstr ""
+
#: builtin/ls-tree.c:28
msgid "git ls-tree [<options>] <tree-ish> [<path>...]"
msgstr ""
@@ -7200,31 +7451,31 @@ msgstr ""
msgid "Available custom strategies are:"
msgstr ""
-#: builtin/merge.c:193 builtin/pull.c:119
+#: builtin/merge.c:193 builtin/pull.c:123
msgid "do not show a diffstat at the end of the merge"
msgstr ""
-#: builtin/merge.c:196 builtin/pull.c:122
+#: builtin/merge.c:196 builtin/pull.c:126
msgid "show a diffstat at the end of the merge"
msgstr ""
-#: builtin/merge.c:197 builtin/pull.c:125
+#: builtin/merge.c:197 builtin/pull.c:129
msgid "(synonym to --stat)"
msgstr ""
-#: builtin/merge.c:199 builtin/pull.c:128
+#: builtin/merge.c:199 builtin/pull.c:132
msgid "add (at most <n>) entries from shortlog to merge commit message"
msgstr ""
-#: builtin/merge.c:202 builtin/pull.c:131
+#: builtin/merge.c:202 builtin/pull.c:135
msgid "create a single commit instead of doing a merge"
msgstr ""
-#: builtin/merge.c:204 builtin/pull.c:134
+#: builtin/merge.c:204 builtin/pull.c:138
msgid "perform a commit if the merge succeeds (default)"
msgstr ""
-#: builtin/merge.c:206 builtin/pull.c:137
+#: builtin/merge.c:206 builtin/pull.c:141
msgid "edit message before committing"
msgstr ""
@@ -7232,7 +7483,7 @@ msgstr ""
msgid "allow fast-forward (default)"
msgstr ""
-#: builtin/merge.c:209 builtin/pull.c:143
+#: builtin/merge.c:209 builtin/pull.c:147
msgid "abort if fast-forward is not possible"
msgstr ""
@@ -7240,20 +7491,20 @@ msgstr ""
msgid "Verify that the named commit has a valid GPG signature"
msgstr ""
-#: builtin/merge.c:214 builtin/notes.c:767 builtin/pull.c:148
+#: builtin/merge.c:214 builtin/notes.c:770 builtin/pull.c:152
#: builtin/revert.c:89
msgid "strategy"
msgstr ""
-#: builtin/merge.c:215 builtin/pull.c:149
+#: builtin/merge.c:215 builtin/pull.c:153
msgid "merge strategy to use"
msgstr ""
-#: builtin/merge.c:216 builtin/pull.c:152
+#: builtin/merge.c:216 builtin/pull.c:156
msgid "option=value"
msgstr ""
-#: builtin/merge.c:217 builtin/pull.c:153
+#: builtin/merge.c:217 builtin/pull.c:157
msgid "option for selected merge strategy"
msgstr ""
@@ -7291,8 +7542,8 @@ msgstr ""
msgid "Squash commit -- not updating HEAD\n"
msgstr ""
-#: builtin/merge.c:344 builtin/merge.c:763 builtin/merge.c:975
-#: builtin/merge.c:988
+#: builtin/merge.c:344 builtin/merge.c:764 builtin/merge.c:976
+#: builtin/merge.c:989
#, c-format
msgid "Could not write to '%s'"
msgstr ""
@@ -7310,41 +7561,41 @@ msgstr ""
msgid "No merge message -- not updating HEAD\n"
msgstr ""
-#: builtin/merge.c:447
+#: builtin/merge.c:448
#, c-format
msgid "'%s' does not point to a commit"
msgstr ""
-#: builtin/merge.c:537
+#: builtin/merge.c:538
#, c-format
msgid "Bad branch.%s.mergeoptions string: %s"
msgstr ""
-#: builtin/merge.c:656
+#: builtin/merge.c:657
msgid "Not handling anything other than two heads merge."
msgstr ""
-#: builtin/merge.c:670
+#: builtin/merge.c:671
#, c-format
msgid "Unknown option for merge-recursive: -X%s"
msgstr ""
-#: builtin/merge.c:683
+#: builtin/merge.c:684
#, c-format
msgid "unable to write %s"
msgstr ""
-#: builtin/merge.c:772
+#: builtin/merge.c:773
#, c-format
msgid "Could not read from '%s'"
msgstr ""
-#: builtin/merge.c:781
+#: builtin/merge.c:782
#, c-format
msgid "Not committing merge; use 'git commit' to complete the merge.\n"
msgstr ""
-#: builtin/merge.c:787
+#: builtin/merge.c:788
#, c-format
msgid ""
"Please enter a commit message to explain why this merge is necessary,\n"
@@ -7354,157 +7605,157 @@ msgid ""
"the commit.\n"
msgstr ""
-#: builtin/merge.c:811
+#: builtin/merge.c:812
msgid "Empty commit message."
msgstr ""
-#: builtin/merge.c:823
+#: builtin/merge.c:824
#, c-format
msgid "Wonderful.\n"
msgstr ""
-#: builtin/merge.c:878
+#: builtin/merge.c:879
#, c-format
msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
msgstr ""
-#: builtin/merge.c:894
+#: builtin/merge.c:895
#, c-format
msgid "'%s' is not a commit"
msgstr ""
-#: builtin/merge.c:935
+#: builtin/merge.c:936
msgid "No current branch."
msgstr ""
-#: builtin/merge.c:937
+#: builtin/merge.c:938
msgid "No remote for the current branch."
msgstr ""
-#: builtin/merge.c:939
+#: builtin/merge.c:940
msgid "No default upstream defined for the current branch."
msgstr ""
-#: builtin/merge.c:944
+#: builtin/merge.c:945
#, c-format
msgid "No remote-tracking branch for %s from %s"
msgstr ""
-#: builtin/merge.c:1079
+#: builtin/merge.c:1080
#, c-format
msgid "could not close '%s'"
msgstr ""
-#: builtin/merge.c:1206
+#: builtin/merge.c:1207
msgid "There is no merge to abort (MERGE_HEAD missing)."
msgstr ""
-#: builtin/merge.c:1222
+#: builtin/merge.c:1223
msgid ""
"You have not concluded your merge (MERGE_HEAD exists).\n"
"Please, commit your changes before you merge."
msgstr ""
-#: builtin/merge.c:1229
+#: builtin/merge.c:1230
msgid ""
"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
"Please, commit your changes before you merge."
msgstr ""
-#: builtin/merge.c:1232
+#: builtin/merge.c:1233
msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
msgstr ""
-#: builtin/merge.c:1241
+#: builtin/merge.c:1242
msgid "You cannot combine --squash with --no-ff."
msgstr ""
-#: builtin/merge.c:1249
+#: builtin/merge.c:1250
msgid "No commit specified and merge.defaultToUpstream not set."
msgstr ""
-#: builtin/merge.c:1266
+#: builtin/merge.c:1267
msgid "Squash commit into empty head not supported yet"
msgstr ""
-#: builtin/merge.c:1268
+#: builtin/merge.c:1269
msgid "Non-fast-forward commit does not make sense into an empty head"
msgstr ""
-#: builtin/merge.c:1274
+#: builtin/merge.c:1275
#, c-format
msgid "%s - not something we can merge"
msgstr ""
-#: builtin/merge.c:1276
+#: builtin/merge.c:1277
msgid "Can merge only exactly one commit into empty head"
msgstr ""
-#: builtin/merge.c:1331
+#: builtin/merge.c:1332
#, c-format
msgid "Commit %s has an untrusted GPG signature, allegedly by %s."
msgstr ""
-#: builtin/merge.c:1334
+#: builtin/merge.c:1335
#, c-format
msgid "Commit %s has a bad GPG signature allegedly by %s."
msgstr ""
-#: builtin/merge.c:1337
+#: builtin/merge.c:1338
#, c-format
msgid "Commit %s does not have a GPG signature."
msgstr ""
-#: builtin/merge.c:1340
+#: builtin/merge.c:1341
#, c-format
msgid "Commit %s has a good GPG signature by %s\n"
msgstr ""
-#: builtin/merge.c:1423
+#: builtin/merge.c:1424
#, c-format
msgid "Updating %s..%s\n"
msgstr ""
-#: builtin/merge.c:1460
+#: builtin/merge.c:1461
#, c-format
msgid "Trying really trivial in-index merge...\n"
msgstr ""
-#: builtin/merge.c:1467
+#: builtin/merge.c:1468
#, c-format
msgid "Nope.\n"
msgstr ""
-#: builtin/merge.c:1499
+#: builtin/merge.c:1500
msgid "Not possible to fast-forward, aborting."
msgstr ""
-#: builtin/merge.c:1522 builtin/merge.c:1601
+#: builtin/merge.c:1523 builtin/merge.c:1602
#, c-format
msgid "Rewinding the tree to pristine...\n"
msgstr ""
-#: builtin/merge.c:1526
+#: builtin/merge.c:1527
#, c-format
msgid "Trying merge strategy %s...\n"
msgstr ""
-#: builtin/merge.c:1592
+#: builtin/merge.c:1593
#, c-format
msgid "No merge strategy handled the merge.\n"
msgstr ""
-#: builtin/merge.c:1594
+#: builtin/merge.c:1595
#, c-format
msgid "Merge with strategy %s failed.\n"
msgstr ""
-#: builtin/merge.c:1603
+#: builtin/merge.c:1604
#, c-format
msgid "Using the %s to prepare resolving by hand.\n"
msgstr ""
-#: builtin/merge.c:1615
+#: builtin/merge.c:1616
#, c-format
msgid "Automatic merge went well; stopped before committing as requested\n"
msgstr ""
@@ -7587,19 +7838,19 @@ msgstr ""
msgid "set labels for file1/orig-file/file2"
msgstr ""
-#: builtin/mktree.c:64
+#: builtin/mktree.c:65
msgid "git mktree [-z] [--missing] [--batch]"
msgstr ""
-#: builtin/mktree.c:150
+#: builtin/mktree.c:152
msgid "input is NUL terminated"
msgstr ""
-#: builtin/mktree.c:151 builtin/write-tree.c:24
+#: builtin/mktree.c:153 builtin/write-tree.c:24
msgid "allow missing objects"
msgstr ""
-#: builtin/mktree.c:152
+#: builtin/mktree.c:154
msgid "allow creation of more than one tree"
msgstr ""
@@ -7607,90 +7858,90 @@ msgstr ""
msgid "git mv [<options>] <source>... <destination>"
msgstr ""
-#: builtin/mv.c:69
+#: builtin/mv.c:70
#, c-format
msgid "Directory %s is in index and no submodule?"
msgstr ""
-#: builtin/mv.c:71
+#: builtin/mv.c:72
msgid "Please stage your changes to .gitmodules or stash them to proceed"
msgstr ""
-#: builtin/mv.c:89
+#: builtin/mv.c:90
#, c-format
msgid "%.*s is in index"
msgstr ""
-#: builtin/mv.c:111
+#: builtin/mv.c:112
msgid "force move/rename even if target exists"
msgstr ""
-#: builtin/mv.c:112
+#: builtin/mv.c:113
msgid "skip move/rename errors"
msgstr ""
-#: builtin/mv.c:151
+#: builtin/mv.c:152
#, c-format
msgid "destination '%s' is not a directory"
msgstr ""
-#: builtin/mv.c:162
+#: builtin/mv.c:163
#, c-format
msgid "Checking rename of '%s' to '%s'\n"
msgstr ""
-#: builtin/mv.c:166
+#: builtin/mv.c:167
msgid "bad source"
msgstr ""
-#: builtin/mv.c:169
+#: builtin/mv.c:170
msgid "can not move directory into itself"
msgstr ""
-#: builtin/mv.c:172
+#: builtin/mv.c:173
msgid "cannot move directory over file"
msgstr ""
-#: builtin/mv.c:181
+#: builtin/mv.c:182
msgid "source directory is empty"
msgstr ""
-#: builtin/mv.c:206
+#: builtin/mv.c:207
msgid "not under version control"
msgstr ""
-#: builtin/mv.c:209
+#: builtin/mv.c:210
msgid "destination exists"
msgstr ""
-#: builtin/mv.c:217
+#: builtin/mv.c:218
#, c-format
msgid "overwriting '%s'"
msgstr ""
-#: builtin/mv.c:220
+#: builtin/mv.c:221
msgid "Cannot overwrite"
msgstr ""
-#: builtin/mv.c:223
+#: builtin/mv.c:224
msgid "multiple sources for the same target"
msgstr ""
-#: builtin/mv.c:225
+#: builtin/mv.c:226
msgid "destination directory does not exist"
msgstr ""
-#: builtin/mv.c:232
+#: builtin/mv.c:233
#, c-format
msgid "%s, source=%s, destination=%s"
msgstr ""
-#: builtin/mv.c:253
+#: builtin/mv.c:254
#, c-format
msgid "Renaming %s to %s\n"
msgstr ""
-#: builtin/mv.c:256 builtin/remote.c:728 builtin/repack.c:365
+#: builtin/mv.c:257 builtin/remote.c:714 builtin/repack.c:365
#, c-format
msgid "renaming '%s' failed"
msgstr ""
@@ -7883,9 +8134,9 @@ msgid "could not open or read '%s'"
msgstr ""
#: builtin/notes.c:253 builtin/notes.c:304 builtin/notes.c:306
-#: builtin/notes.c:366 builtin/notes.c:421 builtin/notes.c:507
-#: builtin/notes.c:512 builtin/notes.c:590 builtin/notes.c:653
-#: builtin/notes.c:877 builtin/tag.c:456
+#: builtin/notes.c:369 builtin/notes.c:424 builtin/notes.c:510
+#: builtin/notes.c:515 builtin/notes.c:593 builtin/notes.c:656
+#: builtin/notes.c:880 builtin/tag.c:456
#, c-format
msgid "Failed to resolve '%s' as a valid ref."
msgstr ""
@@ -7900,146 +8151,146 @@ msgstr ""
msgid "Cannot read note data from non-blob object '%s'."
msgstr ""
-#: builtin/notes.c:359 builtin/notes.c:414 builtin/notes.c:490
-#: builtin/notes.c:502 builtin/notes.c:578 builtin/notes.c:646
-#: builtin/notes.c:942
+#: builtin/notes.c:362 builtin/notes.c:417 builtin/notes.c:493
+#: builtin/notes.c:505 builtin/notes.c:581 builtin/notes.c:649
+#: builtin/notes.c:945
msgid "too many parameters"
msgstr ""
-#: builtin/notes.c:372 builtin/notes.c:659
+#: builtin/notes.c:375 builtin/notes.c:662
#, c-format
msgid "No note found for object %s."
msgstr ""
-#: builtin/notes.c:393 builtin/notes.c:556
+#: builtin/notes.c:396 builtin/notes.c:559
msgid "note contents as a string"
msgstr ""
-#: builtin/notes.c:396 builtin/notes.c:559
+#: builtin/notes.c:399 builtin/notes.c:562
msgid "note contents in a file"
msgstr ""
-#: builtin/notes.c:399 builtin/notes.c:562
+#: builtin/notes.c:402 builtin/notes.c:565
msgid "reuse and edit specified note object"
msgstr ""
-#: builtin/notes.c:402 builtin/notes.c:565
+#: builtin/notes.c:405 builtin/notes.c:568
msgid "reuse specified note object"
msgstr ""
-#: builtin/notes.c:405 builtin/notes.c:568
+#: builtin/notes.c:408 builtin/notes.c:571
msgid "allow storing empty note"
msgstr ""
-#: builtin/notes.c:406 builtin/notes.c:477
+#: builtin/notes.c:409 builtin/notes.c:480
msgid "replace existing notes"
msgstr ""
-#: builtin/notes.c:431
+#: builtin/notes.c:434
#, c-format
msgid ""
"Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite "
"existing notes"
msgstr ""
-#: builtin/notes.c:446 builtin/notes.c:525
+#: builtin/notes.c:449 builtin/notes.c:528
#, c-format
msgid "Overwriting existing notes for object %s\n"
msgstr ""
-#: builtin/notes.c:457 builtin/notes.c:618 builtin/notes.c:882
+#: builtin/notes.c:460 builtin/notes.c:621 builtin/notes.c:885
#, c-format
msgid "Removing note for object %s\n"
msgstr ""
-#: builtin/notes.c:478
+#: builtin/notes.c:481
msgid "read objects from stdin"
msgstr ""
-#: builtin/notes.c:480
+#: builtin/notes.c:483
msgid "load rewriting config for <command> (implies --stdin)"
msgstr ""
-#: builtin/notes.c:498
+#: builtin/notes.c:501
msgid "too few parameters"
msgstr ""
-#: builtin/notes.c:519
+#: builtin/notes.c:522
#, c-format
msgid ""
"Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite "
"existing notes"
msgstr ""
-#: builtin/notes.c:531
+#: builtin/notes.c:534
#, c-format
msgid "Missing notes on source object %s. Cannot copy."
msgstr ""
-#: builtin/notes.c:583
+#: builtin/notes.c:586
#, c-format
msgid ""
"The -m/-F/-c/-C options have been deprecated for the 'edit' subcommand.\n"
"Please use 'git notes add -f -m/-F/-c/-C' instead.\n"
msgstr ""
-#: builtin/notes.c:764
+#: builtin/notes.c:767
msgid "General options"
msgstr ""
-#: builtin/notes.c:766
+#: builtin/notes.c:769
msgid "Merge options"
msgstr ""
-#: builtin/notes.c:768
+#: builtin/notes.c:771
msgid ""
"resolve notes conflicts using the given strategy (manual/ours/theirs/union/"
"cat_sort_uniq)"
msgstr ""
-#: builtin/notes.c:770
+#: builtin/notes.c:773
msgid "Committing unmerged notes"
msgstr ""
-#: builtin/notes.c:772
+#: builtin/notes.c:775
msgid "finalize notes merge by committing unmerged notes"
msgstr ""
-#: builtin/notes.c:774
+#: builtin/notes.c:777
msgid "Aborting notes merge resolution"
msgstr ""
-#: builtin/notes.c:776
+#: builtin/notes.c:779
msgid "abort notes merge"
msgstr ""
-#: builtin/notes.c:853
+#: builtin/notes.c:856
#, c-format
msgid "A notes merge into %s is already in-progress at %s"
msgstr ""
-#: builtin/notes.c:880
+#: builtin/notes.c:883
#, c-format
msgid "Object %s has no note\n"
msgstr ""
-#: builtin/notes.c:892
+#: builtin/notes.c:895
msgid "attempt to remove non-existent note is not an error"
msgstr ""
-#: builtin/notes.c:895
+#: builtin/notes.c:898
msgid "read object names from the standard input"
msgstr ""
-#: builtin/notes.c:976
+#: builtin/notes.c:979
msgid "notes-ref"
msgstr ""
-#: builtin/notes.c:977
+#: builtin/notes.c:980
msgid "use notes from <notes-ref>"
msgstr ""
-#: builtin/notes.c:1012 builtin/remote.c:1647
+#: builtin/notes.c:1015 builtin/remote.c:1626
#, c-format
msgid "Unknown subcommand: %s"
msgstr ""
@@ -8059,165 +8310,165 @@ msgstr ""
msgid "deflate error (%d)"
msgstr ""
-#: builtin/pack-objects.c:771
+#: builtin/pack-objects.c:772
msgid "Writing objects"
msgstr ""
-#: builtin/pack-objects.c:1011
+#: builtin/pack-objects.c:1012
msgid "disabling bitmap writing, as some objects are not being packed"
msgstr ""
-#: builtin/pack-objects.c:2171
+#: builtin/pack-objects.c:2172
msgid "Compressing objects"
msgstr ""
-#: builtin/pack-objects.c:2568
+#: builtin/pack-objects.c:2558
#, c-format
msgid "unsupported index version %s"
msgstr ""
-#: builtin/pack-objects.c:2572
+#: builtin/pack-objects.c:2562
#, c-format
msgid "bad index version '%s'"
msgstr ""
-#: builtin/pack-objects.c:2602
+#: builtin/pack-objects.c:2592
msgid "do not show progress meter"
msgstr ""
-#: builtin/pack-objects.c:2604
+#: builtin/pack-objects.c:2594
msgid "show progress meter"
msgstr ""
-#: builtin/pack-objects.c:2606
+#: builtin/pack-objects.c:2596
msgid "show progress meter during object writing phase"
msgstr ""
-#: builtin/pack-objects.c:2609
+#: builtin/pack-objects.c:2599
msgid "similar to --all-progress when progress meter is shown"
msgstr ""
-#: builtin/pack-objects.c:2610
+#: builtin/pack-objects.c:2600
msgid "version[,offset]"
msgstr ""
-#: builtin/pack-objects.c:2611
+#: builtin/pack-objects.c:2601
msgid "write the pack index file in the specified idx format version"
msgstr ""
-#: builtin/pack-objects.c:2614
+#: builtin/pack-objects.c:2604
msgid "maximum size of each output pack file"
msgstr ""
-#: builtin/pack-objects.c:2616
+#: builtin/pack-objects.c:2606
msgid "ignore borrowed objects from alternate object store"
msgstr ""
-#: builtin/pack-objects.c:2618
+#: builtin/pack-objects.c:2608
msgid "ignore packed objects"
msgstr ""
-#: builtin/pack-objects.c:2620
+#: builtin/pack-objects.c:2610
msgid "limit pack window by objects"
msgstr ""
-#: builtin/pack-objects.c:2622
+#: builtin/pack-objects.c:2612
msgid "limit pack window by memory in addition to object limit"
msgstr ""
-#: builtin/pack-objects.c:2624
+#: builtin/pack-objects.c:2614
msgid "maximum length of delta chain allowed in the resulting pack"
msgstr ""
-#: builtin/pack-objects.c:2626
+#: builtin/pack-objects.c:2616
msgid "reuse existing deltas"
msgstr ""
-#: builtin/pack-objects.c:2628
+#: builtin/pack-objects.c:2618
msgid "reuse existing objects"
msgstr ""
-#: builtin/pack-objects.c:2630
+#: builtin/pack-objects.c:2620
msgid "use OFS_DELTA objects"
msgstr ""
-#: builtin/pack-objects.c:2632
+#: builtin/pack-objects.c:2622
msgid "use threads when searching for best delta matches"
msgstr ""
-#: builtin/pack-objects.c:2634
+#: builtin/pack-objects.c:2624
msgid "do not create an empty pack output"
msgstr ""
-#: builtin/pack-objects.c:2636
+#: builtin/pack-objects.c:2626
msgid "read revision arguments from standard input"
msgstr ""
-#: builtin/pack-objects.c:2638
+#: builtin/pack-objects.c:2628
msgid "limit the objects to those that are not yet packed"
msgstr ""
-#: builtin/pack-objects.c:2641
+#: builtin/pack-objects.c:2631
msgid "include objects reachable from any reference"
msgstr ""
-#: builtin/pack-objects.c:2644
+#: builtin/pack-objects.c:2634
msgid "include objects referred by reflog entries"
msgstr ""
-#: builtin/pack-objects.c:2647
+#: builtin/pack-objects.c:2637
msgid "include objects referred to by the index"
msgstr ""
-#: builtin/pack-objects.c:2650
+#: builtin/pack-objects.c:2640
msgid "output pack to stdout"
msgstr ""
-#: builtin/pack-objects.c:2652
+#: builtin/pack-objects.c:2642
msgid "include tag objects that refer to objects to be packed"
msgstr ""
-#: builtin/pack-objects.c:2654
+#: builtin/pack-objects.c:2644
msgid "keep unreachable objects"
msgstr ""
-#: builtin/pack-objects.c:2655 parse-options.h:142
+#: builtin/pack-objects.c:2645 parse-options.h:142
msgid "time"
msgstr ""
-#: builtin/pack-objects.c:2656
+#: builtin/pack-objects.c:2646
msgid "unpack unreachable objects newer than <time>"
msgstr ""
-#: builtin/pack-objects.c:2659
+#: builtin/pack-objects.c:2649
msgid "create thin packs"
msgstr ""
-#: builtin/pack-objects.c:2661
+#: builtin/pack-objects.c:2651
msgid "create packs suitable for shallow fetches"
msgstr ""
-#: builtin/pack-objects.c:2663
+#: builtin/pack-objects.c:2653
msgid "ignore packs that have companion .keep file"
msgstr ""
-#: builtin/pack-objects.c:2665
+#: builtin/pack-objects.c:2655
msgid "pack compression level"
msgstr ""
-#: builtin/pack-objects.c:2667
+#: builtin/pack-objects.c:2657
msgid "do not hide commits by grafts"
msgstr ""
-#: builtin/pack-objects.c:2669
+#: builtin/pack-objects.c:2659
msgid "use a bitmap index if available to speed up counting objects"
msgstr ""
-#: builtin/pack-objects.c:2671
+#: builtin/pack-objects.c:2661
msgid "write a bitmap index together with the pack index"
msgstr ""
-#: builtin/pack-objects.c:2762
+#: builtin/pack-objects.c:2752
msgid "Counting objects"
msgstr ""
@@ -8261,65 +8512,69 @@ msgstr ""
msgid "cannot prune in a precious-objects repo"
msgstr ""
-#: builtin/pull.c:69
+#: builtin/pull.c:72
msgid "git pull [<options>] [<repository> [<refspec>...]]"
msgstr ""
-#: builtin/pull.c:113
+#: builtin/pull.c:117
msgid "Options related to merging"
msgstr ""
-#: builtin/pull.c:116
+#: builtin/pull.c:120
msgid "incorporate changes by rebasing rather than merging"
msgstr ""
-#: builtin/pull.c:140 builtin/revert.c:105
+#: builtin/pull.c:144 builtin/revert.c:105
msgid "allow fast-forward"
msgstr ""
-#: builtin/pull.c:146
+#: builtin/pull.c:150
msgid "verify that the named commit has a valid GPG signature"
msgstr ""
-#: builtin/pull.c:160
+#: builtin/pull.c:164
msgid "Options related to fetching"
msgstr ""
-#: builtin/pull.c:268
+#: builtin/pull.c:186
+msgid "number of submodules pulled in parallel"
+msgstr ""
+
+#: builtin/pull.c:275
#, c-format
msgid "Invalid value for pull.ff: %s"
msgstr ""
-#: builtin/pull.c:352
+#: builtin/pull.c:359
msgid "Cannot pull with rebase: You have unstaged changes."
msgstr ""
-#: builtin/pull.c:358
+#: builtin/pull.c:365
msgid "Additionally, your index contains uncommitted changes."
msgstr ""
-#: builtin/pull.c:360
+#: builtin/pull.c:367
msgid "Cannot pull with rebase: Your index contains uncommitted changes."
msgstr ""
-#: builtin/pull.c:436
+#: builtin/pull.c:443
msgid ""
"There is no candidate for rebasing against among the refs that you just "
"fetched."
msgstr ""
-#: builtin/pull.c:438
+#: builtin/pull.c:445
msgid ""
"There are no candidates for merging among the refs that you just fetched."
msgstr ""
-#: builtin/pull.c:439
+#: builtin/pull.c:446
msgid ""
"Generally this means that you provided a wildcard refspec which had no\n"
"matches on the remote end."
msgstr ""
-#: builtin/pull.c:442
+#: builtin/pull.c:449
#, c-format
msgid ""
"You asked to pull from the remote '%s', but did not specify\n"
@@ -8327,27 +8582,27 @@ msgid ""
"for your current branch, you must specify a branch on the command line."
msgstr ""
-#: builtin/pull.c:447
+#: builtin/pull.c:454
msgid "You are not currently on a branch."
msgstr ""
-#: builtin/pull.c:449 builtin/pull.c:464
+#: builtin/pull.c:456 builtin/pull.c:471
msgid "Please specify which branch you want to rebase against."
msgstr ""
-#: builtin/pull.c:451 builtin/pull.c:466
+#: builtin/pull.c:458 builtin/pull.c:473
msgid "Please specify which branch you want to merge with."
msgstr ""
-#: builtin/pull.c:452 builtin/pull.c:467
+#: builtin/pull.c:459 builtin/pull.c:474
msgid "See git-pull(1) for details."
msgstr ""
-#: builtin/pull.c:462
+#: builtin/pull.c:469
msgid "There is no tracking information for the current branch."
msgstr ""
-#: builtin/pull.c:471
+#: builtin/pull.c:478
#, c-format
msgid ""
"If you wish to set tracking information for this branch you can do so with:\n"
@@ -8355,18 +8610,18 @@ msgid ""
" git branch --set-upstream-to=%s/<branch> %s\n"
msgstr ""
-#: builtin/pull.c:476
+#: builtin/pull.c:483
#, 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:830
+#: builtin/pull.c:841
msgid "Updating an unborn branch with changes added to the index."
msgstr ""
-#: builtin/pull.c:859
+#: builtin/pull.c:870
#, c-format
msgid ""
"fetch updated the current branch head.\n"
@@ -8374,7 +8629,7 @@ msgid ""
"commit %s."
msgstr ""
-#: builtin/pull.c:864
+#: builtin/pull.c:875
#, c-format
msgid ""
"Cannot fast-forward your working tree.\n"
@@ -8385,11 +8640,11 @@ msgid ""
"to recover."
msgstr ""
-#: builtin/pull.c:879
+#: builtin/pull.c:890
msgid "Cannot merge multiple branches into empty head."
msgstr ""
-#: builtin/pull.c:883
+#: builtin/pull.c:894
msgid "Cannot rebase onto multiple branches."
msgstr ""
@@ -8397,21 +8652,21 @@ msgstr ""
msgid "git push [<options>] [<repository> [<refspec>...]]"
msgstr ""
-#: builtin/push.c:88
+#: builtin/push.c:89
msgid "tag shorthand without <tag>"
msgstr ""
-#: builtin/push.c:98
+#: builtin/push.c:99
msgid "--delete only accepts plain target ref names"
msgstr ""
-#: builtin/push.c:142
+#: builtin/push.c:143
msgid ""
"\n"
"To choose either option permanently, see push.default in 'git help config'."
msgstr ""
-#: builtin/push.c:145
+#: builtin/push.c:146
#, c-format
msgid ""
"The upstream branch of your current branch does not match\n"
@@ -8426,7 +8681,7 @@ msgid ""
"%s"
msgstr ""
-#: builtin/push.c:160
+#: builtin/push.c:161
#, c-format
msgid ""
"You are not currently on a branch.\n"
@@ -8436,7 +8691,7 @@ msgid ""
" git push %s HEAD:<name-of-remote-branch>\n"
msgstr ""
-#: builtin/push.c:174
+#: builtin/push.c:175
#, c-format
msgid ""
"The current branch %s has no upstream branch.\n"
@@ -8445,12 +8700,12 @@ msgid ""
" git push --set-upstream %s %s\n"
msgstr ""
-#: builtin/push.c:182
+#: builtin/push.c:183
#, c-format
msgid "The current branch %s has multiple upstream branches, refusing to push."
msgstr ""
-#: builtin/push.c:185
+#: builtin/push.c:186
#, c-format
msgid ""
"You are pushing to remote '%s', which is not the upstream of\n"
@@ -8458,37 +8713,12 @@ msgid ""
"to update which remote branch."
msgstr ""
-#: builtin/push.c:208
-msgid ""
-"push.default is unset; its implicit value has changed in\n"
-"Git 2.0 from 'matching' to 'simple'. To squelch this message\n"
-"and maintain the traditional behavior, use:\n"
-"\n"
-" git config --global push.default matching\n"
-"\n"
-"To squelch this message and adopt the new behavior now, use:\n"
-"\n"
-" git config --global push.default simple\n"
-"\n"
-"When push.default is set to 'matching', git will push local branches\n"
-"to the remote branches that already exist with the same name.\n"
-"\n"
-"Since Git 2.0, Git defaults to the more conservative 'simple'\n"
-"behavior, which only pushes the current branch to the corresponding\n"
-"remote branch that 'git pull' uses to update the current branch.\n"
-"\n"
-"See 'git help config' and search for 'push.default' for further "
-"information.\n"
-"(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode\n"
-"'current' instead of 'simple' if you sometimes use older versions of Git)"
-msgstr ""
-
-#: builtin/push.c:275
+#: builtin/push.c:242
msgid ""
"You didn't specify any refspecs to push, and push.default is \"nothing\"."
msgstr ""
-#: builtin/push.c:282
+#: builtin/push.c:249
msgid ""
"Updates were rejected because the tip of your current branch is behind\n"
"its remote counterpart. Integrate the remote changes (e.g.\n"
@@ -8496,7 +8726,7 @@ msgid ""
"See the 'Note about fast-forwards' in 'git push --help' for details."
msgstr ""
-#: builtin/push.c:288
+#: builtin/push.c:255
msgid ""
"Updates were rejected because a pushed branch tip is behind its remote\n"
"counterpart. Check out this branch and integrate the remote changes\n"
@@ -8504,7 +8734,7 @@ msgid ""
"See the 'Note about fast-forwards' in 'git push --help' for details."
msgstr ""
-#: builtin/push.c:294
+#: builtin/push.c:261
msgid ""
"Updates were rejected because the remote contains work that you do\n"
"not have locally. This is usually caused by another repository pushing\n"
@@ -8513,33 +8743,33 @@ msgid ""
"See the 'Note about fast-forwards' in 'git push --help' for details."
msgstr ""
-#: builtin/push.c:301
+#: builtin/push.c:268
msgid "Updates were rejected because the tag already exists in the remote."
msgstr ""
-#: builtin/push.c:304
+#: builtin/push.c:271
msgid ""
"You cannot update a remote ref that points at a non-commit object,\n"
"or update a remote ref to make it point at a non-commit object,\n"
"without using the '--force' option.\n"
msgstr ""
-#: builtin/push.c:363
+#: builtin/push.c:331
#, c-format
msgid "Pushing to %s\n"
msgstr ""
-#: builtin/push.c:367
+#: builtin/push.c:335
#, c-format
msgid "failed to push some refs to '%s'"
msgstr ""
-#: builtin/push.c:397
+#: builtin/push.c:365
#, c-format
msgid "bad repository '%s'"
msgstr ""
-#: builtin/push.c:398
+#: builtin/push.c:366
msgid ""
"No configured push destination.\n"
"Either specify the URL from the command-line or configure a remote "
@@ -8552,104 +8782,100 @@ msgid ""
" git push <name>\n"
msgstr ""
-#: builtin/push.c:413
+#: builtin/push.c:381
msgid "--all and --tags are incompatible"
msgstr ""
-#: builtin/push.c:414
+#: builtin/push.c:382
msgid "--all can't be combined with refspecs"
msgstr ""
-#: builtin/push.c:419
+#: builtin/push.c:387
msgid "--mirror and --tags are incompatible"
msgstr ""
-#: builtin/push.c:420
+#: builtin/push.c:388
msgid "--mirror can't be combined with refspecs"
msgstr ""
-#: builtin/push.c:425
+#: builtin/push.c:393
msgid "--all and --mirror are incompatible"
msgstr ""
-#: builtin/push.c:537
+#: builtin/push.c:505
msgid "repository"
msgstr ""
-#: builtin/push.c:538 builtin/send-pack.c:161
+#: builtin/push.c:506 builtin/send-pack.c:161
msgid "push all refs"
msgstr ""
-#: builtin/push.c:539 builtin/send-pack.c:163
+#: builtin/push.c:507 builtin/send-pack.c:163
msgid "mirror all refs"
msgstr ""
-#: builtin/push.c:541
+#: builtin/push.c:509
msgid "delete refs"
msgstr ""
-#: builtin/push.c:542
+#: builtin/push.c:510
msgid "push tags (can't be used with --all or --mirror)"
msgstr ""
-#: builtin/push.c:545 builtin/send-pack.c:164
+#: builtin/push.c:513 builtin/send-pack.c:164
msgid "force updates"
msgstr ""
-#: builtin/push.c:547 builtin/send-pack.c:175
+#: builtin/push.c:515 builtin/send-pack.c:175
msgid "refname>:<expect"
msgstr ""
-#: builtin/push.c:548 builtin/send-pack.c:176
+#: builtin/push.c:516 builtin/send-pack.c:176
msgid "require old value of ref to be at this value"
msgstr ""
-#: builtin/push.c:550
-msgid "check|on-demand|no"
-msgstr ""
-
-#: builtin/push.c:551
+#: builtin/push.c:519
msgid "control recursive pushing of submodules"
msgstr ""
-#: builtin/push.c:553 builtin/send-pack.c:169
+#: builtin/push.c:521 builtin/send-pack.c:169
msgid "use thin pack"
msgstr ""
-#: builtin/push.c:554 builtin/push.c:555 builtin/send-pack.c:158
+#: builtin/push.c:522 builtin/push.c:523 builtin/send-pack.c:158
#: builtin/send-pack.c:159
msgid "receive pack program"
msgstr ""
-#: builtin/push.c:556
+#: builtin/push.c:524
msgid "set upstream for git pull/status"
msgstr ""
-#: builtin/push.c:559
+#: builtin/push.c:527
msgid "prune locally removed refs"
msgstr ""
-#: builtin/push.c:561
+#: builtin/push.c:529
msgid "bypass pre-push hook"
msgstr ""
-#: builtin/push.c:562
+#: builtin/push.c:530
msgid "push missing but relevant tags"
msgstr ""
-#: builtin/push.c:565 builtin/send-pack.c:166
+#: builtin/push.c:533 builtin/send-pack.c:166
msgid "GPG sign the push"
msgstr ""
-#: builtin/push.c:567 builtin/send-pack.c:170
+#: builtin/push.c:535 builtin/send-pack.c:170
msgid "request atomic transaction on remote side"
msgstr ""
-#: builtin/push.c:577
+#: builtin/push.c:549
msgid "--delete is incompatible with --all, --mirror and --tags"
msgstr ""
-#: builtin/push.c:579
+#: builtin/push.c:551
msgid "--delete doesn't make sense without any refs"
msgstr ""
@@ -8724,12 +8950,12 @@ msgstr ""
msgid "debug unpack-trees"
msgstr ""
-#: builtin/reflog.c:428
+#: builtin/reflog.c:423
#, c-format
msgid "'%s' for '%s' is not a valid timestamp"
msgstr ""
-#: builtin/reflog.c:545 builtin/reflog.c:550
+#: builtin/reflog.c:540 builtin/reflog.c:545
#, c-format
msgid "'%s' is not a valid timestamp"
msgstr ""
@@ -8865,55 +9091,45 @@ msgstr ""
msgid "specifying branches to track makes sense only with fetch mirrors"
msgstr ""
-#: builtin/remote.c:193 builtin/remote.c:643
+#: builtin/remote.c:190 builtin/remote.c:633
#, c-format
msgid "remote %s already exists."
msgstr ""
-#: builtin/remote.c:197 builtin/remote.c:647
+#: builtin/remote.c:194 builtin/remote.c:637
#, c-format
msgid "'%s' is not a valid remote name"
msgstr ""
-#: builtin/remote.c:241
+#: builtin/remote.c:234
#, c-format
msgid "Could not setup master '%s'"
msgstr ""
-#: builtin/remote.c:341
+#: builtin/remote.c:336
#, c-format
msgid "Could not get fetch map for refspec %s"
msgstr ""
-#: builtin/remote.c:442 builtin/remote.c:450
+#: builtin/remote.c:437 builtin/remote.c:445
msgid "(matching)"
msgstr ""
-#: builtin/remote.c:454
+#: builtin/remote.c:449
msgid "(delete)"
msgstr ""
-#: builtin/remote.c:594 builtin/remote.c:600 builtin/remote.c:606
-#, c-format
-msgid "Could not append '%s' to '%s'"
-msgstr ""
-
-#: builtin/remote.c:636 builtin/remote.c:775 builtin/remote.c:875
+#: builtin/remote.c:626 builtin/remote.c:761 builtin/remote.c:858
#, c-format
msgid "No such remote: %s"
msgstr ""
-#: builtin/remote.c:653
+#: builtin/remote.c:643
#, c-format
msgid "Could not rename config section '%s' to '%s'"
msgstr ""
-#: builtin/remote.c:659 builtin/remote.c:827
-#, c-format
-msgid "Could not remove config section '%s'"
-msgstr ""
-
-#: builtin/remote.c:674
+#: builtin/remote.c:663
#, c-format
msgid ""
"Not updating non-default fetch refspec\n"
@@ -8921,27 +9137,17 @@ msgid ""
"\tPlease update the configuration manually if necessary."
msgstr ""
-#: builtin/remote.c:680
-#, c-format
-msgid "Could not append '%s'"
-msgstr ""
-
-#: builtin/remote.c:691
-#, c-format
-msgid "Could not set '%s'"
-msgstr ""
-
-#: builtin/remote.c:713
+#: builtin/remote.c:699
#, c-format
msgid "deleting '%s' failed"
msgstr ""
-#: builtin/remote.c:747
+#: builtin/remote.c:733
#, c-format
msgid "creating '%s' failed"
msgstr ""
-#: builtin/remote.c:813
+#: builtin/remote.c:796
msgid ""
"Note: A branch outside the refs/remotes/ hierarchy was not removed;\n"
"to delete it, use:"
@@ -8951,275 +9157,280 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: builtin/remote.c:928
+#: builtin/remote.c:810
+#, c-format
+msgid "Could not remove config section '%s'"
+msgstr ""
+
+#: builtin/remote.c:911
#, c-format
msgid " new (next fetch will store in remotes/%s)"
msgstr ""
-#: builtin/remote.c:931
+#: builtin/remote.c:914
msgid " tracked"
msgstr ""
-#: builtin/remote.c:933
+#: builtin/remote.c:916
msgid " stale (use 'git remote prune' to remove)"
msgstr ""
-#: builtin/remote.c:935
+#: builtin/remote.c:918
msgid " ???"
msgstr ""
-#: builtin/remote.c:976
+#: builtin/remote.c:959
#, c-format
msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch"
msgstr ""
-#: builtin/remote.c:983
+#: builtin/remote.c:967
#, c-format
-msgid "rebases onto remote %s"
+msgid "rebases interactively onto remote %s"
msgstr ""
-#: builtin/remote.c:986
+#: builtin/remote.c:971
#, c-format
msgid " merges with remote %s"
msgstr ""
-#: builtin/remote.c:987
+#: builtin/remote.c:972
msgid " and with remote"
msgstr ""
-#: builtin/remote.c:989
+#: builtin/remote.c:974
#, c-format
msgid "merges with remote %s"
msgstr ""
-#: builtin/remote.c:990
+#: builtin/remote.c:975
msgid " and with remote"
msgstr ""
-#: builtin/remote.c:1036
+#: builtin/remote.c:1021
msgid "create"
msgstr ""
-#: builtin/remote.c:1039
+#: builtin/remote.c:1024
msgid "delete"
msgstr ""
-#: builtin/remote.c:1043
+#: builtin/remote.c:1028
msgid "up to date"
msgstr ""
-#: builtin/remote.c:1046
+#: builtin/remote.c:1031
msgid "fast-forwardable"
msgstr ""
-#: builtin/remote.c:1049
+#: builtin/remote.c:1034
msgid "local out of date"
msgstr ""
-#: builtin/remote.c:1056
+#: builtin/remote.c:1041
#, c-format
msgid " %-*s forces to %-*s (%s)"
msgstr ""
-#: builtin/remote.c:1059
+#: builtin/remote.c:1044
#, c-format
msgid " %-*s pushes to %-*s (%s)"
msgstr ""
-#: builtin/remote.c:1063
+#: builtin/remote.c:1048
#, c-format
msgid " %-*s forces to %s"
msgstr ""
-#: builtin/remote.c:1066
+#: builtin/remote.c:1051
#, c-format
msgid " %-*s pushes to %s"
msgstr ""
-#: builtin/remote.c:1134
+#: builtin/remote.c:1119
msgid "do not query remotes"
msgstr ""
-#: builtin/remote.c:1161
+#: builtin/remote.c:1146
#, c-format
msgid "* remote %s"
msgstr ""
-#: builtin/remote.c:1162
+#: builtin/remote.c:1147
#, c-format
msgid " Fetch URL: %s"
msgstr ""
-#: builtin/remote.c:1163 builtin/remote.c:1314
+#: builtin/remote.c:1148 builtin/remote.c:1299
msgid "(no URL)"
msgstr ""
-#: builtin/remote.c:1172 builtin/remote.c:1174
+#: builtin/remote.c:1157 builtin/remote.c:1159
#, c-format
msgid " Push URL: %s"
msgstr ""
-#: builtin/remote.c:1176 builtin/remote.c:1178 builtin/remote.c:1180
+#: builtin/remote.c:1161 builtin/remote.c:1163 builtin/remote.c:1165
#, c-format
msgid " HEAD branch: %s"
msgstr ""
-#: builtin/remote.c:1182
+#: builtin/remote.c:1167
#, c-format
msgid ""
" HEAD branch (remote HEAD is ambiguous, may be one of the following):\n"
msgstr ""
-#: builtin/remote.c:1194
+#: builtin/remote.c:1179
#, c-format
msgid " Remote branch:%s"
msgid_plural " Remote branches:%s"
msgstr[0] ""
msgstr[1] ""
-#: builtin/remote.c:1197 builtin/remote.c:1224
+#: builtin/remote.c:1182 builtin/remote.c:1209
msgid " (status not queried)"
msgstr ""
-#: builtin/remote.c:1206
+#: builtin/remote.c:1191
msgid " Local branch configured for 'git pull':"
msgid_plural " Local branches configured for 'git pull':"
msgstr[0] ""
msgstr[1] ""
-#: builtin/remote.c:1214
+#: builtin/remote.c:1199
msgid " Local refs will be mirrored by 'git push'"
msgstr ""
-#: builtin/remote.c:1221
+#: builtin/remote.c:1206
#, c-format
msgid " Local ref configured for 'git push'%s:"
msgid_plural " Local refs configured for 'git push'%s:"
msgstr[0] ""
msgstr[1] ""
-#: builtin/remote.c:1242
+#: builtin/remote.c:1227
msgid "set refs/remotes/<name>/HEAD according to remote"
msgstr ""
-#: builtin/remote.c:1244
+#: builtin/remote.c:1229
msgid "delete refs/remotes/<name>/HEAD"
msgstr ""
-#: builtin/remote.c:1259
+#: builtin/remote.c:1244
msgid "Cannot determine remote HEAD"
msgstr ""
-#: builtin/remote.c:1261
+#: builtin/remote.c:1246
msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
msgstr ""
-#: builtin/remote.c:1271
+#: builtin/remote.c:1256
#, c-format
msgid "Could not delete %s"
msgstr ""
-#: builtin/remote.c:1279
+#: builtin/remote.c:1264
#, c-format
msgid "Not a valid ref: %s"
msgstr ""
-#: builtin/remote.c:1281
+#: builtin/remote.c:1266
#, c-format
msgid "Could not setup %s"
msgstr ""
-#: builtin/remote.c:1299
+#: builtin/remote.c:1284
#, c-format
msgid " %s will become dangling!"
msgstr ""
-#: builtin/remote.c:1300
+#: builtin/remote.c:1285
#, c-format
msgid " %s has become dangling!"
msgstr ""
-#: builtin/remote.c:1310
+#: builtin/remote.c:1295
#, c-format
msgid "Pruning %s"
msgstr ""
-#: builtin/remote.c:1311
+#: builtin/remote.c:1296
#, c-format
msgid "URL: %s"
msgstr ""
-#: builtin/remote.c:1327
+#: builtin/remote.c:1312
#, c-format
msgid " * [would prune] %s"
msgstr ""
-#: builtin/remote.c:1330
+#: builtin/remote.c:1315
#, c-format
msgid " * [pruned] %s"
msgstr ""
-#: builtin/remote.c:1375
+#: builtin/remote.c:1360
msgid "prune remotes after fetching"
msgstr ""
-#: builtin/remote.c:1441 builtin/remote.c:1498 builtin/remote.c:1566
+#: builtin/remote.c:1423 builtin/remote.c:1477 builtin/remote.c:1545
#, c-format
msgid "No such remote '%s'"
msgstr ""
-#: builtin/remote.c:1461
+#: builtin/remote.c:1439
msgid "add branch"
msgstr ""
-#: builtin/remote.c:1468
+#: builtin/remote.c:1446
msgid "no remote specified"
msgstr ""
-#: builtin/remote.c:1485
+#: builtin/remote.c:1463
msgid "query push URLs rather than fetch URLs"
msgstr ""
-#: builtin/remote.c:1487
+#: builtin/remote.c:1465
msgid "return all URLs"
msgstr ""
-#: builtin/remote.c:1515
+#: builtin/remote.c:1493
#, c-format
msgid "no URLs configured for remote '%s'"
msgstr ""
-#: builtin/remote.c:1541
+#: builtin/remote.c:1519
msgid "manipulate push URLs"
msgstr ""
-#: builtin/remote.c:1543
+#: builtin/remote.c:1521
msgid "add URL"
msgstr ""
-#: builtin/remote.c:1545
+#: builtin/remote.c:1523
msgid "delete URLs"
msgstr ""
-#: builtin/remote.c:1552
+#: builtin/remote.c:1530
msgid "--add --delete doesn't make sense"
msgstr ""
-#: builtin/remote.c:1592
+#: builtin/remote.c:1571
#, c-format
msgid "Invalid old URL pattern: %s"
msgstr ""
-#: builtin/remote.c:1600
+#: builtin/remote.c:1579
#, c-format
msgid "No such URL found: %s"
msgstr ""
-#: builtin/remote.c:1602
+#: builtin/remote.c:1581
msgid "Will not delete all non-push URLs"
msgstr ""
-#: builtin/remote.c:1616
+#: builtin/remote.c:1595
msgid "be verbose; must be placed before a subcommand"
msgstr ""
@@ -9517,7 +9728,7 @@ msgstr ""
msgid "Could not write new index file."
msgstr ""
-#: builtin/rev-list.c:354
+#: builtin/rev-list.c:350
msgid "rev-list does not support display of notes"
msgstr ""
@@ -9747,28 +9958,23 @@ msgstr ""
msgid "git shortlog [<options>] [<revision-range>] [[--] [<path>...]]"
msgstr ""
-#: builtin/shortlog.c:131
-#, c-format
-msgid "Missing author: %s"
-msgstr ""
-
-#: builtin/shortlog.c:230
+#: builtin/shortlog.c:242
msgid "sort output according to the number of commits per author"
msgstr ""
-#: builtin/shortlog.c:232
+#: builtin/shortlog.c:244
msgid "Suppress commit descriptions, only provides commit count"
msgstr ""
-#: builtin/shortlog.c:234
+#: builtin/shortlog.c:246
msgid "Show the email address of each author"
msgstr ""
-#: builtin/shortlog.c:235
+#: builtin/shortlog.c:247
msgid "w[,i1[,i2]]"
msgstr ""
-#: builtin/shortlog.c:236
+#: builtin/shortlog.c:248
msgid "Linewrap output"
msgstr ""
@@ -9903,79 +10109,79 @@ msgid "skip and remove all lines starting with comment character"
msgstr ""
#: builtin/stripspace.c:38
-msgid "prepend comment character and blank to each line"
+msgid "prepend comment character and space to each line"
msgstr ""
-#: builtin/submodule--helper.c:79 builtin/submodule--helper.c:167
+#: builtin/submodule--helper.c:73 builtin/submodule--helper.c:161
msgid "alternative anchor for relative paths"
msgstr ""
-#: builtin/submodule--helper.c:84
+#: builtin/submodule--helper.c:78
msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
msgstr ""
-#: builtin/submodule--helper.c:114
+#: builtin/submodule--helper.c:108
msgid "git submodule--helper name <path>"
msgstr ""
-#: builtin/submodule--helper.c:120
+#: builtin/submodule--helper.c:114
#, c-format
msgid "no submodule mapping found in .gitmodules for path '%s'"
msgstr ""
-#: builtin/submodule--helper.c:170
+#: builtin/submodule--helper.c:164
msgid "where the new submodule will be cloned to"
msgstr ""
-#: builtin/submodule--helper.c:173
+#: builtin/submodule--helper.c:167
msgid "name of the new submodule"
msgstr ""
-#: builtin/submodule--helper.c:176
+#: builtin/submodule--helper.c:170
msgid "url where to clone the submodule from"
msgstr ""
-#: builtin/submodule--helper.c:182
+#: builtin/submodule--helper.c:176
msgid "depth for shallow clones"
msgstr ""
-#: builtin/submodule--helper.c:188
+#: builtin/submodule--helper.c:182
msgid ""
"git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
"<repository>] [--name <name>] [--url <url>][--depth <depth>] [--] [<path>...]"
msgstr ""
-#: builtin/submodule--helper.c:202 builtin/submodule--helper.c:208
-#: builtin/submodule--helper.c:216
+#: builtin/submodule--helper.c:196 builtin/submodule--helper.c:202
+#: builtin/submodule--helper.c:210
#, c-format
msgid "could not create directory '%s'"
msgstr ""
-#: builtin/submodule--helper.c:204
+#: builtin/submodule--helper.c:198
#, c-format
msgid "clone of '%s' into submodule path '%s' failed"
msgstr ""
-#: builtin/submodule--helper.c:227
+#: builtin/submodule--helper.c:221
#, c-format
msgid "cannot open file '%s'"
msgstr ""
-#: builtin/submodule--helper.c:232
+#: builtin/submodule--helper.c:226
#, c-format
msgid "could not close file %s"
msgstr ""
-#: builtin/submodule--helper.c:247
+#: builtin/submodule--helper.c:241
#, c-format
msgid "could not get submodule directory for '%s'"
msgstr ""
-#: builtin/submodule--helper.c:273
+#: builtin/submodule--helper.c:267
msgid "fatal: submodule--helper subcommand must be called with a subcommand"
msgstr ""
-#: builtin/submodule--helper.c:280
+#: builtin/submodule--helper.c:274
#, c-format
msgid "fatal: '%s' is not a valid submodule--helper subcommand"
msgstr ""
@@ -10207,188 +10413,201 @@ msgstr ""
msgid "Unpacking objects"
msgstr ""
-#: builtin/update-index.c:70
+#: builtin/update-index.c:79
#, c-format
msgid "failed to create directory %s"
msgstr ""
-#: builtin/update-index.c:76
+#: builtin/update-index.c:85
#, c-format
msgid "failed to stat %s"
msgstr ""
-#: builtin/update-index.c:86
+#: builtin/update-index.c:95
#, c-format
msgid "failed to create file %s"
msgstr ""
-#: builtin/update-index.c:94
+#: builtin/update-index.c:103
#, c-format
msgid "failed to delete file %s"
msgstr ""
-#: builtin/update-index.c:101 builtin/update-index.c:203
+#: builtin/update-index.c:110 builtin/update-index.c:212
#, c-format
msgid "failed to delete directory %s"
msgstr ""
-#: builtin/update-index.c:124
+#: builtin/update-index.c:133
#, c-format
-msgid "Testing "
+msgid "Testing mtime in '%s' "
msgstr ""
-#: builtin/update-index.c:136
+#: builtin/update-index.c:145
msgid "directory stat info does not change after adding a new file"
msgstr ""
-#: builtin/update-index.c:149
+#: builtin/update-index.c:158
msgid "directory stat info does not change after adding a new directory"
msgstr ""
-#: builtin/update-index.c:162
+#: builtin/update-index.c:171
msgid "directory stat info changes after updating a file"
msgstr ""
-#: builtin/update-index.c:173
+#: builtin/update-index.c:182
msgid "directory stat info changes after adding a file inside subdirectory"
msgstr ""
-#: builtin/update-index.c:184
+#: builtin/update-index.c:193
msgid "directory stat info does not change after deleting a file"
msgstr ""
-#: builtin/update-index.c:197
+#: builtin/update-index.c:206
msgid "directory stat info does not change after deleting a directory"
msgstr ""
-#: builtin/update-index.c:204
+#: builtin/update-index.c:213
msgid " OK"
msgstr ""
-#: builtin/update-index.c:564
+#: builtin/update-index.c:575
msgid "git update-index [<options>] [--] [<file>...]"
msgstr ""
-#: builtin/update-index.c:918
+#: builtin/update-index.c:930
msgid "continue refresh even when index needs update"
msgstr ""
-#: builtin/update-index.c:921
+#: builtin/update-index.c:933
msgid "refresh: ignore submodules"
msgstr ""
-#: builtin/update-index.c:924
+#: builtin/update-index.c:936
msgid "do not ignore new files"
msgstr ""
-#: builtin/update-index.c:926
+#: builtin/update-index.c:938
msgid "let files replace directories and vice-versa"
msgstr ""
-#: builtin/update-index.c:928
+#: builtin/update-index.c:940
msgid "notice files missing from worktree"
msgstr ""
-#: builtin/update-index.c:930
+#: builtin/update-index.c:942
msgid "refresh even if index contains unmerged entries"
msgstr ""
-#: builtin/update-index.c:933
+#: builtin/update-index.c:945
msgid "refresh stat information"
msgstr ""
-#: builtin/update-index.c:937
+#: builtin/update-index.c:949
msgid "like --refresh, but ignore assume-unchanged setting"
msgstr ""
-#: builtin/update-index.c:941
+#: builtin/update-index.c:953
msgid "<mode>,<object>,<path>"
msgstr ""
-#: builtin/update-index.c:942
+#: builtin/update-index.c:954
msgid "add the specified entry to the index"
msgstr ""
-#: builtin/update-index.c:946
+#: builtin/update-index.c:958
msgid "(+/-)x"
msgstr ""
-#: builtin/update-index.c:947
+#: builtin/update-index.c:959
msgid "override the executable bit of the listed files"
msgstr ""
-#: builtin/update-index.c:951
+#: builtin/update-index.c:963
msgid "mark files as \"not changing\""
msgstr ""
-#: builtin/update-index.c:954
+#: builtin/update-index.c:966
msgid "clear assumed-unchanged bit"
msgstr ""
-#: builtin/update-index.c:957
+#: builtin/update-index.c:969
msgid "mark files as \"index-only\""
msgstr ""
-#: builtin/update-index.c:960
+#: builtin/update-index.c:972
msgid "clear skip-worktree bit"
msgstr ""
-#: builtin/update-index.c:963
+#: builtin/update-index.c:975
msgid "add to index only; do not add content to object database"
msgstr ""
-#: builtin/update-index.c:965
+#: builtin/update-index.c:977
msgid "remove named paths even if present in worktree"
msgstr ""
-#: builtin/update-index.c:967
+#: builtin/update-index.c:979
msgid "with --stdin: input lines are terminated by null bytes"
msgstr ""
-#: builtin/update-index.c:969
+#: builtin/update-index.c:981
msgid "read list of paths to be updated from standard input"
msgstr ""
-#: builtin/update-index.c:973
+#: builtin/update-index.c:985
msgid "add entries from standard input to the index"
msgstr ""
-#: builtin/update-index.c:977
+#: builtin/update-index.c:989
msgid "repopulate stages #2 and #3 for the listed paths"
msgstr ""
-#: builtin/update-index.c:981
+#: builtin/update-index.c:993
msgid "only update entries that differ from HEAD"
msgstr ""
-#: builtin/update-index.c:985
+#: builtin/update-index.c:997
msgid "ignore files missing from worktree"
msgstr ""
-#: builtin/update-index.c:988
+#: builtin/update-index.c:1000
msgid "report actions to standard output"
msgstr ""
-#: builtin/update-index.c:990
+#: builtin/update-index.c:1002
msgid "(for porcelains) forget saved unresolved conflicts"
msgstr ""
-#: builtin/update-index.c:994
+#: builtin/update-index.c:1006
msgid "write index in this format"
msgstr ""
-#: builtin/update-index.c:996
+#: builtin/update-index.c:1008
msgid "enable or disable split index"
msgstr ""
-#: builtin/update-index.c:998
+#: builtin/update-index.c:1010
msgid "enable/disable untracked cache"
msgstr ""
-#: builtin/update-index.c:1000
+#: builtin/update-index.c:1012
+msgid "test if the filesystem supports untracked cache"
+msgstr ""
+
+#: builtin/update-index.c:1014
msgid "enable untracked cache without testing the filesystem"
msgstr ""
+#: builtin/update-index.c:1134
+msgid "Untracked cache disabled"
+msgstr ""
+
+#: builtin/update-index.c:1146
+#, c-format
+msgid "Untracked cache enabled for '%s'"
+msgstr ""
+
#: builtin/update-ref.c:9
msgid "git update-ref [<options>] -d <refname> [<old-val>]"
msgstr ""
@@ -10504,33 +10723,33 @@ msgstr ""
msgid "'%s' already exists"
msgstr ""
-#: builtin/worktree.c:235
+#: builtin/worktree.c:233
#, c-format
msgid "could not create directory of '%s'"
msgstr ""
-#: builtin/worktree.c:271
+#: builtin/worktree.c:269
#, c-format
msgid "Preparing %s (identifier %s)"
msgstr ""
-#: builtin/worktree.c:319
+#: builtin/worktree.c:317
msgid "checkout <branch> even if already checked out in other worktree"
msgstr ""
-#: builtin/worktree.c:321
+#: builtin/worktree.c:319
msgid "create a new branch"
msgstr ""
-#: builtin/worktree.c:323
+#: builtin/worktree.c:321
msgid "create or reset a branch"
msgstr ""
-#: builtin/worktree.c:324
+#: builtin/worktree.c:322
msgid "detach HEAD at named commit"
msgstr ""
-#: builtin/worktree.c:331
+#: builtin/worktree.c:329
msgid "-b, -B, and --detach are mutually exclusive"
msgstr ""
@@ -10550,7 +10769,7 @@ msgstr ""
msgid "only useful for debugging"
msgstr ""
-#: credential-cache--daemon.c:255
+#: credential-cache--daemon.c:262
msgid "print debugging messages to stderr"
msgstr ""
@@ -10561,6 +10780,10 @@ msgid ""
"to read about a specific subcommand or concept."
msgstr ""
+#: http.c:321
+msgid "Public key pinning not supported with cURL < 7.44.0"
+msgstr ""
+
#: common-cmds.h:9
msgid "start a working area (see also: git help tutorial)"
msgstr ""
@@ -10642,7 +10865,7 @@ msgid "Update remote refs along with associated objects"
msgstr ""
#: common-cmds.h:32
-msgid "Forward-port local commits to the updated upstream head"
+msgid "Reapply commits on top of another base tip"
msgstr ""
#: common-cmds.h:33
@@ -11295,108 +11518,108 @@ msgstr ""
msgid "Submodule '$name' ($url) unregistered for path '$displaypath'"
msgstr ""
-#: git-submodule.sh:705
+#: git-submodule.sh:723
#, sh-format
msgid ""
"Submodule path '$displaypath' not initialized\n"
"Maybe you want to use 'update --init'?"
msgstr ""
-#: git-submodule.sh:718
+#: git-submodule.sh:736
#, sh-format
msgid "Unable to find current revision in submodule path '$displaypath'"
msgstr ""
-#: git-submodule.sh:727
+#: git-submodule.sh:745
#, sh-format
msgid "Unable to fetch in submodule path '$sm_path'"
msgstr ""
-#: git-submodule.sh:751
+#: git-submodule.sh:768
#, sh-format
msgid "Unable to fetch in submodule path '$displaypath'"
msgstr ""
-#: git-submodule.sh:765
+#: git-submodule.sh:788
#, sh-format
msgid "Unable to checkout '$sha1' in submodule path '$displaypath'"
msgstr ""
-#: git-submodule.sh:766
+#: git-submodule.sh:789
#, sh-format
msgid "Submodule path '$displaypath': checked out '$sha1'"
msgstr ""
-#: git-submodule.sh:770
+#: git-submodule.sh:793
#, sh-format
msgid "Unable to rebase '$sha1' in submodule path '$displaypath'"
msgstr ""
-#: git-submodule.sh:771
+#: git-submodule.sh:794
#, sh-format
msgid "Submodule path '$displaypath': rebased into '$sha1'"
msgstr ""
-#: git-submodule.sh:776
+#: git-submodule.sh:799
#, sh-format
msgid "Unable to merge '$sha1' in submodule path '$displaypath'"
msgstr ""
-#: git-submodule.sh:777
+#: git-submodule.sh:800
#, sh-format
msgid "Submodule path '$displaypath': merged in '$sha1'"
msgstr ""
-#: git-submodule.sh:782
+#: git-submodule.sh:805
#, sh-format
msgid ""
"Execution of '$command $sha1' failed in submodule path '$prefix$sm_path'"
msgstr ""
-#: git-submodule.sh:783
+#: git-submodule.sh:806
#, sh-format
msgid "Submodule path '$prefix$sm_path': '$command $sha1'"
msgstr ""
-#: git-submodule.sh:813
+#: git-submodule.sh:836
#, sh-format
msgid "Failed to recurse into submodule path '$displaypath'"
msgstr ""
-#: git-submodule.sh:921
+#: git-submodule.sh:944
msgid "The --cached option cannot be used with the --files option"
msgstr ""
-#: git-submodule.sh:973
+#: git-submodule.sh:996
#, sh-format
msgid "unexpected mode $mod_dst"
msgstr ""
-#: git-submodule.sh:993
+#: git-submodule.sh:1016
#, sh-format
msgid " Warn: $display_name doesn't contain commit $sha1_src"
msgstr ""
-#: git-submodule.sh:996
+#: git-submodule.sh:1019
#, sh-format
msgid " Warn: $display_name doesn't contain commit $sha1_dst"
msgstr ""
-#: git-submodule.sh:999
+#: git-submodule.sh:1022
#, sh-format
msgid " Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst"
msgstr ""
-#: git-submodule.sh:1024
+#: git-submodule.sh:1047
msgid "blob"
msgstr ""
-#: git-submodule.sh:1142
+#: git-submodule.sh:1165
#, sh-format
msgid "Failed to recurse into submodule path '$sm_path'"
msgstr ""
-#: git-submodule.sh:1206
+#: git-submodule.sh:1229
#, sh-format
msgid "Synchronizing submodule url for '$displaypath'"
msgstr ""
diff --git a/po/ko.po b/po/ko.po
index 8ec0eac134..c1e83d218b 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -57,8 +57,8 @@ msgid ""
msgstr ""
"Project-Id-Version: git\n"
"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2015-12-22 22:50+0800\n"
-"PO-Revision-Date: 2016-01-03 18:50+0900\n"
+"POT-Creation-Date: 2016-03-12 22:05+0800\n"
+"PO-Revision-Date: 2016-03-13 02:29+0900\n"
"Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
"Language-Team: Git Korean translation <http://github.com/changwoo/git-l10n-"
"ko>\n"
@@ -81,7 +81,7 @@ msgstr ""
"ìž‘ì—… í´ë”ì—ì„œ 문제를 ë°”ë¡œìž¡ì€ ë‹¤ìŒ, 'git add/rm <파ì¼>'ì„ ì ì ˆížˆ\n"
"사용해 해결 표시하고 커밋하십시오."
-#: advice.c:101 builtin/merge.c:1225
+#: advice.c:101 builtin/merge.c:1226
msgid "You have not concluded your merge (MERGE_HEAD exists)."
msgstr "병합 ìž‘ì—…ì„ ë‹¤ 마치지 않았습니다 (MERGE_HEAD 파ì¼ì´ 있습니다)."
@@ -125,7 +125,7 @@ msgstr "형ì‹"
msgid "archive format"
msgstr "압축 형ì‹"
-#: archive.c:430 builtin/log.c:1229
+#: archive.c:430 builtin/log.c:1232
msgid "prefix"
msgstr "ì ‘ë‘ì–´"
@@ -133,10 +133,10 @@ msgstr "ì ‘ë‘ì–´"
msgid "prepend prefix to each pathname in the archive"
msgstr "ì•„ì¹´ì´ë¸Œì˜ ê° ê²½ë¡œ ì´ë¦„ì˜ ì•žì— ì§€ì •í•œ 경로를 붙입니다"
-#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2535 builtin/blame.c:2536
-#: builtin/config.c:58 builtin/fast-export.c:987 builtin/fast-export.c:989
-#: builtin/grep.c:707 builtin/hash-object.c:99 builtin/ls-files.c:446
-#: builtin/ls-files.c:449 builtin/notes.c:395 builtin/notes.c:558
+#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2547 builtin/blame.c:2548
+#: builtin/config.c:60 builtin/fast-export.c:987 builtin/fast-export.c:989
+#: builtin/grep.c:720 builtin/hash-object.c:100 builtin/ls-files.c:459
+#: builtin/ls-files.c:462 builtin/notes.c:398 builtin/notes.c:561
#: builtin/read-tree.c:109 parse-options.h:153
msgid "file"
msgstr "파ì¼"
@@ -169,7 +169,7 @@ msgstr "ë” ìž‘ê²Œ 압축"
msgid "list supported archive formats"
msgstr "지ì›í•˜ëŠ” 압축 형ì‹ì˜ 목ë¡ì„ 표시합니다"
-#: archive.c:451 builtin/archive.c:90 builtin/clone.c:77
+#: archive.c:451 builtin/archive.c:90 builtin/clone.c:78
msgid "repo"
msgstr "저장소"
@@ -177,7 +177,7 @@ msgstr "저장소"
msgid "retrieve the archive from remote repository <repo>"
msgstr "ì›ê²© 저장소 <저장소>ì—ì„œ ì•„ì¹´ì´ë¸Œë¥¼ 가져옵니다"
-#: archive.c:453 builtin/archive.c:92 builtin/notes.c:479
+#: archive.c:453 builtin/archive.c:92 builtin/notes.c:482
msgid "command"
msgstr "명령"
@@ -185,7 +185,7 @@ msgstr "명령"
msgid "path to the remote git-upload-archive command"
msgstr "ì›ê²© git-upload-archive ëª…ë ¹ì˜ ê²½ë¡œ"
-#: attr.c:265
+#: attr.c:263
msgid ""
"Negative patterns are ignored in git attributes\n"
"Use '\\!' for literal leading exclamation."
@@ -193,87 +193,104 @@ msgstr ""
"git attributesì—ì„œ 반대 íŒ¨í„´ì€ ë¬´ì‹œë©ë‹ˆë‹¤.\n"
"ì•žì— ëŠë‚Œí‘œë¥¼ 쓰려면 '\\!'를 사용하십시오."
-#: branch.c:61
+#: branch.c:53
+#, c-format
+msgid ""
+"\n"
+"After fixing the error cause you may try to fix up\n"
+"the remote tracking information by invoking\n"
+"\"git branch --set-upstream-to=%s%s%s\"."
+msgstr ""
+"\n"
+"오류를 수정한 ë‹¤ìŒ ì›ê²© ì¶”ì  ì •ë³´ë¥¼\n"
+"\"git branch --set-upstream-to=%s%s%s\" 명령ì„\n"
+"실행해 수정할 수 있습니다."
+
+#: branch.c:67
#, c-format
msgid "Not setting branch %s as its own upstream."
msgstr "%s 브랜치를 ìžì‹ ì˜ 업스트림으로 지정하지 ì•ŠìŒ."
-#: branch.c:84
+#: branch.c:93
#, c-format
msgid "Branch %s set up to track remote branch %s from %s by rebasing."
msgstr ""
"%s 브랜치가 리베ì´ìŠ¤ë¥¼ 통해 ë¦¬ëª¨íŠ¸ì˜ %s 브랜치를 (%sì—ì„œ) ë”°ë¼ê°€ë„ë¡ ì„¤ì •ë˜ì—ˆ"
"습니다."
-#: branch.c:85
+#: branch.c:94
#, c-format
msgid "Branch %s set up to track remote branch %s from %s."
msgstr "%s 브랜치가 ë¦¬ëª¨íŠ¸ì˜ %s 브랜치를 (%sì—ì„œ) ë”°ë¼ê°€ë„ë¡ ì„¤ì •ë˜ì—ˆìŠµë‹ˆë‹¤."
-#: branch.c:89
+#: branch.c:98
#, c-format
msgid "Branch %s set up to track local branch %s by rebasing."
msgstr ""
"%s 브랜치가 리베ì´ìŠ¤ë¥¼ 통해 ë¦¬ëª¨íŠ¸ì˜ %s 브랜치를 ë”°ë¼ê°€ë„ë¡ ì„¤ì •ë˜ì—ˆìŠµë‹ˆë‹¤."
-#: branch.c:90
+#: branch.c:99
#, c-format
msgid "Branch %s set up to track local branch %s."
msgstr "%s 브랜치가 %s 브랜치를 ë”°ë¼ê°€ë„ë¡ ì„¤ì •ë˜ì—ˆìŠµë‹ˆë‹¤."
-#: branch.c:95
+#: branch.c:104
#, c-format
msgid "Branch %s set up to track remote ref %s by rebasing."
msgstr ""
"%s 브랜치가 리베ì´ìŠ¤ë¥¼ 통해 ë¦¬ëª¨íŠ¸ì˜ %s ë ˆí¼ëŸ°ìŠ¤ë¥¼ ë”°ë¼ê°€ë„ë¡ ì„¤ì •ë˜ì—ˆìŠµë‹ˆë‹¤."
-#: branch.c:96
+#: branch.c:105
#, c-format
msgid "Branch %s set up to track remote ref %s."
msgstr "%s 브랜치가 ë¦¬ëª¨íŠ¸ì˜ %s ë ˆí¼ëŸ°ìŠ¤ë¥¼ ë”°ë¼ê°€ë„ë¡ ì„¤ì •ë˜ì—ˆìŠµë‹ˆë‹¤."
-#: branch.c:100
+#: branch.c:109
#, c-format
msgid "Branch %s set up to track local ref %s by rebasing."
msgstr ""
"%s 브랜치가 리베ì´ìŠ¤ë¥¼ 통해 ë¡œì»¬ì˜ %s ë ˆí¼ëŸ°ìŠ¤ë¥¼ ë”°ë¼ê°€ë„ë¡ ì„¤ì •ë˜ì—ˆìŠµë‹ˆë‹¤."
-#: branch.c:101
+#: branch.c:110
#, c-format
msgid "Branch %s set up to track local ref %s."
msgstr "%s 브랜치가 ë¡œì»¬ì˜ %s ë ˆí¼ëŸ°ìŠ¤ë¥¼ ë”°ë¼ê°€ë„ë¡ ì„¤ì •ë˜ì—ˆìŠµë‹ˆë‹¤."
-#: branch.c:134
+#: branch.c:119
+msgid "Unable to write upstream branch configuration"
+msgstr "업스트림 브랜치 ì„¤ì •ì„ ì“¸ 수 없습니다"
+
+#: branch.c:156
#, c-format
msgid "Not tracking: ambiguous information for ref %s"
msgstr "ë”°ë¼ê°€ì§€ ì•ŠìŒ: %s ë ˆí¼ëŸ°ìŠ¤ì— 대해 애매한 ì •ë³´"
-#: branch.c:163
+#: branch.c:185
#, c-format
msgid "'%s' is not a valid branch name."
msgstr "'%s'ì€(는) 올바른 브랜치 ì´ë¦„ì´ ì•„ë‹™ë‹ˆë‹¤."
-#: branch.c:168
+#: branch.c:190
#, c-format
msgid "A branch named '%s' already exists."
msgstr "ì´ë¦„ì´ '%s'ì¸ ë¸Œëžœì¹˜ê°€ ì´ë¯¸ 있습니다."
-#: branch.c:176
+#: branch.c:198
msgid "Cannot force update the current branch."
msgstr "현재 브랜치를 강제로 ì—…ë°ì´íŠ¸í•  수 없습니다."
-#: branch.c:196
+#: branch.c:218
#, c-format
msgid "Cannot setup tracking information; starting point '%s' is not a branch."
msgstr ""
"ë”°ë¼ê°€ê¸° 정보를 설정할 수 없습니다. 시작 위치 '%s'ì´(ê°€) 브랜치가 아닙니다."
-#: branch.c:198
+#: branch.c:220
#, c-format
msgid "the requested upstream branch '%s' does not exist"
msgstr "요청한 업스트림 '%s' 브랜치가 없습니다"
-#: branch.c:200
+#: branch.c:222
msgid ""
"\n"
"If you are planning on basing your work on an upstream\n"
@@ -291,22 +308,22 @@ msgstr ""
"새 로컬 브랜치를 ê±°ê¸°ì— í•´ë‹¹í•˜ëŠ” 리모트 브랜치로 push하려면,\n"
"\"git push -u\"ë¡œ push하는 ì—…ìŠ¤íŠ¸ë¦¼ì„ ì„¤ì •í•  수 있습니다."
-#: branch.c:244
+#: branch.c:266
#, c-format
msgid "Not a valid object name: '%s'."
msgstr "올바른 오브ì íŠ¸ ì´ë¦„ì´ ì•„ë‹™ë‹ˆë‹¤: '%s'."
-#: branch.c:264
+#: branch.c:286
#, c-format
msgid "Ambiguous object name: '%s'."
msgstr "애매한 오브ì íŠ¸ ì´ë¦„: '%s'."
-#: branch.c:269
+#: branch.c:291
#, c-format
msgid "Not a valid branch point: '%s'."
msgstr "올바른 브랜치 위치가 아닙니다: '%s'."
-#: branch.c:322
+#: branch.c:344
#, c-format
msgid "'%s' is already checked out at '%s'"
msgstr "'%s'ì€(는) ì´ë¯¸ '%s' ìœ„ì¹˜ì— ë°›ì•„ì ¸ 있습니다"
@@ -330,10 +347,10 @@ msgstr "'%s'ì„(를) ì—´ 수 없습니다"
msgid "Repository lacks these prerequisite commits:"
msgstr "ì €ìž¥ì†Œì— í•„ìˆ˜ì ì¸ ë‹¤ìŒ ì»¤ë°‹ì´ ì—†ìŠµë‹ˆë‹¤:"
-#: bundle.c:163 ref-filter.c:1372 sequencer.c:636 sequencer.c:1083
-#: builtin/blame.c:2734 builtin/commit.c:1045 builtin/log.c:334
-#: builtin/log.c:849 builtin/log.c:1461 builtin/log.c:1694 builtin/merge.c:358
-#: builtin/shortlog.c:158
+#: bundle.c:163 ref-filter.c:1462 sequencer.c:627 sequencer.c:1074
+#: builtin/blame.c:2754 builtin/commit.c:1045 builtin/log.c:334
+#: builtin/log.c:852 builtin/log.c:1467 builtin/log.c:1700 builtin/merge.c:358
+#: builtin/shortlog.c:170
msgid "revision walk setup failed"
msgstr "리비전 walk 준비가 실패했습니다"
@@ -370,7 +387,7 @@ msgstr "rev-list ëª…ë ¹ì´ ì£½ì—ˆìŠµë‹ˆë‹¤"
msgid "ref '%s' is excluded by the rev-list options"
msgstr "rev-list 옵션ì—ì„œ '%s' ë ˆí¼ëŸ°ìŠ¤ê°€ 제외ë˜ì—ˆìŠµë‹ˆë‹¤"
-#: bundle.c:443 builtin/log.c:157 builtin/log.c:1369 builtin/shortlog.c:261
+#: bundle.c:443 builtin/log.c:157 builtin/log.c:1372 builtin/shortlog.c:273
#, c-format
msgid "unrecognized argument: %s"
msgstr "ì•Œ 수 없는 ì¸ìž: %s"
@@ -393,8 +410,8 @@ msgstr "index-pack ëª…ë ¹ì´ ì£½ì—ˆìŠµë‹ˆë‹¤"
msgid "invalid color value: %.*s"
msgstr "ìž˜ëª»ëœ ìƒ‰ ê°’: %.*s"
-#: commit.c:40 builtin/am.c:452 builtin/am.c:488 builtin/am.c:1520
-#: builtin/am.c:2149
+#: commit.c:40 builtin/am.c:437 builtin/am.c:473 builtin/am.c:1505
+#: builtin/am.c:2135
#, c-format
msgid "could not parse %s"
msgstr "parse %sì„(를) 파싱할 수 없습니다"
@@ -408,59 +425,64 @@ msgstr "%s %s, ì»¤ë°‹ì´ ì•„ë‹™ë‹ˆë‹¤"
msgid "memory exhausted"
msgstr "메모리 바닥남"
-#: config.c:474 config.c:476
+#: config.c:475 config.c:477
#, c-format
-msgid "bad config file line %d in %s"
-msgstr "%2$s íŒŒì¼ %1$d번 ì¤„ì— ìž˜ëª»ëœ ì„¤ì •"
+msgid "bad config line %d in %s %s"
+msgstr "%2$s %3$s %1$d번 ì¤„ì— ìž˜ëª»ëœ ì„¤ì •"
-#: config.c:592
+#: config.c:593
#, c-format
-msgid "bad numeric config value '%s' for '%s' in %s: %s"
-msgstr "ìž˜ëª»ëœ ìˆ˜ì¹˜ 설정 ê°’ '%s' (키 '%s', %s 파ì¼): %s"
+msgid "bad numeric config value '%s' for '%s' in %s %s: %s"
+msgstr "ìž˜ëª»ëœ ìˆ˜ì¹˜ 설정 ê°’ '%s' (키 '%s', %s %s): %s"
-#: config.c:594
+#: config.c:595
#, c-format
msgid "bad numeric config value '%s' for '%s': %s"
msgstr "ìž˜ëª»ëœ ìˆ˜ì¹˜ 설정 ê°’ '%s' (키 '%s'): %s"
-#: config.c:679
+#: config.c:680
#, c-format
msgid "failed to expand user dir in: '%s'"
msgstr "다ìŒì— ì‚¬ìš©ìž ë””ë ‰í„°ë¦¬ í™•ìž¥ì— ì‹¤íŒ¨: '%s'"
-#: config.c:757 config.c:768
+#: config.c:758 config.c:769
#, c-format
msgid "bad zlib compression level %d"
msgstr "%dë²ˆì€ ì˜¬ë°”ë¥¸ zlib 압축 단계가 아닙니다"
-#: config.c:890
+#: config.c:891
#, c-format
msgid "invalid mode for object creation: %s"
msgstr "오브ì íŠ¸ ìƒì„± 모드가 올바르지 않습니다: %s"
-#: config.c:1216
+#: config.c:1220
msgid "unable to parse command-line config"
msgstr "명령행 ì„¤ì •ì„ íŒŒì‹±í•  수 없습니다"
-#: config.c:1277
+#: config.c:1281
msgid "unknown error occured while reading the configuration files"
msgstr "설정 파ì¼ì„ ì½ëŠ” 중 ì•Œ 수 없는 오류가 ìƒê²¼ìŠµë‹ˆë‹¤"
-#: config.c:1601
+#: config.c:1629
#, c-format
msgid "unable to parse '%s' from command-line config"
msgstr "명령행 설정ì—ì„œ '%s'ì„(를) 설정할 수 없습니다"
-#: config.c:1603
+#: config.c:1631
#, c-format
msgid "bad config variable '%s' in file '%s' at line %d"
msgstr "'%2$s' 파ì¼ì˜ %3$d번 줄 '%1$s' 설정 변수가 잘못ë˜ì—ˆìŠµë‹ˆë‹¤"
-#: config.c:1662
+#: config.c:1690
#, c-format
msgid "%s has multiple values"
msgstr "%sì€(는) 여러 ê°œ ê°’ì´ ìžˆìŠµë‹ˆë‹¤"
+#: config.c:2226
+#, c-format
+msgid "Could not set '%s' to '%s'"
+msgstr "'%s'ì„(를) '%s'ì— ì„¤ì •í•  수 없습니다"
+
#: connected.c:69
msgid "Could not run 'git rev-list'"
msgstr "'git rev-list'를 실행할 수 없습니다"
@@ -567,16 +589,16 @@ msgstr ""
"'diff.submodule' 설정 ë³€ìˆ˜ì— ì˜¤ë¥˜:\n"
"%s'"
-#: diff.c:3000
+#: diff.c:2997
#, c-format
msgid "external diff died, stopping at %s"
msgstr "외부 diff í”„ë¡œê·¸ëž¨ì´ ì£½ìŒ, %s 위치ì—ì„œ 멈춤"
-#: diff.c:3396
+#: diff.c:3393
msgid "--follow requires exactly one pathspec"
msgstr "--follow 옵션ì—는 정확히 í•˜ë‚˜ì˜ ê²½ë¡œëª…ì„¸ê°€ 필요합니다"
-#: diff.c:3559
+#: diff.c:3556
#, c-format
msgid ""
"Failed to parse --dirstat/-X option parameter:\n"
@@ -585,18 +607,18 @@ msgstr ""
"--dirstat/-X 옵션 파ë¼ë¯¸í„°ë¥¼ íŒŒì‹±í•˜ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤:\n"
"%s"
-#: diff.c:3573
+#: diff.c:3570
#, c-format
msgid "Failed to parse --submodule option parameter: '%s'"
msgstr "--submodule 옵션 파ë¼ë¯¸í„° íŒŒì‹±ì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤: '%s'"
-#: dir.c:1915
+#: dir.c:2004
msgid "failed to get kernel name and information"
msgstr "ì»¤ë„ ì´ë¦„ê³¼ 정보를 ê°€ì ¸ì˜¤ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
-#: dir.c:1998
-msgid "Untracked cache is disabled on this system."
-msgstr "ì´ ì‹œìŠ¤í…œì—서는 추ì ë˜ì§€ 않는 ìºì‹œë¥¼ 사용하지 않습니다."
+#: dir.c:2123
+msgid "Untracked cache is disabled on this system or location."
+msgstr "ì´ ì‹œìŠ¤í…œ ë˜ëŠ” 위치ì—서는 추ì ë˜ì§€ 않는 ìºì‹œë¥¼ 사용하지 않습니다."
#: gpg-interface.c:166 gpg-interface.c:237
msgid "could not run gpg."
@@ -635,20 +657,20 @@ msgstr "'%s': %s"
msgid "'%s': short read %s"
msgstr "'%s': %sì—ì„œ ì½ë‹¤ê°€ 잘림"
-#: help.c:207
+#: help.c:205
#, c-format
msgid "available git commands in '%s'"
msgstr "'%s'ì— ìžˆëŠ” 깃 명령"
-#: help.c:214
+#: help.c:212
msgid "git commands available from elsewhere on your $PATH"
msgstr "다른 $PATHì— ìžˆëŠ” 깃 명령"
-#: help.c:246
+#: help.c:244
msgid "These are common Git commands used in various situations:"
msgstr "다ìŒì€ 여러가지 ìƒí™©ì—ì„œ ìžì£¼ 사용하는 깃 명령입니다:"
-#: help.c:311
+#: help.c:309
#, c-format
msgid ""
"'%s' appears to be a git command, but we were not\n"
@@ -657,11 +679,11 @@ msgstr ""
"'%s'ì€(는) 깃 명령으로 ë³´ì´ì§€ë§Œ, 실행할 수\n"
"없습니다. ì•„ë§ˆë„ git-%s ë§ê°€ì§„ 것 같습니다."
-#: help.c:368
+#: help.c:366
msgid "Uh oh. Your system reports no Git commands at all."
msgstr "ì–´ë¼ë¼. ì‹œìŠ¤í…œì— ê¹ƒ ëª…ë ¹ì´ í•˜ë‚˜ë„ ì—†ë‹¤ê³  나옵니다."
-#: help.c:390
+#: help.c:388
#, c-format
msgid ""
"WARNING: You called a Git command named '%s', which does not exist.\n"
@@ -670,17 +692,17 @@ msgstr ""
"경고: ì´ë¦„ì´ '%s'ì¸ ê¹ƒ ëª…ë ¹ì„ ì‹¤í–‰í–ˆì§€ë§Œ, ê·¸ ëª…ë ¹ì´ ì—†ìŠµë‹ˆë‹¤.\n"
"ìžë™ìœ¼ë¡œ '%s' 명령ì´ë¼ê³  가정하고 계ì†í•©ë‹ˆë‹¤"
-#: help.c:395
+#: help.c:393
#, c-format
msgid "in %0.1f seconds automatically..."
msgstr "(%0.1fì´ˆ ë’¤ì—)..."
-#: help.c:402
+#: help.c:400
#, c-format
msgid "git: '%s' is not a git command. See 'git --help'."
msgstr "git: '%s'ì€(는) 깃 ëª…ë ¹ì´ ì•„ë‹™ë‹ˆë‹¤. 'git --help'를 참고하십시오."
-#: help.c:406 help.c:466
+#: help.c:404 help.c:464
msgid ""
"\n"
"Did you mean this?"
@@ -691,7 +713,7 @@ msgstr[0] ""
"\n"
"다ìŒì„ ì˜ë„하신 것 아니었나요?"
-#: help.c:462
+#: help.c:460
#, c-format
msgid "%s: %s - %s"
msgstr "%s: %s - %s"
@@ -700,8 +722,8 @@ msgstr "%s: %s - %s"
msgid "failed to read the cache"
msgstr "ìºì‹œë¥¼ ì½ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
-#: merge.c:94 builtin/am.c:2022 builtin/am.c:2057 builtin/checkout.c:376
-#: builtin/checkout.c:587 builtin/clone.c:722
+#: merge.c:94 builtin/am.c:2008 builtin/am.c:2043 builtin/checkout.c:376
+#: builtin/checkout.c:587 builtin/clone.c:730
msgid "unable to write new index file"
msgstr "새 ì¸ë±ìŠ¤ 파ì¼ì„ 쓸 수 없습니다"
@@ -719,64 +741,64 @@ msgstr "'%s' ê²½ë¡œì— ëŒ€í•´ addinfo_cacheê°€ 실패했습니다"
msgid "error building trees"
msgstr "트리 ë¹Œë“œì— ì˜¤ë¥˜"
-#: merge-recursive.c:686
+#: merge-recursive.c:689
#, c-format
msgid "failed to create path '%s'%s"
msgstr "'%s' 경로 ë§Œë“¤ê¸°ì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤%s"
-#: merge-recursive.c:697
+#: merge-recursive.c:700
#, c-format
msgid "Removing %s to make room for subdirectory\n"
msgstr "하위 ë””ë ‰í„°ë¦¬ì— ê³µê°„ì„ ë§Œë“œë ¤ê³  %sì„(를) 제거합니다\n"
-#: merge-recursive.c:711 merge-recursive.c:732
+#: merge-recursive.c:714 merge-recursive.c:735
msgid ": perhaps a D/F conflict?"
msgstr ": ì•„ë§ˆë„ D/F 충ëŒ?"
-#: merge-recursive.c:722
+#: merge-recursive.c:725
#, c-format
msgid "refusing to lose untracked file at '%s'"
msgstr "'%s' ìœ„ì¹˜ì˜ ì¶”ì ë˜ì§€ 않는 파ì¼ì„ 잃기를 거부합니다"
-#: merge-recursive.c:762
+#: merge-recursive.c:765
#, c-format
msgid "cannot read object %s '%s'"
msgstr "%s '%s' 오브ì íŠ¸ë¥¼ ì½ì„ 수 ì—†ìŒ"
-#: merge-recursive.c:764
+#: merge-recursive.c:767
#, c-format
msgid "blob expected for %s '%s'"
msgstr "%s '%s'ì— ëŒ€í•´ ë¸”ë¡­ì„ ì˜ˆìƒ"
-#: merge-recursive.c:787 builtin/clone.c:369
+#: merge-recursive.c:790 builtin/clone.c:374
#, c-format
msgid "failed to open '%s'"
msgstr "'%s'ì„(를) ì—¬ëŠ”ë° ì‹¤íŒ¨"
-#: merge-recursive.c:795
+#: merge-recursive.c:798
#, c-format
msgid "failed to symlink '%s'"
msgstr "'%s' 심볼릭 ë§í¬ì— 실패"
-#: merge-recursive.c:798
+#: merge-recursive.c:801
#, c-format
msgid "do not know what to do with %06o %s '%s'"
msgstr "다ìŒì„ 어떻게 할지 ì•Œ 수 없습니다: %06o %s '%s'"
-#: merge-recursive.c:936
+#: merge-recursive.c:939
msgid "Failed to execute internal merge"
msgstr "내부 병합 ì‹¤í–‰ì— ì‹¤íŒ¨"
-#: merge-recursive.c:940
+#: merge-recursive.c:943
#, c-format
msgid "Unable to add %s to database"
msgstr "%sì„(를) ë°ì´í„°ë² ì´ìŠ¤ì— 추가할 수 없습니다"
-#: merge-recursive.c:956
+#: merge-recursive.c:959
msgid "unsupported object type in the tree"
msgstr "트리ì—ì„œ 지ì›í•˜ì§€ 않는 오브ì íŠ¸ 종류"
-#: merge-recursive.c:1031 merge-recursive.c:1045
+#: merge-recursive.c:1034 merge-recursive.c:1048
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -784,7 +806,7 @@ msgid ""
msgstr ""
"충ëŒ! (%s/ì‚­ì œ): %s (위치 %s) ë° %s (%sì—ì„œ) ì‚­ì œ. %s ë²„ì „ì˜ %s íŠ¸ë¦¬ì— ë‚¨ìŒ."
-#: merge-recursive.c:1037 merge-recursive.c:1050
+#: merge-recursive.c:1040 merge-recursive.c:1053
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -793,20 +815,20 @@ msgstr ""
"충ëŒ! (%s/ì‚­ì œ): %s (위치 %s) ë° %s (위치 %s) ì‚­ì œ. %s ë²„ì „ì˜ %s íŠ¸ë¦¬ì— "
"%s(으)ë¡œ 남ìŒ."
-#: merge-recursive.c:1091
+#: merge-recursive.c:1094
msgid "rename"
msgstr "ì´ë¦„바꾸기"
-#: merge-recursive.c:1091
+#: merge-recursive.c:1094
msgid "renamed"
msgstr "ì´ë¦„바꿈"
-#: merge-recursive.c:1147
+#: merge-recursive.c:1150
#, c-format
msgid "%s is a directory in %s adding as %s instead"
msgstr "%sì€(는) %sì— ìžˆëŠ” 디렉터리로 %s(으)ë¡œ ì´ë¦„ì„ ë°”ê¿‰ë‹ˆë‹¤"
-#: merge-recursive.c:1169
+#: merge-recursive.c:1172
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
@@ -815,145 +837,145 @@ msgstr ""
"충ëŒ! (ì´ë¦„바꾸기/ì´ë¦„바꾸기): \"%3$s\" 브랜치ì—ì„œ ì´ë¦„바꾸기 \"%1$s\"->"
"\"%2$s\" \"%6$s\" 브랜치ì—ì„œ ì´ë¦„ 바꾸기 \"%4$s\"->\"%5$s\"%7$s"
-#: merge-recursive.c:1174
+#: merge-recursive.c:1177
msgid " (left unresolved)"
msgstr " (í•´ê²°ë˜ì§€ ì•ŠìŒ)"
-#: merge-recursive.c:1228
+#: merge-recursive.c:1231
#, c-format
msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
msgstr ""
"충ëŒ! (rename/rename): ì´ë¦„ 바꾸기 %s->%s (위치 %s). ì´ë¦„ 바꾸기 %s->%s (위"
"치 %s)"
-#: merge-recursive.c:1258
+#: merge-recursive.c:1261
#, c-format
msgid "Renaming %s to %s and %s to %s instead"
msgstr "대신 ì´ë¦„ì„ %sì—ì„œ %s(으)ë¡œ 바꾸고 %sì—ì„œ %s(으)ë¡œ 바꿉니다"
-#: merge-recursive.c:1457
+#: merge-recursive.c:1460
#, c-format
msgid "CONFLICT (rename/add): Rename %s->%s in %s. %s added in %s"
msgstr "충ëŒ! (rename/add): ì´ë¦„ 바꾸기 %s->%s (위치 %s). %s 추가 (위치 %s)"
-#: merge-recursive.c:1467
+#: merge-recursive.c:1470
#, c-format
msgid "Adding merged %s"
msgstr "ë³‘í•©ëœ %sì„(를) 추가합니다"
-#: merge-recursive.c:1472 merge-recursive.c:1674
+#: merge-recursive.c:1475 merge-recursive.c:1677
#, c-format
msgid "Adding as %s instead"
msgstr "대신 %s(으)로 추가합니다"
-#: merge-recursive.c:1523
+#: merge-recursive.c:1526
#, c-format
msgid "cannot read object %s"
msgstr "%s 오브ì íŠ¸ë¥¼ ì½ì„ 수 없습니다"
-#: merge-recursive.c:1526
+#: merge-recursive.c:1529
#, c-format
msgid "object %s is not a blob"
msgstr "%s 오브ì íŠ¸ëŠ” ë¸”ë¡­ì´ ì•„ë‹™ë‹ˆë‹¤"
-#: merge-recursive.c:1578
+#: merge-recursive.c:1581
msgid "modify"
msgstr "수정"
-#: merge-recursive.c:1578
+#: merge-recursive.c:1581
msgid "modified"
msgstr "수정ë¨"
-#: merge-recursive.c:1588
+#: merge-recursive.c:1591
msgid "content"
msgstr "ë‚´ìš©"
-#: merge-recursive.c:1595
+#: merge-recursive.c:1598
msgid "add/add"
msgstr "추가/추가"
-#: merge-recursive.c:1629
+#: merge-recursive.c:1632
#, c-format
msgid "Skipped %s (merged same as existing)"
msgstr "건너뛰기: %s (기존과 같게 병합)"
-#: merge-recursive.c:1643
+#: merge-recursive.c:1646
#, c-format
msgid "Auto-merging %s"
msgstr "ìžë™ 병합: %s"
-#: merge-recursive.c:1647 git-submodule.sh:1025
+#: merge-recursive.c:1650 git-submodule.sh:1048
msgid "submodule"
msgstr "하위 모듈"
-#: merge-recursive.c:1648
+#: merge-recursive.c:1651
#, c-format
msgid "CONFLICT (%s): Merge conflict in %s"
msgstr "충ëŒ! (%s): %sì— ë³‘í•© 충ëŒ"
-#: merge-recursive.c:1734
+#: merge-recursive.c:1737
#, c-format
msgid "Removing %s"
msgstr "제거: %s"
-#: merge-recursive.c:1759
+#: merge-recursive.c:1762
msgid "file/directory"
msgstr "파ì¼/디렉터리"
-#: merge-recursive.c:1765
+#: merge-recursive.c:1768
msgid "directory/file"
msgstr "디렉터리/파ì¼"
-#: merge-recursive.c:1770
+#: merge-recursive.c:1773
#, 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:1780
+#: merge-recursive.c:1783
#, c-format
msgid "Adding %s"
msgstr "추가: %s"
-#: merge-recursive.c:1797
+#: merge-recursive.c:1800
msgid "Fatal merge failure, shouldn't happen."
msgstr "치명ì ì¸ 병합 실패, ì¼ì–´ë‚  수 없는 ìƒí™©."
-#: merge-recursive.c:1816
+#: merge-recursive.c:1819
msgid "Already up-to-date!"
msgstr "ì´ë¯¸ ì—…ë°ì´íŠ¸ ìƒíƒœìž…니다!"
-#: merge-recursive.c:1825
+#: merge-recursive.c:1828
#, c-format
msgid "merging of trees %s and %s failed"
msgstr "%s ë° %s íŠ¸ë¦¬ì˜ ë³‘í•©ì´ ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
-#: merge-recursive.c:1855
+#: merge-recursive.c:1858
#, c-format
msgid "Unprocessed path??? %s"
msgstr "처리ë˜ì§€ ì•Šì€ ê²½ë¡œ??? %s"
-#: merge-recursive.c:1903
+#: merge-recursive.c:1906
msgid "Merging:"
msgstr "병합:"
-#: merge-recursive.c:1916
+#: merge-recursive.c:1919
#, c-format
msgid "found %u common ancestor:"
msgid_plural "found %u common ancestors:"
msgstr[0] "ê³¼ê±°ì˜ ê³µí†µ 커밋 %uê°œ 발견:"
-#: merge-recursive.c:1953
+#: merge-recursive.c:1956
msgid "merge returned no commit"
msgstr "병합 ê²°ê³¼ì— ì»¤ë°‹ì´ ì—†ìŠµë‹ˆë‹¤"
-#: merge-recursive.c:2010
+#: merge-recursive.c:2013
#, c-format
msgid "Could not parse object '%s'"
msgstr "'%s' 오브ì íŠ¸ë¥¼ 파싱할 수 없습니다"
-#: merge-recursive.c:2021 builtin/merge.c:645
+#: merge-recursive.c:2024 builtin/merge.c:646
msgid "Unable to write index."
msgstr "ì¸ë±ìŠ¤ë¥¼ 쓸 수 없습니다."
@@ -1068,12 +1090,12 @@ msgstr "경로명세 '%s'ì€(는) ''%.*s' 하위 모듈 ì•ˆì— ìžˆìŠµë‹ˆë‹¤"
msgid "%s: pathspec magic not supported by this command: %s"
msgstr "%s: 경로명세 지시어가 ì´ ëª…ë ¹ì–´ì—ì„œ 지ì›í•˜ì§€ 않습니다: %s"
-#: pathspec.c:432
+#: pathspec.c:433
#, c-format
msgid "pathspec '%s' is beyond a symbolic link"
msgstr "'%s' 경로명세는 심볼릭 ë§í¬ ì•„ëž˜ì— ìžˆìŠµë‹ˆë‹¤"
-#: pathspec.c:441
+#: pathspec.c:442
msgid ""
"There is nothing to exclude from by :(exclude) patterns.\n"
"Perhaps you forgot to add either ':/' or '.' ?"
@@ -1107,173 +1129,258 @@ msgstr ""
"GIT_INDEX_VERSIONì´ ì„¤ì •ë˜ì—ˆì§€ë§Œ, ì´ ê°’ì´ ìž˜ëª»ë˜ì—ˆìŠµë‹ˆë‹¤.\n"
"%i ë²„ì „ì„ ì‚¬ìš©í•©ë‹ˆë‹¤"
-#: refs.c:543 builtin/merge.c:760 builtin/merge.c:871 builtin/merge.c:973
-#: builtin/merge.c:983
+#: refs.c:543 builtin/merge.c:761 builtin/merge.c:872 builtin/merge.c:974
+#: builtin/merge.c:984
#, c-format
msgid "Could not open '%s' for writing"
msgstr "'%s'ì„(를) 쓰기용으로 ì—´ 수 없습니다"
-#: refs/files-backend.c:2359
+#: refs/files-backend.c:2374
#, c-format
msgid "could not delete reference %s: %s"
msgstr "%s ë ˆí¼ëŸ°ìŠ¤ë¥¼ 삭제할 수 없습니다: %s"
-#: refs/files-backend.c:2362
+#: refs/files-backend.c:2377
#, c-format
msgid "could not delete references: %s"
msgstr "ë ˆí¼ëŸ°ìŠ¤ë¥¼ 삭제할 수 없습니다: %s"
-#: refs/files-backend.c:2371
+#: refs/files-backend.c:2386
#, c-format
msgid "could not remove reference %s"
msgstr "%s ë ˆí¼ëŸ°ìŠ¤ë¥¼ 제거할 수 없습니다"
-#: ref-filter.c:245
+#: ref-filter.c:55
#, c-format
-msgid "format: %%(end) atom used without corresponding atom"
-msgstr "형ì‹: %%(end) ì•„í†°ì´ ëŒ€ì‘ë˜ëŠ” 아톰 ì—†ì´ ì‚¬ìš©ë˜ì—ˆìŠµë‹ˆë‹¤"
+msgid "expected format: %%(color:<color>)"
+msgstr "예ìƒí•œ 형ì‹: %%(color:<색>)"
-#: ref-filter.c:704
+#: ref-filter.c:57
+#, c-format
+msgid "unrecognized color: %%(color:%s)"
+msgstr "ì¸ì‹í•  수 없는 색: %%(color:%s)"
+
+#: ref-filter.c:71
+#, c-format
+msgid "unrecognized format: %%(%s)"
+msgstr "ì•Œ 수 없는 형ì‹: %%(%s)"
+
+#: ref-filter.c:77
+#, c-format
+msgid "%%(body) does not take arguments"
+msgstr "%%(body)ì— ì¸ìžë¥¼ 받지 않습니다"
+
+#: ref-filter.c:84
+#, c-format
+msgid "%%(subject) does not take arguments"
+msgstr "%%(subject)ì— ì¸ìžë¥¼ 받지 않습니다"
+
+#: ref-filter.c:101
#, c-format
msgid "positive value expected contents:lines=%s"
msgstr "'contents:lines=%s'ì—ì„œ 0보다 í° ê°’ì´ ì™€ì•¼ 합니다"
-#: ref-filter.c:833
+#: ref-filter.c:103
#, c-format
-msgid "expected format: %%(color:<color>)"
-msgstr "예ìƒí•œ 형ì‹: %%(color:<색>)"
+msgid "unrecognized %%(contents) argument: %s"
+msgstr "ì•Œ 수 없는 %%(contents) ì¸ìž: %s"
-#: ref-filter.c:835
-msgid "unable to parse format"
-msgstr "형ì‹ì„ 파싱할 수 없습니다"
+#: ref-filter.c:113
+#, c-format
+msgid "unrecognized %%(objectname) argument: %s"
+msgstr "ì•Œ 수 없는 %%(objectname) ì¸ìž: %s"
-#: ref-filter.c:870
+#: ref-filter.c:135
#, c-format
msgid "expected format: %%(align:<width>,<position>)"
msgstr "예ìƒí•œ 형ì‹: %%(align:<너비>,<위치>)"
-#: ref-filter.c:893
+#: ref-filter.c:147
#, c-format
-msgid "improper format entered align:%s"
-msgstr "align:%s ìž˜ëª»ëœ í˜•ì‹ì´ ìž…ë ¥ë˜ì—ˆìŠµë‹ˆë‹¤"
+msgid "unrecognized position:%s"
+msgstr "ì¸ì‹í•  수 없는 위치:%s"
-#: ref-filter.c:898
+#: ref-filter.c:151
+#, c-format
+msgid "unrecognized width:%s"
+msgstr "ì¸ì‹í•  수 없는 너비:%s"
+
+#: ref-filter.c:157
+#, c-format
+msgid "unrecognized %%(align) argument: %s"
+msgstr "ì¸ì‹í•  수 없는 %%(align) ì¸ìž:%s"
+
+#: ref-filter.c:161
#, c-format
msgid "positive width expected with the %%(align) atom"
msgstr "%%(align) ì•„í†°ì— ë„ˆë¹„ê°€ 0보다 커야 합니다"
-#: ref-filter.c:1219
+#: ref-filter.c:244
+#, c-format
+msgid "malformed field name: %.*s"
+msgstr "ìž˜ëª»ëœ í˜•ì‹ì˜ í•„ë“œ ì´ë¦„: %.*s"
+
+#: ref-filter.c:270
+#, c-format
+msgid "unknown field name: %.*s"
+msgstr "ì•Œ 수 없는 í•„ë“œ ì´ë¦„: %.*s"
+
+#: ref-filter.c:372
+#, c-format
+msgid "format: %%(end) atom used without corresponding atom"
+msgstr "형ì‹: %%(end) ì•„í†°ì´ ëŒ€ì‘ë˜ëŠ” 아톰 ì—†ì´ ì‚¬ìš©ë˜ì—ˆìŠµë‹ˆë‹¤"
+
+#: ref-filter.c:424
+#, c-format
+msgid "malformed format string %s"
+msgstr "ìž˜ëª»ëœ í˜•ì‹ì˜ 문ìžì—´ %s"
+
+#: ref-filter.c:878
+msgid ":strip= requires a positive integer argument"
+msgstr ":strip= 명령ì—는 0보다 í° ì •ìˆ˜ ì¸ìžê°€ 필요합니다"
+
+#: ref-filter.c:883
+#, c-format
+msgid "ref '%s' does not have %ld components to :strip"
+msgstr "'%s' ë ˆí¼ëŸ°ìŠ¤ì— :stripí•  구성 요소 %ld개가 없습니다"
+
+#: ref-filter.c:1046
+#, c-format
+msgid "unknown %.*s format %s"
+msgstr "ì•Œ 수 없는 %.*s í˜•ì‹ %s"
+
+#: ref-filter.c:1066 ref-filter.c:1097
+#, c-format
+msgid "missing object %s for %s"
+msgstr "없는 오브ì íŠ¸ %s, %sì— ëŒ€í•´"
+
+#: ref-filter.c:1069 ref-filter.c:1100
+#, c-format
+msgid "parse_object_buffer failed on %s for %s"
+msgstr "%sì— parse_object_buffer 실패 (%sì— ëŒ€í•´)"
+
+#: ref-filter.c:1311
#, c-format
msgid "malformed object at '%s'"
msgstr "'%s'ì— ìž˜ëª»ëœ í˜•ì‹ì˜ 오브ì íŠ¸"
-#: ref-filter.c:1561
+#: ref-filter.c:1373
+#, c-format
+msgid "ignoring ref with broken name %s"
+msgstr "ë§ê°€ì§„ ì´ë¦„ %sì— ë ˆí¼ëŸ°ìŠ¤ë¥¼ 무시합니다"
+
+#: ref-filter.c:1378
+#, c-format
+msgid "ignoring broken ref %s"
+msgstr "ë§ê°€ì§„ ë ˆí¼ëŸ°ìŠ¤ %s 무시"
+
+#: ref-filter.c:1651
#, c-format
msgid "format: %%(end) atom missing"
msgstr "형ì‹: %%(end) ì•„í†°ì´ ì—†ìŠµë‹ˆë‹¤"
-#: ref-filter.c:1615
+#: ref-filter.c:1705
#, c-format
msgid "malformed object name %s"
msgstr "ìž˜ëª»ëœ í˜•ì‹ì˜ 오브ì íŠ¸ ì´ë¦„ %s"
-#: remote.c:756
+#: remote.c:745
#, c-format
msgid "Cannot fetch both %s and %s to %s"
msgstr "%s ë° %sì„(를) ëª¨ë‘ %sì— ê°€ì ¸ì˜¬ 수 없습니다"
-#: remote.c:760
+#: remote.c:749
#, c-format
msgid "%s usually tracks %s, not %s"
msgstr "%sì€(는) 보통 %sì„(를) 추ì í•˜ê³ , %sì„(를) 추ì í•˜ì§€ 않습니다"
-#: remote.c:764
+#: remote.c:753
#, c-format
msgid "%s tracks both %s and %s"
msgstr "%sì€(는) %s ë° %s ëª¨ë‘ ì¶”ì í•©ë‹ˆë‹¤"
-#: remote.c:772
+#: remote.c:761
msgid "Internal error"
msgstr "내부 오류"
-#: remote.c:1687 remote.c:1730
+#: remote.c:1677 remote.c:1720
msgid "HEAD does not point to a branch"
msgstr "HEAD가 브랜치를 가리키지 않습니다"
-#: remote.c:1696
+#: remote.c:1686
#, c-format
msgid "no such branch: '%s'"
msgstr "그런 브랜치가 없습니다: '%s'"
-#: remote.c:1699
+#: remote.c:1689
#, c-format
msgid "no upstream configured for branch '%s'"
msgstr "'%s' ë¸Œëžœì¹˜ì— ëŒ€í•´ ì—…ìŠ¤íŠ¸ë¦¼ì„ ì„¤ì •í•˜ì§€ 않았습니다"
-#: remote.c:1705
+#: remote.c:1695
#, c-format
msgid "upstream branch '%s' not stored as a remote-tracking branch"
msgstr "업스트림 '%s' 브랜치가 리모트 ì¶”ì  ë¸Œëžœì¹˜ë¡œ 저장ë˜ì§€ 않았습니다"
-#: remote.c:1720
+#: remote.c:1710
#, c-format
msgid "push destination '%s' on remote '%s' has no local tracking branch"
msgstr "리모트 '%2$s'ì˜ í‘¸ì‹œ ëŒ€ìƒ '%1$s'ì— ë¡œì»¬ ì¶”ì  ë¸Œëžœì¹˜ê°€ 없습니다"
-#: remote.c:1735
+#: remote.c:1725
#, c-format
msgid "branch '%s' has no remote for pushing"
msgstr "'%s' ë¸Œëžœì¹˜ì— í‘¸ì‹œ 리모트가 없습니다"
-#: remote.c:1746
+#: remote.c:1736
#, c-format
msgid "push refspecs for '%s' do not include '%s'"
msgstr "'%s'ì— ëŒ€í•œ 푸시 ë ˆí¼ëŸ°ìŠ¤ëª…ì„¸ì— '%s'ì´(ê°€) 들어 있지 않습니다"
-#: remote.c:1759
+#: remote.c:1749
msgid "push has no destination (push.default is 'nothing')"
msgstr "í‘¸ì‹œì˜ ëŒ€ìƒì´ 없습니다 (push.defaultê°€ 'nothing'입니다)"
-#: remote.c:1781
+#: remote.c:1771
msgid "cannot resolve 'simple' push to a single destination"
msgstr "í•˜ë‚˜ì˜ ëŒ€ìƒì— 대해 'simple' 푸시를 처리할 수 없습니다"
-#: remote.c:2083
+#: remote.c:2073
#, c-format
msgid "Your branch is based on '%s', but the upstream is gone.\n"
msgstr "현재 브랜치가 '%s' 기반ì´ì§€ë§Œ, ì—…ìŠ¤íŠ¸ë¦¼ì´ ì—†ì–´ì¡ŒìŠµë‹ˆë‹¤.\n"
-#: remote.c:2087
+#: remote.c:2077
msgid " (use \"git branch --unset-upstream\" to fixup)\n"
msgstr " (바로잡으려면 \"git branch --unset-upstream\"ì„ ì‚¬ìš©í•˜ì‹­ì‹œì˜¤)\n"
-#: remote.c:2090
+#: remote.c:2080
#, c-format
msgid "Your branch is up-to-date with '%s'.\n"
msgstr "브랜치가 '%s'ì— ë§žê²Œ ì—…ë°ì´íŠ¸ëœ ìƒíƒœìž…니다.\n"
-#: remote.c:2094
+#: remote.c:2084
#, c-format
msgid "Your branch is ahead of '%s' by %d commit.\n"
msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
msgstr[0] "브랜치가 '%s'보다 %dê°œ ì»¤ë°‹ë§Œí¼ ì•žì— ìžˆìŠµë‹ˆë‹¤.\n"
-#: remote.c:2100
+#: remote.c:2090
msgid " (use \"git push\" to publish your local commits)\n"
msgstr " (ë¡œì»¬ì— ìžˆëŠ” ì»¤ë°‹ì„ ì œì¶œí•˜ë ¤ë©´ \"git push\"를 사용하십시오)\n"
-#: remote.c:2103
+#: remote.c:2093
#, c-format
msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
msgid_plural ""
"Your branch is behind '%s' by %d commits, and can be fast-forwarded.\n"
msgstr[0] "브랜치가 '%s'보다 %dê°œ 커밋 ë’¤ì— ìžˆê³ , 앞으로 ëŒë¦´ 수 있습니다.\n"
-#: remote.c:2111
+#: remote.c:2101
msgid " (use \"git pull\" to update your local branch)\n"
msgstr " (로컬 브랜치를 ì—…ë°ì´íŠ¸í•˜ë ¤ë©´ \"git pull\"ì„ ì‚¬ìš©í•˜ì‹­ì‹œì˜¤)\n"
-#: remote.c:2114
+#: remote.c:2104
#, c-format
msgid ""
"Your branch and '%s' have diverged,\n"
@@ -1285,29 +1392,29 @@ msgstr[0] ""
"현재 브랜치와 '%s'ì´(ê°€) ê°ˆë¼ì¡ŒìŠµë‹ˆë‹¤,\n"
"다른 ì»¤ë°‹ì´ ê°ê° %d개와 %dê°œ 있습니다.\n"
-#: remote.c:2124
+#: remote.c:2114
msgid " (use \"git pull\" to merge the remote branch into yours)\n"
msgstr ""
" (ë¦¬ëª¨íŠ¸ì˜ ë¸Œëžœì¹˜ë¥¼ 현재 브랜치로 병합하려면 \"git pull\"ì„ ì‚¬ìš©í•˜ì‹­ì‹œì˜¤)\n"
-#: revision.c:2193
+#: revision.c:2131
msgid "your current branch appears to be broken"
msgstr "현재 브랜치가 ë§ê°€ì§„ 것처럼 보입니다"
-#: revision.c:2196
+#: revision.c:2134
#, c-format
msgid "your current branch '%s' does not have any commits yet"
msgstr "현재 '%s' ë¸Œëžœì¹˜ì— ì•„ì§ ì•„ë¬´ ì»¤ë°‹ë„ ì—†ìŠµë‹ˆë‹¤"
-#: revision.c:2390
+#: revision.c:2328
msgid "--first-parent is incompatible with --bisect"
msgstr "--first-parent ì˜µì…˜ì€ --bisect 옵션과 호환ë˜ì§€ 않습니다"
-#: run-command.c:90
+#: run-command.c:92
msgid "open /dev/null failed"
msgstr "/dev/null 열기 실패"
-#: run-command.c:92
+#: run-command.c:94
#, c-format
msgid "dup2(%d,%d) failed"
msgstr "dup2(%d,%d) 실패"
@@ -1331,7 +1438,7 @@ msgstr ""
msgid "the receiving end does not support --atomic push"
msgstr "받는 쪽ì—ì„œ --atomic 푸시를 지ì›í•˜ì§€ 않습니다"
-#: sequencer.c:183
+#: sequencer.c:174
msgid ""
"after resolving the conflicts, mark the corrected paths\n"
"with 'git add <paths>' or 'git rm <paths>'"
@@ -1339,7 +1446,7 @@ msgstr ""
"ì´ ì¶©ëŒì„ í•´ê²°í•œ ë’¤ì—, ë°”ë¡œìž¡ì€ ê²½ë¡œë¥¼\n"
"'git add <경로>' ë˜ëŠ” 'git rm <경로>'ë¡œ 표시하십시오"
-#: sequencer.c:186
+#: sequencer.c:177
msgid ""
"after resolving the conflicts, mark the corrected paths\n"
"with 'git add <paths>' or 'git rm <paths>'\n"
@@ -1349,230 +1456,244 @@ msgstr ""
"'git add <경로>' ë˜ëŠ” 'git rm <경로>'ë¡œ 표시하십시오.\n"
"그리고 ê²°ê³¼ë¬¼ì„ 'git commit'으로 커밋하십시오"
-#: sequencer.c:199 sequencer.c:842 sequencer.c:922
+#: sequencer.c:190 sequencer.c:833 sequencer.c:913
#, c-format
msgid "Could not write to %s"
msgstr "%sì— ì“¸ 수 없습니다"
-#: sequencer.c:202
+#: sequencer.c:193
#, c-format
msgid "Error wrapping up %s"
msgstr "%s ìž ê·¸ëŠ”ë° ì˜¤ë¥˜"
-#: sequencer.c:217
+#: sequencer.c:208
msgid "Your local changes would be overwritten by cherry-pick."
msgstr "로컬 변경 ì‚¬í•­ì„ cherry-pick ë•Œë¬¸ì— ë®ì–´ 쓰게 ë©ë‹ˆë‹¤."
-#: sequencer.c:219
+#: sequencer.c:210
msgid "Your local changes would be overwritten by revert."
msgstr "로컬 변경 ì‚¬í•­ì„ revert ë•Œë¬¸ì— ë®ì–´ 쓰게 ë©ë‹ˆë‹¤."
-#: sequencer.c:222
+#: sequencer.c:213
msgid "Commit your changes or stash them to proceed."
msgstr "변경 ì‚¬í•­ì„ ìŠ¤í…Œì´ì§•í•˜ê±°ë‚˜ 스태시한 ë‹¤ìŒ ê³„ì†í•˜ì‹­ì‹œì˜¤."
#. TRANSLATORS: %s will be "revert" or "cherry-pick"
-#: sequencer.c:309
+#: sequencer.c:300
#, c-format
msgid "%s: Unable to write new index file"
msgstr "%s: 새 ì¸ë±ìŠ¤ 파ì¼ì„ 쓸 수 없습니다"
-#: sequencer.c:327
+#: sequencer.c:318
msgid "Could not resolve HEAD commit\n"
msgstr "HEAD ì»¤ë°‹ì„ ì²˜ë¦¬í•  수 없습니다\n"
-#: sequencer.c:347
+#: sequencer.c:338
msgid "Unable to update cache tree\n"
msgstr "ìºì‹œ 트리를 ì—…ë°ì´íŠ¸í•  수 없습니다\n"
-#: sequencer.c:399
+#: sequencer.c:390
#, c-format
msgid "Could not parse commit %s\n"
msgstr "%s ì»¤ë°‹ì„ íŒŒì‹±í•  수 없습니다\n"
-#: sequencer.c:404
+#: sequencer.c:395
#, c-format
msgid "Could not parse parent commit %s\n"
msgstr "%s ì´ì „ ì»¤ë°‹ì„ íŒŒì‹±í•  수 없습니다\n"
-#: sequencer.c:469
+#: sequencer.c:460
msgid "Your index file is unmerged."
msgstr "ì¸ë±ìŠ¤ 파ì¼ì´ 병합ë˜ì§€ 않았습니다."
-#: sequencer.c:488
+#: sequencer.c:479
#, c-format
msgid "Commit %s is a merge but no -m option was given."
msgstr "%s ì»¤ë°‹ì€ ë³‘í•©ì´ì§€ë§Œ -m ì˜µì…˜ì´ ì£¼ì–´ì§€ì§€ 않았습니다."
# FIXME: "parent %d" 번호가 무슨 ì˜ë¯¸?
-#: sequencer.c:496
+#: sequencer.c:487
#, c-format
msgid "Commit %s does not have parent %d"
msgstr "Commit %s ì»¤ë°‹ì— ì´ì „ 커밋 %dì´(ê°€) 없습니다"
-#: sequencer.c:500
+#: sequencer.c:491
#, c-format
msgid "Mainline was specified but commit %s is not a merge."
msgstr "ë©”ì¸ë¼ì¸ì„ 지정했지만 %s ì»¤ë°‹ì´ ë³‘í•© ì»¤ë°‹ì´ ì•„ë‹™ë‹ˆë‹¤."
#. TRANSLATORS: The first %s will be "revert" or
#. "cherry-pick", the second %s a SHA1
-#: sequencer.c:513
+#: sequencer.c:504
#, c-format
msgid "%s: cannot parse parent commit %s"
msgstr "%s: %s ì´ì „ ì»¤ë°‹ì„ íŒŒì‹±í•  수 없습니다"
-#: sequencer.c:517
+#: sequencer.c:508
#, c-format
msgid "Cannot get commit message for %s"
msgstr "%sì— ëŒ€í•œ 커밋 메시지를 가져올 수 없습니다"
-#: sequencer.c:603
+#: sequencer.c:594
#, c-format
msgid "could not revert %s... %s"
msgstr "다ìŒì„ ë˜ëŒë¦´(revert) 수 없습니다: %s... %s"
-#: sequencer.c:604
+#: sequencer.c:595
#, c-format
msgid "could not apply %s... %s"
msgstr "다ìŒì„ ì ìš©í• (apply) 수 없습니다: %s... %s"
-#: sequencer.c:639
+#: sequencer.c:630
msgid "empty commit set passed"
msgstr "빈 커밋 모ìŒì„ 건너 ëœë‹ˆë‹¤"
-#: sequencer.c:647
+#: sequencer.c:638
#, c-format
msgid "git %s: failed to read the index"
msgstr "git %s: ì¸ë±ìŠ¤ ì½ê¸°ì— 실패했습니다"
-#: sequencer.c:651
+#: sequencer.c:642
#, c-format
msgid "git %s: failed to refresh the index"
msgstr "git %s: ì¸ë±ìŠ¤ 새로 ê³ ì¹¨ì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
-#: sequencer.c:711
+#: sequencer.c:702
#, c-format
msgid "Cannot %s during a %s"
msgstr "%2$s ë™ì•ˆ %1$s í•  수 없습니다"
-#: sequencer.c:733
+#: sequencer.c:724
#, c-format
msgid "Could not parse line %d."
msgstr "%d번 ì¤„ì„ íŒŒì‹±í•  수 없습니다."
-#: sequencer.c:738
+#: sequencer.c:729
msgid "No commits parsed."
msgstr "파싱한 ì»¤ë°‹ì´ ì—†ìŠµë‹ˆë‹¤."
-#: sequencer.c:750
+#: sequencer.c:741
#, c-format
msgid "Could not open %s"
msgstr "%sì„(를) ì—´ 수 없습니다"
-#: sequencer.c:754
+#: sequencer.c:745
#, c-format
msgid "Could not read %s."
msgstr "%sì„(를) ì½ì„ 수 없습니다."
-#: sequencer.c:761
+#: sequencer.c:752
#, c-format
msgid "Unusable instruction sheet: %s"
msgstr "사용 불가능 ì¸ìŠ¤íŠ¸ëŸ­ì…˜ 파ì¼: %s"
-#: sequencer.c:791
+#: sequencer.c:782
#, c-format
msgid "Invalid key: %s"
msgstr "ìž˜ëª»ëœ í‚¤: %s"
-#: sequencer.c:794 builtin/pull.c:47 builtin/pull.c:49
+#: sequencer.c:785 builtin/pull.c:50 builtin/pull.c:52
#, c-format
msgid "Invalid value for %s: %s"
msgstr "%sì˜ ê°’ì´ ì˜¬ë°”ë¥´ì§€ 않습니다: %s"
-#: sequencer.c:804
+#: sequencer.c:795
#, c-format
msgid "Malformed options sheet: %s"
msgstr "형ì‹ì´ ìž˜ëª»ëœ ì˜µì…˜ 파ì¼: %s"
-#: sequencer.c:823
+#: sequencer.c:814
msgid "a cherry-pick or revert is already in progress"
msgstr "ì´ë¯¸ 커밋 빼오기(cherry-pick) ë˜ëŠ” ë˜ëŒë¦¬ê¸°(revert)ê°€ 진행 중입니다"
-#: sequencer.c:824
+#: sequencer.c:815
msgid "try \"git cherry-pick (--continue | --quit | --abort)\""
msgstr "\"git cherry-pick (--continue | --quit | --abort)\" ëª…ë ¹ì„ í•´ 보십시오"
-#: sequencer.c:828
+#: sequencer.c:819
#, c-format
msgid "Could not create sequencer directory %s"
msgstr "%s 시퀀서 디렉터리를 만들 수 없습니다"
-#: sequencer.c:844 sequencer.c:926
+#: sequencer.c:835 sequencer.c:917
#, c-format
msgid "Error wrapping up %s."
msgstr "%s ìž ê·¸ëŠ”ë° ì˜¤ë¥˜."
-#: sequencer.c:863 sequencer.c:996
+#: sequencer.c:854 sequencer.c:987
msgid "no cherry-pick or revert in progress"
msgstr "빼오기(cherry-pick) ë˜ëŠ” ë˜ëŒë¦¬ê¸°(revert)ê°€ 진행 중ì´ì§€ 않습니다"
-#: sequencer.c:865
+#: sequencer.c:856
msgid "cannot resolve HEAD"
msgstr "HEAD를 구해 올 수 없습니다"
-#: sequencer.c:867
+#: sequencer.c:858
msgid "cannot abort from a branch yet to be born"
msgstr "새로 만들고 있는 브랜치ì—ì„œ 중지할 수 없습니다"
-#: sequencer.c:887 builtin/apply.c:4287
+#: sequencer.c:878 builtin/apply.c:4287
#, c-format
msgid "cannot open %s: %s"
msgstr "%sì„(를) ì—´ 수 없습니다: %s"
-#: sequencer.c:890
+#: sequencer.c:881
#, c-format
msgid "cannot read %s: %s"
msgstr "%sì„(를) ì½ì„ 수 없습니다: %s"
-#: sequencer.c:891
+#: sequencer.c:882
msgid "unexpected end of file"
msgstr "예ìƒì¹˜ 못하게 파ì¼ì´ ë났습니다"
-#: sequencer.c:897
+#: sequencer.c:888
#, c-format
msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
msgstr "빼오기 ì „ì— ì €ìž¥í•œ HEAD 파ì¼ì´('%s') ì†ìƒë˜ì—ˆìŠµë‹ˆë‹¤"
-#: sequencer.c:919
+#: sequencer.c:910
#, c-format
msgid "Could not format %s."
msgstr "%sì— í¬ë§¤íŒ…í•  수 없습니다."
-#: sequencer.c:1064
+#: sequencer.c:1055
#, c-format
msgid "%s: can't cherry-pick a %s"
msgstr "%s: %s ì»¤ë°‹ì„ ë¹¼ì˜¬ 수 없습니다"
-#: sequencer.c:1067
+#: sequencer.c:1058
#, c-format
msgid "%s: bad revision"
msgstr "%s: ìž˜ëª»ëœ ë¦¬ë¹„ì „"
-#: sequencer.c:1101
+#: sequencer.c:1092
msgid "Can't revert as initial commit"
msgstr "ìµœì´ˆì˜ ì»¤ë°‹ì„ ë˜ëŒë¦´ 수 없습니다"
-#: sequencer.c:1102
+#: sequencer.c:1093
msgid "Can't cherry-pick into empty head"
msgstr "빈 헤드로 ì»¤ë°‹ì„ ë¹¼ì˜¬ 수 없습니다."
-#: setup.c:248
+#: setup.c:246
#, c-format
msgid "failed to read %s"
msgstr "%sì„(를) ì½ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
-#: sha1_name.c:463
+#: sha1_file.c:1080
+msgid "offset before end of packfile (broken .idx?)"
+msgstr "ì˜¤í”„ì…‹ì´ ë¬¶ìŒ íŒŒì¼ ì•žìž…ë‹ˆë‹¤ (ë§ê°€ì§„ .idx?)"
+
+#: sha1_file.c:2459
+#, c-format
+msgid "offset before start of pack index for %s (corrupt index?)"
+msgstr "ì˜¤í”„ì…‹ì´ %sì˜ ë¬¶ìŒ ì¸ë±ìŠ¤ 시작보다 앞입니다 (ë§ê°€ì§„ ì¸ë±ìŠ¤?)"
+
+#: sha1_file.c:2463
+#, c-format
+msgid "offset beyond end of pack index for %s (truncated index?)"
+msgstr "ì˜¤í”„ì…‹ì´ %sì˜ ë¬¶ìŒ ì¸ë±ìŠ¤ ë보다 뒤입니다 (ë§ê°€ì§„ ì¸ë±ìŠ¤?)"
+
+#: sha1_name.c:462
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"
@@ -1594,61 +1715,85 @@ msgstr ""
"확ì¸í•´ 보시고 잘못 만들어진 것ì´ë©´ 지우십시오. ì´ ë©”ì‹œì§€ë¥¼ ë³´ê³  싶지\n"
"않으면 \"git config advice.objectNameWarning false\" ëª…ë ¹ì„ ì‚¬ìš©í•˜ì‹­ì‹œì˜¤."
-#: submodule.c:61 submodule.c:95
+#: submodule.c:62 submodule.c:96
msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
msgstr ""
"병합하지 ì•Šì€ .gitmodules를 바꿀 수 없습니다. 병합 충ëŒì„ 먼저 해결하십시오"
-#: submodule.c:65 submodule.c:99
+#: submodule.c:66 submodule.c:100
#, c-format
msgid "Could not find section in .gitmodules where path=%s"
msgstr "경로가 %sì¼ ë•Œ .gitmodulesì˜ ì„¹ì…˜ì„ ì°¾ì„ ìˆ˜ 없습니다"
-#: submodule.c:73
+#: submodule.c:74
#, c-format
msgid "Could not update .gitmodules entry %s"
msgstr ".gitmodules 항목 %sì„(를) ì—…ë°ì´íŠ¸í•  수 없습니다"
-#: submodule.c:106
+#: submodule.c:107
#, c-format
msgid "Could not remove .gitmodules entry for %s"
msgstr "%sì— ëŒ€í•œ .gitmodules í•­ëª©ì„ ì œê±°í•  수 없습니다"
-#: submodule.c:117
+#: submodule.c:118
msgid "staging updated .gitmodules failed"
msgstr "ì—…ë°ì´íŠ¸í•œ .gitmodules를 커밋할 사항으로 í‘œì‹œí•˜ëŠ”ë° ì‹¤íŒ¨"
-#: submodule.c:1040
+#: trailer.c:237
#, c-format
-msgid "Could not set core.worktree in %s"
-msgstr "%sì—ì„œ core.worktree를 설정할 수 없습니다"
+msgid "running trailer command '%s' failed"
+msgstr "트레ì¼ëŸ¬ 명령 '%s' 실행 실패"
-#: trailer.c:491 trailer.c:495 trailer.c:499 trailer.c:553 trailer.c:557
-#: trailer.c:561
+#: trailer.c:492 trailer.c:496 trailer.c:500 trailer.c:554 trailer.c:558
+#: trailer.c:562
#, c-format
msgid "unknown value '%s' for key '%s'"
msgstr "알 수 없는 값 '%s', 키 '%s'"
-#: trailer.c:543 trailer.c:548 builtin/remote.c:296
+#: trailer.c:544 trailer.c:549 builtin/remote.c:289
#, c-format
msgid "more than one %s"
msgstr "%sì´(ê°€) 여러개입니다"
-#: trailer.c:581
+#: trailer.c:582
#, c-format
msgid "empty trailer token in trailer '%.*s'"
msgstr "트레ì¼ëŸ¬ '%.*s'ì—ì„œ 빈 트레ì¼ëŸ¬ 토í°"
-#: trailer.c:701
+#: trailer.c:702
#, c-format
msgid "could not read input file '%s'"
msgstr "'%s' ìž…ë ¥ 파ì¼ì„ ì½ì„ 수 없습니다"
-#: trailer.c:704
+#: trailer.c:705
msgid "could not read from stdin"
msgstr "표준 ìž…ë ¥ì—ì„œ ì½ì„ 수 없습니다"
-#: transport-helper.c:1025
+#: trailer.c:857 builtin/am.c:42
+#, c-format
+msgid "could not stat %s"
+msgstr "%sì— ëŒ€í•´ stat()í•  수 없습니다"
+
+#: trailer.c:859
+#, c-format
+msgid "file %s is not a regular file"
+msgstr "'%s' 파ì¼ì´ ì¼ë°˜ 파ì¼ì´ 아닙니다"
+
+#: trailer.c:861
+#, c-format
+msgid "file %s is not writable by user"
+msgstr "사용ìžê°€ %s 파ì¼ì— 쓸 수 없습니다"
+
+#: trailer.c:873
+msgid "could not open temporary file"
+msgstr "ìž„ì‹œ 파ì¼ì„ ì—´ 수 없습니다: %s"
+
+#: trailer.c:912
+#, c-format
+msgid "could not rename temporary file to %s"
+msgstr "ìž„ì‹œ íŒŒì¼ ì´ë¦„ì„ '%s'(으)ë¡œ 바꿀 수 없습니다"
+
+#: transport-helper.c:1041
#, c-format
msgid "Could not read ref %s"
msgstr "%s ë ˆí¼ëŸ°ìŠ¤ë¥¼ ì½ì„ 수 없습니다"
@@ -1686,47 +1831,47 @@ msgstr "ìž˜ëª»ëœ í¬íŠ¸ 번호"
msgid "invalid '..' path segment"
msgstr "경로ì—ì„œ ìž˜ëª»ëœ '..' 부분"
-#: wrapper.c:219 wrapper.c:362
+#: wrapper.c:222 wrapper.c:381
#, c-format
msgid "could not open '%s' for reading and writing"
msgstr "ì½ê¸°ì™€ 쓰기용으로 '%s'ì„(를) ì—´ 수 없습니다"
-#: wrapper.c:221 wrapper.c:364
+#: wrapper.c:224 wrapper.c:383
#, c-format
msgid "could not open '%s' for writing"
msgstr "'%s'ì„(를) 쓰기용으로 ì—´ 수 없습니다"
-#: wrapper.c:223 wrapper.c:366 builtin/am.c:338 builtin/commit.c:1691
-#: builtin/merge.c:1074 builtin/pull.c:380
+#: wrapper.c:226 wrapper.c:385 builtin/am.c:323 builtin/commit.c:1691
+#: builtin/merge.c:1075 builtin/pull.c:387
#, c-format
msgid "could not open '%s' for reading"
msgstr "'%s'ì„(를) ì½ê¸°ìš©ìœ¼ë¡œ ì—´ 수 없습니다"
-#: wrapper.c:579
+#: wrapper.c:611
#, c-format
msgid "unable to access '%s': %s"
msgstr "'%s'ì— ì ‘ê·¼í•  수 없습니다: %s"
-#: wrapper.c:600
+#: wrapper.c:632
#, c-format
msgid "unable to access '%s'"
msgstr "'%s'ì— ì ‘ê·¼í•  수 없습니다"
-#: wrapper.c:608
+#: wrapper.c:640
msgid "unable to get current working directory"
msgstr "현재 작업 디렉터리를 가져올 수 없습니다"
-#: wrapper.c:635
+#: wrapper.c:667
#, c-format
msgid "could not open %s for writing"
msgstr "%sì„(를) 쓰기용으로 ì—´ 수 없습니다"
-#: wrapper.c:646 builtin/am.c:425
+#: wrapper.c:678 builtin/am.c:410
#, c-format
msgid "could not write to %s"
msgstr "%sì— ì“¸ 수 없습니다"
-#: wrapper.c:652
+#: wrapper.c:684
#, c-format
msgid "could not close %s"
msgstr "%sì„(를) ë‹«ì„ ìˆ˜ 없습니다"
@@ -2187,7 +2332,7 @@ msgstr "ì—†ìŒ"
msgid "behind "
msgstr "ë’¤ì—: "
-#: compat/precompose_utf8.c:56 builtin/clone.c:408
+#: compat/precompose_utf8.c:57 builtin/clone.c:413
#, c-format
msgid "failed to unlink '%s'"
msgstr "'%s' íŒŒì¼ ì‚­ì œì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
@@ -2214,7 +2359,7 @@ msgstr "'%s' 제거\n"
msgid "Unstaged changes after refreshing the index:"
msgstr "ì¸ë±ìŠ¤ë¥¼ 새로 고친 ë‹¤ìŒ ì»¤ë°‹ 표시하지 ì•Šì€ ë³€ê²½ 사항:"
-#: builtin/add.c:194 builtin/rev-parse.c:796
+#: builtin/add.c:194 builtin/rev-parse.c:797
msgid "Could not read the index"
msgstr "ì¸ë±ìŠ¤ë¥¼ ì½ì„ 수 없습니다"
@@ -2249,15 +2394,15 @@ msgstr "'%s'ì„(를) ì ìš©í•  수 없습니다"
msgid "The following paths are ignored by one of your .gitignore files:\n"
msgstr "ë‹¤ìŒ ê²½ë¡œëŠ” .gitignore íŒŒì¼ ì¤‘ 하나 ë•Œë¬¸ì— ë¬´ì‹œí•©ë‹ˆë‹¤:\n"
-#: builtin/add.c:249 builtin/clean.c:894 builtin/fetch.c:108 builtin/mv.c:110
-#: builtin/prune-packed.c:55 builtin/pull.c:182 builtin/push.c:543
-#: builtin/remote.c:1345 builtin/rm.c:268 builtin/send-pack.c:162
+#: builtin/add.c:249 builtin/clean.c:870 builtin/fetch.c:112 builtin/mv.c:111
+#: builtin/prune-packed.c:55 builtin/pull.c:189 builtin/push.c:511
+#: builtin/remote.c:1330 builtin/rm.c:268 builtin/send-pack.c:162
msgid "dry run"
msgstr "가짜로 실행"
-#: builtin/add.c:250 builtin/apply.c:4571 builtin/check-ignore.c:19
+#: builtin/add.c:250 builtin/apply.c:4561 builtin/check-ignore.c:19
#: builtin/commit.c:1322 builtin/count-objects.c:85 builtin/fsck.c:558
-#: builtin/log.c:1645 builtin/mv.c:109 builtin/read-tree.c:114
+#: builtin/log.c:1651 builtin/mv.c:110 builtin/read-tree.c:114
msgid "be verbose"
msgstr "ìžì„¸ížˆ 표시"
@@ -2265,7 +2410,7 @@ msgstr "ìžì„¸ížˆ 표시"
msgid "interactive picking"
msgstr "대화ì‹ìœ¼ë¡œ 고릅니다"
-#: builtin/add.c:253 builtin/checkout.c:1153 builtin/reset.c:286
+#: builtin/add.c:253 builtin/checkout.c:1155 builtin/reset.c:286
msgid "select hunks interactively"
msgstr "대화ì‹ìœ¼ë¡œ ë³€ê²½ëœ ë¶€ë¶„ì„ ì„ íƒí•©ë‹ˆë‹¤"
@@ -2333,136 +2478,131 @@ msgstr "아무 ê²ƒë„ ì§€ì •í•˜ì§€ 않았으므로 아무 ê²ƒë„ ì¶”ê°€í•˜ì§€ ì•
msgid "Maybe you wanted to say 'git add .'?\n"
msgstr "'git add .' ëª…ë ¹ì„ ì‹¤í–‰í•˜ë ¤ê³  í•œ 것 아니었습니까?\n"
-#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:938
-#: builtin/commit.c:337 builtin/mv.c:130 builtin/reset.c:235 builtin/rm.c:298
-#: builtin/submodule--helper.c:40
+#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:914
+#: builtin/commit.c:337 builtin/mv.c:131 builtin/reset.c:235 builtin/rm.c:298
+#: builtin/submodule--helper.c:35
msgid "index file corrupt"
msgstr "ì¸ë±ìŠ¤ 파ì¼ì´ ì†ìƒë˜ì—ˆìŠµë‹ˆë‹¤"
-#: builtin/add.c:439 builtin/apply.c:4669 builtin/mv.c:279 builtin/rm.c:430
+#: builtin/add.c:439 builtin/apply.c:4659 builtin/mv.c:280 builtin/rm.c:430
msgid "Unable to write new index file"
msgstr "새 ì¸ë±ìŠ¤ 파ì¼ì— 쓸 수 없습니다"
-#: builtin/am.c:42
-#, c-format
-msgid "could not stat %s"
-msgstr "%sì— ëŒ€í•´ stat()í•  수 없습니다"
-
-#: builtin/am.c:271 builtin/commit.c:738 builtin/merge.c:1077
+#: builtin/am.c:256 builtin/commit.c:738 builtin/merge.c:1078
#, c-format
msgid "could not read '%s'"
msgstr "'%s'ì—ì„œ ì½ì„ 수 없습니다"
-#: builtin/am.c:445
+#: builtin/am.c:430
msgid "could not parse author script"
msgstr "ìž‘ì„±ìž ìŠ¤í¬ë¦½íŠ¸ë¥¼ 파싱할 수 없습니다"
-#: builtin/am.c:522
+#: builtin/am.c:507
#, c-format
msgid "'%s' was deleted by the applypatch-msg hook"
msgstr "applypatch-msg í›… ë•Œë¬¸ì— '%s'ì´(ê°€) ì‚­ì œë˜ì—ˆìŠµë‹ˆë‹¤."
-#: builtin/am.c:563 builtin/notes.c:300
+#: builtin/am.c:548 builtin/notes.c:300
#, c-format
msgid "Malformed input line: '%s'."
msgstr "ìž˜ëª»ëœ í˜•ì‹ì˜ ìž…ë ¥ 줄: '%s'."
-#: builtin/am.c:600 builtin/notes.c:315
+#: builtin/am.c:585 builtin/notes.c:315
#, c-format
msgid "Failed to copy notes from '%s' to '%s'"
msgstr "'%s'ì—ì„œ '%s'(으)ë¡œ 노트를 ë³µì‚¬í•˜ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
-#: builtin/am.c:626
+#: builtin/am.c:611
msgid "fseek failed"
msgstr "fseek 실패"
-#: builtin/am.c:787 builtin/am.c:875
+#: builtin/am.c:772 builtin/am.c:860
#, c-format
msgid "could not open '%s' for reading: %s"
msgstr "'%s'ì„(를) ì½ê¸°ìš©ìœ¼ë¡œ ì—´ 수 없습니다: %s"
-#: builtin/am.c:794
+#: builtin/am.c:779
#, c-format
msgid "could not open '%s' for writing: %s"
msgstr "'%s'ì„(를) 쓰기용으로 ì—´ 수 없습니다: %s"
-#: builtin/am.c:803
+#: builtin/am.c:788
#, c-format
msgid "could not parse patch '%s'"
msgstr "'%s' 패치를 파싱할 수 없습니다"
-#: builtin/am.c:868
+#: builtin/am.c:853
msgid "Only one StGIT patch series can be applied at once"
msgstr "í•œë²ˆì— í•˜ë‚˜ì˜ StGIT 패치 시리즈만 ì ìš©í•  수 있습니다"
-#: builtin/am.c:916
+#: builtin/am.c:901
msgid "invalid timestamp"
msgstr "ì‹œê°ì´ 잘못ë˜ì—ˆìŠµë‹ˆë‹¤"
-#: builtin/am.c:919 builtin/am.c:927
+#: builtin/am.c:904 builtin/am.c:912
msgid "invalid Date line"
msgstr "Date ì¤„ì´ ìž˜ëª»ë˜ì—ˆìŠµë‹ˆë‹¤"
-#: builtin/am.c:924
+#: builtin/am.c:909
msgid "invalid timezone offset"
msgstr "시간대 ì˜¤í”„ì…‹ì´ ìž˜ëª»ë˜ì—ˆìŠµë‹ˆë‹¤"
-#: builtin/am.c:1011
+#: builtin/am.c:996
msgid "Patch format detection failed."
msgstr "패치 í˜•ì‹ ê²€ìƒ‰ì´ ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤."
-#: builtin/am.c:1016 builtin/clone.c:373
+#: builtin/am.c:1001 builtin/clone.c:378
#, c-format
msgid "failed to create directory '%s'"
msgstr "'%s' 디렉터리 만들기가 실패했습니다"
-#: builtin/am.c:1020
+#: builtin/am.c:1005
msgid "Failed to split patches."
msgstr "패치를 ìª¼ê°œëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤."
-#: builtin/am.c:1152 builtin/commit.c:363
+#: builtin/am.c:1137 builtin/commit.c:363
msgid "unable to write index file"
msgstr "ì¸ë±ìŠ¤ 파ì¼ì„ 쓸 수 없습니다"
-#: builtin/am.c:1203
+#: builtin/am.c:1188
#, c-format
msgid "When you have resolved this problem, run \"%s --continue\"."
msgstr "ì´ ë¬¸ì œë¥¼ í•´ê²°í–ˆì„ ë•Œ \"%s --continue\"를 실행하십시오."
-#: builtin/am.c:1204
+#: builtin/am.c:1189
#, c-format
msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
msgstr "ì´ íŒ¨ì¹˜ë¥¼ 건너뛰려면, ê·¸ 대신 \"%s --skip\"ì„ ì‹¤í–‰í•˜ì‹­ì‹œì˜¤."
-#: builtin/am.c:1205
+#: builtin/am.c:1190
#, c-format
msgid "To restore the original branch and stop patching, run \"%s --abort\"."
msgstr ""
"ì›ëž˜ 브랜치를 복구하고 패치 ì ìš©ì„ 중지하려면 \"%s --abort\"를 실행하십시오."
-#: builtin/am.c:1343
+#: builtin/am.c:1328
msgid "Patch is empty. Was it split wrong?"
msgstr "패치가 비어 있습니다. 잘못 쪼개지지 않았나요?"
-#: builtin/am.c:1417 builtin/log.c:1347
+#: builtin/am.c:1402 builtin/log.c:1350
#, c-format
msgid "invalid ident line: %s"
msgstr "ìž˜ëª»ëœ ì‹ ì› ì¤„: %s"
-#: builtin/am.c:1444
+#: builtin/am.c:1429
#, c-format
msgid "unable to parse commit %s"
msgstr "%s ì»¤ë°‹ì„ íŒŒì‹±í•  수 없습니다"
-#: builtin/am.c:1646
+#: builtin/am.c:1631
msgid "Repository lacks necessary blobs to fall back on 3-way merge."
msgstr "ì €ìž¥ì†Œì— 3-ë°©í–¥ 병합으로 대신할 ë•Œ 필요한 ë¸”ë¡­ì´ ì—†ìŠµë‹ˆë‹¤."
-#: builtin/am.c:1648
+#: builtin/am.c:1633
msgid "Using index info to reconstruct a base tree..."
msgstr "ì¸ë±ìŠ¤ 정보를 사용해 기본 트리를 다시 만듭니다..."
-#: builtin/am.c:1667
+#: builtin/am.c:1652
msgid ""
"Did you hand edit your patch?\n"
"It does not apply to blobs recorded in its index."
@@ -2470,38 +2610,38 @@ msgstr ""
"패치를 ì§ì ‘ 편집하셨습니까?\n"
"ì´ íŒ¨ì¹˜ëŠ” ì¸ë±ìŠ¤ì— 기ë¡ëœ 블롭ì—는 ì ìš©ë˜ì§€ 않습니다."
-#: builtin/am.c:1673
+#: builtin/am.c:1658
msgid "Falling back to patching base and 3-way merge..."
msgstr "ë² ì´ìŠ¤ 패치 ì ìš© ë° 3-ë°©í–¥ 병합으로 대신합니다..."
-#: builtin/am.c:1688
+#: builtin/am.c:1673
msgid "Failed to merge in the changes."
msgstr "변경 사항ì—ì„œ ë³‘í•©í•˜ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤."
-#: builtin/am.c:1712 builtin/merge.c:632
+#: builtin/am.c:1697 builtin/merge.c:633
msgid "git write-tree failed to write a tree"
msgstr "git write-treeê°€ 트리를 ì“°ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
-#: builtin/am.c:1719
+#: builtin/am.c:1704
msgid "applying to an empty history"
msgstr "빈 커밋 ë‚´ì—­ì— ëŒ€í•´ ì ìš©í•©ë‹ˆë‹¤"
-#: builtin/am.c:1732 builtin/commit.c:1755 builtin/merge.c:829
-#: builtin/merge.c:854
+#: builtin/am.c:1717 builtin/commit.c:1755 builtin/merge.c:830
+#: builtin/merge.c:855
msgid "failed to write commit object"
msgstr "커밋 오브ì íŠ¸ë¥¼ ì“°ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
-#: builtin/am.c:1764 builtin/am.c:1768
+#: builtin/am.c:1749 builtin/am.c:1753
#, c-format
msgid "cannot resume: %s does not exist."
msgstr "다시 시작할 수 없습니다: %sì´(ê°€) 없습니다."
-#: builtin/am.c:1784
+#: builtin/am.c:1769
msgid "cannot be interactive without stdin connected to a terminal."
msgstr ""
"터미ë„ì— í‘œì¤€ ìž…ë ¥ì´ ì—°ê²°ë˜ì§€ ì•Šì€ ìƒíƒœì—ì„œ 대화형으로 실행할 수 없습니다."
-#: builtin/am.c:1789
+#: builtin/am.c:1774
msgid "Commit Body is:"
msgstr "커밋 본문ì€:"
@@ -2509,35 +2649,35 @@ msgstr "커밋 본문ì€:"
#. in your translation. The program will only accept English
#. input at this point.
#.
-#: builtin/am.c:1799
+#: builtin/am.c:1784
msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
msgstr "ì ìš©? 예[y]/아니오[n]/편집[e]/패치 보기[v]/ëª¨ë‘ ì ìš©[a]: "
-#: builtin/am.c:1849
+#: builtin/am.c:1834
#, c-format
msgid "Dirty index: cannot apply patches (dirty: %s)"
msgstr "ë³€ê²½ëœ ì¸ë±ìŠ¤: 패치를 ì ìš©í•  수 없습니다 (dirty: %s)"
-#: builtin/am.c:1884 builtin/am.c:1955
+#: builtin/am.c:1869 builtin/am.c:1941
#, c-format
msgid "Applying: %.*s"
msgstr "ì ìš©í•˜ëŠ” 중: %.*s"
-#: builtin/am.c:1900
+#: builtin/am.c:1885
msgid "No changes -- Patch already applied."
msgstr "변경 사항 ì—†ìŒ -- 패치가 ì´ë¯¸ ì ìš©ë˜ì—ˆìŠµë‹ˆë‹¤."
-#: builtin/am.c:1908
+#: builtin/am.c:1893
#, c-format
msgid "Patch failed at %s %.*s"
msgstr "패치가 %s %.*s 위치ì—ì„œ 실패했습니다"
-#: builtin/am.c:1914
+#: builtin/am.c:1899
#, c-format
msgid "The copy of the patch that failed is found in: %s"
msgstr "실패한 íŒ¨ì¹˜ì˜ ë³µì‚¬ë³¸ì´ ë‹¤ìŒ ìœ„ì¹˜ì— ìžˆìŠµë‹ˆë‹¤: %s"
-#: builtin/am.c:1958
+#: builtin/am.c:1944
msgid ""
"No changes - did you forget to use 'git add'?\n"
"If there is nothing left to stage, chances are that something else\n"
@@ -2547,7 +2687,7 @@ msgstr ""
"커밋으로 표시할 ì‚¬í•­ì´ ë‚¨ì•„ 있지 않으면, ì´ë¯¸ ê°™ì€ íŒ¨ì¹˜ì—ì„œ ì ìš©ëœ\n"
"ê²½ìš°ì¼ ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤. 그런 경우ì—는 ì´ íŒ¨ì¹˜ë¥¼ 건너뛰면 ë©ë‹ˆë‹¤."
-#: builtin/am.c:1965
+#: builtin/am.c:1951
msgid ""
"You still have unmerged paths in your index.\n"
"Did you forget to use 'git add'?"
@@ -2555,17 +2695,17 @@ msgstr ""
"ì¸ë±ìŠ¤ì— 병합하지 ì•Šì€ ê²½ë¡œê°€ 남아 있습니다.\n"
"'git add' ì‚¬ìš©ì„ ìžŠì§€ 않으셨습니까?"
-#: builtin/am.c:2073 builtin/am.c:2077 builtin/am.c:2089 builtin/reset.c:308
+#: builtin/am.c:2059 builtin/am.c:2063 builtin/am.c:2075 builtin/reset.c:308
#: builtin/reset.c:316
#, c-format
msgid "Could not parse object '%s'."
msgstr "'%s' 오브ì íŠ¸ë¥¼ 파싱할 수 없습니다."
-#: builtin/am.c:2125
+#: builtin/am.c:2111
msgid "failed to clean index"
msgstr "ì¸ë±ìŠ¤ ì§€ìš°ê¸°ì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
-#: builtin/am.c:2159
+#: builtin/am.c:2145
msgid ""
"You seem to have moved HEAD since the last 'am' failure.\n"
"Not rewinding to ORIG_HEAD"
@@ -2573,155 +2713,155 @@ msgstr ""
"마지막 'am' 실패 ì´í›„ HEAD를 옮긴 것 같습니다.\n"
"ORIG_HEADë¡œ ë˜ëŒë¦¬ì§€ 않습니다."
-#: builtin/am.c:2220
+#: builtin/am.c:2206
#, c-format
msgid "Invalid value for --patch-format: %s"
msgstr "--patch-format ì˜µì…˜ì— ëŒ€í•´ ìž˜ëª»ëœ ê°’: %s"
-#: builtin/am.c:2253
+#: builtin/am.c:2239
msgid "git am [<options>] [(<mbox>|<Maildir>)...]"
msgstr "git am [<옵션>] [(<mbox>|<Maildir>)...]"
-#: builtin/am.c:2254
+#: builtin/am.c:2240
msgid "git am [<options>] (--continue | --skip | --abort)"
msgstr "git am [<옵션>] (--continue | --skip | --abort)"
-#: builtin/am.c:2260
+#: builtin/am.c:2246
msgid "run interactively"
msgstr "대화형으로 실행합니다"
-#: builtin/am.c:2262
+#: builtin/am.c:2248
msgid "historical option -- no-op"
msgstr "아무 ë™ìž‘ë„ í•˜ì§€ 않습니다 (과거부터 ìžˆì—ˆë˜ ì˜µì…˜)"
-#: builtin/am.c:2264
+#: builtin/am.c:2250
msgid "allow fall back on 3way merging if needed"
msgstr "필요하면 3-ë°©í–¥ 병합으로 대신하ë„ë¡ í—ˆìš©í•©ë‹ˆë‹¤"
-#: builtin/am.c:2265 builtin/init-db.c:474 builtin/prune-packed.c:57
+#: builtin/am.c:2251 builtin/init-db.c:474 builtin/prune-packed.c:57
#: builtin/repack.c:171
msgid "be quiet"
msgstr "간략히 표시합니다"
-#: builtin/am.c:2267
+#: builtin/am.c:2253
msgid "add a Signed-off-by line to the commit message"
msgstr "커밋 ë©”ì‹œì§€ì— Signed-off-by ì¤„ì„ ë‚¨ê¹ë‹ˆë‹¤"
-#: builtin/am.c:2270
+#: builtin/am.c:2256
msgid "recode into utf8 (default)"
msgstr "UTF-8 ì¸ì½”딩으로 변환합니다 (기본값)"
-#: builtin/am.c:2272
+#: builtin/am.c:2258
msgid "pass -k flag to git-mailinfo"
msgstr "git-mailinfoì— -k ì˜µì…˜ì„ ì”니다"
-#: builtin/am.c:2274
+#: builtin/am.c:2260
msgid "pass -b flag to git-mailinfo"
msgstr "git-mailinfoì— -b ì˜µì…˜ì„ ì”니다"
-#: builtin/am.c:2276
+#: builtin/am.c:2262
msgid "pass -m flag to git-mailinfo"
msgstr "git-mailinfoì— -m ì˜µì…˜ì„ ì”니다"
-#: builtin/am.c:2278
+#: builtin/am.c:2264
msgid "pass --keep-cr flag to git-mailsplit for mbox format"
msgstr "mbox 형ì‹ì— 대해 git-mailsplitì— --keep-cr ì˜µì…˜ì„ ì‚¬ìš©í•©ë‹ˆë‹¤"
-#: builtin/am.c:2281
+#: builtin/am.c:2267
msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
msgstr ""
"am.keepcrì— ë¬´ê´€í•˜ê²Œ git-mailsplitì— --keep-cr ì˜µì…˜ì„ ì‚¬ìš©í•˜ì§€ 않습니다."
-#: builtin/am.c:2284
+#: builtin/am.c:2270
msgid "strip everything before a scissors line"
msgstr "절취선 ì•žì˜ ëª¨ë“  ì‚¬í•­ì„ ë¬´ì‹œí•©ë‹ˆë‹¤"
-#: builtin/am.c:2285 builtin/apply.c:4554
+#: builtin/am.c:2271 builtin/apply.c:4544
msgid "action"
msgstr "ë™ìž‘"
-#: builtin/am.c:2286 builtin/am.c:2289 builtin/am.c:2292 builtin/am.c:2295
-#: builtin/am.c:2298 builtin/am.c:2301 builtin/am.c:2304 builtin/am.c:2307
-#: builtin/am.c:2313
+#: builtin/am.c:2272 builtin/am.c:2275 builtin/am.c:2278 builtin/am.c:2281
+#: builtin/am.c:2284 builtin/am.c:2287 builtin/am.c:2290 builtin/am.c:2293
+#: builtin/am.c:2299
msgid "pass it through git-apply"
msgstr "git-applyì— ë„˜ê¹ë‹ˆë‹¤"
-#: builtin/am.c:2294 builtin/apply.c:4578
+#: builtin/am.c:2280 builtin/apply.c:4568
msgid "root"
msgstr "최ìƒìœ„"
-#: builtin/am.c:2297 builtin/am.c:2300 builtin/apply.c:4516
-#: builtin/apply.c:4519 builtin/clone.c:85 builtin/fetch.c:93
-#: builtin/pull.c:167 builtin/submodule--helper.c:78
-#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
+#: builtin/am.c:2283 builtin/am.c:2286 builtin/apply.c:4506
+#: builtin/apply.c:4509 builtin/clone.c:86 builtin/fetch.c:95
+#: builtin/pull.c:171 builtin/submodule--helper.c:72
+#: builtin/submodule--helper.c:160 builtin/submodule--helper.c:163
msgid "path"
msgstr "경로"
-#: builtin/am.c:2303 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
-#: builtin/grep.c:693 builtin/merge.c:198 builtin/pull.c:127
+#: builtin/am.c:2289 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
+#: builtin/grep.c:704 builtin/merge.c:198 builtin/pull.c:131 builtin/pull.c:185
#: builtin/repack.c:178 builtin/repack.c:182 builtin/show-branch.c:645
#: builtin/show-ref.c:175 builtin/tag.c:340 parse-options.h:132
#: parse-options.h:134 parse-options.h:244
msgid "n"
msgstr "n"
-#: builtin/am.c:2306 builtin/apply.c:4522
+#: builtin/am.c:2292 builtin/apply.c:4512
msgid "num"
msgstr "개수"
-#: builtin/am.c:2309 builtin/for-each-ref.c:37 builtin/replace.c:438
+#: builtin/am.c:2295 builtin/for-each-ref.c:37 builtin/replace.c:438
#: builtin/tag.c:372
msgid "format"
msgstr "형ì‹"
-#: builtin/am.c:2310
+#: builtin/am.c:2296
msgid "format the patch(es) are in"
msgstr "íŒ¨ì¹˜ì˜ í˜•ì‹"
-#: builtin/am.c:2316
+#: builtin/am.c:2302
msgid "override error message when patch failure occurs"
msgstr "패치 실패가 ë°œìƒí–ˆì„ ë•Œ 오류 메시지 대신 사용합니다"
-#: builtin/am.c:2318
+#: builtin/am.c:2304
msgid "continue applying patches after resolving a conflict"
msgstr "충ëŒì„ í•´ê²°í•œ ë‹¤ìŒ íŒ¨ì¹˜ ì ìš©ì„ 계ì†í•©ë‹ˆë‹¤"
-#: builtin/am.c:2321
+#: builtin/am.c:2307
msgid "synonyms for --continue"
msgstr "--continue 옵션과 ë™ì¼"
-#: builtin/am.c:2324
+#: builtin/am.c:2310
msgid "skip the current patch"
msgstr "현재 패치 건너뛰기"
-#: builtin/am.c:2327
+#: builtin/am.c:2313
msgid "restore the original branch and abort the patching operation."
msgstr "ì›ëž˜ 브랜치를 복구하고 패치 ì ìš© ìž‘ì—…ì„ ì¤‘ì§€í•©ë‹ˆë‹¤."
# NOTE: ì˜µì…˜ì˜ ì˜ë¯¸ëŠ” ì´ê²Œ 맞다. ì›ë¬¸ì—서는 사용ìžê°€
# --committer-date-is-author-dateë¼ëŠ” ì˜µì…˜ì„ ë³´ê³  ì˜ë¯¸ë¥¼ ì•Œ 수 있다고 가정하고 있다.
-#: builtin/am.c:2331
+#: builtin/am.c:2317
msgid "lie about committer date"
msgstr "커미터 ì‹œê°ì„ ìž‘ì„±ìž ì‹œê°ìœ¼ë¡œ 넣습니다"
-#: builtin/am.c:2333
+#: builtin/am.c:2319
msgid "use current timestamp for author date"
msgstr "현재 ì‹œê°ì„ ìž‘ì„±ìž ì‹œê°ìœ¼ë¡œ 사용합니다"
-#: builtin/am.c:2335 builtin/commit.c:1593 builtin/merge.c:225
-#: builtin/pull.c:155 builtin/revert.c:92 builtin/tag.c:355
+#: builtin/am.c:2321 builtin/commit.c:1593 builtin/merge.c:225
+#: builtin/pull.c:159 builtin/revert.c:92 builtin/tag.c:355
msgid "key-id"
msgstr "키-ID"
-#: builtin/am.c:2336
+#: builtin/am.c:2322
msgid "GPG-sign commits"
msgstr "GPG 서명 커밋"
-#: builtin/am.c:2339
+#: builtin/am.c:2325
msgid "(internal use for git-rebase)"
msgstr "(git-rebase를 위한 내부 ìš©ë„)"
-#: builtin/am.c:2354
+#: builtin/am.c:2340
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."
@@ -2729,16 +2869,16 @@ msgstr ""
"-b/--binary ì˜µì…˜ì€ ì˜¤ëžœ 시간 ë™ì•ˆ 아무 ë™ìž‘ë„ í•˜ì§€ 않았으므로, ì´\n"
"ì˜µì…˜ì€ ì œê±°ë  ì˜ˆì •ìž…ë‹ˆë‹¤. ì´ì œ 사용하지 마십시오."
-#: builtin/am.c:2361
+#: builtin/am.c:2347
msgid "failed to read the index"
msgstr "ì¸ë±ìŠ¤ ì½ê¸°ì— 실패했습니다"
-#: builtin/am.c:2376
+#: builtin/am.c:2362
#, c-format
msgid "previous rebase directory %s still exists but mbox given."
msgstr "ì´ì „ 리베ì´ìŠ¤ 디렉터리 %sì´(ê°€) ì•„ì§ ìžˆê³  mbox를 지정했습니다."
-#: builtin/am.c:2400
+#: builtin/am.c:2386
#, c-format
msgid ""
"Stray %s directory found.\n"
@@ -2747,7 +2887,7 @@ msgstr ""
"ë²—ì–´ë‚œ %s 디렉터리가 발견ë˜ì—ˆìŠµë‹ˆë‹¤.\n"
"제거하려면 \"git am --abort\"를 사용하십시오."
-#: builtin/am.c:2406
+#: builtin/am.c:2392
msgid "Resolve operation not in progress, we are not resuming."
msgstr "해소 ìž‘ì—…ì´ ì§„í–‰ 중입니다. 다시 시작하지 않습니다."
@@ -2783,17 +2923,21 @@ msgstr "íŒ¨ì¹˜ì˜ %d번 ì¤„ì— íŒŒì¼ ì´ë¦„ì„ ì°¾ì„ ìˆ˜ 없습니다"
#: builtin/apply.c:940
#, c-format
msgid "git apply: bad git-diff - expected /dev/null, got %s on line %d"
-msgstr "git apply: ìž˜ëª»ëœ git-diff - %2$d번 줄ì—ì„œ /dev/nullì„ ê¸°ëŒ€í–ˆì§€ë§Œ, '%1$s'ì´(ê°€) 왔습니다"
+msgstr ""
+"git apply: ìž˜ëª»ëœ git-diff - %2$d번 줄ì—ì„œ /dev/nullì„ ê¸°ëŒ€í–ˆì§€ë§Œ, '%1$s'ì´"
+"(가) 왔습니다"
#: builtin/apply.c:944
#, c-format
msgid "git apply: bad git-diff - inconsistent new filename on line %d"
-msgstr "git apply: ìž˜ëª»ëœ git-diff - %d번 ì¤„ì— ìƒˆ íŒŒì¼ ì´ë¦„ì´ ì˜¬ë°”ë¥´ì§€ 않습니다"
+msgstr ""
+"git apply: ìž˜ëª»ëœ git-diff - %d번 ì¤„ì— ìƒˆ íŒŒì¼ ì´ë¦„ì´ ì˜¬ë°”ë¥´ì§€ 않습니다"
#: builtin/apply.c:945
#, c-format
msgid "git apply: bad git-diff - inconsistent old filename on line %d"
-msgstr "git apply: ìž˜ëª»ëœ git-diff - %d번 ì¤„ì— ì˜ˆì „ íŒŒì¼ ì´ë¦„ì´ ì˜¬ë°”ë¥´ì§€ 않습니다"
+msgstr ""
+"git apply: ìž˜ëª»ëœ git-diff - %d번 ì¤„ì— ì˜ˆì „ íŒŒì¼ ì´ë¦„ì´ ì˜¬ë°”ë¥´ì§€ 않습니다"
#: builtin/apply.c:952
#, c-format
@@ -3089,130 +3233,130 @@ msgstr "ì¸ì‹í•  수 없는 ìž…ë ¥"
msgid "unable to read index file"
msgstr "ì¸ë±ìŠ¤ 파ì¼ì„ ì½ì„ 수 없습니다"
-#: builtin/apply.c:4517
+#: builtin/apply.c:4507
msgid "don't apply changes matching the given path"
msgstr "주어진 ê²½ë¡œì— í•´ë‹¹í•˜ëŠ” 변경 ì‚¬í•­ì„ ì ìš©í•˜ì§€ 않습니다"
-#: builtin/apply.c:4520
+#: builtin/apply.c:4510
msgid "apply changes matching the given path"
msgstr "주어진 ê²½ë¡œì— í•´ë‹¹í•˜ëŠ” 변경 ì‚¬í•­ì„ ì ìš©í•©ë‹ˆë‹¤"
-#: builtin/apply.c:4523
+#: builtin/apply.c:4513
msgid "remove <num> leading slashes from traditional diff paths"
msgstr "전통ì ì¸ diff 경로 ì•žì˜ <개수>ê°œì˜ ì•ž 슬래시(/)를 제거합니다"
-#: builtin/apply.c:4526
+#: builtin/apply.c:4516
msgid "ignore additions made by the patch"
msgstr "패치ì—ì„œ 추가하는 파ì¼ì„ 무시합니다"
-#: builtin/apply.c:4528
+#: builtin/apply.c:4518
msgid "instead of applying the patch, output diffstat for the input"
msgstr "패치를 ì ìš©í•˜ëŠ” 대신, ìž…ë ¥ì— ëŒ€í•œ diffstatì„ ì¶œë ¥í•©ë‹ˆë‹¤"
-#: builtin/apply.c:4532
+#: builtin/apply.c:4522
msgid "show number of added and deleted lines in decimal notation"
msgstr "십진수로 추가 ë° ì‚­ì œí•œ 줄 수를 표시합니다"
-#: builtin/apply.c:4534
+#: builtin/apply.c:4524
msgid "instead of applying the patch, output a summary for the input"
msgstr "패치를 ì ìš©í•˜ëŠ” 대신, ìž…ë ¥ì— ëŒ€í•œ ìš”ì•½ì„ ì¶œë ¥í•©ë‹ˆë‹¤"
-#: builtin/apply.c:4536
+#: builtin/apply.c:4526
msgid "instead of applying the patch, see if the patch is applicable"
msgstr "패치를 ì ìš©í•˜ëŠ” 대신, 패치를 ì ìš© 가능한지 확ì¸í•©ë‹ˆë‹¤"
-#: builtin/apply.c:4538
+#: builtin/apply.c:4528
msgid "make sure the patch is applicable to the current index"
msgstr "현재 ì¸ë±ìŠ¤ì—ì„œ 패치가 ì ìš© 가능한지 확ì¸í•©ë‹ˆë‹¤"
-#: builtin/apply.c:4540
+#: builtin/apply.c:4530
msgid "apply a patch without touching the working tree"
msgstr "ìž‘ì—… í´ë”를 바꾸지 ì•Šê³  패치를 ì ìš©í•©ë‹ˆë‹¤"
-#: builtin/apply.c:4542
+#: builtin/apply.c:4532
msgid "accept a patch that touches outside the working area"
msgstr "ìž‘ì—… ì˜ì—­ ë°–ì˜ íŒŒì¼ì„ 바꾸는 패치를 허용합니다"
-#: builtin/apply.c:4544
+#: builtin/apply.c:4534
msgid "also apply the patch (use with --stat/--summary/--check)"
msgstr "그리고 íŒ¨ì¹˜ë„ ì ìš©í•©ë‹ˆë‹¤ (--stat/--summary/--check 옵션과 ê°™ì´ ì‚¬ìš©)"
-#: builtin/apply.c:4546
+#: builtin/apply.c:4536
msgid "attempt three-way merge if a patch does not apply"
msgstr "패치를 ì ìš©í•˜ì§€ 않으면 3-ë°©í–¥ ë³‘í•©ì„ ì‹œë„합니다"
-#: builtin/apply.c:4548
+#: builtin/apply.c:4538
msgid "build a temporary index based on embedded index information"
msgstr "내장 ì¸ë±ìŠ¤ 정보를 사용해 ìž„ì‹œ ì¸ë±ìŠ¤ë¥¼ 만듭니다"
-#: builtin/apply.c:4550 builtin/checkout-index.c:198 builtin/ls-files.c:412
+#: builtin/apply.c:4541 builtin/checkout-index.c:169 builtin/ls-files.c:425
msgid "paths are separated with NUL character"
msgstr "경로를 NUL 문ìžë¡œ 구분합니다"
-#: builtin/apply.c:4553
+#: builtin/apply.c:4543
msgid "ensure at least <n> lines of context match"
msgstr "최소한 <n>ì¤„ì´ ì»¨í…스트와 ì¼ì¹˜í•˜ëŠ”지 확ì¸í•©ë‹ˆë‹¤"
-#: builtin/apply.c:4555
+#: builtin/apply.c:4545
msgid "detect new or modified lines that have whitespace errors"
msgstr "공백 오류가 있는 추가ë거나 ìˆ˜ì •ëœ ì¤„ì„ ì°¾ìŠµë‹ˆë‹¤"
-#: builtin/apply.c:4558 builtin/apply.c:4561
+#: builtin/apply.c:4548 builtin/apply.c:4551
msgid "ignore changes in whitespace when finding context"
msgstr "컨í…스트를 ì°¾ì„ ë•Œ 공백 변경 ì‚¬í•­ì„ ë¬´ì‹œí•©ë‹ˆë‹¤"
-#: builtin/apply.c:4564
+#: builtin/apply.c:4554
msgid "apply the patch in reverse"
msgstr "패치를 반대 순서로 ì ìš©í•©ë‹ˆë‹¤"
-#: builtin/apply.c:4566
+#: builtin/apply.c:4556
msgid "don't expect at least one line of context"
msgstr "ìµœì†Œí•œì˜ ì»¨í…스트 í•œ ì¤„ë„ ì—†ì´ ì ìš©í•©ë‹ˆë‹¤"
-#: builtin/apply.c:4568
+#: builtin/apply.c:4558
msgid "leave the rejected hunks in corresponding *.rej files"
msgstr "ê±°ë¶€ëœ íŒ¨ì¹˜ ë¶€ë¶„ì„ ëŒ€ì‘ë˜ëŠ” *.rej 파ì¼ì— 남겨둡니다"
-#: builtin/apply.c:4570
+#: builtin/apply.c:4560
msgid "allow overlapping hunks"
msgstr "패치 ë¶€ë¶„ì´ ê²¹ì³ë„ 허용합니다"
-#: builtin/apply.c:4573
+#: builtin/apply.c:4563
msgid "tolerate incorrectly detected missing new-line at the end of file"
msgstr "íŒŒì¼ ëì— ì¤„ë°”ê¿ˆì´ ë¹ ì¡ŒìŒì„ 잘못 검색한 ê²½ìš°ì— ë¬´ì‹œí•©ë‹ˆë‹¤"
-#: builtin/apply.c:4576
+#: builtin/apply.c:4566
msgid "do not trust the line counts in the hunk headers"
msgstr "패치 ë¶€ë¶„ì˜ í—¤ë”ì˜ ì¤„ 수를 신용하지 않습니다"
-#: builtin/apply.c:4579
+#: builtin/apply.c:4569
msgid "prepend <root> to all filenames"
msgstr "모든 íŒŒì¼ ì´ë¦„ì— <최ìƒìœ„>를 ì•žì— ë¶™ìž…ë‹ˆë‹¤"
-#: builtin/apply.c:4601
+#: builtin/apply.c:4591
msgid "--3way outside a repository"
msgstr "저장소 ë°–ì—ì„œ --3way 옵션 사용"
-#: builtin/apply.c:4609
+#: builtin/apply.c:4599
msgid "--index outside a repository"
msgstr "저장소 ë°–ì—ì„œ --index 옵션 사용"
-#: builtin/apply.c:4612
+#: builtin/apply.c:4602
msgid "--cached outside a repository"
msgstr "저장소 ë°–ì—ì„œ --cached 옵션 사용"
-#: builtin/apply.c:4631
+#: builtin/apply.c:4621
#, c-format
msgid "can't open patch '%s'"
msgstr "'%s' 패치를 열 수 없습니다"
-#: builtin/apply.c:4645
+#: builtin/apply.c:4635
#, c-format
msgid "squelched %d whitespace error"
msgid_plural "squelched %d whitespace errors"
msgstr[0] "공백 오류 %d개를 넘어갑니다"
-#: builtin/apply.c:4651 builtin/apply.c:4661
+#: builtin/apply.c:4641 builtin/apply.c:4651
#, c-format
msgid "%d line adds whitespace errors."
msgid_plural "%d lines add whitespace errors."
@@ -3265,103 +3409,111 @@ msgstr "'git bisect next'를 수행합니다"
msgid "update BISECT_HEAD instead of checking out the current commit"
msgstr "현재 ì»¤ë°‹ì„ ê°€ì ¸ì˜¤ëŠ” 대신 BISECT_HEAD를 ì—…ë°ì´íŠ¸í•©ë‹ˆë‹¤"
-#: builtin/blame.c:32
+#: builtin/blame.c:33
msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>"
msgstr "git blame [<옵션>] [<리비전-옵션>] [<리비전>] [--] <파ì¼>"
-#: builtin/blame.c:37
+#: builtin/blame.c:38
msgid "<rev-opts> are documented in git-rev-list(1)"
msgstr "<리비전-옵션>ì€ git-rev-list(1)ì— ì„¤ëª…ë˜ì–´ 있습니다"
-#: builtin/blame.c:2519
+#: builtin/blame.c:1782
+msgid "Blaming lines"
+msgstr "블레임 줄"
+
+#: builtin/blame.c:2530
msgid "Show blame entries as we find them, incrementally"
-msgstr "blame í•­ëª©ì„ ì°¾ìžë§ˆìž ì ì§„ì ìœ¼ë¡œ 표시합니다"
+msgstr "블레임 í•­ëª©ì„ ì°¾ìžë§ˆìž ì ì§„ì ìœ¼ë¡œ 표시합니다"
-#: builtin/blame.c:2520
+#: builtin/blame.c:2531
msgid "Show blank SHA-1 for boundary commits (Default: off)"
msgstr "가장ìžë¦¬ ì»¤ë°‹ì— ëŒ€í•´ 빈 SHA-1ì„ í‘œì‹œí•©ë‹ˆë‹¤ (기본값: 꺼ì§)"
-#: builtin/blame.c:2521
+#: builtin/blame.c:2532
msgid "Do not treat root commits as boundaries (Default: off)"
msgstr "최ìƒìœ„ ì»¤ë°‹ì„ ê°€ìž¥ìžë¦¬ 커밋으로 취급하지 않습니다 (기본값: 꺼ì§)"
-#: builtin/blame.c:2522
+#: builtin/blame.c:2533
msgid "Show work cost statistics"
msgstr "작업 비용 통계를 표시합니다"
-#: builtin/blame.c:2523
+#: builtin/blame.c:2534
+msgid "Force progress reporting"
+msgstr "강제로 진행 ìƒí™©ì„ 표시합니다"
+
+#: builtin/blame.c:2535
msgid "Show output score for blame entries"
-msgstr "blame í•­ëª©ì— ëŒ€í•´ 출력 ì ìˆ˜ë¥¼ 표시합니다"
+msgstr "블레임 í•­ëª©ì— ëŒ€í•´ 출력 ì ìˆ˜ë¥¼ 표시합니다"
-#: builtin/blame.c:2524
+#: builtin/blame.c:2536
msgid "Show original filename (Default: auto)"
msgstr "ì›ëž˜ íŒŒì¼ ì´ë¦„ 표시 (기본값: ìžë™)"
-#: builtin/blame.c:2525
+#: builtin/blame.c:2537
msgid "Show original linenumber (Default: off)"
msgstr "ì›ëž˜ 줄 번호 표시 (기본값: 하지 ì•ŠìŒ)"
-#: builtin/blame.c:2526
+#: builtin/blame.c:2538
msgid "Show in a format designed for machine consumption"
msgstr "컴퓨터 처리용으로 ì„¤ê³„ëœ í˜•ì‹ìœ¼ë¡œ 표시합니다"
-#: builtin/blame.c:2527
+#: builtin/blame.c:2539
msgid "Show porcelain format with per-line commit information"
msgstr "줄마다 커밋 ì •ë³´ê°€ 표시ë˜ëŠ” 사용ìžìš© 형ì‹ìœ¼ë¡œ 표시합니다"
-#: builtin/blame.c:2528
+#: builtin/blame.c:2540
msgid "Use the same output mode as git-annotate (Default: off)"
msgstr "git-annotate와 ë™ì¼í•œ 형ì‹ì„ 사용합니다 (기본값: 꺼ì§)"
-#: builtin/blame.c:2529
+#: builtin/blame.c:2541
msgid "Show raw timestamp (Default: off)"
msgstr "내부 형ì‹ìœ¼ë¡œ ì‹œê°ì„ 표시합니다 (기본값: 꺼ì§)"
-#: builtin/blame.c:2530
+#: builtin/blame.c:2542
msgid "Show long commit SHA1 (Default: off)"
msgstr "길게 커밋 SHA1ì„ í‘œì‹œí•©ë‹ˆë‹¤ (기본값: 꺼ì§)"
-#: builtin/blame.c:2531
+#: builtin/blame.c:2543
msgid "Suppress author name and timestamp (Default: off)"
msgstr "ìž‘ì„±ìž ì´ë¦„ê³¼ ì‹œê°ì„ 표시하지 않습니다 (기본값: 꺼ì§)"
-#: builtin/blame.c:2532
+#: builtin/blame.c:2544
msgid "Show author email instead of name (Default: off)"
msgstr "ìž‘ì„±ìž ì´ë¦„ ëŒ€ì‹ ì— ì „ìžë©”ì¼ì„ 표시합니다 (기본값: 꺼ì§)"
-#: builtin/blame.c:2533
+#: builtin/blame.c:2545
msgid "Ignore whitespace differences"
msgstr "공백 ë¬¸ìž ì°¨ì´ì ì„ 무시합니다"
-#: builtin/blame.c:2534
+#: builtin/blame.c:2546
msgid "Spend extra cycles to find better match"
msgstr "ë” ì¼ì¹˜í•˜ëŠ” í•­ëª©ì„ ì°¾ëŠ”ë° ë” ì‹œê°„ì„ ì†Œëª¨í•©ë‹ˆë‹¤"
-#: builtin/blame.c:2535
+#: builtin/blame.c:2547
msgid "Use revisions from <file> instead of calling git-rev-list"
msgstr "git-rev-list를 호출하는 대신 <파ì¼>ì—ì„œ ë¦¬ë¹„ì „ì„ ì‚¬ìš©í•©ë‹ˆë‹¤"
-#: builtin/blame.c:2536
+#: builtin/blame.c:2548
msgid "Use <file>'s contents as the final image"
msgstr "<파ì¼>ì˜ ë‚´ìš©ì„ ìµœì¢… ì´ë¯¸ì§€ë¡œ 사용합니다"
-#: builtin/blame.c:2537 builtin/blame.c:2538
+#: builtin/blame.c:2549 builtin/blame.c:2550
msgid "score"
msgstr "ì ìˆ˜"
-#: builtin/blame.c:2537
+#: builtin/blame.c:2549
msgid "Find line copies within and across files"
msgstr "íŒŒì¼ ë‚´ë¶€ì™€ íŒŒì¼ ì‚¬ì´ì˜ ë³µì‚¬ëœ ì¤„ì„ ì°¾ìŠµë‹ˆë‹¤"
-#: builtin/blame.c:2538
+#: builtin/blame.c:2550
msgid "Find line movements within and across files"
msgstr "íŒŒì¼ ë‚´ë¶€ì™€ íŒŒì¼ ì‚¬ì´ì˜ 옮겨진 ì¤„ì„ ì°¾ìŠµë‹ˆë‹¤"
-#: builtin/blame.c:2539
+#: builtin/blame.c:2551
msgid "n,m"
msgstr "n,m"
-#: builtin/blame.c:2539
+#: builtin/blame.c:2551
msgid "Process only line range n,m, counting from 1"
msgstr "n,m줄 (1번 줄부터 시작) 사ì´ì˜ 범위만 처리"
@@ -3371,7 +3523,7 @@ msgstr "n,m줄 (1번 줄부터 시작) 사ì´ì˜ 범위만 처리"
#. takes 22 places, is the longest among various forms of
#. relative timestamps, but your language may need more or
#. fewer display columns.
-#: builtin/blame.c:2620
+#: builtin/blame.c:2640
msgid "4 years, 11 months ago"
msgstr "4년 11달 전"
@@ -3569,214 +3721,223 @@ msgstr "브랜치 ì´ë¦„ì„ %s(으)ë¡œ 바꾸지만, HEAD를 ì—…ë°ì´íŠ¸í•˜ì§€
msgid "Branch is renamed, but update of config-file failed"
msgstr "ë¸Œëžœì¹˜ì˜ ì´ë¦„ì„ ë°”ê¾¸ì§€ë§Œ, config-file ì—…ë°ì´íŠ¸ê°€ 실패했습니다"
-#: builtin/branch.c:587
+#: builtin/branch.c:586
#, c-format
msgid "could not write branch description template: %s"
msgstr "브랜치 설명 ì„œì‹ì„ 쓸 수 없습니다: %s"
-#: builtin/branch.c:616
+#: builtin/branch.c:615
msgid "Generic options"
msgstr "ì¼ë°˜ 옵션"
# FIXME: give twice?
-#: builtin/branch.c:618
+#: builtin/branch.c:617
msgid "show hash and subject, give twice for upstream branch"
msgstr "해시와 ì œëª©ì„ í‘œì‹œí•˜ê³ , 업스트림 ë¸Œëžœì¹˜ì— ëŒ€í•œ 위치를 표시합니다"
-#: builtin/branch.c:619
+#: builtin/branch.c:618
msgid "suppress informational messages"
msgstr "여러가지 안내 메시지를 표시하지 않습니다"
-#: builtin/branch.c:620
+#: builtin/branch.c:619
msgid "set up tracking mode (see git-pull(1))"
msgstr "ì¶”ì  ëª¨ë“œë¥¼ 설정합니다 (git-pull(1) 참고)"
-#: builtin/branch.c:622
+#: builtin/branch.c:621
msgid "change upstream info"
msgstr "업스트림 정보를 바꿉니다"
-#: builtin/branch.c:626
+#: builtin/branch.c:625
msgid "use colored output"
msgstr "여러 색으로 출력합니다"
-#: builtin/branch.c:627
+#: builtin/branch.c:626
msgid "act on remote-tracking branches"
msgstr "리모트 ì¶”ì  ë¸Œëžœì¹˜ì— ëŒ€í•´ ë™ìž‘합니다"
-#: builtin/branch.c:629 builtin/branch.c:630
+#: builtin/branch.c:628 builtin/branch.c:629
msgid "print only branches that contain the commit"
msgstr "ì»¤ë°‹ì´ ìžˆëŠ” 브랜치만 표시합니다"
-#: builtin/branch.c:633
+#: builtin/branch.c:632
msgid "Specific git-branch actions:"
msgstr "특정 git-branch ë™ìž‘:"
-#: builtin/branch.c:634
+#: builtin/branch.c:633
msgid "list both remote-tracking and local branches"
msgstr "리모트와 ë¡œì»¬ì˜ ë¸Œëžœì¹˜ 목ë¡ì„ ëª¨ë‘ í‘œì‹œí•©ë‹ˆë‹¤"
-#: builtin/branch.c:636
+#: builtin/branch.c:635
msgid "delete fully merged branch"
msgstr "완전히 ë³‘í•©ëœ ë¸Œëžœì¹˜ë¥¼ 삭제합니다"
-#: builtin/branch.c:637
+#: builtin/branch.c:636
msgid "delete branch (even if not merged)"
msgstr "브랜치를 삭제합니다 (병합ë˜ì§€ 않았ë”ë¼ë„)"
-#: builtin/branch.c:638
+#: builtin/branch.c:637
msgid "move/rename a branch and its reflog"
msgstr "브랜치와 ê·¸ reflog를 옮기거나 ì´ë¦„ì„ ë°”ê¿‰ë‹ˆë‹¤"
-#: builtin/branch.c:639
+#: builtin/branch.c:638
msgid "move/rename a branch, even if target exists"
msgstr "대ìƒì´ ì´ë¯¸ 있ë”ë¼ë„ 브랜치를 옮기거나 ì´ë¦„ì„ ë°”ê¿‰ë‹ˆë‹¤"
-#: builtin/branch.c:640
+#: builtin/branch.c:639
msgid "list branch names"
msgstr "브랜치 ì´ë¦„ 목ë¡ì„ 표시합니다"
-#: builtin/branch.c:641
+#: builtin/branch.c:640
msgid "create the branch's reflog"
msgstr "ë¸Œëžœì¹˜ì˜ reflog를 만듭니다"
-#: builtin/branch.c:643
+#: builtin/branch.c:642
msgid "edit the description for the branch"
msgstr "ë¸Œëžœì¹˜ì˜ ì„¤ëª…ì„ íŽ¸ì§‘í•©ë‹ˆë‹¤"
-#: builtin/branch.c:644
+#: builtin/branch.c:643
msgid "force creation, move/rename, deletion"
msgstr "강제로 만들고, 옮기거나 ì´ë¦„ì„ ë°”ê¾¸ê³ , 삭제합니다"
-#: builtin/branch.c:645
+#: builtin/branch.c:644
msgid "print only branches that are merged"
msgstr "병합ë˜ëŠ” 브랜치만 표시합니다"
-#: builtin/branch.c:646
+#: builtin/branch.c:645
msgid "print only branches that are not merged"
msgstr "병합ë˜ì§€ 않는 브랜치만 표시합니다"
-#: builtin/branch.c:647
+#: builtin/branch.c:646
msgid "list branches in columns"
msgstr "목ë¡ì„ 여러 ì—´ë¡œ 표시합니다"
-#: builtin/branch.c:648 builtin/for-each-ref.c:38 builtin/tag.c:366
+#: builtin/branch.c:647 builtin/for-each-ref.c:38 builtin/tag.c:366
msgid "key"
msgstr "키"
-#: builtin/branch.c:649 builtin/for-each-ref.c:39 builtin/tag.c:367
+#: builtin/branch.c:648 builtin/for-each-ref.c:39 builtin/tag.c:367
msgid "field name to sort on"
msgstr "정렬한 ê¸°ì¤€ì´ ë˜ëŠ” í•„ë“œ ì´ë¦„"
-#: builtin/branch.c:651 builtin/for-each-ref.c:41 builtin/notes.c:398
-#: builtin/notes.c:401 builtin/notes.c:561 builtin/notes.c:564
+#: builtin/branch.c:650 builtin/for-each-ref.c:41 builtin/notes.c:401
+#: builtin/notes.c:404 builtin/notes.c:564 builtin/notes.c:567
#: builtin/tag.c:369
msgid "object"
msgstr "오브ì íŠ¸"
-#: builtin/branch.c:652
+#: builtin/branch.c:651
msgid "print only branches of the object"
msgstr "해당 오브ì íŠ¸ì˜ 브랜치만 표시합니다"
-#: builtin/branch.c:670
+#: builtin/branch.c:669
msgid "Failed to resolve HEAD as a valid ref."
msgstr "HEAD를 올바른 ë ˆí¼ëŸ°ìŠ¤ë¡œ êµ¬í•´ë‚´ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤."
-#: builtin/branch.c:674 builtin/clone.c:697
+#: builtin/branch.c:673 builtin/clone.c:705
msgid "HEAD not found below refs/heads!"
msgstr "ë ˆí¼ëŸ°ìŠ¤/헤드 ì•„ëž˜ì— HEADê°€ 없습니다!"
-#: builtin/branch.c:694
+#: builtin/branch.c:693
msgid "--column and --verbose are incompatible"
msgstr "--column ë° --verbose ì˜µì…˜ì€ í˜¸í™˜ë˜ì§€ 않습니다"
-#: builtin/branch.c:705 builtin/branch.c:747
+#: builtin/branch.c:704 builtin/branch.c:746
msgid "branch name required"
msgstr "브랜치 ì´ë¦„ì´ í•„ìš”í•©ë‹ˆë‹¤"
-#: builtin/branch.c:723
+#: builtin/branch.c:722
msgid "Cannot give description to detached HEAD"
msgstr "ë¶„ë¦¬ëœ HEADì— ëŒ€í•œ ì„¤ëª…ì„ ë¶€ì—¬í•  수 없습니다"
-#: builtin/branch.c:728
+#: builtin/branch.c:727
msgid "cannot edit description of more than one branch"
msgstr "여러 ë¸Œëžœì¹˜ì— ëŒ€í•œ ì„¤ëª…ì„ íŽ¸ì§‘í•  수 없습니다"
-#: builtin/branch.c:735
+#: builtin/branch.c:734
#, c-format
msgid "No commit on branch '%s' yet."
msgstr "ì•„ì§ '%s' ë¸Œëžœì¹˜ì— ì»¤ë°‹ì´ ì—†ìŠµë‹ˆë‹¤."
-#: builtin/branch.c:738
+#: builtin/branch.c:737
#, c-format
msgid "No branch named '%s'."
msgstr "ì´ë¦„ì´ '%s'ì¸ ë¸Œëžœì¹˜ê°€ 없습니다."
-#: builtin/branch.c:753
+#: builtin/branch.c:752
msgid "too many branches for a rename operation"
msgstr "ì´ë¦„ 바꾸기 ìž‘ì—…ì— ëŒ€í•´ 브랜치가 너무 많습니다"
-#: builtin/branch.c:758
+#: builtin/branch.c:757
msgid "too many branches to set new upstream"
msgstr "새 ì—…ìŠ¤íŠ¸ë¦¼ì„ ì„¤ì •í•˜ëŠ”ë° ë¸Œëžœì¹˜ê°€ 너무 많습니다"
-#: builtin/branch.c:762
+#: builtin/branch.c:761
#, c-format
msgid ""
"could not set upstream of HEAD to %s when it does not point to any branch."
-msgstr "HEADì˜ ì—…ìŠ¤íŠ¸ë¦¼ì„ %s(으)ë¡œ 설정할 수 없습니다. ì–´ë–¤ ë¸Œëžœì¹˜ë„ ê°€ë¦¬í‚¤ì§€ 않습니다."
+msgstr ""
+"HEADì˜ ì—…ìŠ¤íŠ¸ë¦¼ì„ %s(으)ë¡œ 설정할 수 없습니다. ì–´ë–¤ ë¸Œëžœì¹˜ë„ ê°€ë¦¬í‚¤ì§€ 않습니"
+"다."
-#: builtin/branch.c:765 builtin/branch.c:787 builtin/branch.c:808
+#: builtin/branch.c:764 builtin/branch.c:786 builtin/branch.c:807
#, c-format
msgid "no such branch '%s'"
msgstr "그런 브랜치가 ('%s') 없습니다"
-#: builtin/branch.c:769
+#: builtin/branch.c:768
#, c-format
msgid "branch '%s' does not exist"
msgstr "'%s' 브랜치가 없습니다"
-#: builtin/branch.c:781
+#: builtin/branch.c:780
msgid "too many branches to unset upstream"
msgstr "업스트림 ì„¤ì •ì„ í•´ì œí•˜ëŠ”ë° ë¸Œëžœì¹˜ê°€ 너무 많습니다"
-#: builtin/branch.c:785
+#: builtin/branch.c:784
msgid "could not unset upstream of HEAD when it does not point to any branch."
-msgstr "HEADì˜ ì—…ìŠ¤íŠ¸ë¦¼ ì„¤ì •ì„ í•´ì œí•  수 없습니다. ì–´ë–¤ ë¸Œëžœì¹˜ë„ ê°€ë¦¬í‚¤ì§€ 않습니다."
+msgstr ""
+"HEADì˜ ì—…ìŠ¤íŠ¸ë¦¼ ì„¤ì •ì„ í•´ì œí•  수 없습니다. ì–´ë–¤ ë¸Œëžœì¹˜ë„ ê°€ë¦¬í‚¤ì§€ 않습니다."
-#: builtin/branch.c:791
+#: builtin/branch.c:790
#, c-format
msgid "Branch '%s' has no upstream information"
msgstr "'%s' ë¸Œëžœì¹˜ì— ì—…ìŠ¤íŠ¸ë¦¼ ì •ë³´ê°€ 없습니다"
-#: builtin/branch.c:805
+#: builtin/branch.c:804
msgid "it does not make sense to create 'HEAD' manually"
msgstr "'HEAD'를 수ë™ìœ¼ë¡œ 만드는 ê±´ 앞뒤가 맞지 않습니다"
-#: builtin/branch.c:811
+#: builtin/branch.c:810
msgid "-a and -r options to 'git branch' do not make sense with a branch name"
-msgstr "'git branch'ì— ëŒ€í•´ -a ë° -r ì˜µì…˜ì€ ë¸Œëžœì¹˜ ì´ë¦„ê³¼ ê°™ì´ ì“°ë©´ 앞뒤가 맞지 않습니다"
+msgstr ""
+"'git branch'ì— ëŒ€í•´ -a ë° -r ì˜µì…˜ì€ ë¸Œëžœì¹˜ ì´ë¦„ê³¼ ê°™ì´ ì“°ë©´ 앞뒤가 맞지 않습"
+"니다"
-#: builtin/branch.c:814
+#: builtin/branch.c:813
#, c-format
msgid ""
"The --set-upstream flag is deprecated and will be removed. Consider using --"
"track or --set-upstream-to\n"
-msgstr "--set-upstream ì˜µì…˜ì€ ë” ì´ìƒ 사용ë˜ì§€ ì•Šê³  ì œê±°ë  ì˜ˆì •ìž…ë‹ˆë‹¤. --track ë˜ëŠ” --set-upstream-to ì˜µì…˜ì„ ì‚¬ìš©í•´ 보십시오\n"
+msgstr ""
+"--set-upstream ì˜µì…˜ì€ ë” ì´ìƒ 사용ë˜ì§€ ì•Šê³  ì œê±°ë  ì˜ˆì •ìž…ë‹ˆë‹¤. --track ë˜ëŠ” "
+"--set-upstream-to ì˜µì…˜ì„ ì‚¬ìš©í•´ 보십시오\n"
-#: builtin/branch.c:831
+#: builtin/branch.c:830
#, c-format
msgid ""
"\n"
"If you wanted to make '%s' track '%s', do this:\n"
"\n"
-msgstr "\n'%s'ì„(를) 만들고 '%s'ì„(를) 추ì í•˜ê²Œ 하려면, 다ìŒì„ 하십시오:\n"
+msgstr ""
+"\n"
+"'%s'ì„(를) 만들고 '%s'ì„(를) 추ì í•˜ê²Œ 하려면, 다ìŒì„ 하십시오:\n"
-#: builtin/branch.c:832
+#: builtin/branch.c:831
#, c-format
msgid " git branch -d %s\n"
msgstr " git branch -d %s\n"
-#: builtin/branch.c:833
+#: builtin/branch.c:832
#, c-format
msgid " git branch --set-upstream-to %s\n"
msgstr " git branch --set-upstream-to %s\n"
@@ -3848,7 +4009,8 @@ msgstr "표준 ìž…ë ¥ì—ì„œ ìž…ë ¥ëœ ì˜¤ë¸Œì íŠ¸ì˜ 정보를 표시합니다"
#: builtin/cat-file.c:484
msgid "follow in-tree symlinks (used with --batch or --batch-check)"
-msgstr "트리 ë‚´ë¶€ì˜ ì‹¬ë³¼ë¦­ ë§í¬ë¥¼ ë”°ë¼ê°‘니다 (--batch ë˜ëŠ” --batch-check와 ê°™ì´ ì‚¬ìš©)"
+msgstr ""
+"트리 ë‚´ë¶€ì˜ ì‹¬ë³¼ë¦­ ë§í¬ë¥¼ ë”°ë¼ê°‘니다 (--batch ë˜ëŠ” --batch-check와 ê°™ì´ ì‚¬ìš©)"
#: builtin/cat-file.c:486
msgid "show all objects with --batch or --batch-check"
@@ -3870,7 +4032,7 @@ msgstr "파ì¼ì— ì„¤ì •ëœ ëª¨ë“  ì†ì„±ì„ 표시합니다"
msgid "use .gitattributes only from the index"
msgstr "ì¸ë±ìŠ¤ì—서만 .gitattributes를 사용합니다"
-#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:96
+#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:97
msgid "read file names from stdin"
msgstr "표준 ìž…ë ¥ì—ì„œ íŒŒì¼ ì´ë¦„ì„ ì½ìŠµë‹ˆë‹¤"
@@ -3878,7 +4040,7 @@ msgstr "표준 ìž…ë ¥ì—ì„œ íŒŒì¼ ì´ë¦„ì„ ì½ìŠµë‹ˆë‹¤"
msgid "terminate input and output records by a NUL character"
msgstr "NUL 문ìžë¥¼ 기준으로 ìžë£Œ ìž…ë ¥ ë° ì¶œë ¥ì„ ë©ˆì¶¥ë‹ˆë‹¤"
-#: builtin/check-ignore.c:18 builtin/checkout.c:1134 builtin/gc.c:325
+#: builtin/check-ignore.c:18 builtin/checkout.c:1136 builtin/gc.c:325
msgid "suppress progress reporting"
msgstr "진행 ìƒí™© 표시를 하지 않습니다"
@@ -3931,49 +4093,53 @@ msgstr "ì—°ë½ì²˜ë¥¼ 파싱할 수 없습니다: %s"
msgid "no contacts specified"
msgstr "ì—°ë½ì²˜ë¥¼ 지정하지 않았습니다"
-#: builtin/checkout-index.c:126
+#: builtin/checkout-index.c:127
msgid "git checkout-index [<options>] [--] [<file>...]"
msgstr "git checkout-index [<옵션>] [--] [<파ì¼>...]"
-#: builtin/checkout-index.c:188
+#: builtin/checkout-index.c:144
+msgid "stage should be between 1 and 3 or all"
+msgstr "스테ì´ì§€ëŠ” 1ì—ì„œ 3 사ì´ì˜ ê°’ì´ê±°ë‚˜ allì´ì–´ì•¼ 합니다"
+
+#: builtin/checkout-index.c:160
msgid "check out all files in the index"
msgstr "ì¸ë±ìŠ¤ì˜ 모든 파ì¼ì„ 가져옵니다"
-#: builtin/checkout-index.c:189
+#: builtin/checkout-index.c:161
msgid "force overwrite of existing files"
msgstr "기존 파ì¼ì„ 강제로 ë®ì–´ ì”니다"
-#: builtin/checkout-index.c:191
+#: builtin/checkout-index.c:163
msgid "no warning for existing files and files not in index"
msgstr "기존 파ì¼ê³¼ ì¸ë±ìŠ¤ì— 없는 파ì¼ì— 대해 경고하지 않습니다"
-#: builtin/checkout-index.c:193
+#: builtin/checkout-index.c:165
msgid "don't checkout new files"
msgstr "새 파ì¼ì„ 가져오지 않습니다"
-#: builtin/checkout-index.c:195
+#: builtin/checkout-index.c:167
msgid "update stat information in the index file"
msgstr "ì¸ë±ìŠ¤ 파ì¼ì˜ stat 정보를 ì—…ë°ì´íŠ¸í•©ë‹ˆë‹¤"
-#: builtin/checkout-index.c:201
+#: builtin/checkout-index.c:171
msgid "read list of paths from the standard input"
msgstr "표준 ìž…ë ¥ì—ì„œ ê²½ë¡œì˜ ëª©ë¡ì„ ì½ìŠµë‹ˆë‹¤"
-#: builtin/checkout-index.c:203
+#: builtin/checkout-index.c:173
msgid "write the content to temporary files"
msgstr "ë‚´ìš©ì„ ìž„ì‹œ 파ì¼ì— ì”니다"
-#: builtin/checkout-index.c:204 builtin/column.c:30
+#: builtin/checkout-index.c:174 builtin/column.c:30
+#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
#: builtin/submodule--helper.c:172 builtin/submodule--helper.c:175
-#: builtin/submodule--helper.c:178 builtin/submodule--helper.c:181
msgid "string"
msgstr "문ìžì—´"
-#: builtin/checkout-index.c:205
+#: builtin/checkout-index.c:175
msgid "when creating files, prepend <string>"
msgstr "파ì¼ì„ 만들 ë•Œ, ì•žì— <문ìžì—´>ì„ ë¶™ìž…ë‹ˆë‹¤"
-#: builtin/checkout-index.c:208
+#: builtin/checkout-index.c:177
msgid "copy out the files from named stage"
msgstr "지정한 스테ì´ì§€ì—ì„œ 파ì¼ì„ 복사해 옵니다"
@@ -4053,37 +4219,41 @@ msgstr "'%s'ì— ëŒ€í•´ reflogí•  수 없습니다: %s\n"
msgid "HEAD is now at"
msgstr "HEADì˜ í˜„ìž¬ 위치는"
-#: builtin/checkout.c:668
+#: builtin/checkout.c:665 builtin/clone.c:659
+msgid "unable to update HEAD"
+msgstr "HEAD를 ì—…ë°ì´íŠ¸í•  수 없습니다"
+
+#: builtin/checkout.c:669
#, c-format
msgid "Reset branch '%s'\n"
msgstr "'%s' 브랜치 리셋\n"
-#: builtin/checkout.c:671
+#: builtin/checkout.c:672
#, c-format
msgid "Already on '%s'\n"
msgstr "ì´ë¯¸ '%s'ì— ìžˆìŠµë‹ˆë‹¤\n"
-#: builtin/checkout.c:675
+#: builtin/checkout.c:676
#, c-format
msgid "Switched to and reset branch '%s'\n"
msgstr "'%s' 브랜치로 전환하고 리셋합니다\n"
-#: builtin/checkout.c:677 builtin/checkout.c:1066
+#: builtin/checkout.c:678 builtin/checkout.c:1068
#, c-format
msgid "Switched to a new branch '%s'\n"
msgstr "새로 만든 '%s' 브랜치로 전환합니다\n"
-#: builtin/checkout.c:679
+#: builtin/checkout.c:680
#, c-format
msgid "Switched to branch '%s'\n"
msgstr "'%s' 브랜치로 전환합니다\n"
-#: builtin/checkout.c:731
+#: builtin/checkout.c:732
#, c-format
msgid " ... and %d more.\n"
msgstr " ... 그리고 %dê°œ ë”.\n"
-#: builtin/checkout.c:737
+#: builtin/checkout.c:738
#, c-format
msgid ""
"Warning: you are leaving %d commit behind, not connected to\n"
@@ -4101,7 +4271,7 @@ msgstr[0] ""
"\n"
"%s\n"
-#: builtin/checkout.c:756
+#: builtin/checkout.c:757
#, c-format
msgid ""
"If you want to keep it by creating a new branch, this may be a good time\n"
@@ -4122,151 +4292,151 @@ msgstr[0] ""
" git branch <새-브랜치-ì´ë¦„> %s\n"
"\n"
-#: builtin/checkout.c:792
+#: builtin/checkout.c:793
msgid "internal error in revision walk"
msgstr "리비전 walkì— ë‚´ë¶€ 오류"
-#: builtin/checkout.c:796
+#: builtin/checkout.c:797
msgid "Previous HEAD position was"
msgstr "ì´ì „ HEAD 위치는"
-#: builtin/checkout.c:823 builtin/checkout.c:1061
+#: builtin/checkout.c:824 builtin/checkout.c:1063
msgid "You are on a branch yet to be born"
msgstr "현재 위치가 만들 ì˜ˆì •ì¸ ë¸Œëžœì¹˜ì— ìžˆìŠµë‹ˆë‹¤"
-#: builtin/checkout.c:968
+#: builtin/checkout.c:969
#, c-format
msgid "only one reference expected, %d given."
msgstr "í•˜ë‚˜ì˜ ë ˆí¼ëŸ°ìŠ¤ë§Œ 지정해야 하지만 %d개를 지정했습니다."
-#: builtin/checkout.c:1007 builtin/worktree.c:213
+#: builtin/checkout.c:1009 builtin/worktree.c:211
#, c-format
msgid "invalid reference: %s"
msgstr "ìž˜ëª»ëœ ë ˆí¼ëŸ°ìŠ¤: %s"
-#: builtin/checkout.c:1036
+#: builtin/checkout.c:1038
#, c-format
msgid "reference is not a tree: %s"
msgstr "ë ˆí¼ëŸ°ìŠ¤ê°€ 트리가 아닙니다: %s"
-#: builtin/checkout.c:1075
+#: builtin/checkout.c:1077
msgid "paths cannot be used with switching branches"
msgstr "브랜치를 ì „í™˜í•˜ëŠ”ë° ê²½ë¡œë¥¼ 사용할 수 없습니다"
-#: builtin/checkout.c:1078 builtin/checkout.c:1082
+#: builtin/checkout.c:1080 builtin/checkout.c:1084
#, c-format
msgid "'%s' cannot be used with switching branches"
msgstr "'%s' ì˜µì…˜ì€ ë¸Œëžœì¹˜ë¥¼ 전환할 ë•Œ 쓸 수 없습니다"
-#: builtin/checkout.c:1086 builtin/checkout.c:1089 builtin/checkout.c:1094
-#: builtin/checkout.c:1097
+#: builtin/checkout.c:1088 builtin/checkout.c:1091 builtin/checkout.c:1096
+#: builtin/checkout.c:1099
#, c-format
msgid "'%s' cannot be used with '%s'"
msgstr "'%s' ì˜µì…˜ì€ '%s' 옵션과 ê°™ì´ ì“¸ 수 없습니다"
-#: builtin/checkout.c:1102
+#: builtin/checkout.c:1104
#, c-format
msgid "Cannot switch branch to a non-commit '%s'"
msgstr "브랜치를 ì»¤ë°‹ì´ ì•„ë‹Œ '%s'(으)ë¡œ 전환할 수 없습니다"
-#: builtin/checkout.c:1135 builtin/checkout.c:1137 builtin/clone.c:83
-#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:320
-#: builtin/worktree.c:322
+#: builtin/checkout.c:1137 builtin/checkout.c:1139 builtin/clone.c:84
+#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:318
+#: builtin/worktree.c:320
msgid "branch"
msgstr "브랜치"
-#: builtin/checkout.c:1136
+#: builtin/checkout.c:1138
msgid "create and checkout a new branch"
msgstr "새 브랜치를 만들고 가져옵니다"
-#: builtin/checkout.c:1138
+#: builtin/checkout.c:1140
msgid "create/reset and checkout a branch"
msgstr "브랜치를 만들거나 리셋하고 가져옵니다"
-#: builtin/checkout.c:1139
+#: builtin/checkout.c:1141
msgid "create reflog for new branch"
msgstr "새 ë¸Œëžœì¹˜ì— ëŒ€í•œ reflog를 만듭니다"
-#: builtin/checkout.c:1140
+#: builtin/checkout.c:1142
msgid "detach the HEAD at named commit"
msgstr "지정한 커밋ì—ì„œ HEAD를 분리합니다"
-#: builtin/checkout.c:1141
+#: builtin/checkout.c:1143
msgid "set upstream info for new branch"
msgstr "새 ë¸Œëžœì¹˜ì— ëŒ€í•œ 업스트림 정보를 설정합니다"
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
msgid "new-branch"
msgstr "새-브랜치"
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
msgid "new unparented branch"
msgstr "ìƒìœ„ 브랜치가 없는 새 브랜치"
-#: builtin/checkout.c:1144
+#: builtin/checkout.c:1146
msgid "checkout our version for unmerged files"
msgstr "병합ë˜ì§€ ì•Šì€ íŒŒì¼ì— 대해 우리쪽 ë²„ì „ì„ ê°€ì ¸ì˜µë‹ˆë‹¤"
-#: builtin/checkout.c:1146
+#: builtin/checkout.c:1148
msgid "checkout their version for unmerged files"
msgstr "병합ë˜ì§€ ì•Šì€ íŒŒì¼ì— 대해 ìƒëŒ€íŽ¸ ë²„ì „ì„ ê°€ì ¸ì˜µë‹ˆë‹¤"
-#: builtin/checkout.c:1148
+#: builtin/checkout.c:1150
msgid "force checkout (throw away local modifications)"
msgstr "강제로 ì²´í¬ì•„웃합니다 (로컬ì—ì„œ 수정한 ì‚¬í•­ì„ ë²„ë¦½ë‹ˆë‹¤)"
-#: builtin/checkout.c:1149
+#: builtin/checkout.c:1151
msgid "perform a 3-way merge with the new branch"
msgstr "새 ë¸Œëžœì¹˜ì— ëŒ€í•´ 3-ë°©í–¥ ë³‘í•©ì„ ìˆ˜í–‰í•©ë‹ˆë‹¤"
-#: builtin/checkout.c:1150 builtin/merge.c:227
+#: builtin/checkout.c:1152 builtin/merge.c:227
msgid "update ignored files (default)"
msgstr "무시하는 파ì¼ì„ ì—…ë°ì´íŠ¸í•©ë‹ˆë‹¤ (기본값)"
-#: builtin/checkout.c:1151 builtin/log.c:1266 parse-options.h:250
+#: builtin/checkout.c:1153 builtin/log.c:1269 parse-options.h:250
msgid "style"
msgstr "스타ì¼"
-#: builtin/checkout.c:1152
+#: builtin/checkout.c:1154
msgid "conflict style (merge or diff3)"
msgstr "ì¶©ëŒ ìŠ¤íƒ€ì¼ (merge ë˜ëŠ” diff3)"
# FIXME: ì˜ë¯¸ 불명
-#: builtin/checkout.c:1155
+#: builtin/checkout.c:1157
msgid "do not limit pathspecs to sparse entries only"
msgstr "경로명세를 드문 항목ì—만 제한하지 않습니다"
-#: builtin/checkout.c:1157
+#: builtin/checkout.c:1159
msgid "second guess 'git checkout <no-such-branch>'"
msgstr "'git checkout <없는-브랜치>'ì— ëŒ€í•´ 추측합니다"
-#: builtin/checkout.c:1159
+#: builtin/checkout.c:1161
msgid "do not check if another worktree is holding the given ref"
msgstr "다른 ìž‘ì—…í´ë”ì— ì£¼ì–´ì§„ ë ˆí¼ëŸ°ìŠ¤ê°€ 있는지 확ì¸í•˜ì§€ 않습니다"
-#: builtin/checkout.c:1160 builtin/clone.c:57 builtin/fetch.c:112
-#: builtin/merge.c:224 builtin/pull.c:109 builtin/push.c:558
+#: builtin/checkout.c:1162 builtin/clone.c:58 builtin/fetch.c:116
+#: builtin/merge.c:224 builtin/pull.c:113 builtin/push.c:526
#: builtin/send-pack.c:168
msgid "force progress reporting"
msgstr "강제로 진행 ìƒí™©ì„ 표시합니다"
-#: builtin/checkout.c:1191
+#: builtin/checkout.c:1193
msgid "-b, -B and --orphan are mutually exclusive"
msgstr "-b, -B ë° --orphan ì˜µì…˜ì€ ì„œë¡œ 호환ë˜ì§€ 않습니다"
-#: builtin/checkout.c:1208
+#: builtin/checkout.c:1210
msgid "--track needs a branch name"
msgstr "--track ì˜µì…˜ì€ ë¸Œëžœì¹˜ ì´ë¦„ì´ í•„ìš”í•©ë‹ˆë‹¤"
-#: builtin/checkout.c:1213
+#: builtin/checkout.c:1215
msgid "Missing branch name; try -b"
msgstr "브랜치 ì´ë¦„ì´ ì—†ìŠµë‹ˆë‹¤. -b ì˜µì…˜ì„ ì‚¬ìš©í•´ 보십시오"
-#: builtin/checkout.c:1249
+#: builtin/checkout.c:1251
msgid "invalid path specification"
msgstr "경로 명세가 잘못ë˜ì—ˆìŠµë‹ˆë‹¤"
-#: builtin/checkout.c:1256
+#: builtin/checkout.c:1258
#, c-format
msgid ""
"Cannot update paths and switch to branch '%s' at the same time.\n"
@@ -4275,12 +4445,12 @@ msgstr ""
"ë™ì‹œì— 경로를 ì—…ë°ì´íŠ¸í•˜ê³  '%s' 브랜치로 전환할 수 없습니다.\n"
"ì»¤ë°‹ì„ í™•ì¸í•  수 없는 '%s'ì„(를) 가져오려고 하셨습니까?"
-#: builtin/checkout.c:1261
+#: builtin/checkout.c:1263
#, c-format
msgid "git checkout: --detach does not take a path argument '%s'"
msgstr "git checkout: --detach ì˜µì…˜ì€ ê²½ë¡œ ì¸ìžë¥¼ 받지 않습니다 '%s'"
-#: builtin/checkout.c:1265
+#: builtin/checkout.c:1267
msgid ""
"git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
"checking out of the index."
@@ -4319,7 +4489,7 @@ msgstr "%s 저장소 건너뛸 예정\n"
msgid "failed to remove %s"
msgstr "%s ì œê±°ì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
-#: builtin/clean.c:315
+#: builtin/clean.c:291
msgid ""
"Prompt help:\n"
"1 - select a numbered item\n"
@@ -4331,7 +4501,7 @@ msgstr ""
"foo - 유ì¼í•œ ì ‘ë‘ì–´ì— í•´ë‹¹í•˜ëŠ” 항목 ì„ íƒ\n"
" - (빈 ìž…ë ¥) ì„ íƒí•˜ì§€ ì•ŠìŒ"
-#: builtin/clean.c:319
+#: builtin/clean.c:295
msgid ""
"Prompt help:\n"
"1 - select a single item\n"
@@ -4351,36 +4521,36 @@ msgstr ""
"* - 모든 항목 ì„ íƒ\n"
" - (빈 ìž…ë ¥) ì„ íƒ ë§ˆì¹¨"
-#: builtin/clean.c:535
+#: builtin/clean.c:511
#, c-format
msgid "Huh (%s)?"
msgstr "ì–´ë¼ë¼ (%s)?"
-#: builtin/clean.c:677
+#: builtin/clean.c:653
#, c-format
msgid "Input ignore patterns>> "
msgstr "무시할 íŒ¨í„´ì„ ìž…ë ¥í•˜ì‹­ì‹œì˜¤>> "
-#: builtin/clean.c:714
+#: builtin/clean.c:690
#, c-format
msgid "WARNING: Cannot find items matched by: %s"
msgstr "경고: 다ìŒì— 해당하는 í•­ëª©ì„ ì°¾ì„ ìˆ˜ 없습니다: %s"
-#: builtin/clean.c:735
+#: builtin/clean.c:711
msgid "Select items to delete"
msgstr "삭제할 í•­ëª©ì„ ì„ íƒí•˜ì‹­ì‹œì˜¤"
#. TRANSLATORS: Make sure to keep [y/N] as is
-#: builtin/clean.c:776
+#: builtin/clean.c:752
#, c-format
msgid "Remove %s [y/N]? "
msgstr "%s 제거합니까 [y/N]? "
-#: builtin/clean.c:801
+#: builtin/clean.c:777
msgid "Bye."
msgstr "ë."
-#: builtin/clean.c:809
+#: builtin/clean.c:785
msgid ""
"clean - start cleaning\n"
"filter by pattern - exclude items from deletion\n"
@@ -4398,215 +4568,236 @@ msgstr ""
"help - ì´ í™”ë©´ 표시\n"
"? - 프롬프트 ì„ íƒ ë„움ë§"
-#: builtin/clean.c:836
+#: builtin/clean.c:812
msgid "*** Commands ***"
msgstr "*** 명령 ***"
-#: builtin/clean.c:837
+#: builtin/clean.c:813
msgid "What now"
msgstr "ë¬´ì—‡ì„ í• ê¹Œìš”"
-#: builtin/clean.c:845
+#: builtin/clean.c:821
msgid "Would remove the following item:"
msgid_plural "Would remove the following items:"
msgstr[0] "ë‹¤ìŒ í•­ëª©ì„ ì œê±°í•  예정입니다:"
-#: builtin/clean.c:862
+#: builtin/clean.c:838
msgid "No more files to clean, exiting."
msgstr "지울 파ì¼ì´ ì´ì œ 없으므로 ë냅니다."
-#: builtin/clean.c:893
+#: builtin/clean.c:869
msgid "do not print names of files removed"
msgstr "제거할 íŒŒì¼ ì´ë¦„ì„ í‘œì‹œí•˜ì§€ 않습니다"
-#: builtin/clean.c:895
+#: builtin/clean.c:871
msgid "force"
msgstr "강제"
-#: builtin/clean.c:896
+#: builtin/clean.c:872
msgid "interactive cleaning"
msgstr "대화형 지우기"
-#: builtin/clean.c:898
+#: builtin/clean.c:874
msgid "remove whole directories"
msgstr "전체 디렉터리 제거"
-#: builtin/clean.c:899 builtin/describe.c:407 builtin/grep.c:709
-#: builtin/ls-files.c:443 builtin/name-rev.c:307 builtin/show-ref.c:182
+#: builtin/clean.c:875 builtin/describe.c:407 builtin/grep.c:722
+#: builtin/ls-files.c:456 builtin/name-rev.c:307 builtin/show-ref.c:182
msgid "pattern"
msgstr "패턴"
-#: builtin/clean.c:900
+#: builtin/clean.c:876
msgid "add <pattern> to ignore rules"
msgstr "ê·œì¹™ì„ ë¬´ì‹œí•˜ë ¤ë©´ <패턴>ì„ ì¶”ê°€í•˜ì‹­ì‹œì˜¤"
-#: builtin/clean.c:901
+#: builtin/clean.c:877
msgid "remove ignored files, too"
msgstr "무시한 파ì¼ë„ 제거"
-#: builtin/clean.c:903
+#: builtin/clean.c:879
msgid "remove only ignored files"
msgstr "무시한 파ì¼ë§Œ 제거"
-#: builtin/clean.c:921
+#: builtin/clean.c:897
msgid "-x and -X cannot be used together"
msgstr "-x ë° -X ì˜µì…˜ì€ ê°™ì´ ì“¸ 수 없습니다"
-#: builtin/clean.c:925
+#: builtin/clean.c:901
msgid ""
"clean.requireForce set to true and neither -i, -n, nor -f given; refusing to "
"clean"
-msgstr "clean.requireForceê°€ trueë¡œ 설정ë˜ì—ˆê³  -i, -n, -f 옵션 중 í•˜ë‚˜ë„ ì“°ì§€ 않았습니다. 지우지 않습니다"
+msgstr ""
+"clean.requireForceê°€ trueë¡œ 설정ë˜ì—ˆê³  -i, -n, -f 옵션 중 í•˜ë‚˜ë„ ì“°ì§€ 않았습"
+"니다. 지우지 않습니다"
-#: builtin/clean.c:928
+#: builtin/clean.c:904
msgid ""
"clean.requireForce defaults to true and neither -i, -n, nor -f given; "
"refusing to clean"
-msgstr "clean.requireForce ê¸°ë³¸ê°’ì´ trueì´ê³  -i, -n, -f 옵션 중 í•˜ë‚˜ë„ ì“°ì§€ 않았습니다. 지우지 않습니다"
+msgstr ""
+"clean.requireForce ê¸°ë³¸ê°’ì´ trueì´ê³  -i, -n, -f 옵션 중 í•˜ë‚˜ë„ ì“°ì§€ 않았습니"
+"다. 지우지 않습니다"
#: builtin/clone.c:37
msgid "git clone [<options>] [--] <repo> [<dir>]"
msgstr "git clone [<옵션>] [--] <저장소> [<디렉터리>]"
-#: builtin/clone.c:59
+#: builtin/clone.c:60
msgid "don't create a checkout"
msgstr "ì²´í¬ì•„ì›ƒì„ ë§Œë“¤ì§€ 않습니다"
-#: builtin/clone.c:60 builtin/clone.c:62 builtin/init-db.c:469
+#: builtin/clone.c:61 builtin/clone.c:63 builtin/init-db.c:469
msgid "create a bare repository"
msgstr "간략한 저장소를 만듭니다"
-#: builtin/clone.c:64
+#: builtin/clone.c:65
msgid "create a mirror repository (implies bare)"
msgstr "미러 저장소를 만듭니다 (간략한 저장소로 취급)"
-#: builtin/clone.c:66
+#: builtin/clone.c:67
msgid "to clone from a local repository"
msgstr "로컬 저장소ì—ì„œ 복제합니다"
-#: builtin/clone.c:68
+#: builtin/clone.c:69
msgid "don't use local hardlinks, always copy"
msgstr "로컬 하드ë§í¬ë¥¼ 사용하지 ì•Šê³ , í•­ìƒ ë³µì‚¬í•©ë‹ˆë‹¤"
-#: builtin/clone.c:70
+#: builtin/clone.c:71
msgid "setup as shared repository"
msgstr "공유 저장소로 설정합니다"
-#: builtin/clone.c:72 builtin/clone.c:74
+#: builtin/clone.c:73 builtin/clone.c:75
msgid "initialize submodules in the clone"
msgstr "복제한 결과물ì—ì„œ 하위 ëª¨ë“ˆì„ ì´ˆê¸°í™”í•©ë‹ˆë‹¤"
-#: builtin/clone.c:75 builtin/init-db.c:466
+#: builtin/clone.c:76 builtin/init-db.c:466
msgid "template-directory"
msgstr "ì„œì‹-디렉터리"
-#: builtin/clone.c:76 builtin/init-db.c:467
+#: builtin/clone.c:77 builtin/init-db.c:467
msgid "directory from which templates will be used"
msgstr "ì„œì‹ì„ 사용할 디렉터리 위치"
-#: builtin/clone.c:78 builtin/submodule--helper.c:179
+#: builtin/clone.c:79 builtin/submodule--helper.c:173
msgid "reference repository"
msgstr "ë ˆí¼ëŸ°ìŠ¤ 저장소"
-#: builtin/clone.c:80
+#: builtin/clone.c:81
msgid "use --reference only while cloning"
msgstr "복제할 경우ì—만 --reference를 사용합니다"
-#: builtin/clone.c:81 builtin/column.c:26 builtin/merge-file.c:44
+#: builtin/clone.c:82 builtin/column.c:26 builtin/merge-file.c:44
msgid "name"
msgstr "ì´ë¦„"
-#: builtin/clone.c:82
+#: builtin/clone.c:83
msgid "use <name> instead of 'origin' to track upstream"
msgstr "업스트림 추ì ì— 'origin' 대신 <ì´ë¦„>ì„ ì‚¬ìš©í•©ë‹ˆë‹¤"
-#: builtin/clone.c:84
+#: builtin/clone.c:85
msgid "checkout <branch> instead of the remote's HEAD"
msgstr "ë¦¬ëª¨íŠ¸ì˜ HEAD 대신 <브랜치>를 가져옵니다"
-#: builtin/clone.c:86
+#: builtin/clone.c:87
msgid "path to git-upload-pack on the remote"
msgstr "ë¦¬ëª¨íŠ¸ì˜ git-upload-pack 경로"
-#: builtin/clone.c:87 builtin/fetch.c:113 builtin/grep.c:654 builtin/pull.c:186
+#: builtin/clone.c:88 builtin/fetch.c:117 builtin/grep.c:665 builtin/pull.c:193
msgid "depth"
msgstr "깊ì´"
-#: builtin/clone.c:88
+#: builtin/clone.c:89
msgid "create a shallow clone of that depth"
msgstr "지정한 깊ì´ì˜ ì–•ì€ ë³µì œë¥¼ 만듭니다"
-#: builtin/clone.c:90
+#: builtin/clone.c:91
msgid "clone only one branch, HEAD or --branch"
msgstr "í•˜ë‚˜ì˜ ë¸Œëžœì¹˜ë§Œ 복제합니다 (HEAD ë˜ëŠ” --branchë¡œ 지정)"
-#: builtin/clone.c:91 builtin/init-db.c:475
+#: builtin/clone.c:92 builtin/init-db.c:475
msgid "gitdir"
msgstr "gitdir"
-#: builtin/clone.c:92 builtin/init-db.c:476
+#: builtin/clone.c:93 builtin/init-db.c:476
msgid "separate git dir from working tree"
msgstr "깃 디렉터리를 ìž‘ì—… í´ë”와 ë³„ê°œì˜ ìœ„ì¹˜ì— ë†“ìŠµë‹ˆë‹¤"
-#: builtin/clone.c:93
+#: builtin/clone.c:94
msgid "key=value"
msgstr "키=값"
-#: builtin/clone.c:94
+#: builtin/clone.c:95
msgid "set config inside the new repository"
msgstr "새 저장소 안ì—ì„œ 설정합니다"
-#: builtin/clone.c:300
+#: builtin/clone.c:96 builtin/fetch.c:131 builtin/push.c:536
+msgid "use IPv4 addresses only"
+msgstr "IPv4 주소만 사용합니다"
+
+#: builtin/clone.c:98 builtin/fetch.c:133 builtin/push.c:538
+msgid "use IPv6 addresses only"
+msgstr "IPv6 주소만 사용합니다"
+
+#: builtin/clone.c:239
+msgid ""
+"No directory name could be guessed.\n"
+"Please specify a directory on the command line"
+msgstr ""
+"디렉터리 ì´ë¦„ì„ ì•Œì•„ë‚¼ 수 없습니다.\n"
+"명령행ì—ì„œ 디렉터리를 지정하십시오"
+
+#: builtin/clone.c:305
#, c-format
msgid "reference repository '%s' as a linked checkout is not supported yet."
-msgstr "ë ˆí¼ëŸ°ìŠ¤ '%s' 저장소를 ì—°ê²°ëœ ì²´í¬ì•„웃으로 쓰기는 ì•„ì§ ì§€ì›í•˜ì§€ 않습니다."
+msgstr ""
+"ë ˆí¼ëŸ°ìŠ¤ '%s' 저장소를 ì—°ê²°ëœ ì²´í¬ì•„웃으로 쓰기는 ì•„ì§ ì§€ì›í•˜ì§€ 않습니다."
-#: builtin/clone.c:302
+#: builtin/clone.c:307
#, c-format
msgid "reference repository '%s' is not a local repository."
msgstr "ë ˆí¼ëŸ°ìŠ¤ '%s' 저장소가 로컬 저장소가 아닙니다."
-#: builtin/clone.c:307
+#: builtin/clone.c:312
#, c-format
msgid "reference repository '%s' is shallow"
msgstr "ë ˆí¼ëŸ°ìŠ¤ '%s' 저장소가 ì–•ì€ ì €ìž¥ì†Œìž…ë‹ˆë‹¤"
-#: builtin/clone.c:310
+#: builtin/clone.c:315
#, c-format
msgid "reference repository '%s' is grafted"
msgstr "ë ˆí¼ëŸ°ìŠ¤ '%s' 저장소가 붙어 있는 저장소입니다"
-#: builtin/clone.c:375 builtin/diff.c:84
+#: builtin/clone.c:380 builtin/diff.c:84
#, c-format
msgid "failed to stat '%s'"
msgstr "'%s'ì— ëŒ€í•´ stat()ì´ ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
-#: builtin/clone.c:377
+#: builtin/clone.c:382
#, c-format
msgid "%s exists and is not a directory"
msgstr "'%s'ì´(ê°€) 있지만 디렉터리가 아닙니다"
-#: builtin/clone.c:391
+#: builtin/clone.c:396
#, c-format
msgid "failed to stat %s\n"
msgstr "'%s'ì— ëŒ€í•´ stat()ì´ ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤\n"
-#: builtin/clone.c:413
+#: builtin/clone.c:418
#, c-format
msgid "failed to create link '%s'"
msgstr "'%s' ë§í¬ë¥¼ ë§Œë“œëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
-#: builtin/clone.c:417
+#: builtin/clone.c:422
#, c-format
msgid "failed to copy file to '%s'"
msgstr "파ì¼ì„ '%s'(으)ë¡œ ë³µì‚¬í•˜ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
-#: builtin/clone.c:442 builtin/clone.c:626
+#: builtin/clone.c:447 builtin/clone.c:631
#, c-format
msgid "done.\n"
msgstr "완료.\n"
-#: builtin/clone.c:454
+#: builtin/clone.c:459
msgid ""
"Clone succeeded, but checkout failed.\n"
"You can inspect what was checked out with 'git status'\n"
@@ -4616,117 +4807,127 @@ msgstr ""
"'git status' 명령으로 ë¬´ì—‡ì„ ì²´í¬ì•„웃했는지 살펴볼 수 있고\n"
"'git checkout -f HEAD'ë¡œ ì²´í¬ì•„ì›ƒì„ ë‹¤ì‹œ í•  수 있습니다\n"
-#: builtin/clone.c:531
+#: builtin/clone.c:536
#, c-format
msgid "Could not find remote branch %s to clone."
msgstr "복제할 ë¦¬ëª¨íŠ¸ì˜ %s 브랜치를 ì°¾ì„ ìˆ˜ 없습니다."
-#: builtin/clone.c:621
+#: builtin/clone.c:626
#, c-format
msgid "Checking connectivity... "
msgstr "ì—°ê²°ì„ í™•ì¸í•˜ëŠ” 중입니다..."
-#: builtin/clone.c:624
+#: builtin/clone.c:629
msgid "remote did not send all necessary objects"
msgstr "리모트ì—ì„œ 필요한 오브ì íŠ¸ë¥¼ ëª¨ë‘ ë³´ë‚´ì§€ 않았습니다"
-#: builtin/clone.c:688
+#: builtin/clone.c:647
+#, c-format
+msgid "unable to update %s"
+msgstr "%sì„(를) ì—…ë°ì´íŠ¸í•  수 없습니다"
+
+#: builtin/clone.c:696
msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
msgstr "리모트 HEADê°€ 없는 ë ˆí¼ëŸ°ìŠ¤ë¥¼ 참고하므로, ì²´í¬ì•„웃할 수 없습니다.\n"
-#: builtin/clone.c:719
+#: builtin/clone.c:727
msgid "unable to checkout working tree"
msgstr "ìž‘ì—… í´ë”를 ì²´í¬ì•„웃할 수 없습니다"
-#: builtin/clone.c:808
+#: builtin/clone.c:753
+msgid "unable to write parameters to config file"
+msgstr "파ë¼ë¯¸í„°ë¥¼ 설정 파ì¼ì— 쓸 수 없습니다"
+
+#: builtin/clone.c:816
msgid "cannot repack to clean up"
msgstr "정리용으로 repack할 수 없습니다"
-#: builtin/clone.c:810
+#: builtin/clone.c:818
msgid "cannot unlink temporary alternates file"
msgstr "ë³´ì¡° ìž„ì‹œ 파ì¼ì„ 삭제할 수 없습니다"
-#: builtin/clone.c:842
+#: builtin/clone.c:850
msgid "Too many arguments."
msgstr "너무 ì¸ìžê°€ 많습니다."
-#: builtin/clone.c:846
+#: builtin/clone.c:854
msgid "You must specify a repository to clone."
msgstr "복제할 저장소를 지정해야 합니다."
-#: builtin/clone.c:857
+#: builtin/clone.c:865
#, c-format
msgid "--bare and --origin %s options are incompatible."
msgstr "--bare ë° --origin %s ì˜µì…˜ì€ í˜¸í™˜ë˜ì§€ 않습니다."
-#: builtin/clone.c:860
+#: builtin/clone.c:868
msgid "--bare and --separate-git-dir are incompatible."
msgstr "--bare ë° --separate-git-dir ì˜µì…˜ì€ í˜¸í™˜ë˜ì§€ 않습니다."
-#: builtin/clone.c:873
+#: builtin/clone.c:881
#, c-format
msgid "repository '%s' does not exist"
msgstr "'%s' 저장소가 없습니다"
-#: builtin/clone.c:879 builtin/fetch.c:1166
+#: builtin/clone.c:887 builtin/fetch.c:1174
#, c-format
msgid "depth %s is not a positive number"
msgstr "깊ì´ê°€(%s) 0보다 í° ìˆ˜ê°€ 아닙니다"
-#: builtin/clone.c:889
+#: builtin/clone.c:897
#, c-format
msgid "destination path '%s' already exists and is not an empty directory."
msgstr "ëŒ€ìƒ ê²½ë¡œê°€('%s') ì´ë¯¸ 있고 빈 디렉터리가 아닙니다."
-#: builtin/clone.c:899
+#: builtin/clone.c:907
#, c-format
msgid "working tree '%s' already exists."
msgstr "ìž‘ì—… í´ë”ê°€('%s') ì´ë¯¸ 있습니다."
-#: builtin/clone.c:914 builtin/clone.c:925 builtin/submodule--helper.c:224
-#: builtin/worktree.c:221 builtin/worktree.c:248
+#: builtin/clone.c:922 builtin/clone.c:933 builtin/submodule--helper.c:218
+#: builtin/worktree.c:219 builtin/worktree.c:246
#, c-format
msgid "could not create leading directories of '%s'"
msgstr "'%s'ì˜ ì•ž 디렉터리를 만들 수 없습니다"
-#: builtin/clone.c:917
+#: builtin/clone.c:925
#, c-format
msgid "could not create work tree dir '%s'"
msgstr "작업 디렉터리를('%s') 만들 수 없습니다"
-#: builtin/clone.c:935
+#: builtin/clone.c:943
#, c-format
msgid "Cloning into bare repository '%s'...\n"
msgstr "간략한 저장소로('%s') 복제합니다...\n"
-#: builtin/clone.c:937
+#: builtin/clone.c:945
#, c-format
msgid "Cloning into '%s'...\n"
msgstr "'%s'ì— ë³µì œí•©ë‹ˆë‹¤...\n"
-#: builtin/clone.c:975
+#: builtin/clone.c:984
msgid "--depth is ignored in local clones; use file:// instead."
-msgstr "--depth ì˜µì…˜ì€ ë¡œì»¬ 복제ì—ì„œ 무시ë©ë‹ˆë‹¤. ëŒ€ì‹ ì— 'file://'ì„ ì‚¬ìš©í•˜ì‹­ì‹œì˜¤."
+msgstr ""
+"--depth ì˜µì…˜ì€ ë¡œì»¬ 복제ì—ì„œ 무시ë©ë‹ˆë‹¤. ëŒ€ì‹ ì— 'file://'ì„ ì‚¬ìš©í•˜ì‹­ì‹œì˜¤."
-#: builtin/clone.c:978
+#: builtin/clone.c:987
msgid "source repository is shallow, ignoring --local"
msgstr "ì›ë³¸ 저장소가 ì–•ì€ ì €ìž¥ì†Œì´ë¯€ë¡œ, --local ì˜µì…˜ì„ ë¬´ì‹œí•©ë‹ˆë‹¤"
-#: builtin/clone.c:983
+#: builtin/clone.c:992
msgid "--local is ignored"
msgstr "--local ì˜µì…˜ì€ ë¬´ì‹œë©ë‹ˆë‹¤"
-#: builtin/clone.c:987
+#: builtin/clone.c:996
#, c-format
msgid "Don't know how to clone %s"
msgstr "%sì˜ ë³µì œ ë°©ë²•ì„ ì•Œì§€ 못합니다"
-#: builtin/clone.c:1036 builtin/clone.c:1044
+#: builtin/clone.c:1045 builtin/clone.c:1053
#, c-format
msgid "Remote branch %s not found in upstream %s"
msgstr "ë¦¬ëª¨íŠ¸ì˜ %s 브랜치가 업스트림 %sì— ì—†ìŠµë‹ˆë‹¤"
-#: builtin/clone.c:1047
+#: builtin/clone.c:1056
msgid "You appear to have cloned an empty repository."
msgstr "빈 저장소를 복제한 것처럼 보입니다."
@@ -4938,7 +5139,7 @@ msgstr ""
msgid "could not lookup commit %s"
msgstr "%s ì»¤ë°‹ì„ ì°¾ì•„ë³¼ 수 없습니다"
-#: builtin/commit.c:702 builtin/shortlog.c:273
+#: builtin/commit.c:702 builtin/shortlog.c:285
#, c-format
msgid "(reading log message from standard input)\n"
msgstr "(표준 ìž…ë ¥ì—ì„œ 로그 메시지를 ì½ìŒ)\n"
@@ -5105,7 +5306,8 @@ msgstr "기발하네요... ë§ˆì§€ë§‰ì„ ë³€ê²½ëœ ì¸ë±ìŠ¤ë¡œ 바꿉니다."
#: builtin/commit.c:1197
msgid "Explicit paths specified without -i or -o; assuming --only paths..."
-msgstr "-i ë˜ëŠ” -o ì—†ì´ ëª…ì‹œì ì¸ 경로를 지정했습니다. --only 경로를 가정합니다..."
+msgstr ""
+"-i ë˜ëŠ” -o ì—†ì´ ëª…ì‹œì ì¸ 경로를 지정했습니다. --only 경로를 가정합니다..."
#: builtin/commit.c:1209 builtin/tag.c:475
#, c-format
@@ -5124,8 +5326,8 @@ msgstr "ìƒíƒœë¥¼ 간략하게 표시합니다"
msgid "show branch information"
msgstr "브랜치 정보를 표시합니다"
-#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:544
-#: builtin/worktree.c:423
+#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:512
+#: builtin/worktree.c:430
msgid "machine-readable output"
msgstr "컴퓨터가 ì½ì„ 수 있는 형ì‹"
@@ -5144,7 +5346,8 @@ msgstr "모드"
#: builtin/commit.c:1337 builtin/commit.c:1617
msgid "show untracked files, optional modes: all, normal, no. (Default: all)"
-msgstr "추ì ë˜ì§€ 않는 파ì¼ì„ 표시합니다. 추가 옵션: all, normal, no (기본값: all)"
+msgstr ""
+"추ì ë˜ì§€ 않는 파ì¼ì„ 표시합니다. 추가 옵션: all, normal, no (기본값: all)"
#: builtin/commit.c:1340
msgid "show ignored files"
@@ -5158,7 +5361,9 @@ msgstr "언제"
msgid ""
"ignore changes to submodules, optional when: all, dirty, untracked. "
"(Default: all)"
-msgstr "하위 ëª¨ë“ˆì˜ ë³€ê²½ì„ ë¬´ì‹œí•©ë‹ˆë‹¤. 추가 옵션: all, dirty, untracked. (기본값: all)"
+msgstr ""
+"하위 ëª¨ë“ˆì˜ ë³€ê²½ì„ ë¬´ì‹œí•©ë‹ˆë‹¤. 추가 옵션: all, dirty, untracked. (기본값: "
+"all)"
#: builtin/commit.c:1344
msgid "list untracked files in columns"
@@ -5212,8 +5417,8 @@ msgstr "ì‹œê°"
msgid "override date for commit"
msgstr "ì»¤ë°‹ì˜ ì‹œê°ì„ 지정합니다"
-#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:392
-#: builtin/notes.c:555 builtin/tag.c:349
+#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:395
+#: builtin/notes.c:558 builtin/tag.c:349
msgid "message"
msgstr "메시지"
@@ -5246,7 +5451,7 @@ msgstr "지정한 ì»¤ë°‹ì„ í•©ì¹˜ëŠ”ë° autosquash í˜•ì‹ ë©”ì‹œì§€ë¥¼ 사용í•
msgid "the commit is authored by me now (used with -C/-c/--amend)"
msgstr "ì»¤ë°‹ì„ ë‚´ê°€ 작성한 것으로 만듭니다 (-C/-c/--amend와 ê°™ì´ ì‚¬ìš©)"
-#: builtin/commit.c:1588 builtin/log.c:1216 builtin/revert.c:86
+#: builtin/commit.c:1588 builtin/log.c:1219 builtin/revert.c:86
msgid "add Signed-off-by:"
msgstr "Signed-off-by: ì¤„ì„ ì¶”ê°€í•©ë‹ˆë‹¤"
@@ -5270,7 +5475,7 @@ msgstr "메시지ì—ì„œ 공백과 #주ì„ì„ ì§€ì›ë‹ˆë‹¤"
msgid "include status in commit message template"
msgstr "커밋 메시지 ì„œì‹ì— ìƒíƒœë¥¼ í¬í•¨í•©ë‹ˆë‹¤"
-#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:156
+#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:160
#: builtin/revert.c:93
msgid "GPG sign commit"
msgstr "GPG 서명 커밋"
@@ -5361,139 +5566,143 @@ msgstr ""
"없습니다. 디스í¬ê°€ 꽉 차지 않았고 제한 ìš©ëŸ‰ì„ ë„˜ì–´ê°€ì§€\n"
"않았는지 확ì¸í•˜ì‹­ì‹œì˜¤. 그리고 'git reset HEAD'ë¡œ 복구하십시오."
-#: builtin/config.c:8
+#: builtin/config.c:9
msgid "git config [<options>]"
msgstr "git config [<옵션>]"
-#: builtin/config.c:54
+#: builtin/config.c:56
msgid "Config file location"
msgstr "설정 íŒŒì¼ ìœ„ì¹˜"
-#: builtin/config.c:55
+#: builtin/config.c:57
msgid "use global config file"
msgstr "공통 설정 파ì¼ì„ 사용합니다"
-#: builtin/config.c:56
+#: builtin/config.c:58
msgid "use system config file"
msgstr "시스템 설정 파ì¼ì„ 사용합니다"
-#: builtin/config.c:57
+#: builtin/config.c:59
msgid "use repository config file"
msgstr "저장소 설정 파ì¼ì„ 사용합니다"
-#: builtin/config.c:58
+#: builtin/config.c:60
msgid "use given config file"
msgstr "지정한 설정 파ì¼ì„ 사용합니다"
-#: builtin/config.c:59
+#: builtin/config.c:61
msgid "blob-id"
msgstr "블롭-id"
-#: builtin/config.c:59
+#: builtin/config.c:61
msgid "read config from given blob object"
msgstr "지정한 블롭 오브ì íŠ¸ì—ì„œ ì„¤ì •ì„ ì½ìŠµë‹ˆë‹¤"
-#: builtin/config.c:60
+#: builtin/config.c:62
msgid "Action"
msgstr "ë™ìž‘"
-#: builtin/config.c:61
+#: builtin/config.c:63
msgid "get value: name [value-regex]"
msgstr "ê°’ì„ ê°€ì ¸ì˜µë‹ˆë‹¤: <ì´ë¦„> [<ê°’-ì •ê·œì‹>]"
-#: builtin/config.c:62
+#: builtin/config.c:64
msgid "get all values: key [value-regex]"
msgstr "모든 ê°’ì„ ê°€ì ¸ì˜µë‹ˆë‹¤: <키> [<ê°’-ì •ê·œì‹>]"
-#: builtin/config.c:63
+#: builtin/config.c:65
msgid "get values for regexp: name-regex [value-regex]"
msgstr "ì •ê·œì‹ì— 대한 ê°’ì„ ê°€ì ¸ì˜µë‹ˆë‹¤: <ì´ë¦„-ì •ê·œì‹> [<ê°’-ì •ê·œì‹>]"
-#: builtin/config.c:64
+#: builtin/config.c:66
msgid "get value specific for the URL: section[.var] URL"
msgstr "<URL>ì— íŠ¹ì •ë˜ëŠ” ê°’ì„ ê°€ì ¸ì˜µë‹ˆë‹¤: <섹션>[.<변수>] <URL>"
-#: builtin/config.c:65
+#: builtin/config.c:67
msgid "replace all matching variables: name value [value_regex]"
msgstr "해당하는 변수를 ëª¨ë‘ ì œê±°í•©ë‹ˆë‹¤: <ì´ë¦„> <ê°’> [<ê°’-ì •ê·œì‹>]"
-#: builtin/config.c:66
+#: builtin/config.c:68
msgid "add a new variable: name value"
msgstr "새 변수를 추가합니다: <ì´ë¦„> <ê°’>"
-#: builtin/config.c:67
+#: builtin/config.c:69
msgid "remove a variable: name [value-regex]"
msgstr "변수를 제거합니다: <ì´ë¦„> [<ê°’-ì •ê·œì‹>]"
-#: builtin/config.c:68
+#: builtin/config.c:70
msgid "remove all matches: name [value-regex]"
msgstr "해당하는 í•­ëª©ì„ ëª¨ë‘ ì œê±°í•©ë‹ˆë‹¤: <ì´ë¦„> [<ê°’-ì •ê·œì‹>]"
-#: builtin/config.c:69
+#: builtin/config.c:71
msgid "rename section: old-name new-name"
msgstr "ì„¹ì…˜ì˜ ì´ë¦„ì„ ë°”ê¿‰ë‹ˆë‹¤: <옛-ì´ë¦„> <새-ì´ë¦„>"
-#: builtin/config.c:70
+#: builtin/config.c:72
msgid "remove a section: name"
msgstr "ì„¹ì…˜ì„ ì œê±°í•©ë‹ˆë‹¤: <ì´ë¦„>"
-#: builtin/config.c:71
+#: builtin/config.c:73
msgid "list all"
msgstr "ì „ì²´ 목ë¡ì„ 표시합니다"
-#: builtin/config.c:72
+#: builtin/config.c:74
msgid "open an editor"
msgstr "편집기를 엽니다"
-#: builtin/config.c:73
+#: builtin/config.c:75
msgid "find the color configured: slot [default]"
msgstr "설정한 ìƒ‰ì„ ì°¾ìŠµë‹ˆë‹¤: slot [<기본값>]"
-#: builtin/config.c:74
+#: builtin/config.c:76
msgid "find the color setting: slot [stdout-is-tty]"
msgstr "색 ì„¤ì •ì„ ì°¾ìŠµë‹ˆë‹¤: slot [<표준출력ì´-TTYì¸ì§€-여부>]"
-#: builtin/config.c:75
+#: builtin/config.c:77
msgid "Type"
msgstr "값 종류"
-#: builtin/config.c:76
+#: builtin/config.c:78
msgid "value is \"true\" or \"false\""
msgstr "ê°’ì´ \"true\" ë˜ëŠ” \"false\"입니다"
-#: builtin/config.c:77
+#: builtin/config.c:79
msgid "value is decimal number"
msgstr "ê°’ì´ ì‹­ì§„ìˆ˜ìž…ë‹ˆë‹¤"
-#: builtin/config.c:78
+#: builtin/config.c:80
msgid "value is --bool or --int"
msgstr "ê°’ì´ --bool ë˜ëŠ” --int입니다"
-#: builtin/config.c:79
+#: builtin/config.c:81
msgid "value is a path (file or directory name)"
msgstr "ê°’ì´ ê²½ë¡œ(íŒŒì¼ ë˜ëŠ” 디렉터리 ì´ë¦„)입니다"
-#: builtin/config.c:80
+#: builtin/config.c:82
msgid "Other"
msgstr "기타"
-#: builtin/config.c:81
+#: builtin/config.c:83
msgid "terminate values with NUL byte"
msgstr "ê°’ì„ NUL ë°”ì´íŠ¸ë¡œ ë냅니다"
-#: builtin/config.c:82
+#: builtin/config.c:84
msgid "show variable names only"
msgstr "변수 ì´ë¦„만 표시합니다"
-#: builtin/config.c:83
+#: builtin/config.c:85
msgid "respect include directives on lookup"
msgstr "찾아볼 때 include 지시어를 고려합니다"
-#: builtin/config.c:303
+#: builtin/config.c:86
+msgid "show origin of config (file, standard input, blob, command line)"
+msgstr "ì„¤ì •ì˜ ì¶œì²˜ë¥¼ 표시합니다 (파ì¼, 표준 ìž…ë ¥, 블롭, 명령행)"
+
+#: builtin/config.c:328
msgid "unable to parse default color value"
msgstr "기본 색 ê°’ì„ íŒŒì‹±í•  수 없습니다"
-#: builtin/config.c:441
+#: builtin/config.c:469
#, c-format
msgid ""
"# This is Git's per-user configuration file.\n"
@@ -5508,7 +5717,7 @@ msgstr ""
"#\tname = %s\n"
"#\temail = %s\n"
-#: builtin/config.c:575
+#: builtin/config.c:611
#, c-format
msgid "cannot create configuration file %s"
msgstr "%s 설정 파ì¼ì„ 만들 수 없습니다"
@@ -5758,161 +5967,165 @@ msgstr "git fetch --multiple [<옵션>] [(<저장소> | <그룹>)...]"
msgid "git fetch --all [<options>]"
msgstr "git fetch --all [<옵션>]"
-#: builtin/fetch.c:90 builtin/pull.c:162
+#: builtin/fetch.c:92 builtin/pull.c:166
msgid "fetch from all remotes"
msgstr "모든 리모트ì—ì„œ 가져옵니다"
-#: builtin/fetch.c:92 builtin/pull.c:165
+#: builtin/fetch.c:94 builtin/pull.c:169
msgid "append to .git/FETCH_HEAD instead of overwriting"
msgstr "ë®ì–´ì“°ì§€ ë§ê³  .git/FETCH_HEADì— ë§ë¶™ìž…니다"
-#: builtin/fetch.c:94 builtin/pull.c:168
+#: builtin/fetch.c:96 builtin/pull.c:172
msgid "path to upload pack on remote end"
msgstr "리모트 ìª½ì— ë¬¶ìŒì„ 업로드할 경로"
-#: builtin/fetch.c:95 builtin/pull.c:170
+#: builtin/fetch.c:97 builtin/pull.c:174
msgid "force overwrite of local branch"
msgstr "로컬 브랜치를 강제로 ë®ì–´ì”니다"
-#: builtin/fetch.c:97
+#: builtin/fetch.c:99
msgid "fetch from multiple remotes"
msgstr "여러 리모트ì—ì„œ 가져옵니다"
-#: builtin/fetch.c:99 builtin/pull.c:172
+#: builtin/fetch.c:101 builtin/pull.c:176
msgid "fetch all tags and associated objects"
msgstr "모든 태그와 관련 오브ì íŠ¸ë¥¼ 가져옵니다"
-#: builtin/fetch.c:101
+#: builtin/fetch.c:103
msgid "do not fetch all tags (--no-tags)"
msgstr "모든 태그를 가져오지 않습니다 (--no-tags)"
-#: builtin/fetch.c:103 builtin/pull.c:175
+#: builtin/fetch.c:105
+msgid "number of submodules fetched in parallel"
+msgstr "병렬ì ìœ¼ë¡œ 받아오는 하위모듈 개수"
+
+#: builtin/fetch.c:107 builtin/pull.c:179
msgid "prune remote-tracking branches no longer on remote"
msgstr "ë¦¬ëª¨íŠ¸ì— ì´ì œ 없는 리모트 ì¶”ì  ë¸Œëžœì¹˜ë¥¼ 잘ë¼ëƒ…니다"
-#: builtin/fetch.c:104 builtin/pull.c:178
+#: builtin/fetch.c:108 builtin/pull.c:182
msgid "on-demand"
msgstr "주문형"
-#: builtin/fetch.c:105 builtin/pull.c:179
+#: builtin/fetch.c:109 builtin/pull.c:183
msgid "control recursive fetching of submodules"
msgstr "하위 모듈 재귀ì ìœ¼ë¡œ 가져오기 ë°©ì‹ì„ 설정합니다"
-#: builtin/fetch.c:109 builtin/pull.c:184
+#: builtin/fetch.c:113 builtin/pull.c:191
msgid "keep downloaded pack"
msgstr "다운로드한 묶ìŒì„ 보존합니다"
-#: builtin/fetch.c:111
+#: builtin/fetch.c:115
msgid "allow updating of HEAD ref"
msgstr "HEAD ë ˆí¼ëŸ°ìŠ¤ ì—…ë°ì´íŠ¸ë¥¼ 허용합니다"
-#: builtin/fetch.c:114 builtin/pull.c:187
+#: builtin/fetch.c:118 builtin/pull.c:194
msgid "deepen history of shallow clone"
msgstr "ì–•ì€ ë³µì œì˜ ì»¤ë°‹ ë‚´ì—­ì„ ê¹Šê²Œ 만듭니다"
-#: builtin/fetch.c:116 builtin/pull.c:190
+#: builtin/fetch.c:120 builtin/pull.c:197
msgid "convert to a complete repository"
msgstr "완전한 저장소로 전환합니다"
-#: builtin/fetch.c:118 builtin/log.c:1233
+#: builtin/fetch.c:122 builtin/log.c:1236
msgid "dir"
msgstr "디렉터리"
-#: builtin/fetch.c:119
+#: builtin/fetch.c:123
msgid "prepend this to submodule path output"
msgstr "하위 모듈 경로 ì¶œë ¥ì˜ ì•žì— ì´ ë””ë ‰í„°ë¦¬ë¥¼ 붙입니다"
-#: builtin/fetch.c:122
+#: builtin/fetch.c:126
msgid "default mode for recursion"
msgstr "재귀 기본 모드"
-#: builtin/fetch.c:124 builtin/pull.c:193
+#: builtin/fetch.c:128 builtin/pull.c:200
msgid "accept refs that update .git/shallow"
msgstr ".git/shallow를 ì—…ë°ì´íŠ¸í•˜ëŠ” ë ˆí¼ëŸ°ìŠ¤ë¥¼ 허용합니다"
-#: builtin/fetch.c:125 builtin/pull.c:195
+#: builtin/fetch.c:129 builtin/pull.c:202
msgid "refmap"
msgstr "ë ˆí¼ëŸ°ìŠ¤ë§µ"
-#: builtin/fetch.c:126 builtin/pull.c:196
+#: builtin/fetch.c:130 builtin/pull.c:203
msgid "specify fetch refmap"
msgstr "ë ˆí¼ëŸ°ìŠ¤ë§µ 가져오기를 지정합니다"
-#: builtin/fetch.c:378
+#: builtin/fetch.c:386
msgid "Couldn't find remote ref HEAD"
msgstr "리모트 ë ˆí¼ëŸ°ìŠ¤ HEAD를 ì°¾ì„ ìˆ˜ 없습니다"
-#: builtin/fetch.c:458
+#: builtin/fetch.c:466
#, c-format
msgid "object %s not found"
msgstr "%s 오브ì íŠ¸ê°€ 없습니다"
-#: builtin/fetch.c:463
+#: builtin/fetch.c:471
msgid "[up to date]"
msgstr "[최신 ìƒíƒœ]"
-#: builtin/fetch.c:477
+#: builtin/fetch.c:485
#, c-format
msgid "! %-*s %-*s -> %s (can't fetch in current branch)"
msgstr "! %-*s %-*s -> %s (현재 브랜치ì—ì„œ 가져올 수 ì—†ìŒ)"
-#: builtin/fetch.c:478 builtin/fetch.c:566
+#: builtin/fetch.c:486 builtin/fetch.c:574
msgid "[rejected]"
msgstr "[거부ë¨]"
-#: builtin/fetch.c:489
+#: builtin/fetch.c:497
msgid "[tag update]"
msgstr "[태그 ì—…ë°ì´íŠ¸]"
-#: builtin/fetch.c:491 builtin/fetch.c:526 builtin/fetch.c:544
+#: builtin/fetch.c:499 builtin/fetch.c:534 builtin/fetch.c:552
msgid " (unable to update local ref)"
msgstr " (로컬 ë ˆí¼ëŸ°ìŠ¤ë¥¼ ì—…ë°ì´íŠ¸í•  수 ì—†ìŒ)"
-#: builtin/fetch.c:509
+#: builtin/fetch.c:517
msgid "[new tag]"
msgstr "[새로운 태그]"
-#: builtin/fetch.c:512
+#: builtin/fetch.c:520
msgid "[new branch]"
msgstr "[새로운 브랜치]"
-#: builtin/fetch.c:515
+#: builtin/fetch.c:523
msgid "[new ref]"
msgstr "[새로운 ë ˆí¼ëŸ°ìŠ¤]"
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
msgid "unable to update local ref"
msgstr "로컬 ë ˆí¼ëŸ°ìŠ¤ë¥¼ ì—…ë°ì´íŠ¸í•  수 없습니다"
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
msgid "forced update"
msgstr "ê°•ì œ ì—…ë°ì´íŠ¸"
-#: builtin/fetch.c:568
+#: builtin/fetch.c:576
msgid "(non-fast-forward)"
msgstr "(ì •ë°©í–¥ ì§„í–‰ì´ ì•„ë‹˜)"
-#: builtin/fetch.c:602 builtin/fetch.c:843
+#: builtin/fetch.c:610 builtin/fetch.c:851
#, c-format
msgid "cannot open %s: %s\n"
msgstr "%sì„(를) ì—´ 수 없습니다: %s\n"
-#: builtin/fetch.c:611
+#: builtin/fetch.c:619
#, c-format
msgid "%s did not send all necessary objects\n"
msgstr "%sì´(ê°€) 모든 필요한 오브ì íŠ¸ë¥¼ 보내지 않았습니다\n"
-#: builtin/fetch.c:629
+#: builtin/fetch.c:637
#, c-format
msgid "reject %s because shallow roots are not allowed to be updated"
msgstr "ì–•ì€ ìµœìƒìœ„ì˜ ì—…ë°ì´íŠ¸ê°€ 허용ë˜ì§€ 않으므로 %sì„(를) 거부합니다"
-#: builtin/fetch.c:716 builtin/fetch.c:808
+#: builtin/fetch.c:724 builtin/fetch.c:816
#, c-format
msgid "From %.*s\n"
msgstr "%.*s URLì—ì„œ\n"
-#: builtin/fetch.c:727
+#: builtin/fetch.c:735
#, c-format
msgid ""
"some local refs could not be updated; try running\n"
@@ -5921,55 +6134,55 @@ msgstr ""
"ì—…ë°ì´íŠ¸í•  수 없는 로컬 ë ˆí¼ëŸ°ìŠ¤ê°€ 있습니다. 과거 ì¶©ëŒ ë¸Œëžœì¹˜ë¥¼\n"
" 제거하려면 'git remote prune %s' ëª…ë ¹ì„ ì‹¤í–‰í•´ 보십시오"
-#: builtin/fetch.c:779
+#: builtin/fetch.c:787
#, c-format
msgid " (%s will become dangling)"
msgstr " (%s ë ˆí¼ëŸ°ìŠ¤ê°€ ì—°ê²°ì´ ëŠì–´ì§€ê²Œ ë©ë‹ˆë‹¤)"
-#: builtin/fetch.c:780
+#: builtin/fetch.c:788
#, c-format
msgid " (%s has become dangling)"
msgstr " (%s ë ˆí¼ëŸ°ìŠ¤ê°€ ì—°ê²°ì´ ëŠì–´ì¡ŒìŠµë‹ˆë‹¤)"
-#: builtin/fetch.c:812
+#: builtin/fetch.c:820
msgid "[deleted]"
msgstr "[ì‚­ì œë¨]"
-#: builtin/fetch.c:813 builtin/remote.c:1040
+#: builtin/fetch.c:821 builtin/remote.c:1025
msgid "(none)"
msgstr "(ì—†ìŒ)"
-#: builtin/fetch.c:833
+#: builtin/fetch.c:841
#, c-format
msgid "Refusing to fetch into current branch %s of non-bare repository"
msgstr "간략한 저장소가 ì•„ë‹Œ ì €ìž¥ì†Œì˜ í˜„ìž¬ %s 브랜치로 가져오기를 거절합니다"
-#: builtin/fetch.c:852
+#: builtin/fetch.c:860
#, c-format
msgid "Option \"%s\" value \"%s\" is not valid for %s"
msgstr "\"%s\" ì˜µì…˜ì˜ \"%s\" ê°’ì€ %sì— ëŒ€í•´ 올바르지 않습니다"
-#: builtin/fetch.c:855
+#: builtin/fetch.c:863
#, c-format
msgid "Option \"%s\" is ignored for %s\n"
msgstr "\"%s\" ì˜µì…˜ì€ '%s'ì— ëŒ€í•´ 무시ë©ë‹ˆë‹¤\n"
-#: builtin/fetch.c:911
+#: builtin/fetch.c:920
#, c-format
msgid "Don't know how to fetch from %s"
msgstr "'%s'ì—ì„œ 가져오는 ë°©ë²•ì„ ì•Œ 수 없습니다"
-#: builtin/fetch.c:1072
+#: builtin/fetch.c:1080
#, c-format
msgid "Fetching %s\n"
msgstr "%sì„(를) 가져오는 중\n"
-#: builtin/fetch.c:1074 builtin/remote.c:96
+#: builtin/fetch.c:1082 builtin/remote.c:96
#, c-format
msgid "Could not fetch %s"
msgstr "%sì„(를) 가져올 수 없습니다"
-#: builtin/fetch.c:1092
+#: builtin/fetch.c:1100
msgid ""
"No remote repository specified. Please, specify either a URL or a\n"
"remote name from which new revisions should be fetched."
@@ -5977,32 +6190,33 @@ msgstr ""
"리모트 저장소를 지정하지 않았습니다. 새 ë¦¬ë¹„ì „ì„ ê°€ì ¸ì˜¬ 수 있는\n"
"URLì´ë‚˜ 리모트 ì´ë¦„ì„ ì§€ì •í•˜ì‹­ì‹œì˜¤."
-#: builtin/fetch.c:1115
+#: builtin/fetch.c:1123
msgid "You need to specify a tag name."
msgstr "태그 ì´ë¦„ì„ ì§€ì •í•´ì•¼ 합니다."
-#: builtin/fetch.c:1157
+#: builtin/fetch.c:1165
msgid "--depth and --unshallow cannot be used together"
msgstr "--depth ë° --unshallow ì˜µì…˜ì€ ê°™ì´ ì“¸ 수 없습니다"
-#: builtin/fetch.c:1159
+#: builtin/fetch.c:1167
msgid "--unshallow on a complete repository does not make sense"
-msgstr "완전한 ì €ìž¥ì†Œì— ëŒ€í•´ --unshallow ì˜µì…˜ì„ ì‚¬ìš©í•˜ëŠ” ê±´ 앞뒤가 맞지 않습니다"
+msgstr ""
+"완전한 ì €ìž¥ì†Œì— ëŒ€í•´ --unshallow ì˜µì…˜ì„ ì‚¬ìš©í•˜ëŠ” ê±´ 앞뒤가 맞지 않습니다"
-#: builtin/fetch.c:1179
+#: builtin/fetch.c:1187
msgid "fetch --all does not take a repository argument"
msgstr "fetch --all ëª…ë ¹ì— ì €ìž¥ì†Œ ì¸ìžê°€ 없습니다"
-#: builtin/fetch.c:1181
+#: builtin/fetch.c:1189
msgid "fetch --all does not make sense with refspecs"
msgstr "fetch --all ëª…ë ¹ì€ ë ˆí¼ëŸ°ìŠ¤ëª…세 ì¸ìžì™€ ê°™ì´ ì“°ë©´ 앞뒤가 맞지 않습니다"
-#: builtin/fetch.c:1192
+#: builtin/fetch.c:1200
#, c-format
msgid "No such remote or remote group: %s"
msgstr "그런 리모트나 리모트 ê·¸ë£¹ì´ ì—†ìŠµë‹ˆë‹¤: %s"
-#: builtin/fetch.c:1200
+#: builtin/fetch.c:1208
msgid "Fetching a group and specifying refspecs does not make sense"
msgstr "ê·¸ë£¹ì„ ê°€ì ¸ì˜¤ê³  ë ˆí¼ëŸ°ìŠ¤ëª…세를 지정하면 앞뒤가 맞지 않습니다"
@@ -6212,235 +6426,253 @@ msgstr "ìˆ˜ë™ ê´€ë¦¬ ìž‘ì—…ì€ \"git help gc\" ë‚´ìš©ì„ ì°¸ê³ í•˜ì‹­ì‹œì˜¤.\n"
#, c-format
msgid ""
"gc is already running on machine '%s' pid %<PRIuMAX> (use --force if not)"
-msgstr "가비지컬렉터가 ì´ë¯¸ '%s' 컴퓨터ì—ì„œ %<PRIuMAX> PIDë¡œ 실행 중입니다 (아니면 --force를 사용하십시오)"
+msgstr ""
+"가비지컬렉터가 ì´ë¯¸ '%s' 컴퓨터ì—ì„œ %<PRIuMAX> PIDë¡œ 실행 중입니다 (아니면 --"
+"force를 사용하십시오)"
#: builtin/gc.c:441
msgid ""
"There are too many unreachable loose objects; run 'git prune' to remove them."
-msgstr "ëŠìŠ¨í•œ 오브ì íŠ¸ê°€ 너무 많습니다. 제거하려면 'git prune'ì„ ì‹¤í–‰í•˜ì‹­ì‹œì˜¤."
+msgstr ""
+"ëŠìŠ¨í•œ 오브ì íŠ¸ê°€ 너무 많습니다. 제거하려면 'git prune'ì„ ì‹¤í–‰í•˜ì‹­ì‹œì˜¤."
#: builtin/grep.c:23
msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]"
msgstr "git grep [<옵션>] [-e] <패턴> [<리비전>...] [[--] <경로>...]"
-#: builtin/grep.c:218
+#: builtin/grep.c:219
#, c-format
msgid "grep: failed to create thread: %s"
msgstr "grep: 스레드를 ë§Œë“œëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤: %s"
-#: builtin/grep.c:441 builtin/grep.c:476
+#: builtin/grep.c:277
+#, c-format
+msgid "invalid number of threads specified (%d) for %s"
+msgstr "ìž˜ëª»ëœ ìŠ¤ë ˆë“œ 수를 %2$sì— ëŒ€í•´ 지정했습니다 (%1$d)"
+
+#: builtin/grep.c:452 builtin/grep.c:487
#, c-format
msgid "unable to read tree (%s)"
msgstr "트리를 ì½ì„ 수 없습니다 (%s)"
-#: builtin/grep.c:491
+#: builtin/grep.c:502
#, c-format
msgid "unable to grep from object of type %s"
msgstr "종류가 %sì¸ ì˜¤ë¸Œì íŠ¸ì—ì„œ grepì„ í•  수 없습니다"
-#: builtin/grep.c:547
+#: builtin/grep.c:558
#, c-format
msgid "switch `%c' expects a numerical value"
msgstr "`%c' 옵션ì—는 ìˆ«ìž ê°’ì´ ì™€ì•¼ 합니다"
-#: builtin/grep.c:564
+#: builtin/grep.c:575
#, c-format
msgid "cannot open '%s'"
msgstr "'%s'ì„(를) ì—´ 수 없습니다"
-#: builtin/grep.c:633
+#: builtin/grep.c:644
msgid "search in index instead of in the work tree"
msgstr "ìž‘ì—… í´ë” ëŒ€ì‹ ì— ì¸ë±ìŠ¤ì—ì„œ 검색합니다"
-#: builtin/grep.c:635
+#: builtin/grep.c:646
msgid "find in contents not managed by git"
msgstr "깃으로 관리하지 ì•Šì€ ë‚´ìš©ì—ì„œ 찾습니다"
-#: builtin/grep.c:637
+#: builtin/grep.c:648
msgid "search in both tracked and untracked files"
msgstr "추ì ë˜ëŠ” 파ì¼ê³¼ 추ì ë˜ì§€ 않는 íŒŒì¼ ëª¨ë‘ì—ì„œ 검색합니다"
-#: builtin/grep.c:639
+#: builtin/grep.c:650
msgid "ignore files specified via '.gitignore'"
msgstr "'.gitignore'ë¡œ 지정한 파ì¼ì„ 무시합니다"
-#: builtin/grep.c:642
+#: builtin/grep.c:653
msgid "show non-matching lines"
msgstr "ì¼ì¹˜í•˜ì§€ 않는 ì¤„ì„ í‘œì‹œí•©ë‹ˆë‹¤"
-#: builtin/grep.c:644
+#: builtin/grep.c:655
msgid "case insensitive matching"
msgstr "ëŒ€ì†Œë¬¸ìž êµ¬ë³„í•˜ì§€ ì•Šê³  맞춥니다"
-#: builtin/grep.c:646
+#: builtin/grep.c:657
msgid "match patterns only at word boundaries"
msgstr "단어 경계 ë¶€ë¶„ì— ëŒ€í•´ì„œë§Œ íŒ¨í„´ì„ ë§žì¶¥ë‹ˆë‹¤"
-#: builtin/grep.c:648
+#: builtin/grep.c:659
msgid "process binary files as text"
msgstr "ë°”ì´ë„ˆë¦¬ 파ì¼ì„ í…스트로 처리합니다"
-#: builtin/grep.c:650
+#: builtin/grep.c:661
msgid "don't match patterns in binary files"
msgstr "ë°”ì´ë„ˆë¦¬ 파ì¼ì—ì„œ íŒ¨í„´ì„ ë§žì¶”ì§€ 않습니다"
-#: builtin/grep.c:653
+#: builtin/grep.c:664
msgid "process binary files with textconv filters"
msgstr "textconv 필터를 사용해 ë°”ì´ë„ˆë¦¬ 파ì¼ì„ 처리합니다"
-#: builtin/grep.c:655
+#: builtin/grep.c:666
msgid "descend at most <depth> levels"
msgstr "최대 <깊ì´> ë‹¨ê³„ë§Œí¼ ë‚´ë ¤ê°‘ë‹ˆë‹¤"
-#: builtin/grep.c:659
+#: builtin/grep.c:670
msgid "use extended POSIX regular expressions"
msgstr "POSIX 확장 ì •ê·œì‹ì„ 사용합니다"
-#: builtin/grep.c:662
+#: builtin/grep.c:673
msgid "use basic POSIX regular expressions (default)"
msgstr "기본 POSIX ì •ê·œì‹ì„ 사용합니다 (기본값)"
-#: builtin/grep.c:665
+#: builtin/grep.c:676
msgid "interpret patterns as fixed strings"
msgstr "íŒ¨í„´ì„ ê³ ì • 문ìžì—´ë¡œ í•´ì„합니다"
-#: builtin/grep.c:668
+#: builtin/grep.c:679
msgid "use Perl-compatible regular expressions"
msgstr "펄과 호환ë˜ëŠ” ì •ê·œì‹ì„ 사용합니다"
-#: builtin/grep.c:671
+#: builtin/grep.c:682
msgid "show line numbers"
msgstr "줄 번호를 표시합니다"
-#: builtin/grep.c:672
+#: builtin/grep.c:683
msgid "don't show filenames"
msgstr "íŒŒì¼ ì´ë¦„ì„ í‘œì‹œí•˜ì§€ 않습니다"
-#: builtin/grep.c:673
+#: builtin/grep.c:684
msgid "show filenames"
msgstr "íŒŒì¼ ì´ë¦„ì„ í‘œì‹œí•©ë‹ˆë‹¤"
-#: builtin/grep.c:675
+#: builtin/grep.c:686
msgid "show filenames relative to top directory"
msgstr "íŒŒì¼ ì´ë¦„ì„ ìµœìƒìœ„ 디렉터리 ìƒëŒ€ 경로로 표시합니다"
-#: builtin/grep.c:677
+#: builtin/grep.c:688
msgid "show only filenames instead of matching lines"
msgstr "ì¼ì¹˜í•˜ëŠ” ì¤„ì„ í‘œì‹œí•˜ì§€ ì•Šê³  íŒŒì¼ ì´ë¦„만 표시합니다"
-#: builtin/grep.c:679
+#: builtin/grep.c:690
msgid "synonym for --files-with-matches"
msgstr "--files-with-matches 옵션과 ë™ì¼"
-#: builtin/grep.c:682
+#: builtin/grep.c:693
msgid "show only the names of files without match"
msgstr "ì¼ì¹˜í•˜ì§€ 않는 파ì¼ì˜ ì´ë¦„만 표시합니다"
-#: builtin/grep.c:684
+#: builtin/grep.c:695
msgid "print NUL after filenames"
msgstr "íŒŒì¼ ì´ë¦„ 다ìŒì— NULì„ ì¶œë ¥í•©ë‹ˆë‹¤"
-#: builtin/grep.c:686
+#: builtin/grep.c:697
msgid "show the number of matches instead of matching lines"
msgstr "ì¼ì¹˜í•˜ëŠ” ì¤„ì„ í‘œì‹œí•˜ì§€ ì•Šê³  ì¼ì¹˜í•˜ëŠ” 수를 표시합니다"
-#: builtin/grep.c:687
+#: builtin/grep.c:698
msgid "highlight matches"
msgstr "ì¼ì¹˜í•˜ëŠ” ë¶€ë¶„ì„ ê°•ì¡°í•©ë‹ˆë‹¤"
-#: builtin/grep.c:689
+#: builtin/grep.c:700
msgid "print empty line between matches from different files"
msgstr "다른 íŒŒì¼ ì‚¬ì´ì— ì¼ì¹˜í•˜ëŠ” ë¶€ë¶„ì˜ ì‚¬ì´ì— 빈 ì¤„ì„ ì¶œë ¥í•©ë‹ˆë‹¤"
-#: builtin/grep.c:691
+#: builtin/grep.c:702
msgid "show filename only once above matches from same file"
msgstr "ê°™ì€ íŒŒì¼ì—ì„œ 여러 개가 ì¼ì¹˜í•˜ë©´ íŒŒì¼ ì´ë¦„ì„ í•œ 번만 표시합니다"
-#: builtin/grep.c:694
+#: builtin/grep.c:705
msgid "show <n> context lines before and after matches"
msgstr "ì¼ì¹˜í•˜ëŠ” 부분 ì•žë’¤ì— ì»¨í…스트를 <n>줄 표시합니다"
-#: builtin/grep.c:697
+#: builtin/grep.c:708
msgid "show <n> context lines before matches"
msgstr "ì¼ì¹˜í•˜ëŠ” 부분 ì•žì— ì»¨í…스트를 <n>줄 표시합니다"
-#: builtin/grep.c:699
+#: builtin/grep.c:710
msgid "show <n> context lines after matches"
msgstr "ì¼ì¹˜í•˜ëŠ” 부분 ë’¤ì— ì»¨í…스트를 <n>줄 표시합니다"
-#: builtin/grep.c:700
+#: builtin/grep.c:712
+msgid "use <n> worker threads"
+msgstr "<n>ê°œì˜ ìž‘ì—… 스레드를 사용합니다"
+
+#: builtin/grep.c:713
msgid "shortcut for -C NUM"
msgstr "-C NUM ì˜µì…˜ì˜ ì¤„ìž„"
-#: builtin/grep.c:703
+#: builtin/grep.c:716
msgid "show a line with the function name before matches"
msgstr "ì¼ì¹˜ 항목 ì•žì— í•¨ìˆ˜ ì´ë¦„ ì¤„ì„ í‘œì‹œí•©ë‹ˆë‹¤"
-#: builtin/grep.c:705
+#: builtin/grep.c:718
msgid "show the surrounding function"
msgstr "들어 있는 함수를 표시합니다"
-#: builtin/grep.c:708
+#: builtin/grep.c:721
msgid "read patterns from file"
msgstr "파ì¼ì—ì„œ íŒ¨í„´ì„ ì½ìŠµë‹ˆë‹¤"
-#: builtin/grep.c:710
+#: builtin/grep.c:723
msgid "match <pattern>"
msgstr "<패턴>ê³¼ ì¼ì¹˜"
-#: builtin/grep.c:712
+#: builtin/grep.c:725
msgid "combine patterns specified with -e"
msgstr "-e 옵션으로 지정한 íŒ¨í„´ì„ ê²°í•©í•©ë‹ˆë‹¤"
-#: builtin/grep.c:724
+#: builtin/grep.c:737
msgid "indicate hit with exit status without output"
msgstr "출력하지 ì•Šê³  ì¼ì¹˜í•˜ëŠ” í•­ëª©ì„ exit() ìƒíƒœ 번호로 리턴합니다"
-#: builtin/grep.c:726
+#: builtin/grep.c:739
msgid "show only matches from files that match all patterns"
msgstr "모든 패턴과 ì¼ì¹˜í•˜ëŠ” 파ì¼ì˜ ì¼ì¹˜í•˜ëŠ” 부분만 표시합니다"
-#: builtin/grep.c:728
+#: builtin/grep.c:741
msgid "show parse tree for grep expression"
msgstr "grep 표현ì‹ì— 대한 파싱 트리를 표시합니다"
-#: builtin/grep.c:732
+#: builtin/grep.c:745
msgid "pager"
msgstr "페ì´ì €"
-#: builtin/grep.c:732
+#: builtin/grep.c:745
msgid "show matching files in the pager"
msgstr "ì¼ì¹˜í•˜ëŠ” 파ì¼ì„ 페ì´ì € 프로그램ì—ì„œ 표시합니다"
-#: builtin/grep.c:735
+#: builtin/grep.c:748
msgid "allow calling of grep(1) (ignored by this build)"
msgstr "grep(1) ì‹¤í–‰ì„ í—ˆìš©í•©ë‹ˆë‹¤ (ì´ ë¹Œë“œì—서는 무시)"
-#: builtin/grep.c:793
+#: builtin/grep.c:811
msgid "no pattern given."
msgstr "íŒ¨í„´ì„ ì§€ì •í•˜ì§€ 않았습니다."
-#: builtin/grep.c:851
+#: builtin/grep.c:843 builtin/index-pack.c:1475
+#, c-format
+msgid "invalid number of threads specified (%d)"
+msgstr "ìž˜ëª»ëœ ìŠ¤ë ˆë“œ 수를 지정했습니다 (%d)"
+
+#: builtin/grep.c:873
msgid "--open-files-in-pager only works on the worktree"
msgstr "--open-files-in-pager ì˜µì…˜ì€ ìž‘ì—… í´ë”ì—서만 ë™ìž‘합니다"
-#: builtin/grep.c:877
+#: builtin/grep.c:899
msgid "--cached or --untracked cannot be used with --no-index."
-msgstr "--cached ë˜ëŠ” --untracked ì˜µì…˜ì€ --no-index 옵션과 ê°™ì´ ì“¸ 수 없습니다."
+msgstr ""
+"--cached ë˜ëŠ” --untracked ì˜µì…˜ì€ --no-index 옵션과 ê°™ì´ ì“¸ 수 없습니다."
-#: builtin/grep.c:882
+#: builtin/grep.c:904
msgid "--no-index or --untracked cannot be used with revs."
msgstr "--no-index ë˜ëŠ” --untracked ì˜µì…˜ì€ ë¦¬ë¹„ì „ê³¼ ê°™ì´ ì“¸ 수 없습니다."
-#: builtin/grep.c:885
+#: builtin/grep.c:907
msgid "--[no-]exclude-standard cannot be used for tracked contents."
msgstr "--[no-]exclude-standard ì˜µì…˜ì€ ì¶”ì ë˜ëŠ” ë‚´ìš©ì— ëŒ€í•´ 쓸 수 없습니다."
-#: builtin/grep.c:893
+#: builtin/grep.c:915
msgid "both --cached and trees are given."
msgstr "--cached 옵션과 트리를 ëª¨ë‘ ì§€ì •í–ˆìŠµë‹ˆë‹¤."
-#: builtin/hash-object.c:80
+#: builtin/hash-object.c:81
msgid ""
"git hash-object [-t <type>] [-w] [--path=<file> | --no-filters] [--stdin] "
"[--] <file>..."
@@ -6448,36 +6680,36 @@ msgstr ""
"git hash-object [-t <종류>] [-w] [--path=<파ì¼> | --no-filters] [--stdin] "
"[--] <파ì¼>..."
-#: builtin/hash-object.c:81
+#: builtin/hash-object.c:82
msgid "git hash-object --stdin-paths"
msgstr "git hash-object --stdin-paths"
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
msgid "type"
msgstr "종류"
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
msgid "object type"
msgstr "오브ì íŠ¸ 종류"
-#: builtin/hash-object.c:93
+#: builtin/hash-object.c:94
msgid "write the object into the object database"
msgstr "오브ì íŠ¸ë¥¼ 오브ì íŠ¸ ë°ì´í„°ë² ì´ìŠ¤ë¡œ ì”니다"
-#: builtin/hash-object.c:95
+#: builtin/hash-object.c:96
msgid "read the object from stdin"
msgstr "표준 ìž…ë ¥ì—ì„œ 오브ì íŠ¸ë¥¼ ì½ìŠµë‹ˆë‹¤"
-#: builtin/hash-object.c:97
+#: builtin/hash-object.c:98
msgid "store file as is without filters"
msgstr "파ì¼ì„ í•„í„° ì—†ì´ ê·¸ëŒ€ë¡œ 저장합니다"
-#: builtin/hash-object.c:98
+#: builtin/hash-object.c:99
msgid ""
"just hash any random garbage to create corrupt objects for debugging Git"
msgstr "ìž„ì˜ì˜ 쓰레기 ë°ì´í„°ë¥¼ 해시해 ì†ìƒëœ 오브ì íŠ¸ë¥¼ 만듭니다 (디버깅용)"
-#: builtin/hash-object.c:99
+#: builtin/hash-object.c:100
msgid "process file as it were from this path"
msgstr "파ì¼ì´ ì´ ê²½ë¡œì—ì„œ 온 것처럼 처리합니다"
@@ -6528,7 +6760,7 @@ msgstr "emacsclient '%d' ë²„ì „ì€ ë„ˆë¬´ 과거 (< 22) 버전입니다."
msgid "failed to exec '%s': %s"
msgstr "실행 실패: '%s': %s"
-#: builtin/help.c:208
+#: builtin/help.c:205
#, c-format
msgid ""
"'%s': path for unsupported man viewer.\n"
@@ -6537,7 +6769,7 @@ msgstr ""
"'%s': 지ì›í•˜ì§€ 않는 맨 페ì´ì§€ 보기 프로그램 경로.\n"
"ëŒ€ì‹ ì— 'man.<ë„구>.cmd' ì˜µì…˜ì„ ì‚¬ìš©í•´ 보십시오."
-#: builtin/help.c:220
+#: builtin/help.c:217
#, c-format
msgid ""
"'%s': cmd for supported man viewer.\n"
@@ -6546,61 +6778,61 @@ msgstr ""
"'%s': 지ì›í•˜ì§€ 않는 맨 페ì´ì§€ 보기 프로그램 명령.\n"
"ëŒ€ì‹ ì— 'man.<ë„구>.path' ì˜µì…˜ì„ ì‚¬ìš©í•´ 보십시오."
-#: builtin/help.c:337
+#: builtin/help.c:334
#, c-format
msgid "'%s': unknown man viewer."
msgstr "'%s': ì•Œ 수 없는 맨 페ì´ì§€ 보기 프로그램."
-#: builtin/help.c:354
+#: builtin/help.c:351
msgid "no man viewer handled the request"
msgstr "ìš”ì²­ì„ ì²˜ë¦¬í•œ 맨 페ì´ì§€ 보기 í”„ë¡œê·¸ëž¨ì´ ì—†ìŠµë‹ˆë‹¤"
-#: builtin/help.c:362
+#: builtin/help.c:359
msgid "no info viewer handled the request"
msgstr "ìš”ì²­ì„ ì²˜ë¦¬í•œ ì¸í¬ 페ì´ì§€ 보기 í”„ë¡œê·¸ëž¨ì´ ì—†ìŠµë‹ˆë‹¤"
-#: builtin/help.c:411
+#: builtin/help.c:408
msgid "Defining attributes per path"
msgstr "경로마다 ì†ì„± ì •ì˜í•˜ê¸°"
-#: builtin/help.c:412
+#: builtin/help.c:409
msgid "Everyday Git With 20 Commands Or So"
msgstr "매ì¼ë§¤ì¼ 사용하는 20ê°œ ë‚´ì™¸ì˜ ê¹ƒ 명령"
-#: builtin/help.c:413
+#: builtin/help.c:410
msgid "A Git glossary"
msgstr "깃 용어 사전"
-#: builtin/help.c:414
+#: builtin/help.c:411
msgid "Specifies intentionally untracked files to ignore"
msgstr "ì˜ë„ì ìœ¼ë¡œ 추ì í•˜ì§€ 않는 파ì¼ì„ 무시하게 지정하기"
-#: builtin/help.c:415
+#: builtin/help.c:412
msgid "Defining submodule properties"
msgstr "하위 모듈 ì†ì„± ì •ì˜í•˜ê¸°"
-#: builtin/help.c:416
+#: builtin/help.c:413
msgid "Specifying revisions and ranges for Git"
msgstr "ê¹ƒì˜ ë¦¬ë¹„ì „ ë° ë²”ìœ„ë¥¼ 지정하기"
-#: builtin/help.c:417
+#: builtin/help.c:414
msgid "A tutorial introduction to Git (for version 1.5.1 or newer)"
msgstr "깃 ë”°ë¼í•˜ê¸° 안내서 (버전 1.5.1 ì´í›„)"
-#: builtin/help.c:418
+#: builtin/help.c:415
msgid "An overview of recommended workflows with Git"
msgstr "추천하는 깃 활용 ìž‘ì—… ìˆœì„œì˜ ê°œìš”"
-#: builtin/help.c:430
+#: builtin/help.c:427
msgid "The common Git guides are:\n"
msgstr "ìžì£¼ 사용하는 깃 안내서는 다ìŒê³¼ 같습니다:\n"
-#: builtin/help.c:451 builtin/help.c:468
+#: builtin/help.c:448 builtin/help.c:465
#, c-format
msgid "usage: %s%s"
msgstr "사용법: %s%s"
-#: builtin/help.c:484
+#: builtin/help.c:481
#, c-format
msgid "`git %s' is aliased to `%s'"
msgstr "`git %s' ëª…ë ¹ì€ `%s' ëª…ë ¹ì˜ ë‹¨ì¶•ìž…ë‹ˆë‹¤"
@@ -6833,58 +7065,53 @@ msgstr "ì¸ë±ìŠ¤ 파ì¼ì„ 저장할 수 없습니다"
msgid "bad pack.indexversion=%<PRIu32>"
msgstr "ìž˜ëª»ëœ pack.indexversion=%<PRIu32>"
-#: builtin/index-pack.c:1475
-#, c-format
-msgid "invalid number of threads specified (%d)"
-msgstr "ìž˜ëª»ëœ ìŠ¤ë ˆë“œ 수를 지정했습니다 (%d)"
-
-#: builtin/index-pack.c:1479 builtin/index-pack.c:1663
+#: builtin/index-pack.c:1479 builtin/index-pack.c:1664
#, c-format
msgid "no threads support, ignoring %s"
msgstr "스레드 ê¸°ëŠ¥ì´ ì—†ìŠµë‹ˆë‹¤. %s 무시"
-#: builtin/index-pack.c:1537
+#: builtin/index-pack.c:1538
#, c-format
msgid "Cannot open existing pack file '%s'"
msgstr "기존 '%s' ë¬¶ìŒ íŒŒì¼ì„ ì—´ 수 없습니다"
-#: builtin/index-pack.c:1539
+#: builtin/index-pack.c:1540
#, c-format
msgid "Cannot open existing pack idx file for '%s'"
msgstr "'%s'ì— ëŒ€í•œ 기존 ë¬¶ìŒ idx 파ì¼ì„ ì—´ 수 없습니다"
-#: builtin/index-pack.c:1586
+#: builtin/index-pack.c:1587
#, c-format
msgid "non delta: %d object"
msgid_plural "non delta: %d objects"
msgstr[0] "ë¸íƒ€ 아님: 오브ì íŠ¸ %dê°œ"
-#: builtin/index-pack.c:1593
+#: builtin/index-pack.c:1594
#, c-format
msgid "chain length = %d: %lu object"
msgid_plural "chain length = %d: %lu objects"
msgstr[0] "ì²´ì¸ ê¸¸ì´ = %d: 오브ì íŠ¸ %luê°œ"
-#: builtin/index-pack.c:1623
+#: builtin/index-pack.c:1624
msgid "Cannot come back to cwd"
msgstr "현재 디렉터리로 ëŒì•„올 수 없습니다"
-#: builtin/index-pack.c:1675 builtin/index-pack.c:1678
-#: builtin/index-pack.c:1690 builtin/index-pack.c:1694
+#: builtin/index-pack.c:1676 builtin/index-pack.c:1679
+#: builtin/index-pack.c:1691 builtin/index-pack.c:1695
#, c-format
msgid "bad %s"
msgstr "ìž˜ëª»ëœ %s"
-#: builtin/index-pack.c:1708
+#: builtin/index-pack.c:1709
msgid "--fix-thin cannot be used without --stdin"
msgstr "--fix-thin ì˜µì…˜ì€ --stdin 옵션과 ê°™ì´ ì“¸ 수 없습니다"
-#: builtin/index-pack.c:1712 builtin/index-pack.c:1721
+#: builtin/index-pack.c:1713 builtin/index-pack.c:1722
#, c-format
msgid "packfile name '%s' does not end with '.pack'"
msgstr "'%s' 묶ìŒíŒŒì¼ ì´ë¦„ì´ '.pack'으로 ë나지 않습니다"
-#: builtin/index-pack.c:1729
+#: builtin/index-pack.c:1730
msgid "--verify with no packfile name given"
msgstr "--verify ì˜µì…˜ì— ë¬¶ìŒíŒŒì¼ ì´ë¦„ì„ ì§€ì •í•˜ì§€ 않았습니다"
@@ -7010,24 +7237,32 @@ msgstr "ìž‘ì—… í´ë” '%s'ì— ì ‘ê·¼í•  수 없습니다"
#: builtin/interpret-trailers.c:15
msgid ""
-"git interpret-trailers [--trim-empty] [(--trailer <token>[(=|:)<value>])...] "
-"[<file>...]"
+"git interpret-trailers [--in-place] [--trim-empty] [(--trailer "
+"<token>[(=|:)<value>])...] [<file>...]"
msgstr ""
-"git interpret-trailers [--trim-empty] [(--trailer <토í°>[(=|:)<ê°’>])...] [<파"
-"ì¼>...]"
+"git interpret-trailers [--in-place] [--trim-empty] [(--trailer <토í°>[(=|:)<"
+"ê°’>])...] [<파ì¼>...]"
-#: builtin/interpret-trailers.c:25
+#: builtin/interpret-trailers.c:26
+msgid "edit files in place"
+msgstr "파ì¼ì„ ì§ì ‘ 편집합니다"
+
+#: builtin/interpret-trailers.c:27
msgid "trim empty trailers"
msgstr "빈 트레ì¼ëŸ¬ë¥¼ 잘ë¼ëƒ…니다"
-#: builtin/interpret-trailers.c:26
+#: builtin/interpret-trailers.c:28
msgid "trailer"
msgstr "트레ì¼ëŸ¬"
-#: builtin/interpret-trailers.c:27
+#: builtin/interpret-trailers.c:29
msgid "trailer(s) to add"
msgstr "추가할 트레ì¼ëŸ¬"
+#: builtin/interpret-trailers.c:42
+msgid "no input file given for in-place editing"
+msgstr "íŒŒì¼ ì§ì ‘ íŽ¸ì§‘ì— ìž…ë ¥ 파ì¼ì„ 지정하지 않았습니다"
+
#: builtin/log.c:43
msgid "git log [<options>] [<revision-range>] [[--] <path>...]"
msgstr "git log [<옵션>] [<리비전-범위>] [[--] <경로>...]"
@@ -7081,325 +7316,377 @@ msgstr "%s 오브ì íŠ¸ë¥¼ ì½ì„ 수 없습니다"
msgid "Unknown type: %d"
msgstr "알 수 없는 종류: %d"
-#: builtin/log.c:714
+#: builtin/log.c:715
msgid "format.headers without value"
msgstr "format.headers ì„¤ì •ì— ê°’ì´ ì—†ìŒ"
-#: builtin/log.c:798
+#: builtin/log.c:801
msgid "name of output directory is too long"
msgstr "출력 ë””ë ‰í„°ë¦¬ì˜ ì´ë¦„ì´ ë„ˆë¬´ ê¹ë‹ˆë‹¤"
-#: builtin/log.c:813
+#: builtin/log.c:816
#, c-format
msgid "Cannot open patch file %s"
msgstr "%s 패치 파ì¼ì„ ì—´ 수 없습니다"
-#: builtin/log.c:827
+#: builtin/log.c:830
msgid "Need exactly one range."
msgstr "정확히 í•˜ë‚˜ì˜ ë²”ìœ„ê°€ 필요합니다."
-#: builtin/log.c:837
+#: builtin/log.c:840
msgid "Not a range."
msgstr "범위가 아닙니다."
-#: builtin/log.c:943
+#: builtin/log.c:946
msgid "Cover letter needs email format"
msgstr "커버레터는 ì „ìžë©”ì¼ í˜•ì‹ì´ì–´ì•¼ 합니다"
-#: builtin/log.c:1022
+#: builtin/log.c:1025
#, c-format
msgid "insane in-reply-to: %s"
msgstr "정신나간 in-reply-to í—¤ë”: %s"
-#: builtin/log.c:1050
+#: builtin/log.c:1053
msgid "git format-patch [<options>] [<since> | <revision-range>]"
msgstr "git format-patch [<옵션>] [<시작시ê°> | <리비전-범위>]"
-#: builtin/log.c:1095
+#: builtin/log.c:1098
msgid "Two output directories?"
msgstr "출력 디렉터리가 ë‘ê°œ?"
-#: builtin/log.c:1211
+#: builtin/log.c:1214
msgid "use [PATCH n/m] even with a single patch"
msgstr "í•˜ë‚˜ì˜ íŒ¨ì¹˜ì— ëŒ€í•´ì„œë„ [PATCh n/m]ì„ ë¶™ìž…ë‹ˆë‹¤"
-#: builtin/log.c:1214
+#: builtin/log.c:1217
msgid "use [PATCH] even with multiple patches"
msgstr "여러 ê°œ íŒ¨ì¹˜ì— ëŒ€í•´ì„œë„ [PATCH]를 붙입니다"
-#: builtin/log.c:1218
+#: builtin/log.c:1221
msgid "print patches to standard out"
msgstr "패치를 표준 출력으로 표시합니다"
-#: builtin/log.c:1220
+#: builtin/log.c:1223
msgid "generate a cover letter"
msgstr "커버레터를 만듭니다"
-#: builtin/log.c:1222
+#: builtin/log.c:1225
msgid "use simple number sequence for output file names"
msgstr "출력 íŒŒì¼ ì´ë¦„ì— ê°„ë‹¨í•œ ì¼ë ¨ 번호를 사용합니다"
-#: builtin/log.c:1223
+#: builtin/log.c:1226
msgid "sfx"
msgstr "확장ìž"
-#: builtin/log.c:1224
+#: builtin/log.c:1227
msgid "use <sfx> instead of '.patch'"
msgstr "'.patch' 대신 <확장ìž>를 사용합니다"
-#: builtin/log.c:1226
+#: builtin/log.c:1229
msgid "start numbering patches at <n> instead of 1"
msgstr "패치 번호를 1 대신 <n>ì—ì„œ 시작합니다"
-#: builtin/log.c:1228
+#: builtin/log.c:1231
msgid "mark the series as Nth re-roll"
msgstr "시리즈를 N번째 re-roll로 표시합니다"
-#: builtin/log.c:1230
+#: builtin/log.c:1233
msgid "Use [<prefix>] instead of [PATCH]"
msgstr "[PATCH] 대신 [<ì ‘ë‘ì–´>]를 사용합니다"
-#: builtin/log.c:1233
+#: builtin/log.c:1236
msgid "store resulting files in <dir>"
msgstr "ê²°ê³¼ 파ì¼ì„ <디렉터리>ì— ì €ìž¥í•©ë‹ˆë‹¤"
-#: builtin/log.c:1236
+#: builtin/log.c:1239
msgid "don't strip/add [PATCH]"
msgstr "[PATCH]를 ìžë¥´ê±°ë‚˜ 추가하지 않습니다"
-#: builtin/log.c:1239
+#: builtin/log.c:1242
msgid "don't output binary diffs"
msgstr "ë°”ì´ë„ˆë¦¬ diff를 만들지 않습니다"
-#: builtin/log.c:1241
+#: builtin/log.c:1244
msgid "output all-zero hash in From header"
msgstr "From í—¤ë”ì—ì„œ ëª¨ë‘ 0ì¸ í•´ì‹œë¥¼ 출력합니다"
-#: builtin/log.c:1243
+#: builtin/log.c:1246
msgid "don't include a patch matching a commit upstream"
msgstr "ì—…ìŠ¤íŠ¸ë¦¼ì— ìžˆëŠ” 패치를 í¬í•¨í•˜ì§€ 않습니다"
-#: builtin/log.c:1245
+#: builtin/log.c:1248
msgid "show patch format instead of default (patch + stat)"
msgstr "기본값 (패치 + 통계) 대신 패치 형ì‹ì„ 표시합니다"
-#: builtin/log.c:1247
+#: builtin/log.c:1250
msgid "Messaging"
msgstr "메시징"
-#: builtin/log.c:1248
+#: builtin/log.c:1251
msgid "header"
msgstr "í—¤ë”"
-#: builtin/log.c:1249
+#: builtin/log.c:1252
msgid "add email header"
msgstr "ì „ìžë©”ì¼ í—¤ë”"
-#: builtin/log.c:1250 builtin/log.c:1252
+#: builtin/log.c:1253 builtin/log.c:1255
msgid "email"
msgstr "ì „ìžë©”ì¼"
-#: builtin/log.c:1250
+#: builtin/log.c:1253
msgid "add To: header"
msgstr "To: í—¤ë”를 추가합니다"
-#: builtin/log.c:1252
+#: builtin/log.c:1255
msgid "add Cc: header"
msgstr "Cc: í—¤ë”를 추가합니다"
-#: builtin/log.c:1254
+#: builtin/log.c:1257
msgid "ident"
msgstr "ì‹ ì›"
-#: builtin/log.c:1255
+#: builtin/log.c:1258
msgid "set From address to <ident> (or committer ident if absent)"
msgstr "<ì‹ ì›>ì—ì„œ From 주소를 설정합니다 (없으면 커미터 주소 ì‹ ì› ì‚¬ìš©)"
-#: builtin/log.c:1257
+#: builtin/log.c:1260
msgid "message-id"
msgstr "메시지-ID"
-#: builtin/log.c:1258
+#: builtin/log.c:1261
msgid "make first mail a reply to <message-id>"
msgstr "첫 ë©”ì¼ì„ <메시지-ID>ì— ëŒ€í•œ 답장 ë©”ì¼ë¡œ 만듭니다"
-#: builtin/log.c:1259 builtin/log.c:1262
+#: builtin/log.c:1262 builtin/log.c:1265
msgid "boundary"
msgstr "경계"
-#: builtin/log.c:1260
+#: builtin/log.c:1263
msgid "attach the patch"
msgstr "패치를 첨부합니다"
-#: builtin/log.c:1263
+#: builtin/log.c:1266
msgid "inline the patch"
msgstr "패치를 ë³¸ë¬¸ì— í¬í•¨í•©ë‹ˆë‹¤"
-#: builtin/log.c:1267
+#: builtin/log.c:1270
msgid "enable message threading, styles: shallow, deep"
msgstr "ë©”ì‹œì§€ì— ìŠ¤ë ˆë“œë¥¼ 사용, 스타ì¼: shallow, deep"
-#: builtin/log.c:1269
+#: builtin/log.c:1272
msgid "signature"
msgstr "서명"
-#: builtin/log.c:1270
+#: builtin/log.c:1273
msgid "add a signature"
msgstr "ì„œëª…ì„ ì¶”ê°€í•©ë‹ˆë‹¤"
-#: builtin/log.c:1272
+#: builtin/log.c:1275
msgid "add a signature from a file"
msgstr "파ì¼ì—ì„œ ì„œëª…ì„ ì¶”ê°€í•©ë‹ˆë‹¤"
-#: builtin/log.c:1273
+#: builtin/log.c:1276
msgid "don't print the patch filenames"
msgstr "패치 íŒŒì¼ ì´ë¦„ì„ í‘œì‹œí•˜ì§€ 않습니다"
-#: builtin/log.c:1362
+#: builtin/log.c:1365
msgid "-n and -k are mutually exclusive."
msgstr "-n ë° -k ì˜µì…˜ì€ í•˜ë‚˜ë§Œ ì¨ì•¼ 합니다."
-#: builtin/log.c:1364
+#: builtin/log.c:1367
msgid "--subject-prefix and -k are mutually exclusive."
msgstr "--subject-prefix ë° -k ì˜µì…˜ì€ í•˜ë‚˜ë§Œ ì¨ì•¼ 합니다."
-#: builtin/log.c:1372
+#: builtin/log.c:1375
msgid "--name-only does not make sense"
msgstr "--name-only ì˜µì…˜ì€ ì•žë’¤ê°€ 맞지 않습니다"
-#: builtin/log.c:1374
+#: builtin/log.c:1377
msgid "--name-status does not make sense"
msgstr "--name-status ì˜µì…˜ì€ ì•žë’¤ê°€ 맞지 않습니다"
-#: builtin/log.c:1376
+#: builtin/log.c:1379
msgid "--check does not make sense"
msgstr "--check ì˜µì…˜ì€ ì•žë’¤ê°€ 맞지 않습니다"
-#: builtin/log.c:1401
+#: builtin/log.c:1407
msgid "standard output, or directory, which one?"
msgstr "표준 출력ì´ë‚˜ 디렉터리 ì¤‘ì— í•˜ë‚˜ë§Œ 지정해야 합니다."
-#: builtin/log.c:1403
+#: builtin/log.c:1409
#, c-format
msgid "Could not create directory '%s'"
msgstr "'%s' 디렉터리를 만들 수 없습니다"
-#: builtin/log.c:1500
+#: builtin/log.c:1506
#, c-format
msgid "unable to read signature file '%s'"
msgstr "'%s' 서명 파ì¼ì„ ì½ì„ 수 없습니다"
-#: builtin/log.c:1563
+#: builtin/log.c:1569
msgid "Failed to create output files"
msgstr "출력 파ì¼ì„ ë§Œë“œëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
-#: builtin/log.c:1611
+#: builtin/log.c:1617
msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
msgstr "git cherry [-v] [<업스트림> [<헤드> [<한계값>]]]"
-#: builtin/log.c:1665
+#: builtin/log.c:1671
#, c-format
msgid ""
"Could not find a tracked remote branch, please specify <upstream> manually.\n"
-msgstr "추ì ë˜ëŠ” 리모트 브랜치를 ì°¾ì„ ìˆ˜ 없습니다. <업스트림>ì„ ìˆ˜ë™ìœ¼ë¡œ 지정하십시오.\n"
+msgstr ""
+"추ì ë˜ëŠ” 리모트 브랜치를 ì°¾ì„ ìˆ˜ 없습니다. <업스트림>ì„ ìˆ˜ë™ìœ¼ë¡œ 지정하십시"
+"오.\n"
-#: builtin/log.c:1676 builtin/log.c:1678 builtin/log.c:1690
+#: builtin/log.c:1682 builtin/log.c:1684 builtin/log.c:1696
#, c-format
msgid "Unknown commit %s"
msgstr "알 수 없는 커밋 %s"
-#: builtin/ls-files.c:358
+#: builtin/ls-files.c:378
msgid "git ls-files [<options>] [<file>...]"
msgstr "git ls-files [<옵션>] [<파ì¼>...]"
-#: builtin/ls-files.c:415
+#: builtin/ls-files.c:427
msgid "identify the file status with tags"
msgstr "íŒŒì¼ ìƒíƒœë¥¼ 태그와 ê°™ì´ í‘œì‹œí•©ë‹ˆë‹¤"
-#: builtin/ls-files.c:417
+#: builtin/ls-files.c:429
msgid "use lowercase letters for 'assume unchanged' files"
msgstr "'변경ë˜ì§€ 않았다고 가정' 파ì¼ì— 소문ìžë¥¼ 사용합니다"
-#: builtin/ls-files.c:419
+#: builtin/ls-files.c:431
msgid "show cached files in the output (default)"
msgstr "ì¶œë ¥ì— ìºì‹œëœ 파ì¼ì„ 표시합니다 (기본값)"
-#: builtin/ls-files.c:421
+#: builtin/ls-files.c:433
msgid "show deleted files in the output"
msgstr "ì¶œë ¥ì— ì‚­ì œëœ íŒŒì¼ì„ 표시합니다"
-#: builtin/ls-files.c:423
+#: builtin/ls-files.c:435
msgid "show modified files in the output"
msgstr "ì¶œë ¥ì— ìˆ˜ì •ëœ íŒŒì¼ì„ 표시합니다"
-#: builtin/ls-files.c:425
+#: builtin/ls-files.c:437
msgid "show other files in the output"
msgstr "ì¶œë ¥ì— ê¸°íƒ€ 파ì¼ì„ 표시합니다"
-#: builtin/ls-files.c:427
+#: builtin/ls-files.c:439
msgid "show ignored files in the output"
msgstr "ì¶œë ¥ì— ë¬´ì‹œëœ íŒŒì¼ì„ 표시합니다"
-#: builtin/ls-files.c:430
+#: builtin/ls-files.c:442
msgid "show staged contents' object name in the output"
msgstr "ì¶œë ¥ì— ì»¤ë°‹ í‘œì‹œëœ ë‚´ìš©ì˜ ì˜¤ë¸Œì íŠ¸ ì´ë¦„ì„ í‘œì‹œí•©ë‹ˆë‹¤"
-#: builtin/ls-files.c:432
+#: builtin/ls-files.c:444
msgid "show files on the filesystem that need to be removed"
msgstr "íŒŒì¼ ì‹œìŠ¤í…œì—ì„œ 제거해야 하는 파ì¼ì„ 표시합니다"
-#: builtin/ls-files.c:434
+#: builtin/ls-files.c:446
msgid "show 'other' directories' names only"
msgstr "기타 ë””ë ‰í„°ë¦¬ì˜ ì´ë¦„만 표시합니다"
-#: builtin/ls-files.c:437
+#: builtin/ls-files.c:448
+msgid "show line endings of files"
+msgstr "파ì¼ì˜ 줄 ëì„ í‘œì‹œí•©ë‹ˆë‹¤"
+
+#: builtin/ls-files.c:450
msgid "don't show empty directories"
msgstr "빈 디렉터리 표시하지 않기"
-#: builtin/ls-files.c:440
+#: builtin/ls-files.c:453
msgid "show unmerged files in the output"
msgstr "ì¶œë ¥ì— ë³‘í•©í•˜ì§€ ì•Šì€ íŒŒì¼ì„ 표시합니다"
-#: builtin/ls-files.c:442
+#: builtin/ls-files.c:455
msgid "show resolve-undo information"
msgstr "resolve-undo 정보를 표시합니다"
-#: builtin/ls-files.c:444
+#: builtin/ls-files.c:457
msgid "skip files matching pattern"
msgstr "íŒ¨í„´ì— ì¼ì¹˜í•˜ëŠ” 파ì¼ì„ 건너ëœë‹ˆë‹¤"
-#: builtin/ls-files.c:447
+#: builtin/ls-files.c:460
msgid "exclude patterns are read from <file>"
msgstr "제외할 íŒ¨í„´ì„ <파ì¼>ì—ì„œ ì½ìŠµë‹ˆë‹¤"
-#: builtin/ls-files.c:450
+#: builtin/ls-files.c:463
msgid "read additional per-directory exclude patterns in <file>"
msgstr "<파ì¼>ì—ì„œ 추가ì ì¸ 디렉토리별 제외 íŒ¨í„´ì„ ì½ìŠµë‹ˆë‹¤"
-#: builtin/ls-files.c:452
+#: builtin/ls-files.c:465
msgid "add the standard git exclusions"
msgstr "표준 깃 제외 íŒ¨í„´ì„ ì¶”ê°€í•©ë‹ˆë‹¤"
-#: builtin/ls-files.c:455
+#: builtin/ls-files.c:468
msgid "make the output relative to the project top directory"
msgstr "최ìƒìœ„ 디렉토리 ìƒëŒ€ 경로로 출력합니다"
-#: builtin/ls-files.c:458
+#: builtin/ls-files.c:471
msgid "if any <file> is not in the index, treat this as an error"
msgstr "<파ì¼>ì´ ì¸ë±ìŠ¤ ì•ˆì— ì—†ìœ¼ë©´ 오류로 취급합니다"
-#: builtin/ls-files.c:459
+#: builtin/ls-files.c:472
msgid "tree-ish"
msgstr "트리-따위"
-#: builtin/ls-files.c:460
+#: builtin/ls-files.c:473
msgid "pretend that paths removed since <tree-ish> are still present"
msgstr "<트리-따위> 뒤로 제거한 경로가 있다고 가정합니다"
-#: builtin/ls-files.c:462
+#: builtin/ls-files.c:475
msgid "show debugging data"
msgstr "디버깅 ë°ì´í„°ë¥¼ 표시합니다"
+#: builtin/ls-remote.c:7
+msgid ""
+"git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
+" [-q | --quiet] [--exit-code] [--get-url]\n"
+" [--symref] [<repository> [<refs>...]]"
+msgstr ""
+"git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<실행>]\n"
+" [-q | --quiet] [--exit-code] [--get-url]\n"
+" [--symref] [<저장소> [<ë ˆí¼ëŸ°ìŠ¤>...]]"
+
+#: builtin/ls-remote.c:50
+msgid "do not print remote URL"
+msgstr "ì›ê²© URLì„ í‘œì‹œí•˜ì§€ 않습니다"
+
+#: builtin/ls-remote.c:51 builtin/ls-remote.c:53
+msgid "exec"
+msgstr "실행"
+
+#: builtin/ls-remote.c:52 builtin/ls-remote.c:54
+msgid "path of git-upload-pack on the remote host"
+msgstr "ì›ê²© í˜¸ìŠ¤íŠ¸ì˜ git-upload-pack 경로"
+
+#: builtin/ls-remote.c:56
+msgid "limit to tags"
+msgstr "íƒœê·¸ì— í•œì •"
+
+#: builtin/ls-remote.c:57
+msgid "limit to heads"
+msgstr "í—¤ë“œì— í•œì •"
+
+#: builtin/ls-remote.c:58
+msgid "do not show peeled tags"
+msgstr "벗겨진 태그를 표시하지 않습니다"
+
+#: builtin/ls-remote.c:60
+msgid "take url.<base>.insteadOf into account"
+msgstr "url.<ë² ì´ìŠ¤>.insteadOf ì„¤ì •ì„ ê³ ë ¤í•©ë‹ˆë‹¤"
+
+#: builtin/ls-remote.c:62
+msgid "exit with exit code 2 if no matching refs are found"
+msgstr "해당하는 ë ˆí¼ëŸ°ìŠ¤ê°€ 없으면 코드 2번으로 ë냅니다"
+
+#: builtin/ls-remote.c:64
+msgid "show underlying ref in addition to the object pointed by it"
+msgstr "ë ˆí¼ëŸ°ìŠ¤ì™€ ë ˆí¼ëŸ°ìŠ¤ê°€ 가리키는 오브ì íŠ¸ë¥¼ 표시합니다"
+
#: builtin/ls-tree.c:28
msgid "git ls-tree [<options>] <tree-ish> [<path>...]"
msgstr "git ls-tree [<옵션>] <트리-따위> [<경로>...]"
@@ -7467,31 +7754,31 @@ msgstr "사용 가능한 ì „ëžµì€:"
msgid "Available custom strategies are:"
msgstr "사용 가능한 ì‚¬ìš©ìž ì„¤ì • ì „ëžµì€:"
-#: builtin/merge.c:193 builtin/pull.c:119
+#: builtin/merge.c:193 builtin/pull.c:123
msgid "do not show a diffstat at the end of the merge"
msgstr "ë³‘í•©ì´ ëë‚  ë•Œ diffstatì„ í‘œì‹œí•˜ì§€ 않습니다"
-#: builtin/merge.c:196 builtin/pull.c:122
+#: builtin/merge.c:196 builtin/pull.c:126
msgid "show a diffstat at the end of the merge"
msgstr "ë³‘í•©ì´ ëë‚  ë•Œ diffstatì„ í‘œì‹œí•©ë‹ˆë‹¤"
-#: builtin/merge.c:197 builtin/pull.c:125
+#: builtin/merge.c:197 builtin/pull.c:129
msgid "(synonym to --stat)"
msgstr "(--stat 옵션과 ë™ì¼)"
-#: builtin/merge.c:199 builtin/pull.c:128
+#: builtin/merge.c:199 builtin/pull.c:132
msgid "add (at most <n>) entries from shortlog to merge commit message"
msgstr "병합 ì»¤ë°‹ì˜ ë©”ì‹œì§€ì— shortlog í•­ëª©ì„ (최대 <n>ê°œ) 추가합니다"
-#: builtin/merge.c:202 builtin/pull.c:131
+#: builtin/merge.c:202 builtin/pull.c:135
msgid "create a single commit instead of doing a merge"
msgstr "병합하는 대신 í•˜ë‚˜ì˜ ì»¤ë°‹ì„ ë§Œë“­ë‹ˆë‹¤"
-#: builtin/merge.c:204 builtin/pull.c:134
+#: builtin/merge.c:204 builtin/pull.c:138
msgid "perform a commit if the merge succeeds (default)"
msgstr "ë³‘í•©ì´ ì„±ê³µí•˜ë©´ ì»¤ë°‹ì„ í•©ë‹ˆë‹¤ (기본값)"
-#: builtin/merge.c:206 builtin/pull.c:137
+#: builtin/merge.c:206 builtin/pull.c:141
msgid "edit message before committing"
msgstr "커밋 ì „ì— ë©”ì‹œì§€ë¥¼ 편집합니다"
@@ -7499,7 +7786,7 @@ msgstr "커밋 ì „ì— ë©”ì‹œì§€ë¥¼ 편집합니다"
msgid "allow fast-forward (default)"
msgstr "ì •ë°©í–¥ ì§„í–‰ì„ í—ˆìš©í•©ë‹ˆë‹¤ (기본값)"
-#: builtin/merge.c:209 builtin/pull.c:143
+#: builtin/merge.c:209 builtin/pull.c:147
msgid "abort if fast-forward is not possible"
msgstr "ì •ë°©í–¥ ì§„í–‰ì´ ë¶ˆê°€ëŠ¥í•˜ë©´ 중지합니다"
@@ -7507,20 +7794,20 @@ msgstr "ì •ë°©í–¥ ì§„í–‰ì´ ë¶ˆê°€ëŠ¥í•˜ë©´ 중지합니다"
msgid "Verify that the named commit has a valid GPG signature"
msgstr "ì´ë¦„ ë¶™ì¸ ì»¤ë°‹ì— ì˜¬ë°”ë¥¸ GPG ì„œëª…ì´ ìžˆëŠ”ì§€ ê²€ì¦í•©ë‹ˆë‹¤"
-#: builtin/merge.c:214 builtin/notes.c:767 builtin/pull.c:148
+#: builtin/merge.c:214 builtin/notes.c:770 builtin/pull.c:152
#: builtin/revert.c:89
msgid "strategy"
msgstr "ì „ëžµ"
-#: builtin/merge.c:215 builtin/pull.c:149
+#: builtin/merge.c:215 builtin/pull.c:153
msgid "merge strategy to use"
msgstr "사용할 병합 전략"
-#: builtin/merge.c:216 builtin/pull.c:152
+#: builtin/merge.c:216 builtin/pull.c:156
msgid "option=value"
msgstr "옵션=값"
-#: builtin/merge.c:217 builtin/pull.c:153
+#: builtin/merge.c:217 builtin/pull.c:157
msgid "option for selected merge strategy"
msgstr "ì„ íƒí•œ 병합 ì „ëžµì— ëŒ€í•œ 옵션"
@@ -7558,8 +7845,8 @@ msgstr " (í•©ì¹  ë‚´ìš©ì´ ì—†ìŠµë‹ˆë‹¤)"
msgid "Squash commit -- not updating HEAD\n"
msgstr "커밋 합치기 -- HEAD를 ì—…ë°ì´íŠ¸í•˜ì§€ 않습니다\n"
-#: builtin/merge.c:344 builtin/merge.c:763 builtin/merge.c:975
-#: builtin/merge.c:988
+#: builtin/merge.c:344 builtin/merge.c:764 builtin/merge.c:976
+#: builtin/merge.c:989
#, c-format
msgid "Could not write to '%s'"
msgstr "'%s'ì— ì“¸ 수 없습니다"
@@ -7577,41 +7864,42 @@ msgstr "SQUASH_MSG를 마치는 중"
msgid "No merge message -- not updating HEAD\n"
msgstr "병합 메시지가 없습니다 -- HEAD를 ì—…ë°ì´íŠ¸í•˜ì§€ 않습니다\n"
-#: builtin/merge.c:447
+#: builtin/merge.c:448
#, c-format
msgid "'%s' does not point to a commit"
msgstr "'%s'ì´(ê°€) ì»¤ë°‹ì„ ê°€ë¦¬í‚¤ì§€ 않습니다"
-#: builtin/merge.c:537
+#: builtin/merge.c:538
#, c-format
msgid "Bad branch.%s.mergeoptions string: %s"
msgstr "ìž˜ëª»ëœ branch.%s.mergeoptions 문ìžì—´: %s"
-#: builtin/merge.c:656
+#: builtin/merge.c:657
msgid "Not handling anything other than two heads merge."
msgstr "ë‘ ê°œì˜ í—¤ë“œ 병합 외ì—는 처리하지 않습니다."
-#: builtin/merge.c:670
+#: builtin/merge.c:671
#, c-format
msgid "Unknown option for merge-recursive: -X%s"
msgstr "merge-recursiveì— ëŒ€í•´ ì•Œ 수 없는 옵션: -X%s"
-#: builtin/merge.c:683
+#: builtin/merge.c:684
#, c-format
msgid "unable to write %s"
msgstr "%sì— ì“¸ 수 없습니다"
-#: builtin/merge.c:772
+#: builtin/merge.c:773
#, c-format
msgid "Could not read from '%s'"
msgstr "'%s'ì—ì„œ ì½ì„ 수 없습니다"
-#: builtin/merge.c:781
+#: builtin/merge.c:782
#, c-format
msgid "Not committing merge; use 'git commit' to complete the merge.\n"
-msgstr "ë³‘í•©ì„ ì»¤ë°‹í•˜ì§€ 않습니다. ë³‘í•©ì„ ë§ˆì¹˜ë ¤ë©´ 'git commit'ì„ ì‚¬ìš©í•˜ì‹­ì‹œì˜¤.\n"
+msgstr ""
+"ë³‘í•©ì„ ì»¤ë°‹í•˜ì§€ 않습니다. ë³‘í•©ì„ ë§ˆì¹˜ë ¤ë©´ 'git commit'ì„ ì‚¬ìš©í•˜ì‹­ì‹œì˜¤.\n"
-#: builtin/merge.c:787
+#: builtin/merge.c:788
#, c-format
msgid ""
"Please enter a commit message to explain why this merge is necessary,\n"
@@ -7627,52 +7915,52 @@ msgstr ""
"'%c' 문ìžë¡œ 시작하는 ì¤„ì€ ë¬´ì‹œë˜ê³ , 메시지가 비어 있으면 커밋ì„\n"
"중지합니다.\n"
-#: builtin/merge.c:811
+#: builtin/merge.c:812
msgid "Empty commit message."
msgstr "빈 커밋 메시지."
-#: builtin/merge.c:823
+#: builtin/merge.c:824
#, c-format
msgid "Wonderful.\n"
msgstr "훌륭합니다.\n"
-#: builtin/merge.c:878
+#: builtin/merge.c:879
#, c-format
msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
msgstr "ìžë™ ë³‘í•©ì´ ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤. 충ëŒì„ 바로잡고 ê²°ê³¼ë¬¼ì„ ì»¤ë°‹í•˜ì‹­ì‹œì˜¤.\n"
-#: builtin/merge.c:894
+#: builtin/merge.c:895
#, c-format
msgid "'%s' is not a commit"
msgstr "'%s'ì€(는) ì»¤ë°‹ì´ ì•„ë‹™ë‹ˆë‹¤"
-#: builtin/merge.c:935
+#: builtin/merge.c:936
msgid "No current branch."
msgstr "현재 브랜치가 없습니다."
-#: builtin/merge.c:937
+#: builtin/merge.c:938
msgid "No remote for the current branch."
msgstr "현재 ë¸Œëžœì¹˜ì— ëŒ€í•œ 리모트가 없습니다."
-#: builtin/merge.c:939
+#: builtin/merge.c:940
msgid "No default upstream defined for the current branch."
msgstr "현재 ë¸Œëžœì¹˜ì— ëŒ€í•´ 기본 ì—…ìŠ¤íŠ¸ë¦¼ì„ ì§€ì •í•˜ì§€ 않았습니다."
-#: builtin/merge.c:944
+#: builtin/merge.c:945
#, c-format
msgid "No remote-tracking branch for %s from %s"
msgstr "리모트 %2$sì—ì„œ %1$sì— ëŒ€í•œ 리모트 ì¶”ì  ë¸Œëžœì¹˜ê°€ 없습니다"
-#: builtin/merge.c:1079
+#: builtin/merge.c:1080
#, c-format
msgid "could not close '%s'"
msgstr "'%s'ì„(를) ë‹«ì„ ìˆ˜ 없습니다"
-#: builtin/merge.c:1206
+#: builtin/merge.c:1207
msgid "There is no merge to abort (MERGE_HEAD missing)."
msgstr "중지할 병합 ìž‘ì—…ì´ ì—†ìŠµë‹ˆë‹¤. (MERGE_HEADê°€ ì—†ìŒ)"
-#: builtin/merge.c:1222
+#: builtin/merge.c:1223
msgid ""
"You have not concluded your merge (MERGE_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -7680,7 +7968,7 @@ msgstr ""
"ë³‘í•©ì„ ë§ˆì¹˜ì§€ 않았습니다. (MERGE_HEAD 있ìŒ)\n"
"병합하기 ì „ì— ë³€ê²½ ì‚¬í•­ì„ ì»¤ë°‹í•˜ì‹­ì‹œì˜¤."
-#: builtin/merge.c:1229
+#: builtin/merge.c:1230
msgid ""
"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -7688,100 +7976,100 @@ msgstr ""
"커밋 빼오기를 마치지 않았습니다. (COMMIT_PICK_HEAD 있ìŒ)\n"
"병합하기 ì „ì— ë³€ê²½ ì‚¬í•­ì„ ì»¤ë°‹í•˜ì‹­ì‹œì˜¤."
-#: builtin/merge.c:1232
+#: builtin/merge.c:1233
msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
msgstr "커밋 빼오기를 마치지 않았습니다. (CHERRY_PICK_HEAD 있ìŒ)"
-#: builtin/merge.c:1241
+#: builtin/merge.c:1242
msgid "You cannot combine --squash with --no-ff."
msgstr "--squash ì˜µì…˜ì„ --no-ff 옵션과 ê°™ì´ ì“¸ 수 없습니다."
-#: builtin/merge.c:1249
+#: builtin/merge.c:1250
msgid "No commit specified and merge.defaultToUpstream not set."
msgstr "ì»¤ë°‹ì„ ì§€ì •í•˜ì§€ 않았고 merge.defaultToUpstream를 설정하지 않았습니다."
-#: builtin/merge.c:1266
+#: builtin/merge.c:1267
msgid "Squash commit into empty head not supported yet"
msgstr "빈 헤드로 ì»¤ë°‹ì„ í•©ì¹˜ê¸°ëŠ” 지ì›í•˜ì§€ 않습니다"
-#: builtin/merge.c:1268
+#: builtin/merge.c:1269
msgid "Non-fast-forward commit does not make sense into an empty head"
msgstr "ì •ë°©í–¥ì´ ì•„ë‹Œ ì»¤ë°‹ì€ ë¹ˆ 헤드ì—서는 앞뒤가 맞지 않습니다"
-#: builtin/merge.c:1274
+#: builtin/merge.c:1275
#, c-format
msgid "%s - not something we can merge"
msgstr "%s - 병합할 수 있는 í•­ëª©ì´ ì•„ë‹™ë‹ˆë‹¤"
-#: builtin/merge.c:1276
+#: builtin/merge.c:1277
msgid "Can merge only exactly one commit into empty head"
msgstr "빈 헤드ì—는 정확히 í•˜ë‚˜ì˜ ì»¤ë°‹ë§Œ 병합할 수 있습니다"
-#: builtin/merge.c:1331
+#: builtin/merge.c:1332
#, c-format
msgid "Commit %s has an untrusted GPG signature, allegedly by %s."
msgstr "%s ì»¤ë°‹ì— ì‹ ë¢°í•˜ì§€ 않는 (서명ìžê°€ %së¼ê³  하는) GPG ì„œëª…ì´ ìžˆìŠµë‹ˆë‹¤."
-#: builtin/merge.c:1334
+#: builtin/merge.c:1335
#, c-format
msgid "Commit %s has a bad GPG signature allegedly by %s."
msgstr "%s ì»¤ë°‹ì— ìž˜ëª»ëœ (서명ìžê°€ %së¼ê³  하는) GPG ì„œëª…ì´ ìžˆìŠµë‹ˆë‹¤."
-#: builtin/merge.c:1337
+#: builtin/merge.c:1338
#, c-format
msgid "Commit %s does not have a GPG signature."
msgstr "%s ì»¤ë°‹ì— GPG ì„œëª…ì´ ì—†ìŠµë‹ˆë‹¤."
-#: builtin/merge.c:1340
+#: builtin/merge.c:1341
#, c-format
msgid "Commit %s has a good GPG signature by %s\n"
msgstr "%s ì»¤ë°‹ì— %sì˜ ì˜¬ë°”ë¥¸ GPG ì„œëª…ì´ ì—†ìŠµë‹ˆë‹¤\n"
-#: builtin/merge.c:1423
+#: builtin/merge.c:1424
#, c-format
msgid "Updating %s..%s\n"
msgstr "ì—…ë°ì´íŠ¸ 중 %s..%s\n"
-#: builtin/merge.c:1460
+#: builtin/merge.c:1461
#, c-format
msgid "Trying really trivial in-index merge...\n"
msgstr "아주 간단한 ì¸ë±ìŠ¤ 내부 ë³‘í•©ì„ ì‹œë„합니다...\n"
-#: builtin/merge.c:1467
+#: builtin/merge.c:1468
#, c-format
msgid "Nope.\n"
msgstr "아님.\n"
-#: builtin/merge.c:1499
+#: builtin/merge.c:1500
msgid "Not possible to fast-forward, aborting."
msgstr "ì •ë°©í–¥ì´ ë¶ˆê°€ëŠ¥í•˜ë¯€ë¡œ, 중지합니다."
-#: builtin/merge.c:1522 builtin/merge.c:1601
+#: builtin/merge.c:1523 builtin/merge.c:1602
#, c-format
msgid "Rewinding the tree to pristine...\n"
msgstr "트리를 본래 위치로 ë˜ëŒë¦½ë‹ˆë‹¤...\n"
-#: builtin/merge.c:1526
+#: builtin/merge.c:1527
#, c-format
msgid "Trying merge strategy %s...\n"
msgstr "병합 ì „ëžµ %s ì‹œë„...\n"
-#: builtin/merge.c:1592
+#: builtin/merge.c:1593
#, c-format
msgid "No merge strategy handled the merge.\n"
msgstr "ë³‘í•©ì„ ì²˜ë¦¬í•œ ì „ëžµì´ ì—†ìŠµë‹ˆë‹¤.\n"
-#: builtin/merge.c:1594
+#: builtin/merge.c:1595
#, c-format
msgid "Merge with strategy %s failed.\n"
msgstr "ì „ëžµ %s(으)ë¡œ ë³‘í•©ì´ ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤.\n"
-#: builtin/merge.c:1603
+#: builtin/merge.c:1604
#, c-format
msgid "Using the %s to prepare resolving by hand.\n"
msgstr "ìˆ˜ë™ í•´ê²°ì˜ ì¤€ë¹„ë¥¼ 위해 %s ì „ëžµì„ ì‚¬ìš©í•©ë‹ˆë‹¤.\n"
-#: builtin/merge.c:1615
+#: builtin/merge.c:1616
#, c-format
msgid "Automatic merge went well; stopped before committing as requested\n"
msgstr "ìžë™ ë³‘í•©ì´ ìž˜ 진행ë˜ì—ˆìŠµë‹ˆë‹¤. 요청한대로 커밋 ì „ì— ì¤‘ì§€í•©ë‹ˆë‹¤\n"
@@ -7830,7 +8118,9 @@ msgstr "<ë ˆí¼ëŸ°ìŠ¤>ì˜ reflogì—ì„œ <커밋>ì´ ë¶„ë¦¬ëœ ìœ„ì¹˜ë¥¼ 찾습니
msgid ""
"git merge-file [<options>] [-L <name1> [-L <orig> [-L <name2>]]] <file1> "
"<orig-file> <file2>"
-msgstr "git merge-file [<옵션>] [-L <ì´ë¦„1> [-L <orig> [-L <ì´ë¦„2>]]] <파ì¼1> <본래-파ì¼> <파ì¼2>"
+msgstr ""
+"git merge-file [<옵션>] [-L <ì´ë¦„1> [-L <orig> [-L <ì´ë¦„2>]]] <파ì¼1> <본래-"
+"파ì¼> <파ì¼2>"
#: builtin/merge-file.c:33
msgid "send results to standard output"
@@ -7864,19 +8154,19 @@ msgstr "충ëŒì— 대해 경고하지 않습니다"
msgid "set labels for file1/orig-file/file2"
msgstr "<파ì¼1>/<본래-파ì¼>/<파ì¼2>ì— ëŒ€í•œ ë ˆì´ë¸”ì„ ì„¤ì •í•©ë‹ˆë‹¤"
-#: builtin/mktree.c:64
+#: builtin/mktree.c:65
msgid "git mktree [-z] [--missing] [--batch]"
msgstr "git mktree [-z] [--missing] [--batch]"
-#: builtin/mktree.c:150
+#: builtin/mktree.c:152
msgid "input is NUL terminated"
msgstr "ìž…ë ¥ì´ NULë¡œ ë납니다"
-#: builtin/mktree.c:151 builtin/write-tree.c:24
+#: builtin/mktree.c:153 builtin/write-tree.c:24
msgid "allow missing objects"
msgstr "없는 오브ì íŠ¸ë¥¼ 허용합니다"
-#: builtin/mktree.c:152
+#: builtin/mktree.c:154
msgid "allow creation of more than one tree"
msgstr "여러개 트리 만들기를 허용합니다"
@@ -7884,90 +8174,90 @@ msgstr "여러개 트리 만들기를 허용합니다"
msgid "git mv [<options>] <source>... <destination>"
msgstr "git mv [<옵션>] <ì›ë³¸>... <대ìƒ>"
-#: builtin/mv.c:69
+#: builtin/mv.c:70
#, c-format
msgid "Directory %s is in index and no submodule?"
msgstr "%s 디렉터리가 ì¸ë±ìŠ¤ì— 있고 하위 ëª¨ë“ˆì´ ì—†ìŠµë‹ˆë‹¤?"
-#: builtin/mv.c:71
+#: builtin/mv.c:72
msgid "Please stage your changes to .gitmodules or stash them to proceed"
msgstr "계ì†í•˜ë ¤ë©´ .gitmodulesì˜ ë³€ê²½ ì‚¬í•­ì„ ìŠ¤í…Œì´ì§€ì— 넣거나 stash 하십시오"
-#: builtin/mv.c:89
+#: builtin/mv.c:90
#, c-format
msgid "%.*s is in index"
msgstr "%.*sì´(ê°€) ì¸ë±ìŠ¤ì— 있습니다"
-#: builtin/mv.c:111
+#: builtin/mv.c:112
msgid "force move/rename even if target exists"
msgstr "대ìƒì´ ì´ë¯¸ ìžˆì–´ë„ ê°•ì œë¡œ 옮기기/ì´ë¦„ 바꾸기를 합니다"
-#: builtin/mv.c:112
+#: builtin/mv.c:113
msgid "skip move/rename errors"
msgstr "옮기기/ì´ë¦„ 바꾸기 오류를 건너 ëœë‹ˆë‹¤"
-#: builtin/mv.c:151
+#: builtin/mv.c:152
#, c-format
msgid "destination '%s' is not a directory"
msgstr "대ìƒì´ ('%s') 디렉터리가 아닙니다"
-#: builtin/mv.c:162
+#: builtin/mv.c:163
#, c-format
msgid "Checking rename of '%s' to '%s'\n"
msgstr "'%s'ì„(를) '%s'(으)ë¡œ ì´ë¦„ 바꾸기합니다\n"
-#: builtin/mv.c:166
+#: builtin/mv.c:167
msgid "bad source"
msgstr "ìž˜ëª»ëœ ì›ë³¸"
-#: builtin/mv.c:169
+#: builtin/mv.c:170
msgid "can not move directory into itself"
msgstr "디렉터리를 ìžê¸° ìžì‹ ìœ¼ë¡œ 옮길 수 없습니다"
-#: builtin/mv.c:172
+#: builtin/mv.c:173
msgid "cannot move directory over file"
msgstr "디렉터리를 파ì¼ë¡œ 옮길 수 없습니다"
-#: builtin/mv.c:181
+#: builtin/mv.c:182
msgid "source directory is empty"
msgstr "ì›ë³¸ 디렉터리가 비어 있습니다"
-#: builtin/mv.c:206
+#: builtin/mv.c:207
msgid "not under version control"
msgstr "버전 컨트롤 ì¤‘ì´ ì•„ë‹™ë‹ˆë‹¤"
-#: builtin/mv.c:209
+#: builtin/mv.c:210
msgid "destination exists"
msgstr "대ìƒì´ 있습니다"
-#: builtin/mv.c:217
+#: builtin/mv.c:218
#, c-format
msgid "overwriting '%s'"
msgstr "'%s' ë®ì–´ì“°ê¸°"
-#: builtin/mv.c:220
+#: builtin/mv.c:221
msgid "Cannot overwrite"
msgstr "ë®ì–´ì“¸ 수 없습니다"
-#: builtin/mv.c:223
+#: builtin/mv.c:224
msgid "multiple sources for the same target"
msgstr "ë™ì¼í•œ 대ìƒì— 대해 여러 ê°œ ì›ë³¸"
-#: builtin/mv.c:225
+#: builtin/mv.c:226
msgid "destination directory does not exist"
msgstr "ëŒ€ìƒ ë””ë ‰í„°ë¦¬ê°€ 없습니다"
-#: builtin/mv.c:232
+#: builtin/mv.c:233
#, c-format
msgid "%s, source=%s, destination=%s"
msgstr "%s, ì›ë³¸=%s, 대ìƒ=%s"
-#: builtin/mv.c:253
+#: builtin/mv.c:254
#, c-format
msgid "Renaming %s to %s\n"
msgstr "ì´ë¦„ 바꾸기, '%s'ì—ì„œ '%s'(으)ë¡œ\n"
-#: builtin/mv.c:256 builtin/remote.c:728 builtin/repack.c:365
+#: builtin/mv.c:257 builtin/remote.c:714 builtin/repack.c:365
#, c-format
msgid "renaming '%s' failed"
msgstr "'%s'ì˜ ì´ë¦„ 바꾸기가 실패했습니다"
@@ -8026,7 +8316,8 @@ msgstr ""
#: builtin/notes.c:27
msgid "git notes [--ref <notes-ref>] copy [-f] <from-object> <to-object>"
-msgstr "git notes [--ref <노트-ë ˆí¼ëŸ°ìŠ¤>] copy [-f] <ì›ë³¸-오브ì íŠ¸> <대ìƒ-오브ì íŠ¸>"
+msgstr ""
+"git notes [--ref <노트-ë ˆí¼ëŸ°ìŠ¤>] copy [-f] <ì›ë³¸-오브ì íŠ¸> <대ìƒ-오브ì íŠ¸>"
#: builtin/notes.c:28
msgid ""
@@ -8047,7 +8338,8 @@ msgstr "git notes [--ref <notes-ref>] show [<오브ì íŠ¸>]"
#: builtin/notes.c:31
msgid ""
"git notes [--ref <notes-ref>] merge [-v | -q] [-s <strategy>] <notes-ref>"
-msgstr "git notes [--ref <노트-ë ˆí¼ëŸ°ìŠ¤>] merge [-v | -q] [-s <ì „ëžµ>] <노트-ë ˆí¼ëŸ°ìŠ¤>"
+msgstr ""
+"git notes [--ref <노트-ë ˆí¼ëŸ°ìŠ¤>] merge [-v | -q] [-s <ì „ëžµ>] <노트-ë ˆí¼ëŸ°ìŠ¤>"
#: builtin/notes.c:32
msgid "git notes merge --commit [-v | -q]"
@@ -8164,9 +8456,9 @@ msgid "could not open or read '%s'"
msgstr "'%s'ì„(를) 열거나 ì½ì„ 수 없습니다"
#: builtin/notes.c:253 builtin/notes.c:304 builtin/notes.c:306
-#: builtin/notes.c:366 builtin/notes.c:421 builtin/notes.c:507
-#: builtin/notes.c:512 builtin/notes.c:590 builtin/notes.c:653
-#: builtin/notes.c:877 builtin/tag.c:456
+#: builtin/notes.c:369 builtin/notes.c:424 builtin/notes.c:510
+#: builtin/notes.c:515 builtin/notes.c:593 builtin/notes.c:656
+#: builtin/notes.c:880 builtin/tag.c:456
#, c-format
msgid "Failed to resolve '%s' as a valid ref."
msgstr "'%s'ì„(를) 올바른 ë ˆí¼ëŸ°ìŠ¤ë¡œ ì•Œì•„ë‚´ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤."
@@ -8181,83 +8473,87 @@ msgstr "'%s' 오브ì íŠ¸ ì½ê¸°ì— 실패했습니다."
msgid "Cannot read note data from non-blob object '%s'."
msgstr "ë¸”ë¡­ì´ ì•„ë‹Œ '%s' 오브ì íŠ¸ì— 대해 노트 ë°ì´í„°ë¥¼ ì½ì„ 수 없습니다."
-#: builtin/notes.c:359 builtin/notes.c:414 builtin/notes.c:490
-#: builtin/notes.c:502 builtin/notes.c:578 builtin/notes.c:646
-#: builtin/notes.c:942
+#: builtin/notes.c:362 builtin/notes.c:417 builtin/notes.c:493
+#: builtin/notes.c:505 builtin/notes.c:581 builtin/notes.c:649
+#: builtin/notes.c:945
msgid "too many parameters"
msgstr "파ë¼ë¯¸í„°ê°€ 너무 많습니다"
-#: builtin/notes.c:372 builtin/notes.c:659
+#: builtin/notes.c:375 builtin/notes.c:662
#, c-format
msgid "No note found for object %s."
msgstr "%s 오브ì íŠ¸ì— 대해 노트가 없습니다."
-#: builtin/notes.c:393 builtin/notes.c:556
+#: builtin/notes.c:396 builtin/notes.c:559
msgid "note contents as a string"
msgstr "문ìžì—´ë¡œ 노트 ë‚´ìš©"
-#: builtin/notes.c:396 builtin/notes.c:559
+#: builtin/notes.c:399 builtin/notes.c:562
msgid "note contents in a file"
msgstr "íŒŒì¼ ì•ˆì— ë…¸íŠ¸ ë‚´ìš©"
-#: builtin/notes.c:399 builtin/notes.c:562
+#: builtin/notes.c:402 builtin/notes.c:565
msgid "reuse and edit specified note object"
msgstr "지정한 노트 오브ì íŠ¸ë¥¼ 재사용하고 편집합니다"
-#: builtin/notes.c:402 builtin/notes.c:565
+#: builtin/notes.c:405 builtin/notes.c:568
msgid "reuse specified note object"
msgstr "지정한 노트 오브ì íŠ¸ë¥¼ 재사용합니다"
-#: builtin/notes.c:405 builtin/notes.c:568
+#: builtin/notes.c:408 builtin/notes.c:571
msgid "allow storing empty note"
msgstr "빈 노트 ì €ìž¥ì„ í—ˆìš©í•©ë‹ˆë‹¤"
-#: builtin/notes.c:406 builtin/notes.c:477
+#: builtin/notes.c:409 builtin/notes.c:480
msgid "replace existing notes"
msgstr "기존 노트를 바꿉니다"
-#: builtin/notes.c:431
+#: builtin/notes.c:434
#, c-format
msgid ""
"Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite "
"existing notes"
-msgstr "노트를 추가할 수 없습니다. %s 오브ì íŠ¸ì— 대한 기존 노트가 있습니다. 기존 노트를 ë®ì–´ì“°ë ¤ë©´ '-f' ì˜µì…˜ì„ ì‚¬ìš©í•˜ì‹­ì‹œì˜¤"
+msgstr ""
+"노트를 추가할 수 없습니다. %s 오브ì íŠ¸ì— 대한 기존 노트가 있습니다. 기존 노트"
+"를 ë®ì–´ì“°ë ¤ë©´ '-f' ì˜µì…˜ì„ ì‚¬ìš©í•˜ì‹­ì‹œì˜¤"
-#: builtin/notes.c:446 builtin/notes.c:525
+#: builtin/notes.c:449 builtin/notes.c:528
#, c-format
msgid "Overwriting existing notes for object %s\n"
msgstr "%s 오브ì íŠ¸ì— 대한 기존 노트를 ë®ì–´ì”니다\n"
-#: builtin/notes.c:457 builtin/notes.c:618 builtin/notes.c:882
+#: builtin/notes.c:460 builtin/notes.c:621 builtin/notes.c:885
#, c-format
msgid "Removing note for object %s\n"
msgstr "%s 오브ì íŠ¸ì— 대한 노트를 제거합니다\n"
-#: builtin/notes.c:478
+#: builtin/notes.c:481
msgid "read objects from stdin"
msgstr "표준 ìž…ë ¥ì—ì„œ 오브ì íŠ¸ë¥¼ ì½ìŠµë‹ˆë‹¤"
-#: builtin/notes.c:480
+#: builtin/notes.c:483
msgid "load rewriting config for <command> (implies --stdin)"
msgstr "<명령>ì— ëŒ€í•œ 다시쓰기 ì„¤ì •ì„ ì½ì–´ë“¤ìž…니다 (--stdin 옵션 í¬í•¨)"
-#: builtin/notes.c:498
+#: builtin/notes.c:501
msgid "too few parameters"
msgstr "파ë¼ë¯¸í„°ê°€ 너무 ì ìŠµë‹ˆë‹¤"
-#: builtin/notes.c:519
+#: builtin/notes.c:522
#, c-format
msgid ""
"Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite "
"existing notes"
-msgstr "노트를 복사할 수 없습니다. %s 오브ì íŠ¸ì— 대한 기존 노트가 있습니다. 기존 노트를 ë®ì–´ì“°ë ¤ë©´ '-f' ì˜µì…˜ì„ ì‚¬ìš©í•˜ì‹­ì‹œì˜¤"
+msgstr ""
+"노트를 복사할 수 없습니다. %s 오브ì íŠ¸ì— 대한 기존 노트가 있습니다. 기존 노트"
+"를 ë®ì–´ì“°ë ¤ë©´ '-f' ì˜µì…˜ì„ ì‚¬ìš©í•˜ì‹­ì‹œì˜¤"
-#: builtin/notes.c:531
+#: builtin/notes.c:534
#, c-format
msgid "Missing notes on source object %s. Cannot copy."
msgstr "ì›ë³¸ %s 오브ì íŠ¸ì— 대한 노트가 없습니다. 복사할 수 없습니다."
-#: builtin/notes.c:583
+#: builtin/notes.c:586
#, c-format
msgid ""
"The -m/-F/-c/-C options have been deprecated for the 'edit' subcommand.\n"
@@ -8266,63 +8562,65 @@ msgstr ""
"-m/-F/-c/-C ì˜µì…˜ì€ 'edit' 하위 ëª…ë ¹ì— ëŒ€í•´ ì‚¬ìš©ì„ ê¶Œí•˜ì§€ 않습니다.\n"
"ëŒ€ì‹ ì— 'git notes add -f -m/-F/-c/-C' ëª…ë ¹ì„ ì‚¬ìš©í•˜ì‹­ì‹œì˜¤.\n"
-#: builtin/notes.c:764
+#: builtin/notes.c:767
msgid "General options"
msgstr "ì¼ë°˜ 옵션"
-#: builtin/notes.c:766
+#: builtin/notes.c:769
msgid "Merge options"
msgstr "병합 옵션"
-#: builtin/notes.c:768
+#: builtin/notes.c:771
msgid ""
"resolve notes conflicts using the given strategy (manual/ours/theirs/union/"
"cat_sort_uniq)"
-msgstr "주어진 ì „ëžµì„ ì‚¬ìš©í•´ 노트 충ëŒì„ 해결합니다 (manual/ours/theirs/union/cat_sort_uniq)"
+msgstr ""
+"주어진 ì „ëžµì„ ì‚¬ìš©í•´ 노트 충ëŒì„ 해결합니다 (manual/ours/theirs/union/"
+"cat_sort_uniq)"
-#: builtin/notes.c:770
+#: builtin/notes.c:773
msgid "Committing unmerged notes"
msgstr "병합하지 ì•Šì€ ë…¸íŠ¸ 커밋"
-#: builtin/notes.c:772
+#: builtin/notes.c:775
msgid "finalize notes merge by committing unmerged notes"
msgstr "병합하지 ì•Šì€ ë…¸íŠ¸ë¥¼ 커밋해 노트 ë³‘í•©ì„ ë§ˆì¹©ë‹ˆë‹¤"
-#: builtin/notes.c:774
+#: builtin/notes.c:777
msgid "Aborting notes merge resolution"
msgstr "노트 병합 해결 중지"
-#: builtin/notes.c:776
+#: builtin/notes.c:779
msgid "abort notes merge"
msgstr "노트 ë³‘í•©ì„ ì¤‘ì§€í•©ë‹ˆë‹¤"
-#: builtin/notes.c:853
+#: builtin/notes.c:856
#, c-format
msgid "A notes merge into %s is already in-progress at %s"
msgstr "%s 위치로 노트 ë³‘í•©ì´ ì´ë¯¸ %sì—ì„œ 진행중입니다"
-#: builtin/notes.c:880
+#: builtin/notes.c:883
#, c-format
msgid "Object %s has no note\n"
msgstr "%s 오브ì íŠ¸ì— 노트가 없습니다\n"
-#: builtin/notes.c:892
+#: builtin/notes.c:895
msgid "attempt to remove non-existent note is not an error"
msgstr "없는 노트를 제거하려는 ì‹œë„를 오류가 ì•„ë‹Œ 것으로 취급합니다"
-#: builtin/notes.c:895
+#: builtin/notes.c:898
msgid "read object names from the standard input"
msgstr "표준 ìž…ë ¥ì—ì„œ 오브ì íŠ¸ ì´ë¦„ì„ ì½ìŠµë‹ˆë‹¤"
-#: builtin/notes.c:976
+#: builtin/notes.c:979
msgid "notes-ref"
msgstr "노트-ë ˆí¼ëŸ°ìŠ¤"
-#: builtin/notes.c:977
+#: builtin/notes.c:980
msgid "use notes from <notes-ref>"
msgstr "<노트-ë ˆí¼ëŸ°ìŠ¤>ì—ì„œ 노트를 사용합니다"
-#: builtin/notes.c:1012 builtin/remote.c:1647
+#: builtin/notes.c:1015 builtin/remote.c:1626
#, c-format
msgid "Unknown subcommand: %s"
msgstr "알 수 없는 하위 명령: %s"
@@ -8345,166 +8643,166 @@ msgstr ""
msgid "deflate error (%d)"
msgstr "deflate 오류 (%d)"
-#: builtin/pack-objects.c:771
+#: builtin/pack-objects.c:772
msgid "Writing objects"
msgstr "오브ì íŠ¸ 쓰는 중"
-#: builtin/pack-objects.c:1011
+#: builtin/pack-objects.c:1012
msgid "disabling bitmap writing, as some objects are not being packed"
msgstr "묶ìŒì— 들어있지 ì•Šì€ ì˜¤ë¸Œì íŠ¸ê°€ 있으므로, 비트맵 쓰기를 하지 않습니다"
-#: builtin/pack-objects.c:2171
+#: builtin/pack-objects.c:2172
msgid "Compressing objects"
msgstr "오브ì íŠ¸ 압축하는 중"
-#: builtin/pack-objects.c:2568
+#: builtin/pack-objects.c:2558
#, c-format
msgid "unsupported index version %s"
msgstr "지ì›í•˜ì§€ 않는 ì¸ë±ìŠ¤ 버전 %s"
-#: builtin/pack-objects.c:2572
+#: builtin/pack-objects.c:2562
#, c-format
msgid "bad index version '%s'"
msgstr "ìž˜ëª»ëœ ì¸ë±ìŠ¤ 버전 '%s'"
-#: builtin/pack-objects.c:2602
+#: builtin/pack-objects.c:2592
msgid "do not show progress meter"
msgstr "ì§„í–‰ë¥ ì„ í‘œì‹œí•˜ì§€ 않습니다"
-#: builtin/pack-objects.c:2604
+#: builtin/pack-objects.c:2594
msgid "show progress meter"
msgstr "ì§„í–‰ë¥ ì„ í‘œì‹œí•©ë‹ˆë‹¤"
-#: builtin/pack-objects.c:2606
+#: builtin/pack-objects.c:2596
msgid "show progress meter during object writing phase"
msgstr "오브ì íŠ¸ 쓰기 단계ì—ì„œ ì§„í–‰ë¥ ì„ í‘œì‹œí•©ë‹ˆë‹¤"
-#: builtin/pack-objects.c:2609
+#: builtin/pack-objects.c:2599
msgid "similar to --all-progress when progress meter is shown"
msgstr "ì§„í–‰ë¥ ì´ í‘œì‹œë  ë•Œ --all-progress와 비슷합니다"
-#: builtin/pack-objects.c:2610
+#: builtin/pack-objects.c:2600
msgid "version[,offset]"
msgstr "버전[,오프셋]"
-#: builtin/pack-objects.c:2611
+#: builtin/pack-objects.c:2601
msgid "write the pack index file in the specified idx format version"
msgstr "지정한 ë²„ì „ì˜ ì¸ë±ìŠ¤ 형ì‹ì— ë”°ë¼ ë¬¶ìŒ ì¸ë±ìŠ¤ 파ì¼ì„ ì”니다"
-#: builtin/pack-objects.c:2614
+#: builtin/pack-objects.c:2604
msgid "maximum size of each output pack file"
msgstr "출력 ë¬¶ìŒ íŒŒì¼ì˜ 최대 í¬ê¸°"
-#: builtin/pack-objects.c:2616
+#: builtin/pack-objects.c:2606
msgid "ignore borrowed objects from alternate object store"
msgstr "ë³´ì¡° 오브ì íŠ¸ 저장소ì—ì„œ 빌려온 오브ì íŠ¸ë¥¼ 무시합니다"
-#: builtin/pack-objects.c:2618
+#: builtin/pack-objects.c:2608
msgid "ignore packed objects"
msgstr "ë¬¶ìŒ ì˜¤ë¸Œì íŠ¸ë¥¼ 무시합니다"
-#: builtin/pack-objects.c:2620
+#: builtin/pack-objects.c:2610
msgid "limit pack window by objects"
msgstr "ë¬¶ìŒ ìœˆë„우를 오브ì íŠ¸ 단위로 제한합니다"
-#: builtin/pack-objects.c:2622
+#: builtin/pack-objects.c:2612
msgid "limit pack window by memory in addition to object limit"
msgstr "ë¬¶ìŒ ìœˆë„우를 오브ì íŠ¸ ë‹¨ìœ„ì— ì¶”ê°€ë¡œ 메모리 단위로 제한합니다"
-#: builtin/pack-objects.c:2624
+#: builtin/pack-objects.c:2614
msgid "maximum length of delta chain allowed in the resulting pack"
msgstr "결과물 묶ìŒì—ì„œ 허용ë˜ëŠ” 최대 길ì´ì˜ ë¸íƒ€ ì²´ì¸"
-#: builtin/pack-objects.c:2626
+#: builtin/pack-objects.c:2616
msgid "reuse existing deltas"
msgstr "기존 ë¸íƒ€ë¥¼ 재사용합니다"
-#: builtin/pack-objects.c:2628
+#: builtin/pack-objects.c:2618
msgid "reuse existing objects"
msgstr "기존 오브ì íŠ¸ë¥¼ 재사용합니다"
-#: builtin/pack-objects.c:2630
+#: builtin/pack-objects.c:2620
msgid "use OFS_DELTA objects"
msgstr "OFS_DELTA 오브ì íŠ¸ë¥¼ 사용합니다"
-#: builtin/pack-objects.c:2632
+#: builtin/pack-objects.c:2622
msgid "use threads when searching for best delta matches"
msgstr "최ìƒì˜ ë¸íƒ€ ì¼ì¹˜ë¥¼ ê²€ìƒ‰í•˜ëŠ”ë° ìŠ¤ë ˆë“œë¥¼ 사용합니다"
-#: builtin/pack-objects.c:2634
+#: builtin/pack-objects.c:2624
msgid "do not create an empty pack output"
msgstr "빈 ë¬¶ìŒ ì¶œë ¥ì„ ë§Œë“¤ì§€ 않습니다"
-#: builtin/pack-objects.c:2636
+#: builtin/pack-objects.c:2626
msgid "read revision arguments from standard input"
msgstr "표준 ìž…ë ¥ì—ì„œ 리비전 ì¸ìžë¥¼ ì½ìŠµë‹ˆë‹¤"
-#: builtin/pack-objects.c:2638
+#: builtin/pack-objects.c:2628
msgid "limit the objects to those that are not yet packed"
msgstr "묶지 않는 오브ì íŠ¸ 수를 제한합니다"
-#: builtin/pack-objects.c:2641
+#: builtin/pack-objects.c:2631
msgid "include objects reachable from any reference"
msgstr "모든 ë ˆí¼ëŸ°ìŠ¤ì—ì„œ ì ‘ê·¼ 가능한 오브ì íŠ¸ë¥¼ í¬í•¨í•©ë‹ˆë‹¤"
-#: builtin/pack-objects.c:2644
+#: builtin/pack-objects.c:2634
msgid "include objects referred by reflog entries"
msgstr "reflog 항목ì—ì„œ ë ˆí¼ëŸ°ìŠ¤í•  수 있는 오브ì íŠ¸ë¥¼ í¬í•¨í•©ë‹ˆë‹¤"
-#: builtin/pack-objects.c:2647
+#: builtin/pack-objects.c:2637
msgid "include objects referred to by the index"
msgstr "ì¸ë±ìŠ¤ì—ì„œ< ë ˆí¼ëŸ°ìŠ¤í•˜ëŠ” 오브ì íŠ¸ë¥¼ í¬í•¨í•©ë‹ˆë‹¤"
-#: builtin/pack-objects.c:2650
+#: builtin/pack-objects.c:2640
msgid "output pack to stdout"
msgstr "묶ìŒì„ 표준 출력으로 출력합니다"
-#: builtin/pack-objects.c:2652
+#: builtin/pack-objects.c:2642
msgid "include tag objects that refer to objects to be packed"
msgstr "묶ìŒì— 들어갈 오브ì íŠ¸ë¥¼ ë ˆí¼ëŸ°ìŠ¤í•˜ëŠ” 태그 오브ì íŠ¸ë¥¼ í¬í•¨í•©ë‹ˆë‹¤"
-#: builtin/pack-objects.c:2654
+#: builtin/pack-objects.c:2644
msgid "keep unreachable objects"
msgstr "ì ‘ê·¼ 불가능 오브ì íŠ¸ë¥¼ 보존합니다"
-#: builtin/pack-objects.c:2655 parse-options.h:142
+#: builtin/pack-objects.c:2645 parse-options.h:142
msgid "time"
msgstr "ì‹œê°"
-#: builtin/pack-objects.c:2656
+#: builtin/pack-objects.c:2646
msgid "unpack unreachable objects newer than <time>"
msgstr "<ì‹œê°>보다 새로운 ì ‘ê·¼ 불가능 오브ì íŠ¸ì˜ 묶ìŒì„ 풉니다"
-#: builtin/pack-objects.c:2659
+#: builtin/pack-objects.c:2649
msgid "create thin packs"
msgstr "ì–‡ì€ ë¬¶ìŒì„ 만듭니다"
-#: builtin/pack-objects.c:2661
+#: builtin/pack-objects.c:2651
msgid "create packs suitable for shallow fetches"
msgstr "ì–•ì€ ê°€ì ¸ì˜¤ê¸°ì— ì í•©í•œ 묶ìŒì„ 만듭니다"
-#: builtin/pack-objects.c:2663
+#: builtin/pack-objects.c:2653
msgid "ignore packs that have companion .keep file"
msgstr "해당하는 .keep 파ì¼ì´ 있는 묶ìŒì„ 무시합니다"
-#: builtin/pack-objects.c:2665
+#: builtin/pack-objects.c:2655
msgid "pack compression level"
msgstr "ë¬¶ìŒ ì••ì¶• 단계"
# FIXME: graft?
-#: builtin/pack-objects.c:2667
+#: builtin/pack-objects.c:2657
msgid "do not hide commits by grafts"
msgstr "붙어 있는 ì»¤ë°‹ì„ ìˆ¨ê¸°ì§€ 않습니다"
-#: builtin/pack-objects.c:2669
+#: builtin/pack-objects.c:2659
msgid "use a bitmap index if available to speed up counting objects"
msgstr "가능하면 비트맵 ì¸ë±ìŠ¤ë¥¼ 사용해 오브ì íŠ¸ 세기 ì†ë„를 높입니다"
-#: builtin/pack-objects.c:2671
+#: builtin/pack-objects.c:2661
msgid "write a bitmap index together with the pack index"
msgstr "ë¬¶ìŒ ì¸ë±ìŠ¤ì™€ ê°™ì´ ë¹„íŠ¸ë§µ ì¸ë±ìŠ¤ë¥¼ ì”니다"
-#: builtin/pack-objects.c:2762
+#: builtin/pack-objects.c:2752
msgid "Counting objects"
msgstr "오브ì íŠ¸ 개수 세는 중"
@@ -8548,59 +8846,65 @@ msgstr "<ì‹œê°>보다 오래 ëœ ì˜¤ë¸Œì íŠ¸ê°€ 만료ë©ë‹ˆë‹¤"
msgid "cannot prune in a precious-objects repo"
msgstr "precious-objects 저장소ì—ì„œ 잘ë¼ë‚¼ 수 없습니다"
-#: builtin/pull.c:69
+#: builtin/pull.c:72
msgid "git pull [<options>] [<repository> [<refspec>...]]"
msgstr "git pull [<옵션>] [<저장소> [<ë ˆí¼ëŸ°ìŠ¤ëª…세>...]]"
-#: builtin/pull.c:113
+#: builtin/pull.c:117
msgid "Options related to merging"
msgstr "병합 관련 옵션"
-#: builtin/pull.c:116
+#: builtin/pull.c:120
msgid "incorporate changes by rebasing rather than merging"
msgstr "변경 ì‚¬í•­ì„ ì ìš©í•  ë•Œ 병합하는 대신 리베ì´ìŠ¤í•©ë‹ˆë‹¤"
-#: builtin/pull.c:140 builtin/revert.c:105
+#: builtin/pull.c:144 builtin/revert.c:105
msgid "allow fast-forward"
msgstr "ì •ë°©í–¥ ì§„í–‰ì„ í—ˆìš©í•©ë‹ˆë‹¤"
-#: builtin/pull.c:146
+#: builtin/pull.c:150
msgid "verify that the named commit has a valid GPG signature"
msgstr "지정한 ì»¤ë°‹ì— ì˜¬ë°”ë¥¸ GPG ì„œëª…ì´ ìžˆëŠ”ì§€ ê²€ì¦í•©ë‹ˆë‹¤"
-#: builtin/pull.c:160
+#: builtin/pull.c:164
msgid "Options related to fetching"
msgstr "가져오기 관련 옵션"
-#: builtin/pull.c:268
+#: builtin/pull.c:186
+msgid "number of submodules pulled in parallel"
+msgstr "병렬ì ìœ¼ë¡œ í’€ì„ ì‹¤í–‰í•  하위모듈 개수"
+
+#: builtin/pull.c:275
#, c-format
msgid "Invalid value for pull.ff: %s"
msgstr "pull.ffì— ëŒ€í•´ ìž˜ëª»ëœ ê°’: %s"
-#: builtin/pull.c:352
+#: builtin/pull.c:359
msgid "Cannot pull with rebase: You have unstaged changes."
-msgstr "리베ì´ìŠ¤ë¡œ í’€ì„ í•  수 없습니다: 스테ì´ì§•í•˜ì§€ ì•Šì€ ë³€ê²½ ì‚¬í•­ì´ ìžˆìŠµë‹ˆë‹¤."
+msgstr ""
+"리베ì´ìŠ¤ë¡œ í’€ì„ í•  수 없습니다: 스테ì´ì§•í•˜ì§€ ì•Šì€ ë³€ê²½ ì‚¬í•­ì´ ìžˆìŠµë‹ˆë‹¤."
-#: builtin/pull.c:358
+#: builtin/pull.c:365
msgid "Additionally, your index contains uncommitted changes."
msgstr "추가로, ì¸ë±ìŠ¤ì— 커밋하지 ì•Šì€ ë³€ê²½ ì‚¬í•­ì´ ìžˆìŠµë‹ˆë‹¤."
-#: builtin/pull.c:360
+#: builtin/pull.c:367
msgid "Cannot pull with rebase: Your index contains uncommitted changes."
-msgstr "리베ì´ìŠ¤ë¡œ í’€ì„ í•  수 없습니다: ì¸ë±ìŠ¤ì— 커밋하지 ì•Šì€ ë³€ê²½ ì‚¬í•­ì´ ìžˆìŠµë‹ˆë‹¤."
+msgstr ""
+"리베ì´ìŠ¤ë¡œ í’€ì„ í•  수 없습니다: ì¸ë±ìŠ¤ì— 커밋하지 ì•Šì€ ë³€ê²½ ì‚¬í•­ì´ ìžˆìŠµë‹ˆë‹¤."
-#: builtin/pull.c:436
+#: builtin/pull.c:443
msgid ""
"There is no candidate for rebasing against among the refs that you just "
"fetched."
msgstr "가져온 ë ˆí¼ëŸ°ìŠ¤ ì¤‘ì— ë¦¬ë² ì´ìŠ¤í•  ëŒ€ìƒ í›„ë³´ê°€ 없습니다."
-#: builtin/pull.c:438
+#: builtin/pull.c:445
msgid ""
"There are no candidates for merging among the refs that you just fetched."
msgstr "가져온 ë ˆí¼ëŸ°ìŠ¤ ì¤‘ì— ë³‘í•©í•  ëŒ€ìƒ í›„ë³´ê°€ 없습니다."
-#: builtin/pull.c:439
+#: builtin/pull.c:446
msgid ""
"Generally this means that you provided a wildcard refspec which had no\n"
"matches on the remote end."
@@ -8608,7 +8912,7 @@ msgstr ""
"보통 ì´ëŸ° 경우는 리모트 쪽ì—는 없는 와ì¼ë“œì¹´ë“œ ë ˆí¼ëŸ°ìŠ¤ëª…세가\n"
"ì£¼ì–´ì¡Œì„ ë•Œ ì¼ì–´ë‚©ë‹ˆë‹¤."
-#: builtin/pull.c:442
+#: builtin/pull.c:449
#, c-format
msgid ""
"You asked to pull from the remote '%s', but did not specify\n"
@@ -8619,27 +8923,27 @@ msgstr ""
"ì´ ë¦¬ëª¨íŠ¸ëŠ” 현재 ë¸Œëžœì¹˜ì— ëŒ€í•´ 기본으로 ì„¤ì •ëœ ë¦¬ëª¨íŠ¸ê°€\n"
"아니기 때문ì—, 명령행ì—ì„œ 브랜치를 지정해야 합니다."
-#: builtin/pull.c:447
+#: builtin/pull.c:454
msgid "You are not currently on a branch."
msgstr "현재 ì–´ë–¤ 브랜치 위ì—ë„ ìžˆì§€ 않습니다."
-#: builtin/pull.c:449 builtin/pull.c:464
+#: builtin/pull.c:456 builtin/pull.c:471
msgid "Please specify which branch you want to rebase against."
msgstr "ì–´ë–¤ 브랜치를 대ìƒìœ¼ë¡œ 리베ì´ìŠ¤í• ì§€ 지정하십시오."
-#: builtin/pull.c:451 builtin/pull.c:466
+#: builtin/pull.c:458 builtin/pull.c:473
msgid "Please specify which branch you want to merge with."
msgstr "ì–´ë–¤ 브랜치를 대ìƒìœ¼ë¡œ 병합할지 지정하십시오."
-#: builtin/pull.c:452 builtin/pull.c:467
+#: builtin/pull.c:459 builtin/pull.c:474
msgid "See git-pull(1) for details."
msgstr "ìžì„¸í•œ 정보는 git-pull(1) 페ì´ì§€ë¥¼ 참고하십시오."
-#: builtin/pull.c:462
+#: builtin/pull.c:469
msgid "There is no tracking information for the current branch."
msgstr "현재 ë¸Œëžœì¹˜ì— ì¶”ì  ì •ë³´ê°€ 없습니다."
-#: builtin/pull.c:471
+#: builtin/pull.c:478
#, c-format
msgid ""
"If you wish to set tracking information for this branch you can do so with:\n"
@@ -8650,7 +8954,7 @@ msgstr ""
"\n"
" git branch --set-upstream-to=%s/<브랜치> %s\n"
-#: builtin/pull.c:476
+#: builtin/pull.c:483
#, c-format
msgid ""
"Your configuration specifies to merge with the ref '%s'\n"
@@ -8659,11 +8963,11 @@ msgstr ""
"설정ì—ì„œ ë¦¬ëª¨íŠ¸ì˜ '%s' ë ˆí¼ëŸ°ìŠ¤ì™€ 병합하ë„ë¡ ì§€ì •í–ˆì§€ë§Œ,\n"
"그런 ë ˆí¼ëŸ°ìŠ¤ë¥¼ 가져오지 않았습니다."
-#: builtin/pull.c:830
+#: builtin/pull.c:841
msgid "Updating an unborn branch with changes added to the index."
msgstr "만들어지지 ì•Šì€ ë¸Œëžœì¹˜ë¥¼ ì¸ë±ìŠ¤ì— ì¶”ê°€ëœ ë³€ê²½ 사항으로 ì—…ë°ì´íŠ¸í•©ë‹ˆë‹¤."
-#: builtin/pull.c:859
+#: builtin/pull.c:870
#, c-format
msgid ""
"fetch updated the current branch head.\n"
@@ -8674,7 +8978,7 @@ msgstr ""
"ìž‘ì—… í´ë”를 %s 커밋ì—ì„œ ì •ë°©í–¥\n"
"진행합니다."
-#: builtin/pull.c:864
+#: builtin/pull.c:875
#, c-format
msgid ""
"Cannot fast-forward your working tree.\n"
@@ -8691,11 +8995,11 @@ msgstr ""
"$ git reset --hard\n"
"복구ë©ë‹ˆë‹¤."
-#: builtin/pull.c:879
+#: builtin/pull.c:890
msgid "Cannot merge multiple branches into empty head."
msgstr "여러 브랜치를 빈 헤드로 병합할 수 없습니다."
-#: builtin/pull.c:883
+#: builtin/pull.c:894
msgid "Cannot rebase onto multiple branches."
msgstr "여러 브랜치로 리베ì´ìŠ¤í•  수 없습니다."
@@ -8703,21 +9007,24 @@ msgstr "여러 브랜치로 리베ì´ìŠ¤í•  수 없습니다."
msgid "git push [<options>] [<repository> [<refspec>...]]"
msgstr "git push [<옵션>] [<저장소> [<ë ˆí¼ëŸ°ìŠ¤ëª…세>...]]"
-#: builtin/push.c:88
+#: builtin/push.c:89
msgid "tag shorthand without <tag>"
msgstr "<태그> ì—†ì´ íƒœê·¸ 줄임"
-#: builtin/push.c:98
+#: builtin/push.c:99
msgid "--delete only accepts plain target ref names"
msgstr "--delete ì˜µì…˜ì€ ì¼ë°˜ ëŒ€ìƒ ë ˆí¼ëŸ°ìŠ¤ ì´ë¦„만 받습니다"
-#: builtin/push.c:142
+#: builtin/push.c:143
msgid ""
"\n"
"To choose either option permanently, see push.default in 'git help config'."
-msgstr "\nì–´ëŠ í•œ 쪽 옵션만 ê³„ì† ì„ íƒí•˜ë ¤ë©´, 'git help config'ì—ì„œ push.default를 참고하십시오."
+msgstr ""
+"\n"
+"ì–´ëŠ í•œ 쪽 옵션만 ê³„ì† ì„ íƒí•˜ë ¤ë©´, 'git help config'ì—ì„œ push.default를 참고"
+"하십시오."
-#: builtin/push.c:145
+#: builtin/push.c:146
#, c-format
msgid ""
"The upstream branch of your current branch does not match\n"
@@ -8742,7 +9049,7 @@ msgstr ""
" git push %s %s\n"
"%s"
-#: builtin/push.c:160
+#: builtin/push.c:161
#, c-format
msgid ""
"You are not currently on a branch.\n"
@@ -8757,7 +9064,7 @@ msgstr ""
"\n"
" git push %s HEAD:<name-of-remote-branch>\n"
-#: builtin/push.c:174
+#: builtin/push.c:175
#, c-format
msgid ""
"The current branch %s has no upstream branch.\n"
@@ -8771,12 +9078,12 @@ msgstr ""
"\n"
" git push --set-upstream %s %s\n"
-#: builtin/push.c:182
+#: builtin/push.c:183
#, c-format
msgid "The current branch %s has multiple upstream branches, refusing to push."
msgstr "현재 브랜치 %sì— ì—¬ëŸ¬ 업스트림 브랜치가 있습니다. 푸시를 거절합니다."
-#: builtin/push.c:185
+#: builtin/push.c:186
#, c-format
msgid ""
"You are pushing to remote '%s', which is not the upstream of\n"
@@ -8787,58 +9094,13 @@ msgstr ""
"'%s' ë¸Œëžœì¹˜ì˜ ì—…ìŠ¤íŠ¸ë¦¼ì´ ì•„ë‹™ë‹ˆë‹¤. ì–´ë–¤ 리모트 ë¸Œëžœì¹˜ì— ë¬´ì—‡ì„\n"
"푸시할지 설정하지 않았습니다."
-#: builtin/push.c:208
-msgid ""
-"push.default is unset; its implicit value has changed in\n"
-"Git 2.0 from 'matching' to 'simple'. To squelch this message\n"
-"and maintain the traditional behavior, use:\n"
-"\n"
-" git config --global push.default matching\n"
-"\n"
-"To squelch this message and adopt the new behavior now, use:\n"
-"\n"
-" git config --global push.default simple\n"
-"\n"
-"When push.default is set to 'matching', git will push local branches\n"
-"to the remote branches that already exist with the same name.\n"
-"\n"
-"Since Git 2.0, Git defaults to the more conservative 'simple'\n"
-"behavior, which only pushes the current branch to the corresponding\n"
-"remote branch that 'git pull' uses to update the current branch.\n"
-"\n"
-"See 'git help config' and search for 'push.default' for further "
-"information.\n"
-"(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode\n"
-"'current' instead of 'simple' if you sometimes use older versions of Git)"
-msgstr ""
-"push.default를 설정하지 않았습니다. ë¬µì‹œì  ê°’ì€ ê¹ƒ 2.0ì—ì„œ\n"
-"'matching'ì—ì„œ 'simple'ë¡œ 바뀌었습니다. ì´ ë©”ì‹œì§€ë¥¼ 표시하지\n"
-"ì•Šê³  ê³¼ê±°ì˜ ë™ìž‘ì„ ìœ ì§€í•˜ë ¤ë©´ 다ìŒê³¼ ê°™ì´ í•˜ì‹­ì‹œì˜¤:\n"
-"\n"
-" git config --global push.default matching\n"
-"\n"
-"ì´ ë©”ì‹œì§€ë¥¼ 표시하지 ì•Šê³  새 ë™ìž‘ì„ ë°›ì•„ë“¤ì´ë ¤ë©´ 다ìŒê³¼ ê°™ì´\n"
-"하십시오:\n"
-"\n"
-" git config --global push.default simple\n"
-"\n"
-"push.defaultê°€ 'matching'으로 설정ë˜ë©´, 로컬 브랜치를 ì´ë¯¸ ê°™ì€ ì´ë¦„ì´\n"
-"있는 리모트 브랜치로 푸시합니다.\n"
-"\n"
-"깃 2.0부터 ë” ë³´ìˆ˜ì ì¸ 'simple' ë™ìž‘ì´ ê¸°ë³¸ê°’ìž…ë‹ˆë‹¤. 여기서는 현재\n"
-"브랜치를 'git pull'ì—ì„œ 현재 브랜치를 ì—…ë°ì´íŠ¸í•  ë•Œ 사용하는 해당\n"
-"리모트 브랜치로 푸시합니다.\n"
-"\n"
-"ë” ìžì„¸í•œ 정보는 'git help config'ì—ì„œ 'push.default' ì„¤ëª…ì„ ë³´ì‹­ì‹œì˜¤.\n"
-"('simple' 모드는 깃 1.7.11ì— ì¶”ê°€ë˜ì—ˆìŠµë‹ˆë‹¤. 과거 ë²„ì „ì˜ ê¹ƒì„ ì‚¬ìš©í•˜ê²Œ\n"
-"ë˜ë©´ 비슷한 'current' 모드를 사용하십시오.)"
-
-#: builtin/push.c:275
+#: builtin/push.c:242
msgid ""
"You didn't specify any refspecs to push, and push.default is \"nothing\"."
-msgstr "푸시할 ë ˆí¼ëŸ°ìŠ¤ëª…세를 지정하지 않았고, push.default ê°’ì´ 'nothing'입니다."
+msgstr ""
+"푸시할 ë ˆí¼ëŸ°ìŠ¤ëª…세를 지정하지 않았고, push.default ê°’ì´ 'nothing'입니다."
-#: builtin/push.c:282
+#: builtin/push.c:249
msgid ""
"Updates were rejected because the tip of your current branch is behind\n"
"its remote counterpart. Integrate the remote changes (e.g.\n"
@@ -8851,7 +9113,7 @@ msgstr ""
"ìžì„¸í•œ 정보는 'git push --help'ì˜ \"Note about fast-forwards' 부분ì„\n"
"참고하십시오."
-#: builtin/push.c:288
+#: builtin/push.c:255
msgid ""
"Updates were rejected because a pushed branch tip is behind its remote\n"
"counterpart. Check out this branch and integrate the remote changes\n"
@@ -8864,7 +9126,7 @@ msgstr ""
"ìžì„¸í•œ 정보는 'git push --help'ì˜ \"Note about fast-forwards' 부분ì„\n"
"참고하십시오."
-#: builtin/push.c:294
+#: builtin/push.c:261
msgid ""
"Updates were rejected because the remote contains work that you do\n"
"not have locally. This is usually caused by another repository pushing\n"
@@ -8880,11 +9142,11 @@ msgstr ""
"ìžì„¸í•œ 정보는 'git push --help'ì˜ \"Note about fast-forwards' 부분ì„\n"
"참고하십시오."
-#: builtin/push.c:301
+#: builtin/push.c:268
msgid "Updates were rejected because the tag already exists in the remote."
msgstr "ë¦¬ëª¨íŠ¸ì— íƒœê·¸ê°€ ì´ë¯¸ 있기 ë•Œë¬¸ì— ì—…ë°ì´íŠ¸ê°€ 거부ë˜ì—ˆìŠµë‹ˆë‹¤."
-#: builtin/push.c:304
+#: builtin/push.c:271
msgid ""
"You cannot update a remote ref that points at a non-commit object,\n"
"or update a remote ref to make it point at a non-commit object,\n"
@@ -8894,22 +9156,22 @@ msgstr ""
"ë ˆí¼ëŸ°ìŠ¤ë¥¼ ì—…ë°ì´íŠ¸í•˜ê±°ë‚˜, ì»¤ë°‹ì´ ì•„ë‹Œ 오브ì íŠ¸ë¥¼ 가리키ë„ë¡\n"
"ì—…ë°ì´íŠ¸í•  수 없습니다.\n"
-#: builtin/push.c:363
+#: builtin/push.c:331
#, c-format
msgid "Pushing to %s\n"
msgstr "다ìŒì— 푸시: %s\n"
-#: builtin/push.c:367
+#: builtin/push.c:335
#, c-format
msgid "failed to push some refs to '%s'"
msgstr "ë ˆí¼ëŸ°ìŠ¤ë¥¼ '%s'ì— í‘¸ì‹œí•˜ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
-#: builtin/push.c:397
+#: builtin/push.c:365
#, c-format
msgid "bad repository '%s'"
msgstr "ìž˜ëª»ëœ ì €ìž¥ì†Œ '%s'"
-#: builtin/push.c:398
+#: builtin/push.c:366
msgid ""
"No configured push destination.\n"
"Either specify the URL from the command-line or configure a remote "
@@ -8930,104 +9192,100 @@ msgstr ""
"\n"
" git push <name>\n"
-#: builtin/push.c:413
+#: builtin/push.c:381
msgid "--all and --tags are incompatible"
msgstr "--all ë° --tags ì˜µì…˜ì€ í˜¸í™˜ë˜ì§€ 않습니다"
-#: builtin/push.c:414
+#: builtin/push.c:382
msgid "--all can't be combined with refspecs"
msgstr "--all ì˜µì…˜ì€ ë ˆí¼ëŸ°ìŠ¤ëª…세와 ê°™ì´ ì“¸ 수 없습니다"
-#: builtin/push.c:419
+#: builtin/push.c:387
msgid "--mirror and --tags are incompatible"
msgstr "--mirror ë° --tags ì˜µì…˜ì€ í˜¸í™˜ë˜ì§€ 않습니다"
-#: builtin/push.c:420
+#: builtin/push.c:388
msgid "--mirror can't be combined with refspecs"
msgstr "--mirror ì˜µì…˜ì€ ë ˆí¼ëŸ°ìŠ¤ëª…세와 ê°™ì´ ì“¸ 수 없습니다"
-#: builtin/push.c:425
+#: builtin/push.c:393
msgid "--all and --mirror are incompatible"
msgstr "--all ë° --mirror ì˜µì…˜ì€ í˜¸í™˜ë˜ì§€ 않습니다"
-#: builtin/push.c:537
+#: builtin/push.c:505
msgid "repository"
msgstr "저장소"
-#: builtin/push.c:538 builtin/send-pack.c:161
+#: builtin/push.c:506 builtin/send-pack.c:161
msgid "push all refs"
msgstr "모든 ë ˆí¼ëŸ°ìŠ¤ 푸시하기"
-#: builtin/push.c:539 builtin/send-pack.c:163
+#: builtin/push.c:507 builtin/send-pack.c:163
msgid "mirror all refs"
msgstr "모든 ë ˆí¼ëŸ°ìŠ¤ 미러"
-#: builtin/push.c:541
+#: builtin/push.c:509
msgid "delete refs"
msgstr "ë ˆí¼ëŸ°ìŠ¤ ì‚­ì œ"
-#: builtin/push.c:542
+#: builtin/push.c:510
msgid "push tags (can't be used with --all or --mirror)"
msgstr "태그 푸시하기 (--all ë˜ëŠ” --mirror 옵션과 ê°™ì´ ì“¸ 수 ì—†ìŒ)"
-#: builtin/push.c:545 builtin/send-pack.c:164
+#: builtin/push.c:513 builtin/send-pack.c:164
msgid "force updates"
msgstr "강제로 ì—…ë°ì´íŠ¸"
-#: builtin/push.c:547 builtin/send-pack.c:175
+#: builtin/push.c:515 builtin/send-pack.c:175
msgid "refname>:<expect"
msgstr "ë ˆí¼ëŸ°ìŠ¤ì´ë¦„>:<예ìƒ"
-#: builtin/push.c:548 builtin/send-pack.c:176
+#: builtin/push.c:516 builtin/send-pack.c:176
msgid "require old value of ref to be at this value"
msgstr "ë ˆí¼ëŸ°ìŠ¤ì˜ 과거 ê°’ì´ ì´ ê°’ì´ì–´ì•¼ 합니다"
-#: builtin/push.c:550
-msgid "check|on-demand|no"
-msgstr "check|on-demand|no"
-
-#: builtin/push.c:551
+#: builtin/push.c:519
msgid "control recursive pushing of submodules"
msgstr "ìž¬ê·€ì  í•˜ìœ„ 모듈 푸시 ë°©ì‹ì„ 설정합니다"
-#: builtin/push.c:553 builtin/send-pack.c:169
+#: builtin/push.c:521 builtin/send-pack.c:169
msgid "use thin pack"
msgstr "ì–‡ì€ ë¬¶ìŒì„ 사용합니다"
-#: builtin/push.c:554 builtin/push.c:555 builtin/send-pack.c:158
+#: builtin/push.c:522 builtin/push.c:523 builtin/send-pack.c:158
#: builtin/send-pack.c:159
msgid "receive pack program"
msgstr "receive pack 프로그램"
-#: builtin/push.c:556
+#: builtin/push.c:524
msgid "set upstream for git pull/status"
msgstr "git pull/statusì— ëŒ€í•œ ì—…ìŠ¤íŠ¸ë¦¼ì„ ì„¤ì •í•©ë‹ˆë‹¤"
-#: builtin/push.c:559
+#: builtin/push.c:527
msgid "prune locally removed refs"
msgstr "로컬ì—ì„œ 제거한 ë ˆí¼ëŸ°ìŠ¤ë¥¼ 잘ë¼ëƒ…니다"
-#: builtin/push.c:561
+#: builtin/push.c:529
msgid "bypass pre-push hook"
msgstr "푸시 ì „ 후í¬ë¥¼ 건너ëœë‹ˆë‹¤"
-#: builtin/push.c:562
+#: builtin/push.c:530
msgid "push missing but relevant tags"
msgstr "빠졌지만 ê´€ë ¨ëœ íƒœê·¸ë¥¼ 푸시합니다"
-#: builtin/push.c:565 builtin/send-pack.c:166
+#: builtin/push.c:533 builtin/send-pack.c:166
msgid "GPG sign the push"
msgstr "í‘¸ì‹œì— GPG 서명"
-#: builtin/push.c:567 builtin/send-pack.c:170
+#: builtin/push.c:535 builtin/send-pack.c:170
msgid "request atomic transaction on remote side"
msgstr "리모트 ìª½ì— ì›ìž íŠ¸ëžœìž­ì…˜ì„ ìš”ì²­í•©ë‹ˆë‹¤"
-#: builtin/push.c:577
+#: builtin/push.c:549
msgid "--delete is incompatible with --all, --mirror and --tags"
msgstr "--delete ì˜µì…˜ì€ --all, --mirror, --tags 옵션과 호환ë˜ì§€ 않습니다"
-#: builtin/push.c:579
+#: builtin/push.c:551
msgid "--delete doesn't make sense without any refs"
msgstr "--delete ì˜µì…˜ì€ ë ˆí¼ëŸ°ìŠ¤ ì—†ì´ ì•žë’¤ê°€ 맞지 않습니다"
@@ -9036,7 +9294,10 @@ msgid ""
"git read-tree [(-m [--trivial] [--aggressive] | --reset | --prefix=<prefix>) "
"[-u [--exclude-per-directory=<gitignore>] | -i]] [--no-sparse-checkout] [--"
"index-output=<file>] (--empty | <tree-ish1> [<tree-ish2> [<tree-ish3>]])"
-msgstr "git read-tree [(-m [--trivial] [--aggressive] | --reset | --prefix=<ì ‘ë‘ì–´>) [-u [--exclude-per-directory=<gitignore>] | -i]] [--no-sparse-checkout] [--index-output=<파ì¼>] (--empty | <트리-따위> [<트리-따위2> [<트리-따위3>]])"
+msgstr ""
+"git read-tree [(-m [--trivial] [--aggressive] | --reset | --prefix=<ì ‘ë‘ì–´>) "
+"[-u [--exclude-per-directory=<gitignore>] | -i]] [--no-sparse-checkout] [--"
+"index-output=<파ì¼>] (--empty | <트리-따위> [<트리-따위2> [<트리-따위3>]])"
#: builtin/read-tree.c:110
msgid "write resulting index to <file>"
@@ -9102,12 +9363,12 @@ msgstr "드문 ì²´í¬ì•„웃 í•„í„° ì ìš©ì„ 건너ëœë‹ˆë‹¤"
msgid "debug unpack-trees"
msgstr "unpack-trees 디버깅"
-#: builtin/reflog.c:428
+#: builtin/reflog.c:423
#, c-format
msgid "'%s' for '%s' is not a valid timestamp"
msgstr "'%s' ê°’ì´ '%s'ì— ëŒ€í•´ 올바른 ì‹œê° ê°’ì´ ì•„ë‹™ë‹ˆë‹¤"
-#: builtin/reflog.c:545 builtin/reflog.c:550
+#: builtin/reflog.c:540 builtin/reflog.c:545
#, c-format
msgid "'%s' is not a valid timestamp"
msgstr "'%s'ì€(는) 올바른 ì‹œê° ê°’ì´ ì•„ë‹™ë‹ˆë‹¤"
@@ -9248,55 +9509,45 @@ msgstr "--mirror 옵션과 ê°™ì´ ë§ˆìŠ¤í„° 브랜치를 지정하면 앞뒤가
msgid "specifying branches to track makes sense only with fetch mirrors"
msgstr "마스터 브랜치를 ì§€ì •ì€ fetch 미러ì—서만 앞뒤가 맞습니다"
-#: builtin/remote.c:193 builtin/remote.c:643
+#: builtin/remote.c:190 builtin/remote.c:633
#, c-format
msgid "remote %s already exists."
msgstr "%s 리모트가 ì´ë¯¸ 있습니다."
-#: builtin/remote.c:197 builtin/remote.c:647
+#: builtin/remote.c:194 builtin/remote.c:637
#, c-format
msgid "'%s' is not a valid remote name"
msgstr "'%s'ì€(는) 올바른 리모트 ì´ë¦„ì´ ì•„ë‹™ë‹ˆë‹¤"
-#: builtin/remote.c:241
+#: builtin/remote.c:234
#, c-format
msgid "Could not setup master '%s'"
msgstr "마스터 '%s'ì„(를) 설정할 수 없습니다"
-#: builtin/remote.c:341
+#: builtin/remote.c:336
#, c-format
msgid "Could not get fetch map for refspec %s"
msgstr "%s ë ˆí¼ëŸ°ìŠ¤ëª…ì„¸ì— ëŒ€í•œ 가져오기 ë§µì„ ì–»ì„ ìˆ˜ 없습니다"
-#: builtin/remote.c:442 builtin/remote.c:450
+#: builtin/remote.c:437 builtin/remote.c:445
msgid "(matching)"
msgstr "(ì¼ì¹˜)"
-#: builtin/remote.c:454
+#: builtin/remote.c:449
msgid "(delete)"
msgstr "(삭제)"
-#: builtin/remote.c:594 builtin/remote.c:600 builtin/remote.c:606
-#, c-format
-msgid "Could not append '%s' to '%s'"
-msgstr "'%s'ì„(를) '%s'ì— ì¶”ê°€í•  수 없습니다"
-
-#: builtin/remote.c:636 builtin/remote.c:775 builtin/remote.c:875
+#: builtin/remote.c:626 builtin/remote.c:761 builtin/remote.c:858
#, c-format
msgid "No such remote: %s"
msgstr "그런 리모트가 없습니다: %s"
-#: builtin/remote.c:653
+#: builtin/remote.c:643
#, c-format
msgid "Could not rename config section '%s' to '%s'"
msgstr "설정 ì„¹ì…˜ì„ '%s'ì—ì„œ '%s'(으)ë¡œ 바꿀 수 없습니다"
-#: builtin/remote.c:659 builtin/remote.c:827
-#, c-format
-msgid "Could not remove config section '%s'"
-msgstr "설정 섹션 '%s'ì„(를) 제거할 수 없습니다"
-
-#: builtin/remote.c:674
+#: builtin/remote.c:663
#, c-format
msgid ""
"Not updating non-default fetch refspec\n"
@@ -9307,27 +9558,17 @@ msgstr ""
"\t%s\n"
"\t필요하면 ì„¤ì •ì„ ìˆ˜ë™ìœ¼ë¡œ ì—…ë°ì´íŠ¸í•˜ì‹­ì‹œì˜¤."
-#: builtin/remote.c:680
-#, c-format
-msgid "Could not append '%s'"
-msgstr "'%s'ì— ë§ë¶™ì¼ 수 없습니다"
-
-#: builtin/remote.c:691
-#, c-format
-msgid "Could not set '%s'"
-msgstr "'%s'ì„(를) 설정할 수 없습니다"
-
-#: builtin/remote.c:713
+#: builtin/remote.c:699
#, c-format
msgid "deleting '%s' failed"
msgstr "'%s' 삭제가 실패했습니다"
-#: builtin/remote.c:747
+#: builtin/remote.c:733
#, c-format
msgid "creating '%s' failed"
msgstr "'%s' 만들기가 실패했습니다"
-#: builtin/remote.c:813
+#: builtin/remote.c:796
msgid ""
"Note: A branch outside the refs/remotes/ hierarchy was not removed;\n"
"to delete it, use:"
@@ -9335,275 +9576,282 @@ msgid_plural ""
"Note: Some branches outside the refs/remotes/ hierarchy were not removed;\n"
"to delete them, use:"
msgstr[0] ""
-"알림: ë ˆí¼ëŸ°ìŠ¤/리모트/ 계층 구조 ë°–ì— ìžˆëŠ” ì¼ë¶€ 브랜치가 제거ë˜ì§€ 않았습니다.\n"
+"알림: ë ˆí¼ëŸ°ìŠ¤/리모트/ 계층 구조 ë°–ì— ìžˆëŠ” ì¼ë¶€ 브랜치가 제거ë˜ì§€ 않았습니"
+"다.\n"
"삭제하려면 다ìŒì„ 사용하십시오:"
-#: builtin/remote.c:928
+#: builtin/remote.c:810
+#, c-format
+msgid "Could not remove config section '%s'"
+msgstr "설정 섹션 '%s'ì„(를) 제거할 수 없습니다"
+
+#: builtin/remote.c:911
#, c-format
msgid " new (next fetch will store in remotes/%s)"
msgstr " 새 항목 (ë‹¤ìŒ ê°€ì ¸ì˜¤ê¸°ëŠ” remotes/%s 아래 저장ë©ë‹ˆë‹¤)"
-#: builtin/remote.c:931
+#: builtin/remote.c:914
msgid " tracked"
msgstr " 추ì ë¨"
-#: builtin/remote.c:933
+#: builtin/remote.c:916
msgid " stale (use 'git remote prune' to remove)"
msgstr " ì˜¤ëž˜ë¨ (제거하려면 'git remote prune'ì„ ì‚¬ìš©í•˜ì‹­ì‹œì˜¤)"
-#: builtin/remote.c:935
+#: builtin/remote.c:918
msgid " ???"
msgstr " ???"
-#: builtin/remote.c:976
+#: builtin/remote.c:959
#, c-format
msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch"
msgstr "ìž˜ëª»ëœ branch.%s.merge ê°’. 여러 ê°œ 브랜치로 리베ì´ìŠ¤í•  수 없습니다"
-#: builtin/remote.c:983
+#: builtin/remote.c:967
#, c-format
-msgid "rebases onto remote %s"
-msgstr "리베ì´ìŠ¤: 리모트 %s"
+msgid "rebases interactively onto remote %s"
+msgstr "리모트 %s 위로 대화ì‹ìœ¼ë¡œ 리베ì´ìŠ¤í•©ë‹ˆë‹¤"
-#: builtin/remote.c:986
+#: builtin/remote.c:971
#, c-format
msgid " merges with remote %s"
msgstr " 병합: 리모트 %s"
-#: builtin/remote.c:987
+#: builtin/remote.c:972
msgid " and with remote"
msgstr " 그리고 리모트"
-#: builtin/remote.c:989
+#: builtin/remote.c:974
#, c-format
msgid "merges with remote %s"
msgstr "병합: 리모트 %s"
-#: builtin/remote.c:990
+#: builtin/remote.c:975
msgid " and with remote"
msgstr " 그리고 리모트"
-#: builtin/remote.c:1036
+#: builtin/remote.c:1021
msgid "create"
msgstr "만들기"
-#: builtin/remote.c:1039
+#: builtin/remote.c:1024
msgid "delete"
msgstr "삭제"
-#: builtin/remote.c:1043
+#: builtin/remote.c:1028
msgid "up to date"
msgstr "최신 ìƒíƒœ"
-#: builtin/remote.c:1046
+#: builtin/remote.c:1031
msgid "fast-forwardable"
msgstr "정방향 진행 가능"
-#: builtin/remote.c:1049
+#: builtin/remote.c:1034
msgid "local out of date"
msgstr "ë¡œì»¬ì´ ë’¤ë–¨ì–´ì§"
-#: builtin/remote.c:1056
+#: builtin/remote.c:1041
#, c-format
msgid " %-*s forces to %-*s (%s)"
msgstr " %-*sì—ì„œ %-*s(으)ë¡œ ê°•ì œ (%s)"
-#: builtin/remote.c:1059
+#: builtin/remote.c:1044
#, c-format
msgid " %-*s pushes to %-*s (%s)"
msgstr " %-*sì—ì„œ %-*s(으)ë¡œ 푸시 (%s)"
-#: builtin/remote.c:1063
+#: builtin/remote.c:1048
#, c-format
msgid " %-*s forces to %s"
msgstr " %-*sì—ì„œ %s(으)ë¡œ ê°•ì œ"
-#: builtin/remote.c:1066
+#: builtin/remote.c:1051
#, c-format
msgid " %-*s pushes to %s"
msgstr " %-*sì—ì„œ %s(으)ë¡œ 푸시"
-#: builtin/remote.c:1134
+#: builtin/remote.c:1119
msgid "do not query remotes"
msgstr "ë¦¬ëª¨íŠ¸ì— ì§ˆì˜í•˜ì§€ 않습니다"
-#: builtin/remote.c:1161
+#: builtin/remote.c:1146
#, c-format
msgid "* remote %s"
msgstr "* 리모트 %s"
-#: builtin/remote.c:1162
+#: builtin/remote.c:1147
#, c-format
msgid " Fetch URL: %s"
msgstr " 가져오기 URL: %s"
-#: builtin/remote.c:1163 builtin/remote.c:1314
+#: builtin/remote.c:1148 builtin/remote.c:1299
msgid "(no URL)"
msgstr "(URL ì—†ìŒ)"
-#: builtin/remote.c:1172 builtin/remote.c:1174
+#: builtin/remote.c:1157 builtin/remote.c:1159
#, c-format
msgid " Push URL: %s"
msgstr " 푸시 URL: %s"
-#: builtin/remote.c:1176 builtin/remote.c:1178 builtin/remote.c:1180
+#: builtin/remote.c:1161 builtin/remote.c:1163 builtin/remote.c:1165
#, c-format
msgid " HEAD branch: %s"
msgstr " HEAD 브랜치: %s"
-#: builtin/remote.c:1182
+#: builtin/remote.c:1167
#, c-format
msgid ""
" HEAD branch (remote HEAD is ambiguous, may be one of the following):\n"
msgstr " HEAD 브랜치 (리모트 HEAD는 애매하고, ë‹¤ìŒ ì¤‘ í•˜ë‚˜ì¼ ìˆ˜ 있습니다):\n"
-#: builtin/remote.c:1194
+#: builtin/remote.c:1179
#, c-format
msgid " Remote branch:%s"
msgid_plural " Remote branches:%s"
msgstr[0] " 리모트 브랜치:%s"
-#: builtin/remote.c:1197 builtin/remote.c:1224
+#: builtin/remote.c:1182 builtin/remote.c:1209
msgid " (status not queried)"
msgstr " (ìƒíƒœë¥¼ 질ì˜í•˜ì§€ ì•ŠìŒ)"
-#: builtin/remote.c:1206
+#: builtin/remote.c:1191
msgid " Local branch configured for 'git pull':"
msgid_plural " Local branches configured for 'git pull':"
msgstr[0] " 'git pull'ì— ì‚¬ìš©í•  로컬 브랜치를 설정:"
-#: builtin/remote.c:1214
+#: builtin/remote.c:1199
msgid " Local refs will be mirrored by 'git push'"
msgstr " 로컬 ë ˆí¼ëŸ°ìŠ¤ë¥¼ 'git push'ë¡œ 미러ë§í•  예정"
-#: builtin/remote.c:1221
+#: builtin/remote.c:1206
#, c-format
msgid " Local ref configured for 'git push'%s:"
msgid_plural " Local refs configured for 'git push'%s:"
msgstr[0] " 로컬 ë ˆí¼ëŸ°ìŠ¤ë¥¼ 'git push'ë¡œ 미러ë§%s:"
-#: builtin/remote.c:1242
+#: builtin/remote.c:1227
msgid "set refs/remotes/<name>/HEAD according to remote"
msgstr "ë ˆí¼ëŸ°ìŠ¤/리모트/<ì´ë¦„>/HEAD ê°’ì„ ë¦¬ëª¨íŠ¸ì— ë§žê²Œ 설정합니다"
-#: builtin/remote.c:1244
+#: builtin/remote.c:1229
msgid "delete refs/remotes/<name>/HEAD"
msgstr "ë ˆí¼ëŸ°ìŠ¤/리모트/<ì´ë¦„>/HEAD ê°’ì„ ì‚­ì œí•©ë‹ˆë‹¤"
-#: builtin/remote.c:1259
+#: builtin/remote.c:1244
msgid "Cannot determine remote HEAD"
msgstr "리모트 HEAD를 결정할 수 없습니다"
-#: builtin/remote.c:1261
+#: builtin/remote.c:1246
msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
-msgstr "리모트 HEAD 브랜치가 여러개입니다. ë‹¤ìŒ ì¤‘ 하나를 명시ì ìœ¼ë¡œ 지정하십시오:"
+msgstr ""
+"리모트 HEAD 브랜치가 여러개입니다. ë‹¤ìŒ ì¤‘ 하나를 명시ì ìœ¼ë¡œ 지정하십시오:"
-#: builtin/remote.c:1271
+#: builtin/remote.c:1256
#, c-format
msgid "Could not delete %s"
msgstr "%sì„(를) 삭제할 수 없습니다"
-#: builtin/remote.c:1279
+#: builtin/remote.c:1264
#, c-format
msgid "Not a valid ref: %s"
msgstr "올바른 ë ˆí¼ëŸ°ìŠ¤ê°€ 아닙니다: %s"
-#: builtin/remote.c:1281
+#: builtin/remote.c:1266
#, c-format
msgid "Could not setup %s"
msgstr "%sì„(를) 설정할 수 없습니다"
-#: builtin/remote.c:1299
+#: builtin/remote.c:1284
#, c-format
msgid " %s will become dangling!"
msgstr " %sì˜ ì—°ê²°ì´ ëŠì–´ì§‘니다!"
-#: builtin/remote.c:1300
+#: builtin/remote.c:1285
#, c-format
msgid " %s has become dangling!"
msgstr " %sì˜ ì—°ê²°ì´ ëŠì–´ì¡ŒìŠµë‹ˆë‹¤!"
-#: builtin/remote.c:1310
+#: builtin/remote.c:1295
#, c-format
msgid "Pruning %s"
msgstr "잘ë¼ëƒ„: %s"
-#: builtin/remote.c:1311
+#: builtin/remote.c:1296
#, c-format
msgid "URL: %s"
msgstr "URL: %s"
-#: builtin/remote.c:1327
+#: builtin/remote.c:1312
#, c-format
msgid " * [would prune] %s"
msgstr " * [잘ë¼ë‚¼ 예정] %s"
-#: builtin/remote.c:1330
+#: builtin/remote.c:1315
#, c-format
msgid " * [pruned] %s"
msgstr " * [잘ë¼ëƒ„] %s"
-#: builtin/remote.c:1375
+#: builtin/remote.c:1360
msgid "prune remotes after fetching"
msgstr "가져온 í›„ì— ë¦¬ëª¨íŠ¸ë¥¼ 잘ë¼ëƒ…니다"
-#: builtin/remote.c:1441 builtin/remote.c:1498 builtin/remote.c:1566
+#: builtin/remote.c:1423 builtin/remote.c:1477 builtin/remote.c:1545
#, c-format
msgid "No such remote '%s'"
msgstr "그런 리모트가 없습니다 ('%s')"
-#: builtin/remote.c:1461
+#: builtin/remote.c:1439
msgid "add branch"
msgstr "브랜치를 추가합니다"
-#: builtin/remote.c:1468
+#: builtin/remote.c:1446
msgid "no remote specified"
msgstr "리모트를 지정하지 않았습니다"
-#: builtin/remote.c:1485
+#: builtin/remote.c:1463
msgid "query push URLs rather than fetch URLs"
msgstr "가져오기 URLì´ ì•„ë‹ˆë¼ í‘¸ì‹œ URLì„ ì§ˆì˜í•©ë‹ˆë‹¤"
-#: builtin/remote.c:1487
+#: builtin/remote.c:1465
msgid "return all URLs"
msgstr "모든 URLì„ ë¦¬í„´í•©ë‹ˆë‹¤"
-#: builtin/remote.c:1515
+#: builtin/remote.c:1493
#, c-format
msgid "no URLs configured for remote '%s'"
msgstr "'%s' ë¦¬ëª¨íŠ¸ì— ëŒ€í•œ URLì„ ì„¤ì •í•˜ì§€ 않았습니다"
-#: builtin/remote.c:1541
+#: builtin/remote.c:1519
msgid "manipulate push URLs"
msgstr "푸시 URLì„ ì§€ì •í•©ë‹ˆë‹¤"
-#: builtin/remote.c:1543
+#: builtin/remote.c:1521
msgid "add URL"
msgstr "URLì„ ì¶”ê°€í•©ë‹ˆë‹¤"
-#: builtin/remote.c:1545
+#: builtin/remote.c:1523
msgid "delete URLs"
msgstr "URLì„ ì‚­ì œí•©ë‹ˆë‹¤"
-#: builtin/remote.c:1552
+#: builtin/remote.c:1530
msgid "--add --delete doesn't make sense"
msgstr "--add --delete ì˜µì…˜ì„ ë‘˜ë‹¤ ì“°ë©´ 안 ë©ë‹ˆë‹¤"
-#: builtin/remote.c:1592
+#: builtin/remote.c:1571
#, c-format
msgid "Invalid old URL pattern: %s"
msgstr "ìž˜ëª»ëœ ì˜¤ëž˜ì „ URL 패턴: %s"
-#: builtin/remote.c:1600
+#: builtin/remote.c:1579
#, c-format
msgid "No such URL found: %s"
msgstr "그런 URLì´ ì—†ìŠµë‹ˆë‹¤: %s"
-#: builtin/remote.c:1602
+#: builtin/remote.c:1581
msgid "Will not delete all non-push URLs"
msgstr "í‘¸ì‹œìš©ì´ ì•„ë‹Œ 모든 URLì„ ì‚­ì œí•˜ì§€ 않습니다"
-#: builtin/remote.c:1616
+#: builtin/remote.c:1595
msgid "be verbose; must be placed before a subcommand"
msgstr "ìžì„¸ížˆ 표시합니다 (하위 명령 ì•žì— ì™€ì•¼ 합니다)"
@@ -9649,7 +9897,8 @@ msgstr "대략ì˜ì‹œê°"
#: builtin/repack.c:177
msgid "with -A, do not loosen objects older than this"
-msgstr "-Aì— ì¶”ê°€ë¡œ, 지정한 ì‹œê°ë³´ë‹¤ ì˜¤ëž˜ëœ ì˜¤ë¸Œì íŠ¸ë¥¼ ëŠìŠ¨í•˜ê²Œ 만들지 않습니다"
+msgstr ""
+"-Aì— ì¶”ê°€ë¡œ, 지정한 ì‹œê°ë³´ë‹¤ ì˜¤ëž˜ëœ ì˜¤ë¸Œì íŠ¸ë¥¼ ëŠìŠ¨í•˜ê²Œ 만들지 않습니다"
#: builtin/repack.c:179
msgid "size of the window used for delta compression"
@@ -9724,7 +9973,9 @@ msgstr "커밋 '%s'ì— ìž˜ëª»ëœ í˜•ì‹ì˜ 병합태그"
msgid ""
"original commit '%s' contains mergetag '%s' that is discarded; use --edit "
"instead of --graft"
-msgstr "본래 커밋 '%s'ì— ë²„ë ¤ì§„ 병합태그 '%s'ì´(ê°€) 들어 있습니다. --graft 대신 --edit ì˜µì…˜ì„ ì‚¬ìš©í•˜ì‹­ì‹œì˜¤"
+msgstr ""
+"본래 커밋 '%s'ì— ë²„ë ¤ì§„ 병합태그 '%s'ì´(ê°€) 들어 있습니다. --graft 대신 --"
+"edit ì˜µì…˜ì„ ì‚¬ìš©í•˜ì‹­ì‹œì˜¤"
#: builtin/replace.c:401
#, c-format
@@ -9872,7 +10123,9 @@ msgstr "--patch ì˜µì…˜ì€ --{hard,mixed,soft} 옵션과 호환ë˜ì§€ 않습니ë‹
#: builtin/reset.c:331
msgid "--mixed with paths is deprecated; use 'git reset -- <paths>' instead."
-msgstr "--mixed ì˜µì…˜ì„ ê²½ë¡œì™€ ê°™ì´ ì“°ê¸°ëŠ” ì œê±°ë  ì˜ˆì •ìž…ë‹ˆë‹¤. ëŒ€ì‹ ì— 'git reset -- <경로>'를 사용하십시오."
+msgstr ""
+"--mixed ì˜µì…˜ì„ ê²½ë¡œì™€ ê°™ì´ ì“°ê¸°ëŠ” ì œê±°ë  ì˜ˆì •ìž…ë‹ˆë‹¤. ëŒ€ì‹ ì— 'git reset -- <ê²½"
+"로>'를 사용하십시오."
#: builtin/reset.c:333
#, c-format
@@ -9901,7 +10154,7 @@ msgstr "ì¸ë±ìŠ¤ 파ì¼ì„ '%s' 리비전으로 리셋할 수 없습니다."
msgid "Could not write new index file."
msgstr "새 ì¸ë±ìŠ¤ 파ì¼ì„ 쓸 수 없습니다."
-#: builtin/rev-list.c:354
+#: builtin/rev-list.c:350
msgid "rev-list does not support display of notes"
msgstr "rev-list는 노트 표시를 지ì›í•˜ì§€ 않습니다"
@@ -9933,7 +10186,8 @@ msgstr ""
" or: git rev-parse --sq-quote [<ì¸ìž>...]\n"
" or: git rev-parse [<옵션>] [<ì¸ìž>...]\n"
"\n"
-"첫번째 ì‚¬ìš©ë°©ë²•ì— ëŒ€í•´ ìžì„¸ížˆ 알고 싶으면, \"git rev-parse --parseopt -h\"를\n"
+"첫번째 ì‚¬ìš©ë°©ë²•ì— ëŒ€í•´ ìžì„¸ížˆ 알고 싶으면, \"git rev-parse --parseopt -h"
+"\"를\n"
"실행해 보십시오."
#: builtin/revert.c:22
@@ -10040,7 +10294,9 @@ msgstr[0] ""
msgid ""
"\n"
"(use 'rm -rf' if you really want to remove it including all of its history)"
-msgstr "\n(ì •ë§ë¡œ ê·¸ 커밋 내역까지 í¬í•¨í•´ 제거하려면 'rm -rf'를 사용하십시오)"
+msgstr ""
+"\n"
+"(ì •ë§ë¡œ ê·¸ 커밋 내역까지 í¬í•¨í•´ 제거하려면 'rm -rf'를 사용하십시오)"
#: builtin/rm.c:230
msgid ""
@@ -10070,7 +10326,9 @@ msgstr[0] "ë‹¤ìŒ íŒŒì¼ì´ ì¸ë±ìŠ¤ì— 스테ì´ì§•í•œ 변경 ì‚¬í•­ì´ ìžˆìŠµ
msgid ""
"\n"
"(use --cached to keep the file, or -f to force removal)"
-msgstr "\n(파ì¼ì„ 유지하려면 --cached 옵션, 강제로 제거하려면 -f ì˜µì…˜ì„ ì‚¬ìš©í•˜ì‹­ì‹œì˜¤)"
+msgstr ""
+"\n"
+"(파ì¼ì„ 유지하려면 --cached 옵션, 강제로 제거하려면 -f ì˜µì…˜ì„ ì‚¬ìš©í•˜ì‹­ì‹œì˜¤)"
#: builtin/rm.c:251
msgid "the following file has local modifications:"
@@ -10118,7 +10376,9 @@ msgid ""
"[<ref>...]\n"
" --all and explicit <ref> specification are mutually exclusive."
msgstr ""
-"git send-pack [--all | --mirror] [--dry-run] [--force] [--receive-pack=<git-receive-pack>] [--verbose] [--thin] [--atomic] [<호스트>:]<디렉터리> [<ë ˆí¼ëŸ°ìŠ¤>...]\n"
+"git send-pack [--all | --mirror] [--dry-run] [--force] [--receive-pack=<git-"
+"receive-pack>] [--verbose] [--thin] [--atomic] [<호스트>:]<디렉터리> [<ë ˆí¼ëŸ°"
+"스>...]\n"
" --all 옵션과 명시ì ì¸ <ë ˆí¼ëŸ°ìŠ¤> 명세 중 하나만 사용할 수 있습니다."
#: builtin/send-pack.c:160
@@ -10141,28 +10401,23 @@ msgstr "리모트 ë„움 í”„ë¡œê·¸ëž¨ì˜ ìƒíƒœë¥¼ 표시합니다"
msgid "git shortlog [<options>] [<revision-range>] [[--] [<path>...]]"
msgstr "git shortlog [<옵션>] [<리비전-범위>] [[--] [<경로>...]]"
-#: builtin/shortlog.c:131
-#, c-format
-msgid "Missing author: %s"
-msgstr "ìž‘ì„±ìž ì •ë³´ê°€ 없습니다: %s"
-
-#: builtin/shortlog.c:230
+#: builtin/shortlog.c:242
msgid "sort output according to the number of commits per author"
msgstr "작성ìžë³„ 커밋 ìˆ˜ì— ë”°ë¼ ì •ë ¬í•©ë‹ˆë‹¤"
-#: builtin/shortlog.c:232
+#: builtin/shortlog.c:244
msgid "Suppress commit descriptions, only provides commit count"
msgstr "커밋 ì„¤ëª…ì„ ìƒëžµí•˜ê³ , 커밋 수만 표시합니다"
-#: builtin/shortlog.c:234
+#: builtin/shortlog.c:246
msgid "Show the email address of each author"
msgstr "작성ìžì˜ ì „ìžë©”ì¼ ì£¼ì†Œë¥¼ 표시합니다"
-#: builtin/shortlog.c:235
+#: builtin/shortlog.c:247
msgid "w[,i1[,i2]]"
msgstr "w[,i1[,i2]]"
-#: builtin/shortlog.c:236
+#: builtin/shortlog.c:248
msgid "Linewrap output"
msgstr "줄바꿈 출력"
@@ -10303,43 +10558,43 @@ msgid "skip and remove all lines starting with comment character"
msgstr "ì£¼ì„ ë¬¸ìžë¡œ 시작하는 모든 ì¤„ì„ ê±´ë„ˆë›°ê³  제거합니다"
#: builtin/stripspace.c:38
-msgid "prepend comment character and blank to each line"
-msgstr "ê° ì¤„ì˜ ì•žì— ì£¼ì„ ë¬¸ìžë¥¼ 붙ì´ê³  빈 줄로 만듭니다"
+msgid "prepend comment character and space to each line"
+msgstr "ê° ì¤„ì˜ ì•žì— ì£¼ì„ ë¬¸ìžì™€ ê³µë°±ì„ ë¶™ìž…ë‹ˆë‹¤"
-#: builtin/submodule--helper.c:79 builtin/submodule--helper.c:167
+#: builtin/submodule--helper.c:73 builtin/submodule--helper.c:161
msgid "alternative anchor for relative paths"
msgstr "ìƒëŒ€ ê²½ë¡œì— ì‚¬ìš©í•  ë˜ë‹¤ë¥¸ 기준"
-#: builtin/submodule--helper.c:84
+#: builtin/submodule--helper.c:78
msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
msgstr "git submodule--helper list [--prefix=<경로>] [<경로>...]"
-#: builtin/submodule--helper.c:114
+#: builtin/submodule--helper.c:108
msgid "git submodule--helper name <path>"
msgstr "git submodule--helper name <경로>"
-#: builtin/submodule--helper.c:120
+#: builtin/submodule--helper.c:114
#, c-format
msgid "no submodule mapping found in .gitmodules for path '%s'"
msgstr "경로 '%s'ì— ëŒ€í•´ .gitmodulesì— ìžˆëŠ” 하위모듈 ë§¤í•‘ì´ ì—†ìŠµë‹ˆë‹¤"
-#: builtin/submodule--helper.c:170
+#: builtin/submodule--helper.c:164
msgid "where the new submodule will be cloned to"
msgstr "새 하위 ëª¨ë“ˆì„ ë³µì œí•  ëŒ€ìƒ ìœ„ì¹˜"
-#: builtin/submodule--helper.c:173
+#: builtin/submodule--helper.c:167
msgid "name of the new submodule"
msgstr "새 하위 모듈 ì´ë¦„"
-#: builtin/submodule--helper.c:176
+#: builtin/submodule--helper.c:170
msgid "url where to clone the submodule from"
msgstr "하위 ëª¨ë“ˆì„ ë³µì œí•´ 올 URL"
-#: builtin/submodule--helper.c:182
+#: builtin/submodule--helper.c:176
msgid "depth for shallow clones"
msgstr "ì–•ì€ ë³µì œì— ì‚¬ìš©í•  깊ì´"
-#: builtin/submodule--helper.c:188
+#: builtin/submodule--helper.c:182
msgid ""
"git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
"<repository>] [--name <name>] [--url <url>][--depth <depth>] [--] [<path>...]"
@@ -10347,38 +10602,38 @@ msgstr ""
"git submodule--helper clone [--prefix=<경로>] [--quiet] [--reference <저장소"
">] [--name <ì´ë¦„>] [--url <URL>][--depth <깊ì´>] [--] [<경로>...]"
-#: builtin/submodule--helper.c:202 builtin/submodule--helper.c:208
-#: builtin/submodule--helper.c:216
+#: builtin/submodule--helper.c:196 builtin/submodule--helper.c:202
+#: builtin/submodule--helper.c:210
#, c-format
msgid "could not create directory '%s'"
msgstr "'%s' 디렉터리를 만들 수 없습니다"
-#: builtin/submodule--helper.c:204
+#: builtin/submodule--helper.c:198
#, c-format
msgid "clone of '%s' into submodule path '%s' failed"
msgstr "'%s'ì—ì„œ 하위 모듈 경로 '%s'ì— ë³µì œí•˜ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
-#: builtin/submodule--helper.c:227
+#: builtin/submodule--helper.c:221
#, c-format
msgid "cannot open file '%s'"
msgstr "'%s' 파ì¼ì„ ì—´ 수 없습니다"
-#: builtin/submodule--helper.c:232
+#: builtin/submodule--helper.c:226
#, c-format
msgid "could not close file %s"
msgstr "%s 파ì¼ì„ ë‹«ì„ ìˆ˜ 없습니다"
-#: builtin/submodule--helper.c:247
+#: builtin/submodule--helper.c:241
#, c-format
msgid "could not get submodule directory for '%s'"
msgstr "'%s'ì— ëŒ€í•œ 하위 모듈 디렉터리를 가져올 수 없습니다"
-#: builtin/submodule--helper.c:273
+#: builtin/submodule--helper.c:267
msgid "fatal: submodule--helper subcommand must be called with a subcommand"
msgstr ""
"ì¹˜ëª…ì  ì´ìƒ: submodule--helper 하위 ëª…ë ¹ì€ í•˜ìœ„ 명령으로 호출해야 합니다"
-#: builtin/submodule--helper.c:280
+#: builtin/submodule--helper.c:274
#, c-format
msgid "fatal: '%s' is not a valid submodule--helper subcommand"
msgstr "ì¹˜ëª…ì  ì´ìƒ: '%s'ì€(는) 올바른 submodule--helper 하위 ëª…ë ¹ì´ ì•„ë‹™ë‹ˆë‹¤"
@@ -10622,188 +10877,202 @@ msgstr "태그 '%s' ì—…ë°ì´íŠ¸ (과거 %s)\n"
msgid "Unpacking objects"
msgstr "오브ì íŠ¸ ë¬¶ìŒ í‘¸ëŠ” 중"
-#: builtin/update-index.c:70
+#: builtin/update-index.c:79
#, c-format
msgid "failed to create directory %s"
msgstr "%s 디렉터리 만들기 실패했습니다"
-#: builtin/update-index.c:76
+#: builtin/update-index.c:85
#, c-format
msgid "failed to stat %s"
msgstr "%sì— stat()í•˜ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
-#: builtin/update-index.c:86
+#: builtin/update-index.c:95
#, c-format
msgid "failed to create file %s"
msgstr "%s 파ì¼ì„ ë§Œë“œëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
-#: builtin/update-index.c:94
+#: builtin/update-index.c:103
#, c-format
msgid "failed to delete file %s"
msgstr "%s 파ì¼ì„ ì‚­ì œí•˜ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
-#: builtin/update-index.c:101 builtin/update-index.c:203
+#: builtin/update-index.c:110 builtin/update-index.c:212
#, c-format
msgid "failed to delete directory %s"
msgstr "%s 디렉터리를 ì‚­ì œí•˜ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
-#: builtin/update-index.c:124
+#: builtin/update-index.c:133
#, c-format
-msgid "Testing "
-msgstr "테스트중 "
+msgid "Testing mtime in '%s' "
+msgstr "'%s' ì•ˆì˜ ìˆ˜ì • ì‹œê°ì„ 확ì¸í•˜ëŠ” 중입니다"
-#: builtin/update-index.c:136
+#: builtin/update-index.c:145
msgid "directory stat info does not change after adding a new file"
msgstr "새 파ì¼ì„ 추가한 í›„ì— ë””ë ‰í„°ë¦¬ ì •ë³´ê°€ 바뀌지 않았습니다"
-#: builtin/update-index.c:149
+#: builtin/update-index.c:158
msgid "directory stat info does not change after adding a new directory"
msgstr "새 디렉터리를 추가한 í›„ì— ë””ë ‰í„°ë¦¬ ì •ë³´ê°€ 바뀌지 않았습니다"
-#: builtin/update-index.c:162
+#: builtin/update-index.c:171
msgid "directory stat info changes after updating a file"
msgstr "파ì¼ì„ ì—…ë°ì´íŠ¸í•œ í›„ì— ë””ë ‰í„°ë¦¬ ì •ë³´ê°€ 바뀌지 않았습니다"
-#: builtin/update-index.c:173
+#: builtin/update-index.c:182
msgid "directory stat info changes after adding a file inside subdirectory"
msgstr "하위 ë””ë ‰í„°ë¦¬ì— íŒŒì¼ì„ 추가한 í›„ì— ë””ë ‰í„°ë¦¬ ì •ë³´ê°€ 바뀌지 않았습니다"
-#: builtin/update-index.c:184
+#: builtin/update-index.c:193
msgid "directory stat info does not change after deleting a file"
msgstr "파ì¼ì„ 삭제한 í›„ì— ë””ë ‰í„°ë¦¬ ì •ë³´ê°€ 바뀌지 않았습니다"
-#: builtin/update-index.c:197
+#: builtin/update-index.c:206
msgid "directory stat info does not change after deleting a directory"
msgstr "디렉터리를 삭제한 í›„ì— ë””ë ‰í„°ë¦¬ ì •ë³´ê°€ 바뀌지 않았습니다"
-#: builtin/update-index.c:204
+#: builtin/update-index.c:213
msgid " OK"
msgstr " 오케ì´"
-#: builtin/update-index.c:564
+#: builtin/update-index.c:575
msgid "git update-index [<options>] [--] [<file>...]"
msgstr "git update-index [<옵션>] [--] [<파ì¼>...]"
-#: builtin/update-index.c:918
+#: builtin/update-index.c:930
msgid "continue refresh even when index needs update"
msgstr "ì¸ë±ìŠ¤ì— ì—…ë°ì´íŠ¸ê°€ 필요하ë”ë¼ë„ 새로 ê³ ì¹¨ì„ ê³„ì†í•©ë‹ˆë‹¤"
-#: builtin/update-index.c:921
+#: builtin/update-index.c:933
msgid "refresh: ignore submodules"
msgstr "새로 고침: 하위 모듈 무시"
-#: builtin/update-index.c:924
+#: builtin/update-index.c:936
msgid "do not ignore new files"
msgstr "새 파ì¼ì„ 무시할 수 않습니다"
-#: builtin/update-index.c:926
+#: builtin/update-index.c:938
msgid "let files replace directories and vice-versa"
msgstr "디렉터리를 파ì¼ë¡œ, ë˜ëŠ” ê·¸ 반대로 바꿀 수 있게 허용합니다"
-#: builtin/update-index.c:928
+#: builtin/update-index.c:940
msgid "notice files missing from worktree"
msgstr "ìž‘ì—…í´ë”ì—ì„œ 알림 파ì¼ì´ 없습니다"
-#: builtin/update-index.c:930
+#: builtin/update-index.c:942
msgid "refresh even if index contains unmerged entries"
msgstr "ì¸ë±ìŠ¤ì— 병합하지 ì•Šì€ í•­ëª©ì´ ìžˆì–´ë„ ìƒˆë¡œ 고칩니다"
-#: builtin/update-index.c:933
+#: builtin/update-index.c:945
msgid "refresh stat information"
msgstr "íŒŒì¼ ì •ë³´ë¥¼ 새로 고칩니다"
-#: builtin/update-index.c:937
+#: builtin/update-index.c:949
msgid "like --refresh, but ignore assume-unchanged setting"
msgstr "--refresh와 ë™ì¼í•˜ì§€ë§Œ, assume-unchanged ì„¤ì •ì„ ë¬´ì‹œí•©ë‹ˆë‹¤"
-#: builtin/update-index.c:941
+#: builtin/update-index.c:953
msgid "<mode>,<object>,<path>"
msgstr "<모드>,<오브ì íŠ¸>,<경로>"
-#: builtin/update-index.c:942
+#: builtin/update-index.c:954
msgid "add the specified entry to the index"
msgstr "지정한 í•­ëª©ì„ ì¸ë±ìŠ¤ì— 추가합니다"
-#: builtin/update-index.c:946
+#: builtin/update-index.c:958
msgid "(+/-)x"
msgstr "(+/-)x"
-#: builtin/update-index.c:947
+#: builtin/update-index.c:959
msgid "override the executable bit of the listed files"
msgstr "목ë¡ì˜ 파ì¼ì—ì„œ 실행 가능 비트를 바꿉니다"
-#: builtin/update-index.c:951
+#: builtin/update-index.c:963
msgid "mark files as \"not changing\""
msgstr "파ì¼ì„ \"바꾸지 ì•ŠìŒ\"으로 표시합니다"
-#: builtin/update-index.c:954
+#: builtin/update-index.c:966
msgid "clear assumed-unchanged bit"
msgstr "바꾸지 ì•ŠìŒìœ¼ë¡œ 가정 (assumed-unchanged) 비트를 지ì›ë‹ˆë‹¤"
-#: builtin/update-index.c:957
+#: builtin/update-index.c:969
msgid "mark files as \"index-only\""
msgstr "파ì¼ì„ ì¸ë±ìŠ¤ 전용으로 (\"index-only\") 표시합니다"
-#: builtin/update-index.c:960
+#: builtin/update-index.c:972
msgid "clear skip-worktree bit"
msgstr "ìž‘ì—…í´ë” 건너뛰기 (skip-worktree) 비트를 지ì›ë‹ˆë‹¤"
-#: builtin/update-index.c:963
+#: builtin/update-index.c:975
msgid "add to index only; do not add content to object database"
-msgstr "ì¸ë±ìŠ¤ì—만 추가합니다. ë‚´ìš©ì„ ì˜¤ë¸Œì íŠ¸ ë°ì´í„°ë² ì´ìŠ¤ì— 추가하지 않습니다"
+msgstr ""
+"ì¸ë±ìŠ¤ì—만 추가합니다. ë‚´ìš©ì„ ì˜¤ë¸Œì íŠ¸ ë°ì´í„°ë² ì´ìŠ¤ì— 추가하지 않습니다"
-#: builtin/update-index.c:965
+#: builtin/update-index.c:977
msgid "remove named paths even if present in worktree"
msgstr "ìž‘ì—… í´ë”ì— ìžˆì–´ë„ í•´ë‹¹ 경로를 제거합니다"
-#: builtin/update-index.c:967
+#: builtin/update-index.c:979
msgid "with --stdin: input lines are terminated by null bytes"
msgstr "--stdinê³¼ ê°™ì´ ì‚¬ìš©: ìž…ë ¥ ì¤„ì€ NUL ë°”ì´íŠ¸ë¡œ ë납니다"
-#: builtin/update-index.c:969
+#: builtin/update-index.c:981
msgid "read list of paths to be updated from standard input"
msgstr "표준 ìž…ë ¥ì—ì„œ ì—…ë°ì´íŠ¸í•  ê²½ë¡œì˜ ëª©ë¡ì„ ì½ìŠµë‹ˆë‹¤"
-#: builtin/update-index.c:973
+#: builtin/update-index.c:985
msgid "add entries from standard input to the index"
msgstr "표준 ìž…ë ¥ì—ì„œ ì½ì€ í•­ëª©ì„ ì¸ë±ìŠ¤ì— 추가합니다"
-#: builtin/update-index.c:977
+#: builtin/update-index.c:989
msgid "repopulate stages #2 and #3 for the listed paths"
msgstr "경로 목ë¡ì— 대해 #2 ë° #3 스테ì´ì§•ì„ 다시 합니다"
-#: builtin/update-index.c:981
+#: builtin/update-index.c:993
msgid "only update entries that differ from HEAD"
msgstr "HEAD와 다른 항목만 ì—…ë°ì´íŠ¸í•©ë‹ˆë‹¤"
-#: builtin/update-index.c:985
+#: builtin/update-index.c:997
msgid "ignore files missing from worktree"
msgstr "ìž‘ì—… í´ë”ì— ì—†ëŠ” 파ì¼ì„ 무시합니다"
-#: builtin/update-index.c:988
+#: builtin/update-index.c:1000
msgid "report actions to standard output"
msgstr "표준 ì¶œë ¥ì— ë™ìž‘ì„ ì•Œë¦½ë‹ˆë‹¤"
-#: builtin/update-index.c:990
+#: builtin/update-index.c:1002
msgid "(for porcelains) forget saved unresolved conflicts"
msgstr "저장한 í•´ê²°ë˜ì§€ ì•Šì€ ì¶©ëŒì„ 무시합니다 (사용ìžìš© 명령 ìš©ë„)"
-#: builtin/update-index.c:994
+#: builtin/update-index.c:1006
msgid "write index in this format"
msgstr "ì¸ë±ìŠ¤ë¥¼ ì´ í˜•ì‹ìœ¼ë¡œ ì”니다"
-#: builtin/update-index.c:996
+#: builtin/update-index.c:1008
msgid "enable or disable split index"
msgstr "스플릿 ì¸ë±ìŠ¤ë¥¼ 켜거나 ë•ë‹ˆë‹¤"
-#: builtin/update-index.c:998
+#: builtin/update-index.c:1010
msgid "enable/disable untracked cache"
msgstr "추ì í•˜ì§€ 않는 ìºì‹œ ì‚¬ìš©ì„ ì¼œê±°ë‚˜ ë•ë‹ˆë‹¤"
-#: builtin/update-index.c:1000
+#: builtin/update-index.c:1012
+msgid "test if the filesystem supports untracked cache"
+msgstr "íŒŒì¼ ì‹œìŠ¤í…œì´ ì¶”ì í•˜ì§€ 않는 ìºì‹œë¥¼ 지ì›í•˜ëŠ”지 검사합니다"
+
+#: builtin/update-index.c:1014
msgid "enable untracked cache without testing the filesystem"
msgstr "íŒŒì¼ ì‹œìŠ¤í…œ 테스트 ì—†ì´ ì¶”ì í•˜ì§€ 않는 ìºì‹œë¥¼ 사용합니다"
+#: builtin/update-index.c:1134
+msgid "Untracked cache disabled"
+msgstr "추ì ë˜ì§€ 않는 ìºì‹œë¥¼ 사용하지 않습니다"
+
+#: builtin/update-index.c:1146
+#, c-format
+msgid "Untracked cache enabled for '%s'"
+msgstr "'%s'ì— ëŒ€í•´ 추ì ë˜ì§€ 않는 ìºì‹œë¥¼ 사용하지 않습니다"
+
#: builtin/update-ref.c:9
msgid "git update-ref [<options>] -d <refname> [<old-val>]"
msgstr "git update-ref [<옵션>] -d <ë ˆí¼ëŸ°ìŠ¤ì´ë¦„> [<과거-ê°’>]"
@@ -10919,33 +11188,33 @@ msgstr "ì œê±°ì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤: %s"
msgid "'%s' already exists"
msgstr "'%s'ì´(ê°€) ì´ë¯¸ 있습니다"
-#: builtin/worktree.c:235
+#: builtin/worktree.c:233
#, c-format
msgid "could not create directory of '%s'"
msgstr "'%s'ì˜ ë””ë ‰í„°ë¦¬ë¥¼ 만들 수 없습니다"
-#: builtin/worktree.c:271
+#: builtin/worktree.c:269
#, c-format
msgid "Preparing %s (identifier %s)"
msgstr "%s 준비 중 (ID %s)"
-#: builtin/worktree.c:319
+#: builtin/worktree.c:317
msgid "checkout <branch> even if already checked out in other worktree"
msgstr "다른 ìž‘ì—… í´ë”ì—ì„œ ì²´í¬ì•„웃했ë”ë¼ë„ <브랜치>를 ì²´í¬ì•„웃합니다"
-#: builtin/worktree.c:321
+#: builtin/worktree.c:319
msgid "create a new branch"
msgstr "새 브랜치를 만듭니다"
-#: builtin/worktree.c:323
+#: builtin/worktree.c:321
msgid "create or reset a branch"
msgstr "브랜치를 만들거나 리셋합니다"
-#: builtin/worktree.c:324
+#: builtin/worktree.c:322
msgid "detach HEAD at named commit"
msgstr "HEAD를 해당 커밋ì—ì„œ 분리합니다"
-#: builtin/worktree.c:331
+#: builtin/worktree.c:329
msgid "-b, -B, and --detach are mutually exclusive"
msgstr "-b, -B, --detach 옵션 중 하나만 쓸 수 있습니다"
@@ -10965,7 +11234,7 @@ msgstr "하위 디렉터리 <ì ‘ë‘ì–´>ì— ëŒ€í•´ 트리 오브ì íŠ¸ë¥¼ ì”니ë
msgid "only useful for debugging"
msgstr "디버깅 ìš©ë„로만 사용"
-#: credential-cache--daemon.c:255
+#: credential-cache--daemon.c:262
msgid "print debugging messages to stderr"
msgstr "디버깅 메시지를 표준오류로 출력합니다"
@@ -10979,6 +11248,10 @@ msgstr ""
"목ë¡ì„ ë³¼ 수 있습니다. 특정 하위 명령어나 ê°œë…ì— ëŒ€í•´ ì½ì–´ 보려면 'git help\n"
"<명령>' ë˜ëŠ” 'git help <ê°œë…>' ëª…ë ¹ì„ ì‹¤í–‰í•˜ì‹­ì‹œì˜¤."
+#: http.c:321
+msgid "Public key pinning not supported with cURL < 7.44.0"
+msgstr "공개 키 ê³ ì •ì€ cURL 7.44.0 ì•ž 버전ì—서는 지ì›í•˜ì§€ 않습니다"
+
#: common-cmds.h:9
msgid "start a working area (see also: git help tutorial)"
msgstr "작업 공간 시작 (참고: git help tutorial)"
@@ -11060,8 +11333,8 @@ msgid "Update remote refs along with associated objects"
msgstr "ì›ê²© ë ˆí¼ëŸ°ìŠ¤ ë° ê·¸ì™€ ê´€ë ¨ëœ ì˜¤ë¸Œì íŠ¸ë¥¼ ì—…ë°ì´íŠ¸í•©ë‹ˆë‹¤"
#: common-cmds.h:32
-msgid "Forward-port local commits to the updated upstream head"
-msgstr "로컬 ì»¤ë°‹ì„ ì—…ë°ì´íŠ¸ëœ 업스트림 head 다ìŒì— 맞춰 넣습니다"
+msgid "Reapply commits on top of another base tip"
+msgstr "ì»¤ë°‹ì„ ë‹¤ë¥¸ ë² ì´ìŠ¤ ëì˜ ìµœìƒìœ„ì—ì„œ ì ìš©í•©ë‹ˆë‹¤"
#: common-cmds.h:33
msgid "Reset current HEAD to the specified state"
@@ -11312,7 +11585,8 @@ msgid ""
msgstr ""
"ì´ ë¬¸ì œë¥¼ 해결하면, \"\"git rebase --continue\"를 실행하십시오.\n"
"ì´ íŒ¨ì¹˜ë¥¼ 건너뛰려면, ëŒ€ì‹ ì— \"git rebase --skip\"ì„ ì‹¤í–‰í•˜ì‹­ì‹œì˜¤.\n"
-"ì›ëž˜ 브랜치를 ì²´í¬ì•„웃하고 리베ì´ìŠ¤ë¥¼ 중지하려면, \"git rebase --abort\"를 실행하십시오."
+"ì›ëž˜ 브랜치를 ì²´í¬ì•„웃하고 리베ì´ìŠ¤ë¥¼ 중지하려면, \"git rebase --abort\"를 실"
+"행하십시오."
#: git-rebase.sh:165
msgid "Applied autostash."
@@ -11685,7 +11959,9 @@ msgstr "'$prefix$displaypath' ìž…ë ¥"
#: git-submodule.sh:437
#, sh-format
msgid "Stopping at '$prefix$displaypath'; script returned non-zero status."
-msgstr "'$prefix$displaypath' 위치ì—ì„œ 멈춤. 스í¬ë¦½íŠ¸ì—ì„œ 0ì´ ì•„ë‹Œ ìƒíƒœë¥¼ 리턴했습니다."
+msgstr ""
+"'$prefix$displaypath' 위치ì—ì„œ 멈춤. 스í¬ë¦½íŠ¸ì—ì„œ 0ì´ ì•„ë‹Œ ìƒíƒœë¥¼ 리턴했습니"
+"다."
#: git-submodule.sh:483
#, sh-format
@@ -11705,7 +11981,8 @@ msgstr "'$displaypath' ê²½ë¡œì— ($url) 대해 등ë¡ëœ '$name' 하위 모듈"
#: git-submodule.sh:511
#, sh-format
msgid "Failed to register update mode for submodule path '$displaypath'"
-msgstr "하위 모듈 경로 '$displaypath'ì— ëŒ€í•´ ì—…ë°ì´íŠ¸ 모드를 등ë¡í•˜ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
+msgstr ""
+"하위 모듈 경로 '$displaypath'ì— ëŒ€í•´ ì—…ë°ì´íŠ¸ 모드를 등ë¡í•˜ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
#: git-submodule.sh:549
#, sh-format
@@ -11728,7 +12005,9 @@ msgstr "(ì •ë§ë¡œ ê·¸ 커밋 내역까지 í¬í•¨í•´ 제거하려면 'rm -rf'를
msgid ""
"Submodule work tree '$displaypath' contains local modifications; use '-f' to "
"discard them"
-msgstr "하위 모듈 ìž‘ì—… í´ë”ì— ('$displaypath') 로컬 수정 ì‚¬í•­ì´ ìžˆìŠµë‹ˆë‹¤. 버리려면 '-f'를 사용하십시오"
+msgstr ""
+"하위 모듈 ìž‘ì—… í´ë”ì— ('$displaypath') 로컬 수정 ì‚¬í•­ì´ ìžˆìŠµë‹ˆë‹¤. 버리려면 '-"
+"f'를 사용하십시오"
#: git-submodule.sh:576
#, sh-format
@@ -11748,9 +12027,10 @@ msgstr "빈 하위 모듈 디렉터리를 ('$displaypath') 만들 수 없습니ë
#: git-submodule.sh:589
#, sh-format
msgid "Submodule '$name' ($url) unregistered for path '$displaypath'"
-msgstr "'$name' 하위 ëª¨ë“ˆì´ ($url) '$displaypath' ê²½ë¡œì— ëŒ€í•´ 등ë¡ë˜ì§€ 않았습니다"
+msgstr ""
+"'$name' 하위 ëª¨ë“ˆì´ ($url) '$displaypath' ê²½ë¡œì— ëŒ€í•´ 등ë¡ë˜ì§€ 않았습니다"
-#: git-submodule.sh:705
+#: git-submodule.sh:723
#, sh-format
msgid ""
"Submodule path '$displaypath' not initialized\n"
@@ -11759,101 +12039,103 @@ msgstr ""
"하위 모듈 경로가 ('$displaypath') 초기화ë˜ì§€ 않았습니다\n"
"ì•„ë§ˆë„ 'update --init'ì´ í•„ìš”í•©ë‹ˆë‹¤?"
-#: git-submodule.sh:718
+#: git-submodule.sh:736
#, sh-format
msgid "Unable to find current revision in submodule path '$displaypath'"
msgstr "하위 모듈 경로ì—ì„œ ('$displaypath') 현재 ë¦¬ë¹„ì „ì„ ì°¾ì„ ìˆ˜ 없습니다"
-#: git-submodule.sh:727
+#: git-submodule.sh:745
#, sh-format
msgid "Unable to fetch in submodule path '$sm_path'"
msgstr "하위 모듈 경로 '$sm_path'ì—ì„œ 가져올 수 없습니다"
-#: git-submodule.sh:751
+#: git-submodule.sh:768
#, sh-format
msgid "Unable to fetch in submodule path '$displaypath'"
msgstr "하위 모듈 경로 '$displaypath'ì—ì„œ 가져올 수 없습니다"
-#: git-submodule.sh:765
+#: git-submodule.sh:788
#, sh-format
msgid "Unable to checkout '$sha1' in submodule path '$displaypath'"
msgstr "하위 모듈 경로 '$displaypath'ì—ì„œ '$sha1'ì„(를) ì²´í¬ì•„웃할 수 없습니다"
-#: git-submodule.sh:766
+#: git-submodule.sh:789
#, sh-format
msgid "Submodule path '$displaypath': checked out '$sha1'"
msgstr "하위 모듈 경로 '$displaypath': '$sha1' ì²´í¬ì•„웃"
-#: git-submodule.sh:770
+#: git-submodule.sh:793
#, sh-format
msgid "Unable to rebase '$sha1' in submodule path '$displaypath'"
msgstr "하위 모듈 경로 '$displaypath'ì—ì„œ '$sha1'ì„(를) 리베ì´ìŠ¤í•  수 없습니다"
-#: git-submodule.sh:771
+#: git-submodule.sh:794
#, sh-format
msgid "Submodule path '$displaypath': rebased into '$sha1'"
msgstr "하위 모듈 경로 '$displaypath': '$sha1'(으)ë¡œ 리베ì´ìŠ¤"
-#: git-submodule.sh:776
+#: git-submodule.sh:799
#, sh-format
msgid "Unable to merge '$sha1' in submodule path '$displaypath'"
msgstr "하위 모듈 경로 '$displaypath'ì—ì„œ '$sha1' 병합할 수 없습니다"
-#: git-submodule.sh:777
+#: git-submodule.sh:800
#, sh-format
msgid "Submodule path '$displaypath': merged in '$sha1'"
msgstr "하위 모듈 경로 '$displaypath': '$sha1'ì—ì„œ 병합"
-#: git-submodule.sh:782
+#: git-submodule.sh:805
#, sh-format
msgid ""
"Execution of '$command $sha1' failed in submodule path '$prefix$sm_path'"
-msgstr "하위 모듈 경로 '$prefix$sm_path'ì—ì„œ '$command $sha1' ì‹¤í–‰ì´ ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
+msgstr ""
+"하위 모듈 경로 '$prefix$sm_path'ì—ì„œ '$command $sha1' ì‹¤í–‰ì´ ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
-#: git-submodule.sh:783
+#: git-submodule.sh:806
#, sh-format
msgid "Submodule path '$prefix$sm_path': '$command $sha1'"
msgstr "하위 모듈 경로 '$prefix$sm_path': '$command $sha1'"
-#: git-submodule.sh:813
+#: git-submodule.sh:836
#, sh-format
msgid "Failed to recurse into submodule path '$displaypath'"
msgstr "재귀ì ìœ¼ë¡œ 하위 모듈 경로 '$displaypath'ì— ë“¤ì–´ê°€ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
-#: git-submodule.sh:921
+#: git-submodule.sh:944
msgid "The --cached option cannot be used with the --files option"
msgstr "--cached ì˜µì…˜ì€ --files 옵션과 ê°™ì´ ì“¸ 수 없습니다"
-#: git-submodule.sh:973
+#: git-submodule.sh:996
#, sh-format
msgid "unexpected mode $mod_dst"
msgstr "예ìƒì¹˜ 못한 모드 $mod_dst"
-#: git-submodule.sh:993
+#: git-submodule.sh:1016
#, sh-format
msgid " Warn: $display_name doesn't contain commit $sha1_src"
msgstr " 경고: '$display_name'ì— '$sha1_src' ì»¤ë°‹ì´ ë“¤ì–´ìžˆì§€ 않습니다"
-#: git-submodule.sh:996
+#: git-submodule.sh:1019
#, sh-format
msgid " Warn: $display_name doesn't contain commit $sha1_dst"
msgstr " 경고: '$display_name'ì— '$sha1_dst' ì»¤ë°‹ì´ ë“¤ì–´ìžˆì§€ 않습니다"
-#: git-submodule.sh:999
+#: git-submodule.sh:1022
#, sh-format
msgid " Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst"
-msgstr " 경고: '$display_name'ì— '$sha1_src' ë° '$sha1_dst' ì»¤ë°‹ì´ ë“¤ì–´ìžˆì§€ 않습니다"
+msgstr ""
+" 경고: '$display_name'ì— '$sha1_src' ë° '$sha1_dst' ì»¤ë°‹ì´ ë“¤ì–´ìžˆì§€ 않습니다"
-#: git-submodule.sh:1024
+#: git-submodule.sh:1047
msgid "blob"
msgstr "블롭"
-#: git-submodule.sh:1142
+#: git-submodule.sh:1165
#, sh-format
msgid "Failed to recurse into submodule path '$sm_path'"
msgstr "재귀ì ìœ¼ë¡œ 하위 모듈 경로 '$sm_path'ì— ë“¤ì–´ê°€ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
-#: git-submodule.sh:1206
+#: git-submodule.sh:1229
#, sh-format
msgid "Synchronizing submodule url for '$displaypath'"
msgstr "하위 모듈 URLì„ '$displaypath'ì— ëŒ€í•´ ë™ê¸°í™”"
diff --git a/po/ru.po b/po/ru.po
index 0de4ff9014..cd5cbe8290 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -3,15 +3,15 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# Dimitriy Ryazantcev <DJm00n@mail.ru>, 2014-2015
+# Dimitriy Ryazantcev <DJm00n@mail.ru>, 2014-2016
# insolor <insolor@gmail.com>, 2014
# insolor <insolor@gmail.com>, 2014
msgid ""
msgstr ""
"Project-Id-Version: Git Russian Localization Project\n"
"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2015-12-22 22:50+0800\n"
-"PO-Revision-Date: 2015-12-25 11:57+0000\n"
+"POT-Creation-Date: 2016-03-12 22:05+0800\n"
+"PO-Revision-Date: 2016-03-12 23:44+0000\n"
"Last-Translator: Dimitriy Ryazantcev <DJm00n@mail.ru>\n"
"Language-Team: Russian (http://www.transifex.com/djm00n/git-po-ru/language/ru/)\n"
"MIME-Version: 1.0\n"
@@ -31,7 +31,7 @@ msgid ""
"as appropriate to mark resolution and make a commit."
msgstr "ИÑправьте их в рабочем каталоге, затем запуÑтите «git add/rm <файл>»,\nчтобы пометить иÑправление и Ñделайте коммит."
-#: advice.c:101 builtin/merge.c:1225
+#: advice.c:101 builtin/merge.c:1226
msgid "You have not concluded your merge (MERGE_HEAD exists)."
msgstr "Ð’Ñ‹ не завершили ÑлиÑние (приÑутÑтвует файл MERGE_HEAD)."
@@ -74,7 +74,7 @@ msgstr "формат"
msgid "archive format"
msgstr "формат архива"
-#: archive.c:430 builtin/log.c:1229
+#: archive.c:430 builtin/log.c:1232
msgid "prefix"
msgstr "префикÑ"
@@ -82,11 +82,11 @@ msgstr "префикÑ"
msgid "prepend prefix to each pathname in the archive"
msgstr "добавлÑÑ‚ÑŒ Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ð¿ÐµÑ€ÐµÐ´ каждым путем файла в архиве"
-#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2535
-#: builtin/blame.c:2536 builtin/config.c:58 builtin/fast-export.c:987
-#: builtin/fast-export.c:989 builtin/grep.c:707 builtin/hash-object.c:99
-#: builtin/ls-files.c:446 builtin/ls-files.c:449 builtin/notes.c:395
-#: builtin/notes.c:558 builtin/read-tree.c:109 parse-options.h:153
+#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2547
+#: builtin/blame.c:2548 builtin/config.c:60 builtin/fast-export.c:987
+#: builtin/fast-export.c:989 builtin/grep.c:720 builtin/hash-object.c:100
+#: builtin/ls-files.c:459 builtin/ls-files.c:462 builtin/notes.c:398
+#: builtin/notes.c:561 builtin/read-tree.c:109 parse-options.h:153
msgid "file"
msgstr "файл"
@@ -118,7 +118,7 @@ msgstr "Ñжимать лучше"
msgid "list supported archive formats"
msgstr "перечиÑлить поддерживаемые форматы архивов"
-#: archive.c:451 builtin/archive.c:90 builtin/clone.c:77
+#: archive.c:451 builtin/archive.c:90 builtin/clone.c:78
msgid "repo"
msgstr "репозиторий"
@@ -126,96 +126,109 @@ msgstr "репозиторий"
msgid "retrieve the archive from remote repository <repo>"
msgstr "получить архив из внешнего <репозиториÑ>"
-#: archive.c:453 builtin/archive.c:92 builtin/notes.c:479
+#: archive.c:453 builtin/archive.c:92 builtin/notes.c:482
msgid "command"
-msgstr "комманда"
+msgstr "команда"
#: archive.c:454 builtin/archive.c:93
msgid "path to the remote git-upload-archive command"
msgstr "путь к команде git-upload-archive на машине Ñ Ð²Ð½ÐµÑˆÐ½Ð¸Ð¼ репозиторием"
-#: attr.c:265
+#: attr.c:263
msgid ""
"Negative patterns are ignored in git attributes\n"
"Use '\\!' for literal leading exclamation."
msgstr "Отрицающие шаблоны в атрибутах git игнорируютÑÑ.\nИÑпользуйте «\\!» Ð´Ð»Ñ Ð±ÑƒÐºÐ²Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñимвола в значении «воÑклицательный знак»."
-#: branch.c:61
+#: branch.c:53
+#, c-format
+msgid ""
+"\n"
+"After fixing the error cause you may try to fix up\n"
+"the remote tracking information by invoking\n"
+"\"git branch --set-upstream-to=%s%s%s\"."
+msgstr "\nПоÑле иÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸Ñ‡Ð¸Ð½Ñ‹ ошибки,\nвы можете иÑправить информацию об отÑлеживаемой\nвнешней ветке, Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ команды\n«git branch --set-upstream-to=%s%s%s»."
+
+#: branch.c:67
#, c-format
msgid "Not setting branch %s as its own upstream."
msgstr "Ðе уÑтанавливаю ветку %s, так так она принадлежит вышеÑтоÑщему репозиторию."
-#: branch.c:84
+#: branch.c:93
#, c-format
msgid "Branch %s set up to track remote branch %s from %s by rebasing."
msgstr "Ветка %s отÑлеживает внешнюю ветку %s из %s перемещением."
-#: branch.c:85
+#: branch.c:94
#, c-format
msgid "Branch %s set up to track remote branch %s from %s."
msgstr "Ветка %s отÑлеживает внешнюю ветку %s из %s."
-#: branch.c:89
+#: branch.c:98
#, c-format
msgid "Branch %s set up to track local branch %s by rebasing."
msgstr "Ветка %s отÑлеживает локальную ветку %s перемещением."
-#: branch.c:90
+#: branch.c:99
#, c-format
msgid "Branch %s set up to track local branch %s."
msgstr "Ветка %s отÑлеживает локальную ветку %s."
-#: branch.c:95
+#: branch.c:104
#, c-format
msgid "Branch %s set up to track remote ref %s by rebasing."
msgstr "Ветка %s отÑлеживает внешнюю ÑÑылку %s перемещением."
-#: branch.c:96
+#: branch.c:105
#, c-format
msgid "Branch %s set up to track remote ref %s."
msgstr "Ветка %s отÑлеживает внешнюю ÑÑылку %s."
-#: branch.c:100
+#: branch.c:109
#, c-format
msgid "Branch %s set up to track local ref %s by rebasing."
msgstr "Ветка %s отÑлеживает локальную ÑÑылку %s перемещением."
-#: branch.c:101
+#: branch.c:110
#, c-format
msgid "Branch %s set up to track local ref %s."
msgstr "Ветка %s отÑлеживает локальную ÑÑылку %s."
-#: branch.c:134
+#: branch.c:119
+msgid "Unable to write upstream branch configuration"
+msgstr "Ðе удалоÑÑŒ запиÑать наÑтройки вышеÑтоÑщей ветки"
+
+#: branch.c:156
#, c-format
msgid "Not tracking: ambiguous information for ref %s"
msgstr "Ðе отÑлеживаетÑÑ: Ð½ÐµÐ¾Ð´Ð½Ð¾Ð·Ð½Ð°Ñ‡Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð´Ð»Ñ ÑÑылки %s"
-#: branch.c:163
+#: branch.c:185
#, c-format
msgid "'%s' is not a valid branch name."
msgstr "«%s» не ÑвлÑетÑÑ Ð´ÐµÐ¹Ñтвительным именем ветки."
-#: branch.c:168
+#: branch.c:190
#, c-format
msgid "A branch named '%s' already exists."
msgstr "Ветка Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ «%s» уже ÑущеÑтвует."
-#: branch.c:176
+#: branch.c:198
msgid "Cannot force update the current branch."
msgstr "Ðе удалоÑÑŒ принудительно обновить текущую ветку."
-#: branch.c:196
+#: branch.c:218
#, c-format
msgid ""
"Cannot setup tracking information; starting point '%s' is not a branch."
msgstr "Ðе удалоÑÑŒ наÑтроить информацию отÑлеживаниÑ; ÑÑ‚Ð°Ñ€Ñ‚Ð¾Ð²Ð°Ñ Ñ‚Ð¾Ñ‡ÐºÐ° «%s» не ÑвлÑетÑÑ Ð²ÐµÑ‚ÐºÐ¾Ð¹."
-#: branch.c:198
+#: branch.c:220
#, c-format
msgid "the requested upstream branch '%s' does not exist"
msgstr "Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ð°Ñ Ð²ÐµÑ‚ÐºÐ° вышеÑтоÑщего Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Â«%s» не ÑущеÑтвует"
-#: branch.c:200
+#: branch.c:222
msgid ""
"\n"
"If you are planning on basing your work on an upstream\n"
@@ -227,22 +240,22 @@ msgid ""
"\"git push -u\" to set the upstream config as you push."
msgstr "\nЕÑли вы планируете оÑновывать Ñвою работу на вышеÑтоÑщей ветке, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ ÑƒÐ¶Ðµ ÑущеÑтвует во внешнем репозитории, вам может потребоватьÑÑ Ð·Ð°Ð¿ÑƒÑтить «git fetch» Ð´Ð»Ñ ÐµÐµ получениÑ.\n\nЕÑли вы планируете отправить новую локальную ветку, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð±ÑƒÐ´ÐµÑ‚ отÑлеживатьÑÑ, во внешний репозиторий, вам может потребоватьÑÑ Ð·Ð°Ð¿ÑƒÑтить «git push -u» — чтобы Ñохранить наÑтройку вышеÑтоÑщего Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸."
-#: branch.c:244
+#: branch.c:266
#, c-format
msgid "Not a valid object name: '%s'."
msgstr "ÐедопуÑтимое Ð¸Ð¼Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð°: «%s»."
-#: branch.c:264
+#: branch.c:286
#, c-format
msgid "Ambiguous object name: '%s'."
msgstr "Ðеоднозначное Ð¸Ð¼Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð°: «%s»."
-#: branch.c:269
+#: branch.c:291
#, c-format
msgid "Not a valid branch point: '%s'."
msgstr "ÐедопуÑÑ‚Ð¸Ð¼Ð°Ñ Ñ‚Ð¾Ñ‡ÐºÐ° ветки: «%s»."
-#: branch.c:322
+#: branch.c:344
#, c-format
msgid "'%s' is already checked out at '%s'"
msgstr "«%s» уже находитÑÑ Ð½Ð° «%s»"
@@ -266,10 +279,10 @@ msgstr "не удалоÑÑŒ открыть «%s»"
msgid "Repository lacks these prerequisite commits:"
msgstr "Ð’ репозитории отÑутÑтвуют необходимые коммиты:"
-#: bundle.c:163 ref-filter.c:1372 sequencer.c:636 sequencer.c:1083
-#: builtin/blame.c:2734 builtin/commit.c:1045 builtin/log.c:334
-#: builtin/log.c:849 builtin/log.c:1461 builtin/log.c:1694 builtin/merge.c:358
-#: builtin/shortlog.c:158
+#: bundle.c:163 ref-filter.c:1462 sequencer.c:627 sequencer.c:1074
+#: builtin/blame.c:2754 builtin/commit.c:1045 builtin/log.c:334
+#: builtin/log.c:852 builtin/log.c:1467 builtin/log.c:1700 builtin/merge.c:358
+#: builtin/shortlog.c:170
msgid "revision walk setup failed"
msgstr "Ñбой инициализации прохода по редакциÑм"
@@ -312,7 +325,7 @@ msgstr "критичеÑÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° rev-list"
msgid "ref '%s' is excluded by the rev-list options"
msgstr "ÑÑылка «%s» иÑключена в ÑоответÑтвии Ñ Ð¾Ð¿Ñ†Ð¸Ñми rev-list"
-#: bundle.c:443 builtin/log.c:157 builtin/log.c:1369 builtin/shortlog.c:261
+#: bundle.c:443 builtin/log.c:157 builtin/log.c:1372 builtin/shortlog.c:273
#, c-format
msgid "unrecognized argument: %s"
msgstr "неопознанный аргумент: %s"
@@ -335,8 +348,8 @@ msgstr "критичеÑÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° index-pack"
msgid "invalid color value: %.*s"
msgstr "недопуÑтимое значение цвета: %.*s"
-#: commit.c:40 builtin/am.c:452 builtin/am.c:488 builtin/am.c:1520
-#: builtin/am.c:2149
+#: commit.c:40 builtin/am.c:437 builtin/am.c:473 builtin/am.c:1505
+#: builtin/am.c:2135
#, c-format
msgid "could not parse %s"
msgstr "не удалоÑÑŒ разобрать %s"
@@ -350,59 +363,64 @@ msgstr "%s %s не ÑвлÑетÑÑ ÐºÐ¾Ð¼Ð¼Ð¸Ñ‚Ð¾Ð¼!"
msgid "memory exhausted"
msgstr "памÑÑ‚ÑŒ иÑчерпана"
-#: config.c:474 config.c:476
+#: config.c:475 config.c:477
#, c-format
-msgid "bad config file line %d in %s"
-msgstr "ошибка в %d Ñтроке файла конфигурации в %s"
+msgid "bad config line %d in %s %s"
+msgstr "ошибка в %d Ñтроке файла конфигурации в %s %s"
-#: config.c:592
+#: config.c:593
#, c-format
-msgid "bad numeric config value '%s' for '%s' in %s: %s"
-msgstr "неправильное чиÑловое значение «%s» Ð´Ð»Ñ Â«%s» в %s: %s"
+msgid "bad numeric config value '%s' for '%s' in %s %s: %s"
+msgstr "неправильное чиÑловое значение «%s» Ð´Ð»Ñ Â«%s» в %s %s: %s"
-#: config.c:594
+#: config.c:595
#, c-format
msgid "bad numeric config value '%s' for '%s': %s"
msgstr "неправильное чиÑловое значение «%s» Ð´Ð»Ñ Â«%s»: %s"
-#: config.c:679
+#: config.c:680
#, c-format
msgid "failed to expand user dir in: '%s'"
msgstr "Ñбой Ñ€Ð°Ð·Ð²Ð¾Ñ€Ð°Ñ‡Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¿ÑƒÑ‚Ð¸ каталога пользователÑ: «%s»"
-#: config.c:757 config.c:768
+#: config.c:758 config.c:769
#, c-format
msgid "bad zlib compression level %d"
msgstr "неправильный уровень ÑÐ¶Ð°Ñ‚Ð¸Ñ zlib %d"
-#: config.c:890
+#: config.c:891
#, c-format
msgid "invalid mode for object creation: %s"
msgstr "недопуÑтимый режим ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð°: %s"
-#: config.c:1216
+#: config.c:1220
msgid "unable to parse command-line config"
msgstr "не удалоÑÑŒ разобрать конфигурацию из командной Ñтроки"
-#: config.c:1277
+#: config.c:1281
msgid "unknown error occured while reading the configuration files"
msgstr "произошла неизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° при чтении файлов конфигурации"
-#: config.c:1601
+#: config.c:1629
#, c-format
msgid "unable to parse '%s' from command-line config"
msgstr "не удалоÑÑŒ разобрать «%s» в конфигурации из командной Ñтроки"
-#: config.c:1603
+#: config.c:1631
#, c-format
msgid "bad config variable '%s' in file '%s' at line %d"
msgstr "Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ð¸ «%s» в файле «%s» на Ñтроке %d"
-#: config.c:1662
+#: config.c:1690
#, c-format
msgid "%s has multiple values"
msgstr "%s имеет неÑколько значений"
+#: config.c:2226
+#, c-format
+msgid "Could not set '%s' to '%s'"
+msgstr "Ðе удалоÑÑŒ уÑтановить «%s» в «%s»"
+
#: connected.c:69
msgid "Could not run 'git rev-list'"
msgstr "Ðе удалоÑÑŒ запуÑтить «git rev-list»"
@@ -534,34 +552,34 @@ msgid ""
"%s"
msgstr "Ðайдены ошибки в переменной «diff.dirstat»:\n%s"
-#: diff.c:3000
+#: diff.c:2997
#, c-format
msgid "external diff died, stopping at %s"
msgstr "критичеÑÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° при внешнем Ñравнении, оÑтанов на %s"
-#: diff.c:3396
+#: diff.c:3393
msgid "--follow requires exactly one pathspec"
msgstr "--follow требует ровно одной Ñпецификации пути"
-#: diff.c:3559
+#: diff.c:3556
#, c-format
msgid ""
"Failed to parse --dirstat/-X option parameter:\n"
"%s"
msgstr "Сбой разбора параметра опции --dirstat/-X :\n%s"
-#: diff.c:3573
+#: diff.c:3570
#, c-format
msgid "Failed to parse --submodule option parameter: '%s'"
msgstr "Сбой разбора параметра опции --submodule: «%s»"
-#: dir.c:1915
+#: dir.c:2004
msgid "failed to get kernel name and information"
msgstr "не удалоÑÑŒ получить Ð¸Ð¼Ñ Ñдра и информацию"
-#: dir.c:1998
-msgid "Untracked cache is disabled on this system."
-msgstr "КÑш неотÑлеживаемых файлов отключен на Ñтой ÑиÑтеме."
+#: dir.c:2123
+msgid "Untracked cache is disabled on this system or location."
+msgstr "КÑш неотÑлеживаемых файлов отключен на Ñтой ÑиÑтеме или в Ñтом меÑте."
#: gpg-interface.c:166 gpg-interface.c:237
msgid "could not run gpg."
@@ -600,48 +618,48 @@ msgstr "«%s»: %s"
msgid "'%s': short read %s"
msgstr "«%s»: Ñлишком мало данных прочитано %s"
-#: help.c:207
+#: help.c:205
#, c-format
msgid "available git commands in '%s'"
msgstr "доÑтупные команды git в «%s»"
-#: help.c:214
+#: help.c:212
msgid "git commands available from elsewhere on your $PATH"
msgstr "команды git, доÑтупные в других меÑтах вашего $PATH"
-#: help.c:246
+#: help.c:244
msgid "These are common Git commands used in various situations:"
msgstr "Стандартные команды Git иÑпользуемые в различных ÑитуациÑÑ…:"
-#: help.c:311
+#: help.c:309
#, c-format
msgid ""
"'%s' appears to be a git command, but we were not\n"
"able to execute it. Maybe git-%s is broken?"
msgstr "«%s» похоже на команду git, но нам не удалоÑÑŒ ее запуÑтить. Возможно, git-%s не работает?"
-#: help.c:368
+#: help.c:366
msgid "Uh oh. Your system reports no Git commands at all."
msgstr "Ой-ёй! Ваша ÑиÑтема не Ñообщает ни о каких командах Git вообще."
-#: help.c:390
+#: help.c:388
#, c-format
msgid ""
"WARNING: You called a Git command named '%s', which does not exist.\n"
"Continuing under the assumption that you meant '%s'"
msgstr "Ð’ÐИМÐÐИЕ: Ð’Ñ‹ вызвали команду Git «%s», но такой не ÑущеÑтвует.\nПродолжаем Ñ Ð¿Ñ€ÐµÐ´Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸ÐµÐ¼, что вы имели в виду «%s»"
-#: help.c:395
+#: help.c:393
#, c-format
msgid "in %0.1f seconds automatically..."
msgstr "через %0.1f Ñекунд автоматичеÑки…"
-#: help.c:402
+#: help.c:400
#, c-format
msgid "git: '%s' is not a git command. See 'git --help'."
msgstr "git: «%s» не ÑвлÑетÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ git. Смотрите «git --help»."
-#: help.c:406 help.c:466
+#: help.c:404 help.c:464
msgid ""
"\n"
"Did you mean this?"
@@ -653,7 +671,7 @@ msgstr[1] "\nВозможно, вы имели в виду что-то из ÑÑ‚
msgstr[2] "\nВозможно, вы имели в виду что-то из Ñтого?"
msgstr[3] "\nВозможно, вы имели в виду что-то из Ñтого?"
-#: help.c:462
+#: help.c:460
#, c-format
msgid "%s: %s - %s"
msgstr "%s: %s — %s"
@@ -662,8 +680,8 @@ msgstr "%s: %s — %s"
msgid "failed to read the cache"
msgstr "Ñбой Ñ‡Ñ‚ÐµÐ½Ð¸Ñ ÐºÑша"
-#: merge.c:94 builtin/am.c:2022 builtin/am.c:2057 builtin/checkout.c:376
-#: builtin/checkout.c:587 builtin/clone.c:722
+#: merge.c:94 builtin/am.c:2008 builtin/am.c:2043 builtin/checkout.c:376
+#: builtin/checkout.c:587 builtin/clone.c:730
msgid "unable to write new index file"
msgstr "не удалоÑÑŒ запиÑать новый файл индекÑа"
@@ -681,218 +699,218 @@ msgstr "Ñбой addinfo_cache Ð´Ð»Ñ Ð¿ÑƒÑ‚Ð¸ «%s»"
msgid "error building trees"
msgstr "ошибка при поÑтроении деревьев"
-#: merge-recursive.c:686
+#: merge-recursive.c:689
#, c-format
msgid "failed to create path '%s'%s"
msgstr "не удалоÑÑŒ Ñоздать путь «%s»%s"
-#: merge-recursive.c:697
+#: merge-recursive.c:700
#, c-format
msgid "Removing %s to make room for subdirectory\n"
msgstr "Удаление %s, чтобы оÑвободить меÑто Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð¾Ð²\n"
-#: merge-recursive.c:711 merge-recursive.c:732
+#: merge-recursive.c:714 merge-recursive.c:735
msgid ": perhaps a D/F conflict?"
msgstr ": возможно, конфликт каталогов/файлов?"
-#: merge-recursive.c:722
+#: merge-recursive.c:725
#, c-format
msgid "refusing to lose untracked file at '%s'"
msgstr "отказ потери неотÑлеживаемого файла в «%s»"
-#: merge-recursive.c:762
+#: merge-recursive.c:765
#, c-format
msgid "cannot read object %s '%s'"
msgstr "невозможно прочитать объект %s «%s»"
-#: merge-recursive.c:764
+#: merge-recursive.c:767
#, c-format
msgid "blob expected for %s '%s'"
msgstr "ожидаетÑÑ Ð´Ð²Ð¾Ð¸Ñ‡Ð½Ñ‹Ð¹ объект Ð´Ð»Ñ %s «%s»"
-#: merge-recursive.c:787 builtin/clone.c:369
+#: merge-recursive.c:790 builtin/clone.c:374
#, c-format
msgid "failed to open '%s'"
msgstr "не удалоÑÑŒ открыть «%s»"
-#: merge-recursive.c:795
+#: merge-recursive.c:798
#, c-format
msgid "failed to symlink '%s'"
msgstr "не удалоÑÑŒ Ñоздать Ñимвольную ÑÑылку «%s»"
-#: merge-recursive.c:798
+#: merge-recursive.c:801
#, c-format
msgid "do not know what to do with %06o %s '%s'"
msgstr "не понÑтно, что делать Ñ %06o %s «%s»"
-#: merge-recursive.c:936
+#: merge-recursive.c:939
msgid "Failed to execute internal merge"
msgstr "Ðе удалоÑÑŒ запуÑтить внутреннее ÑлиÑние"
-#: merge-recursive.c:940
+#: merge-recursive.c:943
#, c-format
msgid "Unable to add %s to database"
msgstr "Ðе удалоÑÑŒ добавить %s в базу данных"
-#: merge-recursive.c:956
+#: merge-recursive.c:959
msgid "unsupported object type in the tree"
msgstr "объект неподдерживаемого типа в дереве"
-#: merge-recursive.c:1031 merge-recursive.c:1045
+#: merge-recursive.c:1034 merge-recursive.c:1048
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
"in tree."
msgstr "КОÐФЛИКТ (%s/удаление): %s удалено в %s и %s в %s. ВерÑÐ¸Ñ %s из %s оÑтавлена в дереве."
-#: merge-recursive.c:1037 merge-recursive.c:1050
+#: merge-recursive.c:1040 merge-recursive.c:1053
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
"in tree at %s."
msgstr "КОÐФЛИКТ (%s/удаление): %s удалено в %s и %s в %s. ВерÑÐ¸Ñ %s из %s оÑтавлена в дереве на %s."
-#: merge-recursive.c:1091
+#: merge-recursive.c:1094
msgid "rename"
msgstr "переименование"
-#: merge-recursive.c:1091
+#: merge-recursive.c:1094
msgid "renamed"
msgstr "переименовано"
-#: merge-recursive.c:1147
+#: merge-recursive.c:1150
#, c-format
msgid "%s is a directory in %s adding as %s instead"
msgstr "%s — Ñто каталог в %s, добавлÑем как %s вмеÑто Ñтого"
-#: merge-recursive.c:1169
+#: merge-recursive.c:1172
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename "
"\"%s\"->\"%s\" in \"%s\"%s"
msgstr "КОÐФЛИКТ (переименование/переименование): Переименование «%s»→«%s» в ветке «%s» и переименование «%s»→«%s» в ветке «%s»%s"
-#: merge-recursive.c:1174
+#: merge-recursive.c:1177
msgid " (left unresolved)"
msgstr " (оÑтавлено неразрешенным)"
-#: merge-recursive.c:1228
+#: merge-recursive.c:1231
#, 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:1258
+#: merge-recursive.c:1261
#, c-format
msgid "Renaming %s to %s and %s to %s instead"
msgstr "Переименовываю %s в %s и %s в %s вмеÑто Ñтого"
-#: merge-recursive.c:1457
+#: merge-recursive.c:1460
#, c-format
msgid "CONFLICT (rename/add): Rename %s->%s in %s. %s added in %s"
msgstr "КОÐФЛИКТ (переименование/добавление): Переименование «%s»→«%s» в ветке «%s» и добавление «%s» в ветке «%s»"
-#: merge-recursive.c:1467
+#: merge-recursive.c:1470
#, c-format
msgid "Adding merged %s"
msgstr "Добавление Ñлитого %s"
-#: merge-recursive.c:1472 merge-recursive.c:1674
+#: merge-recursive.c:1475 merge-recursive.c:1677
#, c-format
msgid "Adding as %s instead"
msgstr "Добавление вмеÑто Ñтого как %s"
-#: merge-recursive.c:1523
+#: merge-recursive.c:1526
#, c-format
msgid "cannot read object %s"
msgstr "невозможно прочитать объект «%s»"
-#: merge-recursive.c:1526
+#: merge-recursive.c:1529
#, c-format
msgid "object %s is not a blob"
msgstr "объект %s не ÑвлÑетÑÑ Ð´Ð²Ð¾Ð¸Ñ‡Ð½Ñ‹Ð¼ объектом"
-#: merge-recursive.c:1578
+#: merge-recursive.c:1581
msgid "modify"
msgstr "изменение"
-#: merge-recursive.c:1578
+#: merge-recursive.c:1581
msgid "modified"
msgstr "изменено"
-#: merge-recursive.c:1588
+#: merge-recursive.c:1591
msgid "content"
msgstr "Ñодержимое"
-#: merge-recursive.c:1595
+#: merge-recursive.c:1598
msgid "add/add"
msgstr "добавление/добавление"
-#: merge-recursive.c:1629
+#: merge-recursive.c:1632
#, c-format
msgid "Skipped %s (merged same as existing)"
msgstr "ПропуÑк %s (Ñлиты одинаковые Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÐºÐ°Ðº ÑущеÑтвующие)"
-#: merge-recursive.c:1643
+#: merge-recursive.c:1646
#, c-format
msgid "Auto-merging %s"
msgstr "ÐвтоÑлиÑние %s"
-#: merge-recursive.c:1647 git-submodule.sh:1025
+#: merge-recursive.c:1650 git-submodule.sh:1048
msgid "submodule"
msgstr "подмодуль"
-#: merge-recursive.c:1648
+#: merge-recursive.c:1651
#, c-format
msgid "CONFLICT (%s): Merge conflict in %s"
msgstr "КОÐФЛИКТ (%s): Конфликт ÑлиÑÐ½Ð¸Ñ Ð² %s"
-#: merge-recursive.c:1734
+#: merge-recursive.c:1737
#, c-format
msgid "Removing %s"
msgstr "Удаление %s"
-#: merge-recursive.c:1759
+#: merge-recursive.c:1762
msgid "file/directory"
msgstr "файл/каталог"
-#: merge-recursive.c:1765
+#: merge-recursive.c:1768
msgid "directory/file"
msgstr "каталог/файл"
-#: merge-recursive.c:1770
+#: merge-recursive.c:1773
#, 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:1780
+#: merge-recursive.c:1783
#, c-format
msgid "Adding %s"
msgstr "Добавление %s"
-#: merge-recursive.c:1797
+#: merge-recursive.c:1800
msgid "Fatal merge failure, shouldn't happen."
msgstr "КритичеÑÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° ÑлиÑниÑ, такого не должно ÑлучатьÑÑ."
-#: merge-recursive.c:1816
+#: merge-recursive.c:1819
msgid "Already up-to-date!"
msgstr "Уже обновлено!"
-#: merge-recursive.c:1825
+#: merge-recursive.c:1828
#, c-format
msgid "merging of trees %s and %s failed"
msgstr "Ñбой ÑлиÑÐ½Ð¸Ñ Ð´ÐµÑ€ÐµÐ²ÑŒÐµÐ² «%s» и «%s»"
-#: merge-recursive.c:1855
+#: merge-recursive.c:1858
#, c-format
msgid "Unprocessed path??? %s"
msgstr "Ðеобработанный путь??? %s"
-#: merge-recursive.c:1903
+#: merge-recursive.c:1906
msgid "Merging:"
msgstr "СлиÑние:"
-#: merge-recursive.c:1916
+#: merge-recursive.c:1919
#, c-format
msgid "found %u common ancestor:"
msgid_plural "found %u common ancestors:"
@@ -901,16 +919,16 @@ msgstr[1] "найдено %u общих предка:"
msgstr[2] "найдено %u общих предков:"
msgstr[3] "найдено %u общих предков:"
-#: merge-recursive.c:1953
+#: merge-recursive.c:1956
msgid "merge returned no commit"
msgstr "ÑлиÑние не вернуло коммит"
-#: merge-recursive.c:2010
+#: merge-recursive.c:2013
#, c-format
msgid "Could not parse object '%s'"
msgstr "Ðе удалоÑÑŒ разобрать объект «%s»"
-#: merge-recursive.c:2021 builtin/merge.c:645
+#: merge-recursive.c:2024 builtin/merge.c:646
msgid "Unable to write index."
msgstr "Ðе удаетÑÑ Ð·Ð°Ð¿Ð¸Ñать индекÑ."
@@ -968,7 +986,7 @@ msgstr "-КОЛИЧЕСТВО"
#: parse-options-cb.c:108
#, c-format
msgid "malformed object name '%s'"
-msgstr "Поврежденное Ð¸Ð¼Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð° «%s»"
+msgstr "Ðеправильное Ð¸Ð¼Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð° «%s»"
#: path.c:752
#, c-format
@@ -1024,12 +1042,12 @@ msgstr "Ð¡Ð¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð¿ÑƒÑ‚Ð¸ «%s» в подмодуле «%.*s»"
msgid "%s: pathspec magic not supported by this command: %s"
msgstr "%s: магичеÑкие Ñлова в Ñпецификации пути не поддерживаютÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹: %s"
-#: pathspec.c:432
+#: pathspec.c:433
#, c-format
msgid "pathspec '%s' is beyond a symbolic link"
msgstr "ÑÐ¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð¿ÑƒÑ‚Ð¸ «%s» находитÑÑ Ð·Ð° ÑимволичеÑкой ÑÑылкой"
-#: pathspec.c:441
+#: pathspec.c:442
msgid ""
"There is nothing to exclude from by :(exclude) patterns.\n"
"Perhaps you forgot to add either ':/' or '.' ?"
@@ -1057,152 +1075,237 @@ msgid ""
"Using version %i"
msgstr "GIT_INDEX_VERSION указан, но значение недейÑтвительное.\nИÑпользую верÑию %i"
-#: refs.c:543 builtin/merge.c:760 builtin/merge.c:871 builtin/merge.c:973
-#: builtin/merge.c:983
+#: refs.c:543 builtin/merge.c:761 builtin/merge.c:872 builtin/merge.c:974
+#: builtin/merge.c:984
#, c-format
msgid "Could not open '%s' for writing"
msgstr "Ðе удалоÑÑŒ открыть «%s» Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи"
-#: refs/files-backend.c:2359
+#: refs/files-backend.c:2374
#, c-format
msgid "could not delete reference %s: %s"
msgstr "не удалоÑÑŒ удалить ÑÑылку %s: %s"
-#: refs/files-backend.c:2362
+#: refs/files-backend.c:2377
#, c-format
msgid "could not delete references: %s"
msgstr "не удалоÑÑŒ удалить ÑÑылки: %s"
-#: refs/files-backend.c:2371
+#: refs/files-backend.c:2386
#, c-format
msgid "could not remove reference %s"
msgstr "не удалоÑÑŒ удалить ÑÑылки %s"
-#: ref-filter.c:245
+#: ref-filter.c:55
#, c-format
-msgid "format: %%(end) atom used without corresponding atom"
-msgstr "формат: чаÑтица %%(end) иÑпользована без ÑоответÑтвующей чаÑтицы"
+msgid "expected format: %%(color:<color>)"
+msgstr "ожидаемый формат: %%(color:<color>)"
-#: ref-filter.c:704
+#: ref-filter.c:57
+#, c-format
+msgid "unrecognized color: %%(color:%s)"
+msgstr "неопознанный цвет: %%(color:%s)"
+
+#: ref-filter.c:71
+#, c-format
+msgid "unrecognized format: %%(%s)"
+msgstr "неопознанный формат: %%(%s)"
+
+#: ref-filter.c:77
+#, c-format
+msgid "%%(body) does not take arguments"
+msgstr "%%(body) не принимает аргументов"
+
+#: ref-filter.c:84
+#, c-format
+msgid "%%(subject) does not take arguments"
+msgstr "%%(subject) не принимает аргументов"
+
+#: ref-filter.c:101
#, c-format
msgid "positive value expected contents:lines=%s"
msgstr "положительное значение ожидает Ñодержимое:lines=%s"
-#: ref-filter.c:833
+#: ref-filter.c:103
#, c-format
-msgid "expected format: %%(color:<color>)"
-msgstr "ожидаемый формат: %%(color:<color>)"
+msgid "unrecognized %%(contents) argument: %s"
+msgstr "неопознанный аргумент %%(contents): %s"
-#: ref-filter.c:835
-msgid "unable to parse format"
-msgstr "не удалоÑÑŒ разобрать формат"
+#: ref-filter.c:113
+#, c-format
+msgid "unrecognized %%(objectname) argument: %s"
+msgstr "неопознанный аргумент %%(objectname): %s"
-#: ref-filter.c:870
+#: ref-filter.c:135
#, c-format
msgid "expected format: %%(align:<width>,<position>)"
msgstr "ожидаемый формат: %%(align:<width>,<position>)"
-#: ref-filter.c:893
+#: ref-filter.c:147
+#, c-format
+msgid "unrecognized position:%s"
+msgstr "Ð½ÐµÐ¾Ð¿Ð¾Ð·Ð½Ð°Ð½Ð½Ð°Ñ Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ñ:%s"
+
+#: ref-filter.c:151
+#, c-format
+msgid "unrecognized width:%s"
+msgstr "Ð½ÐµÐ¾Ð¿Ð¾Ð·Ð½Ð°Ð½Ð½Ð°Ñ ÑˆÐ¸Ñ€Ð¸Ð½Ð°:%s"
+
+#: ref-filter.c:157
#, c-format
-msgid "improper format entered align:%s"
-msgstr "указан неверный формат align:%s"
+msgid "unrecognized %%(align) argument: %s"
+msgstr "неопознанный аргумент %%(align): %s"
-#: ref-filter.c:898
+#: ref-filter.c:161
#, c-format
msgid "positive width expected with the %%(align) atom"
msgstr "ожидаетÑÑ Ð¿Ð¾Ð»Ð¾Ð¶Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ ÑˆÐ¸Ñ€Ð¸Ð½Ð° Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸ÐµÐ¼ чаÑтицы %%(align)"
-#: ref-filter.c:1219
+#: ref-filter.c:244
+#, c-format
+msgid "malformed field name: %.*s"
+msgstr "неправильное Ð¸Ð¼Ñ Ð¿Ð¾Ð»Ñ: %.*s"
+
+#: ref-filter.c:270
+#, c-format
+msgid "unknown field name: %.*s"
+msgstr "неизвеÑтное Ð¸Ð¼Ñ Ð¿Ð¾Ð»Ñ: %.*s"
+
+#: ref-filter.c:372
+#, c-format
+msgid "format: %%(end) atom used without corresponding atom"
+msgstr "формат: чаÑтица %%(end) иÑпользована без ÑоответÑтвующей чаÑтицы"
+
+#: ref-filter.c:424
+#, c-format
+msgid "malformed format string %s"
+msgstr "Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ñтрока формата %s"
+
+#: ref-filter.c:878
+msgid ":strip= requires a positive integer argument"
+msgstr ":strip= требует Ð½Ð°Ð»Ð¸Ñ‡Ð¸Ñ Ð¿Ð¾Ð»Ð¾Ð¶Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð³Ð¾ целого аргумента"
+
+#: ref-filter.c:883
+#, c-format
+msgid "ref '%s' does not have %ld components to :strip"
+msgstr "ÑÑылка «%s» не Ñодержит %ld компонент Ð´Ð»Ñ :strip"
+
+#: ref-filter.c:1046
+#, c-format
+msgid "unknown %.*s format %s"
+msgstr "неизвеÑтный %.*s формат %s"
+
+#: ref-filter.c:1066 ref-filter.c:1097
+#, c-format
+msgid "missing object %s for %s"
+msgstr "не найден объект %s Ð´Ð»Ñ %s"
+
+#: ref-filter.c:1069 ref-filter.c:1100
+#, c-format
+msgid "parse_object_buffer failed on %s for %s"
+msgstr "Ñбой при выполнении parse_object_buffer на %s Ð´Ð»Ñ %s"
+
+#: ref-filter.c:1311
#, c-format
msgid "malformed object at '%s'"
-msgstr "Поврежденный объект «%s»"
+msgstr "Повреждённый объект «%s»"
+
+#: ref-filter.c:1373
+#, c-format
+msgid "ignoring ref with broken name %s"
+msgstr "игнорирую ÑÑылку Ñ Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ñ‹Ð¼ именем %s"
-#: ref-filter.c:1561
+#: ref-filter.c:1378
+#, c-format
+msgid "ignoring broken ref %s"
+msgstr "игнорирую неправильную ÑÑылку %s"
+
+#: ref-filter.c:1651
#, c-format
msgid "format: %%(end) atom missing"
msgstr "format: пропущена чаÑтица %%(end)"
-#: ref-filter.c:1615
+#: ref-filter.c:1705
#, c-format
msgid "malformed object name %s"
-msgstr "плохое Ð¸Ð¼Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð° %s"
+msgstr "неправильное Ð¸Ð¼Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð° %s"
-#: remote.c:756
+#: remote.c:745
#, c-format
msgid "Cannot fetch both %s and %s to %s"
msgstr "ÐÐµÐ»ÑŒÐ·Ñ Ð¸Ð·Ð²Ð»ÐµÑ‡ÑŒ одновременно %s и %s в %s"
-#: remote.c:760
+#: remote.c:749
#, c-format
msgid "%s usually tracks %s, not %s"
msgstr "%s обычно отÑлеживает %s, а не %s"
-#: remote.c:764
+#: remote.c:753
#, c-format
msgid "%s tracks both %s and %s"
msgstr "%s отÑлеживает и %s и %s"
-#: remote.c:772
+#: remote.c:761
msgid "Internal error"
msgstr "ВнутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°"
-#: remote.c:1687 remote.c:1730
+#: remote.c:1677 remote.c:1720
msgid "HEAD does not point to a branch"
msgstr "HEAD не указывает на ветку"
-#: remote.c:1696
+#: remote.c:1686
#, c-format
msgid "no such branch: '%s'"
msgstr "нет такой ветки: «%s»"
-#: remote.c:1699
+#: remote.c:1689
#, c-format
msgid "no upstream configured for branch '%s'"
msgstr "вышеÑтоÑÑ‰Ð°Ñ Ð²ÐµÑ‚ÐºÐ° не наÑтроена Ð´Ð»Ñ Ð²ÐµÑ‚ÐºÐ¸ «%s»"
-#: remote.c:1705
+#: remote.c:1695
#, c-format
msgid "upstream branch '%s' not stored as a remote-tracking branch"
msgstr "вышеÑтоÑÑ‰Ð°Ñ Ð²ÐµÑ‚ÐºÐ° «%s» не Ñохранена как отÑÐ»ÐµÐ¶Ð¸Ð²Ð°ÐµÐ¼Ð°Ñ Ð²ÐµÑ‚ÐºÐ°"
-#: remote.c:1720
+#: remote.c:1710
#, c-format
msgid "push destination '%s' on remote '%s' has no local tracking branch"
msgstr "назначение Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ «%s» на внешнем Ñервере «%s» не имеет локальной отÑлеживаемой ветки"
-#: remote.c:1735
+#: remote.c:1725
#, c-format
msgid "branch '%s' has no remote for pushing"
msgstr "ветка «%s» не имеет внешнего Ñервера Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸"
-#: remote.c:1746
+#: remote.c:1736
#, c-format
msgid "push refspecs for '%s' do not include '%s'"
msgstr "Ñпецификации пути Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ «%s» не включают в ÑÐµÐ±Ñ Â«%s»"
-#: remote.c:1759
+#: remote.c:1749
msgid "push has no destination (push.default is 'nothing')"
msgstr "отправка не имеет точки Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ (push.default выÑтавлен в «nothing»)"
-#: remote.c:1781
+#: remote.c:1771
msgid "cannot resolve 'simple' push to a single destination"
msgstr "не удалоÑÑŒ выполнить «simple» отправку в единÑтвенную точку назначениÑ"
-#: remote.c:2083
+#: remote.c:2073
#, c-format
msgid "Your branch is based on '%s', but the upstream is gone.\n"
msgstr "Ваша ветка базируетÑÑ Ð½Ð° «%s», но вышеÑтоÑщий репозиторий иÑчез.\n"
-#: remote.c:2087
+#: remote.c:2077
msgid " (use \"git branch --unset-upstream\" to fixup)\n"
msgstr "(Ð´Ð»Ñ Ð¸ÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿ÑƒÑтите «git branch --unset-upstream»)\n"
-#: remote.c:2090
+#: remote.c:2080
#, c-format
msgid "Your branch is up-to-date with '%s'.\n"
msgstr "Ваша ветка обновлена в ÑоответÑтвии Ñ Â«%s».\n"
-#: remote.c:2094
+#: remote.c:2084
#, 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"
@@ -1211,11 +1314,11 @@ msgstr[1] "Ваша ветка опережает «%s» на %d коммита.
msgstr[2] "Ваша ветка опережает «%s» на %d коммитов.\n"
msgstr[3] "Ваша ветка опережает «%s» на %d коммитов.\n"
-#: remote.c:2100
+#: remote.c:2090
msgid " (use \"git push\" to publish your local commits)\n"
msgstr " (иÑпользуйте «git push», чтобы опубликовать ваши локальные коммиты)\n"
-#: remote.c:2103
+#: remote.c:2093
#, c-format
msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
msgid_plural ""
@@ -1225,11 +1328,11 @@ msgstr[1] "Ваша ветка отÑтает от «%s» на %d коммита
msgstr[2] "Ваша ветка отÑтает от «%s» на %d коммитов и может быть перемотана вперед.\n"
msgstr[3] "Ваша ветка отÑтает от «%s» на %d коммитов и может быть перемотана вперед.\n"
-#: remote.c:2111
+#: remote.c:2101
msgid " (use \"git pull\" to update your local branch)\n"
msgstr " (иÑпользуйте «git pull», чтобы обновить вашу локальную ветку)\n"
-#: remote.c:2114
+#: remote.c:2104
#, c-format
msgid ""
"Your branch and '%s' have diverged,\n"
@@ -1237,33 +1340,33 @@ msgid ""
msgid_plural ""
"Your branch and '%s' have diverged,\n"
"and have %d and %d different commits each, respectively.\n"
-msgstr[0] "Ваша ветка и «%s» разошлиÑÑŒ\nи теперь имеют %d и %d разный коммит в каждой ÑоответÑтвенно.\n"
-msgstr[1] "Ваша ветка и «%s» разошлиÑÑŒ\nи теперь имеют %d и %d разных коммита в каждой ÑоответÑтвенно.\n"
-msgstr[2] "Ваша ветка и «%s» разошлиÑÑŒ\nи теперь имеют %d и %d разных коммитов в каждой ÑоответÑтвенно.\n"
-msgstr[3] "Ваша ветка и «%s» разошлиÑÑŒ\nи теперь имеют %d и %d разных коммитов в каждой ÑоответÑтвенно.\n"
+msgstr[0] "Ваша ветка и «%s» разделилиÑÑŒ\nи теперь имеют %d и %d разный коммит в каждой ÑоответÑтвенно.\n"
+msgstr[1] "Ваша ветка и «%s» разделилиÑÑŒ\nи теперь имеют %d и %d разных коммита в каждой ÑоответÑтвенно.\n"
+msgstr[2] "Ваша ветка и «%s» разделилиÑÑŒ\nи теперь имеют %d и %d разных коммитов в каждой ÑоответÑтвенно.\n"
+msgstr[3] "Ваша ветка и «%s» разделилиÑÑŒ\nи теперь имеют %d и %d разных коммитов в каждой ÑоответÑтвенно.\n"
-#: remote.c:2124
+#: remote.c:2114
msgid " (use \"git pull\" to merge the remote branch into yours)\n"
msgstr " (иÑпользуйте «git pull», чтобы Ñлить внешнюю ветку в вашу)\n"
-#: revision.c:2193
+#: revision.c:2131
msgid "your current branch appears to be broken"
msgstr "похоже, ваша Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ Ð²ÐµÑ‚ÐºÐ° повреждена"
-#: revision.c:2196
+#: revision.c:2134
#, c-format
msgid "your current branch '%s' does not have any commits yet"
msgstr "ваша Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ Ð²ÐµÑ‚ÐºÐ° «%s» еще не Ñодержит ни одного коммита"
-#: revision.c:2390
+#: revision.c:2328
msgid "--first-parent is incompatible with --bisect"
msgstr "опцию --first-parent Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать одновременно Ñ --bisect"
-#: run-command.c:90
+#: run-command.c:92
msgid "open /dev/null failed"
msgstr "Ñбой Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ /dev/null"
-#: run-command.c:92
+#: run-command.c:94
#, c-format
msgid "dup2(%d,%d) failed"
msgstr "dup2(%d,%d) Ñбой"
@@ -1286,242 +1389,256 @@ msgstr "не отправлÑем Ñертификат Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸,
msgid "the receiving end does not support --atomic push"
msgstr "Ð¿Ñ€Ð¸Ð½Ð¸Ð¼Ð°ÑŽÑ‰Ð°Ñ Ñторона не поддерживает отправку Ñ Ð¾Ð¿Ñ†Ð¸ÐµÐ¹ --atomic"
-#: sequencer.c:183
+#: sequencer.c:174
msgid ""
"after resolving the conflicts, mark the corrected paths\n"
"with 'git add <paths>' or 'git rm <paths>'"
msgstr "поÑле Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ ÐºÐ¾Ð½Ñ„Ð»Ð¸ÐºÑ‚Ð¾Ð², пометьте иÑправленные пути\nÑ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ «git add <пути>» или «git rm <пути>»"
-#: sequencer.c:186
+#: sequencer.c:177
msgid ""
"after resolving the conflicts, mark the corrected paths\n"
"with 'git add <paths>' or 'git rm <paths>'\n"
"and commit the result with 'git commit'"
msgstr "поÑле Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ ÐºÐ¾Ð½Ñ„Ð»Ð¸ÐºÑ‚Ð¾Ð², пометьте иÑправленные пути\nÑ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ «git add <пути>» или «git rm <пути>»\nи Ñделайте коммит Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ «git commit»"
-#: sequencer.c:199 sequencer.c:842 sequencer.c:922
+#: sequencer.c:190 sequencer.c:833 sequencer.c:913
#, c-format
msgid "Could not write to %s"
msgstr "Ðе удалоÑÑŒ запиÑать в %s"
-#: sequencer.c:202
+#: sequencer.c:193
#, c-format
msgid "Error wrapping up %s"
msgstr "Ошибка Ð¾Ð±Ð¾Ñ€Ð°Ñ‡Ð¸Ð²Ð°Ð½Ð¸Ñ %s"
-#: sequencer.c:217
+#: sequencer.c:208
msgid "Your local changes would be overwritten by cherry-pick."
msgstr "Ваши локальные изменение будут перезапиÑаны отбором лучшего."
-#: sequencer.c:219
+#: sequencer.c:210
msgid "Your local changes would be overwritten by revert."
msgstr "Ваши локальные изменение будут перезапиÑаны возвратом коммита."
-#: sequencer.c:222
+#: sequencer.c:213
msgid "Commit your changes or stash them to proceed."
msgstr "Сделайте коммит или ÑпрÑчьте ваши Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ."
#. TRANSLATORS: %s will be "revert" or "cherry-pick"
-#: sequencer.c:309
+#: sequencer.c:300
#, c-format
msgid "%s: Unable to write new index file"
msgstr "%s: Ðе удалоÑÑŒ запиÑать файл индекÑа"
-#: sequencer.c:327
+#: sequencer.c:318
msgid "Could not resolve HEAD commit\n"
msgstr "Ðе удалоÑÑŒ определить HEAD коммит\n"
-#: sequencer.c:347
+#: sequencer.c:338
msgid "Unable to update cache tree\n"
msgstr "Ðе удалоÑÑŒ обновить дерево кÑша\n"
-#: sequencer.c:399
+#: sequencer.c:390
#, c-format
msgid "Could not parse commit %s\n"
msgstr "Ðе удалоÑÑŒ разобрать коммит %s\n"
-#: sequencer.c:404
+#: sequencer.c:395
#, c-format
msgid "Could not parse parent commit %s\n"
msgstr "Ðе удалоÑÑŒ разобрать родительÑкую коммит %s\n"
-#: sequencer.c:469
+#: sequencer.c:460
msgid "Your index file is unmerged."
msgstr "Ваш файл индекÑа не Ñлит."
-#: sequencer.c:488
+#: sequencer.c:479
#, c-format
msgid "Commit %s is a merge but no -m option was given."
msgstr "Коммит %s — Ñто коммит-ÑлиÑние, но Ð¾Ð¿Ñ†Ð¸Ñ -m не указана."
-#: sequencer.c:496
+#: sequencer.c:487
#, c-format
msgid "Commit %s does not have parent %d"
msgstr "У коммита %s нет предка %d"
-#: sequencer.c:500
+#: sequencer.c:491
#, c-format
msgid "Mainline was specified but commit %s is not a merge."
msgstr "ОÑÐ½Ð¾Ð²Ð½Ð°Ñ Ð²ÐµÑ‚ÐºÐ° указана, но коммит %s не ÑвлÑетÑÑ ÑлиÑнием."
#. TRANSLATORS: The first %s will be "revert" or
#. "cherry-pick", the second %s a SHA1
-#: sequencer.c:513
+#: sequencer.c:504
#, c-format
msgid "%s: cannot parse parent commit %s"
msgstr "%s: не удалоÑÑŒ разобрать родительÑкий коммит Ð´Ð»Ñ %s"
-#: sequencer.c:517
+#: sequencer.c:508
#, c-format
msgid "Cannot get commit message for %s"
msgstr "Ðе удалоÑÑŒ получить Ñообщение коммита Ð´Ð»Ñ %s"
-#: sequencer.c:603
+#: sequencer.c:594
#, c-format
msgid "could not revert %s... %s"
msgstr "не удалоÑÑŒ возвратить коммит %s… %s"
-#: sequencer.c:604
+#: sequencer.c:595
#, c-format
msgid "could not apply %s... %s"
msgstr "не удалоÑÑŒ применить коммит %s… %s"
-#: sequencer.c:639
+#: sequencer.c:630
msgid "empty commit set passed"
msgstr "передан пуÑтой набор коммитов"
-#: sequencer.c:647
+#: sequencer.c:638
#, c-format
msgid "git %s: failed to read the index"
msgstr "git %s: Ñбой Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑа"
-#: sequencer.c:651
+#: sequencer.c:642
#, c-format
msgid "git %s: failed to refresh the index"
msgstr "git %s: Ñбой Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑа"
-#: sequencer.c:711
+#: sequencer.c:702
#, c-format
msgid "Cannot %s during a %s"
msgstr "Ðе удалоÑÑŒ %s во Ð²Ñ€ÐµÐ¼Ñ %s"
-#: sequencer.c:733
+#: sequencer.c:724
#, c-format
msgid "Could not parse line %d."
msgstr "Ðе удалоÑÑŒ разобрать Ñтроку %d."
-#: sequencer.c:738
+#: sequencer.c:729
msgid "No commits parsed."
msgstr "Коммиты не разобраны."
-#: sequencer.c:750
+#: sequencer.c:741
#, c-format
msgid "Could not open %s"
msgstr "Ðе удалоÑÑŒ открыть %s"
-#: sequencer.c:754
+#: sequencer.c:745
#, c-format
msgid "Could not read %s."
msgstr "Ðе удалоÑÑŒ прочитать %s."
-#: sequencer.c:761
+#: sequencer.c:752
#, c-format
msgid "Unusable instruction sheet: %s"
msgstr "ÐÐµÐ¿Ñ€Ð¸Ð³Ð¾Ð´Ð½Ð°Ñ Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ°Ñ€Ñ‚Ð° Ñ Ð¸Ð½ÑтрукциÑми: %s"
-#: sequencer.c:791
+#: sequencer.c:782
#, c-format
msgid "Invalid key: %s"
msgstr "ÐедейÑтвительный ключ: %s"
-#: sequencer.c:794 builtin/pull.c:47 builtin/pull.c:49
+#: sequencer.c:785 builtin/pull.c:50 builtin/pull.c:52
#, c-format
msgid "Invalid value for %s: %s"
msgstr "Ðеправильное значение %s: %s"
-#: sequencer.c:804
+#: sequencer.c:795
#, c-format
msgid "Malformed options sheet: %s"
-msgstr "ИÑÐ¿Ð¾Ñ€Ñ‡ÐµÐ½Ð½Ð°Ñ ÐºÐ°Ñ€Ñ‚Ð° Ñ Ð¾Ð¿Ñ†Ð¸Ñми: %s"
+msgstr "ÐŸÐ¾Ð²Ñ€ÐµÐ¶Ð´Ñ‘Ð½Ð½Ð°Ñ ÐºÐ°Ñ€Ñ‚Ð° Ñ Ð¾Ð¿Ñ†Ð¸Ñми: %s"
-#: sequencer.c:823
+#: sequencer.c:814
msgid "a cherry-pick or revert is already in progress"
msgstr "отбор лучшего или возврат коммита уже выполнÑетÑÑ"
-#: sequencer.c:824
+#: sequencer.c:815
msgid "try \"git cherry-pick (--continue | --quit | --abort)\""
msgstr "попробуйте «git cherry-pick (--continue | --quit | --abort)»"
-#: sequencer.c:828
+#: sequencer.c:819
#, c-format
msgid "Could not create sequencer directory %s"
msgstr "Ðе удалоÑÑŒ Ñоздать каталог Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ ÑÐ»ÐµÐ´Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¼Ð¼Ð¸Ñ‚Ð¾Ð² %s"
-#: sequencer.c:844 sequencer.c:926
+#: sequencer.c:835 sequencer.c:917
#, c-format
msgid "Error wrapping up %s."
msgstr "Ошибка Ð¾Ð±Ð¾Ñ€Ð°Ñ‡Ð¸Ð²Ð°Ð½Ð¸Ñ %s."
-#: sequencer.c:863 sequencer.c:996
+#: sequencer.c:854 sequencer.c:987
msgid "no cherry-pick or revert in progress"
msgstr "отбор лучшего или возврат коммита не выполнÑетÑÑ"
-#: sequencer.c:865
+#: sequencer.c:856
msgid "cannot resolve HEAD"
msgstr "не удалоÑÑŒ определить HEAD"
-#: sequencer.c:867
+#: sequencer.c:858
msgid "cannot abort from a branch yet to be born"
msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¾Ñ‚Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ Ð²ÐµÑ‚ÐºÐ¸, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ ÐµÑ‰Ðµ не Ñоздана"
-#: sequencer.c:887 builtin/apply.c:4287
+#: sequencer.c:878 builtin/apply.c:4287
#, c-format
msgid "cannot open %s: %s"
msgstr "не удалоÑÑŒ открыть %s: %s"
-#: sequencer.c:890
+#: sequencer.c:881
#, c-format
msgid "cannot read %s: %s"
msgstr "не удалоÑÑŒ прочитать %s: %s"
-#: sequencer.c:891
+#: sequencer.c:882
msgid "unexpected end of file"
msgstr "неожиданный конец файла"
-#: sequencer.c:897
+#: sequencer.c:888
#, c-format
msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
msgstr "Ñохраненный файл Ñ HEAD перед отбором лучшего «%s» поврежден"
-#: sequencer.c:919
+#: sequencer.c:910
#, c-format
msgid "Could not format %s."
msgstr "Ðе удалоÑÑŒ отформатировать %s."
-#: sequencer.c:1064
+#: sequencer.c:1055
#, c-format
msgid "%s: can't cherry-pick a %s"
msgstr "%s: не удалоÑÑŒ отобрать %s"
-#: sequencer.c:1067
+#: sequencer.c:1058
#, c-format
msgid "%s: bad revision"
msgstr "%s: Ð¿Ð»Ð¾Ñ…Ð°Ñ Ñ€ÐµÐ´Ð°ÐºÑ†Ð¸Ñ"
-#: sequencer.c:1101
+#: sequencer.c:1092
msgid "Can't revert as initial commit"
msgstr "ÐÐµÐ»ÑŒÐ·Ñ Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‚Ð¸Ñ‚ÑŒ изначальный коммит"
-#: sequencer.c:1102
+#: sequencer.c:1093
msgid "Can't cherry-pick into empty head"
-msgstr "ÐÐµÐ»ÑŒÐ·Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ñ‚ÑŒ лучшее в пуÑтой HEAD"
+msgstr "ÐÐµÐ»ÑŒÐ·Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ñ‚ÑŒ лучшее в пуÑтую ветку"
-#: setup.c:248
+#: setup.c:246
#, c-format
msgid "failed to read %s"
msgstr "не удалоÑÑŒ прочитать %s"
-#: sha1_name.c:463
+#: sha1_file.c:1080
+msgid "offset before end of packfile (broken .idx?)"
+msgstr "Ñдвиг до конца файла пакета (возможно, повреждён файл .idx?)"
+
+#: sha1_file.c:2459
+#, c-format
+msgid "offset before start of pack index for %s (corrupt index?)"
+msgstr "Ñдвиг до начала индекÑа пакета Ð´Ð»Ñ %s (повреждён индекÑ?)"
+
+#: sha1_file.c:2463
+#, c-format
+msgid "offset beyond end of pack index for %s (truncated index?)"
+msgstr "Ñдвиг за пределами индекÑа пакета Ð´Ð»Ñ %s (обрезан индекÑ?)"
+
+#: sha1_name.c:462
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"
@@ -1534,60 +1651,84 @@ msgid ""
"running \"git config advice.objectNameWarning false\""
msgstr "Обычно Git не Ñоздает ÑÑылки, оканчивающиеÑÑ Ð½Ð° 40 шеÑтнадцатеричных\nÑимволов, потому, что они будут игнорироватьÑÑ, когда вы проÑто\nукажете Ñто 40-Ñимвольное шеÑтнадцатеричное чиÑло. Такие ÑÑылки\nмогли быть Ñозданы по ошибке. Ðапример, Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ:\n\n git checkout -b $br $(git rev-parse …)\n\n, еÑли «$br» оказалÑÑ Ð¿ÑƒÑтым, то ÑÑылка Ñ 40-Ñимвольным\nшеÑтнадцатеричным чиÑлом будет Ñоздана. ПожалуйÑта, проÑмотрите Ñти\nÑÑылки и, возможно, удалите их. Ð’Ñ‹ можете отключить Ñто Ñообщение\nзапуÑтив «git config advice.objectNameWarning false»"
-#: submodule.c:61 submodule.c:95
+#: submodule.c:62 submodule.c:96
msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
msgstr "Ðе удалоÑÑŒ изменить не Ñлитый .gitmodules, Ñначала разрешите конфликты"
-#: submodule.c:65 submodule.c:99
+#: submodule.c:66 submodule.c:100
#, c-format
msgid "Could not find section in .gitmodules where path=%s"
msgstr "Ðе удалоÑÑŒ найти раздел в .gitmodules, где путь равен %s"
-#: submodule.c:73
+#: submodule.c:74
#, c-format
msgid "Could not update .gitmodules entry %s"
msgstr " Ðе удалоÑÑŒ обновить .gitmodules запиÑÑŒ %s"
-#: submodule.c:106
+#: submodule.c:107
#, c-format
msgid "Could not remove .gitmodules entry for %s"
msgstr "Ðе удалоÑÑŒ удалить запиÑÑŒ в .gitmodules Ð´Ð»Ñ %s"
-#: submodule.c:117
+#: submodule.c:118
msgid "staging updated .gitmodules failed"
msgstr "Ñбой индекÑÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ð¾Ð³Ð¾ .gitmodules"
-#: submodule.c:1040
+#: trailer.c:237
#, c-format
-msgid "Could not set core.worktree in %s"
-msgstr "Ðе удалоÑÑŒ уÑтановить core.worktree в %s"
+msgid "running trailer command '%s' failed"
+msgstr "Ñбой при запуÑке команды Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ñ‚ÐµÐ»Ñ Â«%s»"
-#: trailer.c:491 trailer.c:495 trailer.c:499 trailer.c:553 trailer.c:557
-#: trailer.c:561
+#: trailer.c:492 trailer.c:496 trailer.c:500 trailer.c:554 trailer.c:558
+#: trailer.c:562
#, c-format
msgid "unknown value '%s' for key '%s'"
msgstr "неизвеÑтное значение «%s» Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡Ð° «%s»"
-#: trailer.c:543 trailer.c:548 builtin/remote.c:296
+#: trailer.c:544 trailer.c:549 builtin/remote.c:289
#, c-format
msgid "more than one %s"
msgstr "больше одного %s"
-#: trailer.c:581
+#: trailer.c:582
#, c-format
msgid "empty trailer token in trailer '%.*s'"
msgstr "пуÑÑ‚Ð°Ñ Ð¿Ð¾ÑледнÑÑ Ð»ÐµÐºÑема в завершителе «%.*s»"
-#: trailer.c:701
+#: trailer.c:702
#, c-format
msgid "could not read input file '%s'"
msgstr "не удалоÑÑŒ прочитать входной файл «%s»"
-#: trailer.c:704
+#: trailer.c:705
msgid "could not read from stdin"
msgstr "не удалоÑÑŒ прочитать из Ñтандартного ввода"
-#: transport-helper.c:1025
+#: trailer.c:857 builtin/am.c:42
+#, c-format
+msgid "could not stat %s"
+msgstr "не удалоÑÑŒ выполнить stat Ð´Ð»Ñ %s"
+
+#: trailer.c:859
+#, c-format
+msgid "file %s is not a regular file"
+msgstr "файл %s не ÑвлÑетÑÑ Ð¾Ð±Ñ‹Ñ‡Ð½Ñ‹Ð¼ файлом"
+
+#: trailer.c:861
+#, c-format
+msgid "file %s is not writable by user"
+msgstr "файл %s не доÑтупен на запиÑÑŒ пользователю"
+
+#: trailer.c:873
+msgid "could not open temporary file"
+msgstr "не удалоÑÑŒ Ñоздать временный файл"
+
+#: trailer.c:912
+#, c-format
+msgid "could not rename temporary file to %s"
+msgstr "не удалоÑÑŒ переименовать временный файл в %s"
+
+#: transport-helper.c:1041
#, c-format
msgid "Could not read ref %s"
msgstr "Ðе удалоÑÑŒ прочитать ÑÑылку %s"
@@ -1625,47 +1766,47 @@ msgstr "неправильный номер порта"
msgid "invalid '..' path segment"
msgstr "Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ñ‡Ð°ÑÑ‚ÑŒ пути «..»"
-#: wrapper.c:219 wrapper.c:362
+#: wrapper.c:222 wrapper.c:381
#, c-format
msgid "could not open '%s' for reading and writing"
msgstr "не удалоÑÑŒ открыть «%s» Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð¸ запиÑи"
-#: wrapper.c:221 wrapper.c:364
+#: wrapper.c:224 wrapper.c:383
#, c-format
msgid "could not open '%s' for writing"
msgstr "не удалоÑÑŒ открыть «%s» Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи"
-#: wrapper.c:223 wrapper.c:366 builtin/am.c:338 builtin/commit.c:1691
-#: builtin/merge.c:1074 builtin/pull.c:380
+#: wrapper.c:226 wrapper.c:385 builtin/am.c:323 builtin/commit.c:1691
+#: builtin/merge.c:1075 builtin/pull.c:387
#, c-format
msgid "could not open '%s' for reading"
msgstr "не удалоÑÑŒ открыть «%s» Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ"
-#: wrapper.c:579
+#: wrapper.c:611
#, c-format
msgid "unable to access '%s': %s"
msgstr "«%s» недоÑтупно: %s"
-#: wrapper.c:600
+#: wrapper.c:632
#, c-format
msgid "unable to access '%s'"
msgstr "«%s» недоÑтупно"
-#: wrapper.c:608
+#: wrapper.c:640
msgid "unable to get current working directory"
msgstr "не удалоÑÑŒ получить текущий рабочий каталог"
-#: wrapper.c:635
+#: wrapper.c:667
#, c-format
msgid "could not open %s for writing"
msgstr "не удалоÑÑŒ открыть «%s» Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи"
-#: wrapper.c:646 builtin/am.c:425
+#: wrapper.c:678 builtin/am.c:410
#, c-format
msgid "could not write to %s"
msgstr "не удалоÑÑŒ запиÑать в %s"
-#: wrapper.c:652
+#: wrapper.c:684
#, c-format
msgid "could not close %s"
msgstr "не удалоÑÑŒ закрыть %s"
@@ -1866,8 +2007,8 @@ msgstr "Команды не выполнены."
#, c-format
msgid "Last command done (%d command done):"
msgid_plural "Last commands done (%d commands done):"
-msgstr[0] "ПоÑледнÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° выполнена (%d команд выполнено):"
-msgstr[1] "ПоÑледнÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° выполнена (%d команд выполнено):"
+msgstr[0] "ПоÑледнÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° выполнена (%d команда выполнена):"
+msgstr[1] "ПоÑледнÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° выполнена (%d команды выполнено):"
msgstr[2] "ПоÑледнÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° выполнена (%d команд выполнено):"
msgstr[3] "ПоÑледнÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° выполнена (%d команд выполнено):"
@@ -2010,11 +2151,11 @@ msgstr "перемещение в процеÑÑе; над "
#: wt-status.c:1451
msgid "HEAD detached at "
-msgstr "HEAD отделен на "
+msgstr "HEAD отделён на "
#: wt-status.c:1453
msgid "HEAD detached from "
-msgstr "HEAD отделен Ð½Ð°Ñ‡Ð¸Ð½Ð°Ñ Ñ "
+msgstr "HEAD отделён Ð½Ð°Ñ‡Ð¸Ð½Ð°Ñ Ñ "
#: wt-status.c:1456
msgid "Not currently on any branch."
@@ -2111,7 +2252,7 @@ msgstr "иÑчез"
msgid "behind "
msgstr "позади"
-#: compat/precompose_utf8.c:56 builtin/clone.c:408
+#: compat/precompose_utf8.c:57 builtin/clone.c:413
#, c-format
msgid "failed to unlink '%s'"
msgstr "Ñбой отÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Â«%s»"
@@ -2138,7 +2279,7 @@ msgstr "удалить «%s»\n"
msgid "Unstaged changes after refreshing the index:"
msgstr "ÐепроиндекÑированные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñле Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑа:"
-#: builtin/add.c:194 builtin/rev-parse.c:796
+#: builtin/add.c:194 builtin/rev-parse.c:797
msgid "Could not read the index"
msgstr "Ðе удалоÑÑŒ прочитать индекÑ"
@@ -2173,15 +2314,15 @@ msgstr "Ðе удалоÑÑŒ применить «%s»"
msgid "The following paths are ignored by one of your .gitignore files:\n"
msgstr "Следующие пути игнорируютÑÑ Ð¾Ð´Ð½Ð¸Ð¼ из ваших файлов .gitignore:\n"
-#: builtin/add.c:249 builtin/clean.c:894 builtin/fetch.c:108 builtin/mv.c:110
-#: builtin/prune-packed.c:55 builtin/pull.c:182 builtin/push.c:543
-#: builtin/remote.c:1345 builtin/rm.c:268 builtin/send-pack.c:162
+#: builtin/add.c:249 builtin/clean.c:870 builtin/fetch.c:112 builtin/mv.c:111
+#: builtin/prune-packed.c:55 builtin/pull.c:189 builtin/push.c:511
+#: builtin/remote.c:1330 builtin/rm.c:268 builtin/send-pack.c:162
msgid "dry run"
msgstr "пробный запуÑк"
-#: builtin/add.c:250 builtin/apply.c:4571 builtin/check-ignore.c:19
+#: builtin/add.c:250 builtin/apply.c:4561 builtin/check-ignore.c:19
#: builtin/commit.c:1322 builtin/count-objects.c:85 builtin/fsck.c:558
-#: builtin/log.c:1645 builtin/mv.c:109 builtin/read-tree.c:114
+#: builtin/log.c:1651 builtin/mv.c:110 builtin/read-tree.c:114
msgid "be verbose"
msgstr "быть многоÑловнее"
@@ -2189,7 +2330,7 @@ msgstr "быть многоÑловнее"
msgid "interactive picking"
msgstr "интерактивный выбор"
-#: builtin/add.c:253 builtin/checkout.c:1153 builtin/reset.c:286
+#: builtin/add.c:253 builtin/checkout.c:1155 builtin/reset.c:286
msgid "select hunks interactively"
msgstr "интерактивный выбор блоков"
@@ -2256,402 +2397,397 @@ msgstr "Ðичего не указано, ничего не добавлено.\
msgid "Maybe you wanted to say 'git add .'?\n"
msgstr "Возможно, вы имели в виду «git add .»?\n"
-#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:938
-#: builtin/commit.c:337 builtin/mv.c:130 builtin/reset.c:235 builtin/rm.c:298
-#: builtin/submodule--helper.c:40
+#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:914
+#: builtin/commit.c:337 builtin/mv.c:131 builtin/reset.c:235 builtin/rm.c:298
+#: builtin/submodule--helper.c:35
msgid "index file corrupt"
msgstr "файл индекÑа поврежден"
-#: builtin/add.c:439 builtin/apply.c:4669 builtin/mv.c:279 builtin/rm.c:430
+#: builtin/add.c:439 builtin/apply.c:4659 builtin/mv.c:280 builtin/rm.c:430
msgid "Unable to write new index file"
msgstr "Ðе удалоÑÑŒ запиÑать новый файл индекÑа"
-#: builtin/am.c:42
-#, c-format
-msgid "could not stat %s"
-msgstr "не удалоÑÑŒ выполнить stat Ð´Ð»Ñ %s"
-
-#: builtin/am.c:271 builtin/commit.c:738 builtin/merge.c:1077
+#: builtin/am.c:256 builtin/commit.c:738 builtin/merge.c:1078
#, c-format
msgid "could not read '%s'"
msgstr "не удалоÑÑŒ прочитать «%s»"
-#: builtin/am.c:445
+#: builtin/am.c:430
msgid "could not parse author script"
msgstr "не удалоÑÑŒ разобрать Ñценарий авторÑтва"
-#: builtin/am.c:522
+#: builtin/am.c:507
#, c-format
msgid "'%s' was deleted by the applypatch-msg hook"
msgstr "«%s» был удален перехватчиком applypatch-msg"
-#: builtin/am.c:563 builtin/notes.c:300
+#: builtin/am.c:548 builtin/notes.c:300
#, c-format
msgid "Malformed input line: '%s'."
-msgstr "ÐŸÐ»Ð¾Ñ…Ð°Ñ Ñтрока ввода: «%s»."
+msgstr "ÐÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ñтрока ввода: «%s»."
-#: builtin/am.c:600 builtin/notes.c:315
+#: builtin/am.c:585 builtin/notes.c:315
#, c-format
msgid "Failed to copy notes from '%s' to '%s'"
msgstr "Ðе удалоÑÑŒ Ñкопировать заметку из «%s» в «%s»"
-#: builtin/am.c:626
+#: builtin/am.c:611
msgid "fseek failed"
msgstr "Ñбой при выполнении fseek"
-#: builtin/am.c:787 builtin/am.c:875
+#: builtin/am.c:772 builtin/am.c:860
#, c-format
msgid "could not open '%s' for reading: %s"
msgstr "не удалоÑÑŒ открыть «%s» Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: %s"
-#: builtin/am.c:794
+#: builtin/am.c:779
#, c-format
msgid "could not open '%s' for writing: %s"
msgstr "не удалоÑÑŒ открыть «%s» Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи: %s"
-#: builtin/am.c:803
+#: builtin/am.c:788
#, c-format
msgid "could not parse patch '%s'"
msgstr "не удалоÑÑŒ разобрать патч «%s»"
-#: builtin/am.c:868
+#: builtin/am.c:853
msgid "Only one StGIT patch series can be applied at once"
msgstr "Только ÑÐµÑ€Ð¸Ñ Ð¿Ð°Ñ‚Ñ‡ÐµÐ¹ StGIT может быть применена за раз"
-#: builtin/am.c:916
+#: builtin/am.c:901
msgid "invalid timestamp"
msgstr "недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° даты/времени"
-#: builtin/am.c:919 builtin/am.c:927
+#: builtin/am.c:904 builtin/am.c:912
msgid "invalid Date line"
msgstr "недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ñтрока даты"
-#: builtin/am.c:924
+#: builtin/am.c:909
msgid "invalid timezone offset"
msgstr "недопуÑтимое Ñмещение чаÑового поÑÑа"
-#: builtin/am.c:1011
+#: builtin/am.c:996
msgid "Patch format detection failed."
msgstr "Сбой Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð° патча."
-#: builtin/am.c:1016 builtin/clone.c:373
+#: builtin/am.c:1001 builtin/clone.c:378
#, c-format
msgid "failed to create directory '%s'"
msgstr "не удалоÑÑŒ Ñоздать каталог «%s»"
-#: builtin/am.c:1020
+#: builtin/am.c:1005
msgid "Failed to split patches."
msgstr "Ðе удалоÑÑŒ разделить патчи на чаÑти."
-#: builtin/am.c:1152 builtin/commit.c:363
+#: builtin/am.c:1137 builtin/commit.c:363
msgid "unable to write index file"
msgstr "не удалоÑÑŒ запиÑать индекÑ"
-#: builtin/am.c:1203
+#: builtin/am.c:1188
#, c-format
msgid "When you have resolved this problem, run \"%s --continue\"."
msgstr "Когда вы уÑтраните Ñту проблему, запуÑтите «%s --continue»."
-#: builtin/am.c:1204
+#: builtin/am.c:1189
#, c-format
msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
msgstr "ЕÑли вы хотите пропуÑтить Ñтот патч, то запуÑтите «%s --skip»."
-#: builtin/am.c:1205
+#: builtin/am.c:1190
#, c-format
msgid "To restore the original branch and stop patching, run \"%s --abort\"."
msgstr "Чтобы вернутьÑÑ Ð½Ð° предыдущую ветку и оÑтановить применение изменений, запуÑтите «%s --abort»."
-#: builtin/am.c:1343
+#: builtin/am.c:1328
msgid "Patch is empty. Was it split wrong?"
msgstr "Патч пуÑÑ‚. Возможно, он был неправильно разделён?"
-#: builtin/am.c:1417 builtin/log.c:1347
+#: builtin/am.c:1402 builtin/log.c:1350
#, c-format
msgid "invalid ident line: %s"
msgstr "Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ñтрока идентификации: %s"
-#: builtin/am.c:1444
+#: builtin/am.c:1429
#, c-format
msgid "unable to parse commit %s"
msgstr "не удалоÑÑŒ разобрать коммит %s"
-#: builtin/am.c:1646
+#: builtin/am.c:1631
msgid "Repository lacks necessary blobs to fall back on 3-way merge."
msgstr "Ð’ репозитории отÑутÑтвуют двоичные объекты, необходимые Ð´Ð»Ñ Ð¾Ñ‚ÐºÐ°Ñ‚Ð° к трехходовому ÑлиÑнию."
-#: builtin/am.c:1648
+#: builtin/am.c:1633
msgid "Using index info to reconstruct a base tree..."
msgstr "ИÑпользую Ð¸Ð½Ð´ÐµÐºÑ Ð´Ð»Ñ Ñ€ÐµÐºÐ¾Ð½Ñтрукции базового дерева…"
-#: builtin/am.c:1667
+#: builtin/am.c:1652
msgid ""
"Did you hand edit your patch?\n"
"It does not apply to blobs recorded in its index."
msgstr "Ð’Ñ‹ вручную изменÑли патч?\nОн не накладываетÑÑ Ð±ÐµÐ· ошибок на двоичные объекты, запиÑанные в его заголовке."
-#: builtin/am.c:1673
+#: builtin/am.c:1658
msgid "Falling back to patching base and 3-way merge..."
msgstr "Откат к применению изменений к базовому коммиту Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ трехходового ÑлиÑниÑ…"
-#: builtin/am.c:1688
+#: builtin/am.c:1673
msgid "Failed to merge in the changes."
msgstr "Ðе удалоÑÑŒ Ñлить изменениÑ."
-#: builtin/am.c:1712 builtin/merge.c:632
+#: builtin/am.c:1697 builtin/merge.c:633
msgid "git write-tree failed to write a tree"
msgstr "git write-tree не удалоÑÑŒ запиÑать дерево"
-#: builtin/am.c:1719
+#: builtin/am.c:1704
msgid "applying to an empty history"
msgstr "применение к пуÑтой иÑтории"
-#: builtin/am.c:1732 builtin/commit.c:1755 builtin/merge.c:829
-#: builtin/merge.c:854
+#: builtin/am.c:1717 builtin/commit.c:1755 builtin/merge.c:830
+#: builtin/merge.c:855
msgid "failed to write commit object"
msgstr "Ñбой запиÑи объекта коммита"
-#: builtin/am.c:1764 builtin/am.c:1768
+#: builtin/am.c:1749 builtin/am.c:1753
#, c-format
msgid "cannot resume: %s does not exist."
msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶Ð½Ð¸Ñ‚ÑŒ: %s не ÑущеÑтвует "
-#: builtin/am.c:1784
+#: builtin/am.c:1769
msgid "cannot be interactive without stdin connected to a terminal."
msgstr "не удалоÑÑŒ иÑпользовать интерактивное поведение, без stdin подключенного к терминалу."
-#: builtin/am.c:1789
+#: builtin/am.c:1774
msgid "Commit Body is:"
msgstr "Тело коммита:"
#. TRANSLATORS: Make sure to include [y], [n], [e], [v] and [a]
#. in your translation. The program will only accept English
#. input at this point.
-#: builtin/am.c:1799
+#: builtin/am.c:1784
msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
msgstr "Применить? [y] - да/[n] - нет/[e] - редактировать/[v] - проÑмотреть патч/[a] - применить вÑÑ‘: "
-#: builtin/am.c:1849
+#: builtin/am.c:1834
#, c-format
msgid "Dirty index: cannot apply patches (dirty: %s)"
msgstr "Ð˜Ð½Ð´ÐµÐºÑ Ð½Ðµ пуÑтой: Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ патчи (в индекÑе: %s)"
-#: builtin/am.c:1884 builtin/am.c:1955
+#: builtin/am.c:1869 builtin/am.c:1941
#, c-format
msgid "Applying: %.*s"
msgstr "Применение: %.*s"
-#: builtin/am.c:1900
+#: builtin/am.c:1885
msgid "No changes -- Patch already applied."
msgstr "Ðет изменений — Патч уже применен."
-#: builtin/am.c:1908
+#: builtin/am.c:1893
#, c-format
msgid "Patch failed at %s %.*s"
msgstr "Ошибка Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ на %s %.*s"
-#: builtin/am.c:1914
+#: builtin/am.c:1899
#, c-format
msgid "The copy of the patch that failed is found in: %s"
msgstr "Копию изменений, которые не удалоÑÑŒ применить, вы можете найти в: %s"
-#: builtin/am.c:1958
+#: builtin/am.c:1944
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 "Ðет изменений — возможно, вы забыли вызвать «git add»?\nЕÑли ничего не оÑталоÑÑŒ Ð´Ð»Ñ Ð¸Ð½Ð´ÐµÐºÑации, то, Ñкорее вÑего, что-то другое уже Ñделало те же изменениÑ; возможно, вам Ñледует пропуÑтить Ñтот патч."
-#: builtin/am.c:1965
+#: builtin/am.c:1951
msgid ""
"You still have unmerged paths in your index.\n"
"Did you forget to use 'git add'?"
msgstr "У Ð²Ð°Ñ Ð²Ñе еще имеютÑÑ Ð½Ðµ Ñлитые пути в индекÑе.\nВозможно, вы забыли вызвать «git add»?"
-#: builtin/am.c:2073 builtin/am.c:2077 builtin/am.c:2089 builtin/reset.c:308
+#: builtin/am.c:2059 builtin/am.c:2063 builtin/am.c:2075 builtin/reset.c:308
#: builtin/reset.c:316
#, c-format
msgid "Could not parse object '%s'."
msgstr "Ðе удалоÑÑŒ разобрать объект «%s»."
-#: builtin/am.c:2125
+#: builtin/am.c:2111
msgid "failed to clean index"
msgstr "не удалоÑÑŒ очиÑтить индекÑ"
-#: builtin/am.c:2159
+#: builtin/am.c:2145
msgid ""
"You seem to have moved HEAD since the last 'am' failure.\n"
"Not rewinding to ORIG_HEAD"
msgstr "Похоже, что вы перемеÑтили HEAD Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñ‚Ð° поÑледней ошибки Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Â«am».\nПеремотка на ORIG_HEAD не выполнÑетÑÑ"
-#: builtin/am.c:2220
+#: builtin/am.c:2206
#, c-format
msgid "Invalid value for --patch-format: %s"
msgstr "Ðеправильное значение Ð´Ð»Ñ --patch-format: %s"
-#: builtin/am.c:2253
+#: builtin/am.c:2239
msgid "git am [<options>] [(<mbox>|<Maildir>)...]"
msgstr "git am [<опции>] [(<mbox>|<Maildir>)…]"
-#: builtin/am.c:2254
+#: builtin/am.c:2240
msgid "git am [<options>] (--continue | --skip | --abort)"
msgstr "git am [<опции>] (--continue | --skip | --abort)"
-#: builtin/am.c:2260
+#: builtin/am.c:2246
msgid "run interactively"
msgstr "запуÑтить в интерактивном режиме"
-#: builtin/am.c:2262
+#: builtin/am.c:2248
msgid "historical option -- no-op"
msgstr "иÑторичеÑÐºÐ°Ñ Ð¾Ð¿Ñ†Ð¸Ñ â€” ничего не делает"
-#: builtin/am.c:2264
+#: builtin/am.c:2250
msgid "allow fall back on 3way merging if needed"
msgstr "разрешить откатитьÑÑ Ðº трехходовому ÑлиÑнию, еÑли нужно"
-#: builtin/am.c:2265 builtin/init-db.c:474 builtin/prune-packed.c:57
+#: builtin/am.c:2251 builtin/init-db.c:474 builtin/prune-packed.c:57
#: builtin/repack.c:171
msgid "be quiet"
msgstr "тихий режим"
-#: builtin/am.c:2267
+#: builtin/am.c:2253
msgid "add a Signed-off-by line to the commit message"
msgstr "добавить Ñтроку Signed-off-by к Ñообщению коммита"
-#: builtin/am.c:2270
+#: builtin/am.c:2256
msgid "recode into utf8 (default)"
msgstr "перекодировать в utf8 (по умолчанию)"
-#: builtin/am.c:2272
+#: builtin/am.c:2258
msgid "pass -k flag to git-mailinfo"
msgstr "передать флаг -k в git-mailinfo"
-#: builtin/am.c:2274
+#: builtin/am.c:2260
msgid "pass -b flag to git-mailinfo"
msgstr "передать флаг -b в git-mailinfo"
-#: builtin/am.c:2276
+#: builtin/am.c:2262
msgid "pass -m flag to git-mailinfo"
msgstr "передать флаг -m в git-mailinfo"
-#: builtin/am.c:2278
+#: builtin/am.c:2264
msgid "pass --keep-cr flag to git-mailsplit for mbox format"
msgstr "передать флаг --keep-cr в git-mailsplit Ð´Ð»Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð° mbox"
-#: builtin/am.c:2281
+#: builtin/am.c:2267
msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
msgstr "не передавать --keep-cr флаг в git-mailsplit вне завиÑимоÑти от am.keepcr"
-#: builtin/am.c:2284
+#: builtin/am.c:2270
msgid "strip everything before a scissors line"
msgstr "обрезать вÑе до Ñтроки обрезки"
-#: builtin/am.c:2285 builtin/apply.c:4554
+#: builtin/am.c:2271 builtin/apply.c:4544
msgid "action"
msgstr "дейÑтвие"
-#: builtin/am.c:2286 builtin/am.c:2289 builtin/am.c:2292 builtin/am.c:2295
-#: builtin/am.c:2298 builtin/am.c:2301 builtin/am.c:2304 builtin/am.c:2307
-#: builtin/am.c:2313
+#: builtin/am.c:2272 builtin/am.c:2275 builtin/am.c:2278 builtin/am.c:2281
+#: builtin/am.c:2284 builtin/am.c:2287 builtin/am.c:2290 builtin/am.c:2293
+#: builtin/am.c:2299
msgid "pass it through git-apply"
msgstr "передать его в git-apply"
-#: builtin/am.c:2294 builtin/apply.c:4578
+#: builtin/am.c:2280 builtin/apply.c:4568
msgid "root"
msgstr "корень"
-#: builtin/am.c:2297 builtin/am.c:2300 builtin/apply.c:4516
-#: builtin/apply.c:4519 builtin/clone.c:85 builtin/fetch.c:93
-#: builtin/pull.c:167 builtin/submodule--helper.c:78
-#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
+#: builtin/am.c:2283 builtin/am.c:2286 builtin/apply.c:4506
+#: builtin/apply.c:4509 builtin/clone.c:86 builtin/fetch.c:95
+#: builtin/pull.c:171 builtin/submodule--helper.c:72
+#: builtin/submodule--helper.c:160 builtin/submodule--helper.c:163
msgid "path"
msgstr "путь"
-#: builtin/am.c:2303 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
-#: builtin/grep.c:693 builtin/merge.c:198 builtin/pull.c:127
-#: builtin/repack.c:178 builtin/repack.c:182 builtin/show-branch.c:645
-#: builtin/show-ref.c:175 builtin/tag.c:340 parse-options.h:132
-#: parse-options.h:134 parse-options.h:244
+#: builtin/am.c:2289 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
+#: builtin/grep.c:704 builtin/merge.c:198 builtin/pull.c:131
+#: builtin/pull.c:185 builtin/repack.c:178 builtin/repack.c:182
+#: builtin/show-branch.c:645 builtin/show-ref.c:175 builtin/tag.c:340
+#: parse-options.h:132 parse-options.h:134 parse-options.h:244
msgid "n"
msgstr "n"
-#: builtin/am.c:2306 builtin/apply.c:4522
+#: builtin/am.c:2292 builtin/apply.c:4512
msgid "num"
msgstr "количеÑтво"
-#: builtin/am.c:2309 builtin/for-each-ref.c:37 builtin/replace.c:438
+#: builtin/am.c:2295 builtin/for-each-ref.c:37 builtin/replace.c:438
#: builtin/tag.c:372
msgid "format"
msgstr "формат"
-#: builtin/am.c:2310
+#: builtin/am.c:2296
msgid "format the patch(es) are in"
msgstr "формат, в котором находÑÑ‚ÑÑ Ð¿Ð°Ñ‚Ñ‡Ð¸"
-#: builtin/am.c:2316
+#: builtin/am.c:2302
msgid "override error message when patch failure occurs"
msgstr "переопределить Ñообщение об ошибке, еÑли не удалоÑÑŒ наложить изменениÑ"
-#: builtin/am.c:2318
+#: builtin/am.c:2304
msgid "continue applying patches after resolving a conflict"
msgstr "продолжить применение изменений поÑле Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð»Ð¸ÐºÑ‚Ð°"
-#: builtin/am.c:2321
+#: builtin/am.c:2307
msgid "synonyms for --continue"
-msgstr "Ñинонимы Ð´Ð»Ñ --continue"
+msgstr "Ñиноним Ð´Ð»Ñ --continue"
-#: builtin/am.c:2324
+#: builtin/am.c:2310
msgid "skip the current patch"
msgstr "пропуÑтить текущий патч"
-#: builtin/am.c:2327
+#: builtin/am.c:2313
msgid "restore the original branch and abort the patching operation."
msgstr "воÑÑтановить оригинальную ветку и отменить операцию Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹."
-#: builtin/am.c:2331
+#: builtin/am.c:2317
msgid "lie about committer date"
msgstr "Ñоврать о дате коммитера"
-#: builtin/am.c:2333
+#: builtin/am.c:2319
msgid "use current timestamp for author date"
msgstr "иÑпользовать текущее Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº Ð²Ñ€ÐµÐ¼Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ñтва"
-#: builtin/am.c:2335 builtin/commit.c:1593 builtin/merge.c:225
-#: builtin/pull.c:155 builtin/revert.c:92 builtin/tag.c:355
+#: builtin/am.c:2321 builtin/commit.c:1593 builtin/merge.c:225
+#: builtin/pull.c:159 builtin/revert.c:92 builtin/tag.c:355
msgid "key-id"
msgstr "key-id"
-#: builtin/am.c:2336
+#: builtin/am.c:2322
msgid "GPG-sign commits"
msgstr "подпиÑать коммиты Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ GPG"
-#: builtin/am.c:2339
+#: builtin/am.c:2325
msgid "(internal use for git-rebase)"
msgstr "(внутреннее иÑпользование Ð´Ð»Ñ git-rebase)"
-#: builtin/am.c:2354
+#: builtin/am.c:2340
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 "ÐžÐ¿Ñ†Ð¸Ñ -b/--binary уже долгое Ð²Ñ€ÐµÐ¼Ñ Ð½Ð¸Ñ‡ÐµÐ³Ð¾ не делает и будет удалена Ñ Ñледующих верÑиÑÑ… Git. ПожалуйÑта, не иÑпользуйте ее."
-#: builtin/am.c:2361
+#: builtin/am.c:2347
msgid "failed to read the index"
msgstr "Ñбой Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑа"
-#: builtin/am.c:2376
+#: builtin/am.c:2362
#, c-format
msgid "previous rebase directory %s still exists but mbox given."
msgstr "предыдущий каталог Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %s еще ÑущеÑтвует, но передан mbox."
-#: builtin/am.c:2400
+#: builtin/am.c:2386
#, c-format
msgid ""
"Stray %s directory found.\n"
"Use \"git am --abort\" to remove it."
msgstr "Ðайден забытый каталог %s.\nИÑпользуйте «git am --abort», чтобы удалить его."
-#: builtin/am.c:2406
+#: builtin/am.c:2392
msgid "Resolve operation not in progress, we are not resuming."
msgstr "ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ ÐºÐ¾Ð½Ñ„Ð»Ð¸ÐºÑ‚Ð¾Ð² не в процеÑÑе выполнениÑ, не продолжаем."
@@ -2996,124 +3132,124 @@ msgstr "не раÑпознанный ввод"
msgid "unable to read index file"
msgstr "не удалоÑÑŒ прочитать файл индекÑа"
-#: builtin/apply.c:4517
+#: builtin/apply.c:4507
msgid "don't apply changes matching the given path"
msgstr "не применÑÑ‚ÑŒ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð¾ указанному пути"
-#: builtin/apply.c:4520
+#: builtin/apply.c:4510
msgid "apply changes matching the given path"
msgstr "применÑÑ‚ÑŒ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð¾ указанному пути"
-#: builtin/apply.c:4523
+#: builtin/apply.c:4513
msgid "remove <num> leading slashes from traditional diff paths"
msgstr "удалить <количеÑтво> ведущих коÑÑ‹Ñ… черт из традиционных путей ÑпиÑка изменений"
-#: builtin/apply.c:4526
+#: builtin/apply.c:4516
msgid "ignore additions made by the patch"
msgstr "игнорировать добавлениÑ, Ñделанные Ñтим патчем"
-#: builtin/apply.c:4528
+#: builtin/apply.c:4518
msgid "instead of applying the patch, output diffstat for the input"
msgstr "вмеÑто Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ‚Ñ‡Ð° вывеÑти ÑтатиÑтику добавлений и удалений Ð´Ð»Ñ Ð²Ð²Ð¾Ð´Ð°"
-#: builtin/apply.c:4532
+#: builtin/apply.c:4522
msgid "show number of added and deleted lines in decimal notation"
msgstr "показать количеÑтво добавленных и удаленных Ñтрок в деÑÑтичном предÑтавлении"
-#: builtin/apply.c:4534
+#: builtin/apply.c:4524
msgid "instead of applying the patch, output a summary for the input"
msgstr "вмеÑто Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ‚Ñ‡Ð° вывеÑти ÑтатиÑтику изменений Ð´Ð»Ñ Ð²Ð²Ð¾Ð´Ð°"
-#: builtin/apply.c:4536
+#: builtin/apply.c:4526
msgid "instead of applying the patch, see if the patch is applicable"
msgstr "вмеÑто Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ‚Ñ‡Ð° проверить подходит ли он"
-#: builtin/apply.c:4538
+#: builtin/apply.c:4528
msgid "make sure the patch is applicable to the current index"
msgstr "проверить, что патч применÑетÑÑ Ðº текущему индекÑу"
-#: builtin/apply.c:4540
+#: builtin/apply.c:4530
msgid "apply a patch without touching the working tree"
msgstr "применить патч, не изменÑÑ Ñ€Ð°Ð±Ð¾Ñ‡Ð¸Ð¹ каталог"
-#: builtin/apply.c:4542
+#: builtin/apply.c:4532
msgid "accept a patch that touches outside the working area"
msgstr "принÑÑ‚ÑŒ патч, который затрагивает файлы за рабочим каталогом"
-#: builtin/apply.c:4544
+#: builtin/apply.c:4534
msgid "also apply the patch (use with --stat/--summary/--check)"
msgstr "а также применить патч (иÑпользуйте Ñ --stat/--summary/--check)"
-#: builtin/apply.c:4546
+#: builtin/apply.c:4536
msgid "attempt three-way merge if a patch does not apply"
msgstr "попытатьÑÑ Ñделать трехходовое ÑлиÑние, еÑли патч не применÑетÑÑ"
-#: builtin/apply.c:4548
+#: builtin/apply.c:4538
msgid "build a temporary index based on embedded index information"
msgstr "поÑтроить временный индекÑ, оÑнованный на вÑтроенной информации об индекÑе"
-#: builtin/apply.c:4550 builtin/checkout-index.c:198 builtin/ls-files.c:412
+#: builtin/apply.c:4541 builtin/checkout-index.c:169 builtin/ls-files.c:425
msgid "paths are separated with NUL character"
-msgstr "пути, отделенные ÐУЛЕВЫМ Ñимволом"
+msgstr "пути, отделённые ÐУЛЕВЫМ Ñимволом"
-#: builtin/apply.c:4553
+#: builtin/apply.c:4543
msgid "ensure at least <n> lines of context match"
msgstr "удоÑтоверитьÑÑ, что по крайней мере <n> Ñтрок контекÑта Ñовпадают"
-#: builtin/apply.c:4555
+#: builtin/apply.c:4545
msgid "detect new or modified lines that have whitespace errors"
msgstr "определÑÑ‚ÑŒ новые или модифицированные Ñтроки, у которых еÑÑ‚ÑŒ ошибки в пробельных Ñимволах"
-#: builtin/apply.c:4558 builtin/apply.c:4561
+#: builtin/apply.c:4548 builtin/apply.c:4551
msgid "ignore changes in whitespace when finding context"
msgstr "игнорировать Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² пробельных Ñимволах при поиÑке контекÑта"
-#: builtin/apply.c:4564
+#: builtin/apply.c:4554
msgid "apply the patch in reverse"
msgstr "применить патч Ñ Ð¾Ð±Ñ€Ð°Ñ‰ÐµÐ½Ð¸ÐµÐ¼ изменений"
-#: builtin/apply.c:4566
+#: builtin/apply.c:4556
msgid "don't expect at least one line of context"
msgstr "не ожидать как минимум одной Ñтроки контекÑта"
-#: builtin/apply.c:4568
+#: builtin/apply.c:4558
msgid "leave the rejected hunks in corresponding *.rej files"
msgstr "оÑтавить отклоненные блоки изменений в ÑоответÑтвующих *.rej файлах"
-#: builtin/apply.c:4570
+#: builtin/apply.c:4560
msgid "allow overlapping hunks"
msgstr "разрешить перекрывающиеÑÑ Ð±Ð»Ð¾ÐºÐ¸ изменений"
-#: builtin/apply.c:4573
+#: builtin/apply.c:4563
msgid "tolerate incorrectly detected missing new-line at the end of file"
msgstr "разрешить некорректно определенные пропущенные пуÑтые Ñтроки в конце файла"
-#: builtin/apply.c:4576
+#: builtin/apply.c:4566
msgid "do not trust the line counts in the hunk headers"
msgstr "не доверÑÑ‚ÑŒ количеÑтву Ñтрок из заголовка блока изменений"
-#: builtin/apply.c:4579
+#: builtin/apply.c:4569
msgid "prepend <root> to all filenames"
msgstr "добавить <корень> Ñпереди ко вÑем именам файлов"
-#: builtin/apply.c:4601
+#: builtin/apply.c:4591
msgid "--3way outside a repository"
msgstr "--3way вне репозиториÑ"
-#: builtin/apply.c:4609
+#: builtin/apply.c:4599
msgid "--index outside a repository"
msgstr "--index вне репозиториÑ"
-#: builtin/apply.c:4612
+#: builtin/apply.c:4602
msgid "--cached outside a repository"
msgstr "--cached вне репозиториÑ"
-#: builtin/apply.c:4631
+#: builtin/apply.c:4621
#, c-format
msgid "can't open patch '%s'"
msgstr "не удалоÑÑŒ открыть патч «%s»"
-#: builtin/apply.c:4645
+#: builtin/apply.c:4635
#, c-format
msgid "squelched %d whitespace error"
msgid_plural "squelched %d whitespace errors"
@@ -3122,7 +3258,7 @@ msgstr[1] "пропущено %d ошибки в пробельных Ñимво
msgstr[2] "пропущено %d ошибок в пробельных Ñимволах"
msgstr[3] "пропущено %d ошибок в пробельных Ñимволах"
-#: builtin/apply.c:4651 builtin/apply.c:4661
+#: builtin/apply.c:4641 builtin/apply.c:4651
#, c-format
msgid "%d line adds whitespace errors."
msgid_plural "%d lines add whitespace errors."
@@ -3178,103 +3314,111 @@ msgstr "выполнить «git bisect next»"
msgid "update BISECT_HEAD instead of checking out the current commit"
msgstr "обновить BISECT_HEAD вмеÑто перехода на текущий коммит"
-#: builtin/blame.c:32
+#: builtin/blame.c:33
msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>"
msgstr "git blame [<опции>] [<опции-редакции>] [<редакциÑ>] [--] <файл>"
-#: builtin/blame.c:37
+#: builtin/blame.c:38
msgid "<rev-opts> are documented in git-rev-list(1)"
msgstr "<опции-rev-list> документированы в git-rev-list(1)"
-#: builtin/blame.c:2519
+#: builtin/blame.c:1782
+msgid "Blaming lines"
+msgstr "ПроÑмотр авторов Ñтрок"
+
+#: builtin/blame.c:2530
msgid "Show blame entries as we find them, incrementally"
msgstr "Показать запиÑи авторÑтва поÑтепенно, в процеÑÑе нахождениÑ"
-#: builtin/blame.c:2520
+#: builtin/blame.c:2531
msgid "Show blank SHA-1 for boundary commits (Default: off)"
msgstr "Ðе показывать SHA-1 Ð´Ð»Ñ ÐºÐ¾Ð¼Ð¼Ð¸Ñ‚Ð¾Ð², не входÑщих в границы запроÑа (По умолчанию: отключено)"
-#: builtin/blame.c:2521
+#: builtin/blame.c:2532
msgid "Do not treat root commits as boundaries (Default: off)"
msgstr "Ðе воÑпринимать корневые коммиты как граничные (По умолчанию: отключено)"
-#: builtin/blame.c:2522
+#: builtin/blame.c:2533
msgid "Show work cost statistics"
msgstr "Показать ÑтатиÑтику раÑходов на выполнение запроÑа"
-#: builtin/blame.c:2523
+#: builtin/blame.c:2534
+msgid "Force progress reporting"
+msgstr "Принудительно выводить прогреÑÑ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ"
+
+#: builtin/blame.c:2535
msgid "Show output score for blame entries"
msgstr "Показать оценку Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñей авторÑтва"
-#: builtin/blame.c:2524
+#: builtin/blame.c:2536
msgid "Show original filename (Default: auto)"
msgstr "Показать оригинальное Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° (По умолчанию: автоматичеÑки)"
-#: builtin/blame.c:2525
+#: builtin/blame.c:2537
msgid "Show original linenumber (Default: off)"
msgstr "Показать оригинальные номера Ñтрок (По умолчанию: отключено)"
-#: builtin/blame.c:2526
+#: builtin/blame.c:2538
msgid "Show in a format designed for machine consumption"
msgstr "Показать в формате Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð½Ð¾Ð³Ð¾ разбора"
-#: builtin/blame.c:2527
+#: builtin/blame.c:2539
msgid "Show porcelain format with per-line commit information"
msgstr "Показать в машиночитаемом формате, Ñ Ð¿Ð¾Ñтрочной информацией о коммите"
-#: builtin/blame.c:2528
+#: builtin/blame.c:2540
msgid "Use the same output mode as git-annotate (Default: off)"
msgstr "ИÑпользовать такой же формат вывода, как и git-annotate (По умолчанию: отключено)"
-#: builtin/blame.c:2529
+#: builtin/blame.c:2541
msgid "Show raw timestamp (Default: off)"
msgstr "Показать необработанные временные метки (По умолчанию: отключено)"
-#: builtin/blame.c:2530
+#: builtin/blame.c:2542
msgid "Show long commit SHA1 (Default: off)"
msgstr "Показать длинный SHA1 идентификатор коммита (По умолчанию: отключено)"
-#: builtin/blame.c:2531
+#: builtin/blame.c:2543
msgid "Suppress author name and timestamp (Default: off)"
msgstr "Ðе показывать Ð¸Ð¼Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð° и временные метки (По умолчанию: отключено)"
-#: builtin/blame.c:2532
+#: builtin/blame.c:2544
msgid "Show author email instead of name (Default: off)"
msgstr "Показать почту автора вмеÑто имени (По умолчанию: отключено)"
-#: builtin/blame.c:2533
+#: builtin/blame.c:2545
msgid "Ignore whitespace differences"
msgstr "Игнорировать Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ Ð² пробелах"
-#: builtin/blame.c:2534
+#: builtin/blame.c:2546
msgid "Spend extra cycles to find better match"
msgstr "Потратить больше времени, Ð´Ð»Ñ Ð½Ð°Ñ…Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð»ÑƒÑ‡ÑˆÐ¸Ñ… Ñовпадений"
-#: builtin/blame.c:2535
+#: builtin/blame.c:2547
msgid "Use revisions from <file> instead of calling git-rev-list"
msgstr "ИÑпользовать редакции из <файла> вмеÑто вызова git-rev-list"
-#: builtin/blame.c:2536
+#: builtin/blame.c:2548
msgid "Use <file>'s contents as the final image"
msgstr "ИÑпользовать Ñодержимое <файла> как финальный Ñнимок"
-#: builtin/blame.c:2537 builtin/blame.c:2538
+#: builtin/blame.c:2549 builtin/blame.c:2550
msgid "score"
msgstr "мин-длина"
-#: builtin/blame.c:2537
+#: builtin/blame.c:2549
msgid "Find line copies within and across files"
msgstr "Ðайти копирование Ñтрок в пределах и между файлами"
-#: builtin/blame.c:2538
+#: builtin/blame.c:2550
msgid "Find line movements within and across files"
msgstr "Ðайти Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ñтрок в пределах и между файлами"
-#: builtin/blame.c:2539
+#: builtin/blame.c:2551
msgid "n,m"
msgstr "начало,конец"
-#: builtin/blame.c:2539
+#: builtin/blame.c:2551
msgid "Process only line range n,m, counting from 1"
msgstr "Обработать только Ñтроки в диапазоне начало,конец, Ð½Ð°Ñ‡Ð¸Ð½Ð°Ñ Ñ 1"
@@ -3284,7 +3428,7 @@ msgstr "Обработать только Ñтроки в диапазоне нÐ
#. takes 22 places, is the longest among various forms of
#. relative timestamps, but your language may need more or
#. fewer display columns.
-#: builtin/blame.c:2620
+#: builtin/blame.c:2640
msgid "4 years, 11 months ago"
msgstr "4 года и 11 меÑÑцев назад"
@@ -3476,200 +3620,200 @@ msgstr "Ветка переименована в %s, но HEAD не обновл
msgid "Branch is renamed, but update of config-file failed"
msgstr "Ветка переименована, но произошел Ñбой Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° конфигурации"
-#: builtin/branch.c:587
+#: builtin/branch.c:586
#, c-format
msgid "could not write branch description template: %s"
msgstr "не удалоÑÑŒ запиÑать шаблон опиÑÐ°Ð½Ð¸Ñ Ð²ÐµÑ‚ÐºÐ¸: %s"
-#: builtin/branch.c:616
+#: builtin/branch.c:615
msgid "Generic options"
msgstr "Общие параметры"
-#: builtin/branch.c:618
+#: builtin/branch.c:617
msgid "show hash and subject, give twice for upstream branch"
-msgstr "показывать хеш-Ñумму и тему, укажите дважды Ð´Ð»Ñ Ð²Ñ‹ÑˆÐµÑтоÑщей ветки"
+msgstr "показывать Ñ…Ñш-Ñумму и тему, укажите дважды Ð´Ð»Ñ Ð²Ñ‹ÑˆÐµÑтоÑщей ветки"
-#: builtin/branch.c:619
+#: builtin/branch.c:618
msgid "suppress informational messages"
msgstr "не выводить информационные ÑообщениÑ"
-#: builtin/branch.c:620
+#: builtin/branch.c:619
msgid "set up tracking mode (see git-pull(1))"
msgstr "уÑтановить режим отÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð²Ñ‹ÑˆÐµÑтоÑщей ветки (Ñм. git-pull(1))"
-#: builtin/branch.c:622
+#: builtin/branch.c:621
msgid "change upstream info"
msgstr "изменить информацию о вышеÑтоÑщей ветке"
-#: builtin/branch.c:626
+#: builtin/branch.c:625
msgid "use colored output"
msgstr "иÑпользовать цветной вывод"
-#: builtin/branch.c:627
+#: builtin/branch.c:626
msgid "act on remote-tracking branches"
msgstr "выполнить дейÑÑ‚Ð²Ð¸Ñ Ð½Ð° отÑлеживаемых внешних ветках"
-#: builtin/branch.c:629 builtin/branch.c:630
+#: builtin/branch.c:628 builtin/branch.c:629
msgid "print only branches that contain the commit"
msgstr "вывод только веток, которые Ñодержат коммит"
-#: builtin/branch.c:633
+#: builtin/branch.c:632
msgid "Specific git-branch actions:"
msgstr "Специфичные Ð´Ð»Ñ git-branch дейÑтвиÑ:"
-#: builtin/branch.c:634
+#: builtin/branch.c:633
msgid "list both remote-tracking and local branches"
msgstr "показать ÑпиÑок и отÑлеживаемых и локальных веток"
-#: builtin/branch.c:636
+#: builtin/branch.c:635
msgid "delete fully merged branch"
msgstr "удалить полноÑтью Ñлитую ветку"
-#: builtin/branch.c:637
+#: builtin/branch.c:636
msgid "delete branch (even if not merged)"
msgstr "удалить ветку (даже никуда не Ñлитую)"
-#: builtin/branch.c:638
+#: builtin/branch.c:637
msgid "move/rename a branch and its reflog"
msgstr "перемеÑтить/переименовать ветки и ее журнал ÑÑылок"
-#: builtin/branch.c:639
+#: builtin/branch.c:638
msgid "move/rename a branch, even if target exists"
msgstr "перемеÑтить/переименовать ветку, даже еÑли целевое Ð¸Ð¼Ñ ÑƒÐ¶Ðµ ÑущеÑтвует"
-#: builtin/branch.c:640
+#: builtin/branch.c:639
msgid "list branch names"
msgstr "показать ÑпиÑок имен веток"
-#: builtin/branch.c:641
+#: builtin/branch.c:640
msgid "create the branch's reflog"
msgstr "Ñоздать журнал ÑÑылок ветки"
-#: builtin/branch.c:643
+#: builtin/branch.c:642
msgid "edit the description for the branch"
msgstr "изменить опиÑание ветки"
-#: builtin/branch.c:644
+#: builtin/branch.c:643
msgid "force creation, move/rename, deletion"
msgstr "принудительное Ñоздание, перемещение или удаление ветки"
-#: builtin/branch.c:645
+#: builtin/branch.c:644
msgid "print only branches that are merged"
msgstr "вывод только Ñлитых веток"
-#: builtin/branch.c:646
+#: builtin/branch.c:645
msgid "print only branches that are not merged"
msgstr "вывод только не Ñлитых веток"
-#: builtin/branch.c:647
+#: builtin/branch.c:646
msgid "list branches in columns"
msgstr "показать ÑпиÑок веток по Ñтолбцам"
-#: builtin/branch.c:648 builtin/for-each-ref.c:38 builtin/tag.c:366
+#: builtin/branch.c:647 builtin/for-each-ref.c:38 builtin/tag.c:366
msgid "key"
msgstr "ключ"
-#: builtin/branch.c:649 builtin/for-each-ref.c:39 builtin/tag.c:367
+#: builtin/branch.c:648 builtin/for-each-ref.c:39 builtin/tag.c:367
msgid "field name to sort on"
msgstr "Ð¸Ð¼Ñ Ð¿Ð¾Ð»Ñ, по которому выполнить Ñортировку"
-#: builtin/branch.c:651 builtin/for-each-ref.c:41 builtin/notes.c:398
-#: builtin/notes.c:401 builtin/notes.c:561 builtin/notes.c:564
+#: builtin/branch.c:650 builtin/for-each-ref.c:41 builtin/notes.c:401
+#: builtin/notes.c:404 builtin/notes.c:564 builtin/notes.c:567
#: builtin/tag.c:369
msgid "object"
msgstr "объект"
-#: builtin/branch.c:652
+#: builtin/branch.c:651
msgid "print only branches of the object"
msgstr "вывод только веток, определенного объекта"
-#: builtin/branch.c:670
+#: builtin/branch.c:669
msgid "Failed to resolve HEAD as a valid ref."
msgstr "Ðе удалоÑÑŒ определить HEAD как дейÑтвительную ÑÑылку."
-#: builtin/branch.c:674 builtin/clone.c:697
+#: builtin/branch.c:673 builtin/clone.c:705
msgid "HEAD not found below refs/heads!"
msgstr "HEAD не найден в refs/heads!"
-#: builtin/branch.c:694
+#: builtin/branch.c:693
msgid "--column and --verbose are incompatible"
msgstr "--column и --verbose Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать одновременно"
-#: builtin/branch.c:705 builtin/branch.c:747
+#: builtin/branch.c:704 builtin/branch.c:746
msgid "branch name required"
msgstr "требуетÑÑ Ð¸Ð¼Ñ Ð²ÐµÑ‚ÐºÐ¸"
-#: builtin/branch.c:723
+#: builtin/branch.c:722
msgid "Cannot give description to detached HEAD"
-msgstr "ÐÐµÐ»ÑŒÐ·Ñ Ð´Ð°Ñ‚ÑŒ опиÑание отделенному HEAD"
+msgstr "ÐÐµÐ»ÑŒÐ·Ñ Ð´Ð°Ñ‚ÑŒ опиÑание отделённому HEAD"
-#: builtin/branch.c:728
+#: builtin/branch.c:727
msgid "cannot edit description of more than one branch"
msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ опиÑание более одной ветки за раз"
-#: builtin/branch.c:735
+#: builtin/branch.c:734
#, c-format
msgid "No commit on branch '%s' yet."
msgstr "Еще нет коммита на ветке «%s»."
-#: builtin/branch.c:738
+#: builtin/branch.c:737
#, c-format
msgid "No branch named '%s'."
msgstr "Ðет ветки Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ «%s»."
-#: builtin/branch.c:753
+#: builtin/branch.c:752
msgid "too many branches for a rename operation"
msgstr "Ñлишком много веток Ð´Ð»Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¸ переименованиÑ"
-#: builtin/branch.c:758
+#: builtin/branch.c:757
msgid "too many branches to set new upstream"
msgstr "Ñлишком много веток Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ñ‹Ñ… вышеÑтоÑщих"
-#: builtin/branch.c:762
+#: builtin/branch.c:761
#, c-format
msgid ""
"could not set upstream of HEAD to %s when it does not point to any branch."
-msgstr "невозможно уÑтановить вышеÑтоÑщий репозиторий Ð´Ð»Ñ HEAD на %s, когда он не указывает ни на одну ветку."
+msgstr "невозможно уÑтановить вышеÑтоÑщий репозиторий Ð´Ð»Ñ HEAD на %s, так как он не указывает ни на одну ветку."
-#: builtin/branch.c:765 builtin/branch.c:787 builtin/branch.c:808
+#: builtin/branch.c:764 builtin/branch.c:786 builtin/branch.c:807
#, c-format
msgid "no such branch '%s'"
msgstr "нет такой ветки «%s»"
-#: builtin/branch.c:769
+#: builtin/branch.c:768
#, c-format
msgid "branch '%s' does not exist"
msgstr "ветка «%s» не ÑущеÑтвует"
-#: builtin/branch.c:781
+#: builtin/branch.c:780
msgid "too many branches to unset upstream"
msgstr "Ñлишком много веток Ð´Ð»Ñ ÑƒÐ±Ð¸Ñ€Ð°Ð½Ð¸Ñ Ð²Ñ‹ÑˆÐµÑтоÑщих"
-#: builtin/branch.c:785
+#: builtin/branch.c:784
msgid "could not unset upstream of HEAD when it does not point to any branch."
-msgstr "невозможно убрать вышеÑтоÑщий репозиторий Ð´Ð»Ñ HEAD, когда он не указывает ни на одну ветку."
+msgstr "невозможно убрать вышеÑтоÑщий репозиторий Ð´Ð»Ñ HEAD, так как он не указывает ни на одну ветку."
-#: builtin/branch.c:791
+#: builtin/branch.c:790
#, c-format
msgid "Branch '%s' has no upstream information"
msgstr "Ветка «%s» не имеет информации о вышеÑтоÑщей ветке"
-#: builtin/branch.c:805
+#: builtin/branch.c:804
msgid "it does not make sense to create 'HEAD' manually"
msgstr "не имеет ÑмыÑла Ñоздавать «HEAD» вручную"
-#: builtin/branch.c:811
+#: builtin/branch.c:810
msgid "-a and -r options to 'git branch' do not make sense with a branch name"
msgstr "параметры -a и -r Ð´Ð»Ñ Â«git branch» не имеют ÑмыÑла Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸ÐµÐ¼ имени ветки"
-#: builtin/branch.c:814
+#: builtin/branch.c:813
#, c-format
msgid ""
"The --set-upstream flag is deprecated and will be removed. Consider using "
"--track or --set-upstream-to\n"
msgstr "Флаг --set-upstream уÑтарел и будет удален в будущем. ВмеÑто него иÑпользуйте --track или --set-upstream-to\n"
-#: builtin/branch.c:831
+#: builtin/branch.c:830
#, c-format
msgid ""
"\n"
@@ -3677,12 +3821,12 @@ msgid ""
"\n"
msgstr "\nЕÑли вы хотите, чтобы «%s» отÑлеживала «%s», Ñделайте Ñледующее:\n\n"
-#: builtin/branch.c:832
+#: builtin/branch.c:831
#, c-format
msgid " git branch -d %s\n"
msgstr "git branch -d %s\n"
-#: builtin/branch.c:833
+#: builtin/branch.c:832
#, c-format
msgid " git branch --set-upstream-to %s\n"
msgstr " git branch --set-upstream-to %s\n"
@@ -3774,7 +3918,7 @@ msgstr "вывеÑти вÑе атрибуты уÑтановленные длÑ
msgid "use .gitattributes only from the index"
msgstr "иÑпользовать только .gitattributes из индекÑа"
-#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:96
+#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:97
msgid "read file names from stdin"
msgstr "прочитать имена файлов из Ñтандартного ввода"
@@ -3782,7 +3926,7 @@ msgstr "прочитать имена файлов из Ñтандартного
msgid "terminate input and output records by a NUL character"
msgstr "окончание ввода и вывода запиÑей по ÐУЛЕВОМУ Ñимволу"
-#: builtin/check-ignore.c:18 builtin/checkout.c:1134 builtin/gc.c:325
+#: builtin/check-ignore.c:18 builtin/checkout.c:1136 builtin/gc.c:325
msgid "suppress progress reporting"
msgstr "не выводить прогреÑÑ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ"
@@ -3835,49 +3979,53 @@ msgstr "не удалоÑÑŒ разобрать контакт: %s"
msgid "no contacts specified"
msgstr "не указаны контакты"
-#: builtin/checkout-index.c:126
+#: builtin/checkout-index.c:127
msgid "git checkout-index [<options>] [--] [<file>...]"
msgstr "git checkout-index [<опции>] [--] [<файл>…]"
-#: builtin/checkout-index.c:188
+#: builtin/checkout-index.c:144
+msgid "stage should be between 1 and 3 or all"
+msgstr "Ð¸Ð½Ð´ÐµÐºÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ быть между 1 и 3 или all"
+
+#: builtin/checkout-index.c:160
msgid "check out all files in the index"
msgstr "перейти на ÑоÑтоÑние вÑех файлов из индекÑа"
-#: builtin/checkout-index.c:189
+#: builtin/checkout-index.c:161
msgid "force overwrite of existing files"
msgstr "Ð¿Ñ€Ð¸Ð½ÑƒÐ´Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿Ð¸ÑÑŒ ÑущеÑтвующих файлов"
-#: builtin/checkout-index.c:191
+#: builtin/checkout-index.c:163
msgid "no warning for existing files and files not in index"
msgstr "не выводить Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÑущеÑтвующих и непроиндекÑированных файлов"
-#: builtin/checkout-index.c:193
+#: builtin/checkout-index.c:165
msgid "don't checkout new files"
msgstr "не Ñоздавать новые файлы"
-#: builtin/checkout-index.c:195
+#: builtin/checkout-index.c:167
msgid "update stat information in the index file"
msgstr "обновить ÑтатиÑтику доÑтупа в файле индекÑа"
-#: builtin/checkout-index.c:201
+#: builtin/checkout-index.c:171
msgid "read list of paths from the standard input"
msgstr "прочитать ÑпиÑок путей из Ñтандартного ввода"
-#: builtin/checkout-index.c:203
+#: builtin/checkout-index.c:173
msgid "write the content to temporary files"
msgstr "запиÑать Ñодержимое во временные файлы"
-#: builtin/checkout-index.c:204 builtin/column.c:30
+#: builtin/checkout-index.c:174 builtin/column.c:30
+#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
#: builtin/submodule--helper.c:172 builtin/submodule--helper.c:175
-#: builtin/submodule--helper.c:178 builtin/submodule--helper.c:181
msgid "string"
msgstr "Ñтрока"
-#: builtin/checkout-index.c:205
+#: builtin/checkout-index.c:175
msgid "when creating files, prepend <string>"
msgstr "добавить Ñпереди <Ñтроку> при Ñоздании файлов"
-#: builtin/checkout-index.c:208
+#: builtin/checkout-index.c:177
msgid "copy out the files from named stage"
msgstr "копировать файлы из указанного индекÑа"
@@ -3957,37 +4105,41 @@ msgstr "Ðе удалоÑÑŒ Ñоздать журнал ÑÑылок Ð´Ð»Ñ Â«%s
msgid "HEAD is now at"
msgstr "HEAD ÑÐµÐ¹Ñ‡Ð°Ñ Ð½Ð°"
-#: builtin/checkout.c:668
+#: builtin/checkout.c:665 builtin/clone.c:659
+msgid "unable to update HEAD"
+msgstr "не удалоÑÑŒ обновить HEAD"
+
+#: builtin/checkout.c:669
#, c-format
msgid "Reset branch '%s'\n"
msgstr "Ð¡Ð±Ñ€Ð¾Ñ Ð²ÐµÑ‚ÐºÐ¸ «%s»\n"
-#: builtin/checkout.c:671
+#: builtin/checkout.c:672
#, c-format
msgid "Already on '%s'\n"
msgstr "Уже на «%s»\n"
-#: builtin/checkout.c:675
+#: builtin/checkout.c:676
#, c-format
msgid "Switched to and reset branch '%s'\n"
msgstr "Переключение и ÑÐ±Ñ€Ð¾Ñ Ð²ÐµÑ‚ÐºÐ¸ «%s»\n"
-#: builtin/checkout.c:677 builtin/checkout.c:1066
+#: builtin/checkout.c:678 builtin/checkout.c:1068
#, c-format
msgid "Switched to a new branch '%s'\n"
msgstr "Переключено на новую ветку «%s»\n"
-#: builtin/checkout.c:679
+#: builtin/checkout.c:680
#, c-format
msgid "Switched to branch '%s'\n"
msgstr "Переключено на ветку «%s»\n"
-#: builtin/checkout.c:731
+#: builtin/checkout.c:732
#, c-format
msgid " ... and %d more.\n"
msgstr " … и еще %d.\n"
-#: builtin/checkout.c:737
+#: builtin/checkout.c:738
#, c-format
msgid ""
"Warning: you are leaving %d commit behind, not connected to\n"
@@ -4004,7 +4156,7 @@ msgstr[1] "Предупреждение: вы оÑтавлÑете позади
msgstr[2] "Предупреждение: вы оÑтавлÑете позади %d коммитов не Ñоединенные ни Ñ Ð¾Ð´Ð½Ð¾Ð¹ из ваших веток:\n\n%s\n"
msgstr[3] "Предупреждение: вы оÑтавлÑете позади %d коммитов не Ñоединенные ни Ñ Ð¾Ð´Ð½Ð¾Ð¹ из ваших веток:\n\n%s\n"
-#: builtin/checkout.c:756
+#: builtin/checkout.c:757
#, c-format
msgid ""
"If you want to keep it by creating a new branch, this may be a good time\n"
@@ -4018,167 +4170,167 @@ msgid_plural ""
"\n"
" git branch <new-branch-name> %s\n"
"\n"
-msgstr[0] "ЕÑли вы хотите Ñохранить их Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð¹ ветки, то ÑÐµÐ¹Ñ‡Ð°Ñ Ñамое времÑ\nÑделать Ñто Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ:\n\n git branch <имÑ-новой-ветки> %s\n\n"
-msgstr[1] "ЕÑли вы хотите Ñохранить их Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð¹ ветки, то ÑÐµÐ¹Ñ‡Ð°Ñ Ñамое времÑ\nÑделать Ñто Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ:\n\n git branch <имÑ-новой-ветки> %s\n\n"
-msgstr[2] "ЕÑли вы хотите Ñохранить их Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð¹ ветки, то ÑÐµÐ¹Ñ‡Ð°Ñ Ñамое времÑ\nÑделать Ñто Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ:\n\n git branch <имÑ-новой-ветки> %s\n\n"
-msgstr[3] "ЕÑли вы хотите Ñохранить их Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð¹ ветки, то ÑÐµÐ¹Ñ‡Ð°Ñ Ñамое времÑ\nÑделать Ñто Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ:\n\n git branch <имÑ-новой-ветки> %s\n\n"
+msgstr[0] "ЕÑли вы хотите Ñохранить их Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð¹ ветки, то ÑÐµÐ¹Ñ‡Ð°Ñ Ñамое времÑ\nÑделать Ñто Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ:\n\n git branch <имÑ-новой-ветки> %s\n"
+msgstr[1] "ЕÑли вы хотите Ñохранить их Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð¹ ветки, то ÑÐµÐ¹Ñ‡Ð°Ñ Ñамое времÑ\nÑделать Ñто Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ:\n\n git branch <имÑ-новой-ветки> %s\n"
+msgstr[2] "ЕÑли вы хотите Ñохранить их Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð¹ ветки, то ÑÐµÐ¹Ñ‡Ð°Ñ Ñамое времÑ\nÑделать Ñто Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ:\n\n git branch <имÑ-новой-ветки> %s\n"
+msgstr[3] "ЕÑли вы хотите Ñохранить их Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð¹ ветки, то ÑÐµÐ¹Ñ‡Ð°Ñ Ñамое времÑ\nÑделать Ñто Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ:\n\n git branch <имÑ-новой-ветки> %s\n"
-#: builtin/checkout.c:792
+#: builtin/checkout.c:793
msgid "internal error in revision walk"
msgstr "внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ° при хождении по редакциÑм"
-#: builtin/checkout.c:796
+#: builtin/checkout.c:797
msgid "Previous HEAD position was"
msgstr "ÐŸÑ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð°Ñ Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ñ HEAD была"
-#: builtin/checkout.c:823 builtin/checkout.c:1061
+#: builtin/checkout.c:824 builtin/checkout.c:1063
msgid "You are on a branch yet to be born"
msgstr "Ð’Ñ‹ находитеÑÑŒ на еще не Ñозданной ветке"
-#: builtin/checkout.c:968
+#: builtin/checkout.c:969
#, c-format
msgid "only one reference expected, %d given."
msgstr "ожидаетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ одна ÑÑылка, а передано %d."
-#: builtin/checkout.c:1007 builtin/worktree.c:213
+#: builtin/checkout.c:1009 builtin/worktree.c:211
#, c-format
msgid "invalid reference: %s"
msgstr "Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ ÑÑылка: %s"
-#: builtin/checkout.c:1036
+#: builtin/checkout.c:1038
#, c-format
msgid "reference is not a tree: %s"
msgstr "в дереве нет такой ÑÑылки: %s"
-#: builtin/checkout.c:1075
+#: builtin/checkout.c:1077
msgid "paths cannot be used with switching branches"
msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать пути при переключении веток"
-#: builtin/checkout.c:1078 builtin/checkout.c:1082
+#: builtin/checkout.c:1080 builtin/checkout.c:1084
#, c-format
msgid "'%s' cannot be used with switching branches"
msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать «%s» при переключении веток"
-#: builtin/checkout.c:1086 builtin/checkout.c:1089 builtin/checkout.c:1094
-#: builtin/checkout.c:1097
+#: builtin/checkout.c:1088 builtin/checkout.c:1091 builtin/checkout.c:1096
+#: builtin/checkout.c:1099
#, c-format
msgid "'%s' cannot be used with '%s'"
msgstr "«%s» Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать одновременно Ñ Â«%s»"
-#: builtin/checkout.c:1102
+#: builtin/checkout.c:1104
#, c-format
msgid "Cannot switch branch to a non-commit '%s'"
msgstr "ÐÐµÐ»ÑŒÐ·Ñ Ð¿ÐµÑ€ÐµÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒ ветку на не коммит «%s»"
-#: builtin/checkout.c:1135 builtin/checkout.c:1137 builtin/clone.c:83
-#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:320
-#: builtin/worktree.c:322
+#: builtin/checkout.c:1137 builtin/checkout.c:1139 builtin/clone.c:84
+#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:318
+#: builtin/worktree.c:320
msgid "branch"
msgstr "ветка"
-#: builtin/checkout.c:1136
+#: builtin/checkout.c:1138
msgid "create and checkout a new branch"
msgstr "Ñоздать и перейти на новую ветку"
-#: builtin/checkout.c:1138
+#: builtin/checkout.c:1140
msgid "create/reset and checkout a branch"
msgstr "Ñоздать/ÑброÑить и перейти на новую ветку"
-#: builtin/checkout.c:1139
+#: builtin/checkout.c:1141
msgid "create reflog for new branch"
msgstr "Ñоздать журнал ÑÑылок Ð´Ð»Ñ Ð½Ð¾Ð²Ð¾Ð¹ ветки"
-#: builtin/checkout.c:1140
+#: builtin/checkout.c:1142
msgid "detach the HEAD at named commit"
msgstr "отÑоединить HEAD на указанном коммите"
-#: builtin/checkout.c:1141
+#: builtin/checkout.c:1143
msgid "set upstream info for new branch"
msgstr "уÑтановить информацию о вышеÑтоÑщей ветке Ð´Ð»Ñ Ð½Ð¾Ð²Ð¾Ð¹ ветки"
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
msgid "new-branch"
msgstr "новаÑ-ветка"
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
msgid "new unparented branch"
msgstr "Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ‚ÐºÐ° без родителей"
-#: builtin/checkout.c:1144
+#: builtin/checkout.c:1146
msgid "checkout our version for unmerged files"
msgstr "перейти на нашу верÑию Ð´Ð»Ñ Ð½Ðµ Ñлитых файлов"
-#: builtin/checkout.c:1146
+#: builtin/checkout.c:1148
msgid "checkout their version for unmerged files"
msgstr "перейти на их верÑию Ð´Ð»Ñ Ð½Ðµ Ñлитых файлов"
-#: builtin/checkout.c:1148
+#: builtin/checkout.c:1150
msgid "force checkout (throw away local modifications)"
msgstr "принудительный переход (отбраÑывает вÑе локальные изменениÑ)"
-#: builtin/checkout.c:1149
+#: builtin/checkout.c:1151
msgid "perform a 3-way merge with the new branch"
msgstr "выполнить трехходовое ÑлиÑние Ñ Ð½Ð¾Ð²Ð¾Ð¹ веткой"
-#: builtin/checkout.c:1150 builtin/merge.c:227
+#: builtin/checkout.c:1152 builtin/merge.c:227
msgid "update ignored files (default)"
msgstr "обновить игнорируемые файлы (по умолчанию)"
-#: builtin/checkout.c:1151 builtin/log.c:1266 parse-options.h:250
+#: builtin/checkout.c:1153 builtin/log.c:1269 parse-options.h:250
msgid "style"
msgstr "Ñтиль"
-#: builtin/checkout.c:1152
+#: builtin/checkout.c:1154
msgid "conflict style (merge or diff3)"
msgstr "Ñтиль конфликтов ÑлиÑÐ½Ð¸Ñ (merge или diff3)"
-#: builtin/checkout.c:1155
+#: builtin/checkout.c:1157
msgid "do not limit pathspecs to sparse entries only"
msgstr "не ограничивать Ñпецификаторы пути только чаÑтичными запиÑÑми"
-#: builtin/checkout.c:1157
+#: builtin/checkout.c:1159
msgid "second guess 'git checkout <no-such-branch>'"
msgstr "переÑмотр «git checkout <no-such-branch>»"
-#: builtin/checkout.c:1159
+#: builtin/checkout.c:1161
msgid "do not check if another worktree is holding the given ref"
msgstr "не проверÑÑ‚ÑŒ, что другое дерево уже Ñодержит указанную ÑÑылку"
-#: builtin/checkout.c:1160 builtin/clone.c:57 builtin/fetch.c:112
-#: builtin/merge.c:224 builtin/pull.c:109 builtin/push.c:558
+#: builtin/checkout.c:1162 builtin/clone.c:58 builtin/fetch.c:116
+#: builtin/merge.c:224 builtin/pull.c:113 builtin/push.c:526
#: builtin/send-pack.c:168
msgid "force progress reporting"
msgstr "принудительно выводить прогреÑÑ"
-#: builtin/checkout.c:1191
+#: builtin/checkout.c:1193
msgid "-b, -B and --orphan are mutually exclusive"
msgstr "-b, -B и --orphan Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать одновременно"
-#: builtin/checkout.c:1208
+#: builtin/checkout.c:1210
msgid "--track needs a branch name"
msgstr "--track требует Ð¸Ð¼Ñ Ð²ÐµÑ‚ÐºÐ¸"
-#: builtin/checkout.c:1213
+#: builtin/checkout.c:1215
msgid "Missing branch name; try -b"
msgstr "Пропущено Ð¸Ð¼Ñ Ð²ÐµÑ‚ÐºÐ¸; попробуйте -b"
-#: builtin/checkout.c:1249
+#: builtin/checkout.c:1251
msgid "invalid path specification"
msgstr "Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ ÑÐ¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð¿ÑƒÑ‚Ð¸"
-#: builtin/checkout.c:1256
+#: builtin/checkout.c:1258
#, c-format
msgid ""
"Cannot update paths and switch to branch '%s' at the same time.\n"
"Did you intend to checkout '%s' which can not be resolved as commit?"
msgstr "ÐÐµÐ»ÑŒÐ·Ñ Ð¾Ð±Ð½Ð¾Ð²Ð¸Ñ‚ÑŒ пути и одновременно переключить на ветку «%s».\nÐ’Ñ‹ хотели переключитьÑÑ Ð½Ð° «%s», что не может быть определено как коммит?"
-#: builtin/checkout.c:1261
+#: builtin/checkout.c:1263
#, c-format
msgid "git checkout: --detach does not take a path argument '%s'"
msgstr "git checkout: --detach не принимает путь «%s» как аргумент"
-#: builtin/checkout.c:1265
+#: builtin/checkout.c:1267
msgid ""
"git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
"checking out of the index."
@@ -4214,7 +4366,7 @@ msgstr "Будет пропущен репозиторий %s\n"
msgid "failed to remove %s"
msgstr "Ñбой ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ %s"
-#: builtin/clean.c:315
+#: builtin/clean.c:291
msgid ""
"Prompt help:\n"
"1 - select a numbered item\n"
@@ -4222,7 +4374,7 @@ msgid ""
" - (empty) select nothing"
msgstr "Справка по выделению:\n1 - выбрать указанный Ñлемент\nfoo - выбрать Ñлемент Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ‹Ð¼ префикÑом\n - (пуÑто) не выбирать ничего"
-#: builtin/clean.c:319
+#: builtin/clean.c:295
msgid ""
"Prompt help:\n"
"1 - select a single item\n"
@@ -4234,36 +4386,36 @@ msgid ""
" - (empty) finish selecting"
msgstr "Справка по выделению:\n1 - выбрать один Ñлемент\n3-5 - выбрать диапазон Ñлементов\n2-3,6-9 - выбрать неÑколько диапазонов\nfoo - выбрать Ñлемент Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ‹Ð¼ префикÑом\n-… - убрать выделение Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ‹Ñ… Ñлементов\n* - выбрать вÑе Ñлементы\n - (пуÑто) завершить выделение"
-#: builtin/clean.c:535
+#: builtin/clean.c:511
#, c-format
msgid "Huh (%s)?"
msgstr "Хм (%s)?"
-#: builtin/clean.c:677
+#: builtin/clean.c:653
#, c-format
msgid "Input ignore patterns>> "
msgstr "Шаблоны Ð¸Ð³Ð½Ð¾Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²Ð²Ð¾Ð´Ð°>> "
-#: builtin/clean.c:714
+#: builtin/clean.c:690
#, c-format
msgid "WARNING: Cannot find items matched by: %s"
msgstr "ПРЕДУПРЕЖДЕÐИЕ: Ðе удалоÑÑŒ найти Ñлементы ÑоответÑтвующие: %s"
-#: builtin/clean.c:735
+#: builtin/clean.c:711
msgid "Select items to delete"
msgstr "Укажите Ñлементы Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ"
#. TRANSLATORS: Make sure to keep [y/N] as is
-#: builtin/clean.c:776
+#: builtin/clean.c:752
#, c-format
msgid "Remove %s [y/N]? "
msgstr "Удалить %s [y - да/N - нет]? "
-#: builtin/clean.c:801
+#: builtin/clean.c:777
msgid "Bye."
msgstr "До ÑвиданиÑ."
-#: builtin/clean.c:809
+#: builtin/clean.c:785
msgid ""
"clean - start cleaning\n"
"filter by pattern - exclude items from deletion\n"
@@ -4274,15 +4426,15 @@ msgid ""
"? - help for prompt selection"
msgstr "clean - начать очиÑтку\nfilter by pattern - иÑключить удаление Ñлементов\nselect by numbers - иÑключить удаление Ñлементов по номерам\nask each - запрашивать подтверждение на удаление каждого Ñлемента (как «rm -i»)\nquit - прекратить очиÑтку\nhelp - Ñтот Ñкран\n? - Ñправка по выделению"
-#: builtin/clean.c:836
+#: builtin/clean.c:812
msgid "*** Commands ***"
msgstr "*** Команды ***"
-#: builtin/clean.c:837
+#: builtin/clean.c:813
msgid "What now"
msgstr "Что теперь"
-#: builtin/clean.c:845
+#: builtin/clean.c:821
msgid "Would remove the following item:"
msgid_plural "Would remove the following items:"
msgstr[0] "Удалить Ñледующие Ñлементы:"
@@ -4290,54 +4442,54 @@ msgstr[1] "Удалить Ñледующие Ñлементы:"
msgstr[2] "Удалить Ñледующие Ñлементы:"
msgstr[3] "Удалить Ñледующие Ñлементы:"
-#: builtin/clean.c:862
+#: builtin/clean.c:838
msgid "No more files to clean, exiting."
msgstr "Больше нет файлов Ð´Ð»Ñ Ð¾Ñ‡Ð¸Ñтки, выходим."
-#: builtin/clean.c:893
+#: builtin/clean.c:869
msgid "do not print names of files removed"
msgstr "не выводить имена удалÑемых файлов"
-#: builtin/clean.c:895
+#: builtin/clean.c:871
msgid "force"
msgstr "принудительно"
-#: builtin/clean.c:896
+#: builtin/clean.c:872
msgid "interactive cleaning"
msgstr "Ð¸Ð½Ñ‚ÐµÑ€Ð°ÐºÑ‚Ð¸Ð²Ð½Ð°Ñ Ð¾Ñ‡Ð¸Ñтка"
-#: builtin/clean.c:898
+#: builtin/clean.c:874
msgid "remove whole directories"
msgstr "удалить каталоги полноÑтью"
-#: builtin/clean.c:899 builtin/describe.c:407 builtin/grep.c:709
-#: builtin/ls-files.c:443 builtin/name-rev.c:307 builtin/show-ref.c:182
+#: builtin/clean.c:875 builtin/describe.c:407 builtin/grep.c:722
+#: builtin/ls-files.c:456 builtin/name-rev.c:307 builtin/show-ref.c:182
msgid "pattern"
msgstr "шаблон"
-#: builtin/clean.c:900
+#: builtin/clean.c:876
msgid "add <pattern> to ignore rules"
msgstr "добавить <шаблон> в правила игнорированиÑ"
-#: builtin/clean.c:901
+#: builtin/clean.c:877
msgid "remove ignored files, too"
msgstr "также удалить игнорируемые файлы"
-#: builtin/clean.c:903
+#: builtin/clean.c:879
msgid "remove only ignored files"
msgstr "удалить только игнорируемые файлы"
-#: builtin/clean.c:921
+#: builtin/clean.c:897
msgid "-x and -X cannot be used together"
msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать одновременно -x и -X"
-#: builtin/clean.c:925
+#: builtin/clean.c:901
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:928
+#: builtin/clean.c:904
msgid ""
"clean.requireForce defaults to true and neither -i, -n, nor -f given; "
"refusing to clean"
@@ -4347,263 +4499,286 @@ msgstr "clean.requireForce уÑтановлен по умолчанию как t
msgid "git clone [<options>] [--] <repo> [<dir>]"
msgstr "git clone [<опции>] [--] <репозиторий> [<каталог>]"
-#: builtin/clone.c:59
+#: builtin/clone.c:60
msgid "don't create a checkout"
msgstr "не переключать рабочую копию на HEAD"
-#: builtin/clone.c:60 builtin/clone.c:62 builtin/init-db.c:469
+#: builtin/clone.c:61 builtin/clone.c:63 builtin/init-db.c:469
msgid "create a bare repository"
msgstr "Ñоздать голый репозиторий"
-#: builtin/clone.c:64
+#: builtin/clone.c:65
msgid "create a mirror repository (implies bare)"
msgstr "Ñоздать зеркало Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ (включает в ÑÐµÐ±Ñ Ð¸ параметр bare)"
-#: builtin/clone.c:66
+#: builtin/clone.c:67
msgid "to clone from a local repository"
msgstr "Ð´Ð»Ñ ÐºÐ»Ð¾Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð· локального репозиториÑ"
-#: builtin/clone.c:68
+#: builtin/clone.c:69
msgid "don't use local hardlinks, always copy"
msgstr "не иÑпользовать жеÑткие ÑÑылки, вÑегда копировать файлы"
-#: builtin/clone.c:70
+#: builtin/clone.c:71
msgid "setup as shared repository"
msgstr "наÑтроить как общедоÑтупный репозиторий"
-#: builtin/clone.c:72 builtin/clone.c:74
+#: builtin/clone.c:73 builtin/clone.c:75
msgid "initialize submodules in the clone"
msgstr "инициализировать подмодули в клоне"
-#: builtin/clone.c:75 builtin/init-db.c:466
+#: builtin/clone.c:76 builtin/init-db.c:466
msgid "template-directory"
msgstr "каталог-шаблонов"
-#: builtin/clone.c:76 builtin/init-db.c:467
+#: builtin/clone.c:77 builtin/init-db.c:467
msgid "directory from which templates will be used"
msgstr "каталог, шаблоны из которого будут иÑпользованы"
-#: builtin/clone.c:78 builtin/submodule--helper.c:179
+#: builtin/clone.c:79 builtin/submodule--helper.c:173
msgid "reference repository"
msgstr "ÑÑылаемый репозиторий"
-#: builtin/clone.c:80
+#: builtin/clone.c:81
msgid "use --reference only while cloning"
msgstr "иÑпользуйте --reference только при клонировании"
-#: builtin/clone.c:81 builtin/column.c:26 builtin/merge-file.c:44
+#: builtin/clone.c:82 builtin/column.c:26 builtin/merge-file.c:44
msgid "name"
msgstr "имÑ"
-#: builtin/clone.c:82
+#: builtin/clone.c:83
msgid "use <name> instead of 'origin' to track upstream"
msgstr "иÑпользовать <имÑ> вмеÑто «origin» Ð´Ð»Ñ Ð¾Ñ‚ÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð²Ñ‹ÑˆÐµÑтоÑщего репозиториÑ"
-#: builtin/clone.c:84
+#: builtin/clone.c:85
msgid "checkout <branch> instead of the remote's HEAD"
msgstr "перейти на <ветку>, вмеÑто HEAD внешнего репозиториÑ"
-#: builtin/clone.c:86
+#: builtin/clone.c:87
msgid "path to git-upload-pack on the remote"
msgstr "путь к git-upload-pack на внешнем репозитории"
-#: builtin/clone.c:87 builtin/fetch.c:113 builtin/grep.c:654
-#: builtin/pull.c:186
+#: builtin/clone.c:88 builtin/fetch.c:117 builtin/grep.c:665
+#: builtin/pull.c:193
msgid "depth"
msgstr "глубина"
-#: builtin/clone.c:88
+#: builtin/clone.c:89
msgid "create a shallow clone of that depth"
msgstr "Ñделать чаÑтичный клон указанной глубины"
-#: builtin/clone.c:90
+#: builtin/clone.c:91
msgid "clone only one branch, HEAD or --branch"
msgstr "клонировать только одну ветку, HEAD или --branch"
-#: builtin/clone.c:91 builtin/init-db.c:475
+#: builtin/clone.c:92 builtin/init-db.c:475
msgid "gitdir"
msgstr "каталог-git"
-#: builtin/clone.c:92 builtin/init-db.c:476
+#: builtin/clone.c:93 builtin/init-db.c:476
msgid "separate git dir from working tree"
msgstr "размеÑтить каталог git отдельно от рабочей копии"
-#: builtin/clone.c:93
+#: builtin/clone.c:94
msgid "key=value"
msgstr "ключ=значение"
-#: builtin/clone.c:94
+#: builtin/clone.c:95
msgid "set config inside the new repository"
msgstr "уÑтановить параметры внутри нового репозиториÑ"
-#: builtin/clone.c:300
+#: builtin/clone.c:96 builtin/fetch.c:131 builtin/push.c:536
+msgid "use IPv4 addresses only"
+msgstr "иÑпользовать только IPv4 адреÑа"
+
+#: builtin/clone.c:98 builtin/fetch.c:133 builtin/push.c:538
+msgid "use IPv6 addresses only"
+msgstr "иÑпользовать только IPv6 адреÑа"
+
+#: builtin/clone.c:239
+msgid ""
+"No directory name could be guessed.\n"
+"Please specify a directory on the command line"
+msgstr "Ð˜Ð¼Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð° не может быть угадано.\nУкажите Ð¸Ð¼Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð° Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ параметра командной Ñтроки"
+
+#: builtin/clone.c:305
#, c-format
msgid "reference repository '%s' as a linked checkout is not supported yet."
msgstr "ÑÑылаемый репозиторий «%s» как ÑвÑзанное ÑоÑтоÑние, пока не поддерживаетÑÑ."
-#: builtin/clone.c:302
+#: builtin/clone.c:307
#, c-format
msgid "reference repository '%s' is not a local repository."
msgstr "ÑÑылаемый репозиторий «%s» не ÑвлÑетÑÑ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ñ‹Ð¼."
-#: builtin/clone.c:307
+#: builtin/clone.c:312
#, c-format
msgid "reference repository '%s' is shallow"
msgstr "ÑÑылаемый репозиторий «%s» ÑвлÑетÑÑ Ñ‡Ð°Ñтичным"
-#: builtin/clone.c:310
+#: builtin/clone.c:315
#, c-format
msgid "reference repository '%s' is grafted"
msgstr "ÑÑылаемый репозиторий «%s» ÑвлÑетÑÑ Ñращенным"
-#: builtin/clone.c:375 builtin/diff.c:84
+#: builtin/clone.c:380 builtin/diff.c:84
#, c-format
msgid "failed to stat '%s'"
msgstr "не удалоÑÑŒ выполнить stat «%s»"
-#: builtin/clone.c:377
+#: builtin/clone.c:382
#, c-format
msgid "%s exists and is not a directory"
msgstr "%s уже ÑущеÑтвует и не ÑвлÑетÑÑ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð¾Ð¼"
-#: builtin/clone.c:391
+#: builtin/clone.c:396
#, c-format
msgid "failed to stat %s\n"
msgstr "не удалоÑÑŒ выполнить stat %s\n"
-#: builtin/clone.c:413
+#: builtin/clone.c:418
#, c-format
msgid "failed to create link '%s'"
msgstr "не удалоÑÑŒ Ñоздать ÑÑылку «%s»"
-#: builtin/clone.c:417
+#: builtin/clone.c:422
#, c-format
msgid "failed to copy file to '%s'"
msgstr "не удалоÑÑŒ копировать файл в «%s»"
-#: builtin/clone.c:442 builtin/clone.c:626
+#: builtin/clone.c:447 builtin/clone.c:631
#, c-format
msgid "done.\n"
msgstr "готово.\n"
-#: builtin/clone.c:454
+#: builtin/clone.c:459
msgid ""
"Clone succeeded, but checkout failed.\n"
"You can inspect what was checked out with 'git status'\n"
"and retry the checkout with 'git checkout -f HEAD'\n"
msgstr "Клонирование прошло уÑпешно, но во Ð²Ñ€ÐµÐ¼Ñ Ð¿ÐµÑ€ÐµÑ…Ð¾Ð´Ð° на верÑию произошла ошибка.\nС помощь команды «git status» вы можете проÑмотреть, какие файлы были обновлены, а повторить попытку перехода на верÑию Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ «git checkout -f HEAD»\n"
-#: builtin/clone.c:531
+#: builtin/clone.c:536
#, c-format
msgid "Could not find remote branch %s to clone."
msgstr "Ðе удалоÑÑŒ найти внешнюю ветку %s Ð´Ð»Ñ ÐºÐ»Ð¾Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ."
-#: builtin/clone.c:621
+#: builtin/clone.c:626
#, c-format
msgid "Checking connectivity... "
msgstr "Проверка ÑоединениÑ… "
-#: builtin/clone.c:624
+#: builtin/clone.c:629
msgid "remote did not send all necessary objects"
msgstr "внешний репозиторий приÑлал не вÑе необходимые объекты"
-#: builtin/clone.c:688
+#: builtin/clone.c:647
+#, c-format
+msgid "unable to update %s"
+msgstr "не удалоÑÑŒ обновить %s"
+
+#: builtin/clone.c:696
msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
msgstr "внешний HEAD ÑÑылаетÑÑ Ð½Ð° неÑущеÑтвующую ÑÑылку, Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿ÐµÑ€ÐµÐ¹Ñ‚Ð¸ на такую верÑию.\n"
-#: builtin/clone.c:719
+#: builtin/clone.c:727
msgid "unable to checkout working tree"
msgstr "не удалоÑÑŒ перейти на верÑию в рабочем каталоге"
-#: builtin/clone.c:808
+#: builtin/clone.c:753
+msgid "unable to write parameters to config file"
+msgstr "не удалоÑÑŒ запиÑать параметры в файл конфигурации"
+
+#: builtin/clone.c:816
msgid "cannot repack to clean up"
msgstr "не удалоÑÑŒ выполнить перепаковку Ð´Ð»Ñ Ð¾Ñ‡Ð¸Ñтки"
-#: builtin/clone.c:810
+#: builtin/clone.c:818
msgid "cannot unlink temporary alternates file"
msgstr "не удалоÑÑŒ отÑоединить временные альтернативные файлы"
-#: builtin/clone.c:842
+#: builtin/clone.c:850
msgid "Too many arguments."
msgstr "Слишком много аргументов."
-#: builtin/clone.c:846
+#: builtin/clone.c:854
msgid "You must specify a repository to clone."
msgstr "Ð’Ñ‹ должны указать репозиторий Ð´Ð»Ñ ÐºÐ»Ð¾Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ."
-#: builtin/clone.c:857
+#: builtin/clone.c:865
#, c-format
msgid "--bare and --origin %s options are incompatible."
msgstr "--bare и --origin %s Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать одновременно."
-#: builtin/clone.c:860
+#: builtin/clone.c:868
msgid "--bare and --separate-git-dir are incompatible."
msgstr "--bare и --separate-git-dir Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать одновременно."
-#: builtin/clone.c:873
+#: builtin/clone.c:881
#, c-format
msgid "repository '%s' does not exist"
msgstr "репозиторий «%s» не ÑущеÑтвует"
-#: builtin/clone.c:879 builtin/fetch.c:1166
+#: builtin/clone.c:887 builtin/fetch.c:1174
#, c-format
msgid "depth %s is not a positive number"
msgstr "глубина %s не ÑвлÑетÑÑ Ð¿Ð¾Ð»Ð¾Ð¶Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ð¼ чиÑлом"
-#: builtin/clone.c:889
+#: builtin/clone.c:897
#, c-format
msgid "destination path '%s' already exists and is not an empty directory."
msgstr "целевой путь «%s» уже ÑущеÑтвует и не ÑвлÑетÑÑ Ð¿ÑƒÑтым каталогом."
-#: builtin/clone.c:899
+#: builtin/clone.c:907
#, c-format
msgid "working tree '%s' already exists."
msgstr "рабочий каталог «%s» уже ÑущеÑтвует."
-#: builtin/clone.c:914 builtin/clone.c:925 builtin/submodule--helper.c:224
-#: builtin/worktree.c:221 builtin/worktree.c:248
+#: builtin/clone.c:922 builtin/clone.c:933 builtin/submodule--helper.c:218
+#: builtin/worktree.c:219 builtin/worktree.c:246
#, c-format
msgid "could not create leading directories of '%s'"
msgstr "не удалоÑÑŒ Ñоздать родительÑкие каталоги Ð´Ð»Ñ Â«%s»"
-#: builtin/clone.c:917
+#: builtin/clone.c:925
#, c-format
msgid "could not create work tree dir '%s'"
msgstr "не удалоÑÑŒ Ñоздать рабочий каталог «%s»"
-#: builtin/clone.c:935
+#: builtin/clone.c:943
#, c-format
msgid "Cloning into bare repository '%s'...\n"
msgstr "Клонирование в голый репозиторий «%s»…\n"
-#: builtin/clone.c:937
+#: builtin/clone.c:945
#, c-format
msgid "Cloning into '%s'...\n"
msgstr "Клонирование в «%s»…\n"
-#: builtin/clone.c:975
+#: builtin/clone.c:984
msgid "--depth is ignored in local clones; use file:// instead."
msgstr "--depth игнорируетÑÑ Ð½Ð° локальных клонах; вмеÑто Ñтого иÑпользуйте file://."
-#: builtin/clone.c:978
+#: builtin/clone.c:987
msgid "source repository is shallow, ignoring --local"
msgstr "иÑходный репозиторий ÑвлÑетÑÑ Ñ‡Ð°Ñтичным, --local игнорируетÑÑ"
-#: builtin/clone.c:983
+#: builtin/clone.c:992
msgid "--local is ignored"
msgstr "--local игнорируетÑÑ"
-#: builtin/clone.c:987
+#: builtin/clone.c:996
#, c-format
msgid "Don't know how to clone %s"
msgstr "Ðе знаю как клонировать %s"
-#: builtin/clone.c:1036 builtin/clone.c:1044
+#: builtin/clone.c:1045 builtin/clone.c:1053
#, c-format
msgid "Remote branch %s not found in upstream %s"
msgstr "ВнешнÑÑ Ð²ÐµÑ‚ÐºÐ° %s не найдена в вышеÑтоÑщем репозитории %s"
-#: builtin/clone.c:1047
+#: builtin/clone.c:1056
msgid "You appear to have cloned an empty repository."
msgstr "Похоже, что вы клонировали пуÑтой репозиторий."
@@ -4754,11 +4929,11 @@ msgstr "у коммита «%s» отÑутÑтвует автор в загол
#: builtin/commit.c:582
#, c-format
msgid "commit '%s' has malformed author line"
-msgstr "у коммита «%s» автор в неверном формате"
+msgstr "у коммита «%s» Ñтрока автора в неправильном формате"
#: builtin/commit.c:601
msgid "malformed --author parameter"
-msgstr "параметр --author в неверном формате"
+msgstr "параметр --author в неправильном формате"
#: builtin/commit.c:609
#, c-format
@@ -4776,7 +4951,7 @@ msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð²Ñ‹Ð±Ñ€Ð°Ñ‚ÑŒ Ñимвол комментариÑ, котÐ
msgid "could not lookup commit %s"
msgstr "не удалоÑÑŒ запроÑить коммит %s"
-#: builtin/commit.c:702 builtin/shortlog.c:273
+#: builtin/commit.c:702 builtin/shortlog.c:285
#, c-format
msgid "(reading log message from standard input)\n"
msgstr "(чтение файла журнала из Ñтандартного ввода)\n"
@@ -4944,8 +5119,8 @@ msgstr "кратко показать ÑтатуÑ"
msgid "show branch information"
msgstr "показать информацию о верÑии"
-#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:544
-#: builtin/worktree.c:423
+#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:512
+#: builtin/worktree.c:430
msgid "machine-readable output"
msgstr "машиночитаемый вывод"
@@ -4994,7 +5169,7 @@ msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ñ€Ð°Ð·Ð¾Ð±Ñ€Ð°Ñ‚ÑŒ новоÑозданный коммит"
#: builtin/commit.c:1477
msgid "detached HEAD"
-msgstr "отделенный HEAD"
+msgstr "отделённый HEAD"
#: builtin/commit.c:1480
msgid " (root-commit)"
@@ -5032,8 +5207,8 @@ msgstr "дата"
msgid "override date for commit"
msgstr "подменить дату коммита"
-#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:392
-#: builtin/notes.c:555 builtin/tag.c:349
+#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:395
+#: builtin/notes.c:558 builtin/tag.c:349
msgid "message"
msgstr "Ñообщение"
@@ -5066,7 +5241,7 @@ msgstr "иÑпользовать форматированное Ñообщени
msgid "the commit is authored by me now (used with -C/-c/--amend)"
msgstr "коммит теперь за моим авторÑтвом (Ñ Ð¸Ñпользованием -C/-c/--amend)"
-#: builtin/commit.c:1588 builtin/log.c:1216 builtin/revert.c:86
+#: builtin/commit.c:1588 builtin/log.c:1219 builtin/revert.c:86
msgid "add Signed-off-by:"
msgstr "добавить Signed-off-by:"
@@ -5090,7 +5265,7 @@ msgstr "как удалÑÑ‚ÑŒ пробелы и #комментарии из ÑÐ
msgid "include status in commit message template"
msgstr "включить ÑÑ‚Ð°Ñ‚ÑƒÑ Ñ„Ð°Ð¹Ð»Ð¾Ð² в шаблон ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð¼Ð¸Ñ‚Ð°"
-#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:156
+#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:160
#: builtin/revert.c:93
msgid "GPG sign commit"
msgstr "подпиÑать коммит Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ GPG"
@@ -5178,139 +5353,143 @@ msgid ""
"not exceeded, and then \"git reset HEAD\" to recover."
msgstr "Репозиторий был обновлен, но не удалоÑÑŒ запиÑать файл new_index. УдоÑтоверьтеÑÑŒ, что на диÑке еÑÑ‚ÑŒ Ñвободное меÑто и квота не иÑчерпана, а поÑле Ñтого запуÑтите «git reset HEAD» Ð´Ð»Ñ Ð²Ð¾ÑÑтановлениÑ."
-#: builtin/config.c:8
+#: builtin/config.c:9
msgid "git config [<options>]"
msgstr "git config [<опции>]"
-#: builtin/config.c:54
+#: builtin/config.c:56
msgid "Config file location"
msgstr "Размещение файла конфигурации"
-#: builtin/config.c:55
+#: builtin/config.c:57
msgid "use global config file"
msgstr "иÑпользовать глобальный файл конфигурации"
-#: builtin/config.c:56
+#: builtin/config.c:58
msgid "use system config file"
msgstr "иÑпользовать ÑиÑтемный файл конфигурации"
-#: builtin/config.c:57
+#: builtin/config.c:59
msgid "use repository config file"
msgstr "иÑпользовать файл конфигурации репозиториÑ"
-#: builtin/config.c:58
+#: builtin/config.c:60
msgid "use given config file"
msgstr "иÑпользовать указанный файл конфигурации"
-#: builtin/config.c:59
+#: builtin/config.c:61
msgid "blob-id"
msgstr "идент-двоичн-объекта"
-#: builtin/config.c:59
+#: builtin/config.c:61
msgid "read config from given blob object"
msgstr "прочитать наÑтройки из указанного двоичного объекта"
-#: builtin/config.c:60
+#: builtin/config.c:62
msgid "Action"
msgstr "ДейÑтвие"
-#: builtin/config.c:61
+#: builtin/config.c:63
msgid "get value: name [value-regex]"
msgstr "получить значение: Ð¸Ð¼Ñ [шаблон-значений]"
-#: builtin/config.c:62
+#: builtin/config.c:64
msgid "get all values: key [value-regex]"
msgstr "получить вÑе значениÑ: ключ [шаблон-значений]"
-#: builtin/config.c:63
+#: builtin/config.c:65
msgid "get values for regexp: name-regex [value-regex]"
msgstr "получить Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾ шаблону: шаблон-имен [шаблон-значений]"
-#: builtin/config.c:64
+#: builtin/config.c:66
msgid "get value specific for the URL: section[.var] URL"
msgstr "получить значение, Ñпецифичное Ð´Ð»Ñ URL: раздел[.переменнаÑ] URL"
-#: builtin/config.c:65
+#: builtin/config.c:67
msgid "replace all matching variables: name value [value_regex]"
msgstr "заменить вÑе ÑоответÑтвующие переменные: Ð¸Ð¼Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ [шаблон-значений]"
-#: builtin/config.c:66
+#: builtin/config.c:68
msgid "add a new variable: name value"
msgstr "добавить новую переменную: Ð¸Ð¼Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ"
-#: builtin/config.c:67
+#: builtin/config.c:69
msgid "remove a variable: name [value-regex]"
msgstr "удалить переменную: Ð¸Ð¼Ñ [шаблон-значений]"
-#: builtin/config.c:68
+#: builtin/config.c:70
msgid "remove all matches: name [value-regex]"
msgstr "удалить вÑе Ñовпадающие: Ð¸Ð¼Ñ [шаблон-значений]"
-#: builtin/config.c:69
+#: builtin/config.c:71
msgid "rename section: old-name new-name"
msgstr "переименовать раздел: Ñтарое-Ð¸Ð¼Ñ Ð½Ð¾Ð²Ð¾Ðµ-имÑ"
-#: builtin/config.c:70
+#: builtin/config.c:72
msgid "remove a section: name"
msgstr "удалить раздел: имÑ"
-#: builtin/config.c:71
+#: builtin/config.c:73
msgid "list all"
msgstr "показать веÑÑŒ ÑпиÑок"
-#: builtin/config.c:72
+#: builtin/config.c:74
msgid "open an editor"
msgstr "открыть в редакторе"
-#: builtin/config.c:73
+#: builtin/config.c:75
msgid "find the color configured: slot [default]"
msgstr "найти наÑтроенный цвет: раздел [по-умолчанию]"
-#: builtin/config.c:74
+#: builtin/config.c:76
msgid "find the color setting: slot [stdout-is-tty]"
msgstr "проверить, ÑущеÑтвует ли наÑтроенный цвет: раздел [stdout-еÑÑ‚ÑŒ-tty]"
-#: builtin/config.c:75
+#: builtin/config.c:77
msgid "Type"
msgstr "Тип"
-#: builtin/config.c:76
+#: builtin/config.c:78
msgid "value is \"true\" or \"false\""
msgstr "значение — Ñто «true» (правда) или «false» (ложь)"
-#: builtin/config.c:77
+#: builtin/config.c:79
msgid "value is decimal number"
msgstr "значение — Ñто деÑÑтичное чиÑло"
-#: builtin/config.c:78
+#: builtin/config.c:80
msgid "value is --bool or --int"
msgstr "значение — Ñто --bool или --int"
-#: builtin/config.c:79
+#: builtin/config.c:81
msgid "value is a path (file or directory name)"
msgstr "значение — Ñто путь (к файлу или каталогу)"
-#: builtin/config.c:80
+#: builtin/config.c:82
msgid "Other"
msgstr "Другое"
-#: builtin/config.c:81
+#: builtin/config.c:83
msgid "terminate values with NUL byte"
msgstr "завершать Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ ÐУЛЕВЫМ байтом"
-#: builtin/config.c:82
+#: builtin/config.c:84
msgid "show variable names only"
msgstr "показывать только имена переменных"
-#: builtin/config.c:83
+#: builtin/config.c:85
msgid "respect include directives on lookup"
msgstr "учитывать директивы include (Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²) при запроÑе"
-#: builtin/config.c:303
+#: builtin/config.c:86
+msgid "show origin of config (file, standard input, blob, command line)"
+msgstr "показать иÑточник наÑтройки (файл, Ñтандартный ввод, двоичный объект, ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð°Ñ Ñтрока)"
+
+#: builtin/config.c:328
msgid "unable to parse default color value"
msgstr "не удалоÑÑŒ разобрать значение цвета по умолчанию"
-#: builtin/config.c:441
+#: builtin/config.c:469
#, c-format
msgid ""
"# This is Git's per-user configuration file.\n"
@@ -5320,7 +5499,7 @@ msgid ""
"#\temail = %s\n"
msgstr "# Это файл конфигурации Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Git.\n[user]\n# ПожалуйÑта, адаптируйте и раÑкомментируйте Ñледующие Ñтроки:\n#\tuser = %s\n#\temail = %s\n"
-#: builtin/config.c:575
+#: builtin/config.c:611
#, c-format
msgid "cannot create configuration file %s"
msgstr "не удалоÑÑŒ Ñоздать файл конфигурации %s"
@@ -5564,247 +5743,251 @@ msgstr "git fetch --multiple [<опции>] [(<репозиторий> | <гру
msgid "git fetch --all [<options>]"
msgstr "git fetch --all [<опции>]"
-#: builtin/fetch.c:90 builtin/pull.c:162
+#: builtin/fetch.c:92 builtin/pull.c:166
msgid "fetch from all remotes"
msgstr "извлечь Ñо вÑех внешних репозиториев"
-#: builtin/fetch.c:92 builtin/pull.c:165
+#: builtin/fetch.c:94 builtin/pull.c:169
msgid "append to .git/FETCH_HEAD instead of overwriting"
msgstr "допиÑать к .git/FETCH_HEAD вмеÑто перезапиÑи"
-#: builtin/fetch.c:94 builtin/pull.c:168
+#: builtin/fetch.c:96 builtin/pull.c:172
msgid "path to upload pack on remote end"
msgstr "путь к программе упаковки пакета на машине Ñ Ð²Ð½ÐµÑˆÐ½Ð¸Ð¼ репозиторием"
-#: builtin/fetch.c:95 builtin/pull.c:170
+#: builtin/fetch.c:97 builtin/pull.c:174
msgid "force overwrite of local branch"
msgstr "Ð¿Ñ€Ð¸Ð½ÑƒÐ´Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿Ð¸ÑÑŒ локальной ветки"
-#: builtin/fetch.c:97
+#: builtin/fetch.c:99
msgid "fetch from multiple remotes"
msgstr "извлечь Ñ Ð½ÐµÑкольких внешних репозиториев"
-#: builtin/fetch.c:99 builtin/pull.c:172
+#: builtin/fetch.c:101 builtin/pull.c:176
msgid "fetch all tags and associated objects"
msgstr "извлечь вÑе метки и ÑвÑзанные объекты"
-#: builtin/fetch.c:101
+#: builtin/fetch.c:103
msgid "do not fetch all tags (--no-tags)"
msgstr "не извлекать вÑе метки (--no-tags)"
-#: builtin/fetch.c:103 builtin/pull.c:175
+#: builtin/fetch.c:105
+msgid "number of submodules fetched in parallel"
+msgstr "количеÑтво подмодулей, которые будут Ñкачаны парралельно"
+
+#: builtin/fetch.c:107 builtin/pull.c:179
msgid "prune remote-tracking branches no longer on remote"
msgstr "почиÑтить отÑлеживаемые внешние ветки, которых уже нет на внешнем репозитории"
-#: builtin/fetch.c:104 builtin/pull.c:178
+#: builtin/fetch.c:108 builtin/pull.c:182
msgid "on-demand"
msgstr "по требованию"
-#: builtin/fetch.c:105 builtin/pull.c:179
+#: builtin/fetch.c:109 builtin/pull.c:183
msgid "control recursive fetching of submodules"
msgstr "управление рекурÑивным извлечением подмодулей"
-#: builtin/fetch.c:109 builtin/pull.c:184
+#: builtin/fetch.c:113 builtin/pull.c:191
msgid "keep downloaded pack"
msgstr "оÑтавить загруженный пакет данных"
-#: builtin/fetch.c:111
+#: builtin/fetch.c:115
msgid "allow updating of HEAD ref"
msgstr "разрешить обновление ÑÑылки HEAD"
-#: builtin/fetch.c:114 builtin/pull.c:187
+#: builtin/fetch.c:118 builtin/pull.c:194
msgid "deepen history of shallow clone"
msgstr "Ð³Ð»ÑƒÐ±Ð¾ÐºÐ°Ñ Ð¸ÑÑ‚Ð¾Ñ€Ð¸Ñ Ñ‡Ð°Ñтичного клона"
-#: builtin/fetch.c:116 builtin/pull.c:190
+#: builtin/fetch.c:120 builtin/pull.c:197
msgid "convert to a complete repository"
msgstr "преобразовать в полный репозиторий"
-#: builtin/fetch.c:118 builtin/log.c:1233
+#: builtin/fetch.c:122 builtin/log.c:1236
msgid "dir"
msgstr "каталог"
-#: builtin/fetch.c:119
+#: builtin/fetch.c:123
msgid "prepend this to submodule path output"
msgstr "приÑоединÑÑ‚ÑŒ Ñто Ñпереди к выводу путей подмодулÑ"
-#: builtin/fetch.c:122
+#: builtin/fetch.c:126
msgid "default mode for recursion"
msgstr "режим по умолчанию Ð´Ð»Ñ Ñ€ÐµÐºÑƒÑ€Ñии"
-#: builtin/fetch.c:124 builtin/pull.c:193
+#: builtin/fetch.c:128 builtin/pull.c:200
msgid "accept refs that update .git/shallow"
msgstr "принимать ÑÑылки, которые обновлÑÑŽÑ‚ .git/shallow"
-#: builtin/fetch.c:125 builtin/pull.c:195
+#: builtin/fetch.c:129 builtin/pull.c:202
msgid "refmap"
msgstr "ÑоответÑтвие-ÑÑылок"
-#: builtin/fetch.c:126 builtin/pull.c:196
+#: builtin/fetch.c:130 builtin/pull.c:203
msgid "specify fetch refmap"
msgstr "указать ÑоответÑтвие ÑÑылок при извлечении"
-#: builtin/fetch.c:378
+#: builtin/fetch.c:386
msgid "Couldn't find remote ref HEAD"
msgstr "Ðе удалоÑÑŒ найти ÑÑылку HEAD на внешнем репозитории"
-#: builtin/fetch.c:458
+#: builtin/fetch.c:466
#, c-format
msgid "object %s not found"
msgstr "объект %s не найден"
-#: builtin/fetch.c:463
+#: builtin/fetch.c:471
msgid "[up to date]"
msgstr "[актуально]"
-#: builtin/fetch.c:477
+#: builtin/fetch.c:485
#, c-format
msgid "! %-*s %-*s -> %s (can't fetch in current branch)"
msgstr "! %-*s %-*s → %s (не удалоÑÑŒ извлечь в текущую ветку)"
-#: builtin/fetch.c:478 builtin/fetch.c:566
+#: builtin/fetch.c:486 builtin/fetch.c:574
msgid "[rejected]"
msgstr "[отклонено]"
-#: builtin/fetch.c:489
+#: builtin/fetch.c:497
msgid "[tag update]"
msgstr "[обновление метки]"
-#: builtin/fetch.c:491 builtin/fetch.c:526 builtin/fetch.c:544
+#: builtin/fetch.c:499 builtin/fetch.c:534 builtin/fetch.c:552
msgid " (unable to update local ref)"
msgstr " (не удалоÑÑŒ обновить локальную ÑÑылку)"
-#: builtin/fetch.c:509
+#: builtin/fetch.c:517
msgid "[new tag]"
msgstr "[Ð½Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ°]"
-#: builtin/fetch.c:512
+#: builtin/fetch.c:520
msgid "[new branch]"
msgstr "[Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ‚ÐºÐ°]"
-#: builtin/fetch.c:515
+#: builtin/fetch.c:523
msgid "[new ref]"
msgstr "[Ð½Ð¾Ð²Ð°Ñ ÑÑылка]"
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
msgid "unable to update local ref"
msgstr "не удалоÑÑŒ обновить локальную ÑÑылку"
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
msgid "forced update"
msgstr "принудительное обновление"
-#: builtin/fetch.c:568
+#: builtin/fetch.c:576
msgid "(non-fast-forward)"
msgstr "(без перемотки вперед)"
-#: builtin/fetch.c:602 builtin/fetch.c:843
+#: builtin/fetch.c:610 builtin/fetch.c:851
#, c-format
msgid "cannot open %s: %s\n"
msgstr "не удалоÑÑŒ открыть %s: %s\n"
-#: builtin/fetch.c:611
+#: builtin/fetch.c:619
#, c-format
msgid "%s did not send all necessary objects\n"
msgstr "%s не отправил вÑе необходимые объекты\n"
-#: builtin/fetch.c:629
+#: builtin/fetch.c:637
#, c-format
msgid "reject %s because shallow roots are not allowed to be updated"
msgstr "%s отклонено из-за того, что чаÑтичные корни не разрешено обновлÑÑ‚ÑŒ"
-#: builtin/fetch.c:716 builtin/fetch.c:808
+#: builtin/fetch.c:724 builtin/fetch.c:816
#, c-format
msgid "From %.*s\n"
msgstr "Из %.*s\n"
-#: builtin/fetch.c:727
+#: builtin/fetch.c:735
#, c-format
msgid ""
"some local refs could not be updated; try running\n"
" 'git remote prune %s' to remove any old, conflicting branches"
msgstr "не удалоÑÑŒ обновить некоторые локальные ÑÑылки; попробуйте запуÑтить «git remote prune %s», чтобы почиÑтить Ñтарые, конфликтующие ветки"
-#: builtin/fetch.c:779
+#: builtin/fetch.c:787
#, c-format
msgid " (%s will become dangling)"
msgstr " (%s будет виÑÑщей веткой)"
-#: builtin/fetch.c:780
+#: builtin/fetch.c:788
#, c-format
msgid " (%s has become dangling)"
msgstr " (%s Ñтала виÑÑщей веткой)"
-#: builtin/fetch.c:812
+#: builtin/fetch.c:820
msgid "[deleted]"
msgstr "[удалено]"
-#: builtin/fetch.c:813 builtin/remote.c:1040
+#: builtin/fetch.c:821 builtin/remote.c:1025
msgid "(none)"
msgstr "(нет)"
-#: builtin/fetch.c:833
+#: builtin/fetch.c:841
#, c-format
msgid "Refusing to fetch into current branch %s of non-bare repository"
msgstr "Отказ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð² текущую ветку %s не голого репозиториÑ"
-#: builtin/fetch.c:852
+#: builtin/fetch.c:860
#, c-format
msgid "Option \"%s\" value \"%s\" is not valid for %s"
msgstr "Ðеправильное значение «%2$s» Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° «%1$s» Ð´Ð»Ñ %3$s"
-#: builtin/fetch.c:855
+#: builtin/fetch.c:863
#, c-format
msgid "Option \"%s\" is ignored for %s\n"
msgstr "Параметр «%s» игнорируетÑÑ Ð´Ð»Ñ %s\n"
-#: builtin/fetch.c:911
+#: builtin/fetch.c:920
#, c-format
msgid "Don't know how to fetch from %s"
msgstr "Ðе знаю как извлечь Ñ %s"
-#: builtin/fetch.c:1072
+#: builtin/fetch.c:1080
#, c-format
msgid "Fetching %s\n"
msgstr "Извлечение из %s\n"
-#: builtin/fetch.c:1074 builtin/remote.c:96
+#: builtin/fetch.c:1082 builtin/remote.c:96
#, c-format
msgid "Could not fetch %s"
msgstr "Ðе удалоÑÑŒ извлечь %s"
-#: builtin/fetch.c:1092
+#: builtin/fetch.c:1100
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:1115
+#: builtin/fetch.c:1123
msgid "You need to specify a tag name."
msgstr "Вам нужно указать Ð¸Ð¼Ñ Ð¼ÐµÑ‚ÐºÐ¸."
-#: builtin/fetch.c:1157
+#: builtin/fetch.c:1165
msgid "--depth and --unshallow cannot be used together"
msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать одновременно --depth и --unshallow"
-#: builtin/fetch.c:1159
+#: builtin/fetch.c:1167
msgid "--unshallow on a complete repository does not make sense"
msgstr "--unshallow не имеет ÑмыÑла на полном репозитории"
-#: builtin/fetch.c:1179
+#: builtin/fetch.c:1187
msgid "fetch --all does not take a repository argument"
msgstr "fetch --all не принимает Ð¸Ð¼Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ ÐºÐ°Ðº аргумент"
-#: builtin/fetch.c:1181
+#: builtin/fetch.c:1189
msgid "fetch --all does not make sense with refspecs"
msgstr "fetch --all не имеет ÑмыÑла при указании Ñпецификаций ÑÑылок"
-#: builtin/fetch.c:1192
+#: builtin/fetch.c:1200
#, c-format
msgid "No such remote or remote group: %s"
msgstr "Ðет такого внешнего Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð¸Ð»Ð¸ группы: %s"
-#: builtin/fetch.c:1200
+#: builtin/fetch.c:1208
msgid "Fetching a group and specifying refspecs does not make sense"
msgstr "Получение группы и указание Ñпецификаций ÑÑылок не имеет ÑмыÑла"
@@ -6020,259 +6203,273 @@ msgstr "ИмеетÑÑ Ñлишком много объектов, на кото
msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]"
msgstr "git grep [<опции>] [-e] <шаблон> [<редакциÑ>…] [[--] <путь>…]"
-#: builtin/grep.c:218
+#: builtin/grep.c:219
#, c-format
msgid "grep: failed to create thread: %s"
msgstr "grep: Ñбой ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÐ°: %s"
-#: builtin/grep.c:441 builtin/grep.c:476
+#: builtin/grep.c:277
+#, c-format
+msgid "invalid number of threads specified (%d) for %s"
+msgstr "указано недопуÑтимое количеÑтво потоков (%d) Ð´Ð»Ñ %s"
+
+#: builtin/grep.c:452 builtin/grep.c:487
#, c-format
msgid "unable to read tree (%s)"
msgstr "не удалоÑÑŒ прочитать дерево (%s)"
-#: builtin/grep.c:491
+#: builtin/grep.c:502
#, c-format
msgid "unable to grep from object of type %s"
msgstr "не удалоÑÑŒ выполнить grep из объекта типа %s"
-#: builtin/grep.c:547
+#: builtin/grep.c:558
#, c-format
msgid "switch `%c' expects a numerical value"
msgstr "параметр «%c» ожидает чиÑловое значение"
-#: builtin/grep.c:564
+#: builtin/grep.c:575
#, c-format
msgid "cannot open '%s'"
msgstr "не удалоÑÑŒ открыть «%s»"
-#: builtin/grep.c:633
+#: builtin/grep.c:644
msgid "search in index instead of in the work tree"
msgstr "иÑкать в индекÑе, а не в рабочем каталоге"
-#: builtin/grep.c:635
+#: builtin/grep.c:646
msgid "find in contents not managed by git"
msgstr "иÑкать в Ñодержимом не управлÑемым git"
-#: builtin/grep.c:637
+#: builtin/grep.c:648
msgid "search in both tracked and untracked files"
msgstr "иÑкать и в отÑлеживаемых, и в неотÑлеживаемых файлах"
-#: builtin/grep.c:639
+#: builtin/grep.c:650
msgid "ignore files specified via '.gitignore'"
msgstr "игнорировать файлы указанные в «.gitignore»"
-#: builtin/grep.c:642
+#: builtin/grep.c:653
msgid "show non-matching lines"
msgstr "иÑкать в неÑовпадающих Ñтроках"
-#: builtin/grep.c:644
+#: builtin/grep.c:655
msgid "case insensitive matching"
msgstr "без учета региÑтра"
-#: builtin/grep.c:646
+#: builtin/grep.c:657
msgid "match patterns only at word boundaries"
msgstr "иÑкать ÑÐ¾Ð²Ð¿Ð°Ð´ÐµÐ½Ð¸Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð° только на границах Ñлов"
-#: builtin/grep.c:648
+#: builtin/grep.c:659
msgid "process binary files as text"
msgstr "обработка двоичных файлов как текÑта"
-#: builtin/grep.c:650
+#: builtin/grep.c:661
msgid "don't match patterns in binary files"
msgstr "не иÑкать ÑÐ¾Ð²Ð¿Ð°Ð´ÐµÐ½Ð¸Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð° в двоичных файлах"
-#: builtin/grep.c:653
+#: builtin/grep.c:664
msgid "process binary files with textconv filters"
msgstr "обрабатыватьÑÑ Ð´Ð²Ð¾Ð¸Ñ‡Ð½Ñ‹Ðµ файлы Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ фильтров textconv"
-#: builtin/grep.c:655
+#: builtin/grep.c:666
msgid "descend at most <depth> levels"
msgstr "на глубине макÑиму <глубина> уровней"
-#: builtin/grep.c:659
+#: builtin/grep.c:670
msgid "use extended POSIX regular expressions"
msgstr "иÑпользовать раÑширенные регулÑрные Ð²Ñ‹Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ POSIX"
-#: builtin/grep.c:662
+#: builtin/grep.c:673
msgid "use basic POSIX regular expressions (default)"
msgstr "иÑпользовать базовые регулÑрные Ð²Ñ‹Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ POSIX (по умолчанию)"
-#: builtin/grep.c:665
+#: builtin/grep.c:676
msgid "interpret patterns as fixed strings"
msgstr "интерпретировать шаблоны как фикÑированные Ñтроки"
-#: builtin/grep.c:668
+#: builtin/grep.c:679
msgid "use Perl-compatible regular expressions"
msgstr "иÑпользовать Perl-ÑовмеÑтимые регулÑрные выражениÑ"
-#: builtin/grep.c:671
+#: builtin/grep.c:682
msgid "show line numbers"
msgstr "вывеÑти номера Ñтрок"
-#: builtin/grep.c:672
+#: builtin/grep.c:683
msgid "don't show filenames"
msgstr "не выводить имена файлов"
-#: builtin/grep.c:673
+#: builtin/grep.c:684
msgid "show filenames"
msgstr "выводить имена файлов"
-#: builtin/grep.c:675
+#: builtin/grep.c:686
msgid "show filenames relative to top directory"
msgstr "выводить имена файлов отноÑительно каталога репозиториÑ"
-#: builtin/grep.c:677
+#: builtin/grep.c:688
msgid "show only filenames instead of matching lines"
msgstr "выводить только имена файлов, а не Ñовпадающие Ñтроки"
-#: builtin/grep.c:679
+#: builtin/grep.c:690
msgid "synonym for --files-with-matches"
msgstr "Ñиноним Ð´Ð»Ñ --files-with-matches"
-#: builtin/grep.c:682
+#: builtin/grep.c:693
msgid "show only the names of files without match"
msgstr "выводить только неÑовпадающие имена файлов"
-#: builtin/grep.c:684
+#: builtin/grep.c:695
msgid "print NUL after filenames"
msgstr "выводить двоичный ÐОЛЬ поÑле ÑпиÑка имен файлов"
-#: builtin/grep.c:686
+#: builtin/grep.c:697
msgid "show the number of matches instead of matching lines"
msgstr "выводить количеÑтво Ñовпадений, а не Ñовпадающие Ñтроки"
-#: builtin/grep.c:687
+#: builtin/grep.c:698
msgid "highlight matches"
msgstr "подÑвечивать ÑовпадениÑ"
-#: builtin/grep.c:689
+#: builtin/grep.c:700
msgid "print empty line between matches from different files"
msgstr "выводить пуÑтую Ñтроку поÑле Ñовпадений из разных файлов"
-#: builtin/grep.c:691
+#: builtin/grep.c:702
msgid "show filename only once above matches from same file"
msgstr "выводить Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° только раз на неÑколько Ñовпадений в одном файле"
-#: builtin/grep.c:694
+#: builtin/grep.c:705
msgid "show <n> context lines before and after matches"
msgstr "показать <n> Ñтрок контекÑта перед и поÑле ÑовпадениÑ"
-#: builtin/grep.c:697
+#: builtin/grep.c:708
msgid "show <n> context lines before matches"
msgstr "показать <n> Ñтрок контекÑта перед Ñовпадением"
-#: builtin/grep.c:699
+#: builtin/grep.c:710
msgid "show <n> context lines after matches"
msgstr "показать <n> Ñтрок контекÑта поÑле ÑовпадениÑ"
-#: builtin/grep.c:700
+#: builtin/grep.c:712
+msgid "use <n> worker threads"
+msgstr "иÑпользовать <кол> рабочих потоков"
+
+#: builtin/grep.c:713
msgid "shortcut for -C NUM"
msgstr "тоже, что и -C КОЛИЧЕСТВО"
-#: builtin/grep.c:703
+#: builtin/grep.c:716
msgid "show a line with the function name before matches"
msgstr "показать Ñтроку Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ функции перед Ñовпадением"
-#: builtin/grep.c:705
+#: builtin/grep.c:718
msgid "show the surrounding function"
msgstr "показать окружающую функцию"
-#: builtin/grep.c:708
+#: builtin/grep.c:721
msgid "read patterns from file"
msgstr "прочитать шаблоны из файла"
-#: builtin/grep.c:710
+#: builtin/grep.c:723
msgid "match <pattern>"
msgstr "поиÑк ÑоответÑтвий Ñ <шаблоном>"
-#: builtin/grep.c:712
+#: builtin/grep.c:725
msgid "combine patterns specified with -e"
msgstr "объединить шаблоны указанные Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ -e"
-#: builtin/grep.c:724
+#: builtin/grep.c:737
msgid "indicate hit with exit status without output"
msgstr "ничего не выводить, указать на Ñовпадение Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ кода выхода"
-#: builtin/grep.c:726
+#: builtin/grep.c:739
msgid "show only matches from files that match all patterns"
msgstr "показать только ÑÐ¾Ð²Ð¿Ð°Ð´ÐµÐ½Ð¸Ñ Ð¸Ð· файлов в которых Ñовпадают вÑе шаблоны"
-#: builtin/grep.c:728
+#: builtin/grep.c:741
msgid "show parse tree for grep expression"
msgstr "показать дерево разбора Ð´Ð»Ñ Ð²Ñ‹Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð¸Ñка"
-#: builtin/grep.c:732
+#: builtin/grep.c:745
msgid "pager"
msgstr "пейджер"
-#: builtin/grep.c:732
+#: builtin/grep.c:745
msgid "show matching files in the pager"
msgstr "показать Ñовпадающие файлы Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ программы-пейджера"
-#: builtin/grep.c:735
+#: builtin/grep.c:748
msgid "allow calling of grep(1) (ignored by this build)"
msgstr "разрешить вызов grep(1) (игнорируетÑÑ Ð² Ñтой Ñборке)"
-#: builtin/grep.c:793
+#: builtin/grep.c:811
msgid "no pattern given."
msgstr "не задан шаблон."
-#: builtin/grep.c:851
+#: builtin/grep.c:843 builtin/index-pack.c:1475
+#, c-format
+msgid "invalid number of threads specified (%d)"
+msgstr "указано неправильное количеÑтво потоков (%d)"
+
+#: builtin/grep.c:873
msgid "--open-files-in-pager only works on the worktree"
msgstr "--open-files-in-pager работает только в рабочем каталоге"
-#: builtin/grep.c:877
+#: builtin/grep.c:899
msgid "--cached or --untracked cannot be used with --no-index."
msgstr "--cached или --untracked Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать одновременно Ñ --no-index."
-#: builtin/grep.c:882
+#: builtin/grep.c:904
msgid "--no-index or --untracked cannot be used with revs."
msgstr "--no-index или --untracked Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать одновременно Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸ÐµÐ¼ ревизии."
-#: builtin/grep.c:885
+#: builtin/grep.c:907
msgid "--[no-]exclude-standard cannot be used for tracked contents."
msgstr "--[no-]exclude-standard не может иÑпользоватьÑÑ Ð´Ð»Ñ Ð¾Ñ‚Ñлеживаемого Ñодержимого."
-#: builtin/grep.c:893
+#: builtin/grep.c:915
msgid "both --cached and trees are given."
msgstr "указано одновременно --cached и дерево."
-#: builtin/hash-object.c:80
+#: builtin/hash-object.c:81
msgid ""
"git hash-object [-t <type>] [-w] [--path=<file> | --no-filters] [--stdin] "
"[--] <file>..."
msgstr "git hash-object [-t <тип>] [-w] [--path=<файл> | --no-filters] [--stdin] [--] <файл>…"
-#: builtin/hash-object.c:81
+#: builtin/hash-object.c:82
msgid "git hash-object --stdin-paths"
msgstr "git hash-object --stdin-paths"
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
msgid "type"
msgstr "тип"
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
msgid "object type"
msgstr "тип объекта"
-#: builtin/hash-object.c:93
+#: builtin/hash-object.c:94
msgid "write the object into the object database"
msgstr "запиÑÑŒ объекта в базу данных объектов"
-#: builtin/hash-object.c:95
+#: builtin/hash-object.c:96
msgid "read the object from stdin"
msgstr "прочитать объект из Ñтандартного ввода"
-#: builtin/hash-object.c:97
+#: builtin/hash-object.c:98
msgid "store file as is without filters"
msgstr "Ñохранить файл без иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð¾Ð²"
-#: builtin/hash-object.c:98
+#: builtin/hash-object.c:99
msgid ""
"just hash any random garbage to create corrupt objects for debugging Git"
-msgstr "хешировать любой муÑор и Ñоздавать поврежденные объекты Ð´Ð»Ñ Ð¾Ñ‚Ð»Ð°Ð´ÐºÐ¸ Git"
+msgstr "Ñ…Ñшировать любой муÑор и Ñоздавать поврежденные объекты Ð´Ð»Ñ Ð¾Ñ‚Ð»Ð°Ð´ÐºÐ¸ Git"
-#: builtin/hash-object.c:99
+#: builtin/hash-object.c:100
msgid "process file as it were from this path"
msgstr "обработать файл так, будто он находитÑÑ Ð¿Ð¾ указанному пути"
@@ -6323,75 +6520,75 @@ msgstr "верÑÐ¸Ñ emacsclient «%d» Ñлишком ÑÑ‚Ð°Ñ€Ð°Ñ (< 22)."
msgid "failed to exec '%s': %s"
msgstr "Ñбой при запуÑке «%s»: %s"
-#: builtin/help.c:208
+#: builtin/help.c:205
#, c-format
msgid ""
"'%s': path for unsupported man viewer.\n"
"Please consider using 'man.<tool>.cmd' instead."
msgstr "«%s»: путь Ð´Ð»Ñ Ð½ÐµÐ¿Ð¾Ð´Ð´ÐµÑ€Ð¶Ð¸Ð²Ð°ÐµÐ¼Ð¾Ð¹ программы проÑмотра man.\nВмеÑто Ñтого иÑпользуйте «man.<программа>.cmd»."
-#: builtin/help.c:220
+#: builtin/help.c:217
#, c-format
msgid ""
"'%s': cmd for supported man viewer.\n"
"Please consider using 'man.<tool>.path' instead."
msgstr "«%s»: команда Ð´Ð»Ñ Ð½ÐµÐ¿Ð¾Ð´Ð´ÐµÑ€Ð¶Ð¸Ð²Ð°ÐµÐ¼Ð¾Ð¹ программы проÑмотра man.\nВмеÑто Ñтого иÑпользуйте «man.<программа>.path»."
-#: builtin/help.c:337
+#: builtin/help.c:334
#, c-format
msgid "'%s': unknown man viewer."
msgstr "«%s»: неизвеÑÑ‚Ð½Ð°Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð° проÑмотра man."
-#: builtin/help.c:354
+#: builtin/help.c:351
msgid "no man viewer handled the request"
msgstr "программа проÑмотра man не обработала запроÑ"
-#: builtin/help.c:362
+#: builtin/help.c:359
msgid "no info viewer handled the request"
msgstr "программа проÑмотра info не обработала запроÑ"
-#: builtin/help.c:411
+#: builtin/help.c:408
msgid "Defining attributes per path"
msgstr "Определение атрибутов Ð´Ð»Ñ Ð¿ÑƒÑ‚ÐµÐ¹ файлов или каталогов"
-#: builtin/help.c:412
+#: builtin/help.c:409
msgid "Everyday Git With 20 Commands Or So"
msgstr "ПовÑедневный Git Ñ 20 командами или около того"
-#: builtin/help.c:413
+#: builtin/help.c:410
msgid "A Git glossary"
msgstr "ГлоÑÑарий Git"
-#: builtin/help.c:414
+#: builtin/help.c:411
msgid "Specifies intentionally untracked files to ignore"
msgstr "Указание Ñпециально игнорируемых файлов"
-#: builtin/help.c:415
+#: builtin/help.c:412
msgid "Defining submodule properties"
msgstr "Определение ÑвойÑтв подмодулей"
-#: builtin/help.c:416
+#: builtin/help.c:413
msgid "Specifying revisions and ranges for Git"
msgstr "Указание редакций и диапазонов Ð´Ð»Ñ Git"
-#: builtin/help.c:417
+#: builtin/help.c:414
msgid "A tutorial introduction to Git (for version 1.5.1 or newer)"
msgstr "Учебное введение в Git (Ð´Ð»Ñ Ð²ÐµÑ€Ñии 1.5.1 или новее)"
-#: builtin/help.c:418
+#: builtin/help.c:415
msgid "An overview of recommended workflows with Git"
msgstr "Обзор рекомендуемых поÑледовательноÑтей выполнÑемых дейÑтвий Ñ Git"
-#: builtin/help.c:430
+#: builtin/help.c:427
msgid "The common Git guides are:\n"
msgstr "ОÑновные руководÑтва Git:\n"
-#: builtin/help.c:451 builtin/help.c:468
+#: builtin/help.c:448 builtin/help.c:465
#, c-format
msgid "usage: %s%s"
msgstr "иÑпользование: %s%s"
-#: builtin/help.c:484
+#: builtin/help.c:481
#, c-format
msgid "`git %s' is aliased to `%s'"
msgstr "«git %s» — Ñто Ñокращение Ð´Ð»Ñ Â«%s»"
@@ -6633,27 +6830,22 @@ msgstr "не удалоÑÑŒ Ñохранить файл индекÑа"
msgid "bad pack.indexversion=%<PRIu32>"
msgstr "плохой pack.indexversion=%<PRIu32>"
-#: builtin/index-pack.c:1475
-#, c-format
-msgid "invalid number of threads specified (%d)"
-msgstr "указано неправильное количеÑтво потоков (%d)"
-
-#: builtin/index-pack.c:1479 builtin/index-pack.c:1663
+#: builtin/index-pack.c:1479 builtin/index-pack.c:1664
#, c-format
msgid "no threads support, ignoring %s"
msgstr "нет поддержки потоков, игнорирование %s"
-#: builtin/index-pack.c:1537
+#: builtin/index-pack.c:1538
#, c-format
msgid "Cannot open existing pack file '%s'"
msgstr "Ðе удалоÑÑŒ открыть ÑущеÑтвующий файл пакета «%s»"
-#: builtin/index-pack.c:1539
+#: builtin/index-pack.c:1540
#, c-format
msgid "Cannot open existing pack idx file for '%s'"
msgstr "Ðе удалоÑÑŒ открыть ÑущеÑтвующий файл индекÑа Ð´Ð»Ñ Â«%s»"
-#: builtin/index-pack.c:1586
+#: builtin/index-pack.c:1587
#, c-format
msgid "non delta: %d object"
msgid_plural "non delta: %d objects"
@@ -6662,7 +6854,7 @@ msgstr[1] "не дельты: %d объекта"
msgstr[2] "не дельты: %d объектов"
msgstr[3] "не дельты: %d объектов"
-#: builtin/index-pack.c:1593
+#: builtin/index-pack.c:1594
#, c-format
msgid "chain length = %d: %lu object"
msgid_plural "chain length = %d: %lu objects"
@@ -6671,26 +6863,26 @@ msgstr[1] "длина цепочки = %d: %lu объекта"
msgstr[2] "длина цепочки = %d: %lu объектов"
msgstr[3] "длина цепочки = %d: %lu объектов"
-#: builtin/index-pack.c:1623
+#: builtin/index-pack.c:1624
msgid "Cannot come back to cwd"
msgstr "Ðе удалоÑÑŒ вернутьÑÑ Ð² текущий рабочий каталог"
-#: builtin/index-pack.c:1675 builtin/index-pack.c:1678
-#: builtin/index-pack.c:1690 builtin/index-pack.c:1694
+#: builtin/index-pack.c:1676 builtin/index-pack.c:1679
+#: builtin/index-pack.c:1691 builtin/index-pack.c:1695
#, c-format
msgid "bad %s"
msgstr "плохой %s"
-#: builtin/index-pack.c:1708
+#: builtin/index-pack.c:1709
msgid "--fix-thin cannot be used without --stdin"
msgstr "--fix-thin Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать без --stdin"
-#: builtin/index-pack.c:1712 builtin/index-pack.c:1721
+#: builtin/index-pack.c:1713 builtin/index-pack.c:1722
#, c-format
msgid "packfile name '%s' does not end with '.pack'"
msgstr "Ð¸Ð¼Ñ Ð¿Ð°ÐºÐµÑ‚Ð° «%s» не оканчиваетÑÑ Ð½Ð° «.pack»"
-#: builtin/index-pack.c:1729
+#: builtin/index-pack.c:1730
msgid "--verify with no packfile name given"
msgstr "--verify без ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð¸Ð¼ÐµÐ½Ð¸ файла пакета"
@@ -6764,7 +6956,7 @@ msgstr "%s%s репозиторий Git в %s%s\n"
#: builtin/init-db.c:400
msgid "Reinitialized existing"
-msgstr "Ð ÐµÐ¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ ÑущеÑтвующего"
+msgstr "ÐŸÐµÑ€ÐµÐ¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ ÑущеÑтвующего"
#: builtin/init-db.c:400
msgid "Initialized empty"
@@ -6812,22 +7004,30 @@ msgstr "Ðе удалоÑÑŒ получить доÑтуп к рабочему к
#: builtin/interpret-trailers.c:15
msgid ""
-"git interpret-trailers [--trim-empty] [(--trailer <token>[(=|:)<value>])...]"
-" [<file>...]"
-msgstr "git interpret-trailers [--trim-empty] [(--trailer <лекÑема>[(=|:)<значение>])…] [<файл>…]"
+"git interpret-trailers [--in-place] [--trim-empty] [(--trailer "
+"<token>[(=|:)<value>])...] [<file>...]"
+msgstr "git interpret-trailers [--in-place] [--trim-empty] [(--trailer <ключ>[(=|:)<значение>])…] [<файл>…]"
+
+#: builtin/interpret-trailers.c:26
+msgid "edit files in place"
+msgstr "редактировать файлы на меÑте"
-#: builtin/interpret-trailers.c:25
+#: builtin/interpret-trailers.c:27
msgid "trim empty trailers"
msgstr "удалÑÑ‚ÑŒ пуÑтые завершители"
-#: builtin/interpret-trailers.c:26
+#: builtin/interpret-trailers.c:28
msgid "trailer"
msgstr "завершитель"
-#: builtin/interpret-trailers.c:27
+#: builtin/interpret-trailers.c:29
msgid "trailer(s) to add"
msgstr "завершители Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ"
+#: builtin/interpret-trailers.c:42
+msgid "no input file given for in-place editing"
+msgstr "ничего не передано, Ð´Ð»Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² на меÑте"
+
#: builtin/log.c:43
msgid "git log [<options>] [<revision-range>] [[--] <path>...]"
msgstr "git log [<опции>] [<диапазон-редакций>] [[--] <путь>…]"
@@ -6881,326 +7081,373 @@ msgstr "Ðе удалоÑÑŒ прочитать объект %s"
msgid "Unknown type: %d"
msgstr "ÐеизвеÑтный тип объекта: %d"
-#: builtin/log.c:714
+#: builtin/log.c:715
msgid "format.headers without value"
msgstr "в format.headers не указано значение"
-#: builtin/log.c:798
+#: builtin/log.c:801
msgid "name of output directory is too long"
msgstr "Ñлишком длинное Ð¸Ð¼Ñ Ð²Ñ‹Ñ…Ð¾Ð´Ð½Ð¾Ð³Ð¾ каталога"
-#: builtin/log.c:813
+#: builtin/log.c:816
#, c-format
msgid "Cannot open patch file %s"
msgstr "Ðу удалоÑÑŒ открыть файл изменений %s"
-#: builtin/log.c:827
+#: builtin/log.c:830
msgid "Need exactly one range."
msgstr "Ðужен только один диапазон."
-#: builtin/log.c:837
+#: builtin/log.c:840
msgid "Not a range."
msgstr "Ðе ÑвлÑетÑÑ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½Ð¾Ð¼."
-#: builtin/log.c:943
+#: builtin/log.c:946
msgid "Cover letter needs email format"
msgstr "Сопроводительное пиÑьмо должно быть в формате Ñлектронной почты"
-#: builtin/log.c:1022
+#: builtin/log.c:1025
#, c-format
msgid "insane in-reply-to: %s"
msgstr "ошибка в поле in-reply-to: %s"
-#: builtin/log.c:1050
+#: builtin/log.c:1053
msgid "git format-patch [<options>] [<since> | <revision-range>]"
msgstr "git format-patch [<опции>] [<начинаÑ-Ñ> | <диапазон-редакций>]"
-#: builtin/log.c:1095
+#: builtin/log.c:1098
msgid "Two output directories?"
msgstr "Два выходных каталога?"
-#: builtin/log.c:1211
+#: builtin/log.c:1214
msgid "use [PATCH n/m] even with a single patch"
msgstr "выводить [PATCH n/m] даже когда один патч"
-#: builtin/log.c:1214
+#: builtin/log.c:1217
msgid "use [PATCH] even with multiple patches"
msgstr "выводить [PATCH] даже когда неÑколько патчей"
-#: builtin/log.c:1218
+#: builtin/log.c:1221
msgid "print patches to standard out"
msgstr "выводить патчи на Ñтандартный вывод"
-#: builtin/log.c:1220
+#: builtin/log.c:1223
msgid "generate a cover letter"
msgstr "генерировать Ñопроводительное пиÑьмо"
-#: builtin/log.c:1222
+#: builtin/log.c:1225
msgid "use simple number sequence for output file names"
msgstr "иÑпользовать проÑтую поÑледовательноÑÑ‚ÑŒ чиÑел Ð´Ð»Ñ Ð¸Ð¼ÐµÐ½ выходных файлов"
-#: builtin/log.c:1223
+#: builtin/log.c:1226
msgid "sfx"
msgstr "ÑуффикÑ"
-#: builtin/log.c:1224
+#: builtin/log.c:1227
msgid "use <sfx> instead of '.patch'"
msgstr "иÑпользовать ÑÑƒÑ„Ñ„Ð¸ÐºÑ <ÑуффикÑ> вмеÑто «.patch»"
-#: builtin/log.c:1226
+#: builtin/log.c:1229
msgid "start numbering patches at <n> instead of 1"
msgstr "начать нумерацию патчей Ñ <n>, а не Ñ 1"
-#: builtin/log.c:1228
+#: builtin/log.c:1231
msgid "mark the series as Nth re-roll"
msgstr "пометить Ñерию как Ñнную попытку"
-#: builtin/log.c:1230
+#: builtin/log.c:1233
msgid "Use [<prefix>] instead of [PATCH]"
msgstr "ИÑпользовать [<префикÑ>] вмеÑто [PATCH]"
-#: builtin/log.c:1233
+#: builtin/log.c:1236
msgid "store resulting files in <dir>"
msgstr "Ñохранить результирующие файлы в <каталог>"
-#: builtin/log.c:1236
+#: builtin/log.c:1239
msgid "don't strip/add [PATCH]"
msgstr "не обрезать/добавлÑÑ‚ÑŒ [PATCH]"
-#: builtin/log.c:1239
+#: builtin/log.c:1242
msgid "don't output binary diffs"
msgstr "не выводить двоичные различиÑ"
-#: builtin/log.c:1241
+#: builtin/log.c:1244
msgid "output all-zero hash in From header"
-msgstr "выводить пуÑтую хеш-Ñумму в поле Отправитель"
+msgstr "выводить нулевую Ñ…Ñш-Ñумму в заголовке From"
-#: builtin/log.c:1243
+#: builtin/log.c:1246
msgid "don't include a patch matching a commit upstream"
msgstr "не включать патч, еÑли коммит уже еÑÑ‚ÑŒ в вышеÑтоÑщей ветке"
-#: builtin/log.c:1245
+#: builtin/log.c:1248
msgid "show patch format instead of default (patch + stat)"
msgstr "выводить в формате патча, а не в Ñтандартном (патч + ÑтатиÑтика)"
-#: builtin/log.c:1247
+#: builtin/log.c:1250
msgid "Messaging"
msgstr "Передача Ñообщений"
-#: builtin/log.c:1248
+#: builtin/log.c:1251
msgid "header"
msgstr "заголовок"
-#: builtin/log.c:1249
+#: builtin/log.c:1252
msgid "add email header"
msgstr "добавить заголовок ÑообщениÑ"
-#: builtin/log.c:1250 builtin/log.c:1252
+#: builtin/log.c:1253 builtin/log.c:1255
msgid "email"
msgstr "почта"
-#: builtin/log.c:1250
+#: builtin/log.c:1253
msgid "add To: header"
msgstr "добавить заголовок To:"
-#: builtin/log.c:1252
+#: builtin/log.c:1255
msgid "add Cc: header"
msgstr "добавить заголовок Cc:"
-#: builtin/log.c:1254
+#: builtin/log.c:1257
msgid "ident"
msgstr "идентификатор"
-#: builtin/log.c:1255
+#: builtin/log.c:1258
msgid "set From address to <ident> (or committer ident if absent)"
msgstr "уÑтановить Ð°Ð´Ñ€ÐµÑ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð¸Ñ‚ÐµÐ»Ñ Ð½Ð° <идентификатор> (или на идентификатор коммитера, еÑли отÑутÑтвует)"
-#: builtin/log.c:1257
+#: builtin/log.c:1260
msgid "message-id"
msgstr "идентификатор-ÑообщениÑ"
-#: builtin/log.c:1258
+#: builtin/log.c:1261
msgid "make first mail a reply to <message-id>"
msgstr "Ñделать первое пиÑьмо ответом на <идентификатор-ÑообщениÑ>"
-#: builtin/log.c:1259 builtin/log.c:1262
+#: builtin/log.c:1262 builtin/log.c:1265
msgid "boundary"
msgstr "вложение"
-#: builtin/log.c:1260
+#: builtin/log.c:1263
msgid "attach the patch"
msgstr "приложить патч"
-#: builtin/log.c:1263
+#: builtin/log.c:1266
msgid "inline the patch"
msgstr "включить патч в текÑÑ‚ пиÑьма"
-#: builtin/log.c:1267
+#: builtin/log.c:1270
msgid "enable message threading, styles: shallow, deep"
msgstr "включить в пиÑьмах иерархичноÑÑ‚ÑŒ, Ñтили: shallow (чаÑтичную), deep (глубокую)"
-#: builtin/log.c:1269
+#: builtin/log.c:1272
msgid "signature"
msgstr "подпиÑÑŒ"
-#: builtin/log.c:1270
+#: builtin/log.c:1273
msgid "add a signature"
msgstr "добавить подпиÑÑŒ"
-#: builtin/log.c:1272
+#: builtin/log.c:1275
msgid "add a signature from a file"
msgstr "добавить подпиÑÑŒ из файла"
-#: builtin/log.c:1273
+#: builtin/log.c:1276
msgid "don't print the patch filenames"
msgstr "не выводить имена файлов патчей"
-#: builtin/log.c:1362
+#: builtin/log.c:1365
msgid "-n and -k are mutually exclusive."
msgstr "-n и -k Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать одновременно"
-#: builtin/log.c:1364
+#: builtin/log.c:1367
msgid "--subject-prefix and -k are mutually exclusive."
msgstr "--subject-prefix и -k Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать одновременно."
-#: builtin/log.c:1372
+#: builtin/log.c:1375
msgid "--name-only does not make sense"
msgstr "--name-only не имеет ÑмыÑла"
-#: builtin/log.c:1374
+#: builtin/log.c:1377
msgid "--name-status does not make sense"
msgstr "--name-status не имеет ÑмыÑла"
-#: builtin/log.c:1376
+#: builtin/log.c:1379
msgid "--check does not make sense"
msgstr "--check не имеет ÑмыÑла"
-#: builtin/log.c:1401
+#: builtin/log.c:1407
msgid "standard output, or directory, which one?"
msgstr "Ñтандартный вывод или каталог?"
-#: builtin/log.c:1403
+#: builtin/log.c:1409
#, c-format
msgid "Could not create directory '%s'"
msgstr "Ðе удалоÑÑŒ Ñоздать каталог «%s»"
-#: builtin/log.c:1500
+#: builtin/log.c:1506
#, c-format
msgid "unable to read signature file '%s'"
msgstr "не удалоÑÑŒ прочитать файл подпиÑи «%s»"
-#: builtin/log.c:1563
+#: builtin/log.c:1569
msgid "Failed to create output files"
msgstr "Сбой при Ñоздании выходных файлов"
-#: builtin/log.c:1611
+#: builtin/log.c:1617
msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
msgstr "git cherry [-v] [<вышеÑтоÑщаÑ-ветка> [<голова> [<ограничение>]]]"
-#: builtin/log.c:1665
+#: builtin/log.c:1671
#, c-format
msgid ""
"Could not find a tracked remote branch, please specify <upstream> "
"manually.\n"
msgstr "Ðе удалоÑÑŒ найти отÑлеживаемую внешнюю ветку, укажите <вышеÑтоÑщую-ветку> вручную.\n"
-#: builtin/log.c:1676 builtin/log.c:1678 builtin/log.c:1690
+#: builtin/log.c:1682 builtin/log.c:1684 builtin/log.c:1696
#, c-format
msgid "Unknown commit %s"
msgstr "ÐеизвеÑтный коммит %s"
-#: builtin/ls-files.c:358
+#: builtin/ls-files.c:378
msgid "git ls-files [<options>] [<file>...]"
msgstr "git ls-files [<опции>] [<файл>…]"
-#: builtin/ls-files.c:415
+#: builtin/ls-files.c:427
msgid "identify the file status with tags"
msgstr "выводить имена файлов Ñ Ð¼ÐµÑ‚ÐºÐ°Ð¼Ð¸"
-#: builtin/ls-files.c:417
+#: builtin/ls-files.c:429
msgid "use lowercase letters for 'assume unchanged' files"
msgstr "иÑпользовать Ñимволы в нижнем региÑтре Ð´Ð»Ñ Â«Ð¿Ñ€ÐµÐ´Ð¿Ð¾Ð»Ð¾Ð¶Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾ без изменений» файлов"
-#: builtin/ls-files.c:419
+#: builtin/ls-files.c:431
msgid "show cached files in the output (default)"
msgstr "показывать кÑшированные файлы при выводе (по умолчанию)"
-#: builtin/ls-files.c:421
+#: builtin/ls-files.c:433
msgid "show deleted files in the output"
msgstr "показывать удаленные файлы при выводе"
-#: builtin/ls-files.c:423
+#: builtin/ls-files.c:435
msgid "show modified files in the output"
msgstr "показывать измененные файлы при выводе"
-#: builtin/ls-files.c:425
+#: builtin/ls-files.c:437
msgid "show other files in the output"
msgstr "показывать другие файлы при выводе"
-#: builtin/ls-files.c:427
+#: builtin/ls-files.c:439
msgid "show ignored files in the output"
msgstr "показывать игнорируемые файлы при выводе"
-#: builtin/ls-files.c:430
+#: builtin/ls-files.c:442
msgid "show staged contents' object name in the output"
msgstr "показывать Ð¸Ð¼Ñ Ð¸Ð½Ð´ÐµÐºÑированного объекта на выводе"
-#: builtin/ls-files.c:432
+#: builtin/ls-files.c:444
msgid "show files on the filesystem that need to be removed"
msgstr "показывать файлы в файловой ÑиÑтеме, которые должны быть удалены"
-#: builtin/ls-files.c:434
+#: builtin/ls-files.c:446
msgid "show 'other' directories' names only"
msgstr "показывать только имена у «других» каталогов"
-#: builtin/ls-files.c:437
+#: builtin/ls-files.c:448
+msgid "show line endings of files"
+msgstr "показать концы Ñтрок файлов"
+
+#: builtin/ls-files.c:450
msgid "don't show empty directories"
msgstr "не показывать пуÑтые каталоги"
-#: builtin/ls-files.c:440
+#: builtin/ls-files.c:453
msgid "show unmerged files in the output"
msgstr "показывать не Ñлитые файлы на выводе"
-#: builtin/ls-files.c:442
+#: builtin/ls-files.c:455
msgid "show resolve-undo information"
msgstr "показывать информации о разрешении конфликтов и отмене"
-#: builtin/ls-files.c:444
+#: builtin/ls-files.c:457
msgid "skip files matching pattern"
msgstr "пропуÑтить файлы, ÑоответÑтвующие шаблону"
-#: builtin/ls-files.c:447
+#: builtin/ls-files.c:460
msgid "exclude patterns are read from <file>"
msgstr "прочитать шаблоны иÑÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¸Ð· <файл>"
-#: builtin/ls-files.c:450
+#: builtin/ls-files.c:463
msgid "read additional per-directory exclude patterns in <file>"
msgstr "прочитать дополнительные покаталожные шаблоны иÑÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¸Ð· <файл>"
-#: builtin/ls-files.c:452
+#: builtin/ls-files.c:465
msgid "add the standard git exclusions"
msgstr "добавить Ñтандартные иÑÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ git"
-#: builtin/ls-files.c:455
+#: builtin/ls-files.c:468
msgid "make the output relative to the project top directory"
msgstr "выводить пути отноÑительно корневого каталога проекта"
-#: builtin/ls-files.c:458
+#: builtin/ls-files.c:471
msgid "if any <file> is not in the index, treat this as an error"
msgstr "еÑли какой-либо <файл> не в индекÑе, Ñчитать Ñто ошибкой"
-#: builtin/ls-files.c:459
+#: builtin/ls-files.c:472
msgid "tree-ish"
msgstr "указатель-дерева"
-#: builtin/ls-files.c:460
+#: builtin/ls-files.c:473
msgid "pretend that paths removed since <tree-ish> are still present"
msgstr "притворитьÑÑ, что пути удалены, Ñ‚.к. <указатель-дерева> еще ÑущеÑтвует"
-#: builtin/ls-files.c:462
+#: builtin/ls-files.c:475
msgid "show debugging data"
msgstr "показать отладочную информацию"
+#: builtin/ls-remote.c:7
+msgid ""
+"git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
+" [-q | --quiet] [--exit-code] [--get-url]\n"
+" [--symref] [<repository> [<refs>...]]"
+msgstr "git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<запуÑк>]\n [-q | --quiet] [--exit-code] [--get-url]\n [--symref] [<репозиторий> [<ÑÑылки>…]]"
+
+#: builtin/ls-remote.c:50
+msgid "do not print remote URL"
+msgstr "не выводить URL внешних репозиториев"
+
+#: builtin/ls-remote.c:51 builtin/ls-remote.c:53
+msgid "exec"
+msgstr "запуÑк"
+
+#: builtin/ls-remote.c:52 builtin/ls-remote.c:54
+msgid "path of git-upload-pack on the remote host"
+msgstr "путь к git-upload-pack на внешнем Ñервере"
+
+#: builtin/ls-remote.c:56
+msgid "limit to tags"
+msgstr "ограничить вывод метками"
+
+#: builtin/ls-remote.c:57
+msgid "limit to heads"
+msgstr "ограничить вывод указателÑми на ветки"
+
+#: builtin/ls-remote.c:58
+msgid "do not show peeled tags"
+msgstr "не показывать удалённые метки"
+
+#: builtin/ls-remote.c:60
+msgid "take url.<base>.insteadOf into account"
+msgstr "учитывать url.<база>.insteadOf"
+
+#: builtin/ls-remote.c:62
+msgid "exit with exit code 2 if no matching refs are found"
+msgstr "выходить Ñ ÐºÐ¾Ð´Ð¾Ð¼ 2, еÑли ÑоответÑтвующие ÑÑылки не найдены"
+
+#: builtin/ls-remote.c:64
+msgid "show underlying ref in addition to the object pointed by it"
+msgstr "показать также внутреннюю ÑÑылку в дополнение к объекту, на который она указывает"
+
#: builtin/ls-tree.c:28
msgid "git ls-tree [<options>] <tree-ish> [<path>...]"
msgstr "git ls-tree [<опции>] <указатель-дерева> [<путь>…]"
@@ -7268,31 +7515,31 @@ msgstr "ДоÑтупные Ñтратегии:"
msgid "Available custom strategies are:"
msgstr "ДоÑтупные пользовательÑкие Ñтратегии:"
-#: builtin/merge.c:193 builtin/pull.c:119
+#: builtin/merge.c:193 builtin/pull.c:123
msgid "do not show a diffstat at the end of the merge"
msgstr "не выводить ÑтатиÑтику изменений поÑле Ð¾ÐºÐ¾Ð½Ñ‡Ð°Ð½Ð¸Ñ ÑлиÑниÑ"
-#: builtin/merge.c:196 builtin/pull.c:122
+#: builtin/merge.c:196 builtin/pull.c:126
msgid "show a diffstat at the end of the merge"
msgstr "вывеÑти ÑтатиÑтику изменений поÑле Ð¾ÐºÐ¾Ð½Ñ‡Ð°Ð½Ð¸Ñ ÑлиÑниÑ"
-#: builtin/merge.c:197 builtin/pull.c:125
+#: builtin/merge.c:197 builtin/pull.c:129
msgid "(synonym to --stat)"
msgstr "(Ñиноним Ð´Ð»Ñ --stat)"
-#: builtin/merge.c:199 builtin/pull.c:128
+#: builtin/merge.c:199 builtin/pull.c:132
msgid "add (at most <n>) entries from shortlog to merge commit message"
msgstr "добавить (макÑимум <n>) запиÑей из короткого журнала в Ñообщение коммита у ÑлиÑниÑ"
-#: builtin/merge.c:202 builtin/pull.c:131
+#: builtin/merge.c:202 builtin/pull.c:135
msgid "create a single commit instead of doing a merge"
msgstr "Ñоздать один коммит, вмеÑто Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑлиÑниÑ"
-#: builtin/merge.c:204 builtin/pull.c:134
+#: builtin/merge.c:204 builtin/pull.c:138
msgid "perform a commit if the merge succeeds (default)"
msgstr "Ñделать коммит, еÑли ÑлиÑние прошло уÑпешно (по умолчанию)"
-#: builtin/merge.c:206 builtin/pull.c:137
+#: builtin/merge.c:206 builtin/pull.c:141
msgid "edit message before committing"
msgstr "отредактировать Ñообщение перед выполнением коммита"
@@ -7300,28 +7547,28 @@ msgstr "отредактировать Ñообщение перед выполÐ
msgid "allow fast-forward (default)"
msgstr "разрешить перемотку вперед (по умолчанию)"
-#: builtin/merge.c:209 builtin/pull.c:143
+#: builtin/merge.c:209 builtin/pull.c:147
msgid "abort if fast-forward is not possible"
-msgstr "отменить выполнение ÑлиÑниÑ, еÑли перемотка вперед не возможна"
+msgstr "отменить выполнение ÑлиÑниÑ, еÑли перемотка вперед невозможна"
#: builtin/merge.c:213
msgid "Verify that the named commit has a valid GPG signature"
msgstr "Проверить, что указанный коммит имеет верную Ñлектронную подпиÑÑŒ GPG"
-#: builtin/merge.c:214 builtin/notes.c:767 builtin/pull.c:148
+#: builtin/merge.c:214 builtin/notes.c:770 builtin/pull.c:152
#: builtin/revert.c:89
msgid "strategy"
msgstr "ÑтратегиÑ"
-#: builtin/merge.c:215 builtin/pull.c:149
+#: builtin/merge.c:215 builtin/pull.c:153
msgid "merge strategy to use"
msgstr "иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ ÑÑ‚Ñ€Ð°Ñ‚ÐµÐ³Ð¸Ñ ÑлиÑниÑ"
-#: builtin/merge.c:216 builtin/pull.c:152
+#: builtin/merge.c:216 builtin/pull.c:156
msgid "option=value"
msgstr "опциÑ=значение"
-#: builtin/merge.c:217 builtin/pull.c:153
+#: builtin/merge.c:217 builtin/pull.c:157
msgid "option for selected merge strategy"
msgstr "опции Ð´Ð»Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð¾Ð¹ Ñтратегии ÑлиÑниÑ"
@@ -7359,8 +7606,8 @@ msgstr " (нечего уплотнÑÑ‚ÑŒ)"
msgid "Squash commit -- not updating HEAD\n"
msgstr "Уплотнение коммита — не обновлÑÑ HEAD\n"
-#: builtin/merge.c:344 builtin/merge.c:763 builtin/merge.c:975
-#: builtin/merge.c:988
+#: builtin/merge.c:344 builtin/merge.c:764 builtin/merge.c:976
+#: builtin/merge.c:989
#, c-format
msgid "Could not write to '%s'"
msgstr "Ðе удалоÑÑŒ запиÑать в «%s»"
@@ -7378,41 +7625,41 @@ msgstr "Завершение SQUASH_MSG"
msgid "No merge message -- not updating HEAD\n"
msgstr "Ðет ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÑлиÑÐ½Ð¸Ñ â€” не обновлÑем HEAD\n"
-#: builtin/merge.c:447
+#: builtin/merge.c:448
#, c-format
msgid "'%s' does not point to a commit"
msgstr "«%s» не указывает на коммит"
-#: builtin/merge.c:537
+#: builtin/merge.c:538
#, c-format
msgid "Bad branch.%s.mergeoptions string: %s"
msgstr "ÐÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ñтрока branch.%s.mergeoptions: %s"
-#: builtin/merge.c:656
+#: builtin/merge.c:657
msgid "Not handling anything other than two heads merge."
-msgstr "Ðе обрабатываю ничего, кроме ÑлиÑÐ½Ð¸Ñ Ð´Ð²ÑƒÑ… указателей на коммиты."
+msgstr "Ðе обрабатываю ничего, кроме ÑлиÑÐ½Ð¸Ñ Ð´Ð²ÑƒÑ… указателей на ветки."
-#: builtin/merge.c:670
+#: builtin/merge.c:671
#, c-format
msgid "Unknown option for merge-recursive: -X%s"
msgstr "ÐеизвеÑтный параметр merge-recursive: -X%s"
-#: builtin/merge.c:683
+#: builtin/merge.c:684
#, c-format
msgid "unable to write %s"
msgstr "не удалоÑÑŒ запиÑать %s"
-#: builtin/merge.c:772
+#: builtin/merge.c:773
#, c-format
msgid "Could not read from '%s'"
msgstr "Ðе удалоÑÑŒ прочеÑÑ‚ÑŒ из «%s»"
-#: builtin/merge.c:781
+#: builtin/merge.c:782
#, c-format
msgid "Not committing merge; use 'git commit' to complete the merge.\n"
msgstr "Ðе выполнÑÑŽ коммит ÑлиÑниÑ; иÑпользуйте «git commit» Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ ÑлиÑниÑ.\n"
-#: builtin/merge.c:787
+#: builtin/merge.c:788
#, c-format
msgid ""
"Please enter a commit message to explain why this merge is necessary,\n"
@@ -7422,157 +7669,157 @@ msgid ""
"the commit.\n"
msgstr "ПожалуйÑта, введите Ñообщение коммита, Ð´Ð»Ñ Ð¾Ð±ÑŠÑÑнениÑ, зачем нужно\nÑто ÑлиÑние, оÑобенно, еÑли Ñто ÑлиÑние обновленной вышеÑтоÑщей\nветки в тематичеÑкую ветку.\n\nСтроки, начинающиеÑÑ Ñ Â«%c» будут проигнорированы, а пуÑтое\nÑообщение отменÑет процеÑÑ ÐºÐ¾Ð¼Ð¼Ð¸Ñ‚Ð°.\n"
-#: builtin/merge.c:811
+#: builtin/merge.c:812
msgid "Empty commit message."
msgstr "ПуÑтое Ñообщение коммита."
-#: builtin/merge.c:823
+#: builtin/merge.c:824
#, c-format
msgid "Wonderful.\n"
msgstr "ПрекраÑно.\n"
-#: builtin/merge.c:878
+#: builtin/merge.c:879
#, c-format
msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
msgstr "Ðе удалоÑÑŒ провеÑти автоматичеÑкое ÑлиÑние; иÑправьте конфликты и Ñделайте коммит результата.\n"
-#: builtin/merge.c:894
+#: builtin/merge.c:895
#, c-format
msgid "'%s' is not a commit"
msgstr "«%s» не ÑвлÑетÑÑ ÐºÐ¾Ð¼Ð¼Ð¸Ñ‚Ð¾Ð¼"
-#: builtin/merge.c:935
+#: builtin/merge.c:936
msgid "No current branch."
msgstr "Ðет текущей ветки."
-#: builtin/merge.c:937
+#: builtin/merge.c:938
msgid "No remote for the current branch."
msgstr "У текущей ветки нет внешнего репозиториÑ."
-#: builtin/merge.c:939
+#: builtin/merge.c:940
msgid "No default upstream defined for the current branch."
msgstr "Ð”Ð»Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ¹ ветки не указана вышеÑтоÑÑ‰Ð°Ñ Ð²ÐµÑ‚ÐºÐ° по умолчанию."
-#: builtin/merge.c:944
+#: builtin/merge.c:945
#, c-format
msgid "No remote-tracking branch for %s from %s"
msgstr "Ðе указана внешнÑÑ Ð¾Ñ‚ÑÐ»ÐµÐ¶Ð¸Ð²Ð°ÐµÐ¼Ð°Ñ Ð²ÐµÑ‚ÐºÐ° Ð´Ð»Ñ %s на %s"
-#: builtin/merge.c:1079
+#: builtin/merge.c:1080
#, c-format
msgid "could not close '%s'"
msgstr "не удалоÑÑŒ закрыть «%s»"
-#: builtin/merge.c:1206
+#: builtin/merge.c:1207
msgid "There is no merge to abort (MERGE_HEAD missing)."
msgstr "Ðет ÑлиÑниÑ, которое можно отменить (отÑутÑтвует файл MERGE_HEAD)."
-#: builtin/merge.c:1222
+#: builtin/merge.c:1223
msgid ""
"You have not concluded your merge (MERGE_HEAD exists).\n"
"Please, commit your changes before you merge."
msgstr "Ð’Ñ‹ не завершили ÑлиÑние (приÑутÑтвует файл MERGE_HEAD).\nВыполните коммит ваших изменений, перед ÑлиÑнием."
-#: builtin/merge.c:1229
+#: builtin/merge.c:1230
msgid ""
"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
"Please, commit your changes before you merge."
msgstr "Ð’Ñ‹ не завершили отбор лучшего (приÑутÑтвует файл CHERRY_PICK_HEAD).\nПожалуйÑта, выполните коммит ваших изменений, перед ÑлиÑнием."
-#: builtin/merge.c:1232
+#: builtin/merge.c:1233
msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
msgstr "Ð’Ñ‹ не завершили отбор лучшего (приÑутÑтвует файл CHERRY_PICK_HEAD)."
-#: builtin/merge.c:1241
+#: builtin/merge.c:1242
msgid "You cannot combine --squash with --no-ff."
msgstr "ÐÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать одновременно --squash и --no-ff."
-#: builtin/merge.c:1249
+#: builtin/merge.c:1250
msgid "No commit specified and merge.defaultToUpstream not set."
msgstr "Коммит не указан и параметр merge.defaultToUpstream не уÑтановлен."
-#: builtin/merge.c:1266
+#: builtin/merge.c:1267
msgid "Squash commit into empty head not supported yet"
-msgstr "Уплотнение коммита в пуÑтой HEAD еще не поддерживаетÑÑ"
+msgstr "Уплотнение коммита в пуÑтую ветку еще не поддерживаетÑÑ"
-#: builtin/merge.c:1268
+#: builtin/merge.c:1269
msgid "Non-fast-forward commit does not make sense into an empty head"
-msgstr "Коммит, не ÑвлÑющийÑÑ Ð¿ÐµÑ€ÐµÐ¼Ð¾Ñ‚ÐºÐ¾Ð¹ вперед, нет ÑмыÑла делать в пуÑтой HEAD."
+msgstr "Коммит, не ÑвлÑющийÑÑ Ð¿ÐµÑ€ÐµÐ¼Ð¾Ñ‚ÐºÐ¾Ð¹ вперед, нет ÑмыÑла делать в пуÑтую ветку."
-#: builtin/merge.c:1274
+#: builtin/merge.c:1275
#, c-format
msgid "%s - not something we can merge"
msgstr "%s не ÑвлÑетÑÑ Ñ‚ÐµÐ¼, что можно Ñлить"
-#: builtin/merge.c:1276
+#: builtin/merge.c:1277
msgid "Can merge only exactly one commit into empty head"
-msgstr "Можно Ñлить Ñтрого один коммит в пуÑтой HEAD."
+msgstr "Можно только один коммит в пуÑтую ветку."
-#: builtin/merge.c:1331
+#: builtin/merge.c:1332
#, c-format
msgid "Commit %s has an untrusted GPG signature, allegedly by %s."
msgstr "Коммит %s Ñодержит не доверенную GPG подпиÑÑŒ, предположительно от %s."
-#: builtin/merge.c:1334
+#: builtin/merge.c:1335
#, c-format
msgid "Commit %s has a bad GPG signature allegedly by %s."
msgstr "Коммит %s Ñодержит плохую GPG подпиÑÑŒ, предположительно от %s."
-#: builtin/merge.c:1337
+#: builtin/merge.c:1338
#, c-format
msgid "Commit %s does not have a GPG signature."
msgstr "Коммит %s не Ñодержит GPG подпиÑÑŒ."
-#: builtin/merge.c:1340
+#: builtin/merge.c:1341
#, c-format
msgid "Commit %s has a good GPG signature by %s\n"
msgstr "Коммит %s Ñодержит дейÑтвительную GPG подпиÑÑŒ, от %s.\n"
-#: builtin/merge.c:1423
+#: builtin/merge.c:1424
#, c-format
msgid "Updating %s..%s\n"
msgstr "Обновление %s..%s\n"
-#: builtin/merge.c:1460
+#: builtin/merge.c:1461
#, c-format
msgid "Trying really trivial in-index merge...\n"
msgstr "Попытка тривиального ÑлиÑÐ½Ð¸Ñ Ð² индекÑе…\n"
-#: builtin/merge.c:1467
+#: builtin/merge.c:1468
#, c-format
msgid "Nope.\n"
msgstr "Ðе вышло.\n"
-#: builtin/merge.c:1499
+#: builtin/merge.c:1500
msgid "Not possible to fast-forward, aborting."
-msgstr "Перемотка вперед не возможна, отмена."
+msgstr "Перемотка вперед невозможна, отмена."
-#: builtin/merge.c:1522 builtin/merge.c:1601
+#: builtin/merge.c:1523 builtin/merge.c:1602
#, c-format
msgid "Rewinding the tree to pristine...\n"
msgstr "Перемотка дерева к иÑходному ÑоÑтоÑнию…\n"
-#: builtin/merge.c:1526
+#: builtin/merge.c:1527
#, c-format
msgid "Trying merge strategy %s...\n"
msgstr "Попытка ÑлиÑÐ½Ð¸Ñ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñтратегии %s…\n"
-#: builtin/merge.c:1592
+#: builtin/merge.c:1593
#, c-format
msgid "No merge strategy handled the merge.\n"
msgstr "Ðи одна ÑÑ‚Ñ€Ð°Ñ‚ÐµÐ³Ð¸Ñ ÑлиÑÐ½Ð¸Ñ Ð½Ðµ обработала ÑлиÑние.\n"
-#: builtin/merge.c:1594
+#: builtin/merge.c:1595
#, c-format
msgid "Merge with strategy %s failed.\n"
msgstr "Сбой при ÑлиÑнии Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñтратегии %s.\n"
-#: builtin/merge.c:1603
+#: builtin/merge.c:1604
#, c-format
msgid "Using the %s to prepare resolving by hand.\n"
msgstr "ИÑпользую %s Ð´Ð»Ñ Ð¿Ð¾Ð´Ð³Ð¾Ñ‚Ð¾Ð²ÐºÐ¸ ручного Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ ÐºÐ¾Ð½Ñ„Ð»Ð¸ÐºÑ‚Ð¾Ð².\n"
-#: builtin/merge.c:1615
+#: builtin/merge.c:1616
#, c-format
msgid "Automatic merge went well; stopped before committing as requested\n"
msgstr "ÐвтоматичеÑкое ÑлиÑние прошло уÑпешно; как и запрашивали, оÑтановлено перед выполнением коммита\n"
@@ -7655,19 +7902,19 @@ msgstr "не предупреждать о конфликтах"
msgid "set labels for file1/orig-file/file2"
msgstr "уÑтановить метки Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»1/ориг-файл/файл2"
-#: builtin/mktree.c:64
+#: builtin/mktree.c:65
msgid "git mktree [-z] [--missing] [--batch]"
msgstr "git mktree [-z] [--missing] [--batch]"
-#: builtin/mktree.c:150
+#: builtin/mktree.c:152
msgid "input is NUL terminated"
-msgstr "ввод отделенный ÐУЛЕВЫМИ Ñимволами"
+msgstr "ввод отделённый ÐУЛЕВЫМИ Ñимволами"
-#: builtin/mktree.c:151 builtin/write-tree.c:24
+#: builtin/mktree.c:153 builtin/write-tree.c:24
msgid "allow missing objects"
msgstr "допуÑтить отÑутÑтвие объектов"
-#: builtin/mktree.c:152
+#: builtin/mktree.c:154
msgid "allow creation of more than one tree"
msgstr "допуÑтить Ñоздание более одного дерева"
@@ -7675,90 +7922,90 @@ msgstr "допуÑтить Ñоздание более одного дерева
msgid "git mv [<options>] <source>... <destination>"
msgstr "git mv [<опции>] <иÑточник>… <назначение>"
-#: builtin/mv.c:69
+#: builtin/mv.c:70
#, c-format
msgid "Directory %s is in index and no submodule?"
msgstr "Каталог %s в индекÑе и не ÑвлÑетÑÑ Ð¿Ð¾Ð´Ð¼Ð¾Ð´ÑƒÐ»ÐµÐ¼?"
-#: builtin/mv.c:71
+#: builtin/mv.c:72
msgid "Please stage your changes to .gitmodules or stash them to proceed"
msgstr "Чтобы продолжить, проиндекÑируйте или ÑпрÑчьте ваши Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² файле .gitmodules"
-#: builtin/mv.c:89
+#: builtin/mv.c:90
#, c-format
msgid "%.*s is in index"
msgstr "%.*s в индеÑе"
-#: builtin/mv.c:111
+#: builtin/mv.c:112
msgid "force move/rename even if target exists"
msgstr "принудительно перемещать/переименовать, даже еÑли цель ÑущеÑтвует"
-#: builtin/mv.c:112
+#: builtin/mv.c:113
msgid "skip move/rename errors"
msgstr "пропуÑкать ошибки при перемещении/переименовании"
-#: builtin/mv.c:151
+#: builtin/mv.c:152
#, c-format
msgid "destination '%s' is not a directory"
msgstr "целевой путь «%s» не ÑвлÑетÑÑ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð¾Ð¼"
-#: builtin/mv.c:162
+#: builtin/mv.c:163
#, c-format
msgid "Checking rename of '%s' to '%s'\n"
msgstr "Проверка Ð¿ÐµÑ€ÐµÐ¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð· «%s» в «%s»\n"
-#: builtin/mv.c:166
+#: builtin/mv.c:167
msgid "bad source"
msgstr "плохой иÑточник"
-#: builtin/mv.c:169
+#: builtin/mv.c:170
msgid "can not move directory into itself"
msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑтить каталог в Ñамого ÑебÑ"
-#: builtin/mv.c:172
+#: builtin/mv.c:173
msgid "cannot move directory over file"
msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑтить каталог в файл"
-#: builtin/mv.c:181
+#: builtin/mv.c:182
msgid "source directory is empty"
msgstr "иÑходный каталог пуÑÑ‚"
-#: builtin/mv.c:206
+#: builtin/mv.c:207
msgid "not under version control"
msgstr "не под верÑионным контролем"
-#: builtin/mv.c:209
+#: builtin/mv.c:210
msgid "destination exists"
msgstr "целевой путь уже ÑущеÑтвует"
-#: builtin/mv.c:217
+#: builtin/mv.c:218
#, c-format
msgid "overwriting '%s'"
msgstr "перезапиÑÑŒ «%s»"
-#: builtin/mv.c:220
+#: builtin/mv.c:221
msgid "Cannot overwrite"
msgstr "Ðе удалоÑÑŒ перезапиÑать"
-#: builtin/mv.c:223
+#: builtin/mv.c:224
msgid "multiple sources for the same target"
msgstr "неÑколько иÑточников Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ целевого пути"
-#: builtin/mv.c:225
+#: builtin/mv.c:226
msgid "destination directory does not exist"
msgstr "целевой каталог не ÑущеÑтвует"
-#: builtin/mv.c:232
+#: builtin/mv.c:233
#, c-format
msgid "%s, source=%s, destination=%s"
msgstr "%s, откуда=%s, куда=%s"
-#: builtin/mv.c:253
+#: builtin/mv.c:254
#, c-format
msgid "Renaming %s to %s\n"
msgstr "Переименование %s в %s\n"
-#: builtin/mv.c:256 builtin/remote.c:728 builtin/repack.c:365
+#: builtin/mv.c:257 builtin/remote.c:714 builtin/repack.c:365
#, c-format
msgid "renaming '%s' failed"
msgstr "Ñбой при переименовании «%s»"
@@ -7951,9 +8198,9 @@ msgid "could not open or read '%s'"
msgstr "не удалоÑÑŒ открыть или прочитать «%s»"
#: builtin/notes.c:253 builtin/notes.c:304 builtin/notes.c:306
-#: builtin/notes.c:366 builtin/notes.c:421 builtin/notes.c:507
-#: builtin/notes.c:512 builtin/notes.c:590 builtin/notes.c:653
-#: builtin/notes.c:877 builtin/tag.c:456
+#: builtin/notes.c:369 builtin/notes.c:424 builtin/notes.c:510
+#: builtin/notes.c:515 builtin/notes.c:593 builtin/notes.c:656
+#: builtin/notes.c:880 builtin/tag.c:456
#, c-format
msgid "Failed to resolve '%s' as a valid ref."
msgstr "Ðе удалоÑÑŒ разрешить «%s» как ÑÑылку."
@@ -7968,146 +8215,146 @@ msgstr "Ðе удалоÑÑŒ прочитать объект «%s»."
msgid "Cannot read note data from non-blob object '%s'."
msgstr "Ðе удалоÑÑŒ прочитать данные заметки из недвоичного объекта «%s»."
-#: builtin/notes.c:359 builtin/notes.c:414 builtin/notes.c:490
-#: builtin/notes.c:502 builtin/notes.c:578 builtin/notes.c:646
-#: builtin/notes.c:942
+#: builtin/notes.c:362 builtin/notes.c:417 builtin/notes.c:493
+#: builtin/notes.c:505 builtin/notes.c:581 builtin/notes.c:649
+#: builtin/notes.c:945
msgid "too many parameters"
msgstr "передано Ñлишком много параметров"
-#: builtin/notes.c:372 builtin/notes.c:659
+#: builtin/notes.c:375 builtin/notes.c:662
#, c-format
msgid "No note found for object %s."
msgstr "Ðе найдена заметка Ð´Ð»Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð° %s."
-#: builtin/notes.c:393 builtin/notes.c:556
+#: builtin/notes.c:396 builtin/notes.c:559
msgid "note contents as a string"
msgstr "текÑтовое Ñодержимое заметки"
-#: builtin/notes.c:396 builtin/notes.c:559
+#: builtin/notes.c:399 builtin/notes.c:562
msgid "note contents in a file"
msgstr "Ñодержимое заметки в файле"
-#: builtin/notes.c:399 builtin/notes.c:562
+#: builtin/notes.c:402 builtin/notes.c:565
msgid "reuse and edit specified note object"
msgstr "иÑпользовать и отредактировать указанный объект заметки"
-#: builtin/notes.c:402 builtin/notes.c:565
+#: builtin/notes.c:405 builtin/notes.c:568
msgid "reuse specified note object"
msgstr "иÑпользовать указанный объект заметки"
-#: builtin/notes.c:405 builtin/notes.c:568
+#: builtin/notes.c:408 builtin/notes.c:571
msgid "allow storing empty note"
msgstr "разрешить Ñохранение пуÑтой заметки"
-#: builtin/notes.c:406 builtin/notes.c:477
+#: builtin/notes.c:409 builtin/notes.c:480
msgid "replace existing notes"
msgstr "заменить ÑущеÑтвующие заметки"
-#: builtin/notes.c:431
+#: builtin/notes.c:434
#, c-format
msgid ""
"Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite "
"existing notes"
msgstr "Ðе удалоÑÑŒ добавить заметку. Ðайдена ÑущеÑÑ‚Ð²ÑƒÑŽÑ‰Ð°Ñ Ð·Ð°Ð¼ÐµÑ‚ÐºÐ° у объекта %s. ИÑпользуйте параметр «-f» Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿Ð¸Ñи ÑущеÑтвующих заметок."
-#: builtin/notes.c:446 builtin/notes.c:525
+#: builtin/notes.c:449 builtin/notes.c:528
#, c-format
msgid "Overwriting existing notes for object %s\n"
msgstr "ПерезапиÑÑŒ ÑущеÑтвующих заметок у объекта %s\n"
-#: builtin/notes.c:457 builtin/notes.c:618 builtin/notes.c:882
+#: builtin/notes.c:460 builtin/notes.c:621 builtin/notes.c:885
#, c-format
msgid "Removing note for object %s\n"
msgstr "Удаление заметки у объекта %s\n"
-#: builtin/notes.c:478
+#: builtin/notes.c:481
msgid "read objects from stdin"
msgstr "прочитать объекты из Ñтандартного ввода"
-#: builtin/notes.c:480
+#: builtin/notes.c:483
msgid "load rewriting config for <command> (implies --stdin)"
msgstr "загрузить наÑтройки перезапиÑи Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ‹ <команда> (включает в ÑÐµÐ±Ñ --stdin)"
-#: builtin/notes.c:498
+#: builtin/notes.c:501
msgid "too few parameters"
msgstr "передано Ñлишком мало параметров"
-#: builtin/notes.c:519
+#: builtin/notes.c:522
#, c-format
msgid ""
"Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite"
" existing notes"
msgstr "Ðе удалоÑÑŒ Ñкопировать заметку. Ðайдена ÑущеÑÑ‚Ð²ÑƒÑŽÑ‰Ð°Ñ Ð·Ð°Ð¼ÐµÑ‚ÐºÐ° у объекта %s. ИÑпользуйте параметр «-f» Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿Ð¸Ñи ÑущеÑтвующих заметок."
-#: builtin/notes.c:531
+#: builtin/notes.c:534
#, c-format
msgid "Missing notes on source object %s. Cannot copy."
msgstr "Ðет заметок у иÑходного объекта %s. ÐÐµÐ»ÑŒÐ·Ñ Ñкопировать."
-#: builtin/notes.c:583
+#: builtin/notes.c:586
#, c-format
msgid ""
"The -m/-F/-c/-C options have been deprecated for the 'edit' subcommand.\n"
"Please use 'git notes add -f -m/-F/-c/-C' instead.\n"
msgstr "Опции -m/-F/-c/-C Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ‹ «edit» уÑтарели.\nИÑпользуйте вмеÑто них «git notes add -f -m/-F/-c/-C».\n"
-#: builtin/notes.c:764
+#: builtin/notes.c:767
msgid "General options"
msgstr "Общие опции"
-#: builtin/notes.c:766
+#: builtin/notes.c:769
msgid "Merge options"
msgstr "Опции ÑлиÑниÑ"
-#: builtin/notes.c:768
+#: builtin/notes.c:771
msgid ""
"resolve notes conflicts using the given strategy "
"(manual/ours/theirs/union/cat_sort_uniq)"
msgstr "разрешить конфликты заметок Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ указанной Ñтратегии (manual/ours/theirs/union/cat_sort_uniq)"
-#: builtin/notes.c:770
+#: builtin/notes.c:773
msgid "Committing unmerged notes"
msgstr "Коммит не Ñлитых заметок"
-#: builtin/notes.c:772
+#: builtin/notes.c:775
msgid "finalize notes merge by committing unmerged notes"
msgstr "завершить ÑлиÑние заметок коммитом не Ñлитых заметок"
-#: builtin/notes.c:774
+#: builtin/notes.c:777
msgid "Aborting notes merge resolution"
msgstr "Отмена Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ ÑлиÑÐ½Ð¸Ñ Ð·Ð°Ð¼ÐµÑ‚Ð¾Ðº"
-#: builtin/notes.c:776
+#: builtin/notes.c:779
msgid "abort notes merge"
msgstr "отменить ÑлиÑние заметок"
-#: builtin/notes.c:853
+#: builtin/notes.c:856
#, c-format
msgid "A notes merge into %s is already in-progress at %s"
msgstr "СлиÑние заметок в %s уже выполнÑетÑÑ Ð½Ð° %s"
-#: builtin/notes.c:880
+#: builtin/notes.c:883
#, c-format
msgid "Object %s has no note\n"
msgstr "У объекта %s нет заметки\n"
-#: builtin/notes.c:892
+#: builtin/notes.c:895
msgid "attempt to remove non-existent note is not an error"
msgstr "попытка ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð½ÐµÑущеÑтвующей заметки не ÑвлÑетÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹"
-#: builtin/notes.c:895
+#: builtin/notes.c:898
msgid "read object names from the standard input"
msgstr "прочитать имена объектов из Ñтандартного ввода"
-#: builtin/notes.c:976
+#: builtin/notes.c:979
msgid "notes-ref"
msgstr "ÑÑылка-на-заметку"
-#: builtin/notes.c:977
+#: builtin/notes.c:980
msgid "use notes from <notes-ref>"
msgstr "иÑпользовать заметку из <ÑÑылка-на-заметку>"
-#: builtin/notes.c:1012 builtin/remote.c:1647
+#: builtin/notes.c:1015 builtin/remote.c:1626
#, c-format
msgid "Unknown subcommand: %s"
msgstr "ÐеизвеÑÑ‚Ð½Ð°Ñ Ð¿Ð¾Ð´ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°: %s"
@@ -8127,165 +8374,165 @@ msgstr "git pack-objects [<опции>…] <имÑ-базы> [< <ÑпиÑок-Ñ
msgid "deflate error (%d)"
msgstr "ошибка ÑÐ¶Ð°Ñ‚Ð¸Ñ (%d)"
-#: builtin/pack-objects.c:771
+#: builtin/pack-objects.c:772
msgid "Writing objects"
msgstr "ЗапиÑÑŒ объектов"
-#: builtin/pack-objects.c:1011
+#: builtin/pack-objects.c:1012
msgid "disabling bitmap writing, as some objects are not being packed"
msgstr "отключение запиÑи битовых карт, так как некоторые объекты не были упакованы"
-#: builtin/pack-objects.c:2171
+#: builtin/pack-objects.c:2172
msgid "Compressing objects"
msgstr "Сжатие объектов"
-#: builtin/pack-objects.c:2568
+#: builtin/pack-objects.c:2558
#, c-format
msgid "unsupported index version %s"
msgstr "Ð½ÐµÐ¿Ð¾Ð´Ð´ÐµÑ€Ð¶Ð¸Ð²Ð°ÐµÐ¼Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð¸Ð½Ð´ÐµÐºÑа %s"
-#: builtin/pack-objects.c:2572
+#: builtin/pack-objects.c:2562
#, c-format
msgid "bad index version '%s'"
msgstr "Ð¿Ð»Ð¾Ñ…Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð¸Ð½Ð´ÐµÐºÑа «%s»"
-#: builtin/pack-objects.c:2602
+#: builtin/pack-objects.c:2592
msgid "do not show progress meter"
msgstr "не выводить прогреÑÑ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ"
-#: builtin/pack-objects.c:2604
+#: builtin/pack-objects.c:2594
msgid "show progress meter"
msgstr "показать прогреÑÑ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ"
-#: builtin/pack-objects.c:2606
+#: builtin/pack-objects.c:2596
msgid "show progress meter during object writing phase"
msgstr "показать прогреÑÑ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð²Ð¾ Ð²Ñ€ÐµÐ¼Ñ Ð·Ð°Ð¿Ð¸Ñи объектов"
-#: builtin/pack-objects.c:2609
+#: builtin/pack-objects.c:2599
msgid "similar to --all-progress when progress meter is shown"
msgstr "похоже на --all-progress при включенном прогреÑÑе выполнениÑ"
-#: builtin/pack-objects.c:2610
+#: builtin/pack-objects.c:2600
msgid "version[,offset]"
msgstr "верÑиÑ[,Ñмещение]"
-#: builtin/pack-objects.c:2611
+#: builtin/pack-objects.c:2601
msgid "write the pack index file in the specified idx format version"
msgstr "запиÑать файл индекÑа пакета в указанной верÑии формата"
-#: builtin/pack-objects.c:2614
+#: builtin/pack-objects.c:2604
msgid "maximum size of each output pack file"
msgstr "макÑимальный размер каждого выходного файла пакета"
-#: builtin/pack-objects.c:2616
+#: builtin/pack-objects.c:2606
msgid "ignore borrowed objects from alternate object store"
msgstr "игнорировать чужие объекты, взÑтые из альтернативного хранилища объектов"
-#: builtin/pack-objects.c:2618
+#: builtin/pack-objects.c:2608
msgid "ignore packed objects"
msgstr "игнорировать упакованные объекты"
-#: builtin/pack-objects.c:2620
+#: builtin/pack-objects.c:2610
msgid "limit pack window by objects"
msgstr "ограничить окно пакета по количеÑтву объектов"
-#: builtin/pack-objects.c:2622
+#: builtin/pack-objects.c:2612
msgid "limit pack window by memory in addition to object limit"
msgstr "дополнительно к количеÑтву объектов ограничить окно пакета по памÑти"
-#: builtin/pack-objects.c:2624
+#: builtin/pack-objects.c:2614
msgid "maximum length of delta chain allowed in the resulting pack"
msgstr "макÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° цепочки дельт в результирующем пакете"
-#: builtin/pack-objects.c:2626
+#: builtin/pack-objects.c:2616
msgid "reuse existing deltas"
msgstr "иÑпользовать повторно ÑущеÑтвующие дельты"
-#: builtin/pack-objects.c:2628
+#: builtin/pack-objects.c:2618
msgid "reuse existing objects"
msgstr "иÑпользовать повторно ÑущеÑтвующие объекты"
-#: builtin/pack-objects.c:2630
+#: builtin/pack-objects.c:2620
msgid "use OFS_DELTA objects"
msgstr "иÑпользовать объекты OFS_DELTA"
-#: builtin/pack-objects.c:2632
+#: builtin/pack-objects.c:2622
msgid "use threads when searching for best delta matches"
msgstr "иÑпользовать многопоточноÑÑ‚ÑŒ при поиÑке лучших Ñовпадений дельт"
-#: builtin/pack-objects.c:2634
+#: builtin/pack-objects.c:2624
msgid "do not create an empty pack output"
msgstr "не Ñоздавать пуÑтые выходные пакеты"
-#: builtin/pack-objects.c:2636
+#: builtin/pack-objects.c:2626
msgid "read revision arguments from standard input"
msgstr "прочитать аргументы редакций из Ñтандартного ввода"
-#: builtin/pack-objects.c:2638
+#: builtin/pack-objects.c:2628
msgid "limit the objects to those that are not yet packed"
msgstr "ограничитьÑÑ Ð¾Ð±ÑŠÐµÐºÑ‚Ð°Ð¼Ð¸, которые еще не упакованы"
-#: builtin/pack-objects.c:2641
+#: builtin/pack-objects.c:2631
msgid "include objects reachable from any reference"
msgstr "включить объекты, которые доÑтижимы по любой из ÑÑылок"
-#: builtin/pack-objects.c:2644
+#: builtin/pack-objects.c:2634
msgid "include objects referred by reflog entries"
msgstr "включить объекты, на которые ÑÑылаютÑÑ Ð·Ð°Ð¿Ð¸Ñи журнала ÑÑылок"
-#: builtin/pack-objects.c:2647
+#: builtin/pack-objects.c:2637
msgid "include objects referred to by the index"
msgstr "включить объекты, на которые ÑÑылаетÑÑ Ð¸Ð½Ð´ÐµÐºÑ"
-#: builtin/pack-objects.c:2650
+#: builtin/pack-objects.c:2640
msgid "output pack to stdout"
msgstr "вывеÑти пакет на Ñтандартный вывод"
-#: builtin/pack-objects.c:2652
+#: builtin/pack-objects.c:2642
msgid "include tag objects that refer to objects to be packed"
msgstr "включить объекты меток, которые ÑÑылаютÑÑ Ð½Ð° упаковываемые объекты"
-#: builtin/pack-objects.c:2654
+#: builtin/pack-objects.c:2644
msgid "keep unreachable objects"
msgstr "ÑохранÑÑ‚ÑŒ ÑÑылки на недоÑтупные объекты"
-#: builtin/pack-objects.c:2655 parse-options.h:142
+#: builtin/pack-objects.c:2645 parse-options.h:142
msgid "time"
msgstr "времÑ"
-#: builtin/pack-objects.c:2656
+#: builtin/pack-objects.c:2646
msgid "unpack unreachable objects newer than <time>"
msgstr "раÑпаковать недоÑтупные объекты, которые новее, чем <времÑ>"
-#: builtin/pack-objects.c:2659
+#: builtin/pack-objects.c:2649
msgid "create thin packs"
msgstr "Ñоздавать тонкие пакеты"
-#: builtin/pack-objects.c:2661
+#: builtin/pack-objects.c:2651
msgid "create packs suitable for shallow fetches"
msgstr "Ñоздавать пакеты, подходÑщие Ð´Ð»Ñ Ñ‡Ð°Ñтичных извлечений"
-#: builtin/pack-objects.c:2663
+#: builtin/pack-objects.c:2653
msgid "ignore packs that have companion .keep file"
msgstr "игнорировать пакеты, Ñ€Ñдом Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼Ð¸ лежит .keep файл"
-#: builtin/pack-objects.c:2665
+#: builtin/pack-objects.c:2655
msgid "pack compression level"
msgstr "уровень ÑÐ¶Ð°Ñ‚Ð¸Ñ Ð¿Ð°ÐºÐµÑ‚Ð°"
-#: builtin/pack-objects.c:2667
+#: builtin/pack-objects.c:2657
msgid "do not hide commits by grafts"
msgstr "не Ñкрывать коммиты ÑращениÑми"
-#: builtin/pack-objects.c:2669
+#: builtin/pack-objects.c:2659
msgid "use a bitmap index if available to speed up counting objects"
msgstr "по возможноÑти иÑпользовать Ð¸Ð½Ð´ÐµÐºÑ Ð² битовых картах, Ð´Ð»Ñ ÑƒÑÐºÐ¾Ñ€ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´Ñчета объектов"
-#: builtin/pack-objects.c:2671
+#: builtin/pack-objects.c:2661
msgid "write a bitmap index together with the pack index"
msgstr "запиÑÑŒ индекÑа в битовых картах вмеÑте Ñ Ð¸Ð½Ð´ÐµÐºÑом пакета"
-#: builtin/pack-objects.c:2762
+#: builtin/pack-objects.c:2752
msgid "Counting objects"
msgstr "ПодÑчет объектов"
@@ -8329,65 +8576,69 @@ msgstr "удалить объекты Ñтарее чем <дата-оконча
msgid "cannot prune in a precious-objects repo"
msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ð¾Ñ‡Ð¸Ñтить неиÑпользуемые объекты в precious-objects репозитории"
-#: builtin/pull.c:69
+#: builtin/pull.c:72
msgid "git pull [<options>] [<repository> [<refspec>...]]"
msgstr "git pull [<опции>] [<репозиторий> [<ÑпецификациÑ-ÑÑылки>…]]"
-#: builtin/pull.c:113
+#: builtin/pull.c:117
msgid "Options related to merging"
msgstr "Опции, ÑвÑзанные Ñо ÑлиÑнием"
-#: builtin/pull.c:116
+#: builtin/pull.c:120
msgid "incorporate changes by rebasing rather than merging"
msgstr "забрать Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ перебазированиÑ, а не ÑлиÑниÑ"
-#: builtin/pull.c:140 builtin/revert.c:105
+#: builtin/pull.c:144 builtin/revert.c:105
msgid "allow fast-forward"
msgstr "разрешить перемотку вперед"
-#: builtin/pull.c:146
+#: builtin/pull.c:150
msgid "verify that the named commit has a valid GPG signature"
msgstr "проверить, что указанный коммит имеет верную Ñлектронную подпиÑÑŒ GPG"
-#: builtin/pull.c:160
+#: builtin/pull.c:164
msgid "Options related to fetching"
-msgstr "Опции, ÑвÑзанные Ñ Ð¸Ð·Ð²Ð»ÐµÑ‡ÐµÐ½Ð¸ÐµÐ¼"
+msgstr "Опции, ÑвÑзанные Ñ Ð¸Ð·Ð²Ð»ÐµÑ‡ÐµÐ½Ð¸ÐµÐ¼ изменений"
+
+#: builtin/pull.c:186
+msgid "number of submodules pulled in parallel"
+msgstr "количеÑтво подмодулей, которые будут получены парралельно"
-#: builtin/pull.c:268
+#: builtin/pull.c:275
#, c-format
msgid "Invalid value for pull.ff: %s"
msgstr "Ðеправильное значение Ð´Ð»Ñ pull.ff: %s"
-#: builtin/pull.c:352
+#: builtin/pull.c:359
msgid "Cannot pull with rebase: You have unstaged changes."
msgstr "Ðе удалоÑÑŒ получить Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸ÐµÐ¼: У Ð²Ð°Ñ ÐµÑÑ‚ÑŒ непроиндекÑированные изменениÑ."
-#: builtin/pull.c:358
+#: builtin/pull.c:365
msgid "Additionally, your index contains uncommitted changes."
msgstr "К тому же, в вашем индекÑе еÑÑ‚ÑŒ незакоммиченные изменениÑ."
-#: builtin/pull.c:360
+#: builtin/pull.c:367
msgid "Cannot pull with rebase: Your index contains uncommitted changes."
msgstr "Ðе удалоÑÑŒ получить Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸ÐµÐ¼: Ð’ вашем индекÑе еÑÑ‚ÑŒ незакоммиченные изменениÑ."
-#: builtin/pull.c:436
+#: builtin/pull.c:443
msgid ""
"There is no candidate for rebasing against among the refs that you just "
"fetched."
msgstr "Ðет претендентов Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ñреди ÑÑылок, которые вы только что получили."
-#: builtin/pull.c:438
+#: builtin/pull.c:445
msgid ""
"There are no candidates for merging among the refs that you just fetched."
msgstr "Ðет претендентов Ð´Ð»Ñ ÑлиÑÐ½Ð¸Ñ Ñреди ÑÑылок, которые вы только что получили."
-#: builtin/pull.c:439
+#: builtin/pull.c:446
msgid ""
"Generally this means that you provided a wildcard refspec which had no\n"
"matches on the remote end."
-msgstr "Обычно Ñто означает, что вы передали Ñпецификацию ÑÑылки Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ шаблона и Ñтот шаблон не Ñовпал ни Ñ Ð¾Ð´Ð½Ð¾Ð¹ из ÑÑылок на внешнем репозитории."
+msgstr "Обычно Ñто означает, что вы передали Ñпецификацию ÑÑылки Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ шаблона и Ñтот шаблон ни Ñ Ñ‡ÐµÐ¼ не Ñовпал на внешнем репозитории."
-#: builtin/pull.c:442
+#: builtin/pull.c:449
#, c-format
msgid ""
"You asked to pull from the remote '%s', but did not specify\n"
@@ -8395,27 +8646,27 @@ msgid ""
"for your current branch, you must specify a branch on the command line."
msgstr "Ð’Ñ‹ попроÑили получить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñо внешнего Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Â«%s», но не указали ветку. Так как Ñто не репозиторий по умолчанию Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ¹ текущей ветки, вы должны указать ветку в командной Ñтроке."
-#: builtin/pull.c:447
+#: builtin/pull.c:454
msgid "You are not currently on a branch."
msgstr "Ð’Ñ‹ ÑÐµÐ¹Ñ‡Ð°Ñ Ð½Ð¸ на одной из веток."
-#: builtin/pull.c:449 builtin/pull.c:464
+#: builtin/pull.c:456 builtin/pull.c:471
msgid "Please specify which branch you want to rebase against."
msgstr "ПожалуйÑта, укажите на какую ветку вы хотите перемеÑтить изменениÑ."
-#: builtin/pull.c:451 builtin/pull.c:466
+#: builtin/pull.c:458 builtin/pull.c:473
msgid "Please specify which branch you want to merge with."
msgstr "ПожалуйÑта, укажите Ñ ÐºÐ°ÐºÐ¾Ð¹ веткой вы хотите Ñлить изменениÑ."
-#: builtin/pull.c:452 builtin/pull.c:467
+#: builtin/pull.c:459 builtin/pull.c:474
msgid "See git-pull(1) for details."
-msgstr "Ð”Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ информации Ñмотрите git-pull(1)."
+msgstr "Ð”Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ информации, Ñмотрите git-pull(1)."
-#: builtin/pull.c:462
+#: builtin/pull.c:469
msgid "There is no tracking information for the current branch."
msgstr "У текущей ветки нет информации об отÑлеживании."
-#: builtin/pull.c:471
+#: builtin/pull.c:478
#, c-format
msgid ""
"If you wish to set tracking information for this branch you can do so with:\n"
@@ -8423,26 +8674,26 @@ msgid ""
" git branch --set-upstream-to=%s/<branch> %s\n"
msgstr "ЕÑли вы хотите указать информацию о отÑлеживаемой ветке, выполните:\n\n git branch --set-upstream-to=%s/<branch> %s\n"
-#: builtin/pull.c:476
+#: builtin/pull.c:483
#, c-format
msgid ""
"Your configuration specifies to merge with the ref '%s'\n"
"from the remote, but no such ref was fetched."
msgstr "Ваша ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ ÑƒÐºÐ°Ð·Ñ‹Ð²Ð°ÐµÑ‚, что нужно Ñлить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñо ÑÑылкой\n«%s» из внешнего репозиториÑ, но Ñ‚Ð°ÐºÐ°Ñ ÑÑылка не была получена."
-#: builtin/pull.c:830
+#: builtin/pull.c:841
msgid "Updating an unborn branch with changes added to the index."
msgstr "Обновление еще не начавшейÑÑ Ð²ÐµÑ‚ÐºÐ¸ Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñми, добавленными в индекÑ."
-#: builtin/pull.c:859
+#: builtin/pull.c:870
#, c-format
msgid ""
"fetch updated the current branch head.\n"
"fast-forwarding your working tree from\n"
"commit %s."
-msgstr "извлечение обновило голову вашей текущей ветки.\nперемотка вашего рабочего каталога\nÑ ÐºÐ¾Ð¼Ð¼Ð¸Ñ‚Ð° %s."
+msgstr "извлечение обновило указатель на вашу текущую ветку.\nперемотка вашего рабочего каталога\nÑ ÐºÐ¾Ð¼Ð¼Ð¸Ñ‚Ð° %s."
-#: builtin/pull.c:864
+#: builtin/pull.c:875
#, c-format
msgid ""
"Cannot fast-forward your working tree.\n"
@@ -8453,11 +8704,11 @@ msgid ""
"to recover."
msgstr "Ðе удалоÑÑŒ перемотать вперёд Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² вашем рабочем каталоге.\nПоÑле того, как вы убедитеÑÑŒ, что вы Ñохранили вÑÑ‘ необходимое из вывода\n$ git diff %s\n, запуÑтите\n$ git reset --hard\nÐ´Ð»Ñ Ð²Ð¾ÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ñходного ÑоÑтоÑниÑ."
-#: builtin/pull.c:879
+#: builtin/pull.c:890
msgid "Cannot merge multiple branches into empty head."
-msgstr "ÐÐµÐ»ÑŒÐ·Ñ Ñлить неÑколько веток в пуÑтой указатель на коммит."
+msgstr "ÐÐµÐ»ÑŒÐ·Ñ Ñлить неÑколько веток в пуÑтой указатель на ветку."
-#: builtin/pull.c:883
+#: builtin/pull.c:894
msgid "Cannot rebase onto multiple branches."
msgstr "Ðевозможно перемеÑтить над неÑколькими ветками."
@@ -8465,21 +8716,21 @@ msgstr "Ðевозможно перемеÑтить над неÑколькимÐ
msgid "git push [<options>] [<repository> [<refspec>...]]"
msgstr "git push [<опции>] [<репозиторий> [<ÑпецификациÑ-ÑÑылки>…]]"
-#: builtin/push.c:88
+#: builtin/push.c:89
msgid "tag shorthand without <tag>"
msgstr "указано Ñокращение tag, но не указана Ñама <метка>"
-#: builtin/push.c:98
+#: builtin/push.c:99
msgid "--delete only accepts plain target ref names"
msgstr "Ð¾Ð¿Ñ†Ð¸Ñ --delete принимает только проÑтые целевые имена ÑÑылок"
-#: builtin/push.c:142
+#: builtin/push.c:143
msgid ""
"\n"
"To choose either option permanently, see push.default in 'git help config'."
msgstr "\nЧтобы выбрать любую из опций на поÑтоÑнной оÑнове, Ñмотрите push.default в «git help config»."
-#: builtin/push.c:145
+#: builtin/push.c:146
#, c-format
msgid ""
"The upstream branch of your current branch does not match\n"
@@ -8494,7 +8745,7 @@ msgid ""
"%s"
msgstr "Ð˜Ð¼Ñ Ð²Ñ‹ÑˆÐµÑтоÑщей ветки и вашей текущей ветки различаютÑÑ. Чтобы отправить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² вышеÑтоÑщую ветку на внешнем репозитории, иÑпользуйте:\n\n git push %s HEAD:%s\n\nЧтобы отправить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² ветку Ñ Ñ‚Ð°ÐºÐ¸Ð¼ же именем на внешнем репозитории, иÑпользуйте:\n\n git push %s %s\n%s"
-#: builtin/push.c:160
+#: builtin/push.c:161
#, c-format
msgid ""
"You are not currently on a branch.\n"
@@ -8502,9 +8753,9 @@ msgid ""
"state now, use\n"
"\n"
" git push %s HEAD:<name-of-remote-branch>\n"
-msgstr "Ð’Ñ‹ ÑÐµÐ¹Ñ‡Ð°Ñ Ð½Ðµ находитеÑÑŒ ни на одной из веток.\nЧтобы отправить иÑторию, ведущую к текущему (отделенный HEAD) ÑоÑтоÑнию, иÑпользуйте\n\n git push %s HEAD:<имÑ-внешней-ветки>\n"
+msgstr "Ð’Ñ‹ ÑÐµÐ¹Ñ‡Ð°Ñ Ð½Ðµ находитеÑÑŒ ни на одной из веток.\nЧтобы отправить иÑторию, ведущую к текущему (отделённый HEAD) ÑоÑтоÑнию, иÑпользуйте\n\n git push %s HEAD:<имÑ-внешней-ветки>\n"
-#: builtin/push.c:174
+#: builtin/push.c:175
#, c-format
msgid ""
"The current branch %s has no upstream branch.\n"
@@ -8513,13 +8764,13 @@ msgid ""
" git push --set-upstream %s %s\n"
msgstr "Ð¢ÐµÐºÑƒÑ‰Ð°Ñ Ð²ÐµÑ‚ÐºÐ° %s не имеет вышеÑтоÑщей ветки.\nЧтобы отправить текущую ветку и уÑтановить внешнюю ветку как вышеÑтоÑщую Ð´Ð»Ñ Ñтой ветки, иÑпользуйте\n\n git push --set-upstream %s %s\n"
-#: builtin/push.c:182
+#: builtin/push.c:183
#, c-format
msgid ""
"The current branch %s has multiple upstream branches, refusing to push."
msgstr "Ваша Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ Ð²ÐµÑ‚ÐºÐ° %s имеет неÑколько вышеÑтоÑщих веток, отказ в отправке изменений."
-#: builtin/push.c:185
+#: builtin/push.c:186
#, c-format
msgid ""
"You are pushing to remote '%s', which is not the upstream of\n"
@@ -8527,86 +8778,62 @@ msgid ""
"to update which remote branch."
msgstr "Ð’Ñ‹ ÑÐµÐ¹Ñ‡Ð°Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð»Ñете Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ð° внешний репозиторий «%s», который не ÑвлÑетÑÑ Ð²Ñ‹ÑˆÐµÑтоÑщим Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ¹ текущей ветки «%s», без ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð³Ð¾, что отправлÑÑ‚ÑŒ и в какую внешнюю ветку."
-#: builtin/push.c:208
-msgid ""
-"push.default is unset; its implicit value has changed in\n"
-"Git 2.0 from 'matching' to 'simple'. To squelch this message\n"
-"and maintain the traditional behavior, use:\n"
-"\n"
-" git config --global push.default matching\n"
-"\n"
-"To squelch this message and adopt the new behavior now, use:\n"
-"\n"
-" git config --global push.default simple\n"
-"\n"
-"When push.default is set to 'matching', git will push local branches\n"
-"to the remote branches that already exist with the same name.\n"
-"\n"
-"Since Git 2.0, Git defaults to the more conservative 'simple'\n"
-"behavior, which only pushes the current branch to the corresponding\n"
-"remote branch that 'git pull' uses to update the current branch.\n"
-"\n"
-"See 'git help config' and search for 'push.default' for further information.\n"
-"(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode\n"
-"'current' instead of 'simple' if you sometimes use older versions of Git)"
-msgstr "push.default не уÑтановлен; его неÑвное значение было изменено в Git верÑии 2.0 Ñ Â«matching» на «simple». Чтобы прекратить вывод Ñтого ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¸ Ñохранить Ñтарое поведение, иÑпользуйте:\n\n git config --global push.default matching\n\nЧтобы прекратить вывод Ñтого ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¸ иÑпользовать новое поведение, иÑпользуйте:\n\n git config --global push.default simple\n\nКогда push.default уÑтановлено в «matching», git будет отправлÑÑ‚ÑŒ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ñ‹Ñ… веток в ÑущеÑтвующие внешние ветки Ñ Ñ‚Ð°ÐºÐ¸Ð¼ же именем.\n\nÐÐ°Ñ‡Ð¸Ð½Ð°Ñ Ñ Git верÑии 2.0, по умолчанию иÑпользуетÑÑ Ð±Ð¾Ð»ÐµÐµ конÑервативное поведение «simple», которое отправлÑет Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ¹ ветки в ÑоответÑтвующую внешнюю ветку, из которой «git pull» забирает изменениÑ.\n\nСмотрите «git help config» и ищите «push.default» Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ информации.\n(режим «simple» поÑвилÑÑ Ð² Git верÑии 1.7.11. ИÑпользуйте похожий режим «current» вмеÑто «simple», еÑли вы иногда иÑпользуете Ñтарые верÑии Git)"
-
-#: builtin/push.c:275
+#: builtin/push.c:242
msgid "You didn't specify any refspecs to push, and push.default is \"nothing\"."
msgstr "Ð’Ñ‹ не указали Ñпецификацию ÑÑылки Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸, а push.default указан как «nothing»."
-#: builtin/push.c:282
+#: builtin/push.c:249
msgid ""
"Updates were rejected because the tip of your current branch is behind\n"
"its remote counterpart. Integrate the remote changes (e.g.\n"
"'git pull ...') before pushing again.\n"
"See the 'Note about fast-forwards' in 'git push --help' for details."
-msgstr "ÐžÐ±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð±Ñ‹Ð»Ð¸ отклонены, так как верхушка вашей текущей ветки\nпозади ее внешней чаÑти. Заберите и Ñлейте внешние Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ \n(например, Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ «git pull …») перед повторной попыткой отправки\nизменений.\nÐ”Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ информации Ñмотрите «Note about fast-forwards»\nв «git push --help»."
+msgstr "ÐžÐ±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð±Ñ‹Ð»Ð¸ отклонены, так как верхушка вашей текущей ветки\nпозади ее внешней чаÑти. Заберите и Ñлейте внешние Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ \n(например, Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ «git pull …») перед повторной попыткой отправки\nизменений.\nÐ”Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ информации, Ñмотрите «Note about fast-forwards»\nв «git push --help»."
-#: builtin/push.c:288
+#: builtin/push.c:255
msgid ""
"Updates were rejected because a pushed branch tip is behind its remote\n"
"counterpart. Check out this branch and integrate the remote changes\n"
"(e.g. 'git pull ...') before pushing again.\n"
"See the 'Note about fast-forwards' in 'git push --help' for details."
-msgstr "ÐžÐ±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð±Ñ‹Ð»Ð¸ отклонены, так как верхушка отправлÑемой ветки\nпозади ее внешней чаÑти. ПереключитеÑÑŒ на ветку и заберите внешние\nÐ¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ (например, Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ «git pull …») перед повторной\nпопыткой отправки изменений.\nÐ”Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ информации Ñмотрите «Note about fast-forwards»\nв «git push --help»."
+msgstr "ÐžÐ±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð±Ñ‹Ð»Ð¸ отклонены, так как верхушка отправлÑемой ветки\nпозади ее внешней чаÑти. ПереключитеÑÑŒ на ветку и заберите внешние\nÐ¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ (например, Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ «git pull …») перед повторной\nпопыткой отправки изменений.\nÐ”Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ информации, Ñмотрите «Note about fast-forwards»\nв «git push --help»."
-#: builtin/push.c:294
+#: builtin/push.c:261
msgid ""
"Updates were rejected because the remote contains work that you do\n"
"not have locally. This is usually caused by another repository pushing\n"
"to the same ref. You may want to first integrate the remote changes\n"
"(e.g., 'git pull ...') before pushing again.\n"
"See the 'Note about fast-forwards' in 'git push --help' for details."
-msgstr "ÐžÐ±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð±Ñ‹Ð»Ð¸ отклонены, так как внешний репозиторий Ñодержит\nизменениÑ, которых у Ð²Ð°Ñ Ð½ÐµÑ‚ в вашем локальном репозитории.\nОбычно, Ñто ÑвÑзанно Ñ Ñ‚ÐµÐ¼, что кто-то уже отправил Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² \nто же меÑто. Перед повторной отправкой ваших изменений, вам нужно\nзабрать и Ñлить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð· внешнего Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ñебе\n(например, Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ «git pull …»).\nÐ”Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ информации Ñмотрите «Note about fast-forwards»\nв «git push --help»."
+msgstr "ÐžÐ±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð±Ñ‹Ð»Ð¸ отклонены, так как внешний репозиторий Ñодержит\nизменениÑ, которых у Ð²Ð°Ñ Ð½ÐµÑ‚ в вашем локальном репозитории.\nОбычно, Ñто ÑвÑзанно Ñ Ñ‚ÐµÐ¼, что кто-то уже отправил Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² \nто же меÑто. Перед повторной отправкой ваших изменений, вам нужно\nзабрать и Ñлить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð· внешнего Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ñебе\n(например, Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ «git pull …»).\nÐ”Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ информации, Ñмотрите «Note about fast-forwards»\nв «git push --help»."
-#: builtin/push.c:301
+#: builtin/push.c:268
msgid "Updates were rejected because the tag already exists in the remote."
msgstr "ÐžÐ±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð±Ñ‹Ð»Ð¸ отклонены, так как метка уже ÑущеÑтвует во внешнем репозитории."
-#: builtin/push.c:304
+#: builtin/push.c:271
msgid ""
"You cannot update a remote ref that points at a non-commit object,\n"
"or update a remote ref to make it point at a non-commit object,\n"
"without using the '--force' option.\n"
msgstr "Ð’Ñ‹ не можете обновить внешнюю ÑÑылку, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ ÑƒÐºÐ°Ð·Ñ‹Ð²Ð°ÐµÑ‚ на объект, не ÑвлÑющийÑÑ ÐºÐ¾Ð¼Ð¼Ð¸Ñ‚Ð¾Ð¼ или обновить внешнюю ÑÑылку так, чтобы она указывала на объект, не ÑвлÑющийÑÑ ÐºÐ¾Ð¼Ð¼Ð¸Ñ‚Ð¾Ð¼, без ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð¾Ð¿Ñ†Ð¸Ð¸ «--force».\n"
-#: builtin/push.c:363
+#: builtin/push.c:331
#, c-format
msgid "Pushing to %s\n"
msgstr "Отправка в %s\n"
-#: builtin/push.c:367
+#: builtin/push.c:335
#, c-format
msgid "failed to push some refs to '%s'"
msgstr "не удалоÑÑŒ отправить некоторые ÑÑылки в «%s»"
-#: builtin/push.c:397
+#: builtin/push.c:365
#, c-format
msgid "bad repository '%s'"
msgstr "плохой Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Â«%s»"
-#: builtin/push.c:398
+#: builtin/push.c:366
msgid ""
"No configured push destination.\n"
"Either specify the URL from the command-line or configure a remote repository using\n"
@@ -8616,106 +8843,102 @@ msgid ""
"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"
+msgstr "Ðе наÑтроена точка Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸.\nЛибо укажите URL Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ командной Ñтроки, либо наÑтройте внешний репозиторий Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ\n\n git remote add <имÑ> <адреÑ>\n\nа затем отправьте Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ имени внешнего репозиториÑ\n\n git push <имÑ>\n"
-#: builtin/push.c:413
+#: builtin/push.c:381
msgid "--all and --tags are incompatible"
msgstr "--all и --tags Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать одновременно"
-#: builtin/push.c:414
+#: builtin/push.c:382
msgid "--all can't be combined with refspecs"
msgstr "--all Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать вмеÑте Ñо ÑпецификациÑми ÑÑылок"
-#: builtin/push.c:419
+#: builtin/push.c:387
msgid "--mirror and --tags are incompatible"
msgstr "--mirror и --tags Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать одновременно"
-#: builtin/push.c:420
+#: builtin/push.c:388
msgid "--mirror can't be combined with refspecs"
msgstr "--mirror Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать вмеÑте Ñо ÑпецификациÑми ÑÑылок"
-#: builtin/push.c:425
+#: builtin/push.c:393
msgid "--all and --mirror are incompatible"
msgstr "--all и --mirror Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать одновременно"
-#: builtin/push.c:537
+#: builtin/push.c:505
msgid "repository"
msgstr "репозиторий"
-#: builtin/push.c:538 builtin/send-pack.c:161
+#: builtin/push.c:506 builtin/send-pack.c:161
msgid "push all refs"
msgstr "отправить вÑе ÑÑылки"
-#: builtin/push.c:539 builtin/send-pack.c:163
+#: builtin/push.c:507 builtin/send-pack.c:163
msgid "mirror all refs"
msgstr "Ñделать зеркало вÑех ÑÑылок"
-#: builtin/push.c:541
+#: builtin/push.c:509
msgid "delete refs"
msgstr "удалить ÑÑылки"
-#: builtin/push.c:542
+#: builtin/push.c:510
msgid "push tags (can't be used with --all or --mirror)"
msgstr "отправить метки (Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать вмеÑте Ñ --all или --mirror)"
-#: builtin/push.c:545 builtin/send-pack.c:164
+#: builtin/push.c:513 builtin/send-pack.c:164
msgid "force updates"
msgstr "принудительное обновление"
-#: builtin/push.c:547 builtin/send-pack.c:175
+#: builtin/push.c:515 builtin/send-pack.c:175
msgid "refname>:<expect"
msgstr "имÑ-ÑÑылки>:<ожидаетÑÑ"
-#: builtin/push.c:548 builtin/send-pack.c:176
+#: builtin/push.c:516 builtin/send-pack.c:176
msgid "require old value of ref to be at this value"
msgstr "требовать, чтобы Ñтарое значение ÑÑылки было ожидаемым"
-#: builtin/push.c:550
-msgid "check|on-demand|no"
-msgstr "check|on-demand|no"
-
-#: builtin/push.c:551
+#: builtin/push.c:519
msgid "control recursive pushing of submodules"
msgstr "управление рекурÑивной отправкой подмодулей"
-#: builtin/push.c:553 builtin/send-pack.c:169
+#: builtin/push.c:521 builtin/send-pack.c:169
msgid "use thin pack"
msgstr "иÑпользовать тонкие пакеты"
-#: builtin/push.c:554 builtin/push.c:555 builtin/send-pack.c:158
+#: builtin/push.c:522 builtin/push.c:523 builtin/send-pack.c:158
#: builtin/send-pack.c:159
msgid "receive pack program"
msgstr "путь к программе упаковки на Ñервере"
-#: builtin/push.c:556
+#: builtin/push.c:524
msgid "set upstream for git pull/status"
msgstr "уÑтановить вышеÑтоÑщую ветку Ð´Ð»Ñ git pull/status"
-#: builtin/push.c:559
+#: builtin/push.c:527
msgid "prune locally removed refs"
msgstr "почиÑтить локально удаленные ÑÑылки"
-#: builtin/push.c:561
+#: builtin/push.c:529
msgid "bypass pre-push hook"
msgstr "пропуÑтить перехватчик перед-отправкой"
-#: builtin/push.c:562
+#: builtin/push.c:530
msgid "push missing but relevant tags"
msgstr "отправить пропущенные, но нужные метки"
-#: builtin/push.c:565 builtin/send-pack.c:166
+#: builtin/push.c:533 builtin/send-pack.c:166
msgid "GPG sign the push"
msgstr "подпиÑать отправку Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ GPG"
-#: builtin/push.c:567 builtin/send-pack.c:170
+#: builtin/push.c:535 builtin/send-pack.c:170
msgid "request atomic transaction on remote side"
msgstr "запроÑить выполнение атомарной транзакции на внешней Ñтороне"
-#: builtin/push.c:577
+#: builtin/push.c:549
msgid "--delete is incompatible with --all, --mirror and --tags"
msgstr "--delete неÑовмеÑтимо Ñ --all, --mirror и --tags"
-#: builtin/push.c:579
+#: builtin/push.c:551
msgid "--delete doesn't make sense without any refs"
msgstr "--delete не имеет ÑмыÑла без ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ ÑÑылок"
@@ -8790,12 +9013,12 @@ msgstr "пропуÑтить применение фильтра чаÑтичнÐ
msgid "debug unpack-trees"
msgstr "отладка unpack-trees"
-#: builtin/reflog.c:428
+#: builtin/reflog.c:423
#, c-format
msgid "'%s' for '%s' is not a valid timestamp"
msgstr "«%s» Ð´Ð»Ñ Â«%s» не ÑвлÑетÑÑ Ð´Ð¾Ð¿ÑƒÑтимой меткой даты/времени"
-#: builtin/reflog.c:545 builtin/reflog.c:550
+#: builtin/reflog.c:540 builtin/reflog.c:545
#, c-format
msgid "'%s' is not a valid timestamp"
msgstr "«%s» не ÑвлÑетÑÑ Ð´Ð¾Ð¿ÑƒÑтимой меткой даты/времени"
@@ -8931,55 +9154,45 @@ msgstr "указание маÑтер ветки не имеет ÑмыÑла Ñ
msgid "specifying branches to track makes sense only with fetch mirrors"
msgstr "указание отÑлеживаемых веток имеет ÑмыÑл только при зеркальном извлечении"
-#: builtin/remote.c:193 builtin/remote.c:643
+#: builtin/remote.c:190 builtin/remote.c:633
#, c-format
msgid "remote %s already exists."
msgstr "внешний репозиторий %s уже ÑущеÑтвует"
-#: builtin/remote.c:197 builtin/remote.c:647
+#: builtin/remote.c:194 builtin/remote.c:637
#, c-format
msgid "'%s' is not a valid remote name"
msgstr "«%s» не ÑвлÑетÑÑ Ð´Ð¾Ð¿ÑƒÑтимым именем внешнего репозиториÑ."
-#: builtin/remote.c:241
+#: builtin/remote.c:234
#, c-format
msgid "Could not setup master '%s'"
msgstr "Ðе удалоÑÑŒ наÑтроить маÑтер ветку «%s»"
-#: builtin/remote.c:341
+#: builtin/remote.c:336
#, c-format
msgid "Could not get fetch map for refspec %s"
msgstr "Ðе удалоÑÑŒ извлечь карту Ð´Ð»Ñ Ñпецификации ÑÑылки %s"
-#: builtin/remote.c:442 builtin/remote.c:450
+#: builtin/remote.c:437 builtin/remote.c:445
msgid "(matching)"
msgstr "(ÑоответÑтвующаÑ)"
-#: builtin/remote.c:454
+#: builtin/remote.c:449
msgid "(delete)"
msgstr "(удаленнаÑ)"
-#: builtin/remote.c:594 builtin/remote.c:600 builtin/remote.c:606
-#, c-format
-msgid "Could not append '%s' to '%s'"
-msgstr "Ðе удалоÑÑŒ добавить «%s» к «%s»"
-
-#: builtin/remote.c:636 builtin/remote.c:775 builtin/remote.c:875
+#: builtin/remote.c:626 builtin/remote.c:761 builtin/remote.c:858
#, c-format
msgid "No such remote: %s"
msgstr "Ðет такого внешнего репозиториÑ: %s"
-#: builtin/remote.c:653
+#: builtin/remote.c:643
#, c-format
msgid "Could not rename config section '%s' to '%s'"
msgstr "Ðе удалоÑÑŒ переименовать Ñекцию конфигурации Ñ Â«%s» на «%s»"
-#: builtin/remote.c:659 builtin/remote.c:827
-#, c-format
-msgid "Could not remove config section '%s'"
-msgstr "Ðе удалоÑÑŒ удалить Ñекцию файла конфигурации «%s»"
-
-#: builtin/remote.c:674
+#: builtin/remote.c:663
#, c-format
msgid ""
"Not updating non-default fetch refspec\n"
@@ -8987,27 +9200,17 @@ msgid ""
"\tPlease update the configuration manually if necessary."
msgstr "Ðе обновлÑÑŽ неÑтандартную Ñпецификацию ÑÑылки Ð´Ð»Ñ Ð¸Ð·Ð²Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ\n\t%s\n\tПожалуйÑта, еÑли требуетÑÑ, обновите конфигурацию вручную."
-#: builtin/remote.c:680
-#, c-format
-msgid "Could not append '%s'"
-msgstr "Ðе удалоÑÑŒ добавить «%s»"
-
-#: builtin/remote.c:691
-#, c-format
-msgid "Could not set '%s'"
-msgstr "Ðе удалоÑÑŒ уÑтановить «%s»"
-
-#: builtin/remote.c:713
+#: builtin/remote.c:699
#, c-format
msgid "deleting '%s' failed"
msgstr "не удалоÑÑŒ удалить «%s»"
-#: builtin/remote.c:747
+#: builtin/remote.c:733
#, c-format
msgid "creating '%s' failed"
msgstr "не удалоÑÑŒ Ñоздать «%s»"
-#: builtin/remote.c:813
+#: builtin/remote.c:796
msgid ""
"Note: A branch outside the refs/remotes/ hierarchy was not removed;\n"
"to delete it, use:"
@@ -9019,125 +9222,130 @@ msgstr[1] "Примечание: Ðекоторые ветки вне иерар
msgstr[2] "Примечание: Ðекоторые ветки вне иерархии refs/remotes/ не будут удалены;\nчтобы удалить их, иÑпользуйте:"
msgstr[3] "Примечание: Ðекоторые ветки вне иерархии refs/remotes/ не будут удалены;\nчтобы удалить их, иÑпользуйте:"
-#: builtin/remote.c:928
+#: builtin/remote.c:810
+#, c-format
+msgid "Could not remove config section '%s'"
+msgstr "Ðе удалоÑÑŒ удалить Ñекцию файла конфигурации «%s»"
+
+#: builtin/remote.c:911
#, c-format
msgid " new (next fetch will store in remotes/%s)"
msgstr " Ð½Ð¾Ð²Ð°Ñ (Ñледующее извлечение Ñохранит ее в remotes/%s)"
-#: builtin/remote.c:931
+#: builtin/remote.c:914
msgid " tracked"
msgstr " отÑлеживаетÑÑ"
-#: builtin/remote.c:933
+#: builtin/remote.c:916
msgid " stale (use 'git remote prune' to remove)"
msgstr " недейÑтвительна (иÑпользуйте «git remote prune», чтобы удалить)"
-#: builtin/remote.c:935
+#: builtin/remote.c:918
msgid " ???"
msgstr " ???"
-#: builtin/remote.c:976
+#: builtin/remote.c:959
#, c-format
msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch"
msgstr "неправильный параметр конфигурации branch.%s.merge; невозможно перемеÑтить более чем над 1 веткой"
-#: builtin/remote.c:983
+#: builtin/remote.c:967
#, c-format
-msgid "rebases onto remote %s"
-msgstr "будет перемещена над внешней веткой %s"
+msgid "rebases interactively onto remote %s"
+msgstr "перемещаетÑÑ Ð¸Ð½Ñ‚ÐµÑ€Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾ над внешней веткой %s"
-#: builtin/remote.c:986
+#: builtin/remote.c:971
#, c-format
msgid " merges with remote %s"
msgstr " будет Ñлита Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ¹ веткой %s"
-#: builtin/remote.c:987
+#: builtin/remote.c:972
msgid " and with remote"
msgstr " и Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ¹ веткой"
-#: builtin/remote.c:989
+#: builtin/remote.c:974
#, c-format
msgid "merges with remote %s"
msgstr "будет Ñлита Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ¹ веткой %s"
-#: builtin/remote.c:990
+#: builtin/remote.c:975
msgid " and with remote"
msgstr " и Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ¹ веткой"
-#: builtin/remote.c:1036
+#: builtin/remote.c:1021
msgid "create"
msgstr "Ñоздана"
-#: builtin/remote.c:1039
+#: builtin/remote.c:1024
msgid "delete"
msgstr "удалена"
-#: builtin/remote.c:1043
+#: builtin/remote.c:1028
msgid "up to date"
msgstr "уже актуальна"
-#: builtin/remote.c:1046
+#: builtin/remote.c:1031
msgid "fast-forwardable"
msgstr "возможна перемотка вперед"
-#: builtin/remote.c:1049
+#: builtin/remote.c:1034
msgid "local out of date"
msgstr "Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð°Ñ Ð²ÐµÑ‚ÐºÐ° уÑтарела"
-#: builtin/remote.c:1056
+#: builtin/remote.c:1041
#, c-format
msgid " %-*s forces to %-*s (%s)"
msgstr " %-*s будет принудительно отправлена в %-*s (%s)"
-#: builtin/remote.c:1059
+#: builtin/remote.c:1044
#, c-format
msgid " %-*s pushes to %-*s (%s)"
msgstr " %-*s будет отправлена в %-*s (%s)"
-#: builtin/remote.c:1063
+#: builtin/remote.c:1048
#, c-format
msgid " %-*s forces to %s"
msgstr " %-*s будет принудительно отправлена в %s"
-#: builtin/remote.c:1066
+#: builtin/remote.c:1051
#, c-format
msgid " %-*s pushes to %s"
msgstr " %-*s будет отправлена в %s"
-#: builtin/remote.c:1134
+#: builtin/remote.c:1119
msgid "do not query remotes"
msgstr "не опрашивать внешние репозитории"
-#: builtin/remote.c:1161
+#: builtin/remote.c:1146
#, c-format
msgid "* remote %s"
msgstr "* внешний репозиторий %s"
-#: builtin/remote.c:1162
+#: builtin/remote.c:1147
#, c-format
msgid " Fetch URL: %s"
msgstr " URL Ð´Ð»Ñ Ð¸Ð·Ð²Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ: %s"
-#: builtin/remote.c:1163 builtin/remote.c:1314
+#: builtin/remote.c:1148 builtin/remote.c:1299
msgid "(no URL)"
msgstr "(нет URL)"
-#: builtin/remote.c:1172 builtin/remote.c:1174
+#: builtin/remote.c:1157 builtin/remote.c:1159
#, c-format
msgid " Push URL: %s"
msgstr " URL Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸: %s"
-#: builtin/remote.c:1176 builtin/remote.c:1178 builtin/remote.c:1180
+#: builtin/remote.c:1161 builtin/remote.c:1163 builtin/remote.c:1165
#, c-format
msgid " HEAD branch: %s"
msgstr " HEAD ветка: %s"
-#: builtin/remote.c:1182
+#: builtin/remote.c:1167
#, c-format
msgid " HEAD branch (remote HEAD is ambiguous, may be one of the following):\n"
msgstr " HEAD ветка (HEAD внешнего Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð½ÐµÐ¾Ð´Ð½Ð¾Ð·Ð½Ð°Ñ‡Ð½Ñ‹Ð¹, может быть одним из):\n"
-#: builtin/remote.c:1194
+#: builtin/remote.c:1179
#, c-format
msgid " Remote branch:%s"
msgid_plural " Remote branches:%s"
@@ -9146,11 +9354,11 @@ msgstr[1] " Внешние ветки:%s"
msgstr[2] " Внешние ветки:%s"
msgstr[3] " Внешние ветки:%s"
-#: builtin/remote.c:1197 builtin/remote.c:1224
+#: builtin/remote.c:1182 builtin/remote.c:1209
msgid " (status not queried)"
msgstr " (ÑÑ‚Ð°Ñ‚ÑƒÑ Ð½Ðµ запрошен)"
-#: builtin/remote.c:1206
+#: builtin/remote.c:1191
msgid " Local branch configured for 'git pull':"
msgid_plural " Local branches configured for 'git pull':"
msgstr[0] " Ð›Ð¾ÐºÐ°Ð»ÑŒÐ½Ð°Ñ Ð²ÐµÑ‚ÐºÐ°, наÑÑ‚Ñ€Ð¾ÐµÐ½Ð½Ð°Ñ Ð´Ð»Ñ Â«git pull»:"
@@ -9158,11 +9366,11 @@ msgstr[1] " Локальные ветки, наÑтроенные Ð´Ð»Ñ Â«git
msgstr[2] " Локальные ветки, наÑтроенные Ð´Ð»Ñ Â«git pull»:"
msgstr[3] " Локальные ветки, наÑтроенные Ð´Ð»Ñ Â«git pull»:"
-#: builtin/remote.c:1214
+#: builtin/remote.c:1199
msgid " Local refs will be mirrored by 'git push'"
msgstr " Локальные ÑÑылки, зеркалируемые Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ «git push»"
-#: builtin/remote.c:1221
+#: builtin/remote.c:1206
#, c-format
msgid " Local ref configured for 'git push'%s:"
msgid_plural " Local refs configured for 'git push'%s:"
@@ -9171,128 +9379,128 @@ msgstr[1] " Локальные ÑÑылки, наÑтроенные Ð´Ð»Ñ Â«gi
msgstr[2] " Локальные ÑÑылки, наÑтроенные Ð´Ð»Ñ Â«git push»%s:"
msgstr[3] " Локальные ÑÑылки, наÑтроенные Ð´Ð»Ñ Â«git push»%s:"
-#: builtin/remote.c:1242
+#: builtin/remote.c:1227
msgid "set refs/remotes/<name>/HEAD according to remote"
msgstr "уÑтановить refs/remotes/<имÑ>/HEAD в завиÑимоÑти от внешнего репозиториÑ"
-#: builtin/remote.c:1244
+#: builtin/remote.c:1229
msgid "delete refs/remotes/<name>/HEAD"
msgstr "удалить refs/remotes/<имÑ>/HEAD"
-#: builtin/remote.c:1259
+#: builtin/remote.c:1244
msgid "Cannot determine remote HEAD"
msgstr "Ðе удалоÑÑŒ определить внешний HEAD"
-#: builtin/remote.c:1261
+#: builtin/remote.c:1246
msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
msgstr "ÐеÑколько внешних HEAD веток. Укажите Ñвно одну из них:"
-#: builtin/remote.c:1271
+#: builtin/remote.c:1256
#, c-format
msgid "Could not delete %s"
msgstr "Ðе удалоÑÑŒ удалить %s"
-#: builtin/remote.c:1279
+#: builtin/remote.c:1264
#, c-format
msgid "Not a valid ref: %s"
msgstr "ÐÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ ÑÑылка: %s"
-#: builtin/remote.c:1281
+#: builtin/remote.c:1266
#, c-format
msgid "Could not setup %s"
msgstr "Ðе удалоÑÑŒ наÑтроить %s"
-#: builtin/remote.c:1299
+#: builtin/remote.c:1284
#, c-format
msgid " %s will become dangling!"
msgstr " %s будет виÑÑщей веткой!"
-#: builtin/remote.c:1300
+#: builtin/remote.c:1285
#, c-format
msgid " %s has become dangling!"
msgstr " %s Ñтала виÑÑщей веткой!"
-#: builtin/remote.c:1310
+#: builtin/remote.c:1295
#, c-format
msgid "Pruning %s"
msgstr "Удаление %s"
-#: builtin/remote.c:1311
+#: builtin/remote.c:1296
#, c-format
msgid "URL: %s"
msgstr "URL: %s"
-#: builtin/remote.c:1327
+#: builtin/remote.c:1312
#, c-format
msgid " * [would prune] %s"
msgstr " * [будет удалена] %s"
-#: builtin/remote.c:1330
+#: builtin/remote.c:1315
#, c-format
msgid " * [pruned] %s"
msgstr " * [удалена] %s"
-#: builtin/remote.c:1375
+#: builtin/remote.c:1360
msgid "prune remotes after fetching"
msgstr "почиÑтить внешние репозитории поÑле извлечениÑ"
-#: builtin/remote.c:1441 builtin/remote.c:1498 builtin/remote.c:1566
+#: builtin/remote.c:1423 builtin/remote.c:1477 builtin/remote.c:1545
#, c-format
msgid "No such remote '%s'"
msgstr "Ðет такого внешнего Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Â«%s»"
-#: builtin/remote.c:1461
+#: builtin/remote.c:1439
msgid "add branch"
msgstr "добавить ветку"
-#: builtin/remote.c:1468
+#: builtin/remote.c:1446
msgid "no remote specified"
msgstr "не указан внешний репозиторий"
-#: builtin/remote.c:1485
+#: builtin/remote.c:1463
msgid "query push URLs rather than fetch URLs"
msgstr "запроÑить URL отправки, вмеÑто URL извлечениÑ"
-#: builtin/remote.c:1487
+#: builtin/remote.c:1465
msgid "return all URLs"
msgstr "вернуть вÑе URL"
-#: builtin/remote.c:1515
+#: builtin/remote.c:1493
#, c-format
msgid "no URLs configured for remote '%s'"
msgstr "URL не наÑтроены Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Â«%s»"
-#: builtin/remote.c:1541
+#: builtin/remote.c:1519
msgid "manipulate push URLs"
msgstr "управление URL отправки"
-#: builtin/remote.c:1543
+#: builtin/remote.c:1521
msgid "add URL"
msgstr "добавить URL"
-#: builtin/remote.c:1545
+#: builtin/remote.c:1523
msgid "delete URLs"
msgstr "удалить URL"
-#: builtin/remote.c:1552
+#: builtin/remote.c:1530
msgid "--add --delete doesn't make sense"
msgstr "--add Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать одновременно Ñ --delete"
-#: builtin/remote.c:1592
+#: builtin/remote.c:1571
#, c-format
msgid "Invalid old URL pattern: %s"
msgstr "Ðеправильный шаблон Ñтарого URL: %s"
-#: builtin/remote.c:1600
+#: builtin/remote.c:1579
#, c-format
msgid "No such URL found: %s"
msgstr "Ðе найдены ÑÐ¾Ð²Ð¿Ð°Ð´ÐµÐ½Ð¸Ñ URL: %s"
-#: builtin/remote.c:1602
+#: builtin/remote.c:1581
msgid "Will not delete all non-push URLs"
msgstr "ÐÐµÐ»ÑŒÐ·Ñ ÑƒÐ´Ð°Ð»Ð¸Ñ‚ÑŒ вÑе URL не-отправки"
-#: builtin/remote.c:1616
+#: builtin/remote.c:1595
msgid "be verbose; must be placed before a subcommand"
msgstr "быть многоÑловнее; должно ÑтоÑÑ‚ÑŒ перед подкомандой"
@@ -9406,7 +9614,7 @@ msgstr "Ð¿Ð»Ð¾Ñ…Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° ÑлиÑÐ½Ð¸Ñ Ð² коммите «%s»"
#: builtin/replace.c:357
#, c-format
msgid "malformed mergetag in commit '%s'"
-msgstr "Ð¿Ð¾Ð²Ñ€ÐµÐ¶Ð´ÐµÐ½Ð½Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° ÑлиÑÐ½Ð¸Ñ Ð² коммите «%s»"
+msgstr "Ð¿Ð¾Ð²Ñ€ÐµÐ¶Ð´Ñ‘Ð½Ð½Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° ÑлиÑÐ½Ð¸Ñ Ð² коммите «%s»"
#: builtin/replace.c:368
#, c-format
@@ -9590,7 +9798,7 @@ msgstr "Ðе удалоÑÑŒ ÑброÑить файл индекÑа на ред
msgid "Could not write new index file."
msgstr "Ðе удалоÑÑŒ запиÑать новый файл индекÑа."
-#: builtin/rev-list.c:354
+#: builtin/rev-list.c:350
msgid "rev-list does not support display of notes"
msgstr "rev-list не поддерживает отображение заметок"
@@ -9826,28 +10034,23 @@ msgstr "вывеÑти ÑÑ‚Ð°Ñ‚ÑƒÑ Ð¾Ñ‚ Ñкрипта внешнего ÑерÐ
msgid "git shortlog [<options>] [<revision-range>] [[--] [<path>...]]"
msgstr "git shortlog [<опции>] [<диапазон-редакций>] [[--] [<путь>…]]"
-#: builtin/shortlog.c:131
-#, c-format
-msgid "Missing author: %s"
-msgstr "Пропущен автор: %s"
-
-#: builtin/shortlog.c:230
+#: builtin/shortlog.c:242
msgid "sort output according to the number of commits per author"
msgstr "отÑортировать вывод по количеÑтву коммитов у автора"
-#: builtin/shortlog.c:232
+#: builtin/shortlog.c:244
msgid "Suppress commit descriptions, only provides commit count"
msgstr "Ðе выводить опиÑÐ°Ð½Ð¸Ñ ÐºÐ¾Ð¼Ð¼Ð¸Ñ‚Ð¾Ð², а только их количеÑтво"
-#: builtin/shortlog.c:234
+#: builtin/shortlog.c:246
msgid "Show the email address of each author"
msgstr "Показать почту каждого из авторов"
-#: builtin/shortlog.c:235
+#: builtin/shortlog.c:247
msgid "w[,i1[,i2]]"
msgstr "w[,i1[,i2]]"
-#: builtin/shortlog.c:236
+#: builtin/shortlog.c:248
msgid "Linewrap output"
msgstr "ÐŸÐµÑ€ÐµÐ½Ð¾Ñ Ñтрок на выводе"
@@ -9885,7 +10088,7 @@ msgstr "Ñиноним Ð´Ð»Ñ more=-1"
#: builtin/show-branch.c:649
msgid "suppress naming strings"
-msgstr "не выводить именованые Ñтроки"
+msgstr "не выводить именованные Ñтроки"
#: builtin/show-branch.c:651
msgid "include the current branch"
@@ -9909,7 +10112,7 @@ msgstr "вывеÑти коммиты в топологичеÑком порÑд
#: builtin/show-branch.c:662
msgid "show only commits not on the first branch"
-msgstr "вывеÑти только коммиты, отÑуцтвующие в первой ветке"
+msgstr "вывеÑти только коммиты, отÑутÑтвующие в первой ветке"
#: builtin/show-branch.c:664
msgid "show merges reachable from only one tip"
@@ -9982,80 +10185,80 @@ msgid "skip and remove all lines starting with comment character"
msgstr "пропуÑтить и удалить вÑе Ñтроки, начинающиеÑÑ Ñ Ñимвола комметариÑ"
#: builtin/stripspace.c:38
-msgid "prepend comment character and blank to each line"
-msgstr "добавить Ñпереди вÑе Ñтрок Ñимвол ÐºÐ¾Ð¼Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ð¸Ñ Ð¸ пробел"
+msgid "prepend comment character and space to each line"
+msgstr "добавить перед каждой Ñтрокой Ñимвол ÐºÐ¾Ð¼Ð¼ÐµÑ‚Ð°Ñ€Ð¸Ñ Ð¸ пробел"
-#: builtin/submodule--helper.c:79 builtin/submodule--helper.c:167
+#: builtin/submodule--helper.c:73 builtin/submodule--helper.c:161
msgid "alternative anchor for relative paths"
msgstr "альтернативный Ñимвол Ð´Ð»Ñ Ð¾Ñ‚Ð½Ð¾Ñительных путей"
-#: builtin/submodule--helper.c:84
+#: builtin/submodule--helper.c:78
msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
msgstr "git submodule--helper list [--prefix=<путь>] [<путь>…]"
-#: builtin/submodule--helper.c:114
+#: builtin/submodule--helper.c:108
msgid "git submodule--helper name <path>"
msgstr "git submodule--helper name <путь>"
-#: builtin/submodule--helper.c:120
+#: builtin/submodule--helper.c:114
#, c-format
msgid "no submodule mapping found in .gitmodules for path '%s'"
msgstr "не найдено ÑоответÑтвие подмодулей в .gitmodules Ð´Ð»Ñ Ð¿ÑƒÑ‚Ð¸ «%s»"
-#: builtin/submodule--helper.c:170
+#: builtin/submodule--helper.c:164
msgid "where the new submodule will be cloned to"
msgstr "куда должен быть Ñклонирован новый подмодуль"
-#: builtin/submodule--helper.c:173
+#: builtin/submodule--helper.c:167
msgid "name of the new submodule"
msgstr "Ð¸Ð¼Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ подмодулÑ"
-#: builtin/submodule--helper.c:176
+#: builtin/submodule--helper.c:170
msgid "url where to clone the submodule from"
msgstr "url откуда должен был Ñклонирован новый подмодуль"
-#: builtin/submodule--helper.c:182
+#: builtin/submodule--helper.c:176
msgid "depth for shallow clones"
msgstr "глубина Ð´Ð»Ñ Ñ‡Ð°Ñтичного клона"
-#: builtin/submodule--helper.c:188
+#: builtin/submodule--helper.c:182
msgid ""
"git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
"<repository>] [--name <name>] [--url <url>][--depth <depth>] [--] "
"[<path>...]"
msgstr "git submodule--helper clone [--prefix=<путь>] [--quiet] [--reference <репозиторий>] [--name <имÑ>] [--url <url>][--depth <глубина>] [--] [<путь>…]"
-#: builtin/submodule--helper.c:202 builtin/submodule--helper.c:208
-#: builtin/submodule--helper.c:216
+#: builtin/submodule--helper.c:196 builtin/submodule--helper.c:202
+#: builtin/submodule--helper.c:210
#, c-format
msgid "could not create directory '%s'"
msgstr "не удалоÑÑŒ Ñоздать каталог «%s»"
-#: builtin/submodule--helper.c:204
+#: builtin/submodule--helper.c:198
#, c-format
msgid "clone of '%s' into submodule path '%s' failed"
msgstr "не удалоÑÑŒ клонировать «%s» в подмодуль по пути «%s»"
-#: builtin/submodule--helper.c:227
+#: builtin/submodule--helper.c:221
#, c-format
msgid "cannot open file '%s'"
msgstr "не удалоÑÑŒ открыть файл «%s»"
-#: builtin/submodule--helper.c:232
+#: builtin/submodule--helper.c:226
#, c-format
msgid "could not close file %s"
msgstr "не удалоÑÑŒ закрыть файл %s"
-#: builtin/submodule--helper.c:247
+#: builtin/submodule--helper.c:241
#, c-format
msgid "could not get submodule directory for '%s'"
msgstr "не удалоÑÑŒ получить каталог Ð´Ð»Ñ Ð¿Ð¾Ð´Ð¼Ð¾Ð´ÑƒÐ»Ñ Â«%s»"
-#: builtin/submodule--helper.c:273
+#: builtin/submodule--helper.c:267
msgid "fatal: submodule--helper subcommand must be called with a subcommand"
msgstr "критичеÑÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°: подкоманда submodule--helper должна вызыватьÑÑ Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸ÐµÐ¼ подкоманды"
-#: builtin/submodule--helper.c:280
+#: builtin/submodule--helper.c:274
#, c-format
msgid "fatal: '%s' is not a valid submodule--helper subcommand"
msgstr "критичеÑÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°: «%s» не ÑвлÑетÑÑ Ð¿Ð¾Ð´ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ submodule--helper"
@@ -10286,188 +10489,201 @@ msgstr "Метка «%s» обновлена (была %s)\n"
msgid "Unpacking objects"
msgstr "РаÑпаковка объектов"
-#: builtin/update-index.c:70
+#: builtin/update-index.c:79
#, c-format
msgid "failed to create directory %s"
msgstr "не удалоÑÑŒ Ñоздать каталог %s"
-#: builtin/update-index.c:76
+#: builtin/update-index.c:85
#, c-format
msgid "failed to stat %s"
msgstr "не удалоÑÑŒ выполнить stat %s"
-#: builtin/update-index.c:86
+#: builtin/update-index.c:95
#, c-format
msgid "failed to create file %s"
msgstr "не удалоÑÑŒ Ñоздать файл %s"
-#: builtin/update-index.c:94
+#: builtin/update-index.c:103
#, c-format
msgid "failed to delete file %s"
msgstr "не удалоÑÑŒ удалить файл %s"
-#: builtin/update-index.c:101 builtin/update-index.c:203
+#: builtin/update-index.c:110 builtin/update-index.c:212
#, c-format
msgid "failed to delete directory %s"
msgstr "не удалоÑÑŒ удалить каталог %s"
-#: builtin/update-index.c:124
+#: builtin/update-index.c:133
#, c-format
-msgid "Testing "
-msgstr "ТеÑтирование"
+msgid "Testing mtime in '%s' "
+msgstr "Проверка mtime в «%s» "
-#: builtin/update-index.c:136
+#: builtin/update-index.c:145
msgid "directory stat info does not change after adding a new file"
msgstr "Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ ÑтатиÑтики каталога не изменÑетÑÑ Ð¿Ð¾Ñле Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ файла"
-#: builtin/update-index.c:149
+#: builtin/update-index.c:158
msgid "directory stat info does not change after adding a new directory"
msgstr "Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ ÑтатиÑтики каталога не изменÑетÑÑ Ð¿Ð¾Ñле Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ каталога"
-#: builtin/update-index.c:162
+#: builtin/update-index.c:171
msgid "directory stat info changes after updating a file"
msgstr "Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ ÑтатиÑтики каталога изменÑетÑÑ Ð¿Ð¾Ñле Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ файла"
-#: builtin/update-index.c:173
+#: builtin/update-index.c:182
msgid "directory stat info changes after adding a file inside subdirectory"
msgstr "Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ ÑтатиÑтики каталога изменÑетÑÑ Ð¿Ð¾Ñле Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ файла внутри подкаталога"
-#: builtin/update-index.c:184
+#: builtin/update-index.c:193
msgid "directory stat info does not change after deleting a file"
msgstr "Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ ÑтатиÑтики каталога не изменÑетÑÑ Ð¿Ð¾Ñле ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð°"
-#: builtin/update-index.c:197
+#: builtin/update-index.c:206
msgid "directory stat info does not change after deleting a directory"
msgstr "Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ ÑтатиÑтики каталога не изменÑетÑÑ Ð¿Ð¾Ñле ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð°"
-#: builtin/update-index.c:204
+#: builtin/update-index.c:213
msgid " OK"
msgstr " OK"
-#: builtin/update-index.c:564
+#: builtin/update-index.c:575
msgid "git update-index [<options>] [--] [<file>...]"
msgstr "git update-index [<опции>] [--] [<файл>…]"
-#: builtin/update-index.c:918
+#: builtin/update-index.c:930
msgid "continue refresh even when index needs update"
msgstr "продолжить обновление, даже еÑли Ð¸Ð½Ð´ÐµÐºÑ Ñ‚Ñ€ÐµÐ±ÑƒÐµÑ‚ обновлениÑ"
-#: builtin/update-index.c:921
+#: builtin/update-index.c:933
msgid "refresh: ignore submodules"
msgstr "обновление: игнорировать подмодули"
-#: builtin/update-index.c:924
+#: builtin/update-index.c:936
msgid "do not ignore new files"
msgstr "не игнорировать новые файлы"
-#: builtin/update-index.c:926
+#: builtin/update-index.c:938
msgid "let files replace directories and vice-versa"
msgstr "разрешить файлам заменÑÑ‚ÑŒ каталоги и наоборот"
-#: builtin/update-index.c:928
+#: builtin/update-index.c:940
msgid "notice files missing from worktree"
msgstr "замечать файлы отÑутÑтвующие в рабочем каталоге"
-#: builtin/update-index.c:930
+#: builtin/update-index.c:942
msgid "refresh even if index contains unmerged entries"
msgstr "обновить, даже еÑли в индекÑе имеютÑÑ Ð½Ðµ Ñлитые запиÑи"
-#: builtin/update-index.c:933
+#: builtin/update-index.c:945
msgid "refresh stat information"
msgstr "обновить информацию о ÑтатуÑе файлов"
-#: builtin/update-index.c:937
+#: builtin/update-index.c:949
msgid "like --refresh, but ignore assume-unchanged setting"
msgstr "как --refresh, но игнорировать наÑтройку assume-unchanged"
-#: builtin/update-index.c:941
+#: builtin/update-index.c:953
msgid "<mode>,<object>,<path>"
msgstr "<режим доÑтупа>,<объект>,<путь>"
-#: builtin/update-index.c:942
+#: builtin/update-index.c:954
msgid "add the specified entry to the index"
msgstr "добавить указанную запиÑÑŒ в индекÑ"
-#: builtin/update-index.c:946
+#: builtin/update-index.c:958
msgid "(+/-)x"
msgstr "(+/-)x"
-#: builtin/update-index.c:947
+#: builtin/update-index.c:959
msgid "override the executable bit of the listed files"
msgstr "переопределить бит Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð½Ð° указанных файлах"
-#: builtin/update-index.c:951
+#: builtin/update-index.c:963
msgid "mark files as \"not changing\""
msgstr "пометить файлы как «не измененные»"
-#: builtin/update-index.c:954
+#: builtin/update-index.c:966
msgid "clear assumed-unchanged bit"
msgstr "убрать пометку assumed-unchanged"
-#: builtin/update-index.c:957
+#: builtin/update-index.c:969
msgid "mark files as \"index-only\""
msgstr "пометить файлы как «только в индекÑе»"
-#: builtin/update-index.c:960
+#: builtin/update-index.c:972
msgid "clear skip-worktree bit"
msgstr "убрать пометку skip-worktree"
-#: builtin/update-index.c:963
+#: builtin/update-index.c:975
msgid "add to index only; do not add content to object database"
msgstr "только добавить в индекÑ; не добавлÑÑ‚ÑŒ Ñодержимое в базу данных объектов"
-#: builtin/update-index.c:965
+#: builtin/update-index.c:977
msgid "remove named paths even if present in worktree"
msgstr "удалить указанные пути, даже еÑли они ÑущеÑтвуют в рабочем каталоге"
-#: builtin/update-index.c:967
+#: builtin/update-index.c:979
msgid "with --stdin: input lines are terminated by null bytes"
msgstr "Ñ Ð¾Ð¿Ñ†Ð¸ÐµÐ¹ --stdin: Ñтроки на вводе отделÑÑŽÑ‚ÑÑ ÐУЛЕВЫМ байтом"
-#: builtin/update-index.c:969
+#: builtin/update-index.c:981
msgid "read list of paths to be updated from standard input"
msgstr "прочитать ÑпиÑок обновлÑемых путей из Ñтандартного ввода"
-#: builtin/update-index.c:973
+#: builtin/update-index.c:985
msgid "add entries from standard input to the index"
-msgstr "добавить запиÑи из Ñтандатрного ввода в индекÑ"
+msgstr "добавить запиÑи из Ñтандартного ввода в индекÑ"
-#: builtin/update-index.c:977
+#: builtin/update-index.c:989
msgid "repopulate stages #2 and #3 for the listed paths"
msgstr "заново заполнить Ð¸Ð½Ð´ÐµÐºÑ #2 и #3 Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ‹Ñ… путей"
-#: builtin/update-index.c:981
+#: builtin/update-index.c:993
msgid "only update entries that differ from HEAD"
msgstr "обновить только запиÑи, которые отличаютÑÑ Ð¾Ñ‚ HEAD"
-#: builtin/update-index.c:985
+#: builtin/update-index.c:997
msgid "ignore files missing from worktree"
msgstr "игнорировать файлы, отÑутÑтвующие в рабочем каталоге"
-#: builtin/update-index.c:988
+#: builtin/update-index.c:1000
msgid "report actions to standard output"
msgstr "вывеÑти выполнÑемые дейÑÑ‚Ð²Ð¸Ñ Ð½Ð° Ñтандартный вывод"
-#: builtin/update-index.c:990
+#: builtin/update-index.c:1002
msgid "(for porcelains) forget saved unresolved conflicts"
msgstr "(Ð´Ð»Ñ Ð¼Ð°ÑˆÐ¸Ð½Ð½Ð¾Ð¹ обработки) забыть Ñохраненные неразрешенные конфликты"
-#: builtin/update-index.c:994
+#: builtin/update-index.c:1006
msgid "write index in this format"
msgstr "запиÑать Ð¸Ð½Ð´ÐµÐºÑ Ð² указанном формате"
-#: builtin/update-index.c:996
+#: builtin/update-index.c:1008
msgid "enable or disable split index"
msgstr "разрешить или запретить раздельный индекÑ"
-#: builtin/update-index.c:998
+#: builtin/update-index.c:1010
msgid "enable/disable untracked cache"
msgstr "включить/отключить кÑш неотÑлеживаемых файлов"
-#: builtin/update-index.c:1000
+#: builtin/update-index.c:1012
+msgid "test if the filesystem supports untracked cache"
+msgstr "проверить, что Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема поддерживает кÑш неотÑлеживаемых файлов"
+
+#: builtin/update-index.c:1014
msgid "enable untracked cache without testing the filesystem"
msgstr "включить кÑш неотÑлеживаемых файлов без проверки файловой ÑиÑтемы"
+#: builtin/update-index.c:1134
+msgid "Untracked cache disabled"
+msgstr "КÑш неотÑлеживаемых файлов отключен"
+
+#: builtin/update-index.c:1146
+#, c-format
+msgid "Untracked cache enabled for '%s'"
+msgstr "КÑш неотÑлеживаемых файлов включен Ð´Ð»Ñ Â«%s»"
+
#: builtin/update-ref.c:9
msgid "git update-ref [<options>] -d <refname> [<old-val>]"
msgstr "git update-ref [<опции>] -d <имÑ-ÑÑылки> [<Ñтарое-значение>]"
@@ -10490,7 +10706,7 @@ msgstr "обновить <имÑ-ÑÑылки> а не то, на что она
#: builtin/update-ref.c:366
msgid "stdin has NUL-terminated arguments"
-msgstr "ввод отделенный ÐУЛЕВЫМИ Ñимволами"
+msgstr "ввод отделённый ÐУЛЕВЫМИ Ñимволами"
#: builtin/update-ref.c:367
msgid "read updates from stdin"
@@ -10583,33 +10799,33 @@ msgstr "не удалоÑÑŒ удалить: %s"
msgid "'%s' already exists"
msgstr "«%s» уже ÑущеÑтвует"
-#: builtin/worktree.c:235
+#: builtin/worktree.c:233
#, c-format
msgid "could not create directory of '%s'"
msgstr "не удалоÑÑŒ Ñоздать каталог «%s»"
-#: builtin/worktree.c:271
+#: builtin/worktree.c:269
#, c-format
msgid "Preparing %s (identifier %s)"
msgstr "Подготовка %s (идентификатор %s)"
-#: builtin/worktree.c:319
+#: builtin/worktree.c:317
msgid "checkout <branch> even if already checked out in other worktree"
msgstr "перейти на <ветка> даже еÑли она уже активна в другом рабочеÑм каталоге"
-#: builtin/worktree.c:321
+#: builtin/worktree.c:319
msgid "create a new branch"
msgstr "Ñоздать новую ветку"
-#: builtin/worktree.c:323
+#: builtin/worktree.c:321
msgid "create or reset a branch"
msgstr "Ñоздать или перейти на ветку"
-#: builtin/worktree.c:324
+#: builtin/worktree.c:322
msgid "detach HEAD at named commit"
msgstr "отÑоединить HEAD на указанном коммите"
-#: builtin/worktree.c:331
+#: builtin/worktree.c:329
msgid "-b, -B, and --detach are mutually exclusive"
msgstr "-b, -B и --detach Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать одновременно"
@@ -10629,7 +10845,7 @@ msgstr "вывеÑти объект дерева Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð° Ñ
msgid "only useful for debugging"
msgstr "иÑпользуетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ при отладке"
-#: credential-cache--daemon.c:255
+#: credential-cache--daemon.c:262
msgid "print debugging messages to stderr"
msgstr "вывод отладочных Ñообщений на stderr"
@@ -10640,6 +10856,10 @@ msgid ""
"to read about a specific subcommand or concept."
msgstr "«git help -а» и «git help -g» выводит ÑпиÑок доÑтупных подкоманд и\nнекоторые руководÑтва по темам. ЗапуÑтите «git help <команда>» или\n«git help <термин>», чтобы прочеÑÑ‚ÑŒ о конкретных подкоманде или теме."
+#: http.c:321
+msgid "Public key pinning not supported with cURL < 7.44.0"
+msgstr "Public key pinning не поддерживаетÑÑ Ñ cURL < 7.44.0"
+
#: common-cmds.h:9
msgid "start a working area (see also: git help tutorial)"
msgstr "Ñоздать рабочую облаÑÑ‚ÑŒ (Ñмотрите также: git help tutorial)"
@@ -10698,7 +10918,7 @@ msgstr "Вывод Ñтрок, ÑоответÑтвующих шаблону"
#: common-cmds.h:26
msgid "Create an empty Git repository or reinitialize an existing one"
-msgstr "Создание пуÑтого Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Git или Ñ€ÐµÐ¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ ÑущеÑтвующего"
+msgstr "Создание пуÑтого Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Git или Ð¿ÐµÑ€ÐµÐ¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ ÑущеÑтвующего"
#: common-cmds.h:27
msgid "Show commit logs"
@@ -10721,8 +10941,8 @@ msgid "Update remote refs along with associated objects"
msgstr "Обновление внешних ÑÑылок и ÑвÑзанных объектов"
#: common-cmds.h:32
-msgid "Forward-port local commits to the updated upstream head"
-msgstr "Перемещение локальных коммитов над обновленной вышеÑтоÑщей веткой"
+msgid "Reapply commits on top of another base tip"
+msgstr "Повторно применить коммиты над верхушкой другой ветки"
#: common-cmds.h:33
msgid "Reset current HEAD to the specified state"
@@ -11038,7 +11258,7 @@ msgstr "$onto_name: нет базы ÑлиÑниÑ"
#: git-rebase.sh:504
#, sh-format
msgid "Does not point to a valid commit: $onto_name"
-msgstr "Ðе указаывает на дейÑтвительный коммит: $onto_name"
+msgstr "Ðе указывает на дейÑтвительный коммит: $onto_name"
#: git-rebase.sh:527
#, sh-format
@@ -11198,7 +11418,7 @@ msgstr "Ðевозможно убрать из индекÑа измененны
#: git-stash.sh:538
msgid "Index was not unstashed."
-msgstr "Ð˜Ð½Ð´ÐµÐºÑ Ð½Ðµ был доÑтат из ÑпрÑтанных изменений."
+msgstr "Ð˜Ð½Ð´ÐµÐºÑ Ð½Ðµ был извлечён из ÑпрÑтанных изменений."
#: git-stash.sh:561
#, sh-format
@@ -11372,108 +11592,108 @@ msgstr "Ðе удалоÑÑŒ Ñоздать пуÑтой каталог подмÐ
msgid "Submodule '$name' ($url) unregistered for path '$displaypath'"
msgstr "Подмодуль «$name» ($url) был ÑнÑÑ‚ Ñ Ñ€ÐµÐ³Ð¸Ñтрации по пути «$displaypath»"
-#: git-submodule.sh:705
+#: git-submodule.sh:723
#, sh-format
msgid ""
"Submodule path '$displaypath' not initialized\n"
"Maybe you want to use 'update --init'?"
msgstr "Подмодуль по пути «$displaypath» не инициализирован\nВозможно, вам нужно иÑпользовать «update --init»?"
-#: git-submodule.sh:718
+#: git-submodule.sh:736
#, sh-format
msgid "Unable to find current revision in submodule path '$displaypath'"
msgstr "Ðе удалоÑÑŒ найти текущую редакцию Ð´Ð»Ñ Ð¿Ð¾Ð´Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð¿Ð¾ пути «$displaypath»"
-#: git-submodule.sh:727
+#: git-submodule.sh:745
#, sh-format
msgid "Unable to fetch in submodule path '$sm_path'"
msgstr "Ðе удалоÑÑŒ выполнить извлечение Ð´Ð»Ñ Ð¿Ð¾Ð´Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð¿Ð¾ пути «$sm_path»"
-#: git-submodule.sh:751
+#: git-submodule.sh:768
#, sh-format
msgid "Unable to fetch in submodule path '$displaypath'"
msgstr "Ðе удалоÑÑŒ выполнить извлечение Ð´Ð»Ñ Ð¿Ð¾Ð´Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð¿Ð¾ пути «$displaypath»"
-#: git-submodule.sh:765
+#: git-submodule.sh:788
#, sh-format
msgid "Unable to checkout '$sha1' in submodule path '$displaypath'"
msgstr "Ðе удалоÑÑŒ выполнить переход на ÑоÑтоÑние «$sha1» Ð´Ð»Ñ Ð¿Ð¾Ð´Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð¿Ð¾ пути «$displaypath»"
-#: git-submodule.sh:766
+#: git-submodule.sh:789
#, sh-format
msgid "Submodule path '$displaypath': checked out '$sha1'"
msgstr "Подмодуль по пути «$displaypath»: забрано ÑоÑтоÑние «$sha1»"
-#: git-submodule.sh:770
+#: git-submodule.sh:793
#, sh-format
msgid "Unable to rebase '$sha1' in submodule path '$displaypath'"
msgstr "Ðе удалоÑÑŒ перемеÑтить «$sha1» Ð´Ð»Ñ Ð¿Ð¾Ð´Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð¿Ð¾ пути «$displaypath»"
-#: git-submodule.sh:771
+#: git-submodule.sh:794
#, sh-format
msgid "Submodule path '$displaypath': rebased into '$sha1'"
msgstr "Подмодуль по пути «$displaypath»: перемещен над «$sha1»"
-#: git-submodule.sh:776
+#: git-submodule.sh:799
#, sh-format
msgid "Unable to merge '$sha1' in submodule path '$displaypath'"
msgstr "Ðе удалоÑÑŒ выполнить ÑлиÑние Ñ Â«$sha1» Ð´Ð»Ñ Ð¿Ð¾Ð´Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð¿Ð¾ пути «$displaypath»"
-#: git-submodule.sh:777
+#: git-submodule.sh:800
#, sh-format
msgid "Submodule path '$displaypath': merged in '$sha1'"
msgstr "Подмодуль по пути «$displaypath»: Ñлито Ñ Â«$sha1»"
-#: git-submodule.sh:782
+#: git-submodule.sh:805
#, sh-format
msgid ""
"Execution of '$command $sha1' failed in submodule path '$prefix$sm_path'"
msgstr "Сбой Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Â«$command $sha1» Ð´Ð»Ñ Ð¿Ð¾Ð´Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð¿Ð¾ пути «$prefix$sm_path»"
-#: git-submodule.sh:783
+#: git-submodule.sh:806
#, sh-format
msgid "Submodule path '$prefix$sm_path': '$command $sha1'"
msgstr "Подмодуль по пути «$prefix$sm_path»: «$command $sha1»"
-#: git-submodule.sh:813
+#: git-submodule.sh:836
#, sh-format
msgid "Failed to recurse into submodule path '$displaypath'"
msgstr "Ðе удалоÑÑŒ выполнить рекурÑивно Ð´Ð»Ñ Ð¿Ð¾Ð´Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð¿Ð¾ пути «$displaypath»"
-#: git-submodule.sh:921
+#: git-submodule.sh:944
msgid "The --cached option cannot be used with the --files option"
msgstr "Опцию --cached Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать одновременно Ñ Ð¾Ð¿Ñ†Ð¸ÐµÐ¹ --files"
-#: git-submodule.sh:973
+#: git-submodule.sh:996
#, sh-format
msgid "unexpected mode $mod_dst"
msgstr "неизвеÑтный режим $mod_dst"
-#: git-submodule.sh:993
+#: git-submodule.sh:1016
#, sh-format
msgid " Warn: $display_name doesn't contain commit $sha1_src"
msgstr " Предупреждение: $display_name не Ñодержит коммит $sha1_src"
-#: git-submodule.sh:996
+#: git-submodule.sh:1019
#, sh-format
msgid " Warn: $display_name doesn't contain commit $sha1_dst"
msgstr " Предупреждение: $display_name не Ñодержит коммит $sha1_dst"
-#: git-submodule.sh:999
+#: git-submodule.sh:1022
#, sh-format
msgid " Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst"
msgstr " Предупреждение: $display_name не Ñодержит коммиты $sha1_src и $sha1_dst"
-#: git-submodule.sh:1024
+#: git-submodule.sh:1047
msgid "blob"
msgstr "двоичный объект"
-#: git-submodule.sh:1142
+#: git-submodule.sh:1165
#, sh-format
msgid "Failed to recurse into submodule path '$sm_path'"
msgstr "Ðе удалоÑÑŒ выполнить рекурÑивно Ð´Ð»Ñ Ð¿Ð¾Ð´Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð¿Ð¾ пути «$sm_path»"
-#: git-submodule.sh:1206
+#: git-submodule.sh:1229
#, sh-format
msgid "Synchronizing submodule url for '$displaypath'"
msgstr "Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ url Ð´Ð»Ñ Ð¿Ð¾Ð´Ð¼Ð¾Ð´ÑƒÐ»Ñ Â«$displaypath»"
diff --git a/po/sv.po b/po/sv.po
index 940c5c57aa..c38d2b3938 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -1,14 +1,14 @@
# Swedish translations for Git.
-# Copyright (C) 2010-2015 Peter krefting <peter@softwolves.pp.se>
+# Copyright (C) 2010-2016 Peter krefting <peter@softwolves.pp.se>
# This file is distributed under the same license as the Git package.
-# Peter Krefting <peter@softwolves.pp.se>, 2010, 2011, 2012, 2013, 2014, 2015.
+# Peter Krefting <peter@softwolves.pp.se>, 2010, 2011, 2012, 2013, 2014, 2015, 2016.
#
msgid ""
msgstr ""
-"Project-Id-Version: git 2.6.0\n"
+"Project-Id-Version: git 2.8.0\n"
"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2015-12-22 22:50+0800\n"
-"PO-Revision-Date: 2015-12-26 12:25+0100\n"
+"POT-Creation-Date: 2016-02-28 20:31+0800\n"
+"PO-Revision-Date: 2016-03-04 15:19+0100\n"
"Last-Translator: Peter Krefting <peter@softwolves.pp.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"Language: sv\n"
@@ -31,7 +31,7 @@ msgstr ""
"Rätta dem i din arbetskatalog och använd sedan \"git add/rm <fil>\"\n"
"som lämpligt för att ange lösning och checka in."
-#: advice.c:101 builtin/merge.c:1225
+#: advice.c:101 builtin/merge.c:1226
msgid "You have not concluded your merge (MERGE_HEAD exists)."
msgstr "Du har inte avslutat sammanslagningen (MERGE_HEAD finns)."
@@ -75,7 +75,7 @@ msgstr "fmt"
msgid "archive format"
msgstr "arkivformat"
-#: archive.c:430 builtin/log.c:1229
+#: archive.c:430 builtin/log.c:1232
msgid "prefix"
msgstr "prefix"
@@ -83,11 +83,11 @@ 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:432 builtin/archive.c:88 builtin/blame.c:2535
-#: builtin/blame.c:2536 builtin/config.c:58 builtin/fast-export.c:987
-#: builtin/fast-export.c:989 builtin/grep.c:707 builtin/hash-object.c:99
-#: builtin/ls-files.c:446 builtin/ls-files.c:449 builtin/notes.c:395
-#: builtin/notes.c:558 builtin/read-tree.c:109 parse-options.h:153
+#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2547
+#: builtin/blame.c:2548 builtin/config.c:60 builtin/fast-export.c:987
+#: builtin/fast-export.c:989 builtin/grep.c:720 builtin/hash-object.c:100
+#: builtin/ls-files.c:459 builtin/ls-files.c:462 builtin/notes.c:398
+#: builtin/notes.c:561 builtin/read-tree.c:109 parse-options.h:153
msgid "file"
msgstr "fil"
@@ -119,7 +119,7 @@ msgstr "komprimera bättre"
msgid "list supported archive formats"
msgstr "visa understödda arkivformat"
-#: archive.c:451 builtin/archive.c:90 builtin/clone.c:77
+#: archive.c:451 builtin/archive.c:90 builtin/clone.c:78
msgid "repo"
msgstr "arkiv"
@@ -127,7 +127,7 @@ msgstr "arkiv"
msgid "retrieve the archive from remote repository <repo>"
msgstr "hämta arkivet från fjärrarkivet <arkiv>"
-#: archive.c:453 builtin/archive.c:92 builtin/notes.c:479
+#: archive.c:453 builtin/archive.c:92 builtin/notes.c:482
msgid "command"
msgstr "kommando"
@@ -135,7 +135,7 @@ msgstr "kommando"
msgid "path to the remote git-upload-archive command"
msgstr "sökväg till kommandot git-upload-archive på fjärren"
-#: attr.c:265
+#: attr.c:263
msgid ""
"Negative patterns are ignored in git attributes\n"
"Use '\\!' for literal leading exclamation."
@@ -143,83 +143,100 @@ msgstr ""
"Negativa mönster ignoreras i git-attribut\n"
"Använd '\\!' för att inleda med ett utropstecken."
-#: branch.c:61
+#: branch.c:53
+#, c-format
+msgid ""
+"\n"
+"After fixing the error cause you may try to fix up\n"
+"the remote tracking information by invoking\n"
+"\"git branch --set-upstream-to=%s%s%s\"."
+msgstr ""
+"\n"
+"När du har rättat felorsaken kan du försöka rätta\n"
+"fjärrspårningsinformationen genom att utföra\n"
+"\"git branch --set-upstream-to=%s%s%s\"."
+
+#: branch.c:67
#, c-format
msgid "Not setting branch %s as its own upstream."
msgstr "Ställer inte in grenen %s som sin egen uppströmsgren."
-#: branch.c:84
+#: branch.c:93
#, c-format
msgid "Branch %s set up to track remote branch %s from %s by rebasing."
msgstr ""
"Grenen %s ställdes in att spåra fjärrgrenen %s från %s genom ombasering."
-#: branch.c:85
+#: branch.c:94
#, c-format
msgid "Branch %s set up to track remote branch %s from %s."
msgstr "Grenen %s ställdes in att spåra fjärrgrenen %s från %s."
-#: branch.c:89
+#: branch.c:98
#, c-format
msgid "Branch %s set up to track local branch %s by rebasing."
msgstr "Grenen %s ställdes in att spåra den lokala grenen %s genom ombasering."
-#: branch.c:90
+#: branch.c:99
#, c-format
msgid "Branch %s set up to track local branch %s."
msgstr "Grenen %s ställdes in att spåra den lokala grenen %s."
-#: branch.c:95
+#: branch.c:104
#, c-format
msgid "Branch %s set up to track remote ref %s by rebasing."
msgstr "Grenen %s ställdes in att spåra fjärreferensen %s genom ombasering."
-#: branch.c:96
+#: branch.c:105
#, c-format
msgid "Branch %s set up to track remote ref %s."
msgstr "Grenen %s ställdes in att spåra fjärreferensen %s."
-#: branch.c:100
+#: branch.c:109
#, c-format
msgid "Branch %s set up to track local ref %s by rebasing."
msgstr ""
"Grenen %s ställdes in att spåra den lokala referensen %s genom ombasering."
-#: branch.c:101
+#: branch.c:110
#, c-format
msgid "Branch %s set up to track local ref %s."
msgstr "Grenen %s ställdes in att spåra den lokala referensen %s."
-#: branch.c:134
+#: branch.c:119
+msgid "Unable to write upstream branch configuration"
+msgstr "Kan inte skriva inställningar för uppströmsgren"
+
+#: branch.c:156
#, c-format
msgid "Not tracking: ambiguous information for ref %s"
msgstr "Spårar inte: tvetydig information för referensen %s"
-#: branch.c:163
+#: branch.c:185
#, c-format
msgid "'%s' is not a valid branch name."
msgstr "\"%s\" är inte ett giltigt grennamn."
-#: branch.c:168
+#: branch.c:190
#, c-format
msgid "A branch named '%s' already exists."
msgstr "Det finns redan en gren som heter \"%s\""
-#: branch.c:176
+#: branch.c:198
msgid "Cannot force update the current branch."
msgstr "Kan inte tvinga uppdatering av aktuell gren."
-#: branch.c:196
+#: branch.c:218
#, c-format
msgid "Cannot setup tracking information; starting point '%s' is not a branch."
msgstr "Kan inte ställa in spårning; startpunkten \"%s\" är inte en gren."
-#: branch.c:198
+#: branch.c:220
#, c-format
msgid "the requested upstream branch '%s' does not exist"
msgstr "den efterfrågade uppströmsgrenen \"%s\" finns inte"
-#: branch.c:200
+#: branch.c:222
msgid ""
"\n"
"If you are planning on basing your work on an upstream\n"
@@ -239,22 +256,22 @@ msgstr ""
"spåra dess fjärrmotsvarighet kan du använda \"git push -u\"\n"
"för att ställa in uppströmskonfigurationen när du sänder in."
-#: branch.c:244
+#: branch.c:266
#, c-format
msgid "Not a valid object name: '%s'."
msgstr "Objektnamnet är inte giltigt: \"%s\"."
-#: branch.c:264
+#: branch.c:286
#, c-format
msgid "Ambiguous object name: '%s'."
msgstr "Objektnamnet är tvetydigt: \"%s\"."
-#: branch.c:269
+#: branch.c:291
#, c-format
msgid "Not a valid branch point: '%s'."
msgstr "Avgreningspunkten är inte giltig: \"%s\""
-#: branch.c:322
+#: branch.c:344
#, c-format
msgid "'%s' is already checked out at '%s'"
msgstr "\"%s\" är redan utcheckad på \"%s\""
@@ -278,10 +295,10 @@ msgstr "kunde inte öppna \"%s\""
msgid "Repository lacks these prerequisite commits:"
msgstr "Arkivet saknar dessa nödvändiga incheckningar:"
-#: bundle.c:163 ref-filter.c:1372 sequencer.c:636 sequencer.c:1083
-#: builtin/blame.c:2734 builtin/commit.c:1045 builtin/log.c:334
-#: builtin/log.c:849 builtin/log.c:1461 builtin/log.c:1694 builtin/merge.c:358
-#: builtin/shortlog.c:158
+#: bundle.c:163 ref-filter.c:1462 sequencer.c:627 sequencer.c:1074
+#: builtin/blame.c:2754 builtin/commit.c:1045 builtin/log.c:334
+#: builtin/log.c:852 builtin/log.c:1467 builtin/log.c:1700 builtin/merge.c:358
+#: builtin/shortlog.c:170
msgid "revision walk setup failed"
msgstr "misslyckades skapa revisionstraversering"
@@ -320,7 +337,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:443 builtin/log.c:157 builtin/log.c:1369 builtin/shortlog.c:261
+#: bundle.c:443 builtin/log.c:157 builtin/log.c:1372 builtin/shortlog.c:273
#, c-format
msgid "unrecognized argument: %s"
msgstr "okänt argument: %s"
@@ -343,8 +360,8 @@ msgstr "index-pack dog"
msgid "invalid color value: %.*s"
msgstr "felaktigt färgvärde: %.*s"
-#: commit.c:40 builtin/am.c:452 builtin/am.c:488 builtin/am.c:1520
-#: builtin/am.c:2149
+#: commit.c:40 builtin/am.c:437 builtin/am.c:473 builtin/am.c:1505
+#: builtin/am.c:2135
#, c-format
msgid "could not parse %s"
msgstr "kunde inte tolka %s"
@@ -358,59 +375,64 @@ msgstr "%s %s är inte en incheckning!"
msgid "memory exhausted"
msgstr "minnet slut"
-#: config.c:474 config.c:476
+#: config.c:475 config.c:477
#, c-format
-msgid "bad config file line %d in %s"
-msgstr "felaktig konfigurationsfil rad %d i %s"
+msgid "bad config line %d in %s %s"
+msgstr "felaktig konfigurationsfil rad %d i %s %s"
-#: config.c:592
+#: config.c:593
#, 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"
+msgid "bad numeric config value '%s' for '%s' in %s %s: %s"
+msgstr "felaktigt numeriskt konfigurationsvärde \"%s\" för \"%s\" i %s %s: %s"
-#: config.c:594
+#: config.c:595
#, c-format
msgid "bad numeric config value '%s' for '%s': %s"
msgstr "felaktigt numeriskt konfigurationsvärde \"%s\" för \"%s\": %s"
-#: config.c:679
+#: config.c:680
#, c-format
msgid "failed to expand user dir in: '%s'"
msgstr "misslyckades expandera användarkatalog i: \"%s\""
-#: config.c:757 config.c:768
+#: config.c:758 config.c:769
#, c-format
msgid "bad zlib compression level %d"
msgstr "felaktigt zlib-komprimeringsgrad %d"
-#: config.c:890
+#: config.c:891
#, c-format
msgid "invalid mode for object creation: %s"
msgstr "felaktigt läge för skapande av objekt: %s"
-#: config.c:1216
+#: config.c:1220
msgid "unable to parse command-line config"
msgstr "kan inte tolka kommandoradskonfiguration"
-#: config.c:1277
+#: config.c:1281
msgid "unknown error occured while reading the configuration files"
msgstr "okänt fel uppstod vid läsning av konfigurationsfilerna"
-#: config.c:1601
+#: config.c:1629
#, c-format
msgid "unable to parse '%s' from command-line config"
msgstr "kunde inte tolka värdet \"%s\" från kommandoradskonfiguration"
-#: config.c:1603
+#: config.c:1631
#, 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:1662
+#: config.c:1690
#, c-format
msgid "%s has multiple values"
msgstr "%s har flera värden"
+#: config.c:2226
+#, c-format
+msgid "Could not set '%s' to '%s'"
+msgstr "Kunde inte ställa in \"%s\" till \"%s\""
+
#: connected.c:69
msgid "Could not run 'git rev-list'"
msgstr "Kunde inte köra \"git rev-list\""
@@ -526,16 +548,16 @@ msgstr ""
"Hittade fel i konfigurationsvariabeln \"diff.dirstat\":\n"
"%s"
-#: diff.c:3000
+#: diff.c:2997
#, c-format
msgid "external diff died, stopping at %s"
msgstr "extern diff dog, stannar vid %s"
-#: diff.c:3396
+#: diff.c:3393
msgid "--follow requires exactly one pathspec"
msgstr "--follow kräver exakt en sökvägsangivelse"
-#: diff.c:3559
+#: diff.c:3556
#, c-format
msgid ""
"Failed to parse --dirstat/-X option parameter:\n"
@@ -544,18 +566,18 @@ msgstr ""
"Misslyckades tolka argument till flaggan --dirstat/-X;\n"
"%s"
-#: diff.c:3573
+#: diff.c:3570
#, c-format
msgid "Failed to parse --submodule option parameter: '%s'"
msgstr "Misslyckades tolka argument till flaggan --submodule: \"%s\""
-#: dir.c:1915
+#: dir.c:2004
msgid "failed to get kernel name and information"
msgstr "misslyckades hämta kärnans namn och information"
-#: dir.c:1998
-msgid "Untracked cache is disabled on this system."
-msgstr "Ospårad cache är inaktiverad på detta system."
+#: dir.c:2123
+msgid "Untracked cache is disabled on this system or location."
+msgstr "Ospårad cache är inaktiverad på systemet eller platsen."
#: gpg-interface.c:166 gpg-interface.c:237
msgid "could not run gpg."
@@ -594,20 +616,20 @@ msgstr "\"%s\": %s"
msgid "'%s': short read %s"
msgstr "\"%s\": kort läsning %s"
-#: help.c:207
+#: help.c:205
#, c-format
msgid "available git commands in '%s'"
msgstr "git-kommandon tillgängliga i \"%s\""
-#: help.c:214
+#: help.c:212
msgid "git commands available from elsewhere on your $PATH"
msgstr "git-kommandon från andra platser i din $PATH"
-#: help.c:246
+#: help.c:244
msgid "These are common Git commands used in various situations:"
msgstr "Dessa vanliga Git-kommandon används i olika situationer:"
-#: help.c:311
+#: help.c:309
#, c-format
msgid ""
"'%s' appears to be a git command, but we were not\n"
@@ -616,11 +638,11 @@ msgstr ""
"\"%s\" verkar vara ett git-kommando, men vi kan inte\n"
"köra det. Kanske git-%s är trasigt?"
-#: help.c:368
+#: help.c:366
msgid "Uh oh. Your system reports no Git commands at all."
msgstr "Oj då. Ditt system rapporterar inga Git-kommandon alls."
-#: help.c:390
+#: help.c:388
#, c-format
msgid ""
"WARNING: You called a Git command named '%s', which does not exist.\n"
@@ -629,17 +651,17 @@ msgstr ""
"VARNING: Du anropade ett Git-kommando vid namn \"%s\", som inte finns.\n"
"Fortsätter under förutsättningen att du menade \"%s\""
-#: help.c:395
+#: help.c:393
#, c-format
msgid "in %0.1f seconds automatically..."
msgstr "automatiskt om %0.1f sekunder..."
-#: help.c:402
+#: help.c:400
#, c-format
msgid "git: '%s' is not a git command. See 'git --help'."
msgstr "git: \"%s\" är inte ett git-kommando. Se \"git --help\"."
-#: help.c:406 help.c:466
+#: help.c:404 help.c:464
msgid ""
"\n"
"Did you mean this?"
@@ -653,7 +675,7 @@ msgstr[1] ""
"\n"
"Menade du ett av dessa?"
-#: help.c:462
+#: help.c:460
#, c-format
msgid "%s: %s - %s"
msgstr "%s: %s - %s"
@@ -662,8 +684,8 @@ msgstr "%s: %s - %s"
msgid "failed to read the cache"
msgstr "misslyckades läsa cachen"
-#: merge.c:94 builtin/am.c:2022 builtin/am.c:2057 builtin/checkout.c:376
-#: builtin/checkout.c:587 builtin/clone.c:722
+#: merge.c:94 builtin/am.c:2008 builtin/am.c:2043 builtin/checkout.c:376
+#: builtin/checkout.c:587 builtin/clone.c:730
msgid "unable to write new index file"
msgstr "kunde inte skriva ny indexfil"
@@ -681,64 +703,64 @@ msgstr "addinfo_cache misslyckades för sökvägen \"%s\""
msgid "error building trees"
msgstr "fel vid byggande av träd"
-#: merge-recursive.c:686
+#: merge-recursive.c:689
#, c-format
msgid "failed to create path '%s'%s"
msgstr "misslyckades skapa sökvägen \"%s\"%s"
-#: merge-recursive.c:697
+#: merge-recursive.c:700
#, 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:711 merge-recursive.c:732
+#: merge-recursive.c:714 merge-recursive.c:735
msgid ": perhaps a D/F conflict?"
msgstr ": kanske en K/F-konflikt?"
-#: merge-recursive.c:722
+#: merge-recursive.c:725
#, c-format
msgid "refusing to lose untracked file at '%s'"
msgstr "vägrar förlora ospårad fil vid \"%s\""
-#: merge-recursive.c:762
+#: merge-recursive.c:765
#, c-format
msgid "cannot read object %s '%s'"
msgstr "kan inte läsa objektet %s: \"%s\""
-#: merge-recursive.c:764
+#: merge-recursive.c:767
#, c-format
msgid "blob expected for %s '%s'"
msgstr "blob förväntades för %s \"%s\""
-#: merge-recursive.c:787 builtin/clone.c:369
+#: merge-recursive.c:790 builtin/clone.c:374
#, c-format
msgid "failed to open '%s'"
msgstr "misslyckades öppna \"%s\""
-#: merge-recursive.c:795
+#: merge-recursive.c:798
#, c-format
msgid "failed to symlink '%s'"
msgstr "misslyckades skapa symboliska länken \"%s\""
-#: merge-recursive.c:798
+#: merge-recursive.c:801
#, 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:936
+#: merge-recursive.c:939
msgid "Failed to execute internal merge"
msgstr "Misslyckades exekvera intern sammanslagning"
-#: merge-recursive.c:940
+#: merge-recursive.c:943
#, c-format
msgid "Unable to add %s to database"
msgstr "Kunde inte lägga till %s till databasen"
-#: merge-recursive.c:956
+#: merge-recursive.c:959
msgid "unsupported object type in the tree"
msgstr "objekttyp som ej stöds upptäcktes i trädet"
-#: merge-recursive.c:1031 merge-recursive.c:1045
+#: merge-recursive.c:1034 merge-recursive.c:1048
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -747,7 +769,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:1037 merge-recursive.c:1050
+#: merge-recursive.c:1040 merge-recursive.c:1053
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -756,20 +778,20 @@ 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:1091
+#: merge-recursive.c:1094
msgid "rename"
msgstr "namnbyte"
-#: merge-recursive.c:1091
+#: merge-recursive.c:1094
msgid "renamed"
msgstr "namnbytt"
-#: merge-recursive.c:1147
+#: merge-recursive.c:1150
#, 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:1169
+#: merge-recursive.c:1172
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
@@ -778,144 +800,144 @@ msgstr ""
"KONFLIKT (namnbyte/namnbyte): Namnbyte \"%s\"->\"%s\" på grenen \"%s\" "
"namnbyte \"%s\"->\"%s\" i \"%s\"%s"
-#: merge-recursive.c:1174
+#: merge-recursive.c:1177
msgid " (left unresolved)"
msgstr " (lämnad olöst)"
-#: merge-recursive.c:1228
+#: merge-recursive.c:1231
#, 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:1258
+#: merge-recursive.c:1261
#, c-format
msgid "Renaming %s to %s and %s to %s instead"
msgstr "Byter namn på %s till %s och %s till %s istället"
-#: merge-recursive.c:1457
+#: merge-recursive.c:1460
#, c-format
msgid "CONFLICT (rename/add): Rename %s->%s in %s. %s added in %s"
msgstr "KONFLIKT (namnbyte/tillägg): Namnbyte %s->%s i %s. %s tillagd i %s"
-#: merge-recursive.c:1467
+#: merge-recursive.c:1470
#, c-format
msgid "Adding merged %s"
msgstr "Lägger till sammanslagen %s"
-#: merge-recursive.c:1472 merge-recursive.c:1674
+#: merge-recursive.c:1475 merge-recursive.c:1677
#, c-format
msgid "Adding as %s instead"
msgstr "Lägger till som %s istället"
-#: merge-recursive.c:1523
+#: merge-recursive.c:1526
#, c-format
msgid "cannot read object %s"
msgstr "kan inte läsa objektet %s"
-#: merge-recursive.c:1526
+#: merge-recursive.c:1529
#, c-format
msgid "object %s is not a blob"
msgstr "objektet %s är inte en blob"
-#: merge-recursive.c:1578
+#: merge-recursive.c:1581
msgid "modify"
msgstr "ändra"
-#: merge-recursive.c:1578
+#: merge-recursive.c:1581
msgid "modified"
msgstr "ändrad"
-#: merge-recursive.c:1588
+#: merge-recursive.c:1591
msgid "content"
msgstr "innehåll"
-#: merge-recursive.c:1595
+#: merge-recursive.c:1598
msgid "add/add"
msgstr "tillägg/tillägg"
-#: merge-recursive.c:1629
+#: merge-recursive.c:1632
#, c-format
msgid "Skipped %s (merged same as existing)"
msgstr "Hoppade över %s (sammanslagen samma som befintlig)"
-#: merge-recursive.c:1643
+#: merge-recursive.c:1646
#, c-format
msgid "Auto-merging %s"
msgstr "Slår ihop %s automatiskt"
-#: merge-recursive.c:1647 git-submodule.sh:1025
+#: merge-recursive.c:1650 git-submodule.sh:1048
msgid "submodule"
msgstr "undermodul"
-#: merge-recursive.c:1648
+#: merge-recursive.c:1651
#, c-format
msgid "CONFLICT (%s): Merge conflict in %s"
msgstr "KONFLIKT (%s): Sammanslagningskonflikt i %s"
-#: merge-recursive.c:1734
+#: merge-recursive.c:1737
#, c-format
msgid "Removing %s"
msgstr "Tar bort %s"
-#: merge-recursive.c:1759
+#: merge-recursive.c:1762
msgid "file/directory"
msgstr "fil/katalog"
-#: merge-recursive.c:1765
+#: merge-recursive.c:1768
msgid "directory/file"
msgstr "katalog/fil"
-#: merge-recursive.c:1770
+#: merge-recursive.c:1773
#, 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:1780
+#: merge-recursive.c:1783
#, c-format
msgid "Adding %s"
msgstr "Lägger till %s"
-#: merge-recursive.c:1797
+#: merge-recursive.c:1800
msgid "Fatal merge failure, shouldn't happen."
msgstr "Ödesdigert sammanslagningsfel, borde inte inträffa."
-#: merge-recursive.c:1816
+#: merge-recursive.c:1819
msgid "Already up-to-date!"
msgstr "Redan à jour!"
-#: merge-recursive.c:1825
+#: merge-recursive.c:1828
#, c-format
msgid "merging of trees %s and %s failed"
msgstr "sammanslagning av träden %s och %s misslyckades"
-#: merge-recursive.c:1855
+#: merge-recursive.c:1858
#, c-format
msgid "Unprocessed path??? %s"
msgstr "Obehandlad sökväg??? %s"
-#: merge-recursive.c:1903
+#: merge-recursive.c:1906
msgid "Merging:"
msgstr "Slår ihop:"
-#: merge-recursive.c:1916
+#: merge-recursive.c:1919
#, 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:1953
+#: merge-recursive.c:1956
msgid "merge returned no commit"
msgstr "sammanslagningen returnerade ingen incheckning"
-#: merge-recursive.c:2010
+#: merge-recursive.c:2013
#, c-format
msgid "Could not parse object '%s'"
msgstr "Kunde inte tolka objektet \"%s\""
-#: merge-recursive.c:2021 builtin/merge.c:645
+#: merge-recursive.c:2024 builtin/merge.c:646
msgid "Unable to write index."
msgstr "Kunde inte skriva indexet."
@@ -1032,12 +1054,12 @@ msgstr "Sökvägsangivelsen \"%s\" är i undermodulen \"%.*s\""
msgid "%s: pathspec magic not supported by this command: %s"
msgstr "%s: sökvägsuttrycket hanteras inte av det här kommandot: %s"
-#: pathspec.c:432
+#: pathspec.c:433
#, c-format
msgid "pathspec '%s' is beyond a symbolic link"
msgstr "sökvägsangivelsen \"%s\" är på andra sidan av en symbolisk länk"
-#: pathspec.c:441
+#: pathspec.c:442
msgid ""
"There is nothing to exclude from by :(exclude) patterns.\n"
"Perhaps you forgot to add either ':/' or '.' ?"
@@ -1071,163 +1093,189 @@ msgstr ""
"GIT_INDEX_VERSION satt, men värdet är ogiltigt.\n"
"Använder version %i"
-#: refs.c:543 builtin/merge.c:760 builtin/merge.c:871 builtin/merge.c:973
-#: builtin/merge.c:983
+#: refs.c:543 builtin/merge.c:761 builtin/merge.c:872 builtin/merge.c:974
+#: builtin/merge.c:984
#, c-format
msgid "Could not open '%s' for writing"
msgstr "Kunde inte öppna \"%s\" för skrivning"
-#: refs/files-backend.c:2359
+#: refs/files-backend.c:2374
#, c-format
msgid "could not delete reference %s: %s"
msgstr "kunde inte ta bort referensen %s: %s"
-#: refs/files-backend.c:2362
+#: refs/files-backend.c:2377
#, c-format
msgid "could not delete references: %s"
msgstr "kunde inte ta bort referenser: %s"
-#: refs/files-backend.c:2371
+#: refs/files-backend.c:2386
#, c-format
msgid "could not remove reference %s"
msgstr "kunde inte ta bort referensen %s"
-#: ref-filter.c:245
+#: ref-filter.c:55
#, c-format
-msgid "format: %%(end) atom used without corresponding atom"
-msgstr "format: atomen %%(end) använd utan motsvarande atom"
+msgid "expected format: %%(color:<color>)"
+msgstr "förväntat format: %%(color:<color>)"
+
+#: ref-filter.c:57
+#, c-format
+msgid "unrecognized color: %%(color:%s)"
+msgstr "okänd färg: %%(color:%s)"
-#: ref-filter.c:704
+#: ref-filter.c:71
+#, c-format
+msgid "unrecognized format: %%(%s)"
+msgstr "okänt format: %%(%s)"
+
+#: ref-filter.c:101
#, c-format
msgid "positive value expected contents:lines=%s"
msgstr "positivt värde förväntat contents:lines=%s"
-#: ref-filter.c:833
+#: ref-filter.c:103
#, c-format
-msgid "expected format: %%(color:<color>)"
-msgstr "förväntat format: %%(color:<color>)"
+msgid "unrecognized %%(contents) argument: %s"
+msgstr "okänt %%(contents)-argument: %s"
-#: ref-filter.c:835
-msgid "unable to parse format"
-msgstr "kan inte tolka formatet"
+#: ref-filter.c:113
+#, c-format
+msgid "unrecognized %%(objectname) argument: %s"
+msgstr "okänt %%(objectname)-argument: %s"
-#: ref-filter.c:870
+#: ref-filter.c:135
#, c-format
msgid "expected format: %%(align:<width>,<position>)"
msgstr "förväntat format: %%(align:<bredd>,<position>)"
-#: ref-filter.c:893
+#: ref-filter.c:147
+#, c-format
+msgid "unrecognized position:%s"
+msgstr "okänd position:%s"
+
+#: ref-filter.c:151
+#, c-format
+msgid "unrecognized width:%s"
+msgstr "okänd bredd:%s"
+
+#: ref-filter.c:157
#, c-format
-msgid "improper format entered align:%s"
-msgstr "felaktigt format angivet align:%s"
+msgid "unrecognized %%(align) argument: %s"
+msgstr "okänt %%(align)-argument: %s"
-#: ref-filter.c:898
+#: ref-filter.c:161
#, c-format
msgid "positive width expected with the %%(align) atom"
msgstr "positiv bredd förväntad med atomen %%(align)"
-#: ref-filter.c:1219
+#: ref-filter.c:372
+#, c-format
+msgid "format: %%(end) atom used without corresponding atom"
+msgstr "format: atomen %%(end) använd utan motsvarande atom"
+
+#: ref-filter.c:1311
#, c-format
msgid "malformed object at '%s'"
msgstr "felformat objekt vid \"%s\""
-#: ref-filter.c:1561
+#: ref-filter.c:1651
#, c-format
msgid "format: %%(end) atom missing"
msgstr "format: atomen %%(end) saknas"
-#: ref-filter.c:1615
+#: ref-filter.c:1705
#, c-format
msgid "malformed object name %s"
msgstr "felformat objektnamn %s"
-#: remote.c:756
+#: remote.c:745
#, 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:760
+#: remote.c:749
#, c-format
msgid "%s usually tracks %s, not %s"
msgstr "%s spårar vanligtvis %s, inte %s"
-#: remote.c:764
+#: remote.c:753
#, c-format
msgid "%s tracks both %s and %s"
msgstr "%s spårar både %s och %s"
-#: remote.c:772
+#: remote.c:761
msgid "Internal error"
msgstr "Internt fel"
-#: remote.c:1687 remote.c:1730
+#: remote.c:1677 remote.c:1720
msgid "HEAD does not point to a branch"
msgstr "HEAD pekar inte på en gren"
-#: remote.c:1696
+#: remote.c:1686
#, c-format
msgid "no such branch: '%s'"
msgstr "okänd gren: \"%s\""
-#: remote.c:1699
+#: remote.c:1689
#, c-format
msgid "no upstream configured for branch '%s'"
msgstr "ingen standarduppström angiven för grenen \"%s\""
-#: remote.c:1705
+#: remote.c:1695
#, 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:1720
+#: remote.c:1710
#, 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:1735
+#: remote.c:1725
#, c-format
msgid "branch '%s' has no remote for pushing"
msgstr "grenen \"%s\" har ingen fjärr för \"push\""
-#: remote.c:1746
+#: remote.c:1736
#, c-format
msgid "push refspecs for '%s' do not include '%s'"
msgstr "\"push\"-referensspecifikation för \"%s\" innehåller inte \"%s\""
-#: remote.c:1759
+#: remote.c:1749
msgid "push has no destination (push.default is 'nothing')"
msgstr "\"push\" har inget mål (push.default är \"ingenting\")"
-#: remote.c:1781
+#: remote.c:1771
msgid "cannot resolve 'simple' push to a single destination"
msgstr "\"enkel push\" motsvarar flera olika mål"
-#: remote.c:2083
+#: remote.c:2073
#, 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:2087
+#: remote.c:2077
msgid " (use \"git branch --unset-upstream\" to fixup)\n"
msgstr " (använd \"git branch --unset-upstream\" för att rätta)\n"
-#: remote.c:2090
+#: remote.c:2080
#, c-format
msgid "Your branch is up-to-date with '%s'.\n"
msgstr "Din gren är à jour med \"%s\".\n"
-#: remote.c:2094
+#: remote.c:2084
#, 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:2100
+#: remote.c:2090
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:2103
+#: remote.c:2093
#, c-format
msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
msgid_plural ""
@@ -1237,11 +1285,11 @@ msgstr[0] ""
msgstr[1] ""
"Din gren ligger efter \"%s\" med %d incheckningar, och kan snabbspolas.\n"
-#: remote.c:2111
+#: remote.c:2101
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:2114
+#: remote.c:2104
#, c-format
msgid ""
"Your branch and '%s' have diverged,\n"
@@ -1256,28 +1304,28 @@ msgstr[1] ""
"Din gren och \"%s\" har divergerat,\n"
"och har %d respektive %d olika incheckningar.\n"
-#: remote.c:2124
+#: remote.c:2114
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"
-#: revision.c:2193
+#: revision.c:2131
msgid "your current branch appears to be broken"
msgstr "din nuvarande gren verkar vara trasig"
-#: revision.c:2196
+#: revision.c:2134
#, 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:2390
+#: revision.c:2328
msgid "--first-parent is incompatible with --bisect"
msgstr "--first-parent är inkompatibelt med --bisect"
-#: run-command.c:90
+#: run-command.c:92
msgid "open /dev/null failed"
msgstr "misslyckades öppna /dev/null"
-#: run-command.c:92
+#: run-command.c:94
#, c-format
msgid "dup2(%d,%d) failed"
msgstr "dup2(%d,%d) misslyckades"
@@ -1302,7 +1350,7 @@ msgstr ""
msgid "the receiving end does not support --atomic push"
msgstr "mottagarsidan stöder inte push med --atomic"
-#: sequencer.c:183
+#: sequencer.c:174
msgid ""
"after resolving the conflicts, mark the corrected paths\n"
"with 'git add <paths>' or 'git rm <paths>'"
@@ -1310,7 +1358,7 @@ msgstr ""
"efter att ha löst konflikterna, markera de rättade sökvägarna\n"
"med \"git add <sökvägar>\" eller \"git rm <sökvägar>\""
-#: sequencer.c:186
+#: sequencer.c:177
msgid ""
"after resolving the conflicts, mark the corrected paths\n"
"with 'git add <paths>' or 'git rm <paths>'\n"
@@ -1320,229 +1368,229 @@ msgstr ""
"med \"git add <sökvägar>\" eller \"git rm <sökvägar>\"\n"
"och checka in resultatet med \"git commit\""
-#: sequencer.c:199 sequencer.c:842 sequencer.c:922
+#: sequencer.c:190 sequencer.c:833 sequencer.c:913
#, c-format
msgid "Could not write to %s"
msgstr "Kunde inte skriva till %s"
-#: sequencer.c:202
+#: sequencer.c:193
#, c-format
msgid "Error wrapping up %s"
msgstr "Fel vid ombrytning av %s"
-#: sequencer.c:217
+#: sequencer.c:208
msgid "Your local changes would be overwritten by cherry-pick."
msgstr "Dina lokala ändringar skulle skrivas över av \"cherry-pick\"."
-#: sequencer.c:219
+#: sequencer.c:210
msgid "Your local changes would be overwritten by revert."
msgstr "Dina lokala ändringar skulle skrivas över av \"revert\"."
-#: sequencer.c:222
+#: sequencer.c:213
msgid "Commit your changes or stash them to proceed."
msgstr "Checka in dina ändringar eller använd \"stash\" för att fortsätta."
#. TRANSLATORS: %s will be "revert" or "cherry-pick"
-#: sequencer.c:309
+#: sequencer.c:300
#, c-format
msgid "%s: Unable to write new index file"
msgstr "%s: Kunde inte skriva ny indexfil"
-#: sequencer.c:327
+#: sequencer.c:318
msgid "Could not resolve HEAD commit\n"
msgstr "Kunde inte bestämma HEAD:s incheckning\n"
-#: sequencer.c:347
+#: sequencer.c:338
msgid "Unable to update cache tree\n"
msgstr "Kan inte uppdatera cacheträd\n"
-#: sequencer.c:399
+#: sequencer.c:390
#, c-format
msgid "Could not parse commit %s\n"
msgstr "Kunde inte tolka incheckningen %s\n"
-#: sequencer.c:404
+#: sequencer.c:395
#, c-format
msgid "Could not parse parent commit %s\n"
msgstr "Kunde inte tolka föräldraincheckningen %s\n"
-#: sequencer.c:469
+#: sequencer.c:460
msgid "Your index file is unmerged."
msgstr "Din indexfil har inte slagits ihop."
-#: sequencer.c:488
+#: sequencer.c:479
#, 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:496
+#: sequencer.c:487
#, c-format
msgid "Commit %s does not have parent %d"
msgstr "Incheckning %s har inte förälder %d"
-#: sequencer.c:500
+#: sequencer.c:491
#, c-format
msgid "Mainline was specified but commit %s is not a merge."
msgstr "Huvudlinje angavs, men incheckningen %s är inte en sammanslagning"
#. TRANSLATORS: The first %s will be "revert" or
#. "cherry-pick", the second %s a SHA1
-#: sequencer.c:513
+#: sequencer.c:504
#, c-format
msgid "%s: cannot parse parent commit %s"
msgstr "%s: kan inte tolka föräldraincheckningen %s"
-#: sequencer.c:517
+#: sequencer.c:508
#, c-format
msgid "Cannot get commit message for %s"
msgstr "Kan inte hämta incheckningsmeddelande för %s"
-#: sequencer.c:603
+#: sequencer.c:594
#, c-format
msgid "could not revert %s... %s"
msgstr "kunde inte ångra %s... %s"
-#: sequencer.c:604
+#: sequencer.c:595
#, c-format
msgid "could not apply %s... %s"
msgstr "kunde inte tillämpa %s... %s"
-#: sequencer.c:639
+#: sequencer.c:630
msgid "empty commit set passed"
msgstr "den angivna uppsättningen incheckningar är tom"
-#: sequencer.c:647
+#: sequencer.c:638
#, c-format
msgid "git %s: failed to read the index"
msgstr "git %s: misslyckades läsa indexet"
-#: sequencer.c:651
+#: sequencer.c:642
#, c-format
msgid "git %s: failed to refresh the index"
msgstr "git %s: misslyckades uppdatera indexet"
-#: sequencer.c:711
+#: sequencer.c:702
#, c-format
msgid "Cannot %s during a %s"
msgstr "kan inte %s under en %s"
-#: sequencer.c:733
+#: sequencer.c:724
#, c-format
msgid "Could not parse line %d."
msgstr "Kan inte tolka rad %d."
-#: sequencer.c:738
+#: sequencer.c:729
msgid "No commits parsed."
msgstr "Inga incheckningar lästes."
-#: sequencer.c:750
+#: sequencer.c:741
#, c-format
msgid "Could not open %s"
msgstr "Kunde inte öppna %s"
-#: sequencer.c:754
+#: sequencer.c:745
#, c-format
msgid "Could not read %s."
msgstr "kunde inte läsa %s."
-#: sequencer.c:761
+#: sequencer.c:752
#, c-format
msgid "Unusable instruction sheet: %s"
msgstr "Oanvändbart manus: %s"
-#: sequencer.c:791
+#: sequencer.c:782
#, c-format
msgid "Invalid key: %s"
msgstr "Felaktig nyckel: %s"
-#: sequencer.c:794 builtin/pull.c:47 builtin/pull.c:49
+#: sequencer.c:785 builtin/pull.c:50 builtin/pull.c:52
#, c-format
msgid "Invalid value for %s: %s"
msgstr "Felaktigt värde för %s: %s"
-#: sequencer.c:804
+#: sequencer.c:795
#, c-format
msgid "Malformed options sheet: %s"
msgstr "Trasigt manus: %s"
-#: sequencer.c:823
+#: sequencer.c:814
msgid "a cherry-pick or revert is already in progress"
msgstr "en \"cherry-pick\" eller \"revert\" pågår redan"
-#: sequencer.c:824
+#: sequencer.c:815
msgid "try \"git cherry-pick (--continue | --quit | --abort)\""
msgstr "testa \"git cherry-pick (--continue | --quit | --abort)\""
-#: sequencer.c:828
+#: sequencer.c:819
#, c-format
msgid "Could not create sequencer directory %s"
msgstr "Kunde inte skapa \"sequencer\"-katalogen \"%s\""
-#: sequencer.c:844 sequencer.c:926
+#: sequencer.c:835 sequencer.c:917
#, c-format
msgid "Error wrapping up %s."
msgstr "Fel vid ombrytning av %s."
-#: sequencer.c:863 sequencer.c:996
+#: sequencer.c:854 sequencer.c:987
msgid "no cherry-pick or revert in progress"
msgstr "ingen \"cherry-pick\" eller \"revert\" pågår"
-#: sequencer.c:865
+#: sequencer.c:856
msgid "cannot resolve HEAD"
msgstr "kan inte bestämma HEAD"
-#: sequencer.c:867
+#: sequencer.c:858
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:887 builtin/apply.c:4287
+#: sequencer.c:878 builtin/apply.c:4287
#, c-format
msgid "cannot open %s: %s"
msgstr "kan inte öppna %s: %s"
-#: sequencer.c:890
+#: sequencer.c:881
#, c-format
msgid "cannot read %s: %s"
msgstr "kan inte läsa %s: %s"
-#: sequencer.c:891
+#: sequencer.c:882
msgid "unexpected end of file"
msgstr "oväntat filslut"
-#: sequencer.c:897
+#: sequencer.c:888
#, 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:919
+#: sequencer.c:910
#, c-format
msgid "Could not format %s."
msgstr "Kunde inte formatera %s."
-#: sequencer.c:1064
+#: sequencer.c:1055
#, c-format
msgid "%s: can't cherry-pick a %s"
msgstr "%s: kan inte göra \"cherry-pick\" på typen \"%s\""
-#: sequencer.c:1067
+#: sequencer.c:1058
#, c-format
msgid "%s: bad revision"
msgstr "%s: felaktig revision"
-#: sequencer.c:1101
+#: sequencer.c:1092
msgid "Can't revert as initial commit"
msgstr "Kan inte ångra som första incheckning"
-#: sequencer.c:1102
+#: sequencer.c:1093
msgid "Can't cherry-pick into empty head"
msgstr "Kan inte göra \"cherry-pick\" i ett tomt huvud"
-#: setup.c:248
+#: setup.c:246
#, c-format
msgid "failed to read %s"
msgstr "misslyckades läsa %s"
-#: sha1_name.c:463
+#: sha1_name.c:462
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"
@@ -1564,62 +1612,81 @@ msgstr ""
"Undersök referenserna och ta kanske bort dem. Stäng av meddelandet\n"
"genom att köra \"git config advice.objectNameWarning false\""
-#: submodule.c:61 submodule.c:95
+#: submodule.c:62 submodule.c:96
msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
msgstr ""
"Kan inte ändra .gitmodules-fil som inte slagits ihop, lös "
"sammanslagningskonflikter först"
-#: submodule.c:65 submodule.c:99
+#: submodule.c:66 submodule.c:100
#, c-format
msgid "Could not find section in .gitmodules where path=%s"
msgstr "Hittade inte någon sektion i .gitmodules där sökväg=%s"
-#: submodule.c:73
+#: submodule.c:74
#, c-format
msgid "Could not update .gitmodules entry %s"
msgstr "Kunde inte uppdatera .gitmodules-posten %s"
-#: submodule.c:106
+#: submodule.c:107
#, c-format
msgid "Could not remove .gitmodules entry for %s"
msgstr "Kunde inte ta bort .gitmodules-posten för %s"
-#: submodule.c:117
+#: submodule.c:118
msgid "staging updated .gitmodules failed"
msgstr "misslyckades köa uppdaterad .gitmodules"
-#: submodule.c:1040
-#, c-format
-msgid "Could not set core.worktree in %s"
-msgstr "Kunde inte sätta core.worktree i %s"
-
-#: trailer.c:491 trailer.c:495 trailer.c:499 trailer.c:553 trailer.c:557
-#: trailer.c:561
+#: trailer.c:492 trailer.c:496 trailer.c:500 trailer.c:554 trailer.c:558
+#: trailer.c:562
#, c-format
msgid "unknown value '%s' for key '%s'"
msgstr "okänt värde \"%s\" för nyckeln \"%s\""
-#: trailer.c:543 trailer.c:548 builtin/remote.c:296
+#: trailer.c:544 trailer.c:549 builtin/remote.c:289
#, c-format
msgid "more than one %s"
msgstr "mer än en %s"
-#: trailer.c:581
+#: trailer.c:582
#, c-format
msgid "empty trailer token in trailer '%.*s'"
msgstr "tom släpradssymbol i släpraden \"%.*s\""
-#: trailer.c:701
+#: trailer.c:702
#, c-format
msgid "could not read input file '%s'"
msgstr "kunde inte läsa indatafilen \"%s\""
-#: trailer.c:704
+#: trailer.c:705
msgid "could not read from stdin"
msgstr "Kunde inte läsa från standard in"
-#: transport-helper.c:1025
+#: trailer.c:857 builtin/am.c:42
+#, c-format
+msgid "could not stat %s"
+msgstr "kunde inte ta status på %s"
+
+#: trailer.c:859
+#, c-format
+msgid "file %s is not a regular file"
+msgstr "filen %s är inte en normal fil"
+
+#: trailer.c:861
+#, c-format
+msgid "file %s is not writable by user"
+msgstr "filen %s är inte skrivbar av användaren"
+
+#: trailer.c:873
+msgid "could not open temporary file"
+msgstr "kunde inte öppna temporär file"
+
+#: trailer.c:912
+#, c-format
+msgid "could not rename temporary file to %s"
+msgstr "kunde inte byta nman på temporära file till %s"
+
+#: transport-helper.c:1041
#, c-format
msgid "Could not read ref %s"
msgstr "Kunde inte läsa referensen %s"
@@ -1657,47 +1724,47 @@ msgstr "felaktigt portnummer"
msgid "invalid '..' path segment"
msgstr "felaktigt \"..\"-sökvägssegment"
-#: wrapper.c:219 wrapper.c:362
+#: wrapper.c:222 wrapper.c:381
#, c-format
msgid "could not open '%s' for reading and writing"
msgstr "kunde inte öppna \"%s\" för läsning och skrivning"
-#: wrapper.c:221 wrapper.c:364
+#: wrapper.c:224 wrapper.c:383
#, c-format
msgid "could not open '%s' for writing"
msgstr "kunde inte öppna \"%s\" för skrivning"
-#: wrapper.c:223 wrapper.c:366 builtin/am.c:338 builtin/commit.c:1691
-#: builtin/merge.c:1074 builtin/pull.c:380
+#: wrapper.c:226 wrapper.c:385 builtin/am.c:323 builtin/commit.c:1691
+#: builtin/merge.c:1075 builtin/pull.c:387
#, c-format
msgid "could not open '%s' for reading"
msgstr "kunde inte öppna \"%s\" för läsning"
-#: wrapper.c:579
+#: wrapper.c:611
#, c-format
msgid "unable to access '%s': %s"
msgstr "kan inte komma åt \"%s\": %s"
-#: wrapper.c:600
+#: wrapper.c:632
#, c-format
msgid "unable to access '%s'"
msgstr "kan inte komma åt \"%s\""
-#: wrapper.c:608
+#: wrapper.c:640
msgid "unable to get current working directory"
msgstr "kan inte hämta aktuell arbetskatalog"
-#: wrapper.c:635
+#: wrapper.c:667
#, c-format
msgid "could not open %s for writing"
msgstr "kunde inte öppna %s för skrivning"
-#: wrapper.c:646 builtin/am.c:425
+#: wrapper.c:678 builtin/am.c:410
#, c-format
msgid "could not write to %s"
msgstr "kunde inte skriva till %s"
-#: wrapper.c:652
+#: wrapper.c:684
#, c-format
msgid "could not close %s"
msgstr "kunde inte stänga %s"
@@ -2163,7 +2230,7 @@ msgstr "försvunnen"
msgid "behind "
msgstr "efter "
-#: compat/precompose_utf8.c:56 builtin/clone.c:408
+#: compat/precompose_utf8.c:57 builtin/clone.c:413
#, c-format
msgid "failed to unlink '%s'"
msgstr "misslyckades ta bort länken \"%s\""
@@ -2190,7 +2257,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:194 builtin/rev-parse.c:796
+#: builtin/add.c:194 builtin/rev-parse.c:797
msgid "Could not read the index"
msgstr "Kunde inte läsa indexet"
@@ -2225,15 +2292,15 @@ 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:249 builtin/clean.c:894 builtin/fetch.c:108 builtin/mv.c:110
-#: builtin/prune-packed.c:55 builtin/pull.c:182 builtin/push.c:543
-#: builtin/remote.c:1345 builtin/rm.c:268 builtin/send-pack.c:162
+#: builtin/add.c:249 builtin/clean.c:870 builtin/fetch.c:112 builtin/mv.c:111
+#: builtin/prune-packed.c:55 builtin/pull.c:189 builtin/push.c:511
+#: builtin/remote.c:1330 builtin/rm.c:268 builtin/send-pack.c:162
msgid "dry run"
msgstr "testkörning"
-#: builtin/add.c:250 builtin/apply.c:4571 builtin/check-ignore.c:19
+#: builtin/add.c:250 builtin/apply.c:4561 builtin/check-ignore.c:19
#: builtin/commit.c:1322 builtin/count-objects.c:85 builtin/fsck.c:558
-#: builtin/log.c:1645 builtin/mv.c:109 builtin/read-tree.c:114
+#: builtin/log.c:1651 builtin/mv.c:110 builtin/read-tree.c:114
msgid "be verbose"
msgstr "var pratsam"
@@ -2241,7 +2308,7 @@ msgstr "var pratsam"
msgid "interactive picking"
msgstr "plocka interaktivt"
-#: builtin/add.c:253 builtin/checkout.c:1153 builtin/reset.c:286
+#: builtin/add.c:253 builtin/checkout.c:1155 builtin/reset.c:286
msgid "select hunks interactively"
msgstr "välj stycken interaktivt"
@@ -2308,138 +2375,133 @@ 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/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:938
-#: builtin/commit.c:337 builtin/mv.c:130 builtin/reset.c:235 builtin/rm.c:298
-#: builtin/submodule--helper.c:40
+#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:914
+#: builtin/commit.c:337 builtin/mv.c:131 builtin/reset.c:235 builtin/rm.c:298
+#: builtin/submodule--helper.c:35
msgid "index file corrupt"
msgstr "indexfilen trasig"
-#: builtin/add.c:439 builtin/apply.c:4669 builtin/mv.c:279 builtin/rm.c:430
+#: builtin/add.c:439 builtin/apply.c:4659 builtin/mv.c:280 builtin/rm.c:430
msgid "Unable to write new index file"
msgstr "Kunde inte skriva ny indexfil"
-#: builtin/am.c:42
-#, c-format
-msgid "could not stat %s"
-msgstr "kunde inte ta status på %s"
-
-#: builtin/am.c:271 builtin/commit.c:738 builtin/merge.c:1077
+#: builtin/am.c:256 builtin/commit.c:738 builtin/merge.c:1078
#, c-format
msgid "could not read '%s'"
msgstr "kunde inte läsa \"%s\""
-#: builtin/am.c:445
+#: builtin/am.c:430
msgid "could not parse author script"
msgstr "kunde inte tolka författarskript"
-#: builtin/am.c:522
+#: builtin/am.c:507
#, c-format
msgid "'%s' was deleted by the applypatch-msg hook"
msgstr "\"%s\" togs bort av kroken applypatch-msg"
-#: builtin/am.c:563 builtin/notes.c:300
+#: builtin/am.c:548 builtin/notes.c:300
#, c-format
msgid "Malformed input line: '%s'."
msgstr "Felaktig indatarad: \"%s\"."
-#: builtin/am.c:600 builtin/notes.c:315
+#: builtin/am.c:585 builtin/notes.c:315
#, c-format
msgid "Failed to copy notes from '%s' to '%s'"
msgstr "Misslyckades kopiera anteckningar från \"%s\" till \"%s\""
-#: builtin/am.c:626
+#: builtin/am.c:611
msgid "fseek failed"
msgstr "\"fseek\" misslyckades"
-#: builtin/am.c:787 builtin/am.c:875
+#: builtin/am.c:772 builtin/am.c:860
#, c-format
msgid "could not open '%s' for reading: %s"
msgstr "kunde inte öppna \"%s\" för läsning: %s"
-#: builtin/am.c:794
+#: builtin/am.c:779
#, c-format
msgid "could not open '%s' for writing: %s"
msgstr "Kunde inte öppna \"%s\" för skrivning: %s"
-#: builtin/am.c:803
+#: builtin/am.c:788
#, c-format
msgid "could not parse patch '%s'"
msgstr "kunde inte tolka patchen \"%s\""
-#: builtin/am.c:868
+#: builtin/am.c:853
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:916
+#: builtin/am.c:901
msgid "invalid timestamp"
msgstr "ogiltig tidsstämpel"
-#: builtin/am.c:919 builtin/am.c:927
+#: builtin/am.c:904 builtin/am.c:912
msgid "invalid Date line"
msgstr "ogiltig \"Date\"-rad"
-#: builtin/am.c:924
+#: builtin/am.c:909
msgid "invalid timezone offset"
msgstr "ogiltig tidszons-offset"
-#: builtin/am.c:1011
+#: builtin/am.c:996
msgid "Patch format detection failed."
msgstr "Misslyckades detektera patchformat."
-#: builtin/am.c:1016 builtin/clone.c:373
+#: builtin/am.c:1001 builtin/clone.c:378
#, c-format
msgid "failed to create directory '%s'"
msgstr "misslyckades skapa katalogen \"%s\""
-#: builtin/am.c:1020
+#: builtin/am.c:1005
msgid "Failed to split patches."
msgstr "Misslyckades dela patchar."
-#: builtin/am.c:1152 builtin/commit.c:363
+#: builtin/am.c:1137 builtin/commit.c:363
msgid "unable to write index file"
msgstr "kan inte skriva indexfil"
-#: builtin/am.c:1203
+#: builtin/am.c:1188
#, 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:1204
+#: builtin/am.c:1189
#, 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:1205
+#: builtin/am.c:1190
#, 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:1343
+#: builtin/am.c:1328
msgid "Patch is empty. Was it split wrong?"
msgstr "Patchen är tom. Delades den upp felaktigt?"
-#: builtin/am.c:1417 builtin/log.c:1347
+#: builtin/am.c:1402 builtin/log.c:1350
#, c-format
msgid "invalid ident line: %s"
msgstr "ogiltig ident-rad: %s"
-#: builtin/am.c:1444
+#: builtin/am.c:1429
#, c-format
msgid "unable to parse commit %s"
msgstr "kunde inte tolka incheckningen %s"
-#: builtin/am.c:1646
+#: builtin/am.c:1631
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:1648
+#: builtin/am.c:1633
msgid "Using index info to reconstruct a base tree..."
msgstr "Använder indexinfo för att återskapa ett basträd..."
-#: builtin/am.c:1667
+#: builtin/am.c:1652
msgid ""
"Did you hand edit your patch?\n"
"It does not apply to blobs recorded in its index."
@@ -2447,39 +2509,39 @@ msgstr ""
"Har du handredigerat din patch?\n"
"Den kan inte tillämpas på blobbar som antecknats i dess index."
-#: builtin/am.c:1673
+#: builtin/am.c:1658
msgid "Falling back to patching base and 3-way merge..."
msgstr ""
"Faller tillbaka på att patcha grundversionen och trevägssammanslagning..."
-#: builtin/am.c:1688
+#: builtin/am.c:1673
msgid "Failed to merge in the changes."
msgstr "Misslyckades slå ihop ändringarna."
-#: builtin/am.c:1712 builtin/merge.c:632
+#: builtin/am.c:1697 builtin/merge.c:633
msgid "git write-tree failed to write a tree"
msgstr "git write-tree misslyckades skriva ett träd"
-#: builtin/am.c:1719
+#: builtin/am.c:1704
msgid "applying to an empty history"
msgstr "tillämpar på en tom historik"
-#: builtin/am.c:1732 builtin/commit.c:1755 builtin/merge.c:829
-#: builtin/merge.c:854
+#: builtin/am.c:1717 builtin/commit.c:1755 builtin/merge.c:830
+#: builtin/merge.c:855
msgid "failed to write commit object"
msgstr "kunde inte skriva incheckningsobjekt"
-#: builtin/am.c:1764 builtin/am.c:1768
+#: builtin/am.c:1749 builtin/am.c:1753
#, c-format
msgid "cannot resume: %s does not exist."
msgstr "kan inte återuppta: %s finns inte."
-#: builtin/am.c:1784
+#: builtin/am.c:1769
msgid "cannot be interactive without stdin connected to a terminal."
msgstr ""
"kan inte vara interaktiv om standard in inte är ansluten till en terminal."
-#: builtin/am.c:1789
+#: builtin/am.c:1774
msgid "Commit Body is:"
msgstr "Incheckningskroppen är:"
@@ -2487,35 +2549,35 @@ msgstr "Incheckningskroppen är:"
#. in your translation. The program will only accept English
#. input at this point.
#.
-#: builtin/am.c:1799
+#: builtin/am.c:1784
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:1849
+#: builtin/am.c:1834
#, c-format
msgid "Dirty index: cannot apply patches (dirty: %s)"
msgstr "Smutsigt index: kan inte tillämpa patchar (smutsiga: %s)"
-#: builtin/am.c:1884 builtin/am.c:1955
+#: builtin/am.c:1869 builtin/am.c:1941
#, c-format
msgid "Applying: %.*s"
msgstr "Tillämpar: %.*s"
-#: builtin/am.c:1900
+#: builtin/am.c:1885
msgid "No changes -- Patch already applied."
msgstr "Inga ändringar -- Patchen har redan tillämpats."
-#: builtin/am.c:1908
+#: builtin/am.c:1893
#, c-format
msgid "Patch failed at %s %.*s"
msgstr "Patch misslyckades på %s %.*s"
-#: builtin/am.c:1914
+#: builtin/am.c:1899
#, c-format
msgid "The copy of the patch that failed is found in: %s"
msgstr "En kopia av patchen som misslyckades finns i: %s"
-#: builtin/am.c:1958
+#: builtin/am.c:1944
msgid ""
"No changes - did you forget to use 'git add'?\n"
"If there is nothing left to stage, chances are that something else\n"
@@ -2525,7 +2587,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:1965
+#: builtin/am.c:1951
msgid ""
"You still have unmerged paths in your index.\n"
"Did you forget to use 'git add'?"
@@ -2533,17 +2595,17 @@ msgstr ""
"Du har fortfarande sökvägar som inte slagits samman i ditt index.\n"
"Glömde du använda \"git add\"?"
-#: builtin/am.c:2073 builtin/am.c:2077 builtin/am.c:2089 builtin/reset.c:308
+#: builtin/am.c:2059 builtin/am.c:2063 builtin/am.c:2075 builtin/reset.c:308
#: builtin/reset.c:316
#, c-format
msgid "Could not parse object '%s'."
msgstr "Kan inte tolka objektet \"%s\""
-#: builtin/am.c:2125
+#: builtin/am.c:2111
msgid "failed to clean index"
msgstr "misslyckades städa upp indexet"
-#: builtin/am.c:2159
+#: builtin/am.c:2145
msgid ""
"You seem to have moved HEAD since the last 'am' failure.\n"
"Not rewinding to ORIG_HEAD"
@@ -2551,152 +2613,152 @@ msgstr ""
"Du verkar ha flyttat HEAD sedan \"am\" sist misslyckades.\n"
"Återställer inte till ORIG_HEAD"
-#: builtin/am.c:2220
+#: builtin/am.c:2206
#, c-format
msgid "Invalid value for --patch-format: %s"
msgstr "Felaktigt värde för --patch-format: %s"
-#: builtin/am.c:2253
+#: builtin/am.c:2239
msgid "git am [<options>] [(<mbox>|<Maildir>)...]"
msgstr "git am [<flaggor>] [(<mbox>|<Maildir>)...]"
-#: builtin/am.c:2254
+#: builtin/am.c:2240
msgid "git am [<options>] (--continue | --skip | --abort)"
msgstr "git am [<flaggor>] (--continue | --skip | --abort)"
-#: builtin/am.c:2260
+#: builtin/am.c:2246
msgid "run interactively"
msgstr "kör interaktivt"
-#: builtin/am.c:2262
+#: builtin/am.c:2248
msgid "historical option -- no-op"
msgstr "historisk flagga -- no-op"
-#: builtin/am.c:2264
+#: builtin/am.c:2250
msgid "allow fall back on 3way merging if needed"
msgstr "tillåt falla tillbaka på trevägssammanslagning om nödvändigt"
-#: builtin/am.c:2265 builtin/init-db.c:474 builtin/prune-packed.c:57
+#: builtin/am.c:2251 builtin/init-db.c:474 builtin/prune-packed.c:57
#: builtin/repack.c:171
msgid "be quiet"
msgstr "var tyst"
-#: builtin/am.c:2267
+#: builtin/am.c:2253
msgid "add a Signed-off-by line to the commit message"
msgstr "lägg till \"Signed-off-by\"-rad i incheckningsmeddelandet"
-#: builtin/am.c:2270
+#: builtin/am.c:2256
msgid "recode into utf8 (default)"
msgstr "koda om till utf8 (standard)"
-#: builtin/am.c:2272
+#: builtin/am.c:2258
msgid "pass -k flag to git-mailinfo"
msgstr "sänd flaggan -k till git-mailinfo"
-#: builtin/am.c:2274
+#: builtin/am.c:2260
msgid "pass -b flag to git-mailinfo"
msgstr "sänd flaggan -b till git-mailinfo"
-#: builtin/am.c:2276
+#: builtin/am.c:2262
msgid "pass -m flag to git-mailinfo"
msgstr "sänd flaggan -m till git-mailinfo"
-#: builtin/am.c:2278
+#: builtin/am.c:2264
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:2281
+#: builtin/am.c:2267
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:2284
+#: builtin/am.c:2270
msgid "strip everything before a scissors line"
msgstr "ta bort allting före en saxlinje"
-#: builtin/am.c:2285 builtin/apply.c:4554
+#: builtin/am.c:2271 builtin/apply.c:4544
msgid "action"
msgstr "åtgärd"
-#: builtin/am.c:2286 builtin/am.c:2289 builtin/am.c:2292 builtin/am.c:2295
-#: builtin/am.c:2298 builtin/am.c:2301 builtin/am.c:2304 builtin/am.c:2307
-#: builtin/am.c:2313
+#: builtin/am.c:2272 builtin/am.c:2275 builtin/am.c:2278 builtin/am.c:2281
+#: builtin/am.c:2284 builtin/am.c:2287 builtin/am.c:2290 builtin/am.c:2293
+#: builtin/am.c:2299
msgid "pass it through git-apply"
msgstr "sänd det genom git-apply"
-#: builtin/am.c:2294 builtin/apply.c:4578
+#: builtin/am.c:2280 builtin/apply.c:4568
msgid "root"
msgstr "rot"
-#: builtin/am.c:2297 builtin/am.c:2300 builtin/apply.c:4516
-#: builtin/apply.c:4519 builtin/clone.c:85 builtin/fetch.c:93
-#: builtin/pull.c:167 builtin/submodule--helper.c:78
-#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
+#: builtin/am.c:2283 builtin/am.c:2286 builtin/apply.c:4506
+#: builtin/apply.c:4509 builtin/clone.c:86 builtin/fetch.c:95
+#: builtin/pull.c:171 builtin/submodule--helper.c:72
+#: builtin/submodule--helper.c:160 builtin/submodule--helper.c:163
msgid "path"
msgstr "sökväg"
-#: builtin/am.c:2303 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
-#: builtin/grep.c:693 builtin/merge.c:198 builtin/pull.c:127
-#: builtin/repack.c:178 builtin/repack.c:182 builtin/show-branch.c:645
-#: builtin/show-ref.c:175 builtin/tag.c:340 parse-options.h:132
-#: parse-options.h:134 parse-options.h:244
+#: builtin/am.c:2289 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
+#: builtin/grep.c:704 builtin/merge.c:198 builtin/pull.c:131
+#: builtin/pull.c:185 builtin/repack.c:178 builtin/repack.c:182
+#: builtin/show-branch.c:645 builtin/show-ref.c:175 builtin/tag.c:340
+#: parse-options.h:132 parse-options.h:134 parse-options.h:244
msgid "n"
msgstr "n"
-#: builtin/am.c:2306 builtin/apply.c:4522
+#: builtin/am.c:2292 builtin/apply.c:4512
msgid "num"
msgstr "antal"
-#: builtin/am.c:2309 builtin/for-each-ref.c:37 builtin/replace.c:438
+#: builtin/am.c:2295 builtin/for-each-ref.c:37 builtin/replace.c:438
#: builtin/tag.c:372
msgid "format"
msgstr "format"
-#: builtin/am.c:2310
+#: builtin/am.c:2296
msgid "format the patch(es) are in"
msgstr "format för patch(ar)"
-#: builtin/am.c:2316
+#: builtin/am.c:2302
msgid "override error message when patch failure occurs"
msgstr "överstyr felmeddelanden när patchfel uppstår"
-#: builtin/am.c:2318
+#: builtin/am.c:2304
msgid "continue applying patches after resolving a conflict"
msgstr "fortsätt applicera patchar efter att ha löst en konflikt"
-#: builtin/am.c:2321
+#: builtin/am.c:2307
msgid "synonyms for --continue"
msgstr "synonymer till --continue"
-#: builtin/am.c:2324
+#: builtin/am.c:2310
msgid "skip the current patch"
msgstr "hoppa över den aktuella grenen"
-#: builtin/am.c:2327
+#: builtin/am.c:2313
msgid "restore the original branch and abort the patching operation."
msgstr "återställ originalgrenen och avbryt patchningen."
-#: builtin/am.c:2331
+#: builtin/am.c:2317
msgid "lie about committer date"
msgstr "ljug om incheckningsdatum"
-#: builtin/am.c:2333
+#: builtin/am.c:2319
msgid "use current timestamp for author date"
msgstr "använd nuvarande tidsstämpel för författardatum"
-#: builtin/am.c:2335 builtin/commit.c:1593 builtin/merge.c:225
-#: builtin/pull.c:155 builtin/revert.c:92 builtin/tag.c:355
+#: builtin/am.c:2321 builtin/commit.c:1593 builtin/merge.c:225
+#: builtin/pull.c:159 builtin/revert.c:92 builtin/tag.c:355
msgid "key-id"
msgstr "nyckel-id"
-#: builtin/am.c:2336
+#: builtin/am.c:2322
msgid "GPG-sign commits"
msgstr "GPG-signera incheckningar"
-#: builtin/am.c:2339
+#: builtin/am.c:2325
msgid "(internal use for git-rebase)"
msgstr "(används internt av git-rebase)"
-#: builtin/am.c:2354
+#: builtin/am.c:2340
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."
@@ -2704,16 +2766,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:2361
+#: builtin/am.c:2347
msgid "failed to read the index"
msgstr "misslyckades läsa indexet"
-#: builtin/am.c:2376
+#: builtin/am.c:2362
#, 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:2400
+#: builtin/am.c:2386
#, c-format
msgid ""
"Stray %s directory found.\n"
@@ -2722,7 +2784,7 @@ msgstr ""
"Kvarbliven katalog %s hittades.\n"
"Använd \"git am --abort\" för att ta bort den."
-#: builtin/am.c:2406
+#: builtin/am.c:2392
msgid "Resolve operation not in progress, we are not resuming."
msgstr "Lösningsoperation pågår inte, vi återupptar inte."
@@ -3068,131 +3130,131 @@ msgstr "indata känns inte igen"
msgid "unable to read index file"
msgstr "kan inte läsa indexfilen"
-#: builtin/apply.c:4517
+#: builtin/apply.c:4507
msgid "don't apply changes matching the given path"
msgstr "tillämpa inte ändringar som motsvarar given sökväg"
-#: builtin/apply.c:4520
+#: builtin/apply.c:4510
msgid "apply changes matching the given path"
msgstr "tillämpa ändringar som motsvarar given sökväg"
-#: builtin/apply.c:4523
+#: builtin/apply.c:4513
msgid "remove <num> leading slashes from traditional diff paths"
msgstr "ta bort <antal> inledande snedstreck från traditionella diff-sökvägar"
-#: builtin/apply.c:4526
+#: builtin/apply.c:4516
msgid "ignore additions made by the patch"
msgstr "ignorera tillägg gjorda av patchen"
-#: builtin/apply.c:4528
+#: builtin/apply.c:4518
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"
-#: builtin/apply.c:4532
+#: builtin/apply.c:4522
msgid "show number of added and deleted lines in decimal notation"
msgstr "visa antal tillagda och borttagna rader decimalt"
-#: builtin/apply.c:4534
+#: builtin/apply.c:4524
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"
-#: builtin/apply.c:4536
+#: builtin/apply.c:4526
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"
-#: builtin/apply.c:4538
+#: builtin/apply.c:4528
msgid "make sure the patch is applicable to the current index"
msgstr "se till att patchen kan tillämpas på aktuellt index"
-#: builtin/apply.c:4540
+#: builtin/apply.c:4530
msgid "apply a patch without touching the working tree"
msgstr "tillämpa en patch utan att röra arbetskatalogen"
-#: builtin/apply.c:4542
+#: builtin/apply.c:4532
msgid "accept a patch that touches outside the working area"
msgstr "godta en patch som rör filer utanför arbetskatalogen"
-#: builtin/apply.c:4544
+#: builtin/apply.c:4534
msgid "also apply the patch (use with --stat/--summary/--check)"
msgstr "tillämpa också patchen (använd med --stat/--summary/--check)"
-#: builtin/apply.c:4546
+#: builtin/apply.c:4536
msgid "attempt three-way merge if a patch does not apply"
msgstr "försök en trevägssammanslagning om patchen inte kan tillämpas"
-#: builtin/apply.c:4548
+#: builtin/apply.c:4538
msgid "build a temporary index based on embedded index information"
msgstr "bygg ett temporärt index baserat på inbyggd indexinformation"
-#: builtin/apply.c:4550 builtin/checkout-index.c:198 builtin/ls-files.c:412
+#: builtin/apply.c:4541 builtin/checkout-index.c:169 builtin/ls-files.c:425
msgid "paths are separated with NUL character"
msgstr "sökvägar avdelas med NUL-tecken"
-#: builtin/apply.c:4553
+#: builtin/apply.c:4543
msgid "ensure at least <n> lines of context match"
msgstr "se till att åtminstone <n> rader sammanhang är lika"
-#: builtin/apply.c:4555
+#: builtin/apply.c:4545
msgid "detect new or modified lines that have whitespace errors"
msgstr "detektera nya eller ändrade rader som har fel i blanktecken"
-#: builtin/apply.c:4558 builtin/apply.c:4561
+#: builtin/apply.c:4548 builtin/apply.c:4551
msgid "ignore changes in whitespace when finding context"
msgstr "ignorera ändringar i blanktecken för sammanhang"
-#: builtin/apply.c:4564
+#: builtin/apply.c:4554
msgid "apply the patch in reverse"
msgstr "tillämpa patchen baklänges"
-#: builtin/apply.c:4566
+#: builtin/apply.c:4556
msgid "don't expect at least one line of context"
msgstr "förvänta inte minst en rad sammanhang"
-#: builtin/apply.c:4568
+#: builtin/apply.c:4558
msgid "leave the rejected hunks in corresponding *.rej files"
msgstr "lämna refuserade stycken i motsvarande *.rej-filer"
-#: builtin/apply.c:4570
+#: builtin/apply.c:4560
msgid "allow overlapping hunks"
msgstr "tillåt överlappande stycken"
-#: builtin/apply.c:4573
+#: builtin/apply.c:4563
msgid "tolerate incorrectly detected missing new-line at the end of file"
msgstr "tolerera felaktigt detekterade saknade nyradstecken vid filslut"
-#: builtin/apply.c:4576
+#: builtin/apply.c:4566
msgid "do not trust the line counts in the hunk headers"
msgstr "lite inte på antalet linjer i styckehuvuden"
-#: builtin/apply.c:4579
+#: builtin/apply.c:4569
msgid "prepend <root> to all filenames"
msgstr "lägg till <rot> i alla filnamn"
-#: builtin/apply.c:4601
+#: builtin/apply.c:4591
msgid "--3way outside a repository"
msgstr "--3way utanför arkiv"
-#: builtin/apply.c:4609
+#: builtin/apply.c:4599
msgid "--index outside a repository"
msgstr "--index utanför arkiv"
-#: builtin/apply.c:4612
+#: builtin/apply.c:4602
msgid "--cached outside a repository"
msgstr "--cached utanför arkiv"
-#: builtin/apply.c:4631
+#: builtin/apply.c:4621
#, c-format
msgid "can't open patch '%s'"
msgstr "kan inte öppna patchen \"%s\""
-#: builtin/apply.c:4645
+#: builtin/apply.c:4635
#, 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"
-#: builtin/apply.c:4651 builtin/apply.c:4661
+#: builtin/apply.c:4641 builtin/apply.c:4651
#, c-format
msgid "%d line adds whitespace errors."
msgid_plural "%d lines add whitespace errors."
@@ -3246,103 +3308,111 @@ msgstr "utför 'git bisect next'"
msgid "update BISECT_HEAD instead of checking out the current commit"
msgstr "uppdatera BISECT_HEAD istället för att checka ut aktuell incheckning"
-#: builtin/blame.c:32
+#: builtin/blame.c:33
msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>"
msgstr "git blame [<flaggor>] [<rev-flaggor>] [<rev>] [--] <fil>"
-#: builtin/blame.c:37
+#: builtin/blame.c:38
msgid "<rev-opts> are documented in git-rev-list(1)"
msgstr "<rev-flaggor> dokumenteras i git-rev-list(1)"
-#: builtin/blame.c:2519
+#: builtin/blame.c:1782
+msgid "Blaming lines"
+msgstr "Klandra rader"
+
+#: builtin/blame.c:2530
msgid "Show blame entries as we find them, incrementally"
msgstr "Visa klandringsposter när vi hittar dem, interaktivt"
-#: builtin/blame.c:2520
+#: builtin/blame.c:2531
msgid "Show blank SHA-1 for boundary commits (Default: off)"
msgstr "Visa blank SHA-1 för gränsincheckningar (Standard: av)"
-#: builtin/blame.c:2521
+#: builtin/blame.c:2532
msgid "Do not treat root commits as boundaries (Default: off)"
msgstr "Behandla inte rotincheckningar som gränser (Standard: av)"
-#: builtin/blame.c:2522
+#: builtin/blame.c:2533
msgid "Show work cost statistics"
msgstr "Visa statistik över arbetskostnad"
-#: builtin/blame.c:2523
+#: builtin/blame.c:2534
+msgid "Force progress reporting"
+msgstr "Tvinga förloppsrapportering"
+
+#: builtin/blame.c:2535
msgid "Show output score for blame entries"
msgstr "Visa utdatapoäng för klandringsposter"
-#: builtin/blame.c:2524
+#: builtin/blame.c:2536
msgid "Show original filename (Default: auto)"
msgstr "Visa originalfilnamn (Standard: auto)"
-#: builtin/blame.c:2525
+#: builtin/blame.c:2537
msgid "Show original linenumber (Default: off)"
msgstr "Visa ursprungligt radnummer (Standard: av)"
-#: builtin/blame.c:2526
+#: builtin/blame.c:2538
msgid "Show in a format designed for machine consumption"
msgstr "Visa i ett format avsett för maskinkonsumtion"
-#: builtin/blame.c:2527
+#: builtin/blame.c:2539
msgid "Show porcelain format with per-line commit information"
msgstr "Visa porslinsformat med per-rad-incheckningsinformation"
-#: builtin/blame.c:2528
+#: builtin/blame.c:2540
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:2529
+#: builtin/blame.c:2541
msgid "Show raw timestamp (Default: off)"
msgstr "Visa rå tidsstämpel (Standard: av)"
-#: builtin/blame.c:2530
+#: builtin/blame.c:2542
msgid "Show long commit SHA1 (Default: off)"
msgstr "Visa lång inchecknings-SHA1 (Standard: av)"
-#: builtin/blame.c:2531
+#: builtin/blame.c:2543
msgid "Suppress author name and timestamp (Default: off)"
msgstr "Undertryck författarnamn och tidsstämpel (Standard: av)"
-#: builtin/blame.c:2532
+#: builtin/blame.c:2544
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:2533
+#: builtin/blame.c:2545
msgid "Ignore whitespace differences"
msgstr "Ignorera ändringar i blanksteg"
-#: builtin/blame.c:2534
+#: builtin/blame.c:2546
msgid "Spend extra cycles to find better match"
msgstr "Slösa extra cykler med att hitta bättre träff"
-#: builtin/blame.c:2535
+#: builtin/blame.c:2547
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:2536
+#: builtin/blame.c:2548
msgid "Use <file>'s contents as the final image"
msgstr "Använd <fil>s innehåll som slutgiltig bild"
-#: builtin/blame.c:2537 builtin/blame.c:2538
+#: builtin/blame.c:2549 builtin/blame.c:2550
msgid "score"
msgstr "poäng"
-#: builtin/blame.c:2537
+#: builtin/blame.c:2549
msgid "Find line copies within and across files"
msgstr "Hitta kopierade rader inuti och mellan filer"
-#: builtin/blame.c:2538
+#: builtin/blame.c:2550
msgid "Find line movements within and across files"
msgstr "Hitta flyttade rader inuti och mellan filer"
-#: builtin/blame.c:2539
+#: builtin/blame.c:2551
msgid "n,m"
msgstr "n,m"
-#: builtin/blame.c:2539
+#: builtin/blame.c:2551
msgid "Process only line range n,m, counting from 1"
msgstr "Behandla endast radintervallet n,m, med början på 1"
@@ -3352,7 +3422,7 @@ msgstr "Behandla endast radintervallet n,m, med början på 1"
#. takes 22 places, is the longest among various forms of
#. relative timestamps, but your language may need more or
#. fewer display columns.
-#: builtin/blame.c:2620
+#: builtin/blame.c:2640
msgid "4 years, 11 months ago"
msgstr "4 år, 11 månader sedan"
@@ -3551,197 +3621,197 @@ msgstr "Grenen namnbytt till %s, men HEAD har inte uppdaterats!"
msgid "Branch is renamed, but update of config-file failed"
msgstr "Grenen namnbytt, men misslyckades uppdatera konfigurationsfilen"
-#: builtin/branch.c:587
+#: builtin/branch.c:586
#, c-format
msgid "could not write branch description template: %s"
msgstr "kunde inte skriva grenbeskrivningsmall: %s"
-#: builtin/branch.c:616
+#: builtin/branch.c:615
msgid "Generic options"
msgstr "Allmänna flaggor"
-#: builtin/branch.c:618
+#: builtin/branch.c:617
msgid "show hash and subject, give twice for upstream branch"
msgstr "visa hash och ärenderad, ange två gånger för uppströmsgren"
-#: builtin/branch.c:619
+#: builtin/branch.c:618
msgid "suppress informational messages"
msgstr "undertryck informationsmeddelanden"
-#: builtin/branch.c:620
+#: builtin/branch.c:619
msgid "set up tracking mode (see git-pull(1))"
msgstr "ställ in spårningsläge (se git-pull(1))"
-#: builtin/branch.c:622
+#: builtin/branch.c:621
msgid "change upstream info"
msgstr "ändra uppströmsinformation"
-#: builtin/branch.c:626
+#: builtin/branch.c:625
msgid "use colored output"
msgstr "använd färgad utdata"
-#: builtin/branch.c:627
+#: builtin/branch.c:626
msgid "act on remote-tracking branches"
msgstr "arbeta på fjärrspårande grenar"
-#: builtin/branch.c:629 builtin/branch.c:630
+#: builtin/branch.c:628 builtin/branch.c:629
msgid "print only branches that contain the commit"
msgstr "visa endast grenar som innehåller incheckningen"
-#: builtin/branch.c:633
+#: builtin/branch.c:632
msgid "Specific git-branch actions:"
msgstr "Specifika git-branch-åtgärder:"
-#: builtin/branch.c:634
+#: builtin/branch.c:633
msgid "list both remote-tracking and local branches"
msgstr "visa både fjärrspårande och lokala grenar"
-#: builtin/branch.c:636
+#: builtin/branch.c:635
msgid "delete fully merged branch"
msgstr "ta bort helt sammanslagen gren"
-#: builtin/branch.c:637
+#: builtin/branch.c:636
msgid "delete branch (even if not merged)"
msgstr "ta bort gren (även om inte helt sammanslagen)"
-#: builtin/branch.c:638
+#: builtin/branch.c:637
msgid "move/rename a branch and its reflog"
msgstr "flytta/ta bort en gren och dess reflogg"
-#: builtin/branch.c:639
+#: builtin/branch.c:638
msgid "move/rename a branch, even if target exists"
msgstr "flytta/ta bort en gren, även om målet finns"
-#: builtin/branch.c:640
+#: builtin/branch.c:639
msgid "list branch names"
msgstr "lista namn på grenar"
-#: builtin/branch.c:641
+#: builtin/branch.c:640
msgid "create the branch's reflog"
msgstr "skapa grenens reflogg"
-#: builtin/branch.c:643
+#: builtin/branch.c:642
msgid "edit the description for the branch"
msgstr "redigera beskrivning för grenen"
-#: builtin/branch.c:644
+#: builtin/branch.c:643
msgid "force creation, move/rename, deletion"
msgstr "tvinga skapande, flytt/namnändring, borttagande"
-#: builtin/branch.c:645
+#: builtin/branch.c:644
msgid "print only branches that are merged"
msgstr "visa endast sammanslagna grenar"
-#: builtin/branch.c:646
+#: builtin/branch.c:645
msgid "print only branches that are not merged"
msgstr "visa endast ej sammanslagna grenar"
-#: builtin/branch.c:647
+#: builtin/branch.c:646
msgid "list branches in columns"
msgstr "visa grenar i spalter"
-#: builtin/branch.c:648 builtin/for-each-ref.c:38 builtin/tag.c:366
+#: builtin/branch.c:647 builtin/for-each-ref.c:38 builtin/tag.c:366
msgid "key"
msgstr "nyckel"
-#: builtin/branch.c:649 builtin/for-each-ref.c:39 builtin/tag.c:367
+#: builtin/branch.c:648 builtin/for-each-ref.c:39 builtin/tag.c:367
msgid "field name to sort on"
msgstr "fältnamn att sortera på"
-#: builtin/branch.c:651 builtin/for-each-ref.c:41 builtin/notes.c:398
-#: builtin/notes.c:401 builtin/notes.c:561 builtin/notes.c:564
+#: builtin/branch.c:650 builtin/for-each-ref.c:41 builtin/notes.c:401
+#: builtin/notes.c:404 builtin/notes.c:564 builtin/notes.c:567
#: builtin/tag.c:369
msgid "object"
msgstr "objekt"
-#: builtin/branch.c:652
+#: builtin/branch.c:651
msgid "print only branches of the object"
msgstr "visa endast grenar för objektet"
-#: builtin/branch.c:670
+#: builtin/branch.c:669
msgid "Failed to resolve HEAD as a valid ref."
msgstr "Misslyckades slå upp HEAD som giltig referens"
-#: builtin/branch.c:674 builtin/clone.c:697
+#: builtin/branch.c:673 builtin/clone.c:705
msgid "HEAD not found below refs/heads!"
msgstr "HEAD hittades inte under refs/heads!"
-#: builtin/branch.c:694
+#: builtin/branch.c:693
msgid "--column and --verbose are incompatible"
msgstr "--column och --verbose är inkompatibla"
-#: builtin/branch.c:705 builtin/branch.c:747
+#: builtin/branch.c:704 builtin/branch.c:746
msgid "branch name required"
msgstr "grennamn krävs"
-#: builtin/branch.c:723
+#: builtin/branch.c:722
msgid "Cannot give description to detached HEAD"
msgstr "Kan inte beskriva frånkopplad HEAD"
-#: builtin/branch.c:728
+#: builtin/branch.c:727
msgid "cannot edit description of more than one branch"
msgstr "kan inte redigera beskrivning för mer än en gren"
-#: builtin/branch.c:735
+#: builtin/branch.c:734
#, c-format
msgid "No commit on branch '%s' yet."
msgstr "Inga incheckningar på grenen \"%s\" ännu"
-#: builtin/branch.c:738
+#: builtin/branch.c:737
#, c-format
msgid "No branch named '%s'."
msgstr "Ingen gren vid namnet \"%s\"."
-#: builtin/branch.c:753
+#: builtin/branch.c:752
msgid "too many branches for a rename operation"
msgstr "för många grenar för namnbyte"
-#: builtin/branch.c:758
+#: builtin/branch.c:757
msgid "too many branches to set new upstream"
msgstr "för många grenar för att byta uppström"
-#: builtin/branch.c:762
+#: builtin/branch.c:761
#, c-format
msgid ""
"could not set upstream of HEAD to %s when it does not point to any branch."
msgstr ""
"kunde inte sätta uppström för HEAD till %s när det inte pekar mot någon gren."
-#: builtin/branch.c:765 builtin/branch.c:787 builtin/branch.c:808
+#: builtin/branch.c:764 builtin/branch.c:786 builtin/branch.c:807
#, c-format
msgid "no such branch '%s'"
msgstr "okänd gren \"%s\""
-#: builtin/branch.c:769
+#: builtin/branch.c:768
#, c-format
msgid "branch '%s' does not exist"
msgstr "grenen \"%s\" finns inte"
-#: builtin/branch.c:781
+#: builtin/branch.c:780
msgid "too many branches to unset upstream"
msgstr "för många grenar för att ta bort uppström"
-#: builtin/branch.c:785
+#: builtin/branch.c:784
msgid "could not unset upstream of HEAD when it does not point to any branch."
msgstr ""
"kunde inte ta bort uppström för HEAD när det inte pekar mot någon gren."
-#: builtin/branch.c:791
+#: builtin/branch.c:790
#, c-format
msgid "Branch '%s' has no upstream information"
msgstr "Grenen \"%s\" har ingen uppströmsinformation"
-#: builtin/branch.c:805
+#: builtin/branch.c:804
msgid "it does not make sense to create 'HEAD' manually"
msgstr "kan inte skapa \"HEAD\" manuellt"
-#: builtin/branch.c:811
+#: builtin/branch.c:810
msgid "-a and -r options to 'git branch' do not make sense with a branch name"
msgstr ""
"flaggorna -a och -r på \"git branch\" kan inte anges tillsammans med ett "
"grennamn"
-#: builtin/branch.c:814
+#: builtin/branch.c:813
#, c-format
msgid ""
"The --set-upstream flag is deprecated and will be removed. Consider using --"
@@ -3750,7 +3820,7 @@ msgstr ""
"Flaggan --set-upstream rekommenderas ej och kommer tas bort. Använd --track "
"eller --set-upstream-to\n"
-#: builtin/branch.c:831
+#: builtin/branch.c:830
#, c-format
msgid ""
"\n"
@@ -3761,12 +3831,12 @@ msgstr ""
"Om du vill göra så att \"%s\" spårar \"%s\" gör du så här:\n"
"\n"
-#: builtin/branch.c:832
+#: builtin/branch.c:831
#, c-format
msgid " git branch -d %s\n"
msgstr " git branch -d %s\n"
-#: builtin/branch.c:833
+#: builtin/branch.c:832
#, c-format
msgid " git branch --set-upstream-to %s\n"
msgstr " git branch --set-upstream-to %s\n"
@@ -3861,7 +3931,7 @@ msgstr "visa alla attribut som satts på filen"
msgid "use .gitattributes only from the index"
msgstr "använd .gitattributes endast från indexet"
-#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:96
+#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:97
msgid "read file names from stdin"
msgstr "läs filnamn från standard in"
@@ -3869,7 +3939,7 @@ 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:18 builtin/checkout.c:1134 builtin/gc.c:325
+#: builtin/check-ignore.c:18 builtin/checkout.c:1136 builtin/gc.c:325
msgid "suppress progress reporting"
msgstr "undertryck förloppsrapportering"
@@ -3922,49 +3992,53 @@ msgstr "kunde inte tolka kontakt: %s"
msgid "no contacts specified"
msgstr "inga kontakter angavs"
-#: builtin/checkout-index.c:126
+#: builtin/checkout-index.c:127
msgid "git checkout-index [<options>] [--] [<file>...]"
msgstr "git checkout-index [<flaggor>] [--] [<fil>...]"
-#: builtin/checkout-index.c:188
+#: builtin/checkout-index.c:144
+msgid "stage should be between 1 and 3 or all"
+msgstr "etapp måste vara mellan 1 och 3 eller \"all\""
+
+#: builtin/checkout-index.c:160
msgid "check out all files in the index"
msgstr "checka ut alla filer i indexet"
-#: builtin/checkout-index.c:189
+#: builtin/checkout-index.c:161
msgid "force overwrite of existing files"
msgstr "tvinga överskrivning av befintliga filer"
-#: builtin/checkout-index.c:191
+#: builtin/checkout-index.c:163
msgid "no warning for existing files and files not in index"
msgstr "ingen varning för existerande filer och filer ej i indexet"
-#: builtin/checkout-index.c:193
+#: builtin/checkout-index.c:165
msgid "don't checkout new files"
msgstr "checka inte ut nya filer"
-#: builtin/checkout-index.c:195
+#: builtin/checkout-index.c:167
msgid "update stat information in the index file"
msgstr "uppdatera stat-information i indexfilen"
-#: builtin/checkout-index.c:201
+#: builtin/checkout-index.c:171
msgid "read list of paths from the standard input"
msgstr "läs listan över sökvägar från standard in"
-#: builtin/checkout-index.c:203
+#: builtin/checkout-index.c:173
msgid "write the content to temporary files"
msgstr "skriv innehåll till temporära filer"
-#: builtin/checkout-index.c:204 builtin/column.c:30
+#: builtin/checkout-index.c:174 builtin/column.c:30
+#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
#: builtin/submodule--helper.c:172 builtin/submodule--helper.c:175
-#: builtin/submodule--helper.c:178 builtin/submodule--helper.c:181
msgid "string"
msgstr "sträng"
-#: builtin/checkout-index.c:205
+#: builtin/checkout-index.c:175
msgid "when creating files, prepend <string>"
msgstr "när filer skapas, lägg till <sträng> först"
-#: builtin/checkout-index.c:208
+#: builtin/checkout-index.c:177
msgid "copy out the files from named stage"
msgstr "kopiera ut filer från namngiven etapp"
@@ -4044,37 +4118,37 @@ msgstr "Kan inte skapa referenslogg för \"%s\": %s\n"
msgid "HEAD is now at"
msgstr "HEAD är nu på"
-#: builtin/checkout.c:668
+#: builtin/checkout.c:669
#, c-format
msgid "Reset branch '%s'\n"
msgstr "Återställ gren \"%s\"\n"
-#: builtin/checkout.c:671
+#: builtin/checkout.c:672
#, c-format
msgid "Already on '%s'\n"
msgstr "Redan på \"%s\"\n"
-#: builtin/checkout.c:675
+#: builtin/checkout.c:676
#, c-format
msgid "Switched to and reset branch '%s'\n"
msgstr "Växlade till och nollställde grenen \"%s\"\n"
-#: builtin/checkout.c:677 builtin/checkout.c:1066
+#: builtin/checkout.c:678 builtin/checkout.c:1068
#, c-format
msgid "Switched to a new branch '%s'\n"
msgstr "Växlade till en ny gren \"%s\"\n"
-#: builtin/checkout.c:679
+#: builtin/checkout.c:680
#, c-format
msgid "Switched to branch '%s'\n"
msgstr "Växlade till grenen \"%s\"\n"
-#: builtin/checkout.c:731
+#: builtin/checkout.c:732
#, c-format
msgid " ... and %d more.\n"
msgstr " ... och %d till.\n"
-#: builtin/checkout.c:737
+#: builtin/checkout.c:738
#, c-format
msgid ""
"Warning: you are leaving %d commit behind, not connected to\n"
@@ -4097,7 +4171,7 @@ msgstr[1] ""
"\n"
"%s\n"
-#: builtin/checkout.c:756
+#: builtin/checkout.c:757
#, c-format
msgid ""
"If you want to keep it by creating a new branch, this may be a good time\n"
@@ -4124,151 +4198,151 @@ msgstr[1] ""
" git branch <nytt_grennamn> %s\n"
"\n"
-#: builtin/checkout.c:792
+#: builtin/checkout.c:793
msgid "internal error in revision walk"
msgstr "internt fel vid genomgång av revisioner (revision walk)"
-#: builtin/checkout.c:796
+#: builtin/checkout.c:797
msgid "Previous HEAD position was"
msgstr "Tidigare position för HEAD var"
-#: builtin/checkout.c:823 builtin/checkout.c:1061
+#: builtin/checkout.c:824 builtin/checkout.c:1063
msgid "You are on a branch yet to be born"
msgstr "Du är på en gren som ännu inte är född"
-#: builtin/checkout.c:968
+#: builtin/checkout.c:969
#, c-format
msgid "only one reference expected, %d given."
msgstr "endast en referens förväntades, %d gavs."
-#: builtin/checkout.c:1007 builtin/worktree.c:213
+#: builtin/checkout.c:1009 builtin/worktree.c:211
#, c-format
msgid "invalid reference: %s"
msgstr "felaktig referens: %s"
-#: builtin/checkout.c:1036
+#: builtin/checkout.c:1038
#, c-format
msgid "reference is not a tree: %s"
msgstr "referensen är inte ett träd: %s"
-#: builtin/checkout.c:1075
+#: builtin/checkout.c:1077
msgid "paths cannot be used with switching branches"
msgstr "sökvägar kan inte användas vid byte av gren"
-#: builtin/checkout.c:1078 builtin/checkout.c:1082
+#: builtin/checkout.c:1080 builtin/checkout.c:1084
#, c-format
msgid "'%s' cannot be used with switching branches"
msgstr "\"%s\" kan inte användas vid byte av gren"
-#: builtin/checkout.c:1086 builtin/checkout.c:1089 builtin/checkout.c:1094
-#: builtin/checkout.c:1097
+#: builtin/checkout.c:1088 builtin/checkout.c:1091 builtin/checkout.c:1096
+#: builtin/checkout.c:1099
#, c-format
msgid "'%s' cannot be used with '%s'"
msgstr "\"%s\" kan inte användas med \"%s\""
-#: builtin/checkout.c:1102
+#: builtin/checkout.c:1104
#, c-format
msgid "Cannot switch branch to a non-commit '%s'"
msgstr "Kan inte växla gren till icke-incheckningen \"%s\""
-#: builtin/checkout.c:1135 builtin/checkout.c:1137 builtin/clone.c:83
-#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:320
-#: builtin/worktree.c:322
+#: builtin/checkout.c:1137 builtin/checkout.c:1139 builtin/clone.c:84
+#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:318
+#: builtin/worktree.c:320
msgid "branch"
msgstr "gren"
-#: builtin/checkout.c:1136
+#: builtin/checkout.c:1138
msgid "create and checkout a new branch"
msgstr "skapa och checka ut en ny gren"
-#: builtin/checkout.c:1138
+#: builtin/checkout.c:1140
msgid "create/reset and checkout a branch"
msgstr "skapa/nollställ och checka ut en gren"
-#: builtin/checkout.c:1139
+#: builtin/checkout.c:1141
msgid "create reflog for new branch"
msgstr "skapa reflogg för ny gren"
-#: builtin/checkout.c:1140
+#: builtin/checkout.c:1142
msgid "detach the HEAD at named commit"
msgstr "koppla från HEAD vid namngiven incheckning"
-#: builtin/checkout.c:1141
+#: builtin/checkout.c:1143
msgid "set upstream info for new branch"
msgstr "sätt uppströmsinformation för ny gren"
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
msgid "new-branch"
msgstr "ny-gren"
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
msgid "new unparented branch"
msgstr "ny gren utan förälder"
-#: builtin/checkout.c:1144
+#: builtin/checkout.c:1146
msgid "checkout our version for unmerged files"
msgstr "checka ut vår version för ej sammanslagna filer"
-#: builtin/checkout.c:1146
+#: builtin/checkout.c:1148
msgid "checkout their version for unmerged files"
msgstr "checka ut deras version för ej sammanslagna filer"
-#: builtin/checkout.c:1148
+#: builtin/checkout.c:1150
msgid "force checkout (throw away local modifications)"
msgstr "tvinga utcheckning (kasta bort lokala ändringar)"
-#: builtin/checkout.c:1149
+#: builtin/checkout.c:1151
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:1150 builtin/merge.c:227
+#: builtin/checkout.c:1152 builtin/merge.c:227
msgid "update ignored files (default)"
msgstr "uppdatera ignorerade filer (standard)"
-#: builtin/checkout.c:1151 builtin/log.c:1266 parse-options.h:250
+#: builtin/checkout.c:1153 builtin/log.c:1269 parse-options.h:250
msgid "style"
msgstr "stil"
-#: builtin/checkout.c:1152
+#: builtin/checkout.c:1154
msgid "conflict style (merge or diff3)"
msgstr "konfliktstil (merge eller diff3)"
-#: builtin/checkout.c:1155
+#: builtin/checkout.c:1157
msgid "do not limit pathspecs to sparse entries only"
msgstr "begränsa inte sökvägar till endast glesa poster"
-#: builtin/checkout.c:1157
+#: builtin/checkout.c:1159
msgid "second guess 'git checkout <no-such-branch>'"
msgstr "förutspå \"git checkout <gren-saknas>\""
-#: builtin/checkout.c:1159
+#: builtin/checkout.c:1161
msgid "do not check if another worktree is holding the given ref"
msgstr ""
"kontrollera inte om en annan arbetskatalog håller den angivna referensen"
-#: builtin/checkout.c:1160 builtin/clone.c:57 builtin/fetch.c:112
-#: builtin/merge.c:224 builtin/pull.c:109 builtin/push.c:558
+#: builtin/checkout.c:1162 builtin/clone.c:58 builtin/fetch.c:116
+#: builtin/merge.c:224 builtin/pull.c:113 builtin/push.c:526
#: builtin/send-pack.c:168
msgid "force progress reporting"
msgstr "tvinga förloppsrapportering"
-#: builtin/checkout.c:1191
+#: builtin/checkout.c:1193
msgid "-b, -B and --orphan are mutually exclusive"
msgstr "-b, -B och --orphan är ömsesidigt uteslutande"
-#: builtin/checkout.c:1208
+#: builtin/checkout.c:1210
msgid "--track needs a branch name"
msgstr "--track behöver ett namn på en gren"
-#: builtin/checkout.c:1213
+#: builtin/checkout.c:1215
msgid "Missing branch name; try -b"
msgstr "Grennamn saknas; försök med -b"
-#: builtin/checkout.c:1249
+#: builtin/checkout.c:1251
msgid "invalid path specification"
msgstr "felaktig sökvägsangivelse"
-#: builtin/checkout.c:1256
+#: builtin/checkout.c:1258
#, c-format
msgid ""
"Cannot update paths and switch to branch '%s' at the same time.\n"
@@ -4277,12 +4351,12 @@ msgstr ""
"Kan inte uppdatera sökvägar och växla till grenen \"%s\" samtidigt.\n"
"Ville du checka ut \"%s\" som inte kan lösas som en utcheckning?"
-#: builtin/checkout.c:1261
+#: builtin/checkout.c:1263
#, c-format
msgid "git checkout: --detach does not take a path argument '%s'"
msgstr "git checkout: --detach tar inte en sökväg som argument \"%s\""
-#: builtin/checkout.c:1265
+#: builtin/checkout.c:1267
msgid ""
"git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
"checking out of the index."
@@ -4322,7 +4396,7 @@ msgstr "Skulle hoppa över arkivet %s\n"
msgid "failed to remove %s"
msgstr "misslyckades ta bort %s"
-#: builtin/clean.c:315
+#: builtin/clean.c:291
msgid ""
"Prompt help:\n"
"1 - select a numbered item\n"
@@ -4334,7 +4408,7 @@ msgstr ""
"foo - markera post baserad på unikt prefix\n"
" - (tomt) markera ingenting"
-#: builtin/clean.c:319
+#: builtin/clean.c:295
msgid ""
"Prompt help:\n"
"1 - select a single item\n"
@@ -4354,36 +4428,36 @@ msgstr ""
"* - välj alla poster\n"
" - (tomt) avsluta markering"
-#: builtin/clean.c:535
+#: builtin/clean.c:511
#, c-format
msgid "Huh (%s)?"
msgstr "Vadå (%s)?"
-#: builtin/clean.c:677
+#: builtin/clean.c:653
#, c-format
msgid "Input ignore patterns>> "
msgstr "Ange ignoreringsmönster>>"
-#: builtin/clean.c:714
+#: builtin/clean.c:690
#, c-format
msgid "WARNING: Cannot find items matched by: %s"
msgstr "VARNING: Hittar inte poster som motsvarar: %s"
-#: builtin/clean.c:735
+#: builtin/clean.c:711
msgid "Select items to delete"
msgstr "Välj poster att ta bort"
#. TRANSLATORS: Make sure to keep [y/N] as is
-#: builtin/clean.c:776
+#: builtin/clean.c:752
#, c-format
msgid "Remove %s [y/N]? "
msgstr "Ta bort %s [Y=ja / N=nej]?"
-#: builtin/clean.c:801
+#: builtin/clean.c:777
msgid "Bye."
msgstr "Hej då."
-#: builtin/clean.c:809
+#: builtin/clean.c:785
msgid ""
"clean - start cleaning\n"
"filter by pattern - exclude items from deletion\n"
@@ -4401,62 +4475,62 @@ msgstr ""
"help - denna skärm\n"
"? - hjälp för kommandoval"
-#: builtin/clean.c:836
+#: builtin/clean.c:812
msgid "*** Commands ***"
msgstr "*** Kommandon ***"
-#: builtin/clean.c:837
+#: builtin/clean.c:813
msgid "What now"
msgstr "Vad nu"
-#: builtin/clean.c:845
+#: builtin/clean.c:821
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:862
+#: builtin/clean.c:838
msgid "No more files to clean, exiting."
msgstr "Inga fler filer att städa, avslutar."
-#: builtin/clean.c:893
+#: builtin/clean.c:869
msgid "do not print names of files removed"
msgstr "skriv inte ut namn på borttagna filer"
-#: builtin/clean.c:895
+#: builtin/clean.c:871
msgid "force"
msgstr "tvinga"
-#: builtin/clean.c:896
+#: builtin/clean.c:872
msgid "interactive cleaning"
msgstr "städa interaktivt"
-#: builtin/clean.c:898
+#: builtin/clean.c:874
msgid "remove whole directories"
msgstr "ta bort hela kataloger"
-#: builtin/clean.c:899 builtin/describe.c:407 builtin/grep.c:709
-#: builtin/ls-files.c:443 builtin/name-rev.c:307 builtin/show-ref.c:182
+#: builtin/clean.c:875 builtin/describe.c:407 builtin/grep.c:722
+#: builtin/ls-files.c:456 builtin/name-rev.c:307 builtin/show-ref.c:182
msgid "pattern"
msgstr "mönster"
-#: builtin/clean.c:900
+#: builtin/clean.c:876
msgid "add <pattern> to ignore rules"
msgstr "lägg till <mönster> till ignoreringsregler"
-#: builtin/clean.c:901
+#: builtin/clean.c:877
msgid "remove ignored files, too"
msgstr "ta även bort ignorerade filer"
-#: builtin/clean.c:903
+#: builtin/clean.c:879
msgid "remove only ignored files"
msgstr "ta endast bort ignorerade filer"
-#: builtin/clean.c:921
+#: builtin/clean.c:897
msgid "-x and -X cannot be used together"
msgstr "-x och -X kan inte användas samtidigt"
-#: builtin/clean.c:925
+#: builtin/clean.c:901
msgid ""
"clean.requireForce set to true and neither -i, -n, nor -f given; refusing to "
"clean"
@@ -4464,7 +4538,7 @@ msgstr ""
"clean.requireForce satt till true, men varken -i, -n eller -f angavs; vägrar "
"städa"
-#: builtin/clean.c:928
+#: builtin/clean.c:904
msgid ""
"clean.requireForce defaults to true and neither -i, -n, nor -f given; "
"refusing to clean"
@@ -4476,146 +4550,154 @@ msgstr ""
msgid "git clone [<options>] [--] <repo> [<dir>]"
msgstr "git clone [<flaggor>] [--] <arkiv> [<kat>]"
-#: builtin/clone.c:59
+#: builtin/clone.c:60
msgid "don't create a checkout"
msgstr "skapa inte någon utcheckning"
-#: builtin/clone.c:60 builtin/clone.c:62 builtin/init-db.c:469
+#: builtin/clone.c:61 builtin/clone.c:63 builtin/init-db.c:469
msgid "create a bare repository"
msgstr "skapa ett naket (\"bare\") arkiv"
-#: builtin/clone.c:64
+#: builtin/clone.c:65
msgid "create a mirror repository (implies bare)"
msgstr "skapa ett spegelarkiv (implicerar \"bare\")"
-#: builtin/clone.c:66
+#: builtin/clone.c:67
msgid "to clone from a local repository"
msgstr "för att klona från ett lokalt arkiv"
-#: builtin/clone.c:68
+#: builtin/clone.c:69
msgid "don't use local hardlinks, always copy"
msgstr "skapa inte lokala hårda länkar, kopiera alltid"
-#: builtin/clone.c:70
+#: builtin/clone.c:71
msgid "setup as shared repository"
msgstr "skapa som ett delat arkiv"
-#: builtin/clone.c:72 builtin/clone.c:74
+#: builtin/clone.c:73 builtin/clone.c:75
msgid "initialize submodules in the clone"
msgstr "initiera undermoduler i klonen"
-#: builtin/clone.c:75 builtin/init-db.c:466
+#: builtin/clone.c:76 builtin/init-db.c:466
msgid "template-directory"
msgstr "mallkatalog"
-#: builtin/clone.c:76 builtin/init-db.c:467
+#: builtin/clone.c:77 builtin/init-db.c:467
msgid "directory from which templates will be used"
msgstr "katalog att använda mallar från"
-#: builtin/clone.c:78 builtin/submodule--helper.c:179
+#: builtin/clone.c:79 builtin/submodule--helper.c:173
msgid "reference repository"
msgstr "referensarkiv"
-#: builtin/clone.c:80
+#: builtin/clone.c:81
msgid "use --reference only while cloning"
msgstr "använd --reference endast under kloningen"
-#: builtin/clone.c:81 builtin/column.c:26 builtin/merge-file.c:44
+#: builtin/clone.c:82 builtin/column.c:26 builtin/merge-file.c:44
msgid "name"
msgstr "namn"
-#: builtin/clone.c:82
+#: builtin/clone.c:83
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:84
+#: builtin/clone.c:85
msgid "checkout <branch> instead of the remote's HEAD"
msgstr "checka ut <gren> istället för fjärrens HEAD"
-#: builtin/clone.c:86
+#: builtin/clone.c:87
msgid "path to git-upload-pack on the remote"
msgstr "sökväg till git-upload-pack på fjärren"
-#: builtin/clone.c:87 builtin/fetch.c:113 builtin/grep.c:654
-#: builtin/pull.c:186
+#: builtin/clone.c:88 builtin/fetch.c:117 builtin/grep.c:665
+#: builtin/pull.c:193
msgid "depth"
msgstr "djup"
-#: builtin/clone.c:88
+#: builtin/clone.c:89
msgid "create a shallow clone of that depth"
msgstr "skapa en grund klon på detta djup"
-#: builtin/clone.c:90
+#: builtin/clone.c:91
msgid "clone only one branch, HEAD or --branch"
msgstr "klona endast en gren, HEAD eller --branch"
-#: builtin/clone.c:91 builtin/init-db.c:475
+#: builtin/clone.c:92 builtin/init-db.c:475
msgid "gitdir"
msgstr "gitkat"
-#: builtin/clone.c:92 builtin/init-db.c:476
+#: builtin/clone.c:93 builtin/init-db.c:476
msgid "separate git dir from working tree"
msgstr "separera gitkatalogen från arbetskatalogen"
-#: builtin/clone.c:93
+#: builtin/clone.c:94
msgid "key=value"
msgstr "nyckel=värde"
-#: builtin/clone.c:94
+#: builtin/clone.c:95
msgid "set config inside the new repository"
msgstr "ställ in konfiguration i det nya arkivet"
-#: builtin/clone.c:300
+#: builtin/clone.c:96 builtin/fetch.c:131 builtin/push.c:536
+msgid "use IPv4 addresses only"
+msgstr "använd endast IPv4-adresser"
+
+#: builtin/clone.c:98 builtin/fetch.c:133 builtin/push.c:538
+msgid "use IPv6 addresses only"
+msgstr "använd endast IPv6-adresser"
+
+#: builtin/clone.c:305
#, 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."
-#: builtin/clone.c:302
+#: builtin/clone.c:307
#, c-format
msgid "reference repository '%s' is not a local repository."
msgstr "referensarkivet \"%s\" är inte ett lokalt arkiv."
-#: builtin/clone.c:307
+#: builtin/clone.c:312
#, c-format
msgid "reference repository '%s' is shallow"
msgstr "referensarkivet \"%s\" är grunt"
-#: builtin/clone.c:310
+#: builtin/clone.c:315
#, c-format
msgid "reference repository '%s' is grafted"
msgstr "referensarkivet \"%s\" är ympat"
-#: builtin/clone.c:375 builtin/diff.c:84
+#: builtin/clone.c:380 builtin/diff.c:84
#, c-format
msgid "failed to stat '%s'"
msgstr "misslyckades ta status på \"%s\""
-#: builtin/clone.c:377
+#: builtin/clone.c:382
#, c-format
msgid "%s exists and is not a directory"
msgstr "%s finns och är ingen katalog"
-#: builtin/clone.c:391
+#: builtin/clone.c:396
#, c-format
msgid "failed to stat %s\n"
msgstr "misslyckades ta status på %s\n"
-#: builtin/clone.c:413
+#: builtin/clone.c:418
#, c-format
msgid "failed to create link '%s'"
msgstr "misslyckades skapa länken \"%s\""
-#: builtin/clone.c:417
+#: builtin/clone.c:422
#, c-format
msgid "failed to copy file to '%s'"
msgstr "misslyckades kopiera filen till \"%s\""
-#: builtin/clone.c:442 builtin/clone.c:626
+#: builtin/clone.c:447 builtin/clone.c:631
#, c-format
msgid "done.\n"
msgstr "klart.\n"
-#: builtin/clone.c:454
+#: builtin/clone.c:459
msgid ""
"Clone succeeded, but checkout failed.\n"
"You can inspect what was checked out with 'git status'\n"
@@ -4625,120 +4707,120 @@ msgstr ""
"Du kan inspektera det som checkades ut med \"git status\"\n"
"och försöka checka ut igen med \"git checkout -f HEAD\"\n"
-#: builtin/clone.c:531
+#: builtin/clone.c:536
#, c-format
msgid "Could not find remote branch %s to clone."
msgstr "Kunde inte hitta fjärrgrenen %s för att klona."
# Vague original, not networking-related, but rather related to the actual
# objects downloaded.
-#: builtin/clone.c:621
+#: builtin/clone.c:626
#, c-format
msgid "Checking connectivity... "
msgstr "Kontrollerar om vi fick alla objekt..."
-#: builtin/clone.c:624
+#: builtin/clone.c:629
msgid "remote did not send all necessary objects"
msgstr "fjärren sände inte alla nödvändiga objekt"
-#: builtin/clone.c:688
+#: builtin/clone.c:696
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:719
+#: builtin/clone.c:727
msgid "unable to checkout working tree"
msgstr "kunde inte checka ut arbetskatalogen"
-#: builtin/clone.c:808
+#: builtin/clone.c:816
msgid "cannot repack to clean up"
msgstr "kan inte packa om för att städa upp"
-#: builtin/clone.c:810
+#: builtin/clone.c:818
msgid "cannot unlink temporary alternates file"
msgstr "kunde inte ta bort temporär \"alternates\"-fil"
-#: builtin/clone.c:842
+#: builtin/clone.c:850
msgid "Too many arguments."
msgstr "För många argument."
-#: builtin/clone.c:846
+#: builtin/clone.c:854
msgid "You must specify a repository to clone."
msgstr "Du måste ange ett arkiv att klona."
-#: builtin/clone.c:857
+#: builtin/clone.c:865
#, c-format
msgid "--bare and --origin %s options are incompatible."
msgstr "flaggorna --bare och --origin %s är inkompatibla."
-#: builtin/clone.c:860
+#: builtin/clone.c:868
msgid "--bare and --separate-git-dir are incompatible."
msgstr "flaggorna --bare och --separate-git-dir är inkompatibla."
-#: builtin/clone.c:873
+#: builtin/clone.c:881
#, c-format
msgid "repository '%s' does not exist"
msgstr "arkivet \"%s\" finns inte"
-#: builtin/clone.c:879 builtin/fetch.c:1166
+#: builtin/clone.c:887 builtin/fetch.c:1174
#, c-format
msgid "depth %s is not a positive number"
msgstr "djupet %s är inte ett positivt tal"
-#: builtin/clone.c:889
+#: builtin/clone.c:897
#, 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:899
+#: builtin/clone.c:907
#, c-format
msgid "working tree '%s' already exists."
msgstr "arbetsträdet \"%s\" finns redan."
-#: builtin/clone.c:914 builtin/clone.c:925 builtin/submodule--helper.c:224
-#: builtin/worktree.c:221 builtin/worktree.c:248
+#: builtin/clone.c:922 builtin/clone.c:933 builtin/submodule--helper.c:218
+#: builtin/worktree.c:219 builtin/worktree.c:246
#, c-format
msgid "could not create leading directories of '%s'"
msgstr "kunde inte skapa inledande kataloger för \"%s\""
-#: builtin/clone.c:917
+#: builtin/clone.c:925
#, c-format
msgid "could not create work tree dir '%s'"
msgstr "kunde inte skapa arbetskatalogen \"%s\""
-#: builtin/clone.c:935
+#: builtin/clone.c:943
#, c-format
msgid "Cloning into bare repository '%s'...\n"
msgstr "Klonar till ett naket arkiv \"%s\"...\n"
-#: builtin/clone.c:937
+#: builtin/clone.c:945
#, c-format
msgid "Cloning into '%s'...\n"
msgstr "Klonar till \"%s\"...\n"
-#: builtin/clone.c:975
+#: builtin/clone.c:984
msgid "--depth is ignored in local clones; use file:// instead."
msgstr "--depth ignoreras i lokala kloningar; använd file:// istället"
-#: builtin/clone.c:978
+#: builtin/clone.c:987
msgid "source repository is shallow, ignoring --local"
msgstr "källarkivet är grunt, ignorerar --local"
-#: builtin/clone.c:983
+#: builtin/clone.c:992
msgid "--local is ignored"
msgstr "--local ignoreras"
-#: builtin/clone.c:987
+#: builtin/clone.c:996
#, c-format
msgid "Don't know how to clone %s"
msgstr "Vet inte hur man klonar %s"
-#: builtin/clone.c:1036 builtin/clone.c:1044
+#: builtin/clone.c:1045 builtin/clone.c:1053
#, c-format
msgid "Remote branch %s not found in upstream %s"
msgstr "Fjärrgrenen %s hittades inte i uppströmsarkivet %s"
-#: builtin/clone.c:1047
+#: builtin/clone.c:1056
msgid "You appear to have cloned an empty repository."
msgstr "Du verkar ha klonat ett tomt arkiv."
@@ -4950,7 +5032,7 @@ msgstr ""
msgid "could not lookup commit %s"
msgstr "kunde inte slå upp incheckningen %s"
-#: builtin/commit.c:702 builtin/shortlog.c:273
+#: builtin/commit.c:702 builtin/shortlog.c:285
#, c-format
msgid "(reading log message from standard input)\n"
msgstr "(läser loggmeddelande från standard in)\n"
@@ -5136,8 +5218,8 @@ msgstr "visa koncis status"
msgid "show branch information"
msgstr "visa information om gren"
-#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:544
-#: builtin/worktree.c:423
+#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:512
+#: builtin/worktree.c:430
msgid "machine-readable output"
msgstr "maskinläsbar utdata"
@@ -5226,8 +5308,8 @@ msgstr "datum"
msgid "override date for commit"
msgstr "överstyr datum för incheckningen"
-#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:392
-#: builtin/notes.c:555 builtin/tag.c:349
+#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:395
+#: builtin/notes.c:558 builtin/tag.c:349
msgid "message"
msgstr "meddelande"
@@ -5263,7 +5345,7 @@ 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:1588 builtin/log.c:1216 builtin/revert.c:86
+#: builtin/commit.c:1588 builtin/log.c:1219 builtin/revert.c:86
msgid "add Signed-off-by:"
msgstr "lägg till Signed-off-by:"
@@ -5287,7 +5369,7 @@ msgstr "hur blanksteg och #kommentarer skall tas bort från meddelande"
msgid "include status in commit message template"
msgstr "inkludera status i mallen för incheckningsmeddelandet"
-#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:156
+#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:160
#: builtin/revert.c:93
msgid "GPG sign commit"
msgstr "GPG-signera incheckning"
@@ -5379,139 +5461,143 @@ msgstr ""
"att kvoten inte har överskridits, och kör sedan\n"
"\"git reset HEAD\" för att återställa."
-#: builtin/config.c:8
+#: builtin/config.c:9
msgid "git config [<options>]"
msgstr "git config [<flaggor>]"
-#: builtin/config.c:54
+#: builtin/config.c:56
msgid "Config file location"
msgstr "Konfigurationsfilens plats"
-#: builtin/config.c:55
+#: builtin/config.c:57
msgid "use global config file"
msgstr "använd global konfigurationsfil"
-#: builtin/config.c:56
+#: builtin/config.c:58
msgid "use system config file"
msgstr "använd systemets konfigurationsfil"
-#: builtin/config.c:57
+#: builtin/config.c:59
msgid "use repository config file"
msgstr "använd arkivets konfigurationsfil"
-#: builtin/config.c:58
+#: builtin/config.c:60
msgid "use given config file"
msgstr "använd angiven konfigurationsfil"
-#: builtin/config.c:59
+#: builtin/config.c:61
msgid "blob-id"
msgstr "blob-id"
-#: builtin/config.c:59
+#: builtin/config.c:61
msgid "read config from given blob object"
msgstr "läs konfiguration från givet blob-objekt"
-#: builtin/config.c:60
+#: builtin/config.c:62
msgid "Action"
msgstr "Åtgärd"
-#: builtin/config.c:61
+#: builtin/config.c:63
msgid "get value: name [value-regex]"
msgstr "hämta värde: namn [värde-reguttr]"
-#: builtin/config.c:62
+#: builtin/config.c:64
msgid "get all values: key [value-regex]"
msgstr "hämta alla värden: nyckel [värde-reguttr]"
-#: builtin/config.c:63
+#: builtin/config.c:65
msgid "get values for regexp: name-regex [value-regex]"
msgstr "hämta värden för reguttr: namn-reguttr [värde-reguttr]"
-#: builtin/config.c:64
+#: builtin/config.c:66
msgid "get value specific for the URL: section[.var] URL"
msgstr "hämta värde specifikt URL:en: sektion[.var] URL"
-#: builtin/config.c:65
+#: builtin/config.c:67
msgid "replace all matching variables: name value [value_regex]"
msgstr "ersätt alla motsvarande variabler: namn värde [värde-reguttr]"
-#: builtin/config.c:66
+#: builtin/config.c:68
msgid "add a new variable: name value"
msgstr "lägg till en ny variabel: namn värde"
-#: builtin/config.c:67
+#: builtin/config.c:69
msgid "remove a variable: name [value-regex]"
msgstr "ta bort en variabel: namn [värde-reguttr]"
-#: builtin/config.c:68
+#: builtin/config.c:70
msgid "remove all matches: name [value-regex]"
msgstr "ta bort alla träffar: namn [värde-reguttr]"
-#: builtin/config.c:69
+#: builtin/config.c:71
msgid "rename section: old-name new-name"
msgstr "byt namn på sektion: gammalt-namn nytt-namn"
-#: builtin/config.c:70
+#: builtin/config.c:72
msgid "remove a section: name"
msgstr "ta bort en sektion: namn"
-#: builtin/config.c:71
+#: builtin/config.c:73
msgid "list all"
msgstr "visa alla"
-#: builtin/config.c:72
+#: builtin/config.c:74
msgid "open an editor"
msgstr "öppna textredigeringsprogram"
-#: builtin/config.c:73
+#: builtin/config.c:75
msgid "find the color configured: slot [default]"
msgstr "hitta den inställda färgen: slot [default]"
-#: builtin/config.c:74
+#: builtin/config.c:76
msgid "find the color setting: slot [stdout-is-tty]"
msgstr "hitta färginställningen: slot [stdout-is-tty]"
-#: builtin/config.c:75
+#: builtin/config.c:77
msgid "Type"
msgstr "Typ"
-#: builtin/config.c:76
+#: builtin/config.c:78
msgid "value is \"true\" or \"false\""
msgstr "värdet är \"true\" eller \"false\""
-#: builtin/config.c:77
+#: builtin/config.c:79
msgid "value is decimal number"
msgstr "värdet är ett decimalt tal"
-#: builtin/config.c:78
+#: builtin/config.c:80
msgid "value is --bool or --int"
msgstr "värdet är --bool eller --int"
-#: builtin/config.c:79
+#: builtin/config.c:81
msgid "value is a path (file or directory name)"
msgstr "värdet är en sökväg (fil- eller katalognamn)"
-#: builtin/config.c:80
+#: builtin/config.c:82
msgid "Other"
msgstr "Andra"
-#: builtin/config.c:81
+#: builtin/config.c:83
msgid "terminate values with NUL byte"
msgstr "terminera värden med NUL-byte"
-#: builtin/config.c:82
+#: builtin/config.c:84
msgid "show variable names only"
msgstr "visa endast variabelnamn"
-#: builtin/config.c:83
+#: builtin/config.c:85
msgid "respect include directives on lookup"
msgstr "respektera inkluderingsdirektiv vid uppslag"
-#: builtin/config.c:303
+#: builtin/config.c:86
+msgid "show origin of config (file, standard input, blob, command line)"
+msgstr "visa konfigurationskälla (fil, standard in, blob, kommandorad)"
+
+#: builtin/config.c:328
msgid "unable to parse default color value"
msgstr "kan inte tolka standardfärgvärde"
-#: builtin/config.c:441
+#: builtin/config.c:469
#, c-format
msgid ""
"# This is Git's per-user configuration file.\n"
@@ -5526,7 +5612,7 @@ msgstr ""
"#\tname = %s\n"
"#\temail = %s\n"
-#: builtin/config.c:575
+#: builtin/config.c:611
#, c-format
msgid "cannot create configuration file %s"
msgstr "kan inte skapa konfigurationsfilen \"%s\""
@@ -5776,161 +5862,165 @@ msgstr "git fetch --multiple [<flaggor>] [(<arkiv> | <grupp>)...]"
msgid "git fetch --all [<options>]"
msgstr "git fetch --all [<flaggor>]"
-#: builtin/fetch.c:90 builtin/pull.c:162
+#: builtin/fetch.c:92 builtin/pull.c:166
msgid "fetch from all remotes"
msgstr "hämta från alla fjärrar"
-#: builtin/fetch.c:92 builtin/pull.c:165
+#: builtin/fetch.c:94 builtin/pull.c:169
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:94 builtin/pull.c:168
+#: builtin/fetch.c:96 builtin/pull.c:172
msgid "path to upload pack on remote end"
msgstr "sökväg till upload pack på fjärren"
-#: builtin/fetch.c:95 builtin/pull.c:170
+#: builtin/fetch.c:97 builtin/pull.c:174
msgid "force overwrite of local branch"
msgstr "tvinga överskrivning av lokal gren"
-#: builtin/fetch.c:97
+#: builtin/fetch.c:99
msgid "fetch from multiple remotes"
msgstr "hämta från flera fjärrar"
-#: builtin/fetch.c:99 builtin/pull.c:172
+#: builtin/fetch.c:101 builtin/pull.c:176
msgid "fetch all tags and associated objects"
msgstr "hämta alla taggar och associerade objekt"
-#: builtin/fetch.c:101
+#: builtin/fetch.c:103
msgid "do not fetch all tags (--no-tags)"
msgstr "hämta inte alla taggar (--no-tags)"
-#: builtin/fetch.c:103 builtin/pull.c:175
+#: builtin/fetch.c:105
+msgid "number of submodules fetched in parallel"
+msgstr "antal undermoduler som hämtas parallellt"
+
+#: builtin/fetch.c:107 builtin/pull.c:179
msgid "prune remote-tracking branches no longer on remote"
msgstr "rensa fjärrspårande grenar ej längre på fjärren"
-#: builtin/fetch.c:104 builtin/pull.c:178
+#: builtin/fetch.c:108 builtin/pull.c:182
msgid "on-demand"
msgstr "on-demand"
-#: builtin/fetch.c:105 builtin/pull.c:179
+#: builtin/fetch.c:109 builtin/pull.c:183
msgid "control recursive fetching of submodules"
msgstr "styr rekursiv hämtning av undermoduler"
-#: builtin/fetch.c:109 builtin/pull.c:184
+#: builtin/fetch.c:113 builtin/pull.c:191
msgid "keep downloaded pack"
msgstr "behåll hämtade paket"
-#: builtin/fetch.c:111
+#: builtin/fetch.c:115
msgid "allow updating of HEAD ref"
msgstr "tillåt uppdatering av HEAD-referens"
-#: builtin/fetch.c:114 builtin/pull.c:187
+#: builtin/fetch.c:118 builtin/pull.c:194
msgid "deepen history of shallow clone"
msgstr "fördjupa historik för grund klon"
-#: builtin/fetch.c:116 builtin/pull.c:190
+#: builtin/fetch.c:120 builtin/pull.c:197
msgid "convert to a complete repository"
msgstr "konvertera till komplett arkiv"
-#: builtin/fetch.c:118 builtin/log.c:1233
+#: builtin/fetch.c:122 builtin/log.c:1236
msgid "dir"
msgstr "kat"
-#: builtin/fetch.c:119
+#: builtin/fetch.c:123
msgid "prepend this to submodule path output"
msgstr "lägg till i början av undermodulens sökvägsutdata"
-#: builtin/fetch.c:122
+#: builtin/fetch.c:126
msgid "default mode for recursion"
msgstr "standardläge för rekursion"
-#: builtin/fetch.c:124 builtin/pull.c:193
+#: builtin/fetch.c:128 builtin/pull.c:200
msgid "accept refs that update .git/shallow"
msgstr "tar emot referenser som uppdaterar .git/shallow"
-#: builtin/fetch.c:125 builtin/pull.c:195
+#: builtin/fetch.c:129 builtin/pull.c:202
msgid "refmap"
msgstr "referenskarta"
-#: builtin/fetch.c:126 builtin/pull.c:196
+#: builtin/fetch.c:130 builtin/pull.c:203
msgid "specify fetch refmap"
msgstr "ange referenskarta för \"fetch\""
-#: builtin/fetch.c:378
+#: builtin/fetch.c:386
msgid "Couldn't find remote ref HEAD"
msgstr "Kunde inte hitta fjärr-referensen HEAD"
-#: builtin/fetch.c:458
+#: builtin/fetch.c:466
#, c-format
msgid "object %s not found"
msgstr "objektet %s hittades inte"
-#: builtin/fetch.c:463
+#: builtin/fetch.c:471
msgid "[up to date]"
msgstr "[àjour]"
-#: builtin/fetch.c:477
+#: builtin/fetch.c:485
#, c-format
msgid "! %-*s %-*s -> %s (can't fetch in current branch)"
msgstr "! %-*s %-*s -> %s (kan inte hämta i aktuell gren)"
-#: builtin/fetch.c:478 builtin/fetch.c:566
+#: builtin/fetch.c:486 builtin/fetch.c:574
msgid "[rejected]"
msgstr "[refuserad]"
-#: builtin/fetch.c:489
+#: builtin/fetch.c:497
msgid "[tag update]"
msgstr "[uppdaterad tagg]"
-#: builtin/fetch.c:491 builtin/fetch.c:526 builtin/fetch.c:544
+#: builtin/fetch.c:499 builtin/fetch.c:534 builtin/fetch.c:552
msgid " (unable to update local ref)"
msgstr " (kunde inte uppdatera lokal ref)"
-#: builtin/fetch.c:509
+#: builtin/fetch.c:517
msgid "[new tag]"
msgstr "[ny tagg]"
-#: builtin/fetch.c:512
+#: builtin/fetch.c:520
msgid "[new branch]"
msgstr "[ny gren]"
-#: builtin/fetch.c:515
+#: builtin/fetch.c:523
msgid "[new ref]"
msgstr "[ny ref]"
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
msgid "unable to update local ref"
msgstr "kunde inte uppdatera lokal ref"
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
msgid "forced update"
msgstr "tvingad uppdatering"
-#: builtin/fetch.c:568
+#: builtin/fetch.c:576
msgid "(non-fast-forward)"
msgstr "(ej snabbspolad)"
-#: builtin/fetch.c:602 builtin/fetch.c:843
+#: builtin/fetch.c:610 builtin/fetch.c:851
#, c-format
msgid "cannot open %s: %s\n"
msgstr "kan inte öppna %s: %s\n"
-#: builtin/fetch.c:611
+#: builtin/fetch.c:619
#, 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:629
+#: builtin/fetch.c:637
#, 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:716 builtin/fetch.c:808
+#: builtin/fetch.c:724 builtin/fetch.c:816
#, c-format
msgid "From %.*s\n"
msgstr "Från %.*s\n"
-#: builtin/fetch.c:727
+#: builtin/fetch.c:735
#, c-format
msgid ""
"some local refs could not be updated; try running\n"
@@ -5939,55 +6029,55 @@ 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:779
+#: builtin/fetch.c:787
#, c-format
msgid " (%s will become dangling)"
msgstr " (%s kommer bli dinglande)"
-#: builtin/fetch.c:780
+#: builtin/fetch.c:788
#, c-format
msgid " (%s has become dangling)"
msgstr " (%s har blivit dinglande)"
-#: builtin/fetch.c:812
+#: builtin/fetch.c:820
msgid "[deleted]"
msgstr "[borttagen]"
-#: builtin/fetch.c:813 builtin/remote.c:1040
+#: builtin/fetch.c:821 builtin/remote.c:1025
msgid "(none)"
msgstr "(ingen)"
-#: builtin/fetch.c:833
+#: builtin/fetch.c:841
#, 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:852
+#: builtin/fetch.c:860
#, 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:855
+#: builtin/fetch.c:863
#, c-format
msgid "Option \"%s\" is ignored for %s\n"
msgstr "Flaggan \"%s\" ignoreras för %s\n"
-#: builtin/fetch.c:911
+#: builtin/fetch.c:920
#, c-format
msgid "Don't know how to fetch from %s"
msgstr "Vet inte hur man hämtar från %s"
-#: builtin/fetch.c:1072
+#: builtin/fetch.c:1080
#, c-format
msgid "Fetching %s\n"
msgstr "Hämtar %s\n"
-#: builtin/fetch.c:1074 builtin/remote.c:96
+#: builtin/fetch.c:1082 builtin/remote.c:96
#, c-format
msgid "Could not fetch %s"
msgstr "Kunde inte hämta %s"
-#: builtin/fetch.c:1092
+#: builtin/fetch.c:1100
msgid ""
"No remote repository specified. Please, specify either a URL or a\n"
"remote name from which new revisions should be fetched."
@@ -5995,32 +6085,32 @@ 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:1115
+#: builtin/fetch.c:1123
msgid "You need to specify a tag name."
msgstr "Du måste ange namnet på en tagg."
-#: builtin/fetch.c:1157
+#: builtin/fetch.c:1165
msgid "--depth and --unshallow cannot be used together"
msgstr "--depth och --unshallow kan inte användas samtidigt"
-#: builtin/fetch.c:1159
+#: builtin/fetch.c:1167
msgid "--unshallow on a complete repository does not make sense"
msgstr "--unshallow kan inte användas på ett komplett arkiv"
-#: builtin/fetch.c:1179
+#: builtin/fetch.c:1187
msgid "fetch --all does not take a repository argument"
msgstr "fetch --all tar inte namnet på ett arkiv som argument"
-#: builtin/fetch.c:1181
+#: builtin/fetch.c:1189
msgid "fetch --all does not make sense with refspecs"
msgstr "fetch --all kan inte anges med referensspecifikationer"
-#: builtin/fetch.c:1192
+#: builtin/fetch.c:1200
#, c-format
msgid "No such remote or remote group: %s"
msgstr "Fjärren eller fjärrgruppen finns inte: %s"
-#: builtin/fetch.c:1200
+#: builtin/fetch.c:1208
msgid "Fetching a group and specifying refspecs does not make sense"
msgstr "Kan inte hämta från grupp och ange referensspecifikationer"
@@ -6249,224 +6339,238 @@ msgstr ""
msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]"
msgstr "git grep [<flaggor>] [-e] <mönster> [<rev>...] [[--] <sökväg>...]"
-#: builtin/grep.c:218
+#: builtin/grep.c:219
#, c-format
msgid "grep: failed to create thread: %s"
msgstr "grep: misslyckades skapa tråd. %s"
-#: builtin/grep.c:441 builtin/grep.c:476
+#: builtin/grep.c:277
+#, c-format
+msgid "invalid number of threads specified (%d) for %s"
+msgstr "felaktigt antal trådar angivet (%d) för %s"
+
+#: builtin/grep.c:452 builtin/grep.c:487
#, c-format
msgid "unable to read tree (%s)"
msgstr "kunde inte läsa träd (%s)"
-#: builtin/grep.c:491
+#: builtin/grep.c:502
#, c-format
msgid "unable to grep from object of type %s"
msgstr "Kunde inte \"grep\" från objekt av typen %s"
-#: builtin/grep.c:547
+#: builtin/grep.c:558
#, c-format
msgid "switch `%c' expects a numerical value"
msgstr "flaggan \"%c\" antar ett numeriskt värde"
-#: builtin/grep.c:564
+#: builtin/grep.c:575
#, c-format
msgid "cannot open '%s'"
msgstr "kan inte öppna \"%s\""
-#: builtin/grep.c:633
+#: builtin/grep.c:644
msgid "search in index instead of in the work tree"
msgstr "sök i indexet istället för i arbetskatalogen"
-#: builtin/grep.c:635
+#: builtin/grep.c:646
msgid "find in contents not managed by git"
msgstr "sök i innehåll som inte hanteras av git"
-#: builtin/grep.c:637
+#: builtin/grep.c:648
msgid "search in both tracked and untracked files"
msgstr "sök i både spårade och ospårade filer"
-#: builtin/grep.c:639
+#: builtin/grep.c:650
msgid "ignore files specified via '.gitignore'"
msgstr "ignorera filer angivna i \".gitignore\""
-#: builtin/grep.c:642
+#: builtin/grep.c:653
msgid "show non-matching lines"
msgstr "visa rader som inte träffas"
-#: builtin/grep.c:644
+#: builtin/grep.c:655
msgid "case insensitive matching"
msgstr "skiftlägesokänslig sökning"
-#: builtin/grep.c:646
+#: builtin/grep.c:657
msgid "match patterns only at word boundaries"
msgstr "matcha endast mönster vid ordgränser"
-#: builtin/grep.c:648
+#: builtin/grep.c:659
msgid "process binary files as text"
msgstr "hantera binärfiler som text"
-#: builtin/grep.c:650
+#: builtin/grep.c:661
msgid "don't match patterns in binary files"
msgstr "träffa inte mönster i binärfiler"
-#: builtin/grep.c:653
+#: builtin/grep.c:664
msgid "process binary files with textconv filters"
msgstr "hantera binärfiler med textconv-filter"
-#: builtin/grep.c:655
+#: builtin/grep.c:666
msgid "descend at most <depth> levels"
msgstr "gå som mest ned <djup> nivåer"
-#: builtin/grep.c:659
+#: builtin/grep.c:670
msgid "use extended POSIX regular expressions"
msgstr "använd utökade POSIX-reguljära uttryck"
-#: builtin/grep.c:662
+#: builtin/grep.c:673
msgid "use basic POSIX regular expressions (default)"
msgstr "använd grundläggande POSIX-reguljära uttryck (standard)"
-#: builtin/grep.c:665
+#: builtin/grep.c:676
msgid "interpret patterns as fixed strings"
msgstr "tolka mönster som fixerade strängar"
-#: builtin/grep.c:668
+#: builtin/grep.c:679
msgid "use Perl-compatible regular expressions"
msgstr "använd Perlkompatibla reguljära uttryck"
-#: builtin/grep.c:671
+#: builtin/grep.c:682
msgid "show line numbers"
msgstr "visa radnummer"
-#: builtin/grep.c:672
+#: builtin/grep.c:683
msgid "don't show filenames"
msgstr "visa inte filnamn"
-#: builtin/grep.c:673
+#: builtin/grep.c:684
msgid "show filenames"
msgstr "visa filnamn"
-#: builtin/grep.c:675
+#: builtin/grep.c:686
msgid "show filenames relative to top directory"
msgstr "visa filnamn relativa till toppkatalogen"
-#: builtin/grep.c:677
+#: builtin/grep.c:688
msgid "show only filenames instead of matching lines"
msgstr "visa endast filnamn istället för träffade rader"
-#: builtin/grep.c:679
+#: builtin/grep.c:690
msgid "synonym for --files-with-matches"
msgstr "synonym för --files-with-matches"
-#: builtin/grep.c:682
+#: builtin/grep.c:693
msgid "show only the names of files without match"
msgstr "visa endast namn på filer utan träffar"
-#: builtin/grep.c:684
+#: builtin/grep.c:695
msgid "print NUL after filenames"
msgstr "skriv NUL efter filnamn"
-#: builtin/grep.c:686
+#: builtin/grep.c:697
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:687
+#: builtin/grep.c:698
msgid "highlight matches"
msgstr "ljusmarkera träffar"
-#: builtin/grep.c:689
+#: builtin/grep.c:700
msgid "print empty line between matches from different files"
msgstr "skriv tomma rader mellan träffar från olika filer"
-#: builtin/grep.c:691
+#: builtin/grep.c:702
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:694
+#: builtin/grep.c:705
msgid "show <n> context lines before and after matches"
msgstr "visa <n> rader sammanhang före och efter träffar"
-#: builtin/grep.c:697
+#: builtin/grep.c:708
msgid "show <n> context lines before matches"
msgstr "visa <n> rader sammanhang före träffar"
-#: builtin/grep.c:699
+#: builtin/grep.c:710
msgid "show <n> context lines after matches"
msgstr "visa <n> rader sammanhang efter träffar"
-#: builtin/grep.c:700
+#: builtin/grep.c:712
+msgid "use <n> worker threads"
+msgstr "använd <n> jobbtrådar"
+
+#: builtin/grep.c:713
msgid "shortcut for -C NUM"
msgstr "genväg för -C NUM"
-#: builtin/grep.c:703
+#: builtin/grep.c:716
msgid "show a line with the function name before matches"
msgstr "visa en rad med funktionsnamnet före träffen"
-#: builtin/grep.c:705
+#: builtin/grep.c:718
msgid "show the surrounding function"
msgstr "visa den omkringliggande funktionen"
-#: builtin/grep.c:708
+#: builtin/grep.c:721
msgid "read patterns from file"
msgstr "läs mönster från fil"
-#: builtin/grep.c:710
+#: builtin/grep.c:723
msgid "match <pattern>"
msgstr "träffa <mönster>"
-#: builtin/grep.c:712
+#: builtin/grep.c:725
msgid "combine patterns specified with -e"
msgstr "kombinera mönster som anges med -e"
-#: builtin/grep.c:724
+#: builtin/grep.c:737
msgid "indicate hit with exit status without output"
msgstr "ange träff med slutstatuskod utan utdata"
-#: builtin/grep.c:726
+#: builtin/grep.c:739
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:728
+#: builtin/grep.c:741
msgid "show parse tree for grep expression"
msgstr "visa analysträd för grep-uttryck"
-#: builtin/grep.c:732
+#: builtin/grep.c:745
msgid "pager"
msgstr "bläddrare"
-#: builtin/grep.c:732
+#: builtin/grep.c:745
msgid "show matching files in the pager"
msgstr "visa träffade filer i filbläddraren"
-#: builtin/grep.c:735
+#: builtin/grep.c:748
msgid "allow calling of grep(1) (ignored by this build)"
msgstr "tillåt anropa grep(1) (ignoreras av detta bygge)"
-#: builtin/grep.c:793
+#: builtin/grep.c:811
msgid "no pattern given."
msgstr "inget mönster angavs."
-#: builtin/grep.c:851
+#: builtin/grep.c:843 builtin/index-pack.c:1475
+#, c-format
+msgid "invalid number of threads specified (%d)"
+msgstr "felaktigt antal trådar angivet (%d)"
+
+#: builtin/grep.c:873
msgid "--open-files-in-pager only works on the worktree"
msgstr "--open-files-in-pager fungerar endast i arbetskatalogen"
-#: builtin/grep.c:877
+#: builtin/grep.c:899
msgid "--cached or --untracked cannot be used with --no-index."
msgstr "--cached och --untracked kan inte användas med --no-index."
-#: builtin/grep.c:882
+#: builtin/grep.c:904
msgid "--no-index or --untracked cannot be used with revs."
msgstr "--no-index och --untracked kan inte användas med revisioner."
-#: builtin/grep.c:885
+#: builtin/grep.c:907
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:893
+#: builtin/grep.c:915
msgid "both --cached and trees are given."
msgstr "både --cached och träd angavs."
-#: builtin/hash-object.c:80
+#: builtin/hash-object.c:81
msgid ""
"git hash-object [-t <type>] [-w] [--path=<file> | --no-filters] [--stdin] "
"[--] <file>..."
@@ -6474,37 +6578,37 @@ msgstr ""
"git hash-object [-t <typ>] [-w] [--path=<fil> | --no-filters] [--stdin] [--] "
"<fil>..."
-#: builtin/hash-object.c:81
+#: builtin/hash-object.c:82
msgid "git hash-object --stdin-paths"
msgstr "git hash-object --stdin-paths"
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
msgid "type"
msgstr "typ"
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
msgid "object type"
msgstr "objekttyp"
-#: builtin/hash-object.c:93
+#: builtin/hash-object.c:94
msgid "write the object into the object database"
msgstr "skriv objektet till objektdatabasen"
-#: builtin/hash-object.c:95
+#: builtin/hash-object.c:96
msgid "read the object from stdin"
msgstr "läs objektet från standard in"
-#: builtin/hash-object.c:97
+#: builtin/hash-object.c:98
msgid "store file as is without filters"
msgstr "spara filen som den är utan filer"
-#: builtin/hash-object.c:98
+#: builtin/hash-object.c:99
msgid ""
"just hash any random garbage to create corrupt objects for debugging Git"
msgstr ""
"hasha slumpmässigt skräp för att skapa korrupta objekt för felsökning av Git"
-#: builtin/hash-object.c:99
+#: builtin/hash-object.c:100
msgid "process file as it were from this path"
msgstr "hantera filen som om den kom från sökvägen"
@@ -6555,7 +6659,7 @@ msgstr "emacsclient version \"%d\" för gammal (< 22)."
msgid "failed to exec '%s': %s"
msgstr "exec misslyckades för \"%s\": %s"
-#: builtin/help.c:208
+#: builtin/help.c:205
#, c-format
msgid ""
"'%s': path for unsupported man viewer.\n"
@@ -6564,7 +6668,7 @@ msgstr ""
"\"%s\": sökväg för man-visare som ej stöds.\n"
"Använd \"man.<verktyg>.cmd\" istället."
-#: builtin/help.c:220
+#: builtin/help.c:217
#, c-format
msgid ""
"'%s': cmd for supported man viewer.\n"
@@ -6573,61 +6677,61 @@ msgstr ""
"\"%s\": kommando för man-visare som stöds.\n"
"Använd \"man.<verktyg>.path\" istället."
-#: builtin/help.c:337
+#: builtin/help.c:334
#, c-format
msgid "'%s': unknown man viewer."
msgstr "\"%s\": okänd man-visare."
-#: builtin/help.c:354
+#: builtin/help.c:351
msgid "no man viewer handled the request"
msgstr "ingen man-visare hanterade förfrågan"
-#: builtin/help.c:362
+#: builtin/help.c:359
msgid "no info viewer handled the request"
msgstr "ingen info-visare hanterade förfrågan"
-#: builtin/help.c:411
+#: builtin/help.c:408
msgid "Defining attributes per path"
msgstr "Definierar attribut per sökväg"
-#: builtin/help.c:412
+#: builtin/help.c:409
msgid "Everyday Git With 20 Commands Or So"
msgstr "Git för dagligt bruk i ungefär 20 kommandon"
-#: builtin/help.c:413
+#: builtin/help.c:410
msgid "A Git glossary"
msgstr "En Git-ordlista"
-#: builtin/help.c:414
+#: builtin/help.c:411
msgid "Specifies intentionally untracked files to ignore"
msgstr "Ange avsiktligen ospårade filer att ignorera"
-#: builtin/help.c:415
+#: builtin/help.c:412
msgid "Defining submodule properties"
msgstr "Ange egenskaper för undermoduler"
-#: builtin/help.c:416
+#: builtin/help.c:413
msgid "Specifying revisions and ranges for Git"
msgstr "Ange versioner och intervall i Git"
-#: builtin/help.c:417
+#: builtin/help.c:414
msgid "A tutorial introduction to Git (for version 1.5.1 or newer)"
msgstr "Introduktion till Git (för version 1.5.1 och senare)"
-#: builtin/help.c:418
+#: builtin/help.c:415
msgid "An overview of recommended workflows with Git"
msgstr "Översikt över rekommenderade arbetsflöden med Git"
-#: builtin/help.c:430
+#: builtin/help.c:427
msgid "The common Git guides are:\n"
msgstr "De vanliga Git-vägledningarna är:\n"
-#: builtin/help.c:451 builtin/help.c:468
+#: builtin/help.c:448 builtin/help.c:465
#, c-format
msgid "usage: %s%s"
msgstr "användning: %s%s"
-#: builtin/help.c:484
+#: builtin/help.c:481
#, c-format
msgid "`git %s' is aliased to `%s'"
msgstr "\"git %s\" är ett alias för \"%s\""
@@ -6863,11 +6967,6 @@ msgstr "kan inte spara indexfil"
msgid "bad pack.indexversion=%<PRIu32>"
msgstr "felaktig pack.indexversion=%<PRIu32>"
-#: builtin/index-pack.c:1475
-#, c-format
-msgid "invalid number of threads specified (%d)"
-msgstr "felaktigt antal trådar angivet (%d)"
-
#: builtin/index-pack.c:1479 builtin/index-pack.c:1663
#, c-format
msgid "no threads support, ignoring %s"
@@ -7042,24 +7141,32 @@ msgstr "Kan inte komma åt arbetskatalogen \"%s\""
#: builtin/interpret-trailers.c:15
msgid ""
-"git interpret-trailers [--trim-empty] [(--trailer <token>[(=|:)<value>])...] "
-"[<file>...]"
+"git interpret-trailers [--in-place] [--trim-empty] [(--trailer "
+"<token>[(=|:)<value>])...] [<file>...]"
msgstr ""
-"git interpret-trailers [--trim-empty] [(--trailer "
+"git interpret-trailers [--in-place] [--trim-empty] [(--trailer "
"<symbol>[(=|:)<värde>])...] [<fil>...]"
-#: builtin/interpret-trailers.c:25
+#: builtin/interpret-trailers.c:26
+msgid "edit files in place"
+msgstr "redigera filer på plats"
+
+#: builtin/interpret-trailers.c:27
msgid "trim empty trailers"
msgstr "ta bort tomma släprader"
-#: builtin/interpret-trailers.c:26
+#: builtin/interpret-trailers.c:28
msgid "trailer"
msgstr "släprad"
-#: builtin/interpret-trailers.c:27
+#: builtin/interpret-trailers.c:29
msgid "trailer(s) to add"
msgstr "släprad(er) att lägga till"
+#: builtin/interpret-trailers.c:42
+msgid "no input file given for in-place editing"
+msgstr "ingen indatafil angiven för redigering på plats"
+
#: builtin/log.c:43
msgid "git log [<options>] [<revision-range>] [[--] <path>...]"
msgstr "git log [<flaggor>] [<versionsintervall>] [[--] <sökväg>...]"
@@ -7113,325 +7220,375 @@ msgstr "Kunde inte läsa objektet %s"
msgid "Unknown type: %d"
msgstr "Okänd typ: %d"
-#: builtin/log.c:714
+#: builtin/log.c:715
msgid "format.headers without value"
msgstr "format.headers utan värde"
-#: builtin/log.c:798
+#: builtin/log.c:801
msgid "name of output directory is too long"
msgstr "namnet på utdatakatalogen är för långt"
-#: builtin/log.c:813
+#: builtin/log.c:816
#, c-format
msgid "Cannot open patch file %s"
msgstr "Kan inte öppna patchfilen %s"
-#: builtin/log.c:827
+#: builtin/log.c:830
msgid "Need exactly one range."
msgstr "Behöver precis ett intervall."
-#: builtin/log.c:837
+#: builtin/log.c:840
msgid "Not a range."
msgstr "Inte ett intervall."
-#: builtin/log.c:943
+#: builtin/log.c:946
msgid "Cover letter needs email format"
msgstr "Omslagsbrevet behöver e-postformat"
-#: builtin/log.c:1022
+#: builtin/log.c:1025
#, c-format
msgid "insane in-reply-to: %s"
msgstr "tokigt in-reply-to: %s"
-#: builtin/log.c:1050
+#: builtin/log.c:1053
msgid "git format-patch [<options>] [<since> | <revision-range>]"
msgstr "git format-patch [<flaggor>] [<sedan> | <revisionsintervall>]"
-#: builtin/log.c:1095
+#: builtin/log.c:1098
msgid "Two output directories?"
msgstr "Två utdatakataloger?"
-#: builtin/log.c:1211
+#: builtin/log.c:1214
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:1214
+#: builtin/log.c:1217
msgid "use [PATCH] even with multiple patches"
msgstr "använd [PATCH] även för flera patchar"
-#: builtin/log.c:1218
+#: builtin/log.c:1221
msgid "print patches to standard out"
msgstr "skriv patcharna på standard ut"
-#: builtin/log.c:1220
+#: builtin/log.c:1223
msgid "generate a cover letter"
msgstr "generera ett följebrev"
-#: builtin/log.c:1222
+#: builtin/log.c:1225
msgid "use simple number sequence for output file names"
msgstr "använd enkel nummersekvens för utdatafilnamn"
-#: builtin/log.c:1223
+#: builtin/log.c:1226
msgid "sfx"
msgstr "sfx"
-#: builtin/log.c:1224
+#: builtin/log.c:1227
msgid "use <sfx> instead of '.patch'"
msgstr "använd <sfx> istället för \".patch\""
-#: builtin/log.c:1226
+#: builtin/log.c:1229
msgid "start numbering patches at <n> instead of 1"
msgstr "börja numrera patchar på <n> istället för 1"
-#: builtin/log.c:1228
+#: builtin/log.c:1231
msgid "mark the series as Nth re-roll"
msgstr "markera serien som N:te försök"
-#: builtin/log.c:1230
+#: builtin/log.c:1233
msgid "Use [<prefix>] instead of [PATCH]"
msgstr "Använd [<prefix>] istället för [PATCH]"
-#: builtin/log.c:1233
+#: builtin/log.c:1236
msgid "store resulting files in <dir>"
msgstr "spara filerna i <katalog>"
-#: builtin/log.c:1236
+#: builtin/log.c:1239
msgid "don't strip/add [PATCH]"
msgstr "ta inte bort eller lägg till [PATCH]"
-#: builtin/log.c:1239
+#: builtin/log.c:1242
msgid "don't output binary diffs"
msgstr "skriv inte binära diffar"
-#: builtin/log.c:1241
+#: builtin/log.c:1244
msgid "output all-zero hash in From header"
msgstr "använd hashvärde med nollor i From-huvud"
-#: builtin/log.c:1243
+#: builtin/log.c:1246
msgid "don't include a patch matching a commit upstream"
msgstr "ta inte med patchar som motsvarar en uppströmsincheckning"
-#: builtin/log.c:1245
+#: builtin/log.c:1248
msgid "show patch format instead of default (patch + stat)"
msgstr "visa patchformat istället för standard (patch + stat)"
-#: builtin/log.c:1247
+#: builtin/log.c:1250
msgid "Messaging"
msgstr "E-post"
-#: builtin/log.c:1248
+#: builtin/log.c:1251
msgid "header"
msgstr "huvud"
-#: builtin/log.c:1249
+#: builtin/log.c:1252
msgid "add email header"
msgstr "lägg till e-posthuvud"
-#: builtin/log.c:1250 builtin/log.c:1252
+#: builtin/log.c:1253 builtin/log.c:1255
msgid "email"
msgstr "epost"
-#: builtin/log.c:1250
+#: builtin/log.c:1253
msgid "add To: header"
msgstr "Lägg till mottagarhuvud (\"To:\")"
-#: builtin/log.c:1252
+#: builtin/log.c:1255
msgid "add Cc: header"
msgstr "Lägg till kopiehuvud (\"Cc:\")"
-#: builtin/log.c:1254
+#: builtin/log.c:1257
msgid "ident"
msgstr "ident"
-#: builtin/log.c:1255
+#: builtin/log.c:1258
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:1257
+#: builtin/log.c:1260
msgid "message-id"
msgstr "meddelande-id"
-#: builtin/log.c:1258
+#: builtin/log.c:1261
msgid "make first mail a reply to <message-id>"
msgstr "Gör det första brevet ett svar till <meddelande-id>"
-#: builtin/log.c:1259 builtin/log.c:1262
+#: builtin/log.c:1262 builtin/log.c:1265
msgid "boundary"
msgstr "gräns"
-#: builtin/log.c:1260
+#: builtin/log.c:1263
msgid "attach the patch"
msgstr "bifoga patchen"
-#: builtin/log.c:1263
+#: builtin/log.c:1266
msgid "inline the patch"
msgstr "gör patchen ett inline-objekt"
-#: builtin/log.c:1267
+#: builtin/log.c:1270
msgid "enable message threading, styles: shallow, deep"
msgstr "aktivera brevtrådning, typer: shallow, deep"
-#: builtin/log.c:1269
+#: builtin/log.c:1272
msgid "signature"
msgstr "signatur"
-#: builtin/log.c:1270
+#: builtin/log.c:1273
msgid "add a signature"
msgstr "lägg till signatur"
-#: builtin/log.c:1272
+#: builtin/log.c:1275
msgid "add a signature from a file"
msgstr "lägg till signatur från fil"
-#: builtin/log.c:1273
+#: builtin/log.c:1276
msgid "don't print the patch filenames"
msgstr "visa inte filnamn för patchar"
-#: builtin/log.c:1362
+#: builtin/log.c:1365
msgid "-n and -k are mutually exclusive."
msgstr "-n och -k kan inte användas samtidigt."
-#: builtin/log.c:1364
+#: builtin/log.c:1367
msgid "--subject-prefix and -k are mutually exclusive."
msgstr "--subject-prefix och -k kan inte användas samtidigt."
-#: builtin/log.c:1372
+#: builtin/log.c:1375
msgid "--name-only does not make sense"
msgstr "kan inte använda --name-only"
-#: builtin/log.c:1374
+#: builtin/log.c:1377
msgid "--name-status does not make sense"
msgstr "kan inte använda --name-status"
-#: builtin/log.c:1376
+#: builtin/log.c:1379
msgid "--check does not make sense"
msgstr "kan inte använda --check"
-#: builtin/log.c:1401
+#: builtin/log.c:1407
msgid "standard output, or directory, which one?"
msgstr "standard ut, eller katalog, vilken skall det vara?"
-#: builtin/log.c:1403
+#: builtin/log.c:1409
#, c-format
msgid "Could not create directory '%s'"
msgstr "Kunde inte skapa katalogen \"%s\""
-#: builtin/log.c:1500
+#: builtin/log.c:1506
#, c-format
msgid "unable to read signature file '%s'"
msgstr "kunde inte läsa signaturfil \"%s\""
-#: builtin/log.c:1563
+#: builtin/log.c:1569
msgid "Failed to create output files"
msgstr "Misslyckades skapa utdatafiler"
-#: builtin/log.c:1611
+#: builtin/log.c:1617
msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
msgstr "git cherry [-v] [<uppström> [<huvud> [<gräns>]]]"
-#: builtin/log.c:1665
+#: builtin/log.c:1671
#, c-format
msgid ""
"Could not find a tracked remote branch, please specify <upstream> manually.\n"
msgstr "Kunde inte hitta en spårad fjärrgren, ange <uppström> manuellt.\n"
-#: builtin/log.c:1676 builtin/log.c:1678 builtin/log.c:1690
+#: builtin/log.c:1682 builtin/log.c:1684 builtin/log.c:1696
#, c-format
msgid "Unknown commit %s"
msgstr "Okänd incheckning %s"
-#: builtin/ls-files.c:358
+#: builtin/ls-files.c:378
msgid "git ls-files [<options>] [<file>...]"
msgstr "git ls-files [<flaggor>] [<fil>...]"
-#: builtin/ls-files.c:415
+#: builtin/ls-files.c:427
msgid "identify the file status with tags"
msgstr "identifiera filstatus med taggar"
-#: builtin/ls-files.c:417
+#: builtin/ls-files.c:429
msgid "use lowercase letters for 'assume unchanged' files"
msgstr "använd små bokstäver för \"anta oförändrade\"-filer"
-#: builtin/ls-files.c:419
+#: builtin/ls-files.c:431
msgid "show cached files in the output (default)"
msgstr "visa cachade filer i utdata (standard)"
-#: builtin/ls-files.c:421
+#: builtin/ls-files.c:433
msgid "show deleted files in the output"
msgstr "visa borttagna filer i utdata"
-#: builtin/ls-files.c:423
+#: builtin/ls-files.c:435
msgid "show modified files in the output"
msgstr "visa modifierade filer i utdata"
-#: builtin/ls-files.c:425
+#: builtin/ls-files.c:437
msgid "show other files in the output"
msgstr "visa andra filer i utdata"
-#: builtin/ls-files.c:427
+#: builtin/ls-files.c:439
msgid "show ignored files in the output"
msgstr "visa ignorerade filer i utdata"
-#: builtin/ls-files.c:430
+#: builtin/ls-files.c:442
msgid "show staged contents' object name in the output"
msgstr "visa köat innehålls objektnamn i utdata"
-#: builtin/ls-files.c:432
+#: builtin/ls-files.c:444
msgid "show files on the filesystem that need to be removed"
msgstr "visa filer i filsystemet som behöver tas bort"
-#: builtin/ls-files.c:434
+#: builtin/ls-files.c:446
msgid "show 'other' directories' names only"
msgstr "visa endast namn för \"andra\" kataloger"
-#: builtin/ls-files.c:437
+#: builtin/ls-files.c:448
+msgid "show line endings of files"
+msgstr "visa radslut i filer"
+
+#: builtin/ls-files.c:450
msgid "don't show empty directories"
msgstr "visa inte tomma kataloger"
-#: builtin/ls-files.c:440
+#: builtin/ls-files.c:453
msgid "show unmerged files in the output"
msgstr "visa ej sammanslagna filer i utdata"
-#: builtin/ls-files.c:442
+#: builtin/ls-files.c:455
msgid "show resolve-undo information"
msgstr "visa \"resolve-undo\"-information"
-#: builtin/ls-files.c:444
+#: builtin/ls-files.c:457
msgid "skip files matching pattern"
msgstr "hoppa över filer som motsvarar mönster"
-#: builtin/ls-files.c:447
+#: builtin/ls-files.c:460
msgid "exclude patterns are read from <file>"
msgstr "exkludera mönster som läses från <fil>"
-#: builtin/ls-files.c:450
+#: builtin/ls-files.c:463
msgid "read additional per-directory exclude patterns in <file>"
msgstr "läs ytterligare per-katalog-exkluderingsmönster från <fil>"
-#: builtin/ls-files.c:452
+#: builtin/ls-files.c:465
msgid "add the standard git exclusions"
msgstr "lägg till git:s standardexkluderingar"
-#: builtin/ls-files.c:455
+#: builtin/ls-files.c:468
msgid "make the output relative to the project top directory"
msgstr "gör utdata relativ till projektets toppkatalog"
-#: builtin/ls-files.c:458
+#: builtin/ls-files.c:471
msgid "if any <file> is not in the index, treat this as an error"
msgstr "om en <fil> inte är indexet, betrakta det som ett fel"
-#: builtin/ls-files.c:459
+#: builtin/ls-files.c:472
msgid "tree-ish"
msgstr "träd-igt"
-#: builtin/ls-files.c:460
+#: builtin/ls-files.c:473
msgid "pretend that paths removed since <tree-ish> are still present"
msgstr "låtsas att sökvägar borttagna sedan <träd-igt> fortfarande finns"
-#: builtin/ls-files.c:462
+#: builtin/ls-files.c:475
msgid "show debugging data"
msgstr "visa felsökningsutdata"
+#: builtin/ls-remote.c:7
+msgid ""
+"git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
+" [-q | --quiet] [--exit-code] [--get-url]\n"
+" [--symref] [<repository> [<refs>...]]"
+msgstr ""
+"git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
+" [-q | --quiet] [--exit-code] [--get-url]\n"
+" [--symref] [<arkiv> [<referenser>...]]"
+
+#: builtin/ls-remote.c:50
+msgid "do not print remote URL"
+msgstr "visa inte fjärr-URL"
+
+#: builtin/ls-remote.c:51 builtin/ls-remote.c:53
+msgid "exec"
+msgstr "exec"
+
+#: builtin/ls-remote.c:52 builtin/ls-remote.c:54
+msgid "path of git-upload-pack on the remote host"
+msgstr "sökväg till git-upload-pack på fjärren"
+
+#: builtin/ls-remote.c:56
+msgid "limit to tags"
+msgstr "begränsa till taggar"
+
+#: builtin/ls-remote.c:57
+msgid "limit to heads"
+msgstr "begränsa till huvuden"
+
+#: builtin/ls-remote.c:58
+msgid "do not show peeled tags"
+msgstr "visa inte avskalade taggar"
+
+#: builtin/ls-remote.c:60
+msgid "take url.<base>.insteadOf into account"
+msgstr "ta hänsyn till url.<bas>.insteadOf"
+
+#: builtin/ls-remote.c:62
+msgid "exit with exit code 2 if no matching refs are found"
+msgstr "avsluta med felkod 2 om motsvarande referenser inte hittas"
+
+#: builtin/ls-remote.c:64
+msgid "show underlying ref in addition to the object pointed by it"
+msgstr "visa underliggande referens och objektet det pekar på"
+
#: builtin/ls-tree.c:28
msgid "git ls-tree [<options>] <tree-ish> [<path>...]"
msgstr "git ls-tree [<flaggor>] <träd-igt> [<sökväg>...]"
@@ -7499,32 +7656,32 @@ msgstr "Tillgängliga strategier är:"
msgid "Available custom strategies are:"
msgstr "Tillgängliga skräddarsydda strategier är:"
-#: builtin/merge.c:193 builtin/pull.c:119
+#: builtin/merge.c:193 builtin/pull.c:123
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:196 builtin/pull.c:122
+#: builtin/merge.c:196 builtin/pull.c:126
msgid "show a diffstat at the end of the merge"
msgstr "visa en diffstat när sammanslagningen är färdig"
-#: builtin/merge.c:197 builtin/pull.c:125
+#: builtin/merge.c:197 builtin/pull.c:129
msgid "(synonym to --stat)"
msgstr "(synonym till --stat)"
-#: builtin/merge.c:199 builtin/pull.c:128
+#: builtin/merge.c:199 builtin/pull.c:132
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:202 builtin/pull.c:131
+#: builtin/merge.c:202 builtin/pull.c:135
msgid "create a single commit instead of doing a merge"
msgstr "skapa en ensam incheckning istället för en sammanslagning"
-#: builtin/merge.c:204 builtin/pull.c:134
+#: builtin/merge.c:204 builtin/pull.c:138
msgid "perform a commit if the merge succeeds (default)"
msgstr "utför en incheckning om sammanslagningen lyckades (standard)"
-#: builtin/merge.c:206 builtin/pull.c:137
+#: builtin/merge.c:206 builtin/pull.c:141
msgid "edit message before committing"
msgstr "redigera meddelande innan incheckning"
@@ -7532,7 +7689,7 @@ msgstr "redigera meddelande innan incheckning"
msgid "allow fast-forward (default)"
msgstr "tillåt snabbspolning (standard)"
-#: builtin/merge.c:209 builtin/pull.c:143
+#: builtin/merge.c:209 builtin/pull.c:147
msgid "abort if fast-forward is not possible"
msgstr "avbryt om snabbspolning inte är möjlig"
@@ -7540,20 +7697,20 @@ msgstr "avbryt om snabbspolning inte är möjlig"
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:214 builtin/notes.c:767 builtin/pull.c:148
+#: builtin/merge.c:214 builtin/notes.c:770 builtin/pull.c:152
#: builtin/revert.c:89
msgid "strategy"
msgstr "strategi"
-#: builtin/merge.c:215 builtin/pull.c:149
+#: builtin/merge.c:215 builtin/pull.c:153
msgid "merge strategy to use"
msgstr "sammanslagningsstrategi att använda"
-#: builtin/merge.c:216 builtin/pull.c:152
+#: builtin/merge.c:216 builtin/pull.c:156
msgid "option=value"
msgstr "alternativ=värde"
-#: builtin/merge.c:217 builtin/pull.c:153
+#: builtin/merge.c:217 builtin/pull.c:157
msgid "option for selected merge strategy"
msgstr "alternativ för vald sammanslagningsstrategi"
@@ -7591,8 +7748,8 @@ msgstr " (inget att platta till)"
msgid "Squash commit -- not updating HEAD\n"
msgstr "Tillplattningsincheckning -- uppdaterar inte HEAD\n"
-#: builtin/merge.c:344 builtin/merge.c:763 builtin/merge.c:975
-#: builtin/merge.c:988
+#: builtin/merge.c:344 builtin/merge.c:764 builtin/merge.c:976
+#: builtin/merge.c:989
#, c-format
msgid "Could not write to '%s'"
msgstr "Kunde inte skriva till \"%s\""
@@ -7610,43 +7767,43 @@ msgstr "Avslutar SQUASH_MSG"
msgid "No merge message -- not updating HEAD\n"
msgstr "Inget sammanslagningsmeddelande -- uppdaterar inte HEAD\n"
-#: builtin/merge.c:447
+#: builtin/merge.c:448
#, c-format
msgid "'%s' does not point to a commit"
msgstr "\"%s\" verkar inte peka på en incheckning"
-#: builtin/merge.c:537
+#: builtin/merge.c:538
#, c-format
msgid "Bad branch.%s.mergeoptions string: %s"
msgstr "Felaktig branch.%s.mergeoptions-sträng: %s"
-#: builtin/merge.c:656
+#: builtin/merge.c:657
msgid "Not handling anything other than two heads merge."
msgstr "Hanterar inte något annat än en sammanslagning av två huvuden."
-#: builtin/merge.c:670
+#: builtin/merge.c:671
#, c-format
msgid "Unknown option for merge-recursive: -X%s"
msgstr "Felaktig flagga för merge-recursive: -X%s"
-#: builtin/merge.c:683
+#: builtin/merge.c:684
#, c-format
msgid "unable to write %s"
msgstr "kunde inte skriva %s"
-#: builtin/merge.c:772
+#: builtin/merge.c:773
#, c-format
msgid "Could not read from '%s'"
msgstr "Kunde inte läsa från \"%s\""
-#: builtin/merge.c:781
+#: builtin/merge.c:782
#, 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:787
+#: builtin/merge.c:788
#, c-format
msgid ""
"Please enter a commit message to explain why this merge is necessary,\n"
@@ -7662,53 +7819,53 @@ msgstr ""
"Rader som inleds med \"%c\" kommer ignoreras, och ett tomt meddelande\n"
"avbryter incheckningen.\n"
-#: builtin/merge.c:811
+#: builtin/merge.c:812
msgid "Empty commit message."
msgstr "Tomt incheckningsmeddelande."
-#: builtin/merge.c:823
+#: builtin/merge.c:824
#, c-format
msgid "Wonderful.\n"
msgstr "Underbart.\n"
-#: builtin/merge.c:878
+#: builtin/merge.c:879
#, 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:894
+#: builtin/merge.c:895
#, c-format
msgid "'%s' is not a commit"
msgstr "\"%s\" är inte en incheckning"
-#: builtin/merge.c:935
+#: builtin/merge.c:936
msgid "No current branch."
msgstr "Inte på någon gren."
-#: builtin/merge.c:937
+#: builtin/merge.c:938
msgid "No remote for the current branch."
msgstr "Ingen fjärr för aktuell gren."
-#: builtin/merge.c:939
+#: builtin/merge.c:940
msgid "No default upstream defined for the current branch."
msgstr "Ingen standarduppström angiven för aktuell gren."
-#: builtin/merge.c:944
+#: builtin/merge.c:945
#, 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:1079
+#: builtin/merge.c:1080
#, c-format
msgid "could not close '%s'"
msgstr "kunde inte stänga \"%s\""
-#: builtin/merge.c:1206
+#: builtin/merge.c:1207
msgid "There is no merge to abort (MERGE_HEAD missing)."
msgstr "Det finns ingen sammanslagning att avbryta (MERGE_HEAD saknas)."
-#: builtin/merge.c:1222
+#: builtin/merge.c:1223
msgid ""
"You have not concluded your merge (MERGE_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -7716,7 +7873,7 @@ msgstr ""
"Du har inte avslutat sammanslagningen (MERGE_HEAD finns).\n"
"Checka in dina ändringar innan du slår ihop."
-#: builtin/merge.c:1229
+#: builtin/merge.c:1230
msgid ""
"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -7724,102 +7881,102 @@ 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:1232
+#: builtin/merge.c:1233
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:1241
+#: builtin/merge.c:1242
msgid "You cannot combine --squash with --no-ff."
msgstr "Du kan inte kombinera --squash med --no-ff."
-#: builtin/merge.c:1249
+#: builtin/merge.c:1250
msgid "No commit specified and merge.defaultToUpstream not set."
msgstr "Ingen incheckning angiven och merge.defaultToUpstream är ej satt."
-#: builtin/merge.c:1266
+#: builtin/merge.c:1267
msgid "Squash commit into empty head not supported yet"
msgstr "Stöder inte en tillplattningsincheckning på ett tomt huvud ännu"
-#: builtin/merge.c:1268
+#: builtin/merge.c:1269
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:1274
+#: builtin/merge.c:1275
#, c-format
msgid "%s - not something we can merge"
msgstr "%s - inte något vi kan slå ihop"
-#: builtin/merge.c:1276
+#: builtin/merge.c:1277
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:1331
+#: builtin/merge.c:1332
#, 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."
-#: builtin/merge.c:1334
+#: builtin/merge.c:1335
#, 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."
-#: builtin/merge.c:1337
+#: builtin/merge.c:1338
#, c-format
msgid "Commit %s does not have a GPG signature."
msgstr "Incheckning %s har inte någon GPG-signatur."
-#: builtin/merge.c:1340
+#: builtin/merge.c:1341
#, c-format
msgid "Commit %s has a good GPG signature by %s\n"
msgstr "Incheckningen %s har en korrekt GPG-signatur av %s\n"
-#: builtin/merge.c:1423
+#: builtin/merge.c:1424
#, c-format
msgid "Updating %s..%s\n"
msgstr "Uppdaterar %s..%s\n"
-#: builtin/merge.c:1460
+#: builtin/merge.c:1461
#, c-format
msgid "Trying really trivial in-index merge...\n"
msgstr "Försöker riktigt enkel sammanslagning i indexet...\n"
-#: builtin/merge.c:1467
+#: builtin/merge.c:1468
#, c-format
msgid "Nope.\n"
msgstr "Nej.\n"
-#: builtin/merge.c:1499
+#: builtin/merge.c:1500
msgid "Not possible to fast-forward, aborting."
msgstr "Kan inte snabbspola, avbryter."
-#: builtin/merge.c:1522 builtin/merge.c:1601
+#: builtin/merge.c:1523 builtin/merge.c:1602
#, c-format
msgid "Rewinding the tree to pristine...\n"
msgstr "Återspolar trädet till orört...\n"
-#: builtin/merge.c:1526
+#: builtin/merge.c:1527
#, c-format
msgid "Trying merge strategy %s...\n"
msgstr "Försöker sammanslagningsstrategin %s...\n"
-#: builtin/merge.c:1592
+#: builtin/merge.c:1593
#, c-format
msgid "No merge strategy handled the merge.\n"
msgstr "Ingen sammanslagningsstrategi hanterade sammanslagningen.\n"
-#: builtin/merge.c:1594
+#: builtin/merge.c:1595
#, c-format
msgid "Merge with strategy %s failed.\n"
msgstr "Sammanslagning med strategin %s misslyckades.\n"
-#: builtin/merge.c:1603
+#: builtin/merge.c:1604
#, 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:1615
+#: builtin/merge.c:1616
#, c-format
msgid "Automatic merge went well; stopped before committing as requested\n"
msgstr ""
@@ -7905,19 +8062,19 @@ msgstr "varna inte om konflikter"
msgid "set labels for file1/orig-file/file2"
msgstr "sätt etiketter för fil1/origfil/fil2"
-#: builtin/mktree.c:64
+#: builtin/mktree.c:65
msgid "git mktree [-z] [--missing] [--batch]"
msgstr "git mktree [-z] [--missing] [--batch]"
-#: builtin/mktree.c:150
+#: builtin/mktree.c:152
msgid "input is NUL terminated"
msgstr "indata är NUL-terminerad"
-#: builtin/mktree.c:151 builtin/write-tree.c:24
+#: builtin/mktree.c:153 builtin/write-tree.c:24
msgid "allow missing objects"
msgstr "tillåt saknade objekt"
-#: builtin/mktree.c:152
+#: builtin/mktree.c:154
msgid "allow creation of more than one tree"
msgstr "tillåt skapa mer än ett träd"
@@ -7925,91 +8082,91 @@ msgstr "tillåt skapa mer än ett träd"
msgid "git mv [<options>] <source>... <destination>"
msgstr "git mv [<flaggor>] <källa>... <mål>"
-#: builtin/mv.c:69
+#: builtin/mv.c:70
#, c-format
msgid "Directory %s is in index and no submodule?"
msgstr "Katalogen %s är i indexet och inte en undermodul?"
-#: builtin/mv.c:71
+#: builtin/mv.c:72
msgid "Please stage your changes to .gitmodules or stash them to proceed"
msgstr ""
"Köa dina ändringar i .gitmodules eller använd \"stash\" för att fortsätta"
-#: builtin/mv.c:89
+#: builtin/mv.c:90
#, c-format
msgid "%.*s is in index"
msgstr "%.*s är i indexet"
-#: builtin/mv.c:111
+#: builtin/mv.c:112
msgid "force move/rename even if target exists"
msgstr "tvinga flytta/ändra namn även om målet finns"
-#: builtin/mv.c:112
+#: builtin/mv.c:113
msgid "skip move/rename errors"
msgstr "hoppa över fel vid flytt/namnändring"
-#: builtin/mv.c:151
+#: builtin/mv.c:152
#, c-format
msgid "destination '%s' is not a directory"
msgstr "destinationen \"%s\" är ingen katalog"
-#: builtin/mv.c:162
+#: builtin/mv.c:163
#, c-format
msgid "Checking rename of '%s' to '%s'\n"
msgstr "Kontrollerar namnbyte av \"%s\" till \"%s\"\n"
-#: builtin/mv.c:166
+#: builtin/mv.c:167
msgid "bad source"
msgstr "felaktig källa"
-#: builtin/mv.c:169
+#: builtin/mv.c:170
msgid "can not move directory into itself"
msgstr "kan inte flytta katalog till sig själv"
-#: builtin/mv.c:172
+#: builtin/mv.c:173
msgid "cannot move directory over file"
msgstr "kan inte flytta katalog över fil"
-#: builtin/mv.c:181
+#: builtin/mv.c:182
msgid "source directory is empty"
msgstr "källkatalogen är tom"
-#: builtin/mv.c:206
+#: builtin/mv.c:207
msgid "not under version control"
msgstr "inte versionshanterad"
-#: builtin/mv.c:209
+#: builtin/mv.c:210
msgid "destination exists"
msgstr "destinationen finns"
-#: builtin/mv.c:217
+#: builtin/mv.c:218
#, c-format
msgid "overwriting '%s'"
msgstr "skriver över \"%s\""
-#: builtin/mv.c:220
+#: builtin/mv.c:221
msgid "Cannot overwrite"
msgstr "Kan inte skriva över"
-#: builtin/mv.c:223
+#: builtin/mv.c:224
msgid "multiple sources for the same target"
msgstr "flera källor för samma mål"
-#: builtin/mv.c:225
+#: builtin/mv.c:226
msgid "destination directory does not exist"
msgstr "destinationskatalogen finns inte"
-#: builtin/mv.c:232
+#: builtin/mv.c:233
#, c-format
msgid "%s, source=%s, destination=%s"
msgstr "%s, källa=%s, mål=%s"
-#: builtin/mv.c:253
+#: builtin/mv.c:254
#, c-format
msgid "Renaming %s to %s\n"
msgstr "Byter namn på %s till %s\n"
-#: builtin/mv.c:256 builtin/remote.c:728 builtin/repack.c:365
+#: builtin/mv.c:257 builtin/remote.c:714 builtin/repack.c:365
#, c-format
msgid "renaming '%s' failed"
msgstr "misslyckades byta namn på \"%s\""
@@ -8209,9 +8366,9 @@ msgid "could not open or read '%s'"
msgstr "kunde inte öppna eller läsa \"%s\""
#: builtin/notes.c:253 builtin/notes.c:304 builtin/notes.c:306
-#: builtin/notes.c:366 builtin/notes.c:421 builtin/notes.c:507
-#: builtin/notes.c:512 builtin/notes.c:590 builtin/notes.c:653
-#: builtin/notes.c:877 builtin/tag.c:456
+#: builtin/notes.c:369 builtin/notes.c:424 builtin/notes.c:510
+#: builtin/notes.c:515 builtin/notes.c:593 builtin/notes.c:656
+#: builtin/notes.c:880 builtin/tag.c:456
#, c-format
msgid "Failed to resolve '%s' as a valid ref."
msgstr "Kunde inte slå upp \"%s\" som en giltig referens."
@@ -8226,42 +8383,42 @@ msgstr "Kunde inte läsa objektet \"%s\"."
msgid "Cannot read note data from non-blob object '%s'."
msgstr "kan inte läsa anteckningsdata från icke-blob-objektet \"%s\"."
-#: builtin/notes.c:359 builtin/notes.c:414 builtin/notes.c:490
-#: builtin/notes.c:502 builtin/notes.c:578 builtin/notes.c:646
-#: builtin/notes.c:942
+#: builtin/notes.c:362 builtin/notes.c:417 builtin/notes.c:493
+#: builtin/notes.c:505 builtin/notes.c:581 builtin/notes.c:649
+#: builtin/notes.c:945
msgid "too many parameters"
msgstr "för många parametrar"
-#: builtin/notes.c:372 builtin/notes.c:659
+#: builtin/notes.c:375 builtin/notes.c:662
#, c-format
msgid "No note found for object %s."
msgstr "Inga anteckningar hittades för objektet %s."
-#: builtin/notes.c:393 builtin/notes.c:556
+#: builtin/notes.c:396 builtin/notes.c:559
msgid "note contents as a string"
msgstr "anteckningsinnehåll som sträng"
-#: builtin/notes.c:396 builtin/notes.c:559
+#: builtin/notes.c:399 builtin/notes.c:562
msgid "note contents in a file"
msgstr "anteckningsinnehåll i en fil"
-#: builtin/notes.c:399 builtin/notes.c:562
+#: builtin/notes.c:402 builtin/notes.c:565
msgid "reuse and edit specified note object"
msgstr "återanvänd och redigera angivet anteckningsobjekt"
-#: builtin/notes.c:402 builtin/notes.c:565
+#: builtin/notes.c:405 builtin/notes.c:568
msgid "reuse specified note object"
msgstr "återanvänd angivet anteckningsobjekt"
-#: builtin/notes.c:405 builtin/notes.c:568
+#: builtin/notes.c:408 builtin/notes.c:571
msgid "allow storing empty note"
msgstr "tillåt lagra tom anteckning"
-#: builtin/notes.c:406 builtin/notes.c:477
+#: builtin/notes.c:409 builtin/notes.c:480
msgid "replace existing notes"
msgstr "ersätt befintliga anteckningar"
-#: builtin/notes.c:431
+#: builtin/notes.c:434
#, c-format
msgid ""
"Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite "
@@ -8270,29 +8427,29 @@ msgstr ""
"Kan inte lägga till anteckningar. Hittade befintliga anteckningar för "
"objektet %s. Använd \"-f\" för att skriva över befintliga anteckningar"
-#: builtin/notes.c:446 builtin/notes.c:525
+#: builtin/notes.c:449 builtin/notes.c:528
#, c-format
msgid "Overwriting existing notes for object %s\n"
msgstr "Skriver över befintliga anteckningar för objektet %s\n"
-#: builtin/notes.c:457 builtin/notes.c:618 builtin/notes.c:882
+#: builtin/notes.c:460 builtin/notes.c:621 builtin/notes.c:885
#, c-format
msgid "Removing note for object %s\n"
msgstr "Tar bort anteckning för objektet %s\n"
-#: builtin/notes.c:478
+#: builtin/notes.c:481
msgid "read objects from stdin"
msgstr "läs objekt från standard in"
-#: builtin/notes.c:480
+#: builtin/notes.c:483
msgid "load rewriting config for <command> (implies --stdin)"
msgstr "läs omskrivningsinställning för <kommando> (implicerar --stdin)"
-#: builtin/notes.c:498
+#: builtin/notes.c:501
msgid "too few parameters"
msgstr "för få parametrar"
-#: builtin/notes.c:519
+#: builtin/notes.c:522
#, c-format
msgid ""
"Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite "
@@ -8301,12 +8458,12 @@ msgstr ""
"Kan inte kopiera anteckningar. Hittade befintliga anteckningar för objektet "
"%s. Använd \"-f\" för att skriva över befintliga anteckningar"
-#: builtin/notes.c:531
+#: builtin/notes.c:534
#, c-format
msgid "Missing notes on source object %s. Cannot copy."
msgstr "Anteckningar på källobjektet %s saknas. Kan inte kopiera."
-#: builtin/notes.c:583
+#: builtin/notes.c:586
#, c-format
msgid ""
"The -m/-F/-c/-C options have been deprecated for the 'edit' subcommand.\n"
@@ -8315,15 +8472,15 @@ msgstr ""
"Flaggorna -m/-F/-c/-C rekommenderas inte för underkommandot \"edit\".\n"
"Använd \"git notes add -f -m/-F/-c/-C\" istället.\n"
-#: builtin/notes.c:764
+#: builtin/notes.c:767
msgid "General options"
msgstr "Allmänna flaggor"
-#: builtin/notes.c:766
+#: builtin/notes.c:769
msgid "Merge options"
msgstr "Flaggor för sammanslagning"
-#: builtin/notes.c:768
+#: builtin/notes.c:771
msgid ""
"resolve notes conflicts using the given strategy (manual/ours/theirs/union/"
"cat_sort_uniq)"
@@ -8331,51 +8488,51 @@ msgstr ""
"läs konflikter i anteckningar med angiven strategi (manual/ours/theirs/union/"
"cat_sort_uniq)"
-#: builtin/notes.c:770
+#: builtin/notes.c:773
msgid "Committing unmerged notes"
msgstr "Checkar in ej sammanslagna anteckningar"
-#: builtin/notes.c:772
+#: builtin/notes.c:775
msgid "finalize notes merge by committing unmerged notes"
msgstr ""
"färdigställ sammanslagning av anteckningar genom att checka in ej "
"sammanslagna anteckningar"
-#: builtin/notes.c:774
+#: builtin/notes.c:777
msgid "Aborting notes merge resolution"
msgstr "Avbryt lösning av sammanslagning av anteckningar"
-#: builtin/notes.c:776
+#: builtin/notes.c:779
msgid "abort notes merge"
msgstr "avbryt sammanslagning av anteckningar"
-#: builtin/notes.c:853
+#: builtin/notes.c:856
#, c-format
msgid "A notes merge into %s is already in-progress at %s"
msgstr "Sammanslagning av anteckningar till %s är redan igångsatt på %s"
-#: builtin/notes.c:880
+#: builtin/notes.c:883
#, c-format
msgid "Object %s has no note\n"
msgstr "Objektet %s har ingen anteckning\n"
-#: builtin/notes.c:892
+#: builtin/notes.c:895
msgid "attempt to remove non-existent note is not an error"
msgstr "försök att ta bort icke-existerande anteckningar är inte ett fel"
-#: builtin/notes.c:895
+#: builtin/notes.c:898
msgid "read object names from the standard input"
msgstr "läs objektnamn från standard in"
-#: builtin/notes.c:976
+#: builtin/notes.c:979
msgid "notes-ref"
msgstr "anteckningar-ref"
-#: builtin/notes.c:977
+#: builtin/notes.c:980
msgid "use notes from <notes-ref>"
msgstr "använd anteckningar från <anteckningsref>"
-#: builtin/notes.c:1012 builtin/remote.c:1647
+#: builtin/notes.c:1015 builtin/remote.c:1626
#, c-format
msgid "Unknown subcommand: %s"
msgstr "Okänt underkommando: %s"
@@ -8397,165 +8554,165 @@ msgstr ""
msgid "deflate error (%d)"
msgstr "fel i deflate (%d)"
-#: builtin/pack-objects.c:771
+#: builtin/pack-objects.c:772
msgid "Writing objects"
msgstr "Skriver objekt"
-#: builtin/pack-objects.c:1011
+#: builtin/pack-objects.c:1012
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:2171
+#: builtin/pack-objects.c:2172
msgid "Compressing objects"
msgstr "Komprimerar objekt"
-#: builtin/pack-objects.c:2568
+#: builtin/pack-objects.c:2558
#, c-format
msgid "unsupported index version %s"
msgstr "indexversionen %s stöds ej"
-#: builtin/pack-objects.c:2572
+#: builtin/pack-objects.c:2562
#, c-format
msgid "bad index version '%s'"
msgstr "felaktig indexversion \"%s\""
-#: builtin/pack-objects.c:2602
+#: builtin/pack-objects.c:2592
msgid "do not show progress meter"
msgstr "visa inte förloppsindikator"
-#: builtin/pack-objects.c:2604
+#: builtin/pack-objects.c:2594
msgid "show progress meter"
msgstr "visa förloppsindikator"
-#: builtin/pack-objects.c:2606
+#: builtin/pack-objects.c:2596
msgid "show progress meter during object writing phase"
msgstr "visa förloppsindikator under objektskrivningsfasen"
-#: builtin/pack-objects.c:2609
+#: builtin/pack-objects.c:2599
msgid "similar to --all-progress when progress meter is shown"
-msgstr "som --all-progress när förloppsmätaren visas"
+msgstr "som --all-progress när förloppsindikatorn visas"
-#: builtin/pack-objects.c:2610
+#: builtin/pack-objects.c:2600
msgid "version[,offset]"
msgstr "version[,offset]"
-#: builtin/pack-objects.c:2611
+#: builtin/pack-objects.c:2601
msgid "write the pack index file in the specified idx format version"
msgstr "skriv paketindexfilen i angiven indexformatversion"
-#: builtin/pack-objects.c:2614
+#: builtin/pack-objects.c:2604
msgid "maximum size of each output pack file"
msgstr "maximal storlek på varje utdatapaketfil"
-#: builtin/pack-objects.c:2616
+#: builtin/pack-objects.c:2606
msgid "ignore borrowed objects from alternate object store"
msgstr "ignorera lånade objekt från alternativa objektlager"
-#: builtin/pack-objects.c:2618
+#: builtin/pack-objects.c:2608
msgid "ignore packed objects"
msgstr "ignorera packade objekt"
-#: builtin/pack-objects.c:2620
+#: builtin/pack-objects.c:2610
msgid "limit pack window by objects"
msgstr "begränsa paketfönster efter objekt"
-#: builtin/pack-objects.c:2622
+#: builtin/pack-objects.c:2612
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:2624
+#: builtin/pack-objects.c:2614
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:2626
+#: builtin/pack-objects.c:2616
msgid "reuse existing deltas"
msgstr "återanvänd befintliga delta"
-#: builtin/pack-objects.c:2628
+#: builtin/pack-objects.c:2618
msgid "reuse existing objects"
msgstr "återanvänd befintliga objekt"
-#: builtin/pack-objects.c:2630
+#: builtin/pack-objects.c:2620
msgid "use OFS_DELTA objects"
msgstr "använd OFS_DELTA-objekt"
-#: builtin/pack-objects.c:2632
+#: builtin/pack-objects.c:2622
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:2634
+#: builtin/pack-objects.c:2624
msgid "do not create an empty pack output"
msgstr "försök inte skapa tom paketutdata"
-#: builtin/pack-objects.c:2636
+#: builtin/pack-objects.c:2626
msgid "read revision arguments from standard input"
msgstr "läs revisionsargument från standard in"
-#: builtin/pack-objects.c:2638
+#: builtin/pack-objects.c:2628
msgid "limit the objects to those that are not yet packed"
msgstr "begränsa objekt till de som ännu inte packats"
-#: builtin/pack-objects.c:2641
+#: builtin/pack-objects.c:2631
msgid "include objects reachable from any reference"
msgstr "inkludera objekt som kan nås från någon referens"
-#: builtin/pack-objects.c:2644
+#: builtin/pack-objects.c:2634
msgid "include objects referred by reflog entries"
msgstr "inkludera objekt som refereras från referensloggposter"
-#: builtin/pack-objects.c:2647
+#: builtin/pack-objects.c:2637
msgid "include objects referred to by the index"
msgstr "inkludera objekt som refereras från indexet"
-#: builtin/pack-objects.c:2650
+#: builtin/pack-objects.c:2640
msgid "output pack to stdout"
msgstr "skriv paket på standard ut"
-#: builtin/pack-objects.c:2652
+#: builtin/pack-objects.c:2642
msgid "include tag objects that refer to objects to be packed"
msgstr "inkludera taggobjekt som refererar objekt som skall packas"
-#: builtin/pack-objects.c:2654
+#: builtin/pack-objects.c:2644
msgid "keep unreachable objects"
msgstr "behåll onåbara objekt"
-#: builtin/pack-objects.c:2655 parse-options.h:142
+#: builtin/pack-objects.c:2645 parse-options.h:142
msgid "time"
msgstr "tid"
-#: builtin/pack-objects.c:2656
+#: builtin/pack-objects.c:2646
msgid "unpack unreachable objects newer than <time>"
msgstr "packa upp onåbara objekt nyare än <tid>"
-#: builtin/pack-objects.c:2659
+#: builtin/pack-objects.c:2649
msgid "create thin packs"
msgstr "skapa tunna paket"
-#: builtin/pack-objects.c:2661
+#: builtin/pack-objects.c:2651
msgid "create packs suitable for shallow fetches"
msgstr "skapa packfiler lämpade för grunda hämtningar"
-#: builtin/pack-objects.c:2663
+#: builtin/pack-objects.c:2653
msgid "ignore packs that have companion .keep file"
msgstr "ignorera paket som har tillhörande .keep-fil"
-#: builtin/pack-objects.c:2665
+#: builtin/pack-objects.c:2655
msgid "pack compression level"
msgstr "komprimeringsgrad för paket"
-#: builtin/pack-objects.c:2667
+#: builtin/pack-objects.c:2657
msgid "do not hide commits by grafts"
msgstr "göm inte incheckningar med ympningar (\"grafts\")"
-#: builtin/pack-objects.c:2669
+#: builtin/pack-objects.c:2659
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:2671
+#: builtin/pack-objects.c:2661
msgid "write a bitmap index together with the pack index"
msgstr "använd bitkartindex tillsammans med packindexet"
-#: builtin/pack-objects.c:2762
+#: builtin/pack-objects.c:2752
msgid "Counting objects"
msgstr "Räknar objekt"
@@ -8599,49 +8756,53 @@ msgstr "låt tid gå ut för objekt äldre än <tid>"
msgid "cannot prune in a precious-objects repo"
msgstr "kan inte rensa i ett \"precious-objekt\"-arkiv"
-#: builtin/pull.c:69
+#: builtin/pull.c:72
msgid "git pull [<options>] [<repository> [<refspec>...]]"
msgstr "git pull [<flaggor>] [<arkiv> [<refspec>...]]"
-#: builtin/pull.c:113
+#: builtin/pull.c:117
msgid "Options related to merging"
msgstr "Alternativ gällande sammanslagning"
-#: builtin/pull.c:116
+#: builtin/pull.c:120
msgid "incorporate changes by rebasing rather than merging"
msgstr "inlemma ändringar genom ombasering i stället för sammanslagning"
-#: builtin/pull.c:140 builtin/revert.c:105
+#: builtin/pull.c:144 builtin/revert.c:105
msgid "allow fast-forward"
msgstr "tillåt snabbspolning"
-#: builtin/pull.c:146
+#: builtin/pull.c:150
msgid "verify that the named commit has a valid GPG signature"
msgstr "bekräfta att den namngivna incheckningen har en giltig GPG-signatur"
-#: builtin/pull.c:160
+#: builtin/pull.c:164
msgid "Options related to fetching"
msgstr "Alternativ gällande hämtningar"
-#: builtin/pull.c:268
+#: builtin/pull.c:186
+msgid "number of submodules pulled in parallel"
+msgstr "antal undermoduler som hämtas parallellt"
+
+#: builtin/pull.c:275
#, c-format
msgid "Invalid value for pull.ff: %s"
msgstr "Felaktigt värde för pull.ff: %s"
-#: builtin/pull.c:352
+#: builtin/pull.c:359
msgid "Cannot pull with rebase: You have unstaged changes."
msgstr "Kan inte hämta med ombasering: Du har oköade ändringar."
-#: builtin/pull.c:358
+#: builtin/pull.c:365
msgid "Additionally, your index contains uncommitted changes."
msgstr "Dessutom innehåller dit index ändringar som inte har checkats in."
-#: builtin/pull.c:360
+#: builtin/pull.c:367
msgid "Cannot pull with rebase: Your index contains uncommitted changes."
msgstr ""
"Kan inte hämta med ombasering: Ditt index innehåller oincheckade ändringar."
-#: builtin/pull.c:436
+#: builtin/pull.c:443
msgid ""
"There is no candidate for rebasing against among the refs that you just "
"fetched."
@@ -8649,14 +8810,14 @@ msgstr ""
"Det finns ingen kandidat för ombasering bland referenserna du precis har "
"hämtat."
-#: builtin/pull.c:438
+#: builtin/pull.c:445
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:439
+#: builtin/pull.c:446
msgid ""
"Generally this means that you provided a wildcard refspec which had no\n"
"matches on the remote end."
@@ -8664,7 +8825,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:442
+#: builtin/pull.c:449
#, c-format
msgid ""
"You asked to pull from the remote '%s', but did not specify\n"
@@ -8675,27 +8836,27 @@ 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:447
+#: builtin/pull.c:454
msgid "You are not currently on a branch."
msgstr "Du är inte på någon gren för närvarande."
-#: builtin/pull.c:449 builtin/pull.c:464
+#: builtin/pull.c:456 builtin/pull.c:471
msgid "Please specify which branch you want to rebase against."
msgstr "Ange vilken gren du vill ombasera mot."
-#: builtin/pull.c:451 builtin/pull.c:466
+#: builtin/pull.c:458 builtin/pull.c:473
msgid "Please specify which branch you want to merge with."
msgstr "Ange vilken gren du vill slå samman med."
-#: builtin/pull.c:452 builtin/pull.c:467
+#: builtin/pull.c:459 builtin/pull.c:474
msgid "See git-pull(1) for details."
msgstr "Se git-pull(1) för detaljer."
-#: builtin/pull.c:462
+#: builtin/pull.c:469
msgid "There is no tracking information for the current branch."
msgstr "Det finns ingen spårningsinformation för aktuell gren."
-#: builtin/pull.c:471
+#: builtin/pull.c:478
#, c-format
msgid ""
"If you wish to set tracking information for this branch you can do so with:\n"
@@ -8706,7 +8867,7 @@ msgstr ""
"\n"
" git branch --set-upstream-to=%s/<gren> %s\n"
-#: builtin/pull.c:476
+#: builtin/pull.c:483
#, c-format
msgid ""
"Your configuration specifies to merge with the ref '%s'\n"
@@ -8715,11 +8876,11 @@ 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:830
+#: builtin/pull.c:841
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:859
+#: builtin/pull.c:870
#, c-format
msgid ""
"fetch updated the current branch head.\n"
@@ -8730,7 +8891,7 @@ msgstr ""
"snabbspolar din arbetskatalog från\n"
"incheckningen %s."
-#: builtin/pull.c:864
+#: builtin/pull.c:875
#, c-format
msgid ""
"Cannot fast-forward your working tree.\n"
@@ -8747,11 +8908,11 @@ msgstr ""
"$ git reset --hard\n"
"för att återgå."
-#: builtin/pull.c:879
+#: builtin/pull.c:890
msgid "Cannot merge multiple branches into empty head."
msgstr "Kan inte slå ihop flera grenar i ett tomt huvud."
-#: builtin/pull.c:883
+#: builtin/pull.c:894
msgid "Cannot rebase onto multiple branches."
msgstr "Kan inte ombasera ovanpå flera grenar."
@@ -8759,15 +8920,15 @@ msgstr "Kan inte ombasera ovanpå flera grenar."
msgid "git push [<options>] [<repository> [<refspec>...]]"
msgstr "git push [<flaggor>] [<arkiv> [<refspec>...]]"
-#: builtin/push.c:88
+#: builtin/push.c:89
msgid "tag shorthand without <tag>"
msgstr "taggförkortning utan <tagg>"
-#: builtin/push.c:98
+#: builtin/push.c:99
msgid "--delete only accepts plain target ref names"
msgstr "--delete godtar endast enkla målreferensnamn"
-#: builtin/push.c:142
+#: builtin/push.c:143
msgid ""
"\n"
"To choose either option permanently, see push.default in 'git help config'."
@@ -8776,7 +8937,7 @@ msgstr ""
"För att välja ett av alternativen permanent, se push.default i \"git help "
"config\"."
-#: builtin/push.c:145
+#: builtin/push.c:146
#, c-format
msgid ""
"The upstream branch of your current branch does not match\n"
@@ -8801,7 +8962,7 @@ msgstr ""
" git push %s %s\n"
"%s"
-#: builtin/push.c:160
+#: builtin/push.c:161
#, c-format
msgid ""
"You are not currently on a branch.\n"
@@ -8816,7 +8977,7 @@ msgstr ""
"\n"
" git push %s HEAD:<namn-på-fjärrgren>\n"
-#: builtin/push.c:174
+#: builtin/push.c:175
#, c-format
msgid ""
"The current branch %s has no upstream branch.\n"
@@ -8829,12 +8990,12 @@ msgstr ""
"\n"
" git push --set-upstream %s %s\n"
-#: builtin/push.c:182
+#: builtin/push.c:183
#, c-format
msgid "The current branch %s has multiple upstream branches, refusing to push."
msgstr "Den aktuella grenen %s har flera uppströmsgrenar, vägrar sända."
-#: builtin/push.c:185
+#: builtin/push.c:186
#, c-format
msgid ""
"You are pushing to remote '%s', which is not the upstream of\n"
@@ -8845,62 +9006,14 @@ msgstr ""
"aktuella grenen \"%s\", utan att tala om för mig vad som\n"
"skall sändas för att uppdatera fjärrgrenen."
-#: builtin/push.c:208
-msgid ""
-"push.default is unset; its implicit value has changed in\n"
-"Git 2.0 from 'matching' to 'simple'. To squelch this message\n"
-"and maintain the traditional behavior, use:\n"
-"\n"
-" git config --global push.default matching\n"
-"\n"
-"To squelch this message and adopt the new behavior now, use:\n"
-"\n"
-" git config --global push.default simple\n"
-"\n"
-"When push.default is set to 'matching', git will push local branches\n"
-"to the remote branches that already exist with the same name.\n"
-"\n"
-"Since Git 2.0, Git defaults to the more conservative 'simple'\n"
-"behavior, which only pushes the current branch to the corresponding\n"
-"remote branch that 'git pull' uses to update the current branch.\n"
-"\n"
-"See 'git help config' and search for 'push.default' for further "
-"information.\n"
-"(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode\n"
-"'current' instead of 'simple' if you sometimes use older versions of Git)"
-msgstr ""
-"push.default har inte ställts in; dess underförstådda värde\n"
-"ändras i Git 2.0 från \"matching\" till \"simple\". För att\n"
-"undertrycka det här meddelandet och behålla traditionellt beteende\n"
-"skriver du:\n"
-"\n"
-" git config --global push.default matching\n"
-"\n"
-"För att undertrycka meddelandet och välja det nya beteendet nu skriver du:\n"
-"\n"
-" git config --global push.default simple\n"
-"\n"
-"När push.default är satt till \"matching\" kommer git att sända lokala "
-"grenar\n"
-"till fjärrgrenar som redan finns och som har samma namn.\n"
-"\n"
-"Git 2.0 kommer som standard välja den mer konservativa inställningen\n"
-"\"simple\", vilket bara sänder in den aktuella grenen till den motsvarande\n"
-"fjärrgren \"git pull\" använder för att uppdatera den aktuella grenen.\n"
-"\n"
-"Se \"git help config\" och sök efter \"push.default\" för ytterligare \n"
-"information. (Läget \"simple\" introducerades i Git 1.7.11. Använd det\n"
-"liknande läget \"current\" istället för \"simple\" om du ibland använder\n"
-"äldre versioner av Git.)"
-
-#: builtin/push.c:275
+#: builtin/push.c:242
msgid ""
"You didn't specify any refspecs to push, and push.default is \"nothing\"."
msgstr ""
"Du angav inga referensspecifikationer att sända, och push.default är "
"\"nothing\"."
-#: builtin/push.c:282
+#: builtin/push.c:249
msgid ""
"Updates were rejected because the tip of your current branch is behind\n"
"its remote counterpart. Integrate the remote changes (e.g.\n"
@@ -8912,7 +9025,7 @@ msgstr ""
"\"git pull ....\") innan du sänder igen.\n"
"Se avsnittet \"Note about fast-forward\" i \"git push --help\" för detaljer."
-#: builtin/push.c:288
+#: builtin/push.c:255
msgid ""
"Updates were rejected because a pushed branch tip is behind its remote\n"
"counterpart. Check out this branch and integrate the remote changes\n"
@@ -8924,7 +9037,7 @@ msgstr ""
"\"git pull ...\") innan du sänder igen.\n"
"Se avsnittet \"Note about fast-forward\" i \"git push --help\" för detaljer."
-#: builtin/push.c:294
+#: builtin/push.c:261
msgid ""
"Updates were rejected because the remote contains work that you do\n"
"not have locally. This is usually caused by another repository pushing\n"
@@ -8938,11 +9051,11 @@ msgstr ""
"(t.ex. \"git pull ...\") innan du sänder igen.\n"
"Se avsnittet \"Note about fast-forwards\" i \"git push --help\" för detaljer."
-#: builtin/push.c:301
+#: builtin/push.c:268
msgid "Updates were rejected because the tag already exists in the remote."
msgstr "Uppdateringarna avvisades eftersom taggen redan finns på fjärren."
-#: builtin/push.c:304
+#: builtin/push.c:271
msgid ""
"You cannot update a remote ref that points at a non-commit object,\n"
"or update a remote ref to make it point at a non-commit object,\n"
@@ -8953,22 +9066,22 @@ msgstr ""
"pekar på något som inte är en incheckning, utan att använda flaggan\n"
"\"--force\".\n"
-#: builtin/push.c:363
+#: builtin/push.c:331
#, c-format
msgid "Pushing to %s\n"
msgstr "Sänder till %s\n"
-#: builtin/push.c:367
+#: builtin/push.c:335
#, c-format
msgid "failed to push some refs to '%s'"
msgstr "misslyckades sända vissa referenser till \"%s\""
-#: builtin/push.c:397
+#: builtin/push.c:365
#, c-format
msgid "bad repository '%s'"
msgstr "felaktigt arkiv \"%s\""
-#: builtin/push.c:398
+#: builtin/push.c:366
msgid ""
"No configured push destination.\n"
"Either specify the URL from the command-line or configure a remote "
@@ -8989,104 +9102,100 @@ msgstr ""
"\n"
" git push <namn>\n"
-#: builtin/push.c:413
+#: builtin/push.c:381
msgid "--all and --tags are incompatible"
msgstr "--all och --tags är inkompatibla"
-#: builtin/push.c:414
+#: builtin/push.c:382
msgid "--all can't be combined with refspecs"
msgstr "--all kan inte kombineras med referensspecifikationer"
-#: builtin/push.c:419
+#: builtin/push.c:387
msgid "--mirror and --tags are incompatible"
msgstr "--mirror och --tags är inkompatibla"
-#: builtin/push.c:420
+#: builtin/push.c:388
msgid "--mirror can't be combined with refspecs"
msgstr "--mirror kan inte kombineras med referensspecifikationer"
-#: builtin/push.c:425
+#: builtin/push.c:393
msgid "--all and --mirror are incompatible"
msgstr "--all och --mirror är inkompatibla"
-#: builtin/push.c:537
+#: builtin/push.c:505
msgid "repository"
msgstr "arkiv"
-#: builtin/push.c:538 builtin/send-pack.c:161
+#: builtin/push.c:506 builtin/send-pack.c:161
msgid "push all refs"
msgstr "sänd alla referenser"
-#: builtin/push.c:539 builtin/send-pack.c:163
+#: builtin/push.c:507 builtin/send-pack.c:163
msgid "mirror all refs"
msgstr "spegla alla referenser"
-#: builtin/push.c:541
+#: builtin/push.c:509
msgid "delete refs"
msgstr "ta bort referenser"
-#: builtin/push.c:542
+#: builtin/push.c:510
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:545 builtin/send-pack.c:164
+#: builtin/push.c:513 builtin/send-pack.c:164
msgid "force updates"
msgstr "tvinga uppdateringar"
-#: builtin/push.c:547 builtin/send-pack.c:175
+#: builtin/push.c:515 builtin/send-pack.c:175
msgid "refname>:<expect"
msgstr "refnamn>:<förvänta"
-#: builtin/push.c:548 builtin/send-pack.c:176
+#: builtin/push.c:516 builtin/send-pack.c:176
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:550
-msgid "check|on-demand|no"
-msgstr "check|on-demand|no"
-
-#: builtin/push.c:551
+#: builtin/push.c:519
msgid "control recursive pushing of submodules"
msgstr "styr rekursiv insändning av undermoduler"
-#: builtin/push.c:553 builtin/send-pack.c:169
+#: builtin/push.c:521 builtin/send-pack.c:169
msgid "use thin pack"
msgstr "använd tunna paket"
-#: builtin/push.c:554 builtin/push.c:555 builtin/send-pack.c:158
+#: builtin/push.c:522 builtin/push.c:523 builtin/send-pack.c:158
#: builtin/send-pack.c:159
msgid "receive pack program"
msgstr "program för att ta emot paket"
-#: builtin/push.c:556
+#: builtin/push.c:524
msgid "set upstream for git pull/status"
msgstr "ställ in uppström för git pull/status"
-#: builtin/push.c:559
+#: builtin/push.c:527
msgid "prune locally removed refs"
msgstr "ta bort lokalt borttagna referenser"
-#: builtin/push.c:561
+#: builtin/push.c:529
msgid "bypass pre-push hook"
msgstr "förbigå pre-push-krok"
-#: builtin/push.c:562
+#: builtin/push.c:530
msgid "push missing but relevant tags"
msgstr "sänd in saknade men relevanta taggar"
-#: builtin/push.c:565 builtin/send-pack.c:166
+#: builtin/push.c:533 builtin/send-pack.c:166
msgid "GPG sign the push"
msgstr "GPG-signera insändningen"
-#: builtin/push.c:567 builtin/send-pack.c:170
+#: builtin/push.c:535 builtin/send-pack.c:170
msgid "request atomic transaction on remote side"
msgstr "begär atomiska transaktioner på fjärrsidan"
-#: builtin/push.c:577
+#: builtin/push.c:549
msgid "--delete is incompatible with --all, --mirror and --tags"
msgstr "--delete är inkompatibel med --all, --mirror och --tags"
-#: builtin/push.c:579
+#: builtin/push.c:551
msgid "--delete doesn't make sense without any refs"
msgstr "--delete kan inte användas utan referenser"
@@ -9164,12 +9273,12 @@ msgstr "hoppa över att applicera filter för gles utcheckning"
msgid "debug unpack-trees"
msgstr "felsök unpack-trees"
-#: builtin/reflog.c:428
+#: builtin/reflog.c:423
#, c-format
msgid "'%s' for '%s' is not a valid timestamp"
msgstr "\"%s\" för \"%s\" är inte en giltig tidsstämpel"
-#: builtin/reflog.c:545 builtin/reflog.c:550
+#: builtin/reflog.c:540 builtin/reflog.c:545
#, c-format
msgid "'%s' is not a valid timestamp"
msgstr "\"%s\" är inte en giltig tidsstämpel"
@@ -9310,55 +9419,45 @@ msgstr "att ange en master-gren ger ingen mening med --mirror"
msgid "specifying branches to track makes sense only with fetch mirrors"
msgstr "att ange grenar att spåra ger mening bara med hämtningsspeglar"
-#: builtin/remote.c:193 builtin/remote.c:643
+#: builtin/remote.c:190 builtin/remote.c:633
#, c-format
msgid "remote %s already exists."
msgstr "fjärrarkivet %s finns redan."
-#: builtin/remote.c:197 builtin/remote.c:647
+#: builtin/remote.c:194 builtin/remote.c:637
#, c-format
msgid "'%s' is not a valid remote name"
msgstr "\"%s\" är inte ett giltigt namn på fjärrarkiv"
-#: builtin/remote.c:241
+#: builtin/remote.c:234
#, c-format
msgid "Could not setup master '%s'"
msgstr "Kunde inte skapa master \"%s\""
-#: builtin/remote.c:341
+#: builtin/remote.c:336
#, c-format
msgid "Could not get fetch map for refspec %s"
msgstr "Kunde inte hämta mappning för referensspecifikation %s"
-#: builtin/remote.c:442 builtin/remote.c:450
+#: builtin/remote.c:437 builtin/remote.c:445
msgid "(matching)"
msgstr "(matchande)"
-#: builtin/remote.c:454
+#: builtin/remote.c:449
msgid "(delete)"
msgstr "(ta bort)"
-#: builtin/remote.c:594 builtin/remote.c:600 builtin/remote.c:606
-#, c-format
-msgid "Could not append '%s' to '%s'"
-msgstr "Kunde inte tillämpa \"%s\" på \"%s\""
-
-#: builtin/remote.c:636 builtin/remote.c:775 builtin/remote.c:875
+#: builtin/remote.c:626 builtin/remote.c:761 builtin/remote.c:858
#, c-format
msgid "No such remote: %s"
msgstr "Inget sådant fjärrarkiv: %s"
-#: builtin/remote.c:653
+#: builtin/remote.c:643
#, c-format
msgid "Could not rename config section '%s' to '%s'"
msgstr "Kunde inte byta namn på konfigurationssektionen \"%s\" till \"%s\""
-#: builtin/remote.c:659 builtin/remote.c:827
-#, c-format
-msgid "Could not remove config section '%s'"
-msgstr "Kunde inte ta bort konfigurationssektionen \"%s\""
-
-#: builtin/remote.c:674
+#: builtin/remote.c:663
#, c-format
msgid ""
"Not updating non-default fetch refspec\n"
@@ -9369,27 +9468,17 @@ msgstr ""
"\t%s\n"
"\tUppdatera konfigurationen manuellt om nödvändigt."
-#: builtin/remote.c:680
-#, c-format
-msgid "Could not append '%s'"
-msgstr "Kunde inte lägga till på \"%s\""
-
-#: builtin/remote.c:691
-#, c-format
-msgid "Could not set '%s'"
-msgstr "Kunde inte sätta \"%s\""
-
-#: builtin/remote.c:713
+#: builtin/remote.c:699
#, c-format
msgid "deleting '%s' failed"
msgstr "misslyckades ta bort \"%s\""
-#: builtin/remote.c:747
+#: builtin/remote.c:733
#, c-format
msgid "creating '%s' failed"
msgstr "misslyckades skapa \"%s\""
-#: builtin/remote.c:813
+#: builtin/remote.c:796
msgid ""
"Note: A branch outside the refs/remotes/ hierarchy was not removed;\n"
"to delete it, use:"
@@ -9403,275 +9492,280 @@ msgstr[1] ""
"Observera: Några grenar utanför hierarkin refs/remotes/ togs inte bort;\n"
"för att ta bort dem, använd:"
-#: builtin/remote.c:928
+#: builtin/remote.c:810
+#, c-format
+msgid "Could not remove config section '%s'"
+msgstr "Kunde inte ta bort konfigurationssektionen \"%s\""
+
+#: builtin/remote.c:911
#, c-format
msgid " new (next fetch will store in remotes/%s)"
msgstr " ny (nästa hämtning sparar i remotes/%s)"
-#: builtin/remote.c:931
+#: builtin/remote.c:914
msgid " tracked"
msgstr " spårad"
-#: builtin/remote.c:933
+#: builtin/remote.c:916
msgid " stale (use 'git remote prune' to remove)"
msgstr " förlegad (använd \"git remote prune\" för att ta bort)"
-#: builtin/remote.c:935
+#: builtin/remote.c:918
msgid " ???"
msgstr " ???"
-#: builtin/remote.c:976
+#: builtin/remote.c:959
#, c-format
msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch"
msgstr "ogiltig branch.%s.merge; kan inte ombasera över > 1 gren"
-#: builtin/remote.c:983
+#: builtin/remote.c:967
#, c-format
-msgid "rebases onto remote %s"
-msgstr "ombaseras på fjärren %s"
+msgid "rebases interactively onto remote %s"
+msgstr "ombaseras interaktivt på fjärren %s"
-#: builtin/remote.c:986
+#: builtin/remote.c:971
#, c-format
msgid " merges with remote %s"
msgstr " sammanslås med fjärren %s"
-#: builtin/remote.c:987
+#: builtin/remote.c:972
msgid " and with remote"
msgstr " och med fjärren"
-#: builtin/remote.c:989
+#: builtin/remote.c:974
#, c-format
msgid "merges with remote %s"
msgstr "sammanslås med fjärren %s"
-#: builtin/remote.c:990
+#: builtin/remote.c:975
msgid " and with remote"
msgstr " och med fjärren"
-#: builtin/remote.c:1036
+#: builtin/remote.c:1021
msgid "create"
msgstr "skapa"
-#: builtin/remote.c:1039
+#: builtin/remote.c:1024
msgid "delete"
msgstr "ta bort"
-#: builtin/remote.c:1043
+#: builtin/remote.c:1028
msgid "up to date"
msgstr "àjour"
-#: builtin/remote.c:1046
+#: builtin/remote.c:1031
msgid "fast-forwardable"
msgstr "kan snabbspolas"
-#: builtin/remote.c:1049
+#: builtin/remote.c:1034
msgid "local out of date"
msgstr "lokal föråldrad"
-#: builtin/remote.c:1056
+#: builtin/remote.c:1041
#, c-format
msgid " %-*s forces to %-*s (%s)"
msgstr " %-*s tvingar till %-*s (%s)"
-#: builtin/remote.c:1059
+#: builtin/remote.c:1044
#, c-format
msgid " %-*s pushes to %-*s (%s)"
msgstr " %-*s sänder till %-*s (%s)"
-#: builtin/remote.c:1063
+#: builtin/remote.c:1048
#, c-format
msgid " %-*s forces to %s"
msgstr " %-*s tvingar till %s"
-#: builtin/remote.c:1066
+#: builtin/remote.c:1051
#, c-format
msgid " %-*s pushes to %s"
msgstr " %-*s sänder till %s"
-#: builtin/remote.c:1134
+#: builtin/remote.c:1119
msgid "do not query remotes"
msgstr "fråga inte fjärrar"
-#: builtin/remote.c:1161
+#: builtin/remote.c:1146
#, c-format
msgid "* remote %s"
msgstr "* fjärr %s"
-#: builtin/remote.c:1162
+#: builtin/remote.c:1147
#, c-format
msgid " Fetch URL: %s"
msgstr " Hämt-URL: %s"
-#: builtin/remote.c:1163 builtin/remote.c:1314
+#: builtin/remote.c:1148 builtin/remote.c:1299
msgid "(no URL)"
msgstr "(ingen URL)"
-#: builtin/remote.c:1172 builtin/remote.c:1174
+#: builtin/remote.c:1157 builtin/remote.c:1159
#, c-format
msgid " Push URL: %s"
msgstr " Sänd-URL: %s"
-#: builtin/remote.c:1176 builtin/remote.c:1178 builtin/remote.c:1180
+#: builtin/remote.c:1161 builtin/remote.c:1163 builtin/remote.c:1165
#, c-format
msgid " HEAD branch: %s"
msgstr " HEAD-gren: %s"
-#: builtin/remote.c:1182
+#: builtin/remote.c:1167
#, c-format
msgid ""
" HEAD branch (remote HEAD is ambiguous, may be one of the following):\n"
msgstr " HEAD-gren (HEAD på fjärr är tvetydig, kan vara en av följande):\n"
-#: builtin/remote.c:1194
+#: builtin/remote.c:1179
#, c-format
msgid " Remote branch:%s"
msgid_plural " Remote branches:%s"
msgstr[0] " Fjärrgren:%s"
msgstr[1] " Fjärrgrenar:%s"
-#: builtin/remote.c:1197 builtin/remote.c:1224
+#: builtin/remote.c:1182 builtin/remote.c:1209
msgid " (status not queried)"
msgstr " (status inte förfrågad)"
-#: builtin/remote.c:1206
+#: builtin/remote.c:1191
msgid " Local branch configured for 'git pull':"
msgid_plural " Local branches configured for 'git pull':"
msgstr[0] " Lokal gren konfigurerad för \"git pull\":"
msgstr[1] " Lokala grenar konfigurerade för \"git pull\":"
-#: builtin/remote.c:1214
+#: builtin/remote.c:1199
msgid " Local refs will be mirrored by 'git push'"
msgstr " Lokala referenser speglas av \"git push\""
-#: builtin/remote.c:1221
+#: builtin/remote.c:1206
#, c-format
msgid " Local ref configured for 'git push'%s:"
msgid_plural " Local refs configured for 'git push'%s:"
msgstr[0] " Lokal referens konfigurerad för \"git push\"%s:"
msgstr[1] " Lokala referenser konfigurerade för \"git push\"%s:"
-#: builtin/remote.c:1242
+#: builtin/remote.c:1227
msgid "set refs/remotes/<name>/HEAD according to remote"
msgstr "sätt refs/remotes/<namn>/HEAD enligt fjärren"
-#: builtin/remote.c:1244
+#: builtin/remote.c:1229
msgid "delete refs/remotes/<name>/HEAD"
msgstr "ta bort refs/remotes/<namn>/HEAD"
-#: builtin/remote.c:1259
+#: builtin/remote.c:1244
msgid "Cannot determine remote HEAD"
msgstr "Kan inte bestämma HEAD på fjärren"
-#: builtin/remote.c:1261
+#: builtin/remote.c:1246
msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
msgstr "Flera HEAD-grenar på fjärren. Välj en explicit med:"
-#: builtin/remote.c:1271
+#: builtin/remote.c:1256
#, c-format
msgid "Could not delete %s"
msgstr "Kunde inte ta bort %s"
-#: builtin/remote.c:1279
+#: builtin/remote.c:1264
#, c-format
msgid "Not a valid ref: %s"
msgstr "Inte en giltig referens: %s"
-#: builtin/remote.c:1281
+#: builtin/remote.c:1266
#, c-format
msgid "Could not setup %s"
msgstr "Kunde inte ställa in %s"
-#: builtin/remote.c:1299
+#: builtin/remote.c:1284
#, c-format
msgid " %s will become dangling!"
msgstr " %s kommer bli dinglande!"
-#: builtin/remote.c:1300
+#: builtin/remote.c:1285
#, c-format
msgid " %s has become dangling!"
msgstr " %s har blivit dinglande!"
-#: builtin/remote.c:1310
+#: builtin/remote.c:1295
#, c-format
msgid "Pruning %s"
msgstr "Rensar %s"
-#: builtin/remote.c:1311
+#: builtin/remote.c:1296
#, c-format
msgid "URL: %s"
msgstr "URL: %s"
-#: builtin/remote.c:1327
+#: builtin/remote.c:1312
#, c-format
msgid " * [would prune] %s"
msgstr " * [skulle rensa] %s"
-#: builtin/remote.c:1330
+#: builtin/remote.c:1315
#, c-format
msgid " * [pruned] %s"
msgstr " * [rensad] %s"
-#: builtin/remote.c:1375
+#: builtin/remote.c:1360
msgid "prune remotes after fetching"
msgstr "rensa fjärrar efter hämtning"
-#: builtin/remote.c:1441 builtin/remote.c:1498 builtin/remote.c:1566
+#: builtin/remote.c:1423 builtin/remote.c:1477 builtin/remote.c:1545
#, c-format
msgid "No such remote '%s'"
msgstr "Ingen sådan fjärr \"%s\""
-#: builtin/remote.c:1461
+#: builtin/remote.c:1439
msgid "add branch"
msgstr "lägg till gren"
-#: builtin/remote.c:1468
+#: builtin/remote.c:1446
msgid "no remote specified"
msgstr "ingen fjärr angavs"
-#: builtin/remote.c:1485
+#: builtin/remote.c:1463
msgid "query push URLs rather than fetch URLs"
msgstr "fråga sänd-URL:er istället för hämta-URL:er"
-#: builtin/remote.c:1487
+#: builtin/remote.c:1465
msgid "return all URLs"
msgstr "returnera alla URL:er"
-#: builtin/remote.c:1515
+#: builtin/remote.c:1493
#, c-format
msgid "no URLs configured for remote '%s'"
msgstr "ingen URL:er angivna för fjärren \"%s\""
-#: builtin/remote.c:1541
+#: builtin/remote.c:1519
msgid "manipulate push URLs"
msgstr "manipulera URL:ar för sändning"
-#: builtin/remote.c:1543
+#: builtin/remote.c:1521
msgid "add URL"
msgstr "lägg till URL"
-#: builtin/remote.c:1545
+#: builtin/remote.c:1523
msgid "delete URLs"
msgstr "ta bort URL:ar"
-#: builtin/remote.c:1552
+#: builtin/remote.c:1530
msgid "--add --delete doesn't make sense"
msgstr "--add --delete ger ingen mening"
-#: builtin/remote.c:1592
+#: builtin/remote.c:1571
#, c-format
msgid "Invalid old URL pattern: %s"
msgstr "Felaktig gammalt URL-mönster: %s"
-#: builtin/remote.c:1600
+#: builtin/remote.c:1579
#, c-format
msgid "No such URL found: %s"
msgstr "Ingen sådan URL hittades: %s"
-#: builtin/remote.c:1602
+#: builtin/remote.c:1581
msgid "Will not delete all non-push URLs"
msgstr "Kommer inte ta bort alla icke-sänd-URL:er"
-#: builtin/remote.c:1616
+#: builtin/remote.c:1595
msgid "be verbose; must be placed before a subcommand"
msgstr "var pratsam; måste skrivas före ett underkommando"
@@ -9973,7 +10067,7 @@ 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:354
+#: builtin/rev-list.c:350
msgid "rev-list does not support display of notes"
msgstr "rev-list stöder inte visning av anteckningar"
@@ -10226,28 +10320,23 @@ msgstr "visa status från fjärrhjälpare"
msgid "git shortlog [<options>] [<revision-range>] [[--] [<path>...]]"
msgstr "git shortlog [<flaggor>] [<versionsintervall>] [[--] <sökväg>...]"
-#: builtin/shortlog.c:131
-#, c-format
-msgid "Missing author: %s"
-msgstr "Författare saknas: %s"
-
-#: builtin/shortlog.c:230
+#: builtin/shortlog.c:242
msgid "sort output according to the number of commits per author"
msgstr "sortera utdata enligt antal incheckningar per författare"
-#: builtin/shortlog.c:232
+#: builtin/shortlog.c:244
msgid "Suppress commit descriptions, only provides commit count"
msgstr "Undertryck beskrivningar, visa bara antal incheckningar"
-#: builtin/shortlog.c:234
+#: builtin/shortlog.c:246
msgid "Show the email address of each author"
msgstr "Visa e-postadress för varje författare"
-#: builtin/shortlog.c:235
+#: builtin/shortlog.c:247
msgid "w[,i1[,i2]]"
msgstr "w[,i1[,i2]]"
-#: builtin/shortlog.c:236
+#: builtin/shortlog.c:248
msgid "Linewrap output"
msgstr "Radbryt utdata"
@@ -10388,43 +10477,43 @@ msgid "skip and remove all lines starting with comment character"
msgstr "hoppa över och ta bort alla rader som inleds med kommentarstecken"
#: builtin/stripspace.c:38
-msgid "prepend comment character and blank to each line"
+msgid "prepend comment character and space to each line"
msgstr "lägg in kommentarstecken och blanksteg först på varje rad"
-#: builtin/submodule--helper.c:79 builtin/submodule--helper.c:167
+#: builtin/submodule--helper.c:73 builtin/submodule--helper.c:161
msgid "alternative anchor for relative paths"
msgstr "alternativa ankare för relativa sökvägar"
-#: builtin/submodule--helper.c:84
+#: builtin/submodule--helper.c:78
msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
msgstr "git submodule--helper list [--prefix=<sökväg>] [<sökväg>...]"
-#: builtin/submodule--helper.c:114
+#: builtin/submodule--helper.c:108
msgid "git submodule--helper name <path>"
msgstr "git submodule--helper name <sökväg>"
-#: builtin/submodule--helper.c:120
+#: builtin/submodule--helper.c:114
#, c-format
msgid "no submodule mapping found in .gitmodules for path '%s'"
msgstr "hittade ingen undermodulmappning i .gitmodules för sökvägen \"%s\""
-#: builtin/submodule--helper.c:170
+#: builtin/submodule--helper.c:164
msgid "where the new submodule will be cloned to"
msgstr "var den nya undermodulen skall klonas till"
-#: builtin/submodule--helper.c:173
+#: builtin/submodule--helper.c:167
msgid "name of the new submodule"
msgstr "namn på den nya undermodulen"
-#: builtin/submodule--helper.c:176
+#: builtin/submodule--helper.c:170
msgid "url where to clone the submodule from"
msgstr "URL att klona undermodulen från"
-#: builtin/submodule--helper.c:182
+#: builtin/submodule--helper.c:176
msgid "depth for shallow clones"
msgstr "djup för grunda kloner"
-#: builtin/submodule--helper.c:188
+#: builtin/submodule--helper.c:182
msgid ""
"git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
"<repository>] [--name <name>] [--url <url>][--depth <depth>] [--] [<path>...]"
@@ -10432,39 +10521,39 @@ msgstr ""
"git submodule--helper clone [--prefix=<sökväg>] [--quiet] [--reference "
"<arkvi>] [--name <namn>] [--url <url>][--depth <djup>] [--] [<sökväg>...]"
-#: builtin/submodule--helper.c:202 builtin/submodule--helper.c:208
-#: builtin/submodule--helper.c:216
+#: builtin/submodule--helper.c:196 builtin/submodule--helper.c:202
+#: builtin/submodule--helper.c:210
#, c-format
msgid "could not create directory '%s'"
msgstr "kunde inte skapa katalogen \"%s\""
-#: builtin/submodule--helper.c:204
+#: builtin/submodule--helper.c:198
#, c-format
msgid "clone of '%s' into submodule path '%s' failed"
msgstr "misslyckades klona \"%s\" till undermodulsökvägen \"%s\""
-#: builtin/submodule--helper.c:227
+#: builtin/submodule--helper.c:221
#, c-format
msgid "cannot open file '%s'"
msgstr "kan inte öppna filen \"%s\""
-#: builtin/submodule--helper.c:232
+#: builtin/submodule--helper.c:226
#, c-format
msgid "could not close file %s"
msgstr "kunde inte stänga filen %s"
-#: builtin/submodule--helper.c:247
+#: builtin/submodule--helper.c:241
#, c-format
msgid "could not get submodule directory for '%s'"
msgstr "kunde inte få tag i undermodulkatalog för \"%s\""
-#: builtin/submodule--helper.c:273
+#: builtin/submodule--helper.c:267
msgid "fatal: submodule--helper subcommand must be called with a subcommand"
msgstr ""
"ödesdigert: underkommandot submodule--helper måste anropas med ett "
"underkommando"
-#: builtin/submodule--helper.c:280
+#: builtin/submodule--helper.c:274
#, c-format
msgid "fatal: '%s' is not a valid submodule--helper subcommand"
msgstr ""
@@ -10711,191 +10800,204 @@ msgstr "Uppdaterad tagg \"%s\" (var %s)\n"
msgid "Unpacking objects"
msgstr "Packar upp objekt"
-#: builtin/update-index.c:70
+#: builtin/update-index.c:79
#, c-format
msgid "failed to create directory %s"
msgstr "misslyckades skapa katalogen %s"
-#: builtin/update-index.c:76
+#: builtin/update-index.c:85
#, c-format
msgid "failed to stat %s"
msgstr "misslyckades ta status på %s"
-#: builtin/update-index.c:86
+#: builtin/update-index.c:95
#, c-format
msgid "failed to create file %s"
msgstr "misslyckades skapa filen %s"
-#: builtin/update-index.c:94
+#: builtin/update-index.c:103
#, c-format
msgid "failed to delete file %s"
msgstr "misslyckades ta bort filen %s"
-#: builtin/update-index.c:101 builtin/update-index.c:203
+#: builtin/update-index.c:110 builtin/update-index.c:212
#, c-format
msgid "failed to delete directory %s"
msgstr "misslyckades ta bort katalogen %s"
-#: builtin/update-index.c:124
+#: builtin/update-index.c:133
#, c-format
-msgid "Testing "
-msgstr "Testar"
+msgid "Testing mtime in '%s' "
+msgstr "Testar mtime i \"%s\""
-#: builtin/update-index.c:136
+#: builtin/update-index.c:145
msgid "directory stat info does not change after adding a new file"
msgstr "stat-informationen för en katalog ändras inte när nya filer läggs till"
-#: builtin/update-index.c:149
+#: builtin/update-index.c:158
msgid "directory stat info does not change after adding a new directory"
msgstr ""
"stat-informationen för en katalog ändras inte när nya kataloger läggs till"
-#: builtin/update-index.c:162
+#: builtin/update-index.c:171
msgid "directory stat info changes after updating a file"
msgstr "stat-informationen för en katalog ändras när filer uppdateras"
-#: builtin/update-index.c:173
+#: builtin/update-index.c:182
msgid "directory stat info changes after adding a file inside subdirectory"
msgstr ""
"stat-informationen för en katalog ändras när filer läggs till i en "
"underkatalog"
-#: builtin/update-index.c:184
+#: builtin/update-index.c:193
msgid "directory stat info does not change after deleting a file"
msgstr "stat-informationen för en katalog ändras inte när en fil tas bort"
-#: builtin/update-index.c:197
+#: builtin/update-index.c:206
msgid "directory stat info does not change after deleting a directory"
msgstr "stat-informationen för en katalog ändras inte när en katalog tas bort"
-#: builtin/update-index.c:204
+#: builtin/update-index.c:213
msgid " OK"
msgstr " OK"
-#: builtin/update-index.c:564
+#: builtin/update-index.c:575
msgid "git update-index [<options>] [--] [<file>...]"
msgstr "git update-index [<flaggor>] [--] [<fil>...]"
-#: builtin/update-index.c:918
+#: builtin/update-index.c:930
msgid "continue refresh even when index needs update"
msgstr "fortsätt uppdatera även när index inte är àjour"
-#: builtin/update-index.c:921
+#: builtin/update-index.c:933
msgid "refresh: ignore submodules"
msgstr "refresh: ignorera undermoduler"
-#: builtin/update-index.c:924
+#: builtin/update-index.c:936
msgid "do not ignore new files"
msgstr "ignorera inte nya filer"
-#: builtin/update-index.c:926
+#: builtin/update-index.c:938
msgid "let files replace directories and vice-versa"
msgstr "låt filer ersätta kataloger och omvänt"
-#: builtin/update-index.c:928
+#: builtin/update-index.c:940
msgid "notice files missing from worktree"
msgstr "lägg märke till filer som saknas i arbetskatalogen"
-#: builtin/update-index.c:930
+#: builtin/update-index.c:942
msgid "refresh even if index contains unmerged entries"
msgstr "uppdatera även om indexet innehåller ej sammanslagna poster"
-#: builtin/update-index.c:933
+#: builtin/update-index.c:945
msgid "refresh stat information"
msgstr "uppdatera statusinformation"
-#: builtin/update-index.c:937
+#: builtin/update-index.c:949
msgid "like --refresh, but ignore assume-unchanged setting"
msgstr "som --refresh, men ignorera assume-unchanged-inställning"
-#: builtin/update-index.c:941
+#: builtin/update-index.c:953
msgid "<mode>,<object>,<path>"
msgstr "<läge>,<objekt>,<sökväg>"
-#: builtin/update-index.c:942
+#: builtin/update-index.c:954
msgid "add the specified entry to the index"
msgstr "lägg till angiven post i indexet"
-#: builtin/update-index.c:946
+#: builtin/update-index.c:958
msgid "(+/-)x"
msgstr "(+/-)x"
-#: builtin/update-index.c:947
+#: builtin/update-index.c:959
msgid "override the executable bit of the listed files"
msgstr "överstyr exekveringsbiten för angivna filer"
-#: builtin/update-index.c:951
+#: builtin/update-index.c:963
msgid "mark files as \"not changing\""
msgstr "markera filer som \"ändras inte\""
-#: builtin/update-index.c:954
+#: builtin/update-index.c:966
msgid "clear assumed-unchanged bit"
msgstr "rensa \"assume-unchanged\"-biten"
-#: builtin/update-index.c:957
+#: builtin/update-index.c:969
msgid "mark files as \"index-only\""
msgstr "markera filer som \"endast index\""
-#: builtin/update-index.c:960
+#: builtin/update-index.c:972
msgid "clear skip-worktree bit"
msgstr "töm \"skip-worktree\"-biten"
-#: builtin/update-index.c:963
+#: builtin/update-index.c:975
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:965
+#: builtin/update-index.c:977
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:967
+#: builtin/update-index.c:979
msgid "with --stdin: input lines are terminated by null bytes"
msgstr "med --stdin: indatarader termineras med null-byte"
-#: builtin/update-index.c:969
+#: builtin/update-index.c:981
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:973
+#: builtin/update-index.c:985
msgid "add entries from standard input to the index"
msgstr "lägg poster från standard in till indexet"
-#: builtin/update-index.c:977
+#: builtin/update-index.c:989
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:981
+#: builtin/update-index.c:993
msgid "only update entries that differ from HEAD"
msgstr "uppdatera endast poster som skiljer sig från HEAD"
-#: builtin/update-index.c:985
+#: builtin/update-index.c:997
msgid "ignore files missing from worktree"
msgstr "ignorera filer som saknas i arbetskatalogen"
-#: builtin/update-index.c:988
+#: builtin/update-index.c:1000
msgid "report actions to standard output"
msgstr "rapportera åtgärder på standard ut"
-#: builtin/update-index.c:990
+#: builtin/update-index.c:1002
msgid "(for porcelains) forget saved unresolved conflicts"
msgstr "(för porslin) glöm sparade olösta konflikter"
-#: builtin/update-index.c:994
+#: builtin/update-index.c:1006
msgid "write index in this format"
msgstr "skriv index i detta format"
-#: builtin/update-index.c:996
+#: builtin/update-index.c:1008
msgid "enable or disable split index"
msgstr "aktivera eller inaktivera delat index"
-#: builtin/update-index.c:998
+#: builtin/update-index.c:1010
msgid "enable/disable untracked cache"
msgstr "aktivera/inaktivera ospårad cache"
-#: builtin/update-index.c:1000
+#: builtin/update-index.c:1012
+msgid "test if the filesystem supports untracked cache"
+msgstr "testa om filsystemet stöder ospårad cache"
+
+#: builtin/update-index.c:1014
msgid "enable untracked cache without testing the filesystem"
msgstr "aktivera ospårad cache utan att testa filsystemet"
+#: builtin/update-index.c:1134
+msgid "Untracked cache disabled"
+msgstr "Ospårad cache är inaktiverad"
+
+#: builtin/update-index.c:1146
+#, c-format
+msgid "Untracked cache enabled for '%s'"
+msgstr "Ospårad cache är aktiverad för \"%s\""
+
#: builtin/update-ref.c:9
msgid "git update-ref [<options>] -d <refname> [<old-val>]"
msgstr "git update-ref [<flaggor>] -d <refnamn> [<gammaltvärde>]"
@@ -11011,34 +11113,34 @@ msgstr "misslyckades ta bort: %s"
msgid "'%s' already exists"
msgstr "\"%s\" finns redan"
-#: builtin/worktree.c:235
+#: builtin/worktree.c:233
#, c-format
msgid "could not create directory of '%s'"
msgstr "kunde inte skapa katalogen \"%s\""
-#: builtin/worktree.c:271
+#: builtin/worktree.c:269
#, c-format
msgid "Preparing %s (identifier %s)"
msgstr "Förbereder %s (identifieraren %s)"
-#: builtin/worktree.c:319
+#: builtin/worktree.c:317
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:321
+#: builtin/worktree.c:319
msgid "create a new branch"
msgstr "skapa en ny gren"
-#: builtin/worktree.c:323
+#: builtin/worktree.c:321
msgid "create or reset a branch"
msgstr "skapa eller återställ en gren"
-#: builtin/worktree.c:324
+#: builtin/worktree.c:322
msgid "detach HEAD at named commit"
msgstr "koppla från HEAD vid namngiven incheckning"
-#: builtin/worktree.c:331
+#: builtin/worktree.c:329
msgid "-b, -B, and --detach are mutually exclusive"
msgstr "-b, -B och --detach är ömsesidigt uteslutande"
@@ -11058,7 +11160,7 @@ msgstr "visa trädobjekt för underkatalogen <prefix>"
msgid "only useful for debugging"
msgstr "endast användbart vid felsökning"
-#: credential-cache--daemon.c:255
+#: credential-cache--daemon.c:262
msgid "print debugging messages to stderr"
msgstr "skriv felsökningsmeddelanden på standard fel"
@@ -11072,6 +11174,10 @@ msgstr ""
"några konceptvägledningar. Se \"git help <kommando>\" eller \"git help\n"
"<koncept>\" för att läsa mer om specifika underkommandon och koncept."
+#: http.c:320
+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"
+
#: common-cmds.h:9
msgid "start a working area (see also: git help tutorial)"
msgstr "starta arbetskatalog (se också: git help tutorial)"
@@ -11866,7 +11972,7 @@ msgid "Submodule '$name' ($url) unregistered for path '$displaypath'"
msgstr ""
"Undermodulen \"$name\" ($url) avregistrerad för sökvägen \"$displaypath\""
-#: git-submodule.sh:705
+#: git-submodule.sh:723
#, sh-format
msgid ""
"Submodule path '$displaypath' not initialized\n"
@@ -11875,108 +11981,181 @@ msgstr ""
"Undermodulen \"$displaypath\" har inte initierats\n"
"Kanske du vill köra \"update --init\"?"
-#: git-submodule.sh:718
+#: git-submodule.sh:736
#, sh-format
msgid "Unable to find current revision in submodule path '$displaypath'"
msgstr "Kan inte hitta aktuell revision i undermodulsökvägen \"$displaypath\""
-#: git-submodule.sh:727
+#: git-submodule.sh:745
#, sh-format
msgid "Unable to fetch in submodule path '$sm_path'"
msgstr "Kan inte hämta i undermodulsökväg \"$sm_path\""
-#: git-submodule.sh:751
+#: git-submodule.sh:768
#, sh-format
msgid "Unable to fetch in submodule path '$displaypath'"
msgstr "Kan inte hämta i undermodulsökväg \"$displaypath\""
-#: git-submodule.sh:765
+#: git-submodule.sh:788
#, sh-format
msgid "Unable to checkout '$sha1' in submodule path '$displaypath'"
msgstr "Kan inte checka ut \"$sha1\" i undermodulsökvägen \"$displaypath\""
-#: git-submodule.sh:766
+#: git-submodule.sh:789
#, sh-format
msgid "Submodule path '$displaypath': checked out '$sha1'"
msgstr "Undermodulsökvägen \"$displaypath\": checkade ut \"$sha1\""
-#: git-submodule.sh:770
+#: git-submodule.sh:793
#, sh-format
msgid "Unable to rebase '$sha1' in submodule path '$displaypath'"
msgstr "Kan inte ombasera \"$sha1\" i undermodulsökvägen \"$displaypath\""
-#: git-submodule.sh:771
+#: git-submodule.sh:794
#, sh-format
msgid "Submodule path '$displaypath': rebased into '$sha1'"
msgstr "Undermodulsökvägen \"$displaypath\": ombaserade in i \"$sha1\""
-#: git-submodule.sh:776
+#: git-submodule.sh:799
#, sh-format
msgid "Unable to merge '$sha1' in submodule path '$displaypath'"
msgstr "Kan inte slå ihop \"$sha1\" i undermodulsökvägen \"$displaypath\""
-#: git-submodule.sh:777
+#: git-submodule.sh:800
#, sh-format
msgid "Submodule path '$displaypath': merged in '$sha1'"
msgstr "Undermodulsökvägen \"$displaypath\": sammanslagen i \"$sha1\""
-#: git-submodule.sh:782
+#: git-submodule.sh:805
#, sh-format
msgid ""
"Execution of '$command $sha1' failed in submodule path '$prefix$sm_path'"
msgstr ""
"Misslyckades köra \"$command $sha1\" i undermodulsökvägen \"$prefix$sm_path\""
-#: git-submodule.sh:783
+#: git-submodule.sh:806
#, sh-format
msgid "Submodule path '$prefix$sm_path': '$command $sha1'"
msgstr "Undermodulsökvägen \"$prefix$sm_path\": \"$command $sha1\""
-#: git-submodule.sh:813
+#: git-submodule.sh:836
#, sh-format
msgid "Failed to recurse into submodule path '$displaypath'"
msgstr "Misslyckades rekursera in i undermodulsökvägen \"$displaypath\""
-#: git-submodule.sh:921
+#: git-submodule.sh:944
msgid "The --cached option cannot be used with the --files option"
msgstr "Flaggan --cached kan inte användas med flaggan --files"
-#: git-submodule.sh:973
+#: git-submodule.sh:996
#, sh-format
msgid "unexpected mode $mod_dst"
msgstr "oväntat läge $mod_dst"
-#: git-submodule.sh:993
+#: git-submodule.sh:1016
#, sh-format
msgid " Warn: $display_name doesn't contain commit $sha1_src"
msgstr " Varning: $display_name innehåller inte incheckningen $sha1_src"
-#: git-submodule.sh:996
+#: git-submodule.sh:1019
#, sh-format
msgid " Warn: $display_name doesn't contain commit $sha1_dst"
msgstr " Varning: $display_name innehåller inte incheckningen $sha1_dst"
-#: git-submodule.sh:999
+#: git-submodule.sh:1022
#, sh-format
msgid " Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst"
msgstr ""
" Varning: $display_name innehåller inte incheckningarna $sha1_src och "
"$sha1_dst"
-#: git-submodule.sh:1024
+#: git-submodule.sh:1047
msgid "blob"
msgstr "blob"
-#: git-submodule.sh:1142
+#: git-submodule.sh:1165
#, sh-format
msgid "Failed to recurse into submodule path '$sm_path'"
msgstr "Misslyckades rekursera in i undermodulsökvägen \"$sm_path\""
-#: git-submodule.sh:1206
+#: git-submodule.sh:1229
#, sh-format
msgid "Synchronizing submodule url for '$displaypath'"
msgstr "Synkroniserar undermodul-url för \"$displaypath\""
+#~ msgid "unable to parse format"
+#~ msgstr "kan inte tolka formatet"
+
+#~ msgid "improper format entered align:%s"
+#~ msgstr "felaktigt format angivet align:%s"
+
+#~ msgid "Could not set core.worktree in %s"
+#~ msgstr "Kunde inte sätta core.worktree i %s"
+
+#~ msgid ""
+#~ "push.default is unset; its implicit value has changed in\n"
+#~ "Git 2.0 from 'matching' to 'simple'. To squelch this message\n"
+#~ "and maintain the traditional behavior, use:\n"
+#~ "\n"
+#~ " git config --global push.default matching\n"
+#~ "\n"
+#~ "To squelch this message and adopt the new behavior now, use:\n"
+#~ "\n"
+#~ " git config --global push.default simple\n"
+#~ "\n"
+#~ "When push.default is set to 'matching', git will push local branches\n"
+#~ "to the remote branches that already exist with the same name.\n"
+#~ "\n"
+#~ "Since Git 2.0, Git defaults to the more conservative 'simple'\n"
+#~ "behavior, which only pushes the current branch to the corresponding\n"
+#~ "remote branch that 'git pull' uses to update the current branch.\n"
+#~ "\n"
+#~ "See 'git help config' and search for 'push.default' for further "
+#~ "information.\n"
+#~ "(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode\n"
+#~ "'current' instead of 'simple' if you sometimes use older versions of Git)"
+#~ msgstr ""
+#~ "push.default har inte ställts in; dess underförstådda värde\n"
+#~ "ändras i Git 2.0 från \"matching\" till \"simple\". För att\n"
+#~ "undertrycka det här meddelandet och behålla traditionellt beteende\n"
+#~ "skriver du:\n"
+#~ "\n"
+#~ " git config --global push.default matching\n"
+#~ "\n"
+#~ "För att undertrycka meddelandet och välja det nya beteendet nu skriver "
+#~ "du:\n"
+#~ "\n"
+#~ " git config --global push.default simple\n"
+#~ "\n"
+#~ "När push.default är satt till \"matching\" kommer git att sända lokala "
+#~ "grenar\n"
+#~ "till fjärrgrenar som redan finns och som har samma namn.\n"
+#~ "\n"
+#~ "Git 2.0 kommer som standard välja den mer konservativa inställningen\n"
+#~ "\"simple\", vilket bara sänder in den aktuella grenen till den "
+#~ "motsvarande\n"
+#~ "fjärrgren \"git pull\" använder för att uppdatera den aktuella grenen.\n"
+#~ "\n"
+#~ "Se \"git help config\" och sök efter \"push.default\" för ytterligare \n"
+#~ "information. (Läget \"simple\" introducerades i Git 1.7.11. Använd det\n"
+#~ "liknande läget \"current\" istället för \"simple\" om du ibland använder\n"
+#~ "äldre versioner av Git.)"
+
+#~ msgid "check|on-demand|no"
+#~ msgstr "check|on-demand|no"
+
+#~ msgid "Could not append '%s'"
+#~ msgstr "Kunde inte lägga till på \"%s\""
+
+#~ msgid "Could not set '%s'"
+#~ msgstr "Kunde inte sätta \"%s\""
+
+#~ msgid "Missing author: %s"
+#~ msgstr "Författare saknas: %s"
+
+#~ msgid "Testing "
+#~ msgstr "Testar"
+
#~ msgid "unable to look up current user in the passwd file: %s"
#~ msgstr "kan inte slå upp aktuell användare i passwd-filen: %s"
diff --git a/po/vi.po b/po/vi.po
index f3fee99640..14f1859e4b 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -2,14 +2,14 @@
# Bản dịch tiếng Việt dành cho GIT-CORE.
# This file is distributed under the same license as the git-core package.
# Nguyá»…n Thái Ngá»c Duy <pclouds@gmail.com>, 2012.
-# Trần Ngá»c Quân <vnwildman@gmail.com>, 2012, 2013, 2014, 2015.
+# Trần Ngá»c Quân <vnwildman@gmail.com>, 2012, 2013, 2014, 2015, 2016.
#
msgid ""
msgstr ""
-"Project-Id-Version: git v2.7.0-rc0\n"
+"Project-Id-Version: git v2.8.0-rc0\n"
"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2015-12-11 23:36+0800\n"
-"PO-Revision-Date: 2015-12-12 14:31+0700\n"
+"POT-Creation-Date: 2016-02-28 20:31+0800\n"
+"PO-Revision-Date: 2016-02-29 07:44+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"
@@ -36,7 +36,7 @@ msgstr ""
"và sau đó dùng lệnh “git add/rm <tập-tin>â€\n"
"dành riêng cho việc đánh dấu cần giải quyết và tạo lần chuyển giao."
-#: advice.c:101 builtin/merge.c:1225
+#: advice.c:101 builtin/merge.c:1226
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)."
@@ -80,7 +80,7 @@ msgstr "định_dạng"
msgid "archive format"
msgstr "định dạng lưu trữ"
-#: archive.c:430 builtin/log.c:1228
+#: archive.c:430 builtin/log.c:1232
msgid "prefix"
msgstr "tiá»n_tố"
@@ -88,10 +88,10 @@ 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:432 builtin/archive.c:88 builtin/blame.c:2535 builtin/blame.c:2536
-#: builtin/config.c:58 builtin/fast-export.c:987 builtin/fast-export.c:989
-#: builtin/grep.c:707 builtin/hash-object.c:99 builtin/ls-files.c:446
-#: builtin/ls-files.c:449 builtin/notes.c:395 builtin/notes.c:558
+#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2547 builtin/blame.c:2548
+#: builtin/config.c:60 builtin/fast-export.c:987 builtin/fast-export.c:989
+#: builtin/grep.c:720 builtin/hash-object.c:100 builtin/ls-files.c:459
+#: builtin/ls-files.c:462 builtin/notes.c:398 builtin/notes.c:561
#: builtin/read-tree.c:109 parse-options.h:153
msgid "file"
msgstr "tập_tin"
@@ -124,7 +124,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:451 builtin/archive.c:90 builtin/clone.c:77
+#: archive.c:451 builtin/archive.c:90 builtin/clone.c:78
msgid "repo"
msgstr "kho"
@@ -132,7 +132,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:453 builtin/archive.c:92 builtin/notes.c:479
+#: archive.c:453 builtin/archive.c:92 builtin/notes.c:482
msgid "command"
msgstr "lệnh"
@@ -140,7 +140,7 @@ msgstr "lệnh"
msgid "path to the remote git-upload-archive command"
msgstr "Ä‘Æ°á»ng dẫn đến lệnh git-upload-pack trên máy chủ"
-#: attr.c:265
+#: attr.c:263
msgid ""
"Negative patterns are ignored in git attributes\n"
"Use '\\!' for literal leading exclamation."
@@ -148,84 +148,101 @@ msgstr ""
"Các mẫu dạng phủ định bị cấm dùng cho các thuộc tính của git\n"
"Dùng “\\!†cho các chuỗi văn bản có dấu chấm than dẫn đầu."
-#: branch.c:61
+#: branch.c:53
+#, c-format
+msgid ""
+"\n"
+"After fixing the error cause you may try to fix up\n"
+"the remote tracking information by invoking\n"
+"\"git branch --set-upstream-to=%s%s%s\"."
+msgstr ""
+"\n"
+"Sau khi sửa nguyên nhân lỗi bạn có lẻ cần thử sửa\n"
+"thông tin theo dõi máy chủ bằng cách gá»i lệnh\n"
+"\"git branch --set-upstream-to=%s%s%s\"."
+
+#: branch.c:67
#, c-format
msgid "Not setting branch %s as its own upstream."
msgstr "Chưa cài đặt nhánh %s như là thượng nguồn của nó."
-#: branch.c:84
+#: branch.c:93
#, c-format
msgid "Branch %s set up to track remote branch %s from %s by rebasing."
msgstr "Nhánh %s cài đặt để theo dõi nhánh máy chủ %s từ %s bằng cách rebase."
-#: branch.c:85
+#: branch.c:94
#, c-format
msgid "Branch %s set up to track remote branch %s from %s."
msgstr "Nhánh %s cài đặt để theo dõi nhánh máy chủ %s từ %s."
-#: branch.c:89
+#: branch.c:98
#, c-format
msgid "Branch %s set up to track local branch %s by rebasing."
msgstr "Nhánh %s cài đặt để theo dõi nhánh nội bộ %s bằng cách rebase."
-#: branch.c:90
+#: branch.c:99
#, c-format
msgid "Branch %s set up to track local branch %s."
msgstr "Nhánh %s cài đặt để theo dõi nhánh nội bộ %s."
-#: branch.c:95
+#: branch.c:104
#, c-format
msgid "Branch %s set up to track remote ref %s by rebasing."
msgstr "Nhánh %s cài đặt để theo dõi nhánh máy chủ %s bằng cách rebase."
-#: branch.c:96
+#: branch.c:105
#, c-format
msgid "Branch %s set up to track remote ref %s."
msgstr "Nhánh %s cài đặt để theo dõi tham chiếu máy chủ %s."
-#: branch.c:100
+#: branch.c:109
#, c-format
msgid "Branch %s set up to track local ref %s by rebasing."
msgstr ""
"Nhánh %s cài đặt để theo dõi vết tham chiếu nội bộ %s bằng cách rebase."
-#: branch.c:101
+#: branch.c:110
#, c-format
msgid "Branch %s set up to track local ref %s."
msgstr "Nhánh %s cài đặt để theo dõi tham chiếu nội bộ %s."
-#: branch.c:134
+#: branch.c:119
+msgid "Unable to write upstream branch configuration"
+msgstr "Không thể ghi cấu hình nhánh thượng nguồn"
+
+#: branch.c:156
#, c-format
msgid "Not tracking: ambiguous information for ref %s"
msgstr "Không theo dõi: thông tin chưa rõ ràng cho tham chiếu %s"
-#: branch.c:163
+#: branch.c:185
#, c-format
msgid "'%s' is not a valid branch name."
msgstr "“%s†không phải là một tên nhánh hợp lệ."
-#: branch.c:168
+#: branch.c:190
#, c-format
msgid "A branch named '%s' already exists."
msgstr "Äã có nhánh mang tên “%sâ€."
-#: branch.c:176
+#: branch.c:198
msgid "Cannot force update the current branch."
msgstr "Không thể ép buộc cập nhật nhánh hiện hành."
-#: branch.c:196
+#: branch.c:218
#, c-format
msgid "Cannot setup tracking information; starting point '%s' is not a branch."
msgstr ""
"Không thể cài đặt thông tin theo dõi; điểm bắt đầu “%s†không phải là một "
"nhánh."
-#: branch.c:198
+#: branch.c:220
#, c-format
msgid "the requested upstream branch '%s' does not exist"
msgstr "nhánh thượng nguồn đã yêu cầu “%s†không tồn tại"
-#: branch.c:200
+#: branch.c:222
msgid ""
"\n"
"If you are planning on basing your work on an upstream\n"
@@ -245,22 +262,22 @@ msgstr ""
"sẽ theo dõi bản đối chiếu máy chủ của nó, bạn cần dùng lệnh\n"
"\"git push -u\" để đặt cấu hình thượng nguồn bạn muốn push."
-#: branch.c:244
+#: branch.c:266
#, c-format
msgid "Not a valid object name: '%s'."
msgstr "Không phải tên đối tượng hợp lệ: “%sâ€."
-#: branch.c:264
+#: branch.c:286
#, c-format
msgid "Ambiguous object name: '%s'."
msgstr "Tên đối tượng chÆ°a rõ ràng: “%sâ€."
-#: branch.c:269
+#: branch.c:291
#, c-format
msgid "Not a valid branch point: '%s'."
msgstr "Nhánh không hợp lệ: “%sâ€."
-#: branch.c:322
+#: branch.c:344
#, c-format
msgid "'%s' is already checked out at '%s'"
msgstr "“%s†đã sẵn được lấy ra tại “%sâ€"
@@ -284,10 +301,10 @@ msgstr "không thể mở “%sâ€"
msgid "Repository lacks these prerequisite commits:"
msgstr "Kho chứa thiếu những lần chuyển giao tiên quyết này:"
-#: bundle.c:163 ref-filter.c:1372 sequencer.c:636 sequencer.c:1083
-#: builtin/blame.c:2734 builtin/commit.c:1045 builtin/log.c:334
-#: builtin/log.c:849 builtin/log.c:1456 builtin/log.c:1689 builtin/merge.c:358
-#: builtin/shortlog.c:158
+#: bundle.c:163 ref-filter.c:1462 sequencer.c:627 sequencer.c:1074
+#: builtin/blame.c:2754 builtin/commit.c:1045 builtin/log.c:334
+#: builtin/log.c:852 builtin/log.c:1467 builtin/log.c:1700 builtin/merge.c:358
+#: builtin/shortlog.c:170
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"
@@ -324,7 +341,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:443 builtin/log.c:157 builtin/log.c:1366 builtin/shortlog.c:261
+#: bundle.c:443 builtin/log.c:157 builtin/log.c:1372 builtin/shortlog.c:273
#, c-format
msgid "unrecognized argument: %s"
msgstr "đối số không được thừa nhận: %s"
@@ -347,8 +364,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:40 builtin/am.c:452 builtin/am.c:488 builtin/am.c:1520
-#: builtin/am.c:2149
+#: commit.c:40 builtin/am.c:437 builtin/am.c:473 builtin/am.c:1505
+#: builtin/am.c:2135
#, c-format
msgid "could not parse %s"
msgstr "không thể phân tích cú pháp %s"
@@ -362,59 +379,64 @@ msgstr "%s %s không phải là một lần chuyển giao!"
msgid "memory exhausted"
msgstr "hết bộ nhớ"
-#: config.c:474 config.c:476
+#: config.c:475 config.c:477
#, c-format
-msgid "bad config file line %d in %s"
-msgstr "tập tin cấu hình sai tại dòng %d trong %s"
+msgid "bad config line %d in %s %s"
+msgstr "tập tin cấu hình sai tại dòng %d trong %s %s"
-#: config.c:592
+#: config.c:593
#, c-format
-msgid "bad numeric config value '%s' for '%s' in %s: %s"
-msgstr "sai giá trị bằng số của cấu hình “%s†cho “%s†trong %s: %s"
+msgid "bad numeric config value '%s' for '%s' in %s %s: %s"
+msgstr "sai giá trị bằng số của cấu hình “%s†cho “%s†trong %s %s: %s"
-#: config.c:594
+#: config.c:595
#, c-format
msgid "bad numeric config value '%s' for '%s': %s"
msgstr "sai giá trị bằng số của cấu hình “%s†cho “%sâ€: %s"
-#: config.c:679
+#: config.c:680
#, c-format
msgid "failed to expand user dir in: '%s'"
msgstr "gặp lá»—i mở rá»™ng thÆ° mục ngÆ°á»i dùng trong: “%sâ€"
-#: config.c:757 config.c:768
+#: config.c:758 config.c:769
#, c-format
msgid "bad zlib compression level %d"
msgstr "mức nén zlib %d là sai"
-#: config.c:890
+#: config.c:891
#, c-format
msgid "invalid mode for object creation: %s"
msgstr "chế độ không hợp lệ đối với việc tạo đối tượng: %s"
-#: config.c:1216
+#: config.c:1220
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:1277
+#: config.c:1281
msgid "unknown error occured 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:1601
+#: config.c:1629
#, 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:1603
+#: config.c:1631
#, 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:1662
+#: config.c:1690
#, c-format
msgid "%s has multiple values"
msgstr "%s có đa giá trị"
+#: config.c:2226
+#, c-format
+msgid "Could not set '%s' to '%s'"
+msgstr "Không thể đặt “%s†thành “%sâ€"
+
#: connected.c:69
msgid "Could not run 'git rev-list'"
msgstr "Không thể chạy “git rev-listâ€"
@@ -521,16 +543,16 @@ msgstr ""
"Tìm thấy các lá»—i trong biến cấu hình “diff.dirstatâ€:\n"
"%s"
-#: diff.c:3000
+#: diff.c:2997
#, 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:3396
+#: diff.c:3393
msgid "--follow requires exactly one pathspec"
msgstr "--follow cần chính xác má»™t đặc tả Ä‘Æ°á»ng dẫn"
-#: diff.c:3559
+#: diff.c:3556
#, c-format
msgid ""
"Failed to parse --dirstat/-X option parameter:\n"
@@ -539,18 +561,18 @@ msgstr ""
"Gặp lá»—i khi phân tích đối số tùy chá»n --dirstat/-X:\n"
"%s"
-#: diff.c:3573
+#: diff.c:3570
#, 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â€"
-#: dir.c:1915
+#: dir.c:2004
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:1998
-msgid "Untracked cache is disabled on this system."
-msgstr "Bộ nhớ tạm không theo vết bị tắt trên hệ thống này."
+#: dir.c:2123
+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."
#: gpg-interface.c:166 gpg-interface.c:237
msgid "could not run gpg."
@@ -589,20 +611,20 @@ msgstr "“%sâ€: %s"
msgid "'%s': short read %s"
msgstr "“%sâ€: Ä‘á»c ngắn %s"
-#: help.c:207
+#: help.c:205
#, c-format
msgid "available git commands in '%s'"
msgstr "các lệnh git sẵn có trong thÆ° mục “%sâ€:"
-#: help.c:214
+#: help.c:212
msgid "git commands available from elsewhere on your $PATH"
msgstr "các lệnh git sẵn có từ một nơi khác trong $PATH của bạn"
-#: help.c:246
+#: help.c:244
msgid "These are common Git commands used in various situations:"
msgstr "Có các lệnh Git chung được sử dụng trong các tình huống khác nhau:"
-#: help.c:311
+#: help.c:309
#, c-format
msgid ""
"'%s' appears to be a git command, but we were not\n"
@@ -611,11 +633,11 @@ msgstr ""
"“%s†trông như là một lệnh git, nhưng chúng tôi không\n"
"thể thá»±c thi nó. Có lẽ là lệnh git-%s đã bị há»ng?"
-#: help.c:368
+#: help.c:366
msgid "Uh oh. Your system reports no Git commands at all."
msgstr "á»i chà. Hệ thống của bạn báo rằng chẳng có lệnh Git nào cả."
-#: help.c:390
+#: help.c:388
#, c-format
msgid ""
"WARNING: You called a Git command named '%s', which does not exist.\n"
@@ -624,17 +646,17 @@ msgstr ""
"CẢNH BÃO: Bạn đã gá»i lệnh Git có tên “%sâ€, mà nó lại không có sẵn.\n"
"Tiếp tục và coi rằng ý bạn là “%sâ€"
-#: help.c:395
+#: help.c:393
#, c-format
msgid "in %0.1f seconds automatically..."
msgstr "trong %0.1f giây một cách tự động…"
-#: help.c:402
+#: help.c:400
#, c-format
msgid "git: '%s' is not a git command. See 'git --help'."
msgstr "git: “%s†không phải là má»™t lệnh của git. Xem “git --helpâ€."
-#: help.c:406 help.c:466
+#: help.c:404 help.c:464
msgid ""
"\n"
"Did you mean this?"
@@ -645,7 +667,7 @@ msgstr[0] ""
"\n"
"Có phải ý bạn là một trong số những cái này không?"
-#: help.c:462
+#: help.c:460
#, c-format
msgid "%s: %s - %s"
msgstr "%s: %s - %s"
@@ -654,8 +676,8 @@ msgstr "%s: %s - %s"
msgid "failed to read the cache"
msgstr "gặp lá»—i khi Ä‘á»c bá»™ nhá»› đệm"
-#: merge.c:94 builtin/am.c:2022 builtin/am.c:2057 builtin/checkout.c:376
-#: builtin/checkout.c:587 builtin/clone.c:722
+#: merge.c:94 builtin/am.c:2008 builtin/am.c:2043 builtin/checkout.c:376
+#: builtin/checkout.c:587 builtin/clone.c:730
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"
@@ -673,64 +695,64 @@ msgstr "addinfo_cache gặp lá»—i đối vá»›i Ä‘Æ°á»ng dẫn “%sâ€"
msgid "error building trees"
msgstr "gặp lỗi khi xây dựng cây"
-#: merge-recursive.c:686
+#: merge-recursive.c:689
#, 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:697
+#: merge-recursive.c:700
#, 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:711 merge-recursive.c:732
+#: merge-recursive.c:714 merge-recursive.c:735
msgid ": perhaps a D/F conflict?"
msgstr ": có lẽ là một xung đột D/F?"
-#: merge-recursive.c:722
+#: merge-recursive.c:725
#, 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:762
+#: merge-recursive.c:765
#, c-format
msgid "cannot read object %s '%s'"
msgstr "không thể Ä‘á»c đối tượng %s “%sâ€"
-#: merge-recursive.c:764
+#: merge-recursive.c:767
#, c-format
msgid "blob expected for %s '%s'"
msgstr "đối tượng blob được mong đợi cho %s “%sâ€"
-#: merge-recursive.c:787 builtin/clone.c:369
+#: merge-recursive.c:790 builtin/clone.c:374
#, c-format
msgid "failed to open '%s'"
msgstr "gặp lá»—i khi mở “%sâ€"
-#: merge-recursive.c:795
+#: merge-recursive.c:798
#, c-format
msgid "failed to symlink '%s'"
msgstr "gặp lá»—i khi tạo liên kết má»m (symlink) “%sâ€"
-#: merge-recursive.c:798
+#: merge-recursive.c:801
#, 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:936
+#: merge-recursive.c:939
msgid "Failed to execute internal merge"
msgstr "Gặp lỗi khi thực hiện trộn nội bộ"
-#: merge-recursive.c:940
+#: merge-recursive.c:943
#, 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:956
+#: merge-recursive.c:959
msgid "unsupported object type in the tree"
msgstr "kiểu đối tượng không được hỗ trợ trong cây (tree)"
-#: merge-recursive.c:1031 merge-recursive.c:1045
+#: merge-recursive.c:1034 merge-recursive.c:1048
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -739,7 +761,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:1037 merge-recursive.c:1050
+#: merge-recursive.c:1040 merge-recursive.c:1053
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -748,20 +770,20 @@ 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:1091
+#: merge-recursive.c:1094
msgid "rename"
msgstr "đổi tên"
-#: merge-recursive.c:1091
+#: merge-recursive.c:1094
msgid "renamed"
msgstr "đã đổi tên"
-#: merge-recursive.c:1147
+#: merge-recursive.c:1150
#, 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:1169
+#: merge-recursive.c:1172
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
@@ -770,145 +792,145 @@ 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:1174
+#: merge-recursive.c:1177
msgid " (left unresolved)"
msgstr " (cần giải quyết)"
-#: merge-recursive.c:1228
+#: merge-recursive.c:1231
#, 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:1258
+#: merge-recursive.c:1261
#, c-format
msgid "Renaming %s to %s and %s to %s instead"
msgstr "Äang đổi tên %s thành %s thay vì %s thành %s"
-#: merge-recursive.c:1457
+#: merge-recursive.c:1460
#, c-format
msgid "CONFLICT (rename/add): Rename %s->%s in %s. %s added in %s"
msgstr ""
"XUNG ÄỘT (đổi-tên/thêm): Äổi tên %s->%s trong %s. %s được thêm vào trong %s"
-#: merge-recursive.c:1467
+#: merge-recursive.c:1470
#, c-format
msgid "Adding merged %s"
msgstr "Thêm hòa trộn %s"
-#: merge-recursive.c:1472 merge-recursive.c:1674
+#: merge-recursive.c:1475 merge-recursive.c:1677
#, c-format
msgid "Adding as %s instead"
msgstr "Thay vào đó thêm vào %s"
-#: merge-recursive.c:1523
+#: merge-recursive.c:1526
#, c-format
msgid "cannot read object %s"
msgstr "không thể Ä‘á»c đối tượng %s"
-#: merge-recursive.c:1526
+#: merge-recursive.c:1529
#, 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:1578
+#: merge-recursive.c:1581
msgid "modify"
msgstr "sửa đổi"
-#: merge-recursive.c:1578
+#: merge-recursive.c:1581
msgid "modified"
msgstr "đã sửa"
-#: merge-recursive.c:1588
+#: merge-recursive.c:1591
msgid "content"
msgstr "ná»™i dung"
-#: merge-recursive.c:1595
+#: merge-recursive.c:1598
msgid "add/add"
msgstr "thêm/thêm"
-#: merge-recursive.c:1629
+#: merge-recursive.c:1632
#, 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:1643
+#: merge-recursive.c:1646
#, c-format
msgid "Auto-merging %s"
msgstr "Tự-động-hòa-trộn %s"
-#: merge-recursive.c:1647 git-submodule.sh:1025
+#: merge-recursive.c:1650 git-submodule.sh:1048
msgid "submodule"
msgstr "mô-đun-con"
-#: merge-recursive.c:1648
+#: merge-recursive.c:1651
#, c-format
msgid "CONFLICT (%s): Merge conflict in %s"
msgstr "XUNG ÄỘT (%s): Xung Ä‘á»™t hòa trá»™n trong %s"
-#: merge-recursive.c:1734
+#: merge-recursive.c:1737
#, c-format
msgid "Removing %s"
msgstr "Äang xóa %s"
-#: merge-recursive.c:1759
+#: merge-recursive.c:1762
msgid "file/directory"
msgstr "tập-tin/thư-mục"
-#: merge-recursive.c:1765
+#: merge-recursive.c:1768
msgid "directory/file"
msgstr "thư-mục/tập-tin"
-#: merge-recursive.c:1770
+#: merge-recursive.c:1773
#, 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:1780
+#: merge-recursive.c:1783
#, c-format
msgid "Adding %s"
msgstr "Thêm \"%s\""
-#: merge-recursive.c:1797
+#: merge-recursive.c:1800
msgid "Fatal merge failure, shouldn't happen."
msgstr "Việc hòa trá»™n há»ng nghiêm trá»ng, không nên để xảy ra."
-#: merge-recursive.c:1816
+#: merge-recursive.c:1819
msgid "Already up-to-date!"
msgstr "Äã cập nhật rồi!"
-#: merge-recursive.c:1825
+#: merge-recursive.c:1828
#, 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:1855
+#: merge-recursive.c:1858
#, c-format
msgid "Unprocessed path??? %s"
msgstr "ÄÆ°á»ng dẫn chÆ°a được xá»­ lý??? %s"
-#: merge-recursive.c:1903
+#: merge-recursive.c:1906
msgid "Merging:"
msgstr "Äang trá»™n:"
-#: merge-recursive.c:1916
+#: merge-recursive.c:1919
#, 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:1953
+#: merge-recursive.c:1956
msgid "merge returned no commit"
msgstr "hòa trộn không trả vỠlần chuyển giao nào"
-#: merge-recursive.c:2010
+#: merge-recursive.c:2013
#, c-format
msgid "Could not parse object '%s'"
msgstr "Không thể phân tích đối tượng “%sâ€"
-#: merge-recursive.c:2021 builtin/merge.c:645
+#: merge-recursive.c:2024 builtin/merge.c:646
msgid "Unable to write index."
msgstr "Không thể ghi bảng mục lục"
@@ -1027,12 +1049,12 @@ msgstr "Äặc tả Ä‘Æ°á»ng dẫn “%s†thì ở trong mô-Ä‘un-con “%.*s
msgid "%s: pathspec magic not supported by this command: %s"
msgstr "%s: số mầu nhiệm đặc tả Ä‘Æ°á»ng dẫn chÆ°a được há»— trợ bởi lệnh này: %s"
-#: pathspec.c:432
+#: pathspec.c:433
#, c-format
msgid "pathspec '%s' is beyond a symbolic link"
msgstr "đặc tả Ä‘Æ°á»ng dẫn “%s†vượt ra ngoài liên kết má»m"
-#: pathspec.c:441
+#: pathspec.c:442
msgid ""
"There is nothing to exclude from by :(exclude) patterns.\n"
"Perhaps you forgot to add either ':/' or '.' ?"
@@ -1066,164 +1088,190 @@ 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"
-#: refs.c:543 builtin/merge.c:760 builtin/merge.c:871 builtin/merge.c:973
-#: builtin/merge.c:983
+#: refs.c:543 builtin/merge.c:761 builtin/merge.c:872 builtin/merge.c:974
+#: builtin/merge.c:984
#, c-format
msgid "Could not open '%s' for writing"
msgstr "Không thể mở “%s†để ghi"
-#: refs/files-backend.c:2359
+#: refs/files-backend.c:2374
#, 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:2362
+#: refs/files-backend.c:2377
#, c-format
msgid "could not delete references: %s"
msgstr "không thể xóa bỠtham chiếu: %s"
-#: refs/files-backend.c:2371
+#: refs/files-backend.c:2386
#, c-format
msgid "could not remove reference %s"
msgstr "không thể gỡ bỠtham chiếu: %s"
-#: ref-filter.c:245
+#: ref-filter.c:55
#, 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"
+msgid "expected format: %%(color:<color>)"
+msgstr "cần định dạng: %%(color:<color>)"
+
+#: ref-filter.c:57
+#, c-format
+msgid "unrecognized color: %%(color:%s)"
+msgstr "không nhận ra màu: %%(màu:%s)"
-#: ref-filter.c:704
+#: ref-filter.c:71
+#, c-format
+msgid "unrecognized format: %%(%s)"
+msgstr "không nhận ra định dạng: %%(%s)"
+
+#: ref-filter.c:101
#, 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:833
+#: ref-filter.c:103
#, c-format
-msgid "expected format: %%(color:<color>)"
-msgstr "cần định dạng: %%(color:<color>)"
+msgid "unrecognized %%(contents) argument: %s"
+msgstr "đối số không được thừa nhận %%(contents): %s"
-#: ref-filter.c:835
-msgid "unable to parse format"
-msgstr "không thể phân tích định dạng"
+#: ref-filter.c:113
+#, c-format
+msgid "unrecognized %%(objectname) argument: %s"
+msgstr "đối số không được thừa nhận %%(objectname): %s"
-#: ref-filter.c:870
+#: ref-filter.c:135
#, c-format
msgid "expected format: %%(align:<width>,<position>)"
msgstr "cần định dạng: %%(align:<width>,<position>)"
-#: ref-filter.c:893
+#: ref-filter.c:147
+#, c-format
+msgid "unrecognized position:%s"
+msgstr "vị trí không được thừa nhận:%s"
+
+#: ref-filter.c:151
+#, c-format
+msgid "unrecognized width:%s"
+msgstr "chiá»u rá»™ng không được thừa nhận:%s"
+
+#: ref-filter.c:157
#, c-format
-msgid "improper format entered align:%s"
-msgstr "định dạng không đúng chỗ căn chỉnh:%s"
+msgid "unrecognized %%(align) argument: %s"
+msgstr "đối số không được thừa nhận %%(align): %s"
-#: ref-filter.c:898
+#: ref-filter.c:161
#, 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:1219
+#: ref-filter.c:372
+#, 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:1311
#, c-format
msgid "malformed object at '%s'"
msgstr "đối tượng dị hình tại “%sâ€"
-#: ref-filter.c:1561
+#: ref-filter.c:1651
#, c-format
msgid "format: %%(end) atom missing"
msgstr "định dạng: thiếu nguyên tử %%(end)"
-#: ref-filter.c:1615
+#: ref-filter.c:1705
#, c-format
msgid "malformed object name %s"
msgstr "tên đối tượng dị hình %s"
-#: remote.c:756
+#: remote.c:745
#, 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:760
+#: remote.c:749
#, c-format
msgid "%s usually tracks %s, not %s"
msgstr "%s thÆ°á»ng theo dõi %s, không phải %s"
-#: remote.c:764
+#: remote.c:753
#, c-format
msgid "%s tracks both %s and %s"
msgstr "%s theo dõi cả %s và %s"
-#: remote.c:772
+#: remote.c:761
msgid "Internal error"
msgstr "Lá»—i ná»™i bá»™"
-#: remote.c:1687 remote.c:1730
+#: remote.c:1677 remote.c:1720
msgid "HEAD does not point to a branch"
msgstr "HEAD không chỉ đến một nhánh nào cả"
-#: remote.c:1696
+#: remote.c:1686
#, c-format
msgid "no such branch: '%s'"
msgstr "không có nhánh nào nhÆ° thế: “%sâ€"
-#: remote.c:1699
+#: remote.c:1689
#, 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:1705
+#: remote.c:1695
#, 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:1720
+#: remote.c:1710
#, 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:1735
+#: remote.c:1725
#, 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:1746
+#: remote.c:1736
#, c-format
msgid "push refspecs for '%s' do not include '%s'"
msgstr "đẩy refspecs cho “%s†không bao gồm “%sâ€"
-#: remote.c:1759
+#: remote.c:1749
msgid "push has no destination (push.default is 'nothing')"
msgstr "đẩy lên mà không có đích (push.default là “nothingâ€)"
-#: remote.c:1781
+#: remote.c:1771
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:2083
+#: remote.c:2073
#, 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:2087
+#: remote.c:2077
msgid " (use \"git branch --unset-upstream\" to fixup)\n"
msgstr " (dùng \" git branch --unset-upstream\" để sửa)\n"
-#: remote.c:2090
+#: remote.c:2080
#, 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:2094
+#: remote.c:2084
#, 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:2100
+#: remote.c:2090
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:2103
+#: remote.c:2093
#, c-format
msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
msgid_plural ""
@@ -1232,11 +1280,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:2111
+#: remote.c:2101
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:2114
+#: remote.c:2104
#, c-format
msgid ""
"Your branch and '%s' have diverged,\n"
@@ -1249,30 +1297,30 @@ 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:2124
+#: remote.c:2114
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"
-#: revision.c:2191
+#: revision.c:2131
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:2194
+#: revision.c:2134
#, 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:2388
+#: revision.c:2328
msgid "--first-parent is incompatible with --bisect"
msgstr "--first-parent xung khắc với --bisect"
-#: run-command.c:90
+#: run-command.c:92
msgid "open /dev/null failed"
msgstr "gặp lá»—i khi mở “/dev/nullâ€"
-#: run-command.c:92
+#: run-command.c:94
#, c-format
msgid "dup2(%d,%d) failed"
msgstr "dup2(%d,%d) gặp lỗi"
@@ -1297,7 +1345,7 @@ msgstr ""
msgid "the receiving end does not support --atomic push"
msgstr "kết thúc nhận không hỗ trợ đẩy --atomic"
-#: sequencer.c:183
+#: sequencer.c:174
msgid ""
"after resolving the conflicts, mark the corrected paths\n"
"with 'git add <paths>' or 'git rm <paths>'"
@@ -1305,7 +1353,7 @@ msgstr ""
"sau khi giải quyết các xung Ä‘á»™t, đánh dấu Ä‘Æ°á»ng dẫn đã sá»­a\n"
"vá»›i lệnh “git add <Ä‘Æ°á»ng_dẫn>†hoặc “git rm <Ä‘Æ°á»ng_dẫn>â€"
-#: sequencer.c:186
+#: sequencer.c:177
msgid ""
"after resolving the conflicts, mark the corrected paths\n"
"with 'git add <paths>' or 'git rm <paths>'\n"
@@ -1315,67 +1363,67 @@ msgstr ""
"vá»›i lệnh “git add <Ä‘Æ°á»ng_dẫn>†hoặc “git rm <Ä‘Æ°á»ng_dẫn>â€\n"
"và chuyển giao kết quả bằng lệnh “git commitâ€"
-#: sequencer.c:199 sequencer.c:842 sequencer.c:922
+#: sequencer.c:190 sequencer.c:833 sequencer.c:913
#, c-format
msgid "Could not write to %s"
msgstr "Không thể ghi vào %s"
-#: sequencer.c:202
+#: sequencer.c:193
#, c-format
msgid "Error wrapping up %s"
msgstr "Lá»—i bao bá»c %s"
-#: sequencer.c:217
+#: sequencer.c:208
msgid "Your local changes would be overwritten by cherry-pick."
msgstr "Các thay đổi nội bộ của bạn có thể bị ghi đè bởi lệnh cherry-pick."
-#: sequencer.c:219
+#: sequencer.c:210
msgid "Your local changes would be overwritten by revert."
msgstr "Các thay đổi nội bộ của bạn có thể bị ghi đè bởi lệnh hoàn nguyên."
-#: sequencer.c:222
+#: sequencer.c:213
msgid "Commit your changes or stash them to proceed."
msgstr "Chuyển giao các thay đổi của bạn hay tạm cất (stash) chúng để xử lý."
#. TRANSLATORS: %s will be "revert" or "cherry-pick"
-#: sequencer.c:309
+#: sequencer.c:300
#, 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:327
+#: sequencer.c:318
msgid "Could not resolve HEAD commit\n"
msgstr "Không thể phân giải lần chuyển giao HEAD\n"
-#: sequencer.c:347
+#: sequencer.c:338
msgid "Unable to update cache tree\n"
msgstr "Không thể cập nhật cây bộ nhớ đệm\n"
-#: sequencer.c:399
+#: sequencer.c:390
#, c-format
msgid "Could not parse commit %s\n"
msgstr "Không thể phân tích lần chuyển giao %s\n"
-#: sequencer.c:404
+#: sequencer.c:395
#, c-format
msgid "Could not parse parent commit %s\n"
msgstr "Không thể phân tích lần chuyển giao cha mẹ “%sâ€\n"
-#: sequencer.c:469
+#: sequencer.c:460
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:488
+#: sequencer.c:479
#, 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:496
+#: sequencer.c:487
#, 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:500
+#: sequencer.c:491
#, c-format
msgid "Mainline was specified but commit %s is not a merge."
msgstr ""
@@ -1384,162 +1432,162 @@ msgstr ""
#. TRANSLATORS: The first %s will be "revert" or
#. "cherry-pick", the second %s a SHA1
-#: sequencer.c:513
+#: sequencer.c:504
#, 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:517
+#: sequencer.c:508
#, c-format
msgid "Cannot get commit message for %s"
msgstr "Không thể lấy ghi chú lần chuyển giao cho %s"
-#: sequencer.c:603
+#: sequencer.c:594
#, c-format
msgid "could not revert %s... %s"
msgstr "không thể hoàn nguyên %s… %s"
-#: sequencer.c:604
+#: sequencer.c:595
#, c-format
msgid "could not apply %s... %s"
msgstr "không thể áp dụng miếng vá %s… %s"
-#: sequencer.c:639
+#: sequencer.c:630
msgid "empty commit set passed"
msgstr "lần chuyển giao trống rỗng đặt là hợp quy cách"
-#: sequencer.c:647
+#: sequencer.c:638
#, 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:651
+#: sequencer.c:642
#, 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:711
+#: sequencer.c:702
#, c-format
msgid "Cannot %s during a %s"
msgstr "Không thể %s trong khi %s"
-#: sequencer.c:733
+#: sequencer.c:724
#, c-format
msgid "Could not parse line %d."
msgstr "Không phân tích được dòng %d."
-#: sequencer.c:738
+#: sequencer.c:729
msgid "No commits parsed."
msgstr "Không có lần chuyển giao nào được phân tích."
-#: sequencer.c:750
+#: sequencer.c:741
#, c-format
msgid "Could not open %s"
msgstr "Không thể mở %s"
-#: sequencer.c:754
+#: sequencer.c:745
#, c-format
msgid "Could not read %s."
msgstr "Không thể Ä‘á»c %s."
-#: sequencer.c:761
+#: sequencer.c:752
#, c-format
msgid "Unusable instruction sheet: %s"
msgstr "Bảng chỉ thị không thể dùng được: %s"
-#: sequencer.c:791
+#: sequencer.c:782
#, c-format
msgid "Invalid key: %s"
msgstr "Khóa không đúng: %s"
-#: sequencer.c:794 builtin/pull.c:47 builtin/pull.c:49
+#: sequencer.c:785 builtin/pull.c:50 builtin/pull.c:52
#, c-format
msgid "Invalid value for %s: %s"
msgstr "Giá trị không hợp lệ %s: %s"
-#: sequencer.c:804
+#: sequencer.c:795
#, c-format
msgid "Malformed options sheet: %s"
msgstr "Bảng tùy chá»n dị hình: %s"
-#: sequencer.c:823
+#: sequencer.c:814
msgid "a cherry-pick or revert is already in progress"
msgstr "có một thao tác “cherry-pick†hoặc “revert†đang được thực hiện"
-#: sequencer.c:824
+#: sequencer.c:815
msgid "try \"git cherry-pick (--continue | --quit | --abort)\""
msgstr "hãy thử \"git cherry-pick (--continue | --quit | --abort)\""
-#: sequencer.c:828
+#: sequencer.c:819
#, 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:844 sequencer.c:926
+#: sequencer.c:835 sequencer.c:917
#, c-format
msgid "Error wrapping up %s."
msgstr "Lá»—i bao bá»c %s."
-#: sequencer.c:863 sequencer.c:996
+#: sequencer.c:854 sequencer.c:987
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:865
+#: sequencer.c:856
msgid "cannot resolve HEAD"
msgstr "không thể phân giải HEAD"
-#: sequencer.c:867
+#: sequencer.c:858
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:887 builtin/apply.c:4287
+#: sequencer.c:878 builtin/apply.c:4287
#, c-format
msgid "cannot open %s: %s"
msgstr "không thể mở %s: %s"
-#: sequencer.c:890
+#: sequencer.c:881
#, c-format
msgid "cannot read %s: %s"
msgstr "không thể Ä‘á»c %s: %s"
-#: sequencer.c:891
+#: sequencer.c:882
msgid "unexpected end of file"
msgstr "gặp kết thúc tập tin đột xuất"
-#: sequencer.c:897
+#: sequencer.c:888
#, 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:919
+#: sequencer.c:910
#, c-format
msgid "Could not format %s."
msgstr "Không thể định dạng “%sâ€."
-#: sequencer.c:1064
+#: sequencer.c:1055
#, c-format
msgid "%s: can't cherry-pick a %s"
msgstr "%s: không thể cherry-pick một %s"
-#: sequencer.c:1067
+#: sequencer.c:1058
#, c-format
msgid "%s: bad revision"
msgstr "%s: điểm xét duyệt sai"
-#: sequencer.c:1101
+#: sequencer.c:1092
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:1102
+#: sequencer.c:1093
msgid "Can't cherry-pick into empty head"
msgstr "Không thể cherry-pick vào một đầu (head) trống rỗng"
-#: setup.c:248
+#: setup.c:246
#, c-format
msgid "failed to read %s"
msgstr "gặp lá»—i khi Ä‘á»c %s"
-#: sha1_name.c:463
+#: sha1_name.c:462
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"
@@ -1563,62 +1611,81 @@ msgstr ""
"này\n"
"bằng cách chạy lệnh \"git config advice.objectNameWarning false\""
-#: submodule.c:61 submodule.c:95
+#: submodule.c:62 submodule.c:96
msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
msgstr ""
"Không thể thay đổi .gitmodules chưa hòa trộn, hãy giải quyết xung đột trộn "
"trÆ°á»›c"
-#: submodule.c:65 submodule.c:99
+#: submodule.c:66 submodule.c:100
#, c-format
msgid "Could not find section in .gitmodules where path=%s"
msgstr "Không thể tìm thấy phần trong .gitmodules nÆ¡i mà Ä‘Æ°á»ng_dẫn=%s"
-#: submodule.c:73
+#: submodule.c:74
#, c-format
msgid "Could not update .gitmodules entry %s"
msgstr "Không thể cập nhật mục .gitmodules %s"
-#: submodule.c:106
+#: submodule.c:107
#, c-format
msgid "Could not remove .gitmodules entry for %s"
msgstr "Không thể gỡ bỠmục .gitmodules dành cho %s"
-#: submodule.c:117
+#: submodule.c:118
msgid "staging updated .gitmodules failed"
msgstr "gặp lỗi khi tổ chức .gitmodules đã cập nhật"
-#: submodule.c:1040
-#, c-format
-msgid "Could not set core.worktree in %s"
-msgstr "Không thể đặt “core.worktree†trong “%sâ€."
-
-#: trailer.c:491 trailer.c:495 trailer.c:499 trailer.c:553 trailer.c:557
-#: trailer.c:561
+#: trailer.c:492 trailer.c:496 trailer.c:500 trailer.c:554 trailer.c:558
+#: trailer.c:562
#, c-format
msgid "unknown value '%s' for key '%s'"
msgstr "không hiểu giá trị “%s†cho khóa “%sâ€"
-#: trailer.c:543 trailer.c:548 builtin/remote.c:296
+#: trailer.c:544 trailer.c:549 builtin/remote.c:289
#, c-format
msgid "more than one %s"
msgstr "nhiá»u hÆ¡n má»™t %s"
-#: trailer.c:581
+#: trailer.c:582
#, c-format
msgid "empty trailer token in trailer '%.*s'"
msgstr "thẻ thừa trống rá»—ng trong phần thừa “%.*sâ€"
-#: trailer.c:701
+#: trailer.c:702
#, c-format
msgid "could not read input file '%s'"
msgstr "không Ä‘á»c được tập tin đầu vào “%sâ€"
-#: trailer.c:704
+#: trailer.c:705
msgid "could not read from stdin"
msgstr "không thể Ä‘á»c từ đầu vào tiêu chuẩn"
-#: transport-helper.c:1025
+#: trailer.c:857 builtin/am.c:42
+#, c-format
+msgid "could not stat %s"
+msgstr "không thể lấy thông tin thống kê vỠ%s"
+
+#: trailer.c:859
+#, c-format
+msgid "file %s is not a regular file"
+msgstr "\"%s\" không phải là tập tin bình thÆ°á»ng"
+
+#: trailer.c:861
+#, c-format
+msgid "file %s is not writable by user"
+msgstr "tập tin %s ngÆ°á»i dùng không thể ghi được"
+
+#: trailer.c:873
+msgid "could not open temporary file"
+msgstr "không thể tạo tập tin tạm thá»i"
+
+#: trailer.c:912
+#, c-format
+msgid "could not rename temporary file to %s"
+msgstr "không thể đổi tên tập tin tạm thá»i thành %s"
+
+#: transport-helper.c:1041
#, c-format
msgid "Could not read ref %s"
msgstr "Không thể Ä‘á»c tham chiếu %s"
@@ -1656,56 +1723,47 @@ 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ệ"
-#: wrapper.c:219 wrapper.c:362
+#: wrapper.c:222 wrapper.c:381
#, c-format
msgid "could not open '%s' for reading and writing"
msgstr "không thể mở “%s†để Ä‘á»c và ghi"
-#: wrapper.c:221 wrapper.c:364
+#: wrapper.c:224 wrapper.c:383
#, c-format
msgid "could not open '%s' for writing"
msgstr "không thể mở “%s†để ghi"
-#: wrapper.c:223 wrapper.c:366 builtin/am.c:338 builtin/commit.c:1691
-#: builtin/merge.c:1074 builtin/pull.c:380
+#: wrapper.c:226 wrapper.c:385 builtin/am.c:323 builtin/commit.c:1691
+#: builtin/merge.c:1075 builtin/pull.c:387
#, c-format
msgid "could not open '%s' for reading"
msgstr "không thể mở “%s†để Ä‘á»c"
-#: wrapper.c:579
+#: wrapper.c:611
#, c-format
msgid "unable to access '%s': %s"
msgstr "không thể truy cập “%sâ€: %s"
-#: wrapper.c:600
+#: wrapper.c:632
#, c-format
msgid "unable to access '%s'"
msgstr "không thể truy cập “%sâ€"
-#: wrapper.c:611
-#, c-format
-msgid "unable to look up current user in the passwd file: %s"
-msgstr "không tìm thấy ngÆ°á»i dùng hiện tại trong tập tin passwd: %s"
-
-#: wrapper.c:612
-msgid "no such user"
-msgstr "không có ngÆ°á»i dùng nhÆ° vậy"
-
-#: wrapper.c:620
+#: wrapper.c:640
msgid "unable to get current working directory"
msgstr "Không thể lấy thư mục làm việc hiện hành"
-#: wrapper.c:647
+#: wrapper.c:667
#, c-format
msgid "could not open %s for writing"
msgstr "không thể mở %s để ghi"
-#: wrapper.c:658 builtin/am.c:425
+#: wrapper.c:678 builtin/am.c:410
#, c-format
msgid "could not write to %s"
msgstr "không thể ghi vào %s"
-#: wrapper.c:664
+#: wrapper.c:684
#, c-format
msgid "could not close %s"
msgstr "không thể đóng %s"
@@ -2188,7 +2246,7 @@ msgstr "đã ra đi"
msgid "behind "
msgstr "đằng sau "
-#: compat/precompose_utf8.c:56 builtin/clone.c:408
+#: compat/precompose_utf8.c:57 builtin/clone.c:413
#, c-format
msgid "failed to unlink '%s'"
msgstr "gặp lá»—i khi bá» liên kết (unlink) “%sâ€"
@@ -2216,7 +2274,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:194 builtin/rev-parse.c:796
+#: builtin/add.c:194 builtin/rev-parse.c:797
msgid "Could not read the index"
msgstr "Không thể Ä‘á»c bảng mục lục"
@@ -2253,15 +2311,15 @@ 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:249 builtin/clean.c:894 builtin/fetch.c:108 builtin/mv.c:110
-#: builtin/prune-packed.c:55 builtin/pull.c:182 builtin/push.c:545
-#: builtin/remote.c:1345 builtin/rm.c:268 builtin/send-pack.c:162
+#: builtin/add.c:249 builtin/clean.c:870 builtin/fetch.c:112 builtin/mv.c:111
+#: builtin/prune-packed.c:55 builtin/pull.c:189 builtin/push.c:511
+#: builtin/remote.c:1330 builtin/rm.c:268 builtin/send-pack.c:162
msgid "dry run"
msgstr "chạy thử"
-#: builtin/add.c:250 builtin/apply.c:4571 builtin/check-ignore.c:19
+#: builtin/add.c:250 builtin/apply.c:4561 builtin/check-ignore.c:19
#: builtin/commit.c:1322 builtin/count-objects.c:85 builtin/fsck.c:558
-#: builtin/log.c:1640 builtin/mv.c:109 builtin/read-tree.c:114
+#: builtin/log.c:1651 builtin/mv.c:110 builtin/read-tree.c:114
msgid "be verbose"
msgstr "chi tiết"
@@ -2269,7 +2327,7 @@ msgstr "chi tiết"
msgid "interactive picking"
msgstr "sửa bằng cách tương tác"
-#: builtin/add.c:253 builtin/checkout.c:1153 builtin/reset.c:286
+#: builtin/add.c:253 builtin/checkout.c:1155 builtin/reset.c:286
msgid "select hunks interactively"
msgstr "chá»n “hunks†theo kiểu tÆ°Æ¡ng tác"
@@ -2340,137 +2398,132 @@ 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/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:938
-#: builtin/commit.c:337 builtin/mv.c:130 builtin/reset.c:235 builtin/rm.c:298
-#: builtin/submodule--helper.c:40
+#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:914
+#: builtin/commit.c:337 builtin/mv.c:131 builtin/reset.c:235 builtin/rm.c:298
+#: builtin/submodule--helper.c:35
msgid "index file corrupt"
msgstr "tập tin ghi bảng mục lục bị há»ng"
-#: builtin/add.c:439 builtin/apply.c:4669 builtin/mv.c:279 builtin/rm.c:430
+#: builtin/add.c:439 builtin/apply.c:4659 builtin/mv.c:280 builtin/rm.c:430
msgid "Unable to write new index file"
msgstr "Không thể ghi tập tin lưu bảng mục lục mới"
-#: builtin/am.c:42
-#, c-format
-msgid "could not stat %s"
-msgstr "không thể lấy thông tin thống kê vỠ%s"
-
-#: builtin/am.c:271 builtin/commit.c:738 builtin/merge.c:1077
+#: builtin/am.c:256 builtin/commit.c:738 builtin/merge.c:1078
#, c-format
msgid "could not read '%s'"
msgstr "Không thể Ä‘á»c “%sâ€."
-#: builtin/am.c:445
+#: builtin/am.c:430
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:522
+#: builtin/am.c:507
#, 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:563 builtin/notes.c:300
+#: builtin/am.c:548 builtin/notes.c:300
#, c-format
msgid "Malformed input line: '%s'."
msgstr "Dòng đầu vào dị hình: “%sâ€."
-#: builtin/am.c:600 builtin/notes.c:315
+#: builtin/am.c:585 builtin/notes.c:315
#, 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:626
+#: builtin/am.c:611
msgid "fseek failed"
msgstr "fseek gặp lỗi"
-#: builtin/am.c:787 builtin/am.c:875
+#: builtin/am.c:772 builtin/am.c:860
#, c-format
msgid "could not open '%s' for reading: %s"
msgstr "không thể mở “%s†để Ä‘á»c: %s"
-#: builtin/am.c:794
+#: builtin/am.c:779
#, c-format
msgid "could not open '%s' for writing: %s"
msgstr "Không thể mở “%s†để ghi: %s"
-#: builtin/am.c:803
+#: builtin/am.c:788
#, c-format
msgid "could not parse patch '%s'"
msgstr "không thể phân tích cú pháp “%sâ€"
-#: builtin/am.c:868
+#: builtin/am.c:853
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:916
+#: builtin/am.c:901
msgid "invalid timestamp"
msgstr "dấu thá»i gian không hợp lệ"
-#: builtin/am.c:919 builtin/am.c:927
+#: builtin/am.c:904 builtin/am.c:912
msgid "invalid Date line"
msgstr "dòng Ngày tháng không hợp lệ"
-#: builtin/am.c:924
+#: builtin/am.c:909
msgid "invalid timezone offset"
msgstr "độ lệch múi giỠkhông hợp lệ"
-#: builtin/am.c:1011
+#: builtin/am.c:996
msgid "Patch format detection failed."
msgstr "Dò tìm định dạng miếng vá gặp lỗi."
-#: builtin/am.c:1016 builtin/clone.c:373
+#: builtin/am.c:1001 builtin/clone.c:378
#, c-format
msgid "failed to create directory '%s'"
msgstr "tạo thư mục \"%s\" gặp lỗi"
-#: builtin/am.c:1020
+#: builtin/am.c:1005
msgid "Failed to split patches."
msgstr "Gặp lỗi khi chia nhỠcác miếng vá."
-#: builtin/am.c:1152 builtin/commit.c:363
+#: builtin/am.c:1137 builtin/commit.c:363
msgid "unable to write index file"
msgstr "không thể ghi tập tin lưu mục lục"
-#: builtin/am.c:1203
+#: builtin/am.c:1188
#, 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:1204
+#: builtin/am.c:1189
#, 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:1205
+#: builtin/am.c:1190
#, 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:1343
+#: builtin/am.c:1328
msgid "Patch is empty. Was it split wrong?"
msgstr "Miếng vá trống rỗng. Quá trình chia nhỠmiếng vá có lỗi?"
-#: builtin/am.c:1417 builtin/log.c:1344
+#: builtin/am.c:1402 builtin/log.c:1350
#, c-format
msgid "invalid ident line: %s"
msgstr "dòng thụt lỠkhông hợp lệ: %s"
-#: builtin/am.c:1444
+#: builtin/am.c:1429
#, c-format
msgid "unable to parse commit %s"
msgstr "không thể phân tích lần chuyển giao “%sâ€"
-#: builtin/am.c:1646
+#: builtin/am.c:1631
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:1648
+#: builtin/am.c:1633
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:1667
+#: builtin/am.c:1652
msgid ""
"Did you hand edit your patch?\n"
"It does not apply to blobs recorded in its index."
@@ -2478,38 +2531,38 @@ 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:1673
+#: builtin/am.c:1658
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:1688
+#: builtin/am.c:1673
msgid "Failed to merge in the changes."
msgstr "Gặp lỗi khi trộn vào các thay đổi."
-#: builtin/am.c:1712 builtin/merge.c:632
+#: builtin/am.c:1697 builtin/merge.c:633
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"
-#: builtin/am.c:1719
+#: builtin/am.c:1704
msgid "applying to an empty history"
msgstr "áp dụng vào một lịch sử trống rỗng"
-#: builtin/am.c:1732 builtin/commit.c:1755 builtin/merge.c:829
-#: builtin/merge.c:854
+#: builtin/am.c:1717 builtin/commit.c:1755 builtin/merge.c:830
+#: builtin/merge.c:855
msgid "failed to write commit object"
msgstr "gặp lỗi khi ghi đối tượng chuyển giao"
-#: builtin/am.c:1764 builtin/am.c:1768
+#: builtin/am.c:1749 builtin/am.c:1753
#, 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:1784
+#: builtin/am.c:1769
msgid "cannot be interactive without stdin connected to a terminal."
msgstr ""
"không thể được tương tác mà không có stdin kết nối với một thiết bị cuối"
-#: builtin/am.c:1789
+#: builtin/am.c:1774
msgid "Commit Body is:"
msgstr "Thân của lần chuyển giao là:"
@@ -2517,37 +2570,37 @@ 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:1799
+#: builtin/am.c:1784
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:1849
+#: builtin/am.c:1834
#, 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:1884 builtin/am.c:1955
+#: builtin/am.c:1869 builtin/am.c:1941
#, c-format
msgid "Applying: %.*s"
msgstr "Ãp dụng: %.*s"
-#: builtin/am.c:1900
+#: builtin/am.c:1885
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:1908
+#: builtin/am.c:1893
#, c-format
msgid "Patch failed at %s %.*s"
msgstr "Gặp lỗi khi vá tại %s %.*s"
-#: builtin/am.c:1914
+#: builtin/am.c:1899
#, c-format
msgid "The copy of the patch that failed is found in: %s"
msgstr "Bản sao chép của miếng vá mà nó gặp lỗi thì được tìm thấy trong: %s"
-#: builtin/am.c:1958
+#: builtin/am.c:1944
msgid ""
"No changes - did you forget to use 'git add'?\n"
"If there is nothing left to stage, chances are that something else\n"
@@ -2558,7 +2611,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:1965
+#: builtin/am.c:1951
msgid ""
"You still have unmerged paths in your index.\n"
"Did you forget to use 'git add'?"
@@ -2566,17 +2619,17 @@ msgstr ""
"Bạn vẫn có những Ä‘Æ°á»ng dẫn chÆ°a được hòa trá»™n trong bảng mục lục của mình.\n"
"Bạn đã quên sử dụng lệnh “git add†à?"
-#: builtin/am.c:2073 builtin/am.c:2077 builtin/am.c:2089 builtin/reset.c:308
+#: builtin/am.c:2059 builtin/am.c:2063 builtin/am.c:2075 builtin/reset.c:308
#: builtin/reset.c:316
#, c-format
msgid "Could not parse object '%s'."
msgstr "không thể phân tích đối tượng “%sâ€."
-#: builtin/am.c:2125
+#: builtin/am.c:2111
msgid "failed to clean index"
msgstr "gặp lá»—i khi dá»n bảng mục lục"
-#: builtin/am.c:2159
+#: builtin/am.c:2145
msgid ""
"You seem to have moved HEAD since the last 'am' failure.\n"
"Not rewinding to ORIG_HEAD"
@@ -2584,153 +2637,153 @@ 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:2220
+#: builtin/am.c:2206
#, c-format
msgid "Invalid value for --patch-format: %s"
msgstr "Giá trị không hợp lệ cho --patch-format: %s"
-#: builtin/am.c:2253
+#: builtin/am.c:2239
msgid "git am [<options>] [(<mbox>|<Maildir>)...]"
msgstr "git am [<các-tùy-chá»n>] [(<mbox>|<Maildir>)…]"
-#: builtin/am.c:2254
+#: builtin/am.c:2240
msgid "git am [<options>] (--continue | --skip | --abort)"
msgstr "git am [<các-tùy-chá»n>] (--continue | --skip | --abort)"
-#: builtin/am.c:2260
+#: builtin/am.c:2246
msgid "run interactively"
msgstr "chạy kiểu tương tác"
-#: builtin/am.c:2262
+#: builtin/am.c:2248
msgid "historical option -- no-op"
msgstr "tùy chá»n lịch sá»­ -- không-toán-tá»­"
-#: builtin/am.c:2264
+#: builtin/am.c:2250
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:2265 builtin/init-db.c:474 builtin/prune-packed.c:57
+#: builtin/am.c:2251 builtin/init-db.c:474 builtin/prune-packed.c:57
#: builtin/repack.c:171
msgid "be quiet"
msgstr "im lặng"
-#: builtin/am.c:2267
+#: builtin/am.c:2253
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:2270
+#: builtin/am.c:2256
msgid "recode into utf8 (default)"
msgstr "chuyển mã thành utf8 (mặc định)"
-#: builtin/am.c:2272
+#: builtin/am.c:2258
msgid "pass -k flag to git-mailinfo"
msgstr "chuyển cỠ-k cho git-mailinfo"
-#: builtin/am.c:2274
+#: builtin/am.c:2260
msgid "pass -b flag to git-mailinfo"
msgstr "chuyển cỠ-b cho git-mailinfo"
-#: builtin/am.c:2276
+#: builtin/am.c:2262
msgid "pass -m flag to git-mailinfo"
msgstr "chuyển cỠ-m cho git-mailinfo"
-#: builtin/am.c:2278
+#: builtin/am.c:2264
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:2281
+#: builtin/am.c:2267
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:2284
+#: builtin/am.c:2270
msgid "strip everything before a scissors line"
msgstr "cắt má»i thứ trÆ°á»›c dòng scissors"
-#: builtin/am.c:2285 builtin/apply.c:4554
+#: builtin/am.c:2271 builtin/apply.c:4544
msgid "action"
msgstr "hành động"
-#: builtin/am.c:2286 builtin/am.c:2289 builtin/am.c:2292 builtin/am.c:2295
-#: builtin/am.c:2298 builtin/am.c:2301 builtin/am.c:2304 builtin/am.c:2307
-#: builtin/am.c:2313
+#: builtin/am.c:2272 builtin/am.c:2275 builtin/am.c:2278 builtin/am.c:2281
+#: builtin/am.c:2284 builtin/am.c:2287 builtin/am.c:2290 builtin/am.c:2293
+#: builtin/am.c:2299
msgid "pass it through git-apply"
msgstr "chuyển nó qua git-apply"
-#: builtin/am.c:2294 builtin/apply.c:4578
+#: builtin/am.c:2280 builtin/apply.c:4568
msgid "root"
msgstr "gốc"
-#: builtin/am.c:2297 builtin/am.c:2300 builtin/apply.c:4516
-#: builtin/apply.c:4519 builtin/clone.c:85 builtin/fetch.c:93
-#: builtin/pull.c:167 builtin/submodule--helper.c:78
-#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
+#: builtin/am.c:2283 builtin/am.c:2286 builtin/apply.c:4506
+#: builtin/apply.c:4509 builtin/clone.c:86 builtin/fetch.c:95
+#: builtin/pull.c:171 builtin/submodule--helper.c:72
+#: builtin/submodule--helper.c:160 builtin/submodule--helper.c:163
msgid "path"
msgstr "Ä‘Æ°á»ng-dẫn"
-#: builtin/am.c:2303 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
-#: builtin/grep.c:693 builtin/merge.c:198 builtin/pull.c:127
+#: builtin/am.c:2289 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
+#: builtin/grep.c:704 builtin/merge.c:198 builtin/pull.c:131 builtin/pull.c:185
#: builtin/repack.c:178 builtin/repack.c:182 builtin/show-branch.c:645
#: builtin/show-ref.c:175 builtin/tag.c:340 parse-options.h:132
#: parse-options.h:134 parse-options.h:244
msgid "n"
msgstr "n"
-#: builtin/am.c:2306 builtin/apply.c:4522
+#: builtin/am.c:2292 builtin/apply.c:4512
msgid "num"
msgstr "số"
-#: builtin/am.c:2309 builtin/for-each-ref.c:37 builtin/replace.c:438
+#: builtin/am.c:2295 builtin/for-each-ref.c:37 builtin/replace.c:438
#: builtin/tag.c:372
msgid "format"
msgstr "định dạng"
-#: builtin/am.c:2310
+#: builtin/am.c:2296
msgid "format the patch(es) are in"
msgstr "định dạng (các) miếng vá theo"
-#: builtin/am.c:2316
+#: builtin/am.c:2302
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:2318
+#: builtin/am.c:2304
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:2321
+#: builtin/am.c:2307
msgid "synonyms for --continue"
msgstr "đồng nghĩa với --continue"
-#: builtin/am.c:2324
+#: builtin/am.c:2310
msgid "skip the current patch"
msgstr "bỠqua miếng vá hiện hành"
-#: builtin/am.c:2327
+#: builtin/am.c:2313
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:2331
+#: builtin/am.c:2317
msgid "lie about committer date"
msgstr "nói dối vỠngày chuyển giao"
-#: builtin/am.c:2333
+#: builtin/am.c:2319
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:2335 builtin/commit.c:1593 builtin/merge.c:225
-#: builtin/pull.c:155 builtin/revert.c:92 builtin/tag.c:355
+#: builtin/am.c:2321 builtin/commit.c:1593 builtin/merge.c:225
+#: builtin/pull.c:159 builtin/revert.c:92 builtin/tag.c:355
msgid "key-id"
msgstr "mã-số-khóa"
-#: builtin/am.c:2336
+#: builtin/am.c:2322
msgid "GPG-sign commits"
msgstr "lần chuyển giao ký-GPG"
-#: builtin/am.c:2339
+#: builtin/am.c:2325
msgid "(internal use for git-rebase)"
msgstr "(dùng nội bộ cho git-rebase)"
-#: builtin/am.c:2354
+#: builtin/am.c:2340
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."
@@ -2738,16 +2791,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:2361
+#: builtin/am.c:2347
msgid "failed to read the index"
msgstr "gặp lá»—i Ä‘á»c bảng mục lục"
-#: builtin/am.c:2376
+#: builtin/am.c:2362
#, 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:2400
+#: builtin/am.c:2386
#, c-format
msgid ""
"Stray %s directory found.\n"
@@ -2756,7 +2809,7 @@ 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:2406
+#: builtin/am.c:2392
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."
@@ -3101,135 +3154,135 @@ msgstr "không thừa nhận đầu vào"
msgid "unable to read index file"
msgstr "không thể Ä‘á»c tập tin lÆ°u bảng mục lục"
-#: builtin/apply.c:4517
+#: builtin/apply.c:4507
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"
-#: builtin/apply.c:4520
+#: builtin/apply.c:4510
msgid "apply changes matching the given path"
msgstr "áp dụng các thay đổi khá»›p vá»›i Ä‘Æ°á»ng dẫn đã cho"
-#: builtin/apply.c:4523
+#: builtin/apply.c:4513
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"
-#: builtin/apply.c:4526
+#: builtin/apply.c:4516
msgid "ignore additions made by the patch"
msgstr "lỠđi phần bổ xung được tạo ra bởi miếng vá"
-#: builtin/apply.c:4528
+#: builtin/apply.c:4518
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"
-#: builtin/apply.c:4532
+#: builtin/apply.c:4522
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"
-#: builtin/apply.c:4534
+#: builtin/apply.c:4524
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"
-#: builtin/apply.c:4536
+#: builtin/apply.c:4526
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"
-#: builtin/apply.c:4538
+#: builtin/apply.c:4528
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"
-#: builtin/apply.c:4540
+#: builtin/apply.c:4530
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"
-#: builtin/apply.c:4542
+#: builtin/apply.c:4532
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"
-#: builtin/apply.c:4544
+#: builtin/apply.c:4534
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)"
-#: builtin/apply.c:4546
+#: builtin/apply.c:4536
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"
-#: builtin/apply.c:4548
+#: builtin/apply.c:4538
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"
-#: builtin/apply.c:4550 builtin/checkout-index.c:198 builtin/ls-files.c:412
+#: builtin/apply.c:4541 builtin/checkout-index.c:169 builtin/ls-files.c:425
msgid "paths are separated with NUL character"
msgstr "các Ä‘Æ°á»ng dẫn bị ngăn cách bởi ký tá»± NULL"
-#: builtin/apply.c:4553
+#: builtin/apply.c:4543
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"
-#: builtin/apply.c:4555
+#: builtin/apply.c:4545
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"
-#: builtin/apply.c:4558 builtin/apply.c:4561
+#: builtin/apply.c:4548 builtin/apply.c:4551
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"
-#: builtin/apply.c:4564
+#: builtin/apply.c:4554
msgid "apply the patch in reverse"
msgstr "áp dụng miếng vá theo chiá»u ngược"
-#: builtin/apply.c:4566
+#: builtin/apply.c:4556
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"
-#: builtin/apply.c:4568
+#: builtin/apply.c:4558
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"
-#: builtin/apply.c:4570
+#: builtin/apply.c:4560
msgid "allow overlapping hunks"
msgstr "cho phép chồng khối nhớ"
-#: builtin/apply.c:4573
+#: builtin/apply.c:4563
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"
-#: builtin/apply.c:4576
+#: builtin/apply.c:4566
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"
-#: builtin/apply.c:4579
+#: builtin/apply.c:4569
msgid "prepend <root> to all filenames"
msgstr "treo thêm <root> vào tất cả các tên tập tin"
-#: builtin/apply.c:4601
+#: builtin/apply.c:4591
msgid "--3way outside a repository"
msgstr "--3way ở ngoài một kho chứa"
-#: builtin/apply.c:4609
+#: builtin/apply.c:4599
msgid "--index outside a repository"
msgstr "--index ở ngoài một kho chứa"
-#: builtin/apply.c:4612
+#: builtin/apply.c:4602
msgid "--cached outside a repository"
msgstr "--cached ở ngoài một kho chứa"
-#: builtin/apply.c:4631
+#: builtin/apply.c:4621
#, c-format
msgid "can't open patch '%s'"
msgstr "không thể mở miếng vá “%sâ€"
-#: builtin/apply.c:4645
+#: builtin/apply.c:4635
#, 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"
-#: builtin/apply.c:4651 builtin/apply.c:4661
+#: builtin/apply.c:4641 builtin/apply.c:4651
#, c-format
msgid "%d line adds whitespace errors."
msgid_plural "%d lines add whitespace errors."
@@ -3283,105 +3336,113 @@ msgid "update BISECT_HEAD instead of checking out the current commit"
msgstr ""
"cập nhật BISECT_HEAD thay vì lấy ra (checking out) lần chuyển giao hiện hành"
-#: builtin/blame.c:32
+#: builtin/blame.c:33
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:38
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:2519
+#: builtin/blame.c:1782
+msgid "Blaming lines"
+msgstr "Các dòng blame"
+
+#: builtin/blame.c:2530
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:2520
+#: builtin/blame.c:2531
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:2521
+#: builtin/blame.c:2532
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:2522
+#: builtin/blame.c:2533
msgid "Show work cost statistics"
msgstr "Hiển thị thống kê công sức làm việc"
-#: builtin/blame.c:2523
+#: builtin/blame.c:2534
+msgid "Force progress reporting"
+msgstr "Ép buộc báo cáo tiến triển công việc"
+
+#: builtin/blame.c:2535
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:2524
+#: builtin/blame.c:2536
msgid "Show original filename (Default: auto)"
msgstr "Hiển thị tên tập tin gốc (Mặc định: auto)"
-#: builtin/blame.c:2525
+#: builtin/blame.c:2537
msgid "Show original linenumber (Default: off)"
msgstr "Hiển thị số dòng gốc (Mặc định: off)"
-#: builtin/blame.c:2526
+#: builtin/blame.c:2538
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:2527
+#: builtin/blame.c:2539
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:2528
+#: builtin/blame.c:2540
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:2529
+#: builtin/blame.c:2541
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:2530
+#: builtin/blame.c:2542
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:2531
+#: builtin/blame.c:2543
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:2532
+#: builtin/blame.c:2544
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:2533
+#: builtin/blame.c:2545
msgid "Ignore whitespace differences"
msgstr "BỠqua các khác biệt do khoảng trắng gây ra"
-#: builtin/blame.c:2534
+#: builtin/blame.c:2546
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:2535
+#: builtin/blame.c:2547
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:2536
+#: builtin/blame.c:2548
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:2537 builtin/blame.c:2538
+#: builtin/blame.c:2549 builtin/blame.c:2550
msgid "score"
msgstr "điểm số"
-#: builtin/blame.c:2537
+#: builtin/blame.c:2549
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:2538
+#: builtin/blame.c:2550
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:2539
+#: builtin/blame.c:2551
msgid "n,m"
msgstr "n,m"
-#: builtin/blame.c:2539
+#: builtin/blame.c:2551
msgid "Process only line range n,m, counting from 1"
msgstr "Xử lý chỉ dòng vùng n,m, tính từ 1"
@@ -3391,7 +3452,7 @@ msgstr "Xử lý chỉ dòng vùng n,m, tính từ 1"
#. takes 22 places, is the longest among various forms of
#. relative timestamps, but your language may need more or
#. fewer display columns.
-#: builtin/blame.c:2620
+#: builtin/blame.c:2640
msgid "4 years, 11 months ago"
msgstr "4 năm, 11 tháng trước"
@@ -3589,156 +3650,156 @@ msgstr "Nhánh bị đổi tên thành %s, nhÆ°ng HEAD lại không được cáº
msgid "Branch is renamed, but update of config-file failed"
msgstr "Nhánh bị đổi tên, nhưng cập nhật tập tin cấu hình gặp lỗi"
-#: builtin/branch.c:587
+#: builtin/branch.c:586
#, c-format
msgid "could not write branch description template: %s"
msgstr "không thể ghi vào mẫu mô tả nhánh: %s"
-#: builtin/branch.c:616
+#: builtin/branch.c:615
msgid "Generic options"
msgstr "Tùy chá»n chung"
-#: builtin/branch.c:618
+#: builtin/branch.c:617
msgid "show hash and subject, give twice for upstream branch"
msgstr "hiển thị mã băm và chủ Ä‘á», Ä‘Æ°a ra hai lần cho nhánh thượng nguồn"
-#: builtin/branch.c:619
+#: builtin/branch.c:618
msgid "suppress informational messages"
msgstr "không xuất các thông tin"
-#: builtin/branch.c:620
+#: builtin/branch.c:619
msgid "set up tracking mode (see git-pull(1))"
msgstr "cài đặt chế độ theo dõi (xem git-pull(1))"
-#: builtin/branch.c:622
+#: builtin/branch.c:621
msgid "change upstream info"
msgstr "thay đổi thông tin thượng nguồn"
-#: builtin/branch.c:626
+#: builtin/branch.c:625
msgid "use colored output"
msgstr "tô màu kết xuất"
-#: builtin/branch.c:627
+#: builtin/branch.c:626
msgid "act on remote-tracking branches"
msgstr "thao tác trên nhánh “remote-trackingâ€"
-#: builtin/branch.c:629 builtin/branch.c:630
+#: builtin/branch.c:628 builtin/branch.c:629
msgid "print only branches that contain the commit"
msgstr "chỉ hiển thị những nhánh mà nó chứa lần chuyển giao"
-#: builtin/branch.c:633
+#: builtin/branch.c:632
msgid "Specific git-branch actions:"
msgstr "Hành động git-branch:"
-#: builtin/branch.c:634
+#: builtin/branch.c:633
msgid "list both remote-tracking and local branches"
msgstr "liệt kê cả nhánh “remote-tracking†và nội bộ"
-#: builtin/branch.c:636
+#: builtin/branch.c:635
msgid "delete fully merged branch"
msgstr "xóa một toàn bộ nhánh đã hòa trộn"
-#: builtin/branch.c:637
+#: builtin/branch.c:636
msgid "delete branch (even if not merged)"
msgstr "xóa nhánh (cho dù là chưa được hòa trộn)"
-#: builtin/branch.c:638
+#: builtin/branch.c:637
msgid "move/rename a branch and its reflog"
msgstr "di chuyển hay đổi tên một nhánh và reflog của nó"
-#: builtin/branch.c:639
+#: builtin/branch.c:638
msgid "move/rename a branch, even if target exists"
msgstr "di chuyển hoặc đổi tên một nhánh ngay cả khi đích đã có sẵn"
-#: builtin/branch.c:640
+#: builtin/branch.c:639
msgid "list branch names"
msgstr "liệt kê các tên nhánh"
-#: builtin/branch.c:641
+#: builtin/branch.c:640
msgid "create the branch's reflog"
msgstr "tạo reflog của nhánh"
-#: builtin/branch.c:643
+#: builtin/branch.c:642
msgid "edit the description for the branch"
msgstr "sửa mô tả cho nhánh"
-#: builtin/branch.c:644
+#: builtin/branch.c:643
msgid "force creation, move/rename, deletion"
msgstr "buộc tạo, di chuyển/đổi tên, xóa"
-#: builtin/branch.c:645
+#: builtin/branch.c:644
msgid "print only branches that are merged"
msgstr "chỉ hiển thị những nhánh mà nó được hòa trộn"
-#: builtin/branch.c:646
+#: builtin/branch.c:645
msgid "print only branches that are not merged"
msgstr "chỉ hiển thị những nhánh mà nó không được hòa trộn"
-#: builtin/branch.c:647
+#: builtin/branch.c:646
msgid "list branches in columns"
msgstr "liệt kê các nhánh trong các cột"
-#: builtin/branch.c:648 builtin/for-each-ref.c:38 builtin/tag.c:366
+#: builtin/branch.c:647 builtin/for-each-ref.c:38 builtin/tag.c:366
msgid "key"
msgstr "khóa"
-#: builtin/branch.c:649 builtin/for-each-ref.c:39 builtin/tag.c:367
+#: builtin/branch.c:648 builtin/for-each-ref.c:39 builtin/tag.c:367
msgid "field name to sort on"
msgstr "tên trÆ°á»ng cần sắp xếp"
-#: builtin/branch.c:651 builtin/for-each-ref.c:41 builtin/notes.c:398
-#: builtin/notes.c:401 builtin/notes.c:561 builtin/notes.c:564
+#: builtin/branch.c:650 builtin/for-each-ref.c:41 builtin/notes.c:401
+#: builtin/notes.c:404 builtin/notes.c:564 builtin/notes.c:567
#: builtin/tag.c:369
msgid "object"
msgstr "đối tượng"
-#: builtin/branch.c:652
+#: builtin/branch.c:651
msgid "print only branches of the object"
msgstr "chỉ hiển thị các nhánh của đối tượng"
-#: builtin/branch.c:670
+#: builtin/branch.c:669
msgid "Failed to resolve HEAD as a valid ref."
msgstr "Gặp lỗi khi phân giải HEAD như là một tham chiếu hợp lệ."
-#: builtin/branch.c:674 builtin/clone.c:697
+#: builtin/branch.c:673 builtin/clone.c:705
msgid "HEAD not found below refs/heads!"
msgstr "không tìm thấy HEAD ở dưới refs/heads!"
-#: builtin/branch.c:694
+#: builtin/branch.c:693
msgid "--column and --verbose are incompatible"
msgstr "tùy chá»n --column và --verbose xung khắc nhau"
-#: builtin/branch.c:705 builtin/branch.c:747
+#: builtin/branch.c:704 builtin/branch.c:746
msgid "branch name required"
msgstr "cần chỉ ra tên nhánh"
-#: builtin/branch.c:723
+#: builtin/branch.c:722
msgid "Cannot give description to detached HEAD"
msgstr "Không thể Ä‘Æ°a ra mô tả HEAD đã tách rá»i"
-#: builtin/branch.c:728
+#: builtin/branch.c:727
msgid "cannot edit description of more than one branch"
msgstr "không thể sá»­a mô tả cho nhiá»u hÆ¡n má»™t nhánh"
-#: builtin/branch.c:735
+#: builtin/branch.c:734
#, c-format
msgid "No commit on branch '%s' yet."
msgstr "Vẫn chÆ°a chuyển giao trên nhánh “%sâ€."
-#: builtin/branch.c:738
+#: builtin/branch.c:737
#, c-format
msgid "No branch named '%s'."
msgstr "Không có nhánh nào có tên “%sâ€."
-#: builtin/branch.c:753
+#: builtin/branch.c:752
msgid "too many branches for a rename operation"
msgstr "quá nhiá»u nhánh dành cho thao tác đổi tên"
-#: builtin/branch.c:758
+#: builtin/branch.c:757
msgid "too many branches to set new upstream"
msgstr "quá nhiá»u nhánh được đặt cho thượng nguồn má»›i"
-#: builtin/branch.c:762
+#: builtin/branch.c:761
#, c-format
msgid ""
"could not set upstream of HEAD to %s when it does not point to any branch."
@@ -3746,40 +3807,40 @@ msgstr ""
"không thể đặt thượng nguồn của HEAD thành %s khi mà nó chẳng chỉ đến nhánh "
"nào cả."
-#: builtin/branch.c:765 builtin/branch.c:787 builtin/branch.c:808
+#: builtin/branch.c:764 builtin/branch.c:786 builtin/branch.c:807
#, c-format
msgid "no such branch '%s'"
msgstr "không có nhánh nào nhÆ° thế “%sâ€"
-#: builtin/branch.c:769
+#: builtin/branch.c:768
#, c-format
msgid "branch '%s' does not exist"
msgstr "chÆ°a có nhánh “%sâ€"
-#: builtin/branch.c:781
+#: builtin/branch.c:780
msgid "too many branches to unset upstream"
msgstr "quá nhiá»u nhánh để bỠđặt thượng nguồn"
-#: builtin/branch.c:785
+#: builtin/branch.c:784
msgid "could not unset upstream of HEAD when it does not point to any branch."
msgstr "không thể bỠđặt thượng nguồn của HEAD không chỉ đến một nhánh nào cả."
-#: builtin/branch.c:791
+#: builtin/branch.c:790
#, c-format
msgid "Branch '%s' has no upstream information"
msgstr "Nhánh “%s†không có thông tin thượng nguồn"
-#: builtin/branch.c:805
+#: builtin/branch.c:804
msgid "it does not make sense to create 'HEAD' manually"
msgstr "không hợp lý khi tạo “HEAD†thủ công"
-#: builtin/branch.c:811
+#: builtin/branch.c:810
msgid "-a and -r options to 'git branch' do not make sense with a branch name"
msgstr ""
"hai tùy chá»n -a và -r áp dụng cho lệnh “git branch†không hợp lý đối vá»›i tên "
"nhánh"
-#: builtin/branch.c:814
+#: builtin/branch.c:813
#, c-format
msgid ""
"The --set-upstream flag is deprecated and will be removed. Consider using --"
@@ -3788,7 +3849,7 @@ msgstr ""
"Cá» --set-upstream đã lạc hậu và sẽ bị xóa bá». Nên dùng --track hoặc --set-"
"upstream-to\n"
-#: builtin/branch.c:831
+#: builtin/branch.c:830
#, c-format
msgid ""
"\n"
@@ -3799,12 +3860,12 @@ msgstr ""
"Nếu bạn muốn “%s†theo dõi “%sâ€, thá»±c hiện lệnh sau:\n"
"\n"
-#: builtin/branch.c:832
+#: builtin/branch.c:831
#, c-format
msgid " git branch -d %s\n"
msgstr " git branch -d %s\n"
-#: builtin/branch.c:833
+#: builtin/branch.c:832
#, c-format
msgid " git branch --set-upstream-to %s\n"
msgstr " git branch --set-upstream-to %s\n"
@@ -3899,7 +3960,7 @@ msgstr "báo cáo tất cả các thuộc tính đặt trên tập tin"
msgid "use .gitattributes only from the index"
msgstr "chỉ dùng .gitattributes từ bảng mục lục"
-#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:96
+#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:97
msgid "read file names from stdin"
msgstr "Ä‘á»c tên tập tin từ đầu vào tiêu chuẩn"
@@ -3907,7 +3968,7 @@ 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:18 builtin/checkout.c:1134 builtin/gc.c:325
+#: builtin/check-ignore.c:18 builtin/checkout.c:1136 builtin/gc.c:325
msgid "suppress progress reporting"
msgstr "chặn các báo cáo tiến trình hoạt động"
@@ -3960,50 +4021,54 @@ msgstr "không thể phân tích danh bạ: “%sâ€"
msgid "no contacts specified"
msgstr "chưa chỉ ra danh bạ"
-#: builtin/checkout-index.c:126
+#: builtin/checkout-index.c:127
msgid "git checkout-index [<options>] [--] [<file>...]"
msgstr "git checkout-index [<các-tùy-chá»n>] [--] [<tập-tin>…]"
-#: builtin/checkout-index.c:188
+#: builtin/checkout-index.c:144
+msgid "stage should be between 1 and 3 or all"
+msgstr "stage nên giữa 1 và 3 hay all"
+
+#: builtin/checkout-index.c:160
msgid "check out all files in the index"
msgstr "lấy ra toàn bộ các tập tin trong bảng mục lục"
-#: builtin/checkout-index.c:189
+#: builtin/checkout-index.c:161
msgid "force overwrite of existing files"
msgstr "ép buộc ghi đè lên tập tin đã sẵn có từ trước"
-#: builtin/checkout-index.c:191
+#: builtin/checkout-index.c:163
msgid "no warning for existing files and files not in index"
msgstr ""
"không cảnh báo cho những tập tin tồn tại và không có trong bảng mục lục"
-#: builtin/checkout-index.c:193
+#: builtin/checkout-index.c:165
msgid "don't checkout new files"
msgstr "không checkout các tập tin mới"
-#: builtin/checkout-index.c:195
+#: builtin/checkout-index.c:167
msgid "update stat information in the index file"
msgstr "cập nhật thông tin thống kê trong tập tin lưu bảng mục lục mới"
-#: builtin/checkout-index.c:201
+#: builtin/checkout-index.c:171
msgid "read list of paths from the standard input"
msgstr "Ä‘á»c danh sách Ä‘Æ°á»ng dẫn từ đầu vào tiêu chuẩn"
-#: builtin/checkout-index.c:203
+#: builtin/checkout-index.c:173
msgid "write the content to temporary files"
msgstr "ghi nội dung vào tập tin tạm"
-#: builtin/checkout-index.c:204 builtin/column.c:30
+#: builtin/checkout-index.c:174 builtin/column.c:30
+#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
#: builtin/submodule--helper.c:172 builtin/submodule--helper.c:175
-#: builtin/submodule--helper.c:178 builtin/submodule--helper.c:181
msgid "string"
msgstr "chuá»—i"
-#: builtin/checkout-index.c:205
+#: builtin/checkout-index.c:175
msgid "when creating files, prepend <string>"
msgstr "khi tạo các tập tin, nối thêm <chuỗi>"
-#: builtin/checkout-index.c:208
+#: builtin/checkout-index.c:177
msgid "copy out the files from named stage"
msgstr "sao chép ra các tập tin từ bệ phóng có tên"
@@ -4084,37 +4149,37 @@ 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:668
+#: builtin/checkout.c:669
#, c-format
msgid "Reset branch '%s'\n"
msgstr "Äặt lại nhánh “%sâ€\n"
-#: builtin/checkout.c:671
+#: builtin/checkout.c:672
#, c-format
msgid "Already on '%s'\n"
msgstr "Äã sẵn sàng trên “%sâ€\n"
-#: builtin/checkout.c:675
+#: builtin/checkout.c:676
#, c-format
msgid "Switched to and reset branch '%s'\n"
msgstr "Äã chuyển tá»›i và đặt lại nhánh “%sâ€\n"
-#: builtin/checkout.c:677 builtin/checkout.c:1066
+#: builtin/checkout.c:678 builtin/checkout.c:1068
#, c-format
msgid "Switched to a new branch '%s'\n"
msgstr "Äã chuyển đến nhánh má»›i “%sâ€\n"
-#: builtin/checkout.c:679
+#: builtin/checkout.c:680
#, c-format
msgid "Switched to branch '%s'\n"
msgstr "Äã chuyển đến nhánh “%sâ€\n"
-#: builtin/checkout.c:731
+#: builtin/checkout.c:732
#, c-format
msgid " ... and %d more.\n"
msgstr " … và nhiá»u hÆ¡n %d.\n"
-#: builtin/checkout.c:737
+#: builtin/checkout.c:738
#, c-format
msgid ""
"Warning: you are leaving %d commit behind, not connected to\n"
@@ -4133,7 +4198,7 @@ msgstr[0] ""
"\n"
"%s\n"
-#: builtin/checkout.c:756
+#: builtin/checkout.c:757
#, c-format
msgid ""
"If you want to keep it by creating a new branch, this may be a good time\n"
@@ -4154,152 +4219,152 @@ msgstr[0] ""
" git branch <tên_nhánh_mới> %s\n"
"\n"
-#: builtin/checkout.c:792
+#: builtin/checkout.c:793
msgid "internal error in revision walk"
msgstr "lỗi nội bộ trong khi di chuyển qua các điểm xét duyệt"
-#: builtin/checkout.c:796
+#: builtin/checkout.c:797
msgid "Previous HEAD position was"
msgstr "Vị trí trước kia của HEAD là"
-#: builtin/checkout.c:823 builtin/checkout.c:1061
+#: builtin/checkout.c:824 builtin/checkout.c:1063
msgid "You are on a branch yet to be born"
msgstr "Bạn tại nhánh mà nó chưa hỠđược sinh ra"
-#: builtin/checkout.c:968
+#: builtin/checkout.c:969
#, c-format
msgid "only one reference expected, %d given."
msgstr "chỉ cần một tham chiếu, nhưng lại đưa ra %d."
-#: builtin/checkout.c:1007 builtin/worktree.c:213
+#: builtin/checkout.c:1009 builtin/worktree.c:211
#, c-format
msgid "invalid reference: %s"
msgstr "tham chiếu không hợp lệ: %s"
-#: builtin/checkout.c:1036
+#: builtin/checkout.c:1038
#, c-format
msgid "reference is not a tree: %s"
msgstr "tham chiếu không phải là một cây:%s"
-#: builtin/checkout.c:1075
+#: builtin/checkout.c:1077
msgid "paths cannot be used with switching branches"
msgstr "các Ä‘Æ°á»ng dẫn không thể dùng cùng vá»›i các nhánh chuyển"
-#: builtin/checkout.c:1078 builtin/checkout.c:1082
+#: builtin/checkout.c:1080 builtin/checkout.c:1084
#, c-format
msgid "'%s' cannot be used with switching branches"
msgstr "“%s†không thể được sử dụng với các nhánh chuyển"
-#: builtin/checkout.c:1086 builtin/checkout.c:1089 builtin/checkout.c:1094
-#: builtin/checkout.c:1097
+#: builtin/checkout.c:1088 builtin/checkout.c:1091 builtin/checkout.c:1096
+#: builtin/checkout.c:1099
#, c-format
msgid "'%s' cannot be used with '%s'"
msgstr "“%s†không thể được dùng vá»›i “%sâ€"
-#: builtin/checkout.c:1102
+#: builtin/checkout.c:1104
#, c-format
msgid "Cannot switch branch to a non-commit '%s'"
msgstr "Không thể chuyển nhánh đến má»™t thứ không phải là lần chuyển giao “%sâ€"
-#: builtin/checkout.c:1135 builtin/checkout.c:1137 builtin/clone.c:83
-#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:320
-#: builtin/worktree.c:322
+#: builtin/checkout.c:1137 builtin/checkout.c:1139 builtin/clone.c:84
+#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:318
+#: builtin/worktree.c:320
msgid "branch"
msgstr "nhánh"
-#: builtin/checkout.c:1136
+#: builtin/checkout.c:1138
msgid "create and checkout a new branch"
msgstr "tạo và checkout một nhánh mới"
-#: builtin/checkout.c:1138
+#: builtin/checkout.c:1140
msgid "create/reset and checkout a branch"
msgstr "tạo/đặt_lại và checkout một nhánh"
-#: builtin/checkout.c:1139
+#: builtin/checkout.c:1141
msgid "create reflog for new branch"
msgstr "tạo reflog cho nhánh mới"
-#: builtin/checkout.c:1140
+#: builtin/checkout.c:1142
msgid "detach the HEAD at named commit"
msgstr "rá»i bá» HEAD tại lần chuyển giao danh nghÄ©a"
-#: builtin/checkout.c:1141
+#: builtin/checkout.c:1143
msgid "set upstream info for new branch"
msgstr "đặt thông tin thượng nguồn cho nhánh mới"
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
msgid "new-branch"
msgstr "nhánh-mới"
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
msgid "new unparented branch"
msgstr "nhánh không cha mới"
-#: builtin/checkout.c:1144
+#: builtin/checkout.c:1146
msgid "checkout our version for unmerged files"
msgstr ""
"lấy ra (checkout) phiên bản của chúng ta cho các tập tin chưa được hòa trộn"
-#: builtin/checkout.c:1146
+#: builtin/checkout.c:1148
msgid "checkout their version for unmerged files"
msgstr ""
"lấy ra (checkout) phiên bản của chúng hỠcho các tập tin chưa được hòa trộn"
-#: builtin/checkout.c:1148
+#: builtin/checkout.c:1150
msgid "force checkout (throw away local modifications)"
msgstr "ép buộc lấy ra (bỠđi những thay đổi nội bộ)"
-#: builtin/checkout.c:1149
+#: builtin/checkout.c:1151
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:1150 builtin/merge.c:227
+#: builtin/checkout.c:1152 builtin/merge.c:227
msgid "update ignored files (default)"
msgstr "cập nhật các tập tin bị bỠqua (mặc định)"
-#: builtin/checkout.c:1151 builtin/log.c:1263 parse-options.h:250
+#: builtin/checkout.c:1153 builtin/log.c:1269 parse-options.h:250
msgid "style"
msgstr "kiểu"
-#: builtin/checkout.c:1152
+#: builtin/checkout.c:1154
msgid "conflict style (merge or diff3)"
msgstr "xung đột kiểu (hòa trộn hoặc diff3)"
-#: builtin/checkout.c:1155
+#: builtin/checkout.c:1157
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"
-#: builtin/checkout.c:1157
+#: builtin/checkout.c:1159
msgid "second guess 'git checkout <no-such-branch>'"
msgstr "gợi ý thứ hai \"git checkout <không-nhánh-nào-như-vậy>\""
-#: builtin/checkout.c:1159
+#: builtin/checkout.c:1161
msgid "do not check if another worktree is holding the given ref"
msgstr "không kiểm tra nếu cây làm việc khác đang giữ tham chiếu đã cho"
-#: builtin/checkout.c:1160 builtin/clone.c:57 builtin/fetch.c:112
-#: builtin/merge.c:224 builtin/pull.c:109 builtin/push.c:560
+#: builtin/checkout.c:1162 builtin/clone.c:58 builtin/fetch.c:116
+#: builtin/merge.c:224 builtin/pull.c:113 builtin/push.c:526
#: builtin/send-pack.c:168
msgid "force progress reporting"
msgstr "ép buộc báo cáo tiến triển công việc"
-#: builtin/checkout.c:1191
+#: builtin/checkout.c:1193
msgid "-b, -B and --orphan are mutually exclusive"
msgstr "Các tùy chá»n -b, -B và --orphan loại từ lẫn nhau"
-#: builtin/checkout.c:1208
+#: builtin/checkout.c:1210
msgid "--track needs a branch name"
msgstr "--track cần tên một nhánh"
-#: builtin/checkout.c:1213
+#: builtin/checkout.c:1215
msgid "Missing branch name; try -b"
msgstr "Thiếu tên nhánh; hãy thử -b"
-#: builtin/checkout.c:1249
+#: builtin/checkout.c:1251
msgid "invalid path specification"
msgstr "Ä‘Æ°á»ng dẫn đã cho không hợp lệ"
-#: builtin/checkout.c:1256
+#: builtin/checkout.c:1258
#, c-format
msgid ""
"Cannot update paths and switch to branch '%s' at the same time.\n"
@@ -4309,12 +4374,12 @@ msgstr ""
"Bạn đã có ý định checkout “%s†cái mà không thể được phân giải như là lần "
"chuyển giao?"
-#: builtin/checkout.c:1261
+#: builtin/checkout.c:1263
#, c-format
msgid "git checkout: --detach does not take a path argument '%s'"
msgstr "git checkout: --detach không nhận má»™t đối số Ä‘Æ°á»ng dẫn “%sâ€"
-#: builtin/checkout.c:1265
+#: builtin/checkout.c:1267
msgid ""
"git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
"checking out of the index."
@@ -4353,7 +4418,7 @@ msgstr "Nên bỠqua kho chứa %s\n"
msgid "failed to remove %s"
msgstr "gặp lỗi khi gỡ bỠ%s"
-#: builtin/clean.c:315
+#: builtin/clean.c:291
msgid ""
"Prompt help:\n"
"1 - select a numbered item\n"
@@ -4365,7 +4430,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ả"
-#: builtin/clean.c:319
+#: builtin/clean.c:295
msgid ""
"Prompt help:\n"
"1 - select a single item\n"
@@ -4385,36 +4450,36 @@ msgstr ""
"* - chá»n tất\n"
" - (để trống) kết thúc việc chá»n"
-#: builtin/clean.c:535
+#: builtin/clean.c:511
#, c-format
msgid "Huh (%s)?"
msgstr "Hả (%s)?"
-#: builtin/clean.c:677
+#: builtin/clean.c:653
#, 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:714
+#: builtin/clean.c:690
#, 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:735
+#: builtin/clean.c:711
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:776
+#: builtin/clean.c:752
#, c-format
msgid "Remove %s [y/N]? "
msgstr "Xóa bỠ“%s†[y/N]? "
-#: builtin/clean.c:801
+#: builtin/clean.c:777
msgid "Bye."
msgstr "Tạm biệt."
-#: builtin/clean.c:809
+#: builtin/clean.c:785
msgid ""
"clean - start cleaning\n"
"filter by pattern - exclude items from deletion\n"
@@ -4432,61 +4497,61 @@ 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:836
+#: builtin/clean.c:812
msgid "*** Commands ***"
msgstr "*** Lệnh ***"
-#: builtin/clean.c:837
+#: builtin/clean.c:813
msgid "What now"
msgstr "GiỠthì sao"
-#: builtin/clean.c:845
+#: builtin/clean.c:821
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:862
+#: builtin/clean.c:838
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:893
+#: builtin/clean.c:869
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:895
+#: builtin/clean.c:871
msgid "force"
msgstr "ép buộc"
-#: builtin/clean.c:896
+#: builtin/clean.c:872
msgid "interactive cleaning"
msgstr "dá»n bằng kiểu tÆ°Æ¡ng tác"
-#: builtin/clean.c:898
+#: builtin/clean.c:874
msgid "remove whole directories"
msgstr "gỡ bỠtoàn bộ thư mục"
-#: builtin/clean.c:899 builtin/describe.c:407 builtin/grep.c:709
-#: builtin/ls-files.c:443 builtin/name-rev.c:307 builtin/show-ref.c:182
+#: builtin/clean.c:875 builtin/describe.c:407 builtin/grep.c:722
+#: builtin/ls-files.c:456 builtin/name-rev.c:307 builtin/show-ref.c:182
msgid "pattern"
msgstr "mẫu"
-#: builtin/clean.c:900
+#: builtin/clean.c:876
msgid "add <pattern> to ignore rules"
msgstr "thêm <mẫu> vào trong qui tắc bỠqua"
-#: builtin/clean.c:901
+#: builtin/clean.c:877
msgid "remove ignored files, too"
msgstr "đồng thá»i gỡ bá» cả các tập tin bị bá» qua"
-#: builtin/clean.c:903
+#: builtin/clean.c:879
msgid "remove only ignored files"
msgstr "chỉ gỡ bỠnhững tập tin bị bỠqua"
-#: builtin/clean.c:921
+#: builtin/clean.c:897
msgid "-x and -X cannot be used together"
msgstr "-x và -X không thể dùng cùng nhau"
-#: builtin/clean.c:925
+#: builtin/clean.c:901
msgid ""
"clean.requireForce set to true and neither -i, -n, nor -f given; refusing to "
"clean"
@@ -4494,7 +4559,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:928
+#: builtin/clean.c:904
msgid ""
"clean.requireForce defaults to true and neither -i, -n, nor -f given; "
"refusing to clean"
@@ -4506,145 +4571,153 @@ msgstr ""
msgid "git clone [<options>] [--] <repo> [<dir>]"
msgstr "git clone [<các-tùy-chá»n>] [--] <kho> [<t.mục>]"
-#: builtin/clone.c:59
+#: builtin/clone.c:60
msgid "don't create a checkout"
msgstr "không tạo một checkout"
-#: builtin/clone.c:60 builtin/clone.c:62 builtin/init-db.c:469
+#: builtin/clone.c:61 builtin/clone.c:63 builtin/init-db.c:469
msgid "create a bare repository"
msgstr "tạo kho thuần"
-#: builtin/clone.c:64
+#: builtin/clone.c:65
msgid "create a mirror repository (implies bare)"
msgstr "tạo kho bản sao (ý là kho thuần)"
-#: builtin/clone.c:66
+#: builtin/clone.c:67
msgid "to clone from a local repository"
msgstr "để nhân bản từ kho nội bộ"
-#: builtin/clone.c:68
+#: builtin/clone.c:69
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:70
+#: builtin/clone.c:71
msgid "setup as shared repository"
msgstr "cài đặt đây là kho chia sẻ"
-#: builtin/clone.c:72 builtin/clone.c:74
+#: builtin/clone.c:73 builtin/clone.c:75
msgid "initialize submodules in the clone"
msgstr "khởi tạo mô-đun-con trong bản sao"
-#: builtin/clone.c:75 builtin/init-db.c:466
+#: builtin/clone.c:76 builtin/init-db.c:466
msgid "template-directory"
msgstr "thư-mục-mẫu"
-#: builtin/clone.c:76 builtin/init-db.c:467
+#: builtin/clone.c:77 builtin/init-db.c:467
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:78 builtin/submodule--helper.c:179
+#: builtin/clone.c:79 builtin/submodule--helper.c:173
msgid "reference repository"
msgstr "kho tham chiếu"
-#: builtin/clone.c:80
+#: builtin/clone.c:81
msgid "use --reference only while cloning"
msgstr "chỉ dùng --reference khi nhân bản"
-#: builtin/clone.c:81 builtin/column.c:26 builtin/merge-file.c:44
+#: builtin/clone.c:82 builtin/column.c:26 builtin/merge-file.c:44
msgid "name"
msgstr "tên"
-#: builtin/clone.c:82
+#: builtin/clone.c:83
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:84
+#: builtin/clone.c:85
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:86
+#: builtin/clone.c:87
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:87 builtin/fetch.c:113 builtin/grep.c:654 builtin/pull.c:186
+#: builtin/clone.c:88 builtin/fetch.c:117 builtin/grep.c:665 builtin/pull.c:193
msgid "depth"
msgstr "độ-sâu"
-#: builtin/clone.c:88
+#: builtin/clone.c:89
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:90
+#: builtin/clone.c:91
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:91 builtin/init-db.c:475
+#: builtin/clone.c:92 builtin/init-db.c:475
msgid "gitdir"
msgstr "gitdir"
-#: builtin/clone.c:92 builtin/init-db.c:476
+#: builtin/clone.c:93 builtin/init-db.c:476
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:93
+#: builtin/clone.c:94
msgid "key=value"
msgstr "khóa=giá_trị"
-#: builtin/clone.c:94
+#: builtin/clone.c:95
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:300
+#: builtin/clone.c:96 builtin/fetch.c:131 builtin/push.c:536
+msgid "use IPv4 addresses only"
+msgstr "chỉ dùng địa chỉ IPv4"
+
+#: builtin/clone.c:98 builtin/fetch.c:133 builtin/push.c:538
+msgid "use IPv6 addresses only"
+msgstr "chỉ dùng địa chỉ IPv6"
+
+#: builtin/clone.c:305
#, 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ợ."
-#: builtin/clone.c:302
+#: builtin/clone.c:307
#, 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ộ."
-#: builtin/clone.c:307
+#: builtin/clone.c:312
#, c-format
msgid "reference repository '%s' is shallow"
msgstr "kho tham chiếu “%s†là nông"
-#: builtin/clone.c:310
+#: builtin/clone.c:315
#, c-format
msgid "reference repository '%s' is grafted"
msgstr "kho tham chiếu “%s†bị cấy ghép"
-#: builtin/clone.c:375 builtin/diff.c:84
+#: builtin/clone.c:380 builtin/diff.c:84
#, c-format
msgid "failed to stat '%s'"
msgstr "gặp lá»—i khi lấy thống kê vỠ“%sâ€"
-#: builtin/clone.c:377
+#: builtin/clone.c:382
#, 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:391
+#: builtin/clone.c:396
#, c-format
msgid "failed to stat %s\n"
msgstr "gặp lỗi khi lấy thông tin thống kê vỠ%s\n"
-#: builtin/clone.c:413
+#: builtin/clone.c:418
#, 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:417
+#: builtin/clone.c:422
#, 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:442 builtin/clone.c:626
+#: builtin/clone.c:447 builtin/clone.c:631
#, c-format
msgid "done.\n"
msgstr "hoàn tất.\n"
-#: builtin/clone.c:454
+#: builtin/clone.c:459
msgid ""
"Clone succeeded, but checkout failed.\n"
"You can inspect what was checked out with 'git status'\n"
@@ -4654,117 +4727,117 @@ 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 checkout -f HEADâ€\n"
-#: builtin/clone.c:531
+#: builtin/clone.c:536
#, 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:621
+#: builtin/clone.c:626
#, c-format
msgid "Checking connectivity... "
msgstr "Äang kiểm tra kết nối… "
-#: builtin/clone.c:624
+#: builtin/clone.c:629
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"
-#: builtin/clone.c:688
+#: builtin/clone.c:696
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:719
+#: builtin/clone.c:727
msgid "unable to checkout working tree"
msgstr "không thể lấy ra (checkout) cây làm việc"
-#: builtin/clone.c:808
+#: builtin/clone.c:816
msgid "cannot repack to clean up"
msgstr "không thể đóng gói để dá»n dẹp"
-#: builtin/clone.c:810
+#: builtin/clone.c:818
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:842
+#: builtin/clone.c:850
msgid "Too many arguments."
msgstr "Có quá nhiá»u đối số."
-#: builtin/clone.c:846
+#: builtin/clone.c:854
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:857
+#: builtin/clone.c:865
#, 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:860
+#: builtin/clone.c:868
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:873
+#: builtin/clone.c:881
#, c-format
msgid "repository '%s' does not exist"
msgstr "kho chứa “%s†chưa tồn tại"
-#: builtin/clone.c:879 builtin/fetch.c:1166
+#: builtin/clone.c:887 builtin/fetch.c:1174
#, 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:889
+#: builtin/clone.c:897
#, 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:899
+#: builtin/clone.c:907
#, 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:914 builtin/clone.c:925 builtin/submodule--helper.c:224
-#: builtin/worktree.c:221 builtin/worktree.c:248
+#: builtin/clone.c:922 builtin/clone.c:933 builtin/submodule--helper.c:218
+#: builtin/worktree.c:219 builtin/worktree.c:246
#, 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:917
+#: builtin/clone.c:925
#, 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:935
+#: builtin/clone.c:943
#, 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:937
+#: builtin/clone.c:945
#, c-format
msgid "Cloning into '%s'...\n"
msgstr "Äang nhân bản thành “%sâ€â€¦\n"
-#: builtin/clone.c:975
+#: builtin/clone.c:984
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:978
+#: builtin/clone.c:987
msgid "source repository is shallow, ignoring --local"
msgstr "kho nguồn là nông, nên bỠqua --local"
-#: builtin/clone.c:983
+#: builtin/clone.c:992
msgid "--local is ignored"
msgstr "--local bị lỠđi"
-#: builtin/clone.c:987
+#: builtin/clone.c:996
#, c-format
msgid "Don't know how to clone %s"
msgstr "Không biết làm cách nào để nhân bản (clone) %s"
-#: builtin/clone.c:1036 builtin/clone.c:1044
+#: builtin/clone.c:1045 builtin/clone.c:1053
#, 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:1047
+#: builtin/clone.c:1056
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."
@@ -4989,7 +5062,7 @@ msgstr ""
msgid "could not lookup commit %s"
msgstr "không thể tìm kiếm commit (lần chuyển giao) %s"
-#: builtin/commit.c:702 builtin/shortlog.c:273
+#: builtin/commit.c:702 builtin/shortlog.c:285
#, c-format
msgid "(reading log message from standard input)\n"
msgstr "(Ä‘ang Ä‘á»c thông Ä‘iệp nhật ký từ đầu vào tiêu chuẩn)\n"
@@ -5186,8 +5259,8 @@ msgstr "hiển thị trạng thái ở dạng súc tích"
msgid "show branch information"
msgstr "hiển thị thông tin nhánh"
-#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:546
-#: builtin/worktree.c:423
+#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:512
+#: builtin/worktree.c:430
msgid "machine-readable output"
msgstr "kết xuất dạng máy-có-thể-Ä‘á»c"
@@ -5279,8 +5352,8 @@ msgstr "ngày tháng"
msgid "override date for commit"
msgstr "ghi đè ngày tháng cho lần chuyển giao"
-#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:392
-#: builtin/notes.c:555 builtin/tag.c:349
+#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:395
+#: builtin/notes.c:558 builtin/tag.c:349
msgid "message"
msgstr "chú thích"
@@ -5317,7 +5390,7 @@ 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:1588 builtin/log.c:1215 builtin/revert.c:86
+#: builtin/commit.c:1588 builtin/log.c:1219 builtin/revert.c:86
msgid "add Signed-off-by:"
msgstr "(nên dùng) thêm dòng Signed-off-by:"
@@ -5341,7 +5414,7 @@ msgstr "làm thế nào để cắt bỠkhoảng trắng và #ghichú từ mẩ
msgid "include status in commit message template"
msgstr "bao gồm các trạng thái trong mẫu ghi chú chuyển giao"
-#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:156
+#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:160
#: builtin/revert.c:93
msgid "GPG sign commit"
msgstr "ký lần chuyển giao dùng GPG"
@@ -5435,139 +5508,145 @@ msgstr ""
"có bị đầy quá hay quota (hạn nghạch đĩa cứng) bị vượt quá,\n"
"và sau đó \"git reset HEAD\" để khắc phục."
-#: builtin/config.c:8
+#: builtin/config.c:9
msgid "git config [<options>]"
msgstr "git config [<các-tùy-chá»n>]"
-#: builtin/config.c:54
+#: builtin/config.c:56
msgid "Config file location"
msgstr "Vị trí tập tin cấu hình"
-#: builtin/config.c:55
+#: builtin/config.c:57
msgid "use global config file"
msgstr "dùng tập tin cấu hình toàn cục"
-#: builtin/config.c:56
+#: builtin/config.c:58
msgid "use system config file"
msgstr "sử dụng tập tin cấu hình hệ thống"
-#: builtin/config.c:57
+#: builtin/config.c:59
msgid "use repository config file"
msgstr "dùng tập tin cấu hình của kho"
-#: builtin/config.c:58
+#: builtin/config.c:60
msgid "use given config file"
msgstr "sử dụng tập tin cấu hình đã cho"
-#: builtin/config.c:59
+#: builtin/config.c:61
msgid "blob-id"
msgstr "blob-id"
-#: builtin/config.c:59
+#: builtin/config.c:61
msgid "read config from given blob object"
msgstr "Ä‘á»c cấu hình từ đối tượng blob đã cho"
-#: builtin/config.c:60
+#: builtin/config.c:62
msgid "Action"
msgstr "Hành động"
-#: builtin/config.c:61
+#: builtin/config.c:63
msgid "get value: name [value-regex]"
msgstr "lấy giá-trị: tên [value-regex]"
-#: builtin/config.c:62
+#: builtin/config.c:64
msgid "get all values: key [value-regex]"
msgstr "lấy tất cả giá-trị: khóa [value-regex]"
-#: builtin/config.c:63
+#: builtin/config.c:65
msgid "get values for regexp: name-regex [value-regex]"
msgstr "lấy giá trị cho regexp: name-regex [value-regex]"
-#: builtin/config.c:64
+#: builtin/config.c:66
msgid "get value specific for the URL: section[.var] URL"
msgstr "lấy đặc tả giá trị cho URL: phần[.biến] URL"
-#: builtin/config.c:65
+#: builtin/config.c:67
msgid "replace all matching variables: name value [value_regex]"
msgstr "thay thế tất cả các biến khớp mẫu: tên giá-trị [value_regex]"
-#: builtin/config.c:66
+#: builtin/config.c:68
msgid "add a new variable: name value"
msgstr "thêm biến mới: tên giá-trị"
-#: builtin/config.c:67
+#: builtin/config.c:69
msgid "remove a variable: name [value-regex]"
msgstr "gỡ bỠbiến: tên [value-regex]"
-#: builtin/config.c:68
+#: builtin/config.c:70
msgid "remove all matches: name [value-regex]"
msgstr "gỡ bá» má»i cái khá»›p: tên [value-regex]"
-#: builtin/config.c:69
+#: builtin/config.c:71
msgid "rename section: old-name new-name"
msgstr "đổi tên phần: tên-cũ tên-mới"
-#: builtin/config.c:70
+#: builtin/config.c:72
msgid "remove a section: name"
msgstr "gỡ bỠphần: tên"
-#: builtin/config.c:71
+#: builtin/config.c:73
msgid "list all"
msgstr "liệt kê tất"
-#: builtin/config.c:72
+#: builtin/config.c:74
msgid "open an editor"
msgstr "mở một trình biên soạn"
-#: builtin/config.c:73
+#: builtin/config.c:75
msgid "find the color configured: slot [default]"
msgstr "tìm cấu hình màu sắc: slot [mặc định]"
-#: builtin/config.c:74
+#: builtin/config.c:76
msgid "find the color setting: slot [stdout-is-tty]"
msgstr "tìm các cài đặt vỠmàu sắc: slot [stdout-là-tty]"
-#: builtin/config.c:75
+#: builtin/config.c:77
msgid "Type"
msgstr "Kiểu"
-#: builtin/config.c:76
+#: builtin/config.c:78
msgid "value is \"true\" or \"false\""
msgstr "giá trị là \"true\" hoặc \"false\""
-#: builtin/config.c:77
+#: builtin/config.c:79
msgid "value is decimal number"
msgstr "giá trị ở dạng số thập phân"
-#: builtin/config.c:78
+#: builtin/config.c:80
msgid "value is --bool or --int"
msgstr "giá trị là --bool hoặc --int"
-#: builtin/config.c:79
+#: builtin/config.c:81
msgid "value is a path (file or directory name)"
msgstr "giá trị là Ä‘Æ°á»ng dẫn (tên tập tin hay thÆ° mục)"
-#: builtin/config.c:80
+#: builtin/config.c:82
msgid "Other"
msgstr "Khác"
-#: builtin/config.c:81
+#: builtin/config.c:83
msgid "terminate values with NUL byte"
msgstr "chấm dứt giá trị với byte NUL"
-#: builtin/config.c:82
+#: builtin/config.c:84
msgid "show variable names only"
msgstr "chỉ hiển thị các tên biến"
-#: builtin/config.c:83
+#: builtin/config.c:85
msgid "respect include directives on lookup"
msgstr "tôn trá»ng kể cà các hÆ°á»›ng trong tìm kiếm"
-#: builtin/config.c:303
+#: builtin/config.c:86
+msgid "show origin of config (file, standard input, blob, command line)"
+msgstr ""
+"hiển thị nguyên gốc của cấu hình (tập tin, đầu vào tiêu chuẩn, blob, dòng "
+"lệnh)"
+
+#: builtin/config.c:328
msgid "unable to parse default color value"
msgstr "không thể phân tích giá trị màu mặc định"
-#: builtin/config.c:441
+#: builtin/config.c:469
#, c-format
msgid ""
"# This is Git's per-user configuration file.\n"
@@ -5582,7 +5661,7 @@ msgstr ""
"#\tname = %s\n"
"#\temail = %s\n"
-#: builtin/config.c:575
+#: builtin/config.c:611
#, c-format
msgid "cannot create configuration file %s"
msgstr "không thể tạo tập tin cấu hình “%sâ€"
@@ -5832,163 +5911,167 @@ msgstr "git fetch --multiple [<các-tùy-chá»n>] [(<kho> | <nhóm>)…]"
msgid "git fetch --all [<options>]"
msgstr "git fetch --all [<các-tùy-chá»n>]"
-#: builtin/fetch.c:90 builtin/pull.c:162
+#: builtin/fetch.c:92 builtin/pull.c:166
msgid "fetch from all remotes"
msgstr "lấy vỠtừ tất cả các máy chủ"
-#: builtin/fetch.c:92 builtin/pull.c:165
+#: builtin/fetch.c:94 builtin/pull.c:169
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:94 builtin/pull.c:168
+#: builtin/fetch.c:96 builtin/pull.c:172
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:95 builtin/pull.c:170
+#: builtin/fetch.c:97 builtin/pull.c:174
msgid "force overwrite of local branch"
msgstr "ép buộc ghi đè lên nhánh nội bộ"
-#: builtin/fetch.c:97
+#: builtin/fetch.c:99
msgid "fetch from multiple remotes"
msgstr "lấy từ nhiá»u máy chủ cùng lúc"
-#: builtin/fetch.c:99 builtin/pull.c:172
+#: builtin/fetch.c:101 builtin/pull.c:176
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:101
+#: builtin/fetch.c:103
msgid "do not fetch all tags (--no-tags)"
msgstr "không lấy tất cả các thẻ (--no-tags)"
-#: builtin/fetch.c:103 builtin/pull.c:175
+#: builtin/fetch.c:105
+msgid "number of submodules fetched in parallel"
+msgstr "số lượng mô-Ä‘un-con được lấy đồng thá»i"
+
+#: builtin/fetch.c:107 builtin/pull.c:179
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:104 builtin/pull.c:178
+#: builtin/fetch.c:108 builtin/pull.c:182
msgid "on-demand"
msgstr "khi-cần"
-#: builtin/fetch.c:105 builtin/pull.c:179
+#: builtin/fetch.c:109 builtin/pull.c:183
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:109 builtin/pull.c:184
+#: builtin/fetch.c:113 builtin/pull.c:191
msgid "keep downloaded pack"
msgstr "giữ lại gói đã tải vá»"
-#: builtin/fetch.c:111
+#: builtin/fetch.c:115
msgid "allow updating of HEAD ref"
msgstr "cho phép cập nhật th.chiếu HEAD"
-#: builtin/fetch.c:114 builtin/pull.c:187
+#: builtin/fetch.c:118 builtin/pull.c:194
msgid "deepen history of shallow clone"
msgstr "làm sâu hơn lịch sử của bản sao"
-#: builtin/fetch.c:116 builtin/pull.c:190
+#: builtin/fetch.c:120 builtin/pull.c:197
msgid "convert to a complete repository"
msgstr "chuyển đổi hoàn toàn sang kho git"
-#: builtin/fetch.c:118 builtin/log.c:1232
+#: builtin/fetch.c:122 builtin/log.c:1236
msgid "dir"
msgstr "tmục"
-#: builtin/fetch.c:119
+#: builtin/fetch.c:123
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:122
+#: builtin/fetch.c:126
msgid "default mode for recursion"
msgstr "chế độ mặc định cho đệ qui"
-#: builtin/fetch.c:124 builtin/pull.c:193
+#: builtin/fetch.c:128 builtin/pull.c:200
msgid "accept refs that update .git/shallow"
msgstr "chấp nhận tham chiếu cập nhật .git/shallow"
-#: builtin/fetch.c:125 builtin/pull.c:195
+#: builtin/fetch.c:129 builtin/pull.c:202
msgid "refmap"
msgstr "refmap"
-#: builtin/fetch.c:126 builtin/pull.c:196
+#: builtin/fetch.c:130 builtin/pull.c:203
msgid "specify fetch refmap"
msgstr "chỉ ra refmap cần lấy vá»"
-#: builtin/fetch.c:378
+#: builtin/fetch.c:386
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:458
+#: builtin/fetch.c:466
#, c-format
msgid "object %s not found"
msgstr "Không tìm thấy đối tượng %s"
-#: builtin/fetch.c:463
+#: builtin/fetch.c:471
msgid "[up to date]"
msgstr "[đã cập nhật]"
-#: builtin/fetch.c:477
+#: builtin/fetch.c:485
#, c-format
msgid "! %-*s %-*s -> %s (can't fetch in current branch)"
msgstr "! %-*s %-*s -> %s (không thể fetch (lấy) vỠnhánh hiện hành)"
-#: builtin/fetch.c:478 builtin/fetch.c:566
+#: builtin/fetch.c:486 builtin/fetch.c:574
msgid "[rejected]"
msgstr "[Bị từ chối]"
-#: builtin/fetch.c:489
+#: builtin/fetch.c:497
msgid "[tag update]"
msgstr "[cập nhật thẻ]"
-#: builtin/fetch.c:491 builtin/fetch.c:526 builtin/fetch.c:544
+#: builtin/fetch.c:499 builtin/fetch.c:534 builtin/fetch.c:552
msgid " (unable to update local ref)"
msgstr " (không thể cập nhật tham chiếu nội bộ)"
-#: builtin/fetch.c:509
+#: builtin/fetch.c:517
msgid "[new tag]"
msgstr "[thẻ mới]"
-#: builtin/fetch.c:512
+#: builtin/fetch.c:520
msgid "[new branch]"
msgstr "[nhánh mới]"
-#: builtin/fetch.c:515
+#: builtin/fetch.c:523
msgid "[new ref]"
msgstr "[ref (tham chiếu) mới]"
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
msgid "unable to update local ref"
msgstr "không thể cập nhật tham chiếu nội bộ"
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
msgid "forced update"
msgstr "cưỡng bức cập nhật"
-#: builtin/fetch.c:568
+#: builtin/fetch.c:576
msgid "(non-fast-forward)"
msgstr "(không-chuyển-tiếp-nhanh)"
-#: builtin/fetch.c:602 builtin/fetch.c:843
+#: builtin/fetch.c:610 builtin/fetch.c:851
#, c-format
msgid "cannot open %s: %s\n"
msgstr "không thể mở %s: %s\n"
-#: builtin/fetch.c:611
+#: builtin/fetch.c:619
#, 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:629
+#: builtin/fetch.c:637
#, 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:716 builtin/fetch.c:808
+#: builtin/fetch.c:724 builtin/fetch.c:816
#, c-format
msgid "From %.*s\n"
msgstr "Từ %.*s\n"
-#: builtin/fetch.c:727
+#: builtin/fetch.c:735
#, c-format
msgid ""
"some local refs could not be updated; try running\n"
@@ -5997,57 +6080,57 @@ 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:779
+#: builtin/fetch.c:787
#, 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:780
+#: builtin/fetch.c:788
#, c-format
msgid " (%s has become dangling)"
msgstr " (%s đã trở thành không đầu (không được quản lý))"
-#: builtin/fetch.c:812
+#: builtin/fetch.c:820
msgid "[deleted]"
msgstr "[đã xóa]"
-#: builtin/fetch.c:813 builtin/remote.c:1040
+#: builtin/fetch.c:821 builtin/remote.c:1025
msgid "(none)"
msgstr "(không)"
-#: builtin/fetch.c:833
+#: builtin/fetch.c:841
#, 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:852
+#: builtin/fetch.c:860
#, 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:855
+#: builtin/fetch.c:863
#, 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:911
+#: builtin/fetch.c:920
#, c-format
msgid "Don't know how to fetch from %s"
msgstr "Không biết làm cách nào để lấy vỠtừ %s"
-#: builtin/fetch.c:1072
+#: builtin/fetch.c:1080
#, c-format
msgid "Fetching %s\n"
msgstr "Äang lấy “%s†vá»\n"
-#: builtin/fetch.c:1074 builtin/remote.c:96
+#: builtin/fetch.c:1082 builtin/remote.c:96
#, c-format
msgid "Could not fetch %s"
msgstr "không thể “%s†vá»"
-#: builtin/fetch.c:1092
+#: builtin/fetch.c:1100
msgid ""
"No remote repository specified. Please, specify either a URL or a\n"
"remote name from which new revisions should be fetched."
@@ -6055,32 +6138,32 @@ 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:1115
+#: builtin/fetch.c:1123
msgid "You need to specify a tag name."
msgstr "Bạn phải định rõ tên thẻ."
-#: builtin/fetch.c:1157
+#: builtin/fetch.c:1165
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:1159
+#: builtin/fetch.c:1167
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:1179
+#: builtin/fetch.c:1187
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:1181
+#: builtin/fetch.c:1189
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:1192
+#: builtin/fetch.c:1200
#, 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:1200
+#: builtin/fetch.c:1208
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ý"
@@ -6308,227 +6391,241 @@ msgstr ""
msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]"
msgstr "git grep [<các-tùy-chá»n>] [-e] <mẫu> [<rev>…] [[--] <Ä‘Æ°á»ng-dẫn>…]"
-#: builtin/grep.c:218
+#: builtin/grep.c:219
#, c-format
msgid "grep: failed to create thread: %s"
msgstr "grep: gặp lỗi tạo tuyến (thread): %s"
-#: builtin/grep.c:441 builtin/grep.c:476
+#: builtin/grep.c:277
+#, c-format
+msgid "invalid number of threads specified (%d) for %s"
+msgstr "số tuyến đã cho không hợp lệ (%d) cho %s"
+
+#: builtin/grep.c:452 builtin/grep.c:487
#, c-format
msgid "unable to read tree (%s)"
msgstr "không thể Ä‘á»c cây (%s)"
-#: builtin/grep.c:491
+#: builtin/grep.c:502
#, 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:547
+#: builtin/grep.c:558
#, 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:564
+#: builtin/grep.c:575
#, c-format
msgid "cannot open '%s'"
msgstr "không mở được “%sâ€"
-#: builtin/grep.c:633
+#: builtin/grep.c:644
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:635
+#: builtin/grep.c:646
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:637
+#: builtin/grep.c:648
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:639
+#: builtin/grep.c:650
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:642
+#: builtin/grep.c:653
msgid "show non-matching lines"
msgstr "hiển thị những dòng không khớp với mẫu"
-#: builtin/grep.c:644
+#: builtin/grep.c:655
msgid "case insensitive matching"
msgstr "phân biệt HOA/thÆ°á»ng"
-#: builtin/grep.c:646
+#: builtin/grep.c:657
msgid "match patterns only at word boundaries"
msgstr "chỉ khá»›p mẫu tại Ä‘Æ°á»ng ranh giá»›i từ"
-#: builtin/grep.c:648
+#: builtin/grep.c:659
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:650
+#: builtin/grep.c:661
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:653
+#: builtin/grep.c:664
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:655
+#: builtin/grep.c:666
msgid "descend at most <depth> levels"
msgstr "hạ xuống ít nhất là mức <sâu>"
-#: builtin/grep.c:659
+#: builtin/grep.c:670
msgid "use extended POSIX regular expressions"
msgstr "dùng biểu thức chính qui POSIX có mở rộng"
-#: builtin/grep.c:662
+#: builtin/grep.c:673
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:665
+#: builtin/grep.c:676
msgid "interpret patterns as fixed strings"
msgstr "diễn dịch các mẫu như là chuỗi cố định"
-#: builtin/grep.c:668
+#: builtin/grep.c:679
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:671
+#: builtin/grep.c:682
msgid "show line numbers"
msgstr "hiển thị số của dòng"
-#: builtin/grep.c:672
+#: builtin/grep.c:683
msgid "don't show filenames"
msgstr "không hiển thị tên tập tin"
-#: builtin/grep.c:673
+#: builtin/grep.c:684
msgid "show filenames"
msgstr "hiển thị các tên tập tin"
-#: builtin/grep.c:675
+#: builtin/grep.c:686
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:677
+#: builtin/grep.c:688
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:679
+#: builtin/grep.c:690
msgid "synonym for --files-with-matches"
msgstr "đồng nghĩa với --files-with-matches"
-#: builtin/grep.c:682
+#: builtin/grep.c:693
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:684
+#: builtin/grep.c:695
msgid "print NUL after filenames"
msgstr "thêm NUL vào sau tên tập tin"
-#: builtin/grep.c:686
+#: builtin/grep.c:697
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:687
+#: builtin/grep.c:698
msgid "highlight matches"
msgstr "tô sáng phần khớp mẫu"
-#: builtin/grep.c:689
+#: builtin/grep.c:700
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:691
+#: builtin/grep.c:702
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:694
+#: builtin/grep.c:705
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:697
+#: builtin/grep.c:708
msgid "show <n> context lines before matches"
msgstr "hiển thị <n> dòng nội dung trước khớp"
-#: builtin/grep.c:699
+#: builtin/grep.c:710
msgid "show <n> context lines after matches"
msgstr "hiển thị <n> dòng nội dung sau khớp"
-#: builtin/grep.c:700
+#: builtin/grep.c:712
+msgid "use <n> worker threads"
+msgstr "dùng <n> tuyến trình làm việc"
+
+#: builtin/grep.c:713
msgid "shortcut for -C NUM"
msgstr "dạng viết tắt của -C Sá»"
-#: builtin/grep.c:703
+#: builtin/grep.c:716
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:705
+#: builtin/grep.c:718
msgid "show the surrounding function"
msgstr "hiển thị hàm bao quanh"
-#: builtin/grep.c:708
+#: builtin/grep.c:721
msgid "read patterns from file"
msgstr "Ä‘á»c mẫu từ tập-tin"
-#: builtin/grep.c:710
+#: builtin/grep.c:723
msgid "match <pattern>"
msgstr "match <mẫu>"
-#: builtin/grep.c:712
+#: builtin/grep.c:725
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:724
+#: builtin/grep.c:737
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:726
+#: builtin/grep.c:739
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:728
+#: builtin/grep.c:741
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:732
+#: builtin/grep.c:745
msgid "pager"
msgstr "dàn trang"
-#: builtin/grep.c:732
+#: builtin/grep.c:745
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:735
+#: builtin/grep.c:748
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:793
+#: builtin/grep.c:811
msgid "no pattern given."
msgstr "chưa chỉ ra mẫu."
-#: builtin/grep.c:851
+#: builtin/grep.c:843 builtin/index-pack.c:1475
+#, c-format
+msgid "invalid number of threads specified (%d)"
+msgstr "số tuyến chỉ ra không hợp lệ (%d)"
+
+#: builtin/grep.c:873
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:877
+#: builtin/grep.c:899
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:882
+#: builtin/grep.c:904
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 các tùy chá»n liên "
"quan đến revs."
-#: builtin/grep.c:885
+#: builtin/grep.c:907
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:893
+#: builtin/grep.c:915
msgid "both --cached and trees are given."
msgstr "cả hai --cached và các cây phải được chỉ ra."
-#: builtin/hash-object.c:80
+#: builtin/hash-object.c:81
msgid ""
"git hash-object [-t <type>] [-w] [--path=<file> | --no-filters] [--stdin] "
"[--] <file>..."
@@ -6536,36 +6633,36 @@ msgstr ""
"git hash-object [-t <kiểu>] [-w] [--path=<tập-tin> | --no-filters] [--stdin] "
"[--] <tập-tin>…"
-#: builtin/hash-object.c:81
+#: builtin/hash-object.c:82
msgid "git hash-object --stdin-paths"
msgstr "git hash-object --stdin-paths"
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
msgid "type"
msgstr "kiểu"
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
msgid "object type"
msgstr "kiểu đối tượng"
-#: builtin/hash-object.c:93
+#: builtin/hash-object.c:94
msgid "write the object into the object database"
msgstr "ghi đối tượng vào dữ liệu đối tượng"
-#: builtin/hash-object.c:95
+#: builtin/hash-object.c:96
msgid "read the object from stdin"
msgstr "Ä‘á»c đối tượng từ đầu vào tiêu chuẩn stdin"
-#: builtin/hash-object.c:97
+#: builtin/hash-object.c:98
msgid "store file as is without filters"
msgstr "lÆ°u các tập tin mà nó không có các bá»™ lá»c"
-#: builtin/hash-object.c:98
+#: builtin/hash-object.c:99
msgid ""
"just hash any random garbage to create corrupt objects for debugging Git"
msgstr "chỉ cần băm rác ngẫu nhiên để tạo má»™t đối tượng há»ng để mà gỡ lá»—i Git"
-#: builtin/hash-object.c:99
+#: builtin/hash-object.c:100
msgid "process file as it were from this path"
msgstr "xử lý tập tin như là nó đang ở thư mục này"
@@ -6616,7 +6713,7 @@ msgstr "phiên bản của emacsclient “%d†quá cũ (< 22)."
msgid "failed to exec '%s': %s"
msgstr "gặp lá»—i khi thá»±c thi “%sâ€: %s"
-#: builtin/help.c:208
+#: builtin/help.c:205
#, c-format
msgid ""
"'%s': path for unsupported man viewer.\n"
@@ -6625,7 +6722,7 @@ msgstr ""
"“%sâ€: Ä‘Æ°á»ng dẫn không há»— trợ bá»™ trình chiếu man.\n"
"Hãy cân nhắc đến việc sử dụng “man.<tool>.cmd†để thay thế."
-#: builtin/help.c:220
+#: builtin/help.c:217
#, c-format
msgid ""
"'%s': cmd for supported man viewer.\n"
@@ -6634,61 +6731,61 @@ msgstr ""
"“%sâ€: cmd (lệnh) há»— trợ bá»™ trình chiếu man.\n"
"Hãy cân nhắc đến việc sử dụng “man.<tool>.path†để thay thế."
-#: builtin/help.c:337
+#: builtin/help.c:334
#, c-format
msgid "'%s': unknown man viewer."
msgstr "“%sâ€: không rõ chÆ°Æ¡ng trình xem man."
-#: builtin/help.c:354
+#: builtin/help.c:351
msgid "no man viewer handled the request"
msgstr "không có trình xem trợ giúp dạng manpage tiếp hợp với yêu cầu"
-#: builtin/help.c:362
+#: builtin/help.c:359
msgid "no info viewer handled the request"
msgstr "không có trình xem trợ giúp dạng info tiếp hợp với yêu cầu"
-#: builtin/help.c:411
+#: builtin/help.c:408
msgid "Defining attributes per path"
msgstr "Äịnh nghÄ©a các thuá»™c tính cho má»—i Ä‘Æ°á»ng dẫn"
-#: builtin/help.c:412
+#: builtin/help.c:409
msgid "Everyday Git With 20 Commands Or So"
msgstr "Má»—i ngày há»c 20 lệnh Git hay hÆ¡n"
-#: builtin/help.c:413
+#: builtin/help.c:410
msgid "A Git glossary"
msgstr "Thuật ngữ chuyên môn Git"
-#: builtin/help.c:414
+#: builtin/help.c:411
msgid "Specifies intentionally untracked files to ignore"
msgstr "Chỉ định các tập tin không cần theo dõi"
-#: builtin/help.c:415
+#: builtin/help.c:412
msgid "Defining submodule properties"
msgstr "Äịnh nghÄ©a thuá»™c tính mô-Ä‘un-con"
-#: builtin/help.c:416
+#: builtin/help.c:413
msgid "Specifying revisions and ranges for Git"
msgstr "Chỉ định điểm xét duyệt và vùng cho Git"
-#: builtin/help.c:417
+#: builtin/help.c:414
msgid "A tutorial introduction to Git (for version 1.5.1 or newer)"
msgstr "Hướng dẫn cách dùng Git ở mức cơ bản (bản 1.5.1 hay mới hơn)"
-#: builtin/help.c:418
+#: builtin/help.c:415
msgid "An overview of recommended workflows with Git"
msgstr "Tổng quan vỠluồng công việc khuyến nghị nên dùng với Git."
-#: builtin/help.c:430
+#: builtin/help.c:427
msgid "The common Git guides are:\n"
msgstr "Các chỉ dẫn chung vỠcách dùng Git là:\n"
-#: builtin/help.c:451 builtin/help.c:468
+#: builtin/help.c:448 builtin/help.c:465
#, c-format
msgid "usage: %s%s"
msgstr "cách dùng: %s%s"
-#: builtin/help.c:484
+#: builtin/help.c:481
#, c-format
msgid "`git %s' is aliased to `%s'"
msgstr "“git %s†được đặt bí danh thành “%sâ€"
@@ -6921,11 +7018,6 @@ msgstr "không thể lưu trữ tập tin ghi mục lục"
msgid "bad pack.indexversion=%<PRIu32>"
msgstr "sai pack.indexversion=%<PRIu32>"
-#: builtin/index-pack.c:1475
-#, c-format
-msgid "invalid number of threads specified (%d)"
-msgstr "số tuyến chỉ ra không hợp lệ (%d)"
-
#: builtin/index-pack.c:1479 builtin/index-pack.c:1663
#, c-format
msgid "no threads support, ignoring %s"
@@ -7098,24 +7190,32 @@ msgstr "không thể truy cập cây (tree) làm việc “%sâ€"
#: builtin/interpret-trailers.c:15
msgid ""
-"git interpret-trailers [--trim-empty] [(--trailer <token>[(=|:)<value>])...] "
-"[<file>...]"
+"git interpret-trailers [--in-place] [--trim-empty] [(--trailer "
+"<token>[(=|:)<value>])...] [<file>...]"
msgstr ""
-"git interpret-trailers [--trim-empty] [(--trailer <thẻ>[(=|:)<giá-trị>])…] "
-"[<tập-tin>…]"
+"git interpret-trailers [--in-place] [--trim-empty] [(--trailer "
+"<thẻ>[(=|:)<giá-trị>])…] [<tập-tin>…]"
-#: builtin/interpret-trailers.c:25
+#: builtin/interpret-trailers.c:26
+msgid "edit files in place"
+msgstr "sửa các tập tin tại chỗ"
+
+#: builtin/interpret-trailers.c:27
msgid "trim empty trailers"
msgstr "bộ dò vết cắt bỠphần trống rỗng"
-#: builtin/interpret-trailers.c:26
+#: builtin/interpret-trailers.c:28
msgid "trailer"
msgstr "bộ dò vết"
-#: builtin/interpret-trailers.c:27
+#: builtin/interpret-trailers.c:29
msgid "trailer(s) to add"
msgstr "bộ dò vết cần thêm"
+#: builtin/interpret-trailers.c:42
+msgid "no input file given for in-place editing"
+msgstr "không đưa ra tập tin đầu vào để sửa tại-chỗ"
+
#: builtin/log.c:43
msgid "git log [<options>] [<revision-range>] [[--] <path>...]"
msgstr "git log [<các-tùy-chá»n>] [<vùng-xem-xét>] [[--] <Ä‘Æ°á»ng-dẫn>…]"
@@ -7169,220 +7269,224 @@ msgstr "Không thể Ä‘á»c đối tượng %s"
msgid "Unknown type: %d"
msgstr "Không nhận ra kiểu: %d"
-#: builtin/log.c:714
+#: builtin/log.c:715
msgid "format.headers without value"
msgstr "format.headers không có giá trị cụ thể"
-#: builtin/log.c:798
+#: builtin/log.c:801
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:813
+#: builtin/log.c:816
#, c-format
msgid "Cannot open patch file %s"
msgstr "Không thể mở tập tin miếng vá: %s"
-#: builtin/log.c:827
+#: builtin/log.c:830
msgid "Need exactly one range."
msgstr "Cần chính xác một vùng."
-#: builtin/log.c:837
+#: builtin/log.c:840
msgid "Not a range."
msgstr "Không phải là một vùng."
-#: builtin/log.c:943
+#: builtin/log.c:946
msgid "Cover letter needs email format"
msgstr "“Cover letter†cần cho định dạng thư"
-#: builtin/log.c:1022
+#: builtin/log.c:1025
#, c-format
msgid "insane in-reply-to: %s"
msgstr "in-reply-to điên rồ: %s"
-#: builtin/log.c:1050
+#: builtin/log.c:1053
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:1095
+#: builtin/log.c:1098
msgid "Two output directories?"
msgstr "Hai thư mục kết xuất?"
-#: builtin/log.c:1210
+#: builtin/log.c:1214
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:1213
+#: builtin/log.c:1217
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:1217
+#: builtin/log.c:1221
msgid "print patches to standard out"
msgstr "hiển thị miếng vá ra đầu ra chuẩn"
-#: builtin/log.c:1219
+#: builtin/log.c:1223
msgid "generate a cover letter"
msgstr "tạo bì thư"
-#: builtin/log.c:1221
+#: builtin/log.c:1225
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:1222
+#: builtin/log.c:1226
msgid "sfx"
msgstr "sfx"
-#: builtin/log.c:1223
+#: builtin/log.c:1227
msgid "use <sfx> instead of '.patch'"
msgstr "sá»­ dụng <sfx> thay cho “.patchâ€"
-#: builtin/log.c:1225
+#: builtin/log.c:1229
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:1227
+#: builtin/log.c:1231
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:1229
+#: builtin/log.c:1233
msgid "Use [<prefix>] instead of [PATCH]"
msgstr "Dùng [<tiá»n-tố>] thay cho [VÃ]"
-#: builtin/log.c:1232
+#: builtin/log.c:1236
msgid "store resulting files in <dir>"
msgstr "lưu các tập tin kết quả trong <t.mục>"
-#: builtin/log.c:1235
+#: builtin/log.c:1239
msgid "don't strip/add [PATCH]"
msgstr "không strip/add [VÃ]"
-#: builtin/log.c:1238
+#: builtin/log.c:1242
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:1240
+#: builtin/log.c:1244
+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:1246
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:1242
+#: builtin/log.c:1248
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:1244
+#: builtin/log.c:1250
msgid "Messaging"
msgstr "Lá»i nhắn"
-#: builtin/log.c:1245
+#: builtin/log.c:1251
msgid "header"
msgstr "đầu đỠthư"
-#: builtin/log.c:1246
+#: builtin/log.c:1252
msgid "add email header"
msgstr "thêm đầu đỠthư"
-#: builtin/log.c:1247 builtin/log.c:1249
+#: builtin/log.c:1253 builtin/log.c:1255
msgid "email"
msgstr "thư điện tử"
-#: builtin/log.c:1247
+#: builtin/log.c:1253
msgid "add To: header"
msgstr "thêm To: đầu đỠthư"
-#: builtin/log.c:1249
+#: builtin/log.c:1255
msgid "add Cc: header"
msgstr "thêm Cc: đầu đỠthư"
-#: builtin/log.c:1251
+#: builtin/log.c:1257
msgid "ident"
msgstr "thụt lá»"
-#: builtin/log.c:1252
+#: builtin/log.c:1258
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:1254
+#: builtin/log.c:1260
msgid "message-id"
msgstr "message-id"
-#: builtin/log.c:1255
+#: builtin/log.c:1261
msgid "make first mail a reply to <message-id>"
msgstr "dùng thÆ° đầu tiên để trả lá»i <message-id>"
-#: builtin/log.c:1256 builtin/log.c:1259
+#: builtin/log.c:1262 builtin/log.c:1265
msgid "boundary"
msgstr "ranh giá»›i"
-#: builtin/log.c:1257
+#: builtin/log.c:1263
msgid "attach the patch"
msgstr "đính kèm miếng vá"
-#: builtin/log.c:1260
+#: builtin/log.c:1266
msgid "inline the patch"
msgstr "dùng miếng vá làm nội dung"
-#: builtin/log.c:1264
+#: builtin/log.c:1270
msgid "enable message threading, styles: shallow, deep"
msgstr "cho phép luồng lá»i nhắn, kiểu: “shallowâ€, “deepâ€"
-#: builtin/log.c:1266
+#: builtin/log.c:1272
msgid "signature"
msgstr "chữ ký"
-#: builtin/log.c:1267
+#: builtin/log.c:1273
msgid "add a signature"
msgstr "thêm chữ ký"
-#: builtin/log.c:1269
+#: builtin/log.c:1275
msgid "add a signature from a file"
msgstr "thêm chữ ký từ một tập tin"
-#: builtin/log.c:1270
+#: builtin/log.c:1276
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:1359
+#: builtin/log.c:1365
msgid "-n and -k are mutually exclusive."
msgstr "-n và -k loại từ lẫn nhau."
-#: builtin/log.c:1361
+#: builtin/log.c:1367
msgid "--subject-prefix and -k are mutually exclusive."
msgstr "--subject-prefix và -k xung khắc nhau."
-#: builtin/log.c:1369
+#: builtin/log.c:1375
msgid "--name-only does not make sense"
msgstr "--name-only không hợp lý"
-#: builtin/log.c:1371
+#: builtin/log.c:1377
msgid "--name-status does not make sense"
msgstr "--name-status không hợp lý"
-#: builtin/log.c:1373
+#: builtin/log.c:1379
msgid "--check does not make sense"
msgstr "--check không hợp lý"
-#: builtin/log.c:1396
+#: builtin/log.c:1407
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:1398
+#: builtin/log.c:1409
#, c-format
msgid "Could not create directory '%s'"
msgstr "Không thể tạo thÆ° mục “%sâ€"
-#: builtin/log.c:1495
+#: builtin/log.c:1506
#, c-format
msgid "unable to read signature file '%s'"
msgstr "không thể Ä‘á»c tập tin chữ ký “%sâ€"
-#: builtin/log.c:1558
+#: builtin/log.c:1569
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:1606
+#: builtin/log.c:1617
msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
msgstr "git cherry [-v] [<thượng-nguồn> [<đầu> [<giới-hạn>]]]"
-#: builtin/log.c:1660
+#: builtin/log.c:1671
#, c-format
msgid ""
"Could not find a tracked remote branch, please specify <upstream> manually.\n"
@@ -7390,106 +7494,156 @@ msgstr ""
"Không tìm thấy nhánh mạng được theo dõi, hãy chỉ định <thượng-nguồn> một "
"cách thủ công.\n"
-#: builtin/log.c:1671 builtin/log.c:1673 builtin/log.c:1685
+#: builtin/log.c:1682 builtin/log.c:1684 builtin/log.c:1696
#, c-format
msgid "Unknown commit %s"
msgstr "Không hiểu lần chuyển giao %s"
-#: builtin/ls-files.c:358
+#: builtin/ls-files.c:378
msgid "git ls-files [<options>] [<file>...]"
msgstr "git ls-files [<các-tùy-chá»n>] [<tập-tin>…]"
-#: builtin/ls-files.c:415
+#: builtin/ls-files.c:427
msgid "identify the file status with tags"
msgstr "nhận dạng các trạng thái tập tin với thẻ"
-#: builtin/ls-files.c:417
+#: builtin/ls-files.c:429
msgid "use lowercase letters for 'assume unchanged' files"
msgstr ""
"dùng chữ cái viết thÆ°á»ng cho các tập tin “assume unchanged†(giả định không "
"thay đổi)"
-#: builtin/ls-files.c:419
+#: builtin/ls-files.c:431
msgid "show cached files in the output (default)"
msgstr "hiển thị các tập tin được nhớ tạm vào đầu ra (mặc định)"
-#: builtin/ls-files.c:421
+#: builtin/ls-files.c:433
msgid "show deleted files in the output"
msgstr "hiển thị các tập tin đã xóa trong kết xuất"
-#: builtin/ls-files.c:423
+#: builtin/ls-files.c:435
msgid "show modified files in the output"
msgstr "hiển thị các tập tin đã bị sửa đổi ra kết xuất"
-#: builtin/ls-files.c:425
+#: builtin/ls-files.c:437
msgid "show other files in the output"
msgstr "hiển thị các tập tin khác trong kết xuất"
-#: builtin/ls-files.c:427
+#: builtin/ls-files.c:439
msgid "show ignored files in the output"
msgstr "hiển thị các tập tin bị bỠqua trong kết xuất"
-#: builtin/ls-files.c:430
+#: builtin/ls-files.c:442
msgid "show staged contents' object name in the output"
msgstr "hiển thị tên đối tượng của nội dung được đặt lên bệ phóng ra kết xuất"
-#: builtin/ls-files.c:432
+#: builtin/ls-files.c:444
msgid "show files on the filesystem that need to be removed"
msgstr "hiển thị các tập tin trên hệ thống tập tin mà nó cần được gỡ bá»"
-#: builtin/ls-files.c:434
+#: builtin/ls-files.c:446
msgid "show 'other' directories' names only"
msgstr "chỉ hiển thị tên của các thÆ° mục “khácâ€"
-#: builtin/ls-files.c:437
+#: builtin/ls-files.c:448
+msgid "show line endings of files"
+msgstr "hiển thị kết thúc dòng của các tập tin"
+
+#: builtin/ls-files.c:450
msgid "don't show empty directories"
msgstr "không hiển thị thư mục rỗng"
-#: builtin/ls-files.c:440
+#: builtin/ls-files.c:453
msgid "show unmerged files in the output"
msgstr "hiển thị các tập tin chưa hòa trộn trong kết xuất"
-#: builtin/ls-files.c:442
+#: builtin/ls-files.c:455
msgid "show resolve-undo information"
msgstr "hiển thị thông tin resolve-undo"
-#: builtin/ls-files.c:444
+#: builtin/ls-files.c:457
msgid "skip files matching pattern"
msgstr "bỠqua những tập tin khớp với một mẫu"
-#: builtin/ls-files.c:447
+#: builtin/ls-files.c:460
msgid "exclude patterns are read from <file>"
msgstr "mẫu loại trừ được Ä‘á»c từ <tập tin>"
-#: builtin/ls-files.c:450
+#: builtin/ls-files.c:463
msgid "read additional per-directory exclude patterns in <file>"
msgstr "Ä‘á»c thêm các mẫu ngoại trừ má»—i thÆ° mục trong <tập tin>"
-#: builtin/ls-files.c:452
+#: builtin/ls-files.c:465
msgid "add the standard git exclusions"
msgstr "thêm loại trừ tiêu chuẩn kiểu git"
-#: builtin/ls-files.c:455
+#: builtin/ls-files.c:468
msgid "make the output relative to the project top directory"
msgstr "làm cho kết xuất liên quan đến thư mục ở mức cao nhất (gốc) của dự án"
-#: builtin/ls-files.c:458
+#: builtin/ls-files.c:471
msgid "if any <file> is not in the index, treat this as an error"
msgstr "nếu <tập tin> bất kỳ không ở trong bảng mục lục, xử lý nó như một lỗi"
-#: builtin/ls-files.c:459
+#: builtin/ls-files.c:472
msgid "tree-ish"
msgstr "tree-ish"
-#: builtin/ls-files.c:460
+#: builtin/ls-files.c:473
msgid "pretend that paths removed since <tree-ish> are still present"
msgstr ""
"giả định rằng các Ä‘Æ°á»ng dẫn đã bị gỡ bá» kể từ <tree-ish> nay vẫn hiện diện"
-#: builtin/ls-files.c:462
+#: builtin/ls-files.c:475
msgid "show debugging data"
msgstr "hiển thị dữ liệu gỡ lỗi"
+#: builtin/ls-remote.c:7
+msgid ""
+"git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
+" [-q | --quiet] [--exit-code] [--get-url]\n"
+" [--symref] [<repository> [<refs>...]]"
+msgstr ""
+"git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
+" [-q | --quiet] [--exit-code] [--get-url]\n"
+" [--symref] [<kho> [<các tham chiếu>…]]"
+
+#: builtin/ls-remote.c:50
+msgid "do not print remote URL"
+msgstr "không hiển thị URL máy chủ"
+
+#: builtin/ls-remote.c:51 builtin/ls-remote.c:53
+msgid "exec"
+msgstr "thá»±c thi"
+
+#: builtin/ls-remote.c:52 builtin/ls-remote.c:54
+msgid "path of git-upload-pack on the remote host"
+msgstr "Ä‘Æ°á»ng dẫn của git-upload-pack trên máy chủ"
+
+#: builtin/ls-remote.c:56
+msgid "limit to tags"
+msgstr "giới hạn tới các thẻ"
+
+#: builtin/ls-remote.c:57
+msgid "limit to heads"
+msgstr "giới hạn cho các đầu"
+
+#: builtin/ls-remote.c:58
+msgid "do not show peeled tags"
+msgstr "không hiển thị thẻ bị peel (gá»t bá»)"
+
+#: builtin/ls-remote.c:60
+msgid "take url.<base>.insteadOf into account"
+msgstr "lấy url.<base>.insteadOf vào trong tài khoản"
+
+#: builtin/ls-remote.c:62
+msgid "exit with exit code 2 if no matching refs are found"
+msgstr "thoát với mã là 2 nếu không tìm thấy tham chiếu nào khớp"
+
+#: builtin/ls-remote.c:64
+msgid "show underlying ref in addition to the object pointed by it"
+msgstr "hiển thị tham chiếu nằm dưới để thêm vào đối tượng được chỉ bởi nó"
+
#: builtin/ls-tree.c:28
msgid "git ls-tree [<options>] <tree-ish> [<path>...]"
msgstr "git ls-tree [<các-tùy-chá»n>] <tree-ish> [<Ä‘Æ°á»ng-dẫn>…]"
@@ -7557,31 +7711,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:193 builtin/pull.c:119
+#: builtin/merge.c:193 builtin/pull.c:123
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:196 builtin/pull.c:122
+#: builtin/merge.c:196 builtin/pull.c:126
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:197 builtin/pull.c:125
+#: builtin/merge.c:197 builtin/pull.c:129
msgid "(synonym to --stat)"
msgstr "(đồng nghĩa với --stat)"
-#: builtin/merge.c:199 builtin/pull.c:128
+#: builtin/merge.c:199 builtin/pull.c:132
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:202 builtin/pull.c:131
+#: builtin/merge.c:202 builtin/pull.c:135
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:204 builtin/pull.c:134
+#: builtin/merge.c:204 builtin/pull.c:138
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:206 builtin/pull.c:137
+#: builtin/merge.c:206 builtin/pull.c:141
msgid "edit message before committing"
msgstr "sửa chú thích trước khi chuyển giao"
@@ -7589,7 +7743,7 @@ 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:209 builtin/pull.c:143
+#: builtin/merge.c:209 builtin/pull.c:147
msgid "abort if fast-forward is not possible"
msgstr "bỠqua nếu chuyển-tiếp-nhanh không thể được"
@@ -7597,20 +7751,20 @@ msgstr "bỠqua nếu chuyển-tiếp-nhanh không thể được"
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:214 builtin/notes.c:767 builtin/pull.c:148
+#: builtin/merge.c:214 builtin/notes.c:770 builtin/pull.c:152
#: builtin/revert.c:89
msgid "strategy"
msgstr "chiến lược"
-#: builtin/merge.c:215 builtin/pull.c:149
+#: builtin/merge.c:215 builtin/pull.c:153
msgid "merge strategy to use"
msgstr "chiến lược hòa trộn sẽ dùng"
-#: builtin/merge.c:216 builtin/pull.c:152
+#: builtin/merge.c:216 builtin/pull.c:156
msgid "option=value"
msgstr "tùy_chá»n=giá_trị"
-#: builtin/merge.c:217 builtin/pull.c:153
+#: builtin/merge.c:217 builtin/pull.c:157
msgid "option for selected merge strategy"
msgstr "tùy chá»n cho chiến lược hòa trá»™n đã chá»n"
@@ -7650,8 +7804,8 @@ msgstr " (không có gì để squash)"
msgid "Squash commit -- not updating HEAD\n"
msgstr "Squash commit -- không cập nhật HEAD\n"
-#: builtin/merge.c:344 builtin/merge.c:763 builtin/merge.c:975
-#: builtin/merge.c:988
+#: builtin/merge.c:344 builtin/merge.c:764 builtin/merge.c:976
+#: builtin/merge.c:989
#, c-format
msgid "Could not write to '%s'"
msgstr "Không thể ghi vào “%sâ€"
@@ -7669,43 +7823,43 @@ msgstr "Hoàn thành SQUASH_MSG"
msgid "No merge message -- not updating HEAD\n"
msgstr "Không có lá»i chú thích hòa trá»™n -- nên không cập nhật HEAD\n"
-#: builtin/merge.c:447
+#: builtin/merge.c:448
#, c-format
msgid "'%s' does not point to a commit"
msgstr "“%s†không chỉ đến một lần chuyển giao nào cả"
-#: builtin/merge.c:537
+#: builtin/merge.c:538
#, c-format
msgid "Bad branch.%s.mergeoptions string: %s"
msgstr "Chuá»—i branch.%s.mergeoptions sai: %s"
-#: builtin/merge.c:656
+#: builtin/merge.c:657
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:670
+#: builtin/merge.c:671
#, 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:683
+#: builtin/merge.c:684
#, c-format
msgid "unable to write %s"
msgstr "không thể ghi %s"
-#: builtin/merge.c:772
+#: builtin/merge.c:773
#, c-format
msgid "Could not read from '%s'"
msgstr "Không thể Ä‘á»c từ “%sâ€"
-#: builtin/merge.c:781
+#: builtin/merge.c:782
#, 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:787
+#: builtin/merge.c:788
#, c-format
msgid ""
"Please enter a commit message to explain why this merge is necessary,\n"
@@ -7723,55 +7877,55 @@ msgstr ""
"rá»—ng\n"
"sẽ hủy bỠlần chuyển giao.\n"
-#: builtin/merge.c:811
+#: builtin/merge.c:812
msgid "Empty commit message."
msgstr "Chú thích của lần commit (chuyển giao) bị trống rỗng."
-#: builtin/merge.c:823
+#: builtin/merge.c:824
#, c-format
msgid "Wonderful.\n"
msgstr "Tuyệt vá»i.\n"
-#: builtin/merge.c:878
+#: builtin/merge.c:879
#, 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:894
+#: builtin/merge.c:895
#, c-format
msgid "'%s' is not a commit"
msgstr "%s không phải là một lần commit (chuyển giao)"
-#: builtin/merge.c:935
+#: builtin/merge.c:936
msgid "No current branch."
msgstr "không phải nhánh hiện hành"
-#: builtin/merge.c:937
+#: builtin/merge.c:938
msgid "No remote for the current branch."
msgstr "Không có máy chủ cho nhánh hiện hành."
-#: builtin/merge.c:939
+#: builtin/merge.c:940
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:944
+#: builtin/merge.c:945
#, 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:1079
+#: builtin/merge.c:1080
#, c-format
msgid "could not close '%s'"
msgstr "không thể đóng “%sâ€"
-#: builtin/merge.c:1206
+#: builtin/merge.c:1207
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:1222
+#: builtin/merge.c:1223
msgid ""
"You have not concluded your merge (MERGE_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -7779,7 +7933,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:1229
+#: builtin/merge.c:1230
msgid ""
"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -7787,103 +7941,103 @@ 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:1232
+#: builtin/merge.c:1233
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:1241
+#: builtin/merge.c:1242
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:1249
+#: builtin/merge.c:1250
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:1266
+#: builtin/merge.c:1267
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:1268
+#: builtin/merge.c:1269
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:1274
+#: builtin/merge.c:1275
#, c-format
msgid "%s - not something we can merge"
msgstr "%s - không phải là một số thứ chúng tôi có thể hòa trộn"
-#: builtin/merge.c:1276
+#: builtin/merge.c:1277
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:1331
+#: builtin/merge.c:1332
#, 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."
-#: builtin/merge.c:1334
+#: builtin/merge.c:1335
#, 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."
-#: builtin/merge.c:1337
+#: builtin/merge.c:1338
#, c-format
msgid "Commit %s does not have a GPG signature."
msgstr "Lần chuyển giao %s không có chữ ký GPG."
-#: builtin/merge.c:1340
+#: builtin/merge.c:1341
#, 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"
-#: builtin/merge.c:1423
+#: builtin/merge.c:1424
#, c-format
msgid "Updating %s..%s\n"
msgstr "Äang cập nhật %s..%s\n"
-#: builtin/merge.c:1460
+#: builtin/merge.c:1461
#, 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:1467
+#: builtin/merge.c:1468
#, c-format
msgid "Nope.\n"
msgstr "Không.\n"
-#: builtin/merge.c:1499
+#: builtin/merge.c:1500
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:1522 builtin/merge.c:1601
+#: builtin/merge.c:1523 builtin/merge.c:1602
#, 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:1526
+#: builtin/merge.c:1527
#, c-format
msgid "Trying merge strategy %s...\n"
msgstr "Äang thá»­ chiến lược hòa trá»™n %s…\n"
-#: builtin/merge.c:1592
+#: builtin/merge.c:1593
#, 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:1594
+#: builtin/merge.c:1595
#, 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:1603
+#: builtin/merge.c:1604
#, 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:1615
+#: builtin/merge.c:1616
#, c-format
msgid "Automatic merge went well; stopped before committing as requested\n"
msgstr ""
@@ -7970,19 +8124,19 @@ 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/mktree.c:64
+#: builtin/mktree.c:65
msgid "git mktree [-z] [--missing] [--batch]"
msgstr "git mktree [-z] [--missing] [--batch]"
-#: builtin/mktree.c:150
+#: builtin/mktree.c:152
msgid "input is NUL terminated"
msgstr "đầu vào được chấm dứt bởi NUL"
-#: builtin/mktree.c:151 builtin/write-tree.c:24
+#: builtin/mktree.c:153 builtin/write-tree.c:24
msgid "allow missing objects"
msgstr "cho phép thiếu đối tượng"
-#: builtin/mktree.c:152
+#: builtin/mktree.c:154
msgid "allow creation of more than one tree"
msgstr "cho phép tạo nhiá»u hÆ¡n má»™t cây"
@@ -7990,91 +8144,91 @@ msgstr "cho phép tạo nhiá»u hÆ¡n má»™t cây"
msgid "git mv [<options>] <source>... <destination>"
msgstr "git mv [<các-tùy-chá»n>] <nguồn>… <đích>"
-#: builtin/mv.c:69
+#: builtin/mv.c:70
#, c-format
msgid "Directory %s is in index and no submodule?"
msgstr "Thư mục “%s†có ở trong chỉ mục mà không có mô-đun con?"
-#: builtin/mv.c:71
+#: builtin/mv.c:72
msgid "Please stage your changes to .gitmodules or stash them to proceed"
msgstr ""
"Hãy đưa các thay đổi của bạn vào .gitmodules hay tạm cất chúng đi để xử lý"
-#: builtin/mv.c:89
+#: builtin/mv.c:90
#, c-format
msgid "%.*s is in index"
msgstr "%.*s trong bảng mục lục"
-#: builtin/mv.c:111
+#: builtin/mv.c:112
msgid "force move/rename even if target exists"
msgstr "ép buộc di chuyển hay đổi tên thậm chí cả khi đích đã tồn tại"
-#: builtin/mv.c:112
+#: builtin/mv.c:113
msgid "skip move/rename errors"
msgstr "bỠqua các lỗi liên quan đến di chuyển, đổi tên"
-#: builtin/mv.c:151
+#: builtin/mv.c:152
#, c-format
msgid "destination '%s' is not a directory"
msgstr "có đích “%s†nhưng đây không phải là một thư mục"
-#: builtin/mv.c:162
+#: builtin/mv.c:163
#, c-format
msgid "Checking rename of '%s' to '%s'\n"
msgstr "Äang kiểm tra việc đổi tên của “%s†thành “%sâ€\n"
-#: builtin/mv.c:166
+#: builtin/mv.c:167
msgid "bad source"
msgstr "nguồn sai"
-#: builtin/mv.c:169
+#: builtin/mv.c:170
msgid "can not move directory into itself"
msgstr "không thể di chuyển một thư mục vào trong chính nó được"
-#: builtin/mv.c:172
+#: builtin/mv.c:173
msgid "cannot move directory over file"
msgstr "không di chuyển được thư mục thông qua tập tin"
-#: builtin/mv.c:181
+#: builtin/mv.c:182
msgid "source directory is empty"
msgstr "thư mục nguồn là trống rỗng"
-#: builtin/mv.c:206
+#: builtin/mv.c:207
msgid "not under version control"
msgstr "không nằm dưới sự quản lý mã nguồn"
-#: builtin/mv.c:209
+#: builtin/mv.c:210
msgid "destination exists"
msgstr "đích đã tồn tại sẵn rồi"
-#: builtin/mv.c:217
+#: builtin/mv.c:218
#, c-format
msgid "overwriting '%s'"
msgstr "Ä‘ang ghi đè lên “%sâ€"
-#: builtin/mv.c:220
+#: builtin/mv.c:221
msgid "Cannot overwrite"
msgstr "Không thể ghi đè"
-#: builtin/mv.c:223
+#: builtin/mv.c:224
msgid "multiple sources for the same target"
msgstr "Nhiá»u nguồn cho cùng má»™t đích"
-#: builtin/mv.c:225
+#: builtin/mv.c:226
msgid "destination directory does not exist"
msgstr "thư mục đích không tồn tại"
-#: builtin/mv.c:232
+#: builtin/mv.c:233
#, c-format
msgid "%s, source=%s, destination=%s"
msgstr "%s, nguồn=%s, đích=%s"
-#: builtin/mv.c:253
+#: builtin/mv.c:254
#, c-format
msgid "Renaming %s to %s\n"
msgstr "Äổi tên %s thành %s\n"
-#: builtin/mv.c:256 builtin/remote.c:728 builtin/repack.c:365
+#: builtin/mv.c:257 builtin/remote.c:714 builtin/repack.c:365
#, c-format
msgid "renaming '%s' failed"
msgstr "gặp lá»—i khi đổi tên “%sâ€"
@@ -8274,9 +8428,9 @@ msgid "could not open or read '%s'"
msgstr "không thể mở hay Ä‘á»c “%sâ€"
#: builtin/notes.c:253 builtin/notes.c:304 builtin/notes.c:306
-#: builtin/notes.c:366 builtin/notes.c:421 builtin/notes.c:507
-#: builtin/notes.c:512 builtin/notes.c:590 builtin/notes.c:653
-#: builtin/notes.c:877 builtin/tag.c:456
+#: builtin/notes.c:369 builtin/notes.c:424 builtin/notes.c:510
+#: builtin/notes.c:515 builtin/notes.c:593 builtin/notes.c:656
+#: builtin/notes.c:880 builtin/tag.c:456
#, 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ệ."
@@ -8291,42 +8445,42 @@ msgstr "Gặp lá»—i khi Ä‘á»c đối tượng “%sâ€."
msgid "Cannot read note data from non-blob object '%s'."
msgstr "không thể Ä‘á»c dữ liệu ghi chú từ đối tượng không-blob “%sâ€."
-#: builtin/notes.c:359 builtin/notes.c:414 builtin/notes.c:490
-#: builtin/notes.c:502 builtin/notes.c:578 builtin/notes.c:646
-#: builtin/notes.c:942
+#: builtin/notes.c:362 builtin/notes.c:417 builtin/notes.c:493
+#: builtin/notes.c:505 builtin/notes.c:581 builtin/notes.c:649
+#: builtin/notes.c:945
msgid "too many parameters"
msgstr "quá nhiá»u đối số"
-#: builtin/notes.c:372 builtin/notes.c:659
+#: builtin/notes.c:375 builtin/notes.c:662
#, c-format
msgid "No note found for object %s."
msgstr "không tìm thấy ghi chú cho đối tượng %s."
-#: builtin/notes.c:393 builtin/notes.c:556
+#: builtin/notes.c:396 builtin/notes.c:559
msgid "note contents as a string"
msgstr "nội dung ghi chú (note) nằm trong một chuỗi"
-#: builtin/notes.c:396 builtin/notes.c:559
+#: builtin/notes.c:399 builtin/notes.c:562
msgid "note contents in a file"
msgstr "nội dung ghi chú (note) nằm trong một tập tin"
-#: builtin/notes.c:399 builtin/notes.c:562
+#: builtin/notes.c:402 builtin/notes.c:565
msgid "reuse and edit specified note object"
msgstr "dùng lại nhưng có sửa chữa đối tượng note đã chỉ ra"
-#: builtin/notes.c:402 builtin/notes.c:565
+#: builtin/notes.c:405 builtin/notes.c:568
msgid "reuse specified note object"
msgstr "dùng lại đối tượng ghi chú (note) đã chỉ ra"
-#: builtin/notes.c:405 builtin/notes.c:568
+#: builtin/notes.c:408 builtin/notes.c:571
msgid "allow storing empty note"
msgstr "cho lưu trữ ghi chú trống rỗng"
-#: builtin/notes.c:406 builtin/notes.c:477
+#: builtin/notes.c:409 builtin/notes.c:480
msgid "replace existing notes"
msgstr "thay thế ghi chú trước"
-#: builtin/notes.c:431
+#: builtin/notes.c:434
#, c-format
msgid ""
"Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite "
@@ -8335,29 +8489,29 @@ msgstr ""
"Không thể thêm các ghi chú. Äã tìm thấy các ghi chú đã có sẵn cho đối tượng "
"%s. Sá»­ dụng tùy chá»n “-f†để ghi đè lên các ghi chú cÅ©"
-#: builtin/notes.c:446 builtin/notes.c:525
+#: builtin/notes.c:449 builtin/notes.c:528
#, c-format
msgid "Overwriting existing notes for object %s\n"
msgstr "Äang ghi đè lên ghi chú cÅ© cho đối tượng %s\n"
-#: builtin/notes.c:457 builtin/notes.c:618 builtin/notes.c:882
+#: builtin/notes.c:460 builtin/notes.c:621 builtin/notes.c:885
#, c-format
msgid "Removing note for object %s\n"
msgstr "Äang gỡ bá» ghi chú (note) cho đối tượng %s\n"
-#: builtin/notes.c:478
+#: builtin/notes.c:481
msgid "read objects from stdin"
msgstr "Ä‘á»c các đối tượng từ đầu vào tiêu chuẩn"
-#: builtin/notes.c:480
+#: builtin/notes.c:483
msgid "load rewriting config for <command> (implies --stdin)"
msgstr "tải cấu hình chép lại cho <lệnh> (ngầm định là --stdin)"
-#: builtin/notes.c:498
+#: builtin/notes.c:501
msgid "too few parameters"
msgstr "quá ít đối số"
-#: builtin/notes.c:519
+#: builtin/notes.c:522
#, c-format
msgid ""
"Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite "
@@ -8366,12 +8520,12 @@ msgstr ""
"Không thể sao chép các ghi chú. Äã tìm thấy các ghi chú đã có sẵn cho đối "
"tượng %s. Sá»­ dụng tùy chá»n “-f†để ghi đè lên các ghi chú cÅ©"
-#: builtin/notes.c:531
+#: builtin/notes.c:534
#, c-format
msgid "Missing notes on source object %s. Cannot copy."
msgstr "Thiếu ghi chú trên đối tượng nguồn %s. Không thể sao chép."
-#: builtin/notes.c:583
+#: builtin/notes.c:586
#, c-format
msgid ""
"The -m/-F/-c/-C options have been deprecated for the 'edit' subcommand.\n"
@@ -8380,15 +8534,15 @@ msgstr ""
"Các tùy chá»n -m/-F/-c/-C đã cổ không còn dùng nữa cho lệnh con “editâ€.\n"
"Xin hãy sá»­ dụng lệnh sau để thay thế: “git notes add -f -m/-F/-c/-Câ€.\n"
-#: builtin/notes.c:764
+#: builtin/notes.c:767
msgid "General options"
msgstr "Tùy chá»n chung"
-#: builtin/notes.c:766
+#: builtin/notes.c:769
msgid "Merge options"
msgstr "Tùy chá»n vá» hòa trá»™n"
-#: builtin/notes.c:768
+#: builtin/notes.c:771
msgid ""
"resolve notes conflicts using the given strategy (manual/ours/theirs/union/"
"cat_sort_uniq)"
@@ -8396,51 +8550,51 @@ msgstr ""
"phân giải các xung đột “notes†sử dụng chiến lược đã đưa ra (manual/ours/"
"theirs/union/cat_sort_uniq)"
-#: builtin/notes.c:770
+#: builtin/notes.c:773
msgid "Committing unmerged notes"
msgstr "Chuyển giao các note chưa được hòa trộn"
-#: builtin/notes.c:772
+#: builtin/notes.c:775
msgid "finalize notes merge by committing unmerged notes"
msgstr ""
"các note cuối cùng được hòa trộn bởi các note chưa hòa trộn của lần chuyển "
"giao"
-#: builtin/notes.c:774
+#: builtin/notes.c:777
msgid "Aborting notes merge resolution"
msgstr "Hủy bỠphân giải ghi chú (note) hòa trộn"
-#: builtin/notes.c:776
+#: builtin/notes.c:779
msgid "abort notes merge"
msgstr "bỠqua hòa trộn các ghi chú (note)"
-#: builtin/notes.c:853
+#: builtin/notes.c:856
#, c-format
msgid "A notes merge into %s is already in-progress at %s"
msgstr "Các ghi chú hòa trộn vào %s đã sẵn trong quá trình xử lý tại %s"
-#: builtin/notes.c:880
+#: builtin/notes.c:883
#, c-format
msgid "Object %s has no note\n"
msgstr "Äối tượng %s không có ghi chú (note)\n"
-#: builtin/notes.c:892
+#: builtin/notes.c:895
msgid "attempt to remove non-existent note is not an error"
msgstr "cố gắng gỡ bỠmột note chưa từng tồn tại không phải là một lỗi"
-#: builtin/notes.c:895
+#: builtin/notes.c:898
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:976
+#: builtin/notes.c:979
msgid "notes-ref"
msgstr "notes-ref"
-#: builtin/notes.c:977
+#: builtin/notes.c:980
msgid "use notes from <notes-ref>"
msgstr "dùng “notes†từ <notes-ref>"
-#: builtin/notes.c:1012 builtin/remote.c:1647
+#: builtin/notes.c:1015 builtin/remote.c:1626
#, c-format
msgid "Unknown subcommand: %s"
msgstr "Không hiểu câu lệnh con: %s"
@@ -8464,166 +8618,166 @@ msgstr ""
msgid "deflate error (%d)"
msgstr "lỗi giải nén (%d)"
-#: builtin/pack-objects.c:771
+#: builtin/pack-objects.c:772
msgid "Writing objects"
msgstr "Äang ghi lại các đối tượng"
-#: builtin/pack-objects.c:1011
+#: builtin/pack-objects.c:1012
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:2171
+#: builtin/pack-objects.c:2172
msgid "Compressing objects"
msgstr "Äang nén các đối tượng"
-#: builtin/pack-objects.c:2568
+#: builtin/pack-objects.c:2558
#, 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:2572
+#: builtin/pack-objects.c:2562
#, c-format
msgid "bad index version '%s'"
msgstr "phiên bản mục lục sai “%sâ€"
-#: builtin/pack-objects.c:2602
+#: builtin/pack-objects.c:2592
msgid "do not show progress meter"
msgstr "không hiển thị bộ đo tiến trình"
-#: builtin/pack-objects.c:2604
+#: builtin/pack-objects.c:2594
msgid "show progress meter"
msgstr "hiển thị bộ đo tiến trình"
-#: builtin/pack-objects.c:2606
+#: builtin/pack-objects.c:2596
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:2609
+#: builtin/pack-objects.c:2599
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:2610
+#: builtin/pack-objects.c:2600
msgid "version[,offset]"
msgstr "phiên bản[,offset]"
-#: builtin/pack-objects.c:2611
+#: builtin/pack-objects.c:2601
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:2614
+#: builtin/pack-objects.c:2604
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:2616
+#: builtin/pack-objects.c:2606
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:2618
+#: builtin/pack-objects.c:2608
msgid "ignore packed objects"
msgstr "bỠqua các đối tượng đóng gói"
-#: builtin/pack-objects.c:2620
+#: builtin/pack-objects.c:2610
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:2622
+#: builtin/pack-objects.c:2612
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:2624
+#: builtin/pack-objects.c:2614
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:2626
+#: builtin/pack-objects.c:2616
msgid "reuse existing deltas"
msgstr "dùng lại các delta sẵn có"
-#: builtin/pack-objects.c:2628
+#: builtin/pack-objects.c:2618
msgid "reuse existing objects"
msgstr "dùng lại các đối tượng sẵn có"
-#: builtin/pack-objects.c:2630
+#: builtin/pack-objects.c:2620
msgid "use OFS_DELTA objects"
msgstr "dùng các đối tượng OFS_DELTA"
-#: builtin/pack-objects.c:2632
+#: builtin/pack-objects.c:2622
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:2634
+#: builtin/pack-objects.c:2624
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:2636
+#: builtin/pack-objects.c:2626
msgid "read revision arguments from standard input"
msgstr " Ä‘á»c tham số “revision†từ thiết bị nhập chuẩn"
-#: builtin/pack-objects.c:2638
+#: builtin/pack-objects.c:2628
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:2641
+#: builtin/pack-objects.c:2631
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:2644
+#: builtin/pack-objects.c:2634
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:2647
+#: builtin/pack-objects.c:2637
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:2650
+#: builtin/pack-objects.c:2640
msgid "output pack to stdout"
msgstr "xuất gói ra đầu ra tiêu chuẩn"
-#: builtin/pack-objects.c:2652
+#: builtin/pack-objects.c:2642
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:2654
+#: builtin/pack-objects.c:2644
msgid "keep unreachable objects"
msgstr "giữ lại các đối tượng không thể Ä‘á»c được"
-#: builtin/pack-objects.c:2655 parse-options.h:142
+#: builtin/pack-objects.c:2645 parse-options.h:142
msgid "time"
msgstr "thá»i-gian"
-#: builtin/pack-objects.c:2656
+#: builtin/pack-objects.c:2646
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:2659
+#: builtin/pack-objects.c:2649
msgid "create thin packs"
msgstr "tạo gói nhẹ"
-#: builtin/pack-objects.c:2661
+#: builtin/pack-objects.c:2651
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:2663
+#: builtin/pack-objects.c:2653
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:2665
+#: builtin/pack-objects.c:2655
msgid "pack compression level"
msgstr "mức nén gói"
-#: builtin/pack-objects.c:2667
+#: builtin/pack-objects.c:2657
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:2669
+#: builtin/pack-objects.c:2659
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:2671
+#: builtin/pack-objects.c:2661
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:2762
+#: builtin/pack-objects.c:2752
msgid "Counting objects"
msgstr "Äang đếm các đối tượng"
@@ -8667,50 +8821,54 @@ msgstr "các đối tượng hết hạn cÅ© hÆ¡n khoảng <thá»i gian>"
msgid "cannot prune in a precious-objects repo"
msgstr "không thể tỉa bớt trong một kho đối_tượng_vĩ_đại"
-#: builtin/pull.c:69
+#: builtin/pull.c:72
msgid "git pull [<options>] [<repository> [<refspec>...]]"
msgstr "git pull [<các-tùy-chá»n>] [<kho-chứa> [<refspec>…]]"
-#: builtin/pull.c:113
+#: builtin/pull.c:117
msgid "Options related to merging"
msgstr "Các tùy chá»n liên quan đến hòa trá»™n"
-#: builtin/pull.c:116
+#: builtin/pull.c:120
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:140 builtin/revert.c:105
+#: builtin/pull.c:144 builtin/revert.c:105
msgid "allow fast-forward"
msgstr "cho phép chuyển-tiếp-nhanh"
-#: builtin/pull.c:146
+#: builtin/pull.c:150
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/pull.c:160
+#: builtin/pull.c:164
msgid "Options related to fetching"
msgstr "Các tùy chá»n liên quan đến lệnh lấy vá»"
-#: builtin/pull.c:268
+#: builtin/pull.c:186
+msgid "number of submodules pulled in parallel"
+msgstr "số lượng mô-Ä‘un-con được đẩy lên đồng thá»i"
+
+#: builtin/pull.c:275
#, c-format
msgid "Invalid value for pull.ff: %s"
msgstr "Giá trị không hợp lệ cho pull.ff: %s"
-#: builtin/pull.c:352
+#: builtin/pull.c:359
msgid "Cannot pull with rebase: You have unstaged changes."
msgstr ""
"Không thể pull với cải tổ: Bạn có các thay đổi chưa được đưa lên bệ phóng."
-#: builtin/pull.c:358
+#: builtin/pull.c:365
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."
-#: builtin/pull.c:360
+#: builtin/pull.c:367
msgid "Cannot pull with rebase: Your index contains uncommitted changes."
msgstr "Không thể pull với cải tổ: Bạn có các thay đổi chưa được chuyển giao."
-#: builtin/pull.c:436
+#: builtin/pull.c:443
msgid ""
"There is no candidate for rebasing against among the refs that you just "
"fetched."
@@ -8718,14 +8876,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:438
+#: builtin/pull.c:445
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:439
+#: builtin/pull.c:446
msgid ""
"Generally this means that you provided a wildcard refspec which had no\n"
"matches on the remote end."
@@ -8734,7 +8892,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:442
+#: builtin/pull.c:449
#, c-format
msgid ""
"You asked to pull from the remote '%s', but did not specify\n"
@@ -8746,27 +8904,27 @@ 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:447
+#: builtin/pull.c:454
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:449 builtin/pull.c:464
+#: builtin/pull.c:456 builtin/pull.c:471
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:451 builtin/pull.c:466
+#: builtin/pull.c:458 builtin/pull.c:473
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:452 builtin/pull.c:467
+#: builtin/pull.c:459 builtin/pull.c:474
msgid "See git-pull(1) for details."
msgstr "Xem git-pull(1) để biết thêm chi tiết."
-#: builtin/pull.c:462
+#: builtin/pull.c:469
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:471
+#: builtin/pull.c:478
#, c-format
msgid ""
"If you wish to set tracking information for this branch you can do so with:\n"
@@ -8779,7 +8937,7 @@ msgstr ""
" git branch --set-upstream-to=%s/<nhánh> %s\n"
"\n"
-#: builtin/pull.c:476
+#: builtin/pull.c:483
#, c-format
msgid ""
"Your configuration specifies to merge with the ref '%s'\n"
@@ -8788,13 +8946,13 @@ 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:830
+#: builtin/pull.c:841
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:859
+#: builtin/pull.c:870
#, c-format
msgid ""
"fetch updated the current branch head.\n"
@@ -8805,7 +8963,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:864
+#: builtin/pull.c:875
#, c-format
msgid ""
"Cannot fast-forward your working tree.\n"
@@ -8823,27 +8981,27 @@ msgstr ""
"$ git reset --hard\n"
"để khôi phục lại."
-#: builtin/pull.c:879
+#: builtin/pull.c:890
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:883
+#: builtin/pull.c:894
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/push.c:15
+#: builtin/push.c:16
msgid "git push [<options>] [<repository> [<refspec>...]]"
msgstr "git push [<các-tùy-chá»n>] [<kho-chứa> [<refspec>…]]"
-#: builtin/push.c:86
+#: builtin/push.c:89
msgid "tag shorthand without <tag>"
msgstr "dùng tốc ký thẻ không có <thẻ>"
-#: builtin/push.c:96
+#: builtin/push.c:99
msgid "--delete only accepts plain target ref names"
msgstr "--delete chỉ chấp nhận các tên tham chiếu dạng thÆ°á»ng"
-#: builtin/push.c:140
+#: builtin/push.c:143
msgid ""
"\n"
"To choose either option permanently, see push.default in 'git help config'."
@@ -8852,7 +9010,7 @@ msgstr ""
"Äể chá»n má»—i tùy chá»n má»™t cách cố định, xem push.default trong “git help "
"configâ€."
-#: builtin/push.c:143
+#: builtin/push.c:146
#, c-format
msgid ""
"The upstream branch of your current branch does not match\n"
@@ -8877,7 +9035,7 @@ msgstr ""
" git push %s %s\n"
"%s"
-#: builtin/push.c:158
+#: builtin/push.c:161
#, c-format
msgid ""
"You are not currently on a branch.\n"
@@ -8892,7 +9050,7 @@ msgstr ""
"\n"
" git push %s HEAD:<tên-của-nhánh-máy-chủ>\n"
-#: builtin/push.c:172
+#: builtin/push.c:175
#, c-format
msgid ""
"The current branch %s has no upstream branch.\n"
@@ -8906,12 +9064,12 @@ msgstr ""
"\n"
" git push --set-upstream %s %s\n"
-#: builtin/push.c:180
+#: builtin/push.c:183
#, c-format
msgid "The current branch %s has multiple upstream branches, refusing to push."
msgstr "Nhánh hiện tại %s có nhiá»u nhánh thượng nguồn, từ chối push."
-#: builtin/push.c:183
+#: builtin/push.c:186
#, c-format
msgid ""
"You are pushing to remote '%s', which is not the upstream of\n"
@@ -8923,60 +9081,14 @@ msgstr ""
"nhánh hiện tại “%s†của bạn, mà không báo cho tôi biết là cái gì được push\n"
"để cập nhật nhánh máy chủ nào."
-#: builtin/push.c:206
-msgid ""
-"push.default is unset; its implicit value has changed in\n"
-"Git 2.0 from 'matching' to 'simple'. To squelch this message\n"
-"and maintain the traditional behavior, use:\n"
-"\n"
-" git config --global push.default matching\n"
-"\n"
-"To squelch this message and adopt the new behavior now, use:\n"
-"\n"
-" git config --global push.default simple\n"
-"\n"
-"When push.default is set to 'matching', git will push local branches\n"
-"to the remote branches that already exist with the same name.\n"
-"\n"
-"Since Git 2.0, Git defaults to the more conservative 'simple'\n"
-"behavior, which only pushes the current branch to the corresponding\n"
-"remote branch that 'git pull' uses to update the current branch.\n"
-"\n"
-"See 'git help config' and search for 'push.default' for further "
-"information.\n"
-"(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode\n"
-"'current' instead of 'simple' if you sometimes use older versions of Git)"
-msgstr ""
-"biến push.default chưa được đặt; giá trị ngầm định của nó\n"
-"đã được thay đổi trong Git 2.0 từ “matching†thành “simpleâ€.\n"
-"Äể không hiển thị nhắc nhở này và duy trì cách xá»­ lý cÅ©, hãy chạy lệnh:\n"
-"\n"
-" git config --global push.default matching\n"
-"\n"
-"Äể không hiển thị nhắc nhở này và áp dụng cách ứng xá»­ má»›i, hãy chạy lệnh:\n"
-"\n"
-" git config --global push.default simple\n"
-"\n"
-"Khi push.default được đặt thành “matchingâ€, git sẽ đẩy các nhánh ná»™i bá»™\n"
-"lên các nhánh trên máy chủ, cái mà đã sẵn có và cùng tên.\n"
-"\n"
-"Trong 2.0, Git sẽ mặc định duy trì các ứng xá»­ “simpleâ€,\n"
-"cái này chỉ đẩy những nhánh hiện hành lên các nhánh tương ứng\n"
-"trên máy chủ cái mà lệnh “git pull†dùng để cập nhật nhánh hiện tại.\n"
-"\n"
-"Xem “git help config†và tìm đến “push.default†để có thêm thông tin.\n"
-"(chế độ “simple†được bắt đầu sử dụng từ Git 1.7.11. Sử dụng chế độ tương "
-"tá»±\n"
-"“current†thay vì “simple†nếu bạn thỉnh thoảng phải sử dụng bản Git cũ)"
-
-#: builtin/push.c:273
+#: builtin/push.c:242
msgid ""
"You didn't specify any refspecs to push, and push.default is \"nothing\"."
msgstr ""
"Bạn đã không chỉ ra một refspecs nào để đẩy lên, và push.default là \"không "
"là gì cả\"."
-#: builtin/push.c:280
+#: builtin/push.c:249
msgid ""
"Updates were rejected because the tip of your current branch is behind\n"
"its remote counterpart. Integrate the remote changes (e.g.\n"
@@ -8989,7 +9101,7 @@ msgstr ""
"Xem “Note about fast-forwards†trong “git push --help†để có thông tin chi "
"tiết."
-#: builtin/push.c:286
+#: builtin/push.c:255
msgid ""
"Updates were rejected because a pushed branch tip is behind its remote\n"
"counterpart. Check out this branch and integrate the remote changes\n"
@@ -9003,7 +9115,7 @@ msgstr ""
"Xem “Note about fast-forwards†trong “git push --help†để có thông tin chi "
"tiết."
-#: builtin/push.c:292
+#: builtin/push.c:261
msgid ""
"Updates were rejected because the remote contains work that you do\n"
"not have locally. This is usually caused by another repository pushing\n"
@@ -9018,11 +9130,11 @@ msgstr ""
"Xem “Note about fast-forwards†trong “git push --help†để có thông tin chi "
"tiết."
-#: builtin/push.c:299
+#: builtin/push.c:268
msgid "Updates were rejected because the tag already exists in the remote."
msgstr "Việc cập nhật bị từ chối bởi vì thẻ đã sẵn có từ trước trên máy chủ."
-#: builtin/push.c:302
+#: builtin/push.c:271
msgid ""
"You cannot update a remote ref that points at a non-commit object,\n"
"or update a remote ref to make it point at a non-commit object,\n"
@@ -9034,22 +9146,22 @@ msgstr ""
"đối tượng\n"
"không phải chuyển giao, mà không sá»­ dụng tùy chá»n “--forceâ€.\n"
-#: builtin/push.c:361
+#: builtin/push.c:331
#, c-format
msgid "Pushing to %s\n"
msgstr "Äang đẩy lên %s\n"
-#: builtin/push.c:365
+#: builtin/push.c:335
#, 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:395
+#: builtin/push.c:365
#, c-format
msgid "bad repository '%s'"
msgstr "repository (kho) sai “%sâ€"
-#: builtin/push.c:396
+#: builtin/push.c:366
msgid ""
"No configured push destination.\n"
"Either specify the URL from the command-line or configure a remote "
@@ -9070,100 +9182,100 @@ msgstr ""
"\n"
" git push <tên>\n"
-#: builtin/push.c:411
+#: builtin/push.c:381
msgid "--all and --tags are incompatible"
msgstr "--all và --tags xung khắc nhau"
-#: builtin/push.c:412
+#: builtin/push.c:382
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:417
+#: builtin/push.c:387
msgid "--mirror and --tags are incompatible"
msgstr "--mirror và --tags xung khắc nhau"
-#: builtin/push.c:418
+#: builtin/push.c:388
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:423
+#: builtin/push.c:393
msgid "--all and --mirror are incompatible"
msgstr "--all và --mirror xung khắc nhau"
-#: builtin/push.c:539
+#: builtin/push.c:505
msgid "repository"
msgstr "kho"
-#: builtin/push.c:540 builtin/send-pack.c:161
+#: builtin/push.c:506 builtin/send-pack.c:161
msgid "push all refs"
msgstr "đẩy tất cả các tham chiếu"
-#: builtin/push.c:541 builtin/send-pack.c:163
+#: builtin/push.c:507 builtin/send-pack.c:163
msgid "mirror all refs"
msgstr "mirror tất cả các tham chiếu"
-#: builtin/push.c:543
+#: builtin/push.c:509
msgid "delete refs"
msgstr "xóa các tham chiếu"
-#: builtin/push.c:544
+#: builtin/push.c:510
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:547 builtin/send-pack.c:164
+#: builtin/push.c:513 builtin/send-pack.c:164
msgid "force updates"
msgstr "ép buộc cập nhật"
-#: builtin/push.c:549 builtin/send-pack.c:175
+#: builtin/push.c:515 builtin/send-pack.c:175
msgid "refname>:<expect"
msgstr "tên-tham-chiếu>:<cần"
-#: builtin/push.c:550 builtin/send-pack.c:176
+#: builtin/push.c:516 builtin/send-pack.c:176
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:553
+#: builtin/push.c:519
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:555 builtin/send-pack.c:169
+#: builtin/push.c:521 builtin/send-pack.c:169
msgid "use thin pack"
msgstr "tạo gói nhẹ"
-#: builtin/push.c:556 builtin/push.c:557 builtin/send-pack.c:158
+#: builtin/push.c:522 builtin/push.c:523 builtin/send-pack.c:158
#: builtin/send-pack.c:159
msgid "receive pack program"
msgstr "chương trình nhận gói"
-#: builtin/push.c:558
+#: builtin/push.c:524
msgid "set upstream for git pull/status"
msgstr "đặt thượng nguồn cho git pull/status"
-#: builtin/push.c:561
+#: builtin/push.c:527
msgid "prune locally removed refs"
msgstr "xén tỉa những tham chiếu bị gỡ bá»"
-#: builtin/push.c:563
+#: builtin/push.c:529
msgid "bypass pre-push hook"
msgstr "vòng qua móc tiá»n-đẩy (pre-push)"
-#: builtin/push.c:564
+#: builtin/push.c:530
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:567 builtin/send-pack.c:166
+#: builtin/push.c:533 builtin/send-pack.c:166
msgid "GPG sign the push"
msgstr "ký lần đẩy dùng GPG"
-#: builtin/push.c:569 builtin/send-pack.c:170
+#: builtin/push.c:535 builtin/send-pack.c:170
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:579
+#: builtin/push.c:549
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:581
+#: builtin/push.c:551
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"
@@ -9243,12 +9355,12 @@ msgstr "bá» qua áp dụng bá»™ lá»c lấy ra (checkout) thÆ°a thá»›t"
msgid "debug unpack-trees"
msgstr "gỡ lá»—i “unpack-treesâ€"
-#: builtin/reflog.c:428
+#: builtin/reflog.c:423
#, c-format
msgid "'%s' for '%s' is not a valid timestamp"
msgstr "“%s†dành cho “%s†không phải là dấu vết thá»i gian hợp lệ"
-#: builtin/reflog.c:545 builtin/reflog.c:550
+#: builtin/reflog.c:540 builtin/reflog.c:545
#, c-format
msgid "'%s' is not a valid timestamp"
msgstr "“%s†không phải là dấu thá»i gian hợp lệ"
@@ -9389,55 +9501,45 @@ msgstr "Ä‘ang chỉ định má»™t nhánh master không hợp lý vá»›i tùy chá»
msgid "specifying branches to track makes sense only with fetch mirrors"
msgstr "chỉ định những nhánh để theo dõi chỉ hợp lý vá»›i các “fetch mirrorâ€"
-#: builtin/remote.c:193 builtin/remote.c:643
+#: builtin/remote.c:190 builtin/remote.c:633
#, c-format
msgid "remote %s already exists."
msgstr "máy chủ %s đã tồn tại rồi."
-#: builtin/remote.c:197 builtin/remote.c:647
+#: builtin/remote.c:194 builtin/remote.c:637
#, c-format
msgid "'%s' is not a valid remote name"
msgstr "“%s†không phải tên máy chủ hợp lệ"
-#: builtin/remote.c:241
+#: builtin/remote.c:234
#, c-format
msgid "Could not setup master '%s'"
msgstr "Không thể cài đặt nhánh master “%sâ€"
-#: builtin/remote.c:341
+#: builtin/remote.c:336
#, c-format
msgid "Could not get fetch map for refspec %s"
msgstr "Không thể lấy ánh xạ (map) fetch cho đặc tả tham chiếu %s"
-#: builtin/remote.c:442 builtin/remote.c:450
+#: builtin/remote.c:437 builtin/remote.c:445
msgid "(matching)"
msgstr "(khá»›p)"
-#: builtin/remote.c:454
+#: builtin/remote.c:449
msgid "(delete)"
msgstr "(xóa)"
-#: builtin/remote.c:594 builtin/remote.c:600 builtin/remote.c:606
-#, c-format
-msgid "Could not append '%s' to '%s'"
-msgstr "Không thể nối thêm “%s†vào “%sâ€"
-
-#: builtin/remote.c:636 builtin/remote.c:775 builtin/remote.c:875
+#: builtin/remote.c:626 builtin/remote.c:761 builtin/remote.c:858
#, c-format
msgid "No such remote: %s"
msgstr "Không có máy chủ nào như thế: %s"
-#: builtin/remote.c:653
+#: builtin/remote.c:643
#, c-format
msgid "Could not rename config section '%s' to '%s'"
msgstr "Không thể đổi tên phần của cấu hình từ “%s†thành “%sâ€"
-#: builtin/remote.c:659 builtin/remote.c:827
-#, c-format
-msgid "Could not remove config section '%s'"
-msgstr "Không thể gỡ bá» phần cấu hình “%sâ€"
-
-#: builtin/remote.c:674
+#: builtin/remote.c:663
#, c-format
msgid ""
"Not updating non-default fetch refspec\n"
@@ -9448,27 +9550,17 @@ msgstr ""
"\t%s\n"
"\tXin hãy cập nhật phần cấu hình một cách thủ công nếu thấy cần thiết."
-#: builtin/remote.c:680
-#, c-format
-msgid "Could not append '%s'"
-msgstr "Không thể nối thêm “%sâ€"
-
-#: builtin/remote.c:691
-#, c-format
-msgid "Could not set '%s'"
-msgstr "Không thể đặt “%sâ€"
-
-#: builtin/remote.c:713
+#: builtin/remote.c:699
#, c-format
msgid "deleting '%s' failed"
msgstr "gặp lá»—i khi xóa “%sâ€"
-#: builtin/remote.c:747
+#: builtin/remote.c:733
#, c-format
msgid "creating '%s' failed"
msgstr "gặp lá»—i khi tạo “%sâ€"
-#: builtin/remote.c:813
+#: builtin/remote.c:796
msgid ""
"Note: A branch outside the refs/remotes/ hierarchy was not removed;\n"
"to delete it, use:"
@@ -9480,272 +9572,277 @@ msgstr[0] ""
"Ä‘i;\n"
"để xóa đi, sử dụng:"
-#: builtin/remote.c:928
+#: builtin/remote.c:810
+#, c-format
+msgid "Could not remove config section '%s'"
+msgstr "Không thể gỡ bá» phần cấu hình “%sâ€"
+
+#: builtin/remote.c:911
#, c-format
msgid " new (next fetch will store in remotes/%s)"
msgstr " mới (lần lấy vỠtiếp theo sẽ lưu trong remotes/%s)"
-#: builtin/remote.c:931
+#: builtin/remote.c:914
msgid " tracked"
msgstr " được theo dõi"
-#: builtin/remote.c:933
+#: builtin/remote.c:916
msgid " stale (use 'git remote prune' to remove)"
msgstr " cÅ© rích (dùng “git remote prune†để gỡ bá»)"
-#: builtin/remote.c:935
+#: builtin/remote.c:918
msgid " ???"
msgstr " ???"
-#: builtin/remote.c:976
+#: builtin/remote.c:959
#, c-format
msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch"
msgstr "branch.%s.merge không hợp lệ; không thể cải tổ vỠphía > 1 nhánh"
-#: builtin/remote.c:983
+#: builtin/remote.c:967
#, c-format
-msgid "rebases onto remote %s"
-msgstr "thực hiện rebase trên máy chủ %s"
+msgid "rebases interactively onto remote %s"
+msgstr "thực hiện rebase một cách tương tác trên máy chủ %s"
-#: builtin/remote.c:986
+#: builtin/remote.c:971
#, c-format
msgid " merges with remote %s"
msgstr " hòa trộn với máy chủ %s"
-#: builtin/remote.c:987
+#: builtin/remote.c:972
msgid " and with remote"
msgstr " và với máy chủ"
-#: builtin/remote.c:989
+#: builtin/remote.c:974
#, c-format
msgid "merges with remote %s"
msgstr "hòa trộn với máy chủ %s"
-#: builtin/remote.c:990
+#: builtin/remote.c:975
msgid " and with remote"
msgstr " và với máy chủ"
-#: builtin/remote.c:1036
+#: builtin/remote.c:1021
msgid "create"
msgstr "tạo"
-#: builtin/remote.c:1039
+#: builtin/remote.c:1024
msgid "delete"
msgstr "xóa"
-#: builtin/remote.c:1043
+#: builtin/remote.c:1028
msgid "up to date"
msgstr "đã cập nhật"
-#: builtin/remote.c:1046
+#: builtin/remote.c:1031
msgid "fast-forwardable"
msgstr "có-thể-chuyển-tiếp-nhanh"
-#: builtin/remote.c:1049
+#: builtin/remote.c:1034
msgid "local out of date"
msgstr "dữ liệu nội bộ đã cũ"
-#: builtin/remote.c:1056
+#: builtin/remote.c:1041
#, c-format
msgid " %-*s forces to %-*s (%s)"
msgstr " %-*s ép buộc thành %-*s (%s)"
-#: builtin/remote.c:1059
+#: builtin/remote.c:1044
#, c-format
msgid " %-*s pushes to %-*s (%s)"
msgstr " %-*s đẩy lên thành %-*s (%s)"
-#: builtin/remote.c:1063
+#: builtin/remote.c:1048
#, c-format
msgid " %-*s forces to %s"
msgstr " %-*s ép buộc thành %s"
-#: builtin/remote.c:1066
+#: builtin/remote.c:1051
#, c-format
msgid " %-*s pushes to %s"
msgstr " %-*s đẩy lên thành %s"
-#: builtin/remote.c:1134
+#: builtin/remote.c:1119
msgid "do not query remotes"
msgstr "không truy vấn các máy chủ"
-#: builtin/remote.c:1161
+#: builtin/remote.c:1146
#, c-format
msgid "* remote %s"
msgstr "* máy chủ %s"
-#: builtin/remote.c:1162
+#: builtin/remote.c:1147
#, c-format
msgid " Fetch URL: %s"
msgstr " URL để lấy vá»: %s"
-#: builtin/remote.c:1163 builtin/remote.c:1314
+#: builtin/remote.c:1148 builtin/remote.c:1299
msgid "(no URL)"
msgstr "(không có URL)"
-#: builtin/remote.c:1172 builtin/remote.c:1174
+#: builtin/remote.c:1157 builtin/remote.c:1159
#, c-format
msgid " Push URL: %s"
msgstr " URL để đẩy lên: %s"
-#: builtin/remote.c:1176 builtin/remote.c:1178 builtin/remote.c:1180
+#: builtin/remote.c:1161 builtin/remote.c:1163 builtin/remote.c:1165
#, c-format
msgid " HEAD branch: %s"
msgstr " Nhánh HEAD: %s"
-#: builtin/remote.c:1182
+#: builtin/remote.c:1167
#, c-format
msgid ""
" HEAD branch (remote HEAD is ambiguous, may be one of the following):\n"
msgstr " nhánh HEAD (HEAD máy chủ chưa rõ ràng, có lẽ là một trong số sau):\n"
-#: builtin/remote.c:1194
+#: builtin/remote.c:1179
#, c-format
msgid " Remote branch:%s"
msgid_plural " Remote branches:%s"
msgstr[0] " Những nhánh trên máy chủ:%s"
-#: builtin/remote.c:1197 builtin/remote.c:1224
+#: builtin/remote.c:1182 builtin/remote.c:1209
msgid " (status not queried)"
msgstr " (trạng thái không được yêu cầu)"
-#: builtin/remote.c:1206
+#: builtin/remote.c:1191
msgid " Local branch configured for 'git pull':"
msgid_plural " Local branches configured for 'git pull':"
msgstr[0] " Những nhánh ná»™i bá»™ đã được cấu hình cho lệnh “git pullâ€:"
-#: builtin/remote.c:1214
+#: builtin/remote.c:1199
msgid " Local refs will be mirrored by 'git push'"
msgstr " refs ná»™i bá»™ sẽ được phản chiếu bởi lệnh “git pushâ€"
-#: builtin/remote.c:1221
+#: builtin/remote.c:1206
#, c-format
msgid " Local ref configured for 'git push'%s:"
msgid_plural " Local refs configured for 'git push'%s:"
msgstr[0] " Những tham chiếu ná»™i bá»™ được cấu hình cho lệnh “git pushâ€%s:"
-#: builtin/remote.c:1242
+#: builtin/remote.c:1227
msgid "set refs/remotes/<name>/HEAD according to remote"
msgstr "đặt refs/remotes/<tên>/HEAD cho phù hợp với máy chủ"
-#: builtin/remote.c:1244
+#: builtin/remote.c:1229
msgid "delete refs/remotes/<name>/HEAD"
msgstr "xóa refs/remotes/<tên>/HEAD"
-#: builtin/remote.c:1259
+#: builtin/remote.c:1244
msgid "Cannot determine remote HEAD"
msgstr "Không thể xác định được HEAD máy chủ"
-#: builtin/remote.c:1261
+#: builtin/remote.c:1246
msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
msgstr "Nhiá»u nhánh HEAD máy chủ. Hãy chá»n rõ ràng má»™t:"
-#: builtin/remote.c:1271
+#: builtin/remote.c:1256
#, c-format
msgid "Could not delete %s"
msgstr "Không thể xóa bỠ%s"
-#: builtin/remote.c:1279
+#: builtin/remote.c:1264
#, c-format
msgid "Not a valid ref: %s"
msgstr "Không phải là tham chiếu hợp lệ: %s"
-#: builtin/remote.c:1281
+#: builtin/remote.c:1266
#, c-format
msgid "Could not setup %s"
msgstr "Không thể cài đặt %s"
-#: builtin/remote.c:1299
+#: builtin/remote.c:1284
#, c-format
msgid " %s will become dangling!"
msgstr " %s sẽ trở thành không đầu (không được quản lý)!"
-#: builtin/remote.c:1300
+#: builtin/remote.c:1285
#, c-format
msgid " %s has become dangling!"
msgstr " %s đã trở thành không đầu (không được quản lý)!"
-#: builtin/remote.c:1310
+#: builtin/remote.c:1295
#, c-format
msgid "Pruning %s"
msgstr "Äang xén bá»›t %s"
-#: builtin/remote.c:1311
+#: builtin/remote.c:1296
#, c-format
msgid "URL: %s"
msgstr "URL: %s"
-#: builtin/remote.c:1327
+#: builtin/remote.c:1312
#, c-format
msgid " * [would prune] %s"
msgstr " * [nên xén bớt] %s"
-#: builtin/remote.c:1330
+#: builtin/remote.c:1315
#, c-format
msgid " * [pruned] %s"
msgstr " * [đã bị xén] %s"
-#: builtin/remote.c:1375
+#: builtin/remote.c:1360
msgid "prune remotes after fetching"
msgstr "cắt máy chủ sau khi lấy vá»"
-#: builtin/remote.c:1441 builtin/remote.c:1498 builtin/remote.c:1566
+#: builtin/remote.c:1423 builtin/remote.c:1477 builtin/remote.c:1545
#, c-format
msgid "No such remote '%s'"
msgstr "Không có máy chủ nào có tên “%sâ€"
-#: builtin/remote.c:1461
+#: builtin/remote.c:1439
msgid "add branch"
msgstr "thêm nhánh"
-#: builtin/remote.c:1468
+#: builtin/remote.c:1446
msgid "no remote specified"
msgstr "chưa chỉ ra máy chủ nào"
-#: builtin/remote.c:1485
+#: builtin/remote.c:1463
msgid "query push URLs rather than fetch URLs"
msgstr "truy vấn đẩy URL thay vì lấy"
-#: builtin/remote.c:1487
+#: builtin/remote.c:1465
msgid "return all URLs"
msgstr "trả vá» má»i URL"
-#: builtin/remote.c:1515
+#: builtin/remote.c:1493
#, c-format
msgid "no URLs configured for remote '%s'"
msgstr "không có URL nào được cấu hình cho nhánh “%sâ€"
-#: builtin/remote.c:1541
+#: builtin/remote.c:1519
msgid "manipulate push URLs"
msgstr "đẩy các “URL†bằng tay"
-#: builtin/remote.c:1543
+#: builtin/remote.c:1521
msgid "add URL"
msgstr "thêm URL"
-#: builtin/remote.c:1545
+#: builtin/remote.c:1523
msgid "delete URLs"
msgstr "xóa URLs"
-#: builtin/remote.c:1552
+#: builtin/remote.c:1530
msgid "--add --delete doesn't make sense"
msgstr "--add --delete không hợp lý"
-#: builtin/remote.c:1592
+#: builtin/remote.c:1571
#, c-format
msgid "Invalid old URL pattern: %s"
msgstr "Kiểu mẫu URL cũ không hợp lệ: %s"
-#: builtin/remote.c:1600
+#: builtin/remote.c:1579
#, c-format
msgid "No such URL found: %s"
msgstr "Không tìm thấy URL như vậy: %s"
-#: builtin/remote.c:1602
+#: builtin/remote.c:1581
msgid "Will not delete all non-push URLs"
msgstr "Sẽ không xóa những địa chỉ URL không-push"
-#: builtin/remote.c:1616
+#: builtin/remote.c:1595
msgid "be verbose; must be placed before a subcommand"
msgstr "chi tiết; phải được đặt trước một lệnh-con"
@@ -10049,7 +10146,7 @@ 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:354
+#: builtin/rev-list.c:350
msgid "rev-list does not support display of notes"
msgstr "rev-list không hỗ trợ hiển thị các ghi chú"
@@ -10297,28 +10394,23 @@ msgstr "in các trạng thái từ phần hướng dẫn trên máy dịch vụ"
msgid "git shortlog [<options>] [<revision-range>] [[--] [<path>...]]"
msgstr "git shortlog [<các-tùy-chá»n>] [<vùng-xét-duyệt>] [[--] [<Ä‘Æ°á»ng-dẫn>…]]"
-#: builtin/shortlog.c:131
-#, c-format
-msgid "Missing author: %s"
-msgstr "Thiếu tên tác giả: %s"
-
-#: builtin/shortlog.c:230
+#: builtin/shortlog.c:242
msgid "sort output according to the number of commits per author"
msgstr "sắp xếp kết xuất tuân theo số lượng chuyển giao trên mỗi tác giả"
-#: builtin/shortlog.c:232
+#: builtin/shortlog.c:244
msgid "Suppress commit descriptions, only provides commit count"
msgstr "Chặn má»i mô tả lần chuyển giao, chỉ Ä‘Æ°a ra số lượng lần chuyển giao"
-#: builtin/shortlog.c:234
+#: builtin/shortlog.c:246
msgid "Show the email address of each author"
msgstr "Hiển thị thư điện tử cho từng tác giả"
-#: builtin/shortlog.c:235
+#: builtin/shortlog.c:247
msgid "w[,i1[,i2]]"
msgstr "w[,i1[,i2]]"
-#: builtin/shortlog.c:236
+#: builtin/shortlog.c:248
msgid "Linewrap output"
msgstr "Ngắt dòng khi quá dài"
@@ -10463,45 +10555,45 @@ msgid "skip and remove all lines starting with comment character"
msgstr "giữ và xóa bá» má»i dòng bắt đầu bằng ký tá»± ghi chú"
#: builtin/stripspace.c:38
-msgid "prepend comment character and blank to each line"
-msgstr "treo trước ký tự ghi chú và để trắng cho từng dòng"
+msgid "prepend comment character and space to each line"
+msgstr "treo trước ký tự ghi chú và ký tự khoảng trắng cho từng dòng"
-#: builtin/submodule--helper.c:79 builtin/submodule--helper.c:167
+#: builtin/submodule--helper.c:73 builtin/submodule--helper.c:161
msgid "alternative anchor for relative paths"
msgstr "Ä‘iểm neo thay thế cho các Ä‘Æ°á»ng dẫn tÆ°Æ¡ng đối"
-#: builtin/submodule--helper.c:84
+#: builtin/submodule--helper.c:78
msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
msgstr "git submodule--helper list [--prefix=<Ä‘Æ°á»ng/dẫn>] [<Ä‘Æ°á»ng/dẫn>…]"
-#: builtin/submodule--helper.c:114
+#: builtin/submodule--helper.c:108
msgid "git submodule--helper name <path>"
msgstr "git submodule--helper name <Ä‘Æ°á»ng/dẫn>"
-#: builtin/submodule--helper.c:120
+#: builtin/submodule--helper.c:114
#, c-format
msgid "no submodule mapping found in .gitmodules for path '%s'"
msgstr ""
"Không tìm thấy ánh xạ (mapping) mô-Ä‘un-con trong .gitmodules cho Ä‘Æ°á»ng dẫn "
"“%sâ€"
-#: builtin/submodule--helper.c:170
+#: builtin/submodule--helper.c:164
msgid "where the new submodule will be cloned to"
msgstr "nhân bản mô-đun-con mới vào chỗ nào"
-#: builtin/submodule--helper.c:173
+#: builtin/submodule--helper.c:167
msgid "name of the new submodule"
msgstr "tên của mô-đun-con mới"
-#: builtin/submodule--helper.c:176
+#: builtin/submodule--helper.c:170
msgid "url where to clone the submodule from"
msgstr "url nơi mà nhân bản mô-đun-con từ đó"
-#: builtin/submodule--helper.c:182
+#: builtin/submodule--helper.c:176
msgid "depth for shallow clones"
msgstr "chiá»u sâu lịch sá»­ khi tạo bản sao"
-#: builtin/submodule--helper.c:188
+#: builtin/submodule--helper.c:182
msgid ""
"git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
"<repository>] [--name <name>] [--url <url>][--depth <depth>] [--] [<path>...]"
@@ -10509,38 +10601,38 @@ msgstr ""
"git submodule--helper clone [--prefix=<Ä‘Æ°á»ng/dẫn>] [--quiet] [--reference "
"<kho>] [--name <tên>] [--url <url>][--depth <Ä‘Æ°á»ng/dẫn>] [--] [<Ä‘Æ°á»ng/dẫn>…]"
-#: builtin/submodule--helper.c:202 builtin/submodule--helper.c:208
-#: builtin/submodule--helper.c:216
+#: builtin/submodule--helper.c:196 builtin/submodule--helper.c:202
+#: builtin/submodule--helper.c:210
#, c-format
msgid "could not create directory '%s'"
msgstr "không thể tạo thÆ° mục “%sâ€"
-#: builtin/submodule--helper.c:204
+#: builtin/submodule--helper.c:198
#, c-format
msgid "clone of '%s' into submodule path '%s' failed"
msgstr "Nhân bản “%s†vào Ä‘Æ°á»ng dẫn mô-Ä‘un-con “%s†gặp lá»—i"
-#: builtin/submodule--helper.c:227
+#: builtin/submodule--helper.c:221
#, c-format
msgid "cannot open file '%s'"
msgstr "không thể mở tập tin “%sâ€"
-#: builtin/submodule--helper.c:232
+#: builtin/submodule--helper.c:226
#, c-format
msgid "could not close file %s"
msgstr "không thể đóng tập tin %s"
-#: builtin/submodule--helper.c:247
+#: builtin/submodule--helper.c:241
#, c-format
msgid "could not get submodule directory for '%s'"
msgstr "không thể lấy thÆ° mục mô-Ä‘un-con cho “%sâ€"
-#: builtin/submodule--helper.c:273
+#: builtin/submodule--helper.c:267
msgid "fatal: submodule--helper subcommand must be called with a subcommand"
msgstr ""
"lá»—i nghiêm trá»ng: lệnh con submodule--helper phải được gói vá»›i má»™t lệnh con"
-#: builtin/submodule--helper.c:280
+#: builtin/submodule--helper.c:274
#, c-format
msgid "fatal: '%s' is not a valid submodule--helper subcommand"
msgstr "lá»—i nghiêm trá»ng: “%s†không phải là lệnh con submodule--helper hợp lệ"
@@ -10786,194 +10878,207 @@ msgstr "Äã cập nhật thẻ “%s†(trÆ°á»›c là %s)\n"
msgid "Unpacking objects"
msgstr "Äang giải nén các đối tượng"
-#: builtin/update-index.c:70
+#: builtin/update-index.c:79
#, c-format
msgid "failed to create directory %s"
msgstr "tạo thư mục \"%s\" gặp lỗi"
-#: builtin/update-index.c:76
+#: builtin/update-index.c:85
#, c-format
msgid "failed to stat %s"
msgstr "gặp lỗi khi lấy thông tin thống kê vỠ%s"
-#: builtin/update-index.c:86
+#: builtin/update-index.c:95
#, c-format
msgid "failed to create file %s"
msgstr "gặp lỗi khi tạo tập tin %s"
-#: builtin/update-index.c:94
+#: builtin/update-index.c:103
#, c-format
msgid "failed to delete file %s"
msgstr "gặp lỗi khi xóa tập tin %s"
-#: builtin/update-index.c:101 builtin/update-index.c:203
+#: builtin/update-index.c:110 builtin/update-index.c:212
#, c-format
msgid "failed to delete directory %s"
msgstr "gặp lỗi khi xóa thư mục %s"
-#: builtin/update-index.c:124
+#: builtin/update-index.c:133
#, c-format
-msgid "Testing "
-msgstr "Äang thá»­"
+msgid "Testing mtime in '%s' "
+msgstr "Äang kiểm thá»­ mtime trong “%sâ€"
-#: builtin/update-index.c:136
+#: builtin/update-index.c:145
msgid "directory stat info does not change after adding a new file"
msgstr "thông tin thống kê thư mục không thay đổi sau khi thêm tập tin mới"
-#: builtin/update-index.c:149
+#: builtin/update-index.c:158
msgid "directory stat info does not change after adding a new directory"
msgstr "thông tin thống kê thư mục không thay đổi sau khi thêm thư mục mới"
-#: builtin/update-index.c:162
+#: builtin/update-index.c:171
msgid "directory stat info changes after updating a file"
msgstr "thông tin thống kê thư mục thay đổi sau khi cập nhật tập tin"
-#: builtin/update-index.c:173
+#: builtin/update-index.c:182
msgid "directory stat info changes after adding a file inside subdirectory"
msgstr ""
"thông tin thống kê thư mục thay đổi sau khi thêm tập tin mới vào trong thư "
"mục con"
-#: builtin/update-index.c:184
+#: builtin/update-index.c:193
msgid "directory stat info does not change after deleting a file"
msgstr "thông tin thống kê thư mục không thay đổi sau khi xóa tập tin"
-#: builtin/update-index.c:197
+#: builtin/update-index.c:206
msgid "directory stat info does not change after deleting a directory"
msgstr "thông tin thống kê thư mục không thay đổi sau khi xóa thư mục"
-#: builtin/update-index.c:204
+#: builtin/update-index.c:213
msgid " OK"
msgstr " Äồng ý"
-#: builtin/update-index.c:564
+#: builtin/update-index.c:575
msgid "git update-index [<options>] [--] [<file>...]"
msgstr "git update-index [<các-tùy-chá»n>] [--] [<tập-tin>…]"
-#: builtin/update-index.c:918
+#: builtin/update-index.c:930
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:921
+#: builtin/update-index.c:933
msgid "refresh: ignore submodules"
msgstr "refresh: lỠđi mô-đun-con"
-#: builtin/update-index.c:924
+#: builtin/update-index.c:936
msgid "do not ignore new files"
msgstr "không bỠqua các tập tin mới tạo"
-#: builtin/update-index.c:926
+#: builtin/update-index.c:938
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:928
+#: builtin/update-index.c:940
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:930
+#: builtin/update-index.c:942
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:933
+#: builtin/update-index.c:945
msgid "refresh stat information"
msgstr "lấy lại thông tin thống kê"
-#: builtin/update-index.c:937
+#: builtin/update-index.c:949
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:941
+#: builtin/update-index.c:953
msgid "<mode>,<object>,<path>"
msgstr "<chế_Ä‘á»™>,<đối_tượng>,<Ä‘Æ°á»ng_dẫn>"
-#: builtin/update-index.c:942
+#: builtin/update-index.c:954
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:946
+#: builtin/update-index.c:958
msgid "(+/-)x"
msgstr "(+/-)x"
-#: builtin/update-index.c:947
+#: builtin/update-index.c:959
msgid "override the executable bit of the listed files"
msgstr "ghi đè lên bít thi hành của các tập tin được liệt kê"
-#: builtin/update-index.c:951
+#: builtin/update-index.c:963
msgid "mark files as \"not changing\""
msgstr "Äánh dấu các tập tin là \"không thay đổi\""
-#: builtin/update-index.c:954
+#: builtin/update-index.c:966
msgid "clear assumed-unchanged bit"
msgstr "xóa bít assumed-unchanged (giả định là không thay đổi)"
-#: builtin/update-index.c:957
+#: builtin/update-index.c:969
msgid "mark files as \"index-only\""
msgstr "đánh dấu các tập tin là “chỉ-Ä‘á»câ€"
-#: builtin/update-index.c:960
+#: builtin/update-index.c:972
msgid "clear skip-worktree bit"
msgstr "xóa bít skip-worktree"
-#: builtin/update-index.c:963
+#: builtin/update-index.c:975
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:965
+#: builtin/update-index.c:977
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:967
+#: builtin/update-index.c:979
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:969
+#: builtin/update-index.c:981
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:973
+#: builtin/update-index.c:985
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:977
+#: builtin/update-index.c:989
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:981
+#: builtin/update-index.c:993
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:985
+#: builtin/update-index.c:997
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:988
+#: builtin/update-index.c:1000
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:990
+#: builtin/update-index.c:1002
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:994
+#: builtin/update-index.c:1006
msgid "write index in this format"
msgstr "ghi mục lục ở định dạng này"
-#: builtin/update-index.c:996
+#: builtin/update-index.c:1008
msgid "enable or disable split index"
msgstr "bật/tắt chia cắt bảng mục lục"
-#: builtin/update-index.c:998
+#: builtin/update-index.c:1010
msgid "enable/disable untracked cache"
msgstr "bật/tắt bộ đệm không theo vết"
-#: builtin/update-index.c:1000
+#: builtin/update-index.c:1012
+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:1014
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:1134
+msgid "Untracked cache disabled"
+msgstr "Nhớ đệm không theo vết bị tắt"
+
+#: builtin/update-index.c:1146
+#, c-format
+msgid "Untracked cache enabled for '%s'"
+msgstr "Nhá»› đệm không theo vết được bật cho “%sâ€"
+
#: builtin/update-ref.c:9
msgid "git update-ref [<options>] -d <refname> [<old-val>]"
msgstr "git update-ref [<các-tùy-chá»n>] -d <refname> [<biến-cÅ©>]"
@@ -11089,33 +11194,33 @@ msgstr "gặp lá»—i khi gỡ bá»: %s"
msgid "'%s' already exists"
msgstr "“%s†đã có từ trước rồi"
-#: builtin/worktree.c:235
+#: builtin/worktree.c:233
#, c-format
msgid "could not create directory of '%s'"
msgstr "không thể tạo thÆ° mục của “%sâ€"
-#: builtin/worktree.c:271
+#: builtin/worktree.c:269
#, c-format
msgid "Preparing %s (identifier %s)"
msgstr "Äang chuẩn bị %s (định danh %s)"
-#: builtin/worktree.c:319
+#: builtin/worktree.c:317
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:321
+#: builtin/worktree.c:319
msgid "create a new branch"
msgstr "tạo nhánh mới"
-#: builtin/worktree.c:323
+#: builtin/worktree.c:321
msgid "create or reset a branch"
msgstr "tạo hay đặt lại một nhánh"
-#: builtin/worktree.c:324
+#: builtin/worktree.c:322
msgid "detach HEAD at named commit"
msgstr "rá»i bá» HEAD tại lần chuyển giao theo tên"
-#: builtin/worktree.c:331
+#: builtin/worktree.c:329
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"
@@ -11135,7 +11240,7 @@ 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"
-#: credential-cache--daemon.c:255
+#: credential-cache--daemon.c:262
msgid "print debugging messages to stderr"
msgstr "in thông tin gỡ lỗi ra đầu ra lỗi tiêu chuẩn"
@@ -11149,6 +11254,10 @@ msgstr ""
"hÆ°á»›ng dẫn vá» khái niệm. Xem “git help <lệnh>†hay “git help <khái-niệm>â€\n"
"để xem các đặc tả cho lệnh hay khái niệm cụ thể."
+#: http.c:320
+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"
+
#: common-cmds.h:9
msgid "start a working area (see also: git help tutorial)"
msgstr "bắt đầu một vùng làm việc (xem thêm: git help tutorial)"
@@ -11950,7 +12059,7 @@ msgstr "Không thể tạo thÆ° mục mô-Ä‘un-con rá»—ng “$displaypathâ€"
msgid "Submodule '$name' ($url) unregistered for path '$displaypath'"
msgstr "Mô-Ä‘un-con “$name†($url) được bỠđăng ký cho Ä‘Æ°á»ng dẫn “$displaypathâ€"
-#: git-submodule.sh:705
+#: git-submodule.sh:723
#, sh-format
msgid ""
"Submodule path '$displaypath' not initialized\n"
@@ -11959,55 +12068,55 @@ msgstr ""
"ÄÆ°á»ng dẫn mô-Ä‘un-con “$displaypath†chÆ°a được khởi tạo.\n"
"Có lẽ bạn muốn sử dụng lệnh “update --init�"
-#: git-submodule.sh:718
+#: git-submodule.sh:736
#, sh-format
msgid "Unable to find current revision in submodule path '$displaypath'"
msgstr ""
"Không tìm thấy Ä‘iểm xét duyệt hiện hành trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con "
"“$displaypathâ€"
-#: git-submodule.sh:727
+#: git-submodule.sh:745
#, sh-format
msgid "Unable to fetch in submodule path '$sm_path'"
msgstr "Không thể lấy vá» trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con “$sm_pathâ€"
-#: git-submodule.sh:751
+#: git-submodule.sh:768
#, sh-format
msgid "Unable to fetch in submodule path '$displaypath'"
msgstr "Không thể lấy vá» trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con “$displaypathâ€"
-#: git-submodule.sh:765
+#: git-submodule.sh:788
#, sh-format
msgid "Unable to checkout '$sha1' in submodule path '$displaypath'"
msgstr "Không thể lấy ra “$sha1†trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con “$displaypathâ€"
-#: git-submodule.sh:766
+#: git-submodule.sh:789
#, sh-format
msgid "Submodule path '$displaypath': checked out '$sha1'"
msgstr "ÄÆ°á»ng dẫn mô-Ä‘un-con “$displaypathâ€: đã checkout “$sha1â€"
-#: git-submodule.sh:770
+#: git-submodule.sh:793
#, sh-format
msgid "Unable to rebase '$sha1' in submodule path '$displaypath'"
msgstr "Không thể cải tổ “$sha1†trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con “$displaypathâ€"
-#: git-submodule.sh:771
+#: git-submodule.sh:794
#, sh-format
msgid "Submodule path '$displaypath': rebased into '$sha1'"
msgstr "ÄÆ°á»ng dẫn mô-Ä‘un-con “$displaypathâ€: được rebase vào trong “$sha1â€"
-#: git-submodule.sh:776
+#: git-submodule.sh:799
#, sh-format
msgid "Unable to merge '$sha1' in submodule path '$displaypath'"
msgstr ""
"Không thể hòa trá»™n (merge) “$sha1†trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con “$displaypathâ€"
-#: git-submodule.sh:777
+#: git-submodule.sh:800
#, sh-format
msgid "Submodule path '$displaypath': merged in '$sha1'"
msgstr "ÄÆ°á»ng dẫn mô-Ä‘un-con “$displaypathâ€: được hòa trá»™n vào “$sha1â€"
-#: git-submodule.sh:782
+#: git-submodule.sh:805
#, sh-format
msgid ""
"Execution of '$command $sha1' failed in submodule path '$prefix$sm_path'"
@@ -12015,56 +12124,129 @@ msgstr ""
"Thá»±c hiện không thành công lệnh “$command $sha1†trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con "
"“$prefix$sm_pathâ€"
-#: git-submodule.sh:783
+#: git-submodule.sh:806
#, sh-format
msgid "Submodule path '$prefix$sm_path': '$command $sha1'"
msgstr "ÄÆ°á»ng dẫn mô-Ä‘un-con “$prefix$sm_pathâ€: “$command $sha1â€"
-#: git-submodule.sh:813
+#: git-submodule.sh:836
#, sh-format
msgid "Failed to recurse into submodule path '$displaypath'"
msgstr "Gặp lá»—i khi đệ quy vào trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con “$displaypathâ€"
-#: git-submodule.sh:921
+#: git-submodule.sh:944
msgid "The --cached option cannot be used with the --files option"
msgstr "Tùy chá»n --cached không thể dùng cùng vá»›i tùy chá»n --files"
-#: git-submodule.sh:973
+#: git-submodule.sh:996
#, sh-format
msgid "unexpected mode $mod_dst"
msgstr "chế độ không như mong chỠ$mod_dst"
-#: git-submodule.sh:993
+#: git-submodule.sh:1016
#, sh-format
msgid " Warn: $display_name doesn't contain commit $sha1_src"
msgstr " Cảnh báo: $display_name không chứa lần chuyển giao $sha1_src"
-#: git-submodule.sh:996
+#: git-submodule.sh:1019
#, sh-format
msgid " Warn: $display_name doesn't contain commit $sha1_dst"
msgstr " Cảnh báo: $display_name không chứa lần chuyển giao $sha1_dst"
-#: git-submodule.sh:999
+#: git-submodule.sh:1022
#, sh-format
msgid " Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst"
msgstr ""
" Cảnh báo: $display_name không chứa những lần chuyển giao $sha1_src và "
"$sha1_dst"
-#: git-submodule.sh:1024
+#: git-submodule.sh:1047
msgid "blob"
msgstr "blob"
-#: git-submodule.sh:1142
+#: git-submodule.sh:1165
#, sh-format
msgid "Failed to recurse into submodule path '$sm_path'"
msgstr "Gặp lá»—i khi đệ quy vào trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con “$sm_pathâ€"
-#: git-submodule.sh:1206
+#: git-submodule.sh:1229
#, sh-format
msgid "Synchronizing submodule url for '$displaypath'"
msgstr "Url Mô-Ä‘un-con đồng bá»™ hóa cho “$displaypathâ€"
+#~ msgid "unable to parse format"
+#~ msgstr "không thể phân tích định dạng"
+
+#~ msgid "improper format entered align:%s"
+#~ msgstr "định dạng không đúng chỗ căn chỉnh:%s"
+
+#~ msgid "Could not set core.worktree in %s"
+#~ msgstr "Không thể đặt “core.worktree†trong “%sâ€."
+
+#~ msgid ""
+#~ "push.default is unset; its implicit value has changed in\n"
+#~ "Git 2.0 from 'matching' to 'simple'. To squelch this message\n"
+#~ "and maintain the traditional behavior, use:\n"
+#~ "\n"
+#~ " git config --global push.default matching\n"
+#~ "\n"
+#~ "To squelch this message and adopt the new behavior now, use:\n"
+#~ "\n"
+#~ " git config --global push.default simple\n"
+#~ "\n"
+#~ "When push.default is set to 'matching', git will push local branches\n"
+#~ "to the remote branches that already exist with the same name.\n"
+#~ "\n"
+#~ "Since Git 2.0, Git defaults to the more conservative 'simple'\n"
+#~ "behavior, which only pushes the current branch to the corresponding\n"
+#~ "remote branch that 'git pull' uses to update the current branch.\n"
+#~ "\n"
+#~ "See 'git help config' and search for 'push.default' for further "
+#~ "information.\n"
+#~ "(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode\n"
+#~ "'current' instead of 'simple' if you sometimes use older versions of Git)"
+#~ msgstr ""
+#~ "biến push.default chưa được đặt; giá trị ngầm định của nó\n"
+#~ "đã được thay đổi trong Git 2.0 từ “matching†thành “simpleâ€.\n"
+#~ "Äể không hiển thị nhắc nhở này và duy trì cách xá»­ lý cÅ©, hãy chạy lệnh:\n"
+#~ "\n"
+#~ " git config --global push.default matching\n"
+#~ "\n"
+#~ "Äể không hiển thị nhắc nhở này và áp dụng cách ứng xá»­ má»›i, hãy chạy "
+#~ "lệnh:\n"
+#~ "\n"
+#~ " git config --global push.default simple\n"
+#~ "\n"
+#~ "Khi push.default được đặt thành “matchingâ€, git sẽ đẩy các nhánh ná»™i bá»™\n"
+#~ "lên các nhánh trên máy chủ, cái mà đã sẵn có và cùng tên.\n"
+#~ "\n"
+#~ "Trong 2.0, Git sẽ mặc định duy trì các ứng xá»­ “simpleâ€,\n"
+#~ "cái này chỉ đẩy những nhánh hiện hành lên các nhánh tương ứng\n"
+#~ "trên máy chủ cái mà lệnh “git pull†dùng để cập nhật nhánh hiện tại.\n"
+#~ "\n"
+#~ "Xem “git help config†và tìm đến “push.default†để có thêm thông tin.\n"
+#~ "(chế độ “simple†được bắt đầu sử dụng từ Git 1.7.11. Sử dụng chế độ tương "
+#~ "tá»±\n"
+#~ "“current†thay vì “simple†nếu bạn thỉnh thoảng phải sử dụng bản Git cũ)"
+
+#~ msgid "Could not append '%s'"
+#~ msgstr "Không thể nối thêm “%sâ€"
+
+#~ msgid "Could not set '%s'"
+#~ msgstr "Không thể đặt “%sâ€"
+
+#~ msgid "unable to look up current user in the passwd file: %s"
+#~ msgstr "không tìm thấy ngÆ°á»i dùng hiện tại trong tập tin passwd: %s"
+
+#~ 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á»­"
+
#~ msgid "branch '%s' does not point at a commit"
#~ msgstr "nhánh “%s†không chỉ đến một lần chuyển giao nào cả"
diff --git a/po/zh_CN.po b/po/zh_CN.po
index c7fed4628b..09d5d47380 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -135,8 +135,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Git\n"
"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2015-12-22 22:50+0800\n"
-"PO-Revision-Date: 2015-12-22 23:06+0800\n"
+"POT-Creation-Date: 2016-03-16 00:16+0800\n"
+"PO-Revision-Date: 2016-03-16 00:18+0800\n"
"Last-Translator: Jiang Xin <worldhello.net@gmail.com>\n"
"Language-Team: GitHub <https://github.com/jiangxin/git/>\n"
"Language: zh_CN\n"
@@ -158,7 +158,7 @@ msgstr ""
"请在工作区改正文件,然åŽé…Œæƒ…使用 'git add/rm <文件>' 命令标记\n"
"解决方案并æ交。"
-#: advice.c:101 builtin/merge.c:1225
+#: advice.c:101 builtin/merge.c:1226
msgid "You have not concluded your merge (MERGE_HEAD exists)."
msgstr "您尚未结æŸæ‚¨çš„åˆå¹¶ï¼ˆå­˜åœ¨ MERGE_HEAD)。"
@@ -201,7 +201,7 @@ msgstr "æ ¼å¼"
msgid "archive format"
msgstr "归档格å¼"
-#: archive.c:430 builtin/log.c:1229
+#: archive.c:430 builtin/log.c:1232
msgid "prefix"
msgstr "å‰ç¼€"
@@ -209,11 +209,11 @@ msgstr "å‰ç¼€"
msgid "prepend prefix to each pathname in the archive"
msgstr "为归档中æ¯ä¸ªè·¯å¾„å加上å‰ç¼€"
-#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2535
-#: builtin/blame.c:2536 builtin/config.c:58 builtin/fast-export.c:987
-#: builtin/fast-export.c:989 builtin/grep.c:707 builtin/hash-object.c:99
-#: builtin/ls-files.c:446 builtin/ls-files.c:449 builtin/notes.c:395
-#: builtin/notes.c:558 builtin/read-tree.c:109 parse-options.h:153
+#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2547
+#: builtin/blame.c:2548 builtin/config.c:60 builtin/fast-export.c:987
+#: builtin/fast-export.c:989 builtin/grep.c:720 builtin/hash-object.c:100
+#: builtin/ls-files.c:459 builtin/ls-files.c:462 builtin/notes.c:398
+#: builtin/notes.c:561 builtin/read-tree.c:109 parse-options.h:153
msgid "file"
msgstr "文件"
@@ -245,7 +245,7 @@ msgstr "压缩效果更好"
msgid "list supported archive formats"
msgstr "列出支æŒçš„归档格å¼"
-#: archive.c:451 builtin/archive.c:90 builtin/clone.c:77
+#: archive.c:451 builtin/archive.c:90 builtin/clone.c:78
msgid "repo"
msgstr "仓库"
@@ -253,7 +253,7 @@ msgstr "仓库"
msgid "retrieve the archive from remote repository <repo>"
msgstr "从远程仓库(<仓库>)æå–归档文件"
-#: archive.c:453 builtin/archive.c:92 builtin/notes.c:479
+#: archive.c:453 builtin/archive.c:92 builtin/notes.c:482
msgid "command"
msgstr "命令"
@@ -261,7 +261,7 @@ msgstr "命令"
msgid "path to the remote git-upload-archive command"
msgstr "远程 git-upload-archive 命令的路径"
-#: attr.c:265
+#: attr.c:263
msgid ""
"Negative patterns are ignored in git attributes\n"
"Use '\\!' for literal leading exclamation."
@@ -269,81 +269,97 @@ msgstr ""
"负值模版在 git attributes 中被忽略\n"
"当字符串确实è¦ä»¥æ„Ÿå¹å·å¼€å§‹æ—¶ï¼Œä½¿ç”¨ '\\!'。"
-#: branch.c:61
+#: branch.c:53
+#, c-format
+msgid ""
+"\n"
+"After fixing the error cause you may try to fix up\n"
+"the remote tracking information by invoking\n"
+"\"git branch --set-upstream-to=%s%s%s\"."
+msgstr ""
+"\n"
+"在修å¤é”™è¯¯åŽï¼Œæ‚¨å¯ä»¥å°è¯•ä¿®æ”¹è¿œç¨‹è·Ÿè¸ªåˆ†æ”¯ï¼Œé€šè¿‡æ‰§è¡Œå‘½ä»¤\n"
+"\"git branch --set-upstream-to=%s%s%s\" 。"
+
+#: branch.c:67
#, c-format
msgid "Not setting branch %s as its own upstream."
msgstr "未设置分支 %s 作为它自己的上游。"
-#: branch.c:84
+#: branch.c:93
#, c-format
msgid "Branch %s set up to track remote branch %s from %s by rebasing."
msgstr "分支 %1$s 设置为使用å˜åŸºæ¥è·Ÿè¸ªæ¥è‡ª %3$s 的远程分支 %2$s。"
-#: branch.c:85
+#: branch.c:94
#, c-format
msgid "Branch %s set up to track remote branch %s from %s."
msgstr "分支 %1$s 设置为跟踪æ¥è‡ª %3$s 的远程分支 %2$s。"
-#: branch.c:89
+#: branch.c:98
#, c-format
msgid "Branch %s set up to track local branch %s by rebasing."
msgstr "分支 %s 设置为使用å˜åŸºæ¥è·Ÿè¸ªæœ¬åœ°åˆ†æ”¯ %s。"
-#: branch.c:90
+#: branch.c:99
#, c-format
msgid "Branch %s set up to track local branch %s."
msgstr "分支 %s 设置为跟踪本地分支 %s。"
-#: branch.c:95
+#: branch.c:104
#, c-format
msgid "Branch %s set up to track remote ref %s by rebasing."
msgstr "分支 %s 设置为使用å˜åŸºæ¥è·Ÿè¸ªè¿œç¨‹å¼•ç”¨ %s。"
-#: branch.c:96
+#: branch.c:105
#, c-format
msgid "Branch %s set up to track remote ref %s."
msgstr "分支 %s 设置为跟踪远程引用 %s。"
-#: branch.c:100
+#: branch.c:109
#, c-format
msgid "Branch %s set up to track local ref %s by rebasing."
msgstr "分支 %s 设置为使用å˜åŸºæ¥è·Ÿè¸ªæœ¬åœ°å¼•ç”¨ %s。"
-#: branch.c:101
+#: branch.c:110
#, c-format
msgid "Branch %s set up to track local ref %s."
msgstr "分支 %s 设置为跟踪本地引用 %s。"
-#: branch.c:134
+#: branch.c:119
+msgid "Unable to write upstream branch configuration"
+msgstr "无法写入上游分支é…ç½®"
+
+#: branch.c:156
#, c-format
msgid "Not tracking: ambiguous information for ref %s"
msgstr "未跟踪:引用 %s 有歧义"
-#: branch.c:163
+#: branch.c:185
#, c-format
msgid "'%s' is not a valid branch name."
msgstr "'%s' ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„分支å称。"
-#: branch.c:168
+#: branch.c:190
#, c-format
msgid "A branch named '%s' already exists."
msgstr "一个分支å '%s' å·²ç»å­˜åœ¨ã€‚"
-#: branch.c:176
+#: branch.c:198
msgid "Cannot force update the current branch."
msgstr "无法强制更新当å‰åˆ†æ”¯ã€‚"
-#: branch.c:196
+#: branch.c:218
#, c-format
msgid "Cannot setup tracking information; starting point '%s' is not a branch."
msgstr "无法设置跟踪信æ¯ï¼›èµ·å§‹ç‚¹ '%s' ä¸æ˜¯ä¸€ä¸ªåˆ†æ”¯ã€‚"
-#: branch.c:198
+#: branch.c:220
#, c-format
msgid "the requested upstream branch '%s' does not exist"
msgstr "请求的上游分支 '%s' ä¸å­˜åœ¨"
-#: branch.c:200
+#: branch.c:222
msgid ""
"\n"
"If you are planning on basing your work on an upstream\n"
@@ -361,22 +377,22 @@ msgstr ""
"如果您正计划推é€ä¸€ä¸ªèƒ½ä¸Žå¯¹åº”远程分支建立跟踪的新的本地分支,\n"
"您å¯èƒ½éœ€è¦ä½¿ç”¨ \"git push -u\" 推é€åˆ†æ”¯å¹¶é…置和上游的关è”。"
-#: branch.c:244
+#: branch.c:266
#, c-format
msgid "Not a valid object name: '%s'."
msgstr "ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„对象å:'%s'。"
-#: branch.c:264
+#: branch.c:286
#, c-format
msgid "Ambiguous object name: '%s'."
msgstr "歧义的对象å:'%s'。"
-#: branch.c:269
+#: branch.c:291
#, c-format
msgid "Not a valid branch point: '%s'."
msgstr "无效的分支点:'%s'。"
-#: branch.c:322
+#: branch.c:344
#, c-format
msgid "'%s' is already checked out at '%s'"
msgstr "'%s' å·²ç»æ£€å‡ºåˆ° '%s'"
@@ -400,10 +416,10 @@ msgstr "ä¸èƒ½æ‰“å¼€ '%s'"
msgid "Repository lacks these prerequisite commits:"
msgstr "仓库中缺少这些必备的æ交:"
-#: bundle.c:163 ref-filter.c:1372 sequencer.c:636 sequencer.c:1083
-#: builtin/blame.c:2734 builtin/commit.c:1045 builtin/log.c:334
-#: builtin/log.c:849 builtin/log.c:1461 builtin/log.c:1694 builtin/merge.c:358
-#: builtin/shortlog.c:158
+#: bundle.c:163 ref-filter.c:1462 sequencer.c:627 sequencer.c:1074
+#: builtin/blame.c:2754 builtin/commit.c:1045 builtin/log.c:334
+#: builtin/log.c:852 builtin/log.c:1467 builtin/log.c:1700 builtin/merge.c:358
+#: builtin/shortlog.c:170
msgid "revision walk setup failed"
msgstr "版本é历设置失败"
@@ -442,7 +458,7 @@ msgstr "rev-list 终止"
msgid "ref '%s' is excluded by the rev-list options"
msgstr "引用 '%s' 被 rev-list 选项排除"
-#: bundle.c:443 builtin/log.c:157 builtin/log.c:1369 builtin/shortlog.c:261
+#: bundle.c:443 builtin/log.c:157 builtin/log.c:1372 builtin/shortlog.c:273
#, c-format
msgid "unrecognized argument: %s"
msgstr "未能识别的å‚数:%s"
@@ -465,8 +481,8 @@ msgstr "index-pack 终止"
msgid "invalid color value: %.*s"
msgstr "无效的颜色值:%.*s"
-#: commit.c:40 builtin/am.c:452 builtin/am.c:488 builtin/am.c:1520
-#: builtin/am.c:2149
+#: commit.c:40 builtin/am.c:437 builtin/am.c:473 builtin/am.c:1505
+#: builtin/am.c:2135
#, c-format
msgid "could not parse %s"
msgstr "ä¸èƒ½è§£æž %s"
@@ -480,59 +496,64 @@ msgstr "%s %s ä¸æ˜¯ä¸€ä¸ªæ交!"
msgid "memory exhausted"
msgstr "内存耗尽"
-#: config.c:474 config.c:476
+#: config.c:475 config.c:477
#, c-format
-msgid "bad config file line %d in %s"
-msgstr "é…置文件 %2$s 出错于第 %1$d è¡Œ"
+msgid "bad config line %d in %s %s"
+msgstr "%2$s %3$s 出错于第 %1$d 行"
-#: config.c:592
+#: config.c:593
#, c-format
-msgid "bad numeric config value '%s' for '%s' in %s: %s"
-msgstr "文件 %3$s 中é…ç½®å˜é‡ '%2$s' çš„æ•°å­—å–值 '%1$s' 设置错误: %4$s"
+msgid "bad numeric config value '%s' for '%s' in %s %s: %s"
+msgstr "%3$s %4$s 中é…ç½®å˜é‡ '%2$s' çš„æ•°å­—å–值 '%1$s' 设置错误: %5$s"
-#: config.c:594
+#: config.c:595
#, c-format
msgid "bad numeric config value '%s' for '%s': %s"
msgstr "é…ç½®å˜é‡ '%2$s' çš„æ•°å­—å–值 '%1$s' 设置错误: %3$s"
-#: config.c:679
+#: config.c:680
#, c-format
msgid "failed to expand user dir in: '%s'"
msgstr "无法扩展 '%s' 中的用户目录"
-#: config.c:757 config.c:768
+#: config.c:758 config.c:769
#, c-format
msgid "bad zlib compression level %d"
msgstr "错误的 zlib 压缩级别 %d"
-#: config.c:890
+#: config.c:891
#, c-format
msgid "invalid mode for object creation: %s"
msgstr "无效的对象创建模å¼ï¼š%s"
-#: config.c:1216
+#: config.c:1220
msgid "unable to parse command-line config"
msgstr "无法解æžå‘½ä»¤è¡Œä¸­çš„é…ç½®"
-#: config.c:1277
+#: config.c:1281
msgid "unknown error occured while reading the configuration files"
msgstr "在读å–é…置文件时é‡åˆ°æœªçŸ¥é”™è¯¯"
-#: config.c:1601
+#: config.c:1629
#, c-format
msgid "unable to parse '%s' from command-line config"
msgstr "无法解æžå‘½ä»¤è¡Œé…置中的 '%s'"
-#: config.c:1603
+#: config.c:1631
#, c-format
msgid "bad config variable '%s' in file '%s' at line %d"
msgstr "在文件 '%2$s' 的第 %3$d è¡Œå‘现错误的é…ç½®å˜é‡ '%1$s'"
-#: config.c:1662
+#: config.c:1690
#, c-format
msgid "%s has multiple values"
msgstr "%s 有多个å–值"
+#: config.c:2226
+#, c-format
+msgid "Could not set '%s' to '%s'"
+msgstr "ä¸èƒ½è®¾ç½® '%s' 为 '%s'"
+
#: connected.c:69
msgid "Could not run 'git rev-list'"
msgstr "ä¸èƒ½æ‰§è¡Œ 'git rev-list'"
@@ -650,16 +671,16 @@ msgstr ""
"å‘现é…ç½®å˜é‡ 'diff.dirstat' 中的错误:\n"
"%s"
-#: diff.c:3000
+#: diff.c:2997
#, c-format
msgid "external diff died, stopping at %s"
msgstr "外部 diff 退出,åœæ­¢åœ¨ %s"
-#: diff.c:3396
+#: diff.c:3393
msgid "--follow requires exactly one pathspec"
msgstr "--follow å‚æ•°åŽåªè·Ÿä¸€ä¸ª pathspec"
-#: diff.c:3559
+#: diff.c:3556
#, c-format
msgid ""
"Failed to parse --dirstat/-X option parameter:\n"
@@ -668,18 +689,18 @@ msgstr ""
"æ— æ³•è§£æž --dirstat/-X 选项的å‚数:\n"
"%s"
-#: diff.c:3573
+#: diff.c:3570
#, c-format
msgid "Failed to parse --submodule option parameter: '%s'"
msgstr "æ— æ³•è§£æž --submodule 选项的å‚数:'%s'"
-#: dir.c:1915
+#: dir.c:2004
msgid "failed to get kernel name and information"
msgstr "无法获得内核å称和信æ¯"
-#: dir.c:1998
-msgid "Untracked cache is disabled on this system."
-msgstr "缓存未跟踪文件在本系统被ç¦ç”¨"
+#: dir.c:2123
+msgid "Untracked cache is disabled on this system or location."
+msgstr "缓存未跟踪文件在本系统或ä½ç½®ä¸­è¢«ç¦ç”¨ã€‚"
#: gpg-interface.c:166 gpg-interface.c:237
msgid "could not run gpg."
@@ -718,20 +739,20 @@ msgstr "'%s':%s"
msgid "'%s': short read %s"
msgstr "'%s':读å–ä¸å®Œæ•´ %s"
-#: help.c:207
+#: help.c:205
#, c-format
msgid "available git commands in '%s'"
msgstr "在 '%s' 下å¯ç”¨çš„ git 命令"
-#: help.c:214
+#: help.c:212
msgid "git commands available from elsewhere on your $PATH"
msgstr "在 $PATH 路径中的其他地方å¯ç”¨çš„ git 命令"
-#: help.c:246
+#: help.c:244
msgid "These are common Git commands used in various situations:"
msgstr "这些是å„ç§åœºåˆå¸¸è§çš„ Git 命令:"
-#: help.c:311
+#: help.c:309
#, c-format
msgid ""
"'%s' appears to be a git command, but we were not\n"
@@ -740,11 +761,11 @@ msgstr ""
"'%s' åƒæ˜¯ä¸€ä¸ª git 命令,但å´æ— æ³•è¿è¡Œã€‚\n"
"å¯èƒ½æ˜¯ git-%s å—æŸï¼Ÿ"
-#: help.c:368
+#: help.c:366
msgid "Uh oh. Your system reports no Git commands at all."
msgstr "唉呀,您的系统中未å‘现 Git 命令。"
-#: help.c:390
+#: help.c:388
#, c-format
msgid ""
"WARNING: You called a Git command named '%s', which does not exist.\n"
@@ -753,17 +774,17 @@ msgstr ""
"警告:您è¿è¡Œä¸€ä¸ªä¸å­˜åœ¨çš„ Git 命令 '%s'。继续执行å‡å®šæ‚¨è¦è¦è¿è¡Œçš„\n"
"是 '%s'"
-#: help.c:395
+#: help.c:393
#, c-format
msgid "in %0.1f seconds automatically..."
msgstr "在 %0.1f 秒钟åŽè‡ªåŠ¨è¿è¡Œ..."
-#: help.c:402
+#: help.c:400
#, c-format
msgid "git: '%s' is not a git command. See 'git --help'."
msgstr "git:'%s' ä¸æ˜¯ä¸€ä¸ª git 命令。å‚è§ 'git --help'。"
-#: help.c:406 help.c:466
+#: help.c:404 help.c:464
msgid ""
"\n"
"Did you mean this?"
@@ -777,7 +798,7 @@ msgstr[1] ""
"\n"
"您指的是这其中的æŸä¸€ä¸ªä¹ˆï¼Ÿ"
-#: help.c:462
+#: help.c:460
#, c-format
msgid "%s: %s - %s"
msgstr "%s:%s - %s"
@@ -786,8 +807,8 @@ msgstr "%s:%s - %s"
msgid "failed to read the cache"
msgstr "无法读å–缓存"
-#: merge.c:94 builtin/am.c:2022 builtin/am.c:2057 builtin/checkout.c:376
-#: builtin/checkout.c:587 builtin/clone.c:722
+#: merge.c:94 builtin/am.c:2008 builtin/am.c:2043 builtin/checkout.c:376
+#: builtin/checkout.c:587 builtin/clone.c:730
msgid "unable to write new index file"
msgstr "无法写新的索引文件"
@@ -805,64 +826,64 @@ msgstr "为路径 '%s' addinfo_cache 失败"
msgid "error building trees"
msgstr "无法创建树"
-#: merge-recursive.c:686
+#: merge-recursive.c:689
#, c-format
msgid "failed to create path '%s'%s"
msgstr "无法创建路径 '%s'%s"
-#: merge-recursive.c:697
+#: merge-recursive.c:700
#, c-format
msgid "Removing %s to make room for subdirectory\n"
msgstr "删除 %s 以便为å­ç›®å½•ç•™å‡ºç©ºé—´\n"
-#: merge-recursive.c:711 merge-recursive.c:732
+#: merge-recursive.c:714 merge-recursive.c:735
msgid ": perhaps a D/F conflict?"
msgstr ":å¯èƒ½æ˜¯ä¸€ä¸ªç›®å½•/文件冲çªï¼Ÿ"
-#: merge-recursive.c:722
+#: merge-recursive.c:725
#, c-format
msgid "refusing to lose untracked file at '%s'"
msgstr "æ‹’ç»ä¸¢å¼ƒ '%s' 中的未跟踪文件"
-#: merge-recursive.c:762
+#: merge-recursive.c:765
#, c-format
msgid "cannot read object %s '%s'"
msgstr "ä¸èƒ½è¯»å–对象 %s '%s'"
-#: merge-recursive.c:764
+#: merge-recursive.c:767
#, c-format
msgid "blob expected for %s '%s'"
msgstr "%s '%s' 应为数æ®å¯¹è±¡"
-#: merge-recursive.c:787 builtin/clone.c:369
+#: merge-recursive.c:790 builtin/clone.c:374
#, c-format
msgid "failed to open '%s'"
msgstr "无法打开 '%s'"
-#: merge-recursive.c:795
+#: merge-recursive.c:798
#, c-format
msgid "failed to symlink '%s'"
msgstr "无法创建符å·é“¾æŽ¥ '%s'"
-#: merge-recursive.c:798
+#: merge-recursive.c:801
#, c-format
msgid "do not know what to do with %06o %s '%s'"
msgstr "ä¸çŸ¥é“å¦‚ä½•å¤„ç† %06o %s '%s'"
-#: merge-recursive.c:936
+#: merge-recursive.c:939
msgid "Failed to execute internal merge"
msgstr "无法执行内部åˆå¹¶"
-#: merge-recursive.c:940
+#: merge-recursive.c:943
#, c-format
msgid "Unable to add %s to database"
msgstr "ä¸èƒ½æ·»åŠ  %s 至对象库"
-#: merge-recursive.c:956
+#: merge-recursive.c:959
msgid "unsupported object type in the tree"
msgstr "在树中有ä¸æ”¯æŒçš„对象类型"
-#: merge-recursive.c:1031 merge-recursive.c:1045
+#: merge-recursive.c:1034 merge-recursive.c:1048
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -871,7 +892,7 @@ msgstr ""
"冲çªï¼ˆ%1$s/删除):%2$s 在 %3$s 中被删除,在 %5$s 中被 %4$s。%7$s 在 %6$s 中"
"的版本被ä¿ç•™ã€‚"
-#: merge-recursive.c:1037 merge-recursive.c:1050
+#: merge-recursive.c:1040 merge-recursive.c:1053
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -880,20 +901,20 @@ msgstr ""
"冲çªï¼ˆ%1$s/删除):%2$s 在 %3$s 中被删除,在 %5$s 中被 %4$s。%7$s 在 %6$s 中"
"的版本ä¿ç•™äºŽ %8$s 中。"
-#: merge-recursive.c:1091
+#: merge-recursive.c:1094
msgid "rename"
msgstr "é‡å‘½å"
-#: merge-recursive.c:1091
+#: merge-recursive.c:1094
msgid "renamed"
msgstr "é‡å‘½å"
-#: merge-recursive.c:1147
+#: merge-recursive.c:1150
#, c-format
msgid "%s is a directory in %s adding as %s instead"
msgstr "%s 是 %s 中的一个目录而以 %s 为å被添加"
-#: merge-recursive.c:1169
+#: merge-recursive.c:1172
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
@@ -902,144 +923,144 @@ msgstr ""
"冲çªï¼ˆé‡å‘½å/é‡å‘½å):在分支 \"%3$s\" 中é‡å‘½å \"%1$s\"->\"%2$s\",在分支 "
"\"%6$s\" 中é‡å‘½å \"%4$s\"->\"%5$s\"%7$s"
-#: merge-recursive.c:1174
+#: merge-recursive.c:1177
msgid " (left unresolved)"
msgstr "(留下未解决)"
-#: merge-recursive.c:1228
+#: merge-recursive.c:1231
#, 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:1258
+#: merge-recursive.c:1261
#, c-format
msgid "Renaming %s to %s and %s to %s instead"
msgstr "而是é‡å‘½å %s 至 %sï¼Œä»¥åŠ %s 至 %s"
-#: merge-recursive.c:1457
+#: merge-recursive.c:1460
#, c-format
msgid "CONFLICT (rename/add): Rename %s->%s in %s. %s added in %s"
msgstr "冲çªï¼ˆé‡å‘½å/添加):在 %3$s 中é‡å‘½å %1$s->%2$s。在 %5$s 中添加 %4$s"
-#: merge-recursive.c:1467
+#: merge-recursive.c:1470
#, c-format
msgid "Adding merged %s"
msgstr "添加åˆå¹¶åŽçš„ %s"
-#: merge-recursive.c:1472 merge-recursive.c:1674
+#: merge-recursive.c:1475 merge-recursive.c:1677
#, c-format
msgid "Adding as %s instead"
msgstr "而是以 %s 为å添加"
-#: merge-recursive.c:1523
+#: merge-recursive.c:1526
#, c-format
msgid "cannot read object %s"
msgstr "ä¸èƒ½è¯»å–对象 %s"
-#: merge-recursive.c:1526
+#: merge-recursive.c:1529
#, c-format
msgid "object %s is not a blob"
msgstr "对象 %s ä¸æ˜¯ä¸€ä¸ªæ•°æ®å¯¹è±¡"
-#: merge-recursive.c:1578
+#: merge-recursive.c:1581
msgid "modify"
msgstr "修改"
-#: merge-recursive.c:1578
+#: merge-recursive.c:1581
msgid "modified"
msgstr "修改"
-#: merge-recursive.c:1588
+#: merge-recursive.c:1591
msgid "content"
msgstr "内容"
-#: merge-recursive.c:1595
+#: merge-recursive.c:1598
msgid "add/add"
msgstr "添加/添加"
-#: merge-recursive.c:1629
+#: merge-recursive.c:1632
#, c-format
msgid "Skipped %s (merged same as existing)"
msgstr "略过 %s(已ç»åšè¿‡ç›¸åŒåˆå¹¶ï¼‰"
-#: merge-recursive.c:1643
+#: merge-recursive.c:1646
#, c-format
msgid "Auto-merging %s"
msgstr "自动åˆå¹¶ %s"
-#: merge-recursive.c:1647 git-submodule.sh:1025
+#: merge-recursive.c:1650 git-submodule.sh:1048
msgid "submodule"
msgstr "å­æ¨¡ç»„"
-#: merge-recursive.c:1648
+#: merge-recursive.c:1651
#, c-format
msgid "CONFLICT (%s): Merge conflict in %s"
msgstr "冲çªï¼ˆ%s):åˆå¹¶å†²çªäºŽ %s"
-#: merge-recursive.c:1734
+#: merge-recursive.c:1737
#, c-format
msgid "Removing %s"
msgstr "删除 %s"
-#: merge-recursive.c:1759
+#: merge-recursive.c:1762
msgid "file/directory"
msgstr "文件/目录"
-#: merge-recursive.c:1765
+#: merge-recursive.c:1768
msgid "directory/file"
msgstr "目录/文件"
-#: merge-recursive.c:1770
+#: merge-recursive.c:1773
#, 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:1780
+#: merge-recursive.c:1783
#, c-format
msgid "Adding %s"
msgstr "添加 %s"
-#: merge-recursive.c:1797
+#: merge-recursive.c:1800
msgid "Fatal merge failure, shouldn't happen."
msgstr "严é‡çš„åˆå¹¶é”™è¯¯ï¼Œä¸åº”å‘生。"
-#: merge-recursive.c:1816
+#: merge-recursive.c:1819
msgid "Already up-to-date!"
msgstr "å·²ç»æ˜¯æœ€æ–°çš„ï¼"
-#: merge-recursive.c:1825
+#: merge-recursive.c:1828
#, c-format
msgid "merging of trees %s and %s failed"
msgstr "无法åˆå¹¶æ ‘ %s å’Œ %s"
-#: merge-recursive.c:1855
+#: merge-recursive.c:1858
#, c-format
msgid "Unprocessed path??? %s"
msgstr "未处ç†çš„路径??? %s"
-#: merge-recursive.c:1903
+#: merge-recursive.c:1906
msgid "Merging:"
msgstr "åˆå¹¶ï¼š"
-#: merge-recursive.c:1916
+#: merge-recursive.c:1919
#, c-format
msgid "found %u common ancestor:"
msgid_plural "found %u common ancestors:"
msgstr[0] "å‘现 %u 个共åŒç¥–先:"
msgstr[1] "å‘现 %u 个共åŒç¥–先:"
-#: merge-recursive.c:1953
+#: merge-recursive.c:1956
msgid "merge returned no commit"
msgstr "åˆå¹¶æœªè¿”回æ交"
-#: merge-recursive.c:2010
+#: merge-recursive.c:2013
#, c-format
msgid "Could not parse object '%s'"
msgstr "ä¸èƒ½è§£æžå¯¹è±¡ '%s'"
-#: merge-recursive.c:2021 builtin/merge.c:645
+#: merge-recursive.c:2024 builtin/merge.c:646
msgid "Unable to write index."
msgstr "ä¸èƒ½å†™å…¥ç´¢å¼•ã€‚"
@@ -1154,12 +1175,12 @@ msgstr "路径规格 '%s' 在å­æ¨¡ç»„ '%.*s' 中"
msgid "%s: pathspec magic not supported by this command: %s"
msgstr "%s:路径规格神奇å‰ç¼€ä¸è¢«æ­¤å‘½ä»¤æ”¯æŒï¼š%s"
-#: pathspec.c:432
+#: pathspec.c:433
#, c-format
msgid "pathspec '%s' is beyond a symbolic link"
msgstr "路径规格 '%s' ä½äºŽç¬¦å·é“¾æŽ¥ä¸­"
-#: pathspec.c:441
+#: pathspec.c:442
msgid ""
"There is nothing to exclude from by :(exclude) patterns.\n"
"Perhaps you forgot to add either ':/' or '.' ?"
@@ -1193,163 +1214,248 @@ msgstr ""
"设置了 GIT_INDEX_VERSION,但是å–值无效。\n"
"使用版本 %i"
-#: refs.c:543 builtin/merge.c:760 builtin/merge.c:871 builtin/merge.c:973
-#: builtin/merge.c:983
+#: refs.c:543 builtin/merge.c:761 builtin/merge.c:872 builtin/merge.c:974
+#: builtin/merge.c:984
#, c-format
msgid "Could not open '%s' for writing"
msgstr "无法打开 '%s' 进行写入"
-#: refs/files-backend.c:2359
+#: refs/files-backend.c:2374
#, c-format
msgid "could not delete reference %s: %s"
msgstr "无法删除引用 %s:%s"
-#: refs/files-backend.c:2362
+#: refs/files-backend.c:2377
#, c-format
msgid "could not delete references: %s"
msgstr "无法删除引用:%s"
-#: refs/files-backend.c:2371
+#: refs/files-backend.c:2386
#, c-format
msgid "could not remove reference %s"
msgstr "无法删除引用 %s"
-#: ref-filter.c:245
+#: ref-filter.c:55
#, c-format
-msgid "format: %%(end) atom used without corresponding atom"
-msgstr "æ ¼å¼ï¼šä½¿ç”¨äº† %%(end) 元素å´æ²¡æœ‰å®ƒçš„对应元素"
+msgid "expected format: %%(color:<color>)"
+msgstr "期望的格å¼ï¼š%%(color:<color>)"
-#: ref-filter.c:704
+#: ref-filter.c:57
+#, c-format
+msgid "unrecognized color: %%(color:%s)"
+msgstr "未能识别的颜色:%%(color:%s)"
+
+#: ref-filter.c:71
+#, c-format
+msgid "unrecognized format: %%(%s)"
+msgstr "未能识别的格å¼ï¼š%%(%s)"
+
+#: ref-filter.c:77
+#, c-format
+msgid "%%(body) does not take arguments"
+msgstr "%%(body) ä¸å¸¦å‚æ•°"
+
+#: ref-filter.c:84
+#, c-format
+msgid "%%(subject) does not take arguments"
+msgstr "%%(subject) ä¸å¸¦å‚æ•°"
+
+#: ref-filter.c:101
#, c-format
msgid "positive value expected contents:lines=%s"
msgstr "è¦ä¸º contents:lines=%s æ供一个正数"
-#: ref-filter.c:833
+#: ref-filter.c:103
#, c-format
-msgid "expected format: %%(color:<color>)"
-msgstr "期望的格å¼ï¼š%%(color:<color>)"
+msgid "unrecognized %%(contents) argument: %s"
+msgstr "未能识别的 %%(contents) å‚数:%s"
-#: ref-filter.c:835
-msgid "unable to parse format"
-msgstr "ä¸èƒ½è§£æžæ ¼å¼"
+#: ref-filter.c:113
+#, c-format
+msgid "unrecognized %%(objectname) argument: %s"
+msgstr "未能识别的 %%(objectname) å‚数:%s"
-#: ref-filter.c:870
+#: ref-filter.c:135
#, c-format
msgid "expected format: %%(align:<width>,<position>)"
msgstr "期望的格å¼ï¼š%%(align:<width>,<position>)"
-#: ref-filter.c:893
+#: ref-filter.c:147
+#, c-format
+msgid "unrecognized position:%s"
+msgstr "未能识别的ä½ç½®ï¼š%s"
+
+#: ref-filter.c:151
+#, c-format
+msgid "unrecognized width:%s"
+msgstr "未能识别的宽度:%s"
+
+#: ref-filter.c:157
#, c-format
-msgid "improper format entered align:%s"
-msgstr "输入了ä¸æ­£ç¡®çš„æ ¼å¼ align:%s"
+msgid "unrecognized %%(align) argument: %s"
+msgstr "未能识别的 %%(align) å‚数:%s"
-#: ref-filter.c:898
+#: ref-filter.c:161
#, c-format
msgid "positive width expected with the %%(align) atom"
msgstr "元素 %%(align) 需è¦ä¸€ä¸ªæ­£æ•°çš„宽度"
-#: ref-filter.c:1219
+#: ref-filter.c:244
+#, c-format
+msgid "malformed field name: %.*s"
+msgstr "éžæ³•çš„字段å:%.*s"
+
+#: ref-filter.c:270
+#, c-format
+msgid "unknown field name: %.*s"
+msgstr "未知的字段å:%.*s"
+
+#: ref-filter.c:372
+#, c-format
+msgid "format: %%(end) atom used without corresponding atom"
+msgstr "æ ¼å¼ï¼šä½¿ç”¨äº† %%(end) 元素å´æ²¡æœ‰å®ƒçš„对应元素"
+
+#: ref-filter.c:424
+#, c-format
+msgid "malformed format string %s"
+msgstr "éžæ³•çš„æ ¼å¼åŒ–字符串 %s"
+
+#: ref-filter.c:878
+msgid ":strip= requires a positive integer argument"
+msgstr ":strip= 需è¦ä¸€ä¸ªæ­£æ•´åž‹å‚æ•°"
+
+#: ref-filter.c:883
+#, c-format
+msgid "ref '%s' does not have %ld components to :strip"
+msgstr "引用 '%s' 没有æä¾›è¦è„±æŽ‰çš„ %ld 个组件"
+
+#: ref-filter.c:1046
+#, c-format
+msgid "unknown %.*s format %s"
+msgstr "未知 %.*s æ ¼å¼ %s"
+
+#: ref-filter.c:1066 ref-filter.c:1097
+#, c-format
+msgid "missing object %s for %s"
+msgstr "丢失 %2$s 的对象 %1$s"
+
+#: ref-filter.c:1069 ref-filter.c:1100
+#, c-format
+msgid "parse_object_buffer failed on %s for %s"
+msgstr "parse_object_buffer 失败于 %2$s 的 %1$s"
+
+#: ref-filter.c:1311
#, c-format
msgid "malformed object at '%s'"
msgstr "éžæ³•çš„对象于 '%s'"
-#: ref-filter.c:1561
+#: ref-filter.c:1373
+#, c-format
+msgid "ignoring ref with broken name %s"
+msgstr "忽略带有错误å称 %s 的引用"
+
+#: ref-filter.c:1378
+#, c-format
+msgid "ignoring broken ref %s"
+msgstr "忽略æŸå的引用 %s"
+
+#: ref-filter.c:1651
#, c-format
msgid "format: %%(end) atom missing"
msgstr "æ ¼å¼ï¼šç¼ºå°‘ %%(end) 元素"
-#: ref-filter.c:1615
+#: ref-filter.c:1705
#, c-format
msgid "malformed object name %s"
msgstr "éžæ³•çš„对象å %s"
-#: remote.c:756
+#: remote.c:745
#, c-format
msgid "Cannot fetch both %s and %s to %s"
msgstr "ä¸èƒ½åŒæ—¶èŽ·å– %s å’Œ %s 至 %s"
-#: remote.c:760
+#: remote.c:749
#, c-format
msgid "%s usually tracks %s, not %s"
msgstr "%s 通常跟踪 %sï¼Œè€Œéž %s"
-#: remote.c:764
+#: remote.c:753
#, c-format
msgid "%s tracks both %s and %s"
msgstr "%s åŒæ—¶è·Ÿè¸ª %s å’Œ %s"
-#: remote.c:772
+#: remote.c:761
msgid "Internal error"
msgstr "内部错误"
-#: remote.c:1687 remote.c:1730
+#: remote.c:1677 remote.c:1720
msgid "HEAD does not point to a branch"
msgstr "HEAD 没有指å‘一个分支"
-#: remote.c:1696
+#: remote.c:1686
#, c-format
msgid "no such branch: '%s'"
msgstr "没有此分支:'%s'"
-#: remote.c:1699
+#: remote.c:1689
#, c-format
msgid "no upstream configured for branch '%s'"
msgstr "尚未给分支 '%s' 设置上游"
-#: remote.c:1705
+#: remote.c:1695
#, c-format
msgid "upstream branch '%s' not stored as a remote-tracking branch"
msgstr "上游分支 '%s' 没有存储为一个远程跟踪分支"
-#: remote.c:1720
+#: remote.c:1710
#, c-format
msgid "push destination '%s' on remote '%s' has no local tracking branch"
msgstr "推é€ç›®æ ‡ '%s' 至远程 '%s' 没有本地跟踪分支"
-#: remote.c:1735
+#: remote.c:1725
#, c-format
msgid "branch '%s' has no remote for pushing"
msgstr "分支 '%s' 没有设置è¦æŽ¨é€çš„远程æœåŠ¡å™¨"
-#: remote.c:1746
+#: remote.c:1736
#, c-format
msgid "push refspecs for '%s' do not include '%s'"
msgstr "å‘ '%s' 推é€å¼•ç”¨è§„æ ¼æœªåŒ…å« '%s'"
-#: remote.c:1759
+#: remote.c:1749
msgid "push has no destination (push.default is 'nothing')"
msgstr "推é€æ— ç›®æ ‡ï¼ˆpush.default 是 'nothing')"
-#: remote.c:1781
+#: remote.c:1771
msgid "cannot resolve 'simple' push to a single destination"
msgstr "æ— æ³•è§£æž 'simple' 推é€è‡³ä¸€ä¸ªå•ç‹¬çš„目标"
-#: remote.c:2083
+#: remote.c:2073
#, c-format
msgid "Your branch is based on '%s', but the upstream is gone.\n"
msgstr "您的分支基于 '%s',但此上游分支已ç»ä¸å­˜åœ¨ã€‚\n"
-#: remote.c:2087
+#: remote.c:2077
msgid " (use \"git branch --unset-upstream\" to fixup)\n"
msgstr " (使用 \"git branch --unset-upstream\" æ¥ä¿®å¤ï¼‰\n"
-#: remote.c:2090
+#: remote.c:2080
#, c-format
msgid "Your branch is up-to-date with '%s'.\n"
msgstr "您的分支与上游分支 '%s' 一致。\n"
-#: remote.c:2094
+#: remote.c:2084
#, 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:2100
+#: remote.c:2090
msgid " (use \"git push\" to publish your local commits)\n"
msgstr " (使用 \"git push\" æ¥å‘布您的本地æ交)\n"
-#: remote.c:2103
+#: remote.c:2093
#, c-format
msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
msgid_plural ""
@@ -1358,11 +1464,11 @@ msgstr[0] "您的分支è½åŽ '%s' å…± %d 个æ交,并且å¯ä»¥å¿«è¿›ã€‚\n"
msgstr[1] "您的分支è½åŽ '%s' å…± %d 个æ交,并且å¯ä»¥å¿«è¿›ã€‚\n"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: remote.c:2111
+#: remote.c:2101
msgid " (use \"git pull\" to update your local branch)\n"
msgstr " (使用 \"git pull\" æ¥æ›´æ–°æ‚¨çš„本地分支)\n"
-#: remote.c:2114
+#: remote.c:2104
#, c-format
msgid ""
"Your branch and '%s' have diverged,\n"
@@ -1378,28 +1484,28 @@ msgstr[1] ""
"并且分别有 %d å’Œ %d 处ä¸åŒçš„æ交。\n"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: remote.c:2124
+#: remote.c:2114
msgid " (use \"git pull\" to merge the remote branch into yours)\n"
msgstr " (使用 \"git pull\" æ¥åˆå¹¶è¿œç¨‹åˆ†æ”¯ï¼‰\n"
-#: revision.c:2193
+#: revision.c:2131
msgid "your current branch appears to be broken"
msgstr "您的当å‰åˆ†æ”¯å¥½åƒè¢«æŸå"
-#: revision.c:2196
+#: revision.c:2134
#, c-format
msgid "your current branch '%s' does not have any commits yet"
msgstr "您的当å‰åˆ†æ”¯ '%s' 尚无任何æ交"
-#: revision.c:2390
+#: revision.c:2328
msgid "--first-parent is incompatible with --bisect"
msgstr "--first-parent 与 --bisect ä¸å…¼å®¹"
-#: run-command.c:90
+#: run-command.c:92
msgid "open /dev/null failed"
msgstr "ä¸èƒ½æ‰“å¼€ /dev/null"
-#: run-command.c:92
+#: run-command.c:94
#, c-format
msgid "dup2(%d,%d) failed"
msgstr "ä¸èƒ½è°ƒç”¨ dup2(%d,%d)"
@@ -1422,7 +1528,7 @@ msgstr "未å‘é€æŽ¨é€è¯ä¹¦ï¼Œå› ä¸ºæŽ¥æ”¶ç«¯ä¸æ”¯æŒç­¾å推é€"
msgid "the receiving end does not support --atomic push"
msgstr "接收端ä¸æ”¯æŒåŽŸå­æŽ¨é€"
-#: sequencer.c:183
+#: sequencer.c:174
msgid ""
"after resolving the conflicts, mark the corrected paths\n"
"with 'git add <paths>' or 'git rm <paths>'"
@@ -1430,7 +1536,7 @@ msgstr ""
"冲çªè§£å†³å®Œæ¯•åŽï¼Œç”¨ 'git add <路径>' 或 'git rm <路径>'\n"
"命令标记修正åŽçš„文件"
-#: sequencer.c:186
+#: sequencer.c:177
msgid ""
"after resolving the conflicts, mark the corrected paths\n"
"with 'git add <paths>' or 'git rm <paths>'\n"
@@ -1439,229 +1545,243 @@ msgstr ""
"冲çªè§£å†³å®Œæ¯•åŽï¼Œç”¨ 'git add <路径>' 或 'git rm <路径>'\n"
"对修正åŽçš„文件åšæ ‡è®°ï¼Œç„¶åŽç”¨ 'git commit' æ交"
-#: sequencer.c:199 sequencer.c:842 sequencer.c:922
+#: sequencer.c:190 sequencer.c:833 sequencer.c:913
#, c-format
msgid "Could not write to %s"
msgstr "ä¸èƒ½å†™å…¥ %s"
-#: sequencer.c:202
+#: sequencer.c:193
#, c-format
msgid "Error wrapping up %s"
msgstr "错误收尾 %s"
-#: sequencer.c:217
+#: sequencer.c:208
msgid "Your local changes would be overwritten by cherry-pick."
msgstr "您的本地修改将被拣选æ“作覆盖。"
-#: sequencer.c:219
+#: sequencer.c:210
msgid "Your local changes would be overwritten by revert."
msgstr "您的本地修改将被还原æ“作覆盖。"
-#: sequencer.c:222
+#: sequencer.c:213
msgid "Commit your changes or stash them to proceed."
msgstr "æ交您的修改或ä¿å­˜è¿›åº¦åŽå†ç»§ç»­ã€‚"
#. TRANSLATORS: %s will be "revert" or "cherry-pick"
-#: sequencer.c:309
+#: sequencer.c:300
#, c-format
msgid "%s: Unable to write new index file"
msgstr "%s:无法写入新索引文件"
-#: sequencer.c:327
+#: sequencer.c:318
msgid "Could not resolve HEAD commit\n"
msgstr "ä¸èƒ½è§£æž HEAD æ交\n"
-#: sequencer.c:347
+#: sequencer.c:338
msgid "Unable to update cache tree\n"
msgstr "ä¸èƒ½æ›´æ–°ç¼“å­˜\n"
-#: sequencer.c:399
+#: sequencer.c:390
#, c-format
msgid "Could not parse commit %s\n"
msgstr "ä¸èƒ½è§£æžæ交 %s\n"
-#: sequencer.c:404
+#: sequencer.c:395
#, c-format
msgid "Could not parse parent commit %s\n"
msgstr "ä¸èƒ½è§£æžçˆ¶æ交 %s\n"
-#: sequencer.c:469
+#: sequencer.c:460
msgid "Your index file is unmerged."
msgstr "您的索引文件未完æˆåˆå¹¶ã€‚"
-#: sequencer.c:488
+#: sequencer.c:479
#, c-format
msgid "Commit %s is a merge but no -m option was given."
msgstr "æ交 %s 是一个åˆå¹¶æ交但未æä¾› -m 选项。"
-#: sequencer.c:496
+#: sequencer.c:487
#, c-format
msgid "Commit %s does not have parent %d"
msgstr "æ交 %s 没有父æ交 %d"
-#: sequencer.c:500
+#: sequencer.c:491
#, c-format
msgid "Mainline was specified but commit %s is not a merge."
msgstr "指定了主线但æ交 %s ä¸æ˜¯ä¸€ä¸ªåˆå¹¶ã€‚"
#. TRANSLATORS: The first %s will be "revert" or
#. "cherry-pick", the second %s a SHA1
-#: sequencer.c:513
+#: sequencer.c:504
#, c-format
msgid "%s: cannot parse parent commit %s"
msgstr "%s:ä¸èƒ½è§£æžçˆ¶æ交 %s"
-#: sequencer.c:517
+#: sequencer.c:508
#, c-format
msgid "Cannot get commit message for %s"
msgstr "ä¸èƒ½å¾—到 %s çš„æ交说明"
-#: sequencer.c:603
+#: sequencer.c:594
#, c-format
msgid "could not revert %s... %s"
msgstr "ä¸èƒ½è¿˜åŽŸ %s... %s"
-#: sequencer.c:604
+#: sequencer.c:595
#, c-format
msgid "could not apply %s... %s"
msgstr "ä¸èƒ½åº”用 %s... %s"
-#: sequencer.c:639
+#: sequencer.c:630
msgid "empty commit set passed"
msgstr "æ供了空的æ交集"
-#: sequencer.c:647
+#: sequencer.c:638
#, c-format
msgid "git %s: failed to read the index"
msgstr "git %s:无法读å–索引"
-#: sequencer.c:651
+#: sequencer.c:642
#, c-format
msgid "git %s: failed to refresh the index"
msgstr "git %s:无法刷新索引"
-#: sequencer.c:711
+#: sequencer.c:702
#, c-format
msgid "Cannot %s during a %s"
msgstr "无法 %s 在一个 %s 过程中"
-#: sequencer.c:733
+#: sequencer.c:724
#, c-format
msgid "Could not parse line %d."
msgstr "ä¸èƒ½è§£æžç¬¬ %d 行。"
-#: sequencer.c:738
+#: sequencer.c:729
msgid "No commits parsed."
msgstr "没有æ交被解æžã€‚"
-#: sequencer.c:750
+#: sequencer.c:741
#, c-format
msgid "Could not open %s"
msgstr "ä¸èƒ½æ‰“å¼€ %s"
-#: sequencer.c:754
+#: sequencer.c:745
#, c-format
msgid "Could not read %s."
msgstr "ä¸èƒ½è¯»å– %s。"
-#: sequencer.c:761
+#: sequencer.c:752
#, c-format
msgid "Unusable instruction sheet: %s"
msgstr "无用的指令表å•ï¼š%s"
-#: sequencer.c:791
+#: sequencer.c:782
#, c-format
msgid "Invalid key: %s"
msgstr "无效键å:%s"
-#: sequencer.c:794 builtin/pull.c:47 builtin/pull.c:49
+#: sequencer.c:785 builtin/pull.c:50 builtin/pull.c:52
#, c-format
msgid "Invalid value for %s: %s"
msgstr "%s 的值无效:%s"
-#: sequencer.c:804
+#: sequencer.c:795
#, c-format
msgid "Malformed options sheet: %s"
msgstr "éžæ³•çš„选项表å•ï¼š%s"
-#: sequencer.c:823
+#: sequencer.c:814
msgid "a cherry-pick or revert is already in progress"
msgstr "一个拣选或还原æ“作已在进行"
-#: sequencer.c:824
+#: sequencer.c:815
msgid "try \"git cherry-pick (--continue | --quit | --abort)\""
msgstr "å°è¯• \"git cherry-pick (--continue | --quit | --abort)\""
-#: sequencer.c:828
+#: sequencer.c:819
#, c-format
msgid "Could not create sequencer directory %s"
msgstr "ä¸èƒ½åˆ›å»ºåºåˆ—目录 %s"
-#: sequencer.c:844 sequencer.c:926
+#: sequencer.c:835 sequencer.c:917
#, c-format
msgid "Error wrapping up %s."
msgstr "错误收尾 %s。"
-#: sequencer.c:863 sequencer.c:996
+#: sequencer.c:854 sequencer.c:987
msgid "no cherry-pick or revert in progress"
msgstr "拣选或还原æ“作并未进行"
-#: sequencer.c:865
+#: sequencer.c:856
msgid "cannot resolve HEAD"
msgstr "ä¸èƒ½è§£æž HEAD"
-#: sequencer.c:867
+#: sequencer.c:858
msgid "cannot abort from a branch yet to be born"
msgstr "ä¸èƒ½ä»Žå°šæœªå»ºç«‹çš„分支终止"
-#: sequencer.c:887 builtin/apply.c:4287
+#: sequencer.c:878 builtin/apply.c:4287
#, c-format
msgid "cannot open %s: %s"
msgstr "ä¸èƒ½æ‰“å¼€ %s:%s"
-#: sequencer.c:890
+#: sequencer.c:881
#, c-format
msgid "cannot read %s: %s"
msgstr "ä¸èƒ½è¯»å– %s:%s"
-#: sequencer.c:891
+#: sequencer.c:882
msgid "unexpected end of file"
msgstr "æ„外的文件结æŸ"
-#: sequencer.c:897
+#: sequencer.c:888
#, c-format
msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
msgstr "ä¿å­˜æ‹£é€‰æ交å‰çš„ HEAD 文件 '%s' æŸå"
-#: sequencer.c:919
+#: sequencer.c:910
#, c-format
msgid "Could not format %s."
msgstr "ä¸èƒ½æ ¼å¼åŒ– %s。"
-#: sequencer.c:1064
+#: sequencer.c:1055
#, c-format
msgid "%s: can't cherry-pick a %s"
msgstr "%s:ä¸èƒ½æ‹£é€‰ä¸€ä¸ª%s"
-#: sequencer.c:1067
+#: sequencer.c:1058
#, c-format
msgid "%s: bad revision"
msgstr "%s:错误的版本"
-#: sequencer.c:1101
+#: sequencer.c:1092
msgid "Can't revert as initial commit"
msgstr "ä¸èƒ½ä½œä¸ºåˆå§‹æ交还原"
-#: sequencer.c:1102
+#: sequencer.c:1093
msgid "Can't cherry-pick into empty head"
msgstr "ä¸èƒ½æ‹£é€‰åˆ°ç©ºåˆ†æ”¯"
-#: setup.c:248
+#: setup.c:246
#, c-format
msgid "failed to read %s"
msgstr "æ— æ³•è¯»å– %s"
-#: sha1_name.c:463
+#: sha1_file.c:1080
+msgid "offset before end of packfile (broken .idx?)"
+msgstr "å移é‡åœ¨åŒ…文件结æŸä¹‹å‰ï¼ˆæŸåçš„ .idx?)"
+
+#: sha1_file.c:2459
+#, c-format
+msgid "offset before start of pack index for %s (corrupt index?)"
+msgstr "å移é‡åœ¨ %s 的包索引开始之å‰ï¼ˆæŸå的索引?)"
+
+#: sha1_file.c:2463
+#, c-format
+msgid "offset beyond end of pack index for %s (truncated index?)"
+msgstr "å移é‡è¶Šè¿‡äº† %s 的包索引的结尾(截断的索引?)"
+
+#: sha1_name.c:462
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"
@@ -1682,60 +1802,84 @@ msgstr ""
"å¯èƒ½éœ€è¦åˆ é™¤å®ƒä»¬ã€‚用 \"git config advice.objectNameWarning false\"\n"
"命令关闭本消æ¯é€šçŸ¥ã€‚"
-#: submodule.c:61 submodule.c:95
+#: submodule.c:62 submodule.c:96
msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
msgstr "无法修改未åˆå¹¶çš„ .gitmodules,先解决åˆå¹¶å†²çª"
-#: submodule.c:65 submodule.c:99
+#: submodule.c:66 submodule.c:100
#, c-format
msgid "Could not find section in .gitmodules where path=%s"
msgstr "无法在 .gitmodules 中找到 path=%s çš„å°èŠ‚"
-#: submodule.c:73
+#: submodule.c:74
#, c-format
msgid "Could not update .gitmodules entry %s"
msgstr "ä¸èƒ½æ›´æ–° .gitmodules æ¡ç›® %s"
-#: submodule.c:106
+#: submodule.c:107
#, c-format
msgid "Could not remove .gitmodules entry for %s"
msgstr "无法移除 %s çš„ .gitmodules æ¡ç›®"
-#: submodule.c:117
+#: submodule.c:118
msgid "staging updated .gitmodules failed"
msgstr "å°†æ›´æ–°åŽ .gitmodules 添加暂存区失败"
-#: submodule.c:1040
+#: trailer.c:237
#, c-format
-msgid "Could not set core.worktree in %s"
-msgstr "ä¸èƒ½åœ¨ %s 中设置 core.worktree"
+msgid "running trailer command '%s' failed"
+msgstr "执行 trailer 命令 '%s' 失败"
-#: trailer.c:491 trailer.c:495 trailer.c:499 trailer.c:553 trailer.c:557
-#: trailer.c:561
+#: trailer.c:492 trailer.c:496 trailer.c:500 trailer.c:554 trailer.c:558
+#: trailer.c:562
#, c-format
msgid "unknown value '%s' for key '%s'"
msgstr "é”® '%2$s' 的未知å–值 '%1$s'"
-#: trailer.c:543 trailer.c:548 builtin/remote.c:296
+#: trailer.c:544 trailer.c:549 builtin/remote.c:289
#, c-format
msgid "more than one %s"
msgstr "多于一个 %s"
-#: trailer.c:581
+#: trailer.c:582
#, c-format
msgid "empty trailer token in trailer '%.*s'"
msgstr "ç­¾å '%.*s' 的键为空"
-#: trailer.c:701
+#: trailer.c:702
#, c-format
msgid "could not read input file '%s'"
msgstr "ä¸èƒ½è¯»å–输入文件 '%s'"
-#: trailer.c:704
+#: trailer.c:705
msgid "could not read from stdin"
msgstr "ä¸èƒ½è‡ªæ ‡å‡†è¾“入读å–"
-#: transport-helper.c:1025
+#: trailer.c:857 builtin/am.c:42
+#, c-format
+msgid "could not stat %s"
+msgstr "ä¸èƒ½èŽ·å– %s 的文件状æ€"
+
+#: trailer.c:859
+#, c-format
+msgid "file %s is not a regular file"
+msgstr "文件 %s ä¸æ˜¯ä¸€ä¸ªæ­£è§„文件"
+
+#: trailer.c:861
+#, c-format
+msgid "file %s is not writable by user"
+msgstr "文件 %s 用户ä¸å¯å†™"
+
+#: trailer.c:873
+msgid "could not open temporary file"
+msgstr "ä¸èƒ½æ‰“开临时文件"
+
+#: trailer.c:912
+#, c-format
+msgid "could not rename temporary file to %s"
+msgstr "ä¸èƒ½é‡å‘½å临时文件为 %s"
+
+#: transport-helper.c:1041
#, c-format
msgid "Could not read ref %s"
msgstr "ä¸èƒ½è¯»å–引用 %s"
@@ -1773,47 +1917,47 @@ msgstr "无效的端å£å·"
msgid "invalid '..' path segment"
msgstr "无效的 '..' 路径片段"
-#: wrapper.c:219 wrapper.c:362
+#: wrapper.c:222 wrapper.c:381
#, c-format
msgid "could not open '%s' for reading and writing"
msgstr "无法打开 '%s' 进行读写"
-#: wrapper.c:221 wrapper.c:364
+#: wrapper.c:224 wrapper.c:383
#, c-format
msgid "could not open '%s' for writing"
msgstr "无法打开 '%s' 进行写入"
-#: wrapper.c:223 wrapper.c:366 builtin/am.c:338 builtin/commit.c:1691
-#: builtin/merge.c:1074 builtin/pull.c:380
+#: wrapper.c:226 wrapper.c:385 builtin/am.c:323 builtin/commit.c:1691
+#: builtin/merge.c:1075 builtin/pull.c:387
#, c-format
msgid "could not open '%s' for reading"
msgstr "无法打开 '%s' 进行读å–"
-#: wrapper.c:579
+#: wrapper.c:611
#, c-format
msgid "unable to access '%s': %s"
msgstr "ä¸èƒ½è®¿é—® '%s':%s"
-#: wrapper.c:600
+#: wrapper.c:632
#, c-format
msgid "unable to access '%s'"
msgstr "ä¸èƒ½è®¿é—® '%s'"
-#: wrapper.c:608
+#: wrapper.c:640
msgid "unable to get current working directory"
msgstr "ä¸èƒ½èŽ·å–当å‰å·¥ä½œç›®å½•"
-#: wrapper.c:635
+#: wrapper.c:667
#, c-format
msgid "could not open %s for writing"
msgstr "ä¸èƒ½å†™å…¥ %s"
-#: wrapper.c:646 builtin/am.c:425
+#: wrapper.c:678 builtin/am.c:410
#, c-format
msgid "could not write to %s"
msgstr "ä¸èƒ½å†™å…¥ %s"
-#: wrapper.c:652
+#: wrapper.c:684
#, c-format
msgid "could not close %s"
msgstr "ä¸èƒ½å…³é—­ %s"
@@ -2298,7 +2442,11 @@ msgstr "丢失"
msgid "behind "
msgstr "è½åŽ "
-#: compat/precompose_utf8.c:56 builtin/clone.c:408
+#: wt-status.c:1680 wt-status.c:1683
+msgid "ahead "
+msgstr "领先 "
+
+#: compat/precompose_utf8.c:57 builtin/clone.c:413
#, c-format
msgid "failed to unlink '%s'"
msgstr "无法删除 '%s'"
@@ -2325,7 +2473,7 @@ msgstr "删除 '%s'\n"
msgid "Unstaged changes after refreshing the index:"
msgstr "刷新索引之åŽå°šæœªè¢«æš‚存的å˜æ›´ï¼š"
-#: builtin/add.c:194 builtin/rev-parse.c:796
+#: builtin/add.c:194 builtin/rev-parse.c:797
msgid "Could not read the index"
msgstr "ä¸èƒ½è¯»å–索引"
@@ -2360,15 +2508,15 @@ msgstr "ä¸èƒ½åº”用 '%s'"
msgid "The following paths are ignored by one of your .gitignore files:\n"
msgstr "下列路径根æ®æ‚¨çš„一个 .gitignore 文件而被忽略:\n"
-#: builtin/add.c:249 builtin/clean.c:894 builtin/fetch.c:108 builtin/mv.c:110
-#: builtin/prune-packed.c:55 builtin/pull.c:182 builtin/push.c:543
-#: builtin/remote.c:1345 builtin/rm.c:268 builtin/send-pack.c:162
+#: builtin/add.c:249 builtin/clean.c:870 builtin/fetch.c:112 builtin/mv.c:111
+#: builtin/prune-packed.c:55 builtin/pull.c:189 builtin/push.c:511
+#: builtin/remote.c:1330 builtin/rm.c:268 builtin/send-pack.c:162
msgid "dry run"
msgstr "演习"
-#: builtin/add.c:250 builtin/apply.c:4571 builtin/check-ignore.c:19
+#: builtin/add.c:250 builtin/apply.c:4561 builtin/check-ignore.c:19
#: builtin/commit.c:1322 builtin/count-objects.c:85 builtin/fsck.c:558
-#: builtin/log.c:1645 builtin/mv.c:109 builtin/read-tree.c:114
+#: builtin/log.c:1651 builtin/mv.c:110 builtin/read-tree.c:114
msgid "be verbose"
msgstr "冗长输出"
@@ -2376,7 +2524,7 @@ msgstr "冗长输出"
msgid "interactive picking"
msgstr "交互å¼æ‹£é€‰"
-#: builtin/add.c:253 builtin/checkout.c:1153 builtin/reset.c:286
+#: builtin/add.c:253 builtin/checkout.c:1155 builtin/reset.c:286
msgid "select hunks interactively"
msgstr "交互å¼æŒ‘选数æ®å—"
@@ -2443,135 +2591,130 @@ msgstr "没有指定文件,也没有文件被添加。\n"
msgid "Maybe you wanted to say 'git add .'?\n"
msgstr "也许您想è¦æ‰§è¡Œ 'git add .'?\n"
-#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:938
-#: builtin/commit.c:337 builtin/mv.c:130 builtin/reset.c:235 builtin/rm.c:298
-#: builtin/submodule--helper.c:40
+#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:914
+#: builtin/commit.c:337 builtin/mv.c:131 builtin/reset.c:235 builtin/rm.c:298
+#: builtin/submodule--helper.c:35
msgid "index file corrupt"
msgstr "索引文件æŸå"
-#: builtin/add.c:439 builtin/apply.c:4669 builtin/mv.c:279 builtin/rm.c:430
+#: builtin/add.c:439 builtin/apply.c:4659 builtin/mv.c:280 builtin/rm.c:430
msgid "Unable to write new index file"
msgstr "无法写入新索引文件"
-#: builtin/am.c:42
-#, c-format
-msgid "could not stat %s"
-msgstr "ä¸èƒ½èŽ·å– %s 的文件状æ€"
-
-#: builtin/am.c:271 builtin/commit.c:738 builtin/merge.c:1077
+#: builtin/am.c:256 builtin/commit.c:738 builtin/merge.c:1078
#, c-format
msgid "could not read '%s'"
msgstr "ä¸èƒ½è¯»å– '%s'"
-#: builtin/am.c:445
+#: builtin/am.c:430
msgid "could not parse author script"
msgstr "ä¸èƒ½è§£æžä½œè€…脚本"
-#: builtin/am.c:522
+#: builtin/am.c:507
#, c-format
msgid "'%s' was deleted by the applypatch-msg hook"
msgstr "'%s' 被 applypatch-msg é’©å­åˆ é™¤"
-#: builtin/am.c:563 builtin/notes.c:300
+#: builtin/am.c:548 builtin/notes.c:300
#, c-format
msgid "Malformed input line: '%s'."
msgstr "éžæ³•çš„输入行:'%s'。"
-#: builtin/am.c:600 builtin/notes.c:315
+#: builtin/am.c:585 builtin/notes.c:315
#, c-format
msgid "Failed to copy notes from '%s' to '%s'"
msgstr "从 '%s' æ‹·è´æ³¨è§£åˆ° '%s' 时失败"
-#: builtin/am.c:626
+#: builtin/am.c:611
msgid "fseek failed"
msgstr "fseek 失败"
-#: builtin/am.c:787 builtin/am.c:875
+#: builtin/am.c:772 builtin/am.c:860
#, c-format
msgid "could not open '%s' for reading: %s"
msgstr "无法打开 '%s' 进行读å–:%s"
-#: builtin/am.c:794
+#: builtin/am.c:779
#, c-format
msgid "could not open '%s' for writing: %s"
msgstr "无法打开 '%s' 进行写入:%s"
-#: builtin/am.c:803
+#: builtin/am.c:788
#, c-format
msgid "could not parse patch '%s'"
msgstr "无法解æžè¡¥ä¸ '%s'"
-#: builtin/am.c:868
+#: builtin/am.c:853
msgid "Only one StGIT patch series can be applied at once"
msgstr "一次åªèƒ½æœ‰ä¸€ä¸ª StGIT è¡¥ä¸é˜Ÿåˆ—被应用"
-#: builtin/am.c:916
+#: builtin/am.c:901
msgid "invalid timestamp"
msgstr "无效的时间戳"
-#: builtin/am.c:919 builtin/am.c:927
+#: builtin/am.c:904 builtin/am.c:912
msgid "invalid Date line"
msgstr "无效的日期行"
-#: builtin/am.c:924
+#: builtin/am.c:909
msgid "invalid timezone offset"
msgstr "无效的时区å移值"
-#: builtin/am.c:1011
+#: builtin/am.c:996
msgid "Patch format detection failed."
msgstr "è¡¥ä¸æ ¼å¼æ£€æµ‹å¤±è´¥ã€‚"
-#: builtin/am.c:1016 builtin/clone.c:373
+#: builtin/am.c:1001 builtin/clone.c:378
#, c-format
msgid "failed to create directory '%s'"
msgstr "无法创建目录 '%s'"
-#: builtin/am.c:1020
+#: builtin/am.c:1005
msgid "Failed to split patches."
msgstr "无法拆分补ä¸ã€‚"
-#: builtin/am.c:1152 builtin/commit.c:363
+#: builtin/am.c:1137 builtin/commit.c:363
msgid "unable to write index file"
msgstr "无法写入索引文件"
-#: builtin/am.c:1203
+#: builtin/am.c:1188
#, c-format
msgid "When you have resolved this problem, run \"%s --continue\"."
msgstr "当您解决这一问题,执行 \"%s --continue\"。"
-#: builtin/am.c:1204
+#: builtin/am.c:1189
#, c-format
msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
msgstr "如果您想è¦è·³è¿‡è¿™ä¸€è¡¥ä¸ï¼Œåˆ™æ‰§è¡Œ \"%s --skip\"。"
-#: builtin/am.c:1205
+#: builtin/am.c:1190
#, c-format
msgid "To restore the original branch and stop patching, run \"%s --abort\"."
msgstr "è‹¥è¦å¤åŽŸè‡³åŽŸå§‹åˆ†æ”¯å¹¶åœæ­¢è¡¥ä¸æ“作,执行 \"%s --abort\"。"
-#: builtin/am.c:1343
+#: builtin/am.c:1328
msgid "Patch is empty. Was it split wrong?"
msgstr "è¡¥ä¸ä¸ºç©ºã€‚是ä¸æ˜¯åˆ‡åˆ†é”™è¯¯ï¼Ÿ"
-#: builtin/am.c:1417 builtin/log.c:1347
+#: builtin/am.c:1402 builtin/log.c:1350
#, c-format
msgid "invalid ident line: %s"
msgstr "包å«æ— æ•ˆçš„身份标识:%s"
-#: builtin/am.c:1444
+#: builtin/am.c:1429
#, c-format
msgid "unable to parse commit %s"
msgstr "ä¸èƒ½è§£æžæ交 %s"
-#: builtin/am.c:1646
+#: builtin/am.c:1631
msgid "Repository lacks necessary blobs to fall back on 3-way merge."
msgstr "仓库缺ä¹å¿…è¦çš„æ•°æ®å¯¹è±¡ä»¥è¿›è¡Œä¸‰æ–¹åˆå¹¶ã€‚"
-#: builtin/am.c:1648
+#: builtin/am.c:1633
msgid "Using index info to reconstruct a base tree..."
msgstr "使用索引æ¥é‡å»ºä¸€ä¸ªï¼ˆä¸‰æ–¹åˆå¹¶çš„)基础目录树..."
-#: builtin/am.c:1667
+#: builtin/am.c:1652
msgid ""
"Did you hand edit your patch?\n"
"It does not apply to blobs recorded in its index."
@@ -2579,37 +2722,37 @@ msgstr ""
"您是å¦æ›¾æ‰‹åŠ¨ç¼–辑过您的补ä¸ï¼Ÿ\n"
"无法应用补ä¸åˆ°ç´¢å¼•ä¸­çš„æ•°æ®å¯¹è±¡ä¸Šã€‚"
-#: builtin/am.c:1673
+#: builtin/am.c:1658
msgid "Falling back to patching base and 3-way merge..."
msgstr "回è½åˆ°åŸºç¡€ç‰ˆæœ¬ä¸Šæ‰“è¡¥ä¸åŠè¿›è¡Œä¸‰æ–¹åˆå¹¶..."
-#: builtin/am.c:1688
+#: builtin/am.c:1673
msgid "Failed to merge in the changes."
msgstr "无法åˆå¹¶å˜æ›´ã€‚"
-#: builtin/am.c:1712 builtin/merge.c:632
+#: builtin/am.c:1697 builtin/merge.c:633
msgid "git write-tree failed to write a tree"
msgstr "git write-tree 无法写入一树对象"
-#: builtin/am.c:1719
+#: builtin/am.c:1704
msgid "applying to an empty history"
msgstr "正应用到一个空历å²ä¸Š"
-#: builtin/am.c:1732 builtin/commit.c:1755 builtin/merge.c:829
-#: builtin/merge.c:854
+#: builtin/am.c:1717 builtin/commit.c:1755 builtin/merge.c:830
+#: builtin/merge.c:855
msgid "failed to write commit object"
msgstr "无法写æ交对象"
-#: builtin/am.c:1764 builtin/am.c:1768
+#: builtin/am.c:1749 builtin/am.c:1753
#, c-format
msgid "cannot resume: %s does not exist."
msgstr "无法继续:%s ä¸å­˜åœ¨ã€‚"
-#: builtin/am.c:1784
+#: builtin/am.c:1769
msgid "cannot be interactive without stdin connected to a terminal."
msgstr "标准输入没有和终端关è”,ä¸èƒ½è¿›è¡Œäº¤äº’å¼æ“作。"
-#: builtin/am.c:1789
+#: builtin/am.c:1774
msgid "Commit Body is:"
msgstr "æ交内容为:"
@@ -2618,35 +2761,35 @@ msgstr "æ交内容为:"
#. in your translation. The program will only accept English
#. input at this point.
#.
-#: builtin/am.c:1799
+#: builtin/am.c:1784
msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
msgstr "应用?是[y]/å¦[n]/编辑[e]/查看补ä¸[v]/应用所有[a]:"
-#: builtin/am.c:1849
+#: builtin/am.c:1834
#, c-format
msgid "Dirty index: cannot apply patches (dirty: %s)"
msgstr "è„索引:ä¸èƒ½åº”用补ä¸ï¼ˆè„文件:%s)"
-#: builtin/am.c:1884 builtin/am.c:1955
+#: builtin/am.c:1869 builtin/am.c:1941
#, c-format
msgid "Applying: %.*s"
msgstr "应用:%.*s"
-#: builtin/am.c:1900
+#: builtin/am.c:1885
msgid "No changes -- Patch already applied."
msgstr "没有å˜æ›´ —— è¡¥ä¸å·²ç»åº”用过。"
-#: builtin/am.c:1908
+#: builtin/am.c:1893
#, c-format
msgid "Patch failed at %s %.*s"
msgstr "打补ä¸å¤±è´¥äºŽ %s %.*s"
-#: builtin/am.c:1914
+#: builtin/am.c:1899
#, c-format
msgid "The copy of the patch that failed is found in: %s"
msgstr "失败的补ä¸æ–‡ä»¶å‰¯æœ¬ä½äºŽï¼š%s"
-#: builtin/am.c:1958
+#: builtin/am.c:1944
msgid ""
"No changes - did you forget to use 'git add'?\n"
"If there is nothing left to stage, chances are that something else\n"
@@ -2656,7 +2799,7 @@ msgstr ""
"如果没有什么è¦æ·»åŠ åˆ°æš‚存区的,则很å¯èƒ½æ˜¯å…¶å®ƒæ交已ç»å¼•å…¥äº†ç›¸åŒçš„å˜æ›´ã€‚\n"
"您也许想è¦è·³è¿‡è¿™ä¸ªè¡¥ä¸ã€‚"
-#: builtin/am.c:1965
+#: builtin/am.c:1951
msgid ""
"You still have unmerged paths in your index.\n"
"Did you forget to use 'git add'?"
@@ -2664,168 +2807,168 @@ msgstr ""
"您的索引中ä»æœ‰æœªåˆå¹¶çš„路径。\n"
"您是å¦å¿˜äº†æ‰§è¡Œ 'git add'?"
-#: builtin/am.c:2073 builtin/am.c:2077 builtin/am.c:2089 builtin/reset.c:308
+#: builtin/am.c:2059 builtin/am.c:2063 builtin/am.c:2075 builtin/reset.c:308
#: builtin/reset.c:316
#, c-format
msgid "Could not parse object '%s'."
msgstr "ä¸èƒ½è§£æžå¯¹è±¡ '%s'。"
-#: builtin/am.c:2125
+#: builtin/am.c:2111
msgid "failed to clean index"
msgstr "无法清空索引"
-#: builtin/am.c:2159
+#: builtin/am.c:2145
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:2220
+#: builtin/am.c:2206
#, c-format
msgid "Invalid value for --patch-format: %s"
msgstr "无效的 --patch-format 值:%s"
-#: builtin/am.c:2253
+#: builtin/am.c:2239
msgid "git am [<options>] [(<mbox>|<Maildir>)...]"
msgstr "git am [<选项>] [(<mbox>|<Maildir>)...]"
-#: builtin/am.c:2254
+#: builtin/am.c:2240
msgid "git am [<options>] (--continue | --skip | --abort)"
msgstr "git am [<选项>] (--continue | --skip | --abort)"
-#: builtin/am.c:2260
+#: builtin/am.c:2246
msgid "run interactively"
msgstr "以交互å¼æ–¹å¼è¿è¡Œ"
-#: builtin/am.c:2262
+#: builtin/am.c:2248
msgid "historical option -- no-op"
msgstr "è€çš„å‚æ•° —— 无作用"
-#: builtin/am.c:2264
+#: builtin/am.c:2250
msgid "allow fall back on 3way merging if needed"
msgstr "如果必è¦ï¼Œå…许使用三方åˆå¹¶ã€‚"
-#: builtin/am.c:2265 builtin/init-db.c:474 builtin/prune-packed.c:57
+#: builtin/am.c:2251 builtin/init-db.c:474 builtin/prune-packed.c:57
#: builtin/repack.c:171
msgid "be quiet"
msgstr "é™é»˜æ¨¡å¼"
-#: builtin/am.c:2267
+#: builtin/am.c:2253
msgid "add a Signed-off-by line to the commit message"
msgstr "在æ交说明中添加一个 Signed-off-by ç­¾å"
-#: builtin/am.c:2270
+#: builtin/am.c:2256
msgid "recode into utf8 (default)"
msgstr "使用 utf8 字符集(默认)"
-#: builtin/am.c:2272
+#: builtin/am.c:2258
msgid "pass -k flag to git-mailinfo"
msgstr "å‘ git-mailinfo 传递 -k å‚æ•°"
-#: builtin/am.c:2274
+#: builtin/am.c:2260
msgid "pass -b flag to git-mailinfo"
msgstr "å‘ git-mailinfo 传递 -b å‚æ•°"
-#: builtin/am.c:2276
+#: builtin/am.c:2262
msgid "pass -m flag to git-mailinfo"
msgstr "å‘ git-mailinfo 传递 -m å‚æ•°"
-#: builtin/am.c:2278
+#: builtin/am.c:2264
msgid "pass --keep-cr flag to git-mailsplit for mbox format"
msgstr "针对 mbox æ ¼å¼ï¼Œå‘ git-mailsplit 传递 --keep-cr å‚æ•°"
-#: builtin/am.c:2281
+#: builtin/am.c:2267
msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
msgstr "ä¸å‘ git-mailsplit 传递 --keep-cr å‚数,覆盖 am.keepcr 的设置"
-#: builtin/am.c:2284
+#: builtin/am.c:2270
msgid "strip everything before a scissors line"
msgstr "丢弃è£åˆ‡çº¿å‰çš„所有内容"
-#: builtin/am.c:2285 builtin/apply.c:4554
+#: builtin/am.c:2271 builtin/apply.c:4544
msgid "action"
msgstr "动作"
-#: builtin/am.c:2286 builtin/am.c:2289 builtin/am.c:2292 builtin/am.c:2295
-#: builtin/am.c:2298 builtin/am.c:2301 builtin/am.c:2304 builtin/am.c:2307
-#: builtin/am.c:2313
+#: builtin/am.c:2272 builtin/am.c:2275 builtin/am.c:2278 builtin/am.c:2281
+#: builtin/am.c:2284 builtin/am.c:2287 builtin/am.c:2290 builtin/am.c:2293
+#: builtin/am.c:2299
msgid "pass it through git-apply"
msgstr "传递给 git-apply"
-#: builtin/am.c:2294 builtin/apply.c:4578
+#: builtin/am.c:2280 builtin/apply.c:4568
msgid "root"
msgstr "根目录"
-#: builtin/am.c:2297 builtin/am.c:2300 builtin/apply.c:4516
-#: builtin/apply.c:4519 builtin/clone.c:85 builtin/fetch.c:93
-#: builtin/pull.c:167 builtin/submodule--helper.c:78
-#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
+#: builtin/am.c:2283 builtin/am.c:2286 builtin/apply.c:4506
+#: builtin/apply.c:4509 builtin/clone.c:86 builtin/fetch.c:95
+#: builtin/pull.c:171 builtin/submodule--helper.c:72
+#: builtin/submodule--helper.c:160 builtin/submodule--helper.c:163
msgid "path"
msgstr "路径"
-#: builtin/am.c:2303 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
-#: builtin/grep.c:693 builtin/merge.c:198 builtin/pull.c:127
-#: builtin/repack.c:178 builtin/repack.c:182 builtin/show-branch.c:645
-#: builtin/show-ref.c:175 builtin/tag.c:340 parse-options.h:132
-#: parse-options.h:134 parse-options.h:244
+#: builtin/am.c:2289 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
+#: builtin/grep.c:704 builtin/merge.c:198 builtin/pull.c:131
+#: builtin/pull.c:185 builtin/repack.c:178 builtin/repack.c:182
+#: builtin/show-branch.c:645 builtin/show-ref.c:175 builtin/tag.c:340
+#: parse-options.h:132 parse-options.h:134 parse-options.h:244
msgid "n"
msgstr "n"
-#: builtin/am.c:2306 builtin/apply.c:4522
+#: builtin/am.c:2292 builtin/apply.c:4512
msgid "num"
msgstr "æ•°å­—"
-#: builtin/am.c:2309 builtin/for-each-ref.c:37 builtin/replace.c:438
+#: builtin/am.c:2295 builtin/for-each-ref.c:37 builtin/replace.c:438
#: builtin/tag.c:372
msgid "format"
msgstr "æ ¼å¼"
-#: builtin/am.c:2310
+#: builtin/am.c:2296
msgid "format the patch(es) are in"
msgstr "è¡¥ä¸çš„æ ¼å¼"
-#: builtin/am.c:2316
+#: builtin/am.c:2302
msgid "override error message when patch failure occurs"
msgstr "打补ä¸å¤±è´¥æ—¶æ˜¾ç¤ºçš„错误信æ¯"
-#: builtin/am.c:2318
+#: builtin/am.c:2304
msgid "continue applying patches after resolving a conflict"
msgstr "冲çªè§£å†³åŽç»§ç»­åº”用补ä¸"
-#: builtin/am.c:2321
+#: builtin/am.c:2307
msgid "synonyms for --continue"
msgstr "å’Œ --continue åŒä¹‰"
-#: builtin/am.c:2324
+#: builtin/am.c:2310
msgid "skip the current patch"
msgstr "跳过当å‰è¡¥ä¸"
-#: builtin/am.c:2327
+#: builtin/am.c:2313
msgid "restore the original branch and abort the patching operation."
msgstr "æ¢å¤åŽŸå§‹åˆ†æ”¯å¹¶ç»ˆæ­¢æ‰“è¡¥ä¸æ“作。"
-#: builtin/am.c:2331
+#: builtin/am.c:2317
msgid "lie about committer date"
msgstr "将作者日期作为æ交日期"
-#: builtin/am.c:2333
+#: builtin/am.c:2319
msgid "use current timestamp for author date"
msgstr "用当å‰æ—¶é—´ä½œä¸ºä½œè€…日期"
-#: builtin/am.c:2335 builtin/commit.c:1593 builtin/merge.c:225
-#: builtin/pull.c:155 builtin/revert.c:92 builtin/tag.c:355
+#: builtin/am.c:2321 builtin/commit.c:1593 builtin/merge.c:225
+#: builtin/pull.c:159 builtin/revert.c:92 builtin/tag.c:355
msgid "key-id"
msgstr "key-id"
-#: builtin/am.c:2336
+#: builtin/am.c:2322
msgid "GPG-sign commits"
msgstr "使用 GPG ç­¾åæ交"
-#: builtin/am.c:2339
+#: builtin/am.c:2325
msgid "(internal use for git-rebase)"
msgstr "(内部使用,用于 git-rebase)"
-#: builtin/am.c:2354
+#: builtin/am.c:2340
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."
@@ -2833,16 +2976,16 @@ msgstr ""
"å‚æ•° -b/--binary å·²ç»å¾ˆé•¿æ—¶é—´ä¸åšä»»ä½•å®žè´¨æ“作了,并且将被移除。\n"
"请ä¸è¦å†ä½¿ç”¨å®ƒäº†ã€‚"
-#: builtin/am.c:2361
+#: builtin/am.c:2347
msgid "failed to read the index"
msgstr "无法读å–索引"
-#: builtin/am.c:2376
+#: builtin/am.c:2362
#, c-format
msgid "previous rebase directory %s still exists but mbox given."
msgstr "之å‰çš„å˜åŸºç›®å½• %s ä»ç„¶å­˜åœ¨ï¼Œä½†å´æ供了 mbox。"
-#: builtin/am.c:2400
+#: builtin/am.c:2386
#, c-format
msgid ""
"Stray %s directory found.\n"
@@ -2851,7 +2994,7 @@ msgstr ""
"å‘现了错误的 %s 目录。\n"
"使用 \"git am --abort\" 删除它。"
-#: builtin/am.c:2406
+#: builtin/am.c:2392
msgid "Resolve operation not in progress, we are not resuming."
msgstr "解决æ“作未进行,我们ä¸ä¼šç»§ç»­ã€‚"
@@ -3192,131 +3335,131 @@ msgstr "未能识别的输入"
msgid "unable to read index file"
msgstr "无法读å–索引文件"
-#: builtin/apply.c:4517
+#: builtin/apply.c:4507
msgid "don't apply changes matching the given path"
msgstr "ä¸è¦åº”用与给出路径å‘匹é…çš„å˜æ›´"
-#: builtin/apply.c:4520
+#: builtin/apply.c:4510
msgid "apply changes matching the given path"
msgstr "应用与给出路径å‘匹é…çš„å˜æ›´"
-#: builtin/apply.c:4523
+#: builtin/apply.c:4513
msgid "remove <num> leading slashes from traditional diff paths"
msgstr "从传统的 diff 路径中移除指定数é‡çš„å‰å¯¼æ–œçº¿"
-#: builtin/apply.c:4526
+#: builtin/apply.c:4516
msgid "ignore additions made by the patch"
msgstr "忽略补ä¸ä¸­çš„添加的文件"
-#: builtin/apply.c:4528
+#: builtin/apply.c:4518
msgid "instead of applying the patch, output diffstat for the input"
msgstr "ä¸åº”用补ä¸ï¼Œè€Œæ˜¯æ˜¾ç¤ºè¾“入的差异统计(diffstat)"
-#: builtin/apply.c:4532
+#: builtin/apply.c:4522
msgid "show number of added and deleted lines in decimal notation"
msgstr "以å进制数显示添加和删除的行数"
-#: builtin/apply.c:4534
+#: builtin/apply.c:4524
msgid "instead of applying the patch, output a summary for the input"
msgstr "ä¸åº”用补ä¸ï¼Œè€Œæ˜¯æ˜¾ç¤ºè¾“入的概è¦"
-#: builtin/apply.c:4536
+#: builtin/apply.c:4526
msgid "instead of applying the patch, see if the patch is applicable"
msgstr "ä¸åº”用补ä¸ï¼Œè€Œæ˜¯æŸ¥çœ‹è¡¥ä¸æ˜¯å¦å¯åº”用"
-#: builtin/apply.c:4538
+#: builtin/apply.c:4528
msgid "make sure the patch is applicable to the current index"
msgstr "确认补ä¸å¯ä»¥åº”用到当å‰ç´¢å¼•"
-#: builtin/apply.c:4540
+#: builtin/apply.c:4530
msgid "apply a patch without touching the working tree"
msgstr "应用补ä¸è€Œä¸ä¿®æ”¹å·¥ä½œåŒº"
-#: builtin/apply.c:4542
+#: builtin/apply.c:4532
msgid "accept a patch that touches outside the working area"
msgstr "接å—修改工作区之外文件的补ä¸"
-#: builtin/apply.c:4544
+#: builtin/apply.c:4534
msgid "also apply the patch (use with --stat/--summary/--check)"
msgstr "还应用此补ä¸ï¼ˆä¸Ž --stat/--summary/--check 选项åŒæ—¶ä½¿ç”¨ï¼‰"
-#: builtin/apply.c:4546
+#: builtin/apply.c:4536
msgid "attempt three-way merge if a patch does not apply"
msgstr "如果一个补ä¸ä¸èƒ½åº”用则å°è¯•ä¸‰æ–¹åˆå¹¶"
-#: builtin/apply.c:4548
+#: builtin/apply.c:4538
msgid "build a temporary index based on embedded index information"
msgstr "创建一个临时索引基于嵌入的索引信æ¯"
-#: builtin/apply.c:4550 builtin/checkout-index.c:198 builtin/ls-files.c:412
+#: builtin/apply.c:4541 builtin/checkout-index.c:169 builtin/ls-files.c:425
msgid "paths are separated with NUL character"
msgstr "路径以 NUL 字符分隔"
-#: builtin/apply.c:4553
+#: builtin/apply.c:4543
msgid "ensure at least <n> lines of context match"
msgstr "ç¡®ä¿è‡³å°‘åŒ¹é… <n> 行上下文"
-#: builtin/apply.c:4555
+#: builtin/apply.c:4545
msgid "detect new or modified lines that have whitespace errors"
msgstr "检查新增和修改的行中间的空白字符滥用"
-#: builtin/apply.c:4558 builtin/apply.c:4561
+#: builtin/apply.c:4548 builtin/apply.c:4551
msgid "ignore changes in whitespace when finding context"
msgstr "查找上下文时忽略空白字符的å˜æ›´"
-#: builtin/apply.c:4564
+#: builtin/apply.c:4554
msgid "apply the patch in reverse"
msgstr "åå‘应用补ä¸"
-#: builtin/apply.c:4566
+#: builtin/apply.c:4556
msgid "don't expect at least one line of context"
msgstr "无需至少一行上下文"
-#: builtin/apply.c:4568
+#: builtin/apply.c:4558
msgid "leave the rejected hunks in corresponding *.rej files"
msgstr "将拒ç»çš„è¡¥ä¸ç‰‡æ®µä¿å­˜åœ¨å¯¹åº”çš„ *.rej 文件中"
-#: builtin/apply.c:4570
+#: builtin/apply.c:4560
msgid "allow overlapping hunks"
msgstr "å…许é‡å çš„è¡¥ä¸ç‰‡æ®µ"
-#: builtin/apply.c:4573
+#: builtin/apply.c:4563
msgid "tolerate incorrectly detected missing new-line at the end of file"
msgstr "å…许ä¸æ­£ç¡®çš„文件末尾æ¢è¡Œç¬¦"
-#: builtin/apply.c:4576
+#: builtin/apply.c:4566
msgid "do not trust the line counts in the hunk headers"
msgstr "ä¸ä¿¡ä»»è¡¥ä¸ç‰‡æ®µçš„头信æ¯ä¸­çš„è¡Œå·"
-#: builtin/apply.c:4579
+#: builtin/apply.c:4569
msgid "prepend <root> to all filenames"
msgstr "为所有文件åå‰æ·»åŠ  <根目录>"
-#: builtin/apply.c:4601
+#: builtin/apply.c:4591
msgid "--3way outside a repository"
msgstr "--3way 在一个仓库之外"
-#: builtin/apply.c:4609
+#: builtin/apply.c:4599
msgid "--index outside a repository"
msgstr "--index 在一个仓库之外"
-#: builtin/apply.c:4612
+#: builtin/apply.c:4602
msgid "--cached outside a repository"
msgstr "--cached 在一个仓库之外"
-#: builtin/apply.c:4631
+#: builtin/apply.c:4621
#, c-format
msgid "can't open patch '%s'"
msgstr "ä¸èƒ½æ‰“å¼€è¡¥ä¸ '%s'"
-#: builtin/apply.c:4645
+#: builtin/apply.c:4635
#, c-format
msgid "squelched %d whitespace error"
msgid_plural "squelched %d whitespace errors"
msgstr[0] "抑制下ä»æœ‰ %d 个空白字符误用"
msgstr[1] "抑制下ä»æœ‰ %d 个空白字符误用"
-#: builtin/apply.c:4651 builtin/apply.c:4661
+#: builtin/apply.c:4641 builtin/apply.c:4651
#, c-format
msgid "%d line adds whitespace errors."
msgid_plural "%d lines add whitespace errors."
@@ -3370,103 +3513,111 @@ msgstr "执行 'git bisect next'"
msgid "update BISECT_HEAD instead of checking out the current commit"
msgstr "æ›´æ–° BISECT_HEAD 而éžæ£€å‡ºå½“å‰æ交"
-#: builtin/blame.c:32
+#: builtin/blame.c:33
msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>"
msgstr "git blame [<选项>] [<版本选项>] [<版本>] [--] <文件>"
-#: builtin/blame.c:37
+#: builtin/blame.c:38
msgid "<rev-opts> are documented in git-rev-list(1)"
msgstr "<版本选项> 的文档记录在 git-rev-list(1) 中"
-#: builtin/blame.c:2519
+#: builtin/blame.c:1782
+msgid "Blaming lines"
+msgstr "追踪代ç è¡Œ"
+
+#: builtin/blame.c:2530
msgid "Show blame entries as we find them, incrementally"
msgstr "增é‡å¼åœ°æ˜¾ç¤ºå‘现的 blame æ¡ç›®"
-#: builtin/blame.c:2520
+#: builtin/blame.c:2531
msgid "Show blank SHA-1 for boundary commits (Default: off)"
msgstr "边界æ交显示空的 SHA-1(默认:关闭)"
-#: builtin/blame.c:2521
+#: builtin/blame.c:2532
msgid "Do not treat root commits as boundaries (Default: off)"
msgstr "ä¸æŠŠæ ¹æ交作为边界(默认:关闭)"
-#: builtin/blame.c:2522
+#: builtin/blame.c:2533
msgid "Show work cost statistics"
msgstr "显示命令消耗统计"
-#: builtin/blame.c:2523
+#: builtin/blame.c:2534
+msgid "Force progress reporting"
+msgstr "强制进度显示"
+
+#: builtin/blame.c:2535
msgid "Show output score for blame entries"
msgstr "显示判断 blame æ¡ç›®ä½ç§»çš„得分诊断信æ¯"
-#: builtin/blame.c:2524
+#: builtin/blame.c:2536
msgid "Show original filename (Default: auto)"
msgstr "显示原始文件å(默认:自动)"
-#: builtin/blame.c:2525
+#: builtin/blame.c:2537
msgid "Show original linenumber (Default: off)"
msgstr "显示原始的行å·ï¼ˆé»˜è®¤ï¼šå…³é—­ï¼‰"
-#: builtin/blame.c:2526
+#: builtin/blame.c:2538
msgid "Show in a format designed for machine consumption"
msgstr "显示为一个适åˆæœºå™¨è¯»å–çš„æ ¼å¼"
-#: builtin/blame.c:2527
+#: builtin/blame.c:2539
msgid "Show porcelain format with per-line commit information"
msgstr "为æ¯ä¸€è¡Œæ˜¾ç¤ºæœºå™¨é€‚用的æ交信æ¯"
-#: builtin/blame.c:2528
+#: builtin/blame.c:2540
msgid "Use the same output mode as git-annotate (Default: off)"
msgstr "使用和 git-annotate 相åŒçš„输出模å¼ï¼ˆé»˜è®¤ï¼šå…³é—­ï¼‰"
-#: builtin/blame.c:2529
+#: builtin/blame.c:2541
msgid "Show raw timestamp (Default: off)"
msgstr "显示原始时间戳(默认:关闭)"
-#: builtin/blame.c:2530
+#: builtin/blame.c:2542
msgid "Show long commit SHA1 (Default: off)"
msgstr "显示长的 SHA1 æ交å·ï¼ˆé»˜è®¤ï¼šå…³é—­ï¼‰"
-#: builtin/blame.c:2531
+#: builtin/blame.c:2543
msgid "Suppress author name and timestamp (Default: off)"
msgstr "éšè—作者å字和时间戳(默认:关闭)"
-#: builtin/blame.c:2532
+#: builtin/blame.c:2544
msgid "Show author email instead of name (Default: off)"
msgstr "显示作者的邮箱而ä¸æ˜¯å字(默认:关闭)"
-#: builtin/blame.c:2533
+#: builtin/blame.c:2545
msgid "Ignore whitespace differences"
msgstr "忽略空白差异"
-#: builtin/blame.c:2534
+#: builtin/blame.c:2546
msgid "Spend extra cycles to find better match"
msgstr "花费é¢å¤–的循环æ¥æ‰¾åˆ°æ›´å¥½çš„匹é…"
-#: builtin/blame.c:2535
+#: builtin/blame.c:2547
msgid "Use revisions from <file> instead of calling git-rev-list"
msgstr "使用æ¥è‡ª <文件> 的修订集而ä¸æ˜¯è°ƒç”¨ git-rev-list"
-#: builtin/blame.c:2536
+#: builtin/blame.c:2548
msgid "Use <file>'s contents as the final image"
msgstr "使用 <文件> 的内容作为最终的图片"
-#: builtin/blame.c:2537 builtin/blame.c:2538
+#: builtin/blame.c:2549 builtin/blame.c:2550
msgid "score"
msgstr "得分"
-#: builtin/blame.c:2537
+#: builtin/blame.c:2549
msgid "Find line copies within and across files"
msgstr "找到文件内åŠè·¨æ–‡ä»¶çš„行拷è´"
-#: builtin/blame.c:2538
+#: builtin/blame.c:2550
msgid "Find line movements within and across files"
msgstr "找到文件内åŠè·¨æ–‡ä»¶çš„行移动"
-#: builtin/blame.c:2539
+#: builtin/blame.c:2551
msgid "n,m"
msgstr "n,m"
-#: builtin/blame.c:2539
+#: builtin/blame.c:2551
msgid "Process only line range n,m, counting from 1"
msgstr "åªå¤„ç†è¡ŒèŒƒå›´åœ¨ n å’Œ m 之间的,从 1 开始"
@@ -3476,7 +3627,7 @@ msgstr "åªå¤„ç†è¡ŒèŒƒå›´åœ¨ n å’Œ m 之间的,从 1 开始"
#. takes 22 places, is the longest among various forms of
#. relative timestamps, but your language may need more or
#. fewer display columns.
-#: builtin/blame.c:2620
+#: builtin/blame.c:2640
msgid "4 years, 11 months ago"
msgstr "4 å¹´ 11 个月å‰"
@@ -3676,193 +3827,193 @@ msgstr "分支é‡å‘½å为 %s,但 HEAD 没有更新ï¼"
msgid "Branch is renamed, but update of config-file failed"
msgstr "分支被é‡å‘½å,但更新 config 文件失败"
-#: builtin/branch.c:587
+#: builtin/branch.c:586
#, c-format
msgid "could not write branch description template: %s"
msgstr "ä¸èƒ½å†™åˆ†æ”¯æ述模版:%s"
-#: builtin/branch.c:616
+#: builtin/branch.c:615
msgid "Generic options"
msgstr "通用选项"
-#: builtin/branch.c:618
+#: builtin/branch.c:617
msgid "show hash and subject, give twice for upstream branch"
msgstr "显示哈希值和主题,若å‚数出现两次则显示上游分支"
-#: builtin/branch.c:619
+#: builtin/branch.c:618
msgid "suppress informational messages"
msgstr "ä¸æ˜¾ç¤ºä¿¡æ¯"
-#: builtin/branch.c:620
+#: builtin/branch.c:619
msgid "set up tracking mode (see git-pull(1))"
msgstr "设置跟踪模å¼ï¼ˆå‚è§ git-pull(1))"
-#: builtin/branch.c:622
+#: builtin/branch.c:621
msgid "change upstream info"
msgstr "改å˜ä¸Šæ¸¸ä¿¡æ¯"
-#: builtin/branch.c:626
+#: builtin/branch.c:625
msgid "use colored output"
msgstr "使用彩色输出"
-#: builtin/branch.c:627
+#: builtin/branch.c:626
msgid "act on remote-tracking branches"
msgstr "作用于远程跟踪分支"
-#: builtin/branch.c:629 builtin/branch.c:630
+#: builtin/branch.c:628 builtin/branch.c:629
msgid "print only branches that contain the commit"
msgstr "åªæ‰“å°åŒ…å«è¯¥æ交的分支"
-#: builtin/branch.c:633
+#: builtin/branch.c:632
msgid "Specific git-branch actions:"
msgstr "具体的 git-branch 动作:"
-#: builtin/branch.c:634
+#: builtin/branch.c:633
msgid "list both remote-tracking and local branches"
msgstr "列出远程跟踪åŠæœ¬åœ°åˆ†æ”¯"
-#: builtin/branch.c:636
+#: builtin/branch.c:635
msgid "delete fully merged branch"
msgstr "删除完全åˆå¹¶çš„分支"
-#: builtin/branch.c:637
+#: builtin/branch.c:636
msgid "delete branch (even if not merged)"
msgstr "删除分支(å³ä½¿æ²¡æœ‰åˆå¹¶ï¼‰"
-#: builtin/branch.c:638
+#: builtin/branch.c:637
msgid "move/rename a branch and its reflog"
msgstr "移动/é‡å‘½å一个分支,以åŠå®ƒçš„引用日志"
-#: builtin/branch.c:639
+#: builtin/branch.c:638
msgid "move/rename a branch, even if target exists"
msgstr "移动/é‡å‘½å一个分支,å³ä½¿ç›®æ ‡å·²å­˜åœ¨"
-#: builtin/branch.c:640
+#: builtin/branch.c:639
msgid "list branch names"
msgstr "列出分支å"
-#: builtin/branch.c:641
+#: builtin/branch.c:640
msgid "create the branch's reflog"
msgstr "创建分支的引用日志"
-#: builtin/branch.c:643
+#: builtin/branch.c:642
msgid "edit the description for the branch"
msgstr "标记分支的æè¿°"
-#: builtin/branch.c:644
+#: builtin/branch.c:643
msgid "force creation, move/rename, deletion"
msgstr "强制创建ã€ç§»åŠ¨/é‡å‘½åã€åˆ é™¤"
-#: builtin/branch.c:645
+#: builtin/branch.c:644
msgid "print only branches that are merged"
msgstr "åªæ‰“å°å·²ç»åˆå¹¶çš„分支"
-#: builtin/branch.c:646
+#: builtin/branch.c:645
msgid "print only branches that are not merged"
msgstr "åªæ‰“å°å°šæœªåˆå¹¶çš„分支"
-#: builtin/branch.c:647
+#: builtin/branch.c:646
msgid "list branches in columns"
msgstr "以列的方å¼æ˜¾ç¤ºåˆ†æ”¯"
-#: builtin/branch.c:648 builtin/for-each-ref.c:38 builtin/tag.c:366
+#: builtin/branch.c:647 builtin/for-each-ref.c:38 builtin/tag.c:366
msgid "key"
msgstr "key"
-#: builtin/branch.c:649 builtin/for-each-ref.c:39 builtin/tag.c:367
+#: builtin/branch.c:648 builtin/for-each-ref.c:39 builtin/tag.c:367
msgid "field name to sort on"
msgstr "排åºçš„字段å"
-#: builtin/branch.c:651 builtin/for-each-ref.c:41 builtin/notes.c:398
-#: builtin/notes.c:401 builtin/notes.c:561 builtin/notes.c:564
+#: builtin/branch.c:650 builtin/for-each-ref.c:41 builtin/notes.c:401
+#: builtin/notes.c:404 builtin/notes.c:564 builtin/notes.c:567
#: builtin/tag.c:369
msgid "object"
msgstr "对象"
-#: builtin/branch.c:652
+#: builtin/branch.c:651
msgid "print only branches of the object"
msgstr "åªæ‰“å°æŒ‡å‘该对象的分支"
-#: builtin/branch.c:670
+#: builtin/branch.c:669
msgid "Failed to resolve HEAD as a valid ref."
msgstr "无法将 HEAD 解æžä¸ºæœ‰æ•ˆå¼•ç”¨ã€‚"
-#: builtin/branch.c:674 builtin/clone.c:697
+#: builtin/branch.c:673 builtin/clone.c:705
msgid "HEAD not found below refs/heads!"
msgstr "HEAD 没有ä½äºŽ /refs/heads 之下ï¼"
-#: builtin/branch.c:694
+#: builtin/branch.c:693
msgid "--column and --verbose are incompatible"
msgstr "--column å’Œ --verbose ä¸å…¼å®¹"
-#: builtin/branch.c:705 builtin/branch.c:747
+#: builtin/branch.c:704 builtin/branch.c:746
msgid "branch name required"
msgstr "å¿…é¡»æ供分支å"
-#: builtin/branch.c:723
+#: builtin/branch.c:722
msgid "Cannot give description to detached HEAD"
msgstr "ä¸èƒ½å‘分离头指针æä¾›æè¿°"
-#: builtin/branch.c:728
+#: builtin/branch.c:727
msgid "cannot edit description of more than one branch"
msgstr "ä¸èƒ½ä¸ºä¸€ä¸ªä»¥ä¸Šçš„分支编辑æè¿°"
-#: builtin/branch.c:735
+#: builtin/branch.c:734
#, c-format
msgid "No commit on branch '%s' yet."
msgstr "分支 '%s' å°šæ— æ交。"
-#: builtin/branch.c:738
+#: builtin/branch.c:737
#, c-format
msgid "No branch named '%s'."
msgstr "没有分支 '%s'。"
-#: builtin/branch.c:753
+#: builtin/branch.c:752
msgid "too many branches for a rename operation"
msgstr "为é‡å‘½åæ“作æ供了太多的分支å"
-#: builtin/branch.c:758
+#: builtin/branch.c:757
msgid "too many branches to set new upstream"
msgstr "为设置新上游æ供了太多的分支å"
-#: builtin/branch.c:762
+#: builtin/branch.c:761
#, c-format
msgid ""
"could not set upstream of HEAD to %s when it does not point to any branch."
msgstr "无法设置 HEAD 的上游为 %s,因为 HEAD 没有指å‘任何分支。"
-#: builtin/branch.c:765 builtin/branch.c:787 builtin/branch.c:808
+#: builtin/branch.c:764 builtin/branch.c:786 builtin/branch.c:807
#, c-format
msgid "no such branch '%s'"
msgstr "没有此分支 '%s'"
-#: builtin/branch.c:769
+#: builtin/branch.c:768
#, c-format
msgid "branch '%s' does not exist"
msgstr "分支 '%s' ä¸å­˜åœ¨"
-#: builtin/branch.c:781
+#: builtin/branch.c:780
msgid "too many branches to unset upstream"
msgstr "为å–消上游设置æ“作æ供了太多的分支å"
-#: builtin/branch.c:785
+#: builtin/branch.c:784
msgid "could not unset upstream of HEAD when it does not point to any branch."
msgstr "无法å–消 HEAD 的上游设置因为它没有指å‘一个分支"
-#: builtin/branch.c:791
+#: builtin/branch.c:790
#, c-format
msgid "Branch '%s' has no upstream information"
msgstr "分支 '%s' 没有上游信æ¯"
-#: builtin/branch.c:805
+#: builtin/branch.c:804
msgid "it does not make sense to create 'HEAD' manually"
msgstr "手工创建 'HEAD' 没有æ„义"
-#: builtin/branch.c:811
+#: builtin/branch.c:810
msgid "-a and -r options to 'git branch' do not make sense with a branch name"
msgstr "'git branch' çš„ -a å’Œ -r 选项带一个分支åå‚数没有æ„义"
-#: builtin/branch.c:814
+#: builtin/branch.c:813
#, c-format
msgid ""
"The --set-upstream flag is deprecated and will be removed. Consider using --"
@@ -3870,7 +4021,7 @@ msgid ""
msgstr ""
"选项 --set-upstream 已弃用并将被移除。考虑使用 --track 或 --set-upstream-to\n"
-#: builtin/branch.c:831
+#: builtin/branch.c:830
#, c-format
msgid ""
"\n"
@@ -3881,12 +4032,12 @@ msgstr ""
"如果你想用 '%s' 跟踪 '%s', 这么åšï¼š\n"
"\n"
-#: builtin/branch.c:832
+#: builtin/branch.c:831
#, c-format
msgid " git branch -d %s\n"
msgstr " git branch -d %s\n"
-#: builtin/branch.c:833
+#: builtin/branch.c:832
#, c-format
msgid " git branch --set-upstream-to %s\n"
msgstr " git branch --set-upstream-to %s\n"
@@ -3980,7 +4131,7 @@ msgstr "报告设置在文件上的所有属性"
msgid "use .gitattributes only from the index"
msgstr "åªä½¿ç”¨ç´¢å¼•ä¸­çš„ .gitattributes"
-#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:96
+#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:97
msgid "read file names from stdin"
msgstr "从标准输入读出文件å"
@@ -3988,7 +4139,7 @@ msgstr "从标准输入读出文件å"
msgid "terminate input and output records by a NUL character"
msgstr "输入和输出的记录使用 NUL 字符终结"
-#: builtin/check-ignore.c:18 builtin/checkout.c:1134 builtin/gc.c:325
+#: builtin/check-ignore.c:18 builtin/checkout.c:1136 builtin/gc.c:325
msgid "suppress progress reporting"
msgstr "ä¸æ˜¾ç¤ºè¿›åº¦æŠ¥å‘Š"
@@ -4041,49 +4192,53 @@ msgstr "ä¸èƒ½è§£æžè”系地å€ï¼š%s"
msgid "no contacts specified"
msgstr "未指定è”系地å€"
-#: builtin/checkout-index.c:126
+#: builtin/checkout-index.c:127
msgid "git checkout-index [<options>] [--] [<file>...]"
msgstr "git checkout-index [<选项>] [--] [<文件>...]"
-#: builtin/checkout-index.c:188
+#: builtin/checkout-index.c:144
+msgid "stage should be between 1 and 3 or all"
+msgstr "索引值应该å–值 1 到 3 或者 all"
+
+#: builtin/checkout-index.c:160
msgid "check out all files in the index"
msgstr "检出索引区的所有文件"
-#: builtin/checkout-index.c:189
+#: builtin/checkout-index.c:161
msgid "force overwrite of existing files"
msgstr "强制覆盖现有的文件"
-#: builtin/checkout-index.c:191
+#: builtin/checkout-index.c:163
msgid "no warning for existing files and files not in index"
msgstr "存在或ä¸åœ¨ç´¢å¼•ä¸­çš„文件都没有警告"
-#: builtin/checkout-index.c:193
+#: builtin/checkout-index.c:165
msgid "don't checkout new files"
msgstr "ä¸æ£€å‡ºæ–°æ–‡ä»¶"
-#: builtin/checkout-index.c:195
+#: builtin/checkout-index.c:167
msgid "update stat information in the index file"
msgstr "更新索引中文件的状æ€ä¿¡æ¯"
-#: builtin/checkout-index.c:201
+#: builtin/checkout-index.c:171
msgid "read list of paths from the standard input"
msgstr "从标准输入读å–路径列表"
-#: builtin/checkout-index.c:203
+#: builtin/checkout-index.c:173
msgid "write the content to temporary files"
msgstr "将内容写入临时文件"
-#: builtin/checkout-index.c:204 builtin/column.c:30
+#: builtin/checkout-index.c:174 builtin/column.c:30
+#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
#: builtin/submodule--helper.c:172 builtin/submodule--helper.c:175
-#: builtin/submodule--helper.c:178 builtin/submodule--helper.c:181
msgid "string"
msgstr "字符串"
-#: builtin/checkout-index.c:205
+#: builtin/checkout-index.c:175
msgid "when creating files, prepend <string>"
msgstr "在创建文件时,在å‰é¢åŠ ä¸Š <字符串>"
-#: builtin/checkout-index.c:208
+#: builtin/checkout-index.c:177
msgid "copy out the files from named stage"
msgstr "从指定暂存区中拷出文件"
@@ -4163,38 +4318,42 @@ msgstr "ä¸èƒ½å¯¹ '%s' 执行 reflog æ“作:%s\n"
msgid "HEAD is now at"
msgstr "HEAD ç›®å‰ä½äºŽ"
-#: builtin/checkout.c:668
+#: builtin/checkout.c:665 builtin/clone.c:659
+msgid "unable to update HEAD"
+msgstr "ä¸èƒ½æ›´æ–° HEAD"
+
+#: builtin/checkout.c:669
#, c-format
msgid "Reset branch '%s'\n"
msgstr "é‡ç½®åˆ†æ”¯ '%s'\n"
-#: builtin/checkout.c:671
+#: builtin/checkout.c:672
#, c-format
msgid "Already on '%s'\n"
msgstr "å·²ç»ä½äºŽ '%s'\n"
-#: builtin/checkout.c:675
+#: builtin/checkout.c:676
#, c-format
msgid "Switched to and reset branch '%s'\n"
msgstr "切æ¢å¹¶é‡ç½®åˆ†æ”¯ '%s'\n"
-#: builtin/checkout.c:677 builtin/checkout.c:1066
+#: builtin/checkout.c:678 builtin/checkout.c:1068
#, c-format
msgid "Switched to a new branch '%s'\n"
msgstr "切æ¢åˆ°ä¸€ä¸ªæ–°åˆ†æ”¯ '%s'\n"
-#: builtin/checkout.c:679
+#: builtin/checkout.c:680
#, c-format
msgid "Switched to branch '%s'\n"
msgstr "切æ¢åˆ°åˆ†æ”¯ '%s'\n"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: builtin/checkout.c:731
+#: builtin/checkout.c:732
#, c-format
msgid " ... and %d more.\n"
msgstr " ... åŠå…¶å®ƒ %d 个。\n"
-#: builtin/checkout.c:737
+#: builtin/checkout.c:738
#, c-format
msgid ""
"Warning: you are leaving %d commit behind, not connected to\n"
@@ -4215,7 +4374,7 @@ msgstr[1] ""
"\n"
"%s\n"
-#: builtin/checkout.c:756
+#: builtin/checkout.c:757
#, c-format
msgid ""
"If you want to keep it by creating a new branch, this may be a good time\n"
@@ -4242,150 +4401,150 @@ msgstr[1] ""
" git branch <新分支å> %s\n"
"\n"
-#: builtin/checkout.c:792
+#: builtin/checkout.c:793
msgid "internal error in revision walk"
msgstr "在版本é历时é‡åˆ°å†…部错误"
-#: builtin/checkout.c:796
+#: builtin/checkout.c:797
msgid "Previous HEAD position was"
msgstr "之å‰çš„ HEAD ä½ç½®æ˜¯"
-#: builtin/checkout.c:823 builtin/checkout.c:1061
+#: builtin/checkout.c:824 builtin/checkout.c:1063
msgid "You are on a branch yet to be born"
msgstr "您ä½äºŽä¸€ä¸ªå°šæœªåˆå§‹åŒ–的分支"
-#: builtin/checkout.c:968
+#: builtin/checkout.c:969
#, c-format
msgid "only one reference expected, %d given."
msgstr "åªè¦ä¸€ä¸ªå¼•ç”¨ï¼Œå´ç»™å‡ºäº† %d 个"
-#: builtin/checkout.c:1007 builtin/worktree.c:213
+#: builtin/checkout.c:1009 builtin/worktree.c:211
#, c-format
msgid "invalid reference: %s"
msgstr "无效引用:%s"
-#: builtin/checkout.c:1036
+#: builtin/checkout.c:1038
#, c-format
msgid "reference is not a tree: %s"
msgstr "引用ä¸æ˜¯ä¸€ä¸ªæ ‘:%s"
-#: builtin/checkout.c:1075
+#: builtin/checkout.c:1077
msgid "paths cannot be used with switching branches"
msgstr "路径ä¸èƒ½å’Œåˆ‡æ¢åˆ†æ”¯åŒæ—¶ä½¿ç”¨"
-#: builtin/checkout.c:1078 builtin/checkout.c:1082
+#: builtin/checkout.c:1080 builtin/checkout.c:1084
#, c-format
msgid "'%s' cannot be used with switching branches"
msgstr "'%s' ä¸èƒ½å’Œåˆ‡æ¢åˆ†æ”¯åŒæ—¶ä½¿ç”¨"
-#: builtin/checkout.c:1086 builtin/checkout.c:1089 builtin/checkout.c:1094
-#: builtin/checkout.c:1097
+#: builtin/checkout.c:1088 builtin/checkout.c:1091 builtin/checkout.c:1096
+#: builtin/checkout.c:1099
#, c-format
msgid "'%s' cannot be used with '%s'"
msgstr "'%s' ä¸èƒ½å’Œ '%s' åŒæ—¶ä½¿ç”¨"
-#: builtin/checkout.c:1102
+#: builtin/checkout.c:1104
#, c-format
msgid "Cannot switch branch to a non-commit '%s'"
msgstr "ä¸èƒ½åˆ‡æ¢åˆ†æ”¯åˆ°ä¸€ä¸ªéžæ交 '%s'"
-#: builtin/checkout.c:1135 builtin/checkout.c:1137 builtin/clone.c:83
-#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:320
-#: builtin/worktree.c:322
+#: builtin/checkout.c:1137 builtin/checkout.c:1139 builtin/clone.c:84
+#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:318
+#: builtin/worktree.c:320
msgid "branch"
msgstr "分支"
-#: builtin/checkout.c:1136
+#: builtin/checkout.c:1138
msgid "create and checkout a new branch"
msgstr "创建并检出一个新的分支"
-#: builtin/checkout.c:1138
+#: builtin/checkout.c:1140
msgid "create/reset and checkout a branch"
msgstr "创建/é‡ç½®å¹¶æ£€å‡ºä¸€ä¸ªåˆ†æ”¯"
-#: builtin/checkout.c:1139
+#: builtin/checkout.c:1141
msgid "create reflog for new branch"
msgstr "为新的分支创建引用日志"
-#: builtin/checkout.c:1140
+#: builtin/checkout.c:1142
msgid "detach the HEAD at named commit"
msgstr "æˆä¸ºæŒ‡å‘该æ交的分离头指针"
-#: builtin/checkout.c:1141
+#: builtin/checkout.c:1143
msgid "set upstream info for new branch"
msgstr "为新的分支设置上游信æ¯"
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
msgid "new-branch"
msgstr "新分支"
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
msgid "new unparented branch"
msgstr "新的没有父æ交的分支"
-#: builtin/checkout.c:1144
+#: builtin/checkout.c:1146
msgid "checkout our version for unmerged files"
msgstr "对尚未åˆå¹¶çš„文件检出我们的版本"
-#: builtin/checkout.c:1146
+#: builtin/checkout.c:1148
msgid "checkout their version for unmerged files"
msgstr "对尚未åˆå¹¶çš„文件检出他们的版本"
-#: builtin/checkout.c:1148
+#: builtin/checkout.c:1150
msgid "force checkout (throw away local modifications)"
msgstr "强制检出(丢弃本地修改)"
-#: builtin/checkout.c:1149
+#: builtin/checkout.c:1151
msgid "perform a 3-way merge with the new branch"
msgstr "和新的分支执行三方åˆå¹¶"
-#: builtin/checkout.c:1150 builtin/merge.c:227
+#: builtin/checkout.c:1152 builtin/merge.c:227
msgid "update ignored files (default)"
msgstr "更新忽略的文件(默认)"
-#: builtin/checkout.c:1151 builtin/log.c:1266 parse-options.h:250
+#: builtin/checkout.c:1153 builtin/log.c:1269 parse-options.h:250
msgid "style"
msgstr "风格"
-#: builtin/checkout.c:1152
+#: builtin/checkout.c:1154
msgid "conflict style (merge or diff3)"
msgstr "冲çªè¾“出风格(merge 或 diff3)"
-#: builtin/checkout.c:1155
+#: builtin/checkout.c:1157
msgid "do not limit pathspecs to sparse entries only"
msgstr "对路径ä¸åšç¨€ç–检出的é™åˆ¶"
-#: builtin/checkout.c:1157
+#: builtin/checkout.c:1159
msgid "second guess 'git checkout <no-such-branch>'"
msgstr "二次猜测'git checkout <无此分支>'"
-#: builtin/checkout.c:1159
+#: builtin/checkout.c:1161
msgid "do not check if another worktree is holding the given ref"
msgstr "ä¸æ£€æŸ¥æŒ‡å®šçš„引用是å¦è¢«å…¶ä»–工作区所å ç”¨"
-#: builtin/checkout.c:1160 builtin/clone.c:57 builtin/fetch.c:112
-#: builtin/merge.c:224 builtin/pull.c:109 builtin/push.c:558
+#: builtin/checkout.c:1162 builtin/clone.c:58 builtin/fetch.c:116
+#: builtin/merge.c:224 builtin/pull.c:113 builtin/push.c:526
#: builtin/send-pack.c:168
msgid "force progress reporting"
msgstr "强制显示进度报告"
-#: builtin/checkout.c:1191
+#: builtin/checkout.c:1193
msgid "-b, -B and --orphan are mutually exclusive"
msgstr "-bã€-B å’Œ --orphan 是互斥的"
-#: builtin/checkout.c:1208
+#: builtin/checkout.c:1210
msgid "--track needs a branch name"
msgstr "--track 需è¦ä¸€ä¸ªåˆ†æ”¯å"
-#: builtin/checkout.c:1213
+#: builtin/checkout.c:1215
msgid "Missing branch name; try -b"
msgstr "缺少分支åï¼›å°è¯• -b"
-#: builtin/checkout.c:1249
+#: builtin/checkout.c:1251
msgid "invalid path specification"
msgstr "无效的路径规格"
-#: builtin/checkout.c:1256
+#: builtin/checkout.c:1258
#, c-format
msgid ""
"Cannot update paths and switch to branch '%s' at the same time.\n"
@@ -4394,12 +4553,12 @@ msgstr ""
"ä¸èƒ½åŒæ—¶æ›´æ–°è·¯å¾„并切æ¢åˆ°åˆ†æ”¯'%s'。\n"
"您是想è¦æ£€å‡º '%s' 但其未能解æžä¸ºæ交么?"
-#: builtin/checkout.c:1261
+#: builtin/checkout.c:1263
#, c-format
msgid "git checkout: --detach does not take a path argument '%s'"
msgstr "git checkout:--detach ä¸èƒ½æŽ¥æ”¶è·¯å¾„å‚æ•° '%s'"
-#: builtin/checkout.c:1265
+#: builtin/checkout.c:1267
msgid ""
"git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
"checking out of the index."
@@ -4437,7 +4596,7 @@ msgstr "将忽略仓库 %s\n"
msgid "failed to remove %s"
msgstr "无法删除 %s"
-#: builtin/clean.c:315
+#: builtin/clean.c:291
msgid ""
"Prompt help:\n"
"1 - select a numbered item\n"
@@ -4449,7 +4608,7 @@ msgstr ""
"foo - 通过标题选择一个选项\n"
" - (空)什么也ä¸é€‰æ‹©"
-#: builtin/clean.c:319
+#: builtin/clean.c:295
msgid ""
"Prompt help:\n"
"1 - select a single item\n"
@@ -4469,36 +4628,36 @@ msgstr ""
"* - 选择所有选项\n"
" - (空)结æŸé€‰æ‹©"
-#: builtin/clean.c:535
+#: builtin/clean.c:511
#, c-format
msgid "Huh (%s)?"
msgstr "嗯(%s)?"
-#: builtin/clean.c:677
+#: builtin/clean.c:653
#, c-format
msgid "Input ignore patterns>> "
msgstr "输入模版以排除æ¡ç›®>> "
-#: builtin/clean.c:714
+#: builtin/clean.c:690
#, c-format
msgid "WARNING: Cannot find items matched by: %s"
msgstr "警告:无法找到和 %s 匹é…çš„æ¡ç›®"
-#: builtin/clean.c:735
+#: builtin/clean.c:711
msgid "Select items to delete"
msgstr "选择è¦åˆ é™¤çš„æ¡ç›®"
#. TRANSLATORS: Make sure to keep [y/N] as is
-#: builtin/clean.c:776
+#: builtin/clean.c:752
#, c-format
msgid "Remove %s [y/N]? "
msgstr "删除 %s [y/N]?"
-#: builtin/clean.c:801
+#: builtin/clean.c:777
msgid "Bye."
msgstr "å†è§ã€‚"
-#: builtin/clean.c:809
+#: builtin/clean.c:785
msgid ""
"clean - start cleaning\n"
"filter by pattern - exclude items from deletion\n"
@@ -4516,69 +4675,69 @@ msgstr ""
"help - 显示本帮助\n"
"? - 显示如何在æ示符下选择的帮助"
-#: builtin/clean.c:836
+#: builtin/clean.c:812
msgid "*** Commands ***"
msgstr "*** 命令 ***"
-#: builtin/clean.c:837
+#: builtin/clean.c:813
msgid "What now"
msgstr "请选择"
-#: builtin/clean.c:845
+#: builtin/clean.c:821
msgid "Would remove the following item:"
msgid_plural "Would remove the following items:"
msgstr[0] "将删除如下æ¡ç›®ï¼š"
msgstr[1] "将删除如下æ¡ç›®ï¼š"
-#: builtin/clean.c:862
+#: builtin/clean.c:838
msgid "No more files to clean, exiting."
msgstr "没有è¦æ¸…ç†çš„文件,退出。"
-#: builtin/clean.c:893
+#: builtin/clean.c:869
msgid "do not print names of files removed"
msgstr "ä¸æ‰“å°åˆ é™¤æ–‡ä»¶çš„å称"
-#: builtin/clean.c:895
+#: builtin/clean.c:871
msgid "force"
msgstr "强制"
-#: builtin/clean.c:896
+#: builtin/clean.c:872
msgid "interactive cleaning"
msgstr "交互å¼æ¸…除"
-#: builtin/clean.c:898
+#: builtin/clean.c:874
msgid "remove whole directories"
msgstr "删除整个目录"
-#: builtin/clean.c:899 builtin/describe.c:407 builtin/grep.c:709
-#: builtin/ls-files.c:443 builtin/name-rev.c:307 builtin/show-ref.c:182
+#: builtin/clean.c:875 builtin/describe.c:407 builtin/grep.c:722
+#: builtin/ls-files.c:456 builtin/name-rev.c:307 builtin/show-ref.c:182
msgid "pattern"
msgstr "模å¼"
-#: builtin/clean.c:900
+#: builtin/clean.c:876
msgid "add <pattern> to ignore rules"
msgstr "添加 <模å¼> 到忽略规则"
-#: builtin/clean.c:901
+#: builtin/clean.c:877
msgid "remove ignored files, too"
msgstr "也删除忽略的文件"
-#: builtin/clean.c:903
+#: builtin/clean.c:879
msgid "remove only ignored files"
msgstr "åªåˆ é™¤å¿½ç•¥çš„文件"
-#: builtin/clean.c:921
+#: builtin/clean.c:897
msgid "-x and -X cannot be used together"
msgstr "-x å’Œ -X ä¸èƒ½åŒæ—¶ä½¿ç”¨"
-#: builtin/clean.c:925
+#: builtin/clean.c:901
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:928
+#: builtin/clean.c:904
msgid ""
"clean.requireForce defaults to true and neither -i, -n, nor -f given; "
"refusing to clean"
@@ -4589,146 +4748,162 @@ msgstr ""
msgid "git clone [<options>] [--] <repo> [<dir>]"
msgstr "git clone [<选项>] [--] <仓库> [<路径>]"
-#: builtin/clone.c:59
+#: builtin/clone.c:60
msgid "don't create a checkout"
msgstr "ä¸åˆ›å»ºä¸€ä¸ªæ£€å‡º"
-#: builtin/clone.c:60 builtin/clone.c:62 builtin/init-db.c:469
+#: builtin/clone.c:61 builtin/clone.c:63 builtin/init-db.c:469
msgid "create a bare repository"
msgstr "创建一个纯仓库"
-#: builtin/clone.c:64
+#: builtin/clone.c:65
msgid "create a mirror repository (implies bare)"
msgstr "创建一个镜åƒä»“库(也是纯仓库)"
-#: builtin/clone.c:66
+#: builtin/clone.c:67
msgid "to clone from a local repository"
msgstr "从本地仓库克隆"
-#: builtin/clone.c:68
+#: builtin/clone.c:69
msgid "don't use local hardlinks, always copy"
msgstr "ä¸ä½¿ç”¨æœ¬åœ°ç¡¬é“¾æŽ¥ï¼Œå§‹ç»ˆå¤åˆ¶"
-#: builtin/clone.c:70
+#: builtin/clone.c:71
msgid "setup as shared repository"
msgstr "设置为共享仓库"
-#: builtin/clone.c:72 builtin/clone.c:74
+#: builtin/clone.c:73 builtin/clone.c:75
msgid "initialize submodules in the clone"
msgstr "在克隆时åˆå§‹åŒ–å­æ¨¡ç»„"
-#: builtin/clone.c:75 builtin/init-db.c:466
+#: builtin/clone.c:76 builtin/init-db.c:466
msgid "template-directory"
msgstr "模æ¿ç›®å½•"
-#: builtin/clone.c:76 builtin/init-db.c:467
+#: builtin/clone.c:77 builtin/init-db.c:467
msgid "directory from which templates will be used"
msgstr "模æ¿ç›®å½•å°†è¢«ä½¿ç”¨"
-#: builtin/clone.c:78 builtin/submodule--helper.c:179
+#: builtin/clone.c:79 builtin/submodule--helper.c:173
msgid "reference repository"
msgstr "å‚考仓库"
-#: builtin/clone.c:80
+#: builtin/clone.c:81
msgid "use --reference only while cloning"
msgstr "仅在克隆时å‚考 --reference 指å‘的本地仓库"
-#: builtin/clone.c:81 builtin/column.c:26 builtin/merge-file.c:44
+#: builtin/clone.c:82 builtin/column.c:26 builtin/merge-file.c:44
msgid "name"
msgstr "å称"
-#: builtin/clone.c:82
+#: builtin/clone.c:83
msgid "use <name> instead of 'origin' to track upstream"
msgstr "使用 <å称> 而ä¸æ˜¯ 'origin' 去跟踪上游"
-#: builtin/clone.c:84
+#: builtin/clone.c:85
msgid "checkout <branch> instead of the remote's HEAD"
msgstr "检出 <分支> 而ä¸æ˜¯è¿œç¨‹ HEAD"
-#: builtin/clone.c:86
+#: builtin/clone.c:87
msgid "path to git-upload-pack on the remote"
msgstr "远程 git-upload-pack 路径"
-#: builtin/clone.c:87 builtin/fetch.c:113 builtin/grep.c:654
-#: builtin/pull.c:186
+#: builtin/clone.c:88 builtin/fetch.c:117 builtin/grep.c:665
+#: builtin/pull.c:193
msgid "depth"
msgstr "深度"
-#: builtin/clone.c:88
+#: builtin/clone.c:89
msgid "create a shallow clone of that depth"
msgstr "创建一个指定深度的浅克隆"
-#: builtin/clone.c:90
+#: builtin/clone.c:91
msgid "clone only one branch, HEAD or --branch"
msgstr "åªå…‹éš†ä¸€ä¸ªåˆ†æ”¯ã€HEAD 或 --branch"
-#: builtin/clone.c:91 builtin/init-db.c:475
+#: builtin/clone.c:92 builtin/init-db.c:475
msgid "gitdir"
msgstr "git目录"
-#: builtin/clone.c:92 builtin/init-db.c:476
+#: builtin/clone.c:93 builtin/init-db.c:476
msgid "separate git dir from working tree"
msgstr "git目录和工作区分离"
-#: builtin/clone.c:93
+#: builtin/clone.c:94
msgid "key=value"
msgstr "key=value"
-#: builtin/clone.c:94
+#: builtin/clone.c:95
msgid "set config inside the new repository"
msgstr "在新仓库中设置é…置信æ¯"
-#: builtin/clone.c:300
+#: builtin/clone.c:96 builtin/fetch.c:131 builtin/push.c:536
+msgid "use IPv4 addresses only"
+msgstr "åªä½¿ç”¨ IPv4 地å€"
+
+#: builtin/clone.c:98 builtin/fetch.c:133 builtin/push.c:538
+msgid "use IPv6 addresses only"
+msgstr "åªä½¿ç”¨ IPv6 地å€"
+
+#: builtin/clone.c:239
+msgid ""
+"No directory name could be guessed.\n"
+"Please specify a directory on the command line"
+msgstr ""
+"无法猜到目录å。\n"
+"请在命令行æ供一个目录"
+
+#: builtin/clone.c:305
#, c-format
msgid "reference repository '%s' as a linked checkout is not supported yet."
msgstr "å°šä¸æ”¯æŒå°†å‚考仓库 '%s' 作为一个链接检出。"
-#: builtin/clone.c:302
+#: builtin/clone.c:307
#, c-format
msgid "reference repository '%s' is not a local repository."
msgstr "å‚考仓库 '%s' ä¸æ˜¯ä¸€ä¸ªæœ¬åœ°ä»“库。"
-#: builtin/clone.c:307
+#: builtin/clone.c:312
#, c-format
msgid "reference repository '%s' is shallow"
msgstr "å‚考仓库 '%s' 是一个浅克隆"
-#: builtin/clone.c:310
+#: builtin/clone.c:315
#, c-format
msgid "reference repository '%s' is grafted"
msgstr "å‚考仓库 '%s' 已被å«æŽ¥"
-#: builtin/clone.c:375 builtin/diff.c:84
+#: builtin/clone.c:380 builtin/diff.c:84
#, c-format
msgid "failed to stat '%s'"
msgstr "无法枚举 '%s' 状æ€"
-#: builtin/clone.c:377
+#: builtin/clone.c:382
#, c-format
msgid "%s exists and is not a directory"
msgstr "%s 存在且ä¸æ˜¯ä¸€ä¸ªç›®å½•"
-#: builtin/clone.c:391
+#: builtin/clone.c:396
#, c-format
msgid "failed to stat %s\n"
msgstr "无法枚举 %s 状æ€\n"
-#: builtin/clone.c:413
+#: builtin/clone.c:418
#, c-format
msgid "failed to create link '%s'"
msgstr "无法创建链接 '%s'"
-#: builtin/clone.c:417
+#: builtin/clone.c:422
#, c-format
msgid "failed to copy file to '%s'"
msgstr "无法拷è´æ–‡ä»¶è‡³ '%s'"
-#: builtin/clone.c:442 builtin/clone.c:626
+#: builtin/clone.c:447 builtin/clone.c:631
#, c-format
msgid "done.\n"
msgstr "完æˆã€‚\n"
-#: builtin/clone.c:454
+#: builtin/clone.c:459
msgid ""
"Clone succeeded, but checkout failed.\n"
"You can inspect what was checked out with 'git status'\n"
@@ -4738,117 +4913,126 @@ msgstr ""
"您å¯ä»¥é€šè¿‡ 'git status' 检查哪些已被检出,然åŽä½¿ç”¨å‘½ä»¤\n"
"'git checkout -f HEAD' é‡è¯•\n"
-#: builtin/clone.c:531
+#: builtin/clone.c:536
#, c-format
msgid "Could not find remote branch %s to clone."
msgstr "ä¸èƒ½å‘现è¦å…‹éš†çš„远程分支 %s。"
-#: builtin/clone.c:621
+#: builtin/clone.c:626
#, c-format
msgid "Checking connectivity... "
msgstr "检查连接... "
-#: builtin/clone.c:624
+#: builtin/clone.c:629
msgid "remote did not send all necessary objects"
msgstr "远程没有å‘é€æ‰€æœ‰å¿…须的对象"
-#: builtin/clone.c:688
+#: builtin/clone.c:647
+#, c-format
+msgid "unable to update %s"
+msgstr "ä¸èƒ½æ›´æ–° %s"
+
+#: builtin/clone.c:696
msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
msgstr "远程 HEAD 指å‘一个ä¸å­˜åœ¨çš„引用,无法检出。\n"
-#: builtin/clone.c:719
+#: builtin/clone.c:727
msgid "unable to checkout working tree"
msgstr "ä¸èƒ½æ£€å‡ºå·¥ä½œåŒº"
-#: builtin/clone.c:808
+#: builtin/clone.c:753
+msgid "unable to write parameters to config file"
+msgstr "无法将å‚数写入é…置文件"
+
+#: builtin/clone.c:816
msgid "cannot repack to clean up"
msgstr "无法执行 repack æ¥æ¸…ç†"
-#: builtin/clone.c:810
+#: builtin/clone.c:818
msgid "cannot unlink temporary alternates file"
msgstr "无法删除临时的 alternates 文件"
-#: builtin/clone.c:842
+#: builtin/clone.c:850
msgid "Too many arguments."
msgstr "太多å‚数。"
-#: builtin/clone.c:846
+#: builtin/clone.c:854
msgid "You must specify a repository to clone."
msgstr "您必须指定一个仓库æ¥å…‹éš†ã€‚"
-#: builtin/clone.c:857
+#: builtin/clone.c:865
#, c-format
msgid "--bare and --origin %s options are incompatible."
msgstr "--bare å’Œ --origin %s 选项ä¸å…¼å®¹ã€‚"
-#: builtin/clone.c:860
+#: builtin/clone.c:868
msgid "--bare and --separate-git-dir are incompatible."
msgstr "--bare å’Œ --separate-git-dir 选项ä¸å…¼å®¹ã€‚"
-#: builtin/clone.c:873
+#: builtin/clone.c:881
#, c-format
msgid "repository '%s' does not exist"
msgstr "仓库 '%s' ä¸å­˜åœ¨"
-#: builtin/clone.c:879 builtin/fetch.c:1166
+#: builtin/clone.c:887 builtin/fetch.c:1174
#, c-format
msgid "depth %s is not a positive number"
msgstr "深度 %s ä¸æ˜¯ä¸€ä¸ªæ­£æ•°"
-#: builtin/clone.c:889
+#: builtin/clone.c:897
#, c-format
msgid "destination path '%s' already exists and is not an empty directory."
msgstr "目标路径 '%s' å·²ç»å­˜åœ¨ï¼Œå¹¶ä¸”ä¸æ˜¯ä¸€ä¸ªç©ºç›®å½•ã€‚"
-#: builtin/clone.c:899
+#: builtin/clone.c:907
#, c-format
msgid "working tree '%s' already exists."
msgstr "工作区 '%s' å·²ç»å­˜åœ¨ã€‚"
-#: builtin/clone.c:914 builtin/clone.c:925 builtin/submodule--helper.c:224
-#: builtin/worktree.c:221 builtin/worktree.c:248
+#: builtin/clone.c:922 builtin/clone.c:933 builtin/submodule--helper.c:218
+#: builtin/worktree.c:219 builtin/worktree.c:246
#, c-format
msgid "could not create leading directories of '%s'"
msgstr "ä¸èƒ½ä¸º '%s' 创建先导目录"
-#: builtin/clone.c:917
+#: builtin/clone.c:925
#, c-format
msgid "could not create work tree dir '%s'"
msgstr "ä¸èƒ½åˆ›å»ºå·¥ä½œåŒºç›®å½• '%s'"
-#: builtin/clone.c:935
+#: builtin/clone.c:943
#, c-format
msgid "Cloning into bare repository '%s'...\n"
msgstr "克隆到纯仓库 '%s'...\n"
-#: builtin/clone.c:937
+#: builtin/clone.c:945
#, c-format
msgid "Cloning into '%s'...\n"
msgstr "正克隆到 '%s'...\n"
-#: builtin/clone.c:975
+#: builtin/clone.c:984
msgid "--depth is ignored in local clones; use file:// instead."
msgstr "--depth 在本地克隆被忽略,改为 file:// å议试试。"
-#: builtin/clone.c:978
+#: builtin/clone.c:987
msgid "source repository is shallow, ignoring --local"
msgstr "æºä»“库是浅克隆,忽略 --local"
-#: builtin/clone.c:983
+#: builtin/clone.c:992
msgid "--local is ignored"
msgstr "--local 被忽略"
-#: builtin/clone.c:987
+#: builtin/clone.c:996
#, c-format
msgid "Don't know how to clone %s"
msgstr "ä¸çŸ¥é“如何克隆 %s"
-#: builtin/clone.c:1036 builtin/clone.c:1044
+#: builtin/clone.c:1045 builtin/clone.c:1053
#, c-format
msgid "Remote branch %s not found in upstream %s"
msgstr "远程分支 %s 在上游 %s 未å‘现"
-#: builtin/clone.c:1047
+#: builtin/clone.c:1056
msgid "You appear to have cloned an empty repository."
msgstr "您似乎克隆了一个空仓库。"
@@ -5052,7 +5236,7 @@ msgstr "无法选择一个未被当å‰æ交说明使用的注释字符"
msgid "could not lookup commit %s"
msgstr "ä¸èƒ½æŸ¥è¯¢æ交 %s"
-#: builtin/commit.c:702 builtin/shortlog.c:273
+#: builtin/commit.c:702 builtin/shortlog.c:285
#, c-format
msgid "(reading log message from standard input)\n"
msgstr "(正从标准输入中读å–日志信æ¯ï¼‰\n"
@@ -5235,8 +5419,8 @@ msgstr "以简æ´çš„æ ¼å¼æ˜¾ç¤ºçŠ¶æ€"
msgid "show branch information"
msgstr "显示分支信æ¯"
-#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:544
-#: builtin/worktree.c:423
+#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:512
+#: builtin/worktree.c:430
msgid "machine-readable output"
msgstr "机器å¯è¯»çš„输出"
@@ -5325,8 +5509,8 @@ msgstr "日期"
msgid "override date for commit"
msgstr "æ交时覆盖日期"
-#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:392
-#: builtin/notes.c:555 builtin/tag.c:349
+#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:395
+#: builtin/notes.c:558 builtin/tag.c:349
msgid "message"
msgstr "说明"
@@ -5359,7 +5543,7 @@ msgstr "使用 autosquash æ ¼å¼çš„æ交说明用以压缩至指定的æ交"
msgid "the commit is authored by me now (used with -C/-c/--amend)"
msgstr "现在将该æ交的作者改为我(和 -C/-c/--amend å‚数共用)"
-#: builtin/commit.c:1588 builtin/log.c:1216 builtin/revert.c:86
+#: builtin/commit.c:1588 builtin/log.c:1219 builtin/revert.c:86
msgid "add Signed-off-by:"
msgstr "添加 Signed-off-by: ç­¾å"
@@ -5384,7 +5568,7 @@ msgstr "设置如何删除æ交说明里的空格和#注释"
msgid "include status in commit message template"
msgstr "在æ交说明模æ¿é‡ŒåŒ…å«çŠ¶æ€ä¿¡æ¯"
-#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:156
+#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:160
#: builtin/revert.c:93
msgid "GPG sign commit"
msgstr "GPG æ交签å"
@@ -5474,139 +5658,143 @@ msgstr ""
"仓库已更新,但无法写 new_index 文件。检查是å¦ç£ç›˜å·²æ»¡\n"
"或ç£ç›˜é…é¢å·²è€—尽,然åŽæ‰§è¡Œ \"git reset HEAD\" æ¢å¤ã€‚"
-#: builtin/config.c:8
+#: builtin/config.c:9
msgid "git config [<options>]"
msgstr "git config [<选项>]"
-#: builtin/config.c:54
+#: builtin/config.c:56
msgid "Config file location"
msgstr "é…置文件ä½ç½®"
-#: builtin/config.c:55
+#: builtin/config.c:57
msgid "use global config file"
msgstr "使用全局é…置文件"
-#: builtin/config.c:56
+#: builtin/config.c:58
msgid "use system config file"
msgstr "使用系统级é…置文件"
-#: builtin/config.c:57
+#: builtin/config.c:59
msgid "use repository config file"
msgstr "使用仓库级é…置文件"
-#: builtin/config.c:58
+#: builtin/config.c:60
msgid "use given config file"
msgstr "使用指定的é…置文件"
-#: builtin/config.c:59
+#: builtin/config.c:61
msgid "blob-id"
msgstr "æ•°æ®å¯¹è±¡ ID"
-#: builtin/config.c:59
+#: builtin/config.c:61
msgid "read config from given blob object"
msgstr "从给定的数æ®å¯¹è±¡è¯»å–é…ç½®"
-#: builtin/config.c:60
+#: builtin/config.c:62
msgid "Action"
msgstr "æ“作"
-#: builtin/config.c:61
+#: builtin/config.c:63
msgid "get value: name [value-regex]"
msgstr "获å–值:name [value-regex]"
-#: builtin/config.c:62
+#: builtin/config.c:64
msgid "get all values: key [value-regex]"
msgstr "获得所有的值:key [value-regex]"
-#: builtin/config.c:63
+#: builtin/config.c:65
msgid "get values for regexp: name-regex [value-regex]"
msgstr "æ ¹æ®æ­£åˆ™è¡¨è¾¾å¼èŽ·å¾—值:name-regex [value-regex]"
-#: builtin/config.c:64
+#: builtin/config.c:66
msgid "get value specific for the URL: section[.var] URL"
msgstr "获得 URL å–值:section[.var] URL"
-#: builtin/config.c:65
+#: builtin/config.c:67
msgid "replace all matching variables: name value [value_regex]"
msgstr "替æ¢æ‰€æœ‰åŒ¹é…çš„å˜é‡ï¼šname value [value_regex]"
-#: builtin/config.c:66
+#: builtin/config.c:68
msgid "add a new variable: name value"
msgstr "添加一个新的å˜é‡ï¼šname value"
-#: builtin/config.c:67
+#: builtin/config.c:69
msgid "remove a variable: name [value-regex]"
msgstr "删除一个å˜é‡ï¼šname [value-regex]"
-#: builtin/config.c:68
+#: builtin/config.c:70
msgid "remove all matches: name [value-regex]"
msgstr "删除所有匹é…项:name [value-regex]"
-#: builtin/config.c:69
+#: builtin/config.c:71
msgid "rename section: old-name new-name"
msgstr "é‡å‘½åå°èŠ‚:old-name new-name"
-#: builtin/config.c:70
+#: builtin/config.c:72
msgid "remove a section: name"
msgstr "删除一个å°èŠ‚:name"
-#: builtin/config.c:71
+#: builtin/config.c:73
msgid "list all"
msgstr "列出所有"
-#: builtin/config.c:72
+#: builtin/config.c:74
msgid "open an editor"
msgstr "打开一个编辑器"
-#: builtin/config.c:73
+#: builtin/config.c:75
msgid "find the color configured: slot [default]"
msgstr "获得é…置的颜色:é…ç½® [默认]"
-#: builtin/config.c:74
+#: builtin/config.c:76
msgid "find the color setting: slot [stdout-is-tty]"
msgstr "获得颜色设置:é…ç½® [stdout-is-tty]"
-#: builtin/config.c:75
+#: builtin/config.c:77
msgid "Type"
msgstr "类型"
-#: builtin/config.c:76
+#: builtin/config.c:78
msgid "value is \"true\" or \"false\""
msgstr "值是 \"true\" 或 \"false\""
-#: builtin/config.c:77
+#: builtin/config.c:79
msgid "value is decimal number"
msgstr "值是å进制数"
-#: builtin/config.c:78
+#: builtin/config.c:80
msgid "value is --bool or --int"
msgstr "值是 --bool or --int"
-#: builtin/config.c:79
+#: builtin/config.c:81
msgid "value is a path (file or directory name)"
msgstr "值是一个路径(文件或目录å)"
-#: builtin/config.c:80
+#: builtin/config.c:82
msgid "Other"
msgstr "其它"
-#: builtin/config.c:81
+#: builtin/config.c:83
msgid "terminate values with NUL byte"
msgstr "终止值是 NUL 字节"
-#: builtin/config.c:82
+#: builtin/config.c:84
msgid "show variable names only"
msgstr "åªæ˜¾ç¤ºå˜é‡å"
-#: builtin/config.c:83
+#: builtin/config.c:85
msgid "respect include directives on lookup"
msgstr "查询时å‚ç…§ include 指令递归查找"
-#: builtin/config.c:303
+#: builtin/config.c:86
+msgid "show origin of config (file, standard input, blob, command line)"
+msgstr "显示é…置的æ¥æºï¼ˆæ–‡ä»¶ã€æ ‡å‡†è¾“å…¥ã€æ•°æ®å¯¹è±¡ï¼Œæˆ–命令行)"
+
+#: builtin/config.c:328
msgid "unable to parse default color value"
msgstr "ä¸èƒ½è§£æžé»˜è®¤é¢œè‰²å€¼"
-#: builtin/config.c:441
+#: builtin/config.c:469
#, c-format
msgid ""
"# This is Git's per-user configuration file.\n"
@@ -5621,7 +5809,7 @@ msgstr ""
"#\tname = %s\n"
"#\temail = %s\n"
-#: builtin/config.c:575
+#: builtin/config.c:611
#, c-format
msgid "cannot create configuration file %s"
msgstr "ä¸èƒ½åˆ›å»ºé…置文件 %s"
@@ -5871,163 +6059,167 @@ msgstr "git fetch --multiple [<选项>] [(<仓库> | <组>)...]"
msgid "git fetch --all [<options>]"
msgstr "git fetch --all [<选项>]"
-#: builtin/fetch.c:90 builtin/pull.c:162
+#: builtin/fetch.c:92 builtin/pull.c:166
msgid "fetch from all remotes"
msgstr "从所有的远程抓å–"
-#: builtin/fetch.c:92 builtin/pull.c:165
+#: builtin/fetch.c:94 builtin/pull.c:169
msgid "append to .git/FETCH_HEAD instead of overwriting"
msgstr "追加到 .git/FETCH_HEAD 而ä¸æ˜¯è¦†ç›–它"
-#: builtin/fetch.c:94 builtin/pull.c:168
+#: builtin/fetch.c:96 builtin/pull.c:172
msgid "path to upload pack on remote end"
msgstr "上传包到远程的路径"
-#: builtin/fetch.c:95 builtin/pull.c:170
+#: builtin/fetch.c:97 builtin/pull.c:174
msgid "force overwrite of local branch"
msgstr "强制覆盖本地分支"
-#: builtin/fetch.c:97
+#: builtin/fetch.c:99
msgid "fetch from multiple remotes"
msgstr "从多个远程抓å–"
-#: builtin/fetch.c:99 builtin/pull.c:172
+#: builtin/fetch.c:101 builtin/pull.c:176
msgid "fetch all tags and associated objects"
msgstr "抓å–所有的标签和关è”对象"
-#: builtin/fetch.c:101
+#: builtin/fetch.c:103
msgid "do not fetch all tags (--no-tags)"
msgstr "ä¸æŠ“å–任何标签(--no-tags)"
-#: builtin/fetch.c:103 builtin/pull.c:175
+#: builtin/fetch.c:105
+msgid "number of submodules fetched in parallel"
+msgstr "å­æ¨¡ç»„获å–的并å‘æ•°"
+
+#: builtin/fetch.c:107 builtin/pull.c:179
msgid "prune remote-tracking branches no longer on remote"
msgstr "清除远程已ç»ä¸å­˜åœ¨çš„分支的跟踪分支"
# 译者:å¯é€‰å€¼ï¼Œä¸èƒ½ç¿»è¯‘
-#: builtin/fetch.c:104 builtin/pull.c:178
+#: builtin/fetch.c:108 builtin/pull.c:182
msgid "on-demand"
msgstr "on-demand"
-#: builtin/fetch.c:105 builtin/pull.c:179
+#: builtin/fetch.c:109 builtin/pull.c:183
msgid "control recursive fetching of submodules"
msgstr "控制å­æ¨¡ç»„的递归抓å–"
-#: builtin/fetch.c:109 builtin/pull.c:184
+#: builtin/fetch.c:113 builtin/pull.c:191
msgid "keep downloaded pack"
msgstr "ä¿æŒä¸‹è½½åŒ…"
-#: builtin/fetch.c:111
+#: builtin/fetch.c:115
msgid "allow updating of HEAD ref"
msgstr "å…许更新 HEAD 引用"
-#: builtin/fetch.c:114 builtin/pull.c:187
+#: builtin/fetch.c:118 builtin/pull.c:194
msgid "deepen history of shallow clone"
msgstr "深化浅克隆的历å²"
-#: builtin/fetch.c:116 builtin/pull.c:190
+#: builtin/fetch.c:120 builtin/pull.c:197
msgid "convert to a complete repository"
msgstr "转æ¢ä¸ºä¸€ä¸ªå®Œæ•´çš„仓库"
-#: builtin/fetch.c:118 builtin/log.c:1233
+#: builtin/fetch.c:122 builtin/log.c:1236
msgid "dir"
msgstr "目录"
-#: builtin/fetch.c:119
+#: builtin/fetch.c:123
msgid "prepend this to submodule path output"
msgstr "在å­æ¨¡ç»„路径输出的å‰é¢åŠ ä¸Šæ­¤ç›®å½•"
-#: builtin/fetch.c:122
+#: builtin/fetch.c:126
msgid "default mode for recursion"
msgstr "递归的默认模å¼"
-#: builtin/fetch.c:124 builtin/pull.c:193
+#: builtin/fetch.c:128 builtin/pull.c:200
msgid "accept refs that update .git/shallow"
msgstr "接å—æ›´æ–° .git/shallow 的引用"
-#: builtin/fetch.c:125 builtin/pull.c:195
+#: builtin/fetch.c:129 builtin/pull.c:202
msgid "refmap"
msgstr "引用映射"
-#: builtin/fetch.c:126 builtin/pull.c:196
+#: builtin/fetch.c:130 builtin/pull.c:203
msgid "specify fetch refmap"
msgstr "指定获å–æ“作的引用映射"
-#: builtin/fetch.c:378
+#: builtin/fetch.c:386
msgid "Couldn't find remote ref HEAD"
msgstr "无法å‘现远程 HEAD 引用"
-#: builtin/fetch.c:458
+#: builtin/fetch.c:466
#, c-format
msgid "object %s not found"
msgstr "对象 %s 未å‘现"
-#: builtin/fetch.c:463
+#: builtin/fetch.c:471
msgid "[up to date]"
msgstr "[最新]"
-#: builtin/fetch.c:477
+#: builtin/fetch.c:485
#, c-format
msgid "! %-*s %-*s -> %s (can't fetch in current branch)"
msgstr "! %-*s %-*s -> %s (在当å‰åˆ†æ”¯ä¸‹ä¸èƒ½èŽ·å–)"
-#: builtin/fetch.c:478 builtin/fetch.c:566
+#: builtin/fetch.c:486 builtin/fetch.c:574
msgid "[rejected]"
msgstr "[已拒ç»]"
-#: builtin/fetch.c:489
+#: builtin/fetch.c:497
msgid "[tag update]"
msgstr "[标签更新]"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: builtin/fetch.c:491 builtin/fetch.c:526 builtin/fetch.c:544
+#: builtin/fetch.c:499 builtin/fetch.c:534 builtin/fetch.c:552
msgid " (unable to update local ref)"
msgstr " (ä¸èƒ½æ›´æ–°æœ¬åœ°å¼•ç”¨ï¼‰"
-#: builtin/fetch.c:509
+#: builtin/fetch.c:517
msgid "[new tag]"
msgstr "[新标签]"
-#: builtin/fetch.c:512
+#: builtin/fetch.c:520
msgid "[new branch]"
msgstr "[新分支]"
-#: builtin/fetch.c:515
+#: builtin/fetch.c:523
msgid "[new ref]"
msgstr "[新引用]"
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
msgid "unable to update local ref"
msgstr "ä¸èƒ½æ›´æ–°æœ¬åœ°å¼•ç”¨"
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
msgid "forced update"
msgstr "强制更新"
-#: builtin/fetch.c:568
+#: builtin/fetch.c:576
msgid "(non-fast-forward)"
msgstr "(éžå¿«è¿›å¼ï¼‰"
-#: builtin/fetch.c:602 builtin/fetch.c:843
+#: builtin/fetch.c:610 builtin/fetch.c:851
#, c-format
msgid "cannot open %s: %s\n"
msgstr "无法打开 %s:%s\n"
-#: builtin/fetch.c:611
+#: builtin/fetch.c:619
#, c-format
msgid "%s did not send all necessary objects\n"
msgstr "%s 未å‘é€æ‰€æœ‰å¿…须的对象\n"
-#: builtin/fetch.c:629
+#: builtin/fetch.c:637
#, c-format
msgid "reject %s because shallow roots are not allowed to be updated"
msgstr "æ‹’ç» %s 因为浅克隆ä¸å…许被更新"
-#: builtin/fetch.c:716 builtin/fetch.c:808
+#: builtin/fetch.c:724 builtin/fetch.c:816
#, c-format
msgid "From %.*s\n"
msgstr "æ¥è‡ª %.*s\n"
-#: builtin/fetch.c:727
+#: builtin/fetch.c:735
#, c-format
msgid ""
"some local refs could not be updated; try running\n"
@@ -6037,87 +6229,87 @@ msgstr ""
" 'git remote prune %s' æ¥åˆ é™¤æ—§çš„ã€æœ‰å†²çªçš„分支"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: builtin/fetch.c:779
+#: builtin/fetch.c:787
#, c-format
msgid " (%s will become dangling)"
msgstr " (%s å°†æˆä¸ºæ‘‡æ‘†çŠ¶æ€ï¼‰"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: builtin/fetch.c:780
+#: builtin/fetch.c:788
#, c-format
msgid " (%s has become dangling)"
msgstr " (%s å·²æˆä¸ºæ‘‡æ‘†çŠ¶æ€ï¼‰"
-#: builtin/fetch.c:812
+#: builtin/fetch.c:820
msgid "[deleted]"
msgstr "[已删除]"
-#: builtin/fetch.c:813 builtin/remote.c:1040
+#: builtin/fetch.c:821 builtin/remote.c:1025
msgid "(none)"
msgstr "(无)"
-#: builtin/fetch.c:833
+#: builtin/fetch.c:841
#, c-format
msgid "Refusing to fetch into current branch %s of non-bare repository"
msgstr "æ‹’ç»èŽ·å–到éžçº¯ä»“库的当å‰åˆ†æ”¯ %s"
-#: builtin/fetch.c:852
+#: builtin/fetch.c:860
#, c-format
msgid "Option \"%s\" value \"%s\" is not valid for %s"
msgstr "选项 \"%s\" 的值 \"%s\" 对于 %s 是无效的"
-#: builtin/fetch.c:855
+#: builtin/fetch.c:863
#, c-format
msgid "Option \"%s\" is ignored for %s\n"
msgstr "选项 \"%s\" 为 %s 所忽略\n"
-#: builtin/fetch.c:911
+#: builtin/fetch.c:920
#, c-format
msgid "Don't know how to fetch from %s"
msgstr "ä¸çŸ¥é“如何从 %s 获å–"
-#: builtin/fetch.c:1072
+#: builtin/fetch.c:1080
#, c-format
msgid "Fetching %s\n"
msgstr "æ­£åœ¨èŽ·å– %s\n"
-#: builtin/fetch.c:1074 builtin/remote.c:96
+#: builtin/fetch.c:1082 builtin/remote.c:96
#, c-format
msgid "Could not fetch %s"
msgstr "ä¸èƒ½èŽ·å– %s"
-#: builtin/fetch.c:1092
+#: builtin/fetch.c:1100
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:1115
+#: builtin/fetch.c:1123
msgid "You need to specify a tag name."
msgstr "您需è¦æŒ‡å®šä¸€ä¸ªæ ‡ç­¾å称。"
-#: builtin/fetch.c:1157
+#: builtin/fetch.c:1165
msgid "--depth and --unshallow cannot be used together"
msgstr "--depth å’Œ --unshallow ä¸èƒ½åŒæ—¶ä½¿ç”¨"
-#: builtin/fetch.c:1159
+#: builtin/fetch.c:1167
msgid "--unshallow on a complete repository does not make sense"
msgstr "对于一个完整的仓库,å‚æ•° --unshallow 没有æ„义"
-#: builtin/fetch.c:1179
+#: builtin/fetch.c:1187
msgid "fetch --all does not take a repository argument"
msgstr "fetch --all ä¸èƒ½å¸¦ä¸€ä¸ªä»“库å‚æ•°"
-#: builtin/fetch.c:1181
+#: builtin/fetch.c:1189
msgid "fetch --all does not make sense with refspecs"
msgstr "fetch --all 带引用规格没有任何æ„义"
-#: builtin/fetch.c:1192
+#: builtin/fetch.c:1200
#, c-format
msgid "No such remote or remote group: %s"
msgstr "没有这样的远程或远程组:%s"
-#: builtin/fetch.c:1200
+#: builtin/fetch.c:1208
msgid "Fetching a group and specifying refspecs does not make sense"
msgstr "获å–组并指定引用规格没有æ„义"
@@ -6337,225 +6529,239 @@ msgstr "有太多ä¸å¯è¾¾çš„æ¾æ•£å¯¹è±¡ï¼Œè¿è¡Œ 'git prune' 删除它们。"
msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]"
msgstr "git grep [<选项>] [-e] <模å¼> [<版本>...] [[--] <路径>...]"
-#: builtin/grep.c:218
+#: builtin/grep.c:219
#, c-format
msgid "grep: failed to create thread: %s"
msgstr "grep:无法创建线程:%s"
-#: builtin/grep.c:441 builtin/grep.c:476
+#: builtin/grep.c:277
+#, c-format
+msgid "invalid number of threads specified (%d) for %s"
+msgstr "为 %2$s 设定的线程数 (%1$d) 无效"
+
+#: builtin/grep.c:452 builtin/grep.c:487
#, c-format
msgid "unable to read tree (%s)"
msgstr "无法读å–树(%s)"
-#: builtin/grep.c:491
+#: builtin/grep.c:502
#, c-format
msgid "unable to grep from object of type %s"
msgstr "无法抓å–æ¥è‡ªäºŽ %s 类型的对象"
-#: builtin/grep.c:547
+#: builtin/grep.c:558
#, c-format
msgid "switch `%c' expects a numerical value"
msgstr "开关 `%c' 期望一个数字值"
-#: builtin/grep.c:564
+#: builtin/grep.c:575
#, c-format
msgid "cannot open '%s'"
msgstr "ä¸èƒ½æ‰“å¼€ '%s'"
-#: builtin/grep.c:633
+#: builtin/grep.c:644
msgid "search in index instead of in the work tree"
msgstr "在索引区æœç´¢è€Œä¸æ˜¯åœ¨å·¥ä½œåŒº"
-#: builtin/grep.c:635
+#: builtin/grep.c:646
msgid "find in contents not managed by git"
msgstr "在未被 git 管ç†çš„内容中查找"
# 译者:中文字符串拼接,å¯åˆ é™¤å‰å¯¼ç©ºæ ¼
-#: builtin/grep.c:637
+#: builtin/grep.c:648
msgid "search in both tracked and untracked files"
msgstr "在跟踪和未跟踪的文件中æœç´¢"
-#: builtin/grep.c:639
+#: builtin/grep.c:650
msgid "ignore files specified via '.gitignore'"
msgstr "忽略 '.gitignore' 包å«çš„文件"
-#: builtin/grep.c:642
+#: builtin/grep.c:653
msgid "show non-matching lines"
msgstr "显示未匹é…çš„è¡Œ"
-#: builtin/grep.c:644
+#: builtin/grep.c:655
msgid "case insensitive matching"
msgstr "ä¸åŒºåˆ†å¤§å°å†™åŒ¹é…"
-#: builtin/grep.c:646
+#: builtin/grep.c:657
msgid "match patterns only at word boundaries"
msgstr "åªåœ¨å•è¯è¾¹ç•ŒåŒ¹é…模å¼"
-#: builtin/grep.c:648
+#: builtin/grep.c:659
msgid "process binary files as text"
msgstr "把二进制文件当åšæ–‡æœ¬å¤„ç†"
-#: builtin/grep.c:650
+#: builtin/grep.c:661
msgid "don't match patterns in binary files"
msgstr "ä¸åœ¨äºŒè¿›åˆ¶æ–‡ä»¶ä¸­åŒ¹é…模å¼"
-#: builtin/grep.c:653
+#: builtin/grep.c:664
msgid "process binary files with textconv filters"
msgstr "用 textconv 过滤器处ç†äºŒè¿›åˆ¶æ–‡ä»¶"
-#: builtin/grep.c:655
+#: builtin/grep.c:666
msgid "descend at most <depth> levels"
msgstr "最多以指定的深度å‘下寻找"
-#: builtin/grep.c:659
+#: builtin/grep.c:670
msgid "use extended POSIX regular expressions"
msgstr "使用扩展的 POSIX 正则表达å¼"
-#: builtin/grep.c:662
+#: builtin/grep.c:673
msgid "use basic POSIX regular expressions (default)"
msgstr "使用基本的 POSIX 正则表达å¼ï¼ˆé»˜è®¤ï¼‰"
-#: builtin/grep.c:665
+#: builtin/grep.c:676
msgid "interpret patterns as fixed strings"
msgstr "把模å¼è§£æžä¸ºå›ºå®šçš„字符串"
-#: builtin/grep.c:668
+#: builtin/grep.c:679
msgid "use Perl-compatible regular expressions"
msgstr "使用 Perl 兼容的正则表达å¼"
-#: builtin/grep.c:671
+#: builtin/grep.c:682
msgid "show line numbers"
msgstr "显示行å·"
-#: builtin/grep.c:672
+#: builtin/grep.c:683
msgid "don't show filenames"
msgstr "ä¸æ˜¾ç¤ºæ–‡ä»¶å"
-#: builtin/grep.c:673
+#: builtin/grep.c:684
msgid "show filenames"
msgstr "显示文件å"
-#: builtin/grep.c:675
+#: builtin/grep.c:686
msgid "show filenames relative to top directory"
msgstr "显示相对于顶级目录的文件å"
-#: builtin/grep.c:677
+#: builtin/grep.c:688
msgid "show only filenames instead of matching lines"
msgstr "åªæ˜¾ç¤ºæ–‡ä»¶å而ä¸æ˜¾ç¤ºåŒ¹é…çš„è¡Œ"
-#: builtin/grep.c:679
+#: builtin/grep.c:690
msgid "synonym for --files-with-matches"
msgstr "å’Œ --files-with-matches åŒä¹‰"
-#: builtin/grep.c:682
+#: builtin/grep.c:693
msgid "show only the names of files without match"
msgstr "åªæ˜¾ç¤ºæœªåŒ¹é…的文件å"
-#: builtin/grep.c:684
+#: builtin/grep.c:695
msgid "print NUL after filenames"
msgstr "在文件ååŽè¾“出 NUL 字符"
-#: builtin/grep.c:686
+#: builtin/grep.c:697
msgid "show the number of matches instead of matching lines"
msgstr "显示总匹é…行数,而ä¸æ˜¾ç¤ºåŒ¹é…çš„è¡Œ"
-#: builtin/grep.c:687
+#: builtin/grep.c:698
msgid "highlight matches"
msgstr "高亮显示匹é…项"
-#: builtin/grep.c:689
+#: builtin/grep.c:700
msgid "print empty line between matches from different files"
msgstr "在ä¸åŒæ–‡ä»¶çš„匹é…项之间打å°ç©ºè¡Œ"
-#: builtin/grep.c:691
+#: builtin/grep.c:702
msgid "show filename only once above matches from same file"
msgstr "åªåœ¨åŒä¸€æ–‡ä»¶çš„匹é…项的上é¢æ˜¾ç¤ºä¸€æ¬¡æ–‡ä»¶å"
-#: builtin/grep.c:694
+#: builtin/grep.c:705
msgid "show <n> context lines before and after matches"
msgstr "显示匹é…项å‰åŽçš„ <n> 行上下文"
-#: builtin/grep.c:697
+#: builtin/grep.c:708
msgid "show <n> context lines before matches"
msgstr "显示匹é…é¡¹å‰ <n> 行上下文"
-#: builtin/grep.c:699
+#: builtin/grep.c:710
msgid "show <n> context lines after matches"
msgstr "显示匹é…é¡¹åŽ <n> 行上下文"
-#: builtin/grep.c:700
+#: builtin/grep.c:712
+msgid "use <n> worker threads"
+msgstr "使用 <n> 个工作线程"
+
+#: builtin/grep.c:713
msgid "shortcut for -C NUM"
msgstr "å¿«æ·é”® -C æ•°å­—"
-#: builtin/grep.c:703
+#: builtin/grep.c:716
msgid "show a line with the function name before matches"
msgstr "在匹é…çš„å‰é¢æ˜¾ç¤ºä¸€è¡Œå‡½æ•°å"
-#: builtin/grep.c:705
+#: builtin/grep.c:718
msgid "show the surrounding function"
msgstr "显示所在函数的å‰åŽå†…容"
-#: builtin/grep.c:708
+#: builtin/grep.c:721
msgid "read patterns from file"
msgstr "从文件读å–模å¼"
-#: builtin/grep.c:710
+#: builtin/grep.c:723
msgid "match <pattern>"
msgstr "åŒ¹é… <模å¼>"
-#: builtin/grep.c:712
+#: builtin/grep.c:725
msgid "combine patterns specified with -e"
msgstr "组åˆç”¨ -e å‚数设定的模å¼"
-#: builtin/grep.c:724
+#: builtin/grep.c:737
msgid "indicate hit with exit status without output"
msgstr "ä¸è¾“出,而用退出ç æ ‡è¯†å‘½ä¸­çŠ¶æ€"
-#: builtin/grep.c:726
+#: builtin/grep.c:739
msgid "show only matches from files that match all patterns"
msgstr "åªæ˜¾ç¤ºåŒ¹é…所有模å¼çš„文件中的匹é…"
-#: builtin/grep.c:728
+#: builtin/grep.c:741
msgid "show parse tree for grep expression"
msgstr "显示 grep 表达å¼çš„解æžæ ‘"
-#: builtin/grep.c:732
+#: builtin/grep.c:745
msgid "pager"
msgstr "分页"
-#: builtin/grep.c:732
+#: builtin/grep.c:745
msgid "show matching files in the pager"
msgstr "分页显示匹é…的文件"
-#: builtin/grep.c:735
+#: builtin/grep.c:748
msgid "allow calling of grep(1) (ignored by this build)"
msgstr "å…许调用 grep(1)(本次构建忽略)"
-#: builtin/grep.c:793
+#: builtin/grep.c:811
msgid "no pattern given."
msgstr "未æ供模å¼åŒ¹é…。"
-#: builtin/grep.c:851
+#: builtin/grep.c:843 builtin/index-pack.c:1475
+#, c-format
+msgid "invalid number of threads specified (%d)"
+msgstr "指定的线程数无效(%d)"
+
+#: builtin/grep.c:873
msgid "--open-files-in-pager only works on the worktree"
msgstr "--open-files-in-pager 仅用于工作区"
-#: builtin/grep.c:877
+#: builtin/grep.c:899
msgid "--cached or --untracked cannot be used with --no-index."
msgstr "--cached 或 --untracked ä¸èƒ½ä¸Ž --no-index åŒæ—¶ä½¿ç”¨ã€‚"
-#: builtin/grep.c:882
+#: builtin/grep.c:904
msgid "--no-index or --untracked cannot be used with revs."
msgstr "--no-index 或 --untracked ä¸èƒ½å’Œç‰ˆæœ¬åŒæ—¶ä½¿ç”¨ã€‚"
-#: builtin/grep.c:885
+#: builtin/grep.c:907
msgid "--[no-]exclude-standard cannot be used for tracked contents."
msgstr "--[no-]exclude-standard ä¸èƒ½ç”¨äºŽå·²è·Ÿè¸ªå†…容。"
-#: builtin/grep.c:893
+#: builtin/grep.c:915
msgid "both --cached and trees are given."
msgstr "åŒæ—¶ç»™å‡ºäº† --cached 和树对象。"
-#: builtin/hash-object.c:80
+#: builtin/hash-object.c:81
msgid ""
"git hash-object [-t <type>] [-w] [--path=<file> | --no-filters] [--stdin] "
"[--] <file>..."
@@ -6563,36 +6769,36 @@ msgstr ""
"git hash-object [-t <类型>] [-w] [--path=<文件> | --no-filters] [--stdin] "
"[--] <文件>..."
-#: builtin/hash-object.c:81
+#: builtin/hash-object.c:82
msgid "git hash-object --stdin-paths"
msgstr "git hash-object --stdin-paths"
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
msgid "type"
msgstr "类型"
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
msgid "object type"
msgstr "对象类型"
-#: builtin/hash-object.c:93
+#: builtin/hash-object.c:94
msgid "write the object into the object database"
msgstr "将对象写入对象数æ®åº“"
-#: builtin/hash-object.c:95
+#: builtin/hash-object.c:96
msgid "read the object from stdin"
msgstr "从标准输入读å–对象"
-#: builtin/hash-object.c:97
+#: builtin/hash-object.c:98
msgid "store file as is without filters"
msgstr "原样存储文件ä¸ä½¿ç”¨è¿‡æ»¤å™¨"
-#: builtin/hash-object.c:98
+#: builtin/hash-object.c:99
msgid ""
"just hash any random garbage to create corrupt objects for debugging Git"
msgstr "å…许对任æ„éšæœºåžƒåœ¾æ•°æ®åšæ•£åˆ—æ¥åˆ›å»ºæŸå的对象以便调试 Git"
-#: builtin/hash-object.c:99
+#: builtin/hash-object.c:100
msgid "process file as it were from this path"
msgstr "处ç†æ–‡ä»¶å¹¶å‡è®¾å…¶æ¥è‡ªäºŽæ­¤è·¯å¾„"
@@ -6643,7 +6849,7 @@ msgstr "emacsclient 版本 '%d' 太è€ï¼ˆ< 22)。"
msgid "failed to exec '%s': %s"
msgstr "无法执行 '%s':%s"
-#: builtin/help.c:208
+#: builtin/help.c:205
#, c-format
msgid ""
"'%s': path for unsupported man viewer.\n"
@@ -6652,7 +6858,7 @@ msgstr ""
"'%s':ä¸æ”¯æŒçš„ man 手册查看器的路径。\n"
"请使用 'man.<工具>.cmd'。"
-#: builtin/help.c:220
+#: builtin/help.c:217
#, c-format
msgid ""
"'%s': cmd for supported man viewer.\n"
@@ -6661,61 +6867,61 @@ msgstr ""
"'%s': 支æŒçš„ man 手册查看器命令。\n"
"请使用 'man.<工具>.path'。"
-#: builtin/help.c:337
+#: builtin/help.c:334
#, c-format
msgid "'%s': unknown man viewer."
msgstr "'%s':未知的 man 查看器。"
-#: builtin/help.c:354
+#: builtin/help.c:351
msgid "no man viewer handled the request"
msgstr "没有 man 查看器处ç†æ­¤è¯·æ±‚"
-#: builtin/help.c:362
+#: builtin/help.c:359
msgid "no info viewer handled the request"
msgstr "没有 info 查看器处ç†æ­¤è¯·æ±‚"
-#: builtin/help.c:411
+#: builtin/help.c:408
msgid "Defining attributes per path"
msgstr "定义路径的属性"
-#: builtin/help.c:412
+#: builtin/help.c:409
msgid "Everyday Git With 20 Commands Or So"
msgstr "æ¯ä¸€å¤© Git 常用的约 20 æ¡å‘½ä»¤"
-#: builtin/help.c:413
+#: builtin/help.c:410
msgid "A Git glossary"
msgstr "Git è¯æ±‡è¡¨"
-#: builtin/help.c:414
+#: builtin/help.c:411
msgid "Specifies intentionally untracked files to ignore"
msgstr "忽略指定的未跟踪文件"
-#: builtin/help.c:415
+#: builtin/help.c:412
msgid "Defining submodule properties"
msgstr "定义å­æ¨¡ç»„属性"
-#: builtin/help.c:416
+#: builtin/help.c:413
msgid "Specifying revisions and ranges for Git"
msgstr "指定 Git 的版本和版本范围"
-#: builtin/help.c:417
+#: builtin/help.c:414
msgid "A tutorial introduction to Git (for version 1.5.1 or newer)"
msgstr "一个 Git 教程(针对 1.5.1 或更新版本)"
-#: builtin/help.c:418
+#: builtin/help.c:415
msgid "An overview of recommended workflows with Git"
msgstr "Git 推è的工作æµæ¦‚览"
-#: builtin/help.c:430
+#: builtin/help.c:427
msgid "The common Git guides are:\n"
msgstr "最常用的 Git å‘导有:\n"
-#: builtin/help.c:451 builtin/help.c:468
+#: builtin/help.c:448 builtin/help.c:465
#, c-format
msgid "usage: %s%s"
msgstr "用法:%s%s"
-#: builtin/help.c:484
+#: builtin/help.c:481
#, c-format
msgid "`git %s' is aliased to `%s'"
msgstr "`git %s' 是 `%s' 的别å"
@@ -6951,60 +7157,55 @@ msgstr "无法存储索引文件"
msgid "bad pack.indexversion=%<PRIu32>"
msgstr "åçš„ pack.indexversion=%<PRIu32>"
-#: builtin/index-pack.c:1475
-#, c-format
-msgid "invalid number of threads specified (%d)"
-msgstr "指定的线程数无效(%d)"
-
-#: builtin/index-pack.c:1479 builtin/index-pack.c:1663
+#: builtin/index-pack.c:1479 builtin/index-pack.c:1664
#, c-format
msgid "no threads support, ignoring %s"
msgstr "没有线程支æŒï¼Œå¿½ç•¥ %s"
-#: builtin/index-pack.c:1537
+#: builtin/index-pack.c:1538
#, c-format
msgid "Cannot open existing pack file '%s'"
msgstr "无法打开现存包文件 '%s'"
-#: builtin/index-pack.c:1539
+#: builtin/index-pack.c:1540
#, c-format
msgid "Cannot open existing pack idx file for '%s'"
msgstr "无法为 %s 打开包索引文件"
-#: builtin/index-pack.c:1586
+#: builtin/index-pack.c:1587
#, c-format
msgid "non delta: %d object"
msgid_plural "non delta: %d objects"
msgstr[0] "éž delta:%d 个对象"
msgstr[1] "éž delta:%d 个对象"
-#: builtin/index-pack.c:1593
+#: builtin/index-pack.c:1594
#, c-format
msgid "chain length = %d: %lu object"
msgid_plural "chain length = %d: %lu objects"
msgstr[0] "链长 = %d: %lu 对象"
msgstr[1] "链长 = %d: %lu 对象"
-#: builtin/index-pack.c:1623
+#: builtin/index-pack.c:1624
msgid "Cannot come back to cwd"
msgstr "无法返回当å‰å·¥ä½œç›®å½•"
-#: builtin/index-pack.c:1675 builtin/index-pack.c:1678
-#: builtin/index-pack.c:1690 builtin/index-pack.c:1694
+#: builtin/index-pack.c:1676 builtin/index-pack.c:1679
+#: builtin/index-pack.c:1691 builtin/index-pack.c:1695
#, c-format
msgid "bad %s"
msgstr "错误选项 %s"
-#: builtin/index-pack.c:1708
+#: builtin/index-pack.c:1709
msgid "--fix-thin cannot be used without --stdin"
msgstr "--fix-thin ä¸èƒ½å’Œ --stdin åŒæ—¶ä½¿ç”¨"
-#: builtin/index-pack.c:1712 builtin/index-pack.c:1721
+#: builtin/index-pack.c:1713 builtin/index-pack.c:1722
#, c-format
msgid "packfile name '%s' does not end with '.pack'"
msgstr "包文件å '%s' 没有以 '.pack' 结尾"
-#: builtin/index-pack.c:1729
+#: builtin/index-pack.c:1730
msgid "--verify with no packfile name given"
msgstr "--verify 没有æ供包文件åå‚æ•°"
@@ -7129,24 +7330,32 @@ msgstr "ä¸èƒ½è®¿é—®å·¥ä½œåŒº '%s'"
#: builtin/interpret-trailers.c:15
msgid ""
-"git interpret-trailers [--trim-empty] [(--trailer <token>[(=|:)<value>])...] "
-"[<file>...]"
+"git interpret-trailers [--in-place] [--trim-empty] [(--trailer "
+"<token>[(=|:)<value>])...] [<file>...]"
msgstr ""
-"git interpret-trailers [--trim-empty] [(--trailer <键>[(=|:)<值>])...] [<文件"
-">...]"
+"git interpret-trailers [--in-place] [--trim-empty] [(--trailer <键>[(=|:)<值"
+">])...] [<文件>...]"
+
+#: builtin/interpret-trailers.c:26
+msgid "edit files in place"
+msgstr "在原ä½ç¼–辑文件"
-#: builtin/interpret-trailers.c:25
+#: builtin/interpret-trailers.c:27
msgid "trim empty trailers"
msgstr "删除空签å"
-#: builtin/interpret-trailers.c:26
+#: builtin/interpret-trailers.c:28
msgid "trailer"
msgstr "ç­¾å"
-#: builtin/interpret-trailers.c:27
+#: builtin/interpret-trailers.c:29
msgid "trailer(s) to add"
msgstr "è¦æ·»åŠ çš„ç­¾å"
+#: builtin/interpret-trailers.c:42
+msgid "no input file given for in-place editing"
+msgstr "没有给出è¦åŽŸä½ç¼–辑的文件"
+
#: builtin/log.c:43
msgid "git log [<options>] [<revision-range>] [[--] <path>...]"
msgstr "git log [<选项>] [<版本范围>] [[--] <路径>...]"
@@ -7200,325 +7409,375 @@ msgstr "ä¸èƒ½è¯»å–对象 %s"
msgid "Unknown type: %d"
msgstr "未知类型:%d"
-#: builtin/log.c:714
+#: builtin/log.c:715
msgid "format.headers without value"
msgstr "format.headers 没有值"
-#: builtin/log.c:798
+#: builtin/log.c:801
msgid "name of output directory is too long"
msgstr "输出目录å太长"
-#: builtin/log.c:813
+#: builtin/log.c:816
#, c-format
msgid "Cannot open patch file %s"
msgstr "无法打开补ä¸æ–‡ä»¶ %s"
-#: builtin/log.c:827
+#: builtin/log.c:830
msgid "Need exactly one range."
msgstr "åªéœ€è¦ä¸€ä¸ªèŒƒå›´ã€‚"
-#: builtin/log.c:837
+#: builtin/log.c:840
msgid "Not a range."
msgstr "ä¸æ˜¯ä¸€ä¸ªèŒƒå›´ã€‚"
-#: builtin/log.c:943
+#: builtin/log.c:946
msgid "Cover letter needs email format"
msgstr "ä¿¡å°éœ€è¦é‚®ä»¶åœ°å€æ ¼å¼"
-#: builtin/log.c:1022
+#: builtin/log.c:1025
#, c-format
msgid "insane in-reply-to: %s"
msgstr "ä¸æ­£å¸¸çš„ in-reply-to:%s"
-#: builtin/log.c:1050
+#: builtin/log.c:1053
msgid "git format-patch [<options>] [<since> | <revision-range>]"
msgstr "git format-patch [<选项>] [<从> | <版本范围>]"
-#: builtin/log.c:1095
+#: builtin/log.c:1098
msgid "Two output directories?"
msgstr "两个输出目录?"
-#: builtin/log.c:1211
+#: builtin/log.c:1214
msgid "use [PATCH n/m] even with a single patch"
msgstr "使用 [PATCH n/m],å³ä½¿åªæœ‰ä¸€ä¸ªè¡¥ä¸"
-#: builtin/log.c:1214
+#: builtin/log.c:1217
msgid "use [PATCH] even with multiple patches"
msgstr "使用 [PATCH],å³ä½¿æœ‰å¤šä¸ªè¡¥ä¸"
-#: builtin/log.c:1218
+#: builtin/log.c:1221
msgid "print patches to standard out"
msgstr "打å°è¡¥ä¸åˆ°æ ‡å‡†è¾“出"
-#: builtin/log.c:1220
+#: builtin/log.c:1223
msgid "generate a cover letter"
msgstr "生æˆä¸€å°é™„ä¿¡"
-#: builtin/log.c:1222
+#: builtin/log.c:1225
msgid "use simple number sequence for output file names"
msgstr "使用简å•çš„æ•°å­—åºåˆ—作为输出文件å"
-#: builtin/log.c:1223
+#: builtin/log.c:1226
msgid "sfx"
msgstr "åŽç¼€"
-#: builtin/log.c:1224
+#: builtin/log.c:1227
msgid "use <sfx> instead of '.patch'"
msgstr "使用 <åŽç¼€> 代替 '.patch'"
-#: builtin/log.c:1226
+#: builtin/log.c:1229
msgid "start numbering patches at <n> instead of 1"
msgstr "è¡¥ä¸ä»¥ <n> 开始编å·ï¼Œè€Œä¸æ˜¯1"
-#: builtin/log.c:1228
+#: builtin/log.c:1231
msgid "mark the series as Nth re-roll"
msgstr "标记补ä¸ç³»åˆ—是第几次é‡åˆ¶"
-#: builtin/log.c:1230
+#: builtin/log.c:1233
msgid "Use [<prefix>] instead of [PATCH]"
msgstr "使用 [<å‰ç¼€>] 代替 [PATCH]"
-#: builtin/log.c:1233
+#: builtin/log.c:1236
msgid "store resulting files in <dir>"
msgstr "把结果文件存储在 <目录>"
-#: builtin/log.c:1236
+#: builtin/log.c:1239
msgid "don't strip/add [PATCH]"
msgstr "ä¸åˆ é™¤/添加 [PATCH]"
-#: builtin/log.c:1239
+#: builtin/log.c:1242
msgid "don't output binary diffs"
msgstr "ä¸è¾“出二进制差异"
-#: builtin/log.c:1241
+#: builtin/log.c:1244
msgid "output all-zero hash in From header"
msgstr "在 From 头信æ¯ä¸­è¾“出全为零的哈希值"
-#: builtin/log.c:1243
+#: builtin/log.c:1246
msgid "don't include a patch matching a commit upstream"
msgstr "ä¸åŒ…å«å·²åœ¨ä¸Šæ¸¸æ交中的补ä¸"
-#: builtin/log.c:1245
+#: builtin/log.c:1248
msgid "show patch format instead of default (patch + stat)"
msgstr "显示纯补ä¸æ ¼å¼è€Œéžé»˜è®¤çš„(补ä¸+状æ€ï¼‰"
-#: builtin/log.c:1247
+#: builtin/log.c:1250
msgid "Messaging"
msgstr "邮件å‘é€"
-#: builtin/log.c:1248
+#: builtin/log.c:1251
msgid "header"
msgstr "header"
-#: builtin/log.c:1249
+#: builtin/log.c:1252
msgid "add email header"
msgstr "添加邮件头"
-#: builtin/log.c:1250 builtin/log.c:1252
+#: builtin/log.c:1253 builtin/log.c:1255
msgid "email"
msgstr "邮件地å€"
-#: builtin/log.c:1250
+#: builtin/log.c:1253
msgid "add To: header"
msgstr "添加收件人"
-#: builtin/log.c:1252
+#: builtin/log.c:1255
msgid "add Cc: header"
msgstr "添加抄é€"
-#: builtin/log.c:1254
+#: builtin/log.c:1257
msgid "ident"
msgstr "标识"
-#: builtin/log.c:1255
+#: builtin/log.c:1258
msgid "set From address to <ident> (or committer ident if absent)"
msgstr "å°† From 地å€è®¾ç½®ä¸º <标识>(如若ä¸æ供,则用æ交者 ID åšä¸ºåœ°å€ï¼‰"
-#: builtin/log.c:1257
+#: builtin/log.c:1260
msgid "message-id"
msgstr "邮件标识"
-#: builtin/log.c:1258
+#: builtin/log.c:1261
msgid "make first mail a reply to <message-id>"
msgstr "使第一å°é‚®ä»¶ä½œä¸ºå¯¹ <邮件标识> 的回å¤"
-#: builtin/log.c:1259 builtin/log.c:1262
+#: builtin/log.c:1262 builtin/log.c:1265
msgid "boundary"
msgstr "边界"
-#: builtin/log.c:1260
+#: builtin/log.c:1263
msgid "attach the patch"
msgstr "附件方å¼æ·»åŠ è¡¥ä¸"
-#: builtin/log.c:1263
+#: builtin/log.c:1266
msgid "inline the patch"
msgstr "内è”显示补ä¸"
-#: builtin/log.c:1267
+#: builtin/log.c:1270
msgid "enable message threading, styles: shallow, deep"
msgstr "å¯ç”¨é‚®ä»¶çº¿ç´¢ï¼Œé£Žæ ¼ï¼šæµ…,深"
-#: builtin/log.c:1269
+#: builtin/log.c:1272
msgid "signature"
msgstr "ç­¾å"
-#: builtin/log.c:1270
+#: builtin/log.c:1273
msgid "add a signature"
msgstr "添加一个签å"
-#: builtin/log.c:1272
+#: builtin/log.c:1275
msgid "add a signature from a file"
msgstr "从文件添加一个签å"
-#: builtin/log.c:1273
+#: builtin/log.c:1276
msgid "don't print the patch filenames"
msgstr "ä¸è¦æ‰“å°è¡¥ä¸æ–‡ä»¶å"
-#: builtin/log.c:1362
+#: builtin/log.c:1365
msgid "-n and -k are mutually exclusive."
msgstr "-n 和 -k 互斥。"
-#: builtin/log.c:1364
+#: builtin/log.c:1367
msgid "--subject-prefix and -k are mutually exclusive."
msgstr "--subject-prefix 和 -k 互斥。"
-#: builtin/log.c:1372
+#: builtin/log.c:1375
msgid "--name-only does not make sense"
msgstr "--name-only æ— æ„义"
-#: builtin/log.c:1374
+#: builtin/log.c:1377
msgid "--name-status does not make sense"
msgstr "--name-status æ— æ„义"
-#: builtin/log.c:1376
+#: builtin/log.c:1379
msgid "--check does not make sense"
msgstr "--check æ— æ„义"
-#: builtin/log.c:1401
+#: builtin/log.c:1407
msgid "standard output, or directory, which one?"
msgstr "标准输出或目录,哪一个?"
-#: builtin/log.c:1403
+#: builtin/log.c:1409
#, c-format
msgid "Could not create directory '%s'"
msgstr "ä¸èƒ½åˆ›å»ºç›®å½• '%s'"
-#: builtin/log.c:1500
+#: builtin/log.c:1506
#, c-format
msgid "unable to read signature file '%s'"
msgstr "无法读å–ç­¾å文件 '%s'"
-#: builtin/log.c:1563
+#: builtin/log.c:1569
msgid "Failed to create output files"
msgstr "无法创建输出文件"
-#: builtin/log.c:1611
+#: builtin/log.c:1617
msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
msgstr "git cherry [-v] [<上游> [<头> [<é™åˆ¶>]]]"
-#: builtin/log.c:1665
+#: builtin/log.c:1671
#, c-format
msgid ""
"Could not find a tracked remote branch, please specify <upstream> manually.\n"
msgstr "ä¸èƒ½æ‰¾åˆ°è·Ÿè¸ªçš„远程分支,请手工指定 <上游>。\n"
-#: builtin/log.c:1676 builtin/log.c:1678 builtin/log.c:1690
+#: builtin/log.c:1682 builtin/log.c:1684 builtin/log.c:1696
#, c-format
msgid "Unknown commit %s"
msgstr "未知æ交 %s"
-#: builtin/ls-files.c:358
+#: builtin/ls-files.c:378
msgid "git ls-files [<options>] [<file>...]"
msgstr "git ls-files [<选项>] [<文件>...]"
-#: builtin/ls-files.c:415
+#: builtin/ls-files.c:427
msgid "identify the file status with tags"
msgstr "用标签标识文件的状æ€"
-#: builtin/ls-files.c:417
+#: builtin/ls-files.c:429
msgid "use lowercase letters for 'assume unchanged' files"
msgstr "使用å°å†™å­—æ¯è¡¨ç¤º 'å‡è®¾æœªæ”¹å˜çš„' 文件"
-#: builtin/ls-files.c:419
+#: builtin/ls-files.c:431
msgid "show cached files in the output (default)"
msgstr "显示缓存的文件(默认)"
-#: builtin/ls-files.c:421
+#: builtin/ls-files.c:433
msgid "show deleted files in the output"
msgstr "显示已删除的文件"
-#: builtin/ls-files.c:423
+#: builtin/ls-files.c:435
msgid "show modified files in the output"
msgstr "显示已修改的文件"
-#: builtin/ls-files.c:425
+#: builtin/ls-files.c:437
msgid "show other files in the output"
msgstr "显示其它文件"
-#: builtin/ls-files.c:427
+#: builtin/ls-files.c:439
msgid "show ignored files in the output"
msgstr "显示忽略的文件"
-#: builtin/ls-files.c:430
+#: builtin/ls-files.c:442
msgid "show staged contents' object name in the output"
msgstr "显示暂存区内容的对象å称"
-#: builtin/ls-files.c:432
+#: builtin/ls-files.c:444
msgid "show files on the filesystem that need to be removed"
msgstr "显示文件系统需è¦åˆ é™¤çš„文件"
-#: builtin/ls-files.c:434
+#: builtin/ls-files.c:446
msgid "show 'other' directories' names only"
msgstr "åªæ˜¾ç¤ºâ€œå…¶ä»–â€ç›®å½•çš„å称"
-#: builtin/ls-files.c:437
+#: builtin/ls-files.c:448
+msgid "show line endings of files"
+msgstr "显示文件æ¢è¡Œç¬¦æ ¼å¼"
+
+#: builtin/ls-files.c:450
msgid "don't show empty directories"
msgstr "ä¸æ˜¾ç¤ºç©ºç›®å½•"
-#: builtin/ls-files.c:440
+#: builtin/ls-files.c:453
msgid "show unmerged files in the output"
msgstr "显示未åˆå¹¶çš„文件"
-#: builtin/ls-files.c:442
+#: builtin/ls-files.c:455
msgid "show resolve-undo information"
msgstr "显示 resolve-undo ä¿¡æ¯"
-#: builtin/ls-files.c:444
+#: builtin/ls-files.c:457
msgid "skip files matching pattern"
msgstr "匹é…排除文件的模å¼"
-#: builtin/ls-files.c:447
+#: builtin/ls-files.c:460
msgid "exclude patterns are read from <file>"
msgstr "从 <文件> 中读å–排除模å¼"
-#: builtin/ls-files.c:450
+#: builtin/ls-files.c:463
msgid "read additional per-directory exclude patterns in <file>"
msgstr "从 <文件> 读å–é¢å¤–çš„æ¯ä¸ªç›®å½•çš„排除模å¼"
-#: builtin/ls-files.c:452
+#: builtin/ls-files.c:465
msgid "add the standard git exclusions"
msgstr "添加标准的 git 排除"
-#: builtin/ls-files.c:455
+#: builtin/ls-files.c:468
msgid "make the output relative to the project top directory"
msgstr "显示相对于顶级目录的文件å"
-#: builtin/ls-files.c:458
+#: builtin/ls-files.c:471
msgid "if any <file> is not in the index, treat this as an error"
msgstr "如果任何 <文件> 都ä¸åœ¨ç´¢å¼•åŒºï¼Œè§†ä¸ºé”™è¯¯"
-#: builtin/ls-files.c:459
+#: builtin/ls-files.c:472
msgid "tree-ish"
msgstr "树或æ交"
-#: builtin/ls-files.c:460
+#: builtin/ls-files.c:473
msgid "pretend that paths removed since <tree-ish> are still present"
msgstr "å‡è£…自从 <树或æ交> 之åŽåˆ é™¤çš„路径ä»ç„¶å­˜åœ¨"
-#: builtin/ls-files.c:462
+#: builtin/ls-files.c:475
msgid "show debugging data"
msgstr "显示调试数æ®"
+#: builtin/ls-remote.c:7
+msgid ""
+"git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
+" [-q | --quiet] [--exit-code] [--get-url]\n"
+" [--symref] [<repository> [<refs>...]]"
+msgstr ""
+"git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
+" [-q | --quiet] [--exit-code] [--get-url]\n"
+" [--symref] [<仓库> [<引用>...]]"
+
+#: builtin/ls-remote.c:50
+msgid "do not print remote URL"
+msgstr "ä¸æ‰“å°è¿œç¨‹ URL"
+
+#: builtin/ls-remote.c:51 builtin/ls-remote.c:53
+msgid "exec"
+msgstr "exec"
+
+#: builtin/ls-remote.c:52 builtin/ls-remote.c:54
+msgid "path of git-upload-pack on the remote host"
+msgstr "远程主机上的 git-upload-pack 路径"
+
+#: builtin/ls-remote.c:56
+msgid "limit to tags"
+msgstr "ä»…é™äºŽæ ‡ç­¾"
+
+#: builtin/ls-remote.c:57
+msgid "limit to heads"
+msgstr "ä»…é™äºŽåˆ†æ”¯"
+
+#: builtin/ls-remote.c:58
+msgid "do not show peeled tags"
+msgstr "ä¸æ˜¾ç¤ºå·²è§£æžçš„标签"
+
+#: builtin/ls-remote.c:60
+msgid "take url.<base>.insteadOf into account"
+msgstr "å‚考 url.<base>.insteadOf 设置"
+
+#: builtin/ls-remote.c:62
+msgid "exit with exit code 2 if no matching refs are found"
+msgstr "若未找到匹é…的引用则以退出ç 2退出"
+
+#: builtin/ls-remote.c:64
+msgid "show underlying ref in addition to the object pointed by it"
+msgstr "除了显示指å‘的对象外,显示指å‘的引用å"
+
#: builtin/ls-tree.c:28
msgid "git ls-tree [<options>] <tree-ish> [<path>...]"
msgstr "git ls-tree [<选项>] <树或æ交> [<路径>...]"
@@ -7586,31 +7845,31 @@ msgstr "å¯ç”¨çš„策略有:"
msgid "Available custom strategies are:"
msgstr "å¯ç”¨çš„自定义策略有:"
-#: builtin/merge.c:193 builtin/pull.c:119
+#: builtin/merge.c:193 builtin/pull.c:123
msgid "do not show a diffstat at the end of the merge"
msgstr "在åˆå¹¶çš„最åŽä¸æ˜¾ç¤ºå·®å¼‚统计"
-#: builtin/merge.c:196 builtin/pull.c:122
+#: builtin/merge.c:196 builtin/pull.c:126
msgid "show a diffstat at the end of the merge"
msgstr "在åˆå¹¶çš„最åŽæ˜¾ç¤ºå·®å¼‚统计"
-#: builtin/merge.c:197 builtin/pull.c:125
+#: builtin/merge.c:197 builtin/pull.c:129
msgid "(synonym to --stat)"
msgstr "(和 --stat åŒä¹‰ï¼‰"
-#: builtin/merge.c:199 builtin/pull.c:128
+#: builtin/merge.c:199 builtin/pull.c:132
msgid "add (at most <n>) entries from shortlog to merge commit message"
msgstr "在åˆå¹¶æ交信æ¯ä¸­æ·»åŠ ï¼ˆæœ€å¤š <n> æ¡ï¼‰ç²¾ç®€æ交记录"
-#: builtin/merge.c:202 builtin/pull.c:131
+#: builtin/merge.c:202 builtin/pull.c:135
msgid "create a single commit instead of doing a merge"
msgstr "创建一个å•ç‹¬çš„æ交而ä¸æ˜¯åšä¸€æ¬¡åˆå¹¶"
-#: builtin/merge.c:204 builtin/pull.c:134
+#: builtin/merge.c:204 builtin/pull.c:138
msgid "perform a commit if the merge succeeds (default)"
msgstr "如果åˆå¹¶æˆåŠŸï¼Œæ‰§è¡Œä¸€æ¬¡æ交(默认)"
-#: builtin/merge.c:206 builtin/pull.c:137
+#: builtin/merge.c:206 builtin/pull.c:141
msgid "edit message before committing"
msgstr "在æ交å‰ç¼–辑æ交说明"
@@ -7618,7 +7877,7 @@ msgstr "在æ交å‰ç¼–辑æ交说明"
msgid "allow fast-forward (default)"
msgstr "å…许快进(默认)"
-#: builtin/merge.c:209 builtin/pull.c:143
+#: builtin/merge.c:209 builtin/pull.c:147
msgid "abort if fast-forward is not possible"
msgstr "如果ä¸èƒ½å¿«è¿›å°±æ”¾å¼ƒåˆå¹¶"
@@ -7626,20 +7885,20 @@ msgstr "如果ä¸èƒ½å¿«è¿›å°±æ”¾å¼ƒåˆå¹¶"
msgid "Verify that the named commit has a valid GPG signature"
msgstr "验è¯æŒ‡å®šçš„æ交是å¦åŒ…å«ä¸€ä¸ªæœ‰æ•ˆçš„ GPG ç­¾å"
-#: builtin/merge.c:214 builtin/notes.c:767 builtin/pull.c:148
+#: builtin/merge.c:214 builtin/notes.c:770 builtin/pull.c:152
#: builtin/revert.c:89
msgid "strategy"
msgstr "ç­–ç•¥"
-#: builtin/merge.c:215 builtin/pull.c:149
+#: builtin/merge.c:215 builtin/pull.c:153
msgid "merge strategy to use"
msgstr "è¦ä½¿ç”¨çš„åˆå¹¶ç­–ç•¥"
-#: builtin/merge.c:216 builtin/pull.c:152
+#: builtin/merge.c:216 builtin/pull.c:156
msgid "option=value"
msgstr "option=value"
-#: builtin/merge.c:217 builtin/pull.c:153
+#: builtin/merge.c:217 builtin/pull.c:157
msgid "option for selected merge strategy"
msgstr "所选的åˆå¹¶ç­–略的选项"
@@ -7678,8 +7937,8 @@ msgstr " (无å¯åŽ‹ç¼©ï¼‰"
msgid "Squash commit -- not updating HEAD\n"
msgstr "压缩æ交 -- 未更新 HEAD\n"
-#: builtin/merge.c:344 builtin/merge.c:763 builtin/merge.c:975
-#: builtin/merge.c:988
+#: builtin/merge.c:344 builtin/merge.c:764 builtin/merge.c:976
+#: builtin/merge.c:989
#, c-format
msgid "Could not write to '%s'"
msgstr "ä¸èƒ½å†™å…¥ '%s'"
@@ -7697,41 +7956,41 @@ msgstr "å®Œæˆ SQUASH_MSG"
msgid "No merge message -- not updating HEAD\n"
msgstr "æ— åˆå¹¶ä¿¡æ¯ -- 未更新 HEAD\n"
-#: builtin/merge.c:447
+#: builtin/merge.c:448
#, c-format
msgid "'%s' does not point to a commit"
msgstr "'%s' 没有指å‘一个æ交"
-#: builtin/merge.c:537
+#: builtin/merge.c:538
#, c-format
msgid "Bad branch.%s.mergeoptions string: %s"
msgstr "åçš„ branch.%s.mergeoptions 字符串:%s"
-#: builtin/merge.c:656
+#: builtin/merge.c:657
msgid "Not handling anything other than two heads merge."
msgstr "ä¸èƒ½å¤„ç†ä¸¤ä¸ªå¤´åˆå¹¶ä¹‹å¤–的任何æ“作。"
-#: builtin/merge.c:670
+#: builtin/merge.c:671
#, c-format
msgid "Unknown option for merge-recursive: -X%s"
msgstr "merge-recursive 的未知选项:-X%s"
-#: builtin/merge.c:683
+#: builtin/merge.c:684
#, c-format
msgid "unable to write %s"
msgstr "ä¸èƒ½å†™ %s"
-#: builtin/merge.c:772
+#: builtin/merge.c:773
#, c-format
msgid "Could not read from '%s'"
msgstr "ä¸èƒ½ä»Ž '%s' 读å–"
-#: builtin/merge.c:781
+#: builtin/merge.c:782
#, c-format
msgid "Not committing merge; use 'git commit' to complete the merge.\n"
msgstr "未æ交åˆå¹¶ï¼Œä½¿ç”¨ 'git commit' 完æˆæ­¤æ¬¡åˆå¹¶ã€‚\n"
-#: builtin/merge.c:787
+#: builtin/merge.c:788
#, c-format
msgid ""
"Please enter a commit message to explain why this merge is necessary,\n"
@@ -7745,52 +8004,52 @@ msgstr ""
"\n"
"以 '%c' 开头的行将被忽略,而且空æ交说明将会终止æ交。\n"
-#: builtin/merge.c:811
+#: builtin/merge.c:812
msgid "Empty commit message."
msgstr "空æ交信æ¯ã€‚"
-#: builtin/merge.c:823
+#: builtin/merge.c:824
#, c-format
msgid "Wonderful.\n"
msgstr "太棒了。\n"
-#: builtin/merge.c:878
+#: builtin/merge.c:879
#, c-format
msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
msgstr "自动åˆå¹¶å¤±è´¥ï¼Œä¿®æ­£å†²çªç„¶åŽæ交修正的结果。\n"
-#: builtin/merge.c:894
+#: builtin/merge.c:895
#, c-format
msgid "'%s' is not a commit"
msgstr "'%s' ä¸æ˜¯ä¸€ä¸ªæ交"
-#: builtin/merge.c:935
+#: builtin/merge.c:936
msgid "No current branch."
msgstr "没有当å‰åˆ†æ”¯ã€‚"
-#: builtin/merge.c:937
+#: builtin/merge.c:938
msgid "No remote for the current branch."
msgstr "当å‰åˆ†æ”¯æ²¡æœ‰å¯¹åº”的远程仓库。"
-#: builtin/merge.c:939
+#: builtin/merge.c:940
msgid "No default upstream defined for the current branch."
msgstr "当å‰åˆ†æ”¯æ²¡æœ‰å®šä¹‰é»˜è®¤çš„上游分支。"
-#: builtin/merge.c:944
+#: builtin/merge.c:945
#, c-format
msgid "No remote-tracking branch for %s from %s"
msgstr "对于 %s 没有æ¥è‡ª %s 的远程跟踪分支"
-#: builtin/merge.c:1079
+#: builtin/merge.c:1080
#, c-format
msgid "could not close '%s'"
msgstr "ä¸èƒ½å…³é—­ '%s'"
-#: builtin/merge.c:1206
+#: builtin/merge.c:1207
msgid "There is no merge to abort (MERGE_HEAD missing)."
msgstr "没有è¦ç»ˆæ­¢çš„åˆå¹¶ï¼ˆMERGE_HEAD 丢失)。"
-#: builtin/merge.c:1222
+#: builtin/merge.c:1223
msgid ""
"You have not concluded your merge (MERGE_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -7798,7 +8057,7 @@ msgstr ""
"您尚未结æŸæ‚¨çš„åˆå¹¶ï¼ˆå­˜åœ¨ MERGE_HEAD)。\n"
"请在åˆå¹¶å‰å…ˆæ交您的修改。"
-#: builtin/merge.c:1229
+#: builtin/merge.c:1230
msgid ""
"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -7806,100 +8065,100 @@ msgstr ""
"您尚未结æŸæ‚¨çš„拣选(存在 CHERRY_PICK_HEAD)。\n"
"请在åˆå¹¶å‰å…ˆæ交您的修改。"
-#: builtin/merge.c:1232
+#: builtin/merge.c:1233
msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
msgstr "您尚未结æŸæ‚¨çš„拣选(存在 CHERRY_PICK_HEAD)。"
-#: builtin/merge.c:1241
+#: builtin/merge.c:1242
msgid "You cannot combine --squash with --no-ff."
msgstr "您ä¸èƒ½å°† --squash 与 --no-ff åŒæ—¶ä½¿ç”¨ã€‚"
-#: builtin/merge.c:1249
+#: builtin/merge.c:1250
msgid "No commit specified and merge.defaultToUpstream not set."
msgstr "未指定æ交并且 merge.defaultToUpstream 未设置。"
-#: builtin/merge.c:1266
+#: builtin/merge.c:1267
msgid "Squash commit into empty head not supported yet"
msgstr "å°šä¸æ”¯æŒåˆ°ç©ºåˆ†æ”¯çš„压缩æ交"
-#: builtin/merge.c:1268
+#: builtin/merge.c:1269
msgid "Non-fast-forward commit does not make sense into an empty head"
msgstr "到空分支的éžå¿«è¿›å¼æ交没有æ„义"
-#: builtin/merge.c:1274
+#: builtin/merge.c:1275
#, c-format
msgid "%s - not something we can merge"
msgstr "%s - ä¸èƒ½è¢«åˆå¹¶"
-#: builtin/merge.c:1276
+#: builtin/merge.c:1277
msgid "Can merge only exactly one commit into empty head"
msgstr "åªèƒ½å°†ä¸€ä¸ªæ交åˆå¹¶åˆ°ç©ºåˆ†æ”¯ä¸Š"
-#: builtin/merge.c:1331
+#: builtin/merge.c:1332
#, c-format
msgid "Commit %s has an untrusted GPG signature, allegedly by %s."
msgstr "æ交 %s 有一个éžå¯ä¿¡çš„声称æ¥è‡ª %s çš„ GPG ç­¾å。"
-#: builtin/merge.c:1334
+#: builtin/merge.c:1335
#, c-format
msgid "Commit %s has a bad GPG signature allegedly by %s."
msgstr "æ交 %s 有一个错误的声称æ¥è‡ª %s çš„ GPG ç­¾å。"
-#: builtin/merge.c:1337
+#: builtin/merge.c:1338
#, c-format
msgid "Commit %s does not have a GPG signature."
msgstr "æ交 %s 没有一个 GPG ç­¾å。"
-#: builtin/merge.c:1340
+#: builtin/merge.c:1341
#, c-format
msgid "Commit %s has a good GPG signature by %s\n"
msgstr "æ交 %s 有一个æ¥è‡ª %s 的好的 GPG ç­¾å。\n"
-#: builtin/merge.c:1423
+#: builtin/merge.c:1424
#, c-format
msgid "Updating %s..%s\n"
msgstr "æ›´æ–° %s..%s\n"
-#: builtin/merge.c:1460
+#: builtin/merge.c:1461
#, c-format
msgid "Trying really trivial in-index merge...\n"
msgstr "å°è¯•éžå¸¸å°çš„索引内åˆå¹¶...\n"
-#: builtin/merge.c:1467
+#: builtin/merge.c:1468
#, c-format
msgid "Nope.\n"
msgstr "无。\n"
-#: builtin/merge.c:1499
+#: builtin/merge.c:1500
msgid "Not possible to fast-forward, aborting."
msgstr "无法快进,终止。"
-#: builtin/merge.c:1522 builtin/merge.c:1601
+#: builtin/merge.c:1523 builtin/merge.c:1602
#, c-format
msgid "Rewinding the tree to pristine...\n"
msgstr "将树回滚至原始状æ€...\n"
-#: builtin/merge.c:1526
+#: builtin/merge.c:1527
#, c-format
msgid "Trying merge strategy %s...\n"
msgstr "å°è¯•åˆå¹¶ç­–ç•¥ %s...\n"
-#: builtin/merge.c:1592
+#: builtin/merge.c:1593
#, c-format
msgid "No merge strategy handled the merge.\n"
msgstr "没有åˆå¹¶ç­–略处ç†æ­¤åˆå¹¶ã€‚\n"
-#: builtin/merge.c:1594
+#: builtin/merge.c:1595
#, c-format
msgid "Merge with strategy %s failed.\n"
msgstr "使用策略 %s åˆå¹¶å¤±è´¥ã€‚\n"
-#: builtin/merge.c:1603
+#: builtin/merge.c:1604
#, c-format
msgid "Using the %s to prepare resolving by hand.\n"
msgstr "使用 %s 以准备手工解决。\n"
-#: builtin/merge.c:1615
+#: builtin/merge.c:1616
#, c-format
msgid "Automatic merge went well; stopped before committing as requested\n"
msgstr "自动åˆå¹¶è¿›å±•é¡ºåˆ©ï¼ŒæŒ‰è¦æ±‚在æ交å‰åœæ­¢\n"
@@ -7984,19 +8243,19 @@ msgstr "ä¸è¦è­¦å‘Šå†²çª"
msgid "set labels for file1/orig-file/file2"
msgstr "为 文件1/åˆå§‹æ–‡ä»¶/文件2 设置标签"
-#: builtin/mktree.c:64
+#: builtin/mktree.c:65
msgid "git mktree [-z] [--missing] [--batch]"
msgstr "git mktree [-z] [--missing] [--batch]"
-#: builtin/mktree.c:150
+#: builtin/mktree.c:152
msgid "input is NUL terminated"
msgstr "输入以 NUL 字符终止"
-#: builtin/mktree.c:151 builtin/write-tree.c:24
+#: builtin/mktree.c:153 builtin/write-tree.c:24
msgid "allow missing objects"
msgstr "å…许丢失的对象"
-#: builtin/mktree.c:152
+#: builtin/mktree.c:154
msgid "allow creation of more than one tree"
msgstr "å…许创建一个以上的树"
@@ -8004,90 +8263,90 @@ msgstr "å…许创建一个以上的树"
msgid "git mv [<options>] <source>... <destination>"
msgstr "git mv [<选项>] <æº>... <目标>"
-#: builtin/mv.c:69
+#: builtin/mv.c:70
#, c-format
msgid "Directory %s is in index and no submodule?"
msgstr "目录 %s 在索引中并且ä¸æ˜¯å­æ¨¡ç»„?"
-#: builtin/mv.c:71
+#: builtin/mv.c:72
msgid "Please stage your changes to .gitmodules or stash them to proceed"
msgstr "请将您的修改暂存到 .gitmodules 中或ä¿å­˜è¿›åº¦åŽå†ç»§ç»­"
-#: builtin/mv.c:89
+#: builtin/mv.c:90
#, c-format
msgid "%.*s is in index"
msgstr "%.*s 在索引中"
-#: builtin/mv.c:111
+#: builtin/mv.c:112
msgid "force move/rename even if target exists"
msgstr "强制移动/é‡å‘½ä»¤ï¼Œå³ä½¿ç›®æ ‡å­˜åœ¨"
-#: builtin/mv.c:112
+#: builtin/mv.c:113
msgid "skip move/rename errors"
msgstr "跳过移动/é‡å‘½å错误"
-#: builtin/mv.c:151
+#: builtin/mv.c:152
#, c-format
msgid "destination '%s' is not a directory"
msgstr "目标 '%s' ä¸æ˜¯ä¸€ä¸ªç›®å½•"
-#: builtin/mv.c:162
+#: builtin/mv.c:163
#, c-format
msgid "Checking rename of '%s' to '%s'\n"
msgstr "检查 '%s' 到 '%s' çš„é‡å‘½å\n"
-#: builtin/mv.c:166
+#: builtin/mv.c:167
msgid "bad source"
msgstr "åçš„æº"
-#: builtin/mv.c:169
+#: builtin/mv.c:170
msgid "can not move directory into itself"
msgstr "ä¸èƒ½å°†ç›®å½•ç§»åŠ¨åˆ°è‡ªèº«"
-#: builtin/mv.c:172
+#: builtin/mv.c:173
msgid "cannot move directory over file"
msgstr "ä¸èƒ½å°†ç›®å½•ç§»åŠ¨åˆ°æ–‡ä»¶"
-#: builtin/mv.c:181
+#: builtin/mv.c:182
msgid "source directory is empty"
msgstr "æºç›®å½•ä¸ºç©º"
-#: builtin/mv.c:206
+#: builtin/mv.c:207
msgid "not under version control"
msgstr "ä¸åœ¨ç‰ˆæœ¬æŽ§åˆ¶ä¹‹ä¸‹"
-#: builtin/mv.c:209
+#: builtin/mv.c:210
msgid "destination exists"
msgstr "目标已存在"
-#: builtin/mv.c:217
+#: builtin/mv.c:218
#, c-format
msgid "overwriting '%s'"
msgstr "覆盖 '%s'"
-#: builtin/mv.c:220
+#: builtin/mv.c:221
msgid "Cannot overwrite"
msgstr "ä¸èƒ½è¦†ç›–"
-#: builtin/mv.c:223
+#: builtin/mv.c:224
msgid "multiple sources for the same target"
msgstr "åŒä¸€ç›®æ ‡å…·æœ‰å¤šä¸ªæº"
-#: builtin/mv.c:225
+#: builtin/mv.c:226
msgid "destination directory does not exist"
msgstr "目标目录ä¸å­˜åœ¨"
-#: builtin/mv.c:232
+#: builtin/mv.c:233
#, c-format
msgid "%s, source=%s, destination=%s"
msgstr "%s,æº=%s,目标=%s"
-#: builtin/mv.c:253
+#: builtin/mv.c:254
#, c-format
msgid "Renaming %s to %s\n"
msgstr "é‡å‘½å %s 至 %s\n"
-#: builtin/mv.c:256 builtin/remote.c:728 builtin/repack.c:365
+#: builtin/mv.c:257 builtin/remote.c:714 builtin/repack.c:365
#, c-format
msgid "renaming '%s' failed"
msgstr "é‡å‘½å '%s' 失败"
@@ -8284,9 +8543,9 @@ msgid "could not open or read '%s'"
msgstr "ä¸èƒ½æ‰“å¼€æˆ–è¯»å– '%s'"
#: builtin/notes.c:253 builtin/notes.c:304 builtin/notes.c:306
-#: builtin/notes.c:366 builtin/notes.c:421 builtin/notes.c:507
-#: builtin/notes.c:512 builtin/notes.c:590 builtin/notes.c:653
-#: builtin/notes.c:877 builtin/tag.c:456
+#: builtin/notes.c:369 builtin/notes.c:424 builtin/notes.c:510
+#: builtin/notes.c:515 builtin/notes.c:593 builtin/notes.c:656
+#: builtin/notes.c:880 builtin/tag.c:456
#, c-format
msgid "Failed to resolve '%s' as a valid ref."
msgstr "æ— æ³•è§£æž '%s' 为一个有效引用。"
@@ -8301,83 +8560,83 @@ msgstr "无法读å–对象 '%s'。"
msgid "Cannot read note data from non-blob object '%s'."
msgstr "ä¸èƒ½ä»Žéžæ•°æ®å¯¹è±¡ '%s' 中读å–注解数æ®"
-#: builtin/notes.c:359 builtin/notes.c:414 builtin/notes.c:490
-#: builtin/notes.c:502 builtin/notes.c:578 builtin/notes.c:646
-#: builtin/notes.c:942
+#: builtin/notes.c:362 builtin/notes.c:417 builtin/notes.c:493
+#: builtin/notes.c:505 builtin/notes.c:581 builtin/notes.c:649
+#: builtin/notes.c:945
msgid "too many parameters"
msgstr "å‚数太多"
-#: builtin/notes.c:372 builtin/notes.c:659
+#: builtin/notes.c:375 builtin/notes.c:662
#, c-format
msgid "No note found for object %s."
msgstr "未å‘现对象 %s 的注解。"
-#: builtin/notes.c:393 builtin/notes.c:556
+#: builtin/notes.c:396 builtin/notes.c:559
msgid "note contents as a string"
msgstr "注解内容作为一个字符串"
-#: builtin/notes.c:396 builtin/notes.c:559
+#: builtin/notes.c:399 builtin/notes.c:562
msgid "note contents in a file"
msgstr "注解内容到一个文件中"
-#: builtin/notes.c:399 builtin/notes.c:562
+#: builtin/notes.c:402 builtin/notes.c:565
msgid "reuse and edit specified note object"
msgstr "é‡ç”¨å’Œç¼–辑指定的注解对象"
-#: builtin/notes.c:402 builtin/notes.c:565
+#: builtin/notes.c:405 builtin/notes.c:568
msgid "reuse specified note object"
msgstr "é‡ç”¨æŒ‡å®šçš„注解对象"
-#: builtin/notes.c:405 builtin/notes.c:568
+#: builtin/notes.c:408 builtin/notes.c:571
msgid "allow storing empty note"
msgstr "å…许ä¿å­˜ç©ºç™½æ³¨é‡Š"
-#: builtin/notes.c:406 builtin/notes.c:477
+#: builtin/notes.c:409 builtin/notes.c:480
msgid "replace existing notes"
msgstr "替æ¢å·²å­˜åœ¨çš„注解"
-#: builtin/notes.c:431
+#: builtin/notes.c:434
#, c-format
msgid ""
"Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite "
"existing notes"
msgstr "ä¸èƒ½æ·»åŠ æ³¨è§£ã€‚å‘现对象 %s 已存在注解。使用 '-f' 覆盖现存注解"
-#: builtin/notes.c:446 builtin/notes.c:525
+#: builtin/notes.c:449 builtin/notes.c:528
#, c-format
msgid "Overwriting existing notes for object %s\n"
msgstr "覆盖对象 %s 现存注解\n"
-#: builtin/notes.c:457 builtin/notes.c:618 builtin/notes.c:882
+#: builtin/notes.c:460 builtin/notes.c:621 builtin/notes.c:885
#, c-format
msgid "Removing note for object %s\n"
msgstr "删除对象 %s 的注解\n"
-#: builtin/notes.c:478
+#: builtin/notes.c:481
msgid "read objects from stdin"
msgstr "从标准输入读å–对象"
-#: builtin/notes.c:480
+#: builtin/notes.c:483
msgid "load rewriting config for <command> (implies --stdin)"
msgstr "é‡æ–°åŠ è½½ <命令> çš„é…置(éšå« --stdin)"
-#: builtin/notes.c:498
+#: builtin/notes.c:501
msgid "too few parameters"
msgstr "å‚数太少"
-#: builtin/notes.c:519
+#: builtin/notes.c:522
#, c-format
msgid ""
"Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite "
"existing notes"
msgstr "ä¸èƒ½æ‹·è´æ³¨è§£ã€‚å‘现对象 %s 已存在注解。使用 '-f' 覆盖现存注解"
-#: builtin/notes.c:531
+#: builtin/notes.c:534
#, c-format
msgid "Missing notes on source object %s. Cannot copy."
msgstr "æºå¯¹è±¡ %s 缺少注解。ä¸èƒ½æ‹·è´ã€‚"
-#: builtin/notes.c:583
+#: builtin/notes.c:586
#, c-format
msgid ""
"The -m/-F/-c/-C options have been deprecated for the 'edit' subcommand.\n"
@@ -8386,63 +8645,63 @@ msgstr ""
"å­å‘½ä»¤ 'edit' 的选项 -m/-F/-c/-C 已弃用。\n"
"请æ¢ç”¨ 'git notes add -f -m/-F/-c/-C'。\n"
-#: builtin/notes.c:764
+#: builtin/notes.c:767
msgid "General options"
msgstr "通用选项"
-#: builtin/notes.c:766
+#: builtin/notes.c:769
msgid "Merge options"
msgstr "åˆå¹¶é€‰é¡¹"
-#: builtin/notes.c:768
+#: builtin/notes.c:771
msgid ""
"resolve notes conflicts using the given strategy (manual/ours/theirs/union/"
"cat_sort_uniq)"
msgstr "ä½¿ç”¨æŒ‡å®šçš„ç­–ç•¥è§£å†³æ³¨è§£å†²çª (manual/ours/theirs/union/cat_sort_uniq)"
-#: builtin/notes.c:770
+#: builtin/notes.c:773
msgid "Committing unmerged notes"
msgstr "æ交未åˆå¹¶çš„注解"
-#: builtin/notes.c:772
+#: builtin/notes.c:775
msgid "finalize notes merge by committing unmerged notes"
msgstr "通过æ交未åˆå¹¶çš„注解æ¥å®Œæˆæ³¨è§£åˆå¹¶"
-#: builtin/notes.c:774
+#: builtin/notes.c:777
msgid "Aborting notes merge resolution"
msgstr "中止注解åˆå¹¶çš„方案"
-#: builtin/notes.c:776
+#: builtin/notes.c:779
msgid "abort notes merge"
msgstr "中止注解åˆå¹¶"
-#: builtin/notes.c:853
+#: builtin/notes.c:856
#, c-format
msgid "A notes merge into %s is already in-progress at %s"
msgstr "一个到 %s 的注解åˆå¹¶å·²ç»åœ¨ %s 执行中"
-#: builtin/notes.c:880
+#: builtin/notes.c:883
#, c-format
msgid "Object %s has no note\n"
msgstr "对象 %s 没有注解\n"
-#: builtin/notes.c:892
+#: builtin/notes.c:895
msgid "attempt to remove non-existent note is not an error"
msgstr "å°è¯•åˆ é™¤ä¸å­˜åœ¨çš„注解ä¸æ˜¯ä¸€ä¸ªé”™è¯¯"
-#: builtin/notes.c:895
+#: builtin/notes.c:898
msgid "read object names from the standard input"
msgstr "从标准输入读å–对象å称"
-#: builtin/notes.c:976
+#: builtin/notes.c:979
msgid "notes-ref"
msgstr "注解引用"
-#: builtin/notes.c:977
+#: builtin/notes.c:980
msgid "use notes from <notes-ref>"
msgstr "从 <注解引用> 使用注解"
-#: builtin/notes.c:1012 builtin/remote.c:1647
+#: builtin/notes.c:1015 builtin/remote.c:1626
#, c-format
msgid "Unknown subcommand: %s"
msgstr "未知å­å‘½ä»¤ï¼š%s"
@@ -8462,165 +8721,165 @@ msgstr "git pack-objects [<选项>...] <base-name> [< <引用列表> | < <对象
msgid "deflate error (%d)"
msgstr "压缩错误 (%d)"
-#: builtin/pack-objects.c:771
+#: builtin/pack-objects.c:772
msgid "Writing objects"
msgstr "写入对象中"
-#: builtin/pack-objects.c:1011
+#: builtin/pack-objects.c:1012
msgid "disabling bitmap writing, as some objects are not being packed"
msgstr "ç¦ç”¨ bitmap 写入,因为一些对象将ä¸ä¼šè¢«æ‰“包"
-#: builtin/pack-objects.c:2171
+#: builtin/pack-objects.c:2172
msgid "Compressing objects"
msgstr "压缩对象中"
-#: builtin/pack-objects.c:2568
+#: builtin/pack-objects.c:2558
#, c-format
msgid "unsupported index version %s"
msgstr "ä¸æ”¯æŒçš„索引版本 %s"
-#: builtin/pack-objects.c:2572
+#: builtin/pack-objects.c:2562
#, c-format
msgid "bad index version '%s'"
msgstr "å的索引版本 '%s'"
-#: builtin/pack-objects.c:2602
+#: builtin/pack-objects.c:2592
msgid "do not show progress meter"
msgstr "ä¸æ˜¾ç¤ºè¿›åº¦è¡¨"
-#: builtin/pack-objects.c:2604
+#: builtin/pack-objects.c:2594
msgid "show progress meter"
msgstr "显示进度表"
-#: builtin/pack-objects.c:2606
+#: builtin/pack-objects.c:2596
msgid "show progress meter during object writing phase"
msgstr "在对象写入阶段显示进度表"
-#: builtin/pack-objects.c:2609
+#: builtin/pack-objects.c:2599
msgid "similar to --all-progress when progress meter is shown"
msgstr "当进度表显示时类似于 --all-progress"
-#: builtin/pack-objects.c:2610
+#: builtin/pack-objects.c:2600
msgid "version[,offset]"
msgstr "版本[,å移]"
-#: builtin/pack-objects.c:2611
+#: builtin/pack-objects.c:2601
msgid "write the pack index file in the specified idx format version"
msgstr "用指定的 idx æ ¼å¼ç‰ˆæœ¬æ¥å†™åŒ…索引文件"
-#: builtin/pack-objects.c:2614
+#: builtin/pack-objects.c:2604
msgid "maximum size of each output pack file"
msgstr "æ¯ä¸ªè¾“出包的最大尺寸"
-#: builtin/pack-objects.c:2616
+#: builtin/pack-objects.c:2606
msgid "ignore borrowed objects from alternate object store"
msgstr "忽略从备用对象存储里借用对象"
-#: builtin/pack-objects.c:2618
+#: builtin/pack-objects.c:2608
msgid "ignore packed objects"
msgstr "忽略包对象"
-#: builtin/pack-objects.c:2620
+#: builtin/pack-objects.c:2610
msgid "limit pack window by objects"
msgstr "é™åˆ¶æ‰“包窗å£çš„对象数"
-#: builtin/pack-objects.c:2622
+#: builtin/pack-objects.c:2612
msgid "limit pack window by memory in addition to object limit"
msgstr "除对象数é‡é™åˆ¶å¤–设置打包窗å£çš„内存é™åˆ¶"
-#: builtin/pack-objects.c:2624
+#: builtin/pack-objects.c:2614
msgid "maximum length of delta chain allowed in the resulting pack"
msgstr "打包å…许的 delta 链的最大长度"
-#: builtin/pack-objects.c:2626
+#: builtin/pack-objects.c:2616
msgid "reuse existing deltas"
msgstr "é‡ç”¨å·²å­˜åœ¨çš„ deltas"
-#: builtin/pack-objects.c:2628
+#: builtin/pack-objects.c:2618
msgid "reuse existing objects"
msgstr "é‡ç”¨å·²å­˜åœ¨çš„对象"
-#: builtin/pack-objects.c:2630
+#: builtin/pack-objects.c:2620
msgid "use OFS_DELTA objects"
msgstr "使用 OFS_DELTA 对象"
-#: builtin/pack-objects.c:2632
+#: builtin/pack-objects.c:2622
msgid "use threads when searching for best delta matches"
msgstr "使用线程查询最佳 delta 匹é…"
-#: builtin/pack-objects.c:2634
+#: builtin/pack-objects.c:2624
msgid "do not create an empty pack output"
msgstr "ä¸åˆ›å»ºç©ºçš„包输出"
-#: builtin/pack-objects.c:2636
+#: builtin/pack-objects.c:2626
msgid "read revision arguments from standard input"
msgstr "从标准输入读å–版本å·å‚æ•°"
-#: builtin/pack-objects.c:2638
+#: builtin/pack-objects.c:2628
msgid "limit the objects to those that are not yet packed"
msgstr "é™åˆ¶é‚£äº›å°šæœªæ‰“包的对象"
-#: builtin/pack-objects.c:2641
+#: builtin/pack-objects.c:2631
msgid "include objects reachable from any reference"
msgstr "包括å¯ä»¥ä»Žä»»ä½•å¼•ç”¨è®¿é—®åˆ°çš„对象"
-#: builtin/pack-objects.c:2644
+#: builtin/pack-objects.c:2634
msgid "include objects referred by reflog entries"
msgstr "包括被引用日志引用到的对象"
-#: builtin/pack-objects.c:2647
+#: builtin/pack-objects.c:2637
msgid "include objects referred to by the index"
msgstr "包括被索引引用到的对象"
-#: builtin/pack-objects.c:2650
+#: builtin/pack-objects.c:2640
msgid "output pack to stdout"
msgstr "输出包到标准输出"
-#: builtin/pack-objects.c:2652
+#: builtin/pack-objects.c:2642
msgid "include tag objects that refer to objects to be packed"
msgstr "包括那些引用了待打包对象的标签对象"
-#: builtin/pack-objects.c:2654
+#: builtin/pack-objects.c:2644
msgid "keep unreachable objects"
msgstr "ç»´æŒä¸å¯è¾¾çš„对象"
-#: builtin/pack-objects.c:2655 parse-options.h:142
+#: builtin/pack-objects.c:2645 parse-options.h:142
msgid "time"
msgstr "时间"
-#: builtin/pack-objects.c:2656
+#: builtin/pack-objects.c:2646
msgid "unpack unreachable objects newer than <time>"
msgstr "将比给定 <时间> 新的无法访问的对象解包"
-#: builtin/pack-objects.c:2659
+#: builtin/pack-objects.c:2649
msgid "create thin packs"
msgstr "创建精简包"
-#: builtin/pack-objects.c:2661
+#: builtin/pack-objects.c:2651
msgid "create packs suitable for shallow fetches"
msgstr "创建适åˆæµ…克隆仓库获å–的包"
-#: builtin/pack-objects.c:2663
+#: builtin/pack-objects.c:2653
msgid "ignore packs that have companion .keep file"
msgstr "忽略é…有 .keep 文件的包"
-#: builtin/pack-objects.c:2665
+#: builtin/pack-objects.c:2655
msgid "pack compression level"
msgstr "打包压缩级别"
-#: builtin/pack-objects.c:2667
+#: builtin/pack-objects.c:2657
msgid "do not hide commits by grafts"
msgstr "显示被å«æŽ¥éšè—çš„æ交"
-#: builtin/pack-objects.c:2669
+#: builtin/pack-objects.c:2659
msgid "use a bitmap index if available to speed up counting objects"
msgstr "使用 bitmap 索引(如果有的è¯ï¼‰ä»¥æ高对象计数时的速度"
-#: builtin/pack-objects.c:2671
+#: builtin/pack-objects.c:2661
msgid "write a bitmap index together with the pack index"
msgstr "在建立包索引的åŒæ—¶åˆ›å»º bitmap 索引"
-#: builtin/pack-objects.c:2762
+#: builtin/pack-objects.c:2752
msgid "Counting objects"
msgstr "对象计数中"
@@ -8664,65 +8923,69 @@ msgstr "使早于给定时间的对象过期"
msgid "cannot prune in a precious-objects repo"
msgstr "ä¸èƒ½åœ¨çå“仓库中执行清ç†æ“作"
-#: builtin/pull.c:69
+#: builtin/pull.c:72
msgid "git pull [<options>] [<repository> [<refspec>...]]"
msgstr "git pull [<选项>] [<仓库> [<引用规格>...]]"
-#: builtin/pull.c:113
+#: builtin/pull.c:117
msgid "Options related to merging"
msgstr "å’Œåˆå¹¶ç›¸å…³çš„选项"
-#: builtin/pull.c:116
+#: builtin/pull.c:120
msgid "incorporate changes by rebasing rather than merging"
msgstr "使用å˜åŸºæ“作å–代åˆå¹¶æ“作以åˆå…¥ä¿®æ”¹"
-#: builtin/pull.c:140 builtin/revert.c:105
+#: builtin/pull.c:144 builtin/revert.c:105
msgid "allow fast-forward"
msgstr "å…许快进å¼"
-#: builtin/pull.c:146
+#: builtin/pull.c:150
msgid "verify that the named commit has a valid GPG signature"
msgstr "验è¯æŒ‡å®šçš„æ交是å¦åŒ…å«ä¸€ä¸ªæœ‰æ•ˆçš„ GPG ç­¾å"
-#: builtin/pull.c:160
+#: builtin/pull.c:164
msgid "Options related to fetching"
msgstr "和获å–相关的å‚æ•°"
-#: builtin/pull.c:268
+#: builtin/pull.c:186
+msgid "number of submodules pulled in parallel"
+msgstr "并å‘拉å–çš„å­æ¨¡ç»„çš„æ•°é‡"
+
+#: builtin/pull.c:275
#, c-format
msgid "Invalid value for pull.ff: %s"
msgstr "pull.ff çš„å–值无效:%s"
-#: builtin/pull.c:352
+#: builtin/pull.c:359
msgid "Cannot pull with rebase: You have unstaged changes."
msgstr "无法通过å˜åŸºæ–¹å¼æ‹‰å–:您有未暂存的å˜æ›´ã€‚"
-#: builtin/pull.c:358
+#: builtin/pull.c:365
msgid "Additionally, your index contains uncommitted changes."
msgstr "而且您的索引中包å«æœªæ交的å˜æ›´ã€‚"
-#: builtin/pull.c:360
+#: builtin/pull.c:367
msgid "Cannot pull with rebase: Your index contains uncommitted changes."
msgstr "无法通过å˜åŸºæ–¹å¼æ‹‰å–:您的索引中包å«æœªæ交的å˜æ›´ã€‚"
-#: builtin/pull.c:436
+#: builtin/pull.c:443
msgid ""
"There is no candidate for rebasing against among the refs that you just "
"fetched."
msgstr "在您刚刚获å–到的引用中没有å˜åŸºæ“作的候选。"
-#: builtin/pull.c:438
+#: builtin/pull.c:445
msgid ""
"There are no candidates for merging among the refs that you just fetched."
msgstr "在您刚刚获å–到的引用中没有åˆå¹¶æ“作的候选。"
-#: builtin/pull.c:439
+#: builtin/pull.c:446
msgid ""
"Generally this means that you provided a wildcard refspec which had no\n"
"matches on the remote end."
msgstr "通常这æ„味ç€æ‚¨æ供了一个通é…符引用规格但未能和远端匹é…。"
-#: builtin/pull.c:442
+#: builtin/pull.c:449
#, c-format
msgid ""
"You asked to pull from the remote '%s', but did not specify\n"
@@ -8732,27 +8995,27 @@ msgstr ""
"您è¦æ±‚从远程 '%s' 拉å–,但是未指定一个分支。因为这ä¸æ˜¯å½“å‰\n"
"分支默认的远程仓库,您必须在命令行中指定一个分支å。"
-#: builtin/pull.c:447
+#: builtin/pull.c:454
msgid "You are not currently on a branch."
msgstr "您当å‰ä¸åœ¨ä¸€ä¸ªåˆ†æ”¯ä¸Šã€‚"
-#: builtin/pull.c:449 builtin/pull.c:464
+#: builtin/pull.c:456 builtin/pull.c:471
msgid "Please specify which branch you want to rebase against."
msgstr "请指定您è¦å˜åŸºåˆ°å“ªä¸€ä¸ªåˆ†æ”¯ã€‚"
-#: builtin/pull.c:451 builtin/pull.c:466
+#: builtin/pull.c:458 builtin/pull.c:473
msgid "Please specify which branch you want to merge with."
msgstr "请指定您è¦åˆå¹¶å“ªä¸€ä¸ªåˆ†æ”¯ã€‚"
-#: builtin/pull.c:452 builtin/pull.c:467
+#: builtin/pull.c:459 builtin/pull.c:474
msgid "See git-pull(1) for details."
msgstr "è¯¦è§ git-pull(1)。"
-#: builtin/pull.c:462
+#: builtin/pull.c:469
msgid "There is no tracking information for the current branch."
msgstr "当å‰åˆ†æ”¯æ²¡æœ‰è·Ÿè¸ªä¿¡æ¯ã€‚"
-#: builtin/pull.c:471
+#: builtin/pull.c:478
#, c-format
msgid ""
"If you wish to set tracking information for this branch you can do so with:\n"
@@ -8763,7 +9026,7 @@ msgstr ""
"\n"
" git branch --set-upstream-to=%s/<branch> %s\n"
-#: builtin/pull.c:476
+#: builtin/pull.c:483
#, c-format
msgid ""
"Your configuration specifies to merge with the ref '%s'\n"
@@ -8772,11 +9035,11 @@ msgstr ""
"您的é…置中指定è¦åˆå¹¶è¿œç¨‹çš„引用 '%s',\n"
"但是没有获å–到这个引用。"
-#: builtin/pull.c:830
+#: builtin/pull.c:841
msgid "Updating an unborn branch with changes added to the index."
msgstr "更新尚未诞生的分支,å˜æ›´æ·»åŠ è‡³ç´¢å¼•ã€‚"
-#: builtin/pull.c:859
+#: builtin/pull.c:870
#, c-format
msgid ""
"fetch updated the current branch head.\n"
@@ -8786,7 +9049,7 @@ msgstr ""
"fetch 更新了当å‰çš„分支。快进您的工作区\n"
"至æ交 %s。"
-#: builtin/pull.c:864
+#: builtin/pull.c:875
#, c-format
msgid ""
"Cannot fast-forward your working tree.\n"
@@ -8803,11 +9066,11 @@ msgstr ""
"$ git reset --hard\n"
"æ¢å¤ä¹‹å‰çš„状æ€ã€‚"
-#: builtin/pull.c:879
+#: builtin/pull.c:890
msgid "Cannot merge multiple branches into empty head."
msgstr "无法将多个分支åˆå¹¶åˆ°ç©ºåˆ†æ”¯ã€‚"
-#: builtin/pull.c:883
+#: builtin/pull.c:894
msgid "Cannot rebase onto multiple branches."
msgstr "无法å˜åŸºåˆ°å¤šä¸ªåˆ†æ”¯ã€‚"
@@ -8815,15 +9078,15 @@ msgstr "无法å˜åŸºåˆ°å¤šä¸ªåˆ†æ”¯ã€‚"
msgid "git push [<options>] [<repository> [<refspec>...]]"
msgstr "git push [<选项>] [<仓库> [<引用规格>...]]"
-#: builtin/push.c:88
+#: builtin/push.c:89
msgid "tag shorthand without <tag>"
msgstr "标签åŽé¢æœªæä¾› <标签> å‚æ•°"
-#: builtin/push.c:98
+#: builtin/push.c:99
msgid "--delete only accepts plain target ref names"
msgstr "--delete åªæŽ¥å—简å•çš„目标引用å"
-#: builtin/push.c:142
+#: builtin/push.c:143
msgid ""
"\n"
"To choose either option permanently, see push.default in 'git help config'."
@@ -8831,7 +9094,7 @@ msgstr ""
"\n"
"为了永久地选择任一选项,å‚è§ 'git help config' 中的 push.default。"
-#: builtin/push.c:145
+#: builtin/push.c:146
#, c-format
msgid ""
"The upstream branch of your current branch does not match\n"
@@ -8855,7 +9118,7 @@ msgstr ""
" git push %s %s\n"
"%s"
-#: builtin/push.c:160
+#: builtin/push.c:161
#, c-format
msgid ""
"You are not currently on a branch.\n"
@@ -8869,7 +9132,7 @@ msgstr ""
"\n"
" git push %s HEAD:<远程分支åå­—>\n"
-#: builtin/push.c:174
+#: builtin/push.c:175
#, c-format
msgid ""
"The current branch %s has no upstream branch.\n"
@@ -8882,12 +9145,12 @@ msgstr ""
"\n"
" git push --set-upstream %s %s\n"
-#: builtin/push.c:182
+#: builtin/push.c:183
#, c-format
msgid "The current branch %s has multiple upstream branches, refusing to push."
msgstr "当å‰åˆ†æ”¯ %s 有多个上游分支,拒ç»æŽ¨é€ã€‚"
-#: builtin/push.c:185
+#: builtin/push.c:186
#, c-format
msgid ""
"You are pushing to remote '%s', which is not the upstream of\n"
@@ -8897,56 +9160,12 @@ msgstr ""
"您正推é€è‡³è¿œç¨‹ '%s'(其并éžå½“å‰åˆ†æ”¯ '%s' 的上游),\n"
"而没有告诉我è¦æŽ¨é€ä»€ä¹ˆã€æ›´æ–°å“ªä¸ªè¿œç¨‹åˆ†æ”¯ã€‚"
-# 译者:字符串首行行首è¦æ·»åŠ â€œwarning: â€å­—串,故此首行è¦è¾ƒå…¶ä½™è¡ŒçŸ­
-#: builtin/push.c:208
-msgid ""
-"push.default is unset; its implicit value has changed in\n"
-"Git 2.0 from 'matching' to 'simple'. To squelch this message\n"
-"and maintain the traditional behavior, use:\n"
-"\n"
-" git config --global push.default matching\n"
-"\n"
-"To squelch this message and adopt the new behavior now, use:\n"
-"\n"
-" git config --global push.default simple\n"
-"\n"
-"When push.default is set to 'matching', git will push local branches\n"
-"to the remote branches that already exist with the same name.\n"
-"\n"
-"Since Git 2.0, Git defaults to the more conservative 'simple'\n"
-"behavior, which only pushes the current branch to the corresponding\n"
-"remote branch that 'git pull' uses to update the current branch.\n"
-"\n"
-"See 'git help config' and search for 'push.default' for further "
-"information.\n"
-"(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode\n"
-"'current' instead of 'simple' if you sometimes use older versions of Git)"
-msgstr ""
-"push.default 尚未设置,它的默认值在 Git 2.0 已从 'matching'\n"
-"å˜æ›´ä¸º 'simple'。若è¦ä¸å†æ˜¾ç¤ºæœ¬ä¿¡æ¯å¹¶ä¿æŒä¼ ç»Ÿä¹ æƒ¯ï¼Œè¿›è¡Œå¦‚下设置:\n"
-"\n"
-" git config --global push.default matching\n"
-"\n"
-"è‹¥è¦ä¸å†æ˜¾ç¤ºæœ¬ä¿¡æ¯å¹¶ä»ŽçŽ°åœ¨å¼€å§‹é‡‡ç”¨æ–°çš„使用习惯,设置:\n"
-"\n"
-" git config --global push.default simple\n"
-"\n"
-"当 push.default 设置为 'matching' åŽï¼Œgit 将推é€å’Œè¿œç¨‹åŒå的所有\n"
-"本地分支。\n"
-"\n"
-"从 Git 2.0 开始,Git 默认采用更为ä¿å®ˆçš„ 'simple' 模å¼ï¼ŒåªæŽ¨é€å½“å‰\n"
-"分支到远程关è”çš„åŒååˆ†æ”¯ï¼Œå³ 'git push' 推é€å½“å‰åˆ†æ”¯ã€‚\n"
-"\n"
-"å‚è§ 'git help config' 并查找 'push.default' 以获å–更多信æ¯ã€‚\n"
-"('simple' 模å¼ç”± Git 1.7.11 版本引入。如果您有时è¦ä½¿ç”¨è€ç‰ˆæœ¬çš„ Git,\n"
-"为ä¿æŒå…¼å®¹ï¼Œè¯·ç”¨ 'current' 代替 'simple')"
-
-#: builtin/push.c:275
+#: builtin/push.c:242
msgid ""
"You didn't specify any refspecs to push, and push.default is \"nothing\"."
msgstr "您没有为推é€æŒ‡å®šä»»ä½•å¼•ç”¨è§„格,并且 push.default 为 \"nothing\"。"
-#: builtin/push.c:282
+#: builtin/push.c:249
msgid ""
"Updates were rejected because the tip of your current branch is behind\n"
"its remote counterpart. Integrate the remote changes (e.g.\n"
@@ -8957,7 +9176,7 @@ msgstr ""
"å†æ¬¡æŽ¨é€å‰ï¼Œå…ˆä¸Žè¿œç¨‹å˜æ›´åˆå¹¶ï¼ˆå¦‚ 'git pull ...')。详è§\n"
"'git push --help' 中的 'Note about fast-forwards' å°èŠ‚。"
-#: builtin/push.c:288
+#: builtin/push.c:255
msgid ""
"Updates were rejected because a pushed branch tip is behind its remote\n"
"counterpart. Check out this branch and integrate the remote changes\n"
@@ -8968,7 +9187,7 @@ msgstr ""
"检出该分支并整åˆè¿œç¨‹å˜æ›´ï¼ˆå¦‚ 'git pull ...'),然åŽå†æŽ¨é€ã€‚详è§\n"
"'git push --help' 中的 'Note about fast-forwards' å°èŠ‚。"
-#: builtin/push.c:294
+#: builtin/push.c:261
msgid ""
"Updates were rejected because the remote contains work that you do\n"
"not have locally. This is usually caused by another repository pushing\n"
@@ -8981,11 +9200,11 @@ msgstr ""
"(如 'git pull ...')。\n"
"è¯¦è§ 'git push --help' 中的 'Note about fast-forwards' å°èŠ‚。"
-#: builtin/push.c:301
+#: builtin/push.c:268
msgid "Updates were rejected because the tag already exists in the remote."
msgstr "更新被拒ç»ï¼Œå› ä¸ºè¯¥æ ‡ç­¾åœ¨è¿œç¨‹å·²ç»å­˜åœ¨ã€‚"
-#: builtin/push.c:304
+#: builtin/push.c:271
msgid ""
"You cannot update a remote ref that points at a non-commit object,\n"
"or update a remote ref to make it point at a non-commit object,\n"
@@ -8994,22 +9213,22 @@ msgstr ""
"如果ä¸ä½¿ç”¨ '--force' å‚数,您ä¸èƒ½æ›´æ–°ä¸€ä¸ªæŒ‡å‘éžæ交对象的远程引用,\n"
"也ä¸èƒ½æ›´æ–°è¿œç¨‹å¼•ç”¨è®©å…¶æŒ‡å‘一个éžæ交对象。\n"
-#: builtin/push.c:363
+#: builtin/push.c:331
#, c-format
msgid "Pushing to %s\n"
msgstr "推é€åˆ° %s\n"
-#: builtin/push.c:367
+#: builtin/push.c:335
#, c-format
msgid "failed to push some refs to '%s'"
msgstr "无法推é€ä¸€äº›å¼•ç”¨åˆ° '%s'"
-#: builtin/push.c:397
+#: builtin/push.c:365
#, c-format
msgid "bad repository '%s'"
msgstr "å的仓库 '%s'"
-#: builtin/push.c:398
+#: builtin/push.c:366
msgid ""
"No configured push destination.\n"
"Either specify the URL from the command-line or configure a remote "
@@ -9030,105 +9249,100 @@ msgstr ""
"\n"
" git push <å称>\n"
-#: builtin/push.c:413
+#: builtin/push.c:381
msgid "--all and --tags are incompatible"
msgstr "--all å’Œ --tags ä¸å…¼å®¹"
-#: builtin/push.c:414
+#: builtin/push.c:382
msgid "--all can't be combined with refspecs"
msgstr "--all ä¸èƒ½å’Œå¼•ç”¨è§„æ ¼åŒæ—¶ä½¿ç”¨"
-#: builtin/push.c:419
+#: builtin/push.c:387
msgid "--mirror and --tags are incompatible"
msgstr "--mirror å’Œ --tags ä¸å…¼å®¹"
-#: builtin/push.c:420
+#: builtin/push.c:388
msgid "--mirror can't be combined with refspecs"
msgstr "--mirror ä¸èƒ½å’Œå¼•ç”¨è§„æ ¼åŒæ—¶ä½¿ç”¨"
-#: builtin/push.c:425
+#: builtin/push.c:393
msgid "--all and --mirror are incompatible"
msgstr "--all å’Œ --mirror ä¸å…¼å®¹"
-#: builtin/push.c:537
+#: builtin/push.c:505
msgid "repository"
msgstr "仓库"
-#: builtin/push.c:538 builtin/send-pack.c:161
+#: builtin/push.c:506 builtin/send-pack.c:161
msgid "push all refs"
msgstr "推é€æ‰€æœ‰å¼•ç”¨"
-#: builtin/push.c:539 builtin/send-pack.c:163
+#: builtin/push.c:507 builtin/send-pack.c:163
msgid "mirror all refs"
msgstr "é•œåƒæ‰€æœ‰å¼•ç”¨"
-#: builtin/push.c:541
+#: builtin/push.c:509
msgid "delete refs"
msgstr "删除引用"
-#: builtin/push.c:542
+#: builtin/push.c:510
msgid "push tags (can't be used with --all or --mirror)"
msgstr "推é€æ ‡ç­¾ï¼ˆä¸èƒ½ä½¿ç”¨ --all or --mirror)"
-#: builtin/push.c:545 builtin/send-pack.c:164
+#: builtin/push.c:513 builtin/send-pack.c:164
msgid "force updates"
msgstr "强制更新"
-#: builtin/push.c:547 builtin/send-pack.c:175
+#: builtin/push.c:515 builtin/send-pack.c:175
msgid "refname>:<expect"
msgstr "引用å>:<期望值"
-#: builtin/push.c:548 builtin/send-pack.c:176
+#: builtin/push.c:516 builtin/send-pack.c:176
msgid "require old value of ref to be at this value"
msgstr "è¦æ±‚引用旧的å–值为设定值"
-# 译者:å¯é€‰å€¼ï¼Œä¸èƒ½ç¿»è¯‘
-#: builtin/push.c:550
-msgid "check|on-demand|no"
-msgstr "check|on-demand|no"
-
-#: builtin/push.c:551
+#: builtin/push.c:519
msgid "control recursive pushing of submodules"
msgstr "控制å­æ¨¡ç»„的递归推é€"
-#: builtin/push.c:553 builtin/send-pack.c:169
+#: builtin/push.c:521 builtin/send-pack.c:169
msgid "use thin pack"
msgstr "使用精简打包"
-#: builtin/push.c:554 builtin/push.c:555 builtin/send-pack.c:158
+#: builtin/push.c:522 builtin/push.c:523 builtin/send-pack.c:158
#: builtin/send-pack.c:159
msgid "receive pack program"
msgstr "接收包程åº"
-#: builtin/push.c:556
+#: builtin/push.c:524
msgid "set upstream for git pull/status"
msgstr "设置 git pull/status 的上游"
-#: builtin/push.c:559
+#: builtin/push.c:527
msgid "prune locally removed refs"
msgstr "清除本地删除的引用"
-#: builtin/push.c:561
+#: builtin/push.c:529
msgid "bypass pre-push hook"
msgstr "绕过 pre-push é’©å­"
-#: builtin/push.c:562
+#: builtin/push.c:530
msgid "push missing but relevant tags"
msgstr "推é€ç¼ºå¤±ä½†æœ‰å…³çš„标签"
-#: builtin/push.c:565 builtin/send-pack.c:166
+#: builtin/push.c:533 builtin/send-pack.c:166
msgid "GPG sign the push"
msgstr "用 GPG 为推é€ç­¾å"
-#: builtin/push.c:567 builtin/send-pack.c:170
+#: builtin/push.c:535 builtin/send-pack.c:170
msgid "request atomic transaction on remote side"
msgstr "需è¦è¿œç«¯æ”¯æŒåŽŸå­äº‹åŠ¡"
-#: builtin/push.c:577
+#: builtin/push.c:549
msgid "--delete is incompatible with --all, --mirror and --tags"
msgstr "--delete 与 --allã€--mirror åŠ --tags ä¸å…¼å®¹"
-#: builtin/push.c:579
+#: builtin/push.c:551
msgid "--delete doesn't make sense without any refs"
msgstr "--delete 未接任何引用没有æ„义"
@@ -9206,12 +9420,12 @@ msgstr "跳过应用稀ç–检出过滤器"
msgid "debug unpack-trees"
msgstr "调试 unpack-trees"
-#: builtin/reflog.c:428
+#: builtin/reflog.c:423
#, c-format
msgid "'%s' for '%s' is not a valid timestamp"
msgstr "'%2$s' 的值 '%1$s' ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„时间戳"
-#: builtin/reflog.c:545 builtin/reflog.c:550
+#: builtin/reflog.c:540 builtin/reflog.c:545
#, c-format
msgid "'%s' is not a valid timestamp"
msgstr "'%s' ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„时间戳"
@@ -9351,55 +9565,45 @@ msgstr "指定一个 master 分支并使用 --mirror 选项没有æ„义"
msgid "specifying branches to track makes sense only with fetch mirrors"
msgstr "指定è¦è·Ÿè¸ªçš„分支åªåœ¨ä¸ŽèŽ·å–é•œåƒåŒæ—¶ä½¿ç”¨æ‰æœ‰æ„义"
-#: builtin/remote.c:193 builtin/remote.c:643
+#: builtin/remote.c:190 builtin/remote.c:633
#, c-format
msgid "remote %s already exists."
msgstr "远程 %s å·²ç»å­˜åœ¨ã€‚"
-#: builtin/remote.c:197 builtin/remote.c:647
+#: builtin/remote.c:194 builtin/remote.c:637
#, c-format
msgid "'%s' is not a valid remote name"
msgstr "'%s' ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„远程å称"
-#: builtin/remote.c:241
+#: builtin/remote.c:234
#, c-format
msgid "Could not setup master '%s'"
msgstr "无法设置 master '%s'"
-#: builtin/remote.c:341
+#: builtin/remote.c:336
#, c-format
msgid "Could not get fetch map for refspec %s"
msgstr "无法得到引用规格 %s 的获å–列表"
-#: builtin/remote.c:442 builtin/remote.c:450
+#: builtin/remote.c:437 builtin/remote.c:445
msgid "(matching)"
msgstr "(匹é…)"
-#: builtin/remote.c:454
+#: builtin/remote.c:449
msgid "(delete)"
msgstr "(删除)"
-#: builtin/remote.c:594 builtin/remote.c:600 builtin/remote.c:606
-#, c-format
-msgid "Could not append '%s' to '%s'"
-msgstr "ä¸èƒ½æ·»åŠ  '%s' 至 '%s'"
-
-#: builtin/remote.c:636 builtin/remote.c:775 builtin/remote.c:875
+#: builtin/remote.c:626 builtin/remote.c:761 builtin/remote.c:858
#, c-format
msgid "No such remote: %s"
msgstr "没有这样的远程:%s"
-#: builtin/remote.c:653
+#: builtin/remote.c:643
#, c-format
msgid "Could not rename config section '%s' to '%s'"
msgstr "ä¸èƒ½é‡å‘½åé…ç½®å°èŠ‚ '%s' 到 '%s'"
-#: builtin/remote.c:659 builtin/remote.c:827
-#, c-format
-msgid "Could not remove config section '%s'"
-msgstr "ä¸èƒ½ç§»é™¤é…ç½®å°èŠ‚ '%s'"
-
-#: builtin/remote.c:674
+#: builtin/remote.c:663
#, c-format
msgid ""
"Not updating non-default fetch refspec\n"
@@ -9410,27 +9614,17 @@ msgstr ""
"\t%s\n"
"\t如果必è¦è¯·æ‰‹åŠ¨æ›´æ–°é…置。"
-#: builtin/remote.c:680
-#, c-format
-msgid "Could not append '%s'"
-msgstr "ä¸èƒ½è¿½åŠ  '%s'"
-
-#: builtin/remote.c:691
-#, c-format
-msgid "Could not set '%s'"
-msgstr "ä¸èƒ½è®¾ç½® '%s'"
-
-#: builtin/remote.c:713
+#: builtin/remote.c:699
#, c-format
msgid "deleting '%s' failed"
msgstr "删除 '%s' 失败"
-#: builtin/remote.c:747
+#: builtin/remote.c:733
#, c-format
msgid "creating '%s' failed"
msgstr "创建 '%s' 失败"
-#: builtin/remote.c:813
+#: builtin/remote.c:796
msgid ""
"Note: A branch outside the refs/remotes/ hierarchy was not removed;\n"
"to delete it, use:"
@@ -9440,126 +9634,131 @@ msgid_plural ""
msgstr[0] "注æ„:ref/remotes 层级之外的一个分支未被移除。è¦åˆ é™¤å®ƒï¼Œä½¿ç”¨ï¼š"
msgstr[1] "注æ„:ref/remotes 层级之外的一些分支未被移除。è¦åˆ é™¤å®ƒä»¬ï¼Œä½¿ç”¨ï¼š"
-#: builtin/remote.c:928
+#: builtin/remote.c:810
+#, c-format
+msgid "Could not remove config section '%s'"
+msgstr "ä¸èƒ½ç§»é™¤é…ç½®å°èŠ‚ '%s'"
+
+#: builtin/remote.c:911
#, c-format
msgid " new (next fetch will store in remotes/%s)"
msgstr " 新的(下一次获å–将存储于 remotes/%s)"
-#: builtin/remote.c:931
+#: builtin/remote.c:914
msgid " tracked"
msgstr " 已跟踪"
-#: builtin/remote.c:933
+#: builtin/remote.c:916
msgid " stale (use 'git remote prune' to remove)"
msgstr " 过时(使用 'git remote prune' æ¥ç§»é™¤ï¼‰"
-#: builtin/remote.c:935
+#: builtin/remote.c:918
msgid " ???"
msgstr " ???"
-#: builtin/remote.c:976
+#: builtin/remote.c:959
#, c-format
msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch"
msgstr "无效的 branch.%s.merge,ä¸èƒ½å˜åŸºåˆ°ä¸€ä¸ªä»¥ä¸Šçš„分支"
-#: builtin/remote.c:983
+#: builtin/remote.c:967
#, c-format
-msgid "rebases onto remote %s"
-msgstr "å˜åŸºåˆ°è¿œç¨‹ %s"
+msgid "rebases interactively onto remote %s"
+msgstr "交互å¼å˜åŸºåˆ°è¿œç¨‹ %s"
-#: builtin/remote.c:986
+#: builtin/remote.c:971
#, c-format
msgid " merges with remote %s"
msgstr " 与远程 %s åˆå¹¶"
-#: builtin/remote.c:987
+#: builtin/remote.c:972
msgid " and with remote"
msgstr " 且有远程"
-#: builtin/remote.c:989
+#: builtin/remote.c:974
#, c-format
msgid "merges with remote %s"
msgstr "与远程 %s åˆå¹¶"
-#: builtin/remote.c:990
+#: builtin/remote.c:975
msgid " and with remote"
msgstr " 且有远程"
-#: builtin/remote.c:1036
+#: builtin/remote.c:1021
msgid "create"
msgstr "创建"
-#: builtin/remote.c:1039
+#: builtin/remote.c:1024
msgid "delete"
msgstr "删除"
-#: builtin/remote.c:1043
+#: builtin/remote.c:1028
msgid "up to date"
msgstr "最新"
-#: builtin/remote.c:1046
+#: builtin/remote.c:1031
msgid "fast-forwardable"
msgstr "å¯å¿«è¿›"
-#: builtin/remote.c:1049
+#: builtin/remote.c:1034
msgid "local out of date"
msgstr "本地已过时"
-#: builtin/remote.c:1056
+#: builtin/remote.c:1041
#, c-format
msgid " %-*s forces to %-*s (%s)"
msgstr " %-*s 强制推é€è‡³ %-*s (%s)"
-#: builtin/remote.c:1059
+#: builtin/remote.c:1044
#, c-format
msgid " %-*s pushes to %-*s (%s)"
msgstr " %-*s 推é€è‡³ %-*s (%s)"
-#: builtin/remote.c:1063
+#: builtin/remote.c:1048
#, c-format
msgid " %-*s forces to %s"
msgstr " %-*s 强制推é€è‡³ %s"
-#: builtin/remote.c:1066
+#: builtin/remote.c:1051
#, c-format
msgid " %-*s pushes to %s"
msgstr " %-*s 推é€è‡³ %s"
-#: builtin/remote.c:1134
+#: builtin/remote.c:1119
msgid "do not query remotes"
msgstr "ä¸æŸ¥è¯¢è¿œç¨‹"
-#: builtin/remote.c:1161
+#: builtin/remote.c:1146
#, c-format
msgid "* remote %s"
msgstr "* 远程 %s"
-#: builtin/remote.c:1162
+#: builtin/remote.c:1147
#, c-format
msgid " Fetch URL: %s"
msgstr " 获å–地å€ï¼š%s"
-#: builtin/remote.c:1163 builtin/remote.c:1314
+#: builtin/remote.c:1148 builtin/remote.c:1299
msgid "(no URL)"
msgstr "(æ—  URL)"
-#: builtin/remote.c:1172 builtin/remote.c:1174
+#: builtin/remote.c:1157 builtin/remote.c:1159
#, c-format
msgid " Push URL: %s"
msgstr " 推é€åœ°å€ï¼š%s"
-#: builtin/remote.c:1176 builtin/remote.c:1178 builtin/remote.c:1180
+#: builtin/remote.c:1161 builtin/remote.c:1163 builtin/remote.c:1165
#, c-format
msgid " HEAD branch: %s"
msgstr " HEAD 分支:%s"
-#: builtin/remote.c:1182
+#: builtin/remote.c:1167
#, c-format
msgid ""
" HEAD branch (remote HEAD is ambiguous, may be one of the following):\n"
msgstr " HEAD 分支(远程 HEAD 模糊,å¯èƒ½æ˜¯ä¸‹åˆ—中的一个):\n"
-#: builtin/remote.c:1194
+#: builtin/remote.c:1179
#, c-format
msgid " Remote branch:%s"
msgid_plural " Remote branches:%s"
@@ -9567,151 +9766,151 @@ msgstr[0] " 远程分支:%s"
msgstr[1] " 远程分支:%s"
# 译者:中文字符串拼接,å¯åˆ é™¤å‰å¯¼ç©ºæ ¼
-#: builtin/remote.c:1197 builtin/remote.c:1224
+#: builtin/remote.c:1182 builtin/remote.c:1209
msgid " (status not queried)"
msgstr "(状æ€æœªæŸ¥è¯¢ï¼‰"
-#: builtin/remote.c:1206
+#: builtin/remote.c:1191
msgid " Local branch configured for 'git pull':"
msgid_plural " Local branches configured for 'git pull':"
msgstr[0] " 为 'git pull' é…置的本地分支:"
msgstr[1] " 为 'git pull' é…置的本地分支:"
-#: builtin/remote.c:1214
+#: builtin/remote.c:1199
msgid " Local refs will be mirrored by 'git push'"
msgstr " 本地引用将在 'git push' 时被镜åƒ"
-#: builtin/remote.c:1221
+#: builtin/remote.c:1206
#, c-format
msgid " Local ref configured for 'git push'%s:"
msgid_plural " Local refs configured for 'git push'%s:"
msgstr[0] " 为 'git push' é…置的本地引用%s:"
msgstr[1] " 为 'git push' é…置的本地引用%s:"
-#: builtin/remote.c:1242
+#: builtin/remote.c:1227
msgid "set refs/remotes/<name>/HEAD according to remote"
msgstr "æ ¹æ®è¿œç¨‹è®¾ç½® refs/remotes/<å称>/HEAD"
-#: builtin/remote.c:1244
+#: builtin/remote.c:1229
msgid "delete refs/remotes/<name>/HEAD"
msgstr "删除 refs/remotes/<å称>/HEAD"
-#: builtin/remote.c:1259
+#: builtin/remote.c:1244
msgid "Cannot determine remote HEAD"
msgstr "无法确定远程 HEAD"
-#: builtin/remote.c:1261
+#: builtin/remote.c:1246
msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
msgstr "多个远程 HEAD 分支。请明确地选择一个用命令:"
-#: builtin/remote.c:1271
+#: builtin/remote.c:1256
#, c-format
msgid "Could not delete %s"
msgstr "无法删除 %s"
-#: builtin/remote.c:1279
+#: builtin/remote.c:1264
#, c-format
msgid "Not a valid ref: %s"
msgstr "ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆå¼•ç”¨ï¼š%s"
-#: builtin/remote.c:1281
+#: builtin/remote.c:1266
#, c-format
msgid "Could not setup %s"
msgstr "ä¸èƒ½è®¾ç½® %s"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: builtin/remote.c:1299
+#: builtin/remote.c:1284
#, c-format
msgid " %s will become dangling!"
msgstr " %s å°†æˆä¸ºæ‘‡æ‘†çŠ¶æ€ï¼"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: builtin/remote.c:1300
+#: builtin/remote.c:1285
#, c-format
msgid " %s has become dangling!"
msgstr " %s å·²æˆä¸ºæ‘‡æ‘†çŠ¶æ€ï¼"
-#: builtin/remote.c:1310
+#: builtin/remote.c:1295
#, c-format
msgid "Pruning %s"
msgstr "修剪 %s"
-#: builtin/remote.c:1311
+#: builtin/remote.c:1296
#, c-format
msgid "URL: %s"
msgstr "URL:%s"
-#: builtin/remote.c:1327
+#: builtin/remote.c:1312
#, c-format
msgid " * [would prune] %s"
msgstr " * [将删除] %s"
-#: builtin/remote.c:1330
+#: builtin/remote.c:1315
#, c-format
msgid " * [pruned] %s"
msgstr " * [已删除] %s"
-#: builtin/remote.c:1375
+#: builtin/remote.c:1360
msgid "prune remotes after fetching"
msgstr "抓å–åŽæ¸…除远程"
-#: builtin/remote.c:1441 builtin/remote.c:1498 builtin/remote.c:1566
+#: builtin/remote.c:1423 builtin/remote.c:1477 builtin/remote.c:1545
#, c-format
msgid "No such remote '%s'"
msgstr "没有此远程 '%s'"
-#: builtin/remote.c:1461
+#: builtin/remote.c:1439
msgid "add branch"
msgstr "添加分支"
-#: builtin/remote.c:1468
+#: builtin/remote.c:1446
msgid "no remote specified"
msgstr "未指定远程"
-#: builtin/remote.c:1485
+#: builtin/remote.c:1463
msgid "query push URLs rather than fetch URLs"
msgstr "æŸ¥è¯¢æŽ¨é€ URL 地å€ï¼Œè€ŒéžèŽ·å– URL 地å€"
-#: builtin/remote.c:1487
+#: builtin/remote.c:1465
msgid "return all URLs"
msgstr "返回所有 URL 地å€"
-#: builtin/remote.c:1515
+#: builtin/remote.c:1493
#, c-format
msgid "no URLs configured for remote '%s'"
msgstr "没有给远程仓库 '%s' 设定 URL"
-#: builtin/remote.c:1541
+#: builtin/remote.c:1519
msgid "manipulate push URLs"
msgstr "æ“ä½œæŽ¨é€ URLS"
-#: builtin/remote.c:1543
+#: builtin/remote.c:1521
msgid "add URL"
msgstr "添加 URL"
-#: builtin/remote.c:1545
+#: builtin/remote.c:1523
msgid "delete URLs"
msgstr "删除 URLS"
-#: builtin/remote.c:1552
+#: builtin/remote.c:1530
msgid "--add --delete doesn't make sense"
msgstr "--add --delete æ— æ„义"
-#: builtin/remote.c:1592
+#: builtin/remote.c:1571
#, c-format
msgid "Invalid old URL pattern: %s"
msgstr "无效的旧 URL 匹é…模版:%s"
-#: builtin/remote.c:1600
+#: builtin/remote.c:1579
#, c-format
msgid "No such URL found: %s"
msgstr "未找到此 URL:%s"
-#: builtin/remote.c:1602
+#: builtin/remote.c:1581
msgid "Will not delete all non-push URLs"
msgstr "å°†ä¸ä¼šåˆ é™¤æ‰€æœ‰éžæŽ¨é€ URL 地å€"
-#: builtin/remote.c:1616
+#: builtin/remote.c:1595
msgid "be verbose; must be placed before a subcommand"
msgstr "冗长输出;必须置于å­å‘½ä»¤ä¹‹å‰"
@@ -10012,7 +10211,7 @@ msgstr "ä¸èƒ½é‡ç½®ç´¢å¼•æ–‡ä»¶è‡³ç‰ˆæœ¬ '%s'。"
msgid "Could not write new index file."
msgstr "ä¸èƒ½å†™å…¥æ–°çš„索引文件。"
-#: builtin/rev-list.c:354
+#: builtin/rev-list.c:350
msgid "rev-list does not support display of notes"
msgstr "rev-list ä¸æ”¯æŒæ˜¾ç¤ºæ³¨è§£"
@@ -10256,28 +10455,23 @@ msgstr "打å°æ¥è‡ªè¿œç¨‹ helper 的状æ€"
msgid "git shortlog [<options>] [<revision-range>] [[--] [<path>...]]"
msgstr "git shortlog [<选项>] [<版本范围>] [[--] [<路径>...]]"
-#: builtin/shortlog.c:131
-#, c-format
-msgid "Missing author: %s"
-msgstr "缺少作者:%s"
-
-#: builtin/shortlog.c:230
+#: builtin/shortlog.c:242
msgid "sort output according to the number of commits per author"
msgstr "æ ¹æ®æ¯ä¸ªä½œè€…çš„æ交数é‡æŽ’åº"
-#: builtin/shortlog.c:232
+#: builtin/shortlog.c:244
msgid "Suppress commit descriptions, only provides commit count"
msgstr "éšè—æ交说明,åªæä¾›æ交数é‡"
-#: builtin/shortlog.c:234
+#: builtin/shortlog.c:246
msgid "Show the email address of each author"
msgstr "显示æ¯ä¸ªä½œè€…的电å­é‚®ä»¶åœ°å€"
-#: builtin/shortlog.c:235
+#: builtin/shortlog.c:247
msgid "w[,i1[,i2]]"
msgstr "w[,i1[,i2]]"
-#: builtin/shortlog.c:236
+#: builtin/shortlog.c:248
msgid "Linewrap output"
msgstr "折行输出"
@@ -10418,43 +10612,43 @@ msgid "skip and remove all lines starting with comment character"
msgstr "跳过和移除所有的注释行"
#: builtin/stripspace.c:38
-msgid "prepend comment character and blank to each line"
+msgid "prepend comment character and space to each line"
msgstr "为æ¯ä¸€è¡Œçš„行首添加注释符和空格"
-#: builtin/submodule--helper.c:79 builtin/submodule--helper.c:167
+#: builtin/submodule--helper.c:73 builtin/submodule--helper.c:161
msgid "alternative anchor for relative paths"
msgstr "相对路径的替代锚记(anchor)"
-#: builtin/submodule--helper.c:84
+#: builtin/submodule--helper.c:78
msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
msgstr "git submodule--helper list [--prefix=<路径>] [<路径>...]"
-#: builtin/submodule--helper.c:114
+#: builtin/submodule--helper.c:108
msgid "git submodule--helper name <path>"
msgstr "git submodule--helper name <路径>"
-#: builtin/submodule--helper.c:120
+#: builtin/submodule--helper.c:114
#, c-format
msgid "no submodule mapping found in .gitmodules for path '%s'"
msgstr "在 .gitmodules 中没有å‘现路径 '%s' çš„å­æ¨¡ç»„映射"
-#: builtin/submodule--helper.c:170
+#: builtin/submodule--helper.c:164
msgid "where the new submodule will be cloned to"
msgstr "æ–°çš„å­æ¨¡ç»„å°†è¦å…‹éš†çš„路径"
-#: builtin/submodule--helper.c:173
+#: builtin/submodule--helper.c:167
msgid "name of the new submodule"
msgstr "æ–°å­æ¨¡ç»„çš„å称"
-#: builtin/submodule--helper.c:176
+#: builtin/submodule--helper.c:170
msgid "url where to clone the submodule from"
msgstr "克隆å­æ¨¡ç»„çš„ url 地å€"
-#: builtin/submodule--helper.c:182
+#: builtin/submodule--helper.c:176
msgid "depth for shallow clones"
msgstr "浅克隆的深度"
-#: builtin/submodule--helper.c:188
+#: builtin/submodule--helper.c:182
msgid ""
"git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
"<repository>] [--name <name>] [--url <url>][--depth <depth>] [--] [<path>...]"
@@ -10462,37 +10656,37 @@ msgstr ""
"git submodule--helper clone [--prefix=<路径>] [--quiet] [--reference <仓库>] "
"[--name <åå­—>] [--url <地å€>][--depth <深度>] [--] [<路径>...]"
-#: builtin/submodule--helper.c:202 builtin/submodule--helper.c:208
-#: builtin/submodule--helper.c:216
+#: builtin/submodule--helper.c:196 builtin/submodule--helper.c:202
+#: builtin/submodule--helper.c:210
#, c-format
msgid "could not create directory '%s'"
msgstr "ä¸èƒ½åˆ›å»ºç›®å½• '%s'"
-#: builtin/submodule--helper.c:204
+#: builtin/submodule--helper.c:198
#, c-format
msgid "clone of '%s' into submodule path '%s' failed"
msgstr "无法克隆 '%s' 到å­æ¨¡ç»„路径 '%s'"
-#: builtin/submodule--helper.c:227
+#: builtin/submodule--helper.c:221
#, c-format
msgid "cannot open file '%s'"
msgstr "无法打开文件 '%s'"
-#: builtin/submodule--helper.c:232
+#: builtin/submodule--helper.c:226
#, c-format
msgid "could not close file %s"
msgstr "无法关闭文件 %s"
-#: builtin/submodule--helper.c:247
+#: builtin/submodule--helper.c:241
#, c-format
msgid "could not get submodule directory for '%s'"
msgstr "无法得到 '%s' çš„å­æ¨¡ç»„目录"
-#: builtin/submodule--helper.c:273
+#: builtin/submodule--helper.c:267
msgid "fatal: submodule--helper subcommand must be called with a subcommand"
msgstr "严é‡é”™è¯¯ï¼šsubmodule-helper å­å‘½ä»¤å¿…须由å¦å¤–çš„å­å‘½ä»¤è°ƒç”¨"
-#: builtin/submodule--helper.c:280
+#: builtin/submodule--helper.c:274
#, c-format
msgid "fatal: '%s' is not a valid submodule--helper subcommand"
msgstr "严é‡é”™è¯¯ï¼š'%s' ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„ submodule--helper å­å‘½ä»¤"
@@ -10735,188 +10929,201 @@ msgstr "已更新标签 '%s'(曾为 %s)\n"
msgid "Unpacking objects"
msgstr "展开对象中"
-#: builtin/update-index.c:70
+#: builtin/update-index.c:79
#, c-format
msgid "failed to create directory %s"
msgstr "无法创建目录 %s"
-#: builtin/update-index.c:76
+#: builtin/update-index.c:85
#, c-format
msgid "failed to stat %s"
msgstr "无法枚举 %s 状æ€"
-#: builtin/update-index.c:86
+#: builtin/update-index.c:95
#, c-format
msgid "failed to create file %s"
msgstr "无法创建文件 %s"
-#: builtin/update-index.c:94
+#: builtin/update-index.c:103
#, c-format
msgid "failed to delete file %s"
msgstr "无法删除文件 %s"
-#: builtin/update-index.c:101 builtin/update-index.c:203
+#: builtin/update-index.c:110 builtin/update-index.c:212
#, c-format
msgid "failed to delete directory %s"
msgstr "无法删除目录 %s"
-#: builtin/update-index.c:124
+#: builtin/update-index.c:133
#, c-format
-msgid "Testing "
-msgstr "正在测试 "
+msgid "Testing mtime in '%s' "
+msgstr "在 '%s' 中测试 mtime "
-#: builtin/update-index.c:136
+#: builtin/update-index.c:145
msgid "directory stat info does not change after adding a new file"
msgstr "添加一个新文件åŽï¼Œç›®å½•çš„状æ€ä¿¡æ¯æœªæ”¹å˜"
-#: builtin/update-index.c:149
+#: builtin/update-index.c:158
msgid "directory stat info does not change after adding a new directory"
msgstr "添加一个新目录åŽï¼Œç›®å½•çš„状æ€ä¿¡æ¯æœªæ”¹å˜"
-#: builtin/update-index.c:162
+#: builtin/update-index.c:171
msgid "directory stat info changes after updating a file"
msgstr "更新一个文件åŽï¼Œç›®å½•çš„状æ€ä¿¡æ¯è¢«ä¿®æ”¹"
-#: builtin/update-index.c:173
+#: builtin/update-index.c:182
msgid "directory stat info changes after adding a file inside subdirectory"
msgstr "在å­ç›®å½•ä¸­æ·»åŠ æ–‡ä»¶åŽï¼Œç›®å½•çš„状æ€ä¿¡æ¯è¢«ä¿®æ”¹"
-#: builtin/update-index.c:184
+#: builtin/update-index.c:193
msgid "directory stat info does not change after deleting a file"
msgstr "删除一个文件åŽï¼Œç›®å½•çš„状æ€ä¿¡æ¯æœªæ”¹å˜"
-#: builtin/update-index.c:197
+#: builtin/update-index.c:206
msgid "directory stat info does not change after deleting a directory"
msgstr "删除一个目录åŽï¼Œç›®å½•çš„状æ€ä¿¡æ¯æœªæ”¹å˜"
-#: builtin/update-index.c:204
+#: builtin/update-index.c:213
msgid " OK"
msgstr " OK"
-#: builtin/update-index.c:564
+#: builtin/update-index.c:575
msgid "git update-index [<options>] [--] [<file>...]"
msgstr "git update-index [<选项>] [--] [<文件>...]"
-#: builtin/update-index.c:918
+#: builtin/update-index.c:930
msgid "continue refresh even when index needs update"
msgstr "当索引需è¦æ›´æ–°æ—¶ç»§ç»­åˆ·æ–°"
-#: builtin/update-index.c:921
+#: builtin/update-index.c:933
msgid "refresh: ignore submodules"
msgstr "刷新:忽略å­æ¨¡ç»„"
-#: builtin/update-index.c:924
+#: builtin/update-index.c:936
msgid "do not ignore new files"
msgstr "ä¸å¿½ç•¥æ–°çš„文件"
-#: builtin/update-index.c:926
+#: builtin/update-index.c:938
msgid "let files replace directories and vice-versa"
msgstr "让文件替æ¢ç›®å½•ï¼ˆå之亦然)"
-#: builtin/update-index.c:928
+#: builtin/update-index.c:940
msgid "notice files missing from worktree"
msgstr "通知文件从工作区丢失"
-#: builtin/update-index.c:930
+#: builtin/update-index.c:942
msgid "refresh even if index contains unmerged entries"
msgstr "å³ä½¿ç´¢å¼•åŒºåŒ…å«æœªåˆå¹¶çš„æ¡ç›®ä¹Ÿæ‰§è¡Œåˆ·æ–°"
-#: builtin/update-index.c:933
+#: builtin/update-index.c:945
msgid "refresh stat information"
msgstr "刷新统计信æ¯"
-#: builtin/update-index.c:937
+#: builtin/update-index.c:949
msgid "like --refresh, but ignore assume-unchanged setting"
msgstr "类似于 --refresh,但是忽略 assume-unchanged 设置"
-#: builtin/update-index.c:941
+#: builtin/update-index.c:953
msgid "<mode>,<object>,<path>"
msgstr "<å­˜å–模å¼>,<对象>,<路径>"
-#: builtin/update-index.c:942
+#: builtin/update-index.c:954
msgid "add the specified entry to the index"
msgstr "添加指定的æ¡ç›®åˆ°ç´¢å¼•åŒº"
-#: builtin/update-index.c:946
+#: builtin/update-index.c:958
msgid "(+/-)x"
msgstr "(+/-)x"
-#: builtin/update-index.c:947
+#: builtin/update-index.c:959
msgid "override the executable bit of the listed files"
msgstr "覆盖列表里文件的å¯æ‰§è¡Œä½"
-#: builtin/update-index.c:951
+#: builtin/update-index.c:963
msgid "mark files as \"not changing\""
msgstr "把文件标记为 \"没有å˜æ›´\""
-#: builtin/update-index.c:954
+#: builtin/update-index.c:966
msgid "clear assumed-unchanged bit"
msgstr "清除 assumed-unchanged ä½"
-#: builtin/update-index.c:957
+#: builtin/update-index.c:969
msgid "mark files as \"index-only\""
msgstr "把文件标记为 \"仅索引\""
-#: builtin/update-index.c:960
+#: builtin/update-index.c:972
msgid "clear skip-worktree bit"
msgstr "清除 skip-worktree ä½"
-#: builtin/update-index.c:963
+#: builtin/update-index.c:975
msgid "add to index only; do not add content to object database"
msgstr "åªæ·»åŠ åˆ°ç´¢å¼•åŒºï¼›ä¸æ·»åŠ å¯¹è±¡åˆ°å¯¹è±¡åº“"
-#: builtin/update-index.c:965
+#: builtin/update-index.c:977
msgid "remove named paths even if present in worktree"
msgstr "å³ä½¿å­˜åœ¨å·¥ä½œåŒºé‡Œï¼Œä¹Ÿåˆ é™¤è·¯å¾„"
-#: builtin/update-index.c:967
+#: builtin/update-index.c:979
msgid "with --stdin: input lines are terminated by null bytes"
msgstr "æºå¸¦ --stdin:输入的行以 null 字符终止"
-#: builtin/update-index.c:969
+#: builtin/update-index.c:981
msgid "read list of paths to be updated from standard input"
msgstr "从标准输入中读å–需è¦æ›´æ–°çš„路径列表"
-#: builtin/update-index.c:973
+#: builtin/update-index.c:985
msgid "add entries from standard input to the index"
msgstr "从标准输入添加æ¡ç›®åˆ°ç´¢å¼•åŒº"
-#: builtin/update-index.c:977
+#: builtin/update-index.c:989
msgid "repopulate stages #2 and #3 for the listed paths"
msgstr "为指定文件é‡æ–°ç”Ÿæˆç¬¬2和第3暂存区"
-#: builtin/update-index.c:981
+#: builtin/update-index.c:993
msgid "only update entries that differ from HEAD"
msgstr "åªæ›´æ–°ä¸Ž HEAD ä¸åŒçš„æ¡ç›®"
-#: builtin/update-index.c:985
+#: builtin/update-index.c:997
msgid "ignore files missing from worktree"
msgstr "忽略工作区丢失的文件"
-#: builtin/update-index.c:988
+#: builtin/update-index.c:1000
msgid "report actions to standard output"
msgstr "在标准输出显示æ“作"
-#: builtin/update-index.c:990
+#: builtin/update-index.c:1002
msgid "(for porcelains) forget saved unresolved conflicts"
msgstr "(for porcelains) 忘记ä¿å­˜çš„未解决的冲çª"
-#: builtin/update-index.c:994
+#: builtin/update-index.c:1006
msgid "write index in this format"
msgstr "以这ç§æ ¼å¼å†™å…¥ç´¢å¼•åŒº"
-#: builtin/update-index.c:996
+#: builtin/update-index.c:1008
msgid "enable or disable split index"
msgstr "å¯ç”¨æˆ–ç¦ç”¨ç´¢å¼•æ‹†åˆ†"
-#: builtin/update-index.c:998
+#: builtin/update-index.c:1010
msgid "enable/disable untracked cache"
msgstr "å¯ç”¨/ç¦ç”¨å¯¹æœªè·Ÿè¸ªæ–‡ä»¶çš„缓存"
-#: builtin/update-index.c:1000
+#: builtin/update-index.c:1012
+msgid "test if the filesystem supports untracked cache"
+msgstr "测试文件系统是å¦æ”¯æŒæœªè·Ÿè¸ªæ–‡ä»¶ç¼“å­˜"
+
+#: builtin/update-index.c:1014
msgid "enable untracked cache without testing the filesystem"
msgstr "无需检测文件系统,å¯ç”¨å¯¹æœªè·Ÿè¸ªæ–‡ä»¶çš„缓存"
+#: builtin/update-index.c:1134
+msgid "Untracked cache disabled"
+msgstr "缓存未跟踪文件被ç¦ç”¨"
+
+#: builtin/update-index.c:1146
+#, c-format
+msgid "Untracked cache enabled for '%s'"
+msgstr "缓存未跟踪文件在 '%s' å¯ç”¨"
+
#: builtin/update-ref.c:9
msgid "git update-ref [<options>] -d <refname> [<old-val>]"
msgstr "git update-ref [<选项>] -d <引用å> [<旧值>]"
@@ -11032,33 +11239,33 @@ msgstr "无法删除:%s"
msgid "'%s' already exists"
msgstr "'%s' å·²ç»å­˜åœ¨"
-#: builtin/worktree.c:235
+#: builtin/worktree.c:233
#, c-format
msgid "could not create directory of '%s'"
msgstr "ä¸èƒ½åˆ›å»ºç›®å½• '%s'"
-#: builtin/worktree.c:271
+#: builtin/worktree.c:269
#, c-format
msgid "Preparing %s (identifier %s)"
msgstr "准备 %s (标识符 %s)"
-#: builtin/worktree.c:319
+#: builtin/worktree.c:317
msgid "checkout <branch> even if already checked out in other worktree"
msgstr "检出分支 <branch> å³ä½¿å·²ç»è¢«æ£€å‡ºåˆ°å…¶å®ƒå·¥ä½œåŒº"
-#: builtin/worktree.c:321
+#: builtin/worktree.c:319
msgid "create a new branch"
msgstr "创建一个新分支"
-#: builtin/worktree.c:323
+#: builtin/worktree.c:321
msgid "create or reset a branch"
msgstr "创建或é‡ç½®ä¸€ä¸ªåˆ†æ”¯"
-#: builtin/worktree.c:324
+#: builtin/worktree.c:322
msgid "detach HEAD at named commit"
msgstr "HEAD 从指定的æ交分离"
-#: builtin/worktree.c:331
+#: builtin/worktree.c:329
msgid "-b, -B, and --detach are mutually exclusive"
msgstr "-bã€-B å’Œ --detach 是互斥的"
@@ -11078,7 +11285,7 @@ msgstr "å°† <å‰ç¼€> å­ç›®å½•å†…容写到一个树对象"
msgid "only useful for debugging"
msgstr "åªå¯¹è°ƒè¯•æœ‰ç”¨"
-#: credential-cache--daemon.c:255
+#: credential-cache--daemon.c:262
msgid "print debugging messages to stderr"
msgstr "调试信æ¯è¾“出到标准错误"
@@ -11092,6 +11299,10 @@ msgstr ""
"查看 'git help <命令>' 或 'git help <概念>' 以获å–给定å­å‘½ä»¤æˆ–概念的\n"
"帮助。"
+#: http.c:321
+msgid "Public key pinning not supported with cURL < 7.44.0"
+msgstr "ä¸æ”¯æŒå…¬é’¥æ–‡ä»¶é”定,因为 cURL < 7.44.0"
+
#: common-cmds.h:9
msgid "start a working area (see also: git help tutorial)"
msgstr "开始一个工作区(å‚è§ï¼šgit help tutorial)"
@@ -11173,8 +11384,8 @@ msgid "Update remote refs along with associated objects"
msgstr "更新远程引用和相关的对象"
#: common-cmds.h:32
-msgid "Forward-port local commits to the updated upstream head"
-msgstr "本地æ交转移至更新åŽçš„上游分支中"
+msgid "Reapply commits on top of another base tip"
+msgstr "在å¦ä¸€ä¸ªåˆ†æ”¯ä¸Šé‡æ–°åº”用æ交"
#: common-cmds.h:33
msgid "Reset current HEAD to the specified state"
@@ -11860,7 +12071,7 @@ msgstr "ä¸èƒ½åˆ›å»ºç©ºçš„å­æ¨¡ç»„目录 '$displaypath'"
msgid "Submodule '$name' ($url) unregistered for path '$displaypath'"
msgstr "å­æ¨¡ç»„ '$name' ($url) 未对路径 '$displaypath' 注册"
-#: git-submodule.sh:705
+#: git-submodule.sh:723
#, sh-format
msgid ""
"Submodule path '$displaypath' not initialized\n"
@@ -11869,108 +12080,179 @@ msgstr ""
"å­æ¨¡ç»„路径 '$displaypath' 没有åˆå§‹åŒ–\n"
"也许您想用 'update --init'?"
-#: git-submodule.sh:718
+#: git-submodule.sh:736
#, sh-format
msgid "Unable to find current revision in submodule path '$displaypath'"
msgstr "无法在å­æ¨¡ç»„路径 '$displaypath' 中找到当å‰ç‰ˆæœ¬"
-#: git-submodule.sh:727
+#: git-submodule.sh:745
#, sh-format
msgid "Unable to fetch in submodule path '$sm_path'"
msgstr "无法在å­æ¨¡ç»„路径 '$sm_path' 中获å–"
-#: git-submodule.sh:751
+#: git-submodule.sh:768
#, sh-format
msgid "Unable to fetch in submodule path '$displaypath'"
msgstr "无法在å­æ¨¡ç»„路径 '$displaypath' 中获å–"
-#: git-submodule.sh:765
+#: git-submodule.sh:788
#, sh-format
msgid "Unable to checkout '$sha1' in submodule path '$displaypath'"
msgstr "无法在å­æ¨¡ç»„路径 '$displaypath' 中检出 '$sha1'"
-#: git-submodule.sh:766
+#: git-submodule.sh:789
#, sh-format
msgid "Submodule path '$displaypath': checked out '$sha1'"
msgstr "å­æ¨¡ç»„路径 '$displaypath':检出 '$sha1'"
-#: git-submodule.sh:770
+#: git-submodule.sh:793
#, sh-format
msgid "Unable to rebase '$sha1' in submodule path '$displaypath'"
msgstr "无法在å­æ¨¡ç»„路径 '$displaypath' 中å˜åŸº '$sha1'"
-#: git-submodule.sh:771
+#: git-submodule.sh:794
#, sh-format
msgid "Submodule path '$displaypath': rebased into '$sha1'"
msgstr "å­æ¨¡ç»„路径 '$displaypath':å˜åŸºè‡³ '$sha1'"
-#: git-submodule.sh:776
+#: git-submodule.sh:799
#, sh-format
msgid "Unable to merge '$sha1' in submodule path '$displaypath'"
msgstr "无法åˆå¹¶ '$sha1' 到å­æ¨¡ç»„路径 '$displaypath' 中"
-#: git-submodule.sh:777
+#: git-submodule.sh:800
#, sh-format
msgid "Submodule path '$displaypath': merged in '$sha1'"
msgstr "å­æ¨¡ç»„路径 '$displaypath':已åˆå¹¶å…¥ '$sha1'"
-#: git-submodule.sh:782
+#: git-submodule.sh:805
#, sh-format
msgid ""
"Execution of '$command $sha1' failed in submodule path '$prefix$sm_path'"
msgstr "在å­æ¨¡ç»„路径 '$prefix$sm_path' 中执行 '$command $sha1' 失败"
-#: git-submodule.sh:783
+#: git-submodule.sh:806
#, sh-format
msgid "Submodule path '$prefix$sm_path': '$command $sha1'"
msgstr "å­æ¨¡ç»„路径 '$prefix$sm_path': '$command $sha1'"
-#: git-submodule.sh:813
+#: git-submodule.sh:836
#, sh-format
msgid "Failed to recurse into submodule path '$displaypath'"
msgstr "无法递归进å­æ¨¡ç»„路径 '$displaypath'"
-#: git-submodule.sh:921
+#: git-submodule.sh:944
msgid "The --cached option cannot be used with the --files option"
msgstr "选项 --cached ä¸èƒ½å’Œé€‰é¡¹ --files åŒæ—¶ä½¿ç”¨"
-#: git-submodule.sh:973
+#: git-submodule.sh:996
#, sh-format
msgid "unexpected mode $mod_dst"
msgstr "æ„å¤–çš„æ¨¡å¼ $mod_dst"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: git-submodule.sh:993
+#: git-submodule.sh:1016
#, sh-format
msgid " Warn: $display_name doesn't contain commit $sha1_src"
msgstr " 警告:$display_name 未包å«æ交 $sha1_src"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: git-submodule.sh:996
+#: git-submodule.sh:1019
#, sh-format
msgid " Warn: $display_name doesn't contain commit $sha1_dst"
msgstr " 警告:$display_name 未包å«æ交 $sha1_dst"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: git-submodule.sh:999
+#: git-submodule.sh:1022
#, sh-format
msgid " Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst"
msgstr " 警告:$display_name 未包å«æ交 $sha1_src å’Œ $sha1_dst"
-#: git-submodule.sh:1024
+#: git-submodule.sh:1047
msgid "blob"
msgstr "æ•°æ®å¯¹è±¡"
-#: git-submodule.sh:1142
+#: git-submodule.sh:1165
#, sh-format
msgid "Failed to recurse into submodule path '$sm_path'"
msgstr "无法递归进å­æ¨¡ç»„路径 '$sm_path'"
-#: git-submodule.sh:1206
+#: git-submodule.sh:1229
#, sh-format
msgid "Synchronizing submodule url for '$displaypath'"
msgstr "为 '$displaypath' åŒæ­¥å­æ¨¡ç»„ url"
+#~ msgid "Forward-port local commits to the updated upstream head"
+#~ msgstr "本地æ交转移至更新åŽçš„上游分支中"
+
+#~ msgid "unable to parse format"
+#~ msgstr "ä¸èƒ½è§£æžæ ¼å¼"
+
+#~ msgid "improper format entered align:%s"
+#~ msgstr "输入了ä¸æ­£ç¡®çš„æ ¼å¼ align:%s"
+
+#~ msgid "Could not set core.worktree in %s"
+#~ msgstr "ä¸èƒ½åœ¨ %s 中设置 core.worktree"
+
+# 译者:字符串首行行首è¦æ·»åŠ â€œwarning: â€å­—串,故此首行è¦è¾ƒå…¶ä½™è¡ŒçŸ­
+#~ msgid ""
+#~ "push.default is unset; its implicit value has changed in\n"
+#~ "Git 2.0 from 'matching' to 'simple'. To squelch this message\n"
+#~ "and maintain the traditional behavior, use:\n"
+#~ "\n"
+#~ " git config --global push.default matching\n"
+#~ "\n"
+#~ "To squelch this message and adopt the new behavior now, use:\n"
+#~ "\n"
+#~ " git config --global push.default simple\n"
+#~ "\n"
+#~ "When push.default is set to 'matching', git will push local branches\n"
+#~ "to the remote branches that already exist with the same name.\n"
+#~ "\n"
+#~ "Since Git 2.0, Git defaults to the more conservative 'simple'\n"
+#~ "behavior, which only pushes the current branch to the corresponding\n"
+#~ "remote branch that 'git pull' uses to update the current branch.\n"
+#~ "\n"
+#~ "See 'git help config' and search for 'push.default' for further "
+#~ "information.\n"
+#~ "(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode\n"
+#~ "'current' instead of 'simple' if you sometimes use older versions of Git)"
+#~ msgstr ""
+#~ "push.default 尚未设置,它的默认值在 Git 2.0 已从 'matching'\n"
+#~ "å˜æ›´ä¸º 'simple'。若è¦ä¸å†æ˜¾ç¤ºæœ¬ä¿¡æ¯å¹¶ä¿æŒä¼ ç»Ÿä¹ æƒ¯ï¼Œè¿›è¡Œå¦‚下设置:\n"
+#~ "\n"
+#~ " git config --global push.default matching\n"
+#~ "\n"
+#~ "è‹¥è¦ä¸å†æ˜¾ç¤ºæœ¬ä¿¡æ¯å¹¶ä»ŽçŽ°åœ¨å¼€å§‹é‡‡ç”¨æ–°çš„使用习惯,设置:\n"
+#~ "\n"
+#~ " git config --global push.default simple\n"
+#~ "\n"
+#~ "当 push.default 设置为 'matching' åŽï¼Œgit 将推é€å’Œè¿œç¨‹åŒå的所有\n"
+#~ "本地分支。\n"
+#~ "\n"
+#~ "从 Git 2.0 开始,Git 默认采用更为ä¿å®ˆçš„ 'simple' 模å¼ï¼ŒåªæŽ¨é€å½“å‰\n"
+#~ "分支到远程关è”çš„åŒååˆ†æ”¯ï¼Œå³ 'git push' 推é€å½“å‰åˆ†æ”¯ã€‚\n"
+#~ "\n"
+#~ "å‚è§ 'git help config' 并查找 'push.default' 以获å–更多信æ¯ã€‚\n"
+#~ "('simple' 模å¼ç”± Git 1.7.11 版本引入。如果您有时è¦ä½¿ç”¨è€ç‰ˆæœ¬çš„ Git,\n"
+#~ "为ä¿æŒå…¼å®¹ï¼Œè¯·ç”¨ 'current' 代替 'simple')"
+
+#~ msgid "Could not append '%s'"
+#~ msgstr "ä¸èƒ½è¿½åŠ  '%s'"
+
+#~ msgid "Could not set '%s'"
+#~ msgstr "ä¸èƒ½è®¾ç½® '%s'"
+
+# 译者:å¯é€‰å€¼ï¼Œä¸èƒ½ç¿»è¯‘
+#~ msgid "check|on-demand|no"
+#~ msgstr "check|on-demand|no"
+
+#~ msgid "Missing author: %s"
+#~ msgstr "缺少作者:%s"
+
+#~ msgid "Testing "
+#~ msgstr "正在测试 "
+
#~ msgid "unable to look up current user in the passwd file: %s"
#~ msgstr "无法在å£ä»¤æ–‡ä»¶ä¸­æŸ¥è¯¢åˆ°å½“å‰ç”¨æˆ·ï¼š%s"
@@ -12037,9 +12319,6 @@ msgstr "为 '$displaypath' åŒæ­¥å­æ¨¡ç»„ url"
#~ msgid "unable to parse value '%s' for option %s"
#~ msgstr "ä¸èƒ½è§£æžé€‰é¡¹ %1$s 的值 '%2$s'"
-#~ msgid "unable to resolve HEAD"
-#~ msgstr "ä¸èƒ½è§£æž HEAD"
-
#~ msgid "-b and -B are mutually exclusive"
#~ msgstr "-b 和 -B 互斥"
diff --git a/read-cache.c b/read-cache.c
index 5be7cd1dbf..d9fb78bc55 100644
--- a/read-cache.c
+++ b/read-cache.c
@@ -1519,6 +1519,28 @@ 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 */
+ remove_untracked_cache(istate);
+ break;
+ case 1: /* true */
+ add_untracked_cache(istate);
+ break;
+ default: /* unknown value: do nothing */
+ break;
+ }
+}
+
+static void post_read_index_from(struct index_state *istate)
+{
+ check_ce_order(istate);
+ tweak_untracked_cache(istate);
+}
+
/* remember to discard_cache() before reading a different cache! */
int do_read_index(struct index_state *istate, const char *path, int must_exist)
{
@@ -1622,9 +1644,10 @@ int read_index_from(struct index_state *istate, const char *path)
return istate->cache_nr;
ret = do_read_index(istate, path, 0);
+
split_index = istate->split_index;
if (!split_index || is_null_sha1(split_index->base_sha1)) {
- check_ce_order(istate);
+ post_read_index_from(istate);
return ret;
}
@@ -1642,7 +1665,7 @@ int read_index_from(struct index_state *istate, const char *path)
sha1_to_hex(split_index->base_sha1)),
sha1_to_hex(split_index->base->sha1));
merge_base_index(istate);
- check_ce_order(istate);
+ post_read_index_from(istate);
return ret;
}
diff --git a/ref-filter.c b/ref-filter.c
index 9ccfc51cea..bc551a752c 100644
--- a/ref-filter.c
+++ b/ref-filter.c
@@ -16,14 +16,162 @@
typedef enum { FIELD_STR, FIELD_ULONG, FIELD_TIME } cmp_type;
+struct align {
+ align_type position;
+ unsigned int width;
+};
+
+/*
+ * An atom is a valid field atom listed below, possibly prefixed with
+ * a "*" to denote deref_tag().
+ *
+ * We parse given format string and sort specifiers, and make a list
+ * of properties that we need to extract out of objects. ref_array_item
+ * structure will hold an array of values extracted that can be
+ * indexed with the "atom number", which is an index into this
+ * array.
+ */
+static struct used_atom {
+ const char *name;
+ cmp_type type;
+ union {
+ char color[COLOR_MAXLEN];
+ struct align align;
+ enum { RR_NORMAL, RR_SHORTEN, RR_TRACK, RR_TRACKSHORT }
+ remote_ref;
+ struct {
+ enum { C_BARE, C_BODY, C_BODY_DEP, C_LINES, C_SIG, C_SUB } option;
+ unsigned int nlines;
+ } contents;
+ enum { O_FULL, O_SHORT } objectname;
+ } u;
+} *used_atom;
+static int used_atom_cnt, need_tagged, need_symref;
+static int need_color_reset_at_eol;
+
+static void color_atom_parser(struct used_atom *atom, const char *color_value)
+{
+ if (!color_value)
+ die(_("expected format: %%(color:<color>)"));
+ if (color_parse(color_value, atom->u.color) < 0)
+ die(_("unrecognized color: %%(color:%s)"), color_value);
+}
+
+static void remote_ref_atom_parser(struct used_atom *atom, const char *arg)
+{
+ if (!arg)
+ atom->u.remote_ref = RR_NORMAL;
+ else if (!strcmp(arg, "short"))
+ atom->u.remote_ref = RR_SHORTEN;
+ else if (!strcmp(arg, "track"))
+ atom->u.remote_ref = RR_TRACK;
+ else if (!strcmp(arg, "trackshort"))
+ atom->u.remote_ref = RR_TRACKSHORT;
+ else
+ die(_("unrecognized format: %%(%s)"), atom->name);
+}
+
+static void body_atom_parser(struct used_atom *atom, const char *arg)
+{
+ if (arg)
+ die(_("%%(body) does not take arguments"));
+ atom->u.contents.option = C_BODY_DEP;
+}
+
+static void subject_atom_parser(struct used_atom *atom, const char *arg)
+{
+ if (arg)
+ die(_("%%(subject) does not take arguments"));
+ atom->u.contents.option = C_SUB;
+}
+
+static void contents_atom_parser(struct used_atom *atom, const char *arg)
+{
+ if (!arg)
+ atom->u.contents.option = C_BARE;
+ else if (!strcmp(arg, "body"))
+ atom->u.contents.option = C_BODY;
+ else if (!strcmp(arg, "signature"))
+ atom->u.contents.option = C_SIG;
+ else if (!strcmp(arg, "subject"))
+ atom->u.contents.option = C_SUB;
+ else if (skip_prefix(arg, "lines=", &arg)) {
+ atom->u.contents.option = C_LINES;
+ if (strtoul_ui(arg, 10, &atom->u.contents.nlines))
+ die(_("positive value expected contents:lines=%s"), arg);
+ } else
+ die(_("unrecognized %%(contents) argument: %s"), arg);
+}
+
+static void objectname_atom_parser(struct used_atom *atom, const char *arg)
+{
+ if (!arg)
+ atom->u.objectname = O_FULL;
+ else if (!strcmp(arg, "short"))
+ atom->u.objectname = O_SHORT;
+ else
+ die(_("unrecognized %%(objectname) argument: %s"), arg);
+}
+
+static align_type parse_align_position(const char *s)
+{
+ if (!strcmp(s, "right"))
+ return ALIGN_RIGHT;
+ else if (!strcmp(s, "middle"))
+ return ALIGN_MIDDLE;
+ else if (!strcmp(s, "left"))
+ return ALIGN_LEFT;
+ return -1;
+}
+
+static void align_atom_parser(struct used_atom *atom, const char *arg)
+{
+ struct align *align = &atom->u.align;
+ struct string_list params = STRING_LIST_INIT_DUP;
+ int i;
+ unsigned int width = ~0U;
+
+ if (!arg)
+ die(_("expected format: %%(align:<width>,<position>)"));
+
+ align->position = ALIGN_LEFT;
+
+ string_list_split(&params, arg, ',', -1);
+ for (i = 0; i < params.nr; i++) {
+ const char *s = params.items[i].string;
+ int position;
+
+ if (skip_prefix(s, "position=", &s)) {
+ position = parse_align_position(s);
+ if (position < 0)
+ die(_("unrecognized position:%s"), s);
+ align->position = position;
+ } else if (skip_prefix(s, "width=", &s)) {
+ if (strtoul_ui(s, 10, &width))
+ die(_("unrecognized width:%s"), s);
+ } else if (!strtoul_ui(s, 10, &width))
+ ;
+ else if ((position = parse_align_position(s)) >= 0)
+ align->position = position;
+ else
+ die(_("unrecognized %%(align) argument: %s"), s);
+ }
+
+ if (width == ~0U)
+ die(_("positive width expected with the %%(align) atom"));
+ align->width = width;
+ string_list_clear(&params, 0);
+}
+
static struct {
const char *name;
cmp_type cmp_type;
+ void (*parser)(struct used_atom *atom, const char *arg);
} valid_atom[] = {
{ "refname" },
{ "objecttype" },
{ "objectsize", FIELD_ULONG },
- { "objectname" },
+ { "objectname", FIELD_STR, objectname_atom_parser },
{ "tree" },
{ "parent" },
{ "numparent", FIELD_ULONG },
@@ -44,31 +192,21 @@ static struct {
{ "taggerdate", FIELD_TIME },
{ "creator" },
{ "creatordate", FIELD_TIME },
- { "subject" },
- { "body" },
- { "contents" },
- { "upstream" },
- { "push" },
+ { "subject", FIELD_STR, subject_atom_parser },
+ { "body", FIELD_STR, body_atom_parser },
+ { "contents", FIELD_STR, contents_atom_parser },
+ { "upstream", FIELD_STR, remote_ref_atom_parser },
+ { "push", FIELD_STR, remote_ref_atom_parser },
{ "symref" },
{ "flag" },
{ "HEAD" },
- { "color" },
- { "align" },
+ { "color", FIELD_STR, color_atom_parser },
+ { "align", FIELD_STR, align_atom_parser },
{ "end" },
};
#define REF_FORMATTING_STATE_INIT { 0, NULL }
-struct align {
- align_type position;
- unsigned int width;
-};
-
-struct contents {
- unsigned int lines;
- struct object_id oid;
-};
-
struct ref_formatting_stack {
struct ref_formatting_stack *prev;
struct strbuf output;
@@ -85,77 +223,66 @@ struct atom_value {
const char *s;
union {
struct align align;
- struct contents contents;
} u;
void (*handler)(struct atom_value *atomv, struct ref_formatting_state *state);
unsigned long ul; /* used for sorting when not FIELD_STR */
};
/*
- * An atom is a valid field atom listed above, possibly prefixed with
- * a "*" to denote deref_tag().
- *
- * We parse given format string and sort specifiers, and make a list
- * of properties that we need to extract out of objects. ref_array_item
- * structure will hold an array of values extracted that can be
- * indexed with the "atom number", which is an index into this
- * array.
- */
-static const char **used_atom;
-static cmp_type *used_atom_type;
-static int used_atom_cnt, need_tagged, need_symref;
-static int need_color_reset_at_eol;
-
-/*
* Used to parse format string and sort specifiers
*/
int parse_ref_filter_atom(const char *atom, const char *ep)
{
const char *sp;
+ const char *arg;
int i, at;
sp = atom;
if (*sp == '*' && sp < ep)
sp++; /* deref */
if (ep <= sp)
- die("malformed field name: %.*s", (int)(ep-atom), atom);
+ die(_("malformed field name: %.*s"), (int)(ep-atom), atom);
/* Do we have the atom already used elsewhere? */
for (i = 0; i < used_atom_cnt; i++) {
- int len = strlen(used_atom[i]);
- if (len == ep - atom && !memcmp(used_atom[i], atom, len))
+ int len = strlen(used_atom[i].name);
+ if (len == ep - atom && !memcmp(used_atom[i].name, atom, len))
return i;
}
/* Is the atom a valid one? */
for (i = 0; i < ARRAY_SIZE(valid_atom); i++) {
int len = strlen(valid_atom[i].name);
+
/*
* If the atom name has a colon, strip it and everything after
* it off - it specifies the format for this entry, and
* shouldn't be used for checking against the valid_atom
* table.
*/
- const char *formatp = strchr(sp, ':');
- if (!formatp || ep < formatp)
- formatp = ep;
- if (len == formatp - sp && !memcmp(valid_atom[i].name, sp, len))
+ arg = memchr(sp, ':', ep - sp);
+ if (len == (arg ? arg : ep) - sp &&
+ !memcmp(valid_atom[i].name, sp, len))
break;
}
if (ARRAY_SIZE(valid_atom) <= i)
- die("unknown field name: %.*s", (int)(ep-atom), atom);
+ die(_("unknown field name: %.*s"), (int)(ep-atom), atom);
/* Add it in, including the deref prefix */
at = used_atom_cnt;
used_atom_cnt++;
REALLOC_ARRAY(used_atom, used_atom_cnt);
- REALLOC_ARRAY(used_atom_type, used_atom_cnt);
- used_atom[at] = xmemdupz(atom, ep - atom);
- used_atom_type[at] = valid_atom[i].cmp_type;
+ used_atom[at].name = xmemdupz(atom, ep - atom);
+ used_atom[at].type = valid_atom[i].cmp_type;
+ if (arg)
+ arg = used_atom[at].name + (arg - atom) + 1;
+ memset(&used_atom[at].u, 0, sizeof(used_atom[at].u));
+ if (valid_atom[i].parser)
+ valid_atom[i].parser(&used_atom[at], arg);
if (*atom == '*')
need_tagged = 1;
- if (!strcmp(used_atom[at], "symref"))
+ if (!strcmp(used_atom[at].name, "symref"))
need_symref = 1;
return at;
}
@@ -258,22 +385,6 @@ static void end_atom_handler(struct atom_value *atomv, struct ref_formatting_sta
pop_stack_element(&state->stack);
}
-static int match_atom_name(const char *name, const char *atom_name, const char **val)
-{
- const char *body;
-
- if (!skip_prefix(name, atom_name, &body))
- return 0; /* doesn't even begin with "atom_name" */
- if (!body[0]) {
- *val = NULL; /* %(atom_name) and no customization */
- return 1;
- }
- if (body[0] != ':')
- return 0; /* "atom_namefoo" is not "atom_name" or "atom_name:..." */
- *val = body + 1; /* "atom_name:val" */
- return 1;
-}
-
/*
* In a format string, find the next occurrence of %(atom).
*/
@@ -310,12 +421,12 @@ int verify_ref_format(const char *format)
int at;
if (!ep)
- return error("malformed format string %s", sp);
+ return error(_("malformed format string %s"), sp);
/* sp points at "%(" and ep points at the closing ")" */
at = parse_ref_filter_atom(sp + 2, ep);
cp = ep + 1;
- if (skip_prefix(used_atom[at], "color:", &color))
+ if (skip_prefix(used_atom[at].name, "color:", &color))
need_color_reset_at_eol = !!strcmp(color, "reset");
}
return 0;
@@ -340,15 +451,17 @@ static void *get_obj(const unsigned char *sha1, struct object **obj, unsigned lo
}
static int grab_objectname(const char *name, const unsigned char *sha1,
- struct atom_value *v)
+ struct atom_value *v, struct used_atom *atom)
{
- if (!strcmp(name, "objectname")) {
- v->s = xstrdup(sha1_to_hex(sha1));
- return 1;
- }
- if (!strcmp(name, "objectname:short")) {
- v->s = xstrdup(find_unique_abbrev(sha1, DEFAULT_ABBREV));
- return 1;
+ if (starts_with(name, "objectname")) {
+ if (atom->u.objectname == O_SHORT) {
+ v->s = xstrdup(find_unique_abbrev(sha1, DEFAULT_ABBREV));
+ return 1;
+ } else if (atom->u.objectname == O_FULL) {
+ v->s = xstrdup(sha1_to_hex(sha1));
+ return 1;
+ } else
+ die("BUG: unknown %%(objectname) option");
}
return 0;
}
@@ -359,7 +472,7 @@ static void grab_common_values(struct atom_value *val, int deref, struct object
int i;
for (i = 0; i < used_atom_cnt; i++) {
- const char *name = used_atom[i];
+ const char *name = used_atom[i].name;
struct atom_value *v = &val[i];
if (!!deref != (*name == '*'))
continue;
@@ -372,7 +485,7 @@ static void grab_common_values(struct atom_value *val, int deref, struct object
v->s = xstrfmt("%lu", sz);
}
else if (deref)
- grab_objectname(name, obj->oid.hash, v);
+ grab_objectname(name, obj->oid.hash, v, &used_atom[i]);
}
}
@@ -383,7 +496,7 @@ static void grab_tag_values(struct atom_value *val, int deref, struct object *ob
struct tag *tag = (struct tag *) obj;
for (i = 0; i < used_atom_cnt; i++) {
- const char *name = used_atom[i];
+ const char *name = used_atom[i].name;
struct atom_value *v = &val[i];
if (!!deref != (*name == '*'))
continue;
@@ -405,7 +518,7 @@ static void grab_commit_values(struct atom_value *val, int deref, struct object
struct commit *commit = (struct commit *) obj;
for (i = 0; i < used_atom_cnt; i++) {
- const char *name = used_atom[i];
+ const char *name = used_atom[i].name;
struct atom_value *v = &val[i];
if (!!deref != (*name == '*'))
continue;
@@ -535,7 +648,7 @@ static void grab_person(const char *who, struct atom_value *val, int deref, stru
const char *wholine = NULL;
for (i = 0; i < used_atom_cnt; i++) {
- const char *name = used_atom[i];
+ const char *name = used_atom[i].name;
struct atom_value *v = &val[i];
if (!!deref != (*name == '*'))
continue;
@@ -573,7 +686,7 @@ static void grab_person(const char *who, struct atom_value *val, int deref, stru
if (!wholine)
return;
for (i = 0; i < used_atom_cnt; i++) {
- const char *name = used_atom[i];
+ const char *name = used_atom[i].name;
struct atom_value *v = &val[i];
if (!!deref != (*name == '*'))
continue;
@@ -663,20 +776,16 @@ static void grab_sub_body_contents(struct atom_value *val, int deref, struct obj
unsigned long sublen = 0, bodylen = 0, nonsiglen = 0, siglen = 0;
for (i = 0; i < used_atom_cnt; i++) {
- const char *name = used_atom[i];
+ struct used_atom *atom = &used_atom[i];
+ const char *name = atom->name;
struct atom_value *v = &val[i];
- const char *valp = NULL;
if (!!deref != (*name == '*'))
continue;
if (deref)
name++;
if (strcmp(name, "subject") &&
strcmp(name, "body") &&
- strcmp(name, "contents") &&
- strcmp(name, "contents:subject") &&
- strcmp(name, "contents:body") &&
- strcmp(name, "contents:signature") &&
- !starts_with(name, "contents:lines="))
+ !starts_with(name, "contents"))
continue;
if (!subpos)
find_subpos(buf, sz,
@@ -684,28 +793,23 @@ static void grab_sub_body_contents(struct atom_value *val, int deref, struct obj
&bodypos, &bodylen, &nonsiglen,
&sigpos, &siglen);
- if (!strcmp(name, "subject"))
+ if (atom->u.contents.option == C_SUB)
v->s = copy_subject(subpos, sublen);
- else if (!strcmp(name, "contents:subject"))
- v->s = copy_subject(subpos, sublen);
- else if (!strcmp(name, "body"))
+ else if (atom->u.contents.option == C_BODY_DEP)
v->s = xmemdupz(bodypos, bodylen);
- else if (!strcmp(name, "contents:body"))
+ else if (atom->u.contents.option == C_BODY)
v->s = xmemdupz(bodypos, nonsiglen);
- else if (!strcmp(name, "contents:signature"))
+ else if (atom->u.contents.option == C_SIG)
v->s = xmemdupz(sigpos, siglen);
- else if (!strcmp(name, "contents"))
- v->s = xstrdup(subpos);
- else if (skip_prefix(name, "contents:lines=", &valp)) {
+ else if (atom->u.contents.option == C_LINES) {
struct strbuf s = STRBUF_INIT;
const char *contents_end = bodylen + bodypos - siglen;
- if (strtoul_ui(valp, 10, &v->u.contents.lines))
- die(_("positive value expected contents:lines=%s"), valp);
/* Size is the length of the message after removing the signature */
- append_lines(&s, subpos, contents_end - subpos, v->u.contents.lines);
+ append_lines(&s, subpos, contents_end - subpos, atom->u.contents.nlines);
v->s = strbuf_detach(&s, NULL);
- }
+ } else if (atom->u.contents.option == C_BARE)
+ v->s = xstrdup(subpos);
}
}
@@ -771,12 +875,12 @@ static const char *strip_ref_components(const char *refname, const char *nr_arg)
const char *start = refname;
if (nr < 1 || *end != '\0')
- die(":strip= requires a positive integer argument");
+ die(_(":strip= requires a positive integer argument"));
while (remaining) {
switch (*start++) {
case '\0':
- die("ref '%s' does not have %ld components to :strip",
+ die(_("ref '%s' does not have %ld components to :strip"),
refname, nr);
case '/':
remaining--;
@@ -786,6 +890,43 @@ static const char *strip_ref_components(const char *refname, const char *nr_arg)
return start;
}
+static void fill_remote_ref_details(struct used_atom *atom, const char *refname,
+ struct branch *branch, const char **s)
+{
+ int num_ours, num_theirs;
+ if (atom->u.remote_ref == RR_SHORTEN)
+ *s = shorten_unambiguous_ref(refname, warn_ambiguous_refs);
+ else if (atom->u.remote_ref == RR_TRACK) {
+ if (stat_tracking_info(branch, &num_ours,
+ &num_theirs, NULL))
+ return;
+
+ if (!num_ours && !num_theirs)
+ *s = "";
+ else if (!num_ours)
+ *s = xstrfmt("[behind %d]", num_theirs);
+ else if (!num_theirs)
+ *s = xstrfmt("[ahead %d]", num_ours);
+ else
+ *s = xstrfmt("[ahead %d, behind %d]",
+ num_ours, num_theirs);
+ } else if (atom->u.remote_ref == RR_TRACKSHORT) {
+ if (stat_tracking_info(branch, &num_ours,
+ &num_theirs, NULL))
+ return;
+
+ if (!num_ours && !num_theirs)
+ *s = "=";
+ else if (!num_ours)
+ *s = "<";
+ else if (!num_theirs)
+ *s = ">";
+ else
+ *s = "<>";
+ } else /* RR_NORMAL */
+ *s = refname;
+}
+
/*
* Parse the object referred by ref, and grab needed value.
*/
@@ -809,12 +950,12 @@ static void populate_value(struct ref_array_item *ref)
/* Fill in specials first */
for (i = 0; i < used_atom_cnt; i++) {
- const char *name = used_atom[i];
+ struct used_atom *atom = &used_atom[i];
+ const char *name = used_atom[i].name;
struct atom_value *v = &ref->value[i];
int deref = 0;
const char *refname;
const char *formatp;
- const char *valp;
struct branch *branch = NULL;
v->handler = append_atom;
@@ -837,8 +978,9 @@ static void populate_value(struct ref_array_item *ref)
branch = branch_get(branch_name);
refname = branch_get_upstream(branch, NULL);
- if (!refname)
- continue;
+ if (refname)
+ fill_remote_ref_details(atom, refname, branch, &v->s);
+ continue;
} else if (starts_with(name, "push")) {
const char *branch_name;
if (!skip_prefix(ref->refname, "refs/heads/",
@@ -849,14 +991,10 @@ static void populate_value(struct ref_array_item *ref)
refname = branch_get_push(branch, NULL);
if (!refname)
continue;
- } else if (match_atom_name(name, "color", &valp)) {
- char color[COLOR_MAXLEN] = "";
-
- if (!valp)
- die(_("expected format: %%(color:<color>)"));
- if (color_parse(valp, color) < 0)
- die(_("unable to parse format"));
- v->s = xstrdup(color);
+ fill_remote_ref_details(atom, refname, branch, &v->s);
+ continue;
+ } else if (starts_with(name, "color:")) {
+ v->s = atom->u.color;
continue;
} else if (!strcmp(name, "flag")) {
char buf[256], *cp = buf;
@@ -871,7 +1009,7 @@ static void populate_value(struct ref_array_item *ref)
v->s = xstrdup(buf + 1);
}
continue;
- } else if (!deref && grab_objectname(name, ref->objectname, v)) {
+ } else if (!deref && grab_objectname(name, ref->objectname, v, atom)) {
continue;
} else if (!strcmp(name, "HEAD")) {
const char *head;
@@ -884,43 +1022,8 @@ static void populate_value(struct ref_array_item *ref)
else
v->s = " ";
continue;
- } else if (match_atom_name(name, "align", &valp)) {
- struct align *align = &v->u.align;
- struct strbuf **s, **to_free;
- int width = -1;
-
- if (!valp)
- die(_("expected format: %%(align:<width>,<position>)"));
-
- /*
- * TODO: Implement a function similar to strbuf_split_str()
- * which would omit the separator from the end of each value.
- */
- s = to_free = strbuf_split_str(valp, ',', 0);
-
- align->position = ALIGN_LEFT;
-
- while (*s) {
- /* Strip trailing comma */
- if (s[1])
- strbuf_setlen(s[0], s[0]->len - 1);
- if (!strtoul_ui(s[0]->buf, 10, (unsigned int *)&width))
- ;
- else if (!strcmp(s[0]->buf, "left"))
- align->position = ALIGN_LEFT;
- else if (!strcmp(s[0]->buf, "right"))
- align->position = ALIGN_RIGHT;
- else if (!strcmp(s[0]->buf, "middle"))
- align->position = ALIGN_MIDDLE;
- else
- die(_("improper format entered align:%s"), s[0]->buf);
- s++;
- }
-
- if (width < 0)
- die(_("positive width expected with the %%(align) atom"));
- align->width = width;
- strbuf_list_free(to_free);
+ } else if (starts_with(name, "align")) {
+ v->u.align = atom->u.align;
v->handler = align_atom_handler;
continue;
} else if (!strcmp(name, "end")) {
@@ -931,7 +1034,6 @@ static void populate_value(struct ref_array_item *ref)
formatp = strchr(name, ':');
if (formatp) {
- int num_ours, num_theirs;
const char *arg;
formatp++;
@@ -940,44 +1042,8 @@ static void populate_value(struct ref_array_item *ref)
warn_ambiguous_refs);
else if (skip_prefix(formatp, "strip=", &arg))
refname = strip_ref_components(refname, arg);
- else if (!strcmp(formatp, "track") &&
- (starts_with(name, "upstream") ||
- starts_with(name, "push"))) {
-
- if (stat_tracking_info(branch, &num_ours,
- &num_theirs, NULL))
- continue;
-
- if (!num_ours && !num_theirs)
- v->s = "";
- else if (!num_ours)
- v->s = xstrfmt("[behind %d]", num_theirs);
- else if (!num_theirs)
- v->s = xstrfmt("[ahead %d]", num_ours);
- else
- v->s = xstrfmt("[ahead %d, behind %d]",
- num_ours, num_theirs);
- continue;
- } else if (!strcmp(formatp, "trackshort") &&
- (starts_with(name, "upstream") ||
- starts_with(name, "push"))) {
- assert(branch);
-
- if (stat_tracking_info(branch, &num_ours,
- &num_theirs, NULL))
- continue;
-
- if (!num_ours && !num_theirs)
- v->s = "=";
- else if (!num_ours)
- v->s = "<";
- else if (!num_theirs)
- v->s = ">";
- else
- v->s = "<>";
- continue;
- } else
- die("unknown %.*s format %s",
+ else
+ die(_("unknown %.*s format %s"),
(int)(formatp - name), name, formatp);
}
@@ -997,10 +1063,10 @@ static void populate_value(struct ref_array_item *ref)
need_obj:
buf = get_obj(ref->objectname, &obj, &size, &eaten);
if (!buf)
- die("missing object %s for %s",
+ die(_("missing object %s for %s"),
sha1_to_hex(ref->objectname), ref->refname);
if (!obj)
- die("parse_object_buffer failed on %s for %s",
+ die(_("parse_object_buffer failed on %s for %s"),
sha1_to_hex(ref->objectname), ref->refname);
grab_values(ref->value, 0, obj, buf, size);
@@ -1028,10 +1094,10 @@ static void populate_value(struct ref_array_item *ref)
*/
buf = get_obj(tagged, &obj, &size, &eaten);
if (!buf)
- die("missing object %s for %s",
+ die(_("missing object %s for %s"),
sha1_to_hex(tagged), ref->refname);
if (!obj)
- die("parse_object_buffer failed on %s for %s",
+ die(_("parse_object_buffer failed on %s for %s"),
sha1_to_hex(tagged), ref->refname);
grab_values(ref->value, 1, obj, buf, size);
if (!eaten)
@@ -1304,12 +1370,12 @@ static int ref_filter_handler(const char *refname, const struct object_id *oid,
unsigned int kind;
if (flag & REF_BAD_NAME) {
- warning("ignoring ref with broken name %s", refname);
+ warning(_("ignoring ref with broken name %s"), refname);
return 0;
}
if (flag & REF_ISBROKEN) {
- warning("ignoring broken ref %s", refname);
+ warning(_("ignoring broken ref %s"), refname);
return 0;
}
@@ -1469,7 +1535,7 @@ static int cmp_ref_sorting(struct ref_sorting *s, struct ref_array_item *a, stru
{
struct atom_value *va, *vb;
int cmp;
- cmp_type cmp_type = used_atom_type[s->atom];
+ cmp_type cmp_type = used_atom[s->atom].type;
get_ref_atom_value(a, s->atom, &va);
get_ref_atom_value(b, s->atom, &vb);
diff --git a/refs.h b/refs.h
index 19ebebcce0..2f3decb432 100644
--- a/refs.h
+++ b/refs.h
@@ -304,7 +304,7 @@ extern char *shorten_unambiguous_ref(const char *refname, int strict);
/** rename ref, return 0 on success **/
extern int rename_ref(const char *oldref, const char *newref, const char *logmsg);
-extern int create_symref(const char *ref, const char *refs_heads_master, const char *logmsg);
+extern int create_symref(const char *refname, const char *target, const char *logmsg);
enum action_on_err {
UPDATE_REFS_MSG_ON_ERR,
diff --git a/refs/files-backend.c b/refs/files-backend.c
index de9af1615c..81f68f846b 100644
--- a/refs/files-backend.c
+++ b/refs/files-backend.c
@@ -1850,12 +1850,17 @@ static int verify_lock(struct ref_lock *lock,
if (read_ref_full(lock->ref_name,
mustexist ? RESOLVE_REF_READING : 0,
lock->old_oid.hash, NULL)) {
- int save_errno = errno;
- strbuf_addf(err, "can't verify ref %s", lock->ref_name);
- errno = save_errno;
- return -1;
+ if (old_sha1) {
+ int save_errno = errno;
+ strbuf_addf(err, "can't verify ref %s", lock->ref_name);
+ errno = save_errno;
+ return -1;
+ } else {
+ hashclr(lock->old_oid.hash);
+ return 0;
+ }
}
- if (hashcmp(lock->old_oid.hash, old_sha1)) {
+ if (old_sha1 && hashcmp(lock->old_oid.hash, old_sha1)) {
strbuf_addf(err, "ref %s is at %s but expected %s",
lock->ref_name,
sha1_to_hex(lock->old_oid.hash),
@@ -1892,7 +1897,8 @@ static struct ref_lock *lock_ref_sha1_basic(const char *refname,
const char *orig_refname = refname;
struct ref_lock *lock;
int last_errno = 0;
- int type, lflags;
+ int type;
+ int lflags = 0;
int mustexist = (old_sha1 && !is_null_sha1(old_sha1));
int resolve_flags = 0;
int attempts_remaining = 3;
@@ -1903,10 +1909,11 @@ static struct ref_lock *lock_ref_sha1_basic(const char *refname,
if (mustexist)
resolve_flags |= RESOLVE_REF_READING;
- if (flags & REF_DELETING) {
+ if (flags & REF_DELETING)
resolve_flags |= RESOLVE_REF_ALLOW_BAD_NAME;
- if (flags & REF_NODEREF)
- resolve_flags |= RESOLVE_REF_NO_RECURSE;
+ if (flags & REF_NODEREF) {
+ resolve_flags |= RESOLVE_REF_NO_RECURSE;
+ lflags |= LOCK_NO_DEREF;
}
refname = resolve_ref_unsafe(refname, resolve_flags,
@@ -1942,6 +1949,10 @@ static struct ref_lock *lock_ref_sha1_basic(const char *refname,
goto error_return;
}
+
+ if (flags & REF_NODEREF)
+ refname = orig_refname;
+
/*
* If the ref did not exist and we are creating it, make sure
* there is no existing packed ref whose name begins with our
@@ -1957,11 +1968,6 @@ static struct ref_lock *lock_ref_sha1_basic(const char *refname,
lock->lk = xcalloc(1, sizeof(struct lock_file));
- lflags = 0;
- if (flags & REF_NODEREF) {
- refname = orig_refname;
- lflags |= LOCK_NO_DEREF;
- }
lock->ref_name = xstrdup(refname);
lock->orig_ref_name = xstrdup(orig_refname);
strbuf_git_path(&ref_file, "%s", refname);
@@ -1995,7 +2001,7 @@ static struct ref_lock *lock_ref_sha1_basic(const char *refname,
goto error_return;
}
}
- if (old_sha1 && verify_lock(lock, old_sha1, mustexist, err)) {
+ if (verify_lock(lock, old_sha1, mustexist, err)) {
last_errno = errno;
goto error_return;
}
@@ -2820,73 +2826,72 @@ static int commit_ref_update(struct ref_lock *lock,
return 0;
}
-int create_symref(const char *ref_target, const char *refs_heads_master,
- const char *logmsg)
+static int create_ref_symlink(struct ref_lock *lock, const char *target)
{
- char *lockpath = NULL;
- char ref[1000];
- int fd, len, written;
- char *git_HEAD = git_pathdup("%s", ref_target);
- unsigned char old_sha1[20], new_sha1[20];
- struct strbuf err = STRBUF_INIT;
-
- if (logmsg && read_ref(ref_target, old_sha1))
- hashclr(old_sha1);
-
- if (safe_create_leading_directories(git_HEAD) < 0)
- return error("unable to create directory for %s", git_HEAD);
-
+ int ret = -1;
#ifndef NO_SYMLINK_HEAD
- if (prefer_symlink_refs) {
- unlink(git_HEAD);
- if (!symlink(refs_heads_master, git_HEAD))
- goto done;
+ char *ref_path = get_locked_file_path(lock->lk);
+ unlink(ref_path);
+ ret = symlink(target, ref_path);
+ free(ref_path);
+
+ if (ret)
fprintf(stderr, "no symlink - falling back to symbolic ref\n");
- }
#endif
+ return ret;
+}
- len = snprintf(ref, sizeof(ref), "ref: %s\n", refs_heads_master);
- if (sizeof(ref) <= len) {
- error("refname too long: %s", refs_heads_master);
- goto error_free_return;
- }
- lockpath = mkpathdup("%s.lock", git_HEAD);
- fd = open(lockpath, O_CREAT | O_EXCL | O_WRONLY, 0666);
- if (fd < 0) {
- error("Unable to open %s for writing", lockpath);
- goto error_free_return;
- }
- written = write_in_full(fd, ref, len);
- if (close(fd) != 0 || written != len) {
- error("Unable to write to %s", lockpath);
- goto error_unlink_return;
- }
- if (rename(lockpath, git_HEAD) < 0) {
- error("Unable to create %s", git_HEAD);
- goto error_unlink_return;
- }
- if (adjust_shared_perm(git_HEAD)) {
- error("Unable to fix permissions on %s", lockpath);
- error_unlink_return:
- unlink_or_warn(lockpath);
- error_free_return:
- free(lockpath);
- free(git_HEAD);
- return -1;
+static void update_symref_reflog(struct ref_lock *lock, const char *refname,
+ const char *target, const char *logmsg)
+{
+ struct strbuf err = STRBUF_INIT;
+ unsigned char new_sha1[20];
+ if (logmsg && !read_ref(target, new_sha1) &&
+ log_ref_write(refname, lock->old_oid.hash, new_sha1, logmsg, 0, &err)) {
+ error("%s", err.buf);
+ strbuf_release(&err);
}
- free(lockpath);
+}
-#ifndef NO_SYMLINK_HEAD
- done:
-#endif
- if (logmsg && !read_ref(refs_heads_master, new_sha1) &&
- log_ref_write(ref_target, old_sha1, new_sha1, logmsg, 0, &err)) {
+static int create_symref_locked(struct ref_lock *lock, const char *refname,
+ const char *target, const char *logmsg)
+{
+ if (prefer_symlink_refs && !create_ref_symlink(lock, target)) {
+ update_symref_reflog(lock, refname, target, logmsg);
+ return 0;
+ }
+
+ if (!fdopen_lock_file(lock->lk, "w"))
+ return error("unable to fdopen %s: %s",
+ lock->lk->tempfile.filename.buf, strerror(errno));
+
+ update_symref_reflog(lock, refname, target, logmsg);
+
+ /* no error check; commit_ref will check ferror */
+ fprintf(lock->lk->tempfile.fp, "ref: %s\n", target);
+ if (commit_ref(lock) < 0)
+ return error("unable to write symref for %s: %s", refname,
+ strerror(errno));
+ return 0;
+}
+
+int create_symref(const char *refname, const char *target, const char *logmsg)
+{
+ struct strbuf err = STRBUF_INIT;
+ struct ref_lock *lock;
+ int ret;
+
+ lock = lock_ref_sha1_basic(refname, NULL, NULL, NULL, REF_NODEREF, NULL,
+ &err);
+ if (!lock) {
error("%s", err.buf);
strbuf_release(&err);
+ return -1;
}
- free(git_HEAD);
- return 0;
+ ret = create_symref_locked(lock, refname, target, logmsg);
+ unlock_ref(lock);
+ return ret;
}
int reflog_exists(const char *refname)
diff --git a/remote-curl.c b/remote-curl.c
index e65ea59764..15e48e25fb 100644
--- a/remote-curl.c
+++ b/remote-curl.c
@@ -119,6 +119,19 @@ static int set_option(const char *name, const char *value)
else
return -1;
return 0;
+
+#if LIBCURL_VERSION_NUM >= 0x070a08
+ } else if (!strcmp(name, "family")) {
+ if (!strcmp(value, "ipv4"))
+ git_curl_ipresolve = CURL_IPRESOLVE_V4;
+ else if (!strcmp(value, "ipv6"))
+ git_curl_ipresolve = CURL_IPRESOLVE_V6;
+ else if (!strcmp(value, "all"))
+ git_curl_ipresolve = CURL_IPRESOLVE_WHATEVER;
+ else
+ return -1;
+ return 0;
+#endif /* LIBCURL_VERSION_NUM >= 0x070a08 */
} else {
return 1 /* unsupported */;
}
@@ -840,7 +853,7 @@ static void parse_fetch(struct strbuf *buf)
die("http transport does not support %s", buf->buf);
strbuf_reset(buf);
- if (strbuf_getline(buf, stdin, '\n') == EOF)
+ if (strbuf_getline_lf(buf, stdin) == EOF)
return;
if (!*buf->buf)
break;
@@ -952,7 +965,7 @@ static void parse_push(struct strbuf *buf)
die("http transport does not support %s", buf->buf);
strbuf_reset(buf);
- if (strbuf_getline(buf, stdin, '\n') == EOF)
+ if (strbuf_getline_lf(buf, stdin) == EOF)
goto free_specs;
if (!*buf->buf)
break;
@@ -1002,7 +1015,7 @@ int main(int argc, const char **argv)
do {
const char *arg;
- if (strbuf_getline(&buf, stdin, '\n') == EOF) {
+ if (strbuf_getline_lf(&buf, stdin) == EOF) {
if (ferror(stdin))
error("remote-curl: error reading command stream from git");
return 1;
diff --git a/remote-testsvn.c b/remote-testsvn.c
index f599c372c6..f05ff45298 100644
--- a/remote-testsvn.c
+++ b/remote-testsvn.c
@@ -154,7 +154,7 @@ static void check_or_regenerate_marks(int latestrev)
fclose(marksfile);
} else {
strbuf_addf(&sb, ":%d ", latestrev);
- while (strbuf_getline(&line, marksfile, '\n') != EOF) {
+ while (strbuf_getline_lf(&line, marksfile) != EOF) {
if (starts_with(line.buf, sb.buf)) {
found++;
break;
@@ -322,7 +322,7 @@ int main(int argc, char **argv)
marksfilename = marksfilename_sb.buf;
while (1) {
- if (strbuf_getline(&buf, stdin, '\n') == EOF) {
+ if (strbuf_getline_lf(&buf, stdin) == EOF) {
if (ferror(stdin))
die("Error reading command stream");
else
diff --git a/remote.c b/remote.c
index 6e5c1a876f..fc02698587 100644
--- a/remote.c
+++ b/remote.c
@@ -256,7 +256,7 @@ static void read_remotes_file(struct remote *remote)
if (!f)
return;
remote->origin = REMOTE_REMOTES;
- while (strbuf_getline(&buf, f, '\n') != EOF) {
+ while (strbuf_getline(&buf, f) != EOF) {
const char *v;
strbuf_rtrim(&buf);
@@ -281,7 +281,7 @@ static void read_branches_file(struct remote *remote)
if (!f)
return;
- strbuf_getline(&buf, f, '\n');
+ strbuf_getline_lf(&buf, f);
fclose(f);
strbuf_trim(&buf);
if (!buf.len) {
@@ -318,93 +318,88 @@ static void read_branches_file(struct remote *remote)
static int handle_config(const char *key, const char *value, void *cb)
{
const char *name;
+ int namelen;
const char *subkey;
struct remote *remote;
struct branch *branch;
- if (starts_with(key, "branch.")) {
- name = key + 7;
- subkey = strrchr(name, '.');
- if (!subkey)
+ if (parse_config_key(key, "branch", &name, &namelen, &subkey) >= 0) {
+ if (!name)
return 0;
- branch = make_branch(name, subkey - name);
- if (!strcmp(subkey, ".remote")) {
+ branch = make_branch(name, namelen);
+ if (!strcmp(subkey, "remote")) {
return git_config_string(&branch->remote_name, key, value);
- } else if (!strcmp(subkey, ".pushremote")) {
+ } else if (!strcmp(subkey, "pushremote")) {
return git_config_string(&branch->pushremote_name, key, value);
- } else if (!strcmp(subkey, ".merge")) {
+ } else if (!strcmp(subkey, "merge")) {
if (!value)
return config_error_nonbool(key);
add_merge(branch, xstrdup(value));
}
return 0;
}
- if (starts_with(key, "url.")) {
+ if (parse_config_key(key, "url", &name, &namelen, &subkey) >= 0) {
struct rewrite *rewrite;
- name = key + 4;
- subkey = strrchr(name, '.');
- if (!subkey)
+ if (!name)
return 0;
- if (!strcmp(subkey, ".insteadof")) {
- rewrite = make_rewrite(&rewrites, name, subkey - name);
+ if (!strcmp(subkey, "insteadof")) {
+ rewrite = make_rewrite(&rewrites, name, namelen);
if (!value)
return config_error_nonbool(key);
add_instead_of(rewrite, xstrdup(value));
- } else if (!strcmp(subkey, ".pushinsteadof")) {
- rewrite = make_rewrite(&rewrites_push, name, subkey - name);
+ } else if (!strcmp(subkey, "pushinsteadof")) {
+ rewrite = make_rewrite(&rewrites_push, name, namelen);
if (!value)
return config_error_nonbool(key);
add_instead_of(rewrite, xstrdup(value));
}
}
- if (!starts_with(key, "remote."))
+ if (parse_config_key(key, "remote", &name, &namelen, &subkey) < 0)
return 0;
- name = key + 7;
/* Handle remote.* variables */
- if (!strcmp(name, "pushdefault"))
+ if (!name && !strcmp(subkey, "pushdefault"))
return git_config_string(&pushremote_name, key, value);
+ if (!name)
+ return 0;
/* Handle remote.<name>.* variables */
if (*name == '/') {
warning("Config remote shorthand cannot begin with '/': %s",
name);
return 0;
}
- subkey = strrchr(name, '.');
- if (!subkey)
- return 0;
- remote = make_remote(name, subkey - name);
+ remote = make_remote(name, namelen);
remote->origin = REMOTE_CONFIG;
- if (!strcmp(subkey, ".mirror"))
+ if (!strcmp(subkey, "mirror"))
remote->mirror = git_config_bool(key, value);
- else if (!strcmp(subkey, ".skipdefaultupdate"))
+ else if (!strcmp(subkey, "skipdefaultupdate"))
remote->skip_default_update = git_config_bool(key, value);
- else if (!strcmp(subkey, ".skipfetchall"))
+ else if (!strcmp(subkey, "skipfetchall"))
remote->skip_default_update = git_config_bool(key, value);
- else if (!strcmp(subkey, ".prune"))
+ else if (!strcmp(subkey, "prune"))
remote->prune = git_config_bool(key, value);
- else if (!strcmp(subkey, ".url")) {
+ else if (!strcmp(subkey, "url")) {
const char *v;
if (git_config_string(&v, key, value))
return -1;
add_url(remote, v);
- } else if (!strcmp(subkey, ".pushurl")) {
+ } else if (!strcmp(subkey, "pushurl")) {
const char *v;
if (git_config_string(&v, key, value))
return -1;
add_pushurl(remote, v);
- } else if (!strcmp(subkey, ".push")) {
+ } else if (!strcmp(subkey, "push")) {
const char *v;
if (git_config_string(&v, key, value))
return -1;
add_push_refspec(remote, v);
- } else if (!strcmp(subkey, ".fetch")) {
+ } else if (!strcmp(subkey, "fetch")) {
const char *v;
if (git_config_string(&v, key, value))
return -1;
add_fetch_refspec(remote, v);
- } else if (!strcmp(subkey, ".receivepack")) {
+ } else if (!strcmp(subkey, "receivepack")) {
const char *v;
if (git_config_string(&v, key, value))
return -1;
@@ -412,7 +407,7 @@ static int handle_config(const char *key, const char *value, void *cb)
remote->receivepack = v;
else
error("more than one receivepack given, using the first");
- } else if (!strcmp(subkey, ".uploadpack")) {
+ } else if (!strcmp(subkey, "uploadpack")) {
const char *v;
if (git_config_string(&v, key, value))
return -1;
@@ -420,15 +415,18 @@ static int handle_config(const char *key, const char *value, void *cb)
remote->uploadpack = v;
else
error("more than one uploadpack given, using the first");
- } else if (!strcmp(subkey, ".tagopt")) {
+ } else if (!strcmp(subkey, "tagopt")) {
if (!strcmp(value, "--no-tags"))
remote->fetch_tags = -1;
else if (!strcmp(value, "--tags"))
remote->fetch_tags = 2;
- } else if (!strcmp(subkey, ".proxy")) {
+ } else if (!strcmp(subkey, "proxy")) {
return git_config_string((const char **)&remote->http_proxy,
key, value);
- } else if (!strcmp(subkey, ".vcs")) {
+ } else if (!strcmp(subkey, "proxyauthmethod")) {
+ return git_config_string((const char **)&remote->http_proxy_authmethod,
+ key, value);
+ } else if (!strcmp(subkey, "vcs")) {
return git_config_string(&remote->foreign_vcs, key, value);
}
return 0;
@@ -715,18 +713,9 @@ struct remote *pushremote_get(const char *name)
return remote_get_1(name, pushremote_for_branch);
}
-int remote_is_configured(const char *name)
+int remote_is_configured(struct remote *remote)
{
- struct remotes_hash_key lookup;
- struct hashmap_entry lookup_entry;
- read_config();
-
- init_remotes_hash();
- lookup.str = name;
- lookup.len = strlen(name);
- hashmap_entry_init(&lookup_entry, memhash(name, lookup.len));
-
- return hashmap_get(&remotes_hash, &lookup_entry, &lookup) != NULL;
+ return remote && remote->origin;
}
int for_each_remote(each_remote_fn fn, void *priv)
diff --git a/remote.h b/remote.h
index 4a039bae0b..c21fd3788c 100644
--- a/remote.h
+++ b/remote.h
@@ -5,6 +5,7 @@
#include "hashmap.h"
enum {
+ REMOTE_UNCONFIGURED = 0,
REMOTE_CONFIG,
REMOTE_REMOTES,
REMOTE_BRANCHES
@@ -54,11 +55,12 @@ struct remote {
* for curl remotes only
*/
char *http_proxy;
+ char *http_proxy_authmethod;
};
struct remote *remote_get(const char *name);
struct remote *pushremote_get(const char *name);
-int remote_is_configured(const char *name);
+int remote_is_configured(struct remote *remote);
typedef int each_remote_fn(struct remote *remote, void *priv);
int for_each_remote(each_remote_fn fn, void *priv);
diff --git a/rerere.c b/rerere.c
index 403c700c32..587b7e2717 100644
--- a/rerere.c
+++ b/rerere.c
@@ -48,7 +48,7 @@ static int has_rerere_resolution(const struct rerere_id *id)
static struct rerere_id *new_rerere_id_hex(char *hex)
{
struct rerere_id *id = xmalloc(sizeof(*id));
- strcpy(id->hex, hex);
+ xsnprintf(id->hex, sizeof(id->hex), "%s", hex);
return id;
}
@@ -904,7 +904,7 @@ int rerere_forget(struct pathspec *pathspec)
static struct rerere_id *dirname_to_id(const char *name)
{
static struct rerere_id id;
- strcpy(id.hex, name);
+ xsnprintf(id.hex, sizeof(id.hex), "%s", name);
return &id;
}
diff --git a/revision.c b/revision.c
index 224ed1961a..8b2dfe3160 100644
--- a/revision.c
+++ b/revision.c
@@ -1579,10 +1579,7 @@ static void append_prune_data(struct cmdline_pathspec *prune, const char **av)
static void read_pathspec_from_stdin(struct rev_info *revs, struct strbuf *sb,
struct cmdline_pathspec *prune)
{
- while (strbuf_getwholeline(sb, stdin, '\n') != EOF) {
- int len = sb->len;
- if (len && sb->buf[len - 1] == '\n')
- sb->buf[--len] = '\0';
+ while (strbuf_getline(sb, stdin) != EOF) {
ALLOC_GROW(prune->path, prune->nr + 1, prune->alloc);
prune->path[prune->nr++] = xstrdup(sb->buf);
}
@@ -1599,10 +1596,8 @@ static void read_revisions_from_stdin(struct rev_info *revs,
warn_on_object_refname_ambiguity = 0;
strbuf_init(&sb, 1000);
- while (strbuf_getwholeline(&sb, stdin, '\n') != EOF) {
+ while (strbuf_getline(&sb, stdin) != EOF) {
int len = sb.len;
- if (len && sb.buf[len - 1] == '\n')
- sb.buf[--len] = '\0';
if (!len)
break;
if (sb.buf[0] == '-') {
diff --git a/run-command.c b/run-command.c
index 2392b1efe8..c72601056c 100644
--- a/run-command.c
+++ b/run-command.c
@@ -3,6 +3,8 @@
#include "exec_cmd.h"
#include "sigchain.h"
#include "argv-array.h"
+#include "thread-utils.h"
+#include "strbuf.h"
void child_process_init(struct child_process *child)
{
@@ -236,7 +238,7 @@ static int wait_or_whine(pid_t pid, const char *argv0, int in_signal)
error("waitpid is confused (%s)", argv0);
} else if (WIFSIGNALED(status)) {
code = WTERMSIG(status);
- if (code != SIGINT && code != SIGQUIT)
+ if (code != SIGINT && code != SIGQUIT && code != SIGPIPE)
error("%s died of signal %d", argv0, code);
/*
* This return value is chosen so that code & 0xff
@@ -865,3 +867,318 @@ int capture_command(struct child_process *cmd, struct strbuf *buf, size_t hint)
close(cmd->out);
return finish_command(cmd);
}
+
+enum child_state {
+ GIT_CP_FREE,
+ GIT_CP_WORKING,
+ GIT_CP_WAIT_CLEANUP,
+};
+
+struct parallel_processes {
+ void *data;
+
+ int max_processes;
+ int nr_processes;
+
+ get_next_task_fn get_next_task;
+ start_failure_fn start_failure;
+ task_finished_fn task_finished;
+
+ struct {
+ enum child_state state;
+ struct child_process process;
+ struct strbuf err;
+ void *data;
+ } *children;
+ /*
+ * The struct pollfd is logically part of *children,
+ * but the system call expects it as its own array.
+ */
+ struct pollfd *pfd;
+
+ unsigned shutdown : 1;
+
+ int output_owner;
+ struct strbuf buffered_output; /* of finished children */
+};
+
+static int default_start_failure(struct strbuf *err,
+ void *pp_cb,
+ void *pp_task_cb)
+{
+ return 0;
+}
+
+static int default_task_finished(int result,
+ struct strbuf *err,
+ void *pp_cb,
+ void *pp_task_cb)
+{
+ return 0;
+}
+
+static void kill_children(struct parallel_processes *pp, int signo)
+{
+ int i, n = pp->max_processes;
+
+ for (i = 0; i < n; i++)
+ if (pp->children[i].state == GIT_CP_WORKING)
+ kill(pp->children[i].process.pid, signo);
+}
+
+static struct parallel_processes *pp_for_signal;
+
+static void handle_children_on_signal(int signo)
+{
+ kill_children(pp_for_signal, signo);
+ sigchain_pop(signo);
+ raise(signo);
+}
+
+static void pp_init(struct parallel_processes *pp,
+ int n,
+ get_next_task_fn get_next_task,
+ start_failure_fn start_failure,
+ task_finished_fn task_finished,
+ void *data)
+{
+ int i;
+
+ if (n < 1)
+ n = online_cpus();
+
+ pp->max_processes = n;
+
+ trace_printf("run_processes_parallel: preparing to run up to %d tasks", n);
+
+ pp->data = data;
+ if (!get_next_task)
+ die("BUG: you need to specify a get_next_task function");
+ pp->get_next_task = get_next_task;
+
+ pp->start_failure = start_failure ? start_failure : default_start_failure;
+ pp->task_finished = task_finished ? task_finished : default_task_finished;
+
+ pp->nr_processes = 0;
+ pp->output_owner = 0;
+ pp->shutdown = 0;
+ pp->children = xcalloc(n, sizeof(*pp->children));
+ pp->pfd = xcalloc(n, sizeof(*pp->pfd));
+ strbuf_init(&pp->buffered_output, 0);
+
+ for (i = 0; i < n; i++) {
+ strbuf_init(&pp->children[i].err, 0);
+ child_process_init(&pp->children[i].process);
+ pp->pfd[i].events = POLLIN | POLLHUP;
+ pp->pfd[i].fd = -1;
+ }
+
+ pp_for_signal = pp;
+ sigchain_push_common(handle_children_on_signal);
+}
+
+static void pp_cleanup(struct parallel_processes *pp)
+{
+ int i;
+
+ trace_printf("run_processes_parallel: done");
+ for (i = 0; i < pp->max_processes; i++) {
+ strbuf_release(&pp->children[i].err);
+ child_process_clear(&pp->children[i].process);
+ }
+
+ free(pp->children);
+ free(pp->pfd);
+
+ /*
+ * When get_next_task added messages to the buffer in its last
+ * iteration, the buffered output is non empty.
+ */
+ fputs(pp->buffered_output.buf, stderr);
+ strbuf_release(&pp->buffered_output);
+
+ sigchain_pop_common();
+}
+
+/* returns
+ * 0 if a new task was started.
+ * 1 if no new jobs was started (get_next_task ran out of work, non critical
+ * problem with starting a new command)
+ * <0 no new job was started, user wishes to shutdown early. Use negative code
+ * to signal the children.
+ */
+static int pp_start_one(struct parallel_processes *pp)
+{
+ int i, code;
+
+ for (i = 0; i < pp->max_processes; i++)
+ if (pp->children[i].state == GIT_CP_FREE)
+ break;
+ if (i == pp->max_processes)
+ die("BUG: bookkeeping is hard");
+
+ code = pp->get_next_task(&pp->children[i].process,
+ &pp->children[i].err,
+ pp->data,
+ &pp->children[i].data);
+ if (!code) {
+ strbuf_addbuf(&pp->buffered_output, &pp->children[i].err);
+ strbuf_reset(&pp->children[i].err);
+ return 1;
+ }
+ pp->children[i].process.err = -1;
+ pp->children[i].process.stdout_to_stderr = 1;
+ pp->children[i].process.no_stdin = 1;
+
+ if (start_command(&pp->children[i].process)) {
+ code = pp->start_failure(&pp->children[i].err,
+ pp->data,
+ &pp->children[i].data);
+ strbuf_addbuf(&pp->buffered_output, &pp->children[i].err);
+ strbuf_reset(&pp->children[i].err);
+ if (code)
+ pp->shutdown = 1;
+ return code;
+ }
+
+ pp->nr_processes++;
+ pp->children[i].state = GIT_CP_WORKING;
+ pp->pfd[i].fd = pp->children[i].process.err;
+ return 0;
+}
+
+static void pp_buffer_stderr(struct parallel_processes *pp, int output_timeout)
+{
+ int i;
+
+ while ((i = poll(pp->pfd, pp->max_processes, output_timeout)) < 0) {
+ if (errno == EINTR)
+ continue;
+ pp_cleanup(pp);
+ die_errno("poll");
+ }
+
+ /* Buffer output from all pipes. */
+ for (i = 0; i < pp->max_processes; i++) {
+ if (pp->children[i].state == GIT_CP_WORKING &&
+ pp->pfd[i].revents & (POLLIN | POLLHUP)) {
+ int n = strbuf_read_once(&pp->children[i].err,
+ pp->children[i].process.err, 0);
+ if (n == 0) {
+ close(pp->children[i].process.err);
+ pp->children[i].state = GIT_CP_WAIT_CLEANUP;
+ } else if (n < 0)
+ if (errno != EAGAIN)
+ die_errno("read");
+ }
+ }
+}
+
+static void pp_output(struct parallel_processes *pp)
+{
+ int i = pp->output_owner;
+ if (pp->children[i].state == GIT_CP_WORKING &&
+ pp->children[i].err.len) {
+ fputs(pp->children[i].err.buf, stderr);
+ strbuf_reset(&pp->children[i].err);
+ }
+}
+
+static int pp_collect_finished(struct parallel_processes *pp)
+{
+ int i, code;
+ int n = pp->max_processes;
+ int result = 0;
+
+ while (pp->nr_processes > 0) {
+ for (i = 0; i < pp->max_processes; i++)
+ if (pp->children[i].state == GIT_CP_WAIT_CLEANUP)
+ break;
+ if (i == pp->max_processes)
+ break;
+
+ code = finish_command(&pp->children[i].process);
+
+ code = pp->task_finished(code,
+ &pp->children[i].err, pp->data,
+ &pp->children[i].data);
+
+ if (code)
+ result = code;
+ if (code < 0)
+ break;
+
+ pp->nr_processes--;
+ pp->children[i].state = GIT_CP_FREE;
+ pp->pfd[i].fd = -1;
+ child_process_init(&pp->children[i].process);
+
+ if (i != pp->output_owner) {
+ strbuf_addbuf(&pp->buffered_output, &pp->children[i].err);
+ strbuf_reset(&pp->children[i].err);
+ } else {
+ fputs(pp->children[i].err.buf, stderr);
+ strbuf_reset(&pp->children[i].err);
+
+ /* Output all other finished child processes */
+ fputs(pp->buffered_output.buf, stderr);
+ strbuf_reset(&pp->buffered_output);
+
+ /*
+ * Pick next process to output live.
+ * NEEDSWORK:
+ * For now we pick it randomly by doing a round
+ * robin. Later we may want to pick the one with
+ * the most output or the longest or shortest
+ * running process time.
+ */
+ for (i = 0; i < n; i++)
+ if (pp->children[(pp->output_owner + i) % n].state == GIT_CP_WORKING)
+ break;
+ pp->output_owner = (pp->output_owner + i) % n;
+ }
+ }
+ return result;
+}
+
+int run_processes_parallel(int n,
+ get_next_task_fn get_next_task,
+ start_failure_fn start_failure,
+ task_finished_fn task_finished,
+ void *pp_cb)
+{
+ int i, code;
+ int output_timeout = 100;
+ int spawn_cap = 4;
+ struct parallel_processes pp;
+
+ pp_init(&pp, n, get_next_task, start_failure, task_finished, pp_cb);
+ while (1) {
+ for (i = 0;
+ i < spawn_cap && !pp.shutdown &&
+ pp.nr_processes < pp.max_processes;
+ i++) {
+ code = pp_start_one(&pp);
+ if (!code)
+ continue;
+ if (code < 0) {
+ pp.shutdown = 1;
+ kill_children(&pp, -code);
+ }
+ break;
+ }
+ if (!pp.nr_processes)
+ break;
+ pp_buffer_stderr(&pp, output_timeout);
+ pp_output(&pp);
+ code = pp_collect_finished(&pp);
+ if (code) {
+ pp.shutdown = 1;
+ if (code < 0)
+ kill_children(&pp, -code);
+ }
+ }
+
+ pp_cleanup(&pp);
+ return 0;
+}
diff --git a/run-command.h b/run-command.h
index c0969c7695..3d1e59e26e 100644
--- a/run-command.h
+++ b/run-command.h
@@ -123,4 +123,81 @@ int finish_async(struct async *async);
int in_async(void);
void NORETURN async_exit(int code);
+/**
+ * This callback should initialize the child process and preload the
+ * error channel if desired. The preloading of is useful if you want to
+ * have a message printed directly before the output of the child process.
+ * pp_cb is the callback cookie as passed to run_processes_parallel.
+ * You can store a child process specific callback cookie in pp_task_cb.
+ *
+ * Even after returning 0 to indicate that there are no more processes,
+ * this function will be called again until there are no more running
+ * child processes.
+ *
+ * Return 1 if the next child is ready to run.
+ * Return 0 if there are currently no more tasks to be processed.
+ * To send a signal to other child processes for abortion,
+ * return the negative signal number.
+ */
+typedef int (*get_next_task_fn)(struct child_process *cp,
+ struct strbuf *err,
+ void *pp_cb,
+ void **pp_task_cb);
+
+/**
+ * This callback is called whenever there are problems starting
+ * a new process.
+ *
+ * You must not write to stdout or stderr in this function. Add your
+ * message to the strbuf err instead, which will be printed without
+ * messing up the output of the other parallel processes.
+ *
+ * pp_cb is the callback cookie as passed into run_processes_parallel,
+ * pp_task_cb is the callback cookie as passed into get_next_task_fn.
+ *
+ * Return 0 to continue the parallel processing. To abort return non zero.
+ * To send a signal to other child processes for abortion, return
+ * the negative signal number.
+ */
+typedef int (*start_failure_fn)(struct strbuf *err,
+ void *pp_cb,
+ void *pp_task_cb);
+
+/**
+ * This callback is called on every child process that finished processing.
+ *
+ * You must not write to stdout or stderr in this function. Add your
+ * message to the strbuf err instead, which will be printed without
+ * messing up the output of the other parallel processes.
+ *
+ * pp_cb is the callback cookie as passed into run_processes_parallel,
+ * pp_task_cb is the callback cookie as passed into get_next_task_fn.
+ *
+ * Return 0 to continue the parallel processing. To abort return non zero.
+ * To send a signal to other child processes for abortion, return
+ * the negative signal number.
+ */
+typedef int (*task_finished_fn)(int result,
+ struct strbuf *err,
+ void *pp_cb,
+ void *pp_task_cb);
+
+/**
+ * Runs up to n processes at the same time. Whenever a process can be
+ * started, the callback get_next_task_fn is called to obtain the data
+ * required to start another child process.
+ *
+ * The children started via this function run in parallel. Their output
+ * (both stdout and stderr) is routed to stderr in a manner that output
+ * from different tasks does not interleave.
+ *
+ * start_failure_fn and task_finished_fn can be NULL to omit any
+ * special handling.
+ */
+int run_processes_parallel(int n,
+ get_next_task_fn,
+ start_failure_fn,
+ task_finished_fn,
+ void *pp_cb);
+
#endif
diff --git a/sequencer.c b/sequencer.c
index e60e75ad74..e66f2fe0f0 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -877,7 +877,7 @@ static int sequencer_rollback(struct replay_opts *opts)
if (!f)
return error(_("cannot open %s: %s"), git_path_head_file(),
strerror(errno));
- if (strbuf_getline(&buf, f, '\n')) {
+ if (strbuf_getline_lf(&buf, f)) {
error(_("cannot read %s: %s"), git_path_head_file(),
ferror(f) ? strerror(errno) : _("unexpected end of file"));
fclose(f);
diff --git a/sha1_file.c b/sha1_file.c
index b516874473..d0f2aa029b 100644
--- a/sha1_file.c
+++ b/sha1_file.c
@@ -396,7 +396,7 @@ void add_to_alternates_file(const char *reference)
struct strbuf line = STRBUF_INIT;
int found = 0;
- while (strbuf_getline(&line, in, '\n') != EOF) {
+ while (strbuf_getline(&line, in) != EOF) {
if (!strcmp(reference, line.buf)) {
found = 1;
break;
diff --git a/sha1_name.c b/sha1_name.c
index ab5a163c9b..3acf221f92 100644
--- a/sha1_name.c
+++ b/sha1_name.c
@@ -847,8 +847,12 @@ static int get_sha1_1(const char *name, int len, unsigned char *sha1, unsigned l
* through history and returning the first commit whose message starts
* the given regular expression.
*
- * For future extension, ':/!' is reserved. If you want to match a message
- * beginning with a '!', you have to repeat the exclamation mark.
+ * For negative-matching, prefix the pattern-part with '!-', like: ':/!-WIP'.
+ *
+ * For a literal '!' character at the beginning of a pattern, you have to repeat
+ * that, like: ':/!!foo'
+ *
+ * For future extension, all other sequences beginning with ':/!' are reserved.
*/
/* Remember to update object flag allocation in object.h */
@@ -877,12 +881,18 @@ static int get_sha1_oneline(const char *prefix, unsigned char *sha1,
{
struct commit_list *backup = NULL, *l;
int found = 0;
+ int negative = 0;
regex_t regex;
if (prefix[0] == '!') {
- if (prefix[1] != '!')
- return -1;
prefix++;
+
+ if (prefix[0] == '-') {
+ prefix++;
+ negative = 1;
+ } else if (prefix[0] != '!') {
+ return -1;
+ }
}
if (regcomp(&regex, prefix, REG_EXTENDED))
@@ -902,7 +912,7 @@ static int get_sha1_oneline(const char *prefix, unsigned char *sha1,
continue;
buf = get_commit_buffer(commit, NULL);
p = strstr(buf, "\n\n");
- matches = p && !regexec(&regex, p + 2, 0, NULL, 0);
+ matches = negative ^ (p && !regexec(&regex, p + 2, 0, NULL, 0));
unuse_commit_buffer(commit, buf);
if (matches) {
diff --git a/shell.c b/shell.c
index ace62e4b65..c5439a63e9 100644
--- a/shell.c
+++ b/shell.c
@@ -88,7 +88,7 @@ static void run_shell(void)
int count;
fprintf(stderr, "git> ");
- if (strbuf_getline(&line, stdin, '\n') == EOF) {
+ if (strbuf_getline_lf(&line, stdin) == EOF) {
fprintf(stderr, "\n");
strbuf_release(&line);
break;
diff --git a/sigchain.c b/sigchain.c
index faa375d5d8..2ac43bbd28 100644
--- a/sigchain.c
+++ b/sigchain.c
@@ -50,3 +50,12 @@ void sigchain_push_common(sigchain_fun f)
sigchain_push(SIGQUIT, f);
sigchain_push(SIGPIPE, f);
}
+
+void sigchain_pop_common(void)
+{
+ sigchain_pop(SIGPIPE);
+ sigchain_pop(SIGQUIT);
+ sigchain_pop(SIGTERM);
+ sigchain_pop(SIGHUP);
+ sigchain_pop(SIGINT);
+}
diff --git a/sigchain.h b/sigchain.h
index 618083bce0..138b20f54b 100644
--- a/sigchain.h
+++ b/sigchain.h
@@ -7,5 +7,6 @@ int sigchain_push(int sig, sigchain_fun f);
int sigchain_pop(int sig);
void sigchain_push_common(sigchain_fun f);
+void sigchain_pop_common(void);
#endif /* SIGCHAIN_H */
diff --git a/strbuf.c b/strbuf.c
index de7a7c2730..f60e2ee72b 100644
--- a/strbuf.c
+++ b/strbuf.c
@@ -384,6 +384,17 @@ ssize_t strbuf_read(struct strbuf *sb, int fd, size_t hint)
return sb->len - oldlen;
}
+ssize_t strbuf_read_once(struct strbuf *sb, int fd, size_t hint)
+{
+ ssize_t cnt;
+
+ strbuf_grow(sb, hint ? hint : 8192);
+ cnt = xread(fd, sb->buf + sb->len, sb->alloc - sb->len - 1);
+ if (cnt > 0)
+ strbuf_setlen(sb, sb->len + cnt);
+ return cnt;
+}
+
#define STRBUF_MAXLINK (2*PATH_MAX)
int strbuf_readlink(struct strbuf *sb, const char *path, size_t hint)
@@ -501,15 +512,37 @@ int strbuf_getwholeline(struct strbuf *sb, FILE *fp, int term)
}
#endif
-int strbuf_getline(struct strbuf *sb, FILE *fp, int term)
+static int strbuf_getdelim(struct strbuf *sb, FILE *fp, int term)
{
if (strbuf_getwholeline(sb, fp, term))
return EOF;
- if (sb->buf[sb->len-1] == term)
- strbuf_setlen(sb, sb->len-1);
+ if (sb->buf[sb->len - 1] == term)
+ strbuf_setlen(sb, sb->len - 1);
return 0;
}
+int strbuf_getline(struct strbuf *sb, FILE *fp)
+{
+ if (strbuf_getwholeline(sb, fp, '\n'))
+ return EOF;
+ if (sb->buf[sb->len - 1] == '\n') {
+ strbuf_setlen(sb, sb->len - 1);
+ if (sb->len && sb->buf[sb->len - 1] == '\r')
+ strbuf_setlen(sb, sb->len - 1);
+ }
+ return 0;
+}
+
+int strbuf_getline_lf(struct strbuf *sb, FILE *fp)
+{
+ return strbuf_getdelim(sb, fp, '\n');
+}
+
+int strbuf_getline_nul(struct strbuf *sb, FILE *fp)
+{
+ return strbuf_getdelim(sb, fp, '\0');
+}
+
int strbuf_getwholeline_fd(struct strbuf *sb, int fd, int term)
{
strbuf_reset(sb);
diff --git a/strbuf.h b/strbuf.h
index 7123fca7af..f72fd14c2e 100644
--- a/strbuf.h
+++ b/strbuf.h
@@ -354,8 +354,8 @@ extern void strbuf_addftime(struct strbuf *sb, const char *fmt, const struct tm
*
* NOTE: The buffer is rewound if the read fails. If -1 is returned,
* `errno` must be consulted, like you would do for `read(3)`.
- * `strbuf_read()`, `strbuf_read_file()` and `strbuf_getline()` has the
- * same behaviour as well.
+ * `strbuf_read()`, `strbuf_read_file()` and `strbuf_getline_*()`
+ * family of functions have the same behaviour as well.
*/
extern size_t strbuf_fread(struct strbuf *, size_t, FILE *);
@@ -367,6 +367,14 @@ extern size_t strbuf_fread(struct strbuf *, size_t, FILE *);
extern ssize_t strbuf_read(struct strbuf *, int fd, size_t hint);
/**
+ * Read the contents of a given file descriptor partially by using only one
+ * attempt of xread. The third argument can be used to give a hint about the
+ * file size, to avoid reallocs. Returns the number of new bytes appended to
+ * the sb.
+ */
+extern ssize_t strbuf_read_once(struct strbuf *, int fd, size_t hint);
+
+/**
* Read the contents of a file, specified by its path. The third argument
* can be used to give a hint about the file size, to avoid reallocs.
*/
@@ -379,14 +387,31 @@ extern ssize_t strbuf_read_file(struct strbuf *sb, const char *path, size_t hint
extern int strbuf_readlink(struct strbuf *sb, const char *path, size_t hint);
/**
- * Read a line from a FILE *, overwriting the existing contents
- * of the strbuf. The second argument specifies the line
- * terminator character, typically `'\n'`.
+ * Read a line from a FILE *, overwriting the existing contents of
+ * the strbuf. The strbuf_getline*() family of functions share
+ * this signature, but have different line termination conventions.
+ *
* Reading stops after the terminator or at EOF. The terminator
* is removed from the buffer before returning. Returns 0 unless
* there was nothing left before EOF, in which case it returns `EOF`.
*/
-extern int strbuf_getline(struct strbuf *, FILE *, int);
+typedef int (*strbuf_getline_fn)(struct strbuf *, FILE *);
+
+/* Uses LF as the line terminator */
+extern int strbuf_getline_lf(struct strbuf *sb, FILE *fp);
+
+/* Uses NUL as the line terminator */
+extern int strbuf_getline_nul(struct strbuf *sb, FILE *fp);
+
+/*
+ * Similar to strbuf_getline_lf(), but additionally treats a CR that
+ * comes immediately before the LF as part of the terminator.
+ * This is the most friendly version to be used to read "text" files
+ * that can come from platforms whose native text format is CRLF
+ * terminated.
+ */
+extern int strbuf_getline(struct strbuf *, FILE *);
+
/**
* Like `strbuf_getline`, but keeps the trailing terminator (if
diff --git a/submodule-config.c b/submodule-config.c
index fe8ceabf30..92502b594d 100644
--- a/submodule-config.c
+++ b/submodule-config.c
@@ -427,8 +427,8 @@ static const struct submodule *config_from(struct submodule_cache *cache,
parameter.commit_sha1 = commit_sha1;
parameter.gitmodules_sha1 = sha1;
parameter.overwrite = 0;
- git_config_from_buf(parse_config, rev.buf, config, config_size,
- &parameter);
+ git_config_from_mem(parse_config, "submodule-blob", rev.buf,
+ config, config_size, &parameter);
free(config);
switch (lookup_type) {
diff --git a/submodule.c b/submodule.c
index 2a6cc9e8ba..62c4356c50 100644
--- a/submodule.c
+++ b/submodule.c
@@ -12,6 +12,7 @@
#include "sha1-array.h"
#include "argv-array.h"
#include "blob.h"
+#include "thread-utils.h"
static int config_fetch_recurse_submodules = RECURSE_SUBMODULES_ON_DEMAND;
static struct string_list changed_submodule_paths;
@@ -610,37 +611,28 @@ static void calculate_changed_submodule_paths(void)
initialized_fetch_ref_tips = 0;
}
-int fetch_populated_submodules(const struct argv_array *options,
- const char *prefix, int command_line_option,
- int quiet)
+struct submodule_parallel_fetch {
+ int count;
+ struct argv_array args;
+ const char *work_tree;
+ const char *prefix;
+ int command_line_option;
+ int quiet;
+ int result;
+};
+#define SPF_INIT {0, ARGV_ARRAY_INIT, NULL, NULL, 0, 0, 0}
+
+static int get_next_submodule(struct child_process *cp,
+ struct strbuf *err, void *data, void **task_cb)
{
- int i, result = 0;
- struct child_process cp = CHILD_PROCESS_INIT;
- struct argv_array argv = ARGV_ARRAY_INIT;
- const char *work_tree = get_git_work_tree();
- if (!work_tree)
- goto out;
-
- if (read_cache() < 0)
- die("index file corrupt");
-
- argv_array_push(&argv, "fetch");
- for (i = 0; i < options->argc; i++)
- argv_array_push(&argv, options->argv[i]);
- argv_array_push(&argv, "--recurse-submodules-default");
- /* default value, "--submodule-prefix" and its value are added later */
-
- cp.env = local_repo_env;
- cp.git_cmd = 1;
- cp.no_stdin = 1;
-
- calculate_changed_submodule_paths();
+ int ret = 0;
+ struct submodule_parallel_fetch *spf = data;
- for (i = 0; i < active_nr; i++) {
+ for (; spf->count < active_nr; spf->count++) {
struct strbuf submodule_path = STRBUF_INIT;
struct strbuf submodule_git_dir = STRBUF_INIT;
struct strbuf submodule_prefix = STRBUF_INIT;
- const struct cache_entry *ce = active_cache[i];
+ const struct cache_entry *ce = active_cache[spf->count];
const char *git_dir, *default_argv;
const struct submodule *submodule;
@@ -652,7 +644,7 @@ int fetch_populated_submodules(const struct argv_array *options,
submodule = submodule_from_name(null_sha1, ce->name);
default_argv = "yes";
- if (command_line_option == RECURSE_SUBMODULES_DEFAULT) {
+ if (spf->command_line_option == RECURSE_SUBMODULES_DEFAULT) {
if (submodule &&
submodule->fetch_recurse !=
RECURSE_SUBMODULES_NONE) {
@@ -675,40 +667,100 @@ int fetch_populated_submodules(const struct argv_array *options,
default_argv = "on-demand";
}
}
- } else if (command_line_option == RECURSE_SUBMODULES_ON_DEMAND) {
+ } else if (spf->command_line_option == RECURSE_SUBMODULES_ON_DEMAND) {
if (!unsorted_string_list_lookup(&changed_submodule_paths, ce->name))
continue;
default_argv = "on-demand";
}
- strbuf_addf(&submodule_path, "%s/%s", work_tree, ce->name);
+ strbuf_addf(&submodule_path, "%s/%s", spf->work_tree, ce->name);
strbuf_addf(&submodule_git_dir, "%s/.git", submodule_path.buf);
- strbuf_addf(&submodule_prefix, "%s%s/", prefix, ce->name);
+ strbuf_addf(&submodule_prefix, "%s%s/", spf->prefix, ce->name);
git_dir = read_gitfile(submodule_git_dir.buf);
if (!git_dir)
git_dir = submodule_git_dir.buf;
if (is_directory(git_dir)) {
- if (!quiet)
- printf("Fetching submodule %s%s\n", prefix, ce->name);
- cp.dir = submodule_path.buf;
- argv_array_push(&argv, default_argv);
- argv_array_push(&argv, "--submodule-prefix");
- argv_array_push(&argv, submodule_prefix.buf);
- cp.argv = argv.argv;
- if (run_command(&cp))
- result = 1;
- argv_array_pop(&argv);
- argv_array_pop(&argv);
- argv_array_pop(&argv);
+ child_process_init(cp);
+ cp->dir = strbuf_detach(&submodule_path, NULL);
+ cp->env = local_repo_env;
+ cp->git_cmd = 1;
+ if (!spf->quiet)
+ strbuf_addf(err, "Fetching submodule %s%s\n",
+ spf->prefix, ce->name);
+ argv_array_init(&cp->args);
+ argv_array_pushv(&cp->args, spf->args.argv);
+ argv_array_push(&cp->args, default_argv);
+ argv_array_push(&cp->args, "--submodule-prefix");
+ argv_array_push(&cp->args, submodule_prefix.buf);
+ ret = 1;
}
strbuf_release(&submodule_path);
strbuf_release(&submodule_git_dir);
strbuf_release(&submodule_prefix);
+ if (ret) {
+ spf->count++;
+ return 1;
+ }
}
- argv_array_clear(&argv);
+ return 0;
+}
+
+static int fetch_start_failure(struct strbuf *err,
+ void *cb, void *task_cb)
+{
+ struct submodule_parallel_fetch *spf = cb;
+
+ spf->result = 1;
+
+ return 0;
+}
+
+static int fetch_finish(int retvalue, struct strbuf *err,
+ void *cb, void *task_cb)
+{
+ struct submodule_parallel_fetch *spf = cb;
+
+ if (retvalue)
+ spf->result = 1;
+
+ return 0;
+}
+
+int fetch_populated_submodules(const struct argv_array *options,
+ const char *prefix, int command_line_option,
+ int quiet, int max_parallel_jobs)
+{
+ int i;
+ struct submodule_parallel_fetch spf = SPF_INIT;
+
+ spf.work_tree = get_git_work_tree();
+ spf.command_line_option = command_line_option;
+ spf.quiet = quiet;
+ spf.prefix = prefix;
+
+ if (!spf.work_tree)
+ goto out;
+
+ if (read_cache() < 0)
+ die("index file corrupt");
+
+ argv_array_push(&spf.args, "fetch");
+ for (i = 0; i < options->argc; i++)
+ argv_array_push(&spf.args, options->argv[i]);
+ argv_array_push(&spf.args, "--recurse-submodules-default");
+ /* default value, "--submodule-prefix" and its value are added later */
+
+ calculate_changed_submodule_paths();
+ run_processes_parallel(max_parallel_jobs,
+ get_next_submodule,
+ fetch_start_failure,
+ fetch_finish,
+ &spf);
+
+ argv_array_clear(&spf.args);
out:
string_list_clear(&changed_submodule_paths, 1);
- return result;
+ return spf.result;
}
unsigned is_submodule_modified(const char *path, int ignore_untracked)
diff --git a/submodule.h b/submodule.h
index ddff512109..e06eaa5ebb 100644
--- a/submodule.h
+++ b/submodule.h
@@ -32,7 +32,7 @@ void set_config_fetch_recurse_submodules(int value);
void check_for_new_submodule_commits(unsigned char new_sha1[20]);
int fetch_populated_submodules(const struct argv_array *options,
const char *prefix, int command_line_option,
- int quiet);
+ int quiet, int max_parallel_jobs);
unsigned is_submodule_modified(const char *path, int ignore_untracked);
int submodule_uses_gitfile(const char *path);
int ok_to_remove_submodule(const char *path);
diff --git a/t/Makefile b/t/Makefile
index 43b15e36ae..18e2b28b26 100644
--- a/t/Makefile
+++ b/t/Makefile
@@ -27,7 +27,6 @@ PERL_PATH_SQ = $(subst ','\'',$(PERL_PATH))
TEST_RESULTS_DIRECTORY_SQ = $(subst ','\'',$(TEST_RESULTS_DIRECTORY))
T = $(sort $(wildcard t[0-9][0-9][0-9][0-9]-*.sh))
-TSVN = $(sort $(wildcard t91[0-9][0-9]-*.sh))
TGITWEB = $(sort $(wildcard t95[0-9][0-9]-*.sh))
THELPERS = $(sort $(filter-out $(T),$(wildcard *.sh)))
@@ -77,11 +76,6 @@ aggregate-results:
echo "$$f"; \
done | '$(SHELL_PATH_SQ)' ./aggregate-results.sh
-# we can test NO_OPTIMIZE_COMMITS independently of LC_ALL
-full-svn-test:
- $(MAKE) $(TSVN) GIT_SVN_NO_OPTIMIZE_COMMITS=1 LC_ALL=C
- $(MAKE) $(TSVN) GIT_SVN_NO_OPTIMIZE_COMMITS=0 LC_ALL=en_US.UTF-8
-
gitweb-test:
$(MAKE) $(TGITWEB)
diff --git a/t/lib-git-daemon.sh b/t/lib-git-daemon.sh
index bc4b3412fb..340534c064 100644
--- a/t/lib-git-daemon.sh
+++ b/t/lib-git-daemon.sh
@@ -23,6 +23,11 @@ then
test_done
fi
+if test_have_prereq !PIPE
+then
+ test_skip_or_die $GIT_TEST_GIT_DAEMON "file system does not support FIFOs"
+fi
+
LIB_GIT_DAEMON_PORT=${LIB_GIT_DAEMON_PORT-${this_test#t}}
GIT_DAEMON_PID=
diff --git a/t/lib-git-svn.sh b/t/lib-git-svn.sh
index b0ec12ff6c..6a50b8793e 100644
--- a/t/lib-git-svn.sh
+++ b/t/lib-git-svn.sh
@@ -186,3 +186,15 @@ start_svnserve () {
--listen-host 127.0.0.1 &
}
+prepare_a_utf8_locale () {
+ a_utf8_locale=$(locale -a | sed -n '/\.[uU][tT][fF]-*8$/{
+ p
+ q
+}')
+ if test -n "$a_utf8_locale"
+ then
+ test_set_prereq UTF8
+ else
+ say "# UTF-8 locale not available, some tests are skipped"
+ fi
+}
diff --git a/t/lib-httpd.sh b/t/lib-httpd.sh
index e9714467d0..f9f3e5fd82 100644
--- a/t/lib-httpd.sh
+++ b/t/lib-httpd.sh
@@ -98,8 +98,8 @@ then
test_skip_or_die $GIT_TEST_HTTPD "no web server found at '$LIB_HTTPD_PATH'"
fi
-HTTPD_VERSION=`$LIB_HTTPD_PATH -v | \
- sed -n 's/^Server version: Apache\/\([0-9]*\)\..*$/\1/p; q'`
+HTTPD_VERSION=$($LIB_HTTPD_PATH -v | \
+ sed -n 's/^Server version: Apache\/\([0-9]*\)\..*$/\1/p; q')
if test -n "$HTTPD_VERSION"
then
diff --git a/t/lib-httpd/apache.conf b/t/lib-httpd/apache.conf
index 7d15e6d44c..f667e7ce2f 100644
--- a/t/lib-httpd/apache.conf
+++ b/t/lib-httpd/apache.conf
@@ -64,6 +64,9 @@ LockFile accept.lock
<IfModule !mod_mpm_prefork.c>
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
</IfModule>
+<IfModule !mod_unixd.c>
+ LoadModule unixd_module modules/mod_unixd.so
+</IfModule>
</IfVersion>
PassEnv GIT_VALGRIND
diff --git a/t/t0001-init.sh b/t/t0001-init.sh
index f91bbcfc85..a5b9e7a4c7 100755
--- a/t/t0001-init.sh
+++ b/t/t0001-init.sh
@@ -87,6 +87,21 @@ test_expect_success 'plain nested in bare through aliased command' '
check_config bare-ancestor-aliased.git/plain-nested/.git false unset
'
+test_expect_success 'No extra GIT_* on alias scripts' '
+ write_script script <<-\EOF &&
+ env |
+ sed -n \
+ -e "/^GIT_PREFIX=/d" \
+ -e "/^GIT_TEXTDOMAINDIR=/d" \
+ -e "/^GIT_/s/=.*//p" |
+ sort
+ EOF
+ ./script >expected &&
+ git config alias.script \!./script &&
+ ( mkdir sub && cd sub && git script >../actual ) &&
+ test_cmp expected actual
+'
+
test_expect_success 'plain with GIT_WORK_TREE' '
mkdir plain-wt &&
test_must_fail env GIT_WORK_TREE="$(pwd)/plain-wt" git init plain-wt
diff --git a/t/t0002-gitfile.sh b/t/t0002-gitfile.sh
index 3afe0125c9..9670e8cbe6 100755
--- a/t/t0002-gitfile.sh
+++ b/t/t0002-gitfile.sh
@@ -99,7 +99,7 @@ test_expect_success 'check rev-list' '
test "$SHA" = "$(git rev-list HEAD)"
'
-test_expect_failure 'setup_git_dir twice in subdir' '
+test_expect_success 'setup_git_dir twice in subdir' '
git init sgd &&
(
cd sgd &&
diff --git a/t/t0008-ignores.sh b/t/t0008-ignores.sh
index 4ef5ed484c..89544dd833 100755
--- a/t/t0008-ignores.sh
+++ b/t/t0008-ignores.sh
@@ -5,7 +5,7 @@ test_description=check-ignore
. ./test-lib.sh
init_vars () {
- global_excludes="$(pwd)/global-excludes"
+ global_excludes="global-excludes"
}
enable_global_excludes () {
diff --git a/t/t0021-conversion.sh b/t/t0021-conversion.sh
index 718efa04d3..7bac2bcf26 100755
--- a/t/t0021-conversion.sh
+++ b/t/t0021-conversion.sh
@@ -252,4 +252,20 @@ test_expect_success "filter: smudge empty file" '
test_cmp expected filtered-empty-in-repo
'
+test_expect_success 'disable filter with empty override' '
+ test_config_global filter.disable.smudge false &&
+ test_config_global filter.disable.clean false &&
+ test_config filter.disable.smudge false &&
+ test_config filter.disable.clean false &&
+
+ echo "*.disable filter=disable" >.gitattributes &&
+
+ echo test >test.disable &&
+ git -c filter.disable.clean= add test.disable 2>err &&
+ test_must_be_empty err &&
+ rm -f test.disable &&
+ git -c filter.disable.smudge= checkout -- test.disable 2>err &&
+ test_must_be_empty err
+'
+
test_done
diff --git a/t/t0027-auto-crlf.sh b/t/t0027-auto-crlf.sh
index b343651504..f33962b178 100755
--- a/t/t0027-auto-crlf.sh
+++ b/t/t0027-auto-crlf.sh
@@ -21,56 +21,45 @@ compare_ws_file () {
pfx=$1
exp=$2.expect
act=$pfx.actual.$3
- tr '\015\000' QN <"$2" >"$exp" &&
- tr '\015\000' QN <"$3" >"$act" &&
- test_cmp $exp $act &&
- rm $exp $act
+ tr '\015\000abcdef0123456789' QN00000000000000000 <"$2" >"$exp" &&
+ tr '\015\000abcdef0123456789' QN00000000000000000 <"$3" >"$act" &&
+ test_cmp "$exp" "$act" &&
+ rm "$exp" "$act"
}
create_gitattributes () {
- attr=$1
- case "$attr" in
- auto)
- echo "*.txt text=auto" >.gitattributes
- ;;
- text)
- echo "*.txt text" >.gitattributes
- ;;
- -text)
- echo "*.txt -text" >.gitattributes
- ;;
- crlf)
- echo "*.txt eol=crlf" >.gitattributes
- ;;
- lf)
- echo "*.txt eol=lf" >.gitattributes
- ;;
- "")
- echo >.gitattributes
- ;;
- *)
- echo >&2 invalid attribute: $attr
- exit 1
- ;;
- esac
+ {
+ while test "$#" != 0
+ do
+ case "$1" in
+ auto) echo '*.txt text=auto' ;;
+ ident) echo '*.txt ident' ;;
+ text) echo '*.txt text' ;;
+ -text) echo '*.txt -text' ;;
+ crlf) echo '*.txt eol=crlf' ;;
+ lf) echo '*.txt eol=lf' ;;
+ "") ;;
+ *)
+ echo >&2 invalid attribute: "$1"
+ exit 1
+ ;;
+ esac &&
+ shift
+ done
+ } >.gitattributes
}
create_NNO_files () {
- lfname=$1
- crlfname=$2
- lfmixcrlf=$3
- lfmixcr=$4
- crlfnul=$5
for crlf in false true input
do
for attr in "" auto text -text lf crlf
do
pfx=NNO_${crlf}_attr_${attr} &&
- cp $lfname ${pfx}_LF.txt &&
- cp $crlfname ${pfx}_CRLF.txt &&
- cp $lfmixcrlf ${pfx}_CRLF_mix_LF.txt &&
- cp $lfmixcr ${pfx}_LF_mix_CR.txt &&
- cp $crlfnul ${pfx}_CRLF_nul.txt
+ cp CRLF_mix_LF ${pfx}_LF.txt &&
+ cp CRLF_mix_LF ${pfx}_CRLF.txt &&
+ cp CRLF_mix_LF ${pfx}_CRLF_mix_LF.txt &&
+ cp CRLF_mix_LF ${pfx}_LF_mix_CR.txt &&
+ cp CRLF_mix_LF ${pfx}_CRLF_nul.txt
done
done
}
@@ -96,7 +85,7 @@ commit_check_warn () {
crlfnul=$7
pfx=crlf_${crlf}_attr_${attr}
create_gitattributes "$attr" &&
- for f in LF CRLF repoMIX LF_mix_CR CRLF_mix_LF LF_nul CRLF_nul
+ for f in LF CRLF LF_mix_CR CRLF_mix_LF LF_nul CRLF_nul
do
fname=${pfx}_$f.txt &&
cp $f $fname &&
@@ -149,6 +138,46 @@ commit_chk_wrnNNO () {
'
}
+stats_ascii () {
+ case "$1" in
+ LF)
+ echo lf
+ ;;
+ CRLF)
+ echo crlf
+ ;;
+ CRLF_mix_LF)
+ echo mixed
+ ;;
+ LF_mix_CR|CRLF_nul|LF_nul|CRLF_mix_CR)
+ echo "-text"
+ ;;
+ *)
+ echo error_invalid $1
+ ;;
+ esac
+
+}
+
+
+# contruct the attr/ returned by git ls-files --eol
+# Take none (=empty), one or two args
+attr_ascii () {
+ case $1,$2 in
+ -text,*) echo "-text" ;;
+ text,) echo "text" ;;
+ text,lf) echo "text eol=lf" ;;
+ text,crlf) echo "text eol=crlf" ;;
+ auto,) echo "text=auto" ;;
+ auto,lf) echo "text=auto eol=lf" ;;
+ auto,crlf) echo "text=auto eol=crlf" ;;
+ lf,) echo "text eol=lf" ;;
+ crlf,) echo "text eol=crlf" ;;
+ ,) echo "" ;;
+ *) echo invalid_attr "$1,$2" ;;
+ esac
+}
+
check_files_in_repo () {
crlf=$1
attr=$2
@@ -192,59 +221,108 @@ check_in_repo_NNO () {
}
checkout_files () {
- eol=$1
- crlf=$2
- attr=$3
- lfname=$4
- crlfname=$5
- lfmixcrlf=$6
- lfmixcr=$7
- crlfnul=$8
- create_gitattributes $attr &&
+ attr=$1 ; shift
+ ident=$1; shift
+ aeol=$1 ; shift
+ crlf=$1 ; shift
+ ceol=$1 ; shift
+ lfname=$1 ; shift
+ crlfname=$1 ; shift
+ lfmixcrlf=$1 ; shift
+ lfmixcr=$1 ; shift
+ crlfnul=$1 ; shift
+ create_gitattributes "$attr" "$ident" &&
git config core.autocrlf $crlf &&
- pfx=eol_${eol}_crlf_${crlf}_attr_${attr}_ &&
- src=crlf_false_attr__ &&
+ pfx=eol_${ceol}_crlf_${crlf}_attr_${attr}_ &&
for f in LF CRLF LF_mix_CR CRLF_mix_LF LF_nul
do
- rm $src$f.txt &&
- if test -z "$eol"; then
- git checkout $src$f.txt
+ rm crlf_false_attr__$f.txt &&
+ if test -z "$ceol"; then
+ git checkout crlf_false_attr__$f.txt
else
- git -c core.eol=$eol checkout $src$f.txt
+ git -c core.eol=$ceol checkout crlf_false_attr__$f.txt
fi
done
- test_expect_success "checkout core.eol=$eol core.autocrlf=$crlf gitattributes=$attr file=LF" "
- compare_ws_file $pfx $lfname ${src}LF.txt
+ test_expect_success "ls-files --eol attr=$attr $ident $aeol core.autocrlf=$crlf core.eol=$ceol" '
+ test_when_finished "rm expect actual" &&
+ sort <<-EOF >expect &&
+ i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
+ i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
+ i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
+ i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
+ i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
+ i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
+ EOF
+ git ls-files --eol crlf_false_attr__* |
+ sed -e "s/ / /g" -e "s/ */ /g" |
+ sort >actual &&
+ test_cmp expect actual
+ '
+ test_expect_success "checkout $ident $attr $aeol core.autocrlf=$crlf core.eol=$ceol file=LF" "
+ compare_ws_file $pfx $lfname crlf_false_attr__LF.txt
"
- test_expect_success "checkout core.eol=$eol core.autocrlf=$crlf gitattributes=$attr file=CRLF" "
- compare_ws_file $pfx $crlfname ${src}CRLF.txt
+ test_expect_success "checkout $ident $attr $aeol core.autocrlf=$crlf core.eol=$ceol file=CRLF" "
+ compare_ws_file $pfx $crlfname crlf_false_attr__CRLF.txt
"
- test_expect_success "checkout core.eol=$eol core.autocrlf=$crlf gitattributes=$attr file=CRLF_mix_LF" "
- compare_ws_file $pfx $lfmixcrlf ${src}CRLF_mix_LF.txt
+ test_expect_success "checkout $ident $attr $aeol core.autocrlf=$crlf core.eol=$ceol file=CRLF_mix_LF" "
+ compare_ws_file $pfx $lfmixcrlf crlf_false_attr__CRLF_mix_LF.txt
"
- test_expect_success "checkout core.eol=$eol core.autocrlf=$crlf gitattributes=$attr file=LF_mix_CR" "
- compare_ws_file $pfx $lfmixcr ${src}LF_mix_CR.txt
+ test_expect_success "checkout $ident $attr $aeol core.autocrlf=$crlf core.eol=$ceol file=LF_mix_CR" "
+ compare_ws_file $pfx $lfmixcr crlf_false_attr__LF_mix_CR.txt
"
- test_expect_success "checkout core.eol=$eol core.autocrlf=$crlf gitattributes=$attr file=LF_nul" "
- compare_ws_file $pfx $crlfnul ${src}LF_nul.txt
+ test_expect_success "checkout $ident $attr $aeol core.autocrlf=$crlf core.eol=$ceol file=LF_nul" "
+ compare_ws_file $pfx $crlfnul crlf_false_attr__LF_nul.txt
"
}
-#######
+# Test control characters
+# NUL SOH CR EOF==^Z
+test_expect_success 'ls-files --eol -o Text/Binary' '
+ test_when_finished "rm expect actual TeBi_*" &&
+ STRT=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA &&
+ STR=$STRT$STRT$STRT$STRT &&
+ printf "${STR}BBB\001" >TeBi_127_S &&
+ printf "${STR}BBBB\001">TeBi_128_S &&
+ printf "${STR}BBB\032" >TeBi_127_E &&
+ printf "\032${STR}BBB" >TeBi_E_127 &&
+ printf "${STR}BBBB\000">TeBi_128_N &&
+ printf "${STR}BBB\012">TeBi_128_L &&
+ printf "${STR}BBB\015">TeBi_127_C &&
+ printf "${STR}BB\015\012" >TeBi_126_CL &&
+ printf "${STR}BB\015\012\015" >TeBi_126_CLC &&
+ sort <<-\EOF >expect &&
+ i/ w/-text TeBi_127_S
+ i/ w/none TeBi_128_S
+ i/ w/none TeBi_127_E
+ i/ w/-text TeBi_E_127
+ i/ w/-text TeBi_128_N
+ i/ w/lf TeBi_128_L
+ i/ w/-text TeBi_127_C
+ i/ w/crlf TeBi_126_CL
+ i/ w/-text TeBi_126_CLC
+ EOF
+ git ls-files --eol -o |
+ sed -n -e "/TeBi_/{s!attr/[ ]*!!g
+ s! ! !g
+ s! *! !g
+ p
+ }" | sort >actual &&
+ test_cmp expect actual
+'
+
test_expect_success 'setup master' '
echo >.gitattributes &&
git checkout -b master &&
git add .gitattributes &&
git commit -m "add .gitattributes" "" &&
- printf "line1\nline2\nline3" >LF &&
- printf "line1\r\nline2\r\nline3" >CRLF &&
- printf "line1\r\nline2\nline3" >repoMIX &&
- printf "line1\r\nline2\nline3" >CRLF_mix_LF &&
- printf "line1\nline2\rline3" >LF_mix_CR &&
- printf "line1\r\nline2\rline3" >CRLF_mix_CR &&
- printf "line1Q\r\nline2\r\nline3" | q_to_nul >CRLF_nul &&
- printf "line1Q\nline2\nline3" | q_to_nul >LF_nul &&
+ printf "\$Id: 0000000000000000000000000000000000000000 \$\nLINEONE\nLINETWO\nLINETHREE" >LF &&
+ printf "\$Id: 0000000000000000000000000000000000000000 \$\r\nLINEONE\r\nLINETWO\r\nLINETHREE" >CRLF &&
+ printf "\$Id: 0000000000000000000000000000000000000000 \$\nLINEONE\r\nLINETWO\nLINETHREE" >CRLF_mix_LF &&
+ printf "\$Id: 0000000000000000000000000000000000000000 \$\nLINEONE\nLINETWO\rLINETHREE" >LF_mix_CR &&
+ printf "\$Id: 0000000000000000000000000000000000000000 \$\r\nLINEONE\r\nLINETWO\rLINETHREE" >CRLF_mix_CR &&
+ printf "\$Id: 0000000000000000000000000000000000000000 \$\r\nLINEONEQ\r\nLINETWO\r\nLINETHREE" | q_to_nul >CRLF_nul &&
+ printf "\$Id: 0000000000000000000000000000000000000000 \$\nLINEONEQ\nLINETWO\nLINETHREE" | q_to_nul >LF_nul &&
create_NNO_files CRLF_mix_LF CRLF_mix_LF CRLF_mix_LF CRLF_mix_LF CRLF_mix_LF &&
git -c core.autocrlf=false add NNO_*.txt &&
git commit -m "mixed line endings" &&
@@ -385,23 +463,18 @@ check_in_repo_NNO input "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF
# How to read the table below:
# - checkout_files will check multiple files with a combination of settings
# and attributes (core.autocrlf=input is forbidden with core.eol=crlf)
-# - parameter $1 : core.eol lf | crlf
-# - parameter $2 : core.autocrlf false | true | input
-# - parameter $3 : text in .gitattributs "" (empty) | auto | text | -text
-# - parameter $4 : reference for a file with only LF in the repo
-# - parameter $5 : reference for a file with only CRLF in the repo
-# - parameter $6 : reference for a file with mixed LF and CRLF in the repo
-# - parameter $7 : reference for a file with LF and CR in the repo (does somebody uses this ?)
-# - parameter $8 : reference for a file with CRLF and a NUL (should be handled as binary when auto)
-
-# What we have in the repo:
-# ----------------- EOL in repo ----------------
-# LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
-# settings with checkout:
-# core. core. .gitattr
-# eol acrlf
-# ----------------------------------------------
-# What we want to have in the working tree:
+#
+# - parameter $1 : text in .gitattributs "" (empty) | auto | text | -text
+# - parameter $2 : ident "" | i (i == ident)
+# - parameter $3 : eol in .gitattributs "" (empty) | lf | crlf
+# - parameter $4 : core.autocrlf false | true | input
+# - parameter $5 : core.eol "" | lf | crlf | "native"
+# - parameter $6 : reference for a file with only LF in the repo
+# - parameter $7 : reference for a file with only CRLF in the repo
+# - parameter $8 : reference for a file with mixed LF and CRLF in the repo
+# - parameter $9 : reference for a file with LF and CR in the repo
+# - parameter $10 : reference for a file with CRLF and a NUL (should be handled as binary when auto)
+
if test_have_prereq NATIVE_CRLF
then
MIX_CRLF_LF=CRLF
@@ -416,68 +489,104 @@ LFNUL=LF_nul
fi
export CRLF_MIX_LF_CR MIX NL
-checkout_files lf false "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files lf true "" CRLF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files lf input "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files lf false "auto" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files lf true "auto" CRLF CRLF CRLF LF_mix_CR LF_nul
-checkout_files lf input "auto" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files lf false "text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files lf true "text" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
-checkout_files lf input "text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files lf false "-text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files lf true "-text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files lf input "-text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files lf false "lf" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files lf true "lf" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files lf input "lf" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files lf false "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
-checkout_files lf true "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
-checkout_files lf input "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
-
-checkout_files crlf false "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files crlf true "" CRLF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files crlf false "auto" CRLF CRLF CRLF LF_mix_CR LF_nul
-checkout_files crlf true "auto" CRLF CRLF CRLF LF_mix_CR LF_nul
-checkout_files crlf false "text" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
-checkout_files crlf true "text" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
-checkout_files crlf false "-text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files crlf true "-text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files crlf false "lf" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files crlf true "lf" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files crlf false "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
-checkout_files crlf true "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
-
-checkout_files "" false "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files "" true "" CRLF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files "" input "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files "" false "auto" $NL CRLF $MIX_CRLF_LF LF_mix_CR LF_nul
-checkout_files "" true "auto" CRLF CRLF CRLF LF_mix_CR LF_nul
-checkout_files "" input "auto" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files "" false "text" $NL CRLF $MIX_CRLF_LF $MIX_LF_CR $LFNUL
-checkout_files "" true "text" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
-checkout_files "" input "text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files "" false "-text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files "" true "-text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files "" input "-text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files "" false "lf" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files "" true "lf" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files "" input "lf" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files "" false "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
-checkout_files "" true "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
-checkout_files "" input "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
-
-checkout_files native false "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files native true "" CRLF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files native false "auto" $NL CRLF $MIX_CRLF_LF LF_mix_CR LF_nul
-checkout_files native true "auto" CRLF CRLF CRLF LF_mix_CR LF_nul
-checkout_files native false "text" $NL CRLF $MIX_CRLF_LF $MIX_LF_CR $LFNUL
-checkout_files native true "text" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
-checkout_files native false "-text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files native true "-text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files native false "lf" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files native true "lf" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
-checkout_files native false "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
-checkout_files native true "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
+checkout_files "" "" "" false "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "" "" "" false crlf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "" "" "" false lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "" "" "" false native LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "" "" "" input "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "" "" "" input lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "" "" "" true "" CRLF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "" "" "" true crlf CRLF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "" "" "" true lf CRLF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "" "" "" true native CRLF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "" ident "" false "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "" ident "" false crlf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "" ident "" false lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "" ident "" false native LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "" ident "" input "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "" ident "" input lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "" ident "" true "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "" ident "" true crlf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "" ident "" true lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "" ident "" true native LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "auto" "" "" false "" $NL CRLF $MIX_CRLF_LF LF_mix_CR LF_nul
+checkout_files "auto" "" "" false crlf CRLF CRLF CRLF LF_mix_CR LF_nul
+checkout_files "auto" "" "" false lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "auto" "" "" false native $NL CRLF $MIX_CRLF_LF LF_mix_CR LF_nul
+checkout_files "auto" "" "" input "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "auto" "" "" input lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "auto" "" "" true "" CRLF CRLF CRLF LF_mix_CR LF_nul
+checkout_files "auto" "" "" true crlf CRLF CRLF CRLF LF_mix_CR LF_nul
+checkout_files "auto" "" "" true lf CRLF CRLF CRLF LF_mix_CR LF_nul
+checkout_files "auto" "" "" true native CRLF CRLF CRLF LF_mix_CR LF_nul
+checkout_files "auto" ident "" false "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "auto" ident "" false crlf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "auto" ident "" false lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "auto" ident "" false native LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "auto" ident "" input "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "auto" ident "" input lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "auto" ident "" true "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "auto" ident "" true crlf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "auto" ident "" true lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "auto" ident "" true native LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+
+for id in "" ident;
+do
+ checkout_files "crlf" "$id" "" false "" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
+ checkout_files "crlf" "$id" "" false crlf CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
+ checkout_files "crlf" "$id" "" false lf CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
+ checkout_files "crlf" "$id" "" false native CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
+ checkout_files "crlf" "$id" "" input "" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
+ checkout_files "crlf" "$id" "" input lf CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
+ checkout_files "crlf" "$id" "" true "" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
+ checkout_files "crlf" "$id" "" true crlf CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
+ checkout_files "crlf" "$id" "" true lf CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
+ checkout_files "crlf" "$id" "" true native CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
+ checkout_files "lf" "$id" "" false "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+ checkout_files "lf" "$id" "" false crlf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+ checkout_files "lf" "$id" "" false lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+ checkout_files "lf" "$id" "" false native LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+ checkout_files "lf" "$id" "" input "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+ checkout_files "lf" "$id" "" input lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+ checkout_files "lf" "$id" "" true "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+ checkout_files "lf" "$id" "" true crlf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+ checkout_files "lf" "$id" "" true lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+ checkout_files "lf" "$id" "" true native LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+ checkout_files "text" "$id" "" false "" $NL CRLF $MIX_CRLF_LF $MIX_LF_CR $LFNUL
+ checkout_files "text" "$id" "" false crlf CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
+ checkout_files "text" "$id" "" false lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+ checkout_files "text" "$id" "" false native $NL CRLF $MIX_CRLF_LF $MIX_LF_CR $LFNUL
+ checkout_files "text" "$id" "" input "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+ checkout_files "text" "$id" "" input lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+ checkout_files "text" "$id" "" true "" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
+ checkout_files "text" "$id" "" true crlf CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
+ checkout_files "text" "$id" "" true lf CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
+ checkout_files "text" "$id" "" true native CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
+ checkout_files "-text" "$id" "" false "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+ checkout_files "-text" "$id" "" false crlf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+ checkout_files "-text" "$id" "" false lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+ checkout_files "-text" "$id" "" false native LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+ checkout_files "-text" "$id" "" input "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+ checkout_files "-text" "$id" "" input lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+ checkout_files "-text" "$id" "" true "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+ checkout_files "-text" "$id" "" true crlf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+ checkout_files "-text" "$id" "" true lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+ checkout_files "-text" "$id" "" true native LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+done
+
+# Should be the last test case: remove some files from the worktree
+test_expect_success 'ls-files --eol -d -z' '
+ rm crlf_false_attr__CRLF.txt crlf_false_attr__CRLF_mix_LF.txt crlf_false_attr__LF.txt .gitattributes &&
+ cat >expect <<-\EOF &&
+ i/crlf w/ crlf_false_attr__CRLF.txt
+ i/lf w/ .gitattributes
+ i/lf w/ crlf_false_attr__LF.txt
+ i/mixed w/ crlf_false_attr__CRLF_mix_LF.txt
+ EOF
+ git ls-files --eol -d |
+ sed -e "s!attr/[^ ]*!!g" -e "s/ / /g" -e "s/ */ /g" |
+ sort >actual &&
+ test_cmp expect actual
+'
test_done
diff --git a/t/t0060-path-utils.sh b/t/t0060-path-utils.sh
index f0152a7ab4..8532a028e7 100755
--- a/t/t0060-path-utils.sh
+++ b/t/t0060-path-utils.sh
@@ -36,12 +36,21 @@ if test $rootoff = 2; then
rootoff= # we are on Unix
else
rootoff=$(($rootoff-1))
+ # In MSYS2, the root directory "/" is translated into a Windows
+ # directory *with* trailing slash. Let's test for that and adjust
+ # our expected longest ancestor length accordingly.
+ case "$(test-path-utils print_path /)" in
+ */) rootslash=1;;
+ *) rootslash=0;;
+ esac
fi
ancestor() {
# We do some math with the expected ancestor length.
expected=$3
if test -n "$rootoff" && test "x$expected" != x-1; then
+ expected=$(($expected-$rootslash))
+ test $expected -lt 0 ||
expected=$(($expected+$rootoff))
fi
test_expect_success "longest ancestor: $1 $2 => $expected" \
diff --git a/t/t0061-run-command.sh b/t/t0061-run-command.sh
index 9acf628726..12228b4aa6 100755
--- a/t/t0061-run-command.sh
+++ b/t/t0061-run-command.sh
@@ -47,4 +47,57 @@ test_expect_success POSIXPERM,SANITY 'unreadable directory in PATH' '
test_cmp expect actual
'
+cat >expect <<-EOF
+preloaded output of a child
+Hello
+World
+preloaded output of a child
+Hello
+World
+preloaded output of a child
+Hello
+World
+preloaded output of a child
+Hello
+World
+EOF
+
+test_expect_success 'run_command runs in parallel with more jobs available than tasks' '
+ test-run-command run-command-parallel 5 sh -c "printf \"%s\n%s\n\" Hello World" 2>actual &&
+ test_cmp expect actual
+'
+
+test_expect_success 'run_command runs in parallel with as many jobs as tasks' '
+ test-run-command run-command-parallel 4 sh -c "printf \"%s\n%s\n\" Hello World" 2>actual &&
+ test_cmp expect actual
+'
+
+test_expect_success 'run_command runs in parallel with more tasks than jobs available' '
+ test-run-command run-command-parallel 3 sh -c "printf \"%s\n%s\n\" Hello World" 2>actual &&
+ test_cmp expect actual
+'
+
+cat >expect <<-EOF
+preloaded output of a child
+asking for a quick stop
+preloaded output of a child
+asking for a quick stop
+preloaded output of a child
+asking for a quick stop
+EOF
+
+test_expect_success 'run_command is asked to abort gracefully' '
+ test-run-command run-command-abort 3 false 2>actual &&
+ test_cmp expect actual
+'
+
+cat >expect <<-EOF
+no further jobs available
+EOF
+
+test_expect_success 'run_command outputs ' '
+ test-run-command run-command-no-jobs 3 sh -c "printf \"%s\n%s\n\" Hello World" 2>actual &&
+ test_cmp expect actual
+'
+
test_done
diff --git a/t/t1100-commit-tree-options.sh b/t/t1100-commit-tree-options.sh
index f8457f9d14..b7e9b4fc5b 100755
--- a/t/t1100-commit-tree-options.sh
+++ b/t/t1100-commit-tree-options.sh
@@ -35,11 +35,11 @@ test_expect_success \
GIT_COMMITTER_NAME="Committer Name" \
GIT_COMMITTER_EMAIL="committer@email" \
GIT_COMMITTER_DATE="2005-05-26 23:30" \
- TZ=GMT git commit-tree `cat treeid` >commitid 2>/dev/null'
+ TZ=GMT git commit-tree $(cat treeid) >commitid 2>/dev/null'
test_expect_success \
'read commit' \
- 'git cat-file commit `cat commitid` >commit'
+ 'git cat-file commit $(cat commitid) >commit'
test_expect_success \
'compare commit' \
diff --git a/t/t1300-repo-config.sh b/t/t1300-repo-config.sh
index 52678e7d0a..8867ce10f8 100755
--- a/t/t1300-repo-config.sh
+++ b/t/t1300-repo-config.sh
@@ -700,12 +700,18 @@ test_expect_success 'invalid unit' '
git config aninvalid.unit >actual &&
test_cmp expect actual &&
cat >expect <<-\EOF &&
- fatal: bad numeric config value '\''1auto'\'' for '\''aninvalid.unit'\'' in .git/config: invalid unit
+ fatal: bad numeric config value '\''1auto'\'' for '\''aninvalid.unit'\'' in file .git/config: invalid unit
EOF
test_must_fail git config --int --get aninvalid.unit 2>actual &&
test_i18ncmp expect actual
'
+test_expect_success 'invalid stdin config' '
+ echo "fatal: bad config line 1 in standard input " >expect &&
+ echo "[broken" | test_must_fail git config --list --file - >output 2>&1 &&
+ test_cmp expect output
+'
+
cat > expect << EOF
true
false
@@ -957,13 +963,15 @@ Qsection.sub=section.val4
Qsection.sub=section.val5Q
EOF
test_expect_success '--null --list' '
- git config --null --list | nul_to_q >result &&
+ git config --null --list >result.raw &&
+ nul_to_q <result.raw >result &&
echo >>result &&
test_cmp expect result
'
test_expect_success '--null --get-regexp' '
- git config --null --get-regexp "val[0-9]" | nul_to_q >result &&
+ git config --null --get-regexp "val[0-9]" >result.raw &&
+ nul_to_q <result.raw >result &&
echo >>result &&
test_cmp expect result
'
@@ -1201,4 +1209,151 @@ test_expect_success POSIXPERM,PERL 'preserves existing permissions' '
"die q(badrename) if ((stat(q(.git/config)))[2] & 07777) != 0600"
'
+test_expect_success 'set up --show-origin tests' '
+ INCLUDE_DIR="$HOME/include" &&
+ mkdir -p "$INCLUDE_DIR" &&
+ cat >"$INCLUDE_DIR"/absolute.include <<-\EOF &&
+ [user]
+ absolute = include
+ EOF
+ cat >"$INCLUDE_DIR"/relative.include <<-\EOF &&
+ [user]
+ relative = include
+ EOF
+ cat >"$HOME"/.gitconfig <<-EOF &&
+ [user]
+ global = true
+ override = global
+ [include]
+ path = "$INCLUDE_DIR/absolute.include"
+ EOF
+ cat >.git/config <<-\EOF
+ [user]
+ local = true
+ override = local
+ [include]
+ path = ../include/relative.include
+ EOF
+'
+
+test_expect_success '--show-origin with --list' '
+ cat >expect <<-EOF &&
+ file:$HOME/.gitconfig user.global=true
+ file:$HOME/.gitconfig user.override=global
+ file:$HOME/.gitconfig include.path=$INCLUDE_DIR/absolute.include
+ file:$INCLUDE_DIR/absolute.include user.absolute=include
+ file:.git/config user.local=true
+ file:.git/config user.override=local
+ file:.git/config include.path=../include/relative.include
+ file:.git/../include/relative.include user.relative=include
+ command line: user.cmdline=true
+ EOF
+ git -c user.cmdline=true config --list --show-origin >output &&
+ test_cmp expect output
+'
+
+test_expect_success '--show-origin with --list --null' '
+ cat >expect <<-EOF &&
+ file:$HOME/.gitconfigQuser.global
+ trueQfile:$HOME/.gitconfigQuser.override
+ globalQfile:$HOME/.gitconfigQinclude.path
+ $INCLUDE_DIR/absolute.includeQfile:$INCLUDE_DIR/absolute.includeQuser.absolute
+ includeQfile:.git/configQuser.local
+ trueQfile:.git/configQuser.override
+ localQfile:.git/configQinclude.path
+ ../include/relative.includeQfile:.git/../include/relative.includeQuser.relative
+ includeQcommand line:Quser.cmdline
+ trueQ
+ EOF
+ git -c user.cmdline=true config --null --list --show-origin >output.raw &&
+ nul_to_q <output.raw >output &&
+ # The here-doc above adds a newline that the --null output would not
+ # include. Add it here to make the two comparable.
+ echo >>output &&
+ test_cmp expect output
+'
+
+test_expect_success '--show-origin with single file' '
+ cat >expect <<-\EOF &&
+ file:.git/config user.local=true
+ file:.git/config user.override=local
+ file:.git/config include.path=../include/relative.include
+ EOF
+ git config --local --list --show-origin >output &&
+ test_cmp expect output
+'
+
+test_expect_success '--show-origin with --get-regexp' '
+ cat >expect <<-EOF &&
+ file:$HOME/.gitconfig user.global true
+ file:.git/config user.local true
+ EOF
+ git config --show-origin --get-regexp "user\.[g|l].*" >output &&
+ test_cmp expect output
+'
+
+test_expect_success '--show-origin getting a single key' '
+ cat >expect <<-\EOF &&
+ file:.git/config local
+ EOF
+ git config --show-origin user.override >output &&
+ test_cmp expect output
+'
+
+test_expect_success 'set up custom config file' '
+ CUSTOM_CONFIG_FILE="file\" (dq) and spaces.conf" &&
+ cat >"$CUSTOM_CONFIG_FILE" <<-\EOF
+ [user]
+ custom = true
+ EOF
+'
+
+test_expect_success '--show-origin escape special file name characters' '
+ cat >expect <<-\EOF &&
+ file:"file\" (dq) and spaces.conf" user.custom=true
+ EOF
+ git config --file "$CUSTOM_CONFIG_FILE" --show-origin --list >output &&
+ test_cmp expect output
+'
+
+test_expect_success '--show-origin stdin' '
+ cat >expect <<-\EOF &&
+ standard input: user.custom=true
+ EOF
+ git config --file - --show-origin --list <"$CUSTOM_CONFIG_FILE" >output &&
+ test_cmp expect output
+'
+
+test_expect_success '--show-origin stdin with file include' '
+ cat >"$INCLUDE_DIR"/stdin.include <<-EOF &&
+ [user]
+ stdin = include
+ EOF
+ cat >expect <<-EOF &&
+ file:$INCLUDE_DIR/stdin.include include
+ EOF
+ echo "[include]path=\"$INCLUDE_DIR\"/stdin.include" \
+ | git config --show-origin --includes --file - user.stdin >output &&
+ test_cmp expect output
+'
+
+test_expect_success '--show-origin blob' '
+ cat >expect <<-\EOF &&
+ blob:a9d9f9e555b5c6f07cbe09d3f06fe3df11e09c08 user.custom=true
+ EOF
+ blob=$(git hash-object -w "$CUSTOM_CONFIG_FILE") &&
+ git config --blob=$blob --show-origin --list >output &&
+ test_cmp expect output
+'
+
+test_expect_success '--show-origin blob ref' '
+ cat >expect <<-\EOF &&
+ blob:"master:file\" (dq) and spaces.conf" user.custom=true
+ EOF
+ git add "$CUSTOM_CONFIG_FILE" &&
+ git commit -m "new config file" &&
+ git config --blob=master:"$CUSTOM_CONFIG_FILE" --show-origin --list >output &&
+ test_cmp expect output
+'
+
test_done
diff --git a/t/t1308-config-set.sh b/t/t1308-config-set.sh
index 9863d0d0ed..005d66dbef 100755
--- a/t/t1308-config-set.sh
+++ b/t/t1308-config-set.sh
@@ -195,14 +195,14 @@ test_expect_success 'proper error on error in default config files' '
cp .git/config .git/config.old &&
test_when_finished "mv .git/config.old .git/config" &&
echo "[" >>.git/config &&
- echo "fatal: bad config file line 34 in .git/config" >expect &&
+ echo "fatal: bad config line 34 in file .git/config" >expect &&
test_expect_code 128 test-config get_value foo.bar 2>actual &&
test_cmp expect actual
'
test_expect_success 'proper error on error in custom config files' '
echo "[" >>syntax-error &&
- echo "fatal: bad config file line 1 in syntax-error" >expect &&
+ echo "fatal: bad config line 1 in file syntax-error" >expect &&
test_expect_code 128 test-config configset_get_value foo.bar syntax-error 2>actual &&
test_cmp expect actual
'
diff --git a/t/t1401-symbolic-ref.sh b/t/t1401-symbolic-ref.sh
index 1f0dff3a0b..417eecc3af 100755
--- a/t/t1401-symbolic-ref.sh
+++ b/t/t1401-symbolic-ref.sh
@@ -29,7 +29,7 @@ reset_to_sane
test_expect_success 'symbolic-ref refuses bare sha1' '
echo content >file && git add file && git commit -m one &&
- test_must_fail git symbolic-ref HEAD `git rev-parse HEAD`
+ test_must_fail git symbolic-ref HEAD $(git rev-parse HEAD)
'
reset_to_sane
@@ -114,4 +114,19 @@ test_expect_success 'symbolic-ref writes reflog entry' '
test_cmp expect actual
'
+test_expect_success 'symbolic-ref does not create ref d/f conflicts' '
+ git checkout -b df &&
+ test_commit df &&
+ test_must_fail git symbolic-ref refs/heads/df/conflict refs/heads/df &&
+ git pack-refs --all --prune &&
+ test_must_fail git symbolic-ref refs/heads/df/conflict refs/heads/df
+'
+
+test_expect_success 'symbolic-ref handles existing pointer to invalid name' '
+ head=$(git rev-parse HEAD) &&
+ git symbolic-ref HEAD refs/heads/outer &&
+ git update-ref refs/heads/outer/inner $head &&
+ git symbolic-ref HEAD refs/heads/unrelated
+'
+
test_done
diff --git a/t/t1410-reflog.sh b/t/t1410-reflog.sh
index 17a194bfa6..c623824b4d 100755
--- a/t/t1410-reflog.sh
+++ b/t/t1410-reflog.sh
@@ -62,18 +62,18 @@ test_expect_success setup '
git add . &&
test_tick && git commit -m rabbit &&
- H=`git rev-parse --verify HEAD` &&
- A=`git rev-parse --verify HEAD:A` &&
- B=`git rev-parse --verify HEAD:A/B` &&
- C=`git rev-parse --verify HEAD:C` &&
- D=`git rev-parse --verify HEAD:A/D` &&
- E=`git rev-parse --verify HEAD:A/B/E` &&
+ H=$(git rev-parse --verify HEAD) &&
+ A=$(git rev-parse --verify HEAD:A) &&
+ B=$(git rev-parse --verify HEAD:A/B) &&
+ C=$(git rev-parse --verify HEAD:C) &&
+ D=$(git rev-parse --verify HEAD:A/D) &&
+ E=$(git rev-parse --verify HEAD:A/B/E) &&
check_fsck &&
test_chmod +x C &&
git add C &&
test_tick && git commit -m dragon &&
- L=`git rev-parse --verify HEAD` &&
+ L=$(git rev-parse --verify HEAD) &&
check_fsck &&
rm -f C A/B/E &&
@@ -81,15 +81,15 @@ test_expect_success setup '
echo horse >A/G &&
git add F A/G &&
test_tick && git commit -a -m sheep &&
- F=`git rev-parse --verify HEAD:F` &&
- G=`git rev-parse --verify HEAD:A/G` &&
- I=`git rev-parse --verify HEAD:A` &&
- J=`git rev-parse --verify HEAD` &&
+ F=$(git rev-parse --verify HEAD:F) &&
+ G=$(git rev-parse --verify HEAD:A/G) &&
+ I=$(git rev-parse --verify HEAD:A) &&
+ J=$(git rev-parse --verify HEAD) &&
check_fsck &&
rm -f A/G &&
test_tick && git commit -a -m monkey &&
- K=`git rev-parse --verify HEAD` &&
+ K=$(git rev-parse --verify HEAD) &&
check_fsck &&
check_have A B C D E F G H I J K L &&
diff --git a/t/t1508-at-combinations.sh b/t/t1508-at-combinations.sh
index 078e1195df..4a9964e9dc 100755
--- a/t/t1508-at-combinations.sh
+++ b/t/t1508-at-combinations.sh
@@ -35,7 +35,10 @@ test_expect_success 'setup' '
git checkout -b upstream-branch &&
test_commit upstream-one &&
test_commit upstream-two &&
- git checkout -b @/at-test &&
+ if test_have_prereq !MINGW
+ then
+ git checkout -b @/at-test
+ fi &&
git checkout -b @@/at-test &&
git checkout -b @at-test &&
git checkout -b old-branch &&
@@ -64,6 +67,7 @@ check "@{-1}@{u}@{1}" commit master-one
check "@" commit new-two
check "@@{u}" ref refs/heads/upstream-branch
check "@@/at-test" ref refs/heads/@@/at-test
+test_have_prereq MINGW ||
check "@/at-test" ref refs/heads/@/at-test
check "@at-test" ref refs/heads/@at-test
nonsense "@{u}@{-1}"
diff --git a/t/t1511-rev-parse-caret.sh b/t/t1511-rev-parse-caret.sh
index 15973f2094..e0a49a651f 100755
--- a/t/t1511-rev-parse-caret.sh
+++ b/t/t1511-rev-parse-caret.sh
@@ -6,11 +6,11 @@ test_description='tests for ref^{stuff}'
test_expect_success 'setup' '
echo blob >a-blob &&
- git tag -a -m blob blob-tag `git hash-object -w a-blob` &&
+ git tag -a -m blob blob-tag $(git hash-object -w a-blob) &&
mkdir a-tree &&
echo moreblobs >a-tree/another-blob &&
git add . &&
- TREE_SHA1=`git write-tree` &&
+ TREE_SHA1=$(git write-tree) &&
git tag -a -m tree tree-tag "$TREE_SHA1" &&
git commit -m Initial &&
git tag -a -m commit commit-tag &&
@@ -18,7 +18,18 @@ test_expect_success 'setup' '
git checkout master &&
echo modified >>a-blob &&
git add -u &&
- git commit -m Modified
+ git commit -m Modified &&
+ git branch modref &&
+ echo changed! >>a-blob &&
+ git add -u &&
+ git commit -m !Exp &&
+ git branch expref &&
+ echo changed >>a-blob &&
+ git add -u &&
+ git commit -m Changed &&
+ echo changed-again >>a-blob &&
+ git add -u &&
+ git commit -m Changed-again
'
test_expect_success 'ref^{non-existent}' '
@@ -77,4 +88,44 @@ test_expect_success 'ref^{/Initial}' '
test_cmp expected actual
'
+test_expect_success 'ref^{/!Exp}' '
+ test_must_fail git rev-parse master^{/!Exp}
+'
+
+test_expect_success 'ref^{/!}' '
+ test_must_fail git rev-parse master^{/!}
+'
+
+test_expect_success 'ref^{/!!Exp}' '
+ git rev-parse expref >expected &&
+ git rev-parse master^{/!!Exp} >actual &&
+ test_cmp expected actual
+'
+
+test_expect_success 'ref^{/!-}' '
+ test_must_fail git rev-parse master^{/!-}
+'
+
+test_expect_success 'ref^{/!-.}' '
+ test_must_fail git rev-parse master^{/!-.}
+'
+
+test_expect_success 'ref^{/!-non-existent}' '
+ git rev-parse master >expected &&
+ git rev-parse master^{/!-non-existent} >actual &&
+ test_cmp expected actual
+'
+
+test_expect_success 'ref^{/!-Changed}' '
+ git rev-parse expref >expected &&
+ git rev-parse master^{/!-Changed} >actual &&
+ test_cmp expected actual
+'
+
+test_expect_success 'ref^{/!-!Exp}' '
+ git rev-parse modref >expected &&
+ git rev-parse expref^{/!-!Exp} >actual &&
+ test_cmp expected actual
+'
+
test_done
diff --git a/t/t1512-rev-parse-disambiguation.sh b/t/t1512-rev-parse-disambiguation.sh
index 4a155c8d09..e221167cfb 100755
--- a/t/t1512-rev-parse-disambiguation.sh
+++ b/t/t1512-rev-parse-disambiguation.sh
@@ -275,19 +275,19 @@ test_expect_success 'rev-parse --disambiguate' '
test_expect_success 'ambiguous 40-hex ref' '
TREE=$(git mktree </dev/null) &&
- REF=`git rev-parse HEAD` &&
+ REF=$(git rev-parse HEAD) &&
VAL=$(git commit-tree $TREE </dev/null) &&
git update-ref refs/heads/$REF $VAL &&
- test `git rev-parse $REF 2>err` = $REF &&
+ test $(git rev-parse $REF 2>err) = $REF &&
grep "refname.*${REF}.*ambiguous" err
'
test_expect_success 'ambiguous short sha1 ref' '
TREE=$(git mktree </dev/null) &&
- REF=`git rev-parse --short HEAD` &&
+ REF=$(git rev-parse --short HEAD) &&
VAL=$(git commit-tree $TREE </dev/null) &&
git update-ref refs/heads/$REF $VAL &&
- test `git rev-parse $REF 2>err` = $VAL &&
+ test $(git rev-parse $REF 2>err) = $VAL &&
grep "refname.*${REF}.*ambiguous" err
'
diff --git a/t/t1700-split-index.sh b/t/t1700-split-index.sh
index 193d55c3f4..8aef49f236 100755
--- a/t/t1700-split-index.sh
+++ b/t/t1700-split-index.sh
@@ -55,7 +55,7 @@ test_expect_success 'disable split index' '
EOF
test_cmp ls-files.expect ls-files.actual &&
- BASE=`test-dump-split-index .git/index | grep "^own" | sed "s/own/base/"` &&
+ BASE=$(test-dump-split-index .git/index | grep "^own" | sed "s/own/base/") &&
test-dump-split-index .git/index | sed "/^own/d" >actual &&
cat >expect <<EOF &&
not a split index
diff --git a/t/t2011-checkout-invalid-head.sh b/t/t2011-checkout-invalid-head.sh
index 300f8bf25c..c5501b008c 100755
--- a/t/t2011-checkout-invalid-head.sh
+++ b/t/t2011-checkout-invalid-head.sh
@@ -19,4 +19,43 @@ test_expect_success 'checkout master from invalid HEAD' '
git checkout master --
'
+test_expect_success 'checkout notices failure to lock HEAD' '
+ test_when_finished "rm -f .git/HEAD.lock" &&
+ >.git/HEAD.lock &&
+ test_must_fail git checkout -b other
+'
+
+test_expect_success 'create ref directory/file conflict scenario' '
+ git update-ref refs/heads/outer/inner master &&
+
+ # do not rely on symbolic-ref to get a known state,
+ # as it may use the same code we are testing
+ reset_to_df () {
+ echo "ref: refs/heads/outer" >.git/HEAD
+ }
+'
+
+test_expect_success 'checkout away from d/f HEAD (unpacked, to branch)' '
+ reset_to_df &&
+ git checkout master
+'
+
+test_expect_success 'checkout away from d/f HEAD (unpacked, to detached)' '
+ reset_to_df &&
+ git checkout --detach master
+'
+
+test_expect_success 'pack refs' '
+ git pack-refs --all --prune
+'
+
+test_expect_success 'checkout away from d/f HEAD (packed, to branch)' '
+ reset_to_df &&
+ git checkout master
+'
+
+test_expect_success 'checkout away from d/f HEAD (packed, to detached)' '
+ reset_to_df &&
+ git checkout --detach master
+'
test_done
diff --git a/t/t2025-worktree-add.sh b/t/t2025-worktree-add.sh
index 3694174989..cbfa41ec61 100755
--- a/t/t2025-worktree-add.sh
+++ b/t/t2025-worktree-add.sh
@@ -123,10 +123,10 @@ test_expect_success 'checkout from a bare repo without "add"' '
test_expect_success 'checkout with grafts' '
test_when_finished rm .git/info/grafts &&
test_commit abc &&
- SHA1=`git rev-parse HEAD` &&
+ SHA1=$(git rev-parse HEAD) &&
test_commit def &&
test_commit xyz &&
- echo "`git rev-parse HEAD` $SHA1" >.git/info/grafts &&
+ echo "$(git rev-parse HEAD) $SHA1" >.git/info/grafts &&
cat >expected <<-\EOF &&
xyz
abc
@@ -193,6 +193,21 @@ test_expect_success '"add" -B/--detach mutually exclusive' '
test_must_fail git worktree add -B poodle --detach bamboo master
'
+test_expect_success '"add -B" fails if the branch is checked out' '
+ git rev-parse newmaster >before &&
+ test_must_fail git worktree add -B newmaster bamboo master &&
+ git rev-parse newmaster >after &&
+ test_cmp before after
+'
+
+test_expect_success 'add -B' '
+ git worktree add -B poodle bamboo2 master^ &&
+ git -C bamboo2 symbolic-ref HEAD >actual &&
+ echo refs/heads/poodle >expected &&
+ test_cmp expected actual &&
+ test_cmp_rev master^ poodle
+'
+
test_expect_success 'local clone from linked checkout' '
git clone --local here here-clone &&
( cd here-clone && git fsck )
diff --git a/t/t2102-update-index-symlinks.sh b/t/t2102-update-index-symlinks.sh
index 4d0d0a3515..22f2c730ae 100755
--- a/t/t2102-update-index-symlinks.sh
+++ b/t/t2102-update-index-symlinks.sh
@@ -23,7 +23,7 @@ git update-index symlink'
test_expect_success \
'the index entry must still be a symbolic link' '
-case "`git ls-files --stage --cached symlink`" in
+case "$(git ls-files --stage --cached symlink)" in
120000" "*symlink) echo pass;;
*) echo fail; git ls-files --stage --cached symlink; (exit 1);;
esac'
diff --git a/t/t3001-ls-files-others-exclude.sh b/t/t3001-ls-files-others-exclude.sh
index 3fc484e8c3..d043078da5 100755
--- a/t/t3001-ls-files-others-exclude.sh
+++ b/t/t3001-ls-files-others-exclude.sh
@@ -175,13 +175,10 @@ test_expect_success 'negated exclude matches can override previous ones' '
grep "^a.1" output
'
-test_expect_success 'excluded directory overrides content patterns' '
+test_expect_success 'excluded directory does not override content patterns' '
git ls-files --others --exclude="one" --exclude="!one/a.1" >output &&
- if grep "^one/a.1" output
- then
- false
- fi
+ grep "^one/a.1" output
'
test_expect_success 'negated directory doesn'\''t affect content patterns' '
diff --git a/t/t3007-ls-files-other-negative.sh b/t/t3007-ls-files-other-negative.sh
new file mode 100755
index 0000000000..0797b86ad0
--- /dev/null
+++ b/t/t3007-ls-files-other-negative.sh
@@ -0,0 +1,153 @@
+#!/bin/sh
+
+test_description='test re-include patterns'
+
+. ./test-lib.sh
+
+test_expect_success 'setup' '
+ mkdir -p fooo foo/bar tmp &&
+ touch abc foo/def foo/bar/ghi foo/bar/bar
+'
+
+test_expect_success 'no match, do not enter subdir and waste cycles' '
+ cat >.gitignore <<-\EOF &&
+ /tmp
+ /foo
+ !fooo/bar/bar
+ EOF
+ GIT_TRACE_EXCLUDE="$(pwd)/tmp/trace" git ls-files -o --exclude-standard >tmp/actual &&
+ ! grep "enter .foo/.\$" tmp/trace &&
+ cat >tmp/expected <<-\EOF &&
+ .gitignore
+ abc
+ EOF
+ test_cmp tmp/expected tmp/actual
+'
+
+test_expect_success 'match, excluded by literal pathname pattern' '
+ cat >.gitignore <<-\EOF &&
+ /tmp
+ /fooo
+ /foo
+ !foo/bar/bar
+ EOF
+ cat >fooo/.gitignore <<-\EOF &&
+ !/*
+ EOF git ls-files -o --exclude-standard >tmp/actual &&
+ cat >tmp/expected <<-\EOF &&
+ .gitignore
+ abc
+ foo/bar/bar
+ EOF
+ test_cmp tmp/expected tmp/actual
+'
+
+test_expect_success 'match, excluded by wildcard pathname pattern' '
+ cat >.gitignore <<-\EOF &&
+ /tmp
+ /fooo
+ /fo?
+ !foo/bar/bar
+ EOF
+ git ls-files -o --exclude-standard >tmp/actual &&
+ cat >tmp/expected <<-\EOF &&
+ .gitignore
+ abc
+ foo/bar/bar
+ EOF
+ test_cmp tmp/expected tmp/actual
+'
+
+test_expect_success 'match, excluded by literal basename pattern' '
+ cat >.gitignore <<-\EOF &&
+ /tmp
+ /fooo
+ foo
+ !foo/bar/bar
+ EOF
+ git ls-files -o --exclude-standard >tmp/actual &&
+ cat >tmp/expected <<-\EOF &&
+ .gitignore
+ abc
+ foo/bar/bar
+ EOF
+ test_cmp tmp/expected tmp/actual
+'
+
+test_expect_success 'match, excluded by wildcard basename pattern' '
+ cat >.gitignore <<-\EOF &&
+ /tmp
+ /fooo
+ fo?
+ !foo/bar/bar
+ EOF
+ git ls-files -o --exclude-standard >tmp/actual &&
+ cat >tmp/expected <<-\EOF &&
+ .gitignore
+ abc
+ foo/bar/bar
+ EOF
+ test_cmp tmp/expected tmp/actual
+'
+
+test_expect_success 'match, excluded by literal mustbedir, basename pattern' '
+ cat >.gitignore <<-\EOF &&
+ /tmp
+ /fooo
+ foo/
+ !foo/bar/bar
+ EOF
+ git ls-files -o --exclude-standard >tmp/actual &&
+ cat >tmp/expected <<-\EOF &&
+ .gitignore
+ abc
+ foo/bar/bar
+ EOF
+ test_cmp tmp/expected tmp/actual
+'
+
+test_expect_success 'match, excluded by literal mustbedir, pathname pattern' '
+ cat >.gitignore <<-\EOF &&
+ /tmp
+ /fooo
+ /foo/
+ !foo/bar/bar
+ EOF
+ git ls-files -o --exclude-standard >tmp/actual &&
+ cat >tmp/expected <<-\EOF &&
+ .gitignore
+ abc
+ foo/bar/bar
+ EOF
+ test_cmp tmp/expected tmp/actual
+'
+
+test_expect_success 'prepare for nested negatives' '
+ cat >.git/info/exclude <<-\EOF &&
+ /.gitignore
+ /tmp
+ /foo
+ /abc
+ EOF
+ git ls-files -o --exclude-standard >tmp/actual &&
+ test_must_be_empty tmp/actual &&
+ mkdir -p 1/2/3/4 &&
+ touch 1/f 1/2/f 1/2/3/f 1/2/3/4/f
+'
+
+test_expect_success 'match, literal pathname, nested negatives' '
+ cat >.gitignore <<-\EOF &&
+ /1
+ !1/2
+ 1/2/3
+ !1/2/3/4
+ EOF
+ git ls-files -o --exclude-standard >tmp/actual &&
+ cat >tmp/expected <<-\EOF &&
+ 1/2/3/4/f
+ 1/2/f
+ EOF
+ test_cmp tmp/expected tmp/actual
+'
+
+test_done
diff --git a/t/t3030-merge-recursive.sh b/t/t3030-merge-recursive.sh
index 6224187632..f7b0e599f1 100755
--- a/t/t3030-merge-recursive.sh
+++ b/t/t3030-merge-recursive.sh
@@ -263,7 +263,7 @@ test_expect_success 'setup 8' '
test_ln_s_add e a &&
test_tick &&
git commit -m "rename a->e, symlink a->e" &&
- oln=`printf e | git hash-object --stdin`
+ oln=$(printf e | git hash-object --stdin)
'
test_expect_success 'setup 9' '
diff --git a/t/t3032-merge-recursive-options.sh b/t/t3032-merge-recursive-space-options.sh
index 4029c9c8c0..b56180ee4a 100755
--- a/t/t3032-merge-recursive-options.sh
+++ b/t/t3032-merge-recursive-space-options.sh
@@ -1,6 +1,6 @@
#!/bin/sh
-test_description='merge-recursive options
+test_description='merge-recursive space options
* [master] Clarify
! [remote] Remove cruft
diff --git a/t/t3034-merge-recursive-rename-options.sh b/t/t3034-merge-recursive-rename-options.sh
new file mode 100755
index 0000000000..b9c4028496
--- /dev/null
+++ b/t/t3034-merge-recursive-rename-options.sh
@@ -0,0 +1,312 @@
+#!/bin/sh
+
+test_description='merge-recursive rename options
+
+Test rename detection by examining rename/delete conflicts.
+
+* (HEAD -> rename) rename
+| * (master) delete
+|/
+* base
+
+git diff --name-status base master
+D 0-old
+D 1-old
+D 2-old
+D 3-old
+
+git diff --name-status -M01 base rename
+R025 0-old 0-new
+R050 1-old 1-new
+R075 2-old 2-new
+R100 3-old 3-new
+
+Actual similarity indices are parsed from diff output. We rely on the fact that
+they are rounded down (see, e.g., Documentation/diff-generate-patch.txt, which
+mentions this in a different context).
+'
+
+. ./test-lib.sh
+
+get_expected_stages () {
+ git checkout rename -- $1-new &&
+ git ls-files --stage $1-new >expected-stages-undetected-$1 &&
+ sed "s/ 0 / 2 /" <expected-stages-undetected-$1 \
+ >expected-stages-detected-$1 &&
+ git read-tree -u --reset HEAD
+}
+
+rename_detected () {
+ git ls-files --stage $1-old $1-new >stages-actual-$1 &&
+ test_cmp expected-stages-detected-$1 stages-actual-$1
+}
+
+rename_undetected () {
+ git ls-files --stage $1-old $1-new >stages-actual-$1 &&
+ test_cmp expected-stages-undetected-$1 stages-actual-$1
+}
+
+check_common () {
+ git ls-files --stage >stages-actual &&
+ test_line_count = 4 stages-actual
+}
+
+check_threshold_0 () {
+ check_common &&
+ rename_detected 0 &&
+ rename_detected 1 &&
+ rename_detected 2 &&
+ rename_detected 3
+}
+
+check_threshold_1 () {
+ check_common &&
+ rename_undetected 0 &&
+ rename_detected 1 &&
+ rename_detected 2 &&
+ rename_detected 3
+}
+
+check_threshold_2 () {
+ check_common &&
+ rename_undetected 0 &&
+ rename_undetected 1 &&
+ rename_detected 2 &&
+ rename_detected 3
+}
+
+check_exact_renames () {
+ check_common &&
+ rename_undetected 0 &&
+ rename_undetected 1 &&
+ rename_undetected 2 &&
+ rename_detected 3
+}
+
+check_no_renames () {
+ check_common &&
+ rename_undetected 0 &&
+ rename_undetected 1 &&
+ rename_undetected 2 &&
+ rename_undetected 3
+}
+
+test_expect_success 'setup repo' '
+ cat <<-\EOF >3-old &&
+ 33a
+ 33b
+ 33c
+ 33d
+ EOF
+ sed s/33/22/ <3-old >2-old &&
+ sed s/33/11/ <3-old >1-old &&
+ sed s/33/00/ <3-old >0-old &&
+ git add [0-3]-old &&
+ git commit -m base &&
+ git rm [0-3]-old &&
+ git commit -m delete &&
+ git checkout -b rename HEAD^ &&
+ cp 3-old 3-new &&
+ sed 1,1s/./x/ <2-old >2-new &&
+ sed 1,2s/./x/ <1-old >1-new &&
+ sed 1,3s/./x/ <0-old >0-new &&
+ git add [0-3]-new &&
+ git rm [0-3]-old &&
+ git commit -m rename &&
+ get_expected_stages 0 &&
+ get_expected_stages 1 &&
+ get_expected_stages 2 &&
+ get_expected_stages 3 &&
+ check_50="false" &&
+ tail="HEAD^ -- HEAD master"
+'
+
+test_expect_success 'setup thresholds' '
+ git diff --name-status -M01 HEAD^ HEAD >diff-output &&
+ test_debug "cat diff-output" &&
+ test_line_count = 4 diff-output &&
+ grep "R[0-9][0-9][0-9] \([0-3]\)-old \1-new" diff-output \
+ >grep-output &&
+ test_cmp diff-output grep-output &&
+ th0=$(sed -n "s/R\(...\) 0-old 0-new/\1/p" <diff-output) &&
+ th1=$(sed -n "s/R\(...\) 1-old 1-new/\1/p" <diff-output) &&
+ th2=$(sed -n "s/R\(...\) 2-old 2-new/\1/p" <diff-output) &&
+ th3=$(sed -n "s/R\(...\) 3-old 3-new/\1/p" <diff-output) &&
+ test "$th0" -lt "$th1" &&
+ test "$th1" -lt "$th2" &&
+ test "$th2" -lt "$th3" &&
+ test "$th3" = 100 &&
+ if test 50 -le "$th0"
+ then
+ check_50=check_threshold_0
+ elif test 50 -le "$th1"
+ then
+ check_50=check_threshold_1
+ elif test 50 -le "$th2"
+ then
+ check_50=check_threshold_2
+ fi &&
+ th0="$th0%" &&
+ th1="$th1%" &&
+ th2="$th2%" &&
+ th3="$th3%"
+'
+
+test_expect_success 'assumption for tests: rename detection with diff' '
+ git diff --name-status -M$th0 --diff-filter=R HEAD^ HEAD \
+ >diff-output-0 &&
+ git diff --name-status -M$th1 --diff-filter=R HEAD^ HEAD \
+ >diff-output-1 &&
+ git diff --name-status -M$th2 --diff-filter=R HEAD^ HEAD \
+ >diff-output-2 &&
+ git diff --name-status -M100% --diff-filter=R HEAD^ HEAD \
+ >diff-output-3 &&
+ test_line_count = 4 diff-output-0 &&
+ test_line_count = 3 diff-output-1 &&
+ test_line_count = 2 diff-output-2 &&
+ test_line_count = 1 diff-output-3
+'
+
+test_expect_success 'default similarity threshold is 50%' '
+ git read-tree --reset -u HEAD &&
+ test_must_fail git merge-recursive $tail &&
+ $check_50
+'
+
+test_expect_success 'low rename threshold' '
+ git read-tree --reset -u HEAD &&
+ test_must_fail git merge-recursive --find-renames=$th0 $tail &&
+ check_threshold_0
+'
+
+test_expect_success 'medium rename threshold' '
+ git read-tree --reset -u HEAD &&
+ test_must_fail git merge-recursive --find-renames=$th1 $tail &&
+ check_threshold_1
+'
+
+test_expect_success 'high rename threshold' '
+ git read-tree --reset -u HEAD &&
+ test_must_fail git merge-recursive --find-renames=$th2 $tail &&
+ check_threshold_2
+'
+
+test_expect_success 'exact renames only' '
+ git read-tree --reset -u HEAD &&
+ test_must_fail git merge-recursive --find-renames=100% $tail &&
+ check_exact_renames
+'
+
+test_expect_success 'rename threshold is truncated' '
+ git read-tree --reset -u HEAD &&
+ test_must_fail git merge-recursive --find-renames=200% $tail &&
+ check_exact_renames
+'
+
+test_expect_success 'disabled rename detection' '
+ git read-tree --reset -u HEAD &&
+ git merge-recursive --no-renames $tail &&
+ check_no_renames
+'
+
+test_expect_success 'last wins in --find-renames=<m> --find-renames=<n>' '
+ git read-tree --reset -u HEAD &&
+ test_must_fail git merge-recursive \
+ --find-renames=$th0 --find-renames=$th2 $tail &&
+ check_threshold_2
+'
+
+test_expect_success '--find-renames resets threshold' '
+ git read-tree --reset -u HEAD &&
+ test_must_fail git merge-recursive \
+ --find-renames=$th0 --find-renames $tail &&
+ $check_50
+'
+
+test_expect_success 'last wins in --no-renames --find-renames' '
+ git read-tree --reset -u HEAD &&
+ test_must_fail git merge-recursive --no-renames --find-renames $tail &&
+ $check_50
+'
+
+test_expect_success 'last wins in --find-renames --no-renames' '
+ git read-tree --reset -u HEAD &&
+ git merge-recursive --find-renames --no-renames $tail &&
+ check_no_renames
+'
+
+test_expect_success 'assumption for further tests: trivial merge succeeds' '
+ git read-tree --reset -u HEAD &&
+ git merge-recursive HEAD -- HEAD HEAD &&
+ git diff --quiet --cached &&
+ git merge-recursive --find-renames=$th0 HEAD -- HEAD HEAD &&
+ git diff --quiet --cached &&
+ git merge-recursive --find-renames=$th2 HEAD -- HEAD HEAD &&
+ git diff --quiet --cached &&
+ git merge-recursive --find-renames=100% HEAD -- HEAD HEAD &&
+ git diff --quiet --cached &&
+ git merge-recursive --no-renames HEAD -- HEAD HEAD &&
+ git diff --quiet --cached
+'
+
+test_expect_success '--find-renames rejects negative argument' '
+ git read-tree --reset -u HEAD &&
+ test_must_fail git merge-recursive --find-renames=-25 \
+ HEAD -- HEAD HEAD &&
+ git diff --quiet --cached
+'
+
+test_expect_success '--find-renames rejects non-numbers' '
+ git read-tree --reset -u HEAD &&
+ test_must_fail git merge-recursive --find-renames=0xf \
+ HEAD -- HEAD HEAD &&
+ git diff --quiet --cached
+'
+
+test_expect_success 'rename-threshold=<n> is a synonym for find-renames=<n>' '
+ git read-tree --reset -u HEAD &&
+ test_must_fail git merge-recursive --rename-threshold=$th0 $tail &&
+ check_threshold_0
+'
+
+test_expect_success 'last wins in --no-renames --rename-threshold=<n>' '
+ git read-tree --reset -u HEAD &&
+ test_must_fail git merge-recursive --no-renames --rename-threshold=$th0 $tail &&
+ check_threshold_0
+'
+
+test_expect_success 'last wins in --rename-threshold=<n> --no-renames' '
+ git read-tree --reset -u HEAD &&
+ git merge-recursive --rename-threshold=$th0 --no-renames $tail &&
+ check_no_renames
+'
+
+test_expect_success '--rename-threshold=<n> rejects negative argument' '
+ git read-tree --reset -u HEAD &&
+ test_must_fail git merge-recursive --rename-threshold=-25 \
+ HEAD -- HEAD HEAD &&
+ git diff --quiet --cached
+'
+
+test_expect_success '--rename-threshold=<n> rejects non-numbers' '
+ git read-tree --reset -u HEAD &&
+ test_must_fail git merge-recursive --rename-threshold=0xf \
+ HEAD -- HEAD HEAD &&
+ git diff --quiet --cached
+'
+
+test_expect_success 'last wins in --rename-threshold=<m> --find-renames=<n>' '
+ git read-tree --reset -u HEAD &&
+ test_must_fail git merge-recursive \
+ --rename-threshold=$th0 --find-renames=$th2 $tail &&
+ check_threshold_2
+'
+
+test_expect_success 'last wins in --find-renames=<m> --rename-threshold=<n>' '
+ git read-tree --reset -u HEAD &&
+ test_must_fail git merge-recursive \
+ --find-renames=$th2 --rename-threshold=$th0 $tail &&
+ check_threshold_0
+'
+
+test_done
diff --git a/t/t3100-ls-tree-restrict.sh b/t/t3100-ls-tree-restrict.sh
index eb73c06a4e..325114f8fe 100755
--- a/t/t3100-ls-tree-restrict.sh
+++ b/t/t3100-ls-tree-restrict.sh
@@ -28,7 +28,7 @@ test_expect_success \
echo Mi >path2/baz/b &&
find path? \( -type f -o -type l \) -print |
xargs git update-index --add &&
- tree=`git write-tree` &&
+ tree=$(git write-tree) &&
echo $tree'
test_output () {
diff --git a/t/t3101-ls-tree-dirname.sh b/t/t3101-ls-tree-dirname.sh
index 026f9f89d9..425d858938 100755
--- a/t/t3101-ls-tree-dirname.sh
+++ b/t/t3101-ls-tree-dirname.sh
@@ -35,7 +35,7 @@ test_expect_success 'setup' '
echo 222 >path3/2.txt &&
find *.txt path* \( -type f -o -type l \) -print |
xargs git update-index --add &&
- tree=`git write-tree` &&
+ tree=$(git write-tree) &&
echo $tree
'
diff --git a/t/t3210-pack-refs.sh b/t/t3210-pack-refs.sh
index db244d2f88..9b182a0c32 100755
--- a/t/t3210-pack-refs.sh
+++ b/t/t3210-pack-refs.sh
@@ -27,7 +27,7 @@ SHA1=
test_expect_success \
'see if git show-ref works as expected' \
'git branch a &&
- SHA1=`cat .git/refs/heads/a` &&
+ SHA1=$(cat .git/refs/heads/a) &&
echo "$SHA1 refs/heads/a" >expect &&
git show-ref a >result &&
test_cmp expect result'
diff --git a/t/t3300-funny-names.sh b/t/t3300-funny-names.sh
index 9a146f1335..04de03cad0 100755
--- a/t/t3300-funny-names.sh
+++ b/t/t3300-funny-names.sh
@@ -13,6 +13,7 @@ tree, index, and tree objects.
HT=' '
+test_have_prereq MINGW ||
echo 2>/dev/null > "Name with an${HT}HT"
if ! test -f "Name with an${HT}HT"
then
diff --git a/t/t3301-notes.sh b/t/t3301-notes.sh
index cd70274ea5..2d200fdf36 100755
--- a/t/t3301-notes.sh
+++ b/t/t3301-notes.sh
@@ -83,6 +83,16 @@ test_expect_success 'edit existing notes' '
test_must_fail git notes show HEAD^
'
+test_expect_success 'show notes from treeish' '
+ test "b3" = "$(git notes --ref commits^{tree} show)" &&
+ test "b4" = "$(git notes --ref commits@{1} show)"
+'
+
+test_expect_success 'cannot edit notes from non-ref' '
+ test_must_fail git notes --ref commits^{tree} edit &&
+ test_must_fail git notes --ref commits@{1} edit
+'
+
test_expect_success 'cannot "git notes add -m" where notes already exists' '
test_must_fail git notes add -m "b2" &&
test_path_is_missing .git/NOTES_EDITMSG &&
diff --git a/t/t3308-notes-merge.sh b/t/t3308-notes-merge.sh
index 24d82b49bb..19aed7ec95 100755
--- a/t/t3308-notes-merge.sh
+++ b/t/t3308-notes-merge.sh
@@ -18,7 +18,9 @@ test_expect_success setup '
git notes add -m "Notes on 1st commit" 1st &&
git notes add -m "Notes on 2nd commit" 2nd &&
git notes add -m "Notes on 3rd commit" 3rd &&
- git notes add -m "Notes on 4th commit" 4th
+ git notes add -m "Notes on 4th commit" 4th &&
+ # Copy notes to remote-notes
+ git fetch . refs/notes/*:refs/remote-notes/origin/*
'
commit_sha1=$(git rev-parse 1st^{commit})
@@ -66,7 +68,9 @@ test_expect_success 'verify initial notes (x)' '
'
cp expect_notes_x expect_notes_y
+cp expect_notes_x expect_notes_v
cp expect_log_x expect_log_y
+cp expect_log_x expect_log_v
test_expect_success 'fail to merge empty notes ref into empty notes ref (z => y)' '
test_must_fail git -c "core.notesRef=refs/notes/y" notes merge z
@@ -84,16 +88,12 @@ test_expect_success 'fail to merge into various non-notes refs' '
test_must_fail git -c "core.notesRef=refs/notes/foo^{bar" notes merge x
'
-test_expect_success 'fail to merge various non-note-trees' '
- git config core.notesRef refs/notes/y &&
- test_must_fail git notes merge refs/notes &&
- test_must_fail git notes merge refs/notes/ &&
- test_must_fail git notes merge refs/notes/dir &&
- test_must_fail git notes merge refs/notes/dir/ &&
- test_must_fail git notes merge refs/heads/master &&
- test_must_fail git notes merge x: &&
- test_must_fail git notes merge x:foo &&
- test_must_fail git notes merge foo^{bar
+test_expect_success 'merge non-notes ref into empty notes ref (remote-notes/origin/x => v)' '
+ git config core.notesRef refs/notes/v &&
+ git notes merge refs/remote-notes/origin/x &&
+ verify_notes v &&
+ # refs/remote-notes/origin/x and v should point to the same notes commit
+ test "$(git rev-parse refs/remote-notes/origin/x)" = "$(git rev-parse refs/notes/v)"
'
test_expect_success 'merge notes into empty notes ref (x => y)' '
diff --git a/t/t3403-rebase-skip.sh b/t/t3403-rebase-skip.sh
index 3968020e64..1f5122b632 100755
--- a/t/t3403-rebase-skip.sh
+++ b/t/t3403-rebase-skip.sh
@@ -67,7 +67,7 @@ test_expect_success 'rebase --skip with --merge' '
'
test_expect_success 'merge and reference trees equal' '
- test -z "`git diff-tree skip-merge skip-reference`"
+ test -z "$(git diff-tree skip-merge skip-reference)"
'
test_expect_success 'moved back to branch correctly' '
diff --git a/t/t3511-cherry-pick-x.sh b/t/t3511-cherry-pick-x.sh
index b7dff09d06..9cce5ae881 100755
--- a/t/t3511-cherry-pick-x.sh
+++ b/t/t3511-cherry-pick-x.sh
@@ -77,7 +77,7 @@ test_expect_success setup '
test_expect_success 'cherry-pick -x inserts blank line after one line subject' '
pristine_detach initial &&
- sha1=`git rev-parse mesg-one-line^0` &&
+ sha1=$(git rev-parse mesg-one-line^0) &&
git cherry-pick -x mesg-one-line &&
cat <<-EOF >expect &&
$mesg_one_line
@@ -114,7 +114,7 @@ test_expect_success 'cherry-pick -s inserts blank line after non-conforming foot
test_expect_success 'cherry-pick -x inserts blank line when conforming footer not found' '
pristine_detach initial &&
- sha1=`git rev-parse mesg-no-footer^0` &&
+ sha1=$(git rev-parse mesg-no-footer^0) &&
git cherry-pick -x mesg-no-footer &&
cat <<-EOF >expect &&
$mesg_no_footer
@@ -139,7 +139,7 @@ test_expect_success 'cherry-pick -s inserts blank line when conforming footer no
test_expect_success 'cherry-pick -x -s inserts blank line when conforming footer not found' '
pristine_detach initial &&
- sha1=`git rev-parse mesg-no-footer^0` &&
+ sha1=$(git rev-parse mesg-no-footer^0) &&
git cherry-pick -x -s mesg-no-footer &&
cat <<-EOF >expect &&
$mesg_no_footer
@@ -164,7 +164,7 @@ test_expect_success 'cherry-pick -s adds sob when last sob doesnt match committe
test_expect_success 'cherry-pick -x -s adds sob when last sob doesnt match committer' '
pristine_detach initial &&
- sha1=`git rev-parse mesg-with-footer^0` &&
+ sha1=$(git rev-parse mesg-with-footer^0) &&
git cherry-pick -x -s mesg-with-footer &&
cat <<-EOF >expect &&
$mesg_with_footer
@@ -187,7 +187,7 @@ test_expect_success 'cherry-pick -s refrains from adding duplicate trailing sob'
test_expect_success 'cherry-pick -x -s adds sob even when trailing sob exists for committer' '
pristine_detach initial &&
- sha1=`git rev-parse mesg-with-footer-sob^0` &&
+ sha1=$(git rev-parse mesg-with-footer-sob^0) &&
git cherry-pick -x -s mesg-with-footer-sob &&
cat <<-EOF >expect &&
$mesg_with_footer_sob
@@ -200,7 +200,7 @@ test_expect_success 'cherry-pick -x -s adds sob even when trailing sob exists fo
test_expect_success 'cherry-pick -x treats "(cherry picked from..." line as part of footer' '
pristine_detach initial &&
- sha1=`git rev-parse mesg-with-cherry-footer^0` &&
+ sha1=$(git rev-parse mesg-with-cherry-footer^0) &&
git cherry-pick -x mesg-with-cherry-footer &&
cat <<-EOF >expect &&
$mesg_with_cherry_footer
@@ -223,7 +223,7 @@ test_expect_success 'cherry-pick -s treats "(cherry picked from..." line as part
test_expect_success 'cherry-pick -x -s treats "(cherry picked from..." line as part of footer' '
pristine_detach initial &&
- sha1=`git rev-parse mesg-with-cherry-footer^0` &&
+ sha1=$(git rev-parse mesg-with-cherry-footer^0) &&
git cherry-pick -x -s mesg-with-cherry-footer &&
cat <<-EOF >expect &&
$mesg_with_cherry_footer
diff --git a/t/t3600-rm.sh b/t/t3600-rm.sh
index 9d90d2c935..d046d98aec 100755
--- a/t/t3600-rm.sh
+++ b/t/t3600-rm.sh
@@ -14,7 +14,7 @@ test_expect_success \
git add -- foo bar baz 'space embedded' -q &&
git commit -m 'add normal files'"
-if touch -- 'tab embedded' 'newline
+if test_have_prereq !MINGW && touch -- 'tab embedded' 'newline
embedded' 2>/dev/null
then
test_set_prereq FUNNYNAMES
@@ -115,7 +115,7 @@ test_expect_success '"rm" command printed' '
git add test-file &&
git commit -m "add file for rm test" &&
git rm test-file > rm-output &&
- test `grep "^rm " rm-output | wc -l` = 1 &&
+ test $(grep "^rm " rm-output | wc -l) = 1 &&
rm -f test-file rm-output &&
git commit -m "remove file from rm test"
'
@@ -125,7 +125,7 @@ test_expect_success '"rm" command suppressed with --quiet' '
git add test-file &&
git commit -m "add file for rm --quiet test" &&
git rm --quiet test-file > rm-output &&
- test `wc -l < rm-output` = 0 &&
+ test $(wc -l < rm-output) = 0 &&
rm -f test-file rm-output &&
git commit -m "remove file from rm --quiet test"
'
diff --git a/t/t3700-add.sh b/t/t3700-add.sh
index f7ff1f555d..f14a665356 100755
--- a/t/t3700-add.sh
+++ b/t/t3700-add.sh
@@ -25,7 +25,7 @@ test_expect_success \
echo foo >xfoo1 &&
chmod 755 xfoo1 &&
git add xfoo1 &&
- case "`git ls-files --stage xfoo1`" in
+ case "$(git ls-files --stage xfoo1)" in
100644" "*xfoo1) echo pass;;
*) echo fail; git ls-files --stage xfoo1; (exit 1);;
esac'
@@ -33,7 +33,7 @@ test_expect_success \
test_expect_success 'git add: filemode=0 should not get confused by symlink' '
rm -f xfoo1 &&
test_ln_s_add foo xfoo1 &&
- case "`git ls-files --stage xfoo1`" in
+ case "$(git ls-files --stage xfoo1)" in
120000" "*xfoo1) echo pass;;
*) echo fail; git ls-files --stage xfoo1; (exit 1);;
esac
@@ -45,7 +45,7 @@ test_expect_success \
echo foo >xfoo2 &&
chmod 755 xfoo2 &&
git update-index --add xfoo2 &&
- case "`git ls-files --stage xfoo2`" in
+ case "$(git ls-files --stage xfoo2)" in
100644" "*xfoo2) echo pass;;
*) echo fail; git ls-files --stage xfoo2; (exit 1);;
esac'
@@ -53,7 +53,7 @@ test_expect_success \
test_expect_success 'git add: filemode=0 should not get confused by symlink' '
rm -f xfoo2 &&
test_ln_s_add foo xfoo2 &&
- case "`git ls-files --stage xfoo2`" in
+ case "$(git ls-files --stage xfoo2)" in
120000" "*xfoo2) echo pass;;
*) echo fail; git ls-files --stage xfoo2; (exit 1);;
esac
@@ -63,7 +63,7 @@ test_expect_success \
'git update-index --add: Test that executable bit is not used...' \
'git config core.filemode 0 &&
test_ln_s_add xfoo2 xfoo3 && # runs git update-index --add
- case "`git ls-files --stage xfoo3`" in
+ case "$(git ls-files --stage xfoo3)" in
120000" "*xfoo3) echo pass;;
*) echo fail; git ls-files --stage xfoo3; (exit 1);;
esac'
@@ -173,14 +173,14 @@ test_expect_success 'git add with filemode=0, symlinks=0 prefers stage 2 over st
test_expect_success 'git add --refresh' '
>foo && git add foo && git commit -a -m "commit all" &&
- test -z "`git diff-index HEAD -- foo`" &&
+ test -z "$(git diff-index HEAD -- foo)" &&
git read-tree HEAD &&
- case "`git diff-index HEAD -- foo`" in
+ case "$(git diff-index HEAD -- foo)" in
:100644" "*"M foo") echo pass;;
*) echo fail; (exit 1);;
esac &&
git add --refresh -- foo &&
- test -z "`git diff-index HEAD -- foo`"
+ test -z "$(git diff-index HEAD -- foo)"
'
test_expect_success 'git add --refresh with pathspec' '
diff --git a/t/t3703-add-magic-pathspec.sh b/t/t3703-add-magic-pathspec.sh
index 5115de7036..3ef525a559 100755
--- a/t/t3703-add-magic-pathspec.sh
+++ b/t/t3703-add-magic-pathspec.sh
@@ -38,7 +38,7 @@ cat >expected <<EOF
add 'sub/foo'
EOF
-if mkdir ":" 2>/dev/null
+if test_have_prereq !MINGW && mkdir ":" 2>/dev/null
then
test_set_prereq COLON_DIR
fi
diff --git a/t/t3902-quoted.sh b/t/t3902-quoted.sh
index 892f567844..f528008c36 100755
--- a/t/t3902-quoted.sh
+++ b/t/t3902-quoted.sh
@@ -12,6 +12,7 @@ GN='ç´”'
HT=' '
DQ='"'
+test_have_prereq MINGW ||
echo foo 2>/dev/null > "Name and an${HT}HT"
if ! test -f "Name and an${HT}HT"
then
diff --git a/t/t4014-format-patch.sh b/t/t4014-format-patch.sh
index 646c4750ec..3b99434e3e 100755
--- a/t/t4014-format-patch.sh
+++ b/t/t4014-format-patch.sh
@@ -1445,4 +1445,19 @@ test_expect_success 'From line has expected format' '
test_cmp from filtered
'
+test_expect_success 'format-patch format.outputDirectory option' '
+ test_config format.outputDirectory patches &&
+ rm -fr patches &&
+ git format-patch master..side &&
+ test $(git rev-list master..side | wc -l) -eq $(ls patches | wc -l)
+'
+
+test_expect_success 'format-patch -o overrides format.outputDirectory' '
+ test_config format.outputDirectory patches &&
+ rm -fr patches patchset &&
+ git format-patch master..side -o patchset &&
+ test_path_is_missing patches &&
+ test_path_is_dir patchset
+'
+
test_done
diff --git a/t/t4016-diff-quote.sh b/t/t4016-diff-quote.sh
index cd543ecc54..9c48e5c2c9 100755
--- a/t/t4016-diff-quote.sh
+++ b/t/t4016-diff-quote.sh
@@ -13,6 +13,7 @@ P1='pathname with HT'
P2='pathname with SP'
P3='pathname
with LF'
+test_have_prereq !MINGW &&
echo 2>/dev/null >"$P1" && test -f "$P1" && rm -f "$P1" || {
skip_all='Your filesystem does not allow tabs in filenames'
test_done
diff --git a/t/t4135-apply-weird-filenames.sh b/t/t4135-apply-weird-filenames.sh
index bf5dc57286..27cb0009fb 100755
--- a/t/t4135-apply-weird-filenames.sh
+++ b/t/t4135-apply-weird-filenames.sh
@@ -19,7 +19,8 @@ test_expect_success 'setup' '
test_when_finished "rm -f \"tab embedded.txt\"" &&
test_when_finished "rm -f '\''\"quoteembedded\".txt'\''" &&
- if touch -- "tab embedded.txt" '\''"quoteembedded".txt'\''
+ if test_have_prereq !MINGW &&
+ touch -- "tab embedded.txt" '\''"quoteembedded".txt'\''
then
test_set_prereq FUNNYNAMES
fi
diff --git a/t/t4201-shortlog.sh b/t/t4201-shortlog.sh
index 7600a3e3e8..f5e63670fa 100755
--- a/t/t4201-shortlog.sh
+++ b/t/t4201-shortlog.sh
@@ -120,6 +120,12 @@ test_expect_success !MINGW 'shortlog from non-git directory' '
test_cmp expect out
'
+test_expect_success !MINGW 'shortlog can read --format=raw output' '
+ git log --format=raw HEAD >log &&
+ GIT_DIR=non-existing git shortlog -w <log >out &&
+ test_cmp expect out
+'
+
test_expect_success 'shortlog should add newline when input line matches wraplen' '
cat >expect <<\EOF &&
A U Thor (2):
@@ -172,22 +178,6 @@ test_expect_success !MINGW 'shortlog encoding' '
git shortlog HEAD~2.. > out &&
test_cmp expect out'
-test_expect_success 'shortlog ignores commits with missing authors' '
- git commit --allow-empty -m normal &&
- git commit --allow-empty -m soon-to-be-broken &&
- git cat-file commit HEAD >commit.tmp &&
- sed "/^author/d" commit.tmp >broken.tmp &&
- commit=$(git hash-object -w -t commit --stdin <broken.tmp) &&
- git update-ref HEAD $commit &&
- cat >expect <<-\EOF &&
- A U Thor (1):
- normal
-
- EOF
- git shortlog HEAD~2.. >actual &&
- test_cmp expect actual
-'
-
test_expect_success 'shortlog with revision pseudo options' '
git shortlog --all &&
git shortlog --branches &&
diff --git a/t/t5100-mailinfo.sh b/t/t5100-mailinfo.sh
index e97cfb2ab8..85b3df5e33 100755
--- a/t/t5100-mailinfo.sh
+++ b/t/t5100-mailinfo.sh
@@ -9,9 +9,9 @@ test_description='git mailinfo and git mailsplit test'
test_expect_success 'split sample box' \
'git mailsplit -o. "$TEST_DIRECTORY"/t5100/sample.mbox >last &&
- last=`cat last` &&
+ last=$(cat last) &&
echo total is $last &&
- test `cat last` = 17'
+ test $(cat last) = 17'
check_mailinfo () {
mail=$1 opt=$2
@@ -23,7 +23,7 @@ check_mailinfo () {
}
-for mail in `echo 00*`
+for mail in 00*
do
test_expect_success "mailinfo $mail" '
check_mailinfo $mail "" &&
@@ -47,11 +47,11 @@ test_expect_success 'split box with rfc2047 samples' \
'mkdir rfc2047 &&
git mailsplit -orfc2047 "$TEST_DIRECTORY"/t5100/rfc2047-samples.mbox \
>rfc2047/last &&
- last=`cat rfc2047/last` &&
+ last=$(cat rfc2047/last) &&
echo total is $last &&
- test `cat rfc2047/last` = 11'
+ test $(cat rfc2047/last) = 11'
-for mail in `echo rfc2047/00*`
+for mail in rfc2047/00*
do
test_expect_success "mailinfo $mail" '
git mailinfo -u $mail-msg $mail-patch <$mail >$mail-info &&
diff --git a/t/t5300-pack-object.sh b/t/t5300-pack-object.sh
index 20c1961515..fc2be63e02 100755
--- a/t/t5300-pack-object.sh
+++ b/t/t5300-pack-object.sh
@@ -8,7 +8,7 @@ test_description='git pack-object
'
. ./test-lib.sh
-TRASH=`pwd`
+TRASH=$(pwd)
test_expect_success \
'setup' \
@@ -20,8 +20,8 @@ test_expect_success \
test-genrandom "seed b" 2097152 > b_big &&
git update-index --add a a_big b b_big c &&
cat c >d && echo foo >>d && git update-index --add d &&
- tree=`git write-tree` &&
- commit=`git commit-tree $tree </dev/null` && {
+ tree=$(git write-tree) &&
+ commit=$(git commit-tree $tree </dev/null) && {
echo $tree &&
echo $commit &&
git ls-tree $tree | sed -e "s/.* \\([0-9a-f]*\\) .*/\\1/"
@@ -29,7 +29,7 @@ test_expect_success \
git diff-tree --root -p $commit &&
while read object
do
- t=`git cat-file -t $object` &&
+ t=$(git cat-file -t $object) &&
git cat-file $t $object || return 1
done <obj-list
} >expect'
@@ -147,7 +147,7 @@ test_expect_success \
git diff-tree --root -p $commit &&
while read object
do
- t=`git cat-file -t $object` &&
+ t=$(git cat-file -t $object) &&
git cat-file $t $object || return 1
done <obj-list
} >current &&
@@ -162,7 +162,7 @@ test_expect_success \
git diff-tree --root -p $commit &&
while read object
do
- t=`git cat-file -t $object` &&
+ t=$(git cat-file -t $object) &&
git cat-file $t $object || return 1
done <obj-list
} >current &&
@@ -177,7 +177,7 @@ test_expect_success \
git diff-tree --root -p $commit &&
while read object
do
- t=`git cat-file -t $object` &&
+ t=$(git cat-file -t $object) &&
git cat-file $t $object || return 1
done <obj-list
} >current &&
@@ -252,8 +252,8 @@ test_expect_success \
test_expect_success \
'verify-pack catches a corrupted sum of the index file itself' \
- 'l=`wc -c <test-3.idx` &&
- l=`expr $l - 20` &&
+ 'l=$(wc -c <test-3.idx) &&
+ l=$(expr $l - 20) &&
cat test-1-${packname_1}.pack >test-3.pack &&
printf "%20s" "" | dd of=test-3.idx count=20 bs=1 conv=notrunc seek=$l &&
if git verify-pack test-3.pack
diff --git a/t/t5301-sliding-window.sh b/t/t5301-sliding-window.sh
index 2fc5af6007..cae8c2e882 100755
--- a/t/t5301-sliding-window.sh
+++ b/t/t5301-sliding-window.sh
@@ -16,12 +16,12 @@ test_expect_success \
git update-index --add $i || return 1
done &&
echo d >d && cat c >>d && git update-index --add d &&
- tree=`git write-tree` &&
- commit1=`git commit-tree $tree </dev/null` &&
+ tree=$(git write-tree) &&
+ commit1=$(git commit-tree $tree </dev/null) &&
git update-ref HEAD $commit1 &&
git repack -a -d &&
- test "`git count-objects`" = "0 objects, 0 kilobytes" &&
- pack1=`ls .git/objects/pack/*.pack` &&
+ test "$(git count-objects)" = "0 objects, 0 kilobytes" &&
+ pack1=$(ls .git/objects/pack/*.pack) &&
test -f "$pack1"'
test_expect_success \
@@ -43,11 +43,11 @@ test_expect_success \
'repack -a -d, packedGit{WindowSize,Limit} == 1 page' \
'git config core.packedGitWindowSize 512 &&
git config core.packedGitLimit 512 &&
- commit2=`git commit-tree $tree -p $commit1 </dev/null` &&
+ commit2=$(git commit-tree $tree -p $commit1 </dev/null) &&
git update-ref HEAD $commit2 &&
git repack -a -d &&
- test "`git count-objects`" = "0 objects, 0 kilobytes" &&
- pack2=`ls .git/objects/pack/*.pack` &&
+ test "$(git count-objects)" = "0 objects, 0 kilobytes" &&
+ pack2=$(ls .git/objects/pack/*.pack) &&
test -f "$pack2" &&
test "$pack1" \!= "$pack2"'
diff --git a/t/t5302-pack-index.sh b/t/t5302-pack-index.sh
index 3dc5ec4dd3..c2fc584dac 100755
--- a/t/t5302-pack-index.sh
+++ b/t/t5302-pack-index.sh
@@ -14,21 +14,21 @@ test_expect_success \
i=1 &&
while test $i -le 100
do
- iii=`printf '%03i' $i`
+ iii=$(printf '%03i' $i)
test-genrandom "bar" 200 > wide_delta_$iii &&
test-genrandom "baz $iii" 50 >> wide_delta_$iii &&
test-genrandom "foo"$i 100 > deep_delta_$iii &&
- test-genrandom "foo"`expr $i + 1` 100 >> deep_delta_$iii &&
- test-genrandom "foo"`expr $i + 2` 100 >> deep_delta_$iii &&
+ test-genrandom "foo"$(expr $i + 1) 100 >> deep_delta_$iii &&
+ test-genrandom "foo"$(expr $i + 2) 100 >> deep_delta_$iii &&
echo $iii >file_$iii &&
test-genrandom "$iii" 8192 >>file_$iii &&
git update-index --add file_$iii deep_delta_$iii wide_delta_$iii &&
- i=`expr $i + 1` || return 1
+ i=$(expr $i + 1) || return 1
done &&
{ echo 101 && test-genrandom 100 8192; } >file_101 &&
git update-index --add file_101 &&
- tree=`git write-tree` &&
- commit=`git commit-tree $tree </dev/null` && {
+ tree=$(git write-tree) &&
+ commit=$(git commit-tree $tree </dev/null) && {
echo $tree &&
git ls-tree $tree | sed -e "s/.* \\([0-9a-f]*\\) .*/\\1/"
} >obj-list &&
@@ -152,10 +152,10 @@ test_expect_success \
'[index v1] 2) create a stealth corruption in a delta base reference' \
'# This test assumes file_101 is a delta smaller than 16 bytes.
# It should be against file_100 but we substitute its base for file_099
- sha1_101=`git hash-object file_101` &&
- sha1_099=`git hash-object file_099` &&
- offs_101=`index_obj_offset 1.idx $sha1_101` &&
- nr_099=`index_obj_nr 1.idx $sha1_099` &&
+ sha1_101=$(git hash-object file_101) &&
+ sha1_099=$(git hash-object file_099) &&
+ offs_101=$(index_obj_offset 1.idx $sha1_101) &&
+ nr_099=$(index_obj_nr 1.idx $sha1_099) &&
chmod +w ".git/objects/pack/pack-${pack1}.pack" &&
dd of=".git/objects/pack/pack-${pack1}.pack" seek=$(($offs_101 + 1)) \
if=".git/objects/pack/pack-${pack1}.idx" \
@@ -193,10 +193,10 @@ test_expect_success \
'[index v2] 2) create a stealth corruption in a delta base reference' \
'# This test assumes file_101 is a delta smaller than 16 bytes.
# It should be against file_100 but we substitute its base for file_099
- sha1_101=`git hash-object file_101` &&
- sha1_099=`git hash-object file_099` &&
- offs_101=`index_obj_offset 1.idx $sha1_101` &&
- nr_099=`index_obj_nr 1.idx $sha1_099` &&
+ sha1_101=$(git hash-object file_101) &&
+ sha1_099=$(git hash-object file_099) &&
+ offs_101=$(index_obj_offset 1.idx $sha1_101) &&
+ nr_099=$(index_obj_nr 1.idx $sha1_099) &&
chmod +w ".git/objects/pack/pack-${pack1}.pack" &&
dd of=".git/objects/pack/pack-${pack1}.pack" seek=$(($offs_101 + 1)) \
if=".git/objects/pack/pack-${pack1}.idx" \
@@ -222,11 +222,11 @@ test_expect_success \
'rm -f .git/objects/pack/* &&
git index-pack --index-version=2 --stdin < "test-1-${pack1}.pack" &&
git verify-pack ".git/objects/pack/pack-${pack1}.pack" &&
- obj=`git hash-object file_001` &&
- nr=`index_obj_nr ".git/objects/pack/pack-${pack1}.idx" $obj` &&
+ obj=$(git hash-object file_001) &&
+ nr=$(index_obj_nr ".git/objects/pack/pack-${pack1}.idx" $obj) &&
chmod +w ".git/objects/pack/pack-${pack1}.idx" &&
printf xxxx | dd of=".git/objects/pack/pack-${pack1}.idx" conv=notrunc \
- bs=1 count=4 seek=$((8 + 256 * 4 + `wc -l <obj-list` * 20 + $nr * 4)) &&
+ bs=1 count=4 seek=$((8 + 256 * 4 + $(wc -l <obj-list) * 20 + $nr * 4)) &&
( while read obj
do git cat-file -p $obj >/dev/null || exit 1
done <obj-list ) &&
diff --git a/t/t5303-pack-corruption-resilience.sh b/t/t5303-pack-corruption-resilience.sh
index 663b02bbb1..5940ce2084 100755
--- a/t/t5303-pack-corruption-resilience.sh
+++ b/t/t5303-pack-corruption-resilience.sh
@@ -32,23 +32,23 @@ create_test_files() {
create_new_pack() {
rm -rf .git &&
git init &&
- blob_1=`git hash-object -t blob -w file_1` &&
- blob_2=`git hash-object -t blob -w file_2` &&
- blob_3=`git hash-object -t blob -w file_3` &&
- pack=`printf "$blob_1\n$blob_2\n$blob_3\n" |
- git pack-objects $@ .git/objects/pack/pack` &&
+ blob_1=$(git hash-object -t blob -w file_1) &&
+ blob_2=$(git hash-object -t blob -w file_2) &&
+ blob_3=$(git hash-object -t blob -w file_3) &&
+ pack=$(printf "$blob_1\n$blob_2\n$blob_3\n" |
+ git pack-objects $@ .git/objects/pack/pack) &&
pack=".git/objects/pack/pack-${pack}" &&
git verify-pack -v ${pack}.pack
}
do_repack() {
- pack=`printf "$blob_1\n$blob_2\n$blob_3\n" |
- git pack-objects $@ .git/objects/pack/pack` &&
+ pack=$(printf "$blob_1\n$blob_2\n$blob_3\n" |
+ git pack-objects $@ .git/objects/pack/pack) &&
pack=".git/objects/pack/pack-${pack}"
}
do_corrupt_object() {
- ofs=`git show-index < ${pack}.idx | grep $1 | cut -f1 -d" "` &&
+ ofs=$(git show-index < ${pack}.idx | grep $1 | cut -f1 -d" ") &&
ofs=$(($ofs + $2)) &&
chmod +w ${pack}.pack &&
dd of=${pack}.pack bs=1 conv=notrunc seek=$ofs &&
diff --git a/t/t5304-prune.sh b/t/t5304-prune.sh
index def203c724..133b5842b1 100755
--- a/t/t5304-prune.sh
+++ b/t/t5304-prune.sh
@@ -266,7 +266,7 @@ EOF
'
test_expect_success 'prune .git/shallow' '
- SHA1=`echo hi|git commit-tree HEAD^{tree}` &&
+ SHA1=$(echo hi|git commit-tree HEAD^{tree}) &&
echo $SHA1 >.git/shallow &&
git prune --dry-run >out &&
grep $SHA1 .git/shallow &&
diff --git a/t/t5305-include-tag.sh b/t/t5305-include-tag.sh
index 21517c70cd..f314ad5079 100755
--- a/t/t5305-include-tag.sh
+++ b/t/t5305-include-tag.sh
@@ -3,20 +3,20 @@
test_description='git pack-object --include-tag'
. ./test-lib.sh
-TRASH=`pwd`
+TRASH=$(pwd)
test_expect_success setup '
echo c >d &&
git update-index --add d &&
- tree=`git write-tree` &&
- commit=`git commit-tree $tree </dev/null` &&
+ tree=$(git write-tree) &&
+ commit=$(git commit-tree $tree </dev/null) &&
echo "object $commit" >sig &&
echo "type commit" >>sig &&
echo "tag mytag" >>sig &&
echo "tagger $(git var GIT_COMMITTER_IDENT)" >>sig &&
echo >>sig &&
echo "our test tag" >>sig &&
- tag=`git mktag <sig` &&
+ tag=$(git mktag <sig) &&
rm d sig &&
git update-ref refs/tags/mytag $tag && {
echo $tree &&
diff --git a/t/t5500-fetch-pack.sh b/t/t5500-fetch-pack.sh
index 3a9b77576f..e5f83bf5e4 100755
--- a/t/t5500-fetch-pack.sh
+++ b/t/t5500-fetch-pack.sh
@@ -14,7 +14,7 @@ test_description='Testing multi_ack pack fetching'
add () {
name=$1 &&
text="$@" &&
- branch=`echo $name | sed -e 's/^\(.\).*$/\1/'` &&
+ branch=$(echo $name | sed -e 's/^\(.\).*$/\1/') &&
parents="" &&
shift &&
@@ -50,18 +50,18 @@ pull_to_client () {
case "$heads" in *B*)
echo $BTIP > .git/refs/heads/B;;
esac &&
- git symbolic-ref HEAD refs/heads/`echo $heads \
- | sed -e "s/^\(.\).*$/\1/"` &&
+ git symbolic-ref HEAD refs/heads/$(echo $heads \
+ | sed -e "s/^\(.\).*$/\1/") &&
git fsck --full &&
mv .git/objects/pack/pack-* . &&
- p=`ls -1 pack-*.pack` &&
+ p=$(ls -1 pack-*.pack) &&
git unpack-objects <$p &&
git fsck --full &&
- idx=`echo pack-*.idx` &&
- pack_count=`git show-index <$idx | wc -l` &&
+ idx=$(echo pack-*.idx) &&
+ pack_count=$(git show-index <$idx | wc -l) &&
test $pack_count = $count &&
rm -f pack-*
)
@@ -132,13 +132,13 @@ test_expect_success 'single given branch clone' '
test_expect_success 'clone shallow depth 1' '
git clone --no-single-branch --depth 1 "file://$(pwd)/." shallow0 &&
- test "`git --git-dir=shallow0/.git rev-list --count HEAD`" = 1
+ test "$(git --git-dir=shallow0/.git rev-list --count HEAD)" = 1
'
test_expect_success 'clone shallow depth 1 with fsck' '
git config --global fetch.fsckobjects true &&
git clone --no-single-branch --depth 1 "file://$(pwd)/." shallow0fsck &&
- test "`git --git-dir=shallow0fsck/.git rev-list --count HEAD`" = 1 &&
+ test "$(git --git-dir=shallow0fsck/.git rev-list --count HEAD)" = 1 &&
git config --global --unset fetch.fsckobjects
'
@@ -147,7 +147,7 @@ test_expect_success 'clone shallow' '
'
test_expect_success 'clone shallow depth count' '
- test "`git --git-dir=shallow/.git rev-list --count HEAD`" = 2
+ test "$(git --git-dir=shallow/.git rev-list --count HEAD)" = 2
'
test_expect_success 'clone shallow object count' '
@@ -273,7 +273,7 @@ test_expect_success 'additional simple shallow deepenings' '
'
test_expect_success 'clone shallow depth count' '
- test "`git --git-dir=shallow/.git rev-list --count HEAD`" = 11
+ test "$(git --git-dir=shallow/.git rev-list --count HEAD)" = 11
'
test_expect_success 'clone shallow object count' '
diff --git a/t/t5505-remote.sh b/t/t5505-remote.sh
index 013e03dee2..dd2e6ce34e 100755
--- a/t/t5505-remote.sh
+++ b/t/t5505-remote.sh
@@ -51,6 +51,11 @@ test_expect_success setup '
git clone one test
'
+test_expect_success 'add remote whose URL agrees with url.<...>.insteadOf' '
+ test_config url.git@host.com:team/repo.git.insteadOf myremote &&
+ git remote add myremote git@host.com:team/repo.git
+'
+
test_expect_success C_LOCALE_OUTPUT 'remote information for the origin' '
(
cd test &&
@@ -85,7 +90,7 @@ test_expect_success C_LOCALE_OUTPUT 'check remote-tracking' '
test_expect_success 'remote forces tracking branches' '
(
cd test &&
- case `git config remote.second.fetch` in
+ case $(git config remote.second.fetch) in
+*) true ;;
*) false ;;
esac
@@ -139,6 +144,39 @@ test_expect_success 'remove remote protects local branches' '
)
'
+test_expect_success 'remove errors out early when deleting non-existent branch' '
+ (
+ cd test &&
+ echo "fatal: No such remote: foo" >expect &&
+ test_must_fail git remote rm foo 2>actual &&
+ test_i18ncmp expect actual
+ )
+'
+
+test_expect_success 'rename errors out early when deleting non-existent branch' '
+ (
+ cd test &&
+ echo "fatal: No such remote: foo" >expect &&
+ test_must_fail git remote rename foo bar 2>actual &&
+ test_i18ncmp expect actual
+ )
+'
+
+test_expect_success 'add existing foreign_vcs remote' '
+ test_config remote.foo.vcs bar &&
+ echo "fatal: remote foo already exists." >expect &&
+ test_must_fail git remote add foo bar 2>actual &&
+ test_i18ncmp expect actual
+'
+
+test_expect_success 'add existing foreign_vcs remote' '
+ test_config remote.foo.vcs bar &&
+ test_config remote.bar.vcs bar &&
+ echo "fatal: remote bar already exists." >expect &&
+ test_must_fail git remote rename foo bar 2>actual &&
+ test_i18ncmp expect actual
+'
+
cat >test/expect <<EOF
* remote origin
Fetch URL: $(pwd)/one
diff --git a/t/t5506-remote-groups.sh b/t/t5506-remote-groups.sh
index 530b01678e..83d5558c0e 100755
--- a/t/t5506-remote-groups.sh
+++ b/t/t5506-remote-groups.sh
@@ -20,7 +20,7 @@ update_repos() {
}
repo_fetched() {
- if test "`git log -1 --pretty=format:%s $1 --`" = "`cat mark`"; then
+ if test "$(git log -1 --pretty=format:%s $1 --)" = "$(cat mark)"; then
echo >&2 "repo was fetched: $1"
return 0
fi
diff --git a/t/t5510-fetch.sh b/t/t5510-fetch.sh
index e3ee4bd700..38321d19ef 100755
--- a/t/t5510-fetch.sh
+++ b/t/t5510-fetch.sh
@@ -7,7 +7,7 @@ test_description='Per branch config variables affects "git fetch".
. ./test-lib.sh
-D=`pwd`
+D=$(pwd)
test_bundle_object_count () {
git verify-pack -v "$1" >verify.out &&
@@ -64,8 +64,8 @@ test_expect_success "fetch test" '
cd two &&
git fetch &&
test -f .git/refs/heads/one &&
- mine=`git rev-parse refs/heads/one` &&
- his=`cd ../one && git rev-parse refs/heads/master` &&
+ mine=$(git rev-parse refs/heads/one) &&
+ his=$(cd ../one && git rev-parse refs/heads/master) &&
test "z$mine" = "z$his"
'
@@ -75,8 +75,8 @@ test_expect_success "fetch test for-merge" '
git fetch &&
test -f .git/refs/heads/two &&
test -f .git/refs/heads/one &&
- master_in_two=`cd ../two && git rev-parse master` &&
- one_in_two=`cd ../two && git rev-parse one` &&
+ master_in_two=$(cd ../two && git rev-parse master) &&
+ one_in_two=$(cd ../two && git rev-parse one) &&
{
echo "$one_in_two "
echo "$master_in_two not-for-merge"
@@ -314,42 +314,6 @@ test_expect_success 'bundle should be able to create a full history' '
'
-! rsync --help > /dev/null 2> /dev/null &&
-say 'Skipping rsync tests because rsync was not found' || {
-test_expect_success 'fetch via rsync' '
- git pack-refs &&
- mkdir rsynced &&
- (cd rsynced &&
- git init --bare &&
- git fetch "rsync:../.git" master:refs/heads/master &&
- git gc --prune &&
- test $(git rev-parse master) = $(cd .. && git rev-parse master) &&
- git fsck --full)
-'
-
-test_expect_success 'push via rsync' '
- mkdir rsynced2 &&
- (cd rsynced2 &&
- git init) &&
- (cd rsynced &&
- git push "rsync:../rsynced2/.git" master) &&
- (cd rsynced2 &&
- git gc --prune &&
- test $(git rev-parse master) = $(cd .. && git rev-parse master) &&
- git fsck --full)
-'
-
-test_expect_success 'push via rsync' '
- mkdir rsynced3 &&
- (cd rsynced3 &&
- git init) &&
- git push --all "rsync:rsynced3/.git" &&
- (cd rsynced3 &&
- test $(git rev-parse master) = $(cd .. && git rev-parse master) &&
- git fsck --full)
-'
-}
-
test_expect_success 'fetch with a non-applying branch.<name>.merge' '
git config branch.master.remote yeti &&
git config branch.master.merge refs/heads/bigfoot &&
@@ -715,10 +679,12 @@ test_expect_success 'fetching with auto-gc does not lock up' '
EOF
git clone "file://$D" auto-gc &&
test_commit test2 &&
- cd auto-gc &&
- git config gc.autoPackLimit 1 &&
- GIT_ASK_YESNO="$D/askyesno" git fetch >fetch.out 2>&1 &&
- ! grep "Should I try again" fetch.out
+ (
+ cd auto-gc &&
+ git config gc.autoPackLimit 1 &&
+ GIT_ASK_YESNO="$D/askyesno" git fetch >fetch.out 2>&1 &&
+ ! grep "Should I try again" fetch.out
+ )
'
test_done
diff --git a/t/t5512-ls-remote.sh b/t/t5512-ls-remote.sh
index aadaac515e..819b9ddd0f 100755
--- a/t/t5512-ls-remote.sh
+++ b/t/t5512-ls-remote.sh
@@ -163,4 +163,49 @@ test_expect_success 'overrides work between mixed transfer/upload-pack hideRefs'
grep refs/tags/magic actual
'
+test_expect_success 'ls-remote --symref' '
+ cat >expect <<-\EOF &&
+ ref: refs/heads/master HEAD
+ 1bd44cb9d13204b0fe1958db0082f5028a16eb3a HEAD
+ 1bd44cb9d13204b0fe1958db0082f5028a16eb3a refs/heads/master
+ 1bd44cb9d13204b0fe1958db0082f5028a16eb3a refs/remotes/origin/HEAD
+ 1bd44cb9d13204b0fe1958db0082f5028a16eb3a refs/remotes/origin/master
+ 1bd44cb9d13204b0fe1958db0082f5028a16eb3a refs/tags/mark
+ EOF
+ git ls-remote --symref >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success 'ls-remote with filtered symref (refname)' '
+ cat >expect <<-\EOF &&
+ ref: refs/heads/master HEAD
+ 1bd44cb9d13204b0fe1958db0082f5028a16eb3a HEAD
+ EOF
+ git ls-remote --symref . HEAD >actual &&
+ test_cmp expect actual
+'
+
+test_expect_failure 'ls-remote with filtered symref (--heads)' '
+ git symbolic-ref refs/heads/foo refs/tags/mark &&
+ cat >expect <<-\EOF &&
+ ref: refs/tags/mark refs/heads/foo
+ 1bd44cb9d13204b0fe1958db0082f5028a16eb3a refs/heads/foo
+ 1bd44cb9d13204b0fe1958db0082f5028a16eb3a refs/heads/master
+ EOF
+ git ls-remote --symref --heads . >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success 'ls-remote --symref omits filtered-out matches' '
+ cat >expect <<-\EOF &&
+ 1bd44cb9d13204b0fe1958db0082f5028a16eb3a refs/heads/foo
+ 1bd44cb9d13204b0fe1958db0082f5028a16eb3a refs/heads/master
+ EOF
+ git ls-remote --symref --heads . >actual &&
+ test_cmp expect actual &&
+ git ls-remote --symref . "refs/heads/*" >actual &&
+ test_cmp expect actual
+'
+
+
test_done
diff --git a/t/t5515-fetch-merge-logic.sh b/t/t5515-fetch-merge-logic.sh
index dbb927dec8..36b0dbc01c 100755
--- a/t/t5515-fetch-merge-logic.sh
+++ b/t/t5515-fetch-merge-logic.sh
@@ -128,8 +128,8 @@ do
case "$cmd" in
'' | '#'*) continue ;;
esac
- test=`echo "$cmd" | sed -e 's|[/ ][/ ]*|_|g'`
- pfx=`printf "%04d" $test_count`
+ test=$(echo "$cmd" | sed -e 's|[/ ][/ ]*|_|g')
+ pfx=$(printf "%04d" $test_count)
expect_f="$TEST_DIRECTORY/t5515/fetch.$test"
actual_f="$pfx-fetch.$test"
expect_r="$TEST_DIRECTORY/t5515/refs.$test"
diff --git a/t/t5516-fetch-push.sh b/t/t5516-fetch-push.sh
index 0a87e195ea..26b2cafc47 100755
--- a/t/t5516-fetch-push.sh
+++ b/t/t5516-fetch-push.sh
@@ -16,7 +16,7 @@ This test checks the following functionality:
. ./test-lib.sh
-D=`pwd`
+D=$(pwd)
mk_empty () {
repo_name="$1"
@@ -422,7 +422,7 @@ test_expect_success 'push tag with non-existent, incomplete dest' '
test_expect_success 'push sha1 with non-existent, incomplete dest' '
mk_test testrepo &&
- test_must_fail git push testrepo `git rev-parse master`:foo
+ test_must_fail git push testrepo $(git rev-parse master):foo
'
diff --git a/t/t5517-push-mirror.sh b/t/t5517-push-mirror.sh
index 12a5dfb17e..02f160aae0 100755
--- a/t/t5517-push-mirror.sh
+++ b/t/t5517-push-mirror.sh
@@ -4,7 +4,7 @@ test_description='pushing to a mirror repository'
. ./test-lib.sh
-D=`pwd`
+D=$(pwd)
invert () {
if "$@"; then
diff --git a/t/t5520-pull.sh b/t/t5520-pull.sh
index a0013ee32f..c952d5ef5c 100755
--- a/t/t5520-pull.sh
+++ b/t/t5520-pull.sh
@@ -326,6 +326,16 @@ test_expect_success 'pull.rebase=preserve rebases and merges keep-merge' '
test "$(git rev-parse HEAD^2)" = "$(git rev-parse keep-merge)"
'
+test_expect_success 'pull.rebase=interactive' '
+ write_script "$TRASH_DIRECTORY/fake-editor" <<-\EOF &&
+ echo I was here >fake.out &&
+ false
+ EOF
+ test_set_editor "$TRASH_DIRECTORY/fake-editor" &&
+ test_must_fail git pull --rebase=interactive . copy &&
+ test "I was here" = "$(cat fake.out)"
+'
+
test_expect_success 'pull.rebase=invalid fails' '
git reset --hard before-preserve-rebase &&
test_config pull.rebase invalid &&
diff --git a/t/t5522-pull-symlink.sh b/t/t5522-pull-symlink.sh
index 8e9b204e02..bcff460d0a 100755
--- a/t/t5522-pull-symlink.sh
+++ b/t/t5522-pull-symlink.sh
@@ -54,7 +54,7 @@ test_expect_success SYMLINKS 'pulling from real subdir' '
# git rev-parse --show-cdup printed a path relative to
# clone-repo/subdir/, not subdir-link/. Git rev-parse --show-cdup
# used the correct .git, but when the git pull shell script did
-# "cd `git rev-parse --show-cdup`", it ended up in the wrong
+# "cd $(git rev-parse --show-cdup)", it ended up in the wrong
# directory. A POSIX shell's "cd" works a little differently
# than chdir() in C; "cd -P" is much closer to chdir().
#
diff --git a/t/t5526-fetch-submodules.sh b/t/t5526-fetch-submodules.sh
index a4532b00d6..1241146227 100755
--- a/t/t5526-fetch-submodules.sh
+++ b/t/t5526-fetch-submodules.sh
@@ -16,7 +16,8 @@ add_upstream_commit() {
git add subfile &&
git commit -m new subfile &&
head2=$(git rev-parse --short HEAD) &&
- echo "From $pwd/submodule" > ../expect.err &&
+ echo "Fetching submodule submodule" > ../expect.err &&
+ echo "From $pwd/submodule" >> ../expect.err &&
echo " $head1..$head2 master -> origin/master" >> ../expect.err
) &&
(
@@ -27,6 +28,7 @@ add_upstream_commit() {
git add deepsubfile &&
git commit -m new deepsubfile &&
head2=$(git rev-parse --short HEAD) &&
+ echo "Fetching submodule submodule/subdir/deepsubmodule" >> ../expect.err
echo "From $pwd/deepsubmodule" >> ../expect.err &&
echo " $head1..$head2 master -> origin/master" >> ../expect.err
)
@@ -56,9 +58,7 @@ test_expect_success setup '
(
cd downstream &&
git submodule update --init --recursive
- ) &&
- echo "Fetching submodule submodule" > expect.out &&
- echo "Fetching submodule submodule/subdir/deepsubmodule" >> expect.out
+ )
'
test_expect_success "fetch --recurse-submodules recurses into submodules" '
@@ -67,10 +67,21 @@ test_expect_success "fetch --recurse-submodules recurses into submodules" '
cd downstream &&
git fetch --recurse-submodules >../actual.out 2>../actual.err
) &&
- test_i18ncmp expect.out actual.out &&
+ test_must_be_empty actual.out &&
test_i18ncmp expect.err actual.err
'
+test_expect_success "fetch --recurse-submodules -j2 has the same output behaviour" '
+ add_upstream_commit &&
+ (
+ cd downstream &&
+ GIT_TRACE=$(pwd)/../trace.out git fetch --recurse-submodules -j2 2>../actual.err
+ ) &&
+ test_must_be_empty actual.out &&
+ test_i18ncmp expect.err actual.err &&
+ grep "2 tasks" trace.out
+'
+
test_expect_success "fetch alone only fetches superproject" '
add_upstream_commit &&
(
@@ -96,7 +107,7 @@ test_expect_success "using fetchRecurseSubmodules=true in .gitmodules recurses i
git config -f .gitmodules submodule.submodule.fetchRecurseSubmodules true &&
git fetch >../actual.out 2>../actual.err
) &&
- test_i18ncmp expect.out actual.out &&
+ test_must_be_empty actual.out &&
test_i18ncmp expect.err actual.err
'
@@ -127,7 +138,7 @@ test_expect_success "--recurse-submodules overrides fetchRecurseSubmodules setti
git config --unset -f .gitmodules submodule.submodule.fetchRecurseSubmodules &&
git config --unset submodule.submodule.fetchRecurseSubmodules
) &&
- test_i18ncmp expect.out actual.out &&
+ test_must_be_empty actual.out &&
test_i18ncmp expect.err actual.err
'
@@ -140,13 +151,22 @@ test_expect_success "--quiet propagates to submodules" '
! test -s actual.err
'
+test_expect_success "--quiet propagates to parallel submodules" '
+ (
+ cd downstream &&
+ git fetch --recurse-submodules -j 2 --quiet >../actual.out 2>../actual.err
+ ) &&
+ ! test -s actual.out &&
+ ! test -s actual.err
+'
+
test_expect_success "--dry-run propagates to submodules" '
add_upstream_commit &&
(
cd downstream &&
git fetch --recurse-submodules --dry-run >../actual.out 2>../actual.err
) &&
- test_i18ncmp expect.out actual.out &&
+ test_must_be_empty actual.out &&
test_i18ncmp expect.err actual.err
'
@@ -155,7 +175,7 @@ test_expect_success "Without --dry-run propagates to submodules" '
cd downstream &&
git fetch --recurse-submodules >../actual.out 2>../actual.err
) &&
- test_i18ncmp expect.out actual.out &&
+ test_must_be_empty actual.out &&
test_i18ncmp expect.err actual.err
'
@@ -166,7 +186,7 @@ test_expect_success "recurseSubmodules=true propagates into submodules" '
git config fetch.recurseSubmodules true
git fetch >../actual.out 2>../actual.err
) &&
- test_i18ncmp expect.out actual.out &&
+ test_must_be_empty actual.out &&
test_i18ncmp expect.err actual.err
'
@@ -180,7 +200,7 @@ test_expect_success "--recurse-submodules overrides config in submodule" '
) &&
git fetch --recurse-submodules >../actual.out 2>../actual.err
) &&
- test_i18ncmp expect.out actual.out &&
+ test_must_be_empty actual.out &&
test_i18ncmp expect.err actual.err
'
@@ -214,16 +234,15 @@ test_expect_success "Recursion stops when no new submodule commits are fetched"
git add submodule &&
git commit -m "new submodule" &&
head2=$(git rev-parse --short HEAD) &&
- echo "Fetching submodule submodule" > expect.out.sub &&
echo "From $pwd/." > expect.err.sub &&
echo " $head1..$head2 master -> origin/master" >>expect.err.sub &&
- head -2 expect.err >> expect.err.sub &&
+ head -3 expect.err >> expect.err.sub &&
(
cd downstream &&
git fetch >../actual.out 2>../actual.err
) &&
test_i18ncmp expect.err.sub actual.err &&
- test_i18ncmp expect.out.sub actual.out
+ test_must_be_empty actual.out
'
test_expect_success "Recursion doesn't happen when new superproject commits don't change any submodules" '
@@ -269,7 +288,7 @@ test_expect_success "Recursion picks up config in submodule" '
)
) &&
test_i18ncmp expect.err.sub actual.err &&
- test_i18ncmp expect.out actual.out
+ test_must_be_empty actual.out
'
test_expect_success "Recursion picks up all submodules when necessary" '
@@ -285,7 +304,8 @@ test_expect_success "Recursion picks up all submodules when necessary" '
git add subdir/deepsubmodule &&
git commit -m "new deepsubmodule"
head2=$(git rev-parse --short HEAD) &&
- echo "From $pwd/submodule" > ../expect.err.sub &&
+ echo "Fetching submodule submodule" > ../expect.err.sub &&
+ echo "From $pwd/submodule" >> ../expect.err.sub &&
echo " $head1..$head2 master -> origin/master" >> ../expect.err.sub
) &&
head1=$(git rev-parse --short HEAD) &&
@@ -295,13 +315,13 @@ test_expect_success "Recursion picks up all submodules when necessary" '
echo "From $pwd/." > expect.err.2 &&
echo " $head1..$head2 master -> origin/master" >> expect.err.2 &&
cat expect.err.sub >> expect.err.2 &&
- tail -2 expect.err >> expect.err.2 &&
+ tail -3 expect.err >> expect.err.2 &&
(
cd downstream &&
git fetch >../actual.out 2>../actual.err
) &&
test_i18ncmp expect.err.2 actual.err &&
- test_i18ncmp expect.out actual.out
+ test_must_be_empty actual.out
'
test_expect_success "'--recurse-submodules=on-demand' doesn't recurse when no new commits are fetched in the superproject (and ignores config)" '
@@ -317,7 +337,8 @@ test_expect_success "'--recurse-submodules=on-demand' doesn't recurse when no ne
git add subdir/deepsubmodule &&
git commit -m "new deepsubmodule" &&
head2=$(git rev-parse --short HEAD) &&
- echo "From $pwd/submodule" > ../expect.err.sub &&
+ echo Fetching submodule submodule > ../expect.err.sub &&
+ echo "From $pwd/submodule" >> ../expect.err.sub &&
echo " $head1..$head2 master -> origin/master" >> ../expect.err.sub
) &&
(
@@ -335,7 +356,7 @@ test_expect_success "'--recurse-submodules=on-demand' recurses as deep as necess
git add submodule &&
git commit -m "new submodule" &&
head2=$(git rev-parse --short HEAD) &&
- tail -2 expect.err > expect.err.deepsub &&
+ tail -3 expect.err > expect.err.deepsub &&
echo "From $pwd/." > expect.err &&
echo " $head1..$head2 master -> origin/master" >>expect.err &&
cat expect.err.sub >> expect.err &&
@@ -354,7 +375,7 @@ test_expect_success "'--recurse-submodules=on-demand' recurses as deep as necess
git config --unset -f .gitmodules submodule.subdir/deepsubmodule.fetchRecursive
)
) &&
- test_i18ncmp expect.out actual.out &&
+ test_must_be_empty actual.out &&
test_i18ncmp expect.err actual.err
'
@@ -388,7 +409,7 @@ test_expect_success "'fetch.recurseSubmodules=on-demand' overrides global config
head2=$(git rev-parse --short HEAD) &&
echo "From $pwd/." > expect.err.2 &&
echo " $head1..$head2 master -> origin/master" >>expect.err.2 &&
- head -2 expect.err >> expect.err.2 &&
+ head -3 expect.err >> expect.err.2 &&
(
cd downstream &&
git config fetch.recurseSubmodules on-demand &&
@@ -399,7 +420,7 @@ test_expect_success "'fetch.recurseSubmodules=on-demand' overrides global config
cd downstream &&
git config --unset fetch.recurseSubmodules
) &&
- test_i18ncmp expect.out.sub actual.out &&
+ test_must_be_empty actual.out &&
test_i18ncmp expect.err.2 actual.err
'
@@ -416,7 +437,7 @@ test_expect_success "'submodule.<sub>.fetchRecurseSubmodules=on-demand' override
head2=$(git rev-parse --short HEAD) &&
echo "From $pwd/." > expect.err.2 &&
echo " $head1..$head2 master -> origin/master" >>expect.err.2 &&
- head -2 expect.err >> expect.err.2 &&
+ head -3 expect.err >> expect.err.2 &&
(
cd downstream &&
git config submodule.submodule.fetchRecurseSubmodules on-demand &&
@@ -427,7 +448,7 @@ test_expect_success "'submodule.<sub>.fetchRecurseSubmodules=on-demand' override
cd downstream &&
git config --unset submodule.submodule.fetchRecurseSubmodules
) &&
- test_i18ncmp expect.out.sub actual.out &&
+ test_must_be_empty actual.out &&
test_i18ncmp expect.err.2 actual.err
'
diff --git a/t/t5530-upload-pack-error.sh b/t/t5530-upload-pack-error.sh
index 3932e797f7..4f6e32b04c 100755
--- a/t/t5530-upload-pack-error.sh
+++ b/t/t5530-upload-pack-error.sh
@@ -4,7 +4,7 @@ test_description='errors in upload-pack'
. ./test-lib.sh
-D=`pwd`
+D=$(pwd)
corrupt_repo () {
object_sha1=$(git rev-parse "$1") &&
diff --git a/t/t5532-fetch-proxy.sh b/t/t5532-fetch-proxy.sh
index 5531bd1af4..d75ef0ea2b 100755
--- a/t/t5532-fetch-proxy.sh
+++ b/t/t5532-fetch-proxy.sh
@@ -15,7 +15,7 @@ test_expect_success 'setup remote repo' '
cat >proxy <<'EOF'
#!/bin/sh
echo >&2 "proxying for $*"
-cmd=`"$PERL_PATH" -e '
+cmd=$("$PERL_PATH" -e '
read(STDIN, $buf, 4);
my $n = hex($buf) - 4;
read(STDIN, $buf, $n);
@@ -23,7 +23,7 @@ cmd=`"$PERL_PATH" -e '
# drop absolute-path on repo name
$cmd =~ s{ /}{ };
print $cmd;
-'`
+')
echo >&2 "Running '$cmd'"
exec $cmd
EOF
diff --git a/t/t5537-fetch-shallow.sh b/t/t5537-fetch-shallow.sh
index a980574682..df8d2f095a 100755
--- a/t/t5537-fetch-shallow.sh
+++ b/t/t5537-fetch-shallow.sh
@@ -98,7 +98,7 @@ EOF
test_expect_success 'fetch something upstream has but hidden by clients shallow boundaries' '
# the blob "1" is available in .git but hidden by the
# shallow2/.git/shallow and it should be resent
- ! git --git-dir=shallow2/.git cat-file blob `echo 1|git hash-object --stdin` >/dev/null &&
+ ! git --git-dir=shallow2/.git cat-file blob $(echo 1|git hash-object --stdin) >/dev/null &&
echo 1 >1.t &&
git add 1.t &&
git commit -m add-1-back &&
@@ -114,7 +114,7 @@ add-1-back
EOF
test_cmp expect actual
) &&
- git --git-dir=shallow2/.git cat-file blob `echo 1|git hash-object --stdin` >/dev/null
+ git --git-dir=shallow2/.git cat-file blob $(echo 1|git hash-object --stdin) >/dev/null
'
diff --git a/t/t5538-push-shallow.sh b/t/t5538-push-shallow.sh
index ceee95b8a4..ecbf84d21c 100755
--- a/t/t5538-push-shallow.sh
+++ b/t/t5538-push-shallow.sh
@@ -104,7 +104,7 @@ EOF
'
test_expect_success 'push from full to shallow' '
- ! git --git-dir=shallow2/.git cat-file blob `echo 1|git hash-object --stdin` &&
+ ! git --git-dir=shallow2/.git cat-file blob $(echo 1|git hash-object --stdin) &&
commit 1 &&
git push shallow2/.git +master:refs/remotes/top/master &&
(
@@ -117,7 +117,7 @@ test_expect_success 'push from full to shallow' '
3
EOF
test_cmp expect actual &&
- git cat-file blob `echo 1|git hash-object --stdin` >/dev/null
+ git cat-file blob $(echo 1|git hash-object --stdin) >/dev/null
)
'
test_done
diff --git a/t/t5550-http-fetch-dumb.sh b/t/t5550-http-fetch-dumb.sh
index 87a7aa04ae..64146352ae 100755
--- a/t/t5550-http-fetch-dumb.sh
+++ b/t/t5550-http-fetch-dumb.sh
@@ -132,7 +132,7 @@ test_expect_success 'fetch packed objects' '
test_expect_success 'fetch notices corrupt pack' '
cp -R "$HTTPD_DOCUMENT_ROOT_PATH"/repo_pack.git "$HTTPD_DOCUMENT_ROOT_PATH"/repo_bad1.git &&
(cd "$HTTPD_DOCUMENT_ROOT_PATH"/repo_bad1.git &&
- p=`ls objects/pack/pack-*.pack` &&
+ p=$(ls objects/pack/pack-*.pack) &&
chmod u+w $p &&
printf %0256d 0 | dd of=$p bs=256 count=1 seek=1 conv=notrunc
) &&
@@ -140,14 +140,14 @@ test_expect_success 'fetch notices corrupt pack' '
(cd repo_bad1.git &&
git --bare init &&
test_must_fail git --bare fetch $HTTPD_URL/dumb/repo_bad1.git &&
- test 0 = `ls objects/pack/pack-*.pack | wc -l`
+ test 0 = $(ls objects/pack/pack-*.pack | wc -l)
)
'
test_expect_success 'fetch notices corrupt idx' '
cp -R "$HTTPD_DOCUMENT_ROOT_PATH"/repo_pack.git "$HTTPD_DOCUMENT_ROOT_PATH"/repo_bad2.git &&
(cd "$HTTPD_DOCUMENT_ROOT_PATH"/repo_bad2.git &&
- p=`ls objects/pack/pack-*.idx` &&
+ p=$(ls objects/pack/pack-*.idx) &&
chmod u+w $p &&
printf %0256d 0 | dd of=$p bs=256 count=1 seek=1 conv=notrunc
) &&
@@ -155,7 +155,7 @@ test_expect_success 'fetch notices corrupt idx' '
(cd repo_bad2.git &&
git --bare init &&
test_must_fail git --bare fetch $HTTPD_URL/dumb/repo_bad2.git &&
- test 0 = `ls objects/pack | wc -l`
+ test 0 = $(ls objects/pack | wc -l)
)
'
diff --git a/t/t5570-git-daemon.sh b/t/t5570-git-daemon.sh
index b7e283252d..225a022e8a 100755
--- a/t/t5570-git-daemon.sh
+++ b/t/t5570-git-daemon.sh
@@ -6,6 +6,12 @@ test_description='test fetching over git protocol'
. "$TEST_DIRECTORY"/lib-git-daemon.sh
start_git_daemon
+check_verbose_connect () {
+ grep -F "Looking up 127.0.0.1 ..." stderr &&
+ grep -F "Connecting to 127.0.0.1 (port " stderr &&
+ grep -F "done." stderr
+}
+
test_expect_success 'setup repository' '
git config push.default matching &&
echo content >file &&
@@ -24,7 +30,8 @@ test_expect_success 'create git-accessible bare repository' '
'
test_expect_success 'clone git repository' '
- git clone "$GIT_DAEMON_URL/repo.git" clone &&
+ git clone -v "$GIT_DAEMON_URL/repo.git" clone 2>stderr &&
+ check_verbose_connect &&
test_cmp file clone/file
'
@@ -32,10 +39,21 @@ test_expect_success 'fetch changes via git protocol' '
echo content >>file &&
git commit -a -m two &&
git push public &&
- (cd clone && git pull) &&
+ (cd clone && git pull -v) 2>stderr &&
+ check_verbose_connect &&
test_cmp file clone/file
'
+test_expect_success 'no-op fetch -v stderr is as expected' '
+ (cd clone && git fetch -v) 2>stderr &&
+ check_verbose_connect
+'
+
+test_expect_success 'no-op fetch without "-v" is quiet' '
+ (cd clone && git fetch) 2>stderr &&
+ ! test -s stderr
+'
+
test_expect_success 'remote detects correct HEAD' '
git push public master:other &&
(cd clone &&
@@ -57,7 +75,7 @@ test_expect_success 'prepare pack objects' '
test_expect_success 'fetch notices corrupt pack' '
cp -R "$GIT_DAEMON_DOCUMENT_ROOT_PATH"/repo_pack.git "$GIT_DAEMON_DOCUMENT_ROOT_PATH"/repo_bad1.git &&
(cd "$GIT_DAEMON_DOCUMENT_ROOT_PATH"/repo_bad1.git &&
- p=`ls objects/pack/pack-*.pack` &&
+ p=$(ls objects/pack/pack-*.pack) &&
chmod u+w $p &&
printf %0256d 0 | dd of=$p bs=256 count=1 seek=1 conv=notrunc
) &&
@@ -65,14 +83,14 @@ test_expect_success 'fetch notices corrupt pack' '
(cd repo_bad1.git &&
git --bare init &&
test_must_fail git --bare fetch "$GIT_DAEMON_URL/repo_bad1.git" &&
- test 0 = `ls objects/pack/pack-*.pack | wc -l`
+ test 0 = $(ls objects/pack/pack-*.pack | wc -l)
)
'
test_expect_success 'fetch notices corrupt idx' '
cp -R "$GIT_DAEMON_DOCUMENT_ROOT_PATH"/repo_pack.git "$GIT_DAEMON_DOCUMENT_ROOT_PATH"/repo_bad2.git &&
(cd "$GIT_DAEMON_DOCUMENT_ROOT_PATH"/repo_bad2.git &&
- p=`ls objects/pack/pack-*.idx` &&
+ p=$(ls objects/pack/pack-*.idx) &&
chmod u+w $p &&
printf %0256d 0 | dd of=$p bs=256 count=1 seek=1 conv=notrunc
) &&
@@ -80,7 +98,7 @@ test_expect_success 'fetch notices corrupt idx' '
(cd repo_bad2.git &&
git --bare init &&
test_must_fail git --bare fetch "$GIT_DAEMON_URL/repo_bad2.git" &&
- test 0 = `ls objects/pack | wc -l`
+ test 0 = $(ls objects/pack | wc -l)
)
'
diff --git a/t/t5601-clone.sh b/t/t5601-clone.sh
index 9b34f3c615..c1efb8e445 100755
--- a/t/t5601-clone.sh
+++ b/t/t5601-clone.sh
@@ -4,6 +4,9 @@ test_description=clone
. ./test-lib.sh
+X=
+test_have_prereq !MINGW || X=.exe
+
test_expect_success setup '
rm -fr .git &&
@@ -65,6 +68,29 @@ test_expect_success 'clone respects GIT_WORK_TREE' '
'
+test_expect_success 'clone from hooks' '
+
+ test_create_repo r0 &&
+ cd r0 &&
+ test_commit initial &&
+ cd .. &&
+ git init r1 &&
+ cd r1 &&
+ cat >.git/hooks/pre-commit <<-\EOF &&
+ #!/bin/sh
+ git clone ../r0 ../r2
+ exit 1
+ EOF
+ chmod u+x .git/hooks/pre-commit &&
+ : >file &&
+ git add file &&
+ test_must_fail git commit -m invoke-hook &&
+ cd .. &&
+ test_cmp r0/.git/HEAD r2/.git/HEAD &&
+ test_cmp r0/initial.t r2/initial.t
+
+'
+
test_expect_success 'clone creates intermediate directories' '
git clone src long/path/to/dst &&
@@ -221,7 +247,7 @@ test_expect_success 'clone separate gitdir' '
'
test_expect_success 'clone separate gitdir: output' '
- echo "gitdir: `pwd`/realgitdir" >expected &&
+ echo "gitdir: $(pwd)/realgitdir" >expected &&
test_cmp expected dst/.git
'
@@ -282,14 +308,9 @@ test_expect_success 'clone checking out a tag' '
setup_ssh_wrapper () {
test_expect_success 'setup ssh wrapper' '
- write_script "$TRASH_DIRECTORY/ssh-wrapper" <<-\EOF &&
- echo >>"$TRASH_DIRECTORY/ssh-output" "ssh: $*" &&
- # throw away all but the last argument, which should be the
- # command
- while test $# -gt 1; do shift; done
- eval "$1"
- EOF
- GIT_SSH="$TRASH_DIRECTORY/ssh-wrapper" &&
+ cp "$GIT_BUILD_DIR/test-fake-ssh$X" \
+ "$TRASH_DIRECTORY/ssh-wrapper$X" &&
+ GIT_SSH="$TRASH_DIRECTORY/ssh-wrapper$X" &&
export GIT_SSH &&
export TRASH_DIRECTORY &&
>"$TRASH_DIRECTORY"/ssh-output
@@ -297,8 +318,8 @@ setup_ssh_wrapper () {
}
copy_ssh_wrapper_as () {
- cp "$TRASH_DIRECTORY/ssh-wrapper" "$1" &&
- GIT_SSH="$1" &&
+ cp "$TRASH_DIRECTORY/ssh-wrapper$X" "${1%$X}$X" &&
+ GIT_SSH="${1%$X}$X" &&
export GIT_SSH
}
diff --git a/t/t5700-clone-reference.sh b/t/t5700-clone-reference.sh
index dfa1bf79c5..4320082b1b 100755
--- a/t/t5700-clone-reference.sh
+++ b/t/t5700-clone-reference.sh
@@ -6,7 +6,7 @@
test_description='test clone --reference'
. ./test-lib.sh
-base_dir=`pwd`
+base_dir=$(pwd)
U=$base_dir/UPLOAD_LOG
diff --git a/t/t5710-info-alternate.sh b/t/t5710-info-alternate.sh
index 5a6e49d18d..9cd2626dba 100755
--- a/t/t5710-info-alternate.sh
+++ b/t/t5710-info-alternate.sh
@@ -21,7 +21,7 @@ test_valid_repo() {
test_line_count = 0 fsck.log
}
-base_dir=`pwd`
+base_dir=$(pwd)
test_expect_success 'preparing first repository' \
'test_create_repo A && cd A &&
diff --git a/t/t5900-repo-selection.sh b/t/t5900-repo-selection.sh
index 3d5b418bb4..14e59c5b3e 100755
--- a/t/t5900-repo-selection.sh
+++ b/t/t5900-repo-selection.sh
@@ -15,7 +15,7 @@ make_tree() {
make_bare() {
git init --bare "$1" &&
(cd "$1" &&
- tree=`git hash-object -w -t tree /dev/null` &&
+ tree=$(git hash-object -w -t tree /dev/null) &&
commit=$(echo "$1" | git commit-tree $tree) &&
git update-ref HEAD $commit
)
diff --git a/t/t6001-rev-list-graft.sh b/t/t6001-rev-list-graft.sh
index 8efcd13079..05ddc69cf2 100755
--- a/t/t6001-rev-list-graft.sh
+++ b/t/t6001-rev-list-graft.sh
@@ -10,15 +10,15 @@ test_expect_success setup '
echo >subdir/fileB fileB &&
git add fileA subdir/fileB &&
git commit -a -m "Initial in one history." &&
- A0=`git rev-parse --verify HEAD` &&
+ A0=$(git rev-parse --verify HEAD) &&
echo >fileA fileA modified &&
git commit -a -m "Second in one history." &&
- A1=`git rev-parse --verify HEAD` &&
+ A1=$(git rev-parse --verify HEAD) &&
echo >subdir/fileB fileB modified &&
git commit -a -m "Third in one history." &&
- A2=`git rev-parse --verify HEAD` &&
+ A2=$(git rev-parse --verify HEAD) &&
rm -f .git/refs/heads/master .git/index &&
@@ -26,15 +26,15 @@ test_expect_success setup '
echo >subdir/fileB fileB again &&
git add fileA subdir/fileB &&
git commit -a -m "Initial in alternate history." &&
- B0=`git rev-parse --verify HEAD` &&
+ B0=$(git rev-parse --verify HEAD) &&
echo >fileA fileA modified in alternate history &&
git commit -a -m "Second in alternate history." &&
- B1=`git rev-parse --verify HEAD` &&
+ B1=$(git rev-parse --verify HEAD) &&
echo >subdir/fileB fileB modified in alternate history &&
git commit -a -m "Third in alternate history." &&
- B2=`git rev-parse --verify HEAD` &&
+ B2=$(git rev-parse --verify HEAD) &&
: done
'
diff --git a/t/t6002-rev-list-bisect.sh b/t/t6002-rev-list-bisect.sh
index 43ad772484..3bf2759eae 100755
--- a/t/t6002-rev-list-bisect.sh
+++ b/t/t6002-rev-list-bisect.sh
@@ -27,9 +27,9 @@ test_bisection_diff()
# Test if bisection size is close to half of list size within
# tolerance.
#
- _bisect_err=`expr $_list_size - $_bisection_size \* 2`
- test "$_bisect_err" -lt 0 && _bisect_err=`expr 0 - $_bisect_err`
- _bisect_err=`expr $_bisect_err / 2` ; # floor
+ _bisect_err=$(expr $_list_size - $_bisection_size \* 2)
+ test "$_bisect_err" -lt 0 && _bisect_err=$(expr 0 - $_bisect_err)
+ _bisect_err=$(expr $_bisect_err / 2) ; # floor
test_expect_success \
"bisection diff $_bisect_option $_head $* <= $_max_diff" \
diff --git a/t/t6015-rev-list-show-all-parents.sh b/t/t6015-rev-list-show-all-parents.sh
index 8b146fb432..3c73c93ba6 100755
--- a/t/t6015-rev-list-show-all-parents.sh
+++ b/t/t6015-rev-list-show-all-parents.sh
@@ -6,11 +6,11 @@ test_description='--show-all --parents does not rewrite TREESAME commits'
test_expect_success 'set up --show-all --parents test' '
test_commit one foo.txt &&
- commit1=`git rev-list -1 HEAD` &&
+ commit1=$(git rev-list -1 HEAD) &&
test_commit two bar.txt &&
- commit2=`git rev-list -1 HEAD` &&
+ commit2=$(git rev-list -1 HEAD) &&
test_commit three foo.txt &&
- commit3=`git rev-list -1 HEAD`
+ commit3=$(git rev-list -1 HEAD)
'
test_expect_success '--parents rewrites TREESAME parents correctly' '
diff --git a/t/t6032-merge-large-rename.sh b/t/t6032-merge-large-rename.sh
index 0f79268917..80777386dc 100755
--- a/t/t6032-merge-large-rename.sh
+++ b/t/t6032-merge-large-rename.sh
@@ -20,7 +20,7 @@ test_expect_success 'setup (initial)' '
make_text() {
echo $1: $2
- for i in `count 20`; do
+ for i in $(count 20); do
echo $1: $i
done
echo $1: $3
diff --git a/t/t6132-pathspec-exclude.sh b/t/t6132-pathspec-exclude.sh
index e1e1b1fa38..d51595cf6b 100755
--- a/t/t6132-pathspec-exclude.sh
+++ b/t/t6132-pathspec-exclude.sh
@@ -7,7 +7,7 @@ test_description='test case exclude pathspec'
test_expect_success 'setup' '
for p in file sub/file sub/sub/file sub/file2 sub/sub/sub/file sub2/file; do
if echo $p | grep /; then
- mkdir -p `dirname $p`
+ mkdir -p $(dirname $p)
fi &&
: >$p &&
git add $p &&
diff --git a/t/t6302-for-each-ref-filter.sh b/t/t6302-for-each-ref-filter.sh
index fe4796cc9c..bcf472bf51 100755
--- a/t/t6302-for-each-ref-filter.sh
+++ b/t/t6302-for-each-ref-filter.sh
@@ -133,6 +133,48 @@ test_expect_success 'right alignment' '
test_cmp expect actual
'
+cat >expect <<-\EOF
+| refname is refs/heads/master |refs/heads/master
+| refname is refs/heads/side |refs/heads/side
+| refname is refs/odd/spot |refs/odd/spot
+| refname is refs/tags/double-tag |refs/tags/double-tag
+| refname is refs/tags/four |refs/tags/four
+| refname is refs/tags/one |refs/tags/one
+| refname is refs/tags/signed-tag |refs/tags/signed-tag
+| refname is refs/tags/three |refs/tags/three
+| refname is refs/tags/two |refs/tags/two
+EOF
+
+test_align_permutations() {
+ while read -r option
+ do
+ test_expect_success "align:$option" '
+ git for-each-ref --format="|%(align:$option)refname is %(refname)%(end)|%(refname)" >actual &&
+ test_cmp expect actual
+ '
+ done
+}
+
+test_align_permutations <<-\EOF
+ middle,42
+ 42,middle
+ position=middle,42
+ 42,position=middle
+ middle,width=42
+ width=42,middle
+ position=middle,width=42
+ width=42,position=middle
+EOF
+
+# Last one wins (silently) when multiple arguments of the same type are given
+
+test_align_permutations <<-\EOF
+ 32,width=42,middle
+ width=30,42,middle
+ width=42,position=right,middle
+ 42,right,position=middle
+EOF
+
# Individual atoms inside %(align:...) and %(end) must not be quoted.
test_expect_success 'alignment with format quote' "
diff --git a/t/t7001-mv.sh b/t/t7001-mv.sh
index 7b56081137..4008faead8 100755
--- a/t/t7001-mv.sh
+++ b/t/t7001-mv.sh
@@ -102,7 +102,7 @@ test_expect_success \
test_expect_success \
'adding another file' \
- 'cp "$TEST_DIRECTORY"/../README path0/README &&
+ 'cp "$TEST_DIRECTORY"/../README.md path0/README &&
git add path0/README &&
git commit -m add2 -a'
@@ -156,11 +156,11 @@ test_expect_success "Michael Cassar's test case" '
echo b > partA/outline.txt &&
echo c > papers/unsorted/_another &&
git add papers partA &&
- T1=`git write-tree` &&
+ T1=$(git write-tree) &&
git mv papers/unsorted/Thesis.pdf papers/all-papers/moo-blah.pdf &&
- T=`git write-tree` &&
+ T=$(git write-tree) &&
git ls-tree -r $T | verbose grep partA/outline.txt
'
diff --git a/t/t7003-filter-branch.sh b/t/t7003-filter-branch.sh
index edb834187a..cb8fbd8e5e 100755
--- a/t/t7003-filter-branch.sh
+++ b/t/t7003-filter-branch.sh
@@ -395,7 +395,7 @@ test_expect_success 'setup submodule' '
git branch original HEAD
'
-orig_head=`git show-ref --hash --head HEAD`
+orig_head=$(git show-ref --hash --head HEAD)
test_expect_success 'rewrite submodule with another content' '
git filter-branch --tree-filter "test -d submod && {
@@ -404,7 +404,7 @@ test_expect_success 'rewrite submodule with another content' '
mkdir submod &&
: > submod/file
} || :" HEAD &&
- test $orig_head != `git show-ref --hash --head HEAD`
+ test $orig_head != $(git show-ref --hash --head HEAD)
'
test_expect_success 'replace submodule revision' '
@@ -413,7 +413,7 @@ test_expect_success 'replace submodule revision' '
"if git ls-files --error-unmatch -- submod > /dev/null 2>&1
then git update-index --cacheinfo 160000 0123456789012345678901234567890123456789 submod
fi" HEAD &&
- test $orig_head != `git show-ref --hash --head HEAD`
+ test $orig_head != $(git show-ref --hash --head HEAD)
'
test_expect_success 'filter commit message without trailing newline' '
diff --git a/t/t7004-tag.sh b/t/t7004-tag.sh
index c64579fe15..cf3469b142 100755
--- a/t/t7004-tag.sh
+++ b/t/t7004-tag.sh
@@ -23,8 +23,8 @@ test_expect_success 'listing all tags in an empty tree should succeed' '
'
test_expect_success 'listing all tags in an empty tree should output nothing' '
- test `git tag -l | wc -l` -eq 0 &&
- test `git tag | wc -l` -eq 0
+ test $(git tag -l | wc -l) -eq 0 &&
+ test $(git tag | wc -l) -eq 0
'
test_expect_success 'looking for a tag in an empty tree should fail' \
@@ -72,8 +72,8 @@ test_expect_success 'listing all tags if one exists should succeed' '
'
test_expect_success 'listing all tags if one exists should output that tag' '
- test `git tag -l` = mytag &&
- test `git tag` = mytag
+ test $(git tag -l) = mytag &&
+ test $(git tag) = mytag
'
# pattern matching:
@@ -83,7 +83,7 @@ test_expect_success 'listing a tag using a matching pattern should succeed' \
test_expect_success \
'listing a tag using a matching pattern should output that tag' \
- 'test `git tag -l mytag` = mytag'
+ 'test $(git tag -l mytag) = mytag'
# todo: git tag -l now returns always zero, when fixed, change this test
test_expect_success \
@@ -92,7 +92,7 @@ test_expect_success \
test_expect_success \
'listing tags using a non-matching pattern should output nothing' \
- 'test `git tag -l xxx | wc -l` -eq 0'
+ 'test $(git tag -l xxx | wc -l) -eq 0'
# special cases for creating tags:
@@ -102,13 +102,13 @@ test_expect_success \
test_expect_success \
'trying to create a tag with a non-valid name should fail' '
- test `git tag -l | wc -l` -eq 1 &&
+ test $(git tag -l | wc -l) -eq 1 &&
test_must_fail git tag "" &&
test_must_fail git tag .othertag &&
test_must_fail git tag "other tag" &&
test_must_fail git tag "othertag^" &&
test_must_fail git tag "other~tag" &&
- test `git tag -l | wc -l` -eq 1
+ test $(git tag -l | wc -l) -eq 1
'
test_expect_success 'creating a tag using HEAD directly should succeed' '
diff --git a/t/t7006-pager.sh b/t/t7006-pager.sh
index 6ea7ac4c41..e4fc5c826c 100755
--- a/t/t7006-pager.sh
+++ b/t/t7006-pager.sh
@@ -424,7 +424,7 @@ test_expect_success TTY 'command-specific pager works for external commands' '
echo "foo:initial" >expect &&
>actual &&
test_config pager.external "sed s/^/foo:/ >actual" &&
- test_terminal git --exec-path="`pwd`" external log --format=%s -1 &&
+ test_terminal git --exec-path="$(pwd)" external log --format=%s -1 &&
test_cmp expect actual
'
diff --git a/t/t7008-grep-binary.sh b/t/t7008-grep-binary.sh
index b146406e9c..9c9c378119 100755
--- a/t/t7008-grep-binary.sh
+++ b/t/t7008-grep-binary.sh
@@ -141,7 +141,8 @@ test_expect_success 'grep respects not-binary diff attribute' '
test_cmp expect actual &&
echo "b diff" >.gitattributes &&
echo "b:binQary" >expect &&
- git grep bin b | nul_to_q >actual &&
+ git grep bin b >actual.raw &&
+ nul_to_q <actual.raw >actual &&
test_cmp expect actual
'
diff --git a/t/t7063-status-untracked-cache.sh b/t/t7063-status-untracked-cache.sh
index 0e8d0d42f2..a971884cfd 100755
--- a/t/t7063-status-untracked-cache.sh
+++ b/t/t7063-status-untracked-cache.sh
@@ -8,10 +8,8 @@ avoid_racy() {
sleep 1
}
-# It's fine if git update-index returns an error code other than one,
-# it'll be caught in the first test.
test_lazy_prereq UNTRACKED_CACHE '
- { git update-index --untracked-cache; ret=$?; } &&
+ { git update-index --test-untracked-cache; ret=$?; } &&
test $ret -ne 1
'
@@ -20,6 +18,10 @@ if ! test_have_prereq UNTRACKED_CACHE; then
test_done
fi
+test_expect_success 'core.untrackedCache is unset' '
+ test_must_fail git config --get core.untrackedCache
+'
+
test_expect_success 'setup' '
git init worktree &&
cd worktree &&
@@ -32,13 +34,13 @@ test_expect_success 'setup' '
test_expect_success 'untracked cache is empty' '
test-dump-untracked-cache >../actual &&
- cat >../expect <<EOF &&
+ cat >../expect-empty <<EOF &&
info/exclude 0000000000000000000000000000000000000000
core.excludesfile 0000000000000000000000000000000000000000
exclude_per_dir .gitignore
flags 00000006
EOF
- test_cmp ../expect ../actual
+ test_cmp ../expect-empty ../actual
'
cat >../status.expect <<EOF &&
@@ -508,7 +510,7 @@ EOF
test_expect_success 'verify untracked cache dump (sparse/subdirs)' '
test-dump-untracked-cache >../actual &&
- cat >../expect <<EOF &&
+ cat >../expect-from-test-dump <<EOF &&
info/exclude 13263c0978fb9fad16b2d580fb800b6d811c3ff0
core.excludesfile 0000000000000000000000000000000000000000
exclude_per_dir .gitignore
@@ -527,7 +529,7 @@ file
/dtwo/ 0000000000000000000000000000000000000000 recurse check_only valid
two
EOF
- test_cmp ../expect ../actual
+ test_cmp ../expect-from-test-dump ../actual
'
test_expect_success 'test sparse status again with untracked cache and subdir' '
@@ -571,4 +573,77 @@ EOF
test_cmp ../status.expect ../status.actual
'
+test_expect_success '--no-untracked-cache removes the cache' '
+ git update-index --no-untracked-cache &&
+ test-dump-untracked-cache >../actual &&
+ echo "no untracked cache" >../expect-no-uc &&
+ test_cmp ../expect-no-uc ../actual
+'
+
+test_expect_success 'git status does not change anything' '
+ git status &&
+ test-dump-untracked-cache >../actual &&
+ test_cmp ../expect-no-uc ../actual
+'
+
+test_expect_success 'setting core.untrackedCache to true and using git status creates the cache' '
+ git config core.untrackedCache true &&
+ test-dump-untracked-cache >../actual &&
+ test_cmp ../expect-no-uc ../actual &&
+ git status &&
+ test-dump-untracked-cache >../actual &&
+ test_cmp ../expect-from-test-dump ../actual
+'
+
+test_expect_success 'using --no-untracked-cache does not fail when core.untrackedCache is true' '
+ git update-index --no-untracked-cache &&
+ test-dump-untracked-cache >../actual &&
+ test_cmp ../expect-no-uc ../actual &&
+ git update-index --untracked-cache &&
+ test-dump-untracked-cache >../actual &&
+ test_cmp ../expect-empty ../actual
+'
+
+test_expect_success 'setting core.untrackedCache to false and using git status removes the cache' '
+ git config core.untrackedCache false &&
+ test-dump-untracked-cache >../actual &&
+ test_cmp ../expect-empty ../actual &&
+ git status &&
+ test-dump-untracked-cache >../actual &&
+ test_cmp ../expect-no-uc ../actual
+'
+
+test_expect_success 'using --untracked-cache does not fail when core.untrackedCache is false' '
+ git update-index --untracked-cache &&
+ test-dump-untracked-cache >../actual &&
+ test_cmp ../expect-empty ../actual
+'
+
+test_expect_success 'setting core.untrackedCache to keep' '
+ git config core.untrackedCache keep &&
+ git update-index --untracked-cache &&
+ test-dump-untracked-cache >../actual &&
+ test_cmp ../expect-empty ../actual &&
+ git status &&
+ test-dump-untracked-cache >../actual &&
+ test_cmp ../expect-from-test-dump ../actual &&
+ git update-index --no-untracked-cache &&
+ test-dump-untracked-cache >../actual &&
+ test_cmp ../expect-no-uc ../actual &&
+ git update-index --force-untracked-cache &&
+ test-dump-untracked-cache >../actual &&
+ test_cmp ../expect-empty ../actual &&
+ git status &&
+ test-dump-untracked-cache >../actual &&
+ test_cmp ../expect-from-test-dump ../actual
+'
+
+test_expect_success 'test ident field is working' '
+ mkdir ../other_worktree &&
+ cp -R done dthree dtwo four three ../other_worktree &&
+ GIT_WORK_TREE=../other_worktree git status 2>../err &&
+ echo "warning: Untracked cache is disabled on this system or location." >../expect &&
+ test_cmp ../expect ../err
+'
+
test_done
diff --git a/t/t7103-reset-bare.sh b/t/t7103-reset-bare.sh
index 1eef93c2b2..afe36a533c 100755
--- a/t/t7103-reset-bare.sh
+++ b/t/t7103-reset-bare.sh
@@ -63,7 +63,7 @@ test_expect_success '"mixed" reset is not allowed in bare' '
test_expect_success '"soft" reset is allowed in bare' '
git reset --soft HEAD^ &&
- test "`git show --pretty=format:%s | head -n 1`" = "one"
+ test "$(git show --pretty=format:%s | head -n 1)" = "one"
'
test_done
diff --git a/t/t7406-submodule-update.sh b/t/t7406-submodule-update.sh
index dda3929d99..68ea31d693 100755
--- a/t/t7406-submodule-update.sh
+++ b/t/t7406-submodule-update.sh
@@ -14,8 +14,8 @@ submodule and "git submodule update --rebase/--merge" does not detach the HEAD.
compare_head()
{
- sha_master=`git rev-list --max-count=1 master`
- sha_head=`git rev-list --max-count=1 HEAD`
+ sha_master=$(git rev-list --max-count=1 master)
+ sha_head=$(git rev-list --max-count=1 HEAD)
test "$sha_master" = "$sha_head"
}
diff --git a/t/t7408-submodule-reference.sh b/t/t7408-submodule-reference.sh
index b770b2f04d..eaea19b8f2 100755
--- a/t/t7408-submodule-reference.sh
+++ b/t/t7408-submodule-reference.sh
@@ -6,7 +6,7 @@
test_description='test clone --reference'
. ./test-lib.sh
-base_dir=`pwd`
+base_dir=$(pwd)
U=$base_dir/UPLOAD_LOG
diff --git a/t/t7504-commit-msg-hook.sh b/t/t7504-commit-msg-hook.sh
index 1f53ea8090..8728db61d3 100755
--- a/t/t7504-commit-msg-hook.sh
+++ b/t/t7504-commit-msg-hook.sh
@@ -179,7 +179,7 @@ EOF
chmod +x "$HOOK"
commit_msg_is () {
- test "`git log --pretty=format:%s%b -1`" = "$1"
+ test "$(git log --pretty=format:%s%b -1)" = "$1"
}
test_expect_success 'hook edits commit message' '
diff --git a/t/t7505-prepare-commit-msg-hook.sh b/t/t7505-prepare-commit-msg-hook.sh
index 03dce09cfe..b13f72975e 100755
--- a/t/t7505-prepare-commit-msg-hook.sh
+++ b/t/t7505-prepare-commit-msg-hook.sh
@@ -53,7 +53,7 @@ test_expect_success 'with hook (-m)' '
echo "more" >> file &&
git add file &&
git commit -m "more" &&
- test "`git log -1 --pretty=format:%s`" = "message (no editor)"
+ test "$(git log -1 --pretty=format:%s)" = "message (no editor)"
'
@@ -62,7 +62,7 @@ test_expect_success 'with hook (-m editor)' '
echo "more" >> file &&
git add file &&
GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit -e -m "more more" &&
- test "`git log -1 --pretty=format:%s`" = message
+ test "$(git log -1 --pretty=format:%s)" = message
'
@@ -71,7 +71,7 @@ test_expect_success 'with hook (-t)' '
echo "more" >> file &&
git add file &&
git commit -t "$(git rev-parse --git-dir)/template" &&
- test "`git log -1 --pretty=format:%s`" = template
+ test "$(git log -1 --pretty=format:%s)" = template
'
@@ -80,7 +80,7 @@ test_expect_success 'with hook (-F)' '
echo "more" >> file &&
git add file &&
(echo more | git commit -F -) &&
- test "`git log -1 --pretty=format:%s`" = "message (no editor)"
+ test "$(git log -1 --pretty=format:%s)" = "message (no editor)"
'
@@ -89,17 +89,17 @@ test_expect_success 'with hook (-F editor)' '
echo "more" >> file &&
git add file &&
(echo more more | GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit -e -F -) &&
- test "`git log -1 --pretty=format:%s`" = message
+ test "$(git log -1 --pretty=format:%s)" = message
'
test_expect_success 'with hook (-C)' '
- head=`git rev-parse HEAD` &&
+ head=$(git rev-parse HEAD) &&
echo "more" >> file &&
git add file &&
git commit -C $head &&
- test "`git log -1 --pretty=format:%s`" = "$head (no editor)"
+ test "$(git log -1 --pretty=format:%s)" = "$head (no editor)"
'
@@ -108,27 +108,27 @@ test_expect_success 'with hook (editor)' '
echo "more more" >> file &&
git add file &&
GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit &&
- test "`git log -1 --pretty=format:%s`" = default
+ test "$(git log -1 --pretty=format:%s)" = default
'
test_expect_success 'with hook (--amend)' '
- head=`git rev-parse HEAD` &&
+ head=$(git rev-parse HEAD) &&
echo "more" >> file &&
git add file &&
GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit --amend &&
- test "`git log -1 --pretty=format:%s`" = "$head"
+ test "$(git log -1 --pretty=format:%s)" = "$head"
'
test_expect_success 'with hook (-c)' '
- head=`git rev-parse HEAD` &&
+ head=$(git rev-parse HEAD) &&
echo "more" >> file &&
git add file &&
GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit -c $head &&
- test "`git log -1 --pretty=format:%s`" = "$head"
+ test "$(git log -1 --pretty=format:%s)" = "$head"
'
@@ -141,7 +141,7 @@ test_expect_success 'with hook (merge)' '
git commit -m other &&
git checkout - &&
git merge --no-ff other &&
- test "`git log -1 --pretty=format:%s`" = "merge (no editor)"
+ test "$(git log -1 --pretty=format:%s)" = "merge (no editor)"
'
test_expect_success 'with hook and editor (merge)' '
@@ -153,7 +153,7 @@ test_expect_success 'with hook and editor (merge)' '
git commit -m other &&
git checkout - &&
env GIT_EDITOR="\"\$FAKE_EDITOR\"" git merge --no-ff -e other &&
- test "`git log -1 --pretty=format:%s`" = "merge"
+ test "$(git log -1 --pretty=format:%s)" = "merge"
'
cat > "$HOOK" <<'EOF'
@@ -164,7 +164,7 @@ EOF
test_expect_success 'with failing hook' '
test_when_finished "git checkout -f master" &&
- head=`git rev-parse HEAD` &&
+ head=$(git rev-parse HEAD) &&
echo "more" >> file &&
git add file &&
test_must_fail env GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit -c $head
@@ -174,7 +174,7 @@ test_expect_success 'with failing hook' '
test_expect_success 'with failing hook (--no-verify)' '
test_when_finished "git checkout -f master" &&
- head=`git rev-parse HEAD` &&
+ head=$(git rev-parse HEAD) &&
echo "more" >> file &&
git add file &&
test_must_fail env GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit --no-verify -c $head
diff --git a/t/t7513-interpret-trailers.sh b/t/t7513-interpret-trailers.sh
index 322c436a49..aee785cffa 100755
--- a/t/t7513-interpret-trailers.sh
+++ b/t/t7513-interpret-trailers.sh
@@ -326,6 +326,46 @@ test_expect_success 'with complex patch, args and --trim-empty' '
test_cmp expected actual
'
+test_expect_success 'in-place editing with basic patch' '
+ cat basic_message >message &&
+ cat basic_patch >>message &&
+ cat basic_message >expected &&
+ echo >>expected &&
+ cat basic_patch >>expected &&
+ git interpret-trailers --in-place message &&
+ test_cmp expected message
+'
+
+test_expect_success 'in-place editing with additional trailer' '
+ cat basic_message >message &&
+ cat basic_patch >>message &&
+ cat basic_message >expected &&
+ echo >>expected &&
+ cat >>expected <<-\EOF &&
+ Reviewed-by: Alice
+ EOF
+ cat basic_patch >>expected &&
+ git interpret-trailers --trailer "Reviewed-by: Alice" --in-place message &&
+ test_cmp expected message
+'
+
+test_expect_success 'in-place editing on stdin disallowed' '
+ test_must_fail git interpret-trailers --trailer "Reviewed-by: Alice" --in-place < basic_message
+'
+
+test_expect_success 'in-place editing on non-existing file' '
+ test_must_fail git interpret-trailers --trailer "Reviewed-by: Alice" --in-place nonexisting &&
+ test_path_is_missing nonexisting
+'
+
+test_expect_success POSIXPERM,SANITY "in-place editing doesn't clobber original file on error" '
+ cat basic_message >message &&
+ chmod -r message &&
+ test_must_fail git interpret-trailers --trailer "Reviewed-by: Alice" --in-place message &&
+ chmod +r message &&
+ test_cmp message basic_message
+'
+
test_expect_success 'using "where = before"' '
git config trailer.bug.where "before" &&
cat complex_message_body >expected &&
diff --git a/t/t7517-per-repo-email.sh b/t/t7517-per-repo-email.sh
new file mode 100755
index 0000000000..337e6e30c3
--- /dev/null
+++ b/t/t7517-per-repo-email.sh
@@ -0,0 +1,39 @@
+#!/bin/sh
+#
+# Copyright (c) 2016 Dan Aloni
+# Copyright (c) 2016 Jeff King
+#
+
+test_description='per-repo forced setting of email address'
+
+. ./test-lib.sh
+
+test_expect_success 'setup a likely user.useConfigOnly use case' '
+ # we want to make sure a reflog is written, since that needs
+ # a non-strict ident. So be sure we have an actual commit.
+ test_commit foo &&
+
+ sane_unset GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL &&
+ sane_unset GIT_COMMITTER_NAME GIT_COMMITTER_EMAIL &&
+ git config user.name "test" &&
+ git config --global user.useConfigOnly true
+'
+
+test_expect_success 'fails committing if clone email is not set' '
+ test_must_fail git commit --allow-empty -m msg
+'
+
+test_expect_success 'fails committing if clone email is not set, but EMAIL set' '
+ test_must_fail env EMAIL=test@fail.com git commit --allow-empty -m msg
+'
+
+test_expect_success 'succeeds committing if clone email is set' '
+ test_config user.email "test@ok.com" &&
+ git commit --allow-empty -m msg
+'
+
+test_expect_success 'succeeds cloning if global email is not set' '
+ git clone . clone
+'
+
+test_done
diff --git a/t/t7602-merge-octopus-many.sh b/t/t7602-merge-octopus-many.sh
index 955f09f8e8..6abe441ae3 100755
--- a/t/t7602-merge-octopus-many.sh
+++ b/t/t7602-merge-octopus-many.sh
@@ -19,7 +19,7 @@ test_expect_success 'setup' '
git add c$i.c &&
git commit -m c$i &&
git tag c$i &&
- i=`expr $i + 1` || return 1
+ i=$(expr $i + 1) || return 1
done
'
@@ -30,7 +30,7 @@ test_expect_success 'merge c1 with c2, c3, c4, ... c29' '
while test $i -le 30
do
refs="$refs c$i"
- i=`expr $i + 1`
+ i=$(expr $i + 1)
done &&
git merge $refs &&
test "$(git rev-parse c1)" != "$(git rev-parse HEAD)" &&
@@ -38,14 +38,14 @@ test_expect_success 'merge c1 with c2, c3, c4, ... c29' '
while test $i -le 30
do
test "$(git rev-parse c$i)" = "$(git rev-parse HEAD^$i)" &&
- i=`expr $i + 1` || return 1
+ i=$(expr $i + 1) || return 1
done &&
git diff --exit-code &&
i=1 &&
while test $i -le 30
do
test -f c$i.c &&
- i=`expr $i + 1` || return 1
+ i=$(expr $i + 1) || return 1
done
'
diff --git a/t/t7700-repack.sh b/t/t7700-repack.sh
index 021c5479bd..6061a04147 100755
--- a/t/t7700-repack.sh
+++ b/t/t7700-repack.sh
@@ -69,7 +69,7 @@ test_expect_success 'writing bitmaps via config can duplicate .keep objects' '
test_expect_success 'loose objects in alternate ODB are not repacked' '
mkdir alt_objects &&
- echo `pwd`/alt_objects > .git/objects/info/alternates &&
+ echo $(pwd)/alt_objects > .git/objects/info/alternates &&
echo content3 > file3 &&
objsha1=$(GIT_OBJECT_DIRECTORY=alt_objects git hash-object -w file3) &&
git add file3 &&
@@ -168,7 +168,7 @@ test_expect_success 'packed unreachable obs in alternate ODB are not loosened' '
'
test_expect_success 'local packed unreachable obs that exist in alternate ODB are not loosened' '
- echo `pwd`/alt_objects > .git/objects/info/alternates &&
+ echo $(pwd)/alt_objects > .git/objects/info/alternates &&
echo "$csha1" | git pack-objects --non-empty --all --reflog pack &&
rm -f .git/objects/pack/* &&
mv pack-* .git/objects/pack/ &&
diff --git a/t/t7800-difftool.sh b/t/t7800-difftool.sh
index ec8bc8c765..4e713f7aa5 100755
--- a/t/t7800-difftool.sh
+++ b/t/t7800-difftool.sh
@@ -430,11 +430,11 @@ EOF
test_expect_success PERL,SYMLINKS 'difftool --dir-diff --symlink without unstaged changes' '
cat >expect <<-EOF &&
file
- $(pwd)/file
+ $PWD/file
file2
- $(pwd)/file2
+ $PWD/file2
sub/sub
- $(pwd)/sub/sub
+ $PWD/sub/sub
EOF
git difftool --dir-diff --symlink \
--extcmd "./.git/CHECK_SYMLINKS" branch HEAD &&
@@ -448,14 +448,14 @@ EOF
run_dir_diff_test 'difftool --dir-diff syncs worktree with unstaged change' '
test_when_finished git reset --hard &&
echo "orig content" >file &&
- git difftool -d $symlinks --extcmd "$(pwd)/modify-right-file" branch &&
+ git difftool -d $symlinks --extcmd "$PWD/modify-right-file" branch &&
echo "new content" >expect &&
test_cmp expect file
'
run_dir_diff_test 'difftool --dir-diff syncs worktree without unstaged change' '
test_when_finished git reset --hard &&
- git difftool -d $symlinks --extcmd "$(pwd)/modify-right-file" branch &&
+ git difftool -d $symlinks --extcmd "$PWD/modify-right-file" branch &&
echo "new content" >expect &&
test_cmp expect file
'
@@ -466,7 +466,7 @@ EOF
test_expect_success PERL 'difftool --no-symlinks does not overwrite working tree file ' '
echo "orig content" >file &&
- git difftool --dir-diff --no-symlinks --extcmd "$(pwd)/modify-file" branch &&
+ git difftool --dir-diff --no-symlinks --extcmd "$PWD/modify-file" branch &&
echo "new content" >expect &&
test_cmp expect file
'
@@ -482,7 +482,7 @@ test_expect_success PERL 'difftool --no-symlinks detects conflict ' '
TMPDIR=$TRASH_DIRECTORY &&
export TMPDIR &&
echo "orig content" >file &&
- test_must_fail git difftool --dir-diff --no-symlinks --extcmd "$(pwd)/modify-both-files" branch &&
+ test_must_fail git difftool --dir-diff --no-symlinks --extcmd "$PWD/modify-both-files" branch &&
echo "wt content" >expect &&
test_cmp expect file &&
echo "tmp content" >expect &&
diff --git a/t/t7810-grep.sh b/t/t7810-grep.sh
index 028ffe4a05..b540944408 100755
--- a/t/t7810-grep.sh
+++ b/t/t7810-grep.sh
@@ -791,12 +791,12 @@ test_expect_success 'outside of git repository' '
} >non/expect.full &&
echo file2:world >non/expect.sub &&
(
- GIT_CEILING_DIRECTORIES="$(pwd)/non/git" &&
+ GIT_CEILING_DIRECTORIES="$(pwd)/non" &&
export GIT_CEILING_DIRECTORIES &&
cd non/git &&
test_must_fail git grep o &&
git grep --no-index o >../actual.full &&
- test_cmp ../expect.full ../actual.full
+ test_cmp ../expect.full ../actual.full &&
cd sub &&
test_must_fail git grep o &&
git grep --no-index o >../../actual.sub &&
@@ -805,7 +805,7 @@ test_expect_success 'outside of git repository' '
echo ".*o*" >non/git/.gitignore &&
(
- GIT_CEILING_DIRECTORIES="$(pwd)/non/git" &&
+ GIT_CEILING_DIRECTORIES="$(pwd)/non" &&
export GIT_CEILING_DIRECTORIES &&
cd non/git &&
test_must_fail git grep o &&
@@ -813,7 +813,7 @@ test_expect_success 'outside of git repository' '
test_cmp ../expect.full ../actual.full &&
{
- echo ".gitignore:.*o*"
+ echo ".gitignore:.*o*" &&
cat ../expect.full
} >../expect.with.ignored &&
git grep --no-index --no-exclude o >../actual.full &&
@@ -821,6 +821,47 @@ test_expect_success 'outside of git repository' '
)
'
+test_expect_success 'outside of git repository with fallbackToNoIndex' '
+ rm -fr non &&
+ mkdir -p non/git/sub &&
+ echo hello >non/git/file1 &&
+ echo world >non/git/sub/file2 &&
+ cat <<-\EOF >non/expect.full &&
+ file1:hello
+ sub/file2:world
+ EOF
+ echo file2:world >non/expect.sub &&
+ (
+ GIT_CEILING_DIRECTORIES="$(pwd)/non" &&
+ export GIT_CEILING_DIRECTORIES &&
+ cd non/git &&
+ test_must_fail git -c grep.fallbackToNoIndex=false grep o &&
+ git -c grep.fallbackToNoIndex=true grep o >../actual.full &&
+ test_cmp ../expect.full ../actual.full &&
+ cd sub &&
+ test_must_fail git -c grep.fallbackToNoIndex=false grep o &&
+ git -c grep.fallbackToNoIndex=true grep o >../../actual.sub &&
+ test_cmp ../../expect.sub ../../actual.sub
+ ) &&
+
+ echo ".*o*" >non/git/.gitignore &&
+ (
+ GIT_CEILING_DIRECTORIES="$(pwd)/non" &&
+ export GIT_CEILING_DIRECTORIES &&
+ cd non/git &&
+ test_must_fail git -c grep.fallbackToNoIndex=false grep o &&
+ git -c grep.fallbackToNoIndex=true grep --exclude-standard o >../actual.full &&
+ test_cmp ../expect.full ../actual.full &&
+
+ {
+ echo ".gitignore:.*o*" &&
+ cat ../expect.full
+ } >../expect.with.ignored &&
+ git -c grep.fallbackToNoIndex grep --no-exclude o >../actual.full &&
+ test_cmp ../expect.with.ignored ../actual.full
+ )
+'
+
test_expect_success 'inside git repository but with --no-index' '
rm -fr is &&
mkdir -p is/git/sub &&
diff --git a/t/t8003-blame-corner-cases.sh b/t/t8003-blame-corner-cases.sh
index 16f1442c1e..6568429753 100755
--- a/t/t8003-blame-corner-cases.sh
+++ b/t/t8003-blame-corner-cases.sh
@@ -153,7 +153,7 @@ test_expect_success 'blame path that used to be a directory' '
'
test_expect_success 'blame to a commit with no author name' '
- TREE=`git rev-parse HEAD:` &&
+ TREE=$(git rev-parse HEAD:) &&
cat >badcommit <<EOF &&
tree $TREE
author <noname> 1234567890 +0000
@@ -161,7 +161,7 @@ committer David Reiss <dreiss@facebook.com> 1234567890 +0000
some message
EOF
- COMMIT=`git hash-object -t commit -w badcommit` &&
+ COMMIT=$(git hash-object -t commit -w badcommit) &&
git --no-pager blame $COMMIT -- uno >/dev/null
'
diff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh
index 834d91a691..b3355d2c70 100755
--- a/t/t9001-send-email.sh
+++ b/t/t9001-send-email.sh
@@ -36,7 +36,7 @@ clean_fake_sendmail () {
}
test_expect_success $PREREQ 'Extract patches' '
- patches=`git format-patch -s --cc="One <one@example.com>" --cc=two@example.com -n HEAD^1`
+ patches=$(git format-patch -s --cc="One <one@example.com>" --cc=two@example.com -n HEAD^1)
'
# Test no confirm early to ensure remaining tests will not hang
@@ -1151,7 +1151,7 @@ test_expect_success $PREREQ '--no-bcc overrides sendemail.bcc' '
'
test_expect_success $PREREQ 'patches To headers are used by default' '
- patch=`git format-patch -1 --to="bodies@example.com"` &&
+ patch=$(git format-patch -1 --to="bodies@example.com") &&
test_when_finished "rm $patch" &&
git send-email \
--dry-run \
@@ -1162,7 +1162,7 @@ test_expect_success $PREREQ 'patches To headers are used by default' '
'
test_expect_success $PREREQ 'patches To headers are appended to' '
- patch=`git format-patch -1 --to="bodies@example.com"` &&
+ patch=$(git format-patch -1 --to="bodies@example.com") &&
test_when_finished "rm $patch" &&
git send-email \
--dry-run \
@@ -1175,8 +1175,8 @@ test_expect_success $PREREQ 'patches To headers are appended to' '
'
test_expect_success $PREREQ 'To headers from files reset each patch' '
- patch1=`git format-patch -1 --to="bodies@example.com"` &&
- patch2=`git format-patch -1 --to="other@example.com" HEAD~` &&
+ patch1=$(git format-patch -1 --to="bodies@example.com") &&
+ patch2=$(git format-patch -1 --to="other@example.com" HEAD~) &&
test_when_finished "rm $patch1 && rm $patch2" &&
git send-email \
--dry-run \
@@ -1488,7 +1488,7 @@ test_cover_addresses () {
clean_fake_sendmail &&
rm -fr outdir &&
git format-patch --cover-letter -2 -o outdir &&
- cover=`echo outdir/0000-*.patch` &&
+ cover=$(echo outdir/0000-*.patch) &&
mv $cover cover-to-edit.patch &&
perl -pe "s/^From:/$header: extra\@address.com\nFrom:/" cover-to-edit.patch >"$cover" &&
git send-email \
diff --git a/t/t9003-help-autocorrect.sh b/t/t9003-help-autocorrect.sh
new file mode 100755
index 0000000000..dfe95c923b
--- /dev/null
+++ b/t/t9003-help-autocorrect.sh
@@ -0,0 +1,52 @@
+#!/bin/sh
+
+test_description='help.autocorrect finding a match'
+. ./test-lib.sh
+
+test_expect_success 'setup' '
+ # An alias
+ git config alias.lgf "log --format=%s --first-parent" &&
+
+ # A random user-defined command
+ write_script git-distimdistim <<-EOF &&
+ echo distimdistim was called
+ EOF
+
+ PATH="$PATH:." &&
+ export PATH &&
+
+ git commit --allow-empty -m "a single log entry" &&
+
+ # Sanity check
+ git lgf >actual &&
+ echo "a single log entry" >expect &&
+ test_cmp expect actual &&
+
+ git distimdistim >actual &&
+ echo "distimdistim was called" >expect &&
+ test_cmp expect actual
+'
+
+test_expect_success 'autocorrect showing candidates' '
+ git config help.autocorrect 0 &&
+
+ test_must_fail git lfg 2>actual &&
+ sed -e "1,/^Did you mean this/d" actual | grep lgf &&
+
+ test_must_fail git distimdist 2>actual &&
+ sed -e "1,/^Did you mean this/d" actual | grep distimdistim
+'
+
+test_expect_success 'autocorrect running commands' '
+ git config help.autocorrect -1 &&
+
+ git lfg >actual &&
+ echo "a single log entry" >expect &&
+ test_cmp expect actual &&
+
+ git distimdist >actual &&
+ echo "distimdistim was called" >expect &&
+ test_cmp expect actual
+'
+
+test_done
diff --git a/t/t9100-git-svn-basic.sh b/t/t9100-git-svn-basic.sh
index 4fea8d901b..22d8367ff3 100755
--- a/t/t9100-git-svn-basic.sh
+++ b/t/t9100-git-svn-basic.sh
@@ -117,7 +117,7 @@ test_expect_success "$name" '
name='remove executable bit from a file'
-test_expect_success "$name" '
+test_expect_success POSIXPERM "$name" '
rm -f "$GIT_DIR"/index &&
git checkout -f -b mybranch5 ${remotes_git_svn} &&
chmod -x exec.sh &&
@@ -130,7 +130,7 @@ test_expect_success "$name" '
name='add executable bit back file'
-test_expect_success "$name" '
+test_expect_success POSIXPERM "$name" '
chmod +x exec.sh &&
git update-index exec.sh &&
git commit -m "$name" &&
@@ -141,7 +141,7 @@ test_expect_success "$name" '
name='executable file becomes a symlink to file'
-test_expect_success "$name" '
+test_expect_success SYMLINKS "$name" '
rm exec.sh &&
ln -s file exec.sh &&
git update-index exec.sh &&
@@ -153,7 +153,7 @@ test_expect_success "$name" '
name='new symlink is added to a file that was also just made executable'
-test_expect_success "$name" '
+test_expect_success POSIXPERM,SYMLINKS "$name" '
chmod +x file &&
ln -s file exec-2.sh &&
git update-index --add file exec-2.sh &&
@@ -165,7 +165,7 @@ test_expect_success "$name" '
test -h "$SVN_TREE"/exec-2.sh'
name='modify a symlink to become a file'
-test_expect_success "$name" '
+test_expect_success POSIXPERM,SYMLINKS "$name" '
echo git help >help &&
rm exec-2.sh &&
cp help exec-2.sh &&
@@ -181,7 +181,8 @@ test_expect_success "$name" '
name="commit with UTF-8 message: locale: $GIT_SVN_LC_ALL"
LC_ALL="$GIT_SVN_LC_ALL"
export LC_ALL
-test_expect_success UTF8 "$name" "
+# This test relies on the previous test, hence requires POSIXPERM,SYMLINKS
+test_expect_success UTF8,POSIXPERM,SYMLINKS "$name" "
echo '# hello' >> exec-2.sh &&
git update-index exec-2.sh &&
git commit -m 'éïâˆ' &&
@@ -214,7 +215,7 @@ tree d667270a1f7b109f5eb3aaea21ede14b56bfdd6e
tree 8f51f74cf0163afc9ad68a4b1537288c4558b5a4
EOF
-test_expect_success "$name" "test_cmp a expected"
+test_expect_success POSIXPERM,SYMLINKS "$name" "test_cmp a expected"
test_expect_success 'exit if remote refs are ambigious' "
git config --add svn-remote.svn.fetch \
@@ -265,18 +266,18 @@ test_expect_success 'able to dcommit to a subdirectory' "
git update-index --add d &&
git commit -m '/bar/d should be in the log' &&
git svn dcommit -i bar &&
- test -z \"\`git diff refs/heads/my-bar refs/remotes/bar\`\" &&
+ test -z \"\$(git diff refs/heads/my-bar refs/remotes/bar)\" &&
mkdir newdir &&
echo new > newdir/dir &&
git update-index --add newdir/dir &&
git commit -m 'add a new directory' &&
git svn dcommit -i bar &&
- test -z \"\`git diff refs/heads/my-bar refs/remotes/bar\`\" &&
+ test -z \"\$(git diff refs/heads/my-bar refs/remotes/bar)\" &&
echo foo >> newdir/dir &&
git update-index newdir/dir &&
git commit -m 'modify a file in new directory' &&
git svn dcommit -i bar &&
- test -z \"\`git diff refs/heads/my-bar refs/remotes/bar\`\"
+ test -z \"\$(git diff refs/heads/my-bar refs/remotes/bar)\"
"
test_expect_success 'dcommit should not fail with a touched file' '
@@ -295,7 +296,7 @@ test_expect_success 'able to set-tree to a subdirectory' "
git update-index d &&
git commit -m 'update /bar/d' &&
git svn set-tree -i bar HEAD &&
- test -z \"\`git diff refs/heads/my-bar refs/remotes/bar\`\"
+ test -z \"\$(git diff refs/heads/my-bar refs/remotes/bar)\"
"
test_expect_success 'git-svn works in a bare repository' '
diff --git a/t/t9101-git-svn-props.sh b/t/t9101-git-svn-props.sh
index 8869f5018e..e8173d5fef 100755
--- a/t/t9101-git-svn-props.sh
+++ b/t/t9101-git-svn-props.sh
@@ -26,27 +26,27 @@ cd import
EOF
printf "Hello\r\nWorld\r\n" > crlf
- a_crlf=`git hash-object -w crlf`
+ a_crlf=$(git hash-object -w crlf)
printf "Hello\rWorld\r" > cr
- a_cr=`git hash-object -w cr`
+ a_cr=$(git hash-object -w cr)
printf "Hello\nWorld\n" > lf
- a_lf=`git hash-object -w lf`
+ a_lf=$(git hash-object -w lf)
printf "Hello\r\nWorld" > ne_crlf
- a_ne_crlf=`git hash-object -w ne_crlf`
+ a_ne_crlf=$(git hash-object -w ne_crlf)
printf "Hello\nWorld" > ne_lf
- a_ne_lf=`git hash-object -w ne_lf`
+ a_ne_lf=$(git hash-object -w ne_lf)
printf "Hello\rWorld" > ne_cr
- a_ne_cr=`git hash-object -w ne_cr`
+ a_ne_cr=$(git hash-object -w ne_cr)
touch empty
- a_empty=`git hash-object -w empty`
+ a_empty=$(git hash-object -w empty)
printf "\n" > empty_lf
- a_empty_lf=`git hash-object -w empty_lf`
+ a_empty_lf=$(git hash-object -w empty_lf)
printf "\r" > empty_cr
- a_empty_cr=`git hash-object -w empty_cr`
+ a_empty_cr=$(git hash-object -w empty_cr)
printf "\r\n" > empty_crlf
- a_empty_crlf=`git hash-object -w empty_crlf`
+ a_empty_crlf=$(git hash-object -w empty_crlf)
svn_cmd import --no-auto-props -m 'import for git svn' . "$svnrepo" >/dev/null
cd ..
@@ -80,7 +80,7 @@ test_expect_success "$name" \
git pull . ${remotes_git_svn}'
expect='/* $Id$ */'
-got="`sed -ne 2p kw.c`"
+got="$(sed -ne 2p kw.c)"
test_expect_success 'raw $Id$ found in kw.c' "test '$expect' = '$got'"
test_expect_success "propset CR on crlf files" '
@@ -107,8 +107,8 @@ done
cd test_wc
printf '$Id$\rHello\rWorld\r' > cr
printf '$Id$\rHello\rWorld' > ne_cr
- a_cr=`printf '$Id$\r\nHello\r\nWorld\r\n' | git hash-object --stdin`
- a_ne_cr=`printf '$Id$\r\nHello\r\nWorld' | git hash-object --stdin`
+ a_cr=$(printf '$Id$\r\nHello\r\nWorld\r\n' | git hash-object --stdin)
+ a_ne_cr=$(printf '$Id$\r\nHello\r\nWorld' | git hash-object --stdin)
test_expect_success 'Set CRLF on cr files' \
'svn_cmd propset svn:eol-style CRLF cr &&
svn_cmd propset svn:eol-style CRLF ne_cr &&
@@ -119,8 +119,8 @@ cd ..
test_expect_success 'fetch and pull latest from svn' \
'git svn fetch && git pull . ${remotes_git_svn}'
-b_cr="`git hash-object cr`"
-b_ne_cr="`git hash-object ne_cr`"
+b_cr="$(git hash-object cr)"
+b_ne_cr="$(git hash-object ne_cr)"
test_expect_success 'CRLF + $Id$' "test '$a_cr' = '$b_cr'"
test_expect_success 'CRLF + $Id$ (no newline)' "test '$a_ne_cr' = '$b_ne_cr'"
diff --git a/t/t9104-git-svn-follow-parent.sh b/t/t9104-git-svn-follow-parent.sh
index 83f17e13e8..cd480edf16 100755
--- a/t/t9104-git-svn-follow-parent.sh
+++ b/t/t9104-git-svn-follow-parent.sh
@@ -31,12 +31,12 @@ test_expect_success 'initialize repo' '
test_expect_success 'init and fetch a moved directory' '
git svn init --minimize-url -i thunk "$svnrepo"/thunk &&
git svn fetch -i thunk &&
- test "`git rev-parse --verify refs/remotes/thunk@2`" \
- = "`git rev-parse --verify refs/remotes/thunk~1`" &&
- test "`git cat-file blob refs/remotes/thunk:readme |\
- sed -n -e "3p"`" = goodbye &&
- test -z "`git config --get svn-remote.svn.fetch \
- "^trunk:refs/remotes/thunk@2$"`"
+ test "$(git rev-parse --verify refs/remotes/thunk@2)" \
+ = "$(git rev-parse --verify refs/remotes/thunk~1)" &&
+ test "$(git cat-file blob refs/remotes/thunk:readme |\
+ sed -n -e "3p")" = goodbye &&
+ test -z "$(git config --get svn-remote.svn.fetch \
+ "^trunk:refs/remotes/thunk@2$")"
'
test_expect_success 'init and fetch from one svn-remote' '
@@ -46,10 +46,10 @@ test_expect_success 'init and fetch from one svn-remote' '
git config --add svn-remote.svn.fetch \
thunk:refs/remotes/svn/thunk &&
git svn fetch -i svn/thunk &&
- test "`git rev-parse --verify refs/remotes/svn/trunk`" \
- = "`git rev-parse --verify refs/remotes/svn/thunk~1`" &&
- test "`git cat-file blob refs/remotes/svn/thunk:readme |\
- sed -n -e "3p"`" = goodbye
+ test "$(git rev-parse --verify refs/remotes/svn/trunk)" \
+ = "$(git rev-parse --verify refs/remotes/svn/thunk~1)" &&
+ test "$(git cat-file blob refs/remotes/svn/thunk:readme |\
+ sed -n -e "3p")" = goodbye
'
test_expect_success 'follow deleted parent' '
@@ -61,9 +61,9 @@ test_expect_success 'follow deleted parent' '
junk:refs/remotes/svn/junk &&
git svn fetch -i svn/thunk &&
git svn fetch -i svn/junk &&
- test -z "`git diff svn/junk svn/trunk`" &&
- test "`git merge-base svn/junk svn/trunk`" \
- = "`git rev-parse svn/trunk`"
+ test -z "$(git diff svn/junk svn/trunk)" &&
+ test "$(git merge-base svn/junk svn/trunk)" \
+ = "$(git rev-parse svn/trunk)"
'
test_expect_success 'follow larger parent' '
@@ -80,10 +80,10 @@ test_expect_success 'follow larger parent' '
git rev-parse --verify refs/remotes/larger &&
git rev-parse --verify \
refs/remotes/larger-parent &&
- test "`git merge-base \
+ test "$(git merge-base \
refs/remotes/larger-parent \
- refs/remotes/larger`" = \
- "`git rev-parse refs/remotes/larger`"
+ refs/remotes/larger)" = \
+ "$(git rev-parse refs/remotes/larger)"
'
test_expect_success 'follow higher-level parent' '
@@ -106,8 +106,8 @@ test_expect_success 'follow deleted directory' '
svn_cmd rm -m "remove glob" "$svnrepo"/glob &&
git svn init --minimize-url -i glob "$svnrepo"/glob &&
git svn fetch -i glob &&
- test "`git cat-file blob refs/remotes/glob:blob/bye`" = hi &&
- test "`git ls-tree refs/remotes/glob | wc -l `" -eq 1
+ test "$(git cat-file blob refs/remotes/glob:blob/bye)" = hi &&
+ test "$(git ls-tree refs/remotes/glob | wc -l )" -eq 1
'
# ref: r9270 of the Subversion repository: (http://svn.collab.net/repos/svn)
@@ -142,9 +142,9 @@ test_expect_success 'follow-parent avoids deleting relevant info' '
git svn init --minimize-url -i r9270-t \
"$svnrepo"/r9270/trunk/subversion/bindings/swig/perl/native/t &&
git svn fetch -i r9270-t &&
- test `git rev-list r9270-t | wc -l` -eq 2 &&
- test "`git ls-tree --name-only r9270-t~1`" = \
- "`git ls-tree --name-only r9270-t`"
+ test $(git rev-list r9270-t | wc -l) -eq 2 &&
+ test "$(git ls-tree --name-only r9270-t~1)" = \
+ "$(git ls-tree --name-only r9270-t)"
'
test_expect_success "track initial change if it was only made to parent" '
@@ -152,11 +152,11 @@ test_expect_success "track initial change if it was only made to parent" '
git svn init --minimize-url -i r9270-d \
"$svnrepo"/r9270/drunk/subversion/bindings/swig/perl/native/t &&
git svn fetch -i r9270-d &&
- test `git rev-list r9270-d | wc -l` -eq 3 &&
- test "`git ls-tree --name-only r9270-t`" = \
- "`git ls-tree --name-only r9270-d`" &&
- test "`git rev-parse r9270-t`" = \
- "`git rev-parse r9270-d~1`"
+ test $(git rev-list r9270-d | wc -l) -eq 3 &&
+ test "$(git ls-tree --name-only r9270-t)" = \
+ "$(git ls-tree --name-only r9270-d)" &&
+ test "$(git rev-parse r9270-t)" = \
+ "$(git rev-parse r9270-d~1)"
'
test_expect_success "follow-parent is atomic" '
@@ -193,19 +193,19 @@ test_expect_success "follow-parent is atomic" '
git svn fetch -i stunk &&
git svn init --minimize-url -i flunked "$svnrepo"/flunked &&
git svn fetch -i flunked &&
- test "`git rev-parse --verify refs/remotes/flunk@18`" \
- = "`git rev-parse --verify refs/remotes/stunk`" &&
- test "`git rev-parse --verify refs/remotes/flunk~1`" \
- = "`git rev-parse --verify refs/remotes/stunk`" &&
- test "`git rev-parse --verify refs/remotes/flunked~1`" \
- = "`git rev-parse --verify refs/remotes/stunk~1`"
+ test "$(git rev-parse --verify refs/remotes/flunk@18)" \
+ = "$(git rev-parse --verify refs/remotes/stunk)" &&
+ test "$(git rev-parse --verify refs/remotes/flunk~1)" \
+ = "$(git rev-parse --verify refs/remotes/stunk)" &&
+ test "$(git rev-parse --verify refs/remotes/flunked~1)" \
+ = "$(git rev-parse --verify refs/remotes/stunk~1)"
'
test_expect_success "track multi-parent paths" '
svn_cmd cp -m "resurrect /glob" "$svnrepo"/r9270 "$svnrepo"/glob &&
git svn multi-fetch &&
- test `git cat-file commit refs/remotes/glob | \
- grep "^parent " | wc -l` -eq 2
+ test $(git cat-file commit refs/remotes/glob | \
+ grep "^parent " | wc -l) -eq 2
'
test_expect_success "multi-fetch continues to work" "
diff --git a/t/t9105-git-svn-commit-diff.sh b/t/t9105-git-svn-commit-diff.sh
index 5d0afeae6c..6ed5f74e25 100755
--- a/t/t9105-git-svn-commit-diff.sh
+++ b/t/t9105-git-svn-commit-diff.sh
@@ -18,8 +18,8 @@ test_expect_success 'initialize repo' '
git commit -a -m "another"
'
-head=`git rev-parse --verify HEAD^0`
-prev=`git rev-parse --verify HEAD^1`
+head=$(git rev-parse --verify HEAD^0)
+prev=$(git rev-parse --verify HEAD^1)
# the internals of the commit-diff command are the same as the regular
# commit, so only a basic test of functionality is needed since we've
diff --git a/t/t9107-git-svn-migrate.sh b/t/t9107-git-svn-migrate.sh
index 6e69fc4c65..9060198037 100755
--- a/t/t9107-git-svn-migrate.sh
+++ b/t/t9107-git-svn-migrate.sh
@@ -24,10 +24,10 @@ test_expect_success 'setup old-looking metadata' '
git update-ref -d refs/${remotes_git_svn} refs/${remotes_git_svn}
'
-head=`git rev-parse --verify refs/heads/git-svn-HEAD^0`
+head=$(git rev-parse --verify refs/heads/git-svn-HEAD^0)
test_expect_success 'git-svn-HEAD is a real HEAD' "test -n '$head'"
-svnrepo_escaped=`echo $svnrepo | sed 's/ /%20/'`
+svnrepo_escaped=$(echo $svnrepo | sed 's/ /%20/')
test_expect_success 'initialize old-style (v0) git svn layout' '
mkdir -p "$GIT_DIR"/git-svn/info "$GIT_DIR"/svn/info &&
@@ -38,7 +38,7 @@ test_expect_success 'initialize old-style (v0) git svn layout' '
git rev-parse --verify refs/${remotes_git_svn}^0 &&
git rev-parse --verify refs/remotes/svn^0 &&
test "$(git config --get svn-remote.svn.url)" = "$svnrepo_escaped" &&
- test `git config --get svn-remote.svn.fetch` = \
+ test $(git config --get svn-remote.svn.fetch) = \
":refs/${remotes_git_svn}"
'
@@ -46,10 +46,10 @@ test_expect_success 'initialize a multi-repository repo' '
git svn init "$svnrepo" -T trunk -t tags -b branches &&
git config --get-all svn-remote.svn.fetch > fetch.out &&
grep "^trunk:refs/remotes/origin/trunk$" fetch.out &&
- test -n "`git config --get svn-remote.svn.branches \
- "^branches/\*:refs/remotes/origin/\*$"`" &&
- test -n "`git config --get svn-remote.svn.tags \
- "^tags/\*:refs/remotes/origin/tags/\*$"`" &&
+ test -n "$(git config --get svn-remote.svn.branches \
+ "^branches/\*:refs/remotes/origin/\*$")" &&
+ test -n "$(git config --get svn-remote.svn.tags \
+ "^tags/\*:refs/remotes/origin/tags/\*$")" &&
git config --unset svn-remote.svn.branches \
"^branches/\*:refs/remotes/origin/\*$" &&
git config --unset svn-remote.svn.tags \
@@ -75,28 +75,28 @@ test_expect_success 'multi-fetch works on partial urls + paths' "
for i in trunk a b tags/0.1 tags/0.2 tags/0.3; do
git rev-parse --verify refs/remotes/origin/\$i^0 >> refs.out || exit 1;
done &&
- test -z \"\`sort < refs.out | uniq -d\`\" &&
+ test -z \"\$(sort < refs.out | uniq -d)\" &&
for i in trunk a b tags/0.1 tags/0.2 tags/0.3; do
for j in trunk a b tags/0.1 tags/0.2 tags/0.3; do
if test \$j != \$i; then continue; fi
- test -z \"\`git diff refs/remotes/origin/\$i \
- refs/remotes/origin/\$j\`\" ||exit 1; done; done
+ test -z \"\$(git diff refs/remotes/origin/\$i \
+ refs/remotes/origin/\$j)\" ||exit 1; done; done
"
test_expect_success 'migrate --minimize on old inited layout' '
git config --unset-all svn-remote.svn.fetch &&
git config --unset-all svn-remote.svn.url &&
rm -rf "$GIT_DIR"/svn &&
- for i in `cat fetch.out`; do
- path=`expr $i : "\([^:]*\):.*$"`
- ref=`expr $i : "[^:]*:\(refs/remotes/.*\)$"`
+ for i in $(cat fetch.out); do
+ path=$(expr $i : "\([^:]*\):.*$")
+ ref=$(expr $i : "[^:]*:\(refs/remotes/.*\)$")
if test -z "$ref"; then continue; fi
if test -n "$path"; then path="/$path"; fi
( mkdir -p "$GIT_DIR"/svn/$ref/info/ &&
echo "$svnrepo"$path > "$GIT_DIR"/svn/$ref/info/url ) || exit 1;
done &&
git svn migrate --minimize &&
- test -z "`git config -l | grep "^svn-remote\.git-svn\."`" &&
+ test -z "$(git config -l | grep "^svn-remote\.git-svn\.")" &&
git config --get-all svn-remote.svn.fetch > fetch.out &&
grep "^trunk:refs/remotes/origin/trunk$" fetch.out &&
grep "^branches/a:refs/remotes/origin/a$" fetch.out &&
diff --git a/t/t9108-git-svn-glob.sh b/t/t9108-git-svn-glob.sh
index d732d31302..a94286c8ec 100755
--- a/t/t9108-git-svn-glob.sh
+++ b/t/t9108-git-svn-glob.sh
@@ -50,10 +50,10 @@ test_expect_success 'test refspec globbing' '
git log --pretty=oneline refs/remotes/tags/end | \
sed -e "s/^.\{41\}//" > output.end &&
test_cmp expect.end output.end &&
- test "`git rev-parse refs/remotes/tags/end~1`" = \
- "`git rev-parse refs/remotes/branches/start`" &&
- test "`git rev-parse refs/remotes/branches/start~2`" = \
- "`git rev-parse refs/remotes/trunk`" &&
+ test "$(git rev-parse refs/remotes/tags/end~1)" = \
+ "$(git rev-parse refs/remotes/branches/start)" &&
+ test "$(git rev-parse refs/remotes/branches/start~2)" = \
+ "$(git rev-parse refs/remotes/trunk)" &&
test_must_fail git rev-parse refs/remotes/tags/end@3
'
@@ -75,20 +75,23 @@ test_expect_success 'test left-hand-side only globbing' '
svn_cmd commit -m "try to try"
) &&
git svn fetch two &&
- test `git rev-list refs/remotes/two/tags/end | wc -l` -eq 6 &&
- test `git rev-list refs/remotes/two/branches/start | wc -l` -eq 3 &&
- test `git rev-parse refs/remotes/two/branches/start~2` = \
- `git rev-parse refs/remotes/two/trunk` &&
- test `git rev-parse refs/remotes/two/tags/end~3` = \
- `git rev-parse refs/remotes/two/branches/start` &&
+ test $(git rev-list refs/remotes/two/tags/end | wc -l) -eq 6 &&
+ test $(git rev-list refs/remotes/two/branches/start | wc -l) -eq 3 &&
+ test $(git rev-parse refs/remotes/two/branches/start~2) = \
+ $(git rev-parse refs/remotes/two/trunk) &&
+ test $(git rev-parse refs/remotes/two/tags/end~3) = \
+ $(git rev-parse refs/remotes/two/branches/start) &&
git log --pretty=oneline refs/remotes/two/tags/end | \
sed -e "s/^.\{41\}//" > output.two &&
test_cmp expect.two output.two
'
-echo "Only one set of wildcard directories" \
- "(e.g. '*' or '*/*/*') is supported: 'branches/*/t/*'" > expect.three
-echo "" >> expect.three
+test_expect_success 'prepare test disallow multi-globs' "
+cat >expect.three <<EOF
+Only one set of wildcards (e.g. '*' or '*/*/*') is supported: branches/*/t/*
+
+EOF
+ "
test_expect_success 'test disallow multi-globs' '
git config --add svn-remote.three.url "$svnrepo" &&
diff --git a/t/t9109-git-svn-multi-glob.sh b/t/t9109-git-svn-multi-glob.sh
index c318f9f946..8d99e848d4 100755
--- a/t/t9109-git-svn-multi-glob.sh
+++ b/t/t9109-git-svn-multi-glob.sh
@@ -50,10 +50,10 @@ test_expect_success 'test refspec globbing' '
git log --pretty=oneline refs/remotes/tags/end | \
sed -e "s/^.\{41\}//" > output.end &&
test_cmp expect.end output.end &&
- test "`git rev-parse refs/remotes/tags/end~1`" = \
- "`git rev-parse refs/remotes/branches/v1/start`" &&
- test "`git rev-parse refs/remotes/branches/v1/start~2`" = \
- "`git rev-parse refs/remotes/trunk`" &&
+ test "$(git rev-parse refs/remotes/tags/end~1)" = \
+ "$(git rev-parse refs/remotes/branches/v1/start)" &&
+ test "$(git rev-parse refs/remotes/branches/v1/start~2)" = \
+ "$(git rev-parse refs/remotes/trunk)" &&
test_must_fail git rev-parse refs/remotes/tags/end@3
'
@@ -75,12 +75,12 @@ test_expect_success 'test left-hand-side only globbing' '
svn_cmd commit -m "try to try"
) &&
git svn fetch two &&
- test `git rev-list refs/remotes/two/tags/end | wc -l` -eq 6 &&
- test `git rev-list refs/remotes/two/branches/v1/start | wc -l` -eq 3 &&
- test `git rev-parse refs/remotes/two/branches/v1/start~2` = \
- `git rev-parse refs/remotes/two/trunk` &&
- test `git rev-parse refs/remotes/two/tags/end~3` = \
- `git rev-parse refs/remotes/two/branches/v1/start` &&
+ test $(git rev-list refs/remotes/two/tags/end | wc -l) -eq 6 &&
+ test $(git rev-list refs/remotes/two/branches/v1/start | wc -l) -eq 3 &&
+ test $(git rev-parse refs/remotes/two/branches/v1/start~2) = \
+ $(git rev-parse refs/remotes/two/trunk) &&
+ test $(git rev-parse refs/remotes/two/tags/end~3) = \
+ $(git rev-parse refs/remotes/two/branches/v1/start) &&
git log --pretty=oneline refs/remotes/two/tags/end | \
sed -e "s/^.\{41\}//" > output.two &&
test_cmp expect.two output.two
@@ -124,20 +124,23 @@ test_expect_success 'test another branch' '
git config --add svn-remote.four.tags \
"tags/*:refs/remotes/four/tags/*" &&
git svn fetch four &&
- test `git rev-list refs/remotes/four/tags/next | wc -l` -eq 5 &&
- test `git rev-list refs/remotes/four/branches/v2/start | wc -l` -eq 3 &&
- test `git rev-parse refs/remotes/four/branches/v2/start~2` = \
- `git rev-parse refs/remotes/four/trunk` &&
- test `git rev-parse refs/remotes/four/tags/next~2` = \
- `git rev-parse refs/remotes/four/branches/v2/start` &&
+ test $(git rev-list refs/remotes/four/tags/next | wc -l) -eq 5 &&
+ test $(git rev-list refs/remotes/four/branches/v2/start | wc -l) -eq 3 &&
+ test $(git rev-parse refs/remotes/four/branches/v2/start~2) = \
+ $(git rev-parse refs/remotes/four/trunk) &&
+ test $(git rev-parse refs/remotes/four/tags/next~2) = \
+ $(git rev-parse refs/remotes/four/branches/v2/start) &&
git log --pretty=oneline refs/remotes/four/tags/next | \
sed -e "s/^.\{41\}//" > output.four &&
test_cmp expect.four output.four
'
-echo "Only one set of wildcard directories" \
- "(e.g. '*' or '*/*/*') is supported: 'branches/*/t/*'" > expect.three
-echo "" >> expect.three
+test_expect_success 'prepare test disallow multiple globs' "
+cat >expect.three <<EOF
+Only one set of wildcards (e.g. '*' or '*/*/*') is supported: branches/*/t/*
+
+EOF
+ "
test_expect_success 'test disallow multiple globs' '
git config --add svn-remote.three.url "$svnrepo" &&
diff --git a/t/t9110-git-svn-use-svm-props.sh b/t/t9110-git-svn-use-svm-props.sh
index a06e4c5b8e..29fbdfdd3f 100755
--- a/t/t9110-git-svn-use-svm-props.sh
+++ b/t/t9110-git-svn-use-svm-props.sh
@@ -51,7 +51,7 @@ test_expect_success 'verify metadata for /dir' "
test_expect_success 'find commit based on SVN revision number' "
git svn find-rev r12 |
- grep `git rev-parse HEAD`
+ grep $(git rev-parse HEAD)
"
test_expect_success 'empty rebase' "
diff --git a/t/t9114-git-svn-dcommit-merge.sh b/t/t9114-git-svn-dcommit-merge.sh
index fb41876677..a3d388228a 100755
--- a/t/t9114-git-svn-dcommit-merge.sh
+++ b/t/t9114-git-svn-dcommit-merge.sh
@@ -68,8 +68,8 @@ test_expect_success 'setup git mirror and merge' '
test_debug 'gitk --all & sleep 1'
test_expect_success 'verify pre-merge ancestry' "
- test x\`git rev-parse --verify refs/heads/svn^2\` = \
- x\`git rev-parse --verify refs/heads/merge\` &&
+ test x\$(git rev-parse --verify refs/heads/svn^2) = \
+ x\$(git rev-parse --verify refs/heads/merge) &&
git cat-file commit refs/heads/svn^ | grep '^friend$'
"
@@ -80,10 +80,10 @@ test_expect_success 'git svn dcommit merges' "
test_debug 'gitk --all & sleep 1'
test_expect_success 'verify post-merge ancestry' "
- test x\`git rev-parse --verify refs/heads/svn\` = \
- x\`git rev-parse --verify refs/remotes/origin/trunk \` &&
- test x\`git rev-parse --verify refs/heads/svn^2\` = \
- x\`git rev-parse --verify refs/heads/merge\` &&
+ test x\$(git rev-parse --verify refs/heads/svn) = \
+ x\$(git rev-parse --verify refs/remotes/origin/trunk) &&
+ test x\$(git rev-parse --verify refs/heads/svn^2) = \
+ x\$(git rev-parse --verify refs/heads/merge) &&
git cat-file commit refs/heads/svn^ | grep '^friend$'
"
diff --git a/t/t9115-git-svn-dcommit-funky-renames.sh b/t/t9115-git-svn-dcommit-funky-renames.sh
index 6a48e40429..0990f8d235 100755
--- a/t/t9115-git-svn-dcommit-funky-renames.sh
+++ b/t/t9115-git-svn-dcommit-funky-renames.sh
@@ -77,11 +77,47 @@ test_expect_success 'make a commit to test rebase' '
'
test_expect_success 'git svn rebase works inside a fresh-cloned repository' '
- cd test-rebase &&
+ (
+ cd test-rebase &&
git svn rebase &&
test -e test-rebase-main &&
test -e test-rebase
- '
+ )'
+
+# Without this, LC_ALL=C as set in test-lib.sh, and Cygwin converts
+# non-ASCII characters in filenames unexpectedly, and causes errors.
+# https://cygwin.com/cygwin-ug-net/using-specialnames.html#pathnames-specialchars
+# > Some characters are disallowed in filenames on Windows filesystems. ...
+# ...
+# > ... All of the above characters, except for the backslash, are converted
+# > to special UNICODE characters in the range 0xf000 to 0xf0ff (the
+# > "Private use area") when creating or accessing files.
+prepare_a_utf8_locale
+test_expect_success UTF8 'svn.pathnameencoding=cp932 new file on dcommit' '
+ LC_ALL=$a_utf8_locale &&
+ export LC_ALL &&
+ neq=$(printf "\201\202") &&
+ git config svn.pathnameencoding cp932 &&
+ echo neq >"$neq" &&
+ git add "$neq" &&
+ git commit -m "neq" &&
+ git svn dcommit
+'
+
+# See the comment on the above test for setting of LC_ALL.
+test_expect_success 'svn.pathnameencoding=cp932 rename on dcommit' '
+ LC_ALL=$a_utf8_locale &&
+ export LC_ALL &&
+ inf=$(printf "\201\207") &&
+ git config svn.pathnameencoding cp932 &&
+ echo inf >"$inf" &&
+ git add "$inf" &&
+ git commit -m "inf" &&
+ git svn dcommit &&
+ git mv "$inf" inf &&
+ git commit -m "inf rename" &&
+ git svn dcommit
+'
stop_httpd
diff --git a/t/t9118-git-svn-funky-branch-names.sh b/t/t9118-git-svn-funky-branch-names.sh
index ed4d1369cc..ecb1fed147 100755
--- a/t/t9118-git-svn-funky-branch-names.sh
+++ b/t/t9118-git-svn-funky-branch-names.sh
@@ -23,8 +23,11 @@ test_expect_success 'setup svnrepo' '
"$svnrepo/pr ject/branches/$scary_uri" &&
svn_cmd cp -m "leading dot" "$svnrepo/pr ject/trunk" \
"$svnrepo/pr ject/branches/.leading_dot" &&
- svn_cmd cp -m "trailing dot" "$svnrepo/pr ject/trunk" \
- "$svnrepo/pr ject/branches/trailing_dot." &&
+ if test_have_prereq !MINGW
+ then
+ svn_cmd cp -m "trailing dot" "$svnrepo/pr ject/trunk" \
+ "$svnrepo/pr ject/branches/trailing_dot."
+ fi &&
svn_cmd cp -m "trailing .lock" "$svnrepo/pr ject/trunk" \
"$svnrepo/pr ject/branches/trailing_dotlock.lock" &&
svn_cmd cp -m "reflog" "$svnrepo/pr ject/trunk" \
@@ -35,7 +38,7 @@ test_expect_success 'setup svnrepo' '
# SVN 1.7 will truncate "not-a%40{0]" to just "not-a".
# Look at what SVN wound up naming the branch and use that.
# Be sure to escape the @ if it shows up.
-non_reflog=`svn_cmd ls "$svnrepo/pr ject/branches" | grep not-a | sed 's/\///' | sed 's/@/%40/'`
+non_reflog=$(svn_cmd ls "$svnrepo/pr ject/branches" | grep not-a | sed 's/\///' | sed 's/@/%40/')
test_expect_success 'test clone with funky branch names' '
git svn clone -s "$svnrepo/pr ject" project &&
@@ -45,7 +48,10 @@ test_expect_success 'test clone with funky branch names' '
git rev-parse "refs/remotes/origin/more%20fun%20plugin!" &&
git rev-parse "refs/remotes/origin/$scary_ref" &&
git rev-parse "refs/remotes/origin/%2Eleading_dot" &&
- git rev-parse "refs/remotes/origin/trailing_dot%2E" &&
+ if test_have_prereq !MINGW
+ then
+ git rev-parse "refs/remotes/origin/trailing_dot%2E"
+ fi &&
git rev-parse "refs/remotes/origin/trailing_dotlock%2Elock" &&
git rev-parse "refs/remotes/origin/$non_reflog"
)
diff --git a/t/t9119-git-svn-info.sh b/t/t9119-git-svn-info.sh
index f16f3234a1..88241baee3 100755
--- a/t/t9119-git-svn-info.sh
+++ b/t/t9119-git-svn-info.sh
@@ -8,7 +8,7 @@ test_description='git svn info'
# Tested with: svn, version 1.4.4 (r25188)
# Tested with: svn, version 1.6.[12345689]
-v=`svn_cmd --version | sed -n -e 's/^svn, version \(1\.[0-9]*\.[0-9]*\).*$/\1/p'`
+v=$(svn_cmd --version | sed -n -e 's/^svn, version \(1\.[0-9]*\.[0-9]*\).*$/\1/p')
case $v in
1.[456].*)
;;
diff --git a/t/t9124-git-svn-dcommit-auto-props.sh b/t/t9124-git-svn-dcommit-auto-props.sh
index aa841e1299..9f7231d5b7 100755
--- a/t/t9124-git-svn-dcommit-auto-props.sh
+++ b/t/t9124-git-svn-dcommit-auto-props.sh
@@ -34,8 +34,7 @@ test_expect_success 'enable auto-props config' '
'
test_expect_success 'add files matching auto-props' '
- echo "#!$SHELL_PATH" >exec1.sh &&
- chmod +x exec1.sh &&
+ write_script exec1.sh </dev/null &&
echo "hello" >hello.txt &&
echo bar >bar &&
git add exec1.sh hello.txt bar &&
@@ -48,8 +47,7 @@ test_expect_success 'disable auto-props config' '
'
test_expect_success 'add files matching disabled auto-props' '
- echo "#$SHELL_PATH" >exec2.sh &&
- chmod +x exec2.sh &&
+ write_script exec2.sh </dev/null &&
echo "world" >world.txt &&
echo zot >zot &&
git add exec2.sh world.txt zot &&
@@ -65,7 +63,10 @@ test_expect_success 'check resulting svn repository' '
cd svnrepo &&
# Check properties from first commit.
- test "x$(svn_cmd propget svn:executable exec1.sh)" = "x*" &&
+ if test_have_prereq POSIXPERM
+ then
+ test "x$(svn_cmd propget svn:executable exec1.sh)" = "x*"
+ fi &&
test "x$(svn_cmd propget svn:mime-type exec1.sh)" = \
"xapplication/x-shellscript" &&
test "x$(svn_cmd propget svn:mime-type hello.txt)" = "xtext/plain" &&
@@ -73,7 +74,10 @@ test_expect_success 'check resulting svn repository' '
test "x$(svn_cmd propget svn:mime-type bar)" = "x" &&
# Check properties from second commit.
- test "x$(svn_cmd propget svn:executable exec2.sh)" = "x*" &&
+ if test_have_prereq POSIXPERM
+ then
+ test "x$(svn_cmd propget svn:executable exec2.sh)" = "x*"
+ fi &&
test "x$(svn_cmd propget svn:mime-type exec2.sh)" = "x" &&
test "x$(svn_cmd propget svn:mime-type world.txt)" = "x" &&
test "x$(svn_cmd propget svn:eol-style world.txt)" = "x" &&
diff --git a/t/t9129-git-svn-i18n-commitencoding.sh b/t/t9129-git-svn-i18n-commitencoding.sh
index 8cfdfe790f..8dbd6476fa 100755
--- a/t/t9129-git-svn-i18n-commitencoding.sh
+++ b/t/t9129-git-svn-i18n-commitencoding.sh
@@ -7,29 +7,19 @@ test_description='git svn honors i18n.commitEncoding in config'
. ./lib-git-svn.sh
compare_git_head_with () {
- nr=`wc -l < "$1"`
+ nr=$(wc -l < "$1")
a=7
b=$(($a + $nr - 1))
git cat-file commit HEAD | sed -ne "$a,${b}p" >current &&
test_cmp current "$1"
}
-a_utf8_locale=$(locale -a | sed -n '/\.[uU][tT][fF]-*8$/{
- p
- q
-}')
-
-if test -n "$a_utf8_locale"
-then
- test_set_prereq UTF8
-else
- say "# UTF-8 locale not available, some tests are skipped"
-fi
+prepare_a_utf8_locale
compare_svn_head_with () {
# extract just the log message and strip out committer info.
# don't use --limit here since svn 1.1.x doesn't have it,
- LC_ALL="$a_utf8_locale" svn log `git svn info --url` | perl -w -e '
+ LC_ALL="$a_utf8_locale" svn log $(git svn info --url) | perl -w -e '
use bytes;
$/ = ("-"x72) . "\n";
my @x = <STDIN>;
diff --git a/t/t9130-git-svn-authors-file.sh b/t/t9130-git-svn-authors-file.sh
index c44de267a1..41264818cc 100755
--- a/t/t9130-git-svn-authors-file.sh
+++ b/t/t9130-git-svn-authors-file.sh
@@ -26,7 +26,7 @@ test_expect_success 'start import with incomplete authors file' '
test_expect_success 'imported 2 revisions successfully' '
(
cd x
- test "`git rev-list refs/remotes/git-svn | wc -l`" -eq 2 &&
+ test "$(git rev-list refs/remotes/git-svn | wc -l)" -eq 2 &&
git rev-list -1 --pretty=raw refs/remotes/git-svn | \
grep "^author BBBBBBB BBBBBBB <bb@example\.com> " &&
git rev-list -1 --pretty=raw refs/remotes/git-svn~1 | \
@@ -43,7 +43,7 @@ test_expect_success 'continues to import once authors have been added' '
(
cd x
git svn fetch --authors-file=../svn-authors &&
- test "`git rev-list refs/remotes/git-svn | wc -l`" -eq 4 &&
+ test "$(git rev-list refs/remotes/git-svn | wc -l)" -eq 4 &&
git rev-list -1 --pretty=raw refs/remotes/git-svn | \
grep "^author DDDDDDD DDDDDDD <dd@example\.com> " &&
git rev-list -1 --pretty=raw refs/remotes/git-svn~1 | \
@@ -73,8 +73,8 @@ tmp_config_get () {
test_expect_success 'failure happened without negative side effects' '
(
cd aa-work &&
- test 6 -eq "`tmp_config_get svn-remote.svn.branches-maxRev`" &&
- test 6 -eq "`tmp_config_get svn-remote.svn.tags-maxRev`"
+ test 6 -eq "$(tmp_config_get svn-remote.svn.branches-maxRev)" &&
+ test 6 -eq "$(tmp_config_get svn-remote.svn.tags-maxRev)"
)
'
@@ -86,12 +86,12 @@ test_expect_success 'fetch continues after authors-file is fixed' '
(
cd aa-work &&
git svn fetch --authors-file=../svn-authors &&
- test 8 -eq "`tmp_config_get svn-remote.svn.branches-maxRev`" &&
- test 8 -eq "`tmp_config_get svn-remote.svn.tags-maxRev`"
+ test 8 -eq "$(tmp_config_get svn-remote.svn.branches-maxRev)" &&
+ test 8 -eq "$(tmp_config_get svn-remote.svn.tags-maxRev)"
)
'
-test_expect_success 'fresh clone with svn.authors-file in config' '
+test_expect_success !MINGW 'fresh clone with svn.authors-file in config' '
(
rm -r "$GIT_DIR" &&
test x = x"$(git config svn.authorsfile)" &&
diff --git a/t/t9132-git-svn-broken-symlink.sh b/t/t9132-git-svn-broken-symlink.sh
index 6c4c90b036..aeceffaf7b 100755
--- a/t/t9132-git-svn-broken-symlink.sh
+++ b/t/t9132-git-svn-broken-symlink.sh
@@ -87,7 +87,7 @@ test_expect_success 'clone using git svn' 'git svn clone -r1 "$svnrepo" x'
test_expect_success SYMLINKS '"bar" is a symlink that points to "asdf"' '
test -L x/bar &&
- (cd x && test xasdf = x"`git cat-file blob HEAD:bar`")
+ (cd x && test xasdf = x"$(git cat-file blob HEAD:bar)")
'
test_expect_success 'get "bar" => symlink fix from svn' '
@@ -96,7 +96,7 @@ test_expect_success 'get "bar" => symlink fix from svn' '
test_expect_success SYMLINKS '"bar" remains a proper symlink' '
test -L x/bar &&
- (cd x && test xdoink = x"`git cat-file blob HEAD:bar`")
+ (cd x && test xdoink = x"$(git cat-file blob HEAD:bar)")
'
test_done
diff --git a/t/t9137-git-svn-dcommit-clobber-series.sh b/t/t9137-git-svn-dcommit-clobber-series.sh
index d60da63f7a..5fa07a369f 100755
--- a/t/t9137-git-svn-dcommit-clobber-series.sh
+++ b/t/t9137-git-svn-dcommit-clobber-series.sh
@@ -16,15 +16,15 @@ test_expect_success 'initialize repo' '
'
test_expect_success '(supposedly) non-conflicting change from SVN' '
- test x"`sed -n -e 58p < file`" = x58 &&
- test x"`sed -n -e 61p < file`" = x61 &&
+ test x"$(sed -n -e 58p < file)" = x58 &&
+ test x"$(sed -n -e 61p < file)" = x61 &&
svn_cmd co "$svnrepo" tmp &&
(cd tmp &&
perl -i.bak -p -e "s/^58$/5588/" file &&
perl -i.bak -p -e "s/^61$/6611/" file &&
poke file &&
- test x"`sed -n -e 58p < file`" = x5588 &&
- test x"`sed -n -e 61p < file`" = x6611 &&
+ test x"$(sed -n -e 58p < file)" = x5588 &&
+ test x"$(sed -n -e 61p < file)" = x6611 &&
svn_cmd commit -m "58 => 5588, 61 => 6611"
)
'
@@ -38,20 +38,20 @@ test_expect_success 'some unrelated changes to git' "
"
test_expect_success 'change file but in unrelated area' "
- test x\"\`sed -n -e 4p < file\`\" = x4 &&
- test x\"\`sed -n -e 7p < file\`\" = x7 &&
+ test x\"\$(sed -n -e 4p < file)\" = x4 &&
+ test x\"\$(sed -n -e 7p < file)\" = x7 &&
perl -i.bak -p -e 's/^4\$/4444/' file &&
perl -i.bak -p -e 's/^7\$/7777/' file &&
- test x\"\`sed -n -e 4p < file\`\" = x4444 &&
- test x\"\`sed -n -e 7p < file\`\" = x7777 &&
+ test x\"\$(sed -n -e 4p < file)\" = x4444 &&
+ test x\"\$(sed -n -e 7p < file)\" = x7777 &&
git commit -m '4 => 4444, 7 => 7777' file &&
git svn dcommit &&
svn_cmd up tmp &&
cd tmp &&
- test x\"\`sed -n -e 4p < file\`\" = x4444 &&
- test x\"\`sed -n -e 7p < file\`\" = x7777 &&
- test x\"\`sed -n -e 58p < file\`\" = x5588 &&
- test x\"\`sed -n -e 61p < file\`\" = x6611
+ test x\"\$(sed -n -e 4p < file)\" = x4444 &&
+ test x\"\$(sed -n -e 7p < file)\" = x7777 &&
+ test x\"\$(sed -n -e 58p < file)\" = x5588 &&
+ test x\"\$(sed -n -e 61p < file)\" = x6611
"
test_expect_success 'attempt to dcommit with a dirty index' '
diff --git a/t/t9138-git-svn-authors-prog.sh b/t/t9138-git-svn-authors-prog.sh
index 2937f4c265..7d7e9d46bc 100755
--- a/t/t9138-git-svn-authors-prog.sh
+++ b/t/t9138-git-svn-authors-prog.sh
@@ -37,7 +37,7 @@ test_expect_success 'import authors with prog and file' '
test_expect_success 'imported 6 revisions successfully' '
(
cd x
- test "`git rev-list refs/remotes/git-svn | wc -l`" -eq 6
+ test "$(git rev-list refs/remotes/git-svn | wc -l)" -eq 6
)
'
diff --git a/t/t9145-git-svn-master-branch.sh b/t/t9145-git-svn-master-branch.sh
index 6559137493..3bbf341f6a 100755
--- a/t/t9145-git-svn-master-branch.sh
+++ b/t/t9145-git-svn-master-branch.sh
@@ -17,8 +17,8 @@ test_expect_success 'git svn clone --stdlayout sets up trunk as master' '
git svn clone -s "$svnrepo" g &&
(
cd g &&
- test x`git rev-parse --verify refs/remotes/origin/trunk^0` = \
- x`git rev-parse --verify refs/heads/master^0`
+ test x$(git rev-parse --verify refs/remotes/origin/trunk^0) = \
+ x$(git rev-parse --verify refs/heads/master^0)
)
'
diff --git a/t/t9150-svk-mergetickets.sh b/t/t9150-svk-mergetickets.sh
index 24c2421bfc..1bb676bede 100755
--- a/t/t9150-svk-mergetickets.sh
+++ b/t/t9150-svk-mergetickets.sh
@@ -19,7 +19,7 @@ test_expect_success 'load svk depot' "
uuid=b48289b2-9c08-4d72-af37-0358a40b9c15
test_expect_success 'svk merges were represented coming in' "
- [ `git cat-file commit HEAD | grep parent | wc -l` -eq 2 ]
+ [ $(git cat-file commit HEAD | grep parent | wc -l) -eq 2 ]
"
test_done
diff --git a/t/t9168-git-svn-partially-globbed-names.sh b/t/t9168-git-svn-partially-globbed-names.sh
new file mode 100755
index 0000000000..8b22f2272c
--- /dev/null
+++ b/t/t9168-git-svn-partially-globbed-names.sh
@@ -0,0 +1,223 @@
+#!/bin/sh
+test_description='git svn globbing refspecs with prefixed globs'
+. ./lib-git-svn.sh
+
+test_expect_success 'prepare test refspec prefixed globbing' '
+ cat >expect.end <<EOF
+the end
+hi
+start a new branch
+initial
+EOF
+ '
+
+test_expect_success 'test refspec prefixed globbing' '
+ mkdir -p trunk/src/a trunk/src/b trunk/doc &&
+ echo "hello world" >trunk/src/a/readme &&
+ echo "goodbye world" >trunk/src/b/readme &&
+ svn_cmd import -m "initial" trunk "$svnrepo"/trunk &&
+ svn_cmd co "$svnrepo" tmp &&
+ (
+ cd tmp &&
+ mkdir branches tags &&
+ svn_cmd add branches tags &&
+ svn_cmd cp trunk branches/b_start &&
+ svn_cmd commit -m "start a new branch" &&
+ svn_cmd up &&
+ echo "hi" >>branches/b_start/src/b/readme &&
+ poke branches/b_start/src/b/readme &&
+ echo "hey" >>branches/b_start/src/a/readme &&
+ poke branches/b_start/src/a/readme &&
+ svn_cmd commit -m "hi" &&
+ svn_cmd up &&
+ svn_cmd cp branches/b_start tags/t_end &&
+ echo "bye" >>tags/t_end/src/b/readme &&
+ poke tags/t_end/src/b/readme &&
+ echo "aye" >>tags/t_end/src/a/readme &&
+ poke tags/t_end/src/a/readme &&
+ svn_cmd commit -m "the end" &&
+ echo "byebye" >>tags/t_end/src/b/readme &&
+ poke tags/t_end/src/b/readme &&
+ svn_cmd commit -m "nothing to see here"
+ ) &&
+ git config --add svn-remote.svn.url "$svnrepo" &&
+ git config --add svn-remote.svn.fetch \
+ "trunk/src/a:refs/remotes/trunk" &&
+ git config --add svn-remote.svn.branches \
+ "branches/b_*/src/a:refs/remotes/branches/b_*" &&
+ git config --add svn-remote.svn.tags\
+ "tags/t_*/src/a:refs/remotes/tags/t_*" &&
+ git svn multi-fetch &&
+ git log --pretty=oneline refs/remotes/tags/t_end | \
+ sed -e "s/^.\{41\}//" >output.end &&
+ test_cmp expect.end output.end &&
+ test "$(git rev-parse refs/remotes/tags/t_end~1)" = \
+ "$(git rev-parse refs/remotes/branches/b_start)" &&
+ test "$(git rev-parse refs/remotes/branches/b_start~2)" = \
+ "$(git rev-parse refs/remotes/trunk)" &&
+ test_must_fail git rev-parse refs/remotes/tags/t_end@3
+ '
+
+test_expect_success 'prepare test left-hand-side only prefixed globbing' '
+ echo try to try >expect.two &&
+ echo nothing to see here >>expect.two &&
+ cat expect.end >>expect.two
+ '
+
+test_expect_success 'test left-hand-side only prefixed globbing' '
+ git config --add svn-remote.two.url "$svnrepo" &&
+ git config --add svn-remote.two.fetch trunk:refs/remotes/two/trunk &&
+ git config --add svn-remote.two.branches \
+ "branches/b_*:refs/remotes/two/branches/*" &&
+ git config --add svn-remote.two.tags \
+ "tags/t_*:refs/remotes/two/tags/*" &&
+ (
+ cd tmp &&
+ echo "try try" >>tags/t_end/src/b/readme &&
+ poke tags/t_end/src/b/readme &&
+ svn_cmd commit -m "try to try"
+ ) &&
+ git svn fetch two &&
+ test $(git rev-list refs/remotes/two/tags/t_end | wc -l) -eq 6 &&
+ test $(git rev-list refs/remotes/two/branches/b_start | wc -l) -eq 3 &&
+ test $(git rev-parse refs/remotes/two/branches/b_start~2) = \
+ $(git rev-parse refs/remotes/two/trunk) &&
+ test $(git rev-parse refs/remotes/two/tags/t_end~3) = \
+ $(git rev-parse refs/remotes/two/branches/b_start) &&
+ git log --pretty=oneline refs/remotes/two/tags/t_end | \
+ sed -e "s/^.\{41\}//" >output.two &&
+ test_cmp expect.two output.two
+ '
+
+test_expect_success 'prepare test prefixed globs match just prefix' '
+ cat >expect.three <<EOF
+Tag commit to t_
+Branch commit to b_
+initial
+EOF
+ '
+
+test_expect_success 'test prefixed globs match just prefix' '
+ git config --add svn-remote.three.url "$svnrepo" &&
+ git config --add svn-remote.three.fetch \
+ trunk:refs/remotes/three/trunk &&
+ git config --add svn-remote.three.branches \
+ "branches/b_*:refs/remotes/three/branches/*" &&
+ git config --add svn-remote.three.tags \
+ "tags/t_*:refs/remotes/three/tags/*" &&
+ (
+ cd tmp &&
+ svn_cmd cp trunk branches/b_ &&
+ echo "Branch commit to b_" >>branches/b_/src/a/readme &&
+ poke branches/b_/src/a/readme &&
+ svn_cmd commit -m "Branch commit to b_" &&
+ svn_cmd up && svn_cmd cp branches/b_ tags/t_ &&
+ echo "Tag commit to t_" >>tags/t_/src/a/readme &&
+ poke tags/t_/src/a/readme &&
+ svn_cmd commit -m "Tag commit to t_" &&
+ svn_cmd up
+ ) &&
+ git svn fetch three &&
+ test $(git rev-list refs/remotes/three/branches/b_ | wc -l) -eq 2 &&
+ test $(git rev-list refs/remotes/three/tags/t_ | wc -l) -eq 3 &&
+ test $(git rev-parse refs/remotes/three/branches/b_~1) = \
+ $(git rev-parse refs/remotes/three/trunk) &&
+ test $(git rev-parse refs/remotes/three/tags/t_~1) = \
+ $(git rev-parse refs/remotes/three/branches/b_) &&
+ git log --pretty=oneline refs/remotes/three/tags/t_ | \
+ sed -e "s/^.\{41\}//" >output.three &&
+ test_cmp expect.three output.three
+ '
+
+test_expect_success 'prepare test disallow prefixed multi-globs' "
+cat >expect.four <<EOF
+Only one set of wildcards (e.g. '*' or '*/*/*') is supported: branches/b_*/t/*
+
+EOF
+ "
+
+test_expect_success 'test disallow prefixed multi-globs' '
+ git config --add svn-remote.four.url "$svnrepo" &&
+ git config --add svn-remote.four.fetch \
+ trunk:refs/remotes/four/trunk &&
+ git config --add svn-remote.four.branches \
+ "branches/b_*/t/*:refs/remotes/four/branches/*" &&
+ git config --add svn-remote.four.tags \
+ "tags/t_*/*:refs/remotes/four/tags/*" &&
+ (
+ cd tmp &&
+ echo "try try" >>tags/t_end/src/b/readme &&
+ poke tags/t_end/src/b/readme &&
+ svn_cmd commit -m "try to try"
+ ) &&
+ test_must_fail git svn fetch four 2>stderr.four &&
+ test_cmp expect.four stderr.four &&
+ git config --unset svn-remote.four.branches &&
+ git config --unset svn-remote.four.tags
+ '
+
+test_expect_success 'prepare test globbing in the middle of the word' '
+ cat >expect.five <<EOF
+Tag commit to fghij
+Branch commit to abcde
+initial
+EOF
+ '
+
+test_expect_success 'test globbing in the middle of the word' '
+ git config --add svn-remote.five.url "$svnrepo" &&
+ git config --add svn-remote.five.fetch \
+ trunk:refs/remotes/five/trunk &&
+ git config --add svn-remote.five.branches \
+ "branches/a*e:refs/remotes/five/branches/*" &&
+ git config --add svn-remote.five.tags \
+ "tags/f*j:refs/remotes/five/tags/*" &&
+ (
+ cd tmp &&
+ svn_cmd cp trunk branches/abcde &&
+ echo "Branch commit to abcde" >>branches/abcde/src/a/readme &&
+ poke branches/b_/src/a/readme &&
+ svn_cmd commit -m "Branch commit to abcde" &&
+ svn_cmd up &&
+ svn_cmd cp branches/abcde tags/fghij &&
+ echo "Tag commit to fghij" >>tags/fghij/src/a/readme &&
+ poke tags/fghij/src/a/readme &&
+ svn_cmd commit -m "Tag commit to fghij" &&
+ svn_cmd up
+ ) &&
+ git svn fetch five &&
+ test $(git rev-list refs/remotes/five/branches/abcde | wc -l) -eq 2 &&
+ test $(git rev-list refs/remotes/five/tags/fghij | wc -l) -eq 3 &&
+ test $(git rev-parse refs/remotes/five/branches/abcde~1) = \
+ $(git rev-parse refs/remotes/five/trunk) &&
+ test $(git rev-parse refs/remotes/five/tags/fghij~1) = \
+ $(git rev-parse refs/remotes/five/branches/abcde) &&
+ git log --pretty=oneline refs/remotes/five/tags/fghij | \
+ sed -e "s/^.\{41\}//" >output.five &&
+ test_cmp expect.five output.five
+ '
+
+test_expect_success 'prepare test disallow multiple asterisks in one word' "
+ echo \"Only one '*' is allowed in a pattern: 'a*c*e'\" >expect.six &&
+ echo \"\" >>expect.six
+ "
+
+test_expect_success 'test disallow multiple asterisks in one word' '
+ git config --add svn-remote.six.url "$svnrepo" &&
+ git config --add svn-remote.six.fetch \
+ trunk:refs/remotes/six/trunk &&
+ git config --add svn-remote.six.branches \
+ "branches/a*c*e:refs/remotes/six/branches/*" &&
+ git config --add svn-remote.six.tags \
+ "tags/f*h*j:refs/remotes/six/tags/*" &&
+ (
+ cd tmp &&
+ echo "try try" >>tags/fghij/src/b/readme &&
+ poke tags/fghij/src/b/readme &&
+ svn_cmd commit -m "try to try"
+ ) &&
+ test_must_fail git svn fetch six 2>stderr.six &&
+ test_cmp expect.six stderr.six
+ '
+
+test_done
diff --git a/t/t9200-git-cvsexportcommit.sh b/t/t9200-git-cvsexportcommit.sh
index 7117719830..bb879a527d 100755
--- a/t/t9200-git-cvsexportcommit.sh
+++ b/t/t9200-git-cvsexportcommit.sh
@@ -197,7 +197,7 @@ if p="Å/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/å/ä/ö" &&
then
# This test contains UTF-8 characters
-test_expect_success \
+test_expect_success !MINGW \
'File with non-ascii file name' \
'mkdir -p Å/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/å/ä/ö &&
echo Foo >Å/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/å/ä/ö/gårdetsågårdet.txt &&
diff --git a/t/t9300-fast-import.sh b/t/t9300-fast-import.sh
index 14a938402e..4c5f3c9d41 100755
--- a/t/t9300-fast-import.sh
+++ b/t/t9300-fast-import.sh
@@ -171,10 +171,10 @@ test_expect_success 'A: verify tag/series-A-blob' '
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`
+ :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)
EOF
test_cmp expect marks.out
'
@@ -264,8 +264,8 @@ test_expect_success 'A: verify diff' '
EOF
git diff-tree -M -r master verify--import-marks >actual &&
compare_diff_raw expect actual &&
- test `git rev-parse --verify master:file2` \
- = `git rev-parse --verify verify--import-marks:copy-of-file2`
+ test $(git rev-parse --verify master:file2) \
+ = $(git rev-parse --verify verify--import-marks:copy-of-file2)
'
test_expect_success 'A: export marks with large values' '
@@ -364,7 +364,7 @@ test_expect_success 'B: accept branch name "TEMP_TAG"' '
git prune" &&
git fast-import <input &&
test -f .git/TEMP_TAG &&
- test `git rev-parse master` = `git rev-parse TEMP_TAG^`
+ test $(git rev-parse master) = $(git rev-parse TEMP_TAG^)
'
test_expect_success 'B: accept empty committer' '
@@ -473,8 +473,8 @@ test_expect_success 'B: fail on invalid committer (5)' '
###
test_expect_success 'C: incremental import create pack from stdin' '
- newf=`echo hi newf | git hash-object -w --stdin` &&
- oldf=`git rev-parse --verify master:file2` &&
+ newf=$(echo hi newf | git hash-object -w --stdin) &&
+ oldf=$(git rev-parse --verify master:file2) &&
test_tick &&
cat >input <<-INPUT_END &&
commit refs/heads/branch
@@ -499,13 +499,13 @@ test_expect_success 'C: verify pack' '
'
test_expect_success 'C: validate reuse existing blob' '
- test $newf = `git rev-parse --verify branch:file2/newf` &&
- test $oldf = `git rev-parse --verify branch:file2/oldf`
+ test $newf = $(git rev-parse --verify branch:file2/newf) &&
+ test $oldf = $(git rev-parse --verify branch:file2/oldf)
'
test_expect_success 'C: verify commit' '
cat >expect <<-EOF &&
- parent `git rev-parse --verify master^0`
+ parent $(git rev-parse --verify master^0)
author $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
@@ -624,7 +624,7 @@ test_expect_success 'E: verify commit' '
###
test_expect_success 'F: non-fast-forward update skips' '
- old_branch=`git rev-parse --verify branch^0` &&
+ old_branch=$(git rev-parse --verify branch^0) &&
test_tick &&
cat >input <<-INPUT_END &&
commit refs/heads/branch
@@ -642,7 +642,7 @@ test_expect_success 'F: non-fast-forward update skips' '
test_must_fail git fast-import <input &&
# branch must remain unaffected
- test $old_branch = `git rev-parse --verify branch^0`
+ test $old_branch = $(git rev-parse --verify branch^0)
'
test_expect_success 'F: verify pack' '
@@ -651,8 +651,8 @@ test_expect_success 'F: verify pack' '
test_expect_success 'F: verify other commit' '
cat >expect <<-EOF &&
- tree `git rev-parse branch~1^{tree}`
- parent `git rev-parse branch~1`
+ tree $(git rev-parse branch~1^{tree})
+ parent $(git rev-parse branch~1)
author $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
@@ -667,7 +667,7 @@ test_expect_success 'F: verify other commit' '
###
test_expect_success 'G: non-fast-forward update forced' '
- old_branch=`git rev-parse --verify branch^0` &&
+ old_branch=$(git rev-parse --verify branch^0) &&
test_tick &&
cat >input <<-INPUT_END &&
commit refs/heads/branch
@@ -687,8 +687,8 @@ test_expect_success 'G: verify pack' '
'
test_expect_success 'G: branch changed, but logged' '
- test $old_branch != `git rev-parse --verify branch^0` &&
- test $old_branch = `git rev-parse --verify branch@{1}`
+ test $old_branch != $(git rev-parse --verify branch^0) &&
+ test $old_branch = $(git rev-parse --verify branch@{1})
'
###
@@ -763,7 +763,7 @@ test_expect_success 'I: export-pack-edges' '
test_expect_success 'I: verify edge list' '
cat >expect <<-EOF &&
- .git/objects/pack/pack-.pack: `git rev-parse --verify export-boundary`
+ .git/objects/pack/pack-.pack: $(git rev-parse --verify export-boundary)
EOF
sed -e s/pack-.*pack/pack-.pack/ edges.list >actual &&
test_cmp expect actual
@@ -795,8 +795,8 @@ test_expect_success 'J: reset existing branch creates empty commit' '
git fast-import <input
'
test_expect_success 'J: branch has 1 commit, empty tree' '
- test 1 = `git rev-list J | wc -l` &&
- test 0 = `git ls-tree J | wc -l`
+ test 1 = $(git rev-list J | wc -l) &&
+ test 0 = $(git ls-tree J | wc -l)
'
test_expect_success 'J: tag must fail on empty branch' '
@@ -838,8 +838,8 @@ test_expect_success 'K: reinit branch with from' '
git fast-import <input
'
test_expect_success 'K: verify K^1 = branch^1' '
- test `git rev-parse --verify branch^1` \
- = `git rev-parse --verify K^1`
+ test $(git rev-parse --verify branch^1) \
+ = $(git rev-parse --verify K^1)
'
###
@@ -929,7 +929,7 @@ test_expect_success 'L: nested tree copy does not corrupt deltas' '
git ls-tree L2 g/b/ >tmp &&
cat tmp | cut -f 2 >actual &&
test_cmp expect actual &&
- git fsck `git rev-parse L2`
+ git fsck $(git rev-parse L2)
'
###
@@ -1106,7 +1106,7 @@ test_expect_success 'N: copy dirty subdirectory' '
INPUT_END
git fast-import <input &&
- test `git rev-parse N2^{tree}` = `git rev-parse N3^{tree}`
+ test $(git rev-parse N2^{tree}) = $(git rev-parse N3^{tree})
'
test_expect_success 'N: copy directory by id' '
@@ -1503,7 +1503,7 @@ test_expect_success 'O: comments are all skipped' '
INPUT_END
git fast-import <input &&
- test `git rev-parse N3` = `git rev-parse O1`
+ test $(git rev-parse N3) = $(git rev-parse O1)
'
test_expect_success 'O: blank lines not necessary after data commands' '
@@ -1524,7 +1524,7 @@ test_expect_success 'O: blank lines not necessary after data commands' '
INPUT_END
git fast-import <input &&
- test `git rev-parse N3` = `git rev-parse O2`
+ test $(git rev-parse N3) = $(git rev-parse O2)
'
test_expect_success 'O: repack before next test' '
@@ -1570,8 +1570,8 @@ test_expect_success 'O: blank lines not necessary after other commands' '
INPUT_END
git fast-import <input &&
- test 8 = `find .git/objects/pack -type f | wc -l` &&
- test `git rev-parse refs/tags/O3-2nd` = `git rev-parse O3^` &&
+ test 8 = $(find .git/objects/pack -type f | wc -l) &&
+ test $(git rev-parse refs/tags/O3-2nd) = $(git rev-parse O3^) &&
git log --reverse --pretty=oneline O3 | sed s/^.*z// >actual &&
test_cmp expect actual
'
@@ -1631,7 +1631,7 @@ test_expect_success 'P: superproject & submodule mix' '
data <<DATAEND
[submodule "sub"]
path = sub
- url = "`pwd`/sub"
+ url = "$(pwd)/sub"
DATAEND
commit refs/heads/subuse1
@@ -1691,7 +1691,7 @@ test_expect_success 'P: verbatim SHA gitlinks' '
data <<DATAEND
[submodule "sub"]
path = sub
- url = "`pwd`/sub"
+ url = "$(pwd)/sub"
DATAEND
commit refs/heads/subuse2
@@ -1978,7 +1978,7 @@ test_expect_success 'Q: verify first note for third commit' '
test_expect_success 'Q: verify second notes commit' '
cat >expect <<-EOF &&
- parent `git rev-parse --verify refs/notes/foobar~2`
+ parent $(git rev-parse --verify refs/notes/foobar~2)
author $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
@@ -2045,7 +2045,7 @@ test_expect_success 'Q: verify third note for first commit' '
test_expect_success 'Q: verify fourth notes commit' '
cat >expect <<-EOF &&
- parent `git rev-parse --verify refs/notes/foobar^`
+ parent $(git rev-parse --verify refs/notes/foobar^)
author $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
diff --git a/t/t9350-fast-export.sh b/t/t9350-fast-export.sh
index 66c8b0a371..b5149fde6e 100755
--- a/t/t9350-fast-export.sh
+++ b/t/t9350-fast-export.sh
@@ -163,7 +163,7 @@ test_expect_success 'setup submodule' '
git add file &&
git commit -m sub_initial
) &&
- git submodule add "`pwd`/sub" sub &&
+ git submodule add "$(pwd)/sub" sub &&
git commit -m initial &&
test_tick &&
(
@@ -377,7 +377,7 @@ test_expect_success 'full-tree re-shows unmodified files' '
test_expect_success 'set-up a few more tags for tag export tests' '
git checkout -f master &&
- HEAD_TREE=`git show -s --pretty=raw HEAD | grep tree | sed "s/tree //"` &&
+ HEAD_TREE=$(git show -s --pretty=raw HEAD | grep tree | sed "s/tree //") &&
git tag tree_tag -m "tagging a tree" $HEAD_TREE &&
git tag -a tree_tag-obj -m "tagging a tree" $HEAD_TREE &&
git tag tag-obj_tag -m "tagging a tag" tree_tag-obj &&
@@ -422,7 +422,7 @@ test_expect_success 'directory becomes symlink' '
test_expect_success 'fast-export quotes pathnames' '
git init crazy-paths &&
(cd crazy-paths &&
- blob=`echo foo | git hash-object -w --stdin` &&
+ blob=$(echo foo | git hash-object -w --stdin) &&
git update-index --add \
--cacheinfo 100644 $blob "$(printf "path with\\nnewline")" \
--cacheinfo 100644 $blob "path with \"quote\"" \
diff --git a/t/t9400-git-cvsserver-server.sh b/t/t9400-git-cvsserver-server.sh
index 6146c3fec2..d708cbf032 100755
--- a/t/t9400-git-cvsserver-server.sh
+++ b/t/t9400-git-cvsserver-server.sh
@@ -25,11 +25,11 @@ perl -e 'use DBI; use DBD::SQLite' >/dev/null 2>&1 || {
test_done
}
-WORKDIR=$(pwd)
-SERVERDIR=$(pwd)/gitcvs.git
+WORKDIR=$PWD
+SERVERDIR=$PWD/gitcvs.git
git_config="$SERVERDIR/config"
CVSROOT=":fork:$SERVERDIR"
-CVSWORK="$(pwd)/cvswork"
+CVSWORK="$PWD/cvswork"
CVS_SERVER=git-cvsserver
export CVSROOT CVS_SERVER
diff --git a/t/t9401-git-cvsserver-crlf.sh b/t/t9401-git-cvsserver-crlf.sh
index 5a4ed28e49..f324b9f010 100755
--- a/t/t9401-git-cvsserver-crlf.sh
+++ b/t/t9401-git-cvsserver-crlf.sh
@@ -74,11 +74,11 @@ perl -e 'use DBI; use DBD::SQLite' >/dev/null 2>&1 || {
}
unset GIT_DIR GIT_CONFIG
-WORKDIR=$(pwd)
-SERVERDIR=$(pwd)/gitcvs.git
+WORKDIR=$PWD
+SERVERDIR=$PWD/gitcvs.git
git_config="$SERVERDIR/config"
CVSROOT=":fork:$SERVERDIR"
-CVSWORK="$(pwd)/cvswork"
+CVSWORK="$PWD/cvswork"
CVS_SERVER=git-cvsserver
export CVSROOT CVS_SERVER
diff --git a/t/t9402-git-cvsserver-refs.sh b/t/t9402-git-cvsserver-refs.sh
index d00df08731..6d2d3c8739 100755
--- a/t/t9402-git-cvsserver-refs.sh
+++ b/t/t9402-git-cvsserver-refs.sh
@@ -82,11 +82,11 @@ perl -e 'use DBI; use DBD::SQLite' >/dev/null 2>&1 || {
}
unset GIT_DIR GIT_CONFIG
-WORKDIR=$(pwd)
-SERVERDIR=$(pwd)/gitcvs.git
+WORKDIR=$PWD
+SERVERDIR=$PWD/gitcvs.git
git_config="$SERVERDIR/config"
CVSROOT=":fork:$SERVERDIR"
-CVSWORK="$(pwd)/cvswork"
+CVSWORK="$PWD/cvswork"
CVS_SERVER=git-cvsserver
export CVSROOT CVS_SERVER
diff --git a/t/t9501-gitweb-standalone-http-status.sh b/t/t9501-gitweb-standalone-http-status.sh
index d3a5bac754..2a0ffed870 100755
--- a/t/t9501-gitweb-standalone-http-status.sh
+++ b/t/t9501-gitweb-standalone-http-status.sh
@@ -100,14 +100,14 @@ test_expect_success 'snapshots: bad tree-ish id (tagged object)' '
echo object > tag-object &&
git add tag-object &&
test_tick && git commit -m "Object to be tagged" &&
- git tag tagged-object `git hash-object tag-object` &&
+ git tag tagged-object $(git hash-object tag-object) &&
gitweb_run "p=.git;a=snapshot;h=tagged-object;sf=tgz" &&
grep "400 - Object is not a tree-ish" gitweb.output
'
test_debug 'cat gitweb.output'
test_expect_success 'snapshots: good object id' '
- ID=`git rev-parse --verify HEAD` &&
+ ID=$(git rev-parse --verify HEAD) &&
gitweb_run "p=.git;a=snapshot;h=$ID;sf=tgz" &&
grep "Status: 200 OK" gitweb.output
'
@@ -173,7 +173,7 @@ test_expect_success DATE_PARSER 'modification: snapshot if-modified-since (unmod
test_debug 'cat gitweb.headers'
test_expect_success DATE_PARSER 'modification: tree snapshot' '
- ID=`git rev-parse --verify HEAD^{tree}` &&
+ ID=$(git rev-parse --verify HEAD^{tree}) &&
HTTP_IF_MODIFIED_SINCE="Wed, 6 Apr 2005 22:14:13 +0000" &&
export HTTP_IF_MODIFIED_SINCE &&
test_when_finished "unset HTTP_IF_MODIFIED_SINCE" &&
diff --git a/t/t9700/test.pl b/t/t9700/test.pl
index 1140767b50..1b75c91965 100755
--- a/t/t9700/test.pl
+++ b/t/t9700/test.pl
@@ -17,6 +17,12 @@ BEGIN {
use Cwd;
use File::Basename;
+sub adjust_dirsep {
+ my $path = shift;
+ $path =~ s{\\}{/}g;
+ return $path;
+}
+
BEGIN { use_ok('Git') }
# set up
@@ -33,7 +39,7 @@ is($r->config_int("test.int"), 2048, "config_int: integer");
is($r->config_int("test.nonexistent"), undef, "config_int: nonexistent");
ok($r->config_bool("test.booltrue"), "config_bool: true");
ok(!$r->config_bool("test.boolfalse"), "config_bool: false");
-is($r->config_path("test.path"), $r->config("test.pathexpanded"),
+is(adjust_dirsep($r->config_path("test.path")), $r->config("test.pathexpanded"),
"config_path: ~/foo expansion");
is_deeply([$r->config_path("test.pathmulti")], ["foo", "bar"],
"config_path: multiple values");
diff --git a/t/t9827-git-p4-change-filetype.sh b/t/t9827-git-p4-change-filetype.sh
new file mode 100755
index 0000000000..7433998f47
--- /dev/null
+++ b/t/t9827-git-p4-change-filetype.sh
@@ -0,0 +1,66 @@
+#!/bin/sh
+
+test_description='git p4 support for file type change'
+
+. ./lib-git-p4.sh
+
+test_expect_success 'start p4d' '
+ start_p4d
+'
+
+test_expect_success 'create files' '
+ (
+ cd "$cli" &&
+ p4 client -o | sed "/LineEnd/s/:.*/:unix/" | p4 client -i &&
+ cat >file1 <<-EOF &&
+ text without any funny substitution business
+ EOF
+ cat >file2 <<-EOF &&
+ second file whose type will change
+ EOF
+ p4 add file1 file2 &&
+ p4 submit -d "add files"
+ )
+'
+
+test_expect_success SYMLINKS 'change file to symbolic link' '
+ git p4 clone --dest="$git" //depot@all &&
+ test_when_finished cleanup_git &&
+ (
+ cd "$git" &&
+ git config git-p4.skipSubmitEdit true &&
+
+ rm file2 &&
+ ln -s file1 file2 &&
+ git add file2 &&
+ git commit -m "symlink file1 to file2" &&
+ git p4 submit &&
+ p4 filelog -m 1 //depot/file2 >filelog &&
+ grep "(symlink)" filelog
+ )
+'
+
+test_expect_success SYMLINKS 'change symbolic link to file' '
+ git p4 clone --dest="$git" //depot@all &&
+ test_when_finished cleanup_git &&
+ (
+ cd "$git" &&
+ git config git-p4.skipSubmitEdit true &&
+
+ rm file2 &&
+ cat >file2 <<-EOF &&
+ This is another content for the second file.
+ EOF
+ git add file2 &&
+ git commit -m "re-write file2" &&
+ git p4 submit &&
+ p4 filelog -m 1 //depot/file2 >filelog &&
+ grep "(text)" filelog
+ )
+'
+
+test_expect_success 'kill p4d' '
+ kill_p4d
+'
+
+test_done
diff --git a/t/t9901-git-web--browse.sh b/t/t9901-git-web--browse.sh
index b0a6bad8dd..de7152f827 100755
--- a/t/t9901-git-web--browse.sh
+++ b/t/t9901-git-web--browse.sh
@@ -43,7 +43,7 @@ test_expect_success \
echo fake: "$@"
EOF
chmod +x "fake browser" &&
- git config browser.w3m.path "`pwd`/fake browser" &&
+ git config browser.w3m.path "$(pwd)/fake browser" &&
test_web_browse w3m http://example.com/foo
'
diff --git a/t/t9903-bash-prompt.sh b/t/t9903-bash-prompt.sh
index af82049f82..ffbfa0efb8 100755
--- a/t/t9903-bash-prompt.sh
+++ b/t/t9903-bash-prompt.sh
@@ -67,7 +67,7 @@ repo_with_newline='repo
with
newline'
-if mkdir "$repo_with_newline" 2>/dev/null
+if test_have_prereq !MINGW && mkdir "$repo_with_newline" 2>/dev/null
then
test_set_prereq FUNNYNAMES
else
diff --git a/t/test-lib.sh b/t/test-lib.sh
index 51e4a88c33..0b47eb6bb2 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -1000,7 +1000,7 @@ test_i18ngrep () {
test_lazy_prereq PIPE '
# test whether the filesystem supports FIFOs
case $(uname -s) in
- CYGWIN*)
+ CYGWIN*|MINGW*)
false
;;
*)
diff --git a/test-dump-untracked-cache.c b/test-dump-untracked-cache.c
index 25d855d98b..0a1c285246 100644
--- a/test-dump-untracked-cache.c
+++ b/test-dump-untracked-cache.c
@@ -44,6 +44,10 @@ int main(int ac, char **av)
{
struct untracked_cache *uc;
struct strbuf base = STRBUF_INIT;
+
+ /* Hack to avoid modifying the untracked cache when we read it */
+ ignore_untracked_cache_config = 1;
+
setup_git_directory();
if (read_cache() < 0)
die("unable to read index file");
diff --git a/test-fake-ssh.c b/test-fake-ssh.c
new file mode 100644
index 0000000000..980de216e1
--- /dev/null
+++ b/test-fake-ssh.c
@@ -0,0 +1,30 @@
+#include "git-compat-util.h"
+#include "run-command.h"
+#include "strbuf.h"
+
+int main(int argc, char **argv)
+{
+ const char *trash_directory = getenv("TRASH_DIRECTORY");
+ struct strbuf buf = STRBUF_INIT;
+ FILE *f;
+ int i;
+ const char *child_argv[] = { NULL, NULL };
+
+ /* First, print all parameters into $TRASH_DIRECTORY/ssh-output */
+ if (!trash_directory)
+ die("Need a TRASH_DIRECTORY!");
+ strbuf_addf(&buf, "%s/ssh-output", trash_directory);
+ f = fopen(buf.buf, "w");
+ if (!f)
+ die("Could not write to %s", buf.buf);
+ for (i = 0; i < argc; i++)
+ fprintf(f, "%s%s", i > 0 ? " " : "", i > 0 ? argv[i] : "ssh:");
+ fprintf(f, "\n");
+ fclose(f);
+
+ /* Now, evaluate the *last* parameter */
+ if (argc < 2)
+ return 0;
+ child_argv[0] = argv[argc - 1];
+ return run_command_v_opt(child_argv, RUN_USING_SHELL);
+}
diff --git a/test-path-utils.c b/test-path-utils.c
index 0c15f1821f..ba805b374c 100644
--- a/test-path-utils.c
+++ b/test-path-utils.c
@@ -49,7 +49,7 @@ static int test_function(struct test_data *data, char *(*func)(char *input),
if (!data[i].from)
to = func(NULL);
else {
- strcpy(buffer, data[i].from);
+ xsnprintf(buffer, sizeof(buffer), "%s", data[i].from);
to = func(buffer);
}
if (!strcmp(to, data[i].to))
diff --git a/test-run-command.c b/test-run-command.c
index 89c7de2c60..30a64a98dc 100644
--- a/test-run-command.c
+++ b/test-run-command.c
@@ -10,16 +10,53 @@
#include "git-compat-util.h"
#include "run-command.h"
+#include "argv-array.h"
+#include "strbuf.h"
#include <string.h>
#include <errno.h>
+static int number_callbacks;
+static int parallel_next(struct child_process *cp,
+ struct strbuf *err,
+ void *cb,
+ void **task_cb)
+{
+ struct child_process *d = cb;
+ if (number_callbacks >= 4)
+ return 0;
+
+ argv_array_pushv(&cp->args, d->argv);
+ strbuf_addf(err, "preloaded output of a child\n");
+ number_callbacks++;
+ return 1;
+}
+
+static int no_job(struct child_process *cp,
+ struct strbuf *err,
+ void *cb,
+ void **task_cb)
+{
+ strbuf_addf(err, "no further jobs available\n");
+ return 0;
+}
+
+static int task_finished(int result,
+ struct strbuf *err,
+ void *pp_cb,
+ void *pp_task_cb)
+{
+ strbuf_addf(err, "asking for a quick stop\n");
+ return 1;
+}
+
int main(int argc, char **argv)
{
struct child_process proc = CHILD_PROCESS_INIT;
+ int jobs;
if (argc < 3)
return 1;
- proc.argv = (const char **)argv+2;
+ proc.argv = (const char **)argv + 2;
if (!strcmp(argv[1], "start-command-ENOENT")) {
if (start_command(&proc) < 0 && errno == ENOENT)
@@ -30,6 +67,21 @@ int main(int argc, char **argv)
if (!strcmp(argv[1], "run-command"))
exit(run_command(&proc));
+ jobs = atoi(argv[2]);
+ proc.argv = (const char **)argv + 3;
+
+ if (!strcmp(argv[1], "run-command-parallel"))
+ exit(run_processes_parallel(jobs, parallel_next,
+ NULL, NULL, &proc));
+
+ if (!strcmp(argv[1], "run-command-abort"))
+ exit(run_processes_parallel(jobs, parallel_next,
+ NULL, task_finished, &proc));
+
+ if (!strcmp(argv[1], "run-command-no-jobs"))
+ exit(run_processes_parallel(jobs, no_job,
+ NULL, task_finished, &proc));
+
fprintf(stderr, "check usage\n");
return 1;
}
diff --git a/test-sha1-array.c b/test-sha1-array.c
index ddc491eff9..60ea1d5f14 100644
--- a/test-sha1-array.c
+++ b/test-sha1-array.c
@@ -11,7 +11,7 @@ int main(int argc, char **argv)
struct sha1_array array = SHA1_ARRAY_INIT;
struct strbuf line = STRBUF_INIT;
- while (strbuf_getline(&line, stdin, '\n') != EOF) {
+ while (strbuf_getline(&line, stdin) != EOF) {
const char *arg;
unsigned char sha1[20];
diff --git a/test-sha1.sh b/test-sha1.sh
index 0f0bc5d02f..cef4bcc866 100755
--- a/test-sha1.sh
+++ b/test-sha1.sh
@@ -6,13 +6,13 @@ dd if=/dev/zero bs=1048576 count=100 2>/dev/null |
while read expect cnt pfx
do
case "$expect" in '#'*) continue ;; esac
- actual=`
+ actual=$(
{
test -z "$pfx" || echo "$pfx"
dd if=/dev/zero bs=1048576 count=$cnt 2>/dev/null |
perl -pe 'y/\000/g/'
} | ./test-sha1 $cnt
- `
+ )
if test "$expect" = "$actual"
then
echo "OK: $expect $cnt $pfx"
@@ -51,14 +51,14 @@ exit
while read cnt pfx
do
- actual=`
+ actual=$(
{
test -z "$pfx" || echo "$pfx"
dd if=/dev/zero bs=1048576 count=$cnt 2>/dev/null |
perl -pe 'y/\000/g/'
} | sha1sum |
sed -e 's/ .*//'
- `
+ )
echo "$actual $cnt $pfx"
done <<EOF
0
diff --git a/trailer.c b/trailer.c
index 6f3416feba..8e48a5c990 100644
--- a/trailer.c
+++ b/trailer.c
@@ -2,6 +2,7 @@
#include "string-list.h"
#include "run-command.h"
#include "commit.h"
+#include "tempfile.h"
#include "trailer.h"
/*
* Copyright (c) 2013, 2014 Christian Couder <chriscool@tuxfamily.org>
@@ -108,23 +109,23 @@ static char last_non_space_char(const char *s)
return '\0';
}
-static void print_tok_val(const char *tok, const char *val)
+static void print_tok_val(FILE *outfile, const char *tok, const char *val)
{
char c = last_non_space_char(tok);
if (!c)
return;
if (strchr(separators, c))
- printf("%s%s\n", tok, val);
+ fprintf(outfile, "%s%s\n", tok, val);
else
- printf("%s%c %s\n", tok, separators[0], val);
+ fprintf(outfile, "%s%c %s\n", tok, separators[0], val);
}
-static void print_all(struct trailer_item *first, int trim_empty)
+static void print_all(FILE *outfile, struct trailer_item *first, int trim_empty)
{
struct trailer_item *item;
for (item = first; item; item = item->next) {
if (!trim_empty || strlen(item->value) > 0)
- print_tok_val(item->token, item->value);
+ print_tok_val(outfile, item->token, item->value);
}
}
@@ -233,7 +234,7 @@ static const char *apply_command(const char *command, const char *arg)
cp.use_shell = 1;
if (capture_command(&cp, &buf, 1024)) {
- error("running trailer command '%s' failed", cmd.buf);
+ error(_("running trailer command '%s' failed"), cmd.buf);
strbuf_release(&buf);
result = xstrdup("");
} else {
@@ -795,14 +796,15 @@ static int has_blank_line_before(struct strbuf **lines, int start)
return 0;
}
-static void print_lines(struct strbuf **lines, int start, int end)
+static void print_lines(FILE *outfile, struct strbuf **lines, int start, int end)
{
int i;
for (i = start; lines[i] && i < end; i++)
- printf("%s", lines[i]->buf);
+ fprintf(outfile, "%s", lines[i]->buf);
}
-static int process_input_file(struct strbuf **lines,
+static int process_input_file(FILE *outfile,
+ struct strbuf **lines,
struct trailer_item **in_tok_first,
struct trailer_item **in_tok_last)
{
@@ -818,10 +820,10 @@ static int process_input_file(struct strbuf **lines,
trailer_start = find_trailer_start(lines, trailer_end);
/* Print lines before the trailers as is */
- print_lines(lines, 0, trailer_start);
+ print_lines(outfile, lines, 0, trailer_start);
if (!has_blank_line_before(lines, trailer_start - 1))
- printf("\n");
+ fprintf(outfile, "\n");
/* Parse trailer lines */
for (i = trailer_start; i < trailer_end; i++) {
@@ -842,13 +844,45 @@ static void free_all(struct trailer_item **first)
}
}
-void process_trailers(const char *file, int trim_empty, struct string_list *trailers)
+static struct tempfile trailers_tempfile;
+
+static FILE *create_in_place_tempfile(const char *file)
+{
+ struct stat st;
+ struct strbuf template = STRBUF_INIT;
+ const char *tail;
+ FILE *outfile;
+
+ if (stat(file, &st))
+ die_errno(_("could not stat %s"), file);
+ if (!S_ISREG(st.st_mode))
+ die(_("file %s is not a regular file"), file);
+ if (!(st.st_mode & S_IWUSR))
+ die(_("file %s is not writable by user"), file);
+
+ /* Create temporary file in the same directory as the original */
+ tail = strrchr(file, '/');
+ if (tail != NULL)
+ strbuf_add(&template, file, tail - file + 1);
+ strbuf_addstr(&template, "git-interpret-trailers-XXXXXX");
+
+ xmks_tempfile_m(&trailers_tempfile, template.buf, st.st_mode);
+ strbuf_release(&template);
+ outfile = fdopen_tempfile(&trailers_tempfile, "w");
+ if (!outfile)
+ die_errno(_("could not open temporary file"));
+
+ return outfile;
+}
+
+void process_trailers(const char *file, int in_place, int trim_empty, struct string_list *trailers)
{
struct trailer_item *in_tok_first = NULL;
struct trailer_item *in_tok_last = NULL;
struct trailer_item *arg_tok_first;
struct strbuf **lines;
int trailer_end;
+ FILE *outfile = stdout;
/* Default config must be setup first */
git_config(git_trailer_default_config, NULL);
@@ -856,19 +890,26 @@ void process_trailers(const char *file, int trim_empty, struct string_list *trai
lines = read_input_file(file);
+ if (in_place)
+ outfile = create_in_place_tempfile(file);
+
/* Print the lines before the trailers */
- trailer_end = process_input_file(lines, &in_tok_first, &in_tok_last);
+ trailer_end = process_input_file(outfile, lines, &in_tok_first, &in_tok_last);
arg_tok_first = process_command_line_args(trailers);
process_trailers_lists(&in_tok_first, &in_tok_last, &arg_tok_first);
- print_all(in_tok_first, trim_empty);
+ print_all(outfile, in_tok_first, trim_empty);
free_all(&in_tok_first);
/* Print the lines after the trailers as is */
- print_lines(lines, trailer_end, INT_MAX);
+ print_lines(outfile, lines, trailer_end, INT_MAX);
+
+ if (in_place)
+ if (rename_tempfile(&trailers_tempfile, file))
+ die_errno(_("could not rename temporary file to %s"), file);
strbuf_list_free(lines);
}
diff --git a/trailer.h b/trailer.h
index 8eb25d565e..36b40b8176 100644
--- a/trailer.h
+++ b/trailer.h
@@ -1,6 +1,7 @@
#ifndef TRAILER_H
#define TRAILER_H
-void process_trailers(const char *file, int trim_empty, struct string_list *trailers);
+void process_trailers(const char *file, int in_place, int trim_empty,
+ struct string_list *trailers);
#endif /* TRAILER_H */
diff --git a/transport-helper.c b/transport-helper.c
index 0eb3cf01aa..b934183236 100644
--- a/transport-helper.c
+++ b/transport-helper.c
@@ -54,7 +54,7 @@ static int recvline_fh(FILE *helper, struct strbuf *buffer, const char *name)
strbuf_reset(buffer);
if (debug)
fprintf(stderr, "Debug: Remote helper: Waiting...\n");
- if (strbuf_getline(buffer, helper, '\n') == EOF) {
+ if (strbuf_getline(buffer, helper) == EOF) {
if (debug)
fprintf(stderr, "Debug: Remote helper quit.\n");
return 1;
@@ -137,7 +137,8 @@ static struct child_process *get_helper(struct transport *transport)
data->no_disconnect_req = 0;
/*
- * Open the output as FILE* so strbuf_getline() can be used.
+ * Open the output as FILE* so strbuf_getline_*() family of
+ * functions can be used.
* Do this with duped fd because fclose() will close the fd,
* and stuff like taking over will require the fd to remain.
*/
@@ -320,6 +321,21 @@ static void standard_options(struct transport *t)
if (n >= sizeof(buf))
die("impossibly large verbosity value");
set_helper_option(t, "verbosity", buf);
+
+ switch (t->family) {
+ case TRANSPORT_FAMILY_ALL:
+ /*
+ * this is already the default,
+ * do not break old remote helpers by setting "all" here
+ */
+ break;
+ case TRANSPORT_FAMILY_IPV4:
+ set_helper_option(t, "family", "ipv4");
+ break;
+ case TRANSPORT_FAMILY_IPV6:
+ set_helper_option(t, "family", "ipv6");
+ break;
+ }
}
static int release_helper(struct transport *transport)
diff --git a/transport.c b/transport.c
index 988047b12e..095e61f0ad 100644
--- a/transport.c
+++ b/transport.c
@@ -17,133 +17,6 @@
#include "sha1-array.h"
#include "sigchain.h"
-/* rsync support */
-
-/*
- * We copy packed-refs and refs/ into a temporary file, then read the
- * loose refs recursively (sorting whenever possible), and then inserting
- * those packed refs that are not yet in the list (not validating, but
- * assuming that the file is sorted).
- *
- * Appears refactoring this from refs.c is too cumbersome.
- */
-
-static int str_cmp(const void *a, const void *b)
-{
- const char *s1 = a;
- const char *s2 = b;
-
- return strcmp(s1, s2);
-}
-
-/* path->buf + name_offset is expected to point to "refs/" */
-
-static int read_loose_refs(struct strbuf *path, int name_offset,
- struct ref **tail)
-{
- DIR *dir = opendir(path->buf);
- struct dirent *de;
- struct {
- char **entries;
- int nr, alloc;
- } list;
- int i, pathlen;
-
- if (!dir)
- return -1;
-
- memset (&list, 0, sizeof(list));
-
- while ((de = readdir(dir))) {
- if (is_dot_or_dotdot(de->d_name))
- continue;
- ALLOC_GROW(list.entries, list.nr + 1, list.alloc);
- list.entries[list.nr++] = xstrdup(de->d_name);
- }
- closedir(dir);
-
- /* sort the list */
-
- qsort(list.entries, list.nr, sizeof(char *), str_cmp);
-
- pathlen = path->len;
- strbuf_addch(path, '/');
-
- for (i = 0; i < list.nr; i++, strbuf_setlen(path, pathlen + 1)) {
- strbuf_addstr(path, list.entries[i]);
- if (read_loose_refs(path, name_offset, tail)) {
- int fd = open(path->buf, O_RDONLY);
- char buffer[40];
- struct ref *next;
-
- if (fd < 0)
- continue;
- next = alloc_ref(path->buf + name_offset);
- if (read_in_full(fd, buffer, 40) != 40 ||
- get_oid_hex(buffer, &next->old_oid)) {
- close(fd);
- free(next);
- continue;
- }
- close(fd);
- (*tail)->next = next;
- *tail = next;
- }
- }
- strbuf_setlen(path, pathlen);
-
- for (i = 0; i < list.nr; i++)
- free(list.entries[i]);
- free(list.entries);
-
- return 0;
-}
-
-/* insert the packed refs for which no loose refs were found */
-
-static void insert_packed_refs(const char *packed_refs, struct ref **list)
-{
- FILE *f = fopen(packed_refs, "r");
- static char buffer[PATH_MAX];
-
- if (!f)
- return;
-
- for (;;) {
- int cmp = 0; /* assigned before used */
- int len;
-
- if (!fgets(buffer, sizeof(buffer), f)) {
- fclose(f);
- return;
- }
-
- if (!isxdigit(buffer[0]))
- continue;
- len = strlen(buffer);
- if (len && buffer[len - 1] == '\n')
- buffer[--len] = '\0';
- if (len < 41)
- continue;
- while ((*list)->next &&
- (cmp = strcmp(buffer + 41,
- (*list)->next->name)) > 0)
- list = &(*list)->next;
- if (!(*list)->next || cmp < 0) {
- struct ref *next = alloc_ref(buffer + 41);
- buffer[40] = '\0';
- if (get_oid_hex(buffer, &next->old_oid)) {
- warning ("invalid SHA-1: %s", buffer);
- free(next);
- continue;
- }
- next->next = (*list)->next;
- (*list)->next = next;
- list = &(*list)->next;
- }
- }
-}
-
static void set_upstreams(struct transport *transport, struct ref *refs,
int pretend)
{
@@ -192,205 +65,6 @@ static void set_upstreams(struct transport *transport, struct ref *refs,
}
}
-static const char *rsync_url(const char *url)
-{
- if (!starts_with(url, "rsync://"))
- skip_prefix(url, "rsync:", &url);
- return url;
-}
-
-static struct ref *get_refs_via_rsync(struct transport *transport, int for_push)
-{
- struct strbuf buf = STRBUF_INIT, temp_dir = STRBUF_INIT;
- struct ref dummy = {NULL}, *tail = &dummy;
- struct child_process rsync = CHILD_PROCESS_INIT;
- const char *args[5];
- int temp_dir_len;
-
- if (for_push)
- return NULL;
-
- /* copy the refs to the temporary directory */
-
- strbuf_addstr(&temp_dir, git_path("rsync-refs-XXXXXX"));
- if (!mkdtemp(temp_dir.buf))
- die_errno ("Could not make temporary directory");
- temp_dir_len = temp_dir.len;
-
- strbuf_addstr(&buf, rsync_url(transport->url));
- strbuf_addstr(&buf, "/refs");
-
- rsync.argv = args;
- rsync.stdout_to_stderr = 1;
- args[0] = "rsync";
- args[1] = (transport->verbose > 1) ? "-rv" : "-r";
- args[2] = buf.buf;
- args[3] = temp_dir.buf;
- args[4] = NULL;
-
- if (run_command(&rsync))
- die ("Could not run rsync to get refs");
-
- strbuf_reset(&buf);
- strbuf_addstr(&buf, rsync_url(transport->url));
- strbuf_addstr(&buf, "/packed-refs");
-
- args[2] = buf.buf;
-
- if (run_command(&rsync))
- die ("Could not run rsync to get refs");
-
- /* read the copied refs */
-
- strbuf_addstr(&temp_dir, "/refs");
- read_loose_refs(&temp_dir, temp_dir_len + 1, &tail);
- strbuf_setlen(&temp_dir, temp_dir_len);
-
- tail = &dummy;
- strbuf_addstr(&temp_dir, "/packed-refs");
- insert_packed_refs(temp_dir.buf, &tail);
- strbuf_setlen(&temp_dir, temp_dir_len);
-
- if (remove_dir_recursively(&temp_dir, 0))
- warning ("Error removing temporary directory %s.",
- temp_dir.buf);
-
- strbuf_release(&buf);
- strbuf_release(&temp_dir);
-
- return dummy.next;
-}
-
-static int fetch_objs_via_rsync(struct transport *transport,
- int nr_objs, struct ref **to_fetch)
-{
- struct child_process rsync = CHILD_PROCESS_INIT;
-
- rsync.stdout_to_stderr = 1;
- argv_array_push(&rsync.args, "rsync");
- argv_array_push(&rsync.args, (transport->verbose > 1) ? "-rv" : "-r");
- argv_array_push(&rsync.args, "--ignore-existing");
- argv_array_push(&rsync.args, "--exclude");
- argv_array_push(&rsync.args, "info");
- argv_array_pushf(&rsync.args, "%s/objects/", rsync_url(transport->url));
- argv_array_push(&rsync.args, get_object_directory());
-
- /* NEEDSWORK: handle one level of alternates */
- return run_command(&rsync);
-}
-
-static int write_one_ref(const char *name, const struct object_id *oid,
- int flags, void *data)
-{
- struct strbuf *buf = data;
- int len = buf->len;
-
- /* when called via for_each_ref(), flags is non-zero */
- if (flags && !starts_with(name, "refs/heads/") &&
- !starts_with(name, "refs/tags/"))
- return 0;
-
- strbuf_addstr(buf, name);
- if (safe_create_leading_directories(buf->buf) ||
- write_file_gently(buf->buf, "%s", oid_to_hex(oid)))
- return error("problems writing temporary file %s: %s",
- buf->buf, strerror(errno));
- strbuf_setlen(buf, len);
- return 0;
-}
-
-static int write_refs_to_temp_dir(struct strbuf *temp_dir,
- int refspec_nr, const char **refspec)
-{
- int i;
-
- for (i = 0; i < refspec_nr; i++) {
- struct object_id oid;
- char *ref;
-
- if (dwim_ref(refspec[i], strlen(refspec[i]), oid.hash, &ref) != 1)
- return error("Could not get ref %s", refspec[i]);
-
- if (write_one_ref(ref, &oid, 0, temp_dir)) {
- free(ref);
- return -1;
- }
- free(ref);
- }
- return 0;
-}
-
-static int rsync_transport_push(struct transport *transport,
- int refspec_nr, const char **refspec, int flags)
-{
- struct strbuf buf = STRBUF_INIT, temp_dir = STRBUF_INIT;
- int result = 0, i;
- struct child_process rsync = CHILD_PROCESS_INIT;
- const char *args[10];
-
- if (flags & TRANSPORT_PUSH_MIRROR)
- return error("rsync transport does not support mirror mode");
-
- /* first push the objects */
-
- strbuf_addstr(&buf, rsync_url(transport->url));
- strbuf_addch(&buf, '/');
-
- rsync.argv = args;
- rsync.stdout_to_stderr = 1;
- i = 0;
- args[i++] = "rsync";
- args[i++] = "-a";
- if (flags & TRANSPORT_PUSH_DRY_RUN)
- args[i++] = "--dry-run";
- if (transport->verbose > 1)
- args[i++] = "-v";
- args[i++] = "--ignore-existing";
- args[i++] = "--exclude";
- args[i++] = "info";
- args[i++] = get_object_directory();
- args[i++] = buf.buf;
- args[i++] = NULL;
-
- if (run_command(&rsync))
- return error("Could not push objects to %s",
- rsync_url(transport->url));
-
- /* copy the refs to the temporary directory; they could be packed. */
-
- strbuf_addstr(&temp_dir, git_path("rsync-refs-XXXXXX"));
- if (!mkdtemp(temp_dir.buf))
- die_errno ("Could not make temporary directory");
- strbuf_addch(&temp_dir, '/');
-
- if (flags & TRANSPORT_PUSH_ALL) {
- if (for_each_ref(write_one_ref, &temp_dir))
- return -1;
- } else if (write_refs_to_temp_dir(&temp_dir, refspec_nr, refspec))
- return -1;
-
- i = 2;
- if (flags & TRANSPORT_PUSH_DRY_RUN)
- args[i++] = "--dry-run";
- if (!(flags & TRANSPORT_PUSH_FORCE))
- args[i++] = "--ignore-existing";
- args[i++] = temp_dir.buf;
- args[i++] = rsync_url(transport->url);
- args[i++] = NULL;
- if (run_command(&rsync))
- result = error("Could not push to %s",
- rsync_url(transport->url));
-
- if (remove_dir_recursively(&temp_dir, 0))
- warning ("Could not remove temporary directory %s.",
- temp_dir.buf);
-
- strbuf_release(&buf);
- strbuf_release(&temp_dir);
-
- return result;
-}
-
struct bundle_transport_data {
int fd;
struct bundle_header header;
@@ -481,17 +155,24 @@ static int set_git_option(struct git_transport_options *opts,
return 1;
}
-static int connect_setup(struct transport *transport, int for_push, int verbose)
+static int connect_setup(struct transport *transport, int for_push)
{
struct git_transport_data *data = transport->data;
+ int flags = transport->verbose > 0 ? CONNECT_VERBOSE : 0;
if (data->conn)
return 0;
+ switch (transport->family) {
+ case TRANSPORT_FAMILY_ALL: break;
+ case TRANSPORT_FAMILY_IPV4: flags |= CONNECT_IPV4; break;
+ case TRANSPORT_FAMILY_IPV6: flags |= CONNECT_IPV6; break;
+ }
+
data->conn = git_connect(data->fd, transport->url,
for_push ? data->options.receivepack :
data->options.uploadpack,
- verbose ? CONNECT_VERBOSE : 0);
+ flags);
return 0;
}
@@ -501,7 +182,7 @@ static struct ref *get_refs_via_connect(struct transport *transport, int for_pus
struct git_transport_data *data = transport->data;
struct ref *refs;
- connect_setup(transport, for_push, 0);
+ connect_setup(transport, for_push);
get_remote_heads(data->fd[0], NULL, 0, &refs,
for_push ? REF_NORMAL : 0,
&data->extra_have,
@@ -536,7 +217,7 @@ static int fetch_refs_via_pack(struct transport *transport,
args.update_shallow = data->options.update_shallow;
if (!data->got_remote_heads) {
- connect_setup(transport, 0, 0);
+ connect_setup(transport, 0);
get_remote_heads(data->fd[0], NULL, 0, &refs_tmp, 0,
NULL, &data->shallow);
data->got_remote_heads = 1;
@@ -812,7 +493,7 @@ static int git_transport_push(struct transport *transport, struct ref *remote_re
if (!data->got_remote_heads) {
struct ref *tmp_refs;
- connect_setup(transport, 1, 0);
+ connect_setup(transport, 1);
get_remote_heads(data->fd[0], NULL, 0, &tmp_refs, REF_NORMAL,
NULL, &data->shallow);
@@ -984,11 +665,7 @@ struct transport *transport_get(struct remote *remote, const char *url)
if (helper) {
transport_helper_init(ret, helper);
} else if (starts_with(url, "rsync:")) {
- transport_check_allowed("rsync");
- ret->get_refs_list = get_refs_via_rsync;
- ret->fetch = fetch_objs_via_rsync;
- ret->push = rsync_transport_push;
- ret->smart_options = NULL;
+ die("git-over-rsync is no longer supported");
} else if (url_is_local_not_ssh(url) && is_file(url) && is_bundle(url, 1)) {
struct bundle_transport_data *data = xcalloc(1, sizeof(*data));
transport_check_allowed("file");
@@ -1001,8 +678,9 @@ struct transport *transport_get(struct remote *remote, const char *url)
|| starts_with(url, "file://")
|| starts_with(url, "git://")
|| starts_with(url, "ssh://")
- || starts_with(url, "git+ssh://")
- || starts_with(url, "ssh+git://")) {
+ || starts_with(url, "git+ssh://") /* deprecated - do not use */
+ || starts_with(url, "ssh+git://") /* deprecated - do not use */
+ ) {
/*
* These are builtin smart transports; "allowed" transports
* will be checked individually in git_connect.
diff --git a/transport.h b/transport.h
index 8ebaaf2cae..c68140892c 100644
--- a/transport.h
+++ b/transport.h
@@ -18,6 +18,12 @@ struct git_transport_options {
struct push_cas_option *cas;
};
+enum transport_family {
+ TRANSPORT_FAMILY_ALL = 0,
+ TRANSPORT_FAMILY_IPV4,
+ TRANSPORT_FAMILY_IPV6
+};
+
struct transport {
struct remote *remote;
const char *url;
@@ -110,6 +116,8 @@ struct transport {
* actually turns out to be smart.
*/
struct git_transport_options *smart_options;
+
+ enum transport_family family;
};
#define TRANSPORT_PUSH_ALL 1
diff --git a/tree-walk.c b/tree-walk.c
index 6dccd2d5dd..cd4bb2c38b 100644
--- a/tree-walk.c
+++ b/tree-walk.c
@@ -320,6 +320,7 @@ int traverse_trees(int n, struct tree_desc *t, struct traverse_info *info)
struct tree_desc_x *tx = xcalloc(n, sizeof(*tx));
struct strbuf base = STRBUF_INIT;
int interesting = 1;
+ char *traverse_path;
for (i = 0; i < n; i++)
tx[i].d = t[i];
@@ -329,7 +330,11 @@ int traverse_trees(int n, struct tree_desc *t, struct traverse_info *info)
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);
+ } else {
+ traverse_path = xstrndup(info->name.path, info->pathlen);
}
+ info->traverse_path = traverse_path;
for (;;) {
int trees_used;
unsigned long mask, dirmask;
@@ -411,6 +416,8 @@ int traverse_trees(int n, struct tree_desc *t, struct traverse_info *info)
for (i = 0; i < n; i++)
free_extended_entry(tx + i);
free(tx);
+ free(traverse_path);
+ info->traverse_path = NULL;
strbuf_release(&base);
return error;
}
diff --git a/tree-walk.h b/tree-walk.h
index 3b2f7bf17d..174eb617df 100644
--- a/tree-walk.h
+++ b/tree-walk.h
@@ -59,6 +59,7 @@ enum follow_symlinks_result {
enum follow_symlinks_result get_tree_entry_follow_symlinks(unsigned char *tree_sha1, const char *name, unsigned char *result, struct strbuf *result_path, unsigned *mode);
struct traverse_info {
+ const char *traverse_path;
struct traverse_info *prev;
struct name_entry name;
int pathlen;
diff --git a/unimplemented.sh b/unimplemented.sh
index 5252de4b25..fee21d24e8 100644
--- a/unimplemented.sh
+++ b/unimplemented.sh
@@ -1,4 +1,4 @@
#!/bin/sh
-echo >&2 "fatal: git was built without support for `basename $0` (@@REASON@@)."
+echo >&2 "fatal: git was built without support for $(basename $0) (@@REASON@@)."
exit 128
diff --git a/unpack-trees.c b/unpack-trees.c
index 8e2032f4e5..9f55cc28b9 100644
--- a/unpack-trees.c
+++ b/unpack-trees.c
@@ -498,13 +498,14 @@ 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(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 struct name_entry *n)
{
int len, pathlen, ce_len;
const char *ce_name;
if (info->prev) {
- int cmp = do_compare_entry(ce, info->prev, &info->name);
+ int cmp = do_compare_entry_piecewise(ce, info->prev,
+ &info->name);
if (cmp)
return cmp;
}
@@ -522,6 +523,39 @@ static int do_compare_entry(const struct cache_entry *ce, const struct traverse_
return df_name_compare(ce_name, ce_len, S_IFREG, n->path, len, n->mode);
}
+static int do_compare_entry(const struct cache_entry *ce,
+ const struct traverse_info *info,
+ const struct name_entry *n)
+{
+ int len, pathlen, ce_len;
+ const char *ce_name;
+ int cmp;
+
+ /*
+ * If we have not precomputed the traverse path, it is quicker
+ * to avoid doing so. But if we have precomputed it,
+ * it is quicker to use the precomputed version.
+ */
+ if (!info->traverse_path)
+ return do_compare_entry_piecewise(ce, info, n);
+
+ cmp = strncmp(ce->name, info->traverse_path, info->pathlen);
+ if (cmp)
+ return cmp;
+
+ pathlen = info->pathlen;
+ ce_len = ce_namelen(ce);
+
+ if (ce_len < pathlen)
+ return -1;
+
+ 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);
+}
+
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);
@@ -661,8 +695,19 @@ static int find_cache_pos(struct traverse_info *info,
++o->cache_bottom;
continue;
}
- if (!ce_in_traverse_path(ce, info))
+ if (!ce_in_traverse_path(ce, info)) {
+ /*
+ * Check if we can skip future cache checks
+ * (because we're already past all possible
+ * entries in the traverse path).
+ */
+ if (info->traverse_path) {
+ if (strncmp(ce->name, info->traverse_path,
+ info->pathlen) > 0)
+ break;
+ }
continue;
+ }
ce_name = ce->name + pfxlen;
ce_slash = strchr(ce_name, '/');
if (ce_slash)
diff --git a/walker.c b/walker.c
index 7b7e72b120..08773d419f 100644
--- a/walker.c
+++ b/walker.c
@@ -220,7 +220,7 @@ int walker_targets_stdin(char ***target, const char ***write_ref)
char *rf_one = NULL;
char *tg_one;
- if (strbuf_getline(&buf, stdin, '\n') == EOF)
+ if (strbuf_getline_lf(&buf, stdin) == EOF)
break;
tg_one = buf.buf;
rf_one = strchr(tg_one, '\t');
diff --git a/wrapper.c b/wrapper.c
index 32c6c609da..9afc1a021c 100644
--- a/wrapper.c
+++ b/wrapper.c
@@ -239,8 +239,24 @@ ssize_t xread(int fd, void *buf, size_t len)
len = MAX_IO_SIZE;
while (1) {
nr = read(fd, buf, len);
- if ((nr < 0) && (errno == EAGAIN || errno == EINTR))
- continue;
+ if (nr < 0) {
+ if (errno == EINTR)
+ continue;
+ if (errno == EAGAIN || errno == EWOULDBLOCK) {
+ struct pollfd pfd;
+ pfd.events = POLLIN;
+ pfd.fd = fd;
+ /*
+ * it is OK if this poll() failed; we
+ * want to leave this infinite loop
+ * only when read() returns with
+ * success, or an expected failure,
+ * which would be checked by the next
+ * call to read(2).
+ */
+ poll(&pfd, 1, -1);
+ }
+ }
return nr;
}
}
diff --git a/wt-status.c b/wt-status.c
index bba25960b4..ef7486474a 100644
--- a/wt-status.c
+++ b/wt-status.c
@@ -988,7 +988,7 @@ static char *read_line_from_git_path(const char *filename)
strbuf_release(&buf);
return NULL;
}
- strbuf_getline(&buf, fp, '\n');
+ strbuf_getline_lf(&buf, fp);
if (!fclose(fp)) {
return strbuf_detach(&buf, NULL);
} else {
@@ -1076,7 +1076,7 @@ static void read_rebase_todolist(const char *fname, struct string_list *lines)
if (!f)
die_errno("Could not open file %s for reading",
git_path("%s", fname));
- while (!strbuf_getline(&line, f, '\n')) {
+ while (!strbuf_getline_lf(&line, f)) {
if (line.len && line.buf[0] == comment_line_char)
continue;
strbuf_trim(&line);
@@ -1677,10 +1677,10 @@ static void wt_shortstatus_print_tracking(struct wt_status *s)
color_fprintf(s->fp, header_color, LABEL(N_("behind ")));
color_fprintf(s->fp, branch_color_remote, "%d", num_theirs);
} else if (!num_theirs) {
- color_fprintf(s->fp, header_color, LABEL(N_(("ahead "))));
+ color_fprintf(s->fp, header_color, LABEL(N_("ahead ")));
color_fprintf(s->fp, branch_color_local, "%d", num_ours);
} else {
- color_fprintf(s->fp, header_color, LABEL(N_(("ahead "))));
+ color_fprintf(s->fp, header_color, LABEL(N_("ahead ")));
color_fprintf(s->fp, branch_color_local, "%d", num_ours);
color_fprintf(s->fp, header_color, ", %s", LABEL(N_("behind ")));
color_fprintf(s->fp, branch_color_remote, "%d", num_theirs);