diff options
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=' ' @@ -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: @@ -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 @@ -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 @@ -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(®ex, 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", ¬_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); @@ -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; } @@ -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]) @@ -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) { @@ -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 @@ -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; @@ -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, '='); @@ -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); } @@ -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 @@ -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" @@ -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? @@ -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; @@ -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, @@ -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; @@ -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; @@ -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); + } +} @@ -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"; @@ -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> @@ -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" @@ -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 "" @@ -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'ì— ëŒ€í•´ ë™ê¸°í™”" @@ -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»" @@ -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" @@ -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(¶ms, 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(¶ms, 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); @@ -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 @@ -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) @@ -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); @@ -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(®ex, 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(®ex, p + 2, 0, NULL, 0); + matches = negative ^ (p && !regexec(®ex, p + 2, 0, NULL, 0)); unuse_commit_buffer(commit, buf); if (matches) { @@ -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 */ @@ -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); @@ -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, - ¶meter); + git_config_from_mem(parse_config, "submodule-blob", rev.buf, + config, config_size, ¶meter); 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 @@ -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); } @@ -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) @@ -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'); @@ -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); |