diff options
400 files changed, 33393 insertions, 18762 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 @@ -51,6 +51,7 @@ Dirk Süsserott <newsletter@dirk.my1.cc> Eric Blake <eblake@redhat.com> <ebb9@byu.net> Eric Hanchrow <eric.hanchrow@gmail.com> <offby1@blarg.net> Eric S. Raymond <esr@thyrsus.com> +Eric Wong <e@80x24.org> <normalperson@yhbt.net> Erik Faye-Lund <kusmabite@gmail.com> <kusmabite@googlemail.com> Eyvind Bernhardsen <eyvind.bernhardsen@gmail.com> <eyvind-git@orakel.ntnu.no> Florian Achleitner <florian.achleitner.2.6.31@gmail.com> <florian.achleitner2.6.31@gmail.com> diff --git a/.travis.yml b/.travis.yml index c3bf9c6d4d..1fdcec8437 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,15 @@ addons: env: global: - - P4_VERSION="15.2" - - GIT_LFS_VERSION="1.1.0" + - DEVELOPER=1 + # The Linux build installs the defined dependency versions below. + # The OS X build installs the latest available versions. Keep that + # in mind when you encounter a broken OS X build! + - LINUX_P4_VERSION="16.1" + - LINUX_GIT_LFS_VERSION="1.2.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 @@ -32,17 +41,17 @@ before_install: linux) mkdir --parents custom/p4 pushd custom/p4 - wget --quiet http://filehost.perforce.com/perforce/r$P4_VERSION/bin.linux26x86_64/p4d - wget --quiet http://filehost.perforce.com/perforce/r$P4_VERSION/bin.linux26x86_64/p4 + wget --quiet http://filehost.perforce.com/perforce/r$LINUX_P4_VERSION/bin.linux26x86_64/p4d + wget --quiet http://filehost.perforce.com/perforce/r$LINUX_P4_VERSION/bin.linux26x86_64/p4 chmod u+x p4d chmod u+x p4 export PATH="$(pwd):$PATH" popd mkdir --parents custom/git-lfs pushd custom/git-lfs - wget --quiet https://github.com/github/git-lfs/releases/download/v$GIT_LFS_VERSION/git-lfs-linux-amd64-$GIT_LFS_VERSION.tar.gz - tar --extract --gunzip --file "git-lfs-linux-amd64-$GIT_LFS_VERSION.tar.gz" - cp git-lfs-$GIT_LFS_VERSION/git-lfs . + wget --quiet https://github.com/github/git-lfs/releases/download/v$LINUX_GIT_LFS_VERSION/git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz + tar --extract --gunzip --file "git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz" + cp git-lfs-$LINUX_GIT_LFS_VERSION/git-lfs . export PATH="$(pwd):$PATH" popd ;; @@ -67,6 +76,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..25079710fa --- /dev/null +++ b/Documentation/RelNotes/2.8.0.txt @@ -0,0 +1,439 @@ +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" + behavior 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 behavior (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 + analyzers 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. + + * 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, in many cases. The API has been removed and its + users have been rewritten to simplify the overall code complexity. + This incidentally also closes some heap-corruption holes. + + * Recent versions of GNU grep is pickier than before to decide if a + file is "binary" and refuse to give line-oriented hits when we + expect it to, unless explicitly told with "-a" option. As our + scripted Porcelains use sane_grep wrapper for line-oriented data, + even when the line may contain non-ASCII payload we took from + end-user data, use "grep -a" to implement sane_grep wrapper when + using an implementation of "grep" that takes the "-a" option. + + + +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 non-portable 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. + + * 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 back-pointers 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/RelNotes/2.8.1.txt b/Documentation/RelNotes/2.8.1.txt new file mode 100644 index 0000000000..ef6d80b008 --- /dev/null +++ b/Documentation/RelNotes/2.8.1.txt @@ -0,0 +1,9 @@ +Git v2.8.1 Release Notes +======================== + +Fixes since v2.8 +---------------- + + * "make rpmbuild" target was broken as its input, git.spec.in, was + not updated to match a file it describes that has been renamed + recently. This has been fixed. diff --git a/Documentation/RelNotes/2.8.2.txt b/Documentation/RelNotes/2.8.2.txt new file mode 100644 index 0000000000..447b1933a8 --- /dev/null +++ b/Documentation/RelNotes/2.8.2.txt @@ -0,0 +1,70 @@ +Git v2.8.2 Release Notes +======================== + +Fixes since v2.8.1 +------------------ + + * The embedded args argv-array in the child process is used to build + the command line to run pack-objects instead of using a separate + array of strings. + + * Bunch of tests on "git clone" has been renumbered for better + organization. + + * The tests that involve running httpd leaked the system-wide + configuration in /etc/gitconfig to the tested environment. + + * "index-pack --keep=<msg>" was broken since v2.1.0 timeframe. + + * "git config --get-urlmatch", unlike other variants of the "git + config --get" family, did not signal error with its exit status + when there was no matching configuration. + + * The "--local-env-vars" and "--resolve-git-dir" options of "git + rev-parse" failed to work outside a repository when the command's + option parsing was rewritten in 1.8.5 era. + + * Fetching of history by naming a commit object name directly didn't + work across remote-curl transport. + + * A small memory leak in an error codepath has been plugged in xdiff + code. + + * strbuf_getwholeline() did not NUL-terminate the buffer on certain + corner cases in its error codepath. + + * The startup_info data, which records if we are working inside a + repository (among other things), are now uniformly available to Git + subcommand implementations, and Git avoids attempting to touch + references when we are not in a repository. + + * "git mergetool" did not work well with conflicts that both sides + deleted. + + * "git send-email" had trouble parsing alias file in mailrc format + when lines in it had trailing whitespaces on them. + + * When "git merge --squash" stopped due to conflict, the concluding + "git commit" failed to read in the SQUASH_MSG that shows the log + messages from all the squashed commits. + + * "git merge FETCH_HEAD" dereferenced NULL pointer when merging + nothing into an unborn history (which is arguably unusual usage, + which perhaps was the reason why nobody noticed it). + + * Build updates for MSVC. + + * "git diff -M" used to work better when two originally identical + files A and B got renamed to X/A and X/B by pairing A to X/A and B + to X/B, but this was broken in the 2.0 timeframe. + + * "git send-pack --all <there>" was broken when its command line + option parsing was written in the 2.6 timeframe. + + * When running "git blame $path" with unnormalized data in the index + for the path, the data in the working tree was blamed, even though + "git add" would not have changed what is already in the index, due + to "safe crlf" that disables the line-end conversion. It has been + corrected. + +Also contains minor documentation updates and code clean-ups. diff --git a/Documentation/RelNotes/2.8.3.txt b/Documentation/RelNotes/2.8.3.txt new file mode 100644 index 0000000000..fedd9968e5 --- /dev/null +++ b/Documentation/RelNotes/2.8.3.txt @@ -0,0 +1,101 @@ +Git v2.8.3 Release Notes +======================== + +Fixes since v2.8.2 +------------------ + + * "git send-email" now uses a more readable timestamps when + formulating a message ID. + + * The repository set-up sequence has been streamlined (the biggest + change is that there is no longer git_config_early()), so that we + do not attempt to look into refs/* when we know we do not have a + Git repository. + + * When "git worktree" feature is in use, "git branch -d" allowed + deletion of a branch that is checked out in another worktree + + * When "git worktree" feature is in use, "git branch -m" renamed a + branch that is checked out in another worktree without adjusting + the HEAD symbolic ref for the worktree. + + * "git format-patch --help" showed `-s` and `--no-patch` as if these + are valid options to the command. We already hide `--patch` option + from the documentation, because format-patch is about showing the + diff, and the documentation now hides these options as well. + + * A change back in version 2.7 to "git branch" broke display of a + symbolic ref in a non-standard place in the refs/ hierarchy (we + expect symbolic refs to appear in refs/remotes/*/HEAD to point at + the primary branch the remote has, and as .git/HEAD to point at the + branch we locally checked out). + + * A partial rewrite of "git submodule" in the 2.7 timeframe changed + the way the gitdir: pointer in the submodules point at the real + repository location to use absolute paths by accident. This has + been corrected. + + * "git commit" misbehaved in a few minor ways when an empty message + is given via -m '', all of which has been corrected. + + * Support for CRAM-MD5 authentication method in "git imap-send" did + not work well. + + * The socks5:// proxy support added back in 2.6.4 days was not aware + that socks5h:// proxies behave differently. + + * "git config" had a codepath that tried to pass a NULL to + printf("%s"), which nobody seems to have noticed. + + * On Cygwin, object creation uses the "create a temporary and then + rename it to the final name" pattern, not "create a temporary, + hardlink it to the final name and then unlink the temporary" + pattern. + + This is necessary to use Git on Windows shared directories, and is + already enabled for the MinGW and plain Windows builds. It also + has been used in Cygwin packaged versions of Git for quite a while. + See http://thread.gmane.org/gmane.comp.version-control.git/291853 + and http://thread.gmane.org/gmane.comp.version-control.git/275680. + + * "git replace -e" did not honour "core.editor" configuration. + + * Upcoming OpenSSL 1.1.0 will break compilation b updating a few APIs + we use in imap-send, which has been adjusted for the change. + + * "git submodule" reports the paths of submodules the command + recurses into, but this was incorrect when the command was not run + from the root level of the superproject. + + * The test scripts for "git p4" (but not "git p4" implementation + itself) has been updated so that they would work even on a system + where the installed version of Python is python 3. + + * The "user.useConfigOnly" configuration variable makes it an error + if users do not explicitly set user.name and user.email. However, + its check was not done early enough and allowed another error to + trigger, reporting that the default value we guessed from the + system setting was unusable. This was a suboptimal end-user + experience as we want the users to set user.name/user.email without + relying on the auto-detection at all. + + * "git mv old new" did not adjust the path for a submodule that lives + as a subdirectory inside old/ directory correctly. + + * "git push" from a corrupt repository that attempts to push a large + number of refs deadlocked; the thread to relay rejection notices + for these ref updates blocked on writing them to the main thread, + after the main thread at the receiving end notices that the push + failed and decides not to read these notices and return a failure. + + * A question by "git send-email" to ask the identity of the sender + has been updated. + + * Recent update to Git LFS broke "git p4" by changing the output from + its "lfs pointer" subcommand. + + * Some multi-byte encoding can have a backslash byte as a later part + of one letter, which would confuse "highlight" filter used in + gitweb. + +Also contains minor documentation updates and code clean-ups. diff --git a/Documentation/SubmittingPatches b/Documentation/SubmittingPatches index 98fc4cc1d0..e8ad978824 100644 --- a/Documentation/SubmittingPatches +++ b/Documentation/SubmittingPatches @@ -61,23 +61,28 @@ Make sure that you have tests for the bug you are fixing. See t/README for guidance. When adding a new feature, make sure that you have new tests to show -the feature triggers the new behaviour when it should, and to show the -feature does not trigger when it shouldn't. Also make sure that the -test suite passes after your commit. Do not forget to update the -documentation to describe the updated behaviour. - -Speaking of the documentation, it is currently a liberal mixture of US -and UK English norms for spelling and grammar, which is somewhat -unfortunate. A huge patch that touches the files all over the place -only to correct the inconsistency is not welcome, though. Potential -clashes with other changes that can result from such a patch are not -worth it. We prefer to gradually reconcile the inconsistencies in -favor of US English, with small and easily digestible patches, as a -side effect of doing some other real work in the vicinity (e.g. -rewriting a paragraph for clarity, while turning en_UK spelling to -en_US). Obvious typographical fixes are much more welcomed ("teh -> -"the"), preferably submitted as independent patches separate from -other documentation changes. +the feature triggers the new behavior when it should, and to show the +feature does not trigger when it shouldn't. After any code change, make +sure that the entire test suite passes. + +If you have an account at GitHub (and you can get one for free to work +on open source projects), you can use their Travis CI integration to +test your changes on Linux, Mac (and hopefully soon Windows). See +GitHub-Travis CI hints section for details. + +Do not forget to update the documentation to describe the updated +behavior and make sure that the resulting documentation set formats +well. It is currently a liberal mixture of US and UK English norms for +spelling and grammar, which is somewhat unfortunate. A huge patch that +touches the files all over the place only to correct the inconsistency +is not welcome, though. Potential clashes with other changes that can +result from such a patch are not worth it. We prefer to gradually +reconcile the inconsistencies in favor of US English, with small and +easily digestible patches, as a side effect of doing some other real +work in the vicinity (e.g. rewriting a paragraph for clarity, while +turning en_UK spelling to en_US). Obvious typographical fixes are much +more welcomed ("teh -> "the"), preferably submitted as independent +patches separate from other documentation changes. Oh, another thing. We are picky about whitespaces. Make sure your changes do not trigger errors with the sample pre-commit hook shipped @@ -370,6 +375,47 @@ Know the status of your patch after submission entitled "What's cooking in git.git" and "What's in git.git" giving the status of various proposed changes. +-------------------------------------------------- +GitHub-Travis CI hints + +With an account at GitHub (you can get one for free to work on open +source projects), you can use Travis CI to test your changes on Linux, +Mac (and hopefully soon Windows). You can find a successful example +test build here: https://travis-ci.org/git/git/builds/120473209 + +Follow these steps for the initial setup: + + (1) Fork https://github.com/git/git to your GitHub account. + You can find detailed instructions how to fork here: + https://help.github.com/articles/fork-a-repo/ + + (2) Open the Travis CI website: https://travis-ci.org + + (3) Press the "Sign in with GitHub" button. + + (4) Grant Travis CI permissions to access your GitHub account. + You can find more information about the required permissions here: + https://docs.travis-ci.com/user/github-oauth-scopes + + (5) Open your Travis CI profile page: https://travis-ci.org/profile + + (6) Enable Travis CI builds for your Git fork. + +After the initial setup, Travis CI will run whenever you push new changes +to your fork of Git on GitHub. You can monitor the test state of all your +branches here: https://travis-ci.org/<Your GitHub handle>/git/branches + +If a branch did not pass all test cases then it is marked with a red +cross. In that case you can click on the failing Travis CI job and +scroll all the way down in the log. Find the line "<-- Click here to see +detailed test output!" and click on the triangle next to the log line +number to expand the detailed test output. Here is such a failing +example: https://travis-ci.org/git/git/jobs/122676187 + +Fix the problem and push your fix to your Git fork. This will trigger +a new Travis CI build to ensure all tests pass. + + ------------------------------------------------ MUA specific hints 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..ef347875dc 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, @@ -2085,8 +2147,11 @@ pack.packSizeLimit:: The maximum size of a pack. This setting only affects packing to a file when repacking, i.e. the git:// protocol is unaffected. It can be overridden by the `--max-pack-size` - option of linkgit:git-repack[1]. The minimum size allowed is - limited to 1 MiB. The default is unlimited. + option of linkgit:git-repack[1]. Reaching this limit results + in the creation of multiple packfiles; which in turn prevents + bitmaps from being created. + The minimum size allowed is limited to 1 MiB. + The default is unlimited. Common unit suffixes of 'k', 'm', or 'g' are supported. @@ -2149,6 +2214,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 +2474,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]. @@ -2479,8 +2551,9 @@ repack.writeBitmaps:: objects to disk (e.g., when `git repack -a` is run). This index can speed up the "counting objects" phase of subsequent packs created for clones and fetches, at the cost of some disk - space and extra time spent on the initial repack. Defaults to - false. + space and extra time spent on the initial repack. This has + no effect if multiple packfiles are created. + Defaults to false. rerere.autoUpdate:: When set to true, `git-rerere` updates the index with the @@ -2775,6 +2848,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/diff-options.txt b/Documentation/diff-options.txt index 306b7e3604..4b0318e2ac 100644 --- a/Documentation/diff-options.txt +++ b/Documentation/diff-options.txt @@ -26,12 +26,12 @@ ifndef::git-format-patch[] ifdef::git-diff[] This is the default. endif::git-diff[] -endif::git-format-patch[] -s:: --no-patch:: Suppress diff output. Useful for commands like `git show` that show the patch by default, or to cancel the effect of `--patch`. +endif::git-format-patch[] -U<n>:: --unified=<n>:: @@ -286,8 +286,8 @@ endif::git-format-patch[] ifndef::git-format-patch[] --check:: - Warn if changes introduce whitespace errors. What are - considered whitespace errors is controlled by `core.whitespace` + Warn if changes introduce conflict markers or whitespace errors. + What are considered whitespace errors is controlled by `core.whitespace` configuration. By default, trailing whitespaces (including lines that solely consist of whitespaces) and a space character that is immediately followed by a tab character inside the 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-apply.txt b/Documentation/git-apply.txt index d9ed6a1a4e..8ddb207409 100644 --- a/Documentation/git-apply.txt +++ b/Documentation/git-apply.txt @@ -13,7 +13,7 @@ SYNOPSIS [--apply] [--no-add] [--build-fake-ancestor=<file>] [-R | --reverse] [--allow-binary-replacement | --binary] [--reject] [-z] [-p<n>] [-C<n>] [--inaccurate-eof] [--recount] [--cached] - [--ignore-space-change | --ignore-whitespace ] + [--ignore-space-change | --ignore-whitespace] [--whitespace=(nowarn|warn|fix|error|error-all)] [--exclude=<path>] [--include=<path>] [--directory=<root>] [--verbose] [--unsafe-paths] [<patch>...] @@ -21,6 +21,8 @@ SYNOPSIS DESCRIPTION ----------- Reads the supplied diff output (i.e. "a patch") and applies it to files. +When running from a subdirectory in a repository, patched paths +outside the directory are ignored. With the `--index` option the patch is also applied to the index, and with the `--cached` option the patch is only applied to the index. Without these options, the command applies the patch only to files, 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-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..6843114fc0 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 @@ -58,13 +58,13 @@ that location (you can say '--local' but that is the default). This command will fail with non-zero status upon error. Some exit codes are: -. The config file is invalid (ret=3), -. can not write to the config file (ret=4), -. no section or name was provided (ret=2), -. the section or key is invalid (ret=1), -. you try to unset an option which does not exist (ret=5), -. you try to unset/set an option for which multiple lines match (ret=5), or -. you try to use an invalid regexp (ret=6). +- The section or key is invalid (ret=1), +- no section or name was provided (ret=2), +- the config file is invalid (ret=3), +- the config file cannot be written (ret=4), +- you try to unset an option which does not exist (ret=5), +- you try to unset/set an option for which multiple lines match (ret=5), or +- you try to use an invalid regexp (ret=6). On success, the command returns the exit code 0. @@ -86,8 +86,7 @@ OPTIONS found and the last value if multiple key values were found. --get-all:: - Like get, but does not fail if the number of values for the key - is not exactly one. + Like get, but returns all values for a multi-valued key. --get-regexp:: Like --get-all, but interprets the name as a regular expression and @@ -102,7 +101,7 @@ OPTIONS given URL is returned (if no such key exists, the value for section.key is used as a fallback). When given just the section as name, do so for all the keys in the section and - list them. + list them. Returns error code 1 if no value is found. --global:: For writing options: write to global `~/.gitconfig` file @@ -194,6 +193,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 +224,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-fetch-pack.txt b/Documentation/git-fetch-pack.txt index 8680f45f8d..239623cc24 100644 --- a/Documentation/git-fetch-pack.txt +++ b/Documentation/git-fetch-pack.txt @@ -104,6 +104,10 @@ be in a separate packet, and the list must end with a flush packet. The remote heads to update from. This is relative to $GIT_DIR (e.g. "HEAD", "refs/heads/master"). When unspecified, update from all heads the remote side has. ++ +If the remote has enabled the options `uploadpack.allowTipSHA1InWant` or +`uploadpack.allowReachableSHA1InWant`, they may alternatively be 40-hex +sha1s present on the remote. SEE ALSO -------- diff --git a/Documentation/git-for-each-ref.txt b/Documentation/git-for-each-ref.txt index 2e3e96f663..c52578bb87 100644 --- a/Documentation/git-for-each-ref.txt +++ b/Documentation/git-for-each-ref.txt @@ -76,7 +76,7 @@ OPTIONS specified commit (HEAD if not specified). --contains [<object>]:: - Only list tags which contain the specified commit (HEAD if not + Only list refs which contain the specified commit (HEAD if not specified). FIELD NAMES @@ -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-p4.txt b/Documentation/git-p4.txt index 738cfde10c..35e3170918 100644 --- a/Documentation/git-p4.txt +++ b/Documentation/git-p4.txt @@ -515,20 +515,18 @@ git-p4.pathEncoding:: Git expects paths encoded as UTF-8. Use this config to tell git-p4 what encoding Perforce had used for the paths. This encoding is used to transcode the paths to UTF-8. As an example, Perforce on Windows - often uses “cp1252†to encode path names. + often uses "cp1252" to encode path names. git-p4.largeFileSystem:: Specify the system that is used for large (binary) files. Please note that large file systems do not support the 'git p4 submit' command. - Only Git LFS [1] is implemented right now. Download - and install the Git LFS command line extension to use this option - and configure it like this: + Only Git LFS is implemented right now (see https://git-lfs.github.com/ + for more information). Download and install the Git LFS command line + extension to use this option and configure it like this: + ------------- git config git-p4.largeFileSystem GitLFS ------------- -+ - [1] https://git-lfs.github.com/ git-p4.largeFileExtensions:: All files matching a file extension in the list will be processed diff --git a/Documentation/git-pack-objects.txt b/Documentation/git-pack-objects.txt index bbea5294ca..19cdcd0341 100644 --- a/Documentation/git-pack-objects.txt +++ b/Documentation/git-pack-objects.txt @@ -110,7 +110,8 @@ base-name:: --max-pack-size=<n>:: Maximum size of each output pack file. The size can be suffixed with "k", "m", or "g". The minimum size allowed is limited to 1 MiB. - If specified, multiple packfiles may be created. + If specified, multiple packfiles may be created, which also + prevents the creation of a bitmap index. The default is unlimited, unless the config variable `pack.packSizeLimit` is set. 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..b9c02ce481 100644 --- a/Documentation/git-repack.txt +++ b/Documentation/git-repack.txt @@ -106,7 +106,8 @@ other objects in that pack they already have locally. --max-pack-size=<n>:: Maximum size of each output pack file. The size can be suffixed with "k", "m", or "g". The minimum size allowed is limited to 1 MiB. - If specified, multiple packfiles may be created. + If specified, multiple packfiles may be created, which also + prevents the creation of a bitmap index. The default is unlimited, unless the config variable `pack.packSizeLimit` is set. @@ -115,7 +116,8 @@ other objects in that pack they already have locally. Write a reachability bitmap index as part of the repack. This only makes sense when used with `-a` or `-A`, as the bitmaps must be able to refer to all reachable objects. This option - overrides the setting of `pack.writeBitmaps`. + overrides the setting of `repack.writeBitmaps`. This option + has no effect if multiple packfiles are created. --pack-kept-objects:: Include objects in `.keep` files when repacking. Note that we @@ -123,7 +125,7 @@ other objects in that pack they already have locally. This means that we may duplicate objects, but this makes the option safe to use when there are concurrent pushes or fetches. This option is generally only useful if you are writing bitmaps - with `-b` or `pack.writeBitmaps`, as it ensures that the + with `-b` or `repack.writeBitmaps`, as it ensures that the bitmapped packfile has the necessary objects. Configuration @@ -133,7 +135,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 754dc80b39..dd6dbf7dd9 100644 --- a/Documentation/git.txt +++ b/Documentation/git.txt @@ -43,6 +43,14 @@ unreleased) version of Git, that is available from the 'master' branch of the `git.git` repository. Documentation for older releases are available here: +* link:v2.8.3/git.html[documentation for release 2.8.3] + +* release notes for + link:RelNotes/2.8.3.txt[2.8.3], + link:RelNotes/2.8.2.txt[2.8.2], + link:RelNotes/2.8.1.txt[2.8.1], + link:RelNotes/2.8.0.txt[2.8]. + * link:v2.7.3/git.html[documentation for release 2.7.3] * release notes for @@ -1127,9 +1135,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/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/glossary-content.txt b/Documentation/glossary-content.txt index cafc284359..8ad29e61a9 100644 --- a/Documentation/glossary-content.txt +++ b/Documentation/glossary-content.txt @@ -145,7 +145,7 @@ current branch integrates with) obviously do not work, as there is no A fast-forward is a special type of <<def_merge,merge>> where you have a <<def_revision,revision>> and you are "merging" another <<def_branch,branch>>'s changes that happen to be a descendant of what - you have. In such these cases, you do not make a new <<def_merge,merge>> + you have. In such a case, you do not make a new <<def_merge,merge>> <<def_commit,commit>> but instead just update to his revision. This will happen frequently on a <<def_remote_tracking_branch,remote-tracking branch>> of a remote 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-config.txt b/Documentation/technical/api-config.txt index 0d8b99b368..20741f345e 100644 --- a/Documentation/technical/api-config.txt +++ b/Documentation/technical/api-config.txt @@ -63,13 +63,6 @@ parse for configuration, rather than looking in the usual files. Regular Specify whether include directives should be followed in parsed files. Regular `git_config` defaults to `1`. -There is a special version of `git_config` called `git_config_early`. -This version takes an additional parameter to specify the repository -config, instead of having it looked up via `git_path`. This is useful -early in a Git program before the repository has been found. Unless -you're working with early setup code, you probably don't want to use -this. - Reading Specific Files ---------------------- diff --git a/Documentation/technical/api-parse-options.txt b/Documentation/technical/api-parse-options.txt index 5f0757dcc9..695bd4bf43 100644 --- a/Documentation/technical/api-parse-options.txt +++ b/Documentation/technical/api-parse-options.txt @@ -231,6 +231,13 @@ There are some macros to easily define options: pass the command-line option, which can be specified multiple times, to another command. +`OPT_CMDMODE(short, long, &int_var, description, enum_val)`:: + Define an "operation mode" option, only one of which in the same + group of "operating mode" options that share the same `int_var` + can be given by the user. `enum_val` is set to `int_var` when the + option is used, but an error is reported if other "operating mode" + option has already set its value to the same `int_var`. + The last element of the array must be `OPT_END()`. 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/technical/api-trace.txt b/Documentation/technical/api-trace.txt index 097a651d96..fadb5979c4 100644 --- a/Documentation/technical/api-trace.txt +++ b/Documentation/technical/api-trace.txt @@ -28,7 +28,7 @@ static struct trace_key trace_foo = TRACE_KEY_INIT(FOO); static void trace_print_foo(const char *message) { - trace_print_key(&trace_foo, message); + trace_printf_key(&trace_foo, "%s", message); } ------------ + @@ -95,3 +95,46 @@ for (;;) { } trace_performance(t, "frotz"); ------------ + +Bugs & Caveats +-------------- + +GIT_TRACE_* environment variables can be used to tell Git to show +trace output to its standard error stream. Git can often spawn a pager +internally to run its subcommand and send its standard output and +standard error to it. + +Because GIT_TRACE_PERFORMANCE trace is generated only at the very end +of the program with atexit(), which happens after the pager exits, it +would not work well if you send its log to the standard error output +and let Git spawn the pager at the same time. + +As a work around, you can for example use '--no-pager', or set +GIT_TRACE_PERFORMANCE to another file descriptor which is redirected +to stderr, or set GIT_TRACE_PERFORMANCE to a file specified by its +absolute path. + +For example instead of the following command which by default may not +print any performance information: + +------------ +GIT_TRACE_PERFORMANCE=2 git log -1 +------------ + +you may want to use: + +------------ +GIT_TRACE_PERFORMANCE=2 git --no-pager log -1 +------------ + +or: + +------------ +GIT_TRACE_PERFORMANCE=3 3>&2 git log -1 +------------ + +or: + +------------ +GIT_TRACE_PERFORMANCE=/path/to/log/file git log -1 +------------ 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 0305065d59..596965a4de 100755 --- a/GIT-VERSION-GEN +++ b/GIT-VERSION-GEN @@ -1,7 +1,7 @@ #!/bin/sh GVF=GIT-VERSION-FILE -DEF_VER=v2.7.4 +DEF_VER=v2.8.3 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'. @@ -352,9 +355,6 @@ all:: # # Define HAVE_CLOCK_MONOTONIC if your platform has CLOCK_MONOTONIC in librt. # -# Define NO_HMAC_CTX_CLEANUP if your OpenSSL is version 0.9.6b or earlier to -# cleanup the HMAC context with the older HMAC_cleanup function. -# # Define USE_PARENS_AROUND_GETTEXT_N to "yes" if your compiler happily # compiles the following initialization: # @@ -380,6 +380,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 +595,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 @@ -1122,9 +1135,6 @@ ifndef NO_OPENSSL ifdef NEEDS_CRYPTO_WITH_SSL OPENSSL_LIBSSL += -lcrypto endif - ifdef NO_HMAC_CTX_CLEANUP - BASIC_CFLAGS += -DNO_HMAC_CTX_CLEANUP - endif else BASIC_CFLAGS += -DNO_OPENSSL BLK_SHA1 = 1 @@ -1727,7 +1737,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 +1749,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 +2036,7 @@ $(VCSSVN_LIB): $(VCSSVN_OBJS) export DEFAULT_EDITOR DEFAULT_PAGER +.PHONY: doc man html info pdf doc: $(MAKE) -C Documentation all @@ -2068,6 +2080,7 @@ po/git.pot: $(GENERATED_H) FORCE $(LOCALIZED_PERL) mv $@+ $@ +.PHONY: pot pot: po/git.pot POFILES := $(wildcard po/*.po) @@ -2244,10 +2257,10 @@ sparse: $(SP_OBJ) check: common-cmds.h @if sparse; \ then \ - echo 2>&1 "Use 'make sparse' instead"; \ + echo >&2 "Use 'make sparse' instead"; \ $(MAKE) --no-print-directory sparse; \ else \ - echo 2>&1 "Did you mean 'make test'?"; \ + echo >&2 "Did you mean 'make test'?"; \ exit 1; \ fi @@ -2277,6 +2290,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 +2357,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 +2418,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 +2487,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 +2533,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.4.txt
\ No newline at end of file +Documentation/RelNotes/2.8.3.txt
\ No newline at end of file @@ -167,7 +167,6 @@ const char *prefix_filename(const char *pfx, int pfx_len, const char *arg) strbuf_add(&path, pfx, pfx_len); strbuf_addstr(&path, arg); #else - char *p; /* don't add prefix to absolute paths, but still replace '\' by '/' */ strbuf_reset(&path); if (is_absolute_path(arg)) @@ -175,9 +174,7 @@ const char *prefix_filename(const char *pfx, int pfx_len, const char *arg) else if (pfx_len) strbuf_add(&path, pfx, pfx_len); strbuf_addstr(&path, arg); - for (p = path.buf + pfx_len; *p; p++) - if (*p == '\\') - *p = '/'; + convert_slashes(path.buf + pfx_len); #endif return path.buf; } @@ -122,7 +122,7 @@ struct pattern { const char *pattern; int patternlen; int nowildcardlen; - int flags; /* EXC_FLAG_* */ + unsigned flags; /* EXC_FLAG_* */ }; /* @@ -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); @@ -344,3 +344,26 @@ void die_if_checked_out(const char *branch) die(_("'%s' is already checked out at '%s'"), branch, existing); } } + +int replace_each_worktree_head_symref(const char *oldref, const char *newref) +{ + int ret = 0; + struct worktree **worktrees = get_worktrees(); + int i; + + for (i = 0; worktrees[i]; i++) { + if (worktrees[i]->is_detached) + continue; + if (strcmp(oldref, worktrees[i]->head_ref)) + continue; + + if (set_worktree_head_symref(worktrees[i]->git_dir, newref)) { + ret = -1; + error(_("HEAD of working tree %s is not updated"), + worktrees[i]->path); + } + } + + free_worktrees(worktrees); + return ret; +} @@ -60,4 +60,11 @@ extern int read_branch_desc(struct strbuf *, const char *branch_name); */ extern void die_if_checked_out(const char *branch); +/* + * Update all per-worktree HEADs pointing at the old ref to point the new ref. + * This will be used when renaming a branch. Returns 0 if successful, non-zero + * otherwise. + */ +extern int replace_each_worktree_head_symref(const char *oldref, const char *newref); + #endif 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..ce3b77853c 100644 --- a/builtin/apply.c +++ b/builtin/apply.c @@ -931,22 +931,19 @@ static char *gitdiff_verify_name(const char *line, int isnull, char *orig_name, return find_name(line, NULL, p_value, TERM_TAB); if (orig_name) { - int len; - const char *name; + int len = strlen(orig_name); char *another; - name = orig_name; - len = strlen(name); if (isnull) - die(_("git apply: bad git-diff - expected /dev/null, got %s on line %d"), name, linenr); + die(_("git apply: bad git-diff - expected /dev/null, got %s on line %d"), + orig_name, linenr); another = find_name(line, NULL, p_value, TERM_TAB); - if (!another || memcmp(another, name, len + 1)) + if (!another || memcmp(another, orig_name, len + 1)) die((side == DIFF_NEW_NAME) ? _("git apply: bad git-diff - inconsistent new filename on line %d") : _("git apply: bad git-diff - inconsistent old filename on line %d"), linenr); free(another); return orig_name; - } - else { + } else { /* expect "/dev/null" */ if (memcmp("/dev/null", line, 9) || line[9] != '\n') die(_("git apply: bad git-diff - expected /dev/null on line %d"), linenr); @@ -956,21 +953,15 @@ static char *gitdiff_verify_name(const char *line, int isnull, char *orig_name, static int gitdiff_oldname(const char *line, struct patch *patch) { - char *orig = patch->old_name; patch->old_name = gitdiff_verify_name(line, patch->is_new, patch->old_name, DIFF_OLD_NAME); - if (orig != patch->old_name) - free(orig); return 0; } static int gitdiff_newname(const char *line, struct patch *patch) { - char *orig = patch->new_name; patch->new_name = gitdiff_verify_name(line, patch->is_delete, patch->new_name, DIFF_NEW_NAME); - if (orig != patch->new_name) - free(orig); return 0; } @@ -1872,6 +1863,11 @@ static struct fragment *parse_binary_hunk(char **buf_p, return NULL; } +/* + * Returns: + * -1 in case of error, + * the length of the parsed binary patch otherwise + */ static int parse_binary(char *buffer, unsigned long size, struct patch *patch) { /* @@ -2017,6 +2013,8 @@ static int parse_chunk(char *buffer, unsigned long size, struct patch *patch) linenr++; used = parse_binary(buffer + hd + llen, size - hd - llen, patch); + if (used < 0) + return -1; if (used) patchsize = used + llen; else @@ -4373,8 +4371,10 @@ static int apply_patch(int fd, const char *filename, int options) patch->inaccurate_eof = !!(options & INACCURATE_EOF); patch->recount = !!(options & RECOUNT); nr = parse_chunk(buf.buf + offset, buf.len - offset, patch); - if (nr < 0) + if (nr < 0) { + free_patch(patch); break; + } if (apply_in_reverse) reverse_patches(patch); if (use_patch(patch)) { @@ -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..21f42b0b62 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, @@ -2290,6 +2307,7 @@ static struct commit *fake_working_tree_commit(struct diff_options *opt, unsigned mode; struct strbuf msg = STRBUF_INIT; + read_cache(); time(&now); commit = alloc_commit_node(); commit->object.parsed = 1; @@ -2514,6 +2532,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 +2568,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 +2593,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 +2849,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/branch.c b/builtin/branch.c index 7b45b6bd6b..0adba629d2 100644 --- a/builtin/branch.c +++ b/builtin/branch.c @@ -20,6 +20,7 @@ #include "utf8.h" #include "wt-status.h" #include "ref-filter.h" +#include "worktree.h" static const char * const builtin_branch_usage[] = { N_("git branch [<options>] [-r | -a] [--merged | --no-merged]"), @@ -215,16 +216,21 @@ static int delete_branches(int argc, const char **argv, int force, int kinds, int flags = 0; strbuf_branchname(&bname, argv[i]); - if (kinds == FILTER_REFS_BRANCHES && !strcmp(head, bname.buf)) { - error(_("Cannot delete the branch '%s' " - "which you are currently on."), bname.buf); - ret = 1; - continue; - } - free(name); - name = mkpathdup(fmt, bname.buf); + + if (kinds == FILTER_REFS_BRANCHES) { + char *worktree = find_shared_symref("HEAD", name); + if (worktree) { + error(_("Cannot delete branch '%s' " + "checked out at '%s'"), + bname.buf, worktree); + free(worktree); + ret = 1; + continue; + } + } + target = resolve_ref_unsafe(name, RESOLVE_REF_READING | RESOLVE_REF_NO_RECURSE @@ -393,22 +399,25 @@ static void format_and_print_ref_item(struct ref_array_item *item, int maxwidth, int current = 0; int color; struct strbuf out = STRBUF_INIT, name = STRBUF_INIT; - const char *prefix = ""; + const char *prefix_to_show = ""; + const char *prefix_to_skip = NULL; const char *desc = item->refname; char *to_free = NULL; switch (item->kind) { case FILTER_REFS_BRANCHES: - skip_prefix(desc, "refs/heads/", &desc); + prefix_to_skip = "refs/heads/"; + skip_prefix(desc, prefix_to_skip, &desc); if (!filter->detached && !strcmp(desc, head)) current = 1; else color = BRANCH_COLOR_LOCAL; break; case FILTER_REFS_REMOTES: - skip_prefix(desc, "refs/remotes/", &desc); + prefix_to_skip = "refs/remotes/"; + skip_prefix(desc, prefix_to_skip, &desc); color = BRANCH_COLOR_REMOTE; - prefix = remote_prefix; + prefix_to_show = remote_prefix; break; case FILTER_REFS_DETACHED_HEAD: desc = to_free = get_head_description(); @@ -425,7 +434,7 @@ static void format_and_print_ref_item(struct ref_array_item *item, int maxwidth, color = BRANCH_COLOR_CURRENT; } - strbuf_addf(&name, "%s%s", prefix, desc); + strbuf_addf(&name, "%s%s", prefix_to_show, desc); if (filter->verbose) { int utf8_compensation = strlen(name.buf) - utf8_strwidth(name.buf); strbuf_addf(&out, "%c %s%-*s%s", c, branch_get_color(color), @@ -436,8 +445,10 @@ static void format_and_print_ref_item(struct ref_array_item *item, int maxwidth, name.buf, branch_get_color(BRANCH_COLOR_RESET)); if (item->symref) { - skip_prefix(item->symref, "refs/remotes/", &desc); - strbuf_addf(&out, " -> %s", desc); + const char *symref = item->symref; + if (prefix_to_skip) + skip_prefix(symref, prefix_to_skip, &symref); + strbuf_addf(&out, " -> %s", symref); } else if (filter->verbose) /* " f7c0c00 [ahead 58, behind 197] vcs-svn: drop obj_pool.h" */ @@ -552,8 +563,7 @@ static void rename_branch(const char *oldname, const char *newname, int force) if (recovery) warning(_("Renamed a misnamed branch '%s' away"), oldref.buf + 11); - /* no need to pass logmsg here as HEAD didn't really move */ - if (!strcmp(oldname, head) && create_symref("HEAD", newref.buf, NULL)) + if (replace_each_worktree_head_symref(oldref.buf, newref.buf)) die(_("Branch renamed to %s, but HEAD is not updated!"), newname); strbuf_addf(&oldsection, "branch.%s", oldref.buf + 11); 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..e13303787a 100644 --- a/builtin/commit.c +++ b/builtin/commit.c @@ -694,7 +694,7 @@ static int prepare_to_commit(const char *index_file, const char *prefix, } } - if (message.len) { + if (have_option_m) { strbuf_addbuf(&sb, &message); hook_arg1 = "message"; } else if (logfile && !strcmp(logfile, "-")) { @@ -726,9 +726,18 @@ static int prepare_to_commit(const char *index_file, const char *prefix, &sb, &ctx); hook_arg1 = "message"; } else if (!stat(git_path_merge_msg(), &statbuf)) { + /* + * prepend SQUASH_MSG here if it exists and a + * "merge --squash" was originally performed + */ + if (!stat(git_path_squash_msg(), &statbuf)) { + if (strbuf_read_file(&sb, git_path_squash_msg(), 0) < 0) + die_errno(_("could not read SQUASH_MSG")); + hook_arg1 = "squash"; + } else + hook_arg1 = "merge"; if (strbuf_read_file(&sb, git_path_merge_msg(), 0) < 0) die_errno(_("could not read MERGE_MSG")); - hook_arg1 = "merge"; } else if (!stat(git_path_squash_msg(), &statbuf)) { if (strbuf_read_file(&sb, git_path_squash_msg(), 0) < 0) die_errno(_("could not read SQUASH_MSG")); @@ -1162,9 +1171,9 @@ static int parse_and_validate_options(int argc, const char *argv[], f++; if (f > 1) die(_("Only one of -c/-C/-F/--fixup can be used.")); - if (message.len && f > 0) + if (have_option_m && f > 0) die((_("Option -m cannot be combined with -c/-C/-F/--fixup."))); - if (f || message.len) + if (f || have_option_m) template_file = NULL; if (edit_message) use_message = edit_message; @@ -1690,7 +1699,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..1d7c6ef558 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) { @@ -392,6 +417,7 @@ static int urlmatch_collect_fn(const char *var, const char *value, void *cb) static int get_urlmatch(const char *var, const char *url) { + int ret; char *section_tail; struct string_list_item *item; struct urlmatch_config config = { STRING_LIST_INIT_DUP }; @@ -418,6 +444,8 @@ static int get_urlmatch(const char *var, const char *url) git_config_with_options(urlmatch_config_entry, &config, &given_config_source, respect_includes); + ret = !values.nr; + for_each_string_list_item(item, &values) { struct urlmatch_current_candidate_value *matched = item->util; struct strbuf buf = STRBUF_INIT; @@ -434,7 +462,7 @@ static int get_urlmatch(const char *var, const char *url) free(config.url.url); free((void *)config.section); - return 0; + return ret; } static char *default_user_config(void) @@ -541,6 +569,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..bfd0be44a9 100644 --- a/builtin/fetch-pack.c +++ b/builtin/fetch-pack.c @@ -16,10 +16,20 @@ static void add_sought_entry(struct ref ***sought, int *nr, int *alloc, struct ref *ref; struct object_id oid; - if (!get_oid_hex(name, &oid) && name[GIT_SHA1_HEXSZ] == ' ') - name += GIT_SHA1_HEXSZ + 1; - else + if (!get_oid_hex(name, &oid)) { + if (name[GIT_SHA1_HEXSZ] == ' ') { + /* <sha1> <ref>, find refname */ + name += GIT_SHA1_HEXSZ + 1; + } else if (name[GIT_SHA1_HEXSZ] == '\0') { + ; /* <sha1>, leave sha1 as name */ + } else { + /* <ref>, clear cruft from oid */ + oidclr(&oid); + } + } else { + /* <ref>, clear cruft from get_oid_hex */ oidclr(&oid); + } ref = alloc_ref(name); oidcpy(&ref->old_oid, &oid); @@ -149,7 +159,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..111b6f6cf1 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; @@ -511,12 +522,14 @@ static int grep_objects(struct grep_opt *opt, const struct pathspec *pathspec, } static int grep_directory(struct grep_opt *opt, const struct pathspec *pathspec, - int exc_std) + int exc_std, int use_index) { struct dir_struct dir; int i, hit = 0; memset(&dir, 0, sizeof(dir)); + if (!use_index) + dir.flags |= DIR_NO_GITLINKS; if (exc_std) setup_standard_excludes(&dir); @@ -562,7 +575,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 +710,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 +770,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 +807,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 +837,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)) @@ -880,7 +904,7 @@ int cmd_grep(int argc, const char **argv, const char *prefix) int use_exclude = (opt_exclude < 0) ? use_index : !!opt_exclude; if (list.nr) die(_("--no-index or --untracked cannot be used with revs.")); - hit = grep_directory(&opt, &pathspec, use_exclude); + hit = grep_directory(&opt, &pathspec, use_exclude, use_index); } else if (0 <= opt_exclude) { die(_("--[no-]exclude-standard cannot be used for tracked contents.")); } else if (!list.nr) { @@ -894,7 +918,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/index-pack.c b/builtin/index-pack.c index 45245199ae..2d1eb8bb8a 100644 --- a/builtin/index-pack.c +++ b/builtin/index-pack.c @@ -1599,6 +1599,18 @@ static void show_pack_info(int stat_only) } } +static const char *derive_filename(const char *pack_name, const char *suffix, + struct strbuf *buf) +{ + size_t len; + if (!strip_suffix(pack_name, ".pack", &len)) + die(_("packfile name '%s' does not end with '.pack'"), + pack_name); + strbuf_add(buf, pack_name, len); + strbuf_addstr(buf, suffix); + return buf->buf; +} + int cmd_index_pack(int argc, const char **argv, const char *prefix) { int i, fix_thin_pack = 0, verify = 0, stat_only = 0; @@ -1707,24 +1719,11 @@ int cmd_index_pack(int argc, const char **argv, const char *prefix) usage(index_pack_usage); if (fix_thin_pack && !from_stdin) die(_("--fix-thin cannot be used without --stdin")); - if (!index_name && pack_name) { - size_t len; - if (!strip_suffix(pack_name, ".pack", &len)) - die(_("packfile name '%s' does not end with '.pack'"), - pack_name); - strbuf_add(&index_name_buf, pack_name, len); - strbuf_addstr(&index_name_buf, ".idx"); - index_name = index_name_buf.buf; - } - if (keep_msg && !keep_name && pack_name) { - size_t len; - if (!strip_suffix(pack_name, ".pack", &len)) - die(_("packfile name '%s' does not end with '.pack'"), - pack_name); - strbuf_add(&keep_name_buf, pack_name, len); - strbuf_addstr(&keep_name_buf, ".idx"); - keep_name = keep_name_buf.buf; - } + if (!index_name && pack_name) + index_name = derive_filename(pack_name, ".idx", &index_name_buf); + if (keep_msg && !keep_name && pack_name) + keep_name = derive_filename(pack_name, ".keep", &keep_name_buf); + if (verify) { if (!index_name) die(_("--verify with no packfile name given")); diff --git a/builtin/init-db.c b/builtin/init-db.c index 6223b7d46a..b2d8d40a67 100644 --- a/builtin/init-db.c +++ b/builtin/init-db.c @@ -95,6 +95,8 @@ static void copy_templates(const char *template_dir) struct strbuf path = STRBUF_INIT; struct strbuf template_path = STRBUF_INIT; size_t template_len; + struct repository_format template_format; + struct strbuf err = STRBUF_INIT; DIR *dir; char *to_free = NULL; @@ -121,17 +123,18 @@ static void copy_templates(const char *template_dir) /* Make sure that template is from the correct vintage */ strbuf_addstr(&template_path, "config"); - repository_format_version = 0; - git_config_from_file(check_repository_format_version, - template_path.buf, NULL); + read_repository_format(&template_format, template_path.buf); strbuf_setlen(&template_path, template_len); - if (repository_format_version && - repository_format_version != GIT_REPO_VERSION) { - warning(_("not copying templates of " - "a wrong format version %d from '%s'"), - repository_format_version, - template_dir); + /* + * No mention of version at all is OK, but anything else should be + * verified. + */ + if (template_format.version >= 0 && + verify_repository_format(&template_format, &err) < 0) { + warning(_("not copying templates from '%s': %s"), + template_dir, err.buf); + strbuf_release(&err); goto close_free_return; } @@ -199,13 +202,13 @@ static int create_default_files(const char *template_path) /* reading existing config may have overwrote it */ if (init_shared_repository != -1) - shared_repository = init_shared_repository; + set_shared_repository(init_shared_repository); /* * We would have created the above under user's umask -- under * shared-repository settings, we would need to fix them up. */ - if (shared_repository) { + if (get_shared_repository()) { adjust_shared_perm(get_git_dir()); adjust_shared_perm(git_path_buf(&buf, "refs")); adjust_shared_perm(git_path_buf(&buf, "refs/heads")); @@ -322,6 +325,7 @@ int set_git_dir_init(const char *git_dir, const char *real_git_dir, set_git_dir(real_path(git_dir)); git_link = NULL; } + startup_info->have_repository = 1; return 0; } @@ -369,7 +373,7 @@ int init_db(const char *template_dir, unsigned int flags) create_object_directory(); - if (shared_repository) { + if (get_shared_repository()) { char buf[10]; /* We do not spell "group" and such, so that * the configuration can be read by older version @@ -377,12 +381,12 @@ int init_db(const char *template_dir, unsigned int flags) * and compatibility values for PERM_GROUP and * PERM_EVERYBODY. */ - if (shared_repository < 0) + if (get_shared_repository() < 0) /* force to the mode value */ - xsnprintf(buf, sizeof(buf), "0%o", -shared_repository); - else if (shared_repository == PERM_GROUP) + xsnprintf(buf, sizeof(buf), "0%o", -get_shared_repository()); + else if (get_shared_repository() == PERM_GROUP) xsnprintf(buf, sizeof(buf), "%d", OLD_PERM_GROUP); - else if (shared_repository == PERM_EVERYBODY) + else if (get_shared_repository() == PERM_EVERYBODY) xsnprintf(buf, sizeof(buf), "%d", OLD_PERM_EVERYBODY); else die("BUG: invalid value for shared_repository"); @@ -398,7 +402,7 @@ int init_db(const char *template_dir, unsigned int flags) "", and the last '%s%s' is the verbatim directory name. */ printf(_("%s%s Git repository in %s%s\n"), reinit ? _("Reinitialized existing") : _("Initialized empty"), - shared_repository ? _(" shared") : "", + get_shared_repository() ? _(" shared") : "", git_dir, len && git_dir[len-1] != '/' ? "/" : ""); } @@ -493,8 +497,8 @@ int cmd_init_db(int argc, const char **argv, const char *prefix) * and we know shared_repository should always be 0; * but just in case we play safe. */ - saved = shared_repository; - shared_repository = 0; + saved = get_shared_repository(); + set_shared_repository(0); switch (safe_create_leading_directories_const(argv[0])) { case SCLD_OK: case SCLD_PERMS: @@ -506,7 +510,7 @@ int cmd_init_db(int argc, const char **argv, const char *prefix) die_errno(_("cannot mkdir %s"), argv[0]); break; } - shared_repository = saved; + set_shared_repository(saved); if (mkdir(argv[0], 0777) < 0) die_errno(_("cannot mkdir %s"), argv[0]); mkdir_tried = 1; @@ -524,7 +528,7 @@ int cmd_init_db(int argc, const char **argv, const char *prefix) } if (init_shared_repository != -1) - shared_repository = init_shared_repository; + set_shared_repository(init_shared_repository); /* * GIT_WORK_TREE makes sense only in conjunction with GIT_DIR 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/merge.c b/builtin/merge.c index 101ffeff4c..bf2f2614fb 100644 --- a/builtin/merge.c +++ b/builtin/merge.c @@ -1257,12 +1257,12 @@ int cmd_merge(int argc, const char **argv, const char *prefix) builtin_merge_options); if (!head_commit) { - struct commit *remote_head; /* * If the merged head is a valid one there is no reason * to forbid "git merge" into a branch yet to be born. * We do the same for "git pull". */ + unsigned char *remote_head_sha1; if (squash) die(_("Squash commit into empty head not supported yet")); if (fast_forward == FF_NO) @@ -1270,13 +1270,13 @@ int cmd_merge(int argc, const char **argv, const char *prefix) "an empty head")); remoteheads = collect_parents(head_commit, &head_subsumed, argc, argv, NULL); - remote_head = remoteheads->item; - if (!remote_head) + if (!remoteheads) die(_("%s - not something we can merge"), argv[0]); if (remoteheads->next) die(_("Can merge only exactly one commit into empty head")); - read_empty(remote_head->object.oid.hash, 0); - update_ref("initial pull", "HEAD", remote_head->object.oid.hash, + remote_head_sha1 = remoteheads->item->object.oid.hash; + read_empty(remote_head_sha1, 0); + update_ref("initial pull", "HEAD", remote_head_sha1, NULL, 0, UPDATE_REFS_DIE_ON_ERR); goto done; } 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/mv.c b/builtin/mv.c index aeae855e2b..a2014266b6 100644 --- a/builtin/mv.c +++ b/builtin/mv.c @@ -252,15 +252,18 @@ int cmd_mv(int argc, const char **argv, const char *prefix) int pos; if (show_only || verbose) printf(_("Renaming %s to %s\n"), src, dst); - if (!show_only && mode != INDEX) { - if (rename(src, dst) < 0 && !ignore_errors) - die_errno(_("renaming '%s' failed"), src); - if (submodule_gitfile[i]) { - if (submodule_gitfile[i] != SUBMODULE_WITH_GITDIR) - connect_work_tree_and_git_dir(dst, submodule_gitfile[i]); - if (!update_path_in_gitmodules(src, dst)) - gitmodules_modified = 1; - } + if (show_only) + continue; + if (mode != INDEX && rename(src, dst) < 0) { + if (ignore_errors) + continue; + die_errno(_("renaming '%s' failed"), src); + } + if (submodule_gitfile[i]) { + if (submodule_gitfile[i] != SUBMODULE_WITH_GITDIR) + connect_work_tree_and_git_dir(dst, submodule_gitfile[i]); + if (!update_path_in_gitmodules(src, dst)) + gitmodules_modified = 1; } if (mode == WORKING_DIRECTORY) diff --git a/builtin/notes.c b/builtin/notes.c index 52aa9af74b..6fd058de92 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) @@ -741,13 +744,14 @@ static int merge_commit(struct notes_merge_options *o) static int git_config_get_notes_strategy(const char *key, enum notes_merge_strategy *strategy) { - const char *value; + char *value; - if (git_config_get_string_const(key, &value)) + if (git_config_get_string(key, &value)) return 1; if (parse_notes_merge_strategy(value, strategy)) git_die_config(key, "unknown notes merge strategy %s", value); + free(value); return 0; } @@ -806,10 +810,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 +905,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 +947,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/pack-objects.c b/builtin/pack-objects.c index a27de5b323..b6664ce4d8 100644 --- a/builtin/pack-objects.c +++ b/builtin/pack-objects.c @@ -759,6 +759,10 @@ static off_t write_reused_pack(struct sha1file *f) return reuse_packfile_offset - sizeof(struct pack_header); } +static const char no_split_warning[] = N_( +"disabling bitmap writing, packs are split due to pack.packSizeLimit" +); + static void write_pack_file(void) { uint32_t i = 0, j; @@ -813,7 +817,10 @@ static void write_pack_file(void) fixup_pack_header_footer(fd, sha1, pack_tmp_name, nr_written, sha1, offset); close(fd); - write_bitmap_index = 0; + if (write_bitmap_index) { + warning(_(no_split_warning)); + write_bitmap_index = 0; + } } if (!pack_to_stdout) { 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/replace.c b/builtin/replace.c index 748c6ca954..b58c714cb8 100644 --- a/builtin/replace.c +++ b/builtin/replace.c @@ -440,6 +440,7 @@ int cmd_replace(int argc, const char **argv, const char *prefix) }; check_replace_refs = 0; + git_config(git_default_config, NULL); argc = parse_options(argc, argv, prefix, options, git_replace_usage, 0); diff --git a/builtin/rev-parse.c b/builtin/rev-parse.c index 7a4f2c0b0c..c961b74c5a 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; @@ -505,6 +505,7 @@ N_("git rev-parse --parseopt [<options>] -- [<args>...]\n" int cmd_rev_parse(int argc, const char **argv, const char *prefix) { int i, as_is = 0, verify = 0, quiet = 0, revs_count = 0, type = 0; + int did_repo_setup = 0; int has_dashdash = 0; int output_prefix = 0; unsigned char sha1[20]; @@ -528,11 +529,40 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix) } } - prefix = setup_git_directory(); - git_config(git_default_config, NULL); + /* No options; just report on whether we're in a git repo or not. */ + if (argc == 1) { + setup_git_directory(); + git_config(git_default_config, NULL); + return 0; + } + for (i = 1; i < argc; i++) { const char *arg = argv[i]; + if (!strcmp(arg, "--local-env-vars")) { + int i; + for (i = 0; local_repo_env[i]; i++) + printf("%s\n", local_repo_env[i]); + continue; + } + if (!strcmp(arg, "--resolve-git-dir")) { + const char *gitdir = argv[++i]; + if (!gitdir) + die("--resolve-git-dir requires an argument"); + gitdir = resolve_gitdir(gitdir); + if (!gitdir) + die("not a gitdir '%s'", argv[i]); + puts(gitdir); + continue; + } + + /* The rest of the options require a git repository. */ + if (!did_repo_setup) { + prefix = setup_git_directory(); + git_config(git_default_config, NULL); + did_repo_setup = 1; + } + if (!strcmp(arg, "--git-path")) { if (!argv[i + 1]) die("--git-path requires an argument"); @@ -706,12 +736,6 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix) add_ref_exclusion(&ref_excludes, arg + 10); continue; } - if (!strcmp(arg, "--local-env-vars")) { - int i; - for (i = 0; local_repo_env[i]; i++) - printf("%s\n", local_repo_env[i]); - continue; - } if (!strcmp(arg, "--show-toplevel")) { const char *work_tree = get_git_work_tree(); if (work_tree) @@ -767,16 +791,6 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix) puts(prefix_filename(pfx, strlen(pfx), get_git_common_dir())); continue; } - if (!strcmp(arg, "--resolve-git-dir")) { - const char *gitdir = argv[++i]; - if (!gitdir) - die("--resolve-git-dir requires an argument"); - gitdir = resolve_gitdir(gitdir); - if (!gitdir) - die("not a gitdir '%s'", argv[i]); - puts(gitdir); - continue; - } if (!strcmp(arg, "--is-inside-git-dir")) { printf("%s\n", is_inside_git_dir() ? "true" : "false"); diff --git a/builtin/send-pack.c b/builtin/send-pack.c index f6e5d643c1..1ff5a67538 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); } @@ -225,7 +225,7 @@ int cmd_send_pack(int argc, const char **argv, const char *prefix) * --all and --mirror are incompatible; neither makes sense * with any refspecs. */ - if ((refspecs && (send_all || args.send_mirror)) || + if ((nr_refspecs > 0 && (send_all || args.send_mirror)) || (send_all && args.send_mirror)) usage_with_options(send_pack_usage, options); 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/submodule--helper.c b/builtin/submodule--helper.c index ed764c9f0e..3bea3aaa50 100644 --- a/builtin/submodule--helper.c +++ b/builtin/submodule--helper.c @@ -37,9 +37,9 @@ static int module_list_compute(int argc, const char **argv, for (i = 0; i < active_nr; i++) { const struct cache_entry *ce = active_cache[i]; - if (!S_ISGITLINK(ce->ce_mode) || - !match_pathspec(pathspec, ce->name, ce_namelen(ce), - 0, ps_matched, 1)) + if (!match_pathspec(pathspec, ce->name, ce_namelen(ce), + 0, ps_matched, 1) || + !S_ISGITLINK(ce->ce_mode)) continue; ALLOC_GROW(list->entries, list->nr + 1, list->alloc); @@ -147,11 +147,11 @@ static int clone_submodule(const char *path, const char *gitdir, const char *url static int module_clone(int argc, const char **argv, const char *prefix) { - const char *path = NULL, *name = NULL, *url = NULL; + const char *name = NULL, *url = NULL; const char *reference = NULL, *depth = NULL; int quiet = 0; FILE *submodule_dot_git; - char *sm_gitdir, *cwd, *p; + char *p, *path = NULL, *sm_gitdir; struct strbuf rel_path = STRBUF_INIT; struct strbuf sb = STRBUF_INIT; @@ -188,8 +188,18 @@ static int module_clone(int argc, const char **argv, const char *prefix) argc = parse_options(argc, argv, prefix, module_clone_options, git_submodule_helper_usage, 0); + if (!path || !*path) + die(_("submodule--helper: unspecified or empty --path")); + strbuf_addf(&sb, "%s/modules/%s", get_git_dir(), name); - sm_gitdir = strbuf_detach(&sb, NULL); + sm_gitdir = xstrdup(absolute_path(sb.buf)); + strbuf_reset(&sb); + + if (!is_absolute_path(path)) { + strbuf_addf(&sb, "%s/%s", get_git_work_tree(), path); + path = strbuf_detach(&sb, NULL); + } else + path = xstrdup(path); if (!file_exists(sm_gitdir)) { if (safe_create_leading_directories_const(sm_gitdir) < 0) @@ -206,45 +216,30 @@ static int module_clone(int argc, const char **argv, const char *prefix) } /* Write a .git file in the submodule to redirect to the superproject. */ - if (safe_create_leading_directories_const(path) < 0) - die(_("could not create directory '%s'"), path); - - if (path && *path) - strbuf_addf(&sb, "%s/.git", path); - else - strbuf_addstr(&sb, ".git"); - + strbuf_addf(&sb, "%s/.git", path); if (safe_create_leading_directories_const(sb.buf) < 0) die(_("could not create leading directories of '%s'"), sb.buf); submodule_dot_git = fopen(sb.buf, "w"); if (!submodule_dot_git) die_errno(_("cannot open file '%s'"), sb.buf); - fprintf(submodule_dot_git, "gitdir: %s\n", - relative_path(sm_gitdir, path, &rel_path)); + fprintf_or_die(submodule_dot_git, "gitdir: %s\n", + relative_path(sm_gitdir, path, &rel_path)); if (fclose(submodule_dot_git)) die(_("could not close file %s"), sb.buf); strbuf_reset(&sb); strbuf_reset(&rel_path); - cwd = xgetcwd(); /* Redirect the worktree of the submodule in the superproject's config */ - if (!is_absolute_path(sm_gitdir)) { - strbuf_addf(&sb, "%s/%s", cwd, sm_gitdir); - free(sm_gitdir); - sm_gitdir = strbuf_detach(&sb, NULL); - } - - strbuf_addf(&sb, "%s/%s", cwd, path); p = git_pathdup_submodule(path, "config"); if (!p) die(_("could not get submodule directory for '%s'"), path); git_config_set_in_file(p, "core.worktree", - relative_path(sb.buf, sm_gitdir, &rel_path)); + relative_path(path, sm_gitdir, &rel_path)); strbuf_release(&sb); strbuf_release(&rel_path); free(sm_gitdir); - free(cwd); + free(path); free(p); return 0; } 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); @@ -435,12 +435,14 @@ int create_bundle(struct bundle_header *header, const char *path, /* write prerequisites */ if (compute_and_write_prerequisites(bundle_fd, &revs, argc, argv)) - return -1; + goto err; argc = setup_revisions(argc, argv, &revs, NULL); - if (argc > 1) - return error(_("unrecognized argument: %s"), argv[1]); + if (argc > 1) { + error(_("unrecognized argument: %s"), argv[1]); + goto err; + } object_array_remove_duplicates(&revs.pending); @@ -448,17 +450,26 @@ int create_bundle(struct bundle_header *header, const char *path, if (!ref_count) die(_("Refusing to create empty bundle.")); else if (ref_count < 0) - return -1; + goto err; /* write pack */ - if (write_pack_data(bundle_fd, &revs)) - return -1; + if (write_pack_data(bundle_fd, &revs)) { + bundle_fd = -1; /* already closed by the above call */ + goto err; + } if (!bundle_to_stdout) { if (commit_lock_file(&lock)) die_errno(_("cannot create '%s'"), path); } return 0; +err: + if (!bundle_to_stdout) { + if (0 <= bundle_fd) + close(bundle_fd); + rollback_lock_file(&lock); + } + return -1; } int unbundle(struct bundle_header *header, int bundle_fd, int flags) @@ -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 @@ -650,7 +651,6 @@ extern int prefer_symlink_refs; extern int log_all_ref_updates; extern int warn_ambiguous_refs; extern int warn_on_object_refname_ambiguity; -extern int shared_repository; extern const char *apply_default_whitespace; extern const char *apply_default_ignorewhitespace; extern const char *git_attributes_file; @@ -663,6 +663,9 @@ extern size_t delta_base_cache_limit; extern unsigned long big_file_threshold; extern unsigned long pack_size_limit_cfg; +void set_shared_repository(int value); +int get_shared_repository(void); + /* * Do replace refs need to be checked this run? This variable is * initialized to true unless --no-replace-object is used or @@ -744,9 +747,39 @@ extern int grafts_replace_parents; */ #define GIT_REPO_VERSION 0 #define GIT_REPO_VERSION_READ 1 -extern int repository_format_version; extern int repository_format_precious_objects; -extern int check_repository_format(void); + +struct repository_format { + int version; + int precious_objects; + int is_bare; + char *work_tree; + struct string_list unknown_extensions; +}; + +/* + * Read the repository format characteristics from the config file "path" into + * "format" struct. Returns the numeric version. On error, -1 is returned, + * format->version is set to -1, and all other fields in the struct are + * undefined. + */ +int read_repository_format(struct repository_format *format, const char *path); + +/* + * Verify that the repository described by repository_format is something we + * can read. If it is, return 0. Otherwise, return -1, and "err" will describe + * any errors encountered. + */ +int verify_repository_format(const struct repository_format *format, + struct strbuf *err); + +/* + * Check the repository format version in the path found in get_git_dir(), + * and die if it is a version we don't understand. Generally one would + * set_git_dir() before calling this, and use it only for "are we in a valid + * repo?". + */ +extern void check_repository_format(void); #define MTIME_CHANGED 0x0001 #define CTIME_CHANGED 0x0002 @@ -925,8 +958,6 @@ static inline int is_empty_blob_sha1(const unsigned char *sha1) int git_mkstemp(char *path, size_t n, const char *template); -int git_mkstemps(char *path, size_t n, const char *template, int suffix_len); - /* set default permissions by passing mode arguments to open(2) */ int git_mkstemps_mode(char *pattern, int suffix_len, int mode); int git_mkstemp_mode(char *pattern, int mode); @@ -1320,6 +1351,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,15 +1548,14 @@ 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 *); extern int git_config_with_options(config_fn_t fn, void *, struct git_config_source *config_source, int respect_includes); -extern int git_config_early(config_fn_t fn, void *, const char *repo_config); extern int git_parse_ulong(const char *, unsigned long *); extern int git_parse_maybe_bool(const char *); extern int git_config_int(const char *, const char *); @@ -1548,7 +1579,6 @@ extern void git_config_set_multivar_in_file(const char *, const char *, const ch extern int git_config_rename_section(const char *, const char *); extern int git_config_rename_section_in_file(const char *, const char *, const char *); extern const char *git_etc_gitconfig(void); -extern int check_repository_format_version(const char *var, const char *value, void *cb); extern int git_env_bool(const char *, int); extern unsigned long git_env_ulong(const char *, unsigned long); extern int git_config_system(void); @@ -1560,6 +1590,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 +1670,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; @@ -1759,7 +1799,7 @@ int split_cmdline(char *cmdline, const char ***argv); /* Takes a negative value returned by split_cmdline */ const char *split_cmdline_strerror(int cmdline_errno); -/* git.c */ +/* setup.c */ struct startup_info { int have_repository; const char *prefix; diff --git a/compat/apple-common-crypto.h b/compat/apple-common-crypto.h index d3fb264181..11727f3e1e 100644 --- a/compat/apple-common-crypto.h +++ b/compat/apple-common-crypto.h @@ -3,12 +3,18 @@ #define HEADER_HMAC_H #define HEADER_SHA_H #include <CommonCrypto/CommonHMAC.h> -#define HMAC_CTX CCHmacContext -#define HMAC_Init(hmac, key, len, algo) CCHmacInit(hmac, algo, key, len) -#define HMAC_Update CCHmacUpdate -#define HMAC_Final(hmac, hash, ptr) CCHmacFinal(hmac, hash) -#define HMAC_CTX_cleanup(ignore) #define EVP_md5(...) kCCHmacAlgMD5 +/* CCHmac doesn't take md_len and the return type is void */ +#define HMAC git_CC_HMAC +static inline unsigned char *git_CC_HMAC(CCHmacAlgorithm alg, + const void *key, int key_len, + const unsigned char *data, size_t data_len, + unsigned char *md, unsigned int *md_len) +{ + CCHmac(alg, key, key_len, data, data_len, md); + return md; +} + #if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1070 #define APPLE_LION_OR_NEWER #include <Security/Security.h> diff --git a/compat/mingw.c b/compat/mingw.c index af56c1fe61..0413d5c3cd 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]); @@ -722,15 +763,12 @@ struct tm *localtime_r(const time_t *timep, struct tm *result) char *mingw_getcwd(char *pointer, int len) { - int i; wchar_t wpointer[MAX_PATH]; if (!_wgetcwd(wpointer, ARRAY_SIZE(wpointer))) return NULL; if (xwcstoutf(pointer, wpointer, len) < 0) return NULL; - for (i = 0; pointer[i]; i++) - if (pointer[i] == '\\') - pointer[i] = '/'; + convert_slashes(pointer); return pointer; } @@ -1601,7 +1639,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 +1889,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 +2088,35 @@ 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). + */ + convert_slashes(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 +2195,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..edec9e0253 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) @@ -124,6 +142,7 @@ static inline int fcntl(int fd, int cmd, ...) #define sigemptyset(x) (void)0 static inline int sigaddset(sigset_t *set, int signum) { return 0; } +#define SIG_BLOCK 0 #define SIG_UNBLOCK 0 static inline int sigprocmask(int how, const sigset_t *set, sigset_t *oldset) { return 0; } @@ -176,8 +195,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 +322,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 @@ -374,12 +397,22 @@ static inline char *mingw_find_last_dir_sep(const char *path) ret = (char *)path; return ret; } +static inline void convert_slashes(char *path) +{ + for (; *path; path++) + if (*path == '\\') + *path = '/'; +} #define find_last_dir_sep mingw_find_last_dir_sep int mingw_offset_1st_component(const char *path); #define offset_1st_component mingw_offset_1st_component #define PATH_SEP ';' +#if !defined(__MINGW64_VERSION_MAJOR) && (!defined(_MSC_VER) || _MSC_VER < 1800) #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/snprintf.c b/compat/snprintf.c index 42ea1ac110..0b11688537 100644 --- a/compat/snprintf.c +++ b/compat/snprintf.c @@ -9,7 +9,7 @@ * always have room for a trailing NUL byte. */ #ifndef SNPRINTF_SIZE_CORR -#if defined(WIN32) && (!defined(__GNUC__) || __GNUC__ < 4) +#if defined(WIN32) && (!defined(__GNUC__) || __GNUC__ < 4) && (!defined(_MSC_VER) || _MSC_VER < 1900) #define SNPRINTF_SIZE_CORR 1 #else #define SNPRINTF_SIZE_CORR 0 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/vcbuild/include/unistd.h b/compat/vcbuild/include/unistd.h index c65c2cd566..3a959d124c 100644 --- a/compat/vcbuild/include/unistd.h +++ b/compat/vcbuild/include/unistd.h @@ -45,11 +45,15 @@ typedef unsigned long long uintmax_t; typedef int64_t off64_t; +#if !defined(_MSC_VER) || _MSC_VER < 1600 #define INTMAX_MIN _I64_MIN #define INTMAX_MAX _I64_MAX #define UINTMAX_MAX _UI64_MAX #define UINT32_MAX 0xffffffff /* 4294967295U */ +#else +#include <stdint.h> +#endif #define STDIN_FILENO 0 #define STDOUT_FILENO 1 diff --git a/compat/win32/pthread.h b/compat/win32/pthread.h index 8ad187344f..1c164088fb 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; @@ -101,4 +104,11 @@ static inline void *pthread_getspecific(pthread_key_t key) return TlsGetValue(key); } +#ifndef __MINGW64_VERSION_MAJOR +static inline int pthread_sigmask(int how, const sigset_t *set, sigset_t *oset) +{ + return 0; +} +#endif + #endif /* PTHREAD_H */ diff --git a/compat/win32mmap.c b/compat/win32mmap.c index 80a8c9af4f..519d51f2b6 100644 --- a/compat/win32mmap.c +++ b/compat/win32mmap.c @@ -2,37 +2,42 @@ void *git_mmap(void *start, size_t length, int prot, int flags, int fd, off_t offset) { - HANDLE hmap; + HANDLE osfhandle, hmap; void *temp; - off_t len; - struct stat st; + LARGE_INTEGER len; uint64_t o = offset; uint32_t l = o & 0xFFFFFFFF; uint32_t h = (o >> 32) & 0xFFFFFFFF; - if (!fstat(fd, &st)) - len = st.st_size; - else + osfhandle = (HANDLE)_get_osfhandle(fd); + if (!GetFileSizeEx(osfhandle, &len)) die("mmap: could not determine filesize"); - if ((length + offset) > len) - length = xsize_t(len - offset); + if ((length + offset) > len.QuadPart) + length = xsize_t(len.QuadPart - offset); if (!(flags & MAP_PRIVATE)) die("Invalid usage of mmap when built with USE_WIN32_MMAP"); - hmap = CreateFileMapping((HANDLE)_get_osfhandle(fd), NULL, - PAGE_WRITECOPY, 0, 0, NULL); + hmap = CreateFileMapping(osfhandle, NULL, + prot == PROT_READ ? PAGE_READONLY : PAGE_WRITECOPY, 0, 0, NULL); - if (!hmap) + if (!hmap) { + errno = EINVAL; return MAP_FAILED; + } - temp = MapViewOfFileEx(hmap, FILE_MAP_COPY, h, l, length, start); + temp = MapViewOfFileEx(hmap, prot == PROT_READ ? + FILE_MAP_READ : FILE_MAP_COPY, h, l, length, start); if (!CloseHandle(hmap)) warning("unable to close file mapping handle"); - return temp ? temp : MAP_FAILED; + if (temp) + return temp; + + errno = GetLastError() == ERROR_COMMITMENT_LIMIT ? EFBIG : EINVAL; + return MAP_FAILED; } int git_munmap(void *start, size_t length) 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; @@ -107,7 +108,7 @@ static int handle_path_include(const char *path, struct config_include_data *inc expanded = expand_user_path(path); if (!expanded) - return error("Could not expand include path '%s'", path); + return error("could not expand include path '%s'", path); path = expanded; /* @@ -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); } @@ -949,7 +950,7 @@ static int git_default_branch_config(const char *var, const char *value) else if (!strcmp(value, "always")) autorebase = AUTOREBASE_ALWAYS; else - return error("Malformed value for %s", var); + return error("malformed value for %s", var); return 0; } @@ -975,7 +976,7 @@ static int git_default_push_config(const char *var, const char *value) else if (!strcmp(value, "current")) push_default = PUSH_DEFAULT_CURRENT; else { - error("Malformed value for %s: %s", var, value); + error("malformed value for %s: %s", var, value); return error("Must be one of nothing, matching, simple, " "upstream or current."); } @@ -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; @@ -1184,11 +1188,12 @@ int git_config_system(void) return !git_env_bool("GIT_CONFIG_NOSYSTEM", 0); } -int git_config_early(config_fn_t fn, void *data, const char *repo_config) +static int do_git_config_sequence(config_fn_t fn, void *data) { int ret = 0, found = 0; char *xdg_config = xdg_config_home("config"); char *user_config = expand_user_path("~/.gitconfig"); + char *repo_config = git_pathdup("config"); if (git_config_system() && !access_or_die(git_etc_gitconfig(), R_OK, 0)) { ret += git_config_from_file(fn, git_etc_gitconfig(), @@ -1224,6 +1229,7 @@ int git_config_early(config_fn_t fn, void *data, const char *repo_config) free(xdg_config); free(user_config); + free(repo_config); return ret == 0 ? found : ret; } @@ -1231,8 +1237,6 @@ int git_config_with_options(config_fn_t fn, void *data, struct git_config_source *config_source, int respect_includes) { - char *repo_config = NULL; - int ret; struct config_include_data inc = CONFIG_INCLUDE_INIT; if (respect_includes) { @@ -1253,11 +1257,7 @@ int git_config_with_options(config_fn_t fn, void *data, else if (config_source && config_source->blob) return git_config_from_blob_ref(fn, config_source->blob, data); - repo_config = git_pathdup("config"); - ret = git_config_early(fn, data, repo_config); - if (repo_config) - free(repo_config); - return ret; + return do_git_config_sequence(fn, data); } static void git_config_raw(config_fn_t fn, void *data) @@ -1309,14 +1309,11 @@ static struct config_set_element *configset_find_element(struct config_set *cs, struct config_set_element k; struct config_set_element *found_entry; char *normalized_key; - int ret; /* * `key` may come from the user, so normalize it before using it * for querying entries from the hashmap. */ - ret = git_config_parse_key(key, &normalized_key, NULL); - - if (ret) + if (git_config_parse_key(key, &normalized_key, NULL)) return NULL; hashmap_entry_init(&k, strhash(normalized_key)); @@ -1594,6 +1591,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) { @@ -2193,9 +2214,13 @@ void git_config_set_multivar_in_file(const char *config_filename, const char *key, const char *value, const char *value_regex, int multi_replace) { - if (git_config_set_multivar_in_file_gently(config_filename, key, value, - value_regex, multi_replace) < 0) - die(_("Could not set '%s' to '%s'"), key, value); + if (!git_config_set_multivar_in_file_gently(config_filename, key, value, + value_regex, multi_replace)) + return; + if (value) + die(_("could not set '%s' to '%s'"), key, value); + else + die(_("could not unset '%s'"), key); } int git_config_set_multivar_gently(const char *key, const char *value, @@ -2376,7 +2401,7 @@ int git_config_rename_section(const char *old_name, const char *new_name) #undef config_error_nonbool int config_error_nonbool(const char *var) { - return error("Missing value for '%s'", var); + return error("missing value for '%s'", var); } int parse_config_key(const char *var, @@ -2411,3 +2436,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..40d6b29eee 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 @@ -186,6 +187,7 @@ ifeq ($(uname_O),Cygwin) X = .exe UNRELIABLE_FSTAT = UnfortunatelyYes SPARSE_FLAGS = -isystem /usr/include/w32api -Wno-one-bit-signed-bitfield + OBJECT_CREATION_USES_RENAMES = UnfortunatelyNeedsTo endif ifeq ($(uname_S),FreeBSD) NEEDS_LIBICONV = YesPlease @@ -518,13 +520,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 +542,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..c279025747 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]) @@ -963,10 +970,6 @@ AC_CHECK_LIB([iconv], [locale_charset], [CHARSET_LIB=-lcharset])]) GIT_CONF_SUBST([CHARSET_LIB]) # -# Define NO_HMAC_CTX_CLEANUP=YesPlease if HMAC_CTX_cleanup is missing. -AC_CHECK_LIB([crypto], [HMAC_CTX_cleanup], - [], [GIT_CONF_SUBST([NO_HMAC_CTX_CLEANUP], [YesPlease])]) -# # Define HAVE_CLOCK_GETTIME=YesPlease if clock_gettime is available. GIT_CHECK_FUNC(clock_gettime, [HAVE_CLOCK_GETTIME=YesPlease], @@ -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/hooks/multimail/CHANGES b/contrib/hooks/multimail/CHANGES index bc77e66b85..53c71b422a 100644 --- a/contrib/hooks/multimail/CHANGES +++ b/contrib/hooks/multimail/CHANGES @@ -1,3 +1,38 @@ +Release 1.3.0 +============= + +* New options multimailhook.htmlInIntro and multimailhook.htmlInFooter + now allow using HTML in the introduction and footer of emails (e.g. + for a more pleasant formatting or to insert a link to the commit on + a web interface). + +* A new option multimailhook.commitBrowseURL gives a simpler (and less + flexible) way to add a link to a web interface for commit emails + than multimailhook.htmlInIntro and multimailhook.htmlInFooter. + +* A new public function config.add_config_parameters was added to + allow custom hooks to set specific Git configuration variables + without modifying the configuration files. See an example in + post-receive.example. + +* Error handling for SMTP has been improved (we used to print Python + backtraces for legitimate errors). + +* The SMTP mailer can now check TLS certificates when the newly added + configuration variable multimailhook.smtpCACerts. + +* Python 3 portability has been improved. + +* The documentation's formatting has been improved. + +* The testsuite has been improved (we now use pyflakes to check for + errors in the code). + +This version has been tested with Python 2.4 and 2.6 to 3.5, and Git +v1.7.10-406-gdc801e7, 2.1.4 and 2.8.1.339.g3ad15fd. + +No change since 1.3 RC1. + Release 1.2.0 ============= diff --git a/contrib/hooks/multimail/CONTRIBUTING.rst b/contrib/hooks/multimail/CONTRIBUTING.rst index 09efdb059c..530ecbfcf1 100644 --- a/contrib/hooks/multimail/CONTRIBUTING.rst +++ b/contrib/hooks/multimail/CONTRIBUTING.rst @@ -1,3 +1,6 @@ +Contributing +============ + git-multimail is an open-source project, built by volunteers. We would welcome your help! @@ -6,9 +9,7 @@ and Matthieu Moy <matthieu.moy@grenoble-inp.fr>. Please note that although a copy of git-multimail is distributed in the "contrib" section of the main Git project, development takes place -in a separate git-multimail repository on GitHub: - - https://github.com/git-multimail/git-multimail +in a separate `git-multimail repository on GitHub`_. Whenever enough changes to git-multimail have accumulated, a new code-drop of git-multimail will be submitted for inclusion in the Git @@ -21,10 +22,12 @@ to the maintainers). Please sign off your patches as per the `Git project practice <https://github.com/git/git/blob/master/Documentation/SubmittingPatches#L234>`__. -General discussion of git-multimail can take place on the main Git -mailing list, - - git@vger.kernel.org +General discussion of git-multimail can take place on the main `Git +mailing list`_. Please CC emails regarding git-multimail to the maintainers so that we don't overlook them. + + +.. _`git-multimail repository on GitHub`: https://github.com/git-multimail/git-multimail +.. _`Git mailing list`: git@vger.kernel.org diff --git a/contrib/hooks/multimail/README b/contrib/hooks/multimail/README index 55120685f0..1e04801978 100644 --- a/contrib/hooks/multimail/README +++ b/contrib/hooks/multimail/README @@ -1,5 +1,5 @@ -git-multimail (version 1.2.0) -============================= +git-multimail 1.3.0 +=================== .. image:: https://travis-ci.org/git-multimail/git-multimail.svg?branch=master :target: https://travis-ci.org/git-multimail/git-multimail @@ -127,6 +127,13 @@ changes of this type, please consider sharing them with the community.) +Troubleshooting/FAQ +------------------- + +Please read `<doc/troubleshooting.rst>`__ for frequently asked +questions and common issues with git-multimail. + + Configuration ------------- @@ -134,19 +141,16 @@ By default, git-multimail mostly takes its configuration from the following ``git config`` settings: multimailhook.environment - This describes the general environment of the repository. In most cases, you do not need to specify a value for this variable: `git-multimail` will autodetect which environment to use. Currently supported values: - * generic - + generic the username of the pusher is read from $USER or $USERNAME and the repository name is derived from the repository's path. - * gitolite - + gitolite the username of the pusher is read from $GL_USER, the repository name is read from $GL_REPO, and the From: header value is optionally read from gitolite.conf (see multimailhook.from). @@ -154,8 +158,7 @@ multimailhook.environment For more information about gitolite and git-multimail, read `<doc/gitolite.rst>`__ - * stash - + stash Environment to use when ``git-multimail`` is ran as an Atlassian BitBucket Server (formerly known as Atlassian Stash) hook. @@ -169,8 +172,7 @@ multimailhook.environment and repo come from these two command line flags, which must be specified. - * gerrit - + gerrit Environment to use when ``git-multimail`` is ran as a ``ref-updated`` Gerrit hook. @@ -205,14 +207,12 @@ multimailhook.environment * If none of the above apply, then ``generic`` is used. multimailhook.repoName - A short name of this Git repository, to be used in various places in the notification email text. The default is to use $GL_REPO for gitolite repositories, or otherwise to derive this value from the repository path name. multimailhook.mailingList - The list of email addresses to which notification emails should be sent, as RFC 2822 email addresses separated by commas. This configuration option can be multivalued. Leave it unset or set it @@ -221,7 +221,6 @@ multimailhook.mailingList specific types of notification email. multimailhook.refchangeList - The list of email addresses to which summary emails about reference changes should be sent, as RFC 2822 email addresses separated by commas. This configuration option can be @@ -231,7 +230,6 @@ multimailhook.refchangeList multimailhook.mailingList is set. multimailhook.announceList - The list of email addresses to which emails about new annotated tags should be sent, as RFC 2822 email addresses separated by commas. This configuration option can be multivalued. The @@ -241,7 +239,6 @@ multimailhook.announceList even if one of the other values is set. multimailhook.commitList - The list of email addresses to which emails about individual new commits should be sent, as RFC 2822 email addresses separated by commas. This configuration option can be multivalued. The @@ -251,7 +248,6 @@ multimailhook.commitList multimailhook.mailingList is set. multimailhook.announceShortlog - If this option is set to true, then emails about changes to annotated tags include a shortlog of changes since the previous tag. This can be useful if the annotated tags represent releases; @@ -261,7 +257,6 @@ multimailhook.announceShortlog rather than useful. Default is false. multimailhook.commitEmailFormat - The format of email messages for the individual commits, can be "text" or "html". In the latter case, the emails will include diffs using colorized HTML instead of plain text used by default. Note that this currently the @@ -274,8 +269,43 @@ multimailhook.commitEmailFormat the message starting with ``+++`` or ``---`` colored in red or green). -multimailhook.refchangeShowGraph + By default, all the message is HTML-escaped. See + ``multimailhook.htmlInIntro`` to change this behavior. + +multimailhook.commitBrowseURL + Used to generate a link to an online repository browser in commit + emails. This variable must be a string. Format directives like + ``%(<variable>)s`` will be expanded the same way as template + strings. In particular, ``%(id)s`` will be replaced by the full + Git commit identifier (40-chars hexadecimal). + + If the string does not contain any format directive, then + ``%(id)s`` will be automatically added to the string. If you don't + want ``%(id)s`` to be automatically added, use the empty format + directive ``%()s`` anywhere in the string. + + For example, a suitable value for the git-multimail project itself + would be + ``https://github.com/git-multimail/git-multimail/commit/%(id)s``. + +multimailhook.htmlInIntro, multimailhook.htmlInFooter + When generating an HTML message, git-multimail escapes any HTML + sequence by default. This means that if a template contains HTML + like ``<a href="foo">link</a>``, the reader will see the HTML + source code and not a proper link. + + Set ``multimailhook.htmlInIntro`` to true to allow writting HTML + formatting in introduction templates. Similarly, set + ``multimailhook.htmlInFooter`` for HTML in the footer. + Variables expanded in the template are still escaped. For example, + if a repository's path contains a ``<``, it will be rendered as + such in the message. + + Read `<doc/customizing-emails.rst>`__ for more details and + examples. + +multimailhook.refchangeShowGraph If this option is set to true, then summary emails about reference changes will additionally include: @@ -287,7 +317,6 @@ multimailhook.refchangeShowGraph specified in graphOpts. The default is false. multimailhook.refchangeShowLog - If this option is set to true, then summary emails about reference changes will include a detailed log of the added commits in addition to the one line summary. The log is generated by running @@ -295,71 +324,80 @@ multimailhook.refchangeShowLog Default is false. multimailhook.mailer - This option changes the way emails are sent. Accepted values are: - - sendmail (the default): use the command ``/usr/sbin/sendmail`` or + * **sendmail (the default)**: use the command ``/usr/sbin/sendmail`` or ``/usr/lib/sendmail`` (or sendmailCommand, if configured). This mode can be further customized via the following options: - * multimailhook.sendmailCommand - - The command used by mailer ``sendmail`` to send emails. Shell - quoting is allowed in the value of this setting, but remember that - Git requires double-quotes to be escaped; e.g.:: + multimailhook.sendmailCommand + The command used by mailer ``sendmail`` to send emails. Shell + quoting is allowed in the value of this setting, but remember that + Git requires double-quotes to be escaped; e.g.:: - git config multimailhook.sendmailcommand '/usr/sbin/sendmail -oi -t -F \"Git Repo\"' + git config multimailhook.sendmailcommand '/usr/sbin/sendmail -oi -t -F \"Git Repo\"' - Default is '/usr/sbin/sendmail -oi -t' or - '/usr/lib/sendmail -oi -t' (depending on which file is - present and executable). + Default is '/usr/sbin/sendmail -oi -t' or + '/usr/lib/sendmail -oi -t' (depending on which file is + present and executable). - * multimailhook.envelopeSender + multimailhook.envelopeSender + If set then pass this value to sendmail via the -f option to set + the envelope sender address. - If set then pass this value to sendmail via the -f option to set - the envelope sender address. - - - smtp: use Python's smtplib. This is useful when the sendmail + * **smtp**: use Python's smtplib. This is useful when the sendmail command is not available on the system. This mode can be further customized via the following options: - * multimailhook.smtpServer - - The name of the SMTP server to connect to. The value can - also include a colon and a port number; e.g., - ``mail.example.com:25``. Default is 'localhost' using port 25. - - * multimailhook.smtpUser - * multimailhook.smtpPass - - Server username and password. Required if smtpEncryption is 'ssl'. - Note that the username and password currently need to be - set cleartext in the configuration file, which is not - recommended. If you need to use this option, be sure your - configuration file is read-only. + multimailhook.smtpServer + The name of the SMTP server to connect to. The value can + also include a colon and a port number; e.g., + ``mail.example.com:25``. Default is 'localhost' using port 25. - * multimailhook.envelopeSender + multimailhook.smtpUser, multimailhook.smtpPass + Server username and password. Required if smtpEncryption is 'ssl'. + Note that the username and password currently need to be + set cleartext in the configuration file, which is not + recommended. If you need to use this option, be sure your + configuration file is read-only. + multimailhook.envelopeSender The sender address to be passed to the SMTP server. If unset, then the value of multimailhook.from is used. - * multimailhook.smtpServerTimeout - + multimailhook.smtpServerTimeout Timeout in seconds. - * multimailhook.smtpEncryption - - Set the security type. Allowed values: none, ssl, tls. - Default=none. - - * multimailhook.smtpServerDebugLevel - + multimailhook.smtpEncryption + Set the security type. Allowed values: ``none``, ``ssl``, ``tls`` (starttls). + Default is ``none``. + + multimailhook.smtpCACerts + Set the path to a list of trusted CA certificate to verify the + server certificate, only supported when ``smtpEncryption`` is + ``tls``. If unset or empty, the server certificate is not + verified. If it targets a file containing a list of trusted CA + certificates (PEM format) these CAs will be used to verify the + server certificate. For debian, you can set + ``/etc/ssl/certs/ca-certificates.crt`` for using the system + trusted CAs. For self-signed server, you can add your server + certificate to the system store:: + + cd /usr/local/share/ca-certificates/ + openssl s_client -starttls smtp \ + -connect mail.example.net:587 -showcerts \ + </dev/null 2>/dev/null \ + | openssl x509 -outform PEM >mail.example.net.crt + update-ca-certificates + + and used the updated ``/etc/ssl/certs/ca-certificates.crt``. Or + directly use your ``/path/to/mail.example.net.crt``. Default is + unset. + + multimailhook.smtpServerDebugLevel Integer number. Set to greater than 0 to activate debugging. -multimailhook.from -multimailhook.fromCommit -multimailhook.fromRefchange - +multimailhook.from, multimailhook.fromCommit, multimailhook.fromRefchange If set, use this value in the From: field of generated emails. ``fromCommit`` is used for commit emails, ``fromRefchange`` is used for refchange emails, and ``from`` is used as fall-back in @@ -372,7 +410,7 @@ multimailhook.fromRefchange - The value ``pusher``, in which case the pusher's address (if available) will be used. - - The value ``author`` (meaningful only for replyToCommit), in which + - The value ``author`` (meaningful only for ``fromCommit``), in which case the commit author's address will be used. If config values are unset, the value of the From: header is @@ -396,14 +434,12 @@ multimailhook.fromRefchange 3. Use the value of multimailhook.envelopeSender. multimailhook.administrator - The name and/or email address of the administrator of the Git repository; used in FOOTER_TEMPLATE. Default is multimailhook.envelopesender if it is set; otherwise a generic string is used. multimailhook.emailPrefix - All emails have this string prepended to their subjects, to aid email filtering (though filtering based on the X-Git-* email headers is probably more robust). Default is the short name of @@ -411,16 +447,14 @@ multimailhook.emailPrefix value to the empty string to suppress the email prefix. multimailhook.emailMaxLines - The maximum number of lines that should be included in the body of a generated email. If not specified, there is no limit. Lines beyond the limit are suppressed and counted, and a final line is added indicating the number of suppressed lines. multimailhook.emailMaxLineLength - The maximum length of a line in the email body. Lines longer than - this limit are truncated to this length with a trailing `` [...]`` + this limit are truncated to this length with a trailing ``[...]`` added to indicate the missing text. The default is 500, because (a) diffs with longer lines are probably from binary files, for which a diff is useless, and (b) even if a text file has such long @@ -428,7 +462,6 @@ multimailhook.emailMaxLineLength truncation, set this option to 0. multimailhook.maxCommitEmails - The maximum number of commit emails to send for a given change. When the number of patches is larger that this value, only the summary refchange email is sent. This can avoid accidental @@ -436,14 +469,12 @@ multimailhook.maxCommitEmails emails limit, set this option to 0. The default is 500. multimailhook.emailStrictUTF8 - If this boolean option is set to `true`, then the main part of the email body is forced to be valid UTF-8. Any characters that are not valid UTF-8 are converted to the Unicode replacement character, U+FFFD. The default is `true`. multimailhook.diffOpts - Options passed to ``git diff-tree`` when generating the summary information for ReferenceChange emails. Default is ``--stat --summary --find-copies-harder``. Add -p to those options to @@ -452,7 +483,6 @@ multimailhook.diffOpts details. multimailhook.graphOpts - Options passed to ``git log --graph`` when generating graphs for the reference change summary emails (used only if refchangeShowGraph is true). The default is '--oneline --decorate'. @@ -460,7 +490,6 @@ multimailhook.graphOpts Shell quoting is allowed; see logOpts for details. multimailhook.logOpts - Options passed to ``git log`` to generate additional info for reference change emails (used only if refchangeShowLog is set). For example, adding -p will show each commit's complete diff. The @@ -479,7 +508,6 @@ multimailhook.logOpts logopts = --pretty=format:\"%h %aN <%aE>%n%s%n%n%b%n\" multimailhook.commitLogOpts - Options passed to ``git log`` to generate additional info for revision change emails. For example, adding --ignore-all-spaces will suppress whitespace changes. The default options are ``-C @@ -487,26 +515,21 @@ multimailhook.commitLogOpts multimailhook.logOpts for details. multimailhook.dateSubstitute - String to use as a substitute for ``Date:`` in the output of ``git log`` while formatting commit messages. This is usefull to avoid emitting a line that can be interpreted by mailers as the start of a cited message (Zimbra webmail in particular). Defaults to - ``CommitDate: ``. Set to an empty string or ``none`` to deactivate + ``CommitDate:``. Set to an empty string or ``none`` to deactivate the behavior. multimailhook.emailDomain - Domain name appended to the username of the person doing the push to convert it into an email address (via ``"%s@%s" % (username, emaildomain)``). More complicated schemes can be implemented by overriding Environment and overriding its get_pusher_email() method. -multimailhook.replyTo -multimailhook.replyToCommit -multimailhook.replyToRefchange - +multimailhook.replyTo, multimailhook.replyToCommit, multimailhook.replyToRefchange Addresses to use in the Reply-To: field for commit emails (replyToCommit) and refchange emails (replyToRefchange). multimailhook.replyTo is used as default when replyToCommit or @@ -519,32 +542,24 @@ multimailhook.replyToRefchange commit emails. multimailhook.quiet - Do not output the list of email recipients from the hook multimailhook.stdout - For debugging, send emails to stdout rather than to the mailer. Equivalent to the --stdout command line option multimailhook.scanCommitForCc - If this option is set to true, than recipients from lines in commit body that starts with ``CC:`` will be added to CC list. Default: false multimailhook.combineWhenSingleCommit - If this option is set to true and a single new commit is pushed to a branch, combine the summary and commit email messages into a single email. Default: true -multimailhook.refFilterInclusionRegex -multimailhook.refFilterExclusionRegex -multimailhook.refFilterDoSendRegex -multimailhook.refFilterDontSendRegex - +multimailhook.refFilterInclusionRegex, multimailhook.refFilterExclusionRegex, multimailhook.refFilterDoSendRegex, multimailhook.refFilterDontSendRegex **Warning:** these options are experimental. They should work, but the user-interface is not stable yet (in particular, the option names may change). If you want to participate in stabilizing the @@ -626,14 +641,16 @@ git-multimail is mostly customized via an "environment" that describes the local environment in which Git is running. Two types of environment are built in: -* GenericEnvironment: a stand-alone Git repository. +GenericEnvironment + a stand-alone Git repository. -* GitoliteEnvironment: a Git repository that is managed by gitolite - [3]_. For such repositories, the identity of the pusher is read from - environment variable $GL_USER, the name of the repository is read - from $GL_REPO (if it is not overridden by multimailhook.reponame), - and the From: header value is optionally read from gitolite.conf - (see multimailhook.from). +GitoliteEnvironment + a Git repository that is managed by gitolite + [3]_. For such repositories, the identity of the pusher is read from + environment variable $GL_USER, the name of the repository is read + from $GL_REPO (if it is not overridden by multimailhook.reponame), + and the From: header value is optionally read from gitolite.conf + (see multimailhook.from). By default, git-multimail assumes GitoliteEnvironment if $GL_USER and $GL_REPO are set, and otherwise assumes GenericEnvironment. diff --git a/contrib/hooks/multimail/README.Git b/contrib/hooks/multimail/README.Git index 300a2a4d2d..ee1fa75f99 100644 --- a/contrib/hooks/multimail/README.Git +++ b/contrib/hooks/multimail/README.Git @@ -6,10 +6,10 @@ website: https://github.com/git-multimail/git-multimail The version in this directory was obtained from the upstream project -on October 11 2015 and consists of the "git-multimail" subdirectory from +on May 03 2016 and consists of the "git-multimail" subdirectory from revision - c0791b9ef5821a746fc3475c25765e640452eaae refs/tags/1.2.0 + 26f3ae9f86aa7f8a054ba89235c4d3879f98b03d refs/tags/1.3.0 Please see the README file in this directory for information about how to report bugs or contribute to git-multimail. diff --git a/contrib/hooks/multimail/doc/customizing-emails.rst b/contrib/hooks/multimail/doc/customizing-emails.rst new file mode 100644 index 0000000000..3f5b67f768 --- /dev/null +++ b/contrib/hooks/multimail/doc/customizing-emails.rst @@ -0,0 +1,56 @@ +Customizing the content and formatting of emails +================================================ + +Overloading template strings +---------------------------- + +The content of emails is generated based on template strings defined +in ``git_multimail.py``. You can customize these template strings +without changing the script itself, by defining a Python wrapper +around it. The python wrapper should ``import git_multimail`` and then +override the ``git_multimail.*`` strings like this:: + + import sys # needed for sys.argv + + # Import and customize git_multimail: + import git_multimail + git_multimail.REVISION_INTRO_TEMPLATE = """...""" + git_multimail.COMBINED_INTRO_TEMPLATE = git_multimail.REVISION_INTRO_TEMPLATE + + # start git_multimail itself: + git_multimail.main(sys.argv[1:]) + +The template strings can use any value already used in the existing +templates (read the source code). + +Using HTML in template strings +------------------------------ + +If ``multimailhook.commitEmailFormat`` is set to HTML, then +git-multimail will generate HTML emails for commit notifications. The +log and diff will be formatted automatically by git-multimail. By +default, any HTML special character in the templates will be escaped. + +To use HTML formatting in the introduction of the email, set +``multimailhook.htmlInIntro`` to ``true``. Then, the template can +contain any HTML tags, that will be sent as-is in the email. For +example, to add some formatting and a link to the online commit, use +a format like:: + + git_multimail.REVISION_INTRO_TEMPLATE = """\ + <span style="color:#808080">This is an automated email from the git hooks/post-receive script.</span><br /><br /> + + <strong>%(pusher)s</strong> pushed a commit to %(refname_type)s %(short_refname)s + in repository %(repo_shortname)s.<br /> + + <a href="https://github.com/git-multimail/git-multimail/commit/%(newrev)s">View on GitHub</a>. + """ + +Note that the values expanded from ``%(variable)s`` in the format +strings will still be escaped. + +For a less flexible but easier to set up way to add a link to commit +emails, see ``multimailhook.commitBrowseURL``. + +Similarly, one can set ``multimailhook.htmlInFooter`` and override any +of the ``*_FOOTER*`` template strings. diff --git a/contrib/hooks/multimail/doc/troubleshooting.rst b/contrib/hooks/multimail/doc/troubleshooting.rst new file mode 100644 index 0000000000..d3f346f076 --- /dev/null +++ b/contrib/hooks/multimail/doc/troubleshooting.rst @@ -0,0 +1,44 @@ +Troubleshooting issues with git-multimail: a FAQ +================================================ + +Git is not using the right address in the From/To/Reply-To field +---------------------------------------------------------------- + +First, make sure that git-multimail actually uses what you think it is +using. A lot happens to your email (especially when posting to a +mailing-list) between the time `git_multimail.py` sends it and the +time it reaches your inbox. + +A simple test (to do on a test repository, do not use in production as +it would disable email sending): change your post-receive hook to call +`git_multimail.py` with the `--stdout` option, and try to push to the +repository. You should see something like:: + + Counting objects: 3, done. + Writing objects: 100% (3/3), 263 bytes | 0 bytes/s, done. + Total 3 (delta 0), reused 0 (delta 0) + remote: Sending notification emails to: foo.bar@example.com + remote: =========================================================================== + remote: Date: Mon, 25 Apr 2016 18:39:59 +0200 + remote: To: foo.bar@example.com + remote: Subject: [git] branch master updated: foo + remote: MIME-Version: 1.0 + remote: Content-Type: text/plain; charset=utf-8 + remote: Content-Transfer-Encoding: 8bit + remote: Message-ID: <20160425163959.2311.20498@anie> + remote: From: Auth Or <Foo.Bar@example.com> + remote: Reply-To: Auth Or <Foo.Bar@example.com> + remote: X-Git-Host: example + ... + remote: -- + remote: To stop receiving notification emails like this one, please contact + remote: the administrator of this repository. + remote: =========================================================================== + To /path/to/repo + 6278f04..e173f20 master -> master + +Note: this does not include the sender (Return-Path: header), as it is +not part of the message content but passed to the mailer. Some mailer +show the ``Sender:`` field instead of the ``From:`` field (for +example, Zimbra Webmail shows ``From: <sender-field> on behalf of +<from-field>``). diff --git a/contrib/hooks/multimail/git_multimail.py b/contrib/hooks/multimail/git_multimail.py index 0180dba431..f2c92aeed8 100755 --- a/contrib/hooks/multimail/git_multimail.py +++ b/contrib/hooks/multimail/git_multimail.py @@ -1,6 +1,6 @@ #! /usr/bin/env python -__version__ = '1.2.0' +__version__ = '1.3.0' # Copyright (c) 2015 Matthieu Moy and others # Copyright (c) 2012-2014 Michael Haggerty and others @@ -57,6 +57,11 @@ import subprocess import shlex import optparse import smtplib +try: + import ssl +except ImportError: + # Python < 2.6 do not have ssl, but that's OK if we don't use it. + pass import time import cgi @@ -75,6 +80,9 @@ def is_ascii(s): if PYTHON3: + def is_string(s): + return isinstance(s, str) + def str_to_bytes(s): return s.encode(ENCODING) @@ -91,6 +99,12 @@ if PYTHON3: except UnicodeEncodeError: f.buffer.write(msg.encode(ENCODING)) else: + def is_string(s): + try: + return isinstance(s, basestring) + except NameError: # Silence Pyflakes warning + raise + def str_to_bytes(s): return s @@ -313,6 +327,16 @@ in repository %(repo_shortname)s. """ +LINK_TEXT_TEMPLATE = """\ +View the commit online: +%(browse_url)s + +""" + +LINK_HTML_TEMPLATE = """\ +<p><a href="%(browse_url)s">View the commit online</a>.</p> +""" + REVISION_FOOTER_TEMPLATE = FOOTER_TEMPLATE @@ -532,6 +556,28 @@ class Config(object): assert words[-1] == '' return words[:-1] + @staticmethod + def add_config_parameters(c): + """Add configuration parameters to Git. + + c is either an str or a list of str, each element being of the + form 'var=val' or 'var', with the same syntax and meaning as + the argument of 'git -c var=val'. + """ + if isinstance(c, str): + c = (c,) + parameters = os.environ.get('GIT_CONFIG_PARAMETERS', '') + if parameters: + parameters += ' ' + # git expects GIT_CONFIG_PARAMETERS to be of the form + # "'name1=value1' 'name2=value2' 'name3=value3'" + # including everything inside the double quotes (but not the double + # quotes themselves). Spacing is critical. Also, if a value contains + # a literal single quote that quote must be represented using the + # four character sequence: '\'' + parameters += ' '.join("'" + x.replace("'", "'\\''") + "'" for x in c) + os.environ['GIT_CONFIG_PARAMETERS'] = parameters + def get(self, name, default=None): try: values = self._split(read_git_output( @@ -745,6 +791,12 @@ class Change(object): values['multimail_version'] = get_version() return values + # Aliases usable in template strings. Tuple of pairs (destination, + # source). + VALUES_ALIAS = ( + ("id", "newrev"), + ) + def get_values(self, **extra_values): """Return a dictionary {keyword: expansion} for this Change. @@ -760,6 +812,9 @@ class Change(object): values = self._values.copy() if extra_values: values.update(extra_values) + + for alias, val in self.VALUES_ALIAS: + values[alias] = values[val] return values def expand(self, template, **extra_values): @@ -772,10 +827,14 @@ class Change(object): return template % self.get_values(**extra_values) - def expand_lines(self, template, **extra_values): + def expand_lines(self, template, html_escape_val=False, **extra_values): """Break template into lines and expand each line.""" values = self.get_values(**extra_values) + if html_escape_val: + for k in values: + if is_string(values[k]): + values[k] = cgi.escape(values[k], True) for line in template.splitlines(True): yield line % values @@ -787,9 +846,10 @@ class Change(object): values = self.get_values(**extra_values) if self._contains_html_diff: - values['contenttype'] = 'html' + self._content_type = 'html' else: - values['contenttype'] = 'plain' + self._content_type = 'plain' + values['contenttype'] = self._content_type for line in template.splitlines(): (name, value) = line.split(': ', 1) @@ -819,7 +879,11 @@ class Change(object): raise NotImplementedError() - def generate_email_intro(self): + def generate_browse_link(self, base_url): + """Generate a link to an online repository browser.""" + return iter(()) + + def generate_email_intro(self, html_escape_val=False): """Generate the email intro for this Change, a line at a time. The output will be used as the standard boilerplate at the top @@ -835,7 +899,7 @@ class Change(object): raise NotImplementedError() - def generate_email_footer(self): + def generate_email_footer(self, html_escape_val): """Generate the footer of the email, a line at a time. The footer is always included, irrespective of @@ -876,9 +940,18 @@ class Change(object): for line in self.generate_email_header(**extra_header_values): yield line yield '\n' - for line in self._wrap_for_html(self.generate_email_intro()): + html_escape_val = (self.environment.html_in_intro and + self._contains_html_diff) + intro = self.generate_email_intro(html_escape_val) + if not self.environment.html_in_intro: + intro = self._wrap_for_html(intro) + for line in intro: yield line + if self.environment.commitBrowseURL: + for line in self.generate_browse_link(self.environment.commitBrowseURL): + yield line + body = self.generate_email_body(push) if body_filter is not None: body = body_filter(body) @@ -939,8 +1012,12 @@ class Change(object): yield line if self._contains_html_diff: yield '</pre>' - - for line in self._wrap_for_html(self.generate_email_footer()): + html_escape_val = (self.environment.html_in_footer and + self._contains_html_diff) + footer = self.generate_email_footer(html_escape_val) + if not self.environment.html_in_footer: + footer = self._wrap_for_html(footer) + for line in footer: yield line def get_alt_fromaddr(self): @@ -992,6 +1069,7 @@ class Revision(Change): values['rev_short'] = self.rev.short values['change_type'] = self.change_type values['refname'] = self.refname + values['newrev'] = self.rev.sha1 values['short_refname'] = self.reference_change.short_refname values['refname_type'] = self.reference_change.refname_type values['reply_to_msgid'] = self.reference_change.msgid @@ -1015,8 +1093,26 @@ class Revision(Change): ): yield line - def generate_email_intro(self): - for line in self.expand_lines(REVISION_INTRO_TEMPLATE): + def generate_browse_link(self, base_url): + if '%(' not in base_url: + base_url += '%(id)s' + url = "".join(self.expand_lines(base_url)) + if self._content_type == 'html': + for line in self.expand_lines(LINK_HTML_TEMPLATE, + html_escape_val=True, + browse_url=url): + yield line + elif self._content_type == 'plain': + for line in self.expand_lines(LINK_TEXT_TEMPLATE, + html_escape_val=False, + browse_url=url): + yield line + else: + raise NotImplementedError("Content-type %s unsupported. Please report it as a bug.") + + def generate_email_intro(self, html_escape_val=False): + for line in self.expand_lines(REVISION_INTRO_TEMPLATE, + html_escape_val=html_escape_val): yield line def generate_email_body(self, push): @@ -1031,8 +1127,9 @@ class Revision(Change): else: yield line - def generate_email_footer(self): - return self.expand_lines(REVISION_FOOTER_TEMPLATE) + def generate_email_footer(self, html_escape_val): + return self.expand_lines(REVISION_FOOTER_TEMPLATE, + html_escape_val=html_escape_val) def generate_email(self, push, body_filter=None, extra_header_values={}): self._contains_diff() @@ -1217,8 +1314,9 @@ class ReferenceChange(Change): ): yield line - def generate_email_intro(self): - for line in self.expand_lines(self.intro_template): + def generate_email_intro(self, html_escape_val=False): + for line in self.expand_lines(self.intro_template, + html_escape_val=html_escape_val): yield line def generate_email_body(self, push): @@ -1238,8 +1336,9 @@ class ReferenceChange(Change): for line in self.generate_revision_change_summary(push): yield line - def generate_email_footer(self): - return self.expand_lines(self.footer_template) + def generate_email_footer(self, html_escape_val): + return self.expand_lines(self.footer_template, + html_escape_val=html_escape_val) def generate_revision_change_graph(self, push): if self.showgraph: @@ -1896,6 +1995,7 @@ class SMTPMailer(Mailer): smtpservertimeout=10.0, smtpserverdebuglevel=0, smtpencryption='none', smtpuser='', smtppass='', + smtpcacerts='' ): if not envelopesender: sys.stderr.write( @@ -1915,6 +2015,7 @@ class SMTPMailer(Mailer): self.security = smtpencryption self.username = smtpuser self.password = smtppass + self.smtpcacerts = smtpcacerts try: def call(klass, server, timeout): try: @@ -1925,13 +2026,56 @@ class SMTPMailer(Mailer): if self.security == 'none': self.smtp = call(smtplib.SMTP, self.smtpserver, timeout=self.smtpservertimeout) elif self.security == 'ssl': + if self.smtpcacerts: + raise smtplib.SMTPException( + "Checking certificate is not supported for ssl, prefer starttls" + ) self.smtp = call(smtplib.SMTP_SSL, self.smtpserver, timeout=self.smtpservertimeout) elif self.security == 'tls': + if 'ssl' not in sys.modules: + sys.stderr.write( + '*** Your Python version does not have the ssl library installed\n' + '*** smtpEncryption=tls is not available.\n' + '*** Either upgrade Python to 2.6 or later\n' + ' or use git_multimail.py version 1.2.\n') if ':' not in self.smtpserver: self.smtpserver += ':587' # default port for TLS self.smtp = call(smtplib.SMTP, self.smtpserver, timeout=self.smtpservertimeout) + # start: ehlo + starttls + # equivalent to + # self.smtp.ehlo() + # self.smtp.starttls() + # with acces to the ssl layer self.smtp.ehlo() - self.smtp.starttls() + if not self.smtp.has_extn("starttls"): + raise smtplib.SMTPException("STARTTLS extension not supported by server") + resp, reply = self.smtp.docmd("STARTTLS") + if resp != 220: + raise smtplib.SMTPException("Wrong answer to the STARTTLS command") + if self.smtpcacerts: + self.smtp.sock = ssl.wrap_socket( + self.smtp.sock, + ca_certs=self.smtpcacerts, + cert_reqs=ssl.CERT_REQUIRED + ) + else: + self.smtp.sock = ssl.wrap_socket( + self.smtp.sock, + cert_reqs=ssl.CERT_NONE + ) + sys.stderr.write( + '*** Warning, the server certificat is not verified (smtp) ***\n' + '*** set the option smtpCACerts ***\n' + ) + if not hasattr(self.smtp.sock, "read"): + # using httplib.FakeSocket with Python 2.5.x or earlier + self.smtp.sock.read = self.smtp.sock.recv + self.smtp.file = smtplib.SSLFakeFile(self.smtp.sock) + self.smtp.helo_resp = None + self.smtp.ehlo_resp = None + self.smtp.esmtp_features = {} + self.smtp.does_esmtp = 0 + # end: ehlo + starttls self.smtp.ehlo() else: sys.stdout.write('*** Error: Control reached an invalid option. ***') @@ -1951,6 +2095,7 @@ class SMTPMailer(Mailer): def __del__(self): if hasattr(self, 'smtp'): self.smtp.quit() + del self.smtp def send(self, lines, to_addrs): try: @@ -1958,13 +2103,24 @@ class SMTPMailer(Mailer): self.smtp.login(self.username, self.password) msg = ''.join(lines) # turn comma-separated list into Python list if needed. - if isinstance(to_addrs, basestring): + if is_string(to_addrs): to_addrs = [email for (name, email) in getaddresses([to_addrs])] self.smtp.sendmail(self.envelopesender, to_addrs, msg) - except Exception: + except smtplib.SMTPResponseException: sys.stderr.write('*** Error sending email ***\n') - sys.stderr.write('*** %s\n' % sys.exc_info()[1]) - self.smtp.quit() + err = sys.exc_info()[1] + sys.stderr.write('*** Error %d: %s\n' % (err.smtp_code, + bytes_to_str(err.smtp_error))) + try: + smtp = self.smtp + # delete the field before quit() so that in case of + # error, self.smtp is deleted anyway. + del self.smtp + smtp.quit() + except: + sys.stderr.write('*** Error closing the SMTP connection ***\n') + sys.stderr.write('*** Exiting anyway ... ***\n') + sys.stderr.write('*** %s\n' % sys.exc_info()[1]) sys.exit(1) @@ -2097,6 +2253,14 @@ class Environment(object): If "html", generate commit emails in HTML instead of plain text used by default. + html_in_intro (bool) + html_in_footer (bool) + + When generating HTML emails, the introduction (respectively, + the footer) will be HTML-escaped iff html_in_intro (respectively, + the footer) is true. When false, only the values used to expand + the template are escaped. + refchange_showgraph (bool) True iff refchanges emails should include a detailed graph. @@ -2160,6 +2324,9 @@ class Environment(object): self.osenv = osenv or os.environ self.announce_show_shortlog = False self.commit_email_format = "text" + self.html_in_intro = False + self.html_in_footer = False + self.commitBrowseURL = None self.maxcommitemails = 500 self.diffopts = ['--stat', '--summary', '--find-copies-harder'] self.graphopts = ['--oneline', '--decorate'] @@ -2236,7 +2403,7 @@ class Environment(object): The return value is always a new dictionary.""" if self._values is None: - values = {} + values = {'': ''} # %()s expands to the empty string. for key in self.COMPUTED_KEYS: value = getattr(self, 'get_%s' % (key,))() @@ -2375,6 +2542,16 @@ class ConfigOptionsEnvironmentMixin(ConfigEnvironmentMixin): else: self.commit_email_format = commit_email_format + html_in_intro = config.get_bool('htmlInIntro') + if html_in_intro is not None: + self.html_in_intro = html_in_intro + + html_in_footer = config.get_bool('htmlInFooter') + if html_in_footer is not None: + self.html_in_footer = html_in_footer + + self.commitBrowseURL = config.get('commitBrowseURL') + maxcommitemails = config.get('maxcommitemails') if maxcommitemails is not None: try: @@ -2415,7 +2592,6 @@ class ConfigOptionsEnvironmentMixin(ConfigEnvironmentMixin): ['author']) self.__reply_to_commit = config.get('replyToCommit', default=reply_to) - from_addr = self.config.get('from') self.from_refchange = config.get('fromRefchange') self.forbid_field_values('fromRefchange', self.from_refchange, @@ -3390,6 +3566,8 @@ def run_as_post_receive_hook(environment, mailer): if changes: push = Push(environment, changes) push.send_emails(mailer, body_filter=environment.filter_body) + if hasattr(mailer, '__del__'): + mailer.__del__() def run_as_update_hook(environment, mailer, refname, oldrev, newrev, force_send=False): @@ -3406,6 +3584,8 @@ def run_as_update_hook(environment, mailer, refname, oldrev, newrev, force_send= ] push = Push(environment, changes, force_send) push.send_emails(mailer, body_filter=environment.filter_body) + if hasattr(mailer, '__del__'): + mailer.__del__() def choose_mailer(config, environment): @@ -3418,6 +3598,7 @@ def choose_mailer(config, environment): smtpencryption = config.get('smtpencryption', default='none') smtpuser = config.get('smtpuser', default='') smtppass = config.get('smtppass', default='') + smtpcacerts = config.get('smtpcacerts', default='') mailer = SMTPMailer( envelopesender=(environment.get_sender() or environment.get_fromaddr()), smtpserver=smtpserver, smtpservertimeout=smtpservertimeout, @@ -3425,6 +3606,7 @@ def choose_mailer(config, environment): smtpencryption=smtpencryption, smtpuser=smtpuser, smtppass=smtppass, + smtpcacerts=smtpcacerts ) elif mailer == 'sendmail': command = config.get('sendmailcommand') @@ -3691,17 +3873,7 @@ def main(args): return if options.c: - parameters = os.environ.get('GIT_CONFIG_PARAMETERS', '') - if parameters: - parameters += ' ' - # git expects GIT_CONFIG_PARAMETERS to be of the form - # "'name1=value1' 'name2=value2' 'name3=value3'" - # including everything inside the double quotes (but not the double - # quotes themselves). Spacing is critical. Also, if a value contains - # a literal single quote that quote must be represented using the - # four character sequence: '\'' - parameters += ' '.join("'" + x.replace("'", "'\\''") + "'" for x in options.c) - os.environ['GIT_CONFIG_PARAMETERS'] = parameters + Config.add_config_parameters(options.c) config = Config('multimailhook') diff --git a/contrib/hooks/multimail/post-receive.example b/contrib/hooks/multimail/post-receive.example index 9975df7107..1ea113d274 100755 --- a/contrib/hooks/multimail/post-receive.example +++ b/contrib/hooks/multimail/post-receive.example @@ -55,6 +55,12 @@ import git_multimail # git-multimail: config = git_multimail.Config('multimailhook') +# Set some Git configuration variables. Equivalent to passing var=val +# to "git -c var=val" each time git is called, or to adding the +# configuration in .git/config (must come before instanciating the +# environment) : +#git_multimail.Config.add_config_parameters('multimailhook.commitEmailFormat=html') +#git_multimail.Config.add_config_parameters(('user.name=foo', 'user.email=foo@example.com')) # Select the type of environment: try: 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..291c0fd5e9 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); @@ -126,8 +126,17 @@ static void serve_one_client(FILE *in, FILE *out) fprintf(out, "password=%s\n", e->item.password); } } - else if (!strcmp(action.buf, "exit")) + else if (!strcmp(action.buf, "exit")) { + /* + * It's important that we clean up our socket first, and then + * signal the client only once we have finished the cleanup. + * Calling exit() directly does this, because we clean up in + * our atexit() handler, and then signal the client when our + * process actually ends, which closes the socket and gives + * them EOF. + */ exit(0); + } else if (!strcmp(action.buf, "erase")) remove_credential(&c); else if (!strcmp(action.buf, "store")) { @@ -215,7 +224,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 +233,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 +280,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-cache.c b/credential-cache.c index f4afdc6988..86e21de49b 100644 --- a/credential-cache.c +++ b/credential-cache.c @@ -32,6 +32,7 @@ static int send_request(const char *socket, const struct strbuf *out) write_or_die(1, in, r); got_data = 1; } + close(fd); return got_data; } 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); } diff --git a/diffcore-rename.c b/diffcore-rename.c index 3b3c1ed535..7f03eb5a04 100644 --- a/diffcore-rename.c +++ b/diffcore-rename.c @@ -340,9 +340,11 @@ static int find_exact_renames(struct diff_options *options) int i, renames = 0; struct hashmap file_table; - /* Add all sources to the hash table */ + /* Add all sources to the hash table in reverse order, because + * later on they will be retrieved in LIFO order. + */ hashmap_init(&file_table, NULL, rename_src_nr); - for (i = 0; i < rename_src_nr; i++) + for (i = rename_src_nr-1; i >= 0; i--) insert_file_table(&file_table, i, rename_src[i].p->one); /* Walk the destinations and find best source match */ @@ -64,13 +64,6 @@ int strncmp_icase(const char *a, const char *b, size_t count) return ignore_case ? strncasecmp(a, b, count) : strncmp(a, b, count); } -int fnmatch_icase(const char *pattern, const char *string, int flags) -{ - return wildmatch(pattern, string, - flags | (ignore_case ? WM_CASEFOLD : 0), - NULL); -} - int git_fnmatch(const struct pathspec_item *item, const char *pattern, const char *string, int prefix) @@ -457,7 +450,7 @@ int no_wildcard(const char *string) void parse_exclude_pattern(const char **pattern, int *patternlen, - int *flags, + unsigned *flags, int *nowildcardlen) { const char *p = *pattern; @@ -498,7 +491,7 @@ void add_exclude(const char *string, const char *base, { struct exclude *x; int patternlen; - int flags; + unsigned flags; int nowildcardlen; parse_exclude_pattern(&string, &patternlen, &flags, &nowildcardlen); @@ -798,7 +791,7 @@ void add_excludes_from_file(struct dir_struct *dir, const char *fname) int match_basename(const char *basename, int basenamelen, const char *pattern, int prefix, int patternlen, - int flags) + unsigned flags) { if (prefix == patternlen) { if (patternlen == basenamelen && @@ -823,7 +816,7 @@ int match_basename(const char *basename, int basenamelen, int match_pathname(const char *pathname, int pathlen, const char *base, int baselen, const char *pattern, int prefix, int patternlen, - int flags) + unsigned flags) { const char *name; int namelen; @@ -1829,31 +1822,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 +1940,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; } @@ -27,7 +27,7 @@ struct exclude { int nowildcardlen; const char *base; int baselen; - int flags; + unsigned flags; /* EXC_FLAG_* */ /* * Counting starts from 1 for line numbers in ignore files, @@ -226,10 +226,10 @@ struct dir_entry *dir_add_ignored(struct dir_struct *dir, const char *pathname, * attr.c:path_matches() */ extern int match_basename(const char *, int, - const char *, int, int, int); + const char *, int, int, unsigned); extern int match_pathname(const char *, int, const char *, int, - const char *, int, int, int); + const char *, int, int, unsigned); extern struct exclude *last_exclude_matching(struct dir_struct *dir, const char *name, int *dtype); @@ -241,7 +241,7 @@ extern struct exclude_list *add_exclude_list(struct dir_struct *dir, extern int add_excludes_from_file_to_list(const char *fname, const char *base, int baselen, struct exclude_list *el, int check_index); extern void add_excludes_from_file(struct dir_struct *, const char *fname); -extern void parse_exclude_pattern(const char **string, int *patternlen, int *flags, int *nowildcardlen); +extern void parse_exclude_pattern(const char **string, int *patternlen, unsigned *flags, int *nowildcardlen); extern void add_exclude(const char *string, const char *base, int baselen, struct exclude_list *el, int srcpos); extern void clear_exclude_list(struct exclude_list *el); @@ -272,7 +272,6 @@ extern int remove_path(const char *path); extern int strcmp_icase(const char *a, const char *b); extern int strncmp_icase(const char *a, const char *b, size_t count); -extern int fnmatch_icase(const char *pattern, const char *string, int flags); /* * The prefix part of pattern must not contains wildcards. @@ -307,5 +306,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..57acb2fe2a 100644 --- a/environment.c +++ b/environment.c @@ -25,11 +25,9 @@ int log_all_ref_updates = -1; /* unspecified */ int warn_ambiguous_refs = 1; int warn_on_object_refname_ambiguity = 1; int ref_paranoia = -1; -int repository_format_version; int repository_format_precious_objects; const char *git_commit_encoding; const char *git_log_output_encoding; -int shared_repository = PERM_UMASK; const char *apply_default_whitespace; const char *apply_default_ignorewhitespace; const char *git_attributes_file; @@ -64,7 +62,6 @@ int grafts_replace_parents = 1; int core_apply_sparse_checkout; int merge_log_config = -1; int precomposed_unicode = -1; /* see probe_utf8_pathname_composition() */ -struct startup_info *startup_info; unsigned long pack_size_limit_cfg; #ifndef PROTECT_HFS_DEFAULT @@ -87,6 +84,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; @@ -318,3 +322,24 @@ const char *get_commit_output_encoding(void) { return git_commit_encoding ? git_commit_encoding : "UTF-8"; } + +static int the_shared_repository = PERM_UMASK; +static int need_shared_repository_from_config = 1; + +void set_shared_repository(int value) +{ + the_shared_repository = value; + need_shared_repository_from_config = 0; +} + +int get_shared_repository(void) +{ + if (need_shared_repository_from_config) { + const char *var = "core.sharedrepository"; + const char *value; + if (!git_config_get_value(var, &value)) + the_shared_repository = git_config_perm(var, value); + need_shared_repository_from_config = 0; + } + return the_shared_repository; +} 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/fetch-pack.c b/fetch-pack.c index f96f6dfb35..b501d5c320 100644 --- a/fetch-pack.c +++ b/fetch-pack.c @@ -15,7 +15,6 @@ #include "version.h" #include "prio-queue.h" #include "sha1-array.h" -#include "sigchain.h" static int transfer_unpack_limit = -1; static int fetch_unpack_limit = -1; @@ -674,10 +673,8 @@ static int sideband_demux(int in, int out, void *data) int *xd = data; int ret; - sigchain_push(SIGPIPE, SIG_IGN); ret = recv_sideband("fetch-pack", xd[0], out); close(out); - sigchain_pop(SIGPIPE); return ret; } @@ -701,6 +698,7 @@ static int get_pack(struct fetch_pack_args *args, demux.proc = sideband_demux; demux.data = xd; demux.out = -1; + demux.isolate_sigpipe = 1; if (start_async(&demux)) die("fetch-pack: unable to fork off sideband" " demultiplexer"); diff --git a/git-compat-util.h b/git-compat-util.h index 474395471f..1f8b5f3b1f 100644 --- a/git-compat-util.h +++ b/git-compat-util.h @@ -279,9 +279,6 @@ extern char *gitdirname(char *); #endif #include <openssl/ssl.h> #include <openssl/err.h> -#ifdef NO_HMAC_CTX_CLEANUP -#define HMAC_CTX_cleanup HMAC_cleanup -#endif #endif /* On most systems <netdb.h> would have given us this, but diff --git a/git-difftool--helper.sh b/git-difftool--helper.sh index 2b11b1d6fe..84d6cc021c 100755 --- a/git-difftool--helper.sh +++ b/git-difftool--helper.sh @@ -44,10 +44,10 @@ launch_merge_tool () { "$GIT_DIFF_PATH_TOTAL" "$MERGED" if use_ext_cmd then - printf "Launch '%s' [Y/n]: " \ + printf "Launch '%s' [Y/n]? " \ "$GIT_DIFFTOOL_EXTCMD" else - printf "Launch '%s' [Y/n]: " "$merge_tool" + printf "Launch '%s' [Y/n]? " "$merge_tool" fi read ans || return if test "$ans" = n diff --git a/git-gui/po/glossary/txt-to-pot.sh b/git-gui/po/glossary/txt-to-pot.sh index 49bf7c5365..8249915d3c 100755 --- a/git-gui/po/glossary/txt-to-pot.sh +++ b/git-gui/po/glossary/txt-to-pot.sh @@ -11,7 +11,7 @@ if [ $# -eq 0 ] then cat <<! -Usage: `basename $0` git-gui-glossary.txt > git-gui-glossary.pot +Usage: $(basename $0) git-gui-glossary.txt > git-gui-glossary.pot ! exit 1; fi @@ -33,7 +33,7 @@ cat <<! msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: `date +'%Y-%m-%d %H:%M%z'`\n" +"POT-Creation-Date: $(date +'%Y-%m-%d %H:%M%z')\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/git-mergetool--lib.sh b/git-mergetool--lib.sh index 54ac8e4846..92adcc0d07 100644 --- a/git-mergetool--lib.sh +++ b/git-mergetool--lib.sh @@ -100,7 +100,7 @@ check_unchanged () { while true do echo "$MERGED seems unchanged." - printf "Was the merge successful? [y/n] " + printf "Was the merge successful [y/n]? " read answer || return 1 case "$answer" in y*|Y*) return 0 ;; diff --git a/git-mergetool.sh b/git-mergetool.sh index 9f77e3a8bb..bf862705d8 100755 --- a/git-mergetool.sh +++ b/git-mergetool.sh @@ -126,7 +126,12 @@ resolve_deleted_merge () { case "$ans" in [mMcC]*) git add -- "$MERGED" - cleanup_temp_files --save-backup + if test "$merge_keep_backup" = "true" + then + cleanup_temp_files --save-backup + else + cleanup_temp_files + fi return 0 ;; [dD]*) @@ -135,6 +140,10 @@ resolve_deleted_merge () { return 0 ;; [aA]*) + if test "$merge_keep_temporaries" = "false" + then + cleanup_temp_files + fi return 1 ;; esac @@ -282,8 +291,14 @@ merge_file () { return fi - mv -- "$MERGED" "$BACKUP" - cp -- "$BACKUP" "$MERGED" + if test -f "$MERGED" + then + mv -- "$MERGED" "$BACKUP" + cp -- "$BACKUP" "$MERGED" + fi + # Create a parent directory to handle delete/delete conflicts + # where the base's directory no longer exists. + mkdir -p "$(dirname "$MERGED")" checkout_staged_file 1 "$MERGED" "$BASE" checkout_staged_file 2 "$MERGED" "$LOCAL" @@ -295,7 +310,9 @@ merge_file () { describe_file "$local_mode" "local" "$LOCAL" describe_file "$remote_mode" "remote" "$REMOTE" resolve_deleted_merge - return + status=$? + rmdir -p "$(dirname "$MERGED")" 2>/dev/null + return $status fi if is_symlink "$local_mode" || is_symlink "$remote_mode" @@ -396,7 +413,7 @@ done prompt_after_failed_merge () { while true do - printf "Continue merging other unresolved paths (y/n) ? " + printf "Continue merging other unresolved paths [y/n]? " read ans || return 1 case "$ans" in [yY]*) @@ -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)]) @@ -1064,8 +1064,15 @@ class GitLFS(LargeFileSystem): if pointerProcess.wait(): os.remove(contentFile) die('git-lfs pointer command failed. Did you install the extension?') - pointerContents = [i+'\n' for i in pointerFile.split('\n')[2:][:-1]] - oid = pointerContents[1].split(' ')[1].split(':')[1][:-1] + + # Git LFS removed the preamble in the output of the 'pointer' command + # starting from version 1.2.0. Check for the preamble here to support + # earlier versions. + # c.f. https://github.com/github/git-lfs/commit/da2935d9a739592bc775c98d8ef4df9c72ea3b43 + if pointerFile.startswith('Git LFS pointer for'): + pointerFile = re.sub(r'Git LFS pointer for.*\n\n', '', pointerFile) + + oid = re.search(r'^oid \w+:(\w+)', pointerFile, re.MULTILINE).group(1) localLargeFile = os.path.join( os.getcwd(), '.git', 'lfs', 'objects', oid[:2], oid[2:4], @@ -1073,7 +1080,7 @@ class GitLFS(LargeFileSystem): ) # LFS Spec states that pointer files should not have the executable bit set. gitMode = '100644' - return (gitMode, pointerContents, localLargeFile) + return (gitMode, pointerFile, localLargeFile) def pushFile(self, localLargeFile): uploadProcess = subprocess.Popen( @@ -1554,6 +1561,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 +1622,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 +1683,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-send-email.perl b/git-send-email.perl index d356901348..69587856df 100755 --- a/git-send-email.perl +++ b/git-send-email.perl @@ -19,10 +19,10 @@ use 5.008; use strict; use warnings; +use POSIX qw/strftime/; use Term::ReadLine; use Getopt::Long; use Text::ParseWords; -use Data::Dumper; use Term::ANSIColor; use File::Temp qw/ tempdir tempfile /; use File::Spec::Functions qw(catfile); @@ -533,7 +533,7 @@ my %parse_alias = ( $aliases{$alias} = \@addr }}}, mailrc => sub { my $fh = shift; while (<$fh>) { - if (/^alias\s+(\S+)\s+(.*)$/) { + if (/^alias\s+(\S+)\s+(.*?)\s*$/) { # spaces delimit multiple addresses $aliases{$1} = [ quotewords('\s+', 0, $2) ]; }}}, @@ -827,9 +827,10 @@ if (defined $sender) { # But it's a no-op to run sanitize_address on an already sanitized address. $sender = sanitize_address($sender); +my $to_whom = "To whom should the emails be sent (if anyone)?"; my $prompting = 0; if (!@initial_to && !defined $to_cmd) { - my $to = ask("Who should the emails be sent to (if any)? ", + my $to = ask("$to_whom ", default => "", valid_re => qr/\@.*\./, confirm_only => 1); push @initial_to, parse_address_line($to) if defined $to; # sanitized/validated later @@ -924,7 +925,7 @@ sub validate_address { cleanup_compose_files(); exit(0); } - $address = ask("Who should the email be sent to (if any)? ", + $address = ask("$to_whom ", default => "", valid_re => qr/\@.*\./, confirm_only => 1); } @@ -949,7 +950,7 @@ my ($message_id_stamp, $message_id_serial); sub make_message_id { my $uniq; if (!defined $message_id_stamp) { - $message_id_stamp = sprintf("%s-%s", time, $$); + $message_id_stamp = strftime("%Y%m%d%H%M%S.$$", gmtime(time)); $message_id_serial = 0; } $message_id_serial++; @@ -964,7 +965,7 @@ sub make_message_id { require Sys::Hostname; $du_part = 'user@' . Sys::Hostname::hostname(); } - my $message_id_template = "<%s-git-send-email-%s>"; + my $message_id_template = "<%s-%s>"; $message_id = sprintf($message_id_template, $uniq, $du_part); #print "new message id = $message_id\n"; # Was useful for debugging } 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..753a90d307 100755 --- a/git-submodule.sh +++ b/git-submodule.sh @@ -413,8 +413,8 @@ cmd_foreach() die_if_unmatched "$mode" if test -e "$sm_path"/.git then - displaypath=$(relative_path "$sm_path") - say "$(eval_gettext "Entering '\$prefix\$displaypath'")" + displaypath=$(relative_path "$prefix$sm_path") + say "$(eval_gettext "Entering '\$displaypath'")" name=$(git submodule--helper name "$sm_path") ( prefix="$prefix$sm_path/" @@ -434,7 +434,7 @@ cmd_foreach() cmd_foreach "--recursive" "$@" fi ) <&3 3<&- || - die "$(eval_gettext "Stopping at '\$prefix\$displaypath'; script returned non-zero status.")" + die "$(eval_gettext "Stopping at '\$displaypath'; script returned non-zero status.")" fi done } @@ -473,7 +473,7 @@ cmd_init() die_if_unmatched "$mode" name=$(git submodule--helper name "$sm_path") || exit - displaypath=$(relative_path "$sm_path") + displaypath=$(relative_path "$prefix$sm_path") # Copy url setting when it is not set yet if test -z "$(git config "submodule.$name.url")" @@ -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? @@ -779,8 +802,8 @@ Maybe you want to use 'update --init'?")" ;; !*) command="${update_module#!}" - die_msg="$(eval_gettext "Execution of '\$command \$sha1' failed in submodule path '\$prefix\$sm_path'")" - say_msg="$(eval_gettext "Submodule path '\$prefix\$sm_path': '\$command \$sha1'")" + die_msg="$(eval_gettext "Execution of '\$command \$sha1' failed in submodule path '\$displaypath'")" + say_msg="$(eval_gettext "Submodule path '\$displaypath': '\$command \$sha1'")" must_die_on_failure=yes ;; *) @@ -1136,6 +1159,7 @@ cmd_status() ( prefix="$displaypath/" clear_local_git_env + wt_prefix= cd "$sm_path" && eval cmd_status ) || diff --git a/git-svn.perl b/git-svn.perl index fa5f253065..05eced06cd 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -1745,11 +1745,12 @@ sub post_fetch_checkout { sub complete_svn_url { my ($url, $path) = @_; - $path = canonicalize_path($path); - # If the path is not a URL... - if ($path !~ m#^[a-z\+]+://#) { - if (!defined $url || $url !~ m#^[a-z\+]+://#) { + if ($path =~ m#^[a-z\+]+://#i) { # path is a URL + $path = canonicalize_url($path); + } else { + $path = canonicalize_path($path); + if (!defined $url || $url !~ m#^[a-z\+]+://#i) { fatal("E: '$path' is not a complete URL ", "and a separate URL is not specified"); } @@ -1764,11 +1765,12 @@ sub complete_url_ls_init { print STDERR "W: $switch not specified\n"; return; } - $repo_path = canonicalize_path($repo_path); - if ($repo_path =~ m#^[a-z\+]+://#) { + if ($repo_path =~ m#^[a-z\+]+://#i) { + $repo_path = canonicalize_url($repo_path); $ra = Git::SVN::Ra->new($repo_path); $repo_path = ''; } else { + $repo_path = canonicalize_path($repo_path); $repo_path =~ s#^/+##; unless ($ra) { fatal("E: '$repo_path' is not a complete URL ", @@ -15,7 +15,6 @@ const char git_more_info_string[] = "concept guides. See 'git help <command>' or 'git help <concept>'\n" "to read about a specific subcommand or concept."); -static struct startup_info git_startup_info; static int use_pager = -1; static char *orig_cwd; static const char *env_names[] = { @@ -25,14 +24,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 +40,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 +233,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 +249,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 +295,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 +310,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 +391,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 +417,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 +535,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 +580,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 +601,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; @@ -626,8 +636,6 @@ int main(int argc, char **av) const char *cmd; int done_help = 0; - startup_info = &git_startup_info; - cmd = git_extract_argv0_path(argv[0]); if (!cmd) cmd = "git-help"; diff --git a/git.spec.in b/git.spec.in index d61d537ef0..bfd1cfb63f 100644 --- a/git.spec.in +++ b/git.spec.in @@ -146,7 +146,7 @@ rm -rf $RPM_BUILD_ROOT %files -f bin-man-doc-files %defattr(-,root,root) %{_datadir}/git-core/ -%doc README COPYING Documentation/*.txt +%doc README.md COPYING Documentation/*.txt %{!?_without_docs: %doc Documentation/*.html Documentation/howto} %{!?_without_docs: %doc Documentation/technical} %{_sysconfdir}/bash_completion.d diff --git a/gitk-git/gitk b/gitk-git/gitk index 5f1255c860..805a1c7030 100755 --- a/gitk-git/gitk +++ b/gitk-git/gitk @@ -3021,7 +3021,7 @@ proc bindall {event action} { } proc about {} { - global uifont NS + global bgcolor NS set w .about if {[winfo exists $w]} { raise $w @@ -3036,7 +3036,7 @@ Gitk - a commit viewer for git Copyright \u00a9 2005-2014 Paul Mackerras Use and redistribute under the terms of the GNU General Public License"] \ - -justify center -aspect 400 -border 2 -bg white -relief groove + -justify center -aspect 400 -border 2 -bg $bgcolor -relief groove pack $w.m -side top -fill x -padx 2 -pady 2 ${NS}::button $w.ok -text [mc "Close"] -command "destroy $w" -default active pack $w.ok -side bottom @@ -3047,7 +3047,7 @@ Use and redistribute under the terms of the GNU General Public License"] \ } proc keys {} { - global NS + global bgcolor NS set w .keys if {[winfo exists $w]} { raise $w @@ -3103,7 +3103,7 @@ proc keys {} { [mc "<%s-minus> Decrease font size" $M1T] [mc "<F5> Update"] " \ - -justify left -bg white -border 2 -relief groove + -justify left -bg $bgcolor -border 2 -relief groove pack $w.m -side top -fill both -padx 2 -pady 2 ${NS}::button $w.ok -text [mc "Close"] -command "destroy $w" -default active bind $w <Key-Escape> [list destroy $w] diff --git a/gitk-git/po/bg.po b/gitk-git/po/bg.po index 909a56463f..99aa77aa63 100644 --- a/gitk-git/po/bg.po +++ b/gitk-git/po/bg.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: gitk master\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-06-27 20:44+0300\n" -"PO-Revision-Date: 2015-06-27 20:46+0300\n" +"POT-Creation-Date: 2015-12-19 11:48+0200\n" +"PO-Revision-Date: 2015-12-19 11:49+0200\n" "Last-Translator: Alexander Shopov <ash@kambanaria.org>\n" "Language-Team: Bulgarian <dict@fsa-bg.org>\n" "Language: bg\n" @@ -22,11 +22,11 @@ msgstr "" msgid "Couldn't get list of unmerged files:" msgstr "СпиÑъкът Ñ Ð½ÐµÑлети файлове не може да бъде получен:" -#: gitk:212 gitk:2381 +#: gitk:212 gitk:2399 msgid "Color words" msgstr "ОцветÑване на думите" -#: gitk:217 gitk:2381 gitk:8220 gitk:8253 +#: gitk:217 gitk:2399 gitk:8239 gitk:8272 msgid "Markup words" msgstr "ОтбелÑзване на думите" @@ -59,15 +59,15 @@ msgstr "Грешка при изпълнение на „git log“:" msgid "Reading" msgstr "Прочитане" -#: gitk:496 gitk:4525 +#: gitk:496 gitk:4544 msgid "Reading commits..." msgstr "Прочитане на подаваниÑта…" -#: gitk:499 gitk:1637 gitk:4528 +#: gitk:499 gitk:1637 gitk:4547 msgid "No commits selected" msgstr "Ðе Ñа избрани подаваниÑ" -#: gitk:1445 gitk:4045 gitk:12432 +#: gitk:1445 gitk:4064 gitk:12469 msgid "Command line" msgstr "Команден ред" @@ -79,286 +79,294 @@ msgstr "Изходът от „git log“ не може да Ñе анализи msgid "No commit information available" msgstr "ЛипÑва Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° подаваниÑ" -#: gitk:1903 gitk:1932 gitk:4315 gitk:9669 gitk:11241 gitk:11521 +#: gitk:1903 gitk:1932 gitk:4334 gitk:9702 gitk:11274 gitk:11554 msgid "OK" msgstr "Добре" -#: gitk:1934 gitk:4317 gitk:9196 gitk:9275 gitk:9391 gitk:9440 gitk:9671 -#: gitk:11242 gitk:11522 +#: gitk:1934 gitk:4336 gitk:9215 gitk:9294 gitk:9424 gitk:9473 gitk:9704 +#: gitk:11275 gitk:11555 msgid "Cancel" msgstr "Отказ" -#: gitk:2069 +#: gitk:2083 msgid "&Update" -msgstr "ОбновÑване" +msgstr "&ОбновÑване" -#: gitk:2070 +#: gitk:2084 msgid "&Reload" -msgstr "Презареждане" +msgstr "&Презареждане" -#: gitk:2071 +#: gitk:2085 msgid "Reread re&ferences" -msgstr "Ðаново прочитане на наÑтройките" +msgstr "&Ðаново прочитане на наÑтройките" -#: gitk:2072 +#: gitk:2086 msgid "&List references" -msgstr "ИзброÑване на указателите" +msgstr "&ИзброÑване на указателите" -#: gitk:2074 +#: gitk:2088 msgid "Start git &gui" -msgstr "Стартиране на „git gui“" +msgstr "&Стартиране на „git gui“" -#: gitk:2076 +#: gitk:2090 msgid "&Quit" -msgstr "Спиране на програмата" +msgstr "&Спиране на програмата" -#: gitk:2068 +#: gitk:2082 msgid "&File" -msgstr "Файл" +msgstr "&Файл" -#: gitk:2080 +#: gitk:2094 msgid "&Preferences" -msgstr "ÐаÑтройки" +msgstr "&ÐаÑтройки" -#: gitk:2079 +#: gitk:2093 msgid "&Edit" -msgstr "Редактиране" +msgstr "&Редактиране" -#: gitk:2084 +#: gitk:2098 msgid "&New view..." -msgstr "Ðов изглед…" +msgstr "&Ðов изглед…" -#: gitk:2085 +#: gitk:2099 msgid "&Edit view..." -msgstr "Редактиране на изгледа…" +msgstr "&Редактиране на изгледа…" -#: gitk:2086 +#: gitk:2100 msgid "&Delete view" -msgstr "Изтриване на изгледа" +msgstr "&Изтриване на изгледа" -#: gitk:2088 gitk:4043 +#: gitk:2102 msgid "&All files" -msgstr "Ð’Ñички файлове" +msgstr "&Ð’Ñички файлове" -#: gitk:2083 gitk:4067 +#: gitk:2097 msgid "&View" -msgstr "Изглед" +msgstr "&Изглед" -#: gitk:2093 gitk:2103 gitk:3012 +#: gitk:2107 gitk:2117 msgid "&About gitk" -msgstr "ОтноÑно gitk" +msgstr "&ОтноÑно gitk" -#: gitk:2094 gitk:2108 +#: gitk:2108 gitk:2122 msgid "&Key bindings" -msgstr "Клавишни комбинации" +msgstr "&Клавишни комбинации" -#: gitk:2092 gitk:2107 +#: gitk:2106 gitk:2121 msgid "&Help" -msgstr "Помощ" +msgstr "Помо&щ" -#: gitk:2185 gitk:8652 +#: gitk:2199 gitk:8671 msgid "SHA1 ID:" msgstr "SHA1:" -#: gitk:2229 +#: gitk:2243 msgid "Row" msgstr "Ред" -#: gitk:2267 +#: gitk:2281 msgid "Find" msgstr "ТърÑене" -#: gitk:2295 +#: gitk:2309 msgid "commit" msgstr "подаване" -#: gitk:2299 gitk:2301 gitk:4687 gitk:4710 gitk:4734 gitk:6755 gitk:6827 -#: gitk:6912 +#: gitk:2313 gitk:2315 gitk:4706 gitk:4729 gitk:4753 gitk:6774 gitk:6846 +#: gitk:6931 msgid "containing:" msgstr "Ñъдържащо:" -#: gitk:2302 gitk:3526 gitk:3531 gitk:4763 +#: gitk:2316 gitk:3545 gitk:3550 gitk:4782 msgid "touching paths:" msgstr "заÑÑгащо пътищата:" -#: gitk:2303 gitk:4777 +#: gitk:2317 gitk:4796 msgid "adding/removing string:" msgstr "добавÑщо/премахващо низ" -#: gitk:2304 gitk:4779 +#: gitk:2318 gitk:4798 msgid "changing lines matching:" msgstr "променÑщо редове напаÑващи:" -#: gitk:2313 gitk:2315 gitk:4766 +#: gitk:2327 gitk:2329 gitk:4785 msgid "Exact" msgstr "Точно" -#: gitk:2315 gitk:4854 gitk:6723 +#: gitk:2329 gitk:4873 gitk:6742 msgid "IgnCase" msgstr "Без региÑтър" -#: gitk:2315 gitk:4736 gitk:4852 gitk:6719 +#: gitk:2329 gitk:4755 gitk:4871 gitk:6738 msgid "Regexp" msgstr "Рег. израз" -#: gitk:2317 gitk:2318 gitk:4874 gitk:4904 gitk:4911 gitk:6848 gitk:6916 +#: gitk:2331 gitk:2332 gitk:4893 gitk:4923 gitk:4930 gitk:6867 gitk:6935 msgid "All fields" msgstr "Ð’Ñички полета" -#: gitk:2318 gitk:4871 gitk:4904 gitk:6786 +#: gitk:2332 gitk:4890 gitk:4923 gitk:6805 msgid "Headline" msgstr "Първи ред" -#: gitk:2319 gitk:4871 gitk:6786 gitk:6916 gitk:7389 +#: gitk:2333 gitk:4890 gitk:6805 gitk:6935 gitk:7408 msgid "Comments" msgstr "Коментари" -#: gitk:2319 gitk:4871 gitk:4876 gitk:4911 gitk:6786 gitk:7324 gitk:8830 -#: gitk:8845 +#: gitk:2333 gitk:4890 gitk:4895 gitk:4930 gitk:6805 gitk:7343 gitk:8849 +#: gitk:8864 msgid "Author" msgstr "Ðвтор" -#: gitk:2319 gitk:4871 gitk:6786 gitk:7326 +#: gitk:2333 gitk:4890 gitk:6805 gitk:7345 msgid "Committer" msgstr "Подаващ" -#: gitk:2350 +#: gitk:2367 msgid "Search" msgstr "ТърÑене" -#: gitk:2358 +#: gitk:2375 msgid "Diff" msgstr "Разлики" -#: gitk:2360 +#: gitk:2377 msgid "Old version" msgstr "Стара верÑиÑ" -#: gitk:2362 +#: gitk:2379 msgid "New version" msgstr "Ðова верÑиÑ" -#: gitk:2364 +#: gitk:2382 msgid "Lines of context" msgstr "КонтекÑÑ‚ в редове" -#: gitk:2374 +#: gitk:2392 msgid "Ignore space change" msgstr "Празните знаци без значение" -#: gitk:2378 gitk:2380 gitk:7959 gitk:8206 +#: gitk:2396 gitk:2398 gitk:7978 gitk:8225 msgid "Line diff" msgstr "Поредови разлики" -#: gitk:2445 +#: gitk:2463 msgid "Patch" msgstr "Кръпка" -#: gitk:2447 +#: gitk:2465 msgid "Tree" msgstr "Дърво" -#: gitk:2617 gitk:2637 +#: gitk:2635 gitk:2656 msgid "Diff this -> selected" msgstr "Разлики между това и избраното" -#: gitk:2618 gitk:2638 +#: gitk:2636 gitk:2657 msgid "Diff selected -> this" msgstr "Разлики между избраното и това" -#: gitk:2619 gitk:2639 +#: gitk:2637 gitk:2658 msgid "Make patch" msgstr "Създаване на кръпка" -#: gitk:2620 gitk:9254 +#: gitk:2638 gitk:9273 msgid "Create tag" msgstr "Създаване на етикет" -#: gitk:2621 gitk:9371 +#: gitk:2639 +msgid "Copy commit summary" +msgstr "Копиране на информациÑта за подаване" + +#: gitk:2640 gitk:9404 msgid "Write commit to file" msgstr "Запазване на подаването във файл" -#: gitk:2622 gitk:9428 +#: gitk:2641 gitk:9461 msgid "Create new branch" msgstr "Създаване на нов клон" -#: gitk:2623 +#: gitk:2642 msgid "Cherry-pick this commit" msgstr "Отбиране на това подаване" -#: gitk:2624 +#: gitk:2643 msgid "Reset HEAD branch to here" msgstr "Привеждане на върха на клона към текущото подаване" -#: gitk:2625 +#: gitk:2644 msgid "Mark this commit" msgstr "ОтбелÑзване на това подаване" -#: gitk:2626 +#: gitk:2645 msgid "Return to mark" msgstr "Връщане към отбелÑзаното подаване" -#: gitk:2627 +#: gitk:2646 msgid "Find descendant of this and mark" msgstr "Откриване и отбелÑзване на наÑледниците" -#: gitk:2628 +#: gitk:2647 msgid "Compare with marked commit" msgstr "Сравнение Ñ Ð¾Ñ‚Ð±ÐµÐ»Ñзаното подаване" -#: gitk:2629 gitk:2640 +#: gitk:2648 gitk:2659 msgid "Diff this -> marked commit" msgstr "Разлики между това и отбелÑзаното" -#: gitk:2630 gitk:2641 +#: gitk:2649 gitk:2660 msgid "Diff marked commit -> this" msgstr "Разлики между отбелÑзаното и това" -#: gitk:2631 +#: gitk:2650 msgid "Revert this commit" msgstr "ОтмÑна на това подаване" -#: gitk:2647 +#: gitk:2666 msgid "Check out this branch" msgstr "ИзтеглÑне на този клон" -#: gitk:2648 +#: gitk:2667 msgid "Remove this branch" msgstr "Изтриване на този клон" -#: gitk:2649 +#: gitk:2668 msgid "Copy branch name" msgstr "Копиране на името на клона" -#: gitk:2656 +#: gitk:2675 msgid "Highlight this too" msgstr "ОтбелÑзване и на това" -#: gitk:2657 +#: gitk:2676 msgid "Highlight this only" msgstr "ОтбелÑзване Ñамо на това" -#: gitk:2658 +#: gitk:2677 msgid "External diff" msgstr "Външна програма за разлики" -#: gitk:2659 +#: gitk:2678 msgid "Blame parent commit" msgstr "Ðнотиране на родителÑкото подаване" -#: gitk:2660 +#: gitk:2679 msgid "Copy path" msgstr "Копиране на пътÑ" -#: gitk:2667 +#: gitk:2686 msgid "Show origin of this line" msgstr "Показване на произхода на този ред" -#: gitk:2668 +#: gitk:2687 msgid "Run git gui blame on this line" msgstr "Изпълнение на „git gui blame“ върху този ред" -#: gitk:3014 +#: gitk:3031 +msgid "About gitk" +msgstr "ОтноÑно gitk" + +#: gitk:3033 msgid "" "\n" "Gitk - a commit viewer for git\n" @@ -374,316 +382,324 @@ msgstr "" "\n" "Използвайте и разпроÑтранÑвайте при уÑловиÑта на ОПЛ на ГÐУ" -#: gitk:3022 gitk:3089 gitk:9857 +#: gitk:3041 gitk:3108 gitk:9890 msgid "Close" msgstr "ЗатварÑне" -#: gitk:3043 +#: gitk:3062 msgid "Gitk key bindings" msgstr "Клавишни комбинации" -#: gitk:3046 +#: gitk:3065 msgid "Gitk key bindings:" msgstr "Клавишни комбинации:" -#: gitk:3048 +#: gitk:3067 #, tcl-format msgid "<%s-Q>\t\tQuit" msgstr "<%s-Q>\t\tСпиране на програмата" -#: gitk:3049 +#: gitk:3068 #, tcl-format msgid "<%s-W>\t\tClose window" msgstr "<%s-W>\t\tЗатварÑне на прозореца" -#: gitk:3050 +#: gitk:3069 msgid "<Home>\t\tMove to first commit" msgstr "<Home>\t\tКъм първото подаване" -#: gitk:3051 +#: gitk:3070 msgid "<End>\t\tMove to last commit" msgstr "<End>\t\tКъм поÑледното подаване" -#: gitk:3052 +#: gitk:3071 msgid "<Up>, p, k\tMove up one commit" msgstr "<Up>, p, k\tЕдно подаване нагоре" -#: gitk:3053 +#: gitk:3072 msgid "<Down>, n, j\tMove down one commit" msgstr "<Down>, n, j\tЕдно подаване надолу" -#: gitk:3054 +#: gitk:3073 msgid "<Left>, z, h\tGo back in history list" msgstr "<Left>, z, h\tÐазад в иÑториÑта" -#: gitk:3055 +#: gitk:3074 msgid "<Right>, x, l\tGo forward in history list" msgstr "<Right>, x, l\tÐапред в иÑториÑта" -#: gitk:3056 +#: gitk:3075 #, tcl-format msgid "<%s-n>\tGo to n-th parent of current commit in history list" msgstr "<%s-n>\tКъм n-Ñ‚Ð¸Ñ Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ» на текущото подаване в иÑториÑта" -#: gitk:3057 +#: gitk:3076 msgid "<PageUp>\tMove up one page in commit list" msgstr "<PageUp>\tСтраница нагоре в ÑпиÑъка Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñта" -#: gitk:3058 +#: gitk:3077 msgid "<PageDown>\tMove down one page in commit list" msgstr "<PageDown>\tСтраница надолу в ÑпиÑъка Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñта" -#: gitk:3059 +#: gitk:3078 #, tcl-format msgid "<%s-Home>\tScroll to top of commit list" msgstr "<%s-Home>\tКъм началото на ÑпиÑъка Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñта" -#: gitk:3060 +#: gitk:3079 #, tcl-format msgid "<%s-End>\tScroll to bottom of commit list" msgstr "<%s-End>\tКъм ÐºÑ€Ð°Ñ Ð½Ð° ÑпиÑъка Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñта" -#: gitk:3061 +#: gitk:3080 #, tcl-format msgid "<%s-Up>\tScroll commit list up one line" msgstr "<%s-Up>\tРед нагоре в ÑпиÑъка Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ" -#: gitk:3062 +#: gitk:3081 #, tcl-format msgid "<%s-Down>\tScroll commit list down one line" msgstr "<%s-Down>\tРед надолу в ÑпиÑъка Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ" -#: gitk:3063 +#: gitk:3082 #, tcl-format msgid "<%s-PageUp>\tScroll commit list up one page" msgstr "<%s-PageUp>\tСтраница нагоре в ÑпиÑъка Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ" -#: gitk:3064 +#: gitk:3083 #, tcl-format msgid "<%s-PageDown>\tScroll commit list down one page" msgstr "<%s-PageDown>\tСтраница надолу в ÑпиÑъка Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ" -#: gitk:3065 +#: gitk:3084 msgid "<Shift-Up>\tFind backwards (upwards, later commits)" msgstr "<Shift-Up>\tТърÑене назад (визуално нагоре, иÑторичеÑки — поÑледващи)" -#: gitk:3066 +#: gitk:3085 msgid "<Shift-Down>\tFind forwards (downwards, earlier commits)" msgstr "" "<Shift-Down>\tТърÑене напред (визуално надолу, иÑторичеÑки — предхождащи)" -#: gitk:3067 +#: gitk:3086 msgid "<Delete>, b\tScroll diff view up one page" msgstr "<Delete>, b\tСтраница нагоре в изгледа за разлики" -#: gitk:3068 +#: gitk:3087 msgid "<Backspace>\tScroll diff view up one page" msgstr "<Backspace>\tСтраница надолу в изгледа за разлики" -#: gitk:3069 +#: gitk:3088 msgid "<Space>\t\tScroll diff view down one page" msgstr "<Space>\t\tСтраница надолу в изгледа за разлики" -#: gitk:3070 +#: gitk:3089 msgid "u\t\tScroll diff view up 18 lines" msgstr "u\t\t18 реда нагоре в изгледа за разлики" -#: gitk:3071 +#: gitk:3090 msgid "d\t\tScroll diff view down 18 lines" msgstr "d\t\t18 реда надолу в изгледа за разлики" -#: gitk:3072 +#: gitk:3091 #, tcl-format msgid "<%s-F>\t\tFind" msgstr "<%s-F>\t\tТърÑене" -#: gitk:3073 +#: gitk:3092 #, tcl-format msgid "<%s-G>\t\tMove to next find hit" msgstr "<%s-G>\t\tКъм Ñледващата поÑва" -#: gitk:3074 +#: gitk:3093 msgid "<Return>\tMove to next find hit" msgstr "<Return>\tКъм Ñледващата поÑва" -#: gitk:3075 +#: gitk:3094 msgid "g\t\tGo to commit" msgstr "g\t\tКъм поÑледното подаване" -#: gitk:3076 +#: gitk:3095 msgid "/\t\tFocus the search box" msgstr "/\t\tÐ¤Ð¾ÐºÑƒÑ Ð²ÑŠÑ€Ñ…Ñƒ полето за търÑене" -#: gitk:3077 +#: gitk:3096 msgid "?\t\tMove to previous find hit" msgstr "?\t\tКъм предишната поÑва" -#: gitk:3078 +#: gitk:3097 msgid "f\t\tScroll diff view to next file" msgstr "f\t\tСледващ файл в изгледа за разлики" -#: gitk:3079 +#: gitk:3098 #, tcl-format msgid "<%s-S>\t\tSearch for next hit in diff view" msgstr "<%s-S>\t\tТърÑене на Ñледващата поÑва в изгледа за разлики" -#: gitk:3080 +#: gitk:3099 #, tcl-format msgid "<%s-R>\t\tSearch for previous hit in diff view" msgstr "<%s-R>\t\tТърÑене на предишната поÑва в изгледа за разлики" -#: gitk:3081 +#: gitk:3100 #, tcl-format msgid "<%s-KP+>\tIncrease font size" msgstr "<%s-KP+>\tПо-голÑм размер на шрифта" -#: gitk:3082 +#: gitk:3101 #, tcl-format msgid "<%s-plus>\tIncrease font size" msgstr "<%s-plus>\tПо-голÑм размер на шрифта" -#: gitk:3083 +#: gitk:3102 #, tcl-format msgid "<%s-KP->\tDecrease font size" msgstr "<%s-KP->\tПо-малък размер на шрифта" -#: gitk:3084 +#: gitk:3103 #, tcl-format msgid "<%s-minus>\tDecrease font size" msgstr "<%s-minus>\tПо-малък размер на шрифта" -#: gitk:3085 +#: gitk:3104 msgid "<F5>\t\tUpdate" msgstr "<F5>\t\tОбновÑване" -#: gitk:3550 gitk:3559 +#: gitk:3569 gitk:3578 #, tcl-format msgid "Error creating temporary directory %s:" msgstr "Грешка при Ñъздаването на временната Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ â€ž%s“:" -#: gitk:3572 +#: gitk:3591 #, tcl-format msgid "Error getting \"%s\" from %s:" msgstr "Грешка при получаването на „%s“ от %s:" -#: gitk:3635 +#: gitk:3654 msgid "command failed:" msgstr "неуÑпешно изпълнение на команда:" -#: gitk:3784 +#: gitk:3803 msgid "No such commit" msgstr "Такова подаване нÑма" -#: gitk:3798 +#: gitk:3817 msgid "git gui blame: command failed:" msgstr "„git gui blame“: неуÑпешно изпълнение на команда:" -#: gitk:3829 +#: gitk:3848 #, tcl-format msgid "Couldn't read merge head: %s" msgstr "Върхът за Ñливане не може да бъде прочетен: %s" -#: gitk:3837 +#: gitk:3856 #, tcl-format msgid "Error reading index: %s" msgstr "Грешка при прочитане на индекÑа: %s" -#: gitk:3862 +#: gitk:3881 #, tcl-format msgid "Couldn't start git blame: %s" msgstr "Командата „git blame“ не може да бъде Ñтартирана: %s" -#: gitk:3865 gitk:6754 +#: gitk:3884 gitk:6773 msgid "Searching" msgstr "ТърÑене" -#: gitk:3897 +#: gitk:3916 #, tcl-format msgid "Error running git blame: %s" msgstr "Грешка при изпълнението на „git blame“: %s" -#: gitk:3925 +#: gitk:3944 #, tcl-format msgid "That line comes from commit %s, which is not in this view" msgstr "Този ред идва от подаването %s, което не е в изгледа" -#: gitk:3939 +#: gitk:3958 msgid "External diff viewer failed:" msgstr "ÐеуÑпешно изпълнение на външната програма за разлики:" -#: gitk:4070 +#: gitk:4062 +msgid "All files" +msgstr "Ð’Ñички файлове" + +#: gitk:4086 +msgid "View" +msgstr "Изглед" + +#: gitk:4089 msgid "Gitk view definition" msgstr "Ð”ÐµÑ„Ð¸Ð½Ð¸Ñ†Ð¸Ñ Ð½Ð° изглед в Gitk" -#: gitk:4074 +#: gitk:4093 msgid "Remember this view" msgstr "Запазване на този изглед" -#: gitk:4075 +#: gitk:4094 msgid "References (space separated list):" msgstr "Указатели (ÑпиÑък Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð¸Ñ‚ÐµÐ» интервал):" -#: gitk:4076 +#: gitk:4095 msgid "Branches & tags:" msgstr "Клони и етикети:" -#: gitk:4077 +#: gitk:4096 msgid "All refs" msgstr "Ð’Ñички указатели" -#: gitk:4078 +#: gitk:4097 msgid "All (local) branches" msgstr "Ð’Ñички (локални) клони" -#: gitk:4079 +#: gitk:4098 msgid "All tags" msgstr "Ð’Ñички етикети" -#: gitk:4080 +#: gitk:4099 msgid "All remote-tracking branches" msgstr "Ð’Ñички ÑледÑщи клони" -#: gitk:4081 +#: gitk:4100 msgid "Commit Info (regular expressions):" msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° подаване (рег. изр.):" -#: gitk:4082 +#: gitk:4101 msgid "Author:" msgstr "Ðвтор:" -#: gitk:4083 +#: gitk:4102 msgid "Committer:" msgstr "Подал:" -#: gitk:4084 +#: gitk:4103 msgid "Commit Message:" msgstr "Съобщение при подаване:" -#: gitk:4085 +#: gitk:4104 msgid "Matches all Commit Info criteria" msgstr "Съвпадение по вÑички характериÑтики на подаването" -#: gitk:4086 +#: gitk:4105 msgid "Matches no Commit Info criteria" msgstr "Ðе Ñъвпада по Ð½Ð¸ÐºÐ¾Ñ Ð¾Ñ‚ характериÑтиките на подаването" -#: gitk:4087 +#: gitk:4106 msgid "Changes to Files:" msgstr "Промени по файловете:" -#: gitk:4088 +#: gitk:4107 msgid "Fixed String" msgstr "ДоÑловен низ" -#: gitk:4089 +#: gitk:4108 msgid "Regular Expression" msgstr "РегулÑрен израз" -#: gitk:4090 +#: gitk:4109 msgid "Search string:" msgstr "Ðиз за търÑене:" -#: gitk:4091 +#: gitk:4110 msgid "" "Commit Dates (\"2 weeks ago\", \"2009-03-17 15:27:38\", \"March 17, 2009 " "15:27:38\"):" @@ -691,204 +707,204 @@ msgstr "" "Дата на подаване („2 weeks ago“ (преди 2 Ñедмици), „2009-03-17 15:27:38“, " "„March 17, 2009 15:27:38“):" -#: gitk:4092 +#: gitk:4111 msgid "Since:" msgstr "От:" -#: gitk:4093 +#: gitk:4112 msgid "Until:" msgstr "До:" -#: gitk:4094 +#: gitk:4113 msgid "Limit and/or skip a number of revisions (positive integer):" msgstr "" "Ограничаване и/или преÑкачане на определен брой верÑии (неотрицателно цÑло " "чиÑло):" -#: gitk:4095 +#: gitk:4114 msgid "Number to show:" msgstr "Брой показани:" -#: gitk:4096 +#: gitk:4115 msgid "Number to skip:" msgstr "Брой преÑкочени:" -#: gitk:4097 +#: gitk:4116 msgid "Miscellaneous options:" msgstr "Разни:" -#: gitk:4098 +#: gitk:4117 msgid "Strictly sort by date" msgstr "Подреждане по дата" -#: gitk:4099 +#: gitk:4118 msgid "Mark branch sides" msgstr "ОтбелÑзване на Ñтраните по клона" -#: gitk:4100 +#: gitk:4119 msgid "Limit to first parent" msgstr "Само Ð¿ÑŠÑ€Ð²Ð¸Ñ Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»" -#: gitk:4101 +#: gitk:4120 msgid "Simple history" msgstr "ОпроÑтена иÑториÑ" -#: gitk:4102 +#: gitk:4121 msgid "Additional arguments to git log:" msgstr "Допълнителни аргументи към „git log“:" -#: gitk:4103 +#: gitk:4122 msgid "Enter files and directories to include, one per line:" msgstr "Въведете файловете и директориите за включване, по елемент на ред" -#: gitk:4104 +#: gitk:4123 msgid "Command to generate more commits to include:" msgstr "" "Команда за генерирането на допълнителни подаваниÑ, които да бъдат включени:" -#: gitk:4228 +#: gitk:4247 msgid "Gitk: edit view" msgstr "Gitk: редактиране на изглед" -#: gitk:4236 +#: gitk:4255 msgid "-- criteria for selecting revisions" msgstr "— критерии за избор на верÑии" -#: gitk:4241 +#: gitk:4260 msgid "View Name" msgstr "Име на изглед" -#: gitk:4316 +#: gitk:4335 msgid "Apply (F5)" msgstr "Прилагане (F5)" -#: gitk:4354 +#: gitk:4373 msgid "Error in commit selection arguments:" msgstr "Грешка в аргументите за избор на подаваниÑ:" -#: gitk:4409 gitk:4462 gitk:4924 gitk:4938 gitk:6208 gitk:12373 gitk:12374 +#: gitk:4428 gitk:4481 gitk:4943 gitk:4957 gitk:6227 gitk:12410 gitk:12411 msgid "None" msgstr "ÐÑма" -#: gitk:5021 gitk:5026 +#: gitk:5040 gitk:5045 msgid "Descendant" msgstr "ÐаÑледник" -#: gitk:5022 +#: gitk:5041 msgid "Not descendant" msgstr "Ðе е наÑледник" -#: gitk:5029 gitk:5034 +#: gitk:5048 gitk:5053 msgid "Ancestor" msgstr "ПредшеÑтвеник" -#: gitk:5030 +#: gitk:5049 msgid "Not ancestor" msgstr "Ðе е предшеÑтвеник" -#: gitk:5324 +#: gitk:5343 msgid "Local changes checked in to index but not committed" msgstr "Локални промени добавени към индекÑа, но неподадени" -#: gitk:5360 +#: gitk:5379 msgid "Local uncommitted changes, not checked in to index" msgstr "Локални промени извън индекÑа" -#: gitk:7134 +#: gitk:7153 msgid "and many more" msgstr "и още много" -#: gitk:7137 +#: gitk:7156 msgid "many" msgstr "много" -#: gitk:7328 +#: gitk:7347 msgid "Tags:" msgstr "Етикети:" -#: gitk:7345 gitk:7351 gitk:8825 +#: gitk:7364 gitk:7370 gitk:8844 msgid "Parent" msgstr "Родител" -#: gitk:7356 +#: gitk:7375 msgid "Child" msgstr "Дете" -#: gitk:7365 +#: gitk:7384 msgid "Branch" msgstr "Клон" -#: gitk:7368 +#: gitk:7387 msgid "Follows" msgstr "Следва" -#: gitk:7371 +#: gitk:7390 msgid "Precedes" msgstr "ПредшеÑтва" -#: gitk:7966 +#: gitk:7985 #, tcl-format msgid "Error getting diffs: %s" msgstr "Грешка при получаването на разликите: %s" -#: gitk:8650 +#: gitk:8669 msgid "Goto:" msgstr "Към ред:" -#: gitk:8671 +#: gitk:8690 #, tcl-format msgid "Short SHA1 id %s is ambiguous" msgstr "Съкратената Ñума по SHA1 %s не е еднозначна" -#: gitk:8678 +#: gitk:8697 #, tcl-format msgid "Revision %s is not known" msgstr "Ðепозната верÑÐ¸Ñ %s" -#: gitk:8688 +#: gitk:8707 #, tcl-format msgid "SHA1 id %s is not known" msgstr "Ðепозната Ñума по SHA1 %s" -#: gitk:8690 +#: gitk:8709 #, tcl-format msgid "Revision %s is not in the current view" msgstr "ВерÑÐ¸Ñ %s не е в Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ Ð¸Ð·Ð³Ð»ÐµÐ´" -#: gitk:8832 gitk:8847 +#: gitk:8851 gitk:8866 msgid "Date" msgstr "Дата" -#: gitk:8835 +#: gitk:8854 msgid "Children" msgstr "Деца" -#: gitk:8898 +#: gitk:8917 #, tcl-format msgid "Reset %s branch to here" msgstr "ЗанулÑване на клона „%s“ към текущото подаване" -#: gitk:8900 +#: gitk:8919 msgid "Detached head: can't reset" msgstr "ÐеÑвързан връх: невъзможно занулÑване" -#: gitk:9005 gitk:9011 +#: gitk:9024 gitk:9030 msgid "Skipping merge commit " msgstr "ПропуÑкане на подаването на Ñливането" -#: gitk:9020 gitk:9025 +#: gitk:9039 gitk:9044 msgid "Error getting patch ID for " msgstr "Грешка при получаването на идентификатора на " -#: gitk:9021 gitk:9026 +#: gitk:9040 gitk:9045 msgid " - stopping\n" msgstr " — Ñпиране\n" -#: gitk:9031 gitk:9034 gitk:9042 gitk:9056 gitk:9065 +#: gitk:9050 gitk:9053 gitk:9061 gitk:9075 gitk:9084 msgid "Commit " msgstr "Подаване" -#: gitk:9035 +#: gitk:9054 msgid "" " is the same patch as\n" " " @@ -896,7 +912,7 @@ msgstr "" " е Ñъщата кръпка като\n" " " -#: gitk:9043 +#: gitk:9062 msgid "" " differs from\n" " " @@ -904,7 +920,7 @@ msgstr "" " Ñе различава от\n" " " -#: gitk:9045 +#: gitk:9064 msgid "" "Diff of commits:\n" "\n" @@ -912,130 +928,130 @@ msgstr "" "Разлика между подаваниÑта:\n" "\n" -#: gitk:9057 gitk:9066 +#: gitk:9076 gitk:9085 #, tcl-format msgid " has %s children - stopping\n" msgstr " има %s деца — Ñпиране\n" -#: gitk:9085 +#: gitk:9104 #, tcl-format msgid "Error writing commit to file: %s" msgstr "Грешка при запазването на подаването във файл: %s" -#: gitk:9091 +#: gitk:9110 #, tcl-format msgid "Error diffing commits: %s" msgstr "Грешка при изчиÑлÑването на разликите между подаваниÑта: %s" -#: gitk:9137 +#: gitk:9156 msgid "Top" msgstr "Ðай-горе" -#: gitk:9138 +#: gitk:9157 msgid "From" msgstr "От" -#: gitk:9143 +#: gitk:9162 msgid "To" msgstr "До" -#: gitk:9167 +#: gitk:9186 msgid "Generate patch" msgstr "Генериране на кръпка" -#: gitk:9169 +#: gitk:9188 msgid "From:" msgstr "От:" -#: gitk:9178 +#: gitk:9197 msgid "To:" msgstr "До:" -#: gitk:9187 +#: gitk:9206 msgid "Reverse" msgstr "Обръщане" -#: gitk:9189 gitk:9385 +#: gitk:9208 gitk:9418 msgid "Output file:" msgstr "Запазване във файла:" -#: gitk:9195 +#: gitk:9214 msgid "Generate" msgstr "Генериране" -#: gitk:9233 +#: gitk:9252 msgid "Error creating patch:" msgstr "Грешка при Ñъздаването на кръпка:" -#: gitk:9256 gitk:9373 gitk:9430 +#: gitk:9275 gitk:9406 gitk:9463 msgid "ID:" msgstr "Идентификатор:" -#: gitk:9265 +#: gitk:9284 msgid "Tag name:" msgstr "Име на етикет:" -#: gitk:9268 +#: gitk:9287 msgid "Tag message is optional" msgstr "Съобщението за етикет е незадължително" -#: gitk:9270 +#: gitk:9289 msgid "Tag message:" msgstr "Съобщение за етикет:" -#: gitk:9274 gitk:9439 +#: gitk:9293 gitk:9472 msgid "Create" msgstr "Създаване" -#: gitk:9292 +#: gitk:9311 msgid "No tag name specified" msgstr "ЛипÑва име на етикет" -#: gitk:9296 +#: gitk:9315 #, tcl-format msgid "Tag \"%s\" already exists" msgstr "Етикетът „%s“ вече ÑъщеÑтвува" -#: gitk:9306 +#: gitk:9325 msgid "Error creating tag:" msgstr "Грешка при Ñъздаването на етикет:" -#: gitk:9382 +#: gitk:9415 msgid "Command:" msgstr "Команда:" -#: gitk:9390 +#: gitk:9423 msgid "Write" msgstr "Запазване" -#: gitk:9408 +#: gitk:9441 msgid "Error writing commit:" msgstr "Грешка при запазването на подаването:" -#: gitk:9435 +#: gitk:9468 msgid "Name:" msgstr "Име:" -#: gitk:9458 +#: gitk:9491 msgid "Please specify a name for the new branch" msgstr "Укажете име за Ð½Ð¾Ð²Ð¸Ñ ÐºÐ»Ð¾Ð½" -#: gitk:9463 +#: gitk:9496 #, tcl-format msgid "Branch '%s' already exists. Overwrite?" msgstr "Клонът „%s“ вече ÑъщеÑтвува. Да бъде ли презапиÑан?" -#: gitk:9530 +#: gitk:9563 #, tcl-format msgid "Commit %s is already included in branch %s -- really re-apply it?" msgstr "" "Подаването „%s“ вече е включено в клона „%s“ — да бъде ли приложено отново?" -#: gitk:9535 +#: gitk:9568 msgid "Cherry-picking" msgstr "Отбиране" -#: gitk:9544 +#: gitk:9577 #, tcl-format msgid "" "Cherry-pick failed because of local changes to file '%s'.\n" @@ -1044,7 +1060,7 @@ msgstr "" "ÐеуÑпешно отбиране, защото във файла „%s“ има локални промени.\n" "Подайте, занулете или ги Ñкатайте и пробвайте отново." -#: gitk:9550 +#: gitk:9583 msgid "" "Cherry-pick failed because of merge conflict.\n" "Do you wish to run git citool to resolve it?" @@ -1052,20 +1068,20 @@ msgstr "" "ÐеуÑпешно отбиране поради конфликти при Ñливане.\n" "ИÑкате ли да ги коригирате чрез „git citool“?" -#: gitk:9566 gitk:9624 +#: gitk:9599 gitk:9657 msgid "No changes committed" msgstr "Ðе Ñа подадени промени" -#: gitk:9593 +#: gitk:9626 #, tcl-format msgid "Commit %s is not included in branch %s -- really revert it?" msgstr "Подаването „%s“ не е включено в клона „%s“. Да бъде ли отменено?" -#: gitk:9598 +#: gitk:9631 msgid "Reverting" msgstr "ОтмÑна" -#: gitk:9606 +#: gitk:9639 #, tcl-format msgid "" "Revert failed because of local changes to the following files:%s Please " @@ -1074,7 +1090,7 @@ msgstr "" "ÐеуÑпешна отмÑна, защото във файла „%s“ има локални промени.\n" "Подайте, занулете или ги Ñкатайте и пробвайте отново.<" -#: gitk:9610 +#: gitk:9643 msgid "" "Revert failed because of merge conflict.\n" " Do you wish to run git citool to resolve it?" @@ -1082,28 +1098,28 @@ msgstr "" "ÐеуÑпешно отмÑна поради конфликти при Ñливане.\n" "ИÑкате ли да ги коригирате чрез „git citool“?" -#: gitk:9653 +#: gitk:9686 msgid "Confirm reset" msgstr "Потвърждаване на занулÑването" -#: gitk:9655 +#: gitk:9688 #, tcl-format msgid "Reset branch %s to %s?" msgstr "Да Ñе занули ли клонът „%s“ към „%s“?" -#: gitk:9657 +#: gitk:9690 msgid "Reset type:" msgstr "Вид занулÑване:" -#: gitk:9660 +#: gitk:9693 msgid "Soft: Leave working tree and index untouched" msgstr "Слабо: работното дърво и индекÑа оÑтават Ñъщите" -#: gitk:9663 +#: gitk:9696 msgid "Mixed: Leave working tree untouched, reset index" msgstr "СмеÑено: работното дърво оÑтава Ñъщото, индекÑÑŠÑ‚ Ñе занулÑва" -#: gitk:9666 +#: gitk:9699 msgid "" "Hard: Reset working tree and index\n" "(discard ALL local changes)" @@ -1111,19 +1127,19 @@ msgstr "" "Силно: занулÑване и на работното дърво, и на индекÑа\n" "(*ВСИЧКИ* локални промени ще бъдат безвъзвратно загубени)" -#: gitk:9683 +#: gitk:9716 msgid "Resetting" msgstr "ЗанулÑване" -#: gitk:9743 +#: gitk:9776 msgid "Checking out" msgstr "ИзтеглÑне" -#: gitk:9796 +#: gitk:9829 msgid "Cannot delete the currently checked-out branch" msgstr "Текущо изтеглениÑÑ‚ клон не може да бъде изтрит" -#: gitk:9802 +#: gitk:9835 #, tcl-format msgid "" "The commits on branch %s aren't on any other branch.\n" @@ -1132,16 +1148,16 @@ msgstr "" "ПодаваниÑта на клона „%s“ не Ñа на никой друг клон.\n" "ÐаиÑтина ли да Ñе изтрие клонът „%s“?" -#: gitk:9833 +#: gitk:9866 #, tcl-format msgid "Tags and heads: %s" msgstr "Етикети и върхове: %s" -#: gitk:9850 +#: gitk:9883 msgid "Filter" msgstr "Филтриране" -#: gitk:10146 +#: gitk:10179 msgid "" "Error reading commit topology information; branch and preceding/following " "tag information will be incomplete." @@ -1149,201 +1165,201 @@ msgstr "" "Грешка при прочитането на топологиÑта на подаваниÑта. ИнформациÑта за клона " "и предшеÑтващите/Ñледващите етикети ще е непълна." -#: gitk:11123 +#: gitk:11156 msgid "Tag" msgstr "Етикет" -#: gitk:11127 +#: gitk:11160 msgid "Id" msgstr "Идентификатор" -#: gitk:11210 +#: gitk:11243 msgid "Gitk font chooser" msgstr "Избор на шрифт за Gitk" -#: gitk:11227 +#: gitk:11260 msgid "B" msgstr "Ч" -#: gitk:11230 +#: gitk:11263 msgid "I" msgstr "К" -#: gitk:11348 +#: gitk:11381 msgid "Commit list display options" msgstr "ÐаÑтройки на ÑпиÑъка Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ" -#: gitk:11351 +#: gitk:11384 msgid "Maximum graph width (lines)" msgstr "МакÑимална широчина на графа (в редове)" -#: gitk:11355 +#: gitk:11388 #, no-tcl-format msgid "Maximum graph width (% of pane)" msgstr "МакÑимална широчина на графа (% от панела)" -#: gitk:11358 +#: gitk:11391 msgid "Show local changes" msgstr "Показване на локалните промени" -#: gitk:11361 +#: gitk:11394 msgid "Auto-select SHA1 (length)" msgstr "Ðвтоматично избиране на SHA1 (дължина)" -#: gitk:11365 +#: gitk:11398 msgid "Hide remote refs" msgstr "Скриване на отдалечените указатели" -#: gitk:11369 +#: gitk:11402 msgid "Diff display options" msgstr "ÐаÑтройки на показването на разликите" -#: gitk:11371 +#: gitk:11404 msgid "Tab spacing" msgstr "Широчина на табулатора" -#: gitk:11374 +#: gitk:11407 msgid "Display nearby tags/heads" msgstr "Извеждане на близките етикети и върхове" -#: gitk:11377 +#: gitk:11410 msgid "Maximum # tags/heads to show" msgstr "МакÑимален брой етикети/върхове за показване" -#: gitk:11380 +#: gitk:11413 msgid "Limit diffs to listed paths" msgstr "Разлика Ñамо в избраните пътища" -#: gitk:11383 +#: gitk:11416 msgid "Support per-file encodings" msgstr "Поддръжка на различни ÐºÐ¾Ð´Ð¸Ñ€Ð°Ð½Ð¸Ñ Ð·Ð° вÑеки файл" -#: gitk:11389 gitk:11536 +#: gitk:11422 gitk:11569 msgid "External diff tool" msgstr "Външен инÑтрумент за разлики" -#: gitk:11390 +#: gitk:11423 msgid "Choose..." msgstr "Избор…" -#: gitk:11395 +#: gitk:11428 msgid "General options" msgstr "Общи наÑтройки" -#: gitk:11398 +#: gitk:11431 msgid "Use themed widgets" msgstr "Използване на тема за графичните обекти" -#: gitk:11400 +#: gitk:11433 msgid "(change requires restart)" msgstr "(промÑната изиÑква реÑтартиране на Gitk)" -#: gitk:11402 +#: gitk:11435 msgid "(currently unavailable)" msgstr "(в момента недоÑтъпно)" -#: gitk:11413 +#: gitk:11446 msgid "Colors: press to choose" msgstr "Цветове: избира Ñе Ñ Ð½Ð°Ñ‚Ð¸Ñкане" -#: gitk:11416 +#: gitk:11449 msgid "Interface" msgstr "ИнтерфейÑ" -#: gitk:11417 +#: gitk:11450 msgid "interface" msgstr "интерфейÑ" -#: gitk:11420 +#: gitk:11453 msgid "Background" msgstr "Фон" -#: gitk:11421 gitk:11451 +#: gitk:11454 gitk:11484 msgid "background" msgstr "фон" -#: gitk:11424 +#: gitk:11457 msgid "Foreground" msgstr "Знаци" -#: gitk:11425 +#: gitk:11458 msgid "foreground" msgstr "знаци" -#: gitk:11428 +#: gitk:11461 msgid "Diff: old lines" msgstr "Разлика: Ñтари редове" -#: gitk:11429 +#: gitk:11462 msgid "diff old lines" msgstr "разлика, Ñтари редове" -#: gitk:11433 +#: gitk:11466 msgid "Diff: new lines" msgstr "Разлика: нови редове" -#: gitk:11434 +#: gitk:11467 msgid "diff new lines" msgstr "разлика, нови редове" -#: gitk:11438 +#: gitk:11471 msgid "Diff: hunk header" msgstr "Разлика: начало на парче" -#: gitk:11440 +#: gitk:11473 msgid "diff hunk header" msgstr "разлика, начало на парче" -#: gitk:11444 +#: gitk:11477 msgid "Marked line bg" msgstr "Фон на отбелÑзан ред" -#: gitk:11446 +#: gitk:11479 msgid "marked line background" msgstr "фон на отбелÑзан ред" -#: gitk:11450 +#: gitk:11483 msgid "Select bg" msgstr "Избор на фон" -#: gitk:11459 +#: gitk:11492 msgid "Fonts: press to choose" msgstr "Шрифтове: избира Ñе Ñ Ð½Ð°Ñ‚Ð¸Ñкане" -#: gitk:11461 +#: gitk:11494 msgid "Main font" msgstr "ОÑновен шрифт" -#: gitk:11462 +#: gitk:11495 msgid "Diff display font" msgstr "Шрифт за разликите" -#: gitk:11463 +#: gitk:11496 msgid "User interface font" msgstr "Шрифт на интерфейÑа" -#: gitk:11485 +#: gitk:11518 msgid "Gitk preferences" msgstr "ÐаÑтройки на Gitk" -#: gitk:11494 +#: gitk:11527 msgid "General" msgstr "Общи" -#: gitk:11495 +#: gitk:11528 msgid "Colors" msgstr "Цветове" -#: gitk:11496 +#: gitk:11529 msgid "Fonts" msgstr "Шрифтове" -#: gitk:11546 +#: gitk:11579 #, tcl-format msgid "Gitk: choose color for %s" msgstr "Gitk: избор на цвÑÑ‚ на „%s“" -#: gitk:12059 +#: gitk:12092 msgid "" "Sorry, gitk cannot run with this version of Tcl/Tk.\n" " Gitk requires at least Tcl/Tk 8.4." @@ -1351,15 +1367,15 @@ msgstr "" "Тази верÑÐ¸Ñ Ð½Ð° Tcl/Tk не Ñе поддържа от Gitk.\n" " Ðеобходима ви е поне Tcl/Tk 8.4." -#: gitk:12269 +#: gitk:12302 msgid "Cannot find a git repository here." msgstr "Тук липÑва хранилище на Git." -#: gitk:12316 +#: gitk:12349 #, tcl-format msgid "Ambiguous argument '%s': both revision and filename" msgstr "Ðееднозначен аргумент „%s“: има и такава верÑиÑ, и такъв файл" -#: gitk:12328 +#: gitk:12361 msgid "Bad arguments to gitk:" msgstr "Ðеправилни аргументи на gitk:" diff --git a/gitk-git/po/de.po b/gitk-git/po/de.po index d9ba4052e2..bde749ed8a 100644 --- a/gitk-git/po/de.po +++ b/gitk-git/po/de.po @@ -23,11 +23,11 @@ msgstr "Liste der nicht zusammengeführten Dateien nicht gefunden:" #: gitk:212 gitk:2381 msgid "Color words" -msgstr "" +msgstr "Wörter einfärben" #: gitk:217 gitk:2381 gitk:8220 gitk:8253 msgid "Markup words" -msgstr "" +msgstr "Wörter kennzeichnen" #: gitk:324 msgid "Error parsing revisions:" @@ -187,7 +187,7 @@ msgstr "Änderungen:" #: gitk:2304 gitk:4779 msgid "changing lines matching:" -msgstr "" +msgstr "Geänderte Zeilen entsprechen:" #: gitk:2313 gitk:2315 gitk:4766 msgid "Exact" @@ -248,7 +248,7 @@ msgstr "Leerzeichenänderungen ignorieren" #: gitk:2378 gitk:2380 gitk:7959 gitk:8206 msgid "Line diff" -msgstr "" +msgstr "Zeilenunterschied" #: gitk:2445 msgid "Patch" @@ -307,19 +307,16 @@ msgid "Compare with marked commit" msgstr "Mit Lesezeichen vergleichen" #: gitk:2629 gitk:2640 -#, fuzzy msgid "Diff this -> marked commit" -msgstr "Vergleich: diese -> gewählte" +msgstr "Vergleich: diese -> gewählte Version" #: gitk:2630 gitk:2641 -#, fuzzy msgid "Diff marked commit -> this" -msgstr "Vergleich: gewählte -> diese" +msgstr "Vergleich: gewählte -> diese Version" #: gitk:2631 -#, fuzzy msgid "Revert this commit" -msgstr "Lesezeichen setzen" +msgstr "Version umkehren" #: gitk:2647 msgid "Check out this branch" @@ -331,7 +328,7 @@ msgstr "Zweig löschen" #: gitk:2649 msgid "Copy branch name" -msgstr "" +msgstr "Zweigname kopieren" #: gitk:2656 msgid "Highlight this too" @@ -351,7 +348,7 @@ msgstr "Annotieren der Elternversion" #: gitk:2660 msgid "Copy path" -msgstr "" +msgstr "Pfad kopieren" #: gitk:2667 msgid "Show origin of this line" @@ -362,7 +359,6 @@ msgid "Run git gui blame on this line" msgstr "Diese Zeile annotieren (»git gui blame«)" #: gitk:3014 -#, fuzzy msgid "" "\n" "Gitk - a commit viewer for git\n" @@ -374,7 +370,7 @@ msgstr "" "\n" "Gitk - eine Visualisierung der Git-Historie\n" "\n" -"Copyright \\u00a9 2005-2010 Paul Mackerras\n" +"Copyright \\u00a9 2005-2014 Paul Mackerras\n" "\n" "Benutzung und Weiterverbreitung gemäß den Bedingungen der GNU General Public " "License" @@ -397,9 +393,9 @@ msgid "<%s-Q>\t\tQuit" msgstr "<%s-Q>\t\tBeenden" #: gitk:3049 -#, fuzzy, tcl-format +#, tcl-format msgid "<%s-W>\t\tClose window" -msgstr "<%s-F>\t\tSuchen" +msgstr "<%s-F>\t\tFenster schließen" #: gitk:3050 msgid "<Home>\t\tMove to first commit" @@ -410,19 +406,16 @@ msgid "<End>\t\tMove to last commit" msgstr "<Ende>\t\tZur ältesten Version springen" #: gitk:3052 -#, fuzzy msgid "<Up>, p, k\tMove up one commit" -msgstr "<Hoch>, p, i\tNächste neuere Version" +msgstr "<Hoch>, p, k\tNächste neuere Version" #: gitk:3053 -#, fuzzy msgid "<Down>, n, j\tMove down one commit" -msgstr "<Runter>, n, k\tNächste ältere Version" +msgstr "<Runter>, n, j\tNächste ältere Version" #: gitk:3054 -#, fuzzy msgid "<Left>, z, h\tGo back in history list" -msgstr "<Links>, z, j\tEine Version zurückgehen" +msgstr "<Links>, z, h\tEine Version zurückgehen" #: gitk:3055 msgid "<Right>, x, l\tGo forward in history list" @@ -431,7 +424,7 @@ msgstr "<Rechts>, x, l\tEine Version weitergehen" #: gitk:3056 #, tcl-format msgid "<%s-n>\tGo to n-th parent of current commit in history list" -msgstr "" +msgstr "<%s-n>\tZu n-ter Elternversion in Versionshistorie springen" #: gitk:3057 msgid "<PageUp>\tMove up one page in commit list" @@ -514,9 +507,8 @@ msgid "<Return>\tMove to next find hit" msgstr "<Eingabetaste>\tWeitersuchen" #: gitk:3075 -#, fuzzy msgid "g\t\tGo to commit" -msgstr "<Ende>\t\tZur ältesten Version springen" +msgstr "g\t\tZu Version springen" #: gitk:3076 msgid "/\t\tFocus the search box" @@ -673,9 +665,8 @@ msgid "Matches all Commit Info criteria" msgstr "Alle Versionsinformationen-Kriterien erfüllen" #: gitk:4086 -#, fuzzy msgid "Matches no Commit Info criteria" -msgstr "Alle Versionsinformationen-Kriterien erfüllen" +msgstr "keine Versionsinformationen-Kriterien erfüllen" #: gitk:4087 msgid "Changes to Files:" @@ -802,7 +793,7 @@ msgstr "Lokale Änderungen, nicht bereitgestellt" #: gitk:7134 msgid "and many more" -msgstr "" +msgstr "und weitere" #: gitk:7137 msgid "many" @@ -1066,34 +1057,31 @@ msgid "No changes committed" msgstr "Keine Änderungen eingetragen" #: gitk:9593 -#, fuzzy, tcl-format +#, tcl-format msgid "Commit %s is not included in branch %s -- really revert it?" msgstr "" -"Version »%s« ist bereits im Zweig »%s« enthalten -- trotzdem erneut " -"eintragen?" +"Version »%s« ist nicht im Zweig »%s« enthalten -- trotzdem umkehren?" #: gitk:9598 -#, fuzzy msgid "Reverting" -msgstr "Zurücksetzen" +msgstr "Umkehren" #: gitk:9606 -#, fuzzy, tcl-format +#, tcl-format msgid "" "Revert failed because of local changes to the following files:%s Please " "commit, reset or stash your changes and try again." msgstr "" -"Pflücken fehlgeschlagen, da noch lokale Änderungen in Datei »%s«\n" +"Umkehren fehlgeschlagen, da noch lokale Änderungen in Datei »%s«\n" "vorliegen. Bitte diese Änderungen eintragen, zurücksetzen oder\n" "zwischenspeichern (»git stash«) und dann erneut versuchen." #: gitk:9610 -#, fuzzy msgid "" "Revert failed because of merge conflict.\n" " Do you wish to run git citool to resolve it?" msgstr "" -"Pflücken fehlgeschlagen, da ein Zusammenführungs-Konflikt aufgetreten\n" +"Umkehren fehlgeschlagen, da ein Zusammenführungs-Konflikt aufgetreten\n" "ist. Soll das Zusammenführungs-Werkzeug (»git citool«) aufgerufen\n" "werden, um diesen Konflikt aufzulösen?" @@ -1206,9 +1194,8 @@ msgid "Show local changes" msgstr "Lokale Änderungen anzeigen" #: gitk:11361 -#, fuzzy msgid "Auto-select SHA1 (length)" -msgstr "SHA1-Hashwert automatisch auswählen" +msgstr "SHA1-Hashwert (Länge) automatisch auswählen" #: gitk:11365 msgid "Hide remote refs" @@ -1223,13 +1210,12 @@ msgid "Tab spacing" msgstr "Tabulatorbreite" #: gitk:11374 -#, fuzzy msgid "Display nearby tags/heads" -msgstr "Naheliegende Markierungen anzeigen" +msgstr "Naheliegende Markierungen/Zweigspitzen anzeigen" #: gitk:11377 msgid "Maximum # tags/heads to show" -msgstr "" +msgstr "Maximale Anzahl anzuzeigender Markierungen/Zweigspitzen" #: gitk:11380 msgid "Limit diffs to listed paths" @@ -1348,17 +1334,16 @@ msgid "Gitk preferences" msgstr "Gitk-Einstellungen" #: gitk:11494 -#, fuzzy msgid "General" -msgstr "Erzeugen" +msgstr "Allgemein" #: gitk:11495 msgid "Colors" -msgstr "" +msgstr "Farben" #: gitk:11496 msgid "Fonts" -msgstr "" +msgstr "Schriftarten" #: gitk:11546 #, tcl-format @@ -1370,6 +1355,8 @@ msgid "" "Sorry, gitk cannot run with this version of Tcl/Tk.\n" " Gitk requires at least Tcl/Tk 8.4." msgstr "" +"Entschuldigung, gitk kann nicht mit dieser Tcl/Tk Version ausgeführt werden.\n" +" Gitk erfordert mindestens Tcl/Tk 8.4." #: gitk:12269 msgid "Cannot find a git repository here." diff --git a/gitk-git/po/fr.po b/gitk-git/po/fr.po index 80f72fb453..c44f994fa5 100644 --- a/gitk-git/po/fr.po +++ b/gitk-git/po/fr.po @@ -3,14 +3,14 @@ # This file is distributed under the same license as the gitk package. # Translators: # Emmanuel Trillaud <etrillaud@gmail.com> -# +# Jean-Noël Avila <jn.avila@free.fr> msgid "" msgstr "" "Project-Id-Version: gitk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-05-17 14:32+1000\n" -"PO-Revision-Date: 2009-11-19 22:13+0100\n" -"Last-Translator: Emmanuel Trillaud <etrillaud@gmail.com>\n" +"POT-Creation-Date: 2016-01-22 22:04+0100\n" +"PO-Revision-Date: 2016-01-22 23:28+0100\n" +"Last-Translator: Jean-Noël Avila <jn.avila@free.fr>\n" "Language-Team: git@vger.kernel.org\n" "Language: \n" "MIME-Version: 1.0\n" @@ -23,13 +23,13 @@ msgstr "" msgid "Couldn't get list of unmerged files:" msgstr "Impossible de récupérer la liste des fichiers non fusionnés :" -#: gitk:212 gitk:2381 +#: gitk:212 gitk:2399 msgid "Color words" -msgstr "" +msgstr "Colorier les mots différents" -#: gitk:217 gitk:2381 gitk:8220 gitk:8253 +#: gitk:217 gitk:2399 gitk:8239 gitk:8272 msgid "Markup words" -msgstr "" +msgstr "Marquer les mots différents" #: gitk:324 msgid "Error parsing revisions:" @@ -47,13 +47,10 @@ msgstr "" # FIXME : améliorer la traduction de 'file limite' #: gitk:396 -#, fuzzy msgid "" "No files selected: --merge specified but no unmerged files are within file " "limit." -msgstr "" -"Aucun fichier sélectionné : --merge précisé mais aucun fichier non fusionné " -"n'est dans la limite des fichiers." +msgstr "Aucun fichier sélectionné : --merge précisé mais aucun fichier non fusionné n'est dans la limite des fichiers." #: gitk:418 gitk:566 msgid "Error executing git log:" @@ -63,15 +60,15 @@ msgstr "Erreur à l'exécution de git log :" msgid "Reading" msgstr "Lecture en cours" -#: gitk:496 gitk:4525 +#: gitk:496 gitk:4544 msgid "Reading commits..." msgstr "Lecture des commits..." -#: gitk:499 gitk:1637 gitk:4528 +#: gitk:499 gitk:1637 gitk:4547 msgid "No commits selected" msgstr "Aucun commit sélectionné" -#: gitk:1445 gitk:4045 gitk:12432 +#: gitk:1445 gitk:4064 gitk:12469 msgid "Command line" msgstr "Ligne de commande" @@ -83,290 +80,294 @@ msgstr "Impossible de lire la sortie de git log :" msgid "No commit information available" msgstr "Aucune information disponible sur le commit" -#: gitk:1903 gitk:1932 gitk:4315 gitk:9669 gitk:11241 gitk:11521 +#: gitk:1903 gitk:1932 gitk:4334 gitk:9702 gitk:11274 gitk:11554 msgid "OK" msgstr "OK" -#: gitk:1934 gitk:4317 gitk:9196 gitk:9275 gitk:9391 gitk:9440 gitk:9671 -#: gitk:11242 gitk:11522 +#: gitk:1934 gitk:4336 gitk:9215 gitk:9294 gitk:9424 gitk:9473 gitk:9704 +#: gitk:11275 gitk:11555 msgid "Cancel" msgstr "Annuler" -#: gitk:2069 +#: gitk:2083 msgid "&Update" msgstr "Mise à jour" -#: gitk:2070 +#: gitk:2084 msgid "&Reload" -msgstr "Recharger" +msgstr "&Recharger" -#: gitk:2071 +#: gitk:2085 msgid "Reread re&ferences" -msgstr "Relire les références" +msgstr "Relire les ré&férences" -#: gitk:2072 +#: gitk:2086 msgid "&List references" -msgstr "Lister les références" +msgstr "&Lister les références" -#: gitk:2074 +#: gitk:2088 msgid "Start git &gui" -msgstr "Démarrer git gui" +msgstr "Démarrer git &gui" -#: gitk:2076 +#: gitk:2090 msgid "&Quit" -msgstr "Quitter" +msgstr "&Quitter" -#: gitk:2068 +#: gitk:2082 msgid "&File" -msgstr "Fichier" +msgstr "&Fichier" -#: gitk:2080 +#: gitk:2094 msgid "&Preferences" msgstr "Préférences" -#: gitk:2079 +#: gitk:2093 msgid "&Edit" -msgstr "Éditer" +msgstr "&Éditer" -#: gitk:2084 +#: gitk:2098 msgid "&New view..." -msgstr "Nouvelle vue..." +msgstr "&Nouvelle vue..." -#: gitk:2085 +#: gitk:2099 msgid "&Edit view..." -msgstr "Éditer la vue..." +msgstr "&Éditer la vue..." -#: gitk:2086 +#: gitk:2100 msgid "&Delete view" msgstr "Supprimer la vue" -#: gitk:2088 gitk:4043 +#: gitk:2102 msgid "&All files" msgstr "Tous les fichiers" -#: gitk:2083 gitk:4067 +#: gitk:2097 msgid "&View" -msgstr "Vue" +msgstr "&Vue" -#: gitk:2093 gitk:2103 gitk:3012 +#: gitk:2107 gitk:2117 msgid "&About gitk" msgstr "À propos de gitk" -#: gitk:2094 gitk:2108 +#: gitk:2108 gitk:2122 msgid "&Key bindings" msgstr "Raccourcis clavier" -#: gitk:2092 gitk:2107 +#: gitk:2106 gitk:2121 msgid "&Help" msgstr "Aide" -#: gitk:2185 gitk:8652 +#: gitk:2199 gitk:8671 msgid "SHA1 ID:" msgstr "Id SHA1 :" -#: gitk:2229 +#: gitk:2243 msgid "Row" msgstr "Colonne" -#: gitk:2267 +#: gitk:2281 msgid "Find" msgstr "Recherche" -#: gitk:2295 +#: gitk:2309 msgid "commit" msgstr "commit" -#: gitk:2299 gitk:2301 gitk:4687 gitk:4710 gitk:4734 gitk:6755 gitk:6827 -#: gitk:6912 +#: gitk:2313 gitk:2315 gitk:4706 gitk:4729 gitk:4753 gitk:6774 gitk:6846 +#: gitk:6931 msgid "containing:" msgstr "contient :" -#: gitk:2302 gitk:3526 gitk:3531 gitk:4763 +#: gitk:2316 gitk:3545 gitk:3550 gitk:4782 msgid "touching paths:" msgstr "chemins modifiés :" -#: gitk:2303 gitk:4777 +#: gitk:2317 gitk:4796 msgid "adding/removing string:" msgstr "ajoute/supprime la chaîne :" -#: gitk:2304 gitk:4779 +#: gitk:2318 gitk:4798 msgid "changing lines matching:" -msgstr "" +msgstr "modifie les lignes vérifiant :" -#: gitk:2313 gitk:2315 gitk:4766 +#: gitk:2327 gitk:2329 gitk:4785 msgid "Exact" msgstr "Exact" -#: gitk:2315 gitk:4854 gitk:6723 +#: gitk:2329 gitk:4873 gitk:6742 msgid "IgnCase" msgstr "Ignorer la casse" -#: gitk:2315 gitk:4736 gitk:4852 gitk:6719 +#: gitk:2329 gitk:4755 gitk:4871 gitk:6738 msgid "Regexp" msgstr "Expression régulière" -#: gitk:2317 gitk:2318 gitk:4874 gitk:4904 gitk:4911 gitk:6848 gitk:6916 +#: gitk:2331 gitk:2332 gitk:4893 gitk:4923 gitk:4930 gitk:6867 gitk:6935 msgid "All fields" msgstr "Tous les champs" -#: gitk:2318 gitk:4871 gitk:4904 gitk:6786 +#: gitk:2332 gitk:4890 gitk:4923 gitk:6805 msgid "Headline" -msgstr "Surligner" +msgstr "Titre" -#: gitk:2319 gitk:4871 gitk:6786 gitk:6916 gitk:7389 +#: gitk:2333 gitk:4890 gitk:6805 gitk:6935 gitk:7408 msgid "Comments" msgstr "Commentaires" -#: gitk:2319 gitk:4871 gitk:4876 gitk:4911 gitk:6786 gitk:7324 gitk:8830 -#: gitk:8845 +#: gitk:2333 gitk:4890 gitk:4895 gitk:4930 gitk:6805 gitk:7343 gitk:8849 +#: gitk:8864 msgid "Author" msgstr "Auteur" -#: gitk:2319 gitk:4871 gitk:6786 gitk:7326 +#: gitk:2333 gitk:4890 gitk:6805 gitk:7345 msgid "Committer" -msgstr "Auteur du commit" +msgstr "Validateur" -#: gitk:2350 +#: gitk:2367 msgid "Search" msgstr "Rechercher" -#: gitk:2358 +#: gitk:2375 msgid "Diff" msgstr "Diff" -#: gitk:2360 +#: gitk:2377 msgid "Old version" msgstr "Ancienne version" -#: gitk:2362 +#: gitk:2379 msgid "New version" msgstr "Nouvelle version" -#: gitk:2364 +#: gitk:2382 msgid "Lines of context" msgstr "Lignes de contexte" -#: gitk:2374 +#: gitk:2392 msgid "Ignore space change" msgstr "Ignorer les modifications d'espace" -#: gitk:2378 gitk:2380 gitk:7959 gitk:8206 +#: gitk:2396 gitk:2398 gitk:7978 gitk:8225 msgid "Line diff" -msgstr "" +msgstr "différence par ligne" -#: gitk:2445 +#: gitk:2463 msgid "Patch" msgstr "Patch" -#: gitk:2447 +#: gitk:2465 msgid "Tree" msgstr "Arbre" -#: gitk:2617 gitk:2637 +#: gitk:2635 gitk:2656 msgid "Diff this -> selected" -msgstr "Diff entre ceci et la sélection" +msgstr "Diff ceci -> la sélection" -#: gitk:2618 gitk:2638 +#: gitk:2636 gitk:2657 msgid "Diff selected -> this" -msgstr "Diff entre sélection et ceci" +msgstr "Diff sélection -> ceci" -#: gitk:2619 gitk:2639 +#: gitk:2637 gitk:2658 msgid "Make patch" msgstr "Créer patch" -#: gitk:2620 gitk:9254 +#: gitk:2638 gitk:9273 msgid "Create tag" -msgstr "Créer tag" +msgstr "Créer étiquette" + +#: gitk:2639 +msgid "Copy commit summary" +msgstr "Copié le résumé du commit" -#: gitk:2621 gitk:9371 +#: gitk:2640 gitk:9404 msgid "Write commit to file" msgstr "Écrire le commit dans un fichier" -#: gitk:2622 gitk:9428 +#: gitk:2641 gitk:9461 msgid "Create new branch" msgstr "Créer une nouvelle branche" -#: gitk:2623 +#: gitk:2642 msgid "Cherry-pick this commit" msgstr "Cueillir (cherry-pick) ce commit" -#: gitk:2624 +#: gitk:2643 msgid "Reset HEAD branch to here" msgstr "Réinitialiser la branche HEAD vers cet état" -#: gitk:2625 +#: gitk:2644 msgid "Mark this commit" msgstr "Marquer ce commit" -#: gitk:2626 +#: gitk:2645 msgid "Return to mark" msgstr "Retourner à la marque" -#: gitk:2627 +#: gitk:2646 msgid "Find descendant of this and mark" msgstr "Chercher le descendant de ceci et le marquer" -#: gitk:2628 +#: gitk:2647 msgid "Compare with marked commit" msgstr "Comparer avec le commit marqué" -#: gitk:2629 gitk:2640 -#, fuzzy +#: gitk:2648 gitk:2659 msgid "Diff this -> marked commit" -msgstr "Diff entre ceci et la sélection" +msgstr "Diff ceci -> sélection" -#: gitk:2630 gitk:2641 -#, fuzzy +#: gitk:2649 gitk:2660 msgid "Diff marked commit -> this" -msgstr "Diff entre sélection et ceci" +msgstr "Diff entre sélection -> ceci" -#: gitk:2631 -#, fuzzy +#: gitk:2650 msgid "Revert this commit" -msgstr "Marquer ce commit" +msgstr "Défaire ce commit" -#: gitk:2647 +#: gitk:2666 msgid "Check out this branch" msgstr "Récupérer cette branche" -#: gitk:2648 +#: gitk:2667 msgid "Remove this branch" msgstr "Supprimer cette branche" -#: gitk:2649 +#: gitk:2668 msgid "Copy branch name" -msgstr "" +msgstr "Copier la nom de la branche" -#: gitk:2656 +#: gitk:2675 msgid "Highlight this too" msgstr "Surligner également ceci" -#: gitk:2657 +#: gitk:2676 msgid "Highlight this only" msgstr "Surligner seulement ceci" -#: gitk:2658 +#: gitk:2677 msgid "External diff" msgstr "Diff externe" -#: gitk:2659 +#: gitk:2678 msgid "Blame parent commit" msgstr "Blâmer le commit parent" -#: gitk:2660 +#: gitk:2679 msgid "Copy path" -msgstr "" +msgstr "Copier le chemin" -#: gitk:2667 +#: gitk:2686 msgid "Show origin of this line" msgstr "Montrer l'origine de cette ligne" -#: gitk:2668 +#: gitk:2687 msgid "Run git gui blame on this line" msgstr "Exécuter git gui blame sur cette ligne" -#: gitk:3014 -#, fuzzy +#: gitk:3031 +msgid "About gitk" +msgstr "À propos de gitk" + +#: gitk:3033 msgid "" "\n" "Gitk - a commit viewer for git\n" @@ -378,327 +379,329 @@ msgstr "" "\n" "Gitk - visualisateur de commit pour git\n" "\n" -"Copyright \\u00a9 2005-2010 Paul Mackerras\n" +"Copyright \\u00a9 2005-2014 Paul Mackerras\n" "\n" -"Utilisation et redistribution soumises aux termes de la GNU General Public " -"License" +"Utilisation et redistribution soumises aux termes de la GNU General Public License" -#: gitk:3022 gitk:3089 gitk:9857 +#: gitk:3041 gitk:3108 gitk:9890 msgid "Close" msgstr "Fermer" -#: gitk:3043 +#: gitk:3062 msgid "Gitk key bindings" msgstr "Raccourcis clavier de Gitk" -#: gitk:3046 +#: gitk:3065 msgid "Gitk key bindings:" msgstr "Raccourcis clavier de Gitk :" -#: gitk:3048 +#: gitk:3067 #, tcl-format msgid "<%s-Q>\t\tQuit" msgstr "<%s-Q>\t\tQuitter" -#: gitk:3049 -#, fuzzy, tcl-format +#: gitk:3068 +#, tcl-format msgid "<%s-W>\t\tClose window" -msgstr "<%s-F>\t\tRechercher" +msgstr "<%s-W>\t\tFermer la fenêtre" -#: gitk:3050 +#: gitk:3069 msgid "<Home>\t\tMove to first commit" msgstr "<Début>\t\tAller au premier commit" -#: gitk:3051 +#: gitk:3070 msgid "<End>\t\tMove to last commit" msgstr "<Fin>\t\tAller au dernier commit" -#: gitk:3052 -#, fuzzy +#: gitk:3071 msgid "<Up>, p, k\tMove up one commit" -msgstr "<Haut>, p, i\t Aller au commit suivant" +msgstr "<Haut>, p, k\t Aller au commit précédent" -#: gitk:3053 -#, fuzzy +#: gitk:3072 msgid "<Down>, n, j\tMove down one commit" -msgstr "<Bas>, n, k\t Aller au commit précédent" +msgstr "<Bas>, n, j\t Aller au commit suivant" -#: gitk:3054 -#, fuzzy +#: gitk:3073 msgid "<Left>, z, h\tGo back in history list" -msgstr "<Gauche>, z, j\tReculer dans l'historique" +msgstr "<Gauche>, z, h\tReculer dans l'historique" -#: gitk:3055 +#: gitk:3074 msgid "<Right>, x, l\tGo forward in history list" msgstr "<Droite>, x, l\tAvancer dans l'historique" -#: gitk:3056 +#: gitk:3075 #, tcl-format msgid "<%s-n>\tGo to n-th parent of current commit in history list" -msgstr "" +msgstr "<%s-n>\tAller sur le n-ième parent du commit dans l'historique" -#: gitk:3057 +#: gitk:3076 msgid "<PageUp>\tMove up one page in commit list" msgstr "<PageUp>\tMonter d'une page dans la liste des commits" -#: gitk:3058 +#: gitk:3077 msgid "<PageDown>\tMove down one page in commit list" msgstr "<PageDown>\tDescendre d'une page dans la liste des commits" -#: gitk:3059 +#: gitk:3078 #, tcl-format msgid "<%s-Home>\tScroll to top of commit list" msgstr "<%s-Début>\tAller en haut de la liste des commits" -#: gitk:3060 +#: gitk:3079 #, tcl-format msgid "<%s-End>\tScroll to bottom of commit list" msgstr "<%s-End>\tAller en bas de la liste des commits" -#: gitk:3061 +#: gitk:3080 #, tcl-format msgid "<%s-Up>\tScroll commit list up one line" msgstr "<%s-Up>\tMonter d'une ligne dans la liste des commits" -#: gitk:3062 +#: gitk:3081 #, tcl-format msgid "<%s-Down>\tScroll commit list down one line" msgstr "<%s-Down>\tDescendre d'une ligne dans la liste des commits" -#: gitk:3063 +#: gitk:3082 #, tcl-format msgid "<%s-PageUp>\tScroll commit list up one page" msgstr "<%s-PageUp>\tMonter d'une page dans la liste des commits" -#: gitk:3064 +#: gitk:3083 #, tcl-format msgid "<%s-PageDown>\tScroll commit list down one page" msgstr "<%s-PageDown>\tDescendre d'une page dans la liste des commits" -#: gitk:3065 +#: gitk:3084 msgid "<Shift-Up>\tFind backwards (upwards, later commits)" msgstr "" "<Shift-Up>\tRecherche en arrière (vers l'avant, commits les plus anciens)" -#: gitk:3066 +#: gitk:3085 msgid "<Shift-Down>\tFind forwards (downwards, earlier commits)" msgstr "" "<Shift-Down>\tRecherche en avant (vers l'arrière, commit les plus récents)" -#: gitk:3067 +#: gitk:3086 msgid "<Delete>, b\tScroll diff view up one page" msgstr "<Supprimer>, b\tMonter d'une page dans la vue des diff" -#: gitk:3068 +#: gitk:3087 msgid "<Backspace>\tScroll diff view up one page" msgstr "<Backspace>\tMonter d'une page dans la vue des diff" -#: gitk:3069 +#: gitk:3088 msgid "<Space>\t\tScroll diff view down one page" msgstr "<Espace>\t\tDescendre d'une page dans la vue des diff" -#: gitk:3070 +#: gitk:3089 msgid "u\t\tScroll diff view up 18 lines" msgstr "u\t\tMonter de 18 lignes dans la vue des diff" -#: gitk:3071 +#: gitk:3090 msgid "d\t\tScroll diff view down 18 lines" msgstr "d\t\tDescendre de 18 lignes dans la vue des diff" -#: gitk:3072 +#: gitk:3091 #, tcl-format msgid "<%s-F>\t\tFind" msgstr "<%s-F>\t\tRechercher" -#: gitk:3073 +#: gitk:3092 #, tcl-format msgid "<%s-G>\t\tMove to next find hit" msgstr "<%s-G>\t\tAller au résultat de recherche suivant" -#: gitk:3074 +#: gitk:3093 msgid "<Return>\tMove to next find hit" msgstr "<Return>\t\tAller au résultat de recherche suivant" -#: gitk:3075 -#, fuzzy +#: gitk:3094 msgid "g\t\tGo to commit" -msgstr "<Fin>\t\tAller au dernier commit" +msgstr "g\t\tAller au commit" -#: gitk:3076 +#: gitk:3095 msgid "/\t\tFocus the search box" msgstr "/\t\tFocus sur la zone de recherche" -#: gitk:3077 +#: gitk:3096 msgid "?\t\tMove to previous find hit" msgstr "?\t\tAller au résultat de recherche précédent" -#: gitk:3078 +#: gitk:3097 msgid "f\t\tScroll diff view to next file" msgstr "f\t\tAller au prochain fichier dans la vue des diff" -#: gitk:3079 +#: gitk:3098 #, tcl-format msgid "<%s-S>\t\tSearch for next hit in diff view" msgstr "<%s-S>\t\tAller au résultat suivant dans la vue des diff" -#: gitk:3080 +#: gitk:3099 #, tcl-format msgid "<%s-R>\t\tSearch for previous hit in diff view" msgstr "<%s-R>\t\tAller au résultat précédent dans la vue des diff" -#: gitk:3081 +#: gitk:3100 #, tcl-format msgid "<%s-KP+>\tIncrease font size" msgstr "<%s-KP+>\tAugmenter la taille de la police" -#: gitk:3082 +#: gitk:3101 #, tcl-format msgid "<%s-plus>\tIncrease font size" msgstr "<%s-plus>\tAugmenter la taille de la police" -#: gitk:3083 +#: gitk:3102 #, tcl-format msgid "<%s-KP->\tDecrease font size" msgstr "<%s-KP->\tDiminuer la taille de la police" -#: gitk:3084 +#: gitk:3103 #, tcl-format msgid "<%s-minus>\tDecrease font size" msgstr "<%s-minus>\tDiminuer la taille de la police" -#: gitk:3085 +#: gitk:3104 msgid "<F5>\t\tUpdate" msgstr "<F5>\t\tMise à jour" -#: gitk:3550 gitk:3559 +#: gitk:3569 gitk:3578 #, tcl-format msgid "Error creating temporary directory %s:" msgstr "Erreur lors de la création du répertoire temporaire %s :" -#: gitk:3572 +#: gitk:3591 #, tcl-format msgid "Error getting \"%s\" from %s:" msgstr "Erreur en obtenant \"%s\" de %s:" -#: gitk:3635 +#: gitk:3654 msgid "command failed:" msgstr "échec de la commande :" -#: gitk:3784 +#: gitk:3803 msgid "No such commit" msgstr "Commit inexistant" -#: gitk:3798 +#: gitk:3817 msgid "git gui blame: command failed:" msgstr "git gui blame : échec de la commande :" -#: gitk:3829 +#: gitk:3848 #, tcl-format msgid "Couldn't read merge head: %s" msgstr "Impossible de lire le head de la fusion : %s" -#: gitk:3837 +#: gitk:3856 #, tcl-format msgid "Error reading index: %s" msgstr "Erreur à la lecture de l'index : %s" -#: gitk:3862 +#: gitk:3881 #, tcl-format msgid "Couldn't start git blame: %s" msgstr "Impossible de démarrer git blame : %s" -#: gitk:3865 gitk:6754 +#: gitk:3884 gitk:6773 msgid "Searching" msgstr "Recherche en cours" -#: gitk:3897 +#: gitk:3916 #, tcl-format msgid "Error running git blame: %s" msgstr "Erreur à l'exécution de git blame : %s" -#: gitk:3925 +#: gitk:3944 #, tcl-format msgid "That line comes from commit %s, which is not in this view" msgstr "Cette ligne est issue du commit %s, qui n'est pas dans cette vue" -#: gitk:3939 +#: gitk:3958 msgid "External diff viewer failed:" -msgstr "Échec de l'outil externe de visualisation des diff" +msgstr "Échec de l'outil externe de visualisation des diff :" + +#: gitk:4062 +msgid "All files" +msgstr "Tous les fichiers" -#: gitk:4070 +#: gitk:4086 +msgid "View" +msgstr "Vue" + +#: gitk:4089 msgid "Gitk view definition" msgstr "Définition des vues de Gitk" -#: gitk:4074 +#: gitk:4093 msgid "Remember this view" msgstr "Se souvenir de cette vue" -#: gitk:4075 +#: gitk:4094 msgid "References (space separated list):" msgstr "Références (liste d'éléments séparés par des espaces) :" -#: gitk:4076 +#: gitk:4095 msgid "Branches & tags:" -msgstr "Branches & tags :" +msgstr "Branches & étiquettes :" -#: gitk:4077 +#: gitk:4096 msgid "All refs" msgstr "Toutes les références" -#: gitk:4078 +#: gitk:4097 msgid "All (local) branches" msgstr "Toutes les branches (locales)" -#: gitk:4079 +#: gitk:4098 msgid "All tags" -msgstr "Tous les tags" +msgstr "Toutes les étiquettes" -#: gitk:4080 +#: gitk:4099 msgid "All remote-tracking branches" msgstr "Toutes les branches de suivi à distance" -#: gitk:4081 +#: gitk:4100 msgid "Commit Info (regular expressions):" msgstr "Info sur les commits (expressions régulières) :" -#: gitk:4082 +#: gitk:4101 msgid "Author:" msgstr "Auteur :" -#: gitk:4083 +#: gitk:4102 msgid "Committer:" -msgstr "Commiteur :" +msgstr "Validateur :" -#: gitk:4084 +#: gitk:4103 msgid "Commit Message:" msgstr "Message de commit :" -#: gitk:4085 +#: gitk:4104 msgid "Matches all Commit Info criteria" msgstr "Correspond à tous les critères d'Info sur les commits" -#: gitk:4086 -#, fuzzy +#: gitk:4105 msgid "Matches no Commit Info criteria" -msgstr "Correspond à tous les critères d'Info sur les commits" +msgstr "Ne correspond à aucun des critères d'Info sur les commits" -#: gitk:4087 +#: gitk:4106 msgid "Changes to Files:" msgstr "Changements des fichiers :" -#: gitk:4088 +#: gitk:4107 msgid "Fixed String" msgstr "Chaîne Figée" -#: gitk:4089 +#: gitk:4108 msgid "Regular Expression" msgstr "Expression Régulière" -#: gitk:4090 +#: gitk:4109 msgid "Search string:" msgstr "Recherche de la chaîne :" -#: gitk:4091 +#: gitk:4110 msgid "" "Commit Dates (\"2 weeks ago\", \"2009-03-17 15:27:38\", \"March 17, 2009 " "15:27:38\"):" @@ -706,204 +709,201 @@ msgstr "" "Dates des commits (\"2 weeks ago\", \"2009-03-17 15:27:38\", \"March 17, " "2009 15:27:38\") :" -#: gitk:4092 +#: gitk:4111 msgid "Since:" -msgstr "De :" +msgstr "Depuis :" -#: gitk:4093 +#: gitk:4112 msgid "Until:" msgstr "Jusqu'au :" -#: gitk:4094 +#: gitk:4113 msgid "Limit and/or skip a number of revisions (positive integer):" msgstr "Limiter et/ou sauter un certain nombre (entier positif) de révisions :" -#: gitk:4095 +#: gitk:4114 msgid "Number to show:" msgstr "Nombre à afficher :" -#: gitk:4096 +#: gitk:4115 msgid "Number to skip:" msgstr "Nombre à sauter :" -#: gitk:4097 +#: gitk:4116 msgid "Miscellaneous options:" msgstr "Options diverses :" -#: gitk:4098 +#: gitk:4117 msgid "Strictly sort by date" msgstr "Trier par date" -# FIXME : traduction de "branch sides" -#: gitk:4099 -#, fuzzy +#: gitk:4118 msgid "Mark branch sides" -msgstr "Marquer les extrémités des branches" +msgstr "Indiquer les côtés des branches" -#: gitk:4100 +#: gitk:4119 msgid "Limit to first parent" msgstr "Limiter au premier ancêtre" -#: gitk:4101 +#: gitk:4120 msgid "Simple history" msgstr "Historique simple" -#: gitk:4102 +#: gitk:4121 msgid "Additional arguments to git log:" msgstr "Arguments supplémentaires de git log :" -#: gitk:4103 +#: gitk:4122 msgid "Enter files and directories to include, one per line:" msgstr "Saisir les fichiers et répertoires à inclure, un par ligne :" -#: gitk:4104 +#: gitk:4123 msgid "Command to generate more commits to include:" msgstr "Commande pour générer plus de commits à inclure :" -#: gitk:4228 +#: gitk:4247 msgid "Gitk: edit view" msgstr "Gitk : éditer la vue" -#: gitk:4236 +#: gitk:4255 msgid "-- criteria for selecting revisions" msgstr "-- critère pour la sélection des révisions" -#: gitk:4241 -#, fuzzy +#: gitk:4260 msgid "View Name" -msgstr "Nom de la vue :" +msgstr "Nom de la vue" -#: gitk:4316 +#: gitk:4335 msgid "Apply (F5)" msgstr "Appliquer (F5)" -#: gitk:4354 +#: gitk:4373 msgid "Error in commit selection arguments:" msgstr "Erreur dans les arguments de sélection des commits :" -#: gitk:4409 gitk:4462 gitk:4924 gitk:4938 gitk:6208 gitk:12373 gitk:12374 +#: gitk:4428 gitk:4481 gitk:4943 gitk:4957 gitk:6227 gitk:12410 gitk:12411 msgid "None" msgstr "Aucun" -#: gitk:5021 gitk:5026 +#: gitk:5040 gitk:5045 msgid "Descendant" msgstr "Descendant" -#: gitk:5022 +#: gitk:5041 msgid "Not descendant" msgstr "Pas un descendant" -#: gitk:5029 gitk:5034 +#: gitk:5048 gitk:5053 msgid "Ancestor" msgstr "Ancêtre" -#: gitk:5030 +#: gitk:5049 msgid "Not ancestor" msgstr "Pas un ancêtre" -#: gitk:5324 +#: gitk:5343 msgid "Local changes checked in to index but not committed" -msgstr "Modifications locales enregistrées dans l'index mais non commitées" +msgstr "Modifications locales enregistrées dans l'index mais non validées" -#: gitk:5360 +#: gitk:5379 msgid "Local uncommitted changes, not checked in to index" -msgstr "Modifications locales non enregistrées dans l'index et non commitées" +msgstr "Modifications locales non enregistrées dans l'index et non validées" -#: gitk:7134 +#: gitk:7153 msgid "and many more" -msgstr "" +msgstr "et beaucoup plus" -#: gitk:7137 +#: gitk:7156 msgid "many" msgstr "nombreux" -#: gitk:7328 +#: gitk:7347 msgid "Tags:" -msgstr "Tags :" +msgstr "Étiquettes :" -#: gitk:7345 gitk:7351 gitk:8825 +#: gitk:7364 gitk:7370 gitk:8844 msgid "Parent" msgstr "Parent" -#: gitk:7356 +#: gitk:7375 msgid "Child" msgstr "Enfant" -#: gitk:7365 +#: gitk:7384 msgid "Branch" msgstr "Branche" -#: gitk:7368 +#: gitk:7387 msgid "Follows" msgstr "Suit" -#: gitk:7371 +#: gitk:7390 msgid "Precedes" msgstr "Précède" -#: gitk:7966 +#: gitk:7985 #, tcl-format msgid "Error getting diffs: %s" msgstr "Erreur lors de la récupération des diff : %s" -#: gitk:8650 +#: gitk:8669 msgid "Goto:" msgstr "Aller à :" -#: gitk:8671 +#: gitk:8690 #, tcl-format msgid "Short SHA1 id %s is ambiguous" -msgstr "Id SHA1 court %s est ambigu" +msgstr "L'id SHA1 court %s est ambigu" -#: gitk:8678 +#: gitk:8697 #, tcl-format msgid "Revision %s is not known" -msgstr "Id SHA1 %s est inconnu" +msgstr "La révision %s est inconnu" -#: gitk:8688 +#: gitk:8707 #, tcl-format msgid "SHA1 id %s is not known" -msgstr "Id SHA1 %s est inconnu" +msgstr "L'id SHA1 %s est inconnu" -#: gitk:8690 +#: gitk:8709 #, tcl-format msgid "Revision %s is not in the current view" msgstr "La révision %s n'est pas dans la vue courante" -#: gitk:8832 gitk:8847 +#: gitk:8851 gitk:8866 msgid "Date" msgstr "Date" -#: gitk:8835 +#: gitk:8854 msgid "Children" msgstr "Enfants" -#: gitk:8898 +#: gitk:8917 #, tcl-format msgid "Reset %s branch to here" msgstr "Réinitialiser la branche %s vers cet état" -#: gitk:8900 +#: gitk:8919 msgid "Detached head: can't reset" msgstr "Head détaché : impossible de réinitialiser" -#: gitk:9005 gitk:9011 +#: gitk:9024 gitk:9030 msgid "Skipping merge commit " msgstr "Éviter le commit de la fusion " -#: gitk:9020 gitk:9025 +#: gitk:9039 gitk:9044 msgid "Error getting patch ID for " msgstr "Erreur à l'obtention de l'ID du patch pour " -#: gitk:9021 gitk:9026 +#: gitk:9040 gitk:9045 msgid " - stopping\n" msgstr " - arrêt en cours\n" -#: gitk:9031 gitk:9034 gitk:9042 gitk:9056 gitk:9065 +#: gitk:9050 gitk:9053 gitk:9061 gitk:9075 gitk:9084 msgid "Commit " msgstr "Commit " -#: gitk:9035 +#: gitk:9054 msgid "" " is the same patch as\n" " " @@ -911,7 +911,7 @@ msgstr "" "est le même patch que \n" " " -#: gitk:9043 +#: gitk:9062 msgid "" " differs from\n" " " @@ -919,240 +919,226 @@ msgstr "" " diffère de\n" " " -#: gitk:9045 +#: gitk:9064 msgid "" "Diff of commits:\n" "\n" -msgstr "" +msgstr "Diff des commits :\n\n" -#: gitk:9057 gitk:9066 +#: gitk:9076 gitk:9085 #, tcl-format msgid " has %s children - stopping\n" -msgstr "a %s enfants - arrêt en cours\n" +msgstr " a %s enfants - arrêt en cours\n" -#: gitk:9085 -#, fuzzy, tcl-format +#: gitk:9104 +#, tcl-format msgid "Error writing commit to file: %s" -msgstr "Erreur à l'ecriture du commit :" +msgstr "Erreur à l'écriture du commit dans le fichier : %s" -#: gitk:9091 -#, fuzzy, tcl-format +#: gitk:9110 +#, tcl-format msgid "Error diffing commits: %s" -msgstr "Erreur à l'ecriture du commit :" +msgstr "Erreur à la différence des commits : %s" -#: gitk:9137 +#: gitk:9156 msgid "Top" msgstr "Haut" -#: gitk:9138 +#: gitk:9157 msgid "From" msgstr "De" -#: gitk:9143 +#: gitk:9162 msgid "To" msgstr "À" -#: gitk:9167 +#: gitk:9186 msgid "Generate patch" msgstr "Générer le patch" -#: gitk:9169 +#: gitk:9188 msgid "From:" msgstr "De :" -#: gitk:9178 +#: gitk:9197 msgid "To:" msgstr "À :" -#: gitk:9187 +#: gitk:9206 msgid "Reverse" msgstr "Inverser" -#: gitk:9189 gitk:9385 +#: gitk:9208 gitk:9418 msgid "Output file:" msgstr "Fichier de sortie :" -#: gitk:9195 +#: gitk:9214 msgid "Generate" msgstr "Générer" -#: gitk:9233 +#: gitk:9252 msgid "Error creating patch:" msgstr "Erreur à la création du patch :" -#: gitk:9256 gitk:9373 gitk:9430 +#: gitk:9275 gitk:9406 gitk:9463 msgid "ID:" msgstr "ID :" -#: gitk:9265 +#: gitk:9284 msgid "Tag name:" -msgstr "Nom du Tag :" +msgstr "Nom de l'étiquette :" -#: gitk:9268 +#: gitk:9287 msgid "Tag message is optional" -msgstr "" +msgstr "Le message d'étiquette est optionnel" -#: gitk:9270 -#, fuzzy +#: gitk:9289 msgid "Tag message:" -msgstr "Nom du Tag :" +msgstr "Message d'étiquette :" -#: gitk:9274 gitk:9439 +#: gitk:9293 gitk:9472 msgid "Create" msgstr "Créer" -#: gitk:9292 +#: gitk:9311 msgid "No tag name specified" -msgstr "Aucun nom de tag spécifié" +msgstr "Aucun nom d'étiquette spécifié" -#: gitk:9296 +#: gitk:9315 #, tcl-format msgid "Tag \"%s\" already exists" -msgstr "Le tag \"%s\" existe déjà " +msgstr "L'étiquette \"%s\" existe déjà " -#: gitk:9306 +#: gitk:9325 msgid "Error creating tag:" -msgstr "Erreur à la création du tag :" +msgstr "Erreur à la création de l'étiquette :" -#: gitk:9382 +#: gitk:9415 msgid "Command:" msgstr "Commande :" -#: gitk:9390 +#: gitk:9423 msgid "Write" msgstr "Écrire" -#: gitk:9408 +#: gitk:9441 msgid "Error writing commit:" msgstr "Erreur à l'ecriture du commit :" -#: gitk:9435 +#: gitk:9468 msgid "Name:" msgstr "Nom :" -#: gitk:9458 +#: gitk:9491 msgid "Please specify a name for the new branch" msgstr "Veuillez spécifier un nom pour la nouvelle branche" -#: gitk:9463 +#: gitk:9496 #, tcl-format msgid "Branch '%s' already exists. Overwrite?" msgstr "La branche '%s' existe déjà . Écraser?" -#: gitk:9530 +#: gitk:9563 #, tcl-format msgid "Commit %s is already included in branch %s -- really re-apply it?" msgstr "" "Le Commit %s est déjà inclus dans la branche %s -- le ré-appliquer malgré " "tout?" -#: gitk:9535 +#: gitk:9568 msgid "Cherry-picking" -msgstr "Cueillir (Cherry-picking)" +msgstr "Picorer (Cherry-picking)" -#: gitk:9544 +#: gitk:9577 #, tcl-format msgid "" "Cherry-pick failed because of local changes to file '%s'.\n" "Please commit, reset or stash your changes and try again." msgstr "" -"La cueillette (cherry-pick) a échouée à cause de modifications locales du " -"fichier '%s'.\n" -"Veuillez commiter, réinitialiser ou stasher vos changements et essayer de " -"nouveau." +"Le picorage (cherry-pick) a échouée à cause de modifications locales du fichier '%s'.\n" +"Veuillez commiter, réinitialiser ou stasher vos changements et essayer de nouveau." -#: gitk:9550 +#: gitk:9583 msgid "" "Cherry-pick failed because of merge conflict.\n" "Do you wish to run git citool to resolve it?" msgstr "" -"La cueillette (cherry-pick) a échouée à cause d'un conflit lors d'une " -"fusion.\n" +"Le picorage (cherry-pick) a échouée à cause d'un conflit lors d'une fusion.\n" "Souhaitez-vous exécuter git citool pour le résoudre ?" -#: gitk:9566 gitk:9624 +#: gitk:9599 gitk:9657 msgid "No changes committed" -msgstr "Aucun changement commité" +msgstr "Aucune modification validée" -#: gitk:9593 -#, fuzzy, tcl-format +#: gitk:9626 +#, tcl-format msgid "Commit %s is not included in branch %s -- really revert it?" -msgstr "" -"Le Commit %s est déjà inclus dans la branche %s -- le ré-appliquer malgré " -"tout?" +msgstr "Le Commit %s n'est pas inclus dans la branche %s -- le défaire malgré tout?" -#: gitk:9598 -#, fuzzy +#: gitk:9631 msgid "Reverting" -msgstr "Réinitialisation" +msgstr "Commit défait" -#: gitk:9606 -#, fuzzy, tcl-format +#: gitk:9639 +#, tcl-format msgid "" "Revert failed because of local changes to the following files:%s Please " "commit, reset or stash your changes and try again." -msgstr "" -"La cueillette (cherry-pick) a échouée à cause de modifications locales du " -"fichier '%s'.\n" -"Veuillez commiter, réinitialiser ou stasher vos changements et essayer de " -"nouveau." +msgstr "Échec en tentant de défaire le commit à cause de modifications locales des fichiers : %s. Veuillez valider, réinitialiser ou remiser vos modifications et essayer de nouveau." -#: gitk:9610 -#, fuzzy +#: gitk:9643 msgid "" "Revert failed because of merge conflict.\n" " Do you wish to run git citool to resolve it?" msgstr "" -"La cueillette (cherry-pick) a échouée à cause d'un conflit lors d'une " -"fusion.\n" +"Échec en tentant de défaire à cause d'un conflit de fusion.\n" "Souhaitez-vous exécuter git citool pour le résoudre ?" -#: gitk:9653 +#: gitk:9686 msgid "Confirm reset" msgstr "Confirmer la réinitialisation" -#: gitk:9655 +#: gitk:9688 #, tcl-format msgid "Reset branch %s to %s?" msgstr "Réinitialiser la branche %s à %s?" -#: gitk:9657 +#: gitk:9690 msgid "Reset type:" msgstr "Type de réinitialisation :" -#: gitk:9660 +#: gitk:9693 msgid "Soft: Leave working tree and index untouched" msgstr "Douce : Laisse le répertoire de travail et l'index intacts" -#: gitk:9663 +#: gitk:9696 msgid "Mixed: Leave working tree untouched, reset index" msgstr "" "Hybride : Laisse le répertoire de travail dans son état courant, " "réinitialise l'index" -#: gitk:9666 +#: gitk:9699 msgid "" "Hard: Reset working tree and index\n" "(discard ALL local changes)" msgstr "" "Dure : Réinitialise le répertoire de travail et l'index\n" -"(abandonne TOUS les changements locaux)" +"(abandonne TOUTES les modifications locale)" -#: gitk:9683 +#: gitk:9716 msgid "Resetting" msgstr "Réinitialisation" # Fixme: Récupération est-il vraiment une mauvaise traduction? -#: gitk:9743 -#, fuzzy +#: gitk:9776 msgid "Checking out" -msgstr "Récupération" +msgstr "Extraction" -#: gitk:9796 +#: gitk:9829 msgid "Cannot delete the currently checked-out branch" -msgstr "Impossible de supprimer la branche en cours" +msgstr "Impossible de supprimer la branche extraite" -#: gitk:9802 +#: gitk:9835 #, tcl-format msgid "" "The commits on branch %s aren't on any other branch.\n" @@ -1161,16 +1147,16 @@ msgstr "" "Les commits de la branche %s ne sont dans aucune autre branche.\n" "Voulez-vous vraiment supprimer cette branche %s ?" -#: gitk:9833 +#: gitk:9866 #, tcl-format msgid "Tags and heads: %s" -msgstr "Tags et heads : %s" +msgstr "Étiquettes et heads : %s" -#: gitk:9850 +#: gitk:9883 msgid "Filter" msgstr "Filtrer" -#: gitk:10146 +#: gitk:10179 msgid "" "Error reading commit topology information; branch and preceding/following " "tag information will be incomplete." @@ -1179,207 +1165,202 @@ msgstr "" "informations sur les branches et les tags précédents/suivants seront " "incomplètes." -#: gitk:11123 +#: gitk:11156 msgid "Tag" -msgstr "Tag" +msgstr "Étiquette" -#: gitk:11127 +#: gitk:11160 msgid "Id" msgstr "Id" -#: gitk:11210 +#: gitk:11243 msgid "Gitk font chooser" msgstr "Sélecteur de police de Gitk" -#: gitk:11227 +#: gitk:11260 msgid "B" msgstr "B" -#: gitk:11230 +#: gitk:11263 msgid "I" msgstr "I" -#: gitk:11348 +#: gitk:11381 msgid "Commit list display options" msgstr "Options d'affichage de la liste des commits" -#: gitk:11351 +#: gitk:11384 msgid "Maximum graph width (lines)" msgstr "Longueur maximum du graphe (lignes)" # FIXME : Traduction standard de "pane"? -#: gitk:11355 -#, fuzzy, no-tcl-format +#: gitk:11388 +#, no-tcl-format msgid "Maximum graph width (% of pane)" -msgstr "Longueur maximum du graphe (% du panneau)" +msgstr "Largeur maximum du graphe (% du panneau)" -#: gitk:11358 +#: gitk:11391 msgid "Show local changes" -msgstr "Montrer les changements locaux" +msgstr "Montrer les modifications locales" -#: gitk:11361 -#, fuzzy +#: gitk:11394 msgid "Auto-select SHA1 (length)" -msgstr "Sélection auto. du SHA1" +msgstr "Sélection auto. du SHA1 (longueur)" -#: gitk:11365 +#: gitk:11398 msgid "Hide remote refs" msgstr "Cacher les refs distantes" -#: gitk:11369 +#: gitk:11402 msgid "Diff display options" msgstr "Options d'affichage des diff" -#: gitk:11371 +#: gitk:11404 msgid "Tab spacing" msgstr "Taille des tabulations" -#: gitk:11374 -#, fuzzy +#: gitk:11407 msgid "Display nearby tags/heads" msgstr "Afficher les tags les plus proches" -#: gitk:11377 +#: gitk:11410 msgid "Maximum # tags/heads to show" -msgstr "" +msgstr "Nombre maximum d'étiquettes/heads à afficher" -#: gitk:11380 +#: gitk:11413 msgid "Limit diffs to listed paths" msgstr "Limiter les différences aux chemins listés" -#: gitk:11383 +#: gitk:11416 msgid "Support per-file encodings" msgstr "Support pour un encodage des caractères par fichier" -#: gitk:11389 gitk:11536 +#: gitk:11422 gitk:11569 msgid "External diff tool" msgstr "Outil diff externe" -#: gitk:11390 +#: gitk:11423 msgid "Choose..." msgstr "Choisir..." -#: gitk:11395 -#, fuzzy +#: gitk:11428 msgid "General options" -msgstr "Générer le patch" +msgstr "Options générales" -#: gitk:11398 +#: gitk:11431 msgid "Use themed widgets" -msgstr "" +msgstr "Utiliser des widgets en thème" -#: gitk:11400 +#: gitk:11433 msgid "(change requires restart)" -msgstr "" +msgstr "(la modification nécessite un redémarrage)" -#: gitk:11402 +#: gitk:11435 msgid "(currently unavailable)" -msgstr "" +msgstr "(non disponible actuellement)" -#: gitk:11413 +#: gitk:11446 msgid "Colors: press to choose" msgstr "Couleurs : cliquer pour choisir" -#: gitk:11416 +#: gitk:11449 msgid "Interface" -msgstr "" +msgstr "Interface" -#: gitk:11417 -#, fuzzy +#: gitk:11450 msgid "interface" -msgstr "Police de l'interface utilisateur" +msgstr "interface" -#: gitk:11420 +#: gitk:11453 msgid "Background" msgstr "Arrière-plan" -#: gitk:11421 gitk:11451 +#: gitk:11454 gitk:11484 msgid "background" msgstr "arrière-plan" -#: gitk:11424 +#: gitk:11457 msgid "Foreground" msgstr "Premier plan" -#: gitk:11425 +#: gitk:11458 msgid "foreground" msgstr "premier plan" -#: gitk:11428 +#: gitk:11461 msgid "Diff: old lines" msgstr "Diff : anciennes lignes" -#: gitk:11429 +#: gitk:11462 msgid "diff old lines" msgstr "diff anciennes lignes" -#: gitk:11433 +#: gitk:11466 msgid "Diff: new lines" msgstr "Diff : nouvelles lignes" -#: gitk:11434 +#: gitk:11467 msgid "diff new lines" msgstr "diff nouvelles lignes" -#: gitk:11438 +#: gitk:11471 msgid "Diff: hunk header" msgstr "Diff : entête du hunk" -#: gitk:11440 +#: gitk:11473 msgid "diff hunk header" msgstr "diff : entête du hunk" -#: gitk:11444 +#: gitk:11477 msgid "Marked line bg" -msgstr "Arrière-plan de la ligne marquée" +msgstr "Fond de la ligne marquée" -#: gitk:11446 +#: gitk:11479 msgid "marked line background" -msgstr "Arrière-plan de la ligne marquée" +msgstr "Fond de la ligne marquée" -#: gitk:11450 +#: gitk:11483 msgid "Select bg" -msgstr "Sélectionner l'arrière-plan" +msgstr "Sélectionner le fond" -#: gitk:11459 +#: gitk:11492 msgid "Fonts: press to choose" msgstr "Polices : cliquer pour choisir" -#: gitk:11461 +#: gitk:11494 msgid "Main font" msgstr "Police principale" -#: gitk:11462 +#: gitk:11495 msgid "Diff display font" msgstr "Police d'affichage des diff" -#: gitk:11463 +#: gitk:11496 msgid "User interface font" msgstr "Police de l'interface utilisateur" -#: gitk:11485 +#: gitk:11518 msgid "Gitk preferences" msgstr "Préférences de Gitk" -#: gitk:11494 -#, fuzzy +#: gitk:11527 msgid "General" -msgstr "Générer" +msgstr "Général" -#: gitk:11495 +#: gitk:11528 msgid "Colors" -msgstr "" +msgstr "Couleurs" -#: gitk:11496 +#: gitk:11529 msgid "Fonts" -msgstr "" +msgstr "Polices" -#: gitk:11546 +#: gitk:11579 #, tcl-format msgid "Gitk: choose color for %s" msgstr "Gitk : choisir la couleur de %s" -#: gitk:12059 +#: gitk:12092 msgid "" "Sorry, gitk cannot run with this version of Tcl/Tk.\n" " Gitk requires at least Tcl/Tk 8.4." @@ -1387,16 +1368,16 @@ msgstr "" "Désolé, gitk ne peut être exécuté avec cette version de Tcl/Tk.\n" " Gitk requiert Tcl/Tk version 8.4 ou supérieur." -#: gitk:12269 +#: gitk:12302 msgid "Cannot find a git repository here." msgstr "Impossible de trouver un dépôt git ici." -#: gitk:12316 +#: gitk:12349 #, tcl-format msgid "Ambiguous argument '%s': both revision and filename" msgstr "Argument '%s' ambigu : à la fois une révision et un nom de fichier" -#: gitk:12328 +#: gitk:12361 msgid "Bad arguments to gitk:" msgstr "Arguments invalides pour gitk :" diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index 05d7910b7c..2fddf750fa 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -3935,6 +3935,9 @@ sub run_highlighter { close $fd; open $fd, quote_command(git_cmd(), "cat-file", "blob", $hash)." | ". + quote_command($^X, '-CO', '-MEncode=decode,FB_DEFAULT', '-pse', + '$_ = decode($fe, $_, FB_DEFAULT) if !utf8::decode($_);', + '--', "-fe=$fallback_encoding")." | ". quote_command($highlight_bin). " --replace-tabs=8 --fragment --syntax $syntax |" or die_error(500, "Couldn't open file or run syntax highlighter"); @@ -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,10 +577,38 @@ 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 - if (starts_with(curl_http_proxy, "socks5")) + if (starts_with(curl_http_proxy, "socks5h")) + curl_easy_setopt(result, + CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5_HOSTNAME); + else if (starts_with(curl_http_proxy, "socks5")) curl_easy_setopt(result, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5); else if (starts_with(curl_http_proxy, "socks4a")) @@ -475,10 +618,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 +675,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 +776,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 +863,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 +1121,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 +1137,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,44 @@ 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) { + if (strict && ident_use_config_only + && !(ident_config_given & IDENT_NAME_GIVEN)) { + fputs(env_hint, stderr); + die("no name was given and auto-detection is disabled"); + } + 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 (!*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) { + if (strict && ident_use_config_only + && !(ident_config_given & IDENT_MAIL_GIVEN)) { + fputs(env_hint, stderr); + die("no email was given and auto-detection is disabled"); + } + email = ident_default_email(); + if (strict && default_email_is_bogus) { + fputs(env_hint, stderr); + die("unable to auto-detect email address (got '%s')", email); + } } strbuf_reset(&ident); @@ -444,6 +459,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 +471,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 +482,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/imap-send.c b/imap-send.c index 2c52027c84..938c691585 100644 --- a/imap-send.c +++ b/imap-send.c @@ -287,17 +287,20 @@ static int ssl_socket_connect(struct imap_socket *sock, int use_tls_only, int ve SSL_library_init(); SSL_load_error_strings(); - if (use_tls_only) - meth = TLSv1_method(); - else - meth = SSLv23_method(); - + meth = SSLv23_method(); if (!meth) { ssl_socket_perror("SSLv23_method"); return -1; } ctx = SSL_CTX_new(meth); + if (!ctx) { + ssl_socket_perror("SSL_CTX_new"); + return -1; + } + + if (use_tls_only) + SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3); if (verify) SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, NULL); @@ -862,7 +865,6 @@ static char hexchar(unsigned int b) static char *cram(const char *challenge_64, const char *user, const char *pass) { int i, resp_len, encoded_len, decoded_len; - HMAC_CTX hmac; unsigned char hash[16]; char hex[33]; char *response, *response_64, *challenge; @@ -877,10 +879,8 @@ static char *cram(const char *challenge_64, const char *user, const char *pass) (unsigned char *)challenge_64, encoded_len); if (decoded_len < 0) die("invalid challenge %s", challenge_64); - HMAC_Init(&hmac, (unsigned char *)pass, strlen(pass), EVP_md5()); - HMAC_Update(&hmac, (unsigned char *)challenge, decoded_len); - HMAC_Final(&hmac, hash, NULL); - HMAC_CTX_cleanup(&hmac); + if (!HMAC(EVP_md5(), pass, strlen(pass), (unsigned char *)challenge, decoded_len, hash, NULL)) + die("HMAC error"); hex[32] = 0; for (i = 0; i < 16; i++) { @@ -890,7 +890,7 @@ static char *cram(const char *challenge_64, const char *user, const char *pass) /* response: "<user> <digest in hex>" */ response = xstrfmt("%s %s", user, hex); - resp_len = strlen(response) + 1; + resp_len = strlen(response); response_64 = xmallocz(ENCODED_SIZE(resp_len)); encoded_len = EVP_EncodeBlock((unsigned char *)response_64, @@ -1095,11 +1095,6 @@ static struct imap_store *imap_open_store(struct imap_server_conf *srvc, char *f srvc->pass = xstrdup(cred.password); } - if (CAP(NOLOGIN)) { - fprintf(stderr, "Skipping account %s@%s, server forbids LOGIN\n", srvc->user, srvc->host); - goto bail; - } - if (srvc->auth_method) { struct imap_cmd_cb cb; @@ -1123,6 +1118,11 @@ static struct imap_store *imap_open_store(struct imap_server_conf *srvc, char *f goto bail; } } else { + if (CAP(NOLOGIN)) { + fprintf(stderr, "Skipping account %s@%s, server forbids LOGIN\n", + srvc->user, srvc->host); + goto bail; + } if (!imap->buf.sock.ssl) imap_warn("*** IMAP Warning *** Password is being " "sent in the clear\n"); diff --git a/lockfile.c b/lockfile.c index 80d056d2ed..9268cdf325 100644 --- a/lockfile.c +++ b/lockfile.c @@ -149,13 +149,15 @@ static int lock_file_timeout(struct lock_file *lk, const char *path, void unable_to_lock_message(const char *path, int err, struct strbuf *buf) { if (err == EEXIST) { - strbuf_addf(buf, "Unable to create '%s.lock': %s.\n\n" - "If no other git process is currently running, this probably means a\n" - "git process crashed in this repository earlier. Make sure no other git\n" - "process is running and remove the file manually to continue.", + strbuf_addf(buf, _("Unable to create '%s.lock': %s.\n\n" + "Another git process seems to be running in this repository, e.g.\n" + "an editor opened by 'git commit'. Please make sure all processes\n" + "are terminated then try again. If it still fails, a git process\n" + "may have crashed in this repository earlier:\n" + "remove the file manually to continue."), absolute_path(path), strerror(err)); } else - strbuf_addf(buf, "Unable to create '%s.lock': %s", + strbuf_addf(buf, _("Unable to create '%s.lock': %s"), absolute_path(path), strerror(err)); } 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; @@ -250,7 +250,8 @@ int read_mailmap(struct string_list *map, char **repo_abbrev) git_mailmap_blob = "HEAD:.mailmap"; err |= read_mailmap_file(map, ".mailmap", repo_abbrev); - err |= read_mailmap_blob(map, git_mailmap_blob, repo_abbrev); + if (startup_info->have_repository) + err |= read_mailmap_blob(map, git_mailmap_blob, repo_abbrev); err |= read_mailmap_file(map, git_mailmap_file, repo_abbrev); return err; } 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); @@ -584,6 +584,9 @@ char *expand_user_path(const char *path) if (!home) goto return_null; strbuf_addstr(&user_path, home); +#ifdef GIT_WINDOWS_NATIVE + convert_slashes(user_path.buf); +#endif } else { struct passwd *pw = getpw_str(username, username_len); if (!pw) @@ -699,17 +702,17 @@ static int calc_shared_perm(int mode) { int tweak; - if (shared_repository < 0) - tweak = -shared_repository; + if (get_shared_repository() < 0) + tweak = -get_shared_repository(); else - tweak = shared_repository; + tweak = get_shared_repository(); if (!(mode & S_IWUSR)) tweak &= ~0222; if (mode & S_IXUSR) /* Copy read bits to execute bits */ tweak |= (tweak & 0444) >> 2; - if (shared_repository < 0) + if (get_shared_repository() < 0) mode = (mode & ~0777) | tweak; else mode |= tweak; @@ -722,7 +725,7 @@ int adjust_shared_perm(const char *path) { int old_mode, new_mode; - if (!shared_repository) + if (!get_shared_repository()) return 0; if (get_st_mode_bits(path, &old_mode) < 0) return -1; 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,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: Git\n" "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n" -"POT-Creation-Date: 2015-12-22 22:50+0800\n" -"PO-Revision-Date: 2015-12-27 21:42-0700\n" +"POT-Creation-Date: 2016-03-16 00:16+0800\n" +"PO-Revision-Date: 2016-03-19 23:51-0600\n" "Last-Translator: Alex Henrie <alexhenrie24@gmail.com>\n" "Language-Team: Catalan\n" "Language: ca\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 1.8.6\n" +"X-Generator: Poedit 1.8.7\n" #: advice.c:55 #, c-format @@ -32,7 +32,7 @@ msgstr "" "'git add/rm <fitxer>' segons sigui apropiat per a marcar la\n" "resolució i feu una comissió." -#: 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 "No heu conclòs la vostra fusió (MERGE_HEAD existeix)." @@ -76,7 +76,7 @@ msgstr "format" msgid "archive format" msgstr "format d'arxiu" -#: archive.c:430 builtin/log.c:1229 +#: archive.c:430 builtin/log.c:1232 msgid "prefix" msgstr "prefix" @@ -84,10 +84,10 @@ msgstr "prefix" msgid "prepend prefix to each pathname in the archive" msgstr "anteposa el prefix a cada nom de camà en l'arxiu" -#: archive.c: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 "fitxer" @@ -120,7 +120,7 @@ msgstr "comprimeix millor" msgid "list supported archive formats" msgstr "allista els formats d'arxiu admesos" -#: 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 "dipòsit" @@ -128,7 +128,7 @@ msgstr "dipòsit" msgid "retrieve the archive from remote repository <repo>" msgstr "recupera l'arxiu del dipòsit remot <dipòsit>" -#: 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 "ordre" @@ -136,7 +136,7 @@ msgstr "ordre" msgid "path to the remote git-upload-archive command" msgstr "camà a l'ordre git-upload-archive remota" -#: attr.c:265 +#: attr.c:263 msgid "" "Negative patterns are ignored in git attributes\n" "Use '\\!' for literal leading exclamation." @@ -144,90 +144,107 @@ msgstr "" "Els patrons negatius s'ignoren en els atributs de git\n" "Useu '\\!' per exclamació capdavantera literal." -#: 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" +"Després de corregir la causa de l'error, podeu\n" +"intentar corregir la informació de seguiment remot\n" +"invocant \"git branch --set-upstream-to=%s%s%s\"." + +#: branch.c:67 #, c-format msgid "Not setting branch %s as its own upstream." msgstr "No establint la branca %s com a la seva pròpia font." -#: branch.c:84 +#: branch.c:93 #, c-format msgid "Branch %s set up to track remote branch %s from %s by rebasing." msgstr "" "La branca %s està configurada per a seguir la branca remota %s de %s per " "rebasar." -#: branch.c:85 +#: branch.c:94 #, c-format msgid "Branch %s set up to track remote branch %s from %s." msgstr "La branca %s està configurada per a seguir la branca remota %s de %s." -#: branch.c:89 +#: branch.c:98 #, c-format msgid "Branch %s set up to track local branch %s by rebasing." msgstr "" "La branca %s està configurada per a seguir la branca local %s per rebasar." -#: branch.c:90 +#: branch.c:99 #, c-format msgid "Branch %s set up to track local branch %s." msgstr "La branca %s està configurada per a seguir la branca local %s." -#: branch.c:95 +#: branch.c:104 #, c-format msgid "Branch %s set up to track remote ref %s by rebasing." msgstr "" "La branca %s està configurada per a seguir la referència remota %s per " "rebasar." -#: branch.c:96 +#: branch.c:105 #, c-format msgid "Branch %s set up to track remote ref %s." msgstr "La branca %s està configurada per a seguir la referència remota %s." -#: branch.c:100 +#: branch.c:109 #, c-format msgid "Branch %s set up to track local ref %s by rebasing." msgstr "" "La branca %s està configurada per a seguir la referència local %s per " "rebasar." -#: branch.c:101 +#: branch.c:110 #, c-format msgid "Branch %s set up to track local ref %s." msgstr "La branca %s està configurada per a seguir la referència local %s." -#: branch.c:134 +#: branch.c:119 +msgid "Unable to write upstream branch configuration" +msgstr "No es pot escriure la configuració de la branca font" + +#: branch.c:156 #, c-format msgid "Not tracking: ambiguous information for ref %s" msgstr "No seguint: informació ambigua per a la referència %s" -#: branch.c:163 +#: branch.c:185 #, c-format msgid "'%s' is not a valid branch name." msgstr "'%s' no és un nom de branca và lid." -#: branch.c:168 +#: branch.c:190 #, c-format msgid "A branch named '%s' already exists." msgstr "Una branca amb nom '%s' ja existeix." -#: branch.c:176 +#: branch.c:198 msgid "Cannot force update the current branch." msgstr "No es pot actualitzar la branca actual a la força." -#: branch.c:196 +#: branch.c:218 #, c-format msgid "Cannot setup tracking information; starting point '%s' is not a branch." msgstr "" "No es pot configurar la informació de seguiment; el punt inicial '%s' no és " "una branca." -#: branch.c:198 +#: branch.c:220 #, c-format msgid "the requested upstream branch '%s' does not exist" msgstr "la branca font demanada '%s' no existeix" -#: branch.c:200 +#: branch.c:222 msgid "" "\n" "If you are planning on basing your work on an upstream\n" @@ -248,22 +265,22 @@ msgstr "" "\"git push -u\" per a establir la configuració font\n" "mentre pugeu." -#: branch.c:244 +#: branch.c:266 #, c-format msgid "Not a valid object name: '%s'." msgstr "No és un nom d'objecte và lid: '%s'." -#: branch.c:264 +#: branch.c:286 #, c-format msgid "Ambiguous object name: '%s'." msgstr "Nom d'objecte ambigu: '%s'." -#: branch.c:269 +#: branch.c:291 #, c-format msgid "Not a valid branch point: '%s'." msgstr "No és un punt de ramificació và lid: '%s'." -#: branch.c:322 +#: branch.c:344 #, c-format msgid "'%s' is already checked out at '%s'" msgstr "'%s' ja s'ha agafat a '%s'" @@ -287,10 +304,10 @@ msgstr "no s'ha pogut obrir '%s'" msgid "Repository lacks these prerequisite commits:" msgstr "Al dipòsit li manquen aquestes comissions prerequisits:" -#: 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 "la configuració del passeig per revisions ha fallat" @@ -329,7 +346,7 @@ msgstr "El rev-list s'ha mort" msgid "ref '%s' is excluded by the rev-list options" msgstr "les opcions de la llista de revisions exclouen la referència '%s'" -#: bundle.c: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 "parà metre no reconegut: %s" @@ -352,8 +369,8 @@ msgstr "L'index-pack s'ha mort" msgid "invalid color value: %.*s" msgstr "valor de color no và lid: %.*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 "no s'ha pogut analitzar %s" @@ -367,59 +384,64 @@ msgstr "%s %s no és una comissió!" msgid "memory exhausted" msgstr "memòria esgotada" -#: config.c:474 config.c:476 +#: config.c:475 config.c:477 #, c-format -msgid "bad config file line %d in %s" -msgstr "lÃnia de fitxer de configuració dolenta %d en %s" +msgid "bad config line %d in %s %s" +msgstr "lÃnia de fitxer de configuració dolenta %d en %s %s" -#: config.c:592 +#: config.c:593 #, c-format -msgid "bad numeric config value '%s' for '%s' in %s: %s" -msgstr "valor de configuració numèrica dolent '%s' per '%s' en %s: %s" +msgid "bad numeric config value '%s' for '%s' in %s %s: %s" +msgstr "valor de configuració numèrica dolent '%s' per '%s' en %s %s: %s" -#: config.c:594 +#: config.c:595 #, c-format msgid "bad numeric config value '%s' for '%s': %s" msgstr "valor de configuració numèrica dolent '%s' per '%s': %s" -#: config.c:679 +#: config.c:680 #, c-format msgid "failed to expand user dir in: '%s'" msgstr "s'ha fallat en expandir el directori d'usuari en '%s'" -#: config.c:757 config.c:768 +#: config.c:758 config.c:769 #, c-format msgid "bad zlib compression level %d" msgstr "nivell de compressió de zlib dolent %d" -#: config.c:890 +#: config.c:891 #, c-format msgid "invalid mode for object creation: %s" msgstr "mode de creació d'objecte no và lid: %s" -#: config.c:1216 +#: config.c:1220 msgid "unable to parse command-line config" msgstr "no s'ha pogut analitzar la configuració de la lÃnia d'ordres" -#: config.c:1277 +#: config.c:1281 msgid "unknown error occured while reading the configuration files" msgstr "ha ocorregut un error desconegut en llegir els fitxers de configuració" -#: config.c:1601 +#: config.c:1629 #, c-format msgid "unable to parse '%s' from command-line config" msgstr "no s'ha pogut analitzar '%s' de la configuració de la lÃnia d'ordres" -#: config.c:1603 +#: config.c:1631 #, c-format msgid "bad config variable '%s' in file '%s' at line %d" msgstr "variable de configuració dolenta '%s' en el fitxer '%s' a la lÃnia %d" -#: config.c:1662 +#: config.c:1690 #, c-format msgid "%s has multiple values" msgstr "%s té múltiples valors" +#: config.c:2226 +#, c-format +msgid "Could not set '%s' to '%s'" +msgstr "No s'ha pogut establir '%s' com a '%s'" + #: connected.c:69 msgid "Could not run 'git rev-list'" msgstr "No s'ha pogut executar 'git rev-list'" @@ -536,16 +558,16 @@ msgstr "" "Errors trobats en la variable de configuració 'diff.dirstat':\n" "%s" -#: diff.c:3000 +#: diff.c:2997 #, c-format msgid "external diff died, stopping at %s" msgstr "El diff external s'ha mort, aturant a %s" -#: diff.c:3396 +#: diff.c:3393 msgid "--follow requires exactly one pathspec" msgstr "--follow requereix exactament una especificació de camÃ" -#: diff.c:3559 +#: diff.c:3556 #, c-format msgid "" "Failed to parse --dirstat/-X option parameter:\n" @@ -554,18 +576,19 @@ msgstr "" "S'ha fallat en analitzar el parà metre d'opció de --dirstat/-X:\n" "%s" -#: diff.c:3573 +#: diff.c:3570 #, c-format msgid "Failed to parse --submodule option parameter: '%s'" msgstr "S'ha fallat en analitzar el parà metre d'opció de --submodule: %s" -#: dir.c:1915 +#: dir.c:2004 msgid "failed to get kernel name and information" msgstr "s'ha fallat en obtenir el nombre i la informació del nucli" -#: dir.c:1998 -msgid "Untracked cache is disabled on this system." -msgstr "La memòria cau no seguida està deshabilitada en aquest sistema." +#: dir.c:2123 +msgid "Untracked cache is disabled on this system or location." +msgstr "" +"La memòria cau no seguida està inhabilitada en aquest sistema o ubicació." #: gpg-interface.c:166 gpg-interface.c:237 msgid "could not run gpg." @@ -604,20 +627,20 @@ msgstr "'%s': %s" msgid "'%s': short read %s" msgstr "'%s': lectura curta %s" -#: help.c:207 +#: help.c:205 #, c-format msgid "available git commands in '%s'" msgstr "ordres de git disponibles en '%s'" -#: help.c:214 +#: help.c:212 msgid "git commands available from elsewhere on your $PATH" msgstr "ordres de git disponibles d'altres llocs en el vostre $PATH" -#: help.c:246 +#: help.c:244 msgid "These are common Git commands used in various situations:" msgstr "Aquestes són ordres del Git comunament usades en diverses situacions:" -#: help.c:311 +#: help.c:309 #, c-format msgid "" "'%s' appears to be a git command, but we were not\n" @@ -626,11 +649,11 @@ msgstr "" "'%s' sembla una ordre de git, però no hem pogut\n" "executar-la. Pot ser que git-%s estigui estropejat?" -#: help.c:368 +#: help.c:366 msgid "Uh oh. Your system reports no Git commands at all." msgstr "Ai. El vostre sistema no informa de cap ordre de Git." -#: help.c:390 +#: help.c:388 #, c-format msgid "" "WARNING: You called a Git command named '%s', which does not exist.\n" @@ -639,17 +662,17 @@ msgstr "" "AVÃS: Heu invocat una ordre de Git amb nom '%s', la qual no existeix.\n" "Continuant sota l'assumpció que volÃeu dir '%s'" -#: help.c:395 +#: help.c:393 #, c-format msgid "in %0.1f seconds automatically..." msgstr "en %0.1f segons automà ticament..." -#: help.c:402 +#: help.c:400 #, c-format msgid "git: '%s' is not a git command. See 'git --help'." msgstr "git: '%s' no és una ordre de git. Vegeu 'git --help'." -#: help.c:406 help.c:466 +#: help.c:404 help.c:464 msgid "" "\n" "Did you mean this?" @@ -663,7 +686,7 @@ msgstr[1] "" "\n" "VolÃeu dir un d'aquests?" -#: help.c:462 +#: help.c:460 #, c-format msgid "%s: %s - %s" msgstr "%s: %s - %s" @@ -672,8 +695,8 @@ msgstr "%s: %s - %s" msgid "failed to read the cache" msgstr "s'ha fallat en llegir la memòria cau" -#: 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 "no s'ha pogut escriure un fitxer d'Ãndex nou" @@ -691,64 +714,64 @@ msgstr "addinfo_cache ha fallat per al camà '%s'" msgid "error building trees" msgstr "error en construir arbres" -#: merge-recursive.c:686 +#: merge-recursive.c:689 #, c-format msgid "failed to create path '%s'%s" msgstr "s'ha fallat en crear el camà '%s' %s" -#: merge-recursive.c:697 +#: merge-recursive.c:700 #, c-format msgid "Removing %s to make room for subdirectory\n" msgstr "Eliminant %s per a fer espai per al subdirectori\n" -#: merge-recursive.c:711 merge-recursive.c:732 +#: merge-recursive.c:714 merge-recursive.c:735 msgid ": perhaps a D/F conflict?" msgstr ": potser un conflicte D/F?" -#: merge-recursive.c:722 +#: merge-recursive.c:725 #, c-format msgid "refusing to lose untracked file at '%s'" msgstr "refusant perdre el fitxer no seguit a '%s'" -#: merge-recursive.c:762 +#: merge-recursive.c:765 #, c-format msgid "cannot read object %s '%s'" msgstr "no es pot llegir l'objecte %s '%s'" -#: merge-recursive.c:764 +#: merge-recursive.c:767 #, c-format msgid "blob expected for %s '%s'" msgstr "blob esperat per a %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'ha fallat en obrir '%s'" -#: merge-recursive.c:795 +#: merge-recursive.c:798 #, c-format msgid "failed to symlink '%s'" msgstr "s'ha fallat en fer l'enllaç simbòlic '%s'" -#: merge-recursive.c:798 +#: merge-recursive.c:801 #, c-format msgid "do not know what to do with %06o %s '%s'" msgstr "no se sap què fer amb %06o %s '%s'" -#: merge-recursive.c:936 +#: merge-recursive.c:939 msgid "Failed to execute internal merge" msgstr "S'ha fallat en executar la fusió interna" -#: merge-recursive.c:940 +#: merge-recursive.c:943 #, c-format msgid "Unable to add %s to database" msgstr "no s'ha pogut afegir %s a la base de dades" -#: merge-recursive.c:956 +#: merge-recursive.c:959 msgid "unsupported object type in the tree" msgstr "tipus d'objecte no compatible en 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 " @@ -757,7 +780,7 @@ msgstr "" "CONFLICTE: (%s/supressió): %s suprimit en %s i %s en %s. La versió %s de %s " "s'ha deixat en l'arbre." -#: merge-recursive.c: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 +789,20 @@ msgstr "" "CONFLICTE: (%s/supressió): %s suprimit en %s i %s en %s. La versió %s de %s " "s'ha deixat en l'arbre a %s." -#: merge-recursive.c:1091 +#: merge-recursive.c:1094 msgid "rename" msgstr "canvia de nom" -#: merge-recursive.c:1091 +#: merge-recursive.c:1094 msgid "renamed" msgstr "canviat de nom" -#: merge-recursive.c:1147 +#: merge-recursive.c:1150 #, c-format msgid "%s is a directory in %s adding as %s instead" msgstr "%s és un directori en %s; afegint com a %s en lloc" -#: merge-recursive.c:1169 +#: merge-recursive.c:1172 #, c-format msgid "" "CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s" @@ -788,147 +811,147 @@ msgstr "" "CONFLICTE (canvi de nom/canvi de nom): Canvi de nom \"%s\"->\"%s\" en la " "branca \"%s\" canvi de nom \"%s\"->\"%s\" en \"%s\"%s" -#: merge-recursive.c:1174 +#: merge-recursive.c:1177 msgid " (left unresolved)" msgstr " (deixat sense resolució)" -#: 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 "" "CONFLICTE (canvi de nom/canvi de nom): Canvi de nom %s->%s en %s. Canvi de " "nom %s->%s en %s" -#: merge-recursive.c:1258 +#: merge-recursive.c:1261 #, c-format msgid "Renaming %s to %s and %s to %s instead" msgstr "Canviant el nom de %s a %s i %s a %s en lloc d'això" -#: merge-recursive.c:1457 +#: merge-recursive.c:1460 #, c-format msgid "CONFLICT (rename/add): Rename %s->%s in %s. %s added in %s" msgstr "" "CONFLICTE (canvi de nom/afegiment): Canvi de nom %s->%s en %s. %s afegit en " "%s" -#: merge-recursive.c:1467 +#: merge-recursive.c:1470 #, c-format msgid "Adding merged %s" msgstr "Afegint %s fusionat" -#: merge-recursive.c:1472 merge-recursive.c:1674 +#: merge-recursive.c:1475 merge-recursive.c:1677 #, c-format msgid "Adding as %s instead" msgstr "Afegint com a %s en lloc d'això" -#: merge-recursive.c:1523 +#: merge-recursive.c:1526 #, c-format msgid "cannot read object %s" msgstr "no es pot llegir l'objecte %s" -#: merge-recursive.c:1526 +#: merge-recursive.c:1529 #, c-format msgid "object %s is not a blob" msgstr "L'objecte %s no és un blob" -#: merge-recursive.c:1578 +#: merge-recursive.c:1581 msgid "modify" msgstr "modifica" -#: merge-recursive.c:1578 +#: merge-recursive.c:1581 msgid "modified" msgstr "modificat" -#: merge-recursive.c:1588 +#: merge-recursive.c:1591 msgid "content" msgstr "contingut" -#: merge-recursive.c:1595 +#: merge-recursive.c:1598 msgid "add/add" msgstr "afegiment/afegiment" -#: merge-recursive.c:1629 +#: merge-recursive.c:1632 #, c-format msgid "Skipped %s (merged same as existing)" msgstr "%s saltat (el fusionat és igual a l'existent)" -#: merge-recursive.c:1643 +#: merge-recursive.c:1646 #, c-format msgid "Auto-merging %s" msgstr "Autofusionant %s" -#: merge-recursive.c:1647 git-submodule.sh:1025 +#: merge-recursive.c:1650 git-submodule.sh:1048 msgid "submodule" msgstr "submòdul" -#: merge-recursive.c:1648 +#: merge-recursive.c:1651 #, c-format msgid "CONFLICT (%s): Merge conflict in %s" msgstr "CONFLICTE (%s): Conflicte de fusió en %s" -#: merge-recursive.c:1734 +#: merge-recursive.c:1737 #, c-format msgid "Removing %s" msgstr "Eliminant %s" -#: merge-recursive.c:1759 +#: merge-recursive.c:1762 msgid "file/directory" msgstr "fitxer/directori" -#: merge-recursive.c:1765 +#: merge-recursive.c:1768 msgid "directory/file" msgstr "directori/fitxer" -#: 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 "" "CONFLICTE (%s): Hi ha un directori amb nom %s en %s. Afegint %s com a %s" -#: merge-recursive.c:1780 +#: merge-recursive.c:1783 #, c-format msgid "Adding %s" msgstr "Afegint %s" -#: merge-recursive.c:1797 +#: merge-recursive.c:1800 msgid "Fatal merge failure, shouldn't happen." msgstr "Fallat de fusió fatal; això no ha de passar." -#: merge-recursive.c:1816 +#: merge-recursive.c:1819 msgid "Already up-to-date!" msgstr "Ja al dia!" -#: merge-recursive.c:1825 +#: merge-recursive.c:1828 #, c-format msgid "merging of trees %s and %s failed" msgstr "la fusió dels arbres %s i %s ha fallat" -#: merge-recursive.c:1855 +#: merge-recursive.c:1858 #, c-format msgid "Unprocessed path??? %s" msgstr "Camà no processat??? %s" -#: merge-recursive.c:1903 +#: merge-recursive.c:1906 msgid "Merging:" msgstr "Fusionant:" -#: merge-recursive.c:1916 +#: merge-recursive.c:1919 #, c-format msgid "found %u common ancestor:" msgid_plural "found %u common ancestors:" msgstr[0] "s'ha trobat %u avantpassat:" msgstr[1] "s'han trobat %u avantpassats:" -#: merge-recursive.c:1953 +#: merge-recursive.c:1956 msgid "merge returned no commit" msgstr "la fusió no ha retornat cap comissió" -#: merge-recursive.c:2010 +#: merge-recursive.c:2013 #, c-format msgid "Could not parse object '%s'" msgstr "No s'ha pogut analitzar l'objecte '%s'" -#: merge-recursive.c:2021 builtin/merge.c:645 +#: merge-recursive.c:2024 builtin/merge.c:646 msgid "Unable to write index." msgstr "No s'ha pogut escriure l'Ãndex." @@ -986,7 +1009,7 @@ msgstr "-NUM" #: parse-options-cb.c:108 #, c-format msgid "malformed object name '%s'" -msgstr "nom d'objecte mal format '%s'" +msgstr "nom de camp mal format '%s'" #: path.c:752 #, c-format @@ -1047,12 +1070,12 @@ msgid "%s: pathspec magic not supported by this command: %s" msgstr "" "%s: aquesta ordre no és compatible amb la mà gia d'especificació de camÃ: %s" -#: pathspec.c:432 +#: pathspec.c:433 #, c-format msgid "pathspec '%s' is beyond a symbolic link" msgstr "l'especificació de camà '%s' és més enllà d'un enllaç simbòlic" -#: pathspec.c:441 +#: pathspec.c:442 msgid "" "There is nothing to exclude from by :(exclude) patterns.\n" "Perhaps you forgot to add either ':/' or '.' ?" @@ -1086,164 +1109,249 @@ msgstr "" "GIT_INDEX_VERSION establert, però el valor no és và lid.\n" "Usant la versió %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 "No s'ha pogut obrir '%s' per a escriptura" -#: refs/files-backend.c:2359 +#: refs/files-backend.c:2374 #, c-format msgid "could not delete reference %s: %s" msgstr "no s'ha pogut suprimir la referència %s: %s" -#: refs/files-backend.c:2362 +#: refs/files-backend.c:2377 #, c-format msgid "could not delete references: %s" msgstr "no s'ha pogut suprimir les referències: %s" -#: refs/files-backend.c:2371 +#: refs/files-backend.c:2386 #, c-format msgid "could not remove reference %s" msgstr "no s'ha pogut eliminar la referència %s" -#: ref-filter.c:245 +#: ref-filter.c:55 #, c-format -msgid "format: %%(end) atom used without corresponding atom" -msgstr "format: s'ha usat l'à tom %%(end) sense l'à tom corresponent" +msgid "expected format: %%(color:<color>)" +msgstr "format esperat: %%(color:<color>)" + +#: ref-filter.c:57 +#, c-format +msgid "unrecognized color: %%(color:%s)" +msgstr "color no reconegut: %%(color:%s)" + +#: ref-filter.c:71 +#, c-format +msgid "unrecognized format: %%(%s)" +msgstr "format no reconegut: %%(%s)" + +#: ref-filter.c:77 +#, c-format +msgid "%%(body) does not take arguments" +msgstr "%%(body) no accepta parà metres" + +#: ref-filter.c:84 +#, c-format +msgid "%%(subject) does not take arguments" +msgstr "%%(subject) no accepta parà metres" -#: ref-filter.c:704 +#: ref-filter.c:101 #, c-format msgid "positive value expected contents:lines=%s" msgstr "valor positiu esperat contents:lines=%s" -#: ref-filter.c:833 +#: ref-filter.c:103 #, c-format -msgid "expected format: %%(color:<color>)" -msgstr "format esperat: %%(color:<color>)" +msgid "unrecognized %%(contents) argument: %s" +msgstr "parà metre %%(contents) no reconegut: %s" -#: ref-filter.c:835 -msgid "unable to parse format" -msgstr "no s'ha pogut analitzar el format" +#: ref-filter.c:113 +#, c-format +msgid "unrecognized %%(objectname) argument: %s" +msgstr "parà metre %%(objectname) no reconegut: %s" -#: ref-filter.c:870 +#: ref-filter.c:135 #, c-format msgid "expected format: %%(align:<width>,<position>)" msgstr "format esperat: %%(align:<amplada>,<posició>)" -#: ref-filter.c:893 +#: ref-filter.c:147 +#, c-format +msgid "unrecognized position:%s" +msgstr "posició no reconeguda:%s" + +#: ref-filter.c:151 #, c-format -msgid "improper format entered align:%s" -msgstr "format impropi introduït align:%s" +msgid "unrecognized width:%s" +msgstr "amplada no reconeguda:%s" -#: ref-filter.c:898 +#: ref-filter.c:157 +#, c-format +msgid "unrecognized %%(align) argument: %s" +msgstr "parà metre %%(align) no reconegut: %s" + +#: ref-filter.c:161 #, c-format msgid "positive width expected with the %%(align) atom" msgstr "amplada positiva esperada amb l'à tom %%(align)" -#: ref-filter.c:1219 +#: ref-filter.c:244 +#, c-format +msgid "malformed field name: %.*s" +msgstr "nom d'objecte mal format: %.*s" + +#: ref-filter.c:270 +#, c-format +msgid "unknown field name: %.*s" +msgstr "nom de camp desconegut: %.*s" + +#: ref-filter.c:372 +#, c-format +msgid "format: %%(end) atom used without corresponding atom" +msgstr "format: s'ha usat l'à tom %%(end) sense l'à tom corresponent" + +#: ref-filter.c:424 +#, c-format +msgid "malformed format string %s" +msgstr "cadena de format mal format %s" + +#: ref-filter.c:878 +msgid ":strip= requires a positive integer argument" +msgstr ":strip= requereix un parà metre enter positiu" + +#: ref-filter.c:883 +#, c-format +msgid "ref '%s' does not have %ld components to :strip" +msgstr "la referència '%s' no té %ld components per a :strip" + +#: ref-filter.c:1046 +#, c-format +msgid "unknown %.*s format %s" +msgstr "format de %.*s desconegut %s" + +#: ref-filter.c:1066 ref-filter.c:1097 +#, c-format +msgid "missing object %s for %s" +msgstr "manca l'objecte %s per a %s" + +#: ref-filter.c:1069 ref-filter.c:1100 +#, c-format +msgid "parse_object_buffer failed on %s for %s" +msgstr "parse_object_buffer ha fallat en %s per a %s" + +#: ref-filter.c:1311 #, c-format msgid "malformed object at '%s'" msgstr "objecte mal format a '%s'" -#: ref-filter.c:1561 +#: ref-filter.c:1373 +#, c-format +msgid "ignoring ref with broken name %s" +msgstr "ignorant la referència amb nom trencat %s" + +#: ref-filter.c:1378 +#, c-format +msgid "ignoring broken ref %s" +msgstr "ignorant la referència trencada %s" + +#: ref-filter.c:1651 #, c-format msgid "format: %%(end) atom missing" msgstr "format: manca l'à tom %%(end)" -#: ref-filter.c:1615 +#: ref-filter.c:1705 #, c-format msgid "malformed object name %s" msgstr "nom d'objecte %s mal format" -#: remote.c:756 +#: remote.c:745 #, c-format msgid "Cannot fetch both %s and %s to %s" msgstr "No es pot obtenir ambdós %s i %s a %s" -#: remote.c:760 +#: remote.c:749 #, c-format msgid "%s usually tracks %s, not %s" msgstr "%s generalment segueix %s, no %s" -#: remote.c:764 +#: remote.c:753 #, c-format msgid "%s tracks both %s and %s" msgstr "%s segueix ambdós %s i %s" -#: remote.c:772 +#: remote.c:761 msgid "Internal error" msgstr "Error intern" -#: remote.c:1687 remote.c:1730 +#: remote.c:1677 remote.c:1720 msgid "HEAD does not point to a branch" msgstr "HEAD no assenyala cap branca" -#: remote.c:1696 +#: remote.c:1686 #, c-format msgid "no such branch: '%s'" msgstr "no hi ha tal branca: '%s'" -#: remote.c:1699 +#: remote.c:1689 #, c-format msgid "no upstream configured for branch '%s'" msgstr "cap font configurada per a la branca '%s'" -#: remote.c:1705 +#: remote.c:1695 #, c-format msgid "upstream branch '%s' not stored as a remote-tracking branch" msgstr "La branca font '%s' no s'emmagatzema com a branca amb seguiment remot" -#: remote.c:1720 +#: remote.c:1710 #, c-format msgid "push destination '%s' on remote '%s' has no local tracking branch" msgstr "" "el destà de pujada '%s' en el remot '%s' no té cap branca seguidora local" -#: remote.c:1735 +#: remote.c:1725 #, c-format msgid "branch '%s' has no remote for pushing" msgstr "la branca '%s' no té cap remot al qual pujar" -#: remote.c:1746 +#: remote.c:1736 #, c-format msgid "push refspecs for '%s' do not include '%s'" msgstr "les especificacions de referència de '%s' no inclouen '%s'" -#: remote.c:1759 +#: remote.c:1749 msgid "push has no destination (push.default is 'nothing')" msgstr "push no té destà (push.default és 'nothing')" -#: remote.c:1781 +#: remote.c:1771 msgid "cannot resolve 'simple' push to a single destination" msgstr "no es pot resoldre una pujada 'simple' a un sol destÃ" -#: remote.c:2083 +#: remote.c:2073 #, c-format msgid "Your branch is based on '%s', but the upstream is gone.\n" msgstr "La vostra branca està basada en '%s', però la font no hi és.\n" -#: remote.c:2087 +#: remote.c:2077 msgid " (use \"git branch --unset-upstream\" to fixup)\n" msgstr " (useu \"git branch --unset-upstream\" per a arreglar)\n" -#: remote.c:2090 +#: remote.c:2080 #, c-format msgid "Your branch is up-to-date with '%s'.\n" msgstr "La vostra branca està al dia amb '%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] "La vostra branca està davant de '%s' per %d comissió.\n" msgstr[1] "La vostra branca està davant de '%s' per %d comissions.\n" -#: remote.c:2100 +#: remote.c:2090 msgid " (use \"git push\" to publish your local commits)\n" msgstr " (useu \"git push\" per a publicar les vostres comissions locals)\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 "" @@ -1255,11 +1363,11 @@ msgstr[1] "" "La vostra branca està darrere de '%s' per %d comissions, i pot avançar-se " "rà pidament.\n" -#: remote.c:2111 +#: remote.c:2101 msgid " (use \"git pull\" to update your local branch)\n" msgstr " (useu \"git pull\" per a actualitzar la vostra branca local)\n" -#: remote.c:2114 +#: remote.c:2104 #, c-format msgid "" "Your branch and '%s' have diverged,\n" @@ -1274,28 +1382,28 @@ msgstr[1] "" "La vostra branca i '%s' s'han divergit,\n" "i tenen %d i %d comissions distintes cada una, respectivament.\n" -#: remote.c:2124 +#: remote.c:2114 msgid " (use \"git pull\" to merge the remote branch into yours)\n" msgstr " (useu \"git pull\" per a fusionar la branca remota a la vostra)\n" -#: revision.c:2193 +#: revision.c:2131 msgid "your current branch appears to be broken" msgstr "la vostra branca actual sembla trencada" -#: revision.c:2196 +#: revision.c:2134 #, c-format msgid "your current branch '%s' does not have any commits yet" msgstr "la vostra branca actual '%s' encara no té cap comissió" -#: revision.c:2390 +#: revision.c:2328 msgid "--first-parent is incompatible with --bisect" msgstr "--first-parent és incompatible amb --bisect" -#: run-command.c:90 +#: run-command.c:92 msgid "open /dev/null failed" msgstr "s'ha fallat en obrir /dev/null" -#: run-command.c:92 +#: run-command.c:94 #, c-format msgid "dup2(%d,%d) failed" msgstr "dup2(%d,%d) ha fallat" @@ -1320,7 +1428,7 @@ msgstr "" msgid "the receiving end does not support --atomic push" msgstr "el destà receptor no admet pujar --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>'" @@ -1328,7 +1436,7 @@ msgstr "" "després de resoldre els conflictes, marqueu els camins\n" "corregits amb 'git add <camins>' o 'git rm <camins>'" -#: 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" @@ -1338,67 +1446,67 @@ msgstr "" "corregits amb 'git add <camins>' o 'git rm <camins>'\n" "i cometeu el resultat amb '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 "No s'ha pogut escriure a %s" -#: sequencer.c:202 +#: sequencer.c:193 #, c-format msgid "Error wrapping up %s" msgstr "Error en finalitzar %s" -#: sequencer.c:217 +#: sequencer.c:208 msgid "Your local changes would be overwritten by cherry-pick." msgstr "Els vostres canvis locals se sobreescriurien pel recull de cireres." -#: sequencer.c:219 +#: sequencer.c:210 msgid "Your local changes would be overwritten by revert." msgstr "Els vostres canvis locals se sobreescriurien per la reversió." -#: sequencer.c:222 +#: sequencer.c:213 msgid "Commit your changes or stash them to proceed." msgstr "Cometeu els vostres canvis o emmagatzemeu-los per a procedir." #. 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: No s'ha pogut escriure un fitxer d'Ãndex nou" -#: sequencer.c:327 +#: sequencer.c:318 msgid "Could not resolve HEAD commit\n" msgstr "No s'ha pogut resoldre la comissió HEAD\n" -#: sequencer.c:347 +#: sequencer.c:338 msgid "Unable to update cache tree\n" msgstr "No s'ha pogut actualitzar l'arbre cau\n" -#: sequencer.c:399 +#: sequencer.c:390 #, c-format msgid "Could not parse commit %s\n" msgstr "No s'ha pogut analitzar la comissió %s\n" -#: sequencer.c:404 +#: sequencer.c:395 #, c-format msgid "Could not parse parent commit %s\n" msgstr "No s'ha pogut analitzar la comissió mare %s\n" -#: sequencer.c:469 +#: sequencer.c:460 msgid "Your index file is unmerged." msgstr "El vostre fitxer d'Ãndex està sense fusionar." -#: sequencer.c:488 +#: sequencer.c:479 #, c-format msgid "Commit %s is a merge but no -m option was given." msgstr "La comissió %s és una fusió però no s'ha donat cap opció -m." -#: sequencer.c:496 +#: sequencer.c:487 #, c-format msgid "Commit %s does not have parent %d" msgstr "La comissió %s no té mare %d" -#: sequencer.c:500 +#: sequencer.c:491 #, c-format msgid "Mainline was specified but commit %s is not a merge." msgstr "" @@ -1406,162 +1514,178 @@ 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: no es pot analitzar la comissió mare %s" -#: sequencer.c:517 +#: sequencer.c:508 #, c-format msgid "Cannot get commit message for %s" msgstr "No es pot obtenir el missatge de comissió de %s" -#: sequencer.c:603 +#: sequencer.c:594 #, c-format msgid "could not revert %s... %s" msgstr "no s'ha pogut revertir %s...%s" -#: sequencer.c:604 +#: sequencer.c:595 #, c-format msgid "could not apply %s... %s" msgstr "no s'ha pogut aplicar %s...%s" -#: sequencer.c:639 +#: sequencer.c:630 msgid "empty commit set passed" msgstr "conjunt de comissions buit passat" -#: sequencer.c:647 +#: sequencer.c:638 #, c-format msgid "git %s: failed to read the index" msgstr "git %s: s'ha fallat en llegir l'Ãndex" -#: sequencer.c:651 +#: sequencer.c:642 #, c-format msgid "git %s: failed to refresh the index" msgstr "git %s: s'ha fallat en actualitzar l'Ãndex" -#: sequencer.c:711 +#: sequencer.c:702 #, c-format msgid "Cannot %s during a %s" msgstr "No es pot %s durant un %s" -#: sequencer.c:733 +#: sequencer.c:724 #, c-format msgid "Could not parse line %d." msgstr "No s'ha pogut analitzar la lÃnia %d." -#: sequencer.c:738 +#: sequencer.c:729 msgid "No commits parsed." msgstr "Cap comissió analitzada." -#: sequencer.c:750 +#: sequencer.c:741 #, c-format msgid "Could not open %s" msgstr "No s'ha pogut obrir %s" -#: sequencer.c:754 +#: sequencer.c:745 #, c-format msgid "Could not read %s." msgstr "No s'ha pogut llegir %s." -#: sequencer.c:761 +#: sequencer.c:752 #, c-format msgid "Unusable instruction sheet: %s" msgstr "Full d'instruccions inusable: %s" -#: sequencer.c:791 +#: sequencer.c:782 #, c-format msgid "Invalid key: %s" msgstr "Clau no và lida: %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 "Valor no và lid per a %s: %s" -#: sequencer.c:804 +#: sequencer.c:795 #, c-format msgid "Malformed options sheet: %s" msgstr "Full d'opcions mal format: %s" -#: sequencer.c:823 +#: sequencer.c:814 msgid "a cherry-pick or revert is already in progress" msgstr "un recull de cireres o una reversió ja està en curs" -#: sequencer.c:824 +#: sequencer.c:815 msgid "try \"git cherry-pick (--continue | --quit | --abort)\"" msgstr "intenteu \"git cherry-pick (--continue | --quit | --abort)\"" -#: sequencer.c:828 +#: sequencer.c:819 #, c-format msgid "Could not create sequencer directory %s" msgstr "No s'ha pogut crear el directori de seqüenciador %s" -#: sequencer.c:844 sequencer.c:926 +#: sequencer.c:835 sequencer.c:917 #, c-format msgid "Error wrapping up %s." msgstr "Error en finalitzar %s." -#: sequencer.c:863 sequencer.c:996 +#: sequencer.c:854 sequencer.c:987 msgid "no cherry-pick or revert in progress" msgstr "ni hi ha cap recull de cireres ni cap reversió en curs" -#: sequencer.c:865 +#: sequencer.c:856 msgid "cannot resolve HEAD" msgstr "no es pot resoldre HEAD" -#: sequencer.c:867 +#: sequencer.c:858 msgid "cannot abort from a branch yet to be born" msgstr "no es pot avortar des d'una branca que encara ha de nà ixer" -#: sequencer.c:887 builtin/apply.c:4287 +#: sequencer.c:878 builtin/apply.c:4287 #, c-format msgid "cannot open %s: %s" msgstr "no es pot obrir %s: %s" -#: sequencer.c:890 +#: sequencer.c:881 #, c-format msgid "cannot read %s: %s" msgstr "no es pot llegir %s: %s" -#: sequencer.c:891 +#: sequencer.c:882 msgid "unexpected end of file" msgstr "final de fitxer inesperat" -#: sequencer.c:897 +#: sequencer.c:888 #, c-format msgid "stored pre-cherry-pick HEAD file '%s' is corrupt" msgstr "el fitxer HEAD emmagatzemat abans del recull de cireres '%s' és malmès" -#: sequencer.c:919 +#: sequencer.c:910 #, c-format msgid "Could not format %s." msgstr "No s'ha pogut formatar %s." -#: sequencer.c:1064 +#: sequencer.c:1055 #, c-format msgid "%s: can't cherry-pick a %s" msgstr "%s: no es pot recollir com a cirera un %s" -#: sequencer.c:1067 +#: sequencer.c:1058 #, c-format msgid "%s: bad revision" msgstr "%s: revisió dolenta" -#: sequencer.c:1101 +#: sequencer.c:1092 msgid "Can't revert as initial commit" msgstr "No es pot revertir com a comissió inicial" -#: sequencer.c:1102 +#: sequencer.c:1093 msgid "Can't cherry-pick into empty head" msgstr "No es pot recollir cireres en un cap buit" -#: setup.c:248 +#: setup.c:246 #, c-format msgid "failed to read %s" msgstr "s'ha fallat en llegir %s" -#: sha1_name.c:463 +#: sha1_file.c:1080 +msgid "offset before end of packfile (broken .idx?)" +msgstr "desplaçament abans de la fi del fitxer de paquet (.idx trencat?)" + +#: sha1_file.c:2459 +#, c-format +msgid "offset before start of pack index for %s (corrupt index?)" +msgstr "" +"desplaçament abans d'inici d'Ãndex de paquet per a %s (Ãndex corromput?)" + +#: sha1_file.c:2463 +#, c-format +msgid "offset beyond end of pack index for %s (truncated index?)" +msgstr "" +"desplaçament més enllà de la fi d'Ãndex de paquet per a %s (Ãndex truncat?)" + +#: 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" @@ -1585,62 +1709,86 @@ msgstr "" "suprimiu-les. Desactiveu aquest missatge executant\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 "" "No es pot canviar un .gitmodules no fusionat, primer resoldreu els " "conflictes de fusió" -#: 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 "No s'ha pogut trobar la secció en .gitmodules on path=%s" -#: submodule.c:73 +#: submodule.c:74 #, c-format msgid "Could not update .gitmodules entry %s" msgstr "No s'ha pogut actualitzar l'entrada de .gitmodules %s" -#: submodule.c:106 +#: submodule.c:107 #, c-format msgid "Could not remove .gitmodules entry for %s" msgstr "No s'ha pogut eliminar l'entrada de .gitmodules per a %s" -#: submodule.c:117 +#: submodule.c:118 msgid "staging updated .gitmodules failed" msgstr "L'allistament del .gitmodules actualitzat ha fallat" -#: submodule.c:1040 +#: trailer.c:237 #, c-format -msgid "Could not set core.worktree in %s" -msgstr "No s'ha pogut establir core.worktree en %s" +msgid "running trailer command '%s' failed" +msgstr "l'execució de l'ordre de remolc '%s' ha fallat" -#: 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 "valor desconegut '%s' per a la clau '%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 "més d'un %s" -#: trailer.c:581 +#: trailer.c:582 #, c-format msgid "empty trailer token in trailer '%.*s'" msgstr "fitxa de remolc buida en el remolc '%.*s'" -#: trailer.c:701 +#: trailer.c:702 #, c-format msgid "could not read input file '%s'" msgstr "no s'ha pogut llegir el fitxer d'entrada '%s'" -#: trailer.c:704 +#: trailer.c:705 msgid "could not read from stdin" msgstr "No s'ha pogut llegir des d'stdin" -#: transport-helper.c:1025 +#: trailer.c:857 builtin/am.c:42 +#, c-format +msgid "could not stat %s" +msgstr "no s'ha pogut fer stat a %s" + +#: trailer.c:859 +#, c-format +msgid "file %s is not a regular file" +msgstr "el fitxer %s no és un fitxer regular" + +#: trailer.c:861 +#, c-format +msgid "file %s is not writable by user" +msgstr "el fitxer %s no és gravable per l'usuari" + +#: trailer.c:873 +msgid "could not open temporary file" +msgstr "no s'ha pogut obrir el fitxer temporal" + +#: trailer.c:912 +#, c-format +msgid "could not rename temporary file to %s" +msgstr "no s'ha pogut canviar el nom del fitxer temporal a %s" + +#: transport-helper.c:1041 #, c-format msgid "Could not read ref %s" msgstr "No s'ha pogut llegir la referència %s" @@ -1678,47 +1826,47 @@ msgstr "número de port no và lid" msgid "invalid '..' path segment" msgstr "segment de camà '..' no và lid" -#: wrapper.c:219 wrapper.c:362 +#: wrapper.c:222 wrapper.c:381 #, c-format msgid "could not open '%s' for reading and writing" msgstr "no s'ha pogut obrir '%s' per a lectura i escriptura" -#: wrapper.c:221 wrapper.c:364 +#: wrapper.c:224 wrapper.c:383 #, c-format msgid "could not open '%s' for writing" msgstr "no s'ha pogut obrir '%s' per a escriptura" -#: 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 "no s'ha pogut obrir '%s' per a lectura" -#: wrapper.c:579 +#: wrapper.c:611 #, c-format msgid "unable to access '%s': %s" msgstr "no s'ha pogut accedir a '%s': %s" -#: wrapper.c:600 +#: wrapper.c:632 #, c-format msgid "unable to access '%s'" msgstr "no s'ha pogut accedir a '%s'" -#: wrapper.c:608 +#: wrapper.c:640 msgid "unable to get current working directory" msgstr "no s'ha pogut obtenir el directori de treball actual" -#: wrapper.c:635 +#: wrapper.c:667 #, c-format msgid "could not open %s for writing" msgstr "no s'ha pogut obrir '%s' per a escriptura" -#: wrapper.c:646 builtin/am.c:425 +#: wrapper.c:678 builtin/am.c:410 #, c-format msgid "could not write to %s" msgstr "no s'ha pogut escriure a %s" -#: wrapper.c:652 +#: wrapper.c:684 #, c-format msgid "could not close %s" msgstr "no s'ha pogut tancar %s" @@ -2189,7 +2337,11 @@ msgstr "no hi és" msgid "behind " msgstr "darrere " -#: compat/precompose_utf8.c:56 builtin/clone.c:408 +#: wt-status.c:1680 wt-status.c:1683 +msgid "ahead " +msgstr "davant per " + +#: compat/precompose_utf8.c:57 builtin/clone.c:413 #, c-format msgid "failed to unlink '%s'" msgstr "s'ha fallat en desenllaçar '%s'" @@ -2216,7 +2368,7 @@ msgstr "elimina '%s'\n" msgid "Unstaged changes after refreshing the index:" msgstr "Canvis no allistats després d'actualitzar l'Ãndex:" -#: 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 "No s'ha pogut llegir l'Ãndex" @@ -2252,15 +2404,15 @@ msgid "The following paths are ignored by one of your .gitignore files:\n" msgstr "" "Els camins següents s'ignoren per un dels vostres fitxers .gitignore:\n" -#: builtin/add.c: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 "marxa en sec" -#: 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 "sigues detallat" @@ -2268,7 +2420,7 @@ msgstr "sigues detallat" msgid "interactive picking" msgstr "recull interactiu" -#: 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 "selecciona els trossos interactivament" @@ -2337,139 +2489,134 @@ msgstr "Res especificat, res afegit.\n" msgid "Maybe you wanted to say 'git add .'?\n" msgstr "Potser volÃeu dir '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 "fitxer d'Ãndex malmès" -#: 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 "no s'ha pogut escriure un fitxer d'Ãndex nou" -#: builtin/am.c:42 -#, c-format -msgid "could not stat %s" -msgstr "no s'ha pogut fer stat a '%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 "no s'ha pogut llegir '%s'" -#: builtin/am.c:445 +#: builtin/am.c:430 msgid "could not parse author script" msgstr "no s'ha pogut analitzar l'script d'autor" -#: builtin/am.c:522 +#: builtin/am.c:507 #, c-format msgid "'%s' was deleted by the applypatch-msg hook" msgstr "s'ha suprimit '%s' per el ganxo 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 "LÃnia d'entrada mal formada: '%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'ha fallat en copiar les notes de '%s' a '%s'" -#: builtin/am.c:626 +#: builtin/am.c:611 msgid "fseek failed" msgstr "fseek ha fallat" -#: 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 "no s'ha pogut obrir '%s' per a lectura: %s" -#: builtin/am.c:794 +#: builtin/am.c:779 #, c-format msgid "could not open '%s' for writing: %s" msgstr "no s'ha pogut obrir '%s' per a escriptura: %s" -#: builtin/am.c:803 +#: builtin/am.c:788 #, c-format msgid "could not parse patch '%s'" msgstr "no s'ha pogut analitzar el pedaç '%s'" -#: builtin/am.c:868 +#: builtin/am.c:853 msgid "Only one StGIT patch series can be applied at once" msgstr "només una sèrie de pedaços StGIT es pot aplicar a la vegada" -#: builtin/am.c:916 +#: builtin/am.c:901 msgid "invalid timestamp" msgstr "marca de temps no và lida" -#: builtin/am.c:919 builtin/am.c:927 +#: builtin/am.c:904 builtin/am.c:912 msgid "invalid Date line" msgstr "lÃnia Date no và lida" -#: builtin/am.c:924 +#: builtin/am.c:909 msgid "invalid timezone offset" msgstr "desplaçament de zona de temps no và lid" -#: builtin/am.c:1011 +#: builtin/am.c:996 msgid "Patch format detection failed." msgstr "La detecció de format de pedaç ha fallat." -#: 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'ha fallat en crear el directori '%s'" -#: builtin/am.c:1020 +#: builtin/am.c:1005 msgid "Failed to split patches." msgstr "S'ha fallat en dividir els pedaços." -#: builtin/am.c:1152 builtin/commit.c:363 +#: builtin/am.c:1137 builtin/commit.c:363 msgid "unable to write index file" msgstr "no s'ha pogut escriure el fitxer d'Ãndex" -#: builtin/am.c:1203 +#: builtin/am.c:1188 #, c-format msgid "When you have resolved this problem, run \"%s --continue\"." msgstr "Quan hà giu resolt aquest problema, executeu \"%s --continue\"." -#: builtin/am.c:1204 +#: builtin/am.c:1189 #, c-format msgid "If you prefer to skip this patch, run \"%s --skip\" instead." msgstr "Si preferiu saltar aquest pedaç, executeu \"%s --skip\" en lloc." -#: builtin/am.c:1205 +#: builtin/am.c:1190 #, c-format msgid "To restore the original branch and stop patching, run \"%s --abort\"." msgstr "" "Per a restaurar la branca original i deixar d'apedaçar, executeu \"%s --abort" "\"." -#: builtin/am.c:1343 +#: builtin/am.c:1328 msgid "Patch is empty. Was it split wrong?" msgstr "El pedaç és buit. S'ha dividit malament?" -#: builtin/am.c:1417 builtin/log.c:1347 +#: builtin/am.c:1402 builtin/log.c:1350 #, c-format msgid "invalid ident line: %s" msgstr "lÃnia d'identitat no và lida: %s" -#: builtin/am.c:1444 +#: builtin/am.c:1429 #, c-format msgid "unable to parse commit %s" msgstr "no s'ha pogut analitzar la comissió %s" -#: builtin/am.c:1646 +#: builtin/am.c:1631 msgid "Repository lacks necessary blobs to fall back on 3-way merge." msgstr "" "Al dipòsit li manquen els blobs necessaris per a retrocedir a una fusió de 3 " "vies." -#: builtin/am.c:1648 +#: builtin/am.c:1633 msgid "Using index info to reconstruct a base tree..." msgstr "Usant la informació d'Ãndex per a reconstruir un arbre 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." @@ -2477,38 +2624,38 @@ msgstr "" "Heu editat el vostre pedaç a mà ?\n" "No s'aplica als blobs recordats en el seu Ãndex." -#: builtin/am.c:1673 +#: builtin/am.c:1658 msgid "Falling back to patching base and 3-way merge..." msgstr "Retrocedint a apedaçar la base i fusionar de 3 vies..." -#: builtin/am.c:1688 +#: builtin/am.c:1673 msgid "Failed to merge in the changes." msgstr "S'ha fallat en fusionar els canvis." -#: 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 ha fallat en escriure un arbre" -#: builtin/am.c:1719 +#: builtin/am.c:1704 msgid "applying to an empty history" msgstr "aplicant a una història buida" -#: 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 "s'ha fallat en escriure l'objecte de comissió" -#: 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 "no es pot reprendre: %s no existeix." -#: builtin/am.c:1784 +#: builtin/am.c:1769 msgid "cannot be interactive without stdin connected to a terminal." msgstr "" "no es pot ser interactiu sense que stdin sigui connectat a un terminal." -#: builtin/am.c:1789 +#: builtin/am.c:1774 msgid "Commit Body is:" msgstr "El cos de la comissió és:" @@ -2516,37 +2663,37 @@ msgstr "El cos de la comissió és:" #. 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 "" "Voleu aplicar-lo? [y]es/[n]o/[e]dita/[v]isualitza el pedaç/[a]ccepta'ls " "tots: " -#: builtin/am.c:1849 +#: builtin/am.c:1834 #, c-format msgid "Dirty index: cannot apply patches (dirty: %s)" msgstr "Ãndex brut: no es pot aplicar pedaços (bruts: %s)" -#: builtin/am.c:1884 builtin/am.c:1955 +#: builtin/am.c:1869 builtin/am.c:1941 #, c-format msgid "Applying: %.*s" msgstr "Aplicant: %.*s" -#: builtin/am.c:1900 +#: builtin/am.c:1885 msgid "No changes -- Patch already applied." msgstr "Sense canvis -- El pedaç ja s'ha aplicat." -#: builtin/am.c:1908 +#: builtin/am.c:1893 #, c-format msgid "Patch failed at %s %.*s" msgstr "El pedaç ha fallat a %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 còpia del pedaç que ha fallat es troba en: %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" @@ -2556,7 +2703,7 @@ msgstr "" "Si no hi ha res a allistar, probablement alguna altra cosa\n" "ja ha introduït els mateixos canvis; potser voleu ometre aquest pedaç." -#: 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'?" @@ -2564,17 +2711,17 @@ msgstr "" "Encara teniu camins sense fusionar en el vostre Ãndex.\n" "Heu oblidat d'usar '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 "No s'ha pogut analitzar l'objecte '%s'." -#: builtin/am.c:2125 +#: builtin/am.c:2111 msgid "failed to clean index" msgstr "s'ha fallat en netejar l'Ãndex" -#: 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" @@ -2582,154 +2729,154 @@ msgstr "" "Sembla que heu mogut HEAD després de l'última fallada de 'am'.\n" "No rebobinant a ORIG_HEAD" -#: builtin/am.c:2220 +#: builtin/am.c:2206 #, c-format msgid "Invalid value for --patch-format: %s" msgstr "Valor no và lid per a --patch-format: %s" -#: builtin/am.c:2253 +#: builtin/am.c:2239 msgid "git am [<options>] [(<mbox>|<Maildir>)...]" msgstr "git am [<opcions>] [(<bústia>|<directori-de-correu>)...]" -#: builtin/am.c:2254 +#: builtin/am.c:2240 msgid "git am [<options>] (--continue | --skip | --abort)" msgstr "git am [<opcions>] (--continue | --skip | --abort)" -#: builtin/am.c:2260 +#: builtin/am.c:2246 msgid "run interactively" msgstr "executa interactivament" -#: builtin/am.c:2262 +#: builtin/am.c:2248 msgid "historical option -- no-op" msgstr "opció històrica -- no-op" -#: builtin/am.c:2264 +#: builtin/am.c:2250 msgid "allow fall back on 3way merging if needed" msgstr "permet retrocedir a una fusió de 3 vies si és necessari" -#: 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 "calla" -#: builtin/am.c:2267 +#: builtin/am.c:2253 msgid "add a Signed-off-by line to the commit message" msgstr "afegeix una lÃnia Signed-off-by al missatge de comissió" -#: builtin/am.c:2270 +#: builtin/am.c:2256 msgid "recode into utf8 (default)" msgstr "recodifica en utf8 (per defecte)" -#: builtin/am.c:2272 +#: builtin/am.c:2258 msgid "pass -k flag to git-mailinfo" msgstr "passa la bandera -k al git-mailinfo" -#: builtin/am.c:2274 +#: builtin/am.c:2260 msgid "pass -b flag to git-mailinfo" msgstr "passa la bandera -b al git-mailinfo" -#: builtin/am.c:2276 +#: builtin/am.c:2262 msgid "pass -m flag to git-mailinfo" msgstr "passa la bandera -m al git-mailinfo" -#: builtin/am.c:2278 +#: builtin/am.c:2264 msgid "pass --keep-cr flag to git-mailsplit for mbox format" msgstr "passa la bandera --keep-cr al git-mailsplit pel 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 "" "no passis la bandera --keep-cr al git-mailsplit independent de am.keepcr" -#: builtin/am.c:2284 +#: builtin/am.c:2270 msgid "strip everything before a scissors line" msgstr "despulla tot abans d'una lÃnia de tissores" -#: builtin/am.c:2285 builtin/apply.c:4554 +#: builtin/am.c:2271 builtin/apply.c:4544 msgid "action" msgstr "acció" -#: 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 "passa-ho a través del git-apply" -#: builtin/am.c:2294 builtin/apply.c:4578 +#: builtin/am.c:2280 builtin/apply.c:4568 msgid "root" msgstr "arrel" -#: 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 "camÃ" -#: 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 "número" -#: 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 "el format en el qual estan els pedaços" -#: builtin/am.c:2316 +#: builtin/am.c:2302 msgid "override error message when patch failure occurs" msgstr "" "passa per alt el missatge d'error quan s'ocorre una fallada en apedaçar" -#: builtin/am.c:2318 +#: builtin/am.c:2304 msgid "continue applying patches after resolving a conflict" msgstr "segueix aplicant pedaços després de resoldre un conflicte" -#: builtin/am.c:2321 +#: builtin/am.c:2307 msgid "synonyms for --continue" msgstr "sinònims de --continue" -#: builtin/am.c:2324 +#: builtin/am.c:2310 msgid "skip the current patch" msgstr "salta el pedaç actual" -#: builtin/am.c:2327 +#: builtin/am.c:2313 msgid "restore the original branch and abort the patching operation." msgstr "restaura la branca original i avorta l'operació d'apedaçament." -#: builtin/am.c:2331 +#: builtin/am.c:2317 msgid "lie about committer date" msgstr "menteix sobre la data del comitent" -#: builtin/am.c:2333 +#: builtin/am.c:2319 msgid "use current timestamp for author date" msgstr "usa el marc de temps actual per la data d'autor" -#: 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 clau" -#: builtin/am.c:2336 +#: builtin/am.c:2322 msgid "GPG-sign commits" msgstr "firma les comissions amb GPG" -#: builtin/am.c:2339 +#: builtin/am.c:2325 msgid "(internal use for git-rebase)" msgstr "(ús intern per al 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." @@ -2737,18 +2884,18 @@ msgstr "" "Fa molt que l'opció -b/--binary no ha fet res, i\n" "s'eliminarà . Si us plau, no l'useu més." -#: builtin/am.c:2361 +#: builtin/am.c:2347 msgid "failed to read the index" msgstr "s'ha fallat en llegir l'Ãndex" -#: builtin/am.c:2376 +#: builtin/am.c:2362 #, c-format msgid "previous rebase directory %s still exists but mbox given." msgstr "" "un directori de rebasament anterior %s encara existeix però s'ha donat una " "bústia." -#: builtin/am.c:2400 +#: builtin/am.c:2386 #, c-format msgid "" "Stray %s directory found.\n" @@ -2757,7 +2904,7 @@ msgstr "" "Directori %s extraviat trobat.\n" "Useu \"git am --abort\" per a eliminar-lo." -#: builtin/am.c:2406 +#: builtin/am.c:2392 msgid "Resolve operation not in progress, we are not resuming." msgstr "Operació de resolució no en curs; no reprenem." @@ -3108,135 +3255,135 @@ msgstr "entrada no reconeguda" msgid "unable to read index file" msgstr "no es pot llegir el fitxer d'Ãndex" -#: builtin/apply.c:4517 +#: builtin/apply.c:4507 msgid "don't apply changes matching the given path" msgstr "no apliquis els canvis que coincideixin amb el camà donat" -#: builtin/apply.c:4520 +#: builtin/apply.c:4510 msgid "apply changes matching the given path" msgstr "aplica els canvis que coincideixin amb el camà donat" -#: builtin/apply.c:4523 +#: builtin/apply.c:4513 msgid "remove <num> leading slashes from traditional diff paths" msgstr "" "elimina <nombre> barres obliqües inicials dels camins de diferència " "tradicionals" -#: builtin/apply.c:4526 +#: builtin/apply.c:4516 msgid "ignore additions made by the patch" msgstr "ignora afegiments fets pel pedaç" -#: builtin/apply.c:4528 +#: builtin/apply.c:4518 msgid "instead of applying the patch, output diffstat for the input" msgstr "" "en lloc d'aplicar el pedaç, emet les estadÃstiques de diferència de l'entrada" -#: builtin/apply.c:4532 +#: builtin/apply.c:4522 msgid "show number of added and deleted lines in decimal notation" msgstr "mostra el nombre de lÃnies afegides i suprimides en notació decimal" -#: builtin/apply.c:4534 +#: builtin/apply.c:4524 msgid "instead of applying the patch, output a summary for the input" msgstr "en lloc d'aplicar el pedaç, emet un resum de l'entrada" -#: builtin/apply.c:4536 +#: builtin/apply.c:4526 msgid "instead of applying the patch, see if the patch is applicable" msgstr "en lloc d'aplicar el pedaç, veges si el pedaç és aplicable" -#: builtin/apply.c:4538 +#: builtin/apply.c:4528 msgid "make sure the patch is applicable to the current index" msgstr "assegura que el pedaç sigui aplicable a l'Ãndex actual" -#: builtin/apply.c:4540 +#: builtin/apply.c:4530 msgid "apply a patch without touching the working tree" msgstr "aplica un pedaç sense tocar l'arbre de treball" -#: builtin/apply.c:4542 +#: builtin/apply.c:4532 msgid "accept a patch that touches outside the working area" msgstr "accepta un pedaç que toqui fora de l'à rea de treball" -#: builtin/apply.c:4544 +#: builtin/apply.c:4534 msgid "also apply the patch (use with --stat/--summary/--check)" msgstr "aplica el pedaç també (useu amb --stat/--summary/--check)" -#: builtin/apply.c:4546 +#: builtin/apply.c:4536 msgid "attempt three-way merge if a patch does not apply" msgstr "intenta una fusió de tres vies si el pedaç no s'aplica" -#: builtin/apply.c:4548 +#: builtin/apply.c:4538 msgid "build a temporary index based on embedded index information" msgstr "construeix un Ãndex temporal basat en la informació d'Ãndex incrustada" -#: 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 "els camins se separen amb el carà cter NUL" -#: builtin/apply.c:4553 +#: builtin/apply.c:4543 msgid "ensure at least <n> lines of context match" msgstr "assegura't que almenys <n> lÃnies de context coincideixin" -#: builtin/apply.c:4555 +#: builtin/apply.c:4545 msgid "detect new or modified lines that have whitespace errors" msgstr "" "detecta les lÃnies noves o modificades que tinguin errors d'espai en blanc" -#: 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 "ignora els canvis d'espai en blanc en cercar context" -#: builtin/apply.c:4564 +#: builtin/apply.c:4554 msgid "apply the patch in reverse" msgstr "aplica el pedaç al revés" -#: builtin/apply.c:4566 +#: builtin/apply.c:4556 msgid "don't expect at least one line of context" msgstr "no esperis almenys una lÃnia de context" -#: builtin/apply.c:4568 +#: builtin/apply.c:4558 msgid "leave the rejected hunks in corresponding *.rej files" msgstr "deixa els trossos rebutjats en fitxers *.reg coresspondents" -#: builtin/apply.c:4570 +#: builtin/apply.c:4560 msgid "allow overlapping hunks" msgstr "permet trossos encavalcants" -#: builtin/apply.c:4573 +#: builtin/apply.c:4563 msgid "tolerate incorrectly detected missing new-line at the end of file" msgstr "tolera una lÃnia nova incorrectament detectada al final del fitxer" -#: builtin/apply.c:4576 +#: builtin/apply.c:4566 msgid "do not trust the line counts in the hunk headers" msgstr "no confiïs en els recomptes de lÃnia en les capçaleres dels trossos" -#: builtin/apply.c:4579 +#: builtin/apply.c:4569 msgid "prepend <root> to all filenames" msgstr "anteposa <arrel> a tots els noms de fitxer" -#: builtin/apply.c:4601 +#: builtin/apply.c:4591 msgid "--3way outside a repository" msgstr "--3way fora d'un dipòsit" -#: builtin/apply.c:4609 +#: builtin/apply.c:4599 msgid "--index outside a repository" msgstr "--index fora d'un dipòsit" -#: builtin/apply.c:4612 +#: builtin/apply.c:4602 msgid "--cached outside a repository" msgstr "--cached fora d'un dipòsit" -#: builtin/apply.c:4631 +#: builtin/apply.c:4621 #, c-format msgid "can't open patch '%s'" msgstr "no es pot obrir el pedaç '%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 error d'espai en blanc omès" msgstr[1] "%d errors d'espai en blanc omesos" -#: 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." @@ -3290,109 +3437,117 @@ msgstr "realitza 'git bisect next'" msgid "update BISECT_HEAD instead of checking out the current commit" msgstr "actualitza BISECT_HEAD en lloc d'agafar la comissió actual" -#: builtin/blame.c:32 +#: builtin/blame.c:33 msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>" msgstr "git blame [<opcions>] [<opcions-de-revisió>] [<revisió>] [--] fitxer" -#: builtin/blame.c:37 +#: builtin/blame.c:38 msgid "<rev-opts> are documented in git-rev-list(1)" msgstr "es documenten les <opcions-de-revisió> en git-rev-list(1)" -#: builtin/blame.c:2519 +#: builtin/blame.c:1782 +msgid "Blaming lines" +msgstr "Culpant les lÃnies" + +#: builtin/blame.c:2530 msgid "Show blame entries as we find them, incrementally" msgstr "Mostra les entrades de culpa mentre les trobem, incrementalment" -#: builtin/blame.c:2520 +#: builtin/blame.c:2531 msgid "Show blank SHA-1 for boundary commits (Default: off)" msgstr "" "Mostra un SHA-1 en blanc per les comissions de frontera (Per defecte: " "desactivat)" -#: builtin/blame.c:2521 +#: builtin/blame.c:2532 msgid "Do not treat root commits as boundaries (Default: off)" msgstr "" "No tractis les comissions d'arrel com a lÃmits (Per defecte: desactivat)" -#: builtin/blame.c:2522 +#: builtin/blame.c:2533 msgid "Show work cost statistics" msgstr "Mostra les estadÃstiques de preu de treball" -#: builtin/blame.c:2523 +#: builtin/blame.c:2534 +msgid "Force progress reporting" +msgstr "Força l'informe de progrés" + +#: builtin/blame.c:2535 msgid "Show output score for blame entries" msgstr "Mostra la puntuació de sortida de les entrades de culpa" -#: builtin/blame.c:2524 +#: builtin/blame.c:2536 msgid "Show original filename (Default: auto)" msgstr "Mostra el nom de fitxer original (Per defecte: automà tic)" -#: builtin/blame.c:2525 +#: builtin/blame.c:2537 msgid "Show original linenumber (Default: off)" msgstr "Mostra el número de lÃnia original (Per defecte: desactivat)" -#: builtin/blame.c:2526 +#: builtin/blame.c:2538 msgid "Show in a format designed for machine consumption" msgstr "Presenta en un format dissenyat per consumpció per mà quina" -#: builtin/blame.c:2527 +#: builtin/blame.c:2539 msgid "Show porcelain format with per-line commit information" msgstr "Mostra el format de porcellana amb informació de comissió per lÃnia" -#: builtin/blame.c:2528 +#: builtin/blame.c:2540 msgid "Use the same output mode as git-annotate (Default: off)" msgstr "" "Usa el mateix mode de sortida que git-annotate (Per defecte: desactivat)" -#: builtin/blame.c:2529 +#: builtin/blame.c:2541 msgid "Show raw timestamp (Default: off)" msgstr "Mostra la marca de temps crua (Per defecte: desactivat)" -#: builtin/blame.c:2530 +#: builtin/blame.c:2542 msgid "Show long commit SHA1 (Default: off)" msgstr "Mostra l'SHA1 de comissió llarg (Per defecte: desactivat)" -#: builtin/blame.c:2531 +#: builtin/blame.c:2543 msgid "Suppress author name and timestamp (Default: off)" msgstr "Omet el nom d'autor i la marca de temps (Per defecte: desactivat)" -#: builtin/blame.c:2532 +#: builtin/blame.c:2544 msgid "Show author email instead of name (Default: off)" msgstr "" "Mostra l'adreça de correu electrònic de l'autor en lloc del nom (Per " "defecte: desactivat)" -#: builtin/blame.c:2533 +#: builtin/blame.c:2545 msgid "Ignore whitespace differences" msgstr "Ignora les diferències d'espai en blanc" -#: builtin/blame.c:2534 +#: builtin/blame.c:2546 msgid "Spend extra cycles to find better match" msgstr "Gasta cicles extres per a trobar una coincidència millor" -#: builtin/blame.c:2535 +#: builtin/blame.c:2547 msgid "Use revisions from <file> instead of calling git-rev-list" msgstr "Usa les revisions de <fitxer> en lloc d'invocar git-rev-list" -#: builtin/blame.c:2536 +#: builtin/blame.c:2548 msgid "Use <file>'s contents as the final image" msgstr "Usa els continguts de <fitxer> com a la imatge final" -#: builtin/blame.c:2537 builtin/blame.c:2538 +#: builtin/blame.c:2549 builtin/blame.c:2550 msgid "score" msgstr "puntuació" -#: builtin/blame.c:2537 +#: builtin/blame.c:2549 msgid "Find line copies within and across files" msgstr "Troba còpies de lÃnia dins i a través dels fitxers" -#: builtin/blame.c:2538 +#: builtin/blame.c:2550 msgid "Find line movements within and across files" msgstr "Troba moviments de lÃnia dins i a través dels fitxers" -#: 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 "Processa només el rang de lÃnies n,m, comptant des d'1" @@ -3402,7 +3557,7 @@ msgstr "Processa només el rang de lÃnies n,m, comptant des d'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 "fa 4 anys i 11 mesos" @@ -3604,196 +3759,196 @@ msgstr "" "La branca està canviada de nom, però l'actualització del fitxer de " "configuració ha fallat" -#: builtin/branch.c:587 +#: builtin/branch.c:586 #, c-format msgid "could not write branch description template: %s" msgstr "no s'ha pogut escriure la plantilla de descripció de branca: %s" -#: builtin/branch.c:616 +#: builtin/branch.c:615 msgid "Generic options" msgstr "Opcions genèriques" -#: builtin/branch.c:618 +#: builtin/branch.c:617 msgid "show hash and subject, give twice for upstream branch" msgstr "mostra el hash i l'assumpte, doneu dues vegades per la branca font" -#: builtin/branch.c:619 +#: builtin/branch.c:618 msgid "suppress informational messages" msgstr "omet els missatges informatius" -#: builtin/branch.c:620 +#: builtin/branch.c:619 msgid "set up tracking mode (see git-pull(1))" msgstr "configura el mode de seguiment (vegeu git-pull(1))" -#: builtin/branch.c:622 +#: builtin/branch.c:621 msgid "change upstream info" msgstr "canvia la informació de font" -#: builtin/branch.c:626 +#: builtin/branch.c:625 msgid "use colored output" msgstr "usa sortida colorada" -#: builtin/branch.c:627 +#: builtin/branch.c:626 msgid "act on remote-tracking branches" msgstr "actua en branques amb seguiment remot" -#: 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 "imprimeix només les branques que continguin la comissió" -#: builtin/branch.c:633 +#: builtin/branch.c:632 msgid "Specific git-branch actions:" msgstr "Accions de git-branch especÃfiques:" -#: builtin/branch.c:634 +#: builtin/branch.c:633 msgid "list both remote-tracking and local branches" msgstr "llista les branques amb seguiment remot i les locals" -#: builtin/branch.c:636 +#: builtin/branch.c:635 msgid "delete fully merged branch" msgstr "suprimeix la branca si està completament fusionada" -#: builtin/branch.c:637 +#: builtin/branch.c:636 msgid "delete branch (even if not merged)" msgstr "suprimeix la branca (encara que no estigui fusionada)" -#: builtin/branch.c:638 +#: builtin/branch.c:637 msgid "move/rename a branch and its reflog" msgstr "mou/canvia de nom una branca i el seu registre de referència" -#: builtin/branch.c:639 +#: builtin/branch.c:638 msgid "move/rename a branch, even if target exists" msgstr "mou/canvia de nom una branca, encara que el destà existeixi" -#: builtin/branch.c:640 +#: builtin/branch.c:639 msgid "list branch names" msgstr "llista els noms de branca" -#: builtin/branch.c:641 +#: builtin/branch.c:640 msgid "create the branch's reflog" msgstr "crea el registre de referència de la branca" -#: builtin/branch.c:643 +#: builtin/branch.c:642 msgid "edit the description for the branch" msgstr "edita la descripció de la branca" -#: builtin/branch.c:644 +#: builtin/branch.c:643 msgid "force creation, move/rename, deletion" msgstr "força creació, moviment/canvi de nom, supressió" -#: builtin/branch.c:645 +#: builtin/branch.c:644 msgid "print only branches that are merged" msgstr "imprimeix només les branques que s'han fusionat" -#: builtin/branch.c:646 +#: builtin/branch.c:645 msgid "print only branches that are not merged" msgstr "imprimeix només les branques que no s'han fusionat" -#: builtin/branch.c:647 +#: builtin/branch.c:646 msgid "list branches in columns" msgstr "llista les branques en columnes" -#: 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 "clau" -#: 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 del camp en el qual ordenar" -#: 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 "objecte" -#: builtin/branch.c:652 +#: builtin/branch.c:651 msgid "print only branches of the object" msgstr "imprimeix només les branques de l'objecte" -#: builtin/branch.c:670 +#: builtin/branch.c:669 msgid "Failed to resolve HEAD as a valid ref." msgstr "S'ha fallat en resoldre HEAD com a referència và lida." -#: 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 no trobat sota refs/heads!" -#: builtin/branch.c:694 +#: builtin/branch.c:693 msgid "--column and --verbose are incompatible" msgstr "--column i --verbose són incompatibles" -#: builtin/branch.c:705 builtin/branch.c:747 +#: builtin/branch.c:704 builtin/branch.c:746 msgid "branch name required" msgstr "cal el nom de branca" -#: builtin/branch.c:723 +#: builtin/branch.c:722 msgid "Cannot give description to detached HEAD" msgstr "No es pot donar descripció a un HEAD separat" -#: builtin/branch.c:728 +#: builtin/branch.c:727 msgid "cannot edit description of more than one branch" msgstr "no es pot editar la descripció de més d'una branca" -#: builtin/branch.c:735 +#: builtin/branch.c:734 #, c-format msgid "No commit on branch '%s' yet." msgstr "Encara no hi ha comissió en la branca '%s'." -#: builtin/branch.c:738 +#: builtin/branch.c:737 #, c-format msgid "No branch named '%s'." msgstr "No hi ha branca amb nom '%s'." -#: builtin/branch.c:753 +#: builtin/branch.c:752 msgid "too many branches for a rename operation" msgstr "hi ha massa branques per a una operació de canvi de nom" -#: builtin/branch.c:758 +#: builtin/branch.c:757 msgid "too many branches to set new upstream" msgstr "hi ha massa branques per a establir una nova font" -#: 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 "" "no s'ha pogut establir la font de HEAD com a %s quan no assenyala cap branca." -#: 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 "no hi ha tal branca '%s'" -#: builtin/branch.c:769 +#: builtin/branch.c:768 #, c-format msgid "branch '%s' does not exist" msgstr "la branca '%s' no existeix" -#: builtin/branch.c:781 +#: builtin/branch.c:780 msgid "too many branches to unset upstream" msgstr "hi ha massa branques per a desestablir la font" -#: builtin/branch.c:785 +#: builtin/branch.c:784 msgid "could not unset upstream of HEAD when it does not point to any branch." msgstr "" "no s'ha pogut desestablir la font de HEAD perquè no assenyala cap branca." -#: builtin/branch.c:791 +#: builtin/branch.c:790 #, c-format msgid "Branch '%s' has no upstream information" msgstr "La branca '%s' no té informació de font" -#: builtin/branch.c:805 +#: builtin/branch.c:804 msgid "it does not make sense to create 'HEAD' manually" msgstr "no té sentit crear 'HEAD' manualment" -#: 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 opcions -a i -r a 'git branch' no tenen sentit amb un nom de branca" -#: builtin/branch.c:814 +#: builtin/branch.c:813 #, c-format msgid "" "The --set-upstream flag is deprecated and will be removed. Consider using --" @@ -3802,7 +3957,7 @@ msgstr "" "La bandera --set-upstream està desaprovada i s'eliminarà . Considereu usar --" "track o --set-upstream-to\n" -#: builtin/branch.c:831 +#: builtin/branch.c:830 #, c-format msgid "" "\n" @@ -3813,12 +3968,12 @@ msgstr "" "Si volÃeu fer '%s' seguir '%s', feu això:\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" @@ -3914,7 +4069,7 @@ msgstr "informa de tots els atributs establerts en el fitxer" msgid "use .gitattributes only from the index" msgstr "usa .gitattributes només des de l'Ãndex" -#: builtin/check-attr.c: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 "llegeix els noms de fitxer d'stdin" @@ -3922,7 +4077,7 @@ msgstr "llegeix els noms de fitxer d'stdin" msgid "terminate input and output records by a NUL character" msgstr "acaba els registres d'entrada i de sortida amb un carà cter NUL" -#: builtin/check-ignore.c: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 "omet el reportatge de progrés" @@ -3975,49 +4130,53 @@ msgstr "no s'ha pogut analitzar el contacte: %s" msgid "no contacts specified" msgstr "no hi ha contactes especificats" -#: builtin/checkout-index.c:126 +#: builtin/checkout-index.c:127 msgid "git checkout-index [<options>] [--] [<file>...]" msgstr "git checkout-index [<opcions>] [--] [<fitxer>...]" -#: builtin/checkout-index.c:188 +#: builtin/checkout-index.c:144 +msgid "stage should be between 1 and 3 or all" +msgstr "l'etapa ha de ser entre 1 i 3 o all" + +#: builtin/checkout-index.c:160 msgid "check out all files in the index" msgstr "agafa tots els fitxers en l'Ãndex" -#: builtin/checkout-index.c:189 +#: builtin/checkout-index.c:161 msgid "force overwrite of existing files" msgstr "força la sobreescriptura de fitxers existents" -#: builtin/checkout-index.c:191 +#: builtin/checkout-index.c:163 msgid "no warning for existing files and files not in index" msgstr "cap avÃs per a fitxers existents i fitxers no en l'Ãndex" -#: builtin/checkout-index.c:193 +#: builtin/checkout-index.c:165 msgid "don't checkout new files" msgstr "no agafis fitxers nous" -#: builtin/checkout-index.c:195 +#: builtin/checkout-index.c:167 msgid "update stat information in the index file" msgstr "actualitza la informació d'estadÃstiques en el fitxer d'Ãndex" -#: builtin/checkout-index.c:201 +#: builtin/checkout-index.c:171 msgid "read list of paths from the standard input" msgstr "llegeix la llista de camins des de l'entrada està ndard" -#: builtin/checkout-index.c:203 +#: builtin/checkout-index.c:173 msgid "write the content to temporary files" msgstr "escriu el contingut a fitxers temporals" -#: 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 "cadena" -#: builtin/checkout-index.c:205 +#: builtin/checkout-index.c:175 msgid "when creating files, prepend <string>" msgstr "en crear fitxers, anteposa <cadena>" -#: builtin/checkout-index.c:208 +#: builtin/checkout-index.c:177 msgid "copy out the files from named stage" msgstr "copia els fitxers des de l'etapa anomenada" @@ -4098,37 +4257,41 @@ msgstr "No es pot fer reflog per a '%s': %s\n" msgid "HEAD is now at" msgstr "HEAD ara és a" -#: builtin/checkout.c:668 +#: builtin/checkout.c:665 builtin/clone.c:659 +msgid "unable to update HEAD" +msgstr "no s'ha pogut actualitzar HEAD" + +#: builtin/checkout.c:669 #, c-format msgid "Reset branch '%s'\n" msgstr "Restableix la branca '%s'\n" -#: builtin/checkout.c:671 +#: builtin/checkout.c:672 #, c-format msgid "Already on '%s'\n" msgstr "Ja en '%s'\n" -#: builtin/checkout.c:675 +#: builtin/checkout.c:676 #, c-format msgid "Switched to and reset branch '%s'\n" msgstr "S'ha agafat i restablert la branca '%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'ha agafat la branca nova '%s'\n" -#: builtin/checkout.c:679 +#: builtin/checkout.c:680 #, c-format msgid "Switched to branch '%s'\n" msgstr "S'ha agafat la branca '%s'\n" -#: builtin/checkout.c:731 +#: builtin/checkout.c:732 #, c-format msgid " ... and %d more.\n" msgstr " ... i %d més.\n" -#: builtin/checkout.c:737 +#: builtin/checkout.c:738 #, c-format msgid "" "Warning: you are leaving %d commit behind, not connected to\n" @@ -4151,7 +4314,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" @@ -4178,150 +4341,150 @@ msgstr[1] "" " git branch <nom-de-branca-nova> %s\n" "\n" -#: builtin/checkout.c:792 +#: builtin/checkout.c:793 msgid "internal error in revision walk" msgstr "error intern en el passeig per revisions" -#: builtin/checkout.c:796 +#: builtin/checkout.c:797 msgid "Previous HEAD position was" msgstr "La posició de HEAD anterior era" -#: 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 "Sou en una branca que encara ha de nà ixer" -#: builtin/checkout.c:968 +#: builtin/checkout.c:969 #, c-format msgid "only one reference expected, %d given." msgstr "només una referència esperada, %d donades." -#: builtin/checkout.c:1007 builtin/worktree.c:213 +#: builtin/checkout.c:1009 builtin/worktree.c:211 #, c-format msgid "invalid reference: %s" msgstr "referència no và lida: %s" -#: builtin/checkout.c:1036 +#: builtin/checkout.c:1038 #, c-format msgid "reference is not a tree: %s" msgstr "la referència no és un arbre: %s" -#: builtin/checkout.c:1075 +#: builtin/checkout.c:1077 msgid "paths cannot be used with switching branches" msgstr "els camins no es poden usar amb canvi de branca" -#: 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' no es pot usar amb canvi de branca" -#: 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' no es pot usar amb '%s'" -#: builtin/checkout.c:1102 +#: builtin/checkout.c:1104 #, c-format msgid "Cannot switch branch to a non-commit '%s'" msgstr "No es pot canviar la branca a la no comissió '%s'" -#: builtin/checkout.c: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 "branca" -#: builtin/checkout.c:1136 +#: builtin/checkout.c:1138 msgid "create and checkout a new branch" msgstr "crea i agafa una branca nova" -#: builtin/checkout.c:1138 +#: builtin/checkout.c:1140 msgid "create/reset and checkout a branch" msgstr "crea/restableix i agafa una branca" -#: builtin/checkout.c:1139 +#: builtin/checkout.c:1141 msgid "create reflog for new branch" msgstr "crea un registre de referència per a la branca nova" -#: builtin/checkout.c:1140 +#: builtin/checkout.c:1142 msgid "detach the HEAD at named commit" msgstr "separa el HEAD a la comissió anomenada" -#: builtin/checkout.c:1141 +#: builtin/checkout.c:1143 msgid "set upstream info for new branch" msgstr "estableix la informació de font de la branca nova" -#: builtin/checkout.c:1143 +#: builtin/checkout.c:1145 msgid "new-branch" msgstr "branca-nova" -#: builtin/checkout.c:1143 +#: builtin/checkout.c:1145 msgid "new unparented branch" msgstr "branca òrfena nova" -#: builtin/checkout.c:1144 +#: builtin/checkout.c:1146 msgid "checkout our version for unmerged files" msgstr "agafa la versió nostra dels fitxers sense fusionar" -#: builtin/checkout.c:1146 +#: builtin/checkout.c:1148 msgid "checkout their version for unmerged files" msgstr "agafa la versió seva dels fitxers sense fusionar" -#: builtin/checkout.c:1148 +#: builtin/checkout.c:1150 msgid "force checkout (throw away local modifications)" msgstr "agafa a la força (descarta qualsevulla modificació local)" -#: builtin/checkout.c:1149 +#: builtin/checkout.c:1151 msgid "perform a 3-way merge with the new branch" msgstr "realitza una fusió de 3 vies amb la branca nova" -#: builtin/checkout.c:1150 builtin/merge.c:227 +#: builtin/checkout.c:1152 builtin/merge.c:227 msgid "update ignored files (default)" msgstr "actualitza els fitxers ignorats (per defecte)" -#: 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 "estil" -#: builtin/checkout.c:1152 +#: builtin/checkout.c:1154 msgid "conflict style (merge or diff3)" msgstr "estil de conflicte (fusió o diff3)" -#: builtin/checkout.c:1155 +#: builtin/checkout.c:1157 msgid "do not limit pathspecs to sparse entries only" msgstr "no limitis les especificacions de camà només a entrades disperses" -#: builtin/checkout.c:1157 +#: builtin/checkout.c:1159 msgid "second guess 'git checkout <no-such-branch>'" msgstr "dubta 'git checkout <cap-branca-aixÃ>'" -#: builtin/checkout.c:1159 +#: builtin/checkout.c:1161 msgid "do not check if another worktree is holding the given ref" msgstr "no comprovis si altre arbre de treball té la referència donada" -#: 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 "força l'informe de progrés" -#: builtin/checkout.c:1191 +#: builtin/checkout.c:1193 msgid "-b, -B and --orphan are mutually exclusive" msgstr "-b, -B i --orphan són mutualment exclusius" -#: builtin/checkout.c:1208 +#: builtin/checkout.c:1210 msgid "--track needs a branch name" msgstr "--track necessita un nom de branca" -#: builtin/checkout.c:1213 +#: builtin/checkout.c:1215 msgid "Missing branch name; try -b" msgstr "Manca el nom de branca; proveu -b" -#: builtin/checkout.c:1249 +#: builtin/checkout.c:1251 msgid "invalid path specification" msgstr "especificació de camà no và lida" -#: builtin/checkout.c:1256 +#: builtin/checkout.c:1258 #, c-format msgid "" "Cannot update paths and switch to branch '%s' at the same time.\n" @@ -4330,12 +4493,12 @@ msgstr "" "No es poden actualitzar els camins i canviar a la branca '%s' a la vegada.\n" "VolÃeu agafar '%s', la qual no es pot resoldre com a comissió?" -#: 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 no accepta un parà metre de camà '%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." @@ -4374,7 +4537,7 @@ msgstr "Saltaria el dipòsit %s\n" msgid "failed to remove %s" msgstr "s'ha fallat en eliminar %s" -#: builtin/clean.c:315 +#: builtin/clean.c:291 msgid "" "Prompt help:\n" "1 - select a numbered item\n" @@ -4386,7 +4549,7 @@ msgstr "" "foo - selecciona un Ãtem basat en un prefix únic\n" " - (buit) no seleccionis res" -#: builtin/clean.c:319 +#: builtin/clean.c:295 msgid "" "Prompt help:\n" "1 - select a single item\n" @@ -4406,36 +4569,36 @@ msgstr "" "* - tria tots els Ãtems\n" " - (buit) finalitza la selecció" -#: builtin/clean.c:535 +#: builtin/clean.c:511 #, c-format msgid "Huh (%s)?" msgstr "Perdó (%s)?" -#: builtin/clean.c:677 +#: builtin/clean.c:653 #, c-format msgid "Input ignore patterns>> " msgstr "Introduïu els patrons a ignorar>> " -#: builtin/clean.c:714 +#: builtin/clean.c:690 #, c-format msgid "WARNING: Cannot find items matched by: %s" msgstr "AVÃS: No es pot trobar Ãtems que coincideixin amb: %s" -#: builtin/clean.c:735 +#: builtin/clean.c:711 msgid "Select items to delete" msgstr "Selecciona els Ãtems a suprimir" #. 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 "Voleu eliminar %s [y/N]? " -#: builtin/clean.c:801 +#: builtin/clean.c:777 msgid "Bye." msgstr "Adéu." -#: builtin/clean.c:809 +#: builtin/clean.c:785 msgid "" "clean - start cleaning\n" "filter by pattern - exclude items from deletion\n" @@ -4453,62 +4616,62 @@ msgstr "" "help - aquesta pantalla\n" "? - ajuda de selecció de l'avÃs" -#: builtin/clean.c:836 +#: builtin/clean.c:812 msgid "*** Commands ***" msgstr "*** Ordres ***" -#: builtin/clean.c:837 +#: builtin/clean.c:813 msgid "What now" msgstr "I ara què" -#: builtin/clean.c:845 +#: builtin/clean.c:821 msgid "Would remove the following item:" msgid_plural "Would remove the following items:" msgstr[0] "Eliminaria l'Ãtem següent:" msgstr[1] "Eliminaria els Ãtems següents:" -#: builtin/clean.c:862 +#: builtin/clean.c:838 msgid "No more files to clean, exiting." msgstr "No hi ha més fitxers a netejar; sortint." -#: builtin/clean.c:893 +#: builtin/clean.c:869 msgid "do not print names of files removed" msgstr "no imprimeixis els noms dels fitxers eliminats" -#: builtin/clean.c:895 +#: builtin/clean.c:871 msgid "force" msgstr "força" -#: builtin/clean.c:896 +#: builtin/clean.c:872 msgid "interactive cleaning" msgstr "neteja interactiva" -#: builtin/clean.c:898 +#: builtin/clean.c:874 msgid "remove whole directories" msgstr "elimina directoris sencers" -#: 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 "patró" -#: builtin/clean.c:900 +#: builtin/clean.c:876 msgid "add <pattern> to ignore rules" msgstr "afegiu <patró> per a ignorar les regles" -#: builtin/clean.c:901 +#: builtin/clean.c:877 msgid "remove ignored files, too" msgstr "elimina els fitxers ignorats, també" -#: builtin/clean.c:903 +#: builtin/clean.c:879 msgid "remove only ignored files" msgstr "elimina només els fitxers ignorats" -#: builtin/clean.c:921 +#: builtin/clean.c:897 msgid "-x and -X cannot be used together" msgstr "-x i -X no es poden usar junts" -#: builtin/clean.c:925 +#: builtin/clean.c:901 msgid "" "clean.requireForce set to true and neither -i, -n, nor -f given; refusing to " "clean" @@ -4516,7 +4679,7 @@ msgstr "" "clean.requireForce està establerta a veritat i ni -i, -n ni -f s'ha donat; " "refusant netejar" -#: builtin/clean.c:928 +#: builtin/clean.c:904 msgid "" "clean.requireForce defaults to true and neither -i, -n, nor -f given; " "refusing to clean" @@ -4528,146 +4691,162 @@ msgstr "" msgid "git clone [<options>] [--] <repo> [<dir>]" msgstr "git clone [<opcions>] [--] <dipòsit> [<directori>]" -#: builtin/clone.c:59 +#: builtin/clone.c:60 msgid "don't create a checkout" msgstr "no facis cap agafament" -#: 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 "crea un dipòsit nu" -#: builtin/clone.c:64 +#: builtin/clone.c:65 msgid "create a mirror repository (implies bare)" msgstr "crea un dipòsit reflectit (implica bare)" -#: builtin/clone.c:66 +#: builtin/clone.c:67 msgid "to clone from a local repository" msgstr "per a clonar des d'un dipòsit local" -#: builtin/clone.c:68 +#: builtin/clone.c:69 msgid "don't use local hardlinks, always copy" msgstr "no usis enllaços durs locals, sempre copia" -#: builtin/clone.c:70 +#: builtin/clone.c:71 msgid "setup as shared repository" msgstr "configura com a dipòsit compartit" -#: builtin/clone.c:72 builtin/clone.c:74 +#: builtin/clone.c:73 builtin/clone.c:75 msgid "initialize submodules in the clone" msgstr "inicialitza els submòduls en el clon" -#: builtin/clone.c:75 builtin/init-db.c:466 +#: builtin/clone.c:76 builtin/init-db.c:466 msgid "template-directory" msgstr "directori-de-plantilla" -#: 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 "directori del qual les plantilles s'usaran" -#: builtin/clone.c:78 builtin/submodule--helper.c:179 +#: builtin/clone.c:79 builtin/submodule--helper.c:173 msgid "reference repository" msgstr "dipòsit de referència" -#: builtin/clone.c:80 +#: builtin/clone.c:81 msgid "use --reference only while cloning" msgstr "usa --reference només en clonar" -#: 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 "usa <nom> en lloc de 'origin' per a seguir la font" -#: builtin/clone.c:84 +#: builtin/clone.c:85 msgid "checkout <branch> instead of the remote's HEAD" msgstr "agafa <branca> en lloc del HEAD del remot" -#: builtin/clone.c:86 +#: builtin/clone.c:87 msgid "path to git-upload-pack on the remote" msgstr "camà a git-upload-pack en el remot" -#: 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 "profunditat" -#: builtin/clone.c:88 +#: builtin/clone.c:89 msgid "create a shallow clone of that depth" msgstr "crea un clon superficial de tal profunditat" -#: builtin/clone.c:90 +#: builtin/clone.c:91 msgid "clone only one branch, HEAD or --branch" msgstr "clona només una branca, HEAD o --branch" -#: builtin/clone.c:91 builtin/init-db.c:475 +#: builtin/clone.c:92 builtin/init-db.c:475 msgid "gitdir" msgstr "directori de 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 "separa el directori de git de l'arbre de treball" -#: builtin/clone.c:93 +#: builtin/clone.c:94 msgid "key=value" msgstr "clau=valor" -#: builtin/clone.c:94 +#: builtin/clone.c:95 msgid "set config inside the new repository" msgstr "estableix la configuració dins del dipòsit nou" -#: builtin/clone.c:300 +#: builtin/clone.c:96 builtin/fetch.c:131 builtin/push.c:536 +msgid "use IPv4 addresses only" +msgstr "usa només les adreces IPv4" + +#: builtin/clone.c:98 builtin/fetch.c:133 builtin/push.c:538 +msgid "use IPv6 addresses only" +msgstr "usa només les adreces IPv6" + +#: builtin/clone.c:239 +msgid "" +"No directory name could be guessed.\n" +"Please specify a directory on the command line" +msgstr "" +"No s'ha pogut endevinar cap nom de directori.\n" +"Si us plau, especifiqueu un directori en la lÃnia d'ordres" + +#: builtin/clone.c:305 #, c-format msgid "reference repository '%s' as a linked checkout is not supported yet." msgstr "" "Encara no se suporta el dipòsit de referència '%s' com a agafament enllaçat." -#: builtin/clone.c:302 +#: builtin/clone.c:307 #, c-format msgid "reference repository '%s' is not a local repository." msgstr "el dipòsit de referència '%s' no és un dipòsit local." -#: builtin/clone.c:307 +#: builtin/clone.c:312 #, c-format msgid "reference repository '%s' is shallow" msgstr "el dipòsit de referència '%s' és superficial" -#: builtin/clone.c:310 +#: builtin/clone.c:315 #, c-format msgid "reference repository '%s' is grafted" msgstr "el dipòsit de referència '%s' és empeltat" -#: 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'ha fallat en fer stat a '%s'" -#: builtin/clone.c:377 +#: builtin/clone.c:382 #, c-format msgid "%s exists and is not a directory" msgstr "%s existeix i no és directori" -#: builtin/clone.c:391 +#: builtin/clone.c:396 #, c-format msgid "failed to stat %s\n" msgstr "s'ha fallat en fer stat a '%s'\n" -#: builtin/clone.c:413 +#: builtin/clone.c:418 #, c-format msgid "failed to create link '%s'" msgstr "s'ha fallat en crear l'enllaç '%s'" -#: builtin/clone.c:417 +#: builtin/clone.c:422 #, c-format msgid "failed to copy file to '%s'" msgstr "s'ha fallat en copiar el fitxer a '%s'" -#: builtin/clone.c:442 builtin/clone.c:626 +#: builtin/clone.c:447 builtin/clone.c:631 #, c-format msgid "done.\n" msgstr "fet.\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" @@ -4678,119 +4857,128 @@ msgstr "" "'git status' i tornar a intentar l'agafament amb\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 "No s'ha pogut trobar la branca remota %s per a clonar." -#: builtin/clone.c:621 +#: builtin/clone.c:626 #, c-format msgid "Checking connectivity... " msgstr "Provant connectivitat... " -#: builtin/clone.c:624 +#: builtin/clone.c:629 msgid "remote did not send all necessary objects" msgstr "el remot no ha enviat tots els objectes necessaris" -#: builtin/clone.c:688 +#: builtin/clone.c:647 +#, c-format +msgid "unable to update %s" +msgstr "no s'ha pogut actualizar %s" + +#: builtin/clone.c:696 msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n" msgstr "" "el HEAD remot es refereix a una referència que no existeix; no s'ha pogut " "agafar.\n" -#: builtin/clone.c:719 +#: builtin/clone.c:727 msgid "unable to checkout working tree" msgstr "no s'ha pogut agafar l'arbre de treball" -#: builtin/clone.c:808 +#: builtin/clone.c:753 +msgid "unable to write parameters to config file" +msgstr "no s'ha pogut escriure les parà metres al fitxer de configuració" + +#: builtin/clone.c:816 msgid "cannot repack to clean up" msgstr "no es pot reempaquetar per a netejar" -#: builtin/clone.c:810 +#: builtin/clone.c:818 msgid "cannot unlink temporary alternates file" msgstr "no es pot desenllaçar el fitxer d'alternatives temporal" -#: builtin/clone.c:842 +#: builtin/clone.c:850 msgid "Too many arguments." msgstr "Hi ha massa parà metres." -#: builtin/clone.c:846 +#: builtin/clone.c:854 msgid "You must specify a repository to clone." msgstr "Heu d'especificar un dipòsit per a clonar." -#: builtin/clone.c:857 +#: builtin/clone.c:865 #, c-format msgid "--bare and --origin %s options are incompatible." msgstr "les opcions --bare i --origin %s són incompatibles." -#: builtin/clone.c:860 +#: builtin/clone.c:868 msgid "--bare and --separate-git-dir are incompatible." msgstr "--bare i --separate-git-dir són incompatibles." -#: builtin/clone.c:873 +#: builtin/clone.c:881 #, c-format msgid "repository '%s' does not exist" msgstr "el dipòsit '%s' no existeix" -#: 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 profunditat %s no és nombre positiu" -#: builtin/clone.c:889 +#: builtin/clone.c:897 #, c-format msgid "destination path '%s' already exists and is not an empty directory." msgstr "el camà destà '%s' ja existeix i no és un directori buit." -#: builtin/clone.c:899 +#: builtin/clone.c:907 #, c-format msgid "working tree '%s' already exists." msgstr "l'arbre de treball '%s' ja existeix." -#: 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 "no s'ha pogut crear els directoris inicials de '%s'" -#: builtin/clone.c:917 +#: builtin/clone.c:925 #, c-format msgid "could not create work tree dir '%s'" msgstr "no s'ha pogut crear el directori d'arbre de treball '%s'" -#: builtin/clone.c:935 +#: builtin/clone.c:943 #, c-format msgid "Cloning into bare repository '%s'...\n" msgstr "Clonant al dipòsit nu '%s'...\n" -#: builtin/clone.c:937 +#: builtin/clone.c:945 #, c-format msgid "Cloning into '%s'...\n" msgstr "Clonant a '%s'...\n" -#: builtin/clone.c:975 +#: builtin/clone.c:984 msgid "--depth is ignored in local clones; use file:// instead." msgstr "--depth s'ignora en els clons locals; useu file:// en lloc d'això." -#: builtin/clone.c:978 +#: builtin/clone.c:987 msgid "source repository is shallow, ignoring --local" msgstr "el dipòsit font és superficial, ignorant --local" -#: builtin/clone.c:983 +#: builtin/clone.c:992 msgid "--local is ignored" msgstr "--local s'ignora" -#: builtin/clone.c:987 +#: builtin/clone.c:996 #, c-format msgid "Don't know how to clone %s" msgstr "No se sap com clonar %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 branca remota %s no es troba en la font %s" -#: builtin/clone.c:1047 +#: builtin/clone.c:1056 msgid "You appear to have cloned an empty repository." msgstr "Sembla que heu clonat un dipòsit buit." @@ -5004,7 +5192,7 @@ msgstr "" msgid "could not lookup commit %s" msgstr "no s'ha pogut trobar la comissió %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 "(llegint el missatge de registre des de l'entrada està ndard)\n" @@ -5191,8 +5379,8 @@ msgstr "mostra l'estat concisament" msgid "show branch information" msgstr "mostra la informació de branca" -#: 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 "sortida llegible per mà quina" @@ -5283,8 +5471,8 @@ msgstr "data" msgid "override date for commit" msgstr "data corregida de la comissió" -#: 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 "missatge" @@ -5321,7 +5509,7 @@ msgstr "" msgid "the commit is authored by me now (used with -C/-c/--amend)" msgstr "l'autor de la comissió ja sóc jo (s'usa amb -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 "afegeix Signed-off-by:" @@ -5345,7 +5533,7 @@ msgstr "com despullar els espais i #comentaris del missatge" msgid "include status in commit message template" msgstr "inclou l'estat en la plantilla de missatge de comissió" -#: 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 "firma la comissió amb GPG" @@ -5437,140 +5625,146 @@ msgstr "" "que la quota no estigui excedida, i després\n" "\"git reset HEAD\" per a recuperar." -#: builtin/config.c:8 +#: builtin/config.c:9 msgid "git config [<options>]" msgstr "git config [<opcions>]" -#: builtin/config.c:54 +#: builtin/config.c:56 msgid "Config file location" msgstr "Ubicació del fitxer de configuració" -#: builtin/config.c:55 +#: builtin/config.c:57 msgid "use global config file" msgstr "usa el fitxer de configuració global" -#: builtin/config.c:56 +#: builtin/config.c:58 msgid "use system config file" msgstr "usa el fitxer de configuració del sistema" -#: builtin/config.c:57 +#: builtin/config.c:59 msgid "use repository config file" msgstr "usa el fitxer de configuració del dipòsit" -#: builtin/config.c:58 +#: builtin/config.c:60 msgid "use given config file" msgstr "usa el fitxer de configuració donat" -#: builtin/config.c:59 +#: builtin/config.c:61 msgid "blob-id" msgstr "ID de blob" -#: builtin/config.c:59 +#: builtin/config.c:61 msgid "read config from given blob object" msgstr "llegeix la configuració de l'objecte de blob donat" -#: builtin/config.c:60 +#: builtin/config.c:62 msgid "Action" msgstr "Acció" -#: builtin/config.c:61 +#: builtin/config.c:63 msgid "get value: name [value-regex]" msgstr "obtén valor: nom [regex-de-valors]" -#: builtin/config.c:62 +#: builtin/config.c:64 msgid "get all values: key [value-regex]" msgstr "obtén tots els valors: clau [regex-de-valors]" -#: builtin/config.c:63 +#: builtin/config.c:65 msgid "get values for regexp: name-regex [value-regex]" msgstr "obtén valors de regexp: regex-de-noms [regex-de-valors]" -#: builtin/config.c:64 +#: builtin/config.c:66 msgid "get value specific for the URL: section[.var] URL" msgstr "obtén el valor especÃfic per a l'URL: secció[.variable] URL" -#: builtin/config.c:65 +#: builtin/config.c:67 msgid "replace all matching variables: name value [value_regex]" msgstr "" "reemplaça totes les variables que coincideixen: nom valor [regex_de_valors]" -#: builtin/config.c:66 +#: builtin/config.c:68 msgid "add a new variable: name value" msgstr "afegeix una variable nova: nom valor" -#: builtin/config.c:67 +#: builtin/config.c:69 msgid "remove a variable: name [value-regex]" msgstr "elimina una variable: nom [regex-de-valors]" -#: builtin/config.c:68 +#: builtin/config.c:70 msgid "remove all matches: name [value-regex]" msgstr "elimina totes les coincidències: nom [regex-de-valors]" -#: builtin/config.c:69 +#: builtin/config.c:71 msgid "rename section: old-name new-name" msgstr "canvia el nom de secció: nom-antic nom-nou" -#: builtin/config.c:70 +#: builtin/config.c:72 msgid "remove a section: name" msgstr "elimina una secció: nom" -#: builtin/config.c:71 +#: builtin/config.c:73 msgid "list all" msgstr "llista tots" -#: builtin/config.c:72 +#: builtin/config.c:74 msgid "open an editor" msgstr "obre un editor" -#: builtin/config.c:73 +#: builtin/config.c:75 msgid "find the color configured: slot [default]" msgstr "troba el color configurat: ranura [per defecte]" -#: builtin/config.c:74 +#: builtin/config.c:76 msgid "find the color setting: slot [stdout-is-tty]" msgstr "troba l'ajust de color: ranura [stdout-és-tty]" -#: builtin/config.c:75 +#: builtin/config.c:77 msgid "Type" msgstr "Tipus" -#: builtin/config.c:76 +#: builtin/config.c:78 msgid "value is \"true\" or \"false\"" msgstr "el valor és \"true\" o \"false\"" -#: builtin/config.c:77 +#: builtin/config.c:79 msgid "value is decimal number" msgstr "el valor és un nombre decimal" -#: builtin/config.c:78 +#: builtin/config.c:80 msgid "value is --bool or --int" msgstr "el valor és --bool o --int" -#: builtin/config.c:79 +#: builtin/config.c:81 msgid "value is a path (file or directory name)" msgstr "el valor és un camà (nom de fitxer o directori)" -#: builtin/config.c:80 +#: builtin/config.c:82 msgid "Other" msgstr "Altre" -#: builtin/config.c:81 +#: builtin/config.c:83 msgid "terminate values with NUL byte" msgstr "acaba els valors amb un octet NUL" -#: builtin/config.c:82 +#: builtin/config.c:84 msgid "show variable names only" msgstr "mostra només els noms de variable" -#: builtin/config.c:83 +#: builtin/config.c:85 msgid "respect include directives on lookup" msgstr "respecta les directives d'inclusió en cercar" -#: builtin/config.c:303 +#: builtin/config.c:86 +msgid "show origin of config (file, standard input, blob, command line)" +msgstr "" +"mostra l'origen de la configuració (fitxer, entrada està ndar, blob, lÃnia " +"d'ordres)" + +#: builtin/config.c:328 msgid "unable to parse default color value" msgstr "no s'ha pogut analitzar el valor de color per defecte" -#: builtin/config.c:441 +#: builtin/config.c:469 #, c-format msgid "" "# This is Git's per-user configuration file.\n" @@ -5585,7 +5779,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 "no es pot crear el fitxer de configuració '%s'" @@ -5835,162 +6029,166 @@ msgstr "git fetch --multiple [<opcions>] [(<dipòsit> | <grup>)...]" msgid "git fetch --all [<options>]" msgstr "git fetch --all [<opcions>]" -#: builtin/fetch.c:90 builtin/pull.c:162 +#: builtin/fetch.c:92 builtin/pull.c:166 msgid "fetch from all remotes" msgstr "obtén de tots els remots" -#: 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 "annexa a .git/FETCH_HEAD en lloc de sobreescriure" -#: 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 "camà al qual pujar el paquet al costat remot" -#: builtin/fetch.c:95 builtin/pull.c:170 +#: builtin/fetch.c:97 builtin/pull.c:174 msgid "force overwrite of local branch" msgstr "força la sobreescriptura de la branca local" -#: builtin/fetch.c:97 +#: builtin/fetch.c:99 msgid "fetch from multiple remotes" msgstr "obtén de múltiples remots" -#: builtin/fetch.c:99 builtin/pull.c:172 +#: builtin/fetch.c:101 builtin/pull.c:176 msgid "fetch all tags and associated objects" msgstr "obtén totes les etiquetes i tots els objectes associats" -#: builtin/fetch.c:101 +#: builtin/fetch.c:103 msgid "do not fetch all tags (--no-tags)" msgstr "no obtinguis les etiquetes (--no-tags)" -#: builtin/fetch.c:103 builtin/pull.c:175 +#: builtin/fetch.c:105 +msgid "number of submodules fetched in parallel" +msgstr "nombre de submòduls obtinguts en paral·lel" + +#: builtin/fetch.c:107 builtin/pull.c:179 msgid "prune remote-tracking branches no longer on remote" msgstr "poda les branques amb seguiment remot que ja no estiguin en el remot" -#: builtin/fetch.c:104 builtin/pull.c:178 +#: builtin/fetch.c:108 builtin/pull.c:182 msgid "on-demand" msgstr "sota demanda" -#: builtin/fetch.c:105 builtin/pull.c:179 +#: builtin/fetch.c:109 builtin/pull.c:183 msgid "control recursive fetching of submodules" msgstr "controla l'obtenció recursiva de submòduls" -#: builtin/fetch.c:109 builtin/pull.c:184 +#: builtin/fetch.c:113 builtin/pull.c:191 msgid "keep downloaded pack" msgstr "retén el paquet baixat" -#: builtin/fetch.c:111 +#: builtin/fetch.c:115 msgid "allow updating of HEAD ref" msgstr "permet l'actualització de la referència HEAD" -#: builtin/fetch.c:114 builtin/pull.c:187 +#: builtin/fetch.c:118 builtin/pull.c:194 msgid "deepen history of shallow clone" msgstr "aprofundeix la història d'un clon superficial" -#: builtin/fetch.c:116 builtin/pull.c:190 +#: builtin/fetch.c:120 builtin/pull.c:197 msgid "convert to a complete repository" msgstr "converteix en un dipòsit complet" -#: builtin/fetch.c:118 builtin/log.c:1233 +#: builtin/fetch.c:122 builtin/log.c:1236 msgid "dir" msgstr "directori" -#: builtin/fetch.c:119 +#: builtin/fetch.c:123 msgid "prepend this to submodule path output" msgstr "anteposa això a la sortida de camà del submòdul" -#: builtin/fetch.c:122 +#: builtin/fetch.c:126 msgid "default mode for recursion" msgstr "mode de recursivitat per defecte" -#: builtin/fetch.c:124 builtin/pull.c:193 +#: builtin/fetch.c:128 builtin/pull.c:200 msgid "accept refs that update .git/shallow" msgstr "accepta les referències que actualitzin .git/shallow" -#: builtin/fetch.c:125 builtin/pull.c:195 +#: builtin/fetch.c:129 builtin/pull.c:202 msgid "refmap" msgstr "mapa de referències" -#: builtin/fetch.c:126 builtin/pull.c:196 +#: builtin/fetch.c:130 builtin/pull.c:203 msgid "specify fetch refmap" msgstr "mostra el mapa de referències d'obtenció" -#: builtin/fetch.c:378 +#: builtin/fetch.c:386 msgid "Couldn't find remote ref HEAD" msgstr "No s'ha pogut trobar la referència HEAD remota" -#: builtin/fetch.c:458 +#: builtin/fetch.c:466 #, c-format msgid "object %s not found" msgstr "objecte %s no trobat" -#: builtin/fetch.c:463 +#: builtin/fetch.c:471 msgid "[up to date]" msgstr "[al dia]" -#: builtin/fetch.c:477 +#: builtin/fetch.c:485 #, c-format msgid "! %-*s %-*s -> %s (can't fetch in current branch)" msgstr "! %-*s %-*s -> %s (no es pot obtenir en la branca actual)" -#: builtin/fetch.c:478 builtin/fetch.c:566 +#: builtin/fetch.c:486 builtin/fetch.c:574 msgid "[rejected]" msgstr "[rebutjat]" -#: builtin/fetch.c:489 +#: builtin/fetch.c:497 msgid "[tag update]" msgstr "[actualització d'etiqueta]" -#: 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 " (no s'ha pogut actualitzar la referència local)" -#: builtin/fetch.c:509 +#: builtin/fetch.c:517 msgid "[new tag]" msgstr "[etiqueta nova]" -#: builtin/fetch.c:512 +#: builtin/fetch.c:520 msgid "[new branch]" msgstr "[branca nova]" -#: builtin/fetch.c:515 +#: builtin/fetch.c:523 msgid "[new ref]" msgstr "[referència nova]" -#: builtin/fetch.c:561 +#: builtin/fetch.c:569 msgid "unable to update local ref" msgstr "no s'ha pogut actualitzar la referència local" -#: builtin/fetch.c:561 +#: builtin/fetch.c:569 msgid "forced update" msgstr "actualització forçada" -#: builtin/fetch.c:568 +#: builtin/fetch.c:576 msgid "(non-fast-forward)" msgstr "(sense avanç rà pid)" -#: 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 "no es pot obrir %s: %s\n" -#: builtin/fetch.c:611 +#: builtin/fetch.c:619 #, c-format msgid "%s did not send all necessary objects\n" msgstr "%s no ha enviat tots els objectes necessaris\n" -#: builtin/fetch.c:629 +#: builtin/fetch.c:637 #, c-format msgid "reject %s because shallow roots are not allowed to be updated" msgstr "" "rebutja %s perquè no es permet que les arrels superficials s'actualitzin" -#: builtin/fetch.c:716 builtin/fetch.c:808 +#: builtin/fetch.c:724 builtin/fetch.c:816 #, c-format msgid "From %.*s\n" msgstr "De %.*s\n" -#: builtin/fetch.c:727 +#: builtin/fetch.c:735 #, c-format msgid "" "some local refs could not be updated; try running\n" @@ -6000,55 +6198,55 @@ msgstr "" " intenteu executar 'git remote prune %s' per a eliminar\n" " qualsevulla branca antiga o conflictiva" -#: builtin/fetch.c:779 +#: builtin/fetch.c:787 #, c-format msgid " (%s will become dangling)" msgstr " (%s es tornarà penjant)" -#: builtin/fetch.c:780 +#: builtin/fetch.c:788 #, c-format msgid " (%s has become dangling)" msgstr " (%s s'ha tornat penjant)" -#: builtin/fetch.c:812 +#: builtin/fetch.c:820 msgid "[deleted]" msgstr "[suprimit]" -#: builtin/fetch.c:813 builtin/remote.c:1040 +#: builtin/fetch.c:821 builtin/remote.c:1025 msgid "(none)" msgstr "(cap)" -#: builtin/fetch.c:833 +#: builtin/fetch.c:841 #, c-format msgid "Refusing to fetch into current branch %s of non-bare repository" msgstr "Refusant obtenir en la branca actual %s d'un dipòsit no nu" -#: builtin/fetch.c:852 +#: builtin/fetch.c:860 #, c-format msgid "Option \"%s\" value \"%s\" is not valid for %s" msgstr "L'opció \"%s\" amb valor \"%s\" no és và lida per a %s" -#: builtin/fetch.c:855 +#: builtin/fetch.c:863 #, c-format msgid "Option \"%s\" is ignored for %s\n" msgstr "S'ignora l'opció \"%s\" per a %s\n" -#: builtin/fetch.c:911 +#: builtin/fetch.c:920 #, c-format msgid "Don't know how to fetch from %s" msgstr "No se sap com obtenir de %s" -#: builtin/fetch.c:1072 +#: builtin/fetch.c:1080 #, c-format msgid "Fetching %s\n" msgstr "Obtenint %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 "No s'ha pogut obtenir %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." @@ -6056,32 +6254,32 @@ msgstr "" "Cap dipòsit remot especificat. Si us plau, especifiqueu o un URL o\n" "un nom remot del qual es deuen obtenir les revisions noves." -#: builtin/fetch.c:1115 +#: builtin/fetch.c:1123 msgid "You need to specify a tag name." msgstr "Necessiteu especificar un nom d'etiqueta." -#: builtin/fetch.c:1157 +#: builtin/fetch.c:1165 msgid "--depth and --unshallow cannot be used together" msgstr "--depth i --unshallow no es poden usar junts" -#: builtin/fetch.c:1159 +#: builtin/fetch.c:1167 msgid "--unshallow on a complete repository does not make sense" msgstr "--unshallow en un dipòsit complet no té sentit" -#: builtin/fetch.c:1179 +#: builtin/fetch.c:1187 msgid "fetch --all does not take a repository argument" msgstr "fetch --all no accepta un parà metre de dipòsit" -#: builtin/fetch.c:1181 +#: builtin/fetch.c:1189 msgid "fetch --all does not make sense with refspecs" msgstr "fetch --all no té sentit amb especificacions de referència" -#: builtin/fetch.c:1192 +#: builtin/fetch.c:1200 #, c-format msgid "No such remote or remote group: %s" msgstr "No hi ha tal remot ni tal grup remot: %s" -#: builtin/fetch.c:1200 +#: builtin/fetch.c:1208 msgid "Fetching a group and specifying refspecs does not make sense" msgstr "Obtenir un grup i especificar referències no té sentit" @@ -6308,228 +6506,242 @@ msgstr "" msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]" msgstr "git grep [<opcions>] [-e] <patró> [<revisió>...] [[--] <camÃ>...]" -#: builtin/grep.c:218 +#: builtin/grep.c:219 #, c-format msgid "grep: failed to create thread: %s" msgstr "grep: s'ha fallat en crear 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 "s'ha especificat un nombre de fils no và lid (%d) per a %s" + +#: builtin/grep.c:452 builtin/grep.c:487 #, c-format msgid "unable to read tree (%s)" msgstr "no s'ha pogut llegir l'arbre (%s)" -#: builtin/grep.c:491 +#: builtin/grep.c:502 #, c-format msgid "unable to grep from object of type %s" msgstr "no es pot fer grep des d'un objecte de tipus %s" -#: builtin/grep.c:547 +#: builtin/grep.c:558 #, c-format msgid "switch `%c' expects a numerical value" msgstr "l'opció `%c' espera un valor numèric" -#: builtin/grep.c:564 +#: builtin/grep.c:575 #, c-format msgid "cannot open '%s'" msgstr "no es pot obrir '%s'" -#: builtin/grep.c:633 +#: builtin/grep.c:644 msgid "search in index instead of in the work tree" msgstr "cerca en l'Ãndex en lloc de l'arbre de treball" -#: builtin/grep.c:635 +#: builtin/grep.c:646 msgid "find in contents not managed by git" msgstr "cerca en continguts no gestionats per git" -#: builtin/grep.c:637 +#: builtin/grep.c:648 msgid "search in both tracked and untracked files" msgstr "cerca tant en fitxers seguits com en no seguits" -#: builtin/grep.c:639 +#: builtin/grep.c:650 msgid "ignore files specified via '.gitignore'" msgstr "ignora els fitxers especificats mitjançant '.gitignore'" -#: builtin/grep.c:642 +#: builtin/grep.c:653 msgid "show non-matching lines" msgstr "mostra les lÃnies no coincidents" -#: builtin/grep.c:644 +#: builtin/grep.c:655 msgid "case insensitive matching" msgstr "coincidència insensible a majúscula i minúscula" -#: builtin/grep.c:646 +#: builtin/grep.c:657 msgid "match patterns only at word boundaries" msgstr "coincideix amb els patrons només als lÃmits de paraula" -#: builtin/grep.c:648 +#: builtin/grep.c:659 msgid "process binary files as text" msgstr "processa els fitxers binaris com a text" -#: builtin/grep.c:650 +#: builtin/grep.c:661 msgid "don't match patterns in binary files" msgstr "no coincideixis amb els patrons en els fitxers binaris" -#: builtin/grep.c:653 +#: builtin/grep.c:664 msgid "process binary files with textconv filters" msgstr "processa els fitxers binaris amb filtres de textconv" -#: builtin/grep.c:655 +#: builtin/grep.c:666 msgid "descend at most <depth> levels" msgstr "descendeix com a mà xim <profunditat> nivells" -#: builtin/grep.c:659 +#: builtin/grep.c:670 msgid "use extended POSIX regular expressions" msgstr "usa les expressions regulars POSIX esteses" -#: builtin/grep.c:662 +#: builtin/grep.c:673 msgid "use basic POSIX regular expressions (default)" msgstr "usa les expressions regulars POSIX bà siques (per defecte)" -#: builtin/grep.c:665 +#: builtin/grep.c:676 msgid "interpret patterns as fixed strings" msgstr "interpreta els patrons com a cadenes fixes" -#: builtin/grep.c:668 +#: builtin/grep.c:679 msgid "use Perl-compatible regular expressions" msgstr "usa les expressions regulars compatibles amb Perl" -#: builtin/grep.c:671 +#: builtin/grep.c:682 msgid "show line numbers" msgstr "mostra els números de lÃnia" -#: builtin/grep.c:672 +#: builtin/grep.c:683 msgid "don't show filenames" msgstr "no mostris els noms de fitxer" -#: builtin/grep.c:673 +#: builtin/grep.c:684 msgid "show filenames" msgstr "mostra els noms de fitxer" -#: builtin/grep.c:675 +#: builtin/grep.c:686 msgid "show filenames relative to top directory" msgstr "mostra els noms de fitxer relatius al directori superior" -#: builtin/grep.c:677 +#: builtin/grep.c:688 msgid "show only filenames instead of matching lines" msgstr "mostra només els noms de fitxer en lloc de les lÃnies coincidents" -#: builtin/grep.c:679 +#: builtin/grep.c:690 msgid "synonym for --files-with-matches" msgstr "sinònim de --files-with-matches" -#: builtin/grep.c:682 +#: builtin/grep.c:693 msgid "show only the names of files without match" msgstr "mostra només els noms dels fitxers sense coincidència" -#: builtin/grep.c:684 +#: builtin/grep.c:695 msgid "print NUL after filenames" msgstr "imprimeix NUL després dels noms de fitxer" -#: builtin/grep.c:686 +#: builtin/grep.c:697 msgid "show the number of matches instead of matching lines" msgstr "mostra el nombre de coincidències en lloc de les lÃnies coincidents" -#: builtin/grep.c:687 +#: builtin/grep.c:698 msgid "highlight matches" msgstr "ressalta les coincidències" -#: builtin/grep.c:689 +#: builtin/grep.c:700 msgid "print empty line between matches from different files" msgstr "imprimeix una lÃnia buida entre coincidències de fitxers distints" -#: builtin/grep.c:691 +#: builtin/grep.c:702 msgid "show filename only once above matches from same file" msgstr "" "mostra el nom de fitxer només una vegada a dalt de les coincidències del " "mateix fitxer" -#: builtin/grep.c:694 +#: builtin/grep.c:705 msgid "show <n> context lines before and after matches" msgstr "mostra <n> lÃnies de context abans i després d'una coincidència" -#: builtin/grep.c:697 +#: builtin/grep.c:708 msgid "show <n> context lines before matches" msgstr "mostra <n> lÃnies de context abans d'una coincidència" -#: builtin/grep.c:699 +#: builtin/grep.c:710 msgid "show <n> context lines after matches" msgstr "mostra <n> lÃnies de context després d'una coincidència" -#: builtin/grep.c:700 +#: builtin/grep.c:712 +msgid "use <n> worker threads" +msgstr "usa <n> fils obrers" + +#: builtin/grep.c:713 msgid "shortcut for -C NUM" msgstr "drecera per -C NUM" -#: builtin/grep.c:703 +#: builtin/grep.c:716 msgid "show a line with the function name before matches" msgstr "mostra una lÃnia amb el nom de funció abans de les coincidències" -#: builtin/grep.c:705 +#: builtin/grep.c:718 msgid "show the surrounding function" msgstr "mostra la funció circumdant" -#: builtin/grep.c:708 +#: builtin/grep.c:721 msgid "read patterns from file" msgstr "llegeix els patrons des d'un fitxer" -#: builtin/grep.c:710 +#: builtin/grep.c:723 msgid "match <pattern>" msgstr "coincideix amb <patró>" -#: builtin/grep.c:712 +#: builtin/grep.c:725 msgid "combine patterns specified with -e" msgstr "combina els patrons especificats amb -e" -#: builtin/grep.c:724 +#: builtin/grep.c:737 msgid "indicate hit with exit status without output" msgstr "indica coincidència amb estat de sortida sense sortida textual" -#: builtin/grep.c:726 +#: builtin/grep.c:739 msgid "show only matches from files that match all patterns" msgstr "" "mostra només les coincidències dels fitxers que coincideixin amb tots els " "patrons" -#: builtin/grep.c:728 +#: builtin/grep.c:741 msgid "show parse tree for grep expression" msgstr "mostra l'arbre d'anà lisis de l'expressió de grep" -#: builtin/grep.c:732 +#: builtin/grep.c:745 msgid "pager" msgstr "paginador" -#: builtin/grep.c:732 +#: builtin/grep.c:745 msgid "show matching files in the pager" msgstr "mostra els fitxers coincidents en el paginador" -#: builtin/grep.c:735 +#: builtin/grep.c:748 msgid "allow calling of grep(1) (ignored by this build)" msgstr "permet la invocació de grep(1) (ignorat per aquesta compilació)" -#: builtin/grep.c:793 +#: builtin/grep.c:811 msgid "no pattern given." msgstr "cap patró donat." -#: builtin/grep.c:851 +#: builtin/grep.c:843 builtin/index-pack.c:1475 +#, c-format +msgid "invalid number of threads specified (%d)" +msgstr "s'ha especificat un nombre de fils no và lid (%d)" + +#: builtin/grep.c:873 msgid "--open-files-in-pager only works on the worktree" msgstr "--open-files-in-pager només funciona en l'arbre de treball" -#: builtin/grep.c:877 +#: builtin/grep.c:899 msgid "--cached or --untracked cannot be used with --no-index." msgstr "--cached o --untracked no es pot usar amb --no-index." -#: builtin/grep.c:882 +#: builtin/grep.c:904 msgid "--no-index or --untracked cannot be used with revs." msgstr "--no-index o --untracked no es pot usar amb revisions." -#: builtin/grep.c:885 +#: builtin/grep.c:907 msgid "--[no-]exclude-standard cannot be used for tracked contents." msgstr "--[no-]exclude-standard no es pot usar per als continguts seguits." -#: builtin/grep.c:893 +#: builtin/grep.c:915 msgid "both --cached and trees are given." msgstr "s'han donat ambdós --caches i arbres." -#: builtin/hash-object.c:80 +#: builtin/hash-object.c:81 msgid "" "git hash-object [-t <type>] [-w] [--path=<file> | --no-filters] [--stdin] " "[--] <file>..." @@ -6537,38 +6749,38 @@ msgstr "" "git hash-object [-t <tipus>] [-w] [--path=<fitxer> | --no-filters] [--stdin] " "[--] <fitxer>..." -#: 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 "tipus" -#: builtin/hash-object.c:92 +#: builtin/hash-object.c:93 msgid "object type" msgstr "tipus d'objecte" -#: builtin/hash-object.c:93 +#: builtin/hash-object.c:94 msgid "write the object into the object database" msgstr "escriu l'objecte a la base de dades d'objectes" -#: builtin/hash-object.c:95 +#: builtin/hash-object.c:96 msgid "read the object from stdin" msgstr "llegeix l'objecte des d'stdin" -#: builtin/hash-object.c:97 +#: builtin/hash-object.c:98 msgid "store file as is without filters" msgstr "emmagatzema el fitxer tal com és sense filtres" -#: builtin/hash-object.c:98 +#: builtin/hash-object.c:99 msgid "" "just hash any random garbage to create corrupt objects for debugging Git" msgstr "" "només suma qualsevulla brossa aleatòria per a crear objectes malmesos per a " "depurar al Git" -#: builtin/hash-object.c:99 +#: builtin/hash-object.c:100 msgid "process file as it were from this path" msgstr "processa el fitxer com si fos d'aquest camÃ" @@ -6619,7 +6831,7 @@ msgstr "la versió d'emacsclient '%d' és massa vella (< 22)." msgid "failed to exec '%s': %s" msgstr "s'ha fallat en executar '%s': %s" -#: builtin/help.c:208 +#: builtin/help.c:205 #, c-format msgid "" "'%s': path for unsupported man viewer.\n" @@ -6628,7 +6840,7 @@ msgstr "" "'%s': camà a un visualitzador de manuals no compatible.\n" "Si us plau, considereu usar 'man.<eina>.cmd' en lloc d'això." -#: builtin/help.c:220 +#: builtin/help.c:217 #, c-format msgid "" "'%s': cmd for supported man viewer.\n" @@ -6637,61 +6849,61 @@ msgstr "" "'%s': ordre per a un visualitzador de manuals compatible.\n" "Si us plau, considereu usar 'man.<eina>.path' en lloc d'això." -#: builtin/help.c:337 +#: builtin/help.c:334 #, c-format msgid "'%s': unknown man viewer." msgstr "'%s': visualitzador de manuals desconegut" -#: builtin/help.c:354 +#: builtin/help.c:351 msgid "no man viewer handled the request" msgstr "cap visualitzador de manuals ha gestionat la sol·licitud" -#: builtin/help.c:362 +#: builtin/help.c:359 msgid "no info viewer handled the request" msgstr "cap visualitzador d'informació ha gestionat la sol·licitud" -#: builtin/help.c:411 +#: builtin/help.c:408 msgid "Defining attributes per path" msgstr "La definició d'atributs per camÃ" -#: builtin/help.c:412 +#: builtin/help.c:409 msgid "Everyday Git With 20 Commands Or So" msgstr "Git quotidià amb més o menys 20 ordres" -#: builtin/help.c:413 +#: builtin/help.c:410 msgid "A Git glossary" msgstr "Un glossari de Git" -#: builtin/help.c:414 +#: builtin/help.c:411 msgid "Specifies intentionally untracked files to ignore" msgstr "Especifica els fitxers intencionalment no seguits a ignorar" -#: builtin/help.c:415 +#: builtin/help.c:412 msgid "Defining submodule properties" msgstr "La definició de les propietats de submòduls" -#: builtin/help.c:416 +#: builtin/help.c:413 msgid "Specifying revisions and ranges for Git" msgstr "L'especificació de revisions i rangs per al Git" -#: builtin/help.c:417 +#: builtin/help.c:414 msgid "A tutorial introduction to Git (for version 1.5.1 or newer)" msgstr "Una introducció tutorial al Git (per a la versió 1.5.1 o més nou)" -#: builtin/help.c:418 +#: builtin/help.c:415 msgid "An overview of recommended workflows with Git" msgstr "Una visió de conjunt de fluxos de treball recomanats amb Git" -#: builtin/help.c:430 +#: builtin/help.c:427 msgid "The common Git guides are:\n" msgstr "Les guies de Git comunes són:\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%s" -#: builtin/help.c:484 +#: builtin/help.c:481 #, c-format msgid "`git %s' is aliased to `%s'" msgstr "`git %s' és un à lies de `%s'" @@ -6927,60 +7139,55 @@ msgstr "no es pot emmagatzemar el fitxer d'Ãndex" msgid "bad pack.indexversion=%<PRIu32>" msgstr "pack.indexversion=%<PRIu32> dolent" -#: builtin/index-pack.c:1475 -#, c-format -msgid "invalid number of threads specified (%d)" -msgstr "s'ha especificat un nombre de fils no và lid (%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 "no hi ha suport de fils, ignorant %s" -#: builtin/index-pack.c:1537 +#: builtin/index-pack.c:1538 #, c-format msgid "Cannot open existing pack file '%s'" msgstr "No es pot obrir el fitxer de paquet existent '%s'" -#: builtin/index-pack.c:1539 +#: builtin/index-pack.c:1540 #, c-format msgid "Cannot open existing pack idx file for '%s'" msgstr "No es pot obrir el fitxer d'Ãndex de paquets existent de '%s'" -#: builtin/index-pack.c:1586 +#: builtin/index-pack.c:1587 #, c-format msgid "non delta: %d object" msgid_plural "non delta: %d objects" msgstr[0] "sense delta: %d objecte" msgstr[1] "sense delta: %d objectes" -#: 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] "longitud de cadena = %d: %lu objecte" msgstr[1] "longitud de cadena = %d: %lu objectes" -#: builtin/index-pack.c:1623 +#: builtin/index-pack.c:1624 msgid "Cannot come back to cwd" msgstr "No es pot tornar al directori de treball actual" -#: 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 dolent" -#: builtin/index-pack.c:1708 +#: builtin/index-pack.c:1709 msgid "--fix-thin cannot be used without --stdin" msgstr "--fix-thin no es pot usar sense --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 "el nom de fitxer de paquet '%s' no acaba amb '.pack'" -#: builtin/index-pack.c:1729 +#: builtin/index-pack.c:1730 msgid "--verify with no packfile name given" msgstr "s'ha donat --verify sense nom de fitxer de paquet" @@ -7106,24 +7313,32 @@ msgstr "No es pot accedir a l'arbre de treball '%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 <fitxa>[(=|:)<valor>])...] " -"[<fitxer>...]" +"git interpret-trailers [--in-place] [--trim-empty] [(--trailer " +"<fitxa>[(=|:)<valor>])...] [<fitxer>...]" -#: builtin/interpret-trailers.c:25 +#: builtin/interpret-trailers.c:26 +msgid "edit files in place" +msgstr "edita els fitxers in situ" + +#: builtin/interpret-trailers.c:27 msgid "trim empty trailers" msgstr "escurça els remolcs buits" -#: builtin/interpret-trailers.c:26 +#: builtin/interpret-trailers.c:28 msgid "trailer" msgstr "remolc" -#: builtin/interpret-trailers.c:27 +#: builtin/interpret-trailers.c:29 msgid "trailer(s) to add" msgstr "remolcs a afegir" +#: builtin/interpret-trailers.c:42 +msgid "no input file given for in-place editing" +msgstr "no s'ha donat cap fitxer d'entrada per a edició in situ" + #: builtin/log.c:43 msgid "git log [<options>] [<revision-range>] [[--] <path>...]" msgstr "git log [<opcions>] [<rang-de-revisions>] [[--] <camÃ>...]" @@ -7177,225 +7392,225 @@ msgstr "No es pot llegir l'objecte %s" msgid "Unknown type: %d" msgstr "Tipus desconegut: %d" -#: builtin/log.c:714 +#: builtin/log.c:715 msgid "format.headers without value" msgstr "format.headers sense valor" -#: builtin/log.c:798 +#: builtin/log.c:801 msgid "name of output directory is too long" msgstr "el nom del directori de sortida és massa llarg" -#: builtin/log.c:813 +#: builtin/log.c:816 #, c-format msgid "Cannot open patch file %s" msgstr "No es pot obrir el fitxer de pedaç %s" -#: builtin/log.c:827 +#: builtin/log.c:830 msgid "Need exactly one range." msgstr "Cal exactament un rang." -#: builtin/log.c:837 +#: builtin/log.c:840 msgid "Not a range." msgstr "No és un rang." -#: builtin/log.c:943 +#: builtin/log.c:946 msgid "Cover letter needs email format" msgstr "La carta de presentació necessita el format de correu electrònic" -#: builtin/log.c:1022 +#: builtin/log.c:1025 #, c-format msgid "insane in-reply-to: %s" msgstr "in-reply-to boig: %s" -#: builtin/log.c:1050 +#: builtin/log.c:1053 msgid "git format-patch [<options>] [<since> | <revision-range>]" msgstr "git format-patch [<opcions>] [<des-de> | <rang-de-revisions>]" -#: builtin/log.c:1095 +#: builtin/log.c:1098 msgid "Two output directories?" msgstr "Dos directoris de sortida?" -#: builtin/log.c:1211 +#: builtin/log.c:1214 msgid "use [PATCH n/m] even with a single patch" msgstr "usa [PATCH n/m] fins i tot amb un sol pedaç" -#: builtin/log.c:1214 +#: builtin/log.c:1217 msgid "use [PATCH] even with multiple patches" msgstr "usa [PATCH] fins i tot amb múltiples pedaços" -#: builtin/log.c:1218 +#: builtin/log.c:1221 msgid "print patches to standard out" msgstr "imprimeix els pedaços a la sortida està ndard" -#: builtin/log.c:1220 +#: builtin/log.c:1223 msgid "generate a cover letter" msgstr "genera una carta de presentació" -#: builtin/log.c:1222 +#: builtin/log.c:1225 msgid "use simple number sequence for output file names" msgstr "usa una seqüència de números per als noms dels fitxers de sortida" -#: builtin/log.c:1223 +#: builtin/log.c:1226 msgid "sfx" msgstr "sufix" -#: builtin/log.c:1224 +#: builtin/log.c:1227 msgid "use <sfx> instead of '.patch'" msgstr "usa <sufix> en lloc de '.patch'" -#: builtin/log.c:1226 +#: builtin/log.c:1229 msgid "start numbering patches at <n> instead of 1" msgstr "comença numerant els pedaços a <n> en lloc d'1" -#: builtin/log.c:1228 +#: builtin/log.c:1231 msgid "mark the series as Nth re-roll" msgstr "marca la sèrie com a l'enèsima llançada" -#: builtin/log.c:1230 +#: builtin/log.c:1233 msgid "Use [<prefix>] instead of [PATCH]" msgstr "Usa [<prefix>] en lloc de [PATCH]" -#: builtin/log.c:1233 +#: builtin/log.c:1236 msgid "store resulting files in <dir>" msgstr "emmagatzema els fitxers resultants a <directori>" -#: builtin/log.c:1236 +#: builtin/log.c:1239 msgid "don't strip/add [PATCH]" msgstr "no despullis/afegeixis [PATCH]" -#: builtin/log.c:1239 +#: builtin/log.c:1242 msgid "don't output binary diffs" msgstr "no emetis diferències binà ries" -#: builtin/log.c:1241 +#: builtin/log.c:1244 msgid "output all-zero hash in From header" msgstr "emet un hash de tots zeros en la capçalera From" -#: builtin/log.c:1243 +#: builtin/log.c:1246 msgid "don't include a patch matching a commit upstream" msgstr "no incloguis pedaços que coincideixin amb comissions a la font" -#: builtin/log.c:1245 +#: builtin/log.c:1248 msgid "show patch format instead of default (patch + stat)" msgstr "" "mostra el format de pedaç en lloc del per defecte (pedaç + estadÃstiques)" -#: builtin/log.c:1247 +#: builtin/log.c:1250 msgid "Messaging" msgstr "Missatgeria" -#: builtin/log.c:1248 +#: builtin/log.c:1251 msgid "header" msgstr "capçalera" -#: builtin/log.c:1249 +#: builtin/log.c:1252 msgid "add email header" msgstr "afegeix una capçalera de correu electrònic" -#: builtin/log.c:1250 builtin/log.c:1252 +#: builtin/log.c:1253 builtin/log.c:1255 msgid "email" msgstr "correu electrònic" -#: builtin/log.c:1250 +#: builtin/log.c:1253 msgid "add To: header" msgstr "afegeix la capçalera To:" -#: builtin/log.c:1252 +#: builtin/log.c:1255 msgid "add Cc: header" msgstr "afegeix la capçalera Cc:" -#: builtin/log.c:1254 +#: builtin/log.c:1257 msgid "ident" msgstr "identitat" -#: builtin/log.c:1255 +#: builtin/log.c:1258 msgid "set From address to <ident> (or committer ident if absent)" msgstr "" "estableix l'adreça From a <identitat> (o la identitat del comitent si manca)" -#: builtin/log.c:1257 +#: builtin/log.c:1260 msgid "message-id" msgstr "ID de missatge" -#: builtin/log.c:1258 +#: builtin/log.c:1261 msgid "make first mail a reply to <message-id>" msgstr "fes del primer missatge una resposta a <ID de missatge>" -#: builtin/log.c:1259 builtin/log.c:1262 +#: builtin/log.c:1262 builtin/log.c:1265 msgid "boundary" msgstr "lÃmit" -#: builtin/log.c:1260 +#: builtin/log.c:1263 msgid "attach the patch" msgstr "ajunta el pedaç" -#: builtin/log.c:1263 +#: builtin/log.c:1266 msgid "inline the patch" msgstr "posa el pedaç en el cos" -#: builtin/log.c:1267 +#: builtin/log.c:1270 msgid "enable message threading, styles: shallow, deep" msgstr "habilita l'enfilada de missatges, estils: shallow, deep" -#: builtin/log.c:1269 +#: builtin/log.c:1272 msgid "signature" msgstr "firma" -#: builtin/log.c:1270 +#: builtin/log.c:1273 msgid "add a signature" msgstr "afegeix una firma" -#: builtin/log.c:1272 +#: builtin/log.c:1275 msgid "add a signature from a file" msgstr "afegeix una firma des d'un fitxer" -#: builtin/log.c:1273 +#: builtin/log.c:1276 msgid "don't print the patch filenames" msgstr "no imprimeixis els noms de fitxer del pedaç" -#: builtin/log.c:1362 +#: builtin/log.c:1365 msgid "-n and -k are mutually exclusive." msgstr "-n i -k són mutualment exclusius." -#: builtin/log.c:1364 +#: builtin/log.c:1367 msgid "--subject-prefix and -k are mutually exclusive." msgstr "--subject-prefix i -k són mutualment exclusius." -#: builtin/log.c:1372 +#: builtin/log.c:1375 msgid "--name-only does not make sense" msgstr "--name-only no té sentit" -#: builtin/log.c:1374 +#: builtin/log.c:1377 msgid "--name-status does not make sense" msgstr "--name-status no té sentit" -#: builtin/log.c:1376 +#: builtin/log.c:1379 msgid "--check does not make sense" msgstr "--check no té sentit" -#: builtin/log.c:1401 +#: builtin/log.c:1407 msgid "standard output, or directory, which one?" msgstr "sortida està ndard o directori, quin dels dos?" -#: builtin/log.c:1403 +#: builtin/log.c:1409 #, c-format msgid "Could not create directory '%s'" msgstr "No s'ha pogut crear el directori '%s'" -#: builtin/log.c:1500 +#: builtin/log.c:1506 #, c-format msgid "unable to read signature file '%s'" msgstr "no s'ha pogut llegir el fitxer de firma '%s'" -#: builtin/log.c:1563 +#: builtin/log.c:1569 msgid "Failed to create output files" msgstr "S'ha fallat en crear els fitxers de sortida" -#: builtin/log.c:1611 +#: builtin/log.c:1617 msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]" msgstr "git cherry [-v] [<font> [<cap> [<lÃmit>]]]" -#: builtin/log.c:1665 +#: builtin/log.c:1671 #, c-format msgid "" "Could not find a tracked remote branch, please specify <upstream> manually.\n" @@ -7403,105 +7618,156 @@ msgstr "" "No s'ha pogut trobar una branca remota seguida. Si us plau, especifiqueu " "<font> manualment.\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 "Comissió desconeguda %s" -#: builtin/ls-files.c:358 +#: builtin/ls-files.c:378 msgid "git ls-files [<options>] [<file>...]" msgstr "git ls-files [<opcions>] [<fitxer>...]" -#: builtin/ls-files.c:415 +#: builtin/ls-files.c:427 msgid "identify the file status with tags" msgstr "identifica l'estat de fitxer amb etiquetes" -#: builtin/ls-files.c:417 +#: builtin/ls-files.c:429 msgid "use lowercase letters for 'assume unchanged' files" msgstr "usa lletres minúscules per als fitxers 'assume unchanged'" -#: builtin/ls-files.c:419 +#: builtin/ls-files.c:431 msgid "show cached files in the output (default)" msgstr "" "mostra en la sortida els fitxers desats en la memòria cau (per defecte)" -#: builtin/ls-files.c:421 +#: builtin/ls-files.c:433 msgid "show deleted files in the output" msgstr "mostra en la sortida els fitxers suprimits" -#: builtin/ls-files.c:423 +#: builtin/ls-files.c:435 msgid "show modified files in the output" msgstr "mostra en la sortida els fitxers modificats" -#: builtin/ls-files.c:425 +#: builtin/ls-files.c:437 msgid "show other files in the output" msgstr "mostra en la sortida els altres fitxers" -#: builtin/ls-files.c:427 +#: builtin/ls-files.c:439 msgid "show ignored files in the output" msgstr "mostra en la sortida els fitxers ignorats" -#: builtin/ls-files.c:430 +#: builtin/ls-files.c:442 msgid "show staged contents' object name in the output" msgstr "mostra en la sortida el nom d'objecte dels continguts allistats" -#: builtin/ls-files.c:432 +#: builtin/ls-files.c:444 msgid "show files on the filesystem that need to be removed" msgstr "mostra els fitxers en el sistema de fitxers que s'han d'eliminar" -#: builtin/ls-files.c:434 +#: builtin/ls-files.c:446 msgid "show 'other' directories' names only" msgstr "mostra només els noms dels directoris 'other'" -#: builtin/ls-files.c:437 +#: builtin/ls-files.c:448 +msgid "show line endings of files" +msgstr "mostra els terminis de lÃnia dels fitxers" + +#: builtin/ls-files.c:450 msgid "don't show empty directories" msgstr "no mostris els directoris buits" -#: builtin/ls-files.c:440 +#: builtin/ls-files.c:453 msgid "show unmerged files in the output" msgstr "mostra en la sortida els fitxers sense fusionar" -#: builtin/ls-files.c:442 +#: builtin/ls-files.c:455 msgid "show resolve-undo information" msgstr "mostra la informació de resolució de desfet" -#: builtin/ls-files.c:444 +#: builtin/ls-files.c:457 msgid "skip files matching pattern" msgstr "salta els fitxers coincidents amb el patró" -#: builtin/ls-files.c:447 +#: builtin/ls-files.c:460 msgid "exclude patterns are read from <file>" msgstr "els patrons d'exclusió es llegeixen de <fitxer>" -#: builtin/ls-files.c:450 +#: builtin/ls-files.c:463 msgid "read additional per-directory exclude patterns in <file>" msgstr "llegeix els patrons addicionals d'exclusió per directori en <fitxer>" -#: builtin/ls-files.c:452 +#: builtin/ls-files.c:465 msgid "add the standard git exclusions" msgstr "afegeix les exclusions està ndards de git" -#: builtin/ls-files.c:455 +#: builtin/ls-files.c:468 msgid "make the output relative to the project top directory" msgstr "fes que la sortida sigui relativa al directori superior del projecte" -#: builtin/ls-files.c:458 +#: builtin/ls-files.c:471 msgid "if any <file> is not in the index, treat this as an error" msgstr "si qualsevol <fitxer> no és en l'Ãndex, tracta això com a error" -#: builtin/ls-files.c:459 +#: builtin/ls-files.c:472 msgid "tree-ish" msgstr "arbre" -#: builtin/ls-files.c:460 +#: builtin/ls-files.c:473 msgid "pretend that paths removed since <tree-ish> are still present" msgstr "" "pretén que els camins eliminats després de <arbre> encara siguin presents" -#: builtin/ls-files.c:462 +#: builtin/ls-files.c:475 msgid "show debugging data" msgstr "mostra les dades de depuració" +#: 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]\n" +" [--upload-pack=<executable>] [-q | --quiet]\n" +" [--exit-code] [--get-url] [--symref]\n" +" [<dipòsit> [<referències>...]]" + +#: builtin/ls-remote.c:50 +msgid "do not print remote URL" +msgstr "no imprimeixis l'URL remot" + +#: builtin/ls-remote.c:51 builtin/ls-remote.c:53 +msgid "exec" +msgstr "executable" + +#: builtin/ls-remote.c:52 builtin/ls-remote.c:54 +msgid "path of git-upload-pack on the remote host" +msgstr "camà a git-upload-pack en la mà quina remota" + +#: builtin/ls-remote.c:56 +msgid "limit to tags" +msgstr "limita a etiquetes" + +#: builtin/ls-remote.c:57 +msgid "limit to heads" +msgstr "limita a caps" + +#: builtin/ls-remote.c:58 +msgid "do not show peeled tags" +msgstr "no mostris les etiquetes pelades" + +#: builtin/ls-remote.c:60 +msgid "take url.<base>.insteadOf into account" +msgstr "tingues en compte url.<base>.insteadOf" + +#: builtin/ls-remote.c:62 +msgid "exit with exit code 2 if no matching refs are found" +msgstr "surt amb codi de sortida 2 si no es troba cap referència coincident" + +#: builtin/ls-remote.c:64 +msgid "show underlying ref in addition to the object pointed by it" +msgstr "mostra la referència subjacent en adició a l'objecte que senyali" + #: builtin/ls-tree.c:28 msgid "git ls-tree [<options>] <tree-ish> [<path>...]" msgstr "git ls-tree [<opcions>] <arbre> [<camÃ>...]" @@ -7570,33 +7836,33 @@ msgstr "Les estratègies disponibles són:" msgid "Available custom strategies are:" msgstr "Les estratègies personalitzades disponibles són:" -#: 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 "no mostris les estadÃstiques de diferència al final de la fusió" -#: 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 "mostra les estadÃstiques de diferència al final de la fusió" -#: builtin/merge.c:197 builtin/pull.c:125 +#: builtin/merge.c:197 builtin/pull.c:129 msgid "(synonym to --stat)" msgstr "(sinònim 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 "" "afegeix (com a mà xim <n>) entrades del registre curt al missatge de comissió " "de fusió" -#: 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 "crea una única comissió en lloc de fusionar" -#: 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 "realitza una comissió si la fusió té èxit (per defecte)" -#: builtin/merge.c:206 builtin/pull.c:137 +#: builtin/merge.c:206 builtin/pull.c:141 msgid "edit message before committing" msgstr "edita el missatge abans de cometre" @@ -7604,7 +7870,7 @@ msgstr "edita el missatge abans de cometre" msgid "allow fast-forward (default)" msgstr "permet l'avanç rà pid (per defecte)" -#: 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 "avorta si l'avanç rà pid no és possible" @@ -7612,20 +7878,20 @@ msgstr "avorta si l'avanç rà pid no és possible" msgid "Verify that the named commit has a valid GPG signature" msgstr "Verifica que la comissió anomenada tingui una firma GPG và lida" -#: 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 "estratègia" -#: builtin/merge.c:215 builtin/pull.c:149 +#: builtin/merge.c:215 builtin/pull.c:153 msgid "merge strategy to use" msgstr "estratègia de fusió a usar" -#: builtin/merge.c:216 builtin/pull.c:152 +#: builtin/merge.c:216 builtin/pull.c:156 msgid "option=value" msgstr "opció=valor" -#: builtin/merge.c:217 builtin/pull.c:153 +#: builtin/merge.c:217 builtin/pull.c:157 msgid "option for selected merge strategy" msgstr "opció per a l'estratègia de fusió seleccionada" @@ -7663,8 +7929,8 @@ msgstr " (res a aixafar)" msgid "Squash commit -- not updating HEAD\n" msgstr "Comissió d'aixafada -- no actualitzant 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 "No s'ha pogut escriure al '%s'" @@ -7682,41 +7948,41 @@ msgstr "Finalitzant SQUASH_MSG" msgid "No merge message -- not updating HEAD\n" msgstr "Cap missatge de fusió -- no actualitzant HEAD\n" -#: builtin/merge.c:447 +#: builtin/merge.c:448 #, c-format msgid "'%s' does not point to a commit" msgstr "'%s' no assenyala una comissió" -#: builtin/merge.c:537 +#: builtin/merge.c:538 #, c-format msgid "Bad branch.%s.mergeoptions string: %s" msgstr "Cadena branch.%s.mergeoptions dolenta: %s" -#: builtin/merge.c:656 +#: builtin/merge.c:657 msgid "Not handling anything other than two heads merge." msgstr "No gestionant res a part de la fusió de dos caps." -#: builtin/merge.c:670 +#: builtin/merge.c:671 #, c-format msgid "Unknown option for merge-recursive: -X%s" msgstr "Opció desconeguda de merge-recursive: -X%s" -#: builtin/merge.c:683 +#: builtin/merge.c:684 #, c-format msgid "unable to write %s" msgstr "no s'ha pogut escriure %s" -#: builtin/merge.c:772 +#: builtin/merge.c:773 #, c-format msgid "Could not read from '%s'" msgstr "No s'ha pogut llegir de '%s'" -#: builtin/merge.c:781 +#: builtin/merge.c:782 #, c-format msgid "Not committing merge; use 'git commit' to complete the merge.\n" msgstr "No cometent la fusió; useu 'git commit' per a completar la fusió.\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" @@ -7732,54 +7998,54 @@ msgstr "" "S'ignoraran les lÃnies que comencin amb '%c', i un missatge buit\n" "avorta la comissió.\n" -#: builtin/merge.c:811 +#: builtin/merge.c:812 msgid "Empty commit message." msgstr "Missatge de comissió buit." -#: builtin/merge.c:823 +#: builtin/merge.c:824 #, c-format msgid "Wonderful.\n" msgstr "Meravellós.\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 fusió automà tica ha fallat; arregleu els conflictes i després cometeu el " "resultat.\n" -#: builtin/merge.c:894 +#: builtin/merge.c:895 #, c-format msgid "'%s' is not a commit" msgstr "'%s' no és una comissió" -#: builtin/merge.c:935 +#: builtin/merge.c:936 msgid "No current branch." msgstr "Cap branca actual." -#: builtin/merge.c:937 +#: builtin/merge.c:938 msgid "No remote for the current branch." msgstr "No hi ha cap remot per a la branca actual." -#: builtin/merge.c:939 +#: builtin/merge.c:940 msgid "No default upstream defined for the current branch." msgstr "No hi ha cap font per defecte definida per a la branca actual." -#: builtin/merge.c:944 +#: builtin/merge.c:945 #, c-format msgid "No remote-tracking branch for %s from %s" msgstr "No hi ha cap branca amb seguiment remot per a %s de %s" -#: builtin/merge.c:1079 +#: builtin/merge.c:1080 #, c-format msgid "could not close '%s'" msgstr "no s'ha pogut tancar '%s'" -#: builtin/merge.c:1206 +#: builtin/merge.c:1207 msgid "There is no merge to abort (MERGE_HEAD missing)." msgstr "No hi ha fusió a avortar (manca 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." @@ -7787,7 +8053,7 @@ msgstr "" "No heu conclòs la vostra fusió (MERGE_HEAD existeix).\n" "Si us plau, cometeu els vostres canvis abans de fusionar." -#: 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." @@ -7795,103 +8061,103 @@ msgstr "" "No heu conclòs el vostre recull de cireres (CHERRY_PICK_HEAD existeix).\n" "Si us plau, cometeu els vostres canvis abans de fusionar." -#: builtin/merge.c:1232 +#: builtin/merge.c:1233 msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)." msgstr "" "No heu conclòs el vostre recull de cireres (CHERRY_PICK_HEAD existeix)." -#: builtin/merge.c:1241 +#: builtin/merge.c:1242 msgid "You cannot combine --squash with --no-ff." msgstr "No podeu combinar --squash amb --no-ff." -#: builtin/merge.c:1249 +#: builtin/merge.c:1250 msgid "No commit specified and merge.defaultToUpstream not set." msgstr "" "No hi ha una comissió especificada i merge.defaultToUpstream no està " "establert." -#: builtin/merge.c:1266 +#: builtin/merge.c:1267 msgid "Squash commit into empty head not supported yet" msgstr "Aixafar una comissió a un cap buit encara no es permet" -#: builtin/merge.c:1268 +#: builtin/merge.c:1269 msgid "Non-fast-forward commit does not make sense into an empty head" msgstr "Una comissió no d'avanç rà pid no té sentit a un cap buit" -#: builtin/merge.c:1274 +#: builtin/merge.c:1275 #, c-format msgid "%s - not something we can merge" msgstr "%s - no és una cosa que puguem fusionar" -#: builtin/merge.c:1276 +#: builtin/merge.c:1277 msgid "Can merge only exactly one commit into empty head" msgstr "Es pot fusionar no més d'exactament una comissió a un cap buit" -#: builtin/merge.c:1331 +#: builtin/merge.c:1332 #, c-format msgid "Commit %s has an untrusted GPG signature, allegedly by %s." msgstr "La comissió %s té una firma GPG no fiable, suposadament de %s." -#: builtin/merge.c:1334 +#: builtin/merge.c:1335 #, c-format msgid "Commit %s has a bad GPG signature allegedly by %s." msgstr "La comissió %s té una firma GPG dolenta suposadament de %s." -#: builtin/merge.c:1337 +#: builtin/merge.c:1338 #, c-format msgid "Commit %s does not have a GPG signature." msgstr "La comissió %s no té firma GPG." -#: builtin/merge.c:1340 +#: builtin/merge.c:1341 #, c-format msgid "Commit %s has a good GPG signature by %s\n" msgstr "La comissió %s té una firma GPG bona de %s\n" -#: builtin/merge.c:1423 +#: builtin/merge.c:1424 #, c-format msgid "Updating %s..%s\n" msgstr "Actualitzant %s..%s\n" -#: builtin/merge.c:1460 +#: builtin/merge.c:1461 #, c-format msgid "Trying really trivial in-index merge...\n" msgstr "Intentant una fusió molt trivial en l'Ãndex...\n" -#: builtin/merge.c:1467 +#: builtin/merge.c:1468 #, c-format msgid "Nope.\n" msgstr "No.\n" -#: builtin/merge.c:1499 +#: builtin/merge.c:1500 msgid "Not possible to fast-forward, aborting." msgstr "No és possible avançar rà pidament, avortant." -#: 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 "Rebobinant l'arbre a la pristina...\n" -#: builtin/merge.c:1526 +#: builtin/merge.c:1527 #, c-format msgid "Trying merge strategy %s...\n" msgstr "Intentant l'estratègia de fusió %s...\n" -#: builtin/merge.c:1592 +#: builtin/merge.c:1593 #, c-format msgid "No merge strategy handled the merge.\n" msgstr "Cap estratègia de fusió ha gestionat la fusió.\n" -#: builtin/merge.c:1594 +#: builtin/merge.c:1595 #, c-format msgid "Merge with strategy %s failed.\n" msgstr "L'estratègia de fusió %s ha fallat.\n" -#: builtin/merge.c:1603 +#: builtin/merge.c:1604 #, c-format msgid "Using the %s to prepare resolving by hand.\n" msgstr "Usant el %s per a preparar la resolució a mà .\n" -#: builtin/merge.c:1615 +#: builtin/merge.c:1616 #, c-format msgid "Automatic merge went well; stopped before committing as requested\n" msgstr "" @@ -7979,19 +8245,19 @@ msgstr "no avisis de conflictes" msgid "set labels for file1/orig-file/file2" msgstr "estableix les etiquetes per a fitxer1/fitxer-original/fitxer2" -#: 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'entrada és acabada amb NUL" -#: builtin/mktree.c:151 builtin/write-tree.c:24 +#: builtin/mktree.c:153 builtin/write-tree.c:24 msgid "allow missing objects" msgstr "permet els objectes absents" -#: builtin/mktree.c:152 +#: builtin/mktree.c:154 msgid "allow creation of more than one tree" msgstr "permet la creació de més d'un arbre" @@ -7999,92 +8265,92 @@ msgstr "permet la creació de més d'un arbre" msgid "git mv [<options>] <source>... <destination>" msgstr "git mv [<opcions>] <font>... <destÃ>" -#: builtin/mv.c:69 +#: builtin/mv.c:70 #, c-format msgid "Directory %s is in index and no submodule?" msgstr "El directori %s és en l'Ãndex i no hi ha cap submòdul?" -#: builtin/mv.c:71 +#: builtin/mv.c:72 msgid "Please stage your changes to .gitmodules or stash them to proceed" msgstr "" "Si us plau, allisteu els vostres canvis a .gitmodules o emmagatzemeu-los per " "a procedir" -#: builtin/mv.c:89 +#: builtin/mv.c:90 #, c-format msgid "%.*s is in index" msgstr "%.*s és en l'Ãndex" -#: builtin/mv.c:111 +#: builtin/mv.c:112 msgid "force move/rename even if target exists" msgstr "força el moviment / canvi de nom encara que el destà existeixi" -#: builtin/mv.c:112 +#: builtin/mv.c:113 msgid "skip move/rename errors" msgstr "omet els errors de moviment / canvi de nom" -#: builtin/mv.c:151 +#: builtin/mv.c:152 #, c-format msgid "destination '%s' is not a directory" msgstr "el destà '%s' no és un directori" -#: builtin/mv.c:162 +#: builtin/mv.c:163 #, c-format msgid "Checking rename of '%s' to '%s'\n" msgstr "Comprovant el canvi de nom de '%s' a '%s'\n" -#: builtin/mv.c:166 +#: builtin/mv.c:167 msgid "bad source" msgstr "font dolenta" -#: builtin/mv.c:169 +#: builtin/mv.c:170 msgid "can not move directory into itself" msgstr "no es pot moure un directori a dins d'ell mateix" -#: builtin/mv.c:172 +#: builtin/mv.c:173 msgid "cannot move directory over file" msgstr "no es pot moure un directori sobre un fitxer" -#: builtin/mv.c:181 +#: builtin/mv.c:182 msgid "source directory is empty" msgstr "el directori font està buit" -#: builtin/mv.c:206 +#: builtin/mv.c:207 msgid "not under version control" msgstr "no està sota control de versions" -#: builtin/mv.c:209 +#: builtin/mv.c:210 msgid "destination exists" msgstr "el destà existeix" -#: builtin/mv.c:217 +#: builtin/mv.c:218 #, c-format msgid "overwriting '%s'" msgstr "sobreescrivint '%s'" -#: builtin/mv.c:220 +#: builtin/mv.c:221 msgid "Cannot overwrite" msgstr "No es pot sobreescriure" -#: builtin/mv.c:223 +#: builtin/mv.c:224 msgid "multiple sources for the same target" msgstr "múltiples fonts per al mateix destÃ" -#: builtin/mv.c:225 +#: builtin/mv.c:226 msgid "destination directory does not exist" msgstr "el directori destà no existeix" -#: builtin/mv.c:232 +#: builtin/mv.c:233 #, c-format msgid "%s, source=%s, destination=%s" msgstr "%s, origen=%s, destÃ=%s" -#: builtin/mv.c:253 +#: builtin/mv.c:254 #, c-format msgid "Renaming %s to %s\n" msgstr "Canviant el nom de %s a %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 "el canvi del nom de '%s' ha fallat" @@ -8287,9 +8553,9 @@ msgid "could not open or read '%s'" msgstr "no s'ha pogut obrir o llegir '%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'ha fallat en resoldre '%s' com a referència và lida." @@ -8304,42 +8570,42 @@ msgstr "S'ha fallat en llegir l'objecte '%s'." msgid "Cannot read note data from non-blob object '%s'." msgstr "No es pot llegir les dades de node de l'objecte no de 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 "massa parà metres" -#: 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 "No s'ha trobat cap nota per a l'objecte %s." -#: builtin/notes.c:393 builtin/notes.c:556 +#: builtin/notes.c:396 builtin/notes.c:559 msgid "note contents as a string" msgstr "anota els continguts com a cadena" -#: builtin/notes.c:396 builtin/notes.c:559 +#: builtin/notes.c:399 builtin/notes.c:562 msgid "note contents in a file" msgstr "anota els continguts en un fitxer" -#: builtin/notes.c:399 builtin/notes.c:562 +#: builtin/notes.c:402 builtin/notes.c:565 msgid "reuse and edit specified note object" msgstr "reusa i edita l'objecte de nota especificat" -#: builtin/notes.c:402 builtin/notes.c:565 +#: builtin/notes.c:405 builtin/notes.c:568 msgid "reuse specified note object" msgstr "reusa l'objecte de nota especificat" -#: builtin/notes.c:405 builtin/notes.c:568 +#: builtin/notes.c:408 builtin/notes.c:571 msgid "allow storing empty note" msgstr "permet l'emmagatzematge d'una nota buida" -#: builtin/notes.c:406 builtin/notes.c:477 +#: builtin/notes.c:409 builtin/notes.c:480 msgid "replace existing notes" msgstr "reemplaça les notes existents" -#: builtin/notes.c:431 +#: builtin/notes.c:434 #, c-format msgid "" "Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite " @@ -8348,30 +8614,30 @@ msgstr "" "No es pot afegir les notes. S'han trobat notes existents de l'objecte %s. " "Useu '-f' per a sobreescriure les notes existents." -#: 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 "Sobreescrivint les notes existents de l'objecte %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 "Eliminant la nota de l'objecte %s\n" -#: builtin/notes.c:478 +#: builtin/notes.c:481 msgid "read objects from stdin" msgstr "llegeix els objectes des d'stdin" -#: builtin/notes.c:480 +#: builtin/notes.c:483 msgid "load rewriting config for <command> (implies --stdin)" msgstr "" "carrega la configuració de reescriptura per a <ordre> (implica --stdin)" -#: builtin/notes.c:498 +#: builtin/notes.c:501 msgid "too few parameters" msgstr "hi ha massa pocs parà metres" -#: builtin/notes.c:519 +#: builtin/notes.c:522 #, c-format msgid "" "Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite " @@ -8380,12 +8646,12 @@ msgstr "" "No es pot copiar les notes. S'han trobat notes existents de l'objecte %s. " "Useu '-f' per a sobreescriure les notes existents." -#: builtin/notes.c:531 +#: builtin/notes.c:534 #, c-format msgid "Missing notes on source object %s. Cannot copy." msgstr "Manquen notes a l'objecte font %s. No es pot copiar." -#: 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" @@ -8394,15 +8660,15 @@ msgstr "" "S'han desaprovat les opcions -m/-F/-c/-C en favor de la subordre 'edit'.\n" "Si us plau, useu 'git notes add -f -m/-F/-c/-C' en lloc d'això.\n" -#: builtin/notes.c:764 +#: builtin/notes.c:767 msgid "General options" msgstr "Opcions generals" -#: builtin/notes.c:766 +#: builtin/notes.c:769 msgid "Merge options" msgstr "Opcions de fusió" -#: builtin/notes.c:768 +#: builtin/notes.c:771 msgid "" "resolve notes conflicts using the given strategy (manual/ours/theirs/union/" "cat_sort_uniq)" @@ -8410,49 +8676,49 @@ msgstr "" "resol els conflictes de nota usant l'estratègia donada (manual/ours/theirs/" "union/cat_sort_uniq)" -#: builtin/notes.c:770 +#: builtin/notes.c:773 msgid "Committing unmerged notes" msgstr "Cometent les notes sense fusionar" -#: builtin/notes.c:772 +#: builtin/notes.c:775 msgid "finalize notes merge by committing unmerged notes" msgstr "finalitza la fusió de notes cometent les notes sense fusionar" -#: builtin/notes.c:774 +#: builtin/notes.c:777 msgid "Aborting notes merge resolution" msgstr "Avortant la resolució de fusió de notes" -#: builtin/notes.c:776 +#: builtin/notes.c:779 msgid "abort notes merge" msgstr "avorta la fusió 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 "Una fusió de notes a %s ja està en curs a %s" -#: builtin/notes.c:880 +#: builtin/notes.c:883 #, c-format msgid "Object %s has no note\n" msgstr "L'objecte %s no té cap nota\n" -#: builtin/notes.c:892 +#: builtin/notes.c:895 msgid "attempt to remove non-existent note is not an error" msgstr "l'intent d'eliminar una nota no existent no és un error" -#: builtin/notes.c:895 +#: builtin/notes.c:898 msgid "read object names from the standard input" msgstr "llegeix els noms d'objecte des de l'entrada està ndard" -#: builtin/notes.c:976 +#: builtin/notes.c:979 msgid "notes-ref" msgstr "referència de notes" -#: builtin/notes.c:977 +#: builtin/notes.c:980 msgid "use notes from <notes-ref>" msgstr "usa les notes de <referència-de-notes>" -#: builtin/notes.c:1012 builtin/remote.c:1647 +#: builtin/notes.c:1015 builtin/remote.c:1626 #, c-format msgid "Unknown subcommand: %s" msgstr "Subordre desconeguda: %s" @@ -8476,176 +8742,176 @@ msgstr "" msgid "deflate error (%d)" msgstr "error de deflació (%d)" -#: builtin/pack-objects.c:771 +#: builtin/pack-objects.c:772 msgid "Writing objects" msgstr "Escrivint els objectes" -#: builtin/pack-objects.c:1011 +#: builtin/pack-objects.c:1012 msgid "disabling bitmap writing, as some objects are not being packed" msgstr "" "inhabilitant l'escriptura de mapes de bits, perquè alguns objectes no " "s'estan empaquetant" -#: builtin/pack-objects.c:2171 +#: builtin/pack-objects.c:2172 msgid "Compressing objects" msgstr "Comprimint objectes" -#: builtin/pack-objects.c:2568 +#: builtin/pack-objects.c:2558 #, c-format msgid "unsupported index version %s" msgstr "versió d'Ãndex no compatible %s" -#: builtin/pack-objects.c:2572 +#: builtin/pack-objects.c:2562 #, c-format msgid "bad index version '%s'" msgstr "versió d'Ãndex dolenta '%s'" -#: builtin/pack-objects.c:2602 +#: builtin/pack-objects.c:2592 msgid "do not show progress meter" msgstr "no mostris l'indicador de progrés" -#: builtin/pack-objects.c:2604 +#: builtin/pack-objects.c:2594 msgid "show progress meter" msgstr "mostra l'indicador de progrés" -#: builtin/pack-objects.c:2606 +#: builtin/pack-objects.c:2596 msgid "show progress meter during object writing phase" msgstr "mostra l'indicador de progrés durant la fase d'escriptura d'objectes" -#: builtin/pack-objects.c:2609 +#: builtin/pack-objects.c:2599 msgid "similar to --all-progress when progress meter is shown" msgstr "similar a --all-progress quan l'indicador de progrés es mostra" -#: builtin/pack-objects.c:2610 +#: builtin/pack-objects.c:2600 msgid "version[,offset]" msgstr "versió[,desplaçament]" -#: builtin/pack-objects.c:2611 +#: builtin/pack-objects.c:2601 msgid "write the pack index file in the specified idx format version" msgstr "" "escriu el fitxer d'Ãndex de paquet en la versió de format d'Ãndex " "especificada" -#: builtin/pack-objects.c:2614 +#: builtin/pack-objects.c:2604 msgid "maximum size of each output pack file" msgstr "mida mà xima de cada fitxer de paquet de sortida" -#: builtin/pack-objects.c:2616 +#: builtin/pack-objects.c:2606 msgid "ignore borrowed objects from alternate object store" msgstr "" "ignora els objectes prestats d'un emmagatzemament d'objectes alternatiu" -#: builtin/pack-objects.c:2618 +#: builtin/pack-objects.c:2608 msgid "ignore packed objects" msgstr "ignora els objectes empaquetats" -#: builtin/pack-objects.c:2620 +#: builtin/pack-objects.c:2610 msgid "limit pack window by objects" msgstr "limita la finestra d'empaquetament per objectes" -#: builtin/pack-objects.c:2622 +#: builtin/pack-objects.c:2612 msgid "limit pack window by memory in addition to object limit" msgstr "" "limita la finestra d'empaquetament per memòria a més del lÃmit d'objectes" -#: builtin/pack-objects.c:2624 +#: builtin/pack-objects.c:2614 msgid "maximum length of delta chain allowed in the resulting pack" msgstr "longitud mà xima de la cadena de deltes permesa en el paquet resultant" -#: builtin/pack-objects.c:2626 +#: builtin/pack-objects.c:2616 msgid "reuse existing deltas" msgstr "reusa les deltes existents" -#: builtin/pack-objects.c:2628 +#: builtin/pack-objects.c:2618 msgid "reuse existing objects" msgstr "reusa els objectes existents" -#: builtin/pack-objects.c:2630 +#: builtin/pack-objects.c:2620 msgid "use OFS_DELTA objects" msgstr "usa objectes OFS_DELTA" -#: builtin/pack-objects.c:2632 +#: builtin/pack-objects.c:2622 msgid "use threads when searching for best delta matches" msgstr "usa fils en cercar les millores coincidències de delta" -#: builtin/pack-objects.c:2634 +#: builtin/pack-objects.c:2624 msgid "do not create an empty pack output" msgstr "no creïs una emissió de paquet buida" -#: builtin/pack-objects.c:2636 +#: builtin/pack-objects.c:2626 msgid "read revision arguments from standard input" msgstr "llegeix els parà metres de revisió des de l'entrada està ndard" -#: builtin/pack-objects.c:2638 +#: builtin/pack-objects.c:2628 msgid "limit the objects to those that are not yet packed" msgstr "limita els objectes als quals encara no s'hagin empaquetat" -#: builtin/pack-objects.c:2641 +#: builtin/pack-objects.c:2631 msgid "include objects reachable from any reference" msgstr "inclou els objectes abastables de qualsevulla referència" -#: builtin/pack-objects.c:2644 +#: builtin/pack-objects.c:2634 msgid "include objects referred by reflog entries" msgstr "" "inclou els objectes als quals facin referència les entrades del registre de " "referències" -#: builtin/pack-objects.c:2647 +#: builtin/pack-objects.c:2637 msgid "include objects referred to by the index" msgstr "inclou els objectes als quals faci referència l'Ãndex" -#: builtin/pack-objects.c:2650 +#: builtin/pack-objects.c:2640 msgid "output pack to stdout" msgstr "emet el paquet a stdout" -#: builtin/pack-objects.c:2652 +#: builtin/pack-objects.c:2642 msgid "include tag objects that refer to objects to be packed" msgstr "" "inclou els objectes d'etiqueta que facin referència als objectes a empaquetar" -#: builtin/pack-objects.c:2654 +#: builtin/pack-objects.c:2644 msgid "keep unreachable objects" msgstr "retén els objectes inabastables" -#: builtin/pack-objects.c:2655 parse-options.h:142 +#: builtin/pack-objects.c:2645 parse-options.h:142 msgid "time" msgstr "hora" -#: builtin/pack-objects.c:2656 +#: builtin/pack-objects.c:2646 msgid "unpack unreachable objects newer than <time>" msgstr "desempaqueta els objectes inabastables més nous que <hora>" -#: builtin/pack-objects.c:2659 +#: builtin/pack-objects.c:2649 msgid "create thin packs" msgstr "crea paquets prims" -#: builtin/pack-objects.c:2661 +#: builtin/pack-objects.c:2651 msgid "create packs suitable for shallow fetches" msgstr "crea paquets adequats per a les obtencions superficials" -#: builtin/pack-objects.c:2663 +#: builtin/pack-objects.c:2653 msgid "ignore packs that have companion .keep file" msgstr "ignora els paquets que tinguin un fitxer .keep corresponent" -#: builtin/pack-objects.c:2665 +#: builtin/pack-objects.c:2655 msgid "pack compression level" msgstr "nivell de compressió de paquet" -#: builtin/pack-objects.c:2667 +#: builtin/pack-objects.c:2657 msgid "do not hide commits by grafts" msgstr "no amaguis les comissions per empelt" -#: builtin/pack-objects.c:2669 +#: builtin/pack-objects.c:2659 msgid "use a bitmap index if available to speed up counting objects" msgstr "" "usa un Ãndex de mapa de bits, si està disponible, per a accelerar el " "recompte d'objectes" -#: builtin/pack-objects.c:2671 +#: builtin/pack-objects.c:2661 msgid "write a bitmap index together with the pack index" msgstr "escriu un Ãndex de mapa de bits junt amb l'Ãndex de paquet" -#: builtin/pack-objects.c:2762 +#: builtin/pack-objects.c:2752 msgid "Counting objects" msgstr "Comptant els objectes" @@ -8689,49 +8955,53 @@ msgstr "fes caducar els objectes més vells que <hora>" msgid "cannot prune in a precious-objects repo" msgstr "no es pot podar en un dipòsit d'objectes precioses" -#: builtin/pull.c:69 +#: builtin/pull.c:72 msgid "git pull [<options>] [<repository> [<refspec>...]]" msgstr "git pull [opcions] [<dipòsit> [<especificació-de-referència>...]]" -#: builtin/pull.c:113 +#: builtin/pull.c:117 msgid "Options related to merging" msgstr "Opcions relacionades amb fusionar" -#: builtin/pull.c:116 +#: builtin/pull.c:120 msgid "incorporate changes by rebasing rather than merging" msgstr "incorpora els canvis per rebasar en lloc de fusionar" -#: builtin/pull.c:140 builtin/revert.c:105 +#: builtin/pull.c:144 builtin/revert.c:105 msgid "allow fast-forward" msgstr "permet l'avanç rà pid" -#: builtin/pull.c:146 +#: builtin/pull.c:150 msgid "verify that the named commit has a valid GPG signature" msgstr "verifica que la comissió anomenada tingui una firma GPG và lida" -#: builtin/pull.c:160 +#: builtin/pull.c:164 msgid "Options related to fetching" msgstr "Opcions relacionades amb obtenir" -#: builtin/pull.c:268 +#: builtin/pull.c:186 +msgid "number of submodules pulled in parallel" +msgstr "nombre de submòduls baixats en paral·lel" + +#: builtin/pull.c:275 #, c-format msgid "Invalid value for pull.ff: %s" msgstr "Valor no và lid per a pull.ff: %s" -#: builtin/pull.c:352 +#: builtin/pull.c:359 msgid "Cannot pull with rebase: You have unstaged changes." msgstr "No es pot baixar amb rebasament: Teniu canvis no allistats." -#: builtin/pull.c:358 +#: builtin/pull.c:365 msgid "Additionally, your index contains uncommitted changes." msgstr "Addicionalment, el vostre Ãndex conté canvis sense cometre." -#: builtin/pull.c:360 +#: builtin/pull.c:367 msgid "Cannot pull with rebase: Your index contains uncommitted changes." msgstr "" "No es pot baixar amb rebasament: El vostre Ãndex conté canvis sense cometre." -#: builtin/pull.c:436 +#: builtin/pull.c:443 msgid "" "There is no candidate for rebasing against among the refs that you just " "fetched." @@ -8739,13 +9009,13 @@ msgstr "" "No hi ha cap candidat sobre el qual rebasar entre les referències que acabeu " "d'obtenir." -#: builtin/pull.c:438 +#: builtin/pull.c:445 msgid "" "There are no candidates for merging among the refs that you just fetched." msgstr "" "No hi ha candidats per a fusionar entre les referències que acabeu d'obtenir." -#: 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." @@ -8753,7 +9023,7 @@ msgstr "" "Generalment això vol dir que heu proveït una especificació de\n" "referència de comodà que no tenia cap coincidència en el costat remot." -#: builtin/pull.c:442 +#: builtin/pull.c:449 #, c-format msgid "" "You asked to pull from the remote '%s', but did not specify\n" @@ -8764,27 +9034,27 @@ msgstr "" "Perquè aquest no és el remot configurat per defecte per a la vostra\n" "branca actual, heu d'especificar una branca en la lÃnia d'ordres." -#: builtin/pull.c:447 +#: builtin/pull.c:454 msgid "You are not currently on a branch." msgstr "Actualment no sou en cap branca." -#: 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 "Si us plau, especifiqueu sobre què branca voleu rebasar." -#: 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 "Si us plau, especifiqueu amb què branca voleu fusionar." -#: builtin/pull.c:452 builtin/pull.c:467 +#: builtin/pull.c:459 builtin/pull.c:474 msgid "See git-pull(1) for details." msgstr "Vegeu git-pull(1) per detalls." -#: builtin/pull.c:462 +#: builtin/pull.c:469 msgid "There is no tracking information for the current branch." msgstr "No hi ha cap informació de seguiment per a la branca actual." -#: 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" @@ -8796,7 +9066,7 @@ msgstr "" "\n" " git branch --set-upstream-to=%s/<branca> %s\n" -#: builtin/pull.c:476 +#: builtin/pull.c:483 #, c-format msgid "" "Your configuration specifies to merge with the ref '%s'\n" @@ -8805,11 +9075,11 @@ msgstr "" "La vostra configuració especifica fusionar amb la referència '%s'\n" "del remot, però no s'ha obtingut tal referència." -#: builtin/pull.c:830 +#: builtin/pull.c:841 msgid "Updating an unborn branch with changes added to the index." msgstr "Actualitzant una branca no nascuda amb canvis afegits a l'Ãndex." -#: builtin/pull.c:859 +#: builtin/pull.c:870 #, c-format msgid "" "fetch updated the current branch head.\n" @@ -8820,7 +9090,7 @@ msgstr "" "avançant rà pidament el vostre arbre de treball des de\n" "la comissió %s." -#: builtin/pull.c:864 +#: builtin/pull.c:875 #, c-format msgid "" "Cannot fast-forward your working tree.\n" @@ -8838,11 +9108,11 @@ msgstr "" "$ git reset --hard\n" "per a recuperar." -#: builtin/pull.c:879 +#: builtin/pull.c:890 msgid "Cannot merge multiple branches into empty head." msgstr "No es pot fusionar múltiples branques a un cap buit." -#: builtin/pull.c:883 +#: builtin/pull.c:894 msgid "Cannot rebase onto multiple branches." msgstr "No es pot rebasar sobre múltiples branques." @@ -8850,15 +9120,15 @@ msgstr "No es pot rebasar sobre múltiples branques." msgid "git push [<options>] [<repository> [<refspec>...]]" msgstr "git push [<opcions>] [<dipòsit> [<especificació-de-referència>...]]" -#: builtin/push.c:88 +#: builtin/push.c:89 msgid "tag shorthand without <tag>" msgstr "abreviatura d'etiqueta sense <tag>" -#: builtin/push.c:98 +#: builtin/push.c:99 msgid "--delete only accepts plain target ref names" msgstr "--delete només accepta noms de referència de destà senzills" -#: builtin/push.c:142 +#: builtin/push.c:143 msgid "" "\n" "To choose either option permanently, see push.default in 'git help config'." @@ -8867,7 +9137,7 @@ msgstr "" "Per a triar qualsevulla opció permanentment, vegeu push.default a '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" @@ -8892,7 +9162,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" @@ -8907,7 +9177,7 @@ msgstr "" "\n" " git push %s HEAD:<nom-de-branca-remota>\n" -#: builtin/push.c:174 +#: builtin/push.c:175 #, c-format msgid "" "The current branch %s has no upstream branch.\n" @@ -8920,12 +9190,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 "La branca actual %s té múltiples branques fonts, refusant pujar." -#: builtin/push.c:185 +#: builtin/push.c:186 #, c-format msgid "" "You are pushing to remote '%s', which is not the upstream of\n" @@ -8936,61 +9206,14 @@ msgstr "" "branca actual '%s', sense dir-me què pujar per a actualitzar\n" "quina branca remota." -#: 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 no està establert; el seu valor implÃcit s'ha\n" -"canviat en el Git 2.0 de 'matching' a 'simple'. Per a suprimir\n" -"aquest missatge i mantenir el comportament tradicional,\n" -"useu:\n" -"\n" -" git config --global push.default matching\n" -"\n" -"Per a suprimir aquest missatge i adoptar el comportament nou ara, useu:\n" -"\n" -" git config --global push.default simple\n" -"\n" -"Quan push.default és 'matching', git pujarà les branques locals a les\n" -"branques remotes que ja existeixen amb el mateix nom.\n" -"\n" -"Des del Git 2.0, el Git per defecte té el comportament més\n" -"conservatiu 'simple', que només puja la branca actual a la branca\n" -"corresponent que 'git pull' usa per a actualitzar la branca actual.\n" -"\n" -"Vegeu 'git help config' i cerqueu 'push.default' per a més informació.\n" -"(s'ha introduït el mode 'simple' en el Git 1.7.11. Useu el mode similar\n" -"'current' en lloc de 'simple' si a vegades useu versions més antigues\n" -"del Git)" - -#: builtin/push.c:275 +#: builtin/push.c:242 msgid "" "You didn't specify any refspecs to push, and push.default is \"nothing\"." msgstr "" "No heu especificat cap especificació de referència a pujar, i push.default " "és \"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" @@ -9002,7 +9225,7 @@ msgstr "" "els canvis remots (per exemple, 'git pull ...') abans de pujar de nou.\n" "Vegeu la 'Nota sobre avanços rà pids' a 'git push --help' per detalls." -#: 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" @@ -9015,7 +9238,7 @@ msgstr "" "abans de pujar de nou.\n" "Vegeu la 'Nota sobre avanços rà pids' a 'git push --help' per detalls." -#: 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" @@ -9030,12 +9253,12 @@ msgstr "" "pujar de nou.\n" "Vegeu la 'Nota sobre avanços rà pids' a 'git push --help' per detalls." -#: builtin/push.c:301 +#: builtin/push.c:268 msgid "Updates were rejected because the tag already exists in the remote." msgstr "" "S'han rebutjat les actualitzacions perquè l'etiqueta ja existeix en el remot." -#: 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" @@ -9046,22 +9269,22 @@ msgstr "" "fer que assenyali un objecte no de comissió, sense usar l'opció\n" "'--force'.\n" -#: builtin/push.c:363 +#: builtin/push.c:331 #, c-format msgid "Pushing to %s\n" msgstr "Pujant a %s\n" -#: builtin/push.c:367 +#: builtin/push.c:335 #, c-format msgid "failed to push some refs to '%s'" msgstr "s'ha fallat en pujar algunes referències a '%s'" -#: builtin/push.c:397 +#: builtin/push.c:365 #, c-format msgid "bad repository '%s'" msgstr "dipòsit dolent '%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 " @@ -9083,104 +9306,100 @@ msgstr "" "\n" " git push <nom>\n" -#: builtin/push.c:413 +#: builtin/push.c:381 msgid "--all and --tags are incompatible" msgstr "--all i --tags són incompatibles" -#: builtin/push.c:414 +#: builtin/push.c:382 msgid "--all can't be combined with refspecs" msgstr "--all no es pot combinar amb especificacions de referència" -#: builtin/push.c:419 +#: builtin/push.c:387 msgid "--mirror and --tags are incompatible" msgstr "--mirror i --tags són incompatibles" -#: builtin/push.c:420 +#: builtin/push.c:388 msgid "--mirror can't be combined with refspecs" msgstr "--mirror no es pot combinar amb especificacions de referència" -#: builtin/push.c:425 +#: builtin/push.c:393 msgid "--all and --mirror are incompatible" msgstr "--all i --mirror són incompatibles" -#: builtin/push.c:537 +#: builtin/push.c:505 msgid "repository" msgstr "dipòsit" -#: builtin/push.c:538 builtin/send-pack.c:161 +#: builtin/push.c:506 builtin/send-pack.c:161 msgid "push all refs" msgstr "puja totes les referències" -#: builtin/push.c:539 builtin/send-pack.c:163 +#: builtin/push.c:507 builtin/send-pack.c:163 msgid "mirror all refs" msgstr "reflecteix totes les referències" -#: builtin/push.c:541 +#: builtin/push.c:509 msgid "delete refs" msgstr "suprimeix les referències" -#: builtin/push.c:542 +#: builtin/push.c:510 msgid "push tags (can't be used with --all or --mirror)" msgstr "puja les etiquetes (no es pot usar amb --all o --mirror)" -#: builtin/push.c:545 builtin/send-pack.c:164 +#: builtin/push.c:513 builtin/send-pack.c:164 msgid "force updates" msgstr "força les actualitzacions" -#: builtin/push.c:547 builtin/send-pack.c:175 +#: builtin/push.c:515 builtin/send-pack.c:175 msgid "refname>:<expect" msgstr "nom-de-referència>:<esperat" -#: 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 "requereix que el valor antic de la referència sigui d'aquest valor" -#: builtin/push.c:550 -msgid "check|on-demand|no" -msgstr "comprova|sota demanda|no" - -#: builtin/push.c:551 +#: builtin/push.c:519 msgid "control recursive pushing of submodules" msgstr "controla la pujada recursiva dels submòduls" -#: builtin/push.c:553 builtin/send-pack.c:169 +#: builtin/push.c:521 builtin/send-pack.c:169 msgid "use thin pack" msgstr "usa el paquet prim" -#: 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 "programa que rep els paquets" -#: builtin/push.c:556 +#: builtin/push.c:524 msgid "set upstream for git pull/status" msgstr "estableix la font per a git pull/status" -#: builtin/push.c:559 +#: builtin/push.c:527 msgid "prune locally removed refs" msgstr "poda les referències eliminades localment" -#: builtin/push.c:561 +#: builtin/push.c:529 msgid "bypass pre-push hook" msgstr "evita el ganxo de prepujada" -#: builtin/push.c:562 +#: builtin/push.c:530 msgid "push missing but relevant tags" msgstr "puja les etiquetes absents però rellevants" -#: builtin/push.c:565 builtin/send-pack.c:166 +#: builtin/push.c:533 builtin/send-pack.c:166 msgid "GPG sign the push" msgstr "firma la pujada amb 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 "demana una transacció atòmica al costat remot" -#: builtin/push.c:577 +#: builtin/push.c:549 msgid "--delete is incompatible with --all, --mirror and --tags" msgstr "--delete és incompatible amb --all, --mirror i --tags" -#: builtin/push.c:579 +#: builtin/push.c:551 msgid "--delete doesn't make sense without any refs" msgstr "--delete no té sentit sense referències" @@ -9258,12 +9477,12 @@ msgstr "salta l'aplicació del filtre d'agafament dispers" msgid "debug unpack-trees" msgstr "depura unpack-trees" -#: builtin/reflog.c:428 +#: builtin/reflog.c:423 #, c-format msgid "'%s' for '%s' is not a valid timestamp" msgstr "'%s' per a '%s' no és una marca de temps và lida" -#: 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' no és una marca de temps và lida" @@ -9406,56 +9625,46 @@ msgid "specifying branches to track makes sense only with fetch mirrors" msgstr "" "especificar les branques a seguir té sentit només amb miralls d'obtenció" -#: builtin/remote.c:193 builtin/remote.c:643 +#: builtin/remote.c:190 builtin/remote.c:633 #, c-format msgid "remote %s already exists." msgstr "el remot %s ja existeix." -#: 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' no és un nom de remot và lid" -#: builtin/remote.c:241 +#: builtin/remote.c:234 #, c-format msgid "Could not setup master '%s'" msgstr "No s'ha pogut configurar la mestra '%s'" -#: builtin/remote.c:341 +#: builtin/remote.c:336 #, c-format msgid "Could not get fetch map for refspec %s" msgstr "" "No s'ha pogut obtenir el mapa d'obtenció de l'especificació de referència %s" -#: builtin/remote.c:442 builtin/remote.c:450 +#: builtin/remote.c:437 builtin/remote.c:445 msgid "(matching)" msgstr "(coincident)" -#: builtin/remote.c:454 +#: builtin/remote.c:449 msgid "(delete)" msgstr "(suprimir)" -#: builtin/remote.c:594 builtin/remote.c:600 builtin/remote.c:606 -#, c-format -msgid "Could not append '%s' to '%s'" -msgstr "No s'ha pogut annexar '%s' a '%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 "No hi ha tal remot: %s" -#: builtin/remote.c:653 +#: builtin/remote.c:643 #, c-format msgid "Could not rename config section '%s' to '%s'" msgstr "No s'ha pogut canviar el nom de la secció de configuració '%s' a '%s'" -#: builtin/remote.c:659 builtin/remote.c:827 -#, c-format -msgid "Could not remove config section '%s'" -msgstr "No s'ha pogut eliminar la secció de configuració '%s'" - -#: builtin/remote.c:674 +#: builtin/remote.c:663 #, c-format msgid "" "Not updating non-default fetch refspec\n" @@ -9466,27 +9675,17 @@ msgstr "" "\t%s\n" "\tSi us plau, actualitzeu la configuració manualment si és necessari." -#: builtin/remote.c:680 -#, c-format -msgid "Could not append '%s'" -msgstr "No s'ha pogut annexar '%s'" - -#: builtin/remote.c:691 -#, c-format -msgid "Could not set '%s'" -msgstr "No s'ha pogut establir '%s'" - -#: builtin/remote.c:713 +#: builtin/remote.c:699 #, c-format msgid "deleting '%s' failed" msgstr "la supressió de '%s' ha fallat" -#: builtin/remote.c:747 +#: builtin/remote.c:733 #, c-format msgid "creating '%s' failed" msgstr "la creació de '%s' ha fallat" -#: 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:" @@ -9501,278 +9700,283 @@ msgstr[1] "" "eliminat;\n" "per a suprimir-les, useu:" -#: builtin/remote.c:928 +#: builtin/remote.c:810 +#, c-format +msgid "Could not remove config section '%s'" +msgstr "No s'ha pogut eliminar la secció de configuració '%s'" + +#: builtin/remote.c:911 #, c-format msgid " new (next fetch will store in remotes/%s)" msgstr " nou (la pròxima obtenció emmagatzemarà a remotes/%s)" -#: builtin/remote.c:931 +#: builtin/remote.c:914 msgid " tracked" msgstr " seguit" -#: builtin/remote.c:933 +#: builtin/remote.c:916 msgid " stale (use 'git remote prune' to remove)" msgstr " estancat (useu 'git remote prune' per a eliminar)" -#: 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 no và lid; no es pot rebasar sobre > 1 branca" -#: builtin/remote.c:983 +#: builtin/remote.c:967 #, c-format -msgid "rebases onto remote %s" -msgstr "es rebasa sobre el remot %s" +msgid "rebases interactively onto remote %s" +msgstr "es rebasa interactivament sobre el remot %s" -#: builtin/remote.c:986 +#: builtin/remote.c:971 #, c-format msgid " merges with remote %s" msgstr "es fusiona amb el remot %s" -#: builtin/remote.c:987 +#: builtin/remote.c:972 msgid " and with remote" msgstr " i amb el remot" -#: builtin/remote.c:989 +#: builtin/remote.c:974 #, c-format msgid "merges with remote %s" msgstr "es fusiona amb el remot %s" -#: builtin/remote.c:990 +#: builtin/remote.c:975 msgid " and with remote" msgstr " i amb el remot" -#: builtin/remote.c:1036 +#: builtin/remote.c:1021 msgid "create" msgstr "crea" -#: builtin/remote.c:1039 +#: builtin/remote.c:1024 msgid "delete" msgstr "suprimeix" -#: builtin/remote.c:1043 +#: builtin/remote.c:1028 msgid "up to date" msgstr "al dia" -#: builtin/remote.c:1046 +#: builtin/remote.c:1031 msgid "fast-forwardable" msgstr "avanç rà pid possible" -#: builtin/remote.c:1049 +#: builtin/remote.c:1034 msgid "local out of date" msgstr "local no actualitzat" -#: builtin/remote.c:1056 +#: builtin/remote.c:1041 #, c-format msgid " %-*s forces to %-*s (%s)" msgstr " %-*s força a %-*s (%s)" -#: builtin/remote.c:1059 +#: builtin/remote.c:1044 #, c-format msgid " %-*s pushes to %-*s (%s)" msgstr " %-*s puja a %-*s (%s)" -#: builtin/remote.c:1063 +#: builtin/remote.c:1048 #, c-format msgid " %-*s forces to %s" msgstr " %-*s força a %s" -#: builtin/remote.c:1066 +#: builtin/remote.c:1051 #, c-format msgid " %-*s pushes to %s" msgstr " %-*s puja a %s" -#: builtin/remote.c:1134 +#: builtin/remote.c:1119 msgid "do not query remotes" msgstr "no consultis els remots" -#: builtin/remote.c:1161 +#: builtin/remote.c:1146 #, c-format msgid "* remote %s" msgstr "* remot %s" -#: builtin/remote.c:1162 +#: builtin/remote.c:1147 #, c-format msgid " Fetch URL: %s" msgstr " URL d'obtenció: %s" -#: builtin/remote.c:1163 builtin/remote.c:1314 +#: builtin/remote.c:1148 builtin/remote.c:1299 msgid "(no URL)" msgstr "(sense 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 de pujada: %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 " Branca de 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 "" " Branca de HEAD (el HEAD remot és ambigu, pot ser un dels següents):\n" -#: builtin/remote.c:1194 +#: builtin/remote.c:1179 #, c-format msgid " Remote branch:%s" msgid_plural " Remote branches:%s" msgstr[0] " Branca remota:%s" msgstr[1] " Branques remotes:%s" -#: builtin/remote.c:1197 builtin/remote.c:1224 +#: builtin/remote.c:1182 builtin/remote.c:1209 msgid " (status not queried)" msgstr " (estat no consultat)" -#: 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] " Branca local configurada per a 'git pull':" msgstr[1] " Branques locals configurades per a 'git pull':" -#: builtin/remote.c:1214 +#: builtin/remote.c:1199 msgid " Local refs will be mirrored by 'git push'" msgstr " 'git push' reflectirà les referències locals" -#: 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] " Referència local configurada per a 'git push'%s:" msgstr[1] " Referències locals configurades per a 'git push'%s:" -#: builtin/remote.c:1242 +#: builtin/remote.c:1227 msgid "set refs/remotes/<name>/HEAD according to remote" msgstr "estableix refs/remotes/<name>/HEAD segons el remot" -#: builtin/remote.c:1244 +#: builtin/remote.c:1229 msgid "delete refs/remotes/<name>/HEAD" msgstr "suprimeix refs/remotes/<name>/HEAD" -#: builtin/remote.c:1259 +#: builtin/remote.c:1244 msgid "Cannot determine remote HEAD" msgstr "No es pot determinar el HEAD remot" -#: builtin/remote.c:1261 +#: builtin/remote.c:1246 msgid "Multiple remote HEAD branches. Please choose one explicitly with:" msgstr "" "Múltiples branques de HEAD remotes. Si us plau, trieu-ne una explÃcitament " "amb:" -#: builtin/remote.c:1271 +#: builtin/remote.c:1256 #, c-format msgid "Could not delete %s" msgstr "No s'ha pogut suprimir %s" -#: builtin/remote.c:1279 +#: builtin/remote.c:1264 #, c-format msgid "Not a valid ref: %s" msgstr "No és una referència và lida: %s" -#: builtin/remote.c:1281 +#: builtin/remote.c:1266 #, c-format msgid "Could not setup %s" msgstr "No s'ha pogut configurar %s" -#: builtin/remote.c:1299 +#: builtin/remote.c:1284 #, c-format msgid " %s will become dangling!" msgstr " %s es tornarà penjant!" -#: builtin/remote.c:1300 +#: builtin/remote.c:1285 #, c-format msgid " %s has become dangling!" msgstr " %s s'ha tornat penjant!" -#: builtin/remote.c:1310 +#: builtin/remote.c:1295 #, c-format msgid "Pruning %s" msgstr "Podant %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 " * [podaria] %s" -#: builtin/remote.c:1330 +#: builtin/remote.c:1315 #, c-format msgid " * [pruned] %s" msgstr " * [podat] %s" -#: builtin/remote.c:1375 +#: builtin/remote.c:1360 msgid "prune remotes after fetching" msgstr "poda els remots després d'obtenir-los" -#: 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 "No hi ha tal remot '%s'" -#: builtin/remote.c:1461 +#: builtin/remote.c:1439 msgid "add branch" msgstr "afegeix branca" -#: builtin/remote.c:1468 +#: builtin/remote.c:1446 msgid "no remote specified" msgstr "cap remot especificat" -#: builtin/remote.c:1485 +#: builtin/remote.c:1463 msgid "query push URLs rather than fetch URLs" msgstr "consulta els URL de pujada en lloc dels URL d'obteniment" -#: builtin/remote.c:1487 +#: builtin/remote.c:1465 msgid "return all URLs" msgstr "retorna tots els URL" -#: builtin/remote.c:1515 +#: builtin/remote.c:1493 #, c-format msgid "no URLs configured for remote '%s'" msgstr "cap URL configurat per al remot '%s'" -#: builtin/remote.c:1541 +#: builtin/remote.c:1519 msgid "manipulate push URLs" msgstr "manipula els URL de pujada" -#: builtin/remote.c:1543 +#: builtin/remote.c:1521 msgid "add URL" msgstr "afegeix URL" -#: builtin/remote.c:1545 +#: builtin/remote.c:1523 msgid "delete URLs" msgstr "suprimeix URLs" -#: builtin/remote.c:1552 +#: builtin/remote.c:1530 msgid "--add --delete doesn't make sense" msgstr "--add --delete no té sentit" -#: builtin/remote.c:1592 +#: builtin/remote.c:1571 #, c-format msgid "Invalid old URL pattern: %s" msgstr "Patró d'URL antic no và lid: %s" -#: builtin/remote.c:1600 +#: builtin/remote.c:1579 #, c-format msgid "No such URL found: %s" msgstr "No s'ha trobat tal URL: %s" -#: builtin/remote.c:1602 +#: builtin/remote.c:1581 msgid "Will not delete all non-push URLs" msgstr "No se suprimiran tots els URL no de pujada" -#: builtin/remote.c:1616 +#: builtin/remote.c:1595 msgid "be verbose; must be placed before a subcommand" msgstr "sigues detallat; s'ha de col·locar abans d'una subordre" @@ -10077,7 +10281,7 @@ msgstr "No s'ha pogut restablir el fitxer d'Ãndex a la revisió '%s'." msgid "Could not write new index file." msgstr "No s'ha pogut escriure el fitxer d'Ãndex nou." -#: builtin/rev-list.c:354 +#: builtin/rev-list.c:350 msgid "rev-list does not support display of notes" msgstr "el rev-list no permet mostrar notes" @@ -10333,29 +10537,24 @@ msgstr "imprimeix l'estat des de l'ajudant remot" msgid "git shortlog [<options>] [<revision-range>] [[--] [<path>...]]" msgstr "git shortlog [<opcions>] [<rang-de-revisions>] [[--] [<camÃ>...]]" -#: builtin/shortlog.c:131 -#, c-format -msgid "Missing author: %s" -msgstr "Manca l'autor: %s" - -#: builtin/shortlog.c:230 +#: builtin/shortlog.c:242 msgid "sort output according to the number of commits per author" msgstr "ordena la sortida segons el nombre de comissions per autor" -#: builtin/shortlog.c:232 +#: builtin/shortlog.c:244 msgid "Suppress commit descriptions, only provides commit count" msgstr "" "Omet les descripcions de comissió, només proveeix el recompte de comissions" -#: builtin/shortlog.c:234 +#: builtin/shortlog.c:246 msgid "Show the email address of each author" msgstr "Mostra l'adreça de correu electrònic de cada autor" -#: 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 "Ajusta les lÃnies de la sortida" @@ -10499,43 +10698,43 @@ msgstr "" "salta i elimina totes les lÃnies començant amb el carà cter de comentari" #: builtin/stripspace.c:38 -msgid "prepend comment character and blank to each line" -msgstr "anteposa el carà cter de comentari i espai blanc a cada lÃnia" +msgid "prepend comment character and space to each line" +msgstr "anteposa el carà cter de comentari i un espai a cada lÃnia" -#: builtin/submodule--helper.c:79 builtin/submodule--helper.c:167 +#: builtin/submodule--helper.c:73 builtin/submodule--helper.c:161 msgid "alternative anchor for relative paths" msgstr "à ncora alternativa per als camins relatius" -#: builtin/submodule--helper.c:84 +#: builtin/submodule--helper.c:78 msgid "git submodule--helper list [--prefix=<path>] [<path>...]" msgstr "git submodule--helper list [--prefix=<camÃ>] [<camÃ>...]" -#: builtin/submodule--helper.c:114 +#: builtin/submodule--helper.c:108 msgid "git submodule--helper name <path>" msgstr "git submodule--helper name <camÃ>" -#: builtin/submodule--helper.c:120 +#: builtin/submodule--helper.c:114 #, c-format msgid "no submodule mapping found in .gitmodules for path '%s'" msgstr "No s'ha trobat cap mapatge de submòdul a .gitmodules per al camà '%s'" -#: builtin/submodule--helper.c:170 +#: builtin/submodule--helper.c:164 msgid "where the new submodule will be cloned to" msgstr "a on es clonarà el submòdul nou" -#: builtin/submodule--helper.c:173 +#: builtin/submodule--helper.c:167 msgid "name of the new submodule" msgstr "nom del submòdul nou" -#: builtin/submodule--helper.c:176 +#: builtin/submodule--helper.c:170 msgid "url where to clone the submodule from" msgstr "url del qual clonar el submòdul" -#: builtin/submodule--helper.c:182 +#: builtin/submodule--helper.c:176 msgid "depth for shallow clones" msgstr "profunditat dels clons superficials" -#: 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>...]" @@ -10544,37 +10743,37 @@ msgstr "" "<dipòsit>] [--name <nom>] [--url <url>][--depth <profunditat>] [--] " "[<camÃ>...]" -#: 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 "no s'ha pogut crear el directori '%s'" -#: builtin/submodule--helper.c:204 +#: builtin/submodule--helper.c:198 #, c-format msgid "clone of '%s' into submodule path '%s' failed" msgstr "el clonatge de '%s' al camà de submòdul '%s' ha fallat" -#: builtin/submodule--helper.c:227 +#: builtin/submodule--helper.c:221 #, c-format msgid "cannot open file '%s'" msgstr "no es pot obrir el fitxer '%s'" -#: builtin/submodule--helper.c:232 +#: builtin/submodule--helper.c:226 #, c-format msgid "could not close file %s" msgstr "no s'ha pogut tancar el fitxer %s" -#: builtin/submodule--helper.c:247 +#: builtin/submodule--helper.c:241 #, c-format msgid "could not get submodule directory for '%s'" msgstr "no s'ha pogut obtenir el directori de submòdul per a '%s'" -#: builtin/submodule--helper.c:273 +#: builtin/submodule--helper.c:267 msgid "fatal: submodule--helper subcommand must be called with a subcommand" msgstr "fatal: s'ha d'executar la subordre submodule--helper amb una subordre" -#: 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' no és una subordre và lida de submodule--helper" @@ -10820,200 +11019,213 @@ msgstr "Etiqueta '%s' actualitzada (era %s)\n" msgid "Unpacking objects" msgstr "Desempaquetant objectes" -#: builtin/update-index.c:70 +#: builtin/update-index.c:79 #, c-format msgid "failed to create directory %s" msgstr "s'ha fallat en crear el directori %s" -#: builtin/update-index.c:76 +#: builtin/update-index.c:85 #, c-format msgid "failed to stat %s" msgstr "s'ha fallat en fer stat a %s" -#: builtin/update-index.c:86 +#: builtin/update-index.c:95 #, c-format msgid "failed to create file %s" msgstr "s'ha fallat en crear el fitxer %s" -#: builtin/update-index.c:94 +#: builtin/update-index.c:103 #, c-format msgid "failed to delete file %s" msgstr "s'ha fallat en suprimir el fitxer %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'ha fallat en suprimir el directori %s" -#: builtin/update-index.c:124 +#: builtin/update-index.c:133 #, c-format -msgid "Testing " -msgstr "Provant " +msgid "Testing mtime in '%s' " +msgstr "Provant mtime en '%s'" -#: builtin/update-index.c:136 +#: builtin/update-index.c:145 msgid "directory stat info does not change after adding a new file" msgstr "" "la informació d'stat de directori no canvia després d'afegir un fitxer nou" -#: builtin/update-index.c:149 +#: builtin/update-index.c:158 msgid "directory stat info does not change after adding a new directory" msgstr "" "la informació d'stat de directori no canvia després d'afegir un directori nou" -#: builtin/update-index.c:162 +#: builtin/update-index.c:171 msgid "directory stat info changes after updating a file" msgstr "" "la informació d'stat de directori canvia després d'actualitzar un fitxer" -#: builtin/update-index.c:173 +#: builtin/update-index.c:182 msgid "directory stat info changes after adding a file inside subdirectory" msgstr "" "la informació d'stat de directori canvia després d'afegir un fitxer dins " "d'un subdirectori" -#: builtin/update-index.c:184 +#: builtin/update-index.c:193 msgid "directory stat info does not change after deleting a file" msgstr "" "la informació d'stat de directori no canvia després de suprimir un fitxer" -#: builtin/update-index.c:197 +#: builtin/update-index.c:206 msgid "directory stat info does not change after deleting a directory" msgstr "" "la informació d'stat de directori no canvia després de suprimir un directori" -#: builtin/update-index.c:204 +#: builtin/update-index.c:213 msgid " OK" msgstr " D'acord" -#: builtin/update-index.c:564 +#: builtin/update-index.c:575 msgid "git update-index [<options>] [--] [<file>...]" msgstr "git update-index [<opcions>] [--] [<fitxer>...]" -#: builtin/update-index.c:918 +#: builtin/update-index.c:930 msgid "continue refresh even when index needs update" msgstr "" "continua l'actualització encara que l'Ãndex necessiti una actualització" -#: builtin/update-index.c:921 +#: builtin/update-index.c:933 msgid "refresh: ignore submodules" msgstr "actualitza: ignora els submòduls" -#: builtin/update-index.c:924 +#: builtin/update-index.c:936 msgid "do not ignore new files" msgstr "no ignoris els fitxers nous" -#: builtin/update-index.c:926 +#: builtin/update-index.c:938 msgid "let files replace directories and vice-versa" msgstr "deixa que els fitxers reemplacin els directoris i viceversa" -#: builtin/update-index.c:928 +#: builtin/update-index.c:940 msgid "notice files missing from worktree" msgstr "tingues en compte els fitxers absents de l'arbre de treball" -#: builtin/update-index.c:930 +#: builtin/update-index.c:942 msgid "refresh even if index contains unmerged entries" msgstr "actualitza encara que l'Ãndex contingui entrades no fusionades" -#: builtin/update-index.c:933 +#: builtin/update-index.c:945 msgid "refresh stat information" msgstr "actualitza la informació d'estadÃstiques" -#: builtin/update-index.c:937 +#: builtin/update-index.c:949 msgid "like --refresh, but ignore assume-unchanged setting" msgstr "com --refresh, però ignora l'ajust assume-unchanged" -#: builtin/update-index.c:941 +#: builtin/update-index.c:953 msgid "<mode>,<object>,<path>" msgstr "<mode>,<objecte>,<camÃ>" -#: builtin/update-index.c:942 +#: builtin/update-index.c:954 msgid "add the specified entry to the index" msgstr "afegeix l'entrada especificada a l'Ãndex" -#: 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 "passa per alt el bit executable dels fitxers llistats" -#: builtin/update-index.c:951 +#: builtin/update-index.c:963 msgid "mark files as \"not changing\"" msgstr "marca els fitxers com a \"no canviant\"" -#: builtin/update-index.c:954 +#: builtin/update-index.c:966 msgid "clear assumed-unchanged bit" msgstr "neteja el bit assumed-unchanged" -#: builtin/update-index.c:957 +#: builtin/update-index.c:969 msgid "mark files as \"index-only\"" msgstr "marca els fitxers com a \"només Ãndex\"" -#: builtin/update-index.c:960 +#: builtin/update-index.c:972 msgid "clear skip-worktree bit" msgstr "neteja el bit 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 "" "només afegeix a l'Ãndex; no afegeixis el contingut a la base de dades " "d'objectes" -#: builtin/update-index.c:965 +#: builtin/update-index.c:977 msgid "remove named paths even if present in worktree" msgstr "" "elimina els camins anomenats encara que estiguin presents en l'arbre de " "treball" -#: builtin/update-index.c:967 +#: builtin/update-index.c:979 msgid "with --stdin: input lines are terminated by null bytes" msgstr "amb --stdin: les lÃnies d'entrada acaben amb octets nuls" -#: builtin/update-index.c:969 +#: builtin/update-index.c:981 msgid "read list of paths to be updated from standard input" msgstr "llegeix la llista de camins a actualitzar des de l'entrada està ndard" -#: builtin/update-index.c:973 +#: builtin/update-index.c:985 msgid "add entries from standard input to the index" msgstr "afegeix les entrades de l'entrada està ndard a l'Ãndex" -#: builtin/update-index.c:977 +#: builtin/update-index.c:989 msgid "repopulate stages #2 and #3 for the listed paths" msgstr "reemplena les etapes #2 i #3 per als camins llistats" -#: builtin/update-index.c:981 +#: builtin/update-index.c:993 msgid "only update entries that differ from HEAD" msgstr "només actualitza les entrades que difereixin de HEAD" -#: builtin/update-index.c:985 +#: builtin/update-index.c:997 msgid "ignore files missing from worktree" msgstr "ignora els fitxers absents de l'arbre de treball" -#: builtin/update-index.c:988 +#: builtin/update-index.c:1000 msgid "report actions to standard output" msgstr "informa de les accions en la sortida està ndard" -#: builtin/update-index.c:990 +#: builtin/update-index.c:1002 msgid "(for porcelains) forget saved unresolved conflicts" msgstr "(per a porcellanes) oblida't dels conflictes no resolts ni desats" -#: builtin/update-index.c:994 +#: builtin/update-index.c:1006 msgid "write index in this format" msgstr "escriu l'Ãndex en aquest format" -#: builtin/update-index.c:996 +#: builtin/update-index.c:1008 msgid "enable or disable split index" msgstr "habilita o inhabilita l'Ãndex dividit" -#: builtin/update-index.c:998 +#: builtin/update-index.c:1010 msgid "enable/disable untracked cache" msgstr "habilita/inhabilita la memòria cau no seguida" -#: builtin/update-index.c:1000 +#: builtin/update-index.c:1012 +msgid "test if the filesystem supports untracked cache" +msgstr "prova si el sistema de fitxers admet la memòria cau no seguida" + +#: builtin/update-index.c:1014 msgid "enable untracked cache without testing the filesystem" msgstr "habilita la memòria cau no seguida sense provar el sistema de fitxers" +#: builtin/update-index.c:1134 +msgid "Untracked cache disabled" +msgstr "La memòria cau no seguida està inhabilitada" + +#: builtin/update-index.c:1146 +#, c-format +msgid "Untracked cache enabled for '%s'" +msgstr "La memòria cau no seguida està habilitada per a '%s'" + #: builtin/update-ref.c:9 msgid "git update-ref [<options>] -d <refname> [<old-val>]" msgstr "git update-ref [<opcions>] -d <nom-de-referència> [<valor-antic>]" @@ -11132,33 +11344,33 @@ msgstr "s'ha fallat en eliminar: %s" msgid "'%s' already exists" msgstr "'%s' ja existeix" -#: builtin/worktree.c:235 +#: builtin/worktree.c:233 #, c-format msgid "could not create directory of '%s'" msgstr "no s'ha pogut crear directori de '%s'" -#: builtin/worktree.c:271 +#: builtin/worktree.c:269 #, c-format msgid "Preparing %s (identifier %s)" msgstr "Preparant %s (identificador %s)" -#: builtin/worktree.c:319 +#: builtin/worktree.c:317 msgid "checkout <branch> even if already checked out in other worktree" msgstr "agafa <branca> encara que sigui agafada en altre arbre de treball" -#: builtin/worktree.c:321 +#: builtin/worktree.c:319 msgid "create a new branch" msgstr "crea una branca nova" -#: builtin/worktree.c:323 +#: builtin/worktree.c:321 msgid "create or reset a branch" msgstr "crea o restableix una branca" -#: builtin/worktree.c:324 +#: builtin/worktree.c:322 msgid "detach HEAD at named commit" msgstr "separa el HEAD a la comissió anomenada" -#: builtin/worktree.c:331 +#: builtin/worktree.c:329 msgid "-b, -B, and --detach are mutually exclusive" msgstr "-b, -B i --detach són mutualment exclusius" @@ -11178,7 +11390,7 @@ msgstr "escriu l'objecte d'arbre per a un subdirectori <prefix>" msgid "only useful for debugging" msgstr "només útil per a la depuració" -#: credential-cache--daemon.c:255 +#: credential-cache--daemon.c:262 msgid "print debugging messages to stderr" msgstr "imprimeix els missatges de depuració a stderr" @@ -11193,6 +11405,10 @@ msgstr "" "'git help <concepte>' per a llegir sobre una subordre o concepte\n" "especÃfic." +#: http.c:321 +msgid "Public key pinning not supported with cURL < 7.44.0" +msgstr "No s'admet l'enganx de clau pública amb cURL < 7.44.0" + #: common-cmds.h:9 msgid "start a working area (see also: git help tutorial)" msgstr "començar una à rea de treball (vegeu també: git help tutorial)" @@ -11276,8 +11492,8 @@ msgstr "" "Actualitza les referències remotes juntament amb els objectes associats" #: common-cmds.h:32 -msgid "Forward-port local commits to the updated upstream head" -msgstr "Avança les comissions locals al cap font actualitzat" +msgid "Reapply commits on top of another base tip" +msgstr "Reaplica les comissions sobre un altre punt de basament" #: common-cmds.h:33 msgid "Reset current HEAD to the specified state" @@ -11506,7 +11722,7 @@ msgstr "no es pot canviar el significat del terme '$term'" #: git-bisect.sh:606 #, sh-format msgid "Invalid command: you're currently in a $TERM_BAD/$TERM_GOOD bisect." -msgstr "Ordre invà lida: actualment esteu en una bisecció $TERM_BAD/$TERM_GOOD" +msgstr "Ordre no và lida: actualment esteu en una bisecció $TERM_BAD/$TERM_GOOD" #: git-bisect.sh:636 msgid "no terms defined" @@ -11518,7 +11734,7 @@ msgid "" "invalid argument $arg for 'git bisect terms'.\n" "Supported options are: --term-good|--term-old and --term-bad|--term-new." msgstr "" -"parà metre invà lid $arg per a 'git bisect terms'.\n" +"parà metre no và lid $arg per a 'git bisect terms'.\n" "Les opcions admeses són: --term-good|--term-old i --term-bad|--term-new." #: git-rebase.sh:57 @@ -11985,7 +12201,7 @@ msgstr "No s'ha pogut crear el directori de submòdul buit '$displaypath'" msgid "Submodule '$name' ($url) unregistered for path '$displaypath'" msgstr "Submòdul '$name' ($url) no registrat per al camà '$displaypath'" -#: git-submodule.sh:705 +#: git-submodule.sh:723 #, sh-format msgid "" "Submodule path '$displaypath' not initialized\n" @@ -11994,53 +12210,53 @@ msgstr "" "Camà de submòdul '$displaypath' no inicialitzat\n" "Potser voleu usar 'update --init'?" -#: git-submodule.sh:718 +#: git-submodule.sh:736 #, sh-format msgid "Unable to find current revision in submodule path '$displaypath'" msgstr "" "No s'ha pogut trobar la revisió actual en el camà de submòdul '$displaypath'" -#: git-submodule.sh:727 +#: git-submodule.sh:745 #, sh-format msgid "Unable to fetch in submodule path '$sm_path'" msgstr "No s'ha pogut obtenir en el camà de submòdul '$sm_path'" -#: git-submodule.sh:751 +#: git-submodule.sh:768 #, sh-format msgid "Unable to fetch in submodule path '$displaypath'" msgstr "No s'ha pogut obtenir en el camà de submòdul '$displaypath'" -#: git-submodule.sh:765 +#: git-submodule.sh:788 #, sh-format msgid "Unable to checkout '$sha1' in submodule path '$displaypath'" msgstr "No s'ha pogut agafar '$sha1' en el camà de submòdul '$displaypath'" -#: git-submodule.sh:766 +#: git-submodule.sh:789 #, sh-format msgid "Submodule path '$displaypath': checked out '$sha1'" msgstr "Camà de submòdul '$displaypath': s'ha agafat '$sha1'" -#: git-submodule.sh:770 +#: git-submodule.sh:793 #, sh-format msgid "Unable to rebase '$sha1' in submodule path '$displaypath'" msgstr "no s'ha pogut rebasar '$sha1' en el camà de submòdul '$displaypath'" -#: git-submodule.sh:771 +#: git-submodule.sh:794 #, sh-format msgid "Submodule path '$displaypath': rebased into '$sha1'" msgstr "Camà de submòdul '$displaypath': s'ha rebasat en '$sha1'" -#: git-submodule.sh:776 +#: git-submodule.sh:799 #, sh-format msgid "Unable to merge '$sha1' in submodule path '$displaypath'" msgstr "No s'ha pogut fusionar '$sha1' en el camà de submòdul '$displaypath'" -#: git-submodule.sh:777 +#: git-submodule.sh:800 #, sh-format msgid "Submodule path '$displaypath': merged in '$sha1'" msgstr "Camà de submòdul '$displaypath': s'ha fusionat en '$sha1'" -#: git-submodule.sh:782 +#: git-submodule.sh:805 #, sh-format msgid "" "Execution of '$command $sha1' failed in submodule path '$prefix$sm_path'" @@ -12048,50 +12264,50 @@ msgstr "" "L'execució de '$command $sha1' ha fallat en el camà de submòdul '$prefix" "$sm_path'" -#: git-submodule.sh:783 +#: git-submodule.sh:806 #, sh-format msgid "Submodule path '$prefix$sm_path': '$command $sha1'" msgstr "Camà de submòdul '$prefix$sm_path': '$command $sha1'" -#: git-submodule.sh:813 +#: git-submodule.sh:836 #, sh-format msgid "Failed to recurse into submodule path '$displaypath'" msgstr "S'ha fallat en recursar al camà de submòdul '$displaypath'" -#: git-submodule.sh:921 +#: git-submodule.sh:944 msgid "The --cached option cannot be used with the --files option" msgstr "L'opció --cached no es pot usar amb l'opció --files" -#: git-submodule.sh:973 +#: git-submodule.sh:996 #, sh-format msgid "unexpected mode $mod_dst" msgstr "mode inesperat $mod_dst" -#: git-submodule.sh:993 +#: git-submodule.sh:1016 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_src" msgstr " AvÃs: $display_name no conté la comissió $sha1_src" -#: git-submodule.sh:996 +#: git-submodule.sh:1019 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_dst" msgstr " AvÃs: $display_name no conté la comissió $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 " AvÃs: $display_name no conté les comissions $sha1_src i $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 "S'ha fallat en recursar al camà de submòdul '$sm_path'" -#: git-submodule.sh:1206 +#: git-submodule.sh:1229 #, sh-format msgid "Synchronizing submodule url for '$displaypath'" msgstr "Sincronitzant l'url de submòdul per a '$displaypath'" @@ -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-03-16 00:16+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\n" +"\"git branch --set-upstream-to=%s%s%s\"\n" +"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,20 @@ 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 +629,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 +688,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 +697,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 +716,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 +782,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 +791,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 +813,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 +1073,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 +1114,251 @@ 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:71 +#, c-format +msgid "unrecognized format: %%(%s)" +msgstr "nicht erkanntes Format: %%(%s)" + +#: ref-filter.c:77 +#, c-format +msgid "%%(body) does not take arguments" +msgstr "%%(body) akzeptiert keine Argumente" + +#: ref-filter.c:84 +#, c-format +msgid "%%(subject) does not take arguments" +msgstr "%%(subject) akzeptiert keine Argumente" -#: ref-filter.c:704 +#: 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 "improper format entered align:%s" -msgstr "Sie haben ein ungültiges Format eingegeben align:%s" +msgid "unrecognized position:%s" +msgstr "nicht erkannte Position:%s" -#: ref-filter.c:898 +#: ref-filter.c:151 +#, c-format +msgid "unrecognized width:%s" +msgstr "nicht erkannte Breite:%s" + +#: ref-filter.c:157 +#, c-format +msgid "unrecognized %%(align) argument: %s" +msgstr "nicht erkanntes %%(align) Argument: %s" + +#: 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:244 +#, c-format +msgid "malformed field name: %.*s" +msgstr "Fehlerhafter Feldname: %.*s" + +#: ref-filter.c:270 +#, c-format +msgid "unknown field name: %.*s" +msgstr "Unbekannter Feldname: %.*s" + +#: 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:424 +#, c-format +msgid "malformed format string %s" +msgstr "Fehlerhafter Formatierungsstring %s" + +#: ref-filter.c:878 +msgid ":strip= requires a positive integer argument" +msgstr ":strip= erfordert eine positive Ganzzahl als Argument" + +#: ref-filter.c:883 +#, c-format +msgid "ref '%s' does not have %ld components to :strip" +msgstr "Referenz '%s' hat keine %ld Komponenten für :strip" + +#: ref-filter.c:1046 +#, c-format +msgid "unknown %.*s format %s" +msgstr "Unbekanntes %.*s Format %s" + +#: ref-filter.c:1066 ref-filter.c:1097 +#, c-format +msgid "missing object %s for %s" +msgstr "Objekt %s fehlt für %s" + +#: ref-filter.c:1069 ref-filter.c:1100 +#, c-format +msgid "parse_object_buffer failed on %s for %s" +msgstr "parse_object_buffer bei %s für %s fehlgeschlagen" + +#: ref-filter.c:1311 #, c-format msgid "malformed object at '%s'" msgstr "fehlerhaftes Objekt bei '%s'" -#: ref-filter.c:1561 +#: ref-filter.c:1373 +#, c-format +msgid "ignoring ref with broken name %s" +msgstr "Ignoriere Referenz mit fehlerhaftem Namen %s" + +#: ref-filter.c:1378 +#, c-format +msgid "ignoring broken ref %s" +msgstr "Ignoriere fehlerhafte Referenz %s" + +#: 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 +1368,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 +1388,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 +1437,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 +1445,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 +1455,245 @@ 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_file.c:1080 +msgid "offset before end of packfile (broken .idx?)" +msgstr "Offset vor Ende der Packdatei (fehlerhafte Indexdatei?)" + +#: sha1_file.c:2459 +#, c-format +msgid "offset before start of pack index for %s (corrupt index?)" +msgstr "Offset vor Beginn des Pack-Index für %s (beschädigter Index?)" + +#: sha1_file.c:2463 +#, c-format +msgid "offset beyond end of pack index for %s (truncated index?)" +msgstr "Offset hinter Ende des Pack-Index für %s (abgeschnittener Index?)" + +#: 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 +1718,86 @@ 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 +#: trailer.c:237 #, c-format -msgid "Could not set core.worktree in %s" -msgstr "Konnte core.worktree in '%s' nicht setzen." +msgid "running trailer command '%s' failed" +msgstr "Ausführen des Anhang-Befehls '%s' fehlgeschlagen" -#: 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 +1835,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 +2092,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 +2108,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 +2375,11 @@ msgstr "entfernt" msgid "behind " msgstr "hinterher " -#: compat/precompose_utf8.c:56 builtin/clone.c:408 +#: wt-status.c:1680 wt-status.c:1683 +msgid "ahead " +msgstr "voraus " + +#: compat/precompose_utf8.c:57 builtin/clone.c:413 #, c-format msgid "failed to unlink '%s'" msgstr "Konnte '%s' nicht entfernen." @@ -2255,7 +2407,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 +2444,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 +2460,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 +2531,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 +2671,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 +2711,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 +2750,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 +2758,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 +2776,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 +2930,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 +2948,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 +3299,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 +3494,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 +3611,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 +3814,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 +3972,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 +4017,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 +4028,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 +4132,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 +4140,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 +4194,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 +4324,41 @@ 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:665 builtin/clone.c:659 +msgid "unable to update HEAD" +msgstr "Konnte HEAD nicht aktualisieren." + +#: 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 +4381,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 +4408,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 +4563,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 +4607,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 +4619,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 +4639,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 +4686,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 +4749,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 +4761,168 @@ 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:239 +msgid "" +"No directory name could be guessed.\n" +"Please specify a directory on the command line" +msgstr "" +"Konnte keinen Verzeichnisnamen erraten.\n" +"Bitte geben Sie ein Verzeichnis auf der Befehlszeile an." + +#: 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 +4932,132 @@ 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:647 +#, c-format +msgid "unable to update %s" +msgstr "kann %s nicht aktualisieren" + +#: 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:753 +msgid "unable to write parameters to config file" +msgstr "konnte Parameter nicht in Konfigurationsdatei schreiben" + +#: 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 +5118,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 +5162,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 +5273,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 +5470,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 +5562,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 +5600,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 +5625,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 +5717,145 @@ 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 +5870,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 +6122,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 +6295,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 +6354,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 +6617,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 +6868,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 +6925,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 +6950,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 +6959,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,60 +7259,55 @@ 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 +#: builtin/index-pack.c:1479 builtin/index-pack.c:1664 #, c-format msgid "no threads support, ignoring %s" msgstr "keine Unterstützung von Threads, '%s' wird ignoriert" -#: builtin/index-pack.c:1537 +#: builtin/index-pack.c:1538 #, c-format msgid "Cannot open existing pack file '%s'" msgstr "Kann existierende Paketdatei '%s' nicht öffnen" -#: builtin/index-pack.c:1539 +#: builtin/index-pack.c:1540 #, c-format msgid "Cannot open existing pack idx file for '%s'" msgstr "Kann existierende Indexdatei für Paket '%s' nicht öffnen" -#: builtin/index-pack.c:1586 +#: builtin/index-pack.c:1587 #, c-format msgid "non delta: %d object" msgid_plural "non delta: %d objects" msgstr[0] "kein Unterschied: %d Objekt" msgstr[1] "kein Unterschied: %d Objekte" -#: builtin/index-pack.c:1593 +#: builtin/index-pack.c:1594 #, c-format msgid "chain length = %d: %lu object" msgid_plural "chain length = %d: %lu objects" msgstr[0] "Länge der Objekt-Liste = %d: %lu Objekt" msgstr[1] "Länge der Objekt-Liste = %d: %lu Objekte" -#: builtin/index-pack.c:1623 +#: builtin/index-pack.c:1624 msgid "Cannot come back to cwd" msgstr "Kann nicht zurück zu Arbeitsverzeichnis wechseln" -#: 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 ist ungültig" -#: builtin/index-pack.c:1708 +#: builtin/index-pack.c:1709 msgid "--fix-thin cannot be used without --stdin" msgstr "Die Option --fix-thin kann nicht ohne --stdin verwendet werden." -#: 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 "Name der Paketdatei '%s' endet nicht mit '.pack'" -#: builtin/index-pack.c:1729 +#: builtin/index-pack.c:1730 msgid "--verify with no packfile name given" msgstr "Die Option --verify wurde ohne Namen der Paketdatei angegeben." @@ -7225,24 +7433,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:25 +#: builtin/interpret-trailers.c:26 +msgid "edit files in place" +msgstr "vorhandene Dateien direkt bearbeiten" + +#: 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 +7512,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 +7739,160 @@ 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 +7962,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 +7996,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 +8004,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 +8056,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 +8075,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 +8127,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 +8183,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 +8191,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 +8375,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 +8395,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 +8682,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 +8699,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 +8743,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 " -"(impliziert --stdin)" +"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 +8776,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 +8806,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 +8874,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 +9087,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 +9144,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 +9159,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 +9169,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 +9206,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 +9216,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 +9232,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 +9249,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 +9261,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 +9278,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 +9304,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 +9319,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 +9333,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 +9350,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 +9366,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 +9381,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 +9398,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 +9420,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 +9448,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 +9457,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 +9629,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 +9781,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 +9830,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 +9856,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 +9982,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 +10440,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 +10482,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 +10490,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 +10702,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 +10861,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 +10910,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 +11186,220 @@ 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 +11516,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 +11564,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 +11574,17 @@ 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:321 +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)" @@ -11456,8 +11674,8 @@ msgid "Update remote refs along with associated objects" msgstr "Remote-Referenzen mitsamt den verbundenen Objekten aktualisieren" #: common-cmds.h:32 -msgid "Forward-port local commits to the updated upstream head" -msgstr "lokale Commits auf einem aktuellerem Upstream-Branch neu aufbauen" +msgid "Reapply commits on top of another base tip" +msgstr "Wiederholtes Anwenden von Commits auf anderem Basis-Commit" #: common-cmds.h:33 msgid "Reset current HEAD to the specified state" @@ -11682,7 +11900,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 +11911,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 +12017,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 +12297,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 +12410,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 +12419,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 +12472,135 @@ 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 "Forward-port local commits to the updated upstream head" +#~ msgstr "lokale Commits auf einem aktuellerem Upstream-Branch neu aufbauen" + +#~ 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" @@ -12374,9 +12671,6 @@ msgstr "Synchronisiere Submodul-URL für '$displaypath'" #~ msgid "unable to parse value '%s' for option %s" #~ msgstr "konnte Wert '%s' für Option %s nicht parsen" -#~ msgid "unable to resolve HEAD" -#~ msgstr "Konnte HEAD nicht auflösen." - #~ msgid "-b and -B are mutually exclusive" #~ msgstr "-b und -B schließen sich gegenseitig aus" @@ -12456,9 +12750,6 @@ msgstr "Synchronisiere Submodul-URL für '$displaypath'" #~ "Informationen zu nicht mehr existierenden Arbeitsverzeichnissen in .git/" #~ "worktrees entfernen" -#~ msgid "--worktrees does not take extra arguments" -#~ msgstr "--worktrees akzeptiert keine weiteren Argumente" - #~ msgid "The most commonly used git commands are:" #~ msgstr "Die allgemein verwendeten Git-Kommandos sind:" @@ -12489,9 +12780,6 @@ msgstr "Synchronisiere Submodul-URL für '$displaypath'" #~ msgid "force creation (when already exists)" #~ msgstr "Branch auch erzeugen, wenn dieser bereits existiert" -#~ msgid "Malformed ident string: '%s'" -#~ msgstr "Fehlerhafter Ident-String: '%s'" - #~ msgid "slot" #~ msgstr "Slot" @@ -12541,9 +12829,6 @@ msgstr "Synchronisiere Submodul-URL für '$displaypath'" #~ msgid "bug" #~ msgstr "Fehler" -#~ msgid "ahead " -#~ msgstr "voraus " - #~ msgid ", behind " #~ msgstr ", hinterher " @@ -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-16 00:16+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,177 @@ 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 +1780,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 +1898,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 +2414,11 @@ msgstr "disparue" msgid "behind " msgstr "derrière " -#: compat/precompose_utf8.c:56 builtin/clone.c:408 +#: wt-status.c:1680 wt-status.c:1683 +msgid "ahead " +msgstr "devant " + +#: 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 +2445,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 +2481,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 +2497,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 +2568,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 +2704,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 +2743,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 +2782,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 +2790,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 +2808,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é" +msgstr "id-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 +2963,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 +2982,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 +3341,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 +3525,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 +3645,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 +3847,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 +4004,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 +4047,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 +4058,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 +4160,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 +4169,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 +4222,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 +4352,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 +4409,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 +4438,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)" +msgstr "style de conflit (merge (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 +4592,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 +4636,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 +4648,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 +4668,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 +4715,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 +4778,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 +4790,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 +4956,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 +5294,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 +5482,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 +5574,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 +5611,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 +5635,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 +5726,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 +5880,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 +6133,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" +msgstr "répertoire" -#: 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 +6303,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 +6359,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 +6617,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 +6865,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 +6947,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 +6956,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 +6965,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 +7257,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 +7432,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 +7513,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 +7740,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 +7961,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 +7995,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 +8003,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 +8055,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 +8074,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 +8127,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 +8182,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 +8190,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 +8371,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 +8391,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 +8677,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 +8694,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 +8738,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 +8770,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 +8784,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 +8800,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 +8867,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 +9079,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 +9135,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 +9150,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 +9162,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 +9194,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 +9204,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 +9221,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 +9239,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 +9251,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 +9268,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 +9293,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 +9308,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 +9322,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 +9339,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 +9361,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 +9370,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 +9394,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 +9412,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 +9449,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 +9622,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 +9773,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 +9824,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 +9849,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 +9975,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 +10433,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 +10691,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" @@ -10615,11 +10809,11 @@ msgstr "git show-ref --exclude-existing[=<motif>]" #: builtin/show-ref.c:165 msgid "only show tags (can be combined with heads)" -msgstr "afficher seulement les étiquettes (peut être combiné avec des têtes)" +msgstr "afficher seulement les étiquettes (peut être combiné avec heads)" #: builtin/show-ref.c:166 msgid "only show heads (can be combined with tags)" -msgstr "afficher seulement les têtes (peut être combiné avec des étiquettes)" +msgstr "afficher seulement les têtes (peut être combiné avec tags)" #: builtin/show-ref.c:167 msgid "stricter reference checking, requires exact ref path" @@ -10665,45 +10859,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 +10906,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 +11155,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 +11184,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 +11512,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 +11560,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 +11574,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 +11662,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 +12389,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 +12398,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 +12456,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 +12660,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 +12725,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 +12755,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" @@ -12530,9 +12812,6 @@ msgstr "Synchronisation de l'URL sous-module pour '$displaypath'" #~ msgid "bug" #~ msgstr "bogue" -#~ msgid "ahead " -#~ msgstr "devant " - #~ msgid ", behind " #~ msgstr ", derrière " 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-16 00:16+0800\n" +"PO-Revision-Date: 2016-03-16 10:30+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ì„(를) ë‹«ì„ ìˆ˜ 없습니다" @@ -2185,9 +2330,13 @@ msgstr "ì—†ìŒ" #: wt-status.c:1677 wt-status.c:1685 msgid "behind " -msgstr "ë’¤ì—: " +msgstr "ë‹¤ìŒ ë’¤ì—: " + +#: wt-status.c:1680 wt-status.c:1683 +msgid "ahead " +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 +2363,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 +2398,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 +2414,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 +2482,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 +2614,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 +2653,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 +2691,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 +2699,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 +2717,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 +2873,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 +2891,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 +2927,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 +3237,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 +3413,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 +3527,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 +3725,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 +4013,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 +4036,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 +4044,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 +4097,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 +4223,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 +4275,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 +4296,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 +4449,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 +4493,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 +4505,7 @@ msgstr "" "foo - ìœ ì¼í•œ ì ‘ë‘ì–´ì— í•´ë‹¹í•˜ëŠ” í•목 ì„ íƒ\n" " - (빈 ìž…ë ¥) ì„ íƒí•˜ì§€ 않ìŒ" -#: builtin/clean.c:319 +#: builtin/clean.c:295 msgid "" "Prompt help:\n" "1 - select a single item\n" @@ -4351,36 +4525,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 +4572,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 +4811,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 +5143,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 +5310,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 +5330,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 +5350,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 +5365,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 +5421,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 +5455,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 +5479,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 +5570,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 +5721,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 +5971,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 +6138,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 +6194,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 +6430,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 +6684,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 +6764,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 +6773,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 +6782,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 +7069,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 +7241,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 +7320,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 +7758,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 +7790,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 +7798,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 +7849,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 +7868,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 +7919,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 +7972,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 +7980,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 +8122,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 +8158,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 +8178,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 +8320,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 +8342,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 +8460,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 +8477,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 +8566,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 +8647,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 +8850,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 +8916,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 +8927,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 +8958,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 +8967,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 +8982,7 @@ msgstr "" "작업 í´ë”를 %s 커밋ì—서 ì •ë°©í–¥\n" "진행합니다." -#: builtin/pull.c:864 +#: builtin/pull.c:875 #, c-format msgid "" "Cannot fast-forward your working tree.\n" @@ -8691,11 +8999,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 +9011,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 +9053,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 +9068,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 +9082,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 +9098,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 +9117,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 +9130,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 +9146,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 +9160,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 +9196,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 +9298,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 +9367,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 +9513,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 +9562,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 +9580,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 +9901,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 +9977,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 +10127,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 +10158,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 +10190,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 +10298,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 +10330,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 +10380,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 +10405,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 +10562,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 +10606,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 +10881,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 +11192,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 +11238,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 +11252,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 +11337,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 +11589,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 +11963,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 +11985,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 +12009,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 +12031,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 +12043,103 @@ msgstr "" "하위 모듈 경로가 ('$displaypath') 초기화ë˜ì§€ 않았습니다\n" "ì•„ë§ˆë„ 'update --init'ì´ í•„ìš”í•©ë‹ˆë‹¤?" -#: git-submodule.sh:718 +#: git-submodule.sh:736 #, sh-format msgid "Unable to find current revision in submodule path '$displaypath'" msgstr "하위 모듈 경로ì—서 ('$displaypath') 현재 ë¦¬ë¹„ì „ì„ ì°¾ì„ ìˆ˜ 없습니다" -#: git-submodule.sh:727 +#: git-submodule.sh:745 #, sh-format msgid "Unable to fetch in submodule path '$sm_path'" msgstr "하위 모듈 경로 '$sm_path'ì—서 ê°€ì ¸ì˜¬ 수 없습니다" -#: git-submodule.sh:751 +#: git-submodule.sh:768 #, sh-format msgid "Unable to fetch in submodule path '$displaypath'" msgstr "하위 모듈 경로 '$displaypath'ì—서 ê°€ì ¸ì˜¬ 수 없습니다" -#: git-submodule.sh:765 +#: git-submodule.sh:788 #, sh-format msgid "Unable to checkout '$sha1' in submodule path '$displaypath'" msgstr "하위 모듈 경로 '$displaypath'ì—서 '$sha1'ì„(를) ì²´í¬ì•„ì›ƒí• ìˆ˜ 없습니다" -#: git-submodule.sh:766 +#: git-submodule.sh:789 #, sh-format msgid "Submodule path '$displaypath': checked out '$sha1'" msgstr "하위 모듈 경로 '$displaypath': '$sha1' ì²´í¬ì•„웃" -#: git-submodule.sh:770 +#: git-submodule.sh:793 #, sh-format msgid "Unable to rebase '$sha1' in submodule path '$displaypath'" msgstr "하위 모듈 경로 '$displaypath'ì—서 '$sha1'ì„(를) ë¦¬ë² ì´ìŠ¤í• ìˆ˜ 없습니다" -#: git-submodule.sh:771 +#: git-submodule.sh:794 #, sh-format msgid "Submodule path '$displaypath': rebased into '$sha1'" msgstr "하위 모듈 경로 '$displaypath': '$sha1'(으)로 ë¦¬ë² ì´ìФ" -#: git-submodule.sh:776 +#: git-submodule.sh:799 #, sh-format msgid "Unable to merge '$sha1' in submodule path '$displaypath'" msgstr "하위 모듈 경로 '$displaypath'ì—서 '$sha1' ë³‘í•©í• ìˆ˜ 없습니다" -#: git-submodule.sh:777 +#: git-submodule.sh:800 #, sh-format msgid "Submodule path '$displaypath': merged in '$sha1'" msgstr "하위 모듈 경로 '$displaypath': '$sha1'ì—서 병합" -#: git-submodule.sh:782 +#: git-submodule.sh:805 #, sh-format msgid "" "Execution of '$command $sha1' failed in submodule path '$prefix$sm_path'" -msgstr "하위 모듈 경로 '$prefix$sm_path'ì—서 '$command $sha1' ì‹¤í–‰ì´ ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤" +msgstr "" +"하위 모듈 경로 '$prefix$sm_path'ì—서 '$command $sha1' ì‹¤í–‰ì´ ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤" -#: git-submodule.sh:783 +#: git-submodule.sh:806 #, sh-format msgid "Submodule path '$prefix$sm_path': '$command $sha1'" msgstr "하위 모듈 경로 '$prefix$sm_path': '$command $sha1'" -#: git-submodule.sh:813 +#: git-submodule.sh:836 #, sh-format msgid "Failed to recurse into submodule path '$displaypath'" msgstr "재귀ì 으로 하위 모듈 경로 '$displaypath'ì— ë“¤ì–´ê°€ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤" -#: git-submodule.sh:921 +#: git-submodule.sh:944 msgid "The --cached option cannot be used with the --files option" msgstr "--cached ì˜µì…˜ì€ --files 옵션과 ê°™ì´ ì“¸ 수 없습니다" -#: git-submodule.sh:973 +#: git-submodule.sh:996 #, sh-format msgid "unexpected mode $mod_dst" msgstr "예ìƒì¹˜ 못한 모드 $mod_dst" -#: git-submodule.sh:993 +#: git-submodule.sh:1016 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_src" msgstr " ê²½ê³ : '$display_name'ì— '$sha1_src' ì»¤ë°‹ì´ ë“¤ì–´ìžˆì§€ 않습니다" -#: git-submodule.sh:996 +#: git-submodule.sh:1019 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_dst" msgstr " ê²½ê³ : '$display_name'ì— '$sha1_dst' ì»¤ë°‹ì´ ë“¤ì–´ìžˆì§€ 않습니다" -#: git-submodule.sh:999 +#: git-submodule.sh:1022 #, sh-format msgid " Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst" -msgstr " ê²½ê³ : '$display_name'ì— '$sha1_src' ë° '$sha1_dst' ì»¤ë°‹ì´ ë“¤ì–´ìžˆì§€ 않습니다" +msgstr "" +" ê²½ê³ : '$display_name'ì— '$sha1_src' ë° '$sha1_dst' ì»¤ë°‹ì´ ë“¤ì–´ìžˆì§€ 않습니다" -#: git-submodule.sh:1024 +#: git-submodule.sh:1047 msgid "blob" msgstr "블ë¡" -#: git-submodule.sh:1142 +#: git-submodule.sh:1165 #, sh-format msgid "Failed to recurse into submodule path '$sm_path'" msgstr "재귀ì 으로 하위 모듈 경로 '$sm_path'ì— ë“¤ì–´ê°€ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤" -#: git-submodule.sh:1206 +#: git-submodule.sh:1229 #, sh-format msgid "Synchronizing submodule url for '$displaypath'" msgstr "하위 모듈 URLì„ '$displaypath'ì— ëŒ€í•´ ë™ê¸°í™”" diff --git a/po/pt_PT.po b/po/pt_PT.po index 689ad1b0fe..321b553877 100644 --- a/po/pt_PT.po +++ b/po/pt_PT.po @@ -2,333 +2,667 @@ # Copyright (C) 2012 Marco Sousa <marcomsousa AT gmail.com> # This file is distributed under the same license as the Git package. # Contributers: -# - Marco Sousa <marcomsousa AT gmail.com> -# +# - Marco Sousa <marcomsousa AT gmail.com> +# Vasco Almeida <vasco13almeida@gmail.com>, 2016. msgid "" msgstr "" "Project-Id-Version: Git\n" "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n" -"POT-Creation-Date: 2012-05-08 16:06+0800\n" -"PO-Revision-Date: 2012-05-14 21:17+0100\n" -"Last-Translator: Marco Sousa <marcomsousa AT gmail.com>\n" +"POT-Creation-Date: 2016-03-16 00:16+0800\n" +"PO-Revision-Date: 2016-03-22 16:00+0000\n" +"Last-Translator: Vasco Almeida <vasco13almeida@gmail.com>\n" "Language-Team: Portuguese\n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Virtaal 0.7.1\n" -#: advice.c:40 +#: advice.c:55 #, c-format msgid "hint: %.*s\n" -msgstr "dica: %.*s\n" +msgstr "sugestão: %.*s\n" -#. -#. * Message used both when 'git commit' fails and when -#. * other commands doing a merge do. -#. -#: advice.c:70 +#: advice.c:88 +msgid "" +"Fix them up in the work tree, and then use 'git add/rm <file>'\n" +"as appropriate to mark resolution and make a commit." +msgstr "" +"Corrija-os na árvore de trabalho e use 'git add/rm <ficheiro>'\n" +"conforme apropriado para marcá-los como resolvidos e faça commit." + +#: advice.c:101 builtin/merge.c:1226 +msgid "You have not concluded your merge (MERGE_HEAD exists)." +msgstr "Merge não concluÃdo (MERGE_HEAD presente)." + +#: advice.c:103 +msgid "Please, commit your changes before merging." +msgstr "Faça commit das suas alterações antes de efetuar merge." + +#: advice.c:104 +msgid "Exiting because of unfinished merge." +msgstr "A terminar por causa de merge incompleto." + +#: archive.c:12 +msgid "git archive [<options>] <tree-ish> [<path>...]" +msgstr "git archive [<opções>] <árvore> [<caminho>...]" + +#: archive.c:13 +msgid "git archive --list" +msgstr "git archive --list" + +#: archive.c:14 msgid "" -"Fix them up in the work tree,\n" -"and then use 'git add/rm <file>' as\n" -"appropriate to mark resolution and make a commit,\n" -"or use 'git commit -a'." +"git archive --remote <repo> [--exec <cmd>] [<options>] <tree-ish> [<path>...]" msgstr "" +"git archive --remote <repo> [--exec <cmd>] [<opções>] <tree-ish> " +"[<caminho>...]" -#: bundle.c:36 +#: archive.c:15 +msgid "git archive --remote <repo> [--exec <cmd>] --list" +msgstr "git archive --remote <repo> [--exec <cmd>] --list" + +#: archive.c:344 builtin/add.c:137 builtin/add.c:420 builtin/rm.c:327 #, c-format -msgid "'%s' does not look like a v2 bundle file" +msgid "pathspec '%s' did not match any files" +msgstr "o especificador de caminho '%s' não corresponde a nenhum ficheiro" + +#: archive.c:429 +msgid "fmt" +msgstr "fmt" + +#: archive.c:429 +msgid "archive format" +msgstr "formato do arquivo" + +#: archive.c:430 builtin/log.c:1232 +msgid "prefix" +msgstr "prefixo" + +#: archive.c:431 +msgid "prepend prefix to each pathname in the archive" +msgstr "preceder o prefixo a cada nome de caminho dentro do arquivo" + +#: 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 "ficheiro" + +#: archive.c:433 builtin/archive.c:89 +msgid "write the archive to this file" +msgstr "escrever o arquivo para este ficheiro" + +#: archive.c:435 +msgid "read .gitattributes in working directory" +msgstr "ler .gitattributes do diretório de trabalho" + +#: archive.c:436 +msgid "report archived files on stderr" +msgstr "listar ficheiros arquivados para stderr" + +#: archive.c:437 +msgid "store only" +msgstr "armazenar apenas" + +#: archive.c:438 +msgid "compress faster" +msgstr "compressão rápida" + +#: archive.c:446 +msgid "compress better" +msgstr "compressão ótima" + +#: archive.c:449 +msgid "list supported archive formats" +msgstr "listar formatos de arquivo suportados" + +#: archive.c:451 builtin/archive.c:90 builtin/clone.c:78 +msgid "repo" +msgstr "repo" + +#: archive.c:452 builtin/archive.c:91 +msgid "retrieve the archive from remote repository <repo>" +msgstr "obter o arquivo a partir do repositório remoto <repo>" + +#: archive.c:453 builtin/archive.c:92 builtin/notes.c:482 +msgid "command" +msgstr "comando" + +#: archive.c:454 builtin/archive.c:93 +msgid "path to the remote git-upload-archive command" +msgstr "caminho para o comando git-upload-archive no remoto" + +#: attr.c:263 +msgid "" +"Negative patterns are ignored in git attributes\n" +"Use '\\!' for literal leading exclamation." msgstr "" +"Os padrões negativos são ignorados nos atributos do git\n" +"Use '\\!' para uma exclamação literal à esquerda." -#: bundle.c:63 +#: 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" +"Após resolver a causa do problema, pode tentar corrigir\n" +"o ramo remoto que deve ser seguido invocando\n" +"\"git branch --set-upstream-to=%s%s%s\"." + +#: branch.c:67 +#, c-format +msgid "Not setting branch %s as its own upstream." +msgstr "O ramo %s não foi configurado com ramo a montante dele próprio." + +#: branch.c:93 +#, c-format +msgid "Branch %s set up to track remote branch %s from %s by rebasing." +msgstr "Ramo %s configurado para seguir o ramo remoto %s de %s por rebase." + +#: branch.c:94 +#, c-format +msgid "Branch %s set up to track remote branch %s from %s." +msgstr "Ramo %s configurado para seguir o ramo remoto %s de %s." + +#: branch.c:98 +#, c-format +msgid "Branch %s set up to track local branch %s by rebasing." +msgstr "Ramo %s configurado para seguir o ramo local %s por rebase." + +#: branch.c:99 +#, c-format +msgid "Branch %s set up to track local branch %s." +msgstr "Ramo %s configurado para seguir o ramo local %s." + +#: branch.c:104 +#, c-format +msgid "Branch %s set up to track remote ref %s by rebasing." +msgstr "Ramo %s configurado para seguir a referência remota %s por rebase." + +#: branch.c:105 +#, c-format +msgid "Branch %s set up to track remote ref %s." +msgstr "Ramo %s configurado para seguir a referência remota %s." + +#: branch.c:109 +#, c-format +msgid "Branch %s set up to track local ref %s by rebasing." +msgstr "Ramo %s configurado para seguir a referência local %s por rebase." + +#: branch.c:110 +#, c-format +msgid "Branch %s set up to track local ref %s." +msgstr "Ramo %s configurado para seguir a referência local %s." + +#: branch.c:119 +msgid "Unable to write upstream branch configuration" +msgstr "Não foi possÃvel escrever a configuração do ramo a montante" + +#: branch.c:156 +#, c-format +msgid "Not tracking: ambiguous information for ref %s" +msgstr "Não seguido: informação da referência %s ambÃgua" + +#: branch.c:185 +#, c-format +msgid "'%s' is not a valid branch name." +msgstr "'%s' não é um nome válido para um ramo." + +#: branch.c:190 +#, c-format +msgid "A branch named '%s' already exists." +msgstr "Já existe um ramo designado '%s'." + +#: branch.c:198 +msgid "Cannot force update the current branch." +msgstr "Não é possÃvel forçar a atualização do ramo atual." + +#: branch.c:218 +#, c-format +msgid "Cannot setup tracking information; starting point '%s' is not a branch." +msgstr "" +"Não é possÃvel configurar ramo a seguir; o ponto inicial '%s' não é um ramo." + +#: branch.c:220 +#, c-format +msgid "the requested upstream branch '%s' does not exist" +msgstr "o ramo a montante solicitado '%s' não existe" + +#: branch.c:222 +msgid "" +"\n" +"If you are planning on basing your work on an upstream\n" +"branch that already exists at the remote, you may need to\n" +"run \"git fetch\" to retrieve it.\n" +"\n" +"If you are planning to push out a new local branch that\n" +"will track its remote counterpart, you may want to use\n" +"\"git push -u\" to set the upstream config as you push." +msgstr "" +"\n" +"Se pretende efetuar rebase do seu trabalho sobre um ramo\n" +"a montante que já existe no remoto, pode ser necessário\n" +"executar \"git fetch\" para obtê-lo.\n" +"\n" +"Se pretende publicar um novo ramo local que irá seguir\n" +"o seu homólogo remoto, pode usar \"git push -u\" para configurar\n" +"o respetivo ramo a montante, ao mesmo tempo que publica." + +#: branch.c:266 +#, c-format +msgid "Not a valid object name: '%s'." +msgstr "Nome de objeto inválido: '%s'." + +#: branch.c:286 +#, c-format +msgid "Ambiguous object name: '%s'." +msgstr "Nome de objeto ambÃguo: '%s'." + +#: branch.c:291 +#, c-format +msgid "Not a valid branch point: '%s'." +msgstr "Ponto no ramo inválido: '%s'." + +#: branch.c:344 +#, c-format +msgid "'%s' is already checked out at '%s'" +msgstr "'%s' já extraÃdo em '%s'" + +#: bundle.c:34 +#, c-format +msgid "'%s' does not look like a v2 bundle file" +msgstr "'%s' não parece ser um ficheiro bundle v2" + +#: bundle.c:61 #, c-format msgid "unrecognized header: %s%s (%d)" msgstr "cabeçalho não reconhecido: %s%s (%d)" -#: bundle.c:89 -#: builtin/commit.c:753 +#: bundle.c:87 builtin/commit.c:766 #, c-format msgid "could not open '%s'" -msgstr "não é possivel abrir '%s'" +msgstr "não é possÃvel abrir '%s'" -#: bundle.c:140 +#: bundle.c:139 msgid "Repository lacks these prerequisite commits:" -msgstr "" +msgstr "O repositório não possuà estes commits pré-requisitados:" -#: bundle.c:164 -#: sequencer.c:533 -#: sequencer.c:965 -#: builtin/log.c:289 -#: builtin/log.c:719 -#: builtin/log.c:1335 -#: builtin/log.c:1554 -#: builtin/merge.c:347 -#: builtin/shortlog.c:181 +#: 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 "" +msgstr "falha ao configurar percurso de revisões" -#: bundle.c:186 +#: bundle.c:185 #, c-format -msgid "The bundle contains %d ref" -msgid_plural "The bundle contains %d refs" -msgstr[0] "" -msgstr[1] "" +msgid "The bundle contains this ref:" +msgid_plural "The bundle contains these %d refs:" +msgstr[0] "O bundle contém esta referência:" +msgstr[1] "O bundle contém estas %d referências:" #: bundle.c:192 +msgid "The bundle records a complete history." +msgstr "O pacote regista um histórico completo." + +#: bundle.c:194 #, c-format -msgid "The bundle requires this ref" -msgid_plural "The bundle requires these %d refs" -msgstr[0] "" -msgstr[1] "" +msgid "The bundle requires this ref:" +msgid_plural "The bundle requires these %d refs:" +msgstr[0] "O bundle requer esta referência:" +msgstr[1] "O bundle requer estas %d referências:" + +#: bundle.c:253 +msgid "Could not spawn pack-objects" +msgstr "Não foi possÃvel lançar pack-objects" -#: bundle.c:290 +#: bundle.c:264 +msgid "pack-objects died" +msgstr "pack-objects terminou inesperadamente" + +#: bundle.c:304 msgid "rev-list died" -msgstr "rev-list morreu" +msgstr "rev-list terminou inesperadamente" -#: bundle.c:296 -#: builtin/log.c:1231 -#: builtin/shortlog.c:284 +#: bundle.c:353 #, c-format -msgid "unrecognized argument: %s" -msgstr "argumento não reconhecido: %s" +msgid "ref '%s' is excluded by the rev-list options" +msgstr "a referência '%s' é excluÃda pelas opções de rev-list" -#: bundle.c:331 +#: bundle.c:443 builtin/log.c:157 builtin/log.c:1372 builtin/shortlog.c:273 #, c-format -msgid "ref '%s' is excluded by the rev-list options" -msgstr "" +msgid "unrecognized argument: %s" +msgstr "argumento não reconhecido: %s" -#: bundle.c:376 +#: bundle.c:449 msgid "Refusing to create empty bundle." -msgstr "" - -#: bundle.c:394 -msgid "Could not spawn pack-objects" -msgstr "Não foi possÃvel pawn pack-objects" - -#: bundle.c:412 -msgid "pack-objects died" -msgstr "" +msgstr "Criação de bundle vazio recusada." -#: bundle.c:415 +#: bundle.c:459 #, c-format msgid "cannot create '%s'" -msgstr "não consegue crear '%s'" +msgstr "não é possÃvel criar '%s'" -#: bundle.c:437 +#: bundle.c:480 msgid "index-pack died" -msgstr "" +msgstr "index-pack terminou inesperadamente" + +#: color.c:275 +#, c-format +msgid "invalid color value: %.*s" +msgstr "valor de cor inválido: %.*s" -#: commit.c:48 +#: 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 "não consigo parsear %s" +msgstr "não foi possÃvel analisar %s" -#: commit.c:50 +#: commit.c:42 #, c-format msgid "%s %s is not a commit!" msgstr "%s %s não é um commit!" -#: compat/obstack.c:406 -#: compat/obstack.c:408 +#: compat/obstack.c:406 compat/obstack.c:408 msgid "memory exhausted" msgstr "memória esgotada" -#: connected.c:39 +#: config.c:475 config.c:477 +#, fuzzy, c-format +msgid "bad config line %d in %s %s" +msgstr "linha %d de configuração incorreta em %s %s" + +#: config.c:593 +#, c-format +msgid "bad numeric config value '%s' for '%s' in %s %s: %s" +msgstr "valor numérico '%s' da configuração '%s' em %s %s incorreto: %s" + +#: config.c:595 +#, c-format +msgid "bad numeric config value '%s' for '%s': %s" +msgstr "valor numérico '%s' da configuração '%s' incorreto: %s" + +#: config.c:680 +#, c-format +msgid "failed to expand user dir in: '%s'" +msgstr "falha ao expandir diretório de utilizador em: '%s'" + +#: config.c:758 config.c:769 +#, c-format +msgid "bad zlib compression level %d" +msgstr "nÃvel de compressão zlib %d incorreto" + +#: config.c:891 +#, c-format +msgid "invalid mode for object creation: %s" +msgstr "modo inválido para criação de objeto: %s" + +#: config.c:1220 +msgid "unable to parse command-line config" +msgstr "não é possÃvel analisar configuração de linha de comandos" + +#: config.c:1281 +msgid "unknown error occured while reading the configuration files" +msgstr "" +"ocorreu um erro desconhecido durante a leitura dos ficheiros de configuração" + +#: config.c:1629 +#, c-format +msgid "unable to parse '%s' from command-line config" +msgstr "não é possÃvel analisar '%s' da configuração de linha de comandos" + +#: config.c:1631 +#, c-format +msgid "bad config variable '%s' in file '%s' at line %d" +msgstr "variável de configuração '%s' incorreta no ficheiro '%s' na linha %d" + +#: config.c:1690 +#, c-format +msgid "%s has multiple values" +msgstr "%s tem múltiplos valores" + +#: config.c:2226 +#, c-format +msgid "Could not set '%s' to '%s'" +msgstr "Não foi possÃvel definir '%s' como '%s'" + +#: connected.c:69 msgid "Could not run 'git rev-list'" msgstr "Não foi possÃvel executar 'git rev-list'" -#: connected.c:48 +#: connected.c:89 #, c-format msgid "failed write to rev-list: %s" -msgstr "" +msgstr "falha ao escrever para rev-list: %s" -#: connected.c:56 +#: connected.c:97 #, c-format msgid "failed to close rev-list's stdin: %s" -msgstr "" +msgstr "falha ao fechar stdin de rev-list: %s" #: date.c:95 msgid "in the future" -msgstr "" +msgstr "no futuro" #: date.c:101 #, c-format msgid "%lu second ago" msgid_plural "%lu seconds ago" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "há %lu segundo atrás" +msgstr[1] "há %lu segundos atrás" #: date.c:108 #, c-format msgid "%lu minute ago" msgid_plural "%lu minutes ago" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "há %lu minuto atrás" +msgstr[1] "há %lu minutos atrás" #: date.c:115 #, c-format msgid "%lu hour ago" msgid_plural "%lu hours ago" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "há %lu hora atrás" +msgstr[1] "há %lu horas atrás" #: date.c:122 #, c-format msgid "%lu day ago" msgid_plural "%lu days ago" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "há %lu dia atrás" +msgstr[1] "há %lu dias atrás" #: date.c:128 #, c-format msgid "%lu week ago" msgid_plural "%lu weeks ago" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "há %lu semana atrás" +msgstr[1] "há %lu semanas atrás" #: date.c:135 #, c-format msgid "%lu month ago" msgid_plural "%lu months ago" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "há %lu mês atrás" +msgstr[1] "há %lu meses atrás" #: date.c:146 #, c-format msgid "%lu year" msgid_plural "%lu years" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%lu ano" +msgstr[1] "%lu anos" +#. TRANSLATORS: "%s" is "<n> years" #: date.c:149 #, c-format msgid "%s, %lu month ago" msgid_plural "%s, %lu months ago" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "há %s e %lu mês" +msgstr[1] "há %s e %lu meses" -#: date.c:154 -#: date.c:159 +#: date.c:154 date.c:159 #, c-format msgid "%lu year ago" msgid_plural "%lu years ago" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "há %lu ano atrás" +msgstr[1] "há %lu anos atrás" -#: diff.c:105 +#: diffcore-order.c:24 #, c-format -msgid " Failed to parse dirstat cut-off percentage '%.*s'\n" -msgstr "" +msgid "failed to read orderfile '%s'" +msgstr "falha ao ler o ficheiro de comando '%s'" -#: diff.c:110 +#: diffcore-rename.c:536 +msgid "Performing inexact rename detection" +msgstr "Deteção de mudança de nome inexata em curso" + +#: diff.c:115 #, c-format -msgid " Unknown dirstat parameter '%.*s'\n" -msgstr "" +msgid " Failed to parse dirstat cut-off percentage '%s'\n" +msgstr " Falha ao analisar percentagem limite de dirstat '%s'\n" -#: diff.c:210 +#: diff.c:120 +#, c-format +msgid " Unknown dirstat parameter '%s'\n" +msgstr " Parâmetro de dirstat desconhecido '%s'\n" + +#: diff.c:215 +#, c-format +msgid "Unknown value for 'diff.submodule' config variable: '%s'" +msgstr "Valor desconhecido na variável de configuração 'diff.submodule': '%s'" + +#: diff.c:267 #, c-format msgid "" "Found errors in 'diff.dirstat' config variable:\n" "%s" msgstr "" +"Erros encontrados na variável de configuração 'diff.dirstat':\n" +"%s" -#: diff.c:1400 -msgid " 0 files changed\n" -msgstr " 0 ficheros modificados\n" - -#: diff.c:1404 -#, c-format -msgid " %d file changed" -msgid_plural " %d files changed" -msgstr[0] " %d ficheiro modificado" -msgstr[1] " %d ficheiros modificados" - -#: diff.c:1421 +#: diff.c:2997 #, c-format -msgid ", %d insertion(+)" -msgid_plural ", %d insertions(+)" -msgstr[0] ", %d adição(+)" -msgstr[1] ", %d adições(+)" +msgid "external diff died, stopping at %s" +msgstr "o diff externo terminou inesperadamente, interrompido em %s" -#: diff.c:1432 -#, c-format -msgid ", %d deletion(-)" -msgid_plural ", %d deletions(-)" -msgstr[0] ", %d eliminado(-)" -msgstr[1] ", %d eliminados(-)" +#: diff.c:3393 +msgid "--follow requires exactly one pathspec" +msgstr "--follow requer exatamente um único especificador de caminho" -#: diff.c:3478 +#: diff.c:3556 #, c-format msgid "" "Failed to parse --dirstat/-X option parameter:\n" "%s" msgstr "" +"Falha ao analisar parâmetro da opção --dirstat/-X:\n" +"%s" + +#: diff.c:3570 +#, c-format +msgid "Failed to parse --submodule option parameter: '%s'" +msgstr "Falha ao analisar parâmetro da opção --submodule: '%s'" + +#: dir.c:2004 +msgid "failed to get kernel name and information" +msgstr "falha ao obter nome e informação do kernel" -#: gpg-interface.c:59 +#: dir.c:2123 +msgid "Untracked cache is disabled on this system or location." +msgstr "A cache não controlada está desativada neste sistema ou localização." + +#: gpg-interface.c:166 gpg-interface.c:237 msgid "could not run gpg." -msgstr "não consegue ejecutar gpg." +msgstr "não foi possÃvel executar gpg." -#: gpg-interface.c:71 +#: gpg-interface.c:178 msgid "gpg did not accept the data" -msgstr "" +msgstr "gpg não aceitou os dados" -#: gpg-interface.c:82 +#: gpg-interface.c:189 msgid "gpg failed to sign the data" -msgstr "" +msgstr "gpg não assinou os dados" + +#: gpg-interface.c:222 +#, c-format +msgid "could not create temporary file '%s': %s" +msgstr "não foi possÃvel criar ficheiro temporário '%s': %s" + +#: gpg-interface.c:225 +#, c-format +msgid "failed writing detached signature to '%s': %s" +msgstr "falha ao escrever assinatura destacada em '%s': %s" -#: grep.c:1280 +#: grep.c:1718 #, c-format msgid "'%s': unable to read %s" -msgstr "" +msgstr "'%s': não foi possÃvel ler %s" -#: grep.c:1297 +#: grep.c:1735 #, c-format msgid "'%s': %s" msgstr "'%s': %s" -#: grep.c:1308 +#: grep.c:1746 #, c-format msgid "'%s': short read %s" -msgstr "" +msgstr "'%s': leitura truncada %s" -#: help.c:207 +#: help.c:205 #, c-format msgid "available git commands in '%s'" -msgstr "" +msgstr "comandos do git disponÃvel em '%s'" -#: help.c:214 +#: help.c:212 msgid "git commands available from elsewhere on your $PATH" -msgstr "" +msgstr "comandos do git disponÃveis noutras localizações em $PATH" + +#: help.c:244 +msgid "These are common Git commands used in various situations:" +msgstr "Estes são comandos do Git comuns usados em diversas situações:" -#: help.c:270 +#: 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' parece ser um comando do git, mas não é possÃvel\n" +"executá-lo. Talvez git-%s esteja danificado?" -#: help.c:327 +#: help.c:366 msgid "Uh oh. Your system reports no Git commands at all." -msgstr "" +msgstr "Ai ai. Não há nenhum comando do Git disponÃvel no sistema." -#: help.c:349 +#: 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 "" +"AVISO: Invocou um comando do Git designado '%s' que não existe.\n" +"Continuando, assumindo que queria dizer '%s'" -#: help.c:354 +#: help.c:393 #, c-format msgid "in %0.1f seconds automatically..." -msgstr "" +msgstr "automaticamente em %0.1f..." -#: help.c:361 +#: help.c:400 #, c-format msgid "git: '%s' is not a git command. See 'git --help'." -msgstr "" +msgstr "git: '%s' não é um comando do git. Consulte 'git --help'." -#: help.c:365 +#: help.c:404 help.c:464 msgid "" "\n" "Did you mean this?" @@ -336,23 +670,699 @@ msgid_plural "" "\n" "Did you mean one of these?" msgstr[0] "" +"\n" +"Queria dizer isto?" msgstr[1] "" +"\n" +"Queria dizer deste?" + +#: help.c:460 +#, c-format +msgid "%s: %s - %s" +msgstr "%s: %s - %s" + +#: merge.c:41 +msgid "failed to read the cache" +msgstr "falha ao ler a cache" + +#: 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 "não foi possÃvel escrever novo ficheiro de Ãndice" + +#: merge-recursive.c:189 +#, c-format +msgid "(bad commit)\n" +msgstr "(commit incorreto)\n" + +#: merge-recursive.c:209 +#, c-format +msgid "addinfo_cache failed for path '%s'" +msgstr "addinfo_cache falhou no caminho '%s'" + +#: merge-recursive.c:270 +msgid "error building trees" +msgstr "erro ao construir árvores" + +#: merge-recursive.c:689 +#, c-format +msgid "failed to create path '%s'%s" +msgstr "falha ao criar o caminho '%s'%s" + +#: merge-recursive.c:700 +#, c-format +msgid "Removing %s to make room for subdirectory\n" +msgstr "A remover %s para criar espaço para o subdiretório\n" + +#: merge-recursive.c:714 merge-recursive.c:735 +msgid ": perhaps a D/F conflict?" +msgstr ": talvez um conflito D/F?" + +#: merge-recursive.c:725 +#, c-format +msgid "refusing to lose untracked file at '%s'" +msgstr "recusando-se a perder ficheiro não controlado em '%s'" + +#: merge-recursive.c:765 +#, c-format +msgid "cannot read object %s '%s'" +msgstr "não é possÃvel ler o objeto %s: '%s'" + +#: merge-recursive.c:767 +#, c-format +msgid "blob expected for %s '%s'" +msgstr "blob para %s '%s' esperado" + +#: merge-recursive.c:790 builtin/clone.c:374 +#, c-format +msgid "failed to open '%s'" +msgstr "falha ao abrir '%s'" + +#: merge-recursive.c:798 +#, c-format +msgid "failed to symlink '%s'" +msgstr "falha ao criar a ligação simbólica '%s'" + +#: merge-recursive.c:801 +#, c-format +msgid "do not know what to do with %06o %s '%s'" +msgstr "não sei o que fazer com %06o %s '%s'" + +#: merge-recursive.c:939 +msgid "Failed to execute internal merge" +msgstr "Falha ao executar merge interno" + +#: merge-recursive.c:943 +#, c-format +msgid "Unable to add %s to database" +msgstr "Não é possÃvel adicionar %s à base de dados" + +#: merge-recursive.c:959 +msgid "unsupported object type in the tree" +msgstr "tipo de objeto sem suporte encontrado na árvore" + +#: 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 "" +"CONFLITO (%s/eliminar): %s eliminado em %s e %s em %s. Versão de %s de %s " +"deixada na árvore." + +#: 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 "" +"CONFLITO (%s/eliminar): %s eliminado em %s e %s em %s. Versão de %s de %s " +"deixada na árvore em %s." + +#: merge-recursive.c:1094 +msgid "rename" +msgstr "mudar nome" + +#: merge-recursive.c:1094 +msgid "renamed" +msgstr "nome mudado" + +#: merge-recursive.c:1150 +#, c-format +msgid "%s is a directory in %s adding as %s instead" +msgstr "%s é um diretório em %s adicionando %s no seu lugar" + +#: merge-recursive.c:1172 +#, c-format +msgid "" +"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s" +"\"->\"%s\" in \"%s\"%s" +msgstr "" +"CONFLITO (mudar nome/mudar nome): Mudar o nome \"%s\"->\"%s\" no ramo \"%s\" " +"mudar o nome \"%s\"->\"%s\" em \"%s\"%s" + +#: merge-recursive.c:1177 +msgid " (left unresolved)" +msgstr " (por resolver)" + +#: merge-recursive.c:1231 +#, c-format +msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s" +msgstr "" +"CONFLITO (mudar nome/mudar nome): Mudar de nome %s->%s em %s. Mudar o nome " +"%s->%s em %s" + +#: merge-recursive.c:1261 +#, c-format +msgid "Renaming %s to %s and %s to %s instead" +msgstr "A mudar o nome de %s para %s e de %s para %s, em alternativa" + +#: merge-recursive.c:1460 +#, c-format +msgid "CONFLICT (rename/add): Rename %s->%s in %s. %s added in %s" +msgstr "" +"CONFLITO (mudar nome/adicionar): Mudar o nome %s->%s em %s. %s adicionado em " +"%s" + +#: merge-recursive.c:1470 +#, c-format +msgid "Adding merged %s" +msgstr "A adicionar %s integrado" + +#: merge-recursive.c:1475 merge-recursive.c:1677 +#, c-format +msgid "Adding as %s instead" +msgstr "A adicionar como %s, em alternativa." + +#: merge-recursive.c:1526 +#, c-format +msgid "cannot read object %s" +msgstr "não foi possÃvel ler o objeto %s" + +#: merge-recursive.c:1529 +#, c-format +msgid "object %s is not a blob" +msgstr "o objeto %s não é um blob" + +#: merge-recursive.c:1581 +msgid "modify" +msgstr "modificar" + +#: merge-recursive.c:1581 +msgid "modified" +msgstr "modificado" + +#: merge-recursive.c:1591 +msgid "content" +msgstr "conteúdo" + +#: merge-recursive.c:1598 +msgid "add/add" +msgstr "adicionar/adicionar" + +#: merge-recursive.c:1632 +#, c-format +msgid "Skipped %s (merged same as existing)" +msgstr "%s ignorado (integrado é igual ao existente)" + +#: merge-recursive.c:1646 +#, c-format +msgid "Auto-merging %s" +msgstr "Merge automático de %s" + +#: merge-recursive.c:1650 git-submodule.sh:1048 +msgid "submodule" +msgstr "submódulo" + +#: merge-recursive.c:1651 +#, c-format +msgid "CONFLICT (%s): Merge conflict in %s" +msgstr "CONFLITO (%s): conflito de merge em %s" + +#: merge-recursive.c:1737 +#, c-format +msgid "Removing %s" +msgstr "A remover %s" + +#: merge-recursive.c:1762 +msgid "file/directory" +msgstr "ficheiro/diretório" + +#: merge-recursive.c:1768 +msgid "directory/file" +msgstr "diretório/ficheiro" + +#: merge-recursive.c:1773 +#, c-format +msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s" +msgstr "" +"CONFLITO (%s): Há um diretório designado %s em %s. A adicionar %s como %s" + +#: merge-recursive.c:1783 +#, c-format +msgid "Adding %s" +msgstr "A adicionar %s" + +#: merge-recursive.c:1800 +msgid "Fatal merge failure, shouldn't happen." +msgstr "Falha de merge fatal, não devia acontecer." + +#: merge-recursive.c:1819 +msgid "Already up-to-date!" +msgstr "Já está atualizado!" + +#: merge-recursive.c:1828 +#, c-format +msgid "merging of trees %s and %s failed" +msgstr "falha ao realizar merge das árvores %s e %s" + +#: merge-recursive.c:1858 +#, c-format +msgid "Unprocessed path??? %s" +msgstr "Caminho não processado??? %s" + +#: merge-recursive.c:1906 +msgid "Merging:" +msgstr "A realizar merge:" + +#: merge-recursive.c:1919 +#, c-format +msgid "found %u common ancestor:" +msgid_plural "found %u common ancestors:" +msgstr[0] "%u antecessor comum encontrado:" +msgstr[1] "%u antecessores comuns encontrados:" + +#: merge-recursive.c:1956 +msgid "merge returned no commit" +msgstr "merge não retornou nenhum commit" + +#: merge-recursive.c:2013 +#, c-format +msgid "Could not parse object '%s'" +msgstr "Não foi possÃvel analisar o objeto '%s'" + +#: merge-recursive.c:2024 builtin/merge.c:646 +msgid "Unable to write index." +msgstr "Não é possÃvel escrever no Ãndice." + +#: notes-utils.c:41 +msgid "Cannot commit uninitialized/unreferenced notes tree" +msgstr "" +"Não é possÃvel fazer commit de árvore de notas não inicializada ou não " +"referenciada" + +#: notes-utils.c:100 +#, c-format +msgid "Bad notes.rewriteMode value: '%s'" +msgstr "Valor de notes.rewriteMode incorreto: '%s'" + +#: notes-utils.c:110 +#, c-format +msgid "Refusing to rewrite notes in %s (outside of refs/notes/)" +msgstr "Recusando-se a reescrever notas em %s (fora de refs/notes/)" + +#. TRANSLATORS: The first %s is the name of the +#. environment variable, the second %s is its value +#: notes-utils.c:137 +#, c-format +msgid "Bad %s value: '%s'" +msgstr "Valor incorreto de %s: '%s'" + +#: object.c:242 +#, c-format +msgid "unable to parse object: %s" +msgstr "não foi possÃvel analisar o objeto: %s" + +#: parse-options.c:570 +msgid "..." +msgstr "..." + +#: parse-options.c:588 +#, c-format +msgid "usage: %s" +msgstr "utilização: %s" + +#. TRANSLATORS: the colon here should align with the +#. one in "usage: %s" translation +#: parse-options.c:592 +#, c-format +msgid " or: %s" +msgstr " ou: %s" + +#: parse-options.c:595 +#, c-format +msgid " %s" +msgstr " %s" + +#: parse-options.c:629 +msgid "-NUM" +msgstr "-NUM" + +#: parse-options-cb.c:108 +#, c-format +msgid "malformed object name '%s'" +msgstr "nome do objeto malformado '%s'" + +#: path.c:752 +#, c-format +msgid "Could not make %s writable by group" +msgstr "Não foi possÃvel dar permissão de escrita ao grupo a %s" + +#: pathspec.c:133 +msgid "global 'glob' and 'noglob' pathspec settings are incompatible" +msgstr "" +"as definições globais 'glob' e 'noglob' de especificador de caminho " +"(pathspec) são incompatÃveis" + +#: pathspec.c:143 +msgid "" +"global 'literal' pathspec setting is incompatible with all other global " +"pathspec settings" +msgstr "" +"a definição global de especificador de caminho 'literal' é incompatÃvel com " +"todas as outras definições globais de especificador de caminho (pathspec)" + +#: pathspec.c:177 +msgid "invalid parameter for pathspec magic 'prefix'" +msgstr "parâmetro inválido na mágica 'prefix' do especificador de caminho" + +#: pathspec.c:183 +#, c-format +msgid "Invalid pathspec magic '%.*s' in '%s'" +msgstr "Mágica do especificador de caminho '%.*s' inválida em '%s'" + +#: pathspec.c:187 +#, c-format +msgid "Missing ')' at the end of pathspec magic in '%s'" +msgstr "Falta um ')' no final da mágica do especificador de caminho em '%s'" + +#: pathspec.c:205 +#, c-format +msgid "Unimplemented pathspec magic '%c' in '%s'" +msgstr "Mágica de especificador de caminho '%c' em '%s' não implementada" + +#: pathspec.c:230 +#, c-format +msgid "%s: 'literal' and 'glob' are incompatible" +msgstr "%s: 'literal' e 'glob' são incompatÃveis" + +#: pathspec.c:241 +#, c-format +msgid "%s: '%s' is outside repository" +msgstr "%s: '%s' está fora do repositório" + +#: pathspec.c:291 +#, c-format +msgid "Pathspec '%s' is in submodule '%.*s'" +msgstr "O caminho '%s' está dentro do submódulo '%.*s'" + +#: pathspec.c:353 +#, c-format +msgid "%s: pathspec magic not supported by this command: %s" +msgstr "" +"%s: mágica de especificador de caminho não suportada por este comando: %s" + +#: pathspec.c:433 +#, c-format +msgid "pathspec '%s' is beyond a symbolic link" +msgstr "o especificador de caminho '%s' é indicado por uma ligação simbólica" + +#: pathspec.c:442 +msgid "" +"There is nothing to exclude from by :(exclude) patterns.\n" +"Perhaps you forgot to add either ':/' or '.' ?" +msgstr "" +"Não há nada para excluir de acordo com o padrão :(excluir).\n" +"Talvez se tenha esquecido de acrescentar ':/' ou '.' ?" + +#: pretty.c:969 +msgid "unable to parse --pretty format" +msgstr "não foi possÃvel analisar o formato de --pretty" + +#: progress.c:235 +msgid "done" +msgstr "concluÃdo" + +#: read-cache.c:1281 +#, c-format +msgid "" +"index.version set, but the value is invalid.\n" +"Using version %i" +msgstr "" +"index.version definido, mas com valor inválido.\n" +"A usar a versão %i" + +#: read-cache.c:1291 +#, c-format +msgid "" +"GIT_INDEX_VERSION set, but the value is invalid.\n" +"Using version %i" +msgstr "" +"GIT_INDEX_VERSION definido, mas com valor inválido.\n" +"A usar a versão %i" + +#: 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 "Não foi possÃvel abrir '%s' para escrita" + +#: refs/files-backend.c:2374 +#, c-format +msgid "could not delete reference %s: %s" +msgstr "não foi possÃvel eliminar a referência %s: %s" + +#: refs/files-backend.c:2377 +#, c-format +msgid "could not delete references: %s" +msgstr "não foi possÃvel eliminar as referências: %s" + +#: refs/files-backend.c:2386 +#, c-format +msgid "could not remove reference %s" +msgstr "não foi possÃvel eliminar a referência %s" + +#: ref-filter.c:55 +#, c-format +msgid "expected format: %%(color:<color>)" +msgstr "formato esperado: %%(color:<cor>)" + +#: ref-filter.c:57 +#, c-format +msgid "unrecognized color: %%(color:%s)" +msgstr "cor não reconhecida: %%(color:%s)" + +#: ref-filter.c:71 +#, c-format +msgid "unrecognized format: %%(%s)" +msgstr "formato não reconhecido: %%(%s)" + +#: ref-filter.c:77 +#, c-format +msgid "%%(body) does not take arguments" +msgstr "%%(body) não leva argumentos" + +#: ref-filter.c:84 +#, c-format +msgid "%%(subject) does not take arguments" +msgstr "%%(subject) não leva argumentos" + +#: ref-filter.c:101 +#, c-format +msgid "positive value expected contents:lines=%s" +msgstr "valor positivo esperado contents:lines=%s" + +#: ref-filter.c:103 +#, c-format +msgid "unrecognized %%(contents) argument: %s" +msgstr "argumento de %%(contents) não reconhecido: %s" + +#: ref-filter.c:113 +#, c-format +msgid "unrecognized %%(objectname) argument: %s" +msgstr "argumento de %%(objectname) não reconhecido: %s" + +#: ref-filter.c:135 +#, c-format +msgid "expected format: %%(align:<width>,<position>)" +msgstr "formato esperado: %%(align:<largura>,<posição>)" + +#: ref-filter.c:147 +#, c-format +msgid "unrecognized position:%s" +msgstr "posição não reconhecida:%s" + +#: ref-filter.c:151 +#, c-format +msgid "unrecognized width:%s" +msgstr "largura não reconhecida:%s" + +#: ref-filter.c:157 +#, c-format +msgid "unrecognized %%(align) argument: %s" +msgstr "argumento de %%(align) não reconhecido: %s" + +#: ref-filter.c:161 +#, c-format +msgid "positive width expected with the %%(align) atom" +msgstr "largura positiva esperada com o átomo %%(algn)" + +#: ref-filter.c:244 +#, c-format +msgid "malformed field name: %.*s" +msgstr "nome de ficheiro malformado: %.*s" + +#: ref-filter.c:270 +#, c-format +msgid "unknown field name: %.*s" +msgstr "nome do campo desconhecido: %.*s" + +#: ref-filter.c:372 +#, c-format +msgid "format: %%(end) atom used without corresponding atom" +msgstr "formato: átomo %%(end) utilizado sem átomo correspondente" -#: remote.c:1607 +#: ref-filter.c:424 +#, c-format +msgid "malformed format string %s" +msgstr "cadeia malformada %s" + +#: ref-filter.c:878 +msgid ":strip= requires a positive integer argument" +msgstr ":strip= requer um inteiro positivo como argumento" + +#: ref-filter.c:883 +#, c-format +msgid "ref '%s' does not have %ld components to :strip" +msgstr "a referência '%s' não tem %ld componentes como se indica em :strip" + +#: ref-filter.c:1046 +#, c-format +msgid "unknown %.*s format %s" +msgstr "formato de %.*s desconhecido %s" + +#: ref-filter.c:1066 ref-filter.c:1097 +#, c-format +msgid "missing object %s for %s" +msgstr "falta o objeto %s de %s" + +#: ref-filter.c:1069 ref-filter.c:1100 +#, c-format +msgid "parse_object_buffer failed on %s for %s" +msgstr "falha ao invocar parse_object_buffer sobre %s de %s" + +#: ref-filter.c:1311 +#, c-format +msgid "malformed object at '%s'" +msgstr "objeto malformado em '%s'" + +#: ref-filter.c:1373 +#, c-format +msgid "ignoring ref with broken name %s" +msgstr "a referência %s com nome danificado foi ignorada" + +#: ref-filter.c:1378 +#, c-format +msgid "ignoring broken ref %s" +msgstr "a referência %s danificada foi ignorada" + +#: ref-filter.c:1651 +#, c-format +msgid "format: %%(end) atom missing" +msgstr "formato: falta átomo %%(end)" + +#: ref-filter.c:1705 +#, c-format +msgid "malformed object name %s" +msgstr "nome de objeto malformado %s" + +#: remote.c:745 +#, c-format +msgid "Cannot fetch both %s and %s to %s" +msgstr "Não é possÃvel obter %s e %s ao mesmo tempo para %s" + +#: remote.c:749 +#, c-format +msgid "%s usually tracks %s, not %s" +msgstr "%s geralmente segue %s, não %s" + +#: remote.c:753 +#, c-format +msgid "%s tracks both %s and %s" +msgstr "%s segue %s e %s em simultâneo" + +#: remote.c:761 +msgid "Internal error" +msgstr "Erro interno" + +#: remote.c:1677 remote.c:1720 +msgid "HEAD does not point to a branch" +msgstr "HEAD não aponta para um ramo" + +#: remote.c:1686 +#, c-format +msgid "no such branch: '%s'" +msgstr "ramo inexistente: '%s'" + +#: remote.c:1689 +#, c-format +msgid "no upstream configured for branch '%s'" +msgstr "nenhum ramo a montante configurado para o ramo '%s'" + +#: remote.c:1695 +#, c-format +msgid "upstream branch '%s' not stored as a remote-tracking branch" +msgstr "o ramo a montante '%s' não está guardado como um ramo remoto seguido" + +#: remote.c:1710 +#, c-format +msgid "push destination '%s' on remote '%s' has no local tracking branch" +msgstr "" +"o destino de publicação '%s' no remoto '%s' não é seguido por nenhum ramo " +"local" + +#: remote.c:1725 +#, c-format +msgid "branch '%s' has no remote for pushing" +msgstr "o ramo '%s' não tem nenhum remoto para publicar" + +#: remote.c:1736 +#, c-format +msgid "push refspecs for '%s' do not include '%s'" +msgstr "" +"'%2$s' não faz parte dos especificadores de referência de '%1$s' para " +"publicação" + +#: remote.c:1749 +msgid "push has no destination (push.default is 'nothing')" +msgstr "publicação sem destino (push.default é 'nothing')" + +#: remote.c:1771 +msgid "cannot resolve 'simple' push to a single destination" +msgstr "não é possÃvel resolver a publicação 'simple' num único destino" + +#: remote.c:2073 +#, c-format +msgid "Your branch is based on '%s', but the upstream is gone.\n" +msgstr "A base do seu ramo é '%s', mas o ramo a montante desapareceu.\n" + +#: remote.c:2077 +msgid " (use \"git branch --unset-upstream\" to fixup)\n" +msgstr " (use \"git branch --unset-upstream\" para corrigir)\n" + +#: remote.c:2080 +#, c-format +msgid "Your branch is up-to-date with '%s'.\n" +msgstr "O seu ramo está atualizado com '%s'.\n" + +#: 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] "A sua rama está à frente de '%s' pelo commit %d.\n" -msgstr[1] "A sua rama está à frente de '%s' pelos commites %d.\n" +msgstr[0] "O seu ramo está à frente de '%s' por %d commit.\n" +msgstr[1] "O seu ramo está à frente de '%s' por %d commits.\n" -#: remote.c:1613 +#: remote.c:2090 +msgid " (use \"git push\" to publish your local commits)\n" +msgstr " (use \"git push\" para publicar os commits locais)\n" + +#: 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" +msgid_plural "" +"Your branch is behind '%s' by %d commits, and can be fast-forwarded.\n" msgstr[0] "" +"O seu ramo está atrás de '%s' por %d commit, podendo ser atualizado com " +"avanço rápido.\n" msgstr[1] "" +"O seu ramo está atrás de '%s' por %d commits, podendo ser atualizado com " +"avanço rápido.\n" -#: remote.c:1621 +#: remote.c:2101 +msgid " (use \"git pull\" to update your local branch)\n" +msgstr " (use \"git pull\" para atualizar o seu ramo local)\n" + +#: remote.c:2104 #, c-format msgid "" "Your branch and '%s' have diverged,\n" @@ -361,1264 +1371,2924 @@ msgid_plural "" "Your branch and '%s' have diverged,\n" "and have %d and %d different commits each, respectively.\n" msgstr[0] "" +"O seu ramo e '%s' divergiram,\n" +"tendo cada um %d e %d commit diferente, respetivamente.\n" msgstr[1] "" +"O seu ramo e '%s' divergiram,\n" +"tendo cada um %d e %d commits diferentes, respetivamente.\n" + +#: remote.c:2114 +msgid " (use \"git pull\" to merge the remote branch into yours)\n" +msgstr " (use \"git pull\" para incorporar o ramo remoto no seu)\n" + +#: revision.c:2131 +msgid "your current branch appears to be broken" +msgstr "o ramo atual parece estar danificado" -#: sequencer.c:121 -#: builtin/merge.c:865 -#: builtin/merge.c:978 -#: builtin/merge.c:1088 -#: builtin/merge.c:1098 +#: revision.c:2134 #, c-format -msgid "Could not open '%s' for writing" -msgstr "" +msgid "your current branch '%s' does not have any commits yet" +msgstr "o ramo atual '%s' ainda não contém nenhum commit" + +#: revision.c:2328 +msgid "--first-parent is incompatible with --bisect" +msgstr "--first-parent é incompatÃvel com --bisect" -#: sequencer.c:123 -#: builtin/merge.c:333 -#: builtin/merge.c:868 -#: builtin/merge.c:1090 -#: builtin/merge.c:1103 +#: run-command.c:92 +msgid "open /dev/null failed" +msgstr "falha ao abrir /dev/null" + +#: run-command.c:94 #, c-format -msgid "Could not write to '%s'" -msgstr "Não foi possÃvel escrever para '%s'" +msgid "dup2(%d,%d) failed" +msgstr "dup2(%d,%d) falhou" + +#: send-pack.c:295 +msgid "failed to sign the push certificate" +msgstr "falha ao assinar o certificado de publicação" -#: sequencer.c:144 +#: send-pack.c:404 +msgid "the receiving end does not support --signed push" +msgstr "o recetor não suporta publicação com --signed" + +#: send-pack.c:406 +msgid "" +"not sending a push certificate since the receiving end does not support --" +"signed push" +msgstr "" +"certificado de publicação não enviado uma vez que o recetor não suporta " +"publicação com --signed" + +#: send-pack.c:418 +msgid "the receiving end does not support --atomic push" +msgstr "o recetor não suporta publicação com --atomic" + +#: sequencer.c:174 msgid "" "after resolving the conflicts, mark the corrected paths\n" "with 'git add <paths>' or 'git rm <paths>'" msgstr "" +"depois de resolver os conflitos, marque os caminhos corrigidos\n" +"com 'git add <caminhos>' ou 'git rm <caminhos>'" -#: sequencer.c:147 +#: 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 "" +"depois de resolver os conflitos, marque os caminhos corrigidos\n" +"com 'git add <caminhos>' ou 'git rm <caminhos>'\n" +"e faça commit do resultado com 'git commit'" -#: sequencer.c:160 -#: sequencer.c:741 -#: sequencer.c:824 +#: sequencer.c:190 sequencer.c:833 sequencer.c:913 #, c-format msgid "Could not write to %s" -msgstr "Não foi possÃvel gravar para %s" +msgstr "Não foi possÃvel escrever em %s" -#: sequencer.c:163 -#, c-format +#: sequencer.c:193 +#, fuzzy, c-format msgid "Error wrapping up %s" -msgstr "" +msgstr "Erro ao isolar %s" -#: sequencer.c:178 +#: sequencer.c:208 msgid "Your local changes would be overwritten by cherry-pick." -msgstr "" +msgstr "As suas alterações locais serão substituÃdas por cherry-pick." -#: sequencer.c:180 +#: sequencer.c:210 msgid "Your local changes would be overwritten by revert." -msgstr "" +msgstr "As suas alterações locais serão substituÃdas por revert." -#: sequencer.c:183 +#: sequencer.c:213 msgid "Commit your changes or stash them to proceed." -msgstr "" +msgstr "Faça commit ou stash das suas alterações para continuar." #. TRANSLATORS: %s will be "revert" or "cherry-pick" -#: sequencer.c:233 +#: sequencer.c:300 #, c-format msgid "%s: Unable to write new index file" -msgstr "" +msgstr "%s: Não foi possÃvel escrever novo ficheiro de Ãndice" -#: sequencer.c:261 +#: sequencer.c:318 msgid "Could not resolve HEAD commit\n" -msgstr "" +msgstr "Não foi possÃvel resolver o commit HEAD\n" -#: sequencer.c:282 +#: sequencer.c:338 msgid "Unable to update cache tree\n" -msgstr "" +msgstr "Não foi possÃvel atualizar a árvore de cache\n" -#: sequencer.c:323 +#: sequencer.c:390 #, c-format msgid "Could not parse commit %s\n" -msgstr "Não foi possÃvel analisar commit %s\n" +msgstr "Não foi possÃvel analisar o commit %s\n" -#: sequencer.c:328 +#: sequencer.c:395 #, c-format msgid "Could not parse parent commit %s\n" -msgstr "Não foi possÃvel analisar commit parent %s\n" +msgstr "Não foi possÃvel analisar o commit pai %s\n" -#: sequencer.c:358 +#: sequencer.c:460 msgid "Your index file is unmerged." -msgstr "O seu ficheiro de Ãndice é não fundido." +msgstr "Ficheiro de Ãndice não integrado." -#: sequencer.c:361 -msgid "You do not have a valid HEAD" -msgstr "Você não tem uma HEAD válida" - -#: sequencer.c:376 +#: sequencer.c:479 #, c-format msgid "Commit %s is a merge but no -m option was given." -msgstr "" +msgstr "O commit %s é um merge mas nenhuma opção -m fornecida." -#: sequencer.c:384 +#: sequencer.c:487 #, c-format msgid "Commit %s does not have parent %d" -msgstr "" +msgstr "O commit %s não tem o pai %d" -#: sequencer.c:388 +#: sequencer.c:491 #, c-format msgid "Mainline was specified but commit %s is not a merge." -msgstr "" +msgstr "Linha principal especificada mas o commit %s não é um merge." #. TRANSLATORS: The first %s will be "revert" or #. "cherry-pick", the second %s a SHA1 -#: sequencer.c:399 +#: sequencer.c:504 #, c-format msgid "%s: cannot parse parent commit %s" -msgstr "" +msgstr "%s: não foi possÃvel analisar o commit pai %s" -#: sequencer.c:403 +#: sequencer.c:508 #, c-format msgid "Cannot get commit message for %s" -msgstr "Não é possÃvel obter mensagem commit para %s" +msgstr "Não é possÃvel obter a mensagem de commit de %s" -#: sequencer.c:491 +#: sequencer.c:594 #, c-format msgid "could not revert %s... %s" -msgstr "" +msgstr "não foi possÃvel reverter %s... %s" -#: sequencer.c:492 +#: sequencer.c:595 #, c-format msgid "could not apply %s... %s" -msgstr "" +msgstr "não foi possÃvel aplicar %s... %s" -#: sequencer.c:536 +#: sequencer.c:630 msgid "empty commit set passed" -msgstr "passado commit com o set vazio" +msgstr "o conjunto de commits especificado está vazio" -#: sequencer.c:544 +#: sequencer.c:638 #, c-format msgid "git %s: failed to read the index" -msgstr "" +msgstr "git %s: falha ao ler o Ãndice" -#: sequencer.c:549 +#: sequencer.c:642 #, c-format msgid "git %s: failed to refresh the index" -msgstr "" +msgstr "git %s: falha ao atualizar o Ãndice" -#: sequencer.c:607 +#: sequencer.c:702 #, c-format msgid "Cannot %s during a %s" -msgstr "Não foi possÃvel abrir %s durante um %s" +msgstr "Não foi possÃvel efetuar %s durante %s" -#: sequencer.c:629 +#: sequencer.c:724 #, c-format msgid "Could not parse line %d." -msgstr "Não foi possÃvel parsear linha %d." +msgstr "Não foi possÃvel analisar a linha %d." -#: sequencer.c:634 +#: sequencer.c:729 msgid "No commits parsed." -msgstr "Nenhum commit parseado." +msgstr "Nenhum commit analisado." -#: sequencer.c:647 +#: sequencer.c:741 #, c-format msgid "Could not open %s" msgstr "Não foi possÃvel abrir %s" -#: sequencer.c:651 +#: sequencer.c:745 #, c-format msgid "Could not read %s." msgstr "Não foi possÃvel ler %s." -#: sequencer.c:658 +#: sequencer.c:752 #, c-format msgid "Unusable instruction sheet: %s" -msgstr "" +msgstr "Folha de instruções inutilizável: %s" -#: sequencer.c:686 +#: sequencer.c:782 #, c-format msgid "Invalid key: %s" -msgstr "" +msgstr "Chave inválida: %s" -#: sequencer.c:689 +#: sequencer.c:785 builtin/pull.c:50 builtin/pull.c:52 #, c-format msgid "Invalid value for %s: %s" -msgstr "Valor inválido para %s: %s" +msgstr "Valor inválido de %s: %s" -#: sequencer.c:701 +#: sequencer.c:795 #, c-format msgid "Malformed options sheet: %s" -msgstr "" +msgstr "Folha de opções malformada: %s" -#: sequencer.c:722 +#: sequencer.c:814 msgid "a cherry-pick or revert is already in progress" -msgstr "" +msgstr "cherry-pick ou revert em curso" -#: sequencer.c:723 +#: sequencer.c:815 msgid "try \"git cherry-pick (--continue | --quit | --abort)\"" -msgstr "" +msgstr "tente \"git cherry-pick (--continue | --quit |--abort)\"" -#: sequencer.c:727 +#: sequencer.c:819 #, c-format msgid "Could not create sequencer directory %s" -msgstr "" +msgstr "Não foi possÃvel criar o diretório do sequenciador %s" -#: sequencer.c:743 -#: sequencer.c:828 -#, c-format +#: sequencer.c:835 sequencer.c:917 +#, fuzzy, c-format msgid "Error wrapping up %s." -msgstr "" +msgstr "Erro ao isolar %s." -#: sequencer.c:762 -#: sequencer.c:896 +#: sequencer.c:854 sequencer.c:987 msgid "no cherry-pick or revert in progress" -msgstr "" +msgstr "nenhum cherry-pick ou revert em curso" -#: sequencer.c:764 +#: sequencer.c:856 msgid "cannot resolve HEAD" -msgstr "" +msgstr "não é possÃvel resolver HEAD" -#: sequencer.c:766 +#: sequencer.c:858 msgid "cannot abort from a branch yet to be born" -msgstr "" +msgstr "não é possÃvel abortar um ramo ainda não criado" -#: sequencer.c:788 -#: builtin/apply.c:3682 +#: sequencer.c:878 builtin/apply.c:4287 #, c-format msgid "cannot open %s: %s" -msgstr "não foi possÃvel abrir %s: %s" +msgstr "não é possÃvel abrir %s: %s" -#: sequencer.c:791 +#: sequencer.c:881 #, c-format msgid "cannot read %s: %s" -msgstr "não foi possÃvel ler %s: %s" +msgstr "não é possÃvel ler %s: %s" -#: sequencer.c:792 +#: sequencer.c:882 msgid "unexpected end of file" -msgstr "" +msgstr "fim de ficheiro inesperado" -#: sequencer.c:798 +#: sequencer.c:888 #, c-format msgid "stored pre-cherry-pick HEAD file '%s' is corrupt" -msgstr "" +msgstr "o ficheiro HEAD de pre-cherry-pick '%s' está corrompido" -#: sequencer.c:821 +#: sequencer.c:910 #, c-format msgid "Could not format %s." -msgstr "Não foi possÃvel formatear %s." +msgstr "Não foi possÃvel formatar %s." + +#: sequencer.c:1055 +#, c-format +msgid "%s: can't cherry-pick a %s" +msgstr "%s: não é possÃvel efetuar cherry-pick de %s" -#: sequencer.c:983 +#: sequencer.c:1058 +#, c-format +msgid "%s: bad revision" +msgstr "%s: revisão incorreta" + +#: sequencer.c:1092 msgid "Can't revert as initial commit" -msgstr "" +msgstr "Não é possÃvel reverter como commit inicial" -#: sequencer.c:984 +#: sequencer.c:1093 msgid "Can't cherry-pick into empty head" -msgstr "" +msgstr "Não é possÃvel efetuar cherry-pick numa cabeça vazia" -#: sha1_name.c:864 -msgid "HEAD does not point to a branch" -msgstr "" +#: setup.c:246 +#, c-format +msgid "failed to read %s" +msgstr "falha ao ler %s" + +#: sha1_file.c:1080 +msgid "offset before end of packfile (broken .idx?)" +msgstr "offset antes do fim do ficheiro de pacote (.idx danificado?)" -#: sha1_name.c:867 +#: sha1_file.c:2459 #, c-format -msgid "No such branch: '%s'" -msgstr "Não existe rama '%s'" +msgid "offset before start of pack index for %s (corrupt index?)" +msgstr "offset antes do inÃcio do Ãndice do pacote %s (Ãndice corrompido?)" -#: sha1_name.c:869 +#: sha1_file.c:2463 #, c-format -msgid "No upstream configured for branch '%s'" +msgid "offset beyond end of pack index for %s (truncated index?)" +msgstr "offset depois do fim do Ãndice do pacote %s (Ãndice truncado?)" + +#: 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" +"may be created by mistake. For example,\n" +"\n" +" git checkout -b $br $(git rev-parse ...)\n" +"\n" +"where \"$br\" is somehow empty and a 40-hex ref is created. Please\n" +"examine these refs and maybe delete them. Turn this message off by\n" +"running \"git config advice.objectNameWarning false\"" +msgstr "" +"Normalmente o Git nunca cria referências que terminem em 40 caracteres " +"hexadecimais,\n" +"pois uma referência destas seria ignorada se indicasse só 40 caracteres " +"hexadecimais.\n" +"Estas referências podem ser criadas por engano. Como no exemplo,\n" +"\n" +" git checkout -b $br $(git rev-parse ...)\n" +"\n" +"onde \"$br\" está vazio e é criada uma referência de 40 caracteres " +"hexadecimais.\n" +"Analise estas referências e elimine-as se desejar. Desative esta\n" +"mensagem executando \"git config advice.objectNameWarning false\"" + +#: submodule.c:62 submodule.c:96 +msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first" msgstr "" +"Não é possÃvel alterar .gitmodules não integrado, resolva os conflitos do " +"merge primeiro" + +#: submodule.c:66 submodule.c:100 +#, c-format +msgid "Could not find section in .gitmodules where path=%s" +msgstr "Secção de .gitmodules cujo path=%s não encontrada" + +#: submodule.c:74 +#, c-format +msgid "Could not update .gitmodules entry %s" +msgstr "Não foi possÃvel atualizar o elemento %s de .gitmodules" + +#: submodule.c:107 +#, c-format +msgid "Could not remove .gitmodules entry for %s" +msgstr "Não foi possÃvel remover o elemento %s de .gitmodules" -#: sha1_name.c:872 +#: submodule.c:118 +msgid "staging updated .gitmodules failed" +msgstr "falha ao preparar .gitmodules atualizado" + +#: trailer.c:237 +#, c-format +msgid "running trailer command '%s' failed" +msgstr "falha ao executar o comando trailer '%s'" + +#: trailer.c:492 trailer.c:496 trailer.c:500 trailer.c:554 trailer.c:558 +#: trailer.c:562 #, c-format -msgid "Upstream branch '%s' not stored as a remote-tracking branch" +msgid "unknown value '%s' for key '%s'" +msgstr "valor desconhecido '%s' da chave '%s'" + +#: trailer.c:544 trailer.c:549 builtin/remote.c:289 +#, c-format +msgid "more than one %s" +msgstr "mais do que um %s" + +#: trailer.c:582 +#, c-format +msgid "empty trailer token in trailer '%.*s'" msgstr "" -#: wt-status.c:135 +#: trailer.c:702 +#, c-format +msgid "could not read input file '%s'" +msgstr "não foi possÃvel ler o ficheiro de entrada '%s'" + +#: trailer.c:705 +msgid "could not read from stdin" +msgstr "não foi possÃvel ler da entrada padrão" + +#: trailer.c:857 builtin/am.c:42 +#, c-format +msgid "could not stat %s" +msgstr "não foi possÃvel obter stat de %s" + +#: trailer.c:859 +#, c-format +msgid "file %s is not a regular file" +msgstr "o ficheiro %s não é um ficheiro regular" + +#: trailer.c:861 +#, c-format +msgid "file %s is not writable by user" +msgstr "o ficheiro %s não pode ser escrito pelo utilizador" + +#: trailer.c:873 +msgid "could not open temporary file" +msgstr "não foi possÃvel abrir ficheiro temporário" + +#: trailer.c:912 +#, c-format +msgid "could not rename temporary file to %s" +msgstr "não foi possÃvel mudar o nome do ficheiro temporário para %s" + +#: transport-helper.c:1041 +#, c-format +msgid "Could not read ref %s" +msgstr "Não foi possÃvel ler a referência %s" + +#: unpack-trees.c:203 +msgid "Checking out files" +msgstr "A extrair ficheiros" + +#: urlmatch.c:120 +msgid "invalid URL scheme name or missing '://' suffix" +msgstr "nome de esquema de URL inválido ou falta do sufixo '://'" + +#: urlmatch.c:144 urlmatch.c:297 urlmatch.c:356 +#, c-format +msgid "invalid %XX escape sequence" +msgstr "sequencia de escape %XX inválida" + +#: urlmatch.c:172 +msgid "missing host and scheme is not 'file:'" +msgstr "sistema anfitrião não indicado e o esquema não é do tipo 'file:'" + +#: urlmatch.c:189 +msgid "a 'file:' URL may not have a port number" +msgstr "um URL do tipo 'file:' não pode ter um número de porta" + +#: urlmatch.c:199 +msgid "invalid characters in host name" +msgstr "caracteres inválidos no nome do anfitrião" + +#: urlmatch.c:244 urlmatch.c:255 +msgid "invalid port number" +msgstr "número de porta inválido" + +#: urlmatch.c:322 +msgid "invalid '..' path segment" +msgstr "segmento de caminho '..' inválido" + +#: wrapper.c:222 wrapper.c:381 +#, c-format +msgid "could not open '%s' for reading and writing" +msgstr "não foi possÃvel abrir '%s' para leitura e escrita" + +#: wrapper.c:224 wrapper.c:383 +#, c-format +msgid "could not open '%s' for writing" +msgstr "não foi possÃvel abrir '%s' para escrita" + +#: 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 "não foi possÃvel abrir '%s' para leitura" + +#: wrapper.c:611 +#, c-format +msgid "unable to access '%s': %s" +msgstr "não é possÃvel aceder a '%s': %s" + +#: wrapper.c:632 +#, c-format +msgid "unable to access '%s'" +msgstr "não é possÃvel aceder a '%s'" + +#: wrapper.c:640 +msgid "unable to get current working directory" +msgstr "não é possÃvel de obter o diretório de trabalho atual" + +#: wrapper.c:667 +#, c-format +msgid "could not open %s for writing" +msgstr "não foi possÃvel abrir %s para escrita" + +#: wrapper.c:678 builtin/am.c:410 +#, c-format +msgid "could not write to %s" +msgstr "não foi possÃvel escrever para %s" + +#: wrapper.c:684 +#, c-format +msgid "could not close %s" +msgstr "não foi possÃvel fechar %s" + +#: wt-status.c:149 msgid "Unmerged paths:" -msgstr "caminhos não fundidos:" +msgstr "Caminhos não integrados:" -#: wt-status.c:141 -#: wt-status.c:158 +#: wt-status.c:176 wt-status.c:203 #, c-format msgid " (use \"git reset %s <file>...\" to unstage)" -msgstr "" +msgstr " (use \"git reset %s <ficheiro>...\" para retirar do Ãndice)" -#: wt-status.c:143 -#: wt-status.c:160 +#: wt-status.c:178 wt-status.c:205 msgid " (use \"git rm --cached <file>...\" to unstage)" -msgstr "" +msgstr " (use \"git rm --cached <ficheiro>...\" para retirar do Ãndice)" + +#: wt-status.c:182 +msgid " (use \"git add <file>...\" to mark resolution)" +msgstr " (use \"git add <ficheiro>...\" para marcar como resolvido)" -#: wt-status.c:144 +#: wt-status.c:184 wt-status.c:188 msgid " (use \"git add/rm <file>...\" as appropriate to mark resolution)" -msgstr " (usa \"git add/rm <ficheiro>...\" para marcar como resolvido)" +msgstr "" +" (use \"git add/rm <ficheiro>...\" conforme apropriado para marcar como " +"resolvido)" + +#: wt-status.c:186 +msgid " (use \"git rm <file>...\" to mark resolution)" +msgstr " (use \"git rm <ficheiro>...\" para marcar como resolvido)" -#: wt-status.c:152 +#: wt-status.c:197 wt-status.c:880 msgid "Changes to be committed:" -msgstr "Mudanças a serem commitadas" +msgstr "Alterações incluÃdas no próximo commit:" -#: wt-status.c:170 +#: wt-status.c:215 wt-status.c:889 msgid "Changes not staged for commit:" -msgstr "" +msgstr "Alterações não preparadas para commit:" -#: wt-status.c:174 +#: wt-status.c:219 msgid " (use \"git add <file>...\" to update what will be committed)" -msgstr " (usa \"git add <ficheiro>...\" para actualizar o que vai ser commitado)" +msgstr "" +" (use \"git add <ficheiro>...\" para atualizar o que será incluÃdo no " +"commit)" -#: wt-status.c:176 +#: wt-status.c:221 msgid " (use \"git add/rm <file>...\" to update what will be committed)" -msgstr " (usa \"git add/rm <ficheiro>...\" para actualizar o que vai ser commitado)" +msgstr "" +" (use \"git add/rm <ficheiro>...\" para atualizar o que será incluÃdo no " +"commit)" -#: wt-status.c:177 -msgid " (use \"git checkout -- <file>...\" to discard changes in working directory)" +#: wt-status.c:222 +msgid "" +" (use \"git checkout -- <file>...\" to discard changes in working directory)" msgstr "" +" (use \"git checkout -- <ficheiro>...\" para descartar alterações no " +"diretório de trabalho)" -#: wt-status.c:179 +#: wt-status.c:224 msgid " (commit or discard the untracked or modified content in submodules)" msgstr "" +" (faça commit ou descarte o conteúdo modificado ou não controlado nos " +"submódulos)" -#: wt-status.c:188 -#, c-format -msgid "%s files:" -msgstr "%s ficheros:" - -#: wt-status.c:191 +#: wt-status.c:236 #, c-format msgid " (use \"git %s <file>...\" to include in what will be committed)" -msgstr "" - -#: wt-status.c:208 -msgid "bug" -msgstr "erro" +msgstr " (use \"git %s <ficheiro>...\" para incluir no próximo commit)" -#: wt-status.c:213 +#: wt-status.c:251 msgid "both deleted:" -msgstr "eliminados em ambos:" +msgstr "eliminado por ambos:" -#: wt-status.c:214 +#: wt-status.c:253 msgid "added by us:" msgstr "adicionado por nós:" -#: wt-status.c:215 +#: wt-status.c:255 msgid "deleted by them:" -msgstr "eliminados por eles:" +msgstr "eliminado por eles:" -#: wt-status.c:216 +#: wt-status.c:257 msgid "added by them:" -msgstr "adicionados por eles:" +msgstr "adicionado por eles:" -#: wt-status.c:217 +#: wt-status.c:259 msgid "deleted by us:" -msgstr "eliminados por nós:" +msgstr "eliminado por nós:" -#: wt-status.c:218 +#: wt-status.c:261 msgid "both added:" -msgstr "adicionados em ambos:" +msgstr "adicionado por ambos:" -#: wt-status.c:219 +#: wt-status.c:263 msgid "both modified:" -msgstr "modificados em ambos:" +msgstr "modificado por ambos:" + +#: wt-status.c:265 +#, c-format +msgid "bug: unhandled unmerged status %x" +msgstr "" + +#: wt-status.c:273 +msgid "new file:" +msgstr "novo ficheiro:" + +#: wt-status.c:275 +msgid "copied:" +msgstr "copiado:" + +#: wt-status.c:277 +msgid "deleted:" +msgstr "eliminado:" + +#: wt-status.c:279 +msgid "modified:" +msgstr "modificado:" -#: wt-status.c:249 +#: wt-status.c:281 +msgid "renamed:" +msgstr "nome mudado:" + +#: wt-status.c:283 +msgid "typechange:" +msgstr "tipo alterado:" + +#: wt-status.c:285 +msgid "unknown:" +msgstr "desconhecido:" + +#: wt-status.c:287 +msgid "unmerged:" +msgstr "não integrado:" + +#: wt-status.c:369 msgid "new commits, " msgstr "novos commits, " -#: wt-status.c:251 +#: wt-status.c:371 msgid "modified content, " msgstr "conteúdo modificado, " -#: wt-status.c:253 +#: wt-status.c:373 msgid "untracked content, " -msgstr "conteúdo não seguido" +msgstr "conteúdo não controlado, " -#: wt-status.c:267 +#: wt-status.c:390 #, c-format -msgid "new file: %s" -msgstr "novo ficheiro: %s" +msgid "bug: unhandled diff status %c" +msgstr "" + +#: wt-status.c:754 +msgid "Submodules changed but not updated:" +msgstr "Submódulos alterados mas não atualizados:" -#: wt-status.c:270 +#: wt-status.c:756 +msgid "Submodule changes to be committed:" +msgstr "Alterações em submódulos incluÃdas no próximo commit:" + +#: wt-status.c:837 +msgid "" +"Do not touch the line above.\n" +"Everything below will be removed." +msgstr "" +"Não altere a linha acima.\n" +"Tudo o que estiver abaixo será removido." + +#: wt-status.c:948 +msgid "You have unmerged paths." +msgstr "Há caminhos não integrados." + +#: wt-status.c:951 +msgid " (fix conflicts and run \"git commit\")" +msgstr " (corrija os conflitos e execute \"git commit\")" + +#: wt-status.c:954 +msgid "All conflicts fixed but you are still merging." +msgstr "Todos os conflitos foram corrigidos mas o merge continua em curso." + +#: wt-status.c:957 +msgid " (use \"git commit\" to conclude merge)" +msgstr " (use \"git commit\" para concluir o merge)" + +#: wt-status.c:967 +msgid "You are in the middle of an am session." +msgstr "Sessão am em curso." + +#: wt-status.c:970 +msgid "The current patch is empty." +msgstr "O patch atual está vazio." + +#: wt-status.c:974 +msgid " (fix conflicts and then run \"git am --continue\")" +msgstr " (corrija os conflitos e execute \"git am --continue\")" + +#: wt-status.c:976 +msgid " (use \"git am --skip\" to skip this patch)" +msgstr " (use \"git am --skip\" para ignorar este patch)" + +#: wt-status.c:978 +msgid " (use \"git am --abort\" to restore the original branch)" +msgstr " (use \"git am --abort\" para restaurar o ramo original)" + +#: wt-status.c:1105 +msgid "No commands done." +msgstr "Nenhum comando concluÃdo." + +#: wt-status.c:1108 #, c-format -msgid "copied: %s -> %s" -msgstr "copiado: %s -> %s" +msgid "Last command done (%d command done):" +msgid_plural "Last commands done (%d commands done):" +msgstr[0] "Último comando concluÃdo (%d comando concluÃdo):" +msgstr[1] "Últimos comandos concluÃdos (%d comandos concluÃdos):" -#: wt-status.c:273 +#: wt-status.c:1119 #, c-format -msgid "deleted: %s" -msgstr "eliminado: %s" +msgid " (see more in file %s)" +msgstr " (veja mais no ficheiro %s)" -#: wt-status.c:276 +#: wt-status.c:1124 +msgid "No commands remaining." +msgstr "Nenhum comando por concluir." + +#: wt-status.c:1127 #, c-format -msgid "modified: %s" -msgstr "modificado: %s" +msgid "Next command to do (%d remaining command):" +msgid_plural "Next commands to do (%d remaining commands):" +msgstr[0] "Próximo comando a executar (%d comando restante):" +msgstr[1] "Próximos comandos a executar (%d comandos restantes):" -#: wt-status.c:279 +#: wt-status.c:1135 +msgid " (use \"git rebase --edit-todo\" to view and edit)" +msgstr " (use \"git rebase --edit-todo\" para visualizar e editar)" + +#: wt-status.c:1148 #, c-format -msgid "renamed: %s -> %s" -msgstr "mudado de nome: %s -> %s" +msgid "You are currently rebasing branch '%s' on '%s'." +msgstr "A realizar rebase do ramo '%s' sobre '%s'." + +#: wt-status.c:1153 +msgid "You are currently rebasing." +msgstr "Rebase em curso." + +#: wt-status.c:1167 +msgid " (fix conflicts and then run \"git rebase --continue\")" +msgstr " (corrija os conflitos e execute \"git rebase --continue\")" + +#: wt-status.c:1169 +msgid " (use \"git rebase --skip\" to skip this patch)" +msgstr " (use \"git rebase --skip\" para ignorar este patch)" + +#: wt-status.c:1171 +msgid " (use \"git rebase --abort\" to check out the original branch)" +msgstr " (use \"git rebase --abort\" para restaurar o ramo original)" -#: wt-status.c:282 +#: wt-status.c:1177 +msgid " (all conflicts fixed: run \"git rebase --continue\")" +msgstr "" +" (todos os conflitos foram corrigidos: execute \"git rebase --continue\")" + +#: wt-status.c:1181 #, c-format -msgid "typechange: %s" +msgid "" +"You are currently splitting a commit while rebasing branch '%s' on '%s'." msgstr "" +"A dividir um commit ao mesmo tempo que efetua rebase do ramo '%s' sobre '%s'." -#: wt-status.c:285 +#: wt-status.c:1186 +msgid "You are currently splitting a commit during a rebase." +msgstr "A dividir um commit durante um rebase." + +#: wt-status.c:1189 +msgid " (Once your working directory is clean, run \"git rebase --continue\")" +msgstr "" +" (Assim que o diretório de trabalho estiver limpo, execute \"git rebase --" +"continue\")" + +#: wt-status.c:1193 #, c-format -msgid "unknown: %s" -msgstr "desconhecido: %s" +msgid "You are currently editing a commit while rebasing branch '%s' on '%s'." +msgstr "" +"A editar um commit ao mesmo tempo que efetua rebase do ramo '%s' sobre '%s'." + +#: wt-status.c:1198 +msgid "You are currently editing a commit during a rebase." +msgstr "A editar um commit durante um rebase." + +#: wt-status.c:1201 +msgid " (use \"git commit --amend\" to amend the current commit)" +msgstr " (use \"git commit --amend\" para emendar o commit atual)" + +#: wt-status.c:1203 +msgid "" +" (use \"git rebase --continue\" once you are satisfied with your changes)" +msgstr "" +" (use \"git rebase --continue\" assim que estiver satisfeito com as " +"alterações)" -#: wt-status.c:288 +#: wt-status.c:1213 #, c-format -msgid "unmerged: %s" -msgstr "não fundidos: %s" +msgid "You are currently cherry-picking commit %s." +msgstr "A realizar cherry-pick do commit %s." + +#: wt-status.c:1218 +msgid " (fix conflicts and run \"git cherry-pick --continue\")" +msgstr " (corrija os conflitos e execute \"git cherry-pick --continue\")" + +#: wt-status.c:1221 +msgid " (all conflicts fixed: run \"git cherry-pick --continue\")" +msgstr "" +" (todos os conflitos foram corrigidos: execute \"git cherry-pick --continue" +"\")" + +#: wt-status.c:1223 +msgid " (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)" +msgstr "" +" (use \"git cherry-pick --abort\" para cancelar a operação de cherry-pick)" -#: wt-status.c:291 +#: wt-status.c:1232 #, c-format -msgid "bug: unhandled diff status %c" +msgid "You are currently reverting commit %s." +msgstr "A reverter o commit %s." + +#: wt-status.c:1237 +msgid " (fix conflicts and run \"git revert --continue\")" +msgstr " (corrija dos conflitos e execute \"git revert --continue\")" + +#: wt-status.c:1240 +msgid " (all conflicts fixed: run \"git revert --continue\")" msgstr "" +" (todos os conflitos foram corrigidos: execute \"git revert --continue\")" + +#: wt-status.c:1242 +msgid " (use \"git revert --abort\" to cancel the revert operation)" +msgstr " (use \"git rever --abort\" para cancelar a operação de reversão)" + +#: wt-status.c:1253 +#, c-format +msgid "You are currently bisecting, started from branch '%s'." +msgstr "Bissecção em curso, iniciada a partir do ramo '%s'." + +#: wt-status.c:1257 +msgid "You are currently bisecting." +msgstr "Bissecção em curso." -#: wt-status.c:737 +#: wt-status.c:1260 +msgid " (use \"git bisect reset\" to get back to the original branch)" +msgstr " (use \"git bisect reset\" para voltar ao ramo original)" + +#: wt-status.c:1438 msgid "On branch " -msgstr "Na rama" +msgstr "No ramo " + +#: wt-status.c:1444 +msgid "interactive rebase in progress; onto " +msgstr "rebase interativo em curso; sobre " + +#: wt-status.c:1446 +msgid "rebase in progress; onto " +msgstr "rebase em curso; sobre " -#: wt-status.c:744 +#: wt-status.c:1451 +msgid "HEAD detached at " +msgstr "HEAD destacada em " + +#: wt-status.c:1453 +msgid "HEAD detached from " +msgstr "HEAD destacada de " + +#: wt-status.c:1456 msgid "Not currently on any branch." -msgstr "Não está em nenhuma rama." +msgstr "Não se encontra em nenhum ramo neste momento." -#: wt-status.c:755 +#: wt-status.c:1474 msgid "Initial commit" msgstr "Commit inicial" -#: wt-status.c:769 -msgid "Untracked" -msgstr "Não seguido" +#: wt-status.c:1488 +msgid "Untracked files" +msgstr "Ficheiros não controlados" -#: wt-status.c:771 -msgid "Ignored" -msgstr "Ignorado" +#: wt-status.c:1490 +msgid "Ignored files" +msgstr "Ficheiros ignorados" -#: wt-status.c:773 +#: wt-status.c:1494 #, c-format -msgid "Untracked files not listed%s" +msgid "" +"It took %.2f seconds to enumerate untracked files. 'status -uno'\n" +"may speed it up, but you have to be careful not to forget to add\n" +"new files yourself (see 'git help status')." msgstr "" +"A enumeração dos ficheiros não controlados demorou %.2f segundos\n" +"a concluir. 'status -uno' pode acelerar o processo, mas deve ter\n" +"cuidado de não se esquecer de adicionar novos ficheiros\n" +"(consulte 'git help status')." + +#: wt-status.c:1500 +#, c-format +msgid "Untracked files not listed%s" +msgstr "Ficheiros não controlados não listados%s" -#: wt-status.c:775 +#: wt-status.c:1502 msgid " (use -u option to show untracked files)" -msgstr "" +msgstr " (use a opção -u para mostrar os ficheiros não controlados)" -#: wt-status.c:781 +#: wt-status.c:1508 msgid "No changes" -msgstr "Sem mudanças" +msgstr "Sem alterações" -#: wt-status.c:785 +#: wt-status.c:1513 #, c-format -msgid "no changes added to commit%s\n" -msgstr "nenhuma alteração adicionado ao commit%s\n" +msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n" +msgstr "" +"nenhuma alteração adicionada para commit (use \"git add\" e/ou \"git commit -" +"a\")\n" -#: wt-status.c:787 -msgid " (use \"git add\" and/or \"git commit -a\")" -msgstr " (usa \"git add\" e/ou \"git commit -a\")" +#: wt-status.c:1516 +#, c-format +msgid "no changes added to commit\n" +msgstr "nenhuma alteração adicionada para commit\n" -#: wt-status.c:789 +#: wt-status.c:1519 #, c-format -msgid "nothing added to commit but untracked files present%s\n" +msgid "" +"nothing added to commit but untracked files present (use \"git add\" to " +"track)\n" msgstr "" +"não foi adicionado nada para commit, mas existem ficheiros não controlados " +"(use \"git add\" para controlá-los)\n" -#: wt-status.c:791 -msgid " (use \"git add\" to track)" -msgstr " (usa \"git add\" para seguir)" - -#: wt-status.c:793 -#: wt-status.c:796 -#: wt-status.c:799 +#: wt-status.c:1522 #, c-format -msgid "nothing to commit%s\n" -msgstr "nada para fazer commit%s\n" - -#: wt-status.c:794 -msgid " (create/copy files and use \"git add\" to track)" +msgid "nothing added to commit but untracked files present\n" msgstr "" +"não foi adicionado nada para commit, mas existem ficheiros não controlados\n" -#: wt-status.c:797 -msgid " (use -u to show untracked files)" +#: wt-status.c:1525 +#, c-format +msgid "nothing to commit (create/copy files and use \"git add\" to track)\n" msgstr "" +"não há nada para fazer commit (crie/copie ficheiros e use \"git add\" para " +"controlá-los)\n" + +#: wt-status.c:1528 wt-status.c:1533 +#, c-format +msgid "nothing to commit\n" +msgstr "não há nada para fazer commit\n" -#: wt-status.c:800 -msgid " (working directory clean)" -msgstr " (directório de trabalho vacio)" +#: wt-status.c:1531 +#, c-format +msgid "nothing to commit (use -u to show untracked files)\n" +msgstr "" +"não há nada para fazer commit (use -u para mostrar os ficheiros não " +"controlados)\n" -#: wt-status.c:908 -msgid "HEAD (no branch)" -msgstr "HEAD (Não é rama)" +#: wt-status.c:1535 +#, c-format +msgid "nothing to commit, working directory clean\n" +msgstr "não há nada para fazer commit, diretório de trabalho limpo\n" -#: wt-status.c:914 +#: wt-status.c:1642 msgid "Initial commit on " msgstr "Commit inicial em " -#: wt-status.c:929 +#: wt-status.c:1646 +msgid "HEAD (no branch)" +msgstr "HEAD (nenhum ramo)" + +#: wt-status.c:1675 +msgid "gone" +msgstr "desaparecido" + +#: wt-status.c:1677 wt-status.c:1685 msgid "behind " msgstr "atrás " -#: wt-status.c:932 -#: wt-status.c:935 +#: wt-status.c:1680 wt-status.c:1683 msgid "ahead " -msgstr "a frente " +msgstr "à frente " + +#: compat/precompose_utf8.c:57 builtin/clone.c:413 +#, c-format +msgid "failed to unlink '%s'" +msgstr "falha ao invocar unlink de '%s'" -#: wt-status.c:937 -msgid ", behind " -msgstr ", atrás " +#: builtin/add.c:22 +msgid "git add [<options>] [--] <pathspec>..." +msgstr "git add [<opções>] [--] <caminho>..." -#: builtin/add.c:62 +#: builtin/add.c:65 #, c-format msgid "unexpected diff status %c" -msgstr "" +msgstr "diff status inesperado %c" -#: builtin/add.c:67 -#: builtin/commit.c:282 +#: builtin/add.c:70 builtin/commit.c:278 msgid "updating files failed" -msgstr "Falou a atualização dos ficheiros" +msgstr "falha ao atualizar os ficheiros" -#: builtin/add.c:77 +#: builtin/add.c:80 #, c-format msgid "remove '%s'\n" -msgstr "eliminar '%s'\n" +msgstr "remover '%s'\n" -#: builtin/add.c:176 -#, c-format -msgid "Path '%s' is in submodule '%.*s'" -msgstr "" - -#: builtin/add.c:192 +#: builtin/add.c:134 msgid "Unstaged changes after refreshing the index:" -msgstr "" - -#: builtin/add.c:195 -#: builtin/add.c:456 -#: builtin/rm.c:186 -#, c-format -msgid "pathspec '%s' did not match any files" -msgstr "" - -#: builtin/add.c:209 -#, c-format -msgid "'%s' is beyond a symbolic link" -msgstr "" +msgstr "Alterações não preparadas depois de atualizar o Ãndice:" -#: builtin/add.c:276 +#: builtin/add.c:194 builtin/rev-parse.c:797 msgid "Could not read the index" -msgstr "Não foi possÃvel ler o indÃce" +msgstr "Não foi possÃvel ler o Ãndice" -#: builtin/add.c:286 +#: builtin/add.c:205 #, c-format msgid "Could not open '%s' for writing." -msgstr "Não foi possÃvel abrir '%s' para escrever." +msgstr "Não foi possÃvel abrir '%s' para escrita." -#: builtin/add.c:290 +#: builtin/add.c:209 msgid "Could not write patch" -msgstr "Não consegue escrever patch" +msgstr "Não foi possÃvel escrever patch" -#: builtin/add.c:295 +#: builtin/add.c:212 +msgid "editing patch failed" +msgstr "falha ao editar patch" + +#: builtin/add.c:215 #, c-format msgid "Could not stat '%s'" -msgstr "" +msgstr "Não foi possÃvel obter stat de '%s'" -#: builtin/add.c:297 +#: builtin/add.c:217 msgid "Empty patch. Aborted." -msgstr "Patch vazio. Aborted." +msgstr "Patch vazio. Abortado." -#: builtin/add.c:303 +#: builtin/add.c:222 #, c-format msgid "Could not apply '%s'" -msgstr "Não foi possÃvel aplicar o '%s'" +msgstr "Não foi possÃvel aplicar '%s'" -#: builtin/add.c:312 +#: builtin/add.c:232 msgid "The following paths are ignored by one of your .gitignore files:\n" +msgstr "Os seguintes caminhos estão ignorados por algum ficheiro .gitignore:\n" + +#: builtin/add.c: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 "simular ação" + +#: 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:1651 builtin/mv.c:110 builtin/read-tree.c:114 +msgid "be verbose" +msgstr "ser verboso" + +#: builtin/add.c:252 +msgid "interactive picking" +msgstr "seleção interativa" + +#: builtin/add.c:253 builtin/checkout.c:1155 builtin/reset.c:286 +msgid "select hunks interactively" +msgstr "selecionar blocos interativamente" + +#: builtin/add.c:254 +msgid "edit current diff and apply" +msgstr "editar o diff atual e aplicá-lo" + +#: builtin/add.c:255 +msgid "allow adding otherwise ignored files" +msgstr "permitir adicionar ficheiros ignorados" + +#: builtin/add.c:256 +msgid "update tracked files" +msgstr "atualizar ficheiros controlados" + +#: builtin/add.c:257 +msgid "record only the fact that the path will be added later" +msgstr "registar apenas o facto de que o caminho será adicionado mais tarde" + +#: builtin/add.c:258 +msgid "add changes from all tracked and untracked files" msgstr "" +"adicionar alterações de todos os ficheiros controlados ou não controlados" -#: builtin/add.c:352 -#, c-format -msgid "Use -f if you really want to add them.\n" +#: builtin/add.c:261 +msgid "ignore paths removed in the working tree (same as --no-all)" msgstr "" +"ignorar caminhos removidos na árvore de trabalho (o mesmo que --no-all)" -#: builtin/add.c:353 -msgid "no files added" -msgstr "nenhum ficheiros adicionado" +#: builtin/add.c:263 +msgid "don't add, only refresh the index" +msgstr "não adicionar, apenas atualizar o Ãndice" + +#: builtin/add.c:264 +msgid "just skip files which cannot be added because of errors" +msgstr "ignorar ficheiros que não podem ser adicionados por causa de erros" + +#: builtin/add.c:265 +msgid "check if - even missing - files are ignored in dry run" +msgstr "verificar quais os ficheiros ignorados na simulação" + +#: builtin/add.c:287 +#, c-format +msgid "Use -f if you really want to add them.\n" +msgstr "Use -f se deseja mesmo adicioná-los.\n" -#: builtin/add.c:359 +#: builtin/add.c:294 msgid "adding files failed" -msgstr "falhou a adicionar ficheiros" +msgstr "falha ao adicionar ficheiros" -#: builtin/add.c:391 +#: builtin/add.c:330 msgid "-A and -u are mutually incompatible" -msgstr "" +msgstr "-A e -u são mutuamente incompatÃveis" -#: builtin/add.c:393 +#: builtin/add.c:337 msgid "Option --ignore-missing can only be used together with --dry-run" -msgstr "" +msgstr "A opção --ignore-missing só pode ser usada em conjunto com --dry-run" -#: builtin/add.c:413 +#: builtin/add.c:352 #, c-format msgid "Nothing specified, nothing added.\n" -msgstr "" +msgstr "Não foi especificado nada, nada adicionado.\n" -#: builtin/add.c:414 +#: builtin/add.c:353 #, c-format msgid "Maybe you wanted to say 'git add .'?\n" -msgstr "" +msgstr "Queria dizer 'git add .'?\n" -#: builtin/add.c:420 -#: builtin/clean.c:95 -#: builtin/commit.c:342 -#: builtin/mv.c:82 -#: builtin/rm.c:162 +#: 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 "ficheiro index corrupto" +msgstr "ficheiro de Ãndice corrompido" -#: builtin/add.c:476 -#: builtin/apply.c:4093 -#: builtin/mv.c:229 -#: builtin/rm.c:260 +#: builtin/add.c:439 builtin/apply.c:4659 builtin/mv.c:280 builtin/rm.c:430 msgid "Unable to write new index file" +msgstr "Não foi possÃvel escrever novo ficheiro de Ãndice" + +#: builtin/am.c:256 builtin/commit.c:738 builtin/merge.c:1078 +#, c-format +msgid "could not read '%s'" +msgstr "não foi possÃvel ler '%s'" + +#: builtin/am.c:430 +msgid "could not parse author script" +msgstr "não foi possÃvel analisar o autor do script" + +#: builtin/am.c:507 +#, c-format +msgid "'%s' was deleted by the applypatch-msg hook" +msgstr "'%s' foi eliminado pelo hook applypatch-msg" + +#: builtin/am.c:548 builtin/notes.c:300 +#, c-format +msgid "Malformed input line: '%s'." +msgstr "Linha de entrada malformada: '%s'." + +#: builtin/am.c:585 builtin/notes.c:315 +#, c-format +msgid "Failed to copy notes from '%s' to '%s'" +msgstr "Falha ao copiar notas de '%s' para '%s'" + +#: builtin/am.c:611 +msgid "fseek failed" +msgstr "falha ao invocar fseek" + +#: builtin/am.c:772 builtin/am.c:860 +#, c-format +msgid "could not open '%s' for reading: %s" +msgstr "não foi possÃvel abrir '%s' para leitura: %s" + +#: builtin/am.c:779 +#, c-format +msgid "could not open '%s' for writing: %s" +msgstr "não foi possÃvel abrir '%s' para escrita: %s" + +#: builtin/am.c:788 +#, c-format +msgid "could not parse patch '%s'" +msgstr "não foi possÃvel analisar o patch '%s'" + +#: builtin/am.c:853 +msgid "Only one StGIT patch series can be applied at once" +msgstr "Só pode ser aplicada uma série de patches StGIT duma só vez" + +#: builtin/am.c:901 +msgid "invalid timestamp" +msgstr "carimbo de data/hora inválido" + +#: builtin/am.c:904 builtin/am.c:912 +msgid "invalid Date line" +msgstr "linha de Data inválida" + +#: builtin/am.c:909 +msgid "invalid timezone offset" +msgstr "mudança de fuso horário inválida" + +#: builtin/am.c:996 +msgid "Patch format detection failed." +msgstr "Falha ao detetar o formato do patch." + +#: builtin/am.c:1001 builtin/clone.c:378 +#, c-format +msgid "failed to create directory '%s'" +msgstr "falha ao criar o diretório '%s'" + +#: builtin/am.c:1005 +msgid "Failed to split patches." +msgstr "Falha ao dividir patches." + +#: builtin/am.c:1137 builtin/commit.c:363 +msgid "unable to write index file" +msgstr "não é possÃvel escrever o ficheiro de Ãndice" + +#: builtin/am.c:1188 +#, c-format +msgid "When you have resolved this problem, run \"%s --continue\"." +msgstr "Após resolver este problema, execute \"%s --continue\"." + +#: builtin/am.c:1189 +#, c-format +msgid "If you prefer to skip this patch, run \"%s --skip\" instead." +msgstr "Se preferir ignorar este patch, execute \"%s --skip\"." + +#: builtin/am.c:1190 +#, c-format +msgid "To restore the original branch and stop patching, run \"%s --abort\"." +msgstr "" +"Para restaurar o ramo original e interromper a aplicação dos patches, " +"execute \"%s --abort\"." + +#: builtin/am.c:1328 +msgid "Patch is empty. Was it split wrong?" +msgstr "O patch está vazio. Foi dividido incorretamente?" + +#: builtin/am.c:1402 builtin/log.c:1350 +#, c-format +msgid "invalid ident line: %s" +msgstr "linha de identidade inválida: %s" + +#: builtin/am.c:1429 +#, c-format +msgid "unable to parse commit %s" +msgstr "não foi possÃvel analisar o commit %s" + +#: builtin/am.c:1631 +msgid "Repository lacks necessary blobs to fall back on 3-way merge." +msgstr "" +"O repositório não tem os blobs necessários para recorrer a merge com 3 " +"pontos." + +#: builtin/am.c:1633 +msgid "Using index info to reconstruct a base tree..." +msgstr "A usar informação do Ãndice para reconstruir uma árvore de base..." + +#: builtin/am.c:1652 +msgid "" +"Did you hand edit your patch?\n" +"It does not apply to blobs recorded in its index." msgstr "" +"Editou o patch manualmente?\n" +"Não é possÃvel aplicá-lo aos blobs registados no Ãndice." + +#: builtin/am.c:1658 +msgid "Falling back to patching base and 3-way merge..." +msgstr "" +"A recorrer a uma de base para aplicação de patches e merge com 3 pontos..." + +#: builtin/am.c:1673 +msgid "Failed to merge in the changes." +msgstr "Falha ao efetuar merge das alterações." + +#: builtin/am.c:1697 builtin/merge.c:633 +msgid "git write-tree failed to write a tree" +msgstr "git write-tree falhou ao escrever uma árvore" + +#: builtin/am.c:1704 +msgid "applying to an empty history" +msgstr "a aplicar a um histórico vazio" + +#: builtin/am.c:1717 builtin/commit.c:1755 builtin/merge.c:830 +#: builtin/merge.c:855 +msgid "failed to write commit object" +msgstr "falha ao escrever objeto de commit" + +#: builtin/am.c:1749 builtin/am.c:1753 +#, c-format +msgid "cannot resume: %s does not exist." +msgstr "não é possÃvel continuar: %s não existe." + +#: builtin/am.c:1769 +msgid "cannot be interactive without stdin connected to a terminal." +msgstr "" +"não é possÃvel entrar em modo interativo sem um entrada padrão conectada a " +"um terminal." + +#: builtin/am.c:1774 +msgid "Commit Body is:" +msgstr "Corpo do commit:" + +#. 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:1784 +msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: " +msgstr "Aplicar? [y]sim/[n]ão/[e]ditar/[v]er patch/[a]ceitar todos: " + +#: builtin/am.c:1834 +#, c-format +msgid "Dirty index: cannot apply patches (dirty: %s)" +msgstr "Ãndice modificado: não é possÃvel aplicar patches (modificado: %s)" -#: builtin/apply.c:106 +#: builtin/am.c:1869 builtin/am.c:1941 +#, c-format +msgid "Applying: %.*s" +msgstr "A aplicar: %.*s" + +#: builtin/am.c:1885 +msgid "No changes -- Patch already applied." +msgstr "Nenhuma alteração -- Já foi aplicado o patch." + +#: builtin/am.c:1893 +#, c-format +msgid "Patch failed at %s %.*s" +msgstr "Falha ao aplicar o patch em %s %.*s" + +#: builtin/am.c:1899 +#, c-format +msgid "The copy of the patch that failed is found in: %s" +msgstr "A cópia do patch que falhou encontra-se em: %s" + +#: 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 "" +"Sem alterações - esqueceu-se de usar 'git add'?\n" +"Se não há nada por preparar, provavelmente essas mesmas alterações\n" +"já foram introduzidas; pode querer ignorar este patch." + +#: builtin/am.c:1951 +msgid "" +"You still have unmerged paths in your index.\n" +"Did you forget to use 'git add'?" +msgstr "" +"Ainda há caminhos não integrados no Ãndice.\n" +"Esqueceu-se de usar 'git add'?" + +#: 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 "Não foi possÃvel analisar o objeto '%s'." + +#: builtin/am.c:2111 +msgid "failed to clean index" +msgstr "falha ao limpar o Ãndice" + +#: builtin/am.c:2145 +msgid "" +"You seem to have moved HEAD since the last 'am' failure.\n" +"Not rewinding to ORIG_HEAD" +msgstr "" +"Parece que a HEAD foi movida desde a última vez que o 'am' falhou.\n" +"Não recuando a ORIG_HEAD" + +#: builtin/am.c:2206 +#, c-format +msgid "Invalid value for --patch-format: %s" +msgstr "Valor inválido de --patch-format: %s" + +#: builtin/am.c:2239 +msgid "git am [<options>] [(<mbox>|<Maildir>)...]" +msgstr "git am [<opções>] [(<mbox>|<Maildir>)...]" + +#: builtin/am.c:2240 +msgid "git am [<options>] (--continue | --skip | --abort)" +msgstr "git am [<opções>] (--continue | --skip | --abort)" + +#: builtin/am.c:2246 +msgid "run interactively" +msgstr "executar interativamente" + +#: builtin/am.c:2248 +msgid "historical option -- no-op" +msgstr "opção histórica -- sem-ação" + +#: builtin/am.c:2250 +msgid "allow fall back on 3way merging if needed" +msgstr "permitir recorrer a merge com 3 pontos se necessário" + +#: builtin/am.c:2251 builtin/init-db.c:474 builtin/prune-packed.c:57 +#: builtin/repack.c:171 +msgid "be quiet" +msgstr "silencioso" + +#: builtin/am.c:2253 +msgid "add a Signed-off-by line to the commit message" +msgstr "adicionar uma linha com Signed-of-by no fim da mensagem de commit" + +#: builtin/am.c:2256 +msgid "recode into utf8 (default)" +msgstr "recodificar em utf8 (predefinição)" + +#: builtin/am.c:2258 +msgid "pass -k flag to git-mailinfo" +msgstr "passar a opção -k ao git-mailinfo" + +#: builtin/am.c:2260 +msgid "pass -b flag to git-mailinfo" +msgstr "passar a opção -b ao git-mailinfo" + +#: builtin/am.c:2262 +msgid "pass -m flag to git-mailinfo" +msgstr "passar a opção -m ao git-mailinfo" + +#: builtin/am.c:2264 +msgid "pass --keep-cr flag to git-mailsplit for mbox format" +msgstr "passar a opção --keep-cr ao gitmailsplit para formato de mbox" + +#: builtin/am.c:2267 +msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr" +msgstr "" +"não passar a opção --keep-cr ao git-mailsplit independentemente de am.keepcr" + +#: builtin/am.c:2270 +msgid "strip everything before a scissors line" +msgstr "retirar todo o conteúdo antes da linha de tesoura" + +#: builtin/am.c:2271 builtin/apply.c:4544 +msgid "action" +msgstr "ação" + +#: 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 "transmitir ao git-apply" + +#: builtin/am.c:2280 builtin/apply.c:4568 +msgid "root" +msgstr "raiz" + +#: 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 "caminho" + +#: 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:2292 builtin/apply.c:4512 +msgid "num" +msgstr "num" + +#: builtin/am.c:2295 builtin/for-each-ref.c:37 builtin/replace.c:438 +#: builtin/tag.c:372 +msgid "format" +msgstr "formato" + +#: builtin/am.c:2296 +msgid "format the patch(es) are in" +msgstr "formato de apresentação de patches" + +#: builtin/am.c:2302 +msgid "override error message when patch failure occurs" +msgstr "substituir a mensagem de erro quando a aplicação do patch falha" + +#: builtin/am.c:2304 +msgid "continue applying patches after resolving a conflict" +msgstr "continuar a aplicar os patches depois de resolver os conflitos" + +#: builtin/am.c:2307 +msgid "synonyms for --continue" +msgstr "sinónimo de --continue" + +#: builtin/am.c:2310 +msgid "skip the current patch" +msgstr "ignorar o patch atual" + +#: builtin/am.c:2313 +msgid "restore the original branch and abort the patching operation." +msgstr "restaurar o ramo original e abortar a operação de patch" + +#: builtin/am.c:2317 +msgid "lie about committer date" +msgstr "mentir sobre a data de commit" + +#: builtin/am.c:2319 +msgid "use current timestamp for author date" +msgstr "usar a data e hora atual como data de autor" + +#: 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-chave" + +#: builtin/am.c:2322 +msgid "GPG-sign commits" +msgstr "assinar os commits com GPG" + +#: builtin/am.c:2325 +msgid "(internal use for git-rebase)" +msgstr "(uso interno de git-rebase)" + +#: 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 "" +"A opção -b/--binary há muito que é ignorada e será\n" +"futuramente removida. Por favor não a use." + +#: builtin/am.c:2347 +msgid "failed to read the index" +msgstr "falha ao ler o Ãndice" + +#: builtin/am.c:2362 +#, c-format +msgid "previous rebase directory %s still exists but mbox given." +msgstr "" +"o diretório de rebesa anterior %s ainda existe, mas foi fornecida uma mbox." + +#: builtin/am.c:2386 +#, c-format +msgid "" +"Stray %s directory found.\n" +"Use \"git am --abort\" to remove it." +msgstr "" +"Diretório abandonado %s encontrado.\n" +"Use \"git am --abort\" para o remover." + +#: builtin/am.c:2392 +msgid "Resolve operation not in progress, we are not resuming." +msgstr "A operação de resolução não está em curso, não retomando." + +#: builtin/apply.c:59 +msgid "git apply [<options>] [<patch>...]" +msgstr "git apply [<opções>] [<patch>...]" + +#: builtin/apply.c:111 #, c-format msgid "unrecognized whitespace option '%s'" -msgstr "espaço em braco não reconhecido: '%s'" +msgstr "opção de espaço em branco não reconhecida '%s'" -#: builtin/apply.c:121 +#: builtin/apply.c:126 #, c-format msgid "unrecognized whitespace ignore option '%s'" -msgstr "" +msgstr "opção de ignorar espaço em branco não reconhecida '%s'" -#: builtin/apply.c:815 +#: builtin/apply.c:818 #, c-format msgid "Cannot prepare timestamp regexp %s" -msgstr "" +msgstr "Não é possÃvel preparar a regexp de carimbo de data/hora %s" -#: builtin/apply.c:824 +#: builtin/apply.c:827 #, c-format msgid "regexec returned %d for input: %s" -msgstr "" +msgstr "regexec retornou %d para a entra: %s" -#: builtin/apply.c:905 +#: builtin/apply.c:908 #, c-format msgid "unable to find filename in patch at line %d" -msgstr "" +msgstr "não foi possÃvel encontrar o nome do ficheiro no patch na linha %d" -#: builtin/apply.c:934 +#: 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 incorreto - esperava-se /dev/null, obteve-se %s na linha " +"%d" + +#: builtin/apply.c:944 +#, c-format +msgid "git apply: bad git-diff - inconsistent new filename on line %d" +msgstr "" +"git apply: git-diff incorreto - o nome do novo ficheiro na linha %d é " +"inconsistente" -#: builtin/apply.c:937 +#: builtin/apply.c:945 #, c-format -msgid "git apply: bad git-diff - inconsistent %s filename on line %d" +msgid "git apply: bad git-diff - inconsistent old filename on line %d" msgstr "" +"git apply: git-diff incorreto - o nome do ficheiro antigo na linha %d é " +"inconsistente" -#: builtin/apply.c:944 +#: builtin/apply.c:952 #, c-format msgid "git apply: bad git-diff - expected /dev/null on line %d" -msgstr "" +msgstr "git apply: git-diff incorreto - esperava-se /dev/null na linha %d" -#: builtin/apply.c:1387 +#: builtin/apply.c:1415 #, c-format msgid "recount: unexpected line: %.*s" -msgstr "" +msgstr "recontagem: linha inesperada: %.*s" -#: builtin/apply.c:1444 +#: builtin/apply.c:1472 #, c-format msgid "patch fragment without header at line %d: %.*s" -msgstr "" +msgstr "fragmento de patch sem cabeçalho na linha %d: %.*s" -#: builtin/apply.c:1461 +#: builtin/apply.c:1489 #, c-format -msgid "git diff header lacks filename information when removing %d leading pathname component (line %d)" -msgid_plural "git diff header lacks filename information when removing %d leading pathname components (line %d)" +msgid "" +"git diff header lacks filename information when removing %d leading pathname " +"component (line %d)" +msgid_plural "" +"git diff header lacks filename information when removing %d leading pathname " +"components (line %d)" msgstr[0] "" +"o cabeçalho do git diff não revelou o nome do ficheiro depois de se remover " +"%d componente do caminho (linha %d)" msgstr[1] "" +"o cabeçalho do git diff não revelou o nome do ficheiro depois de se remover " +"%d componentes de caminho (linha %d)" -#: builtin/apply.c:1621 +#: builtin/apply.c:1655 msgid "new file depends on old contents" -msgstr "" +msgstr "o novo ficheiro depende de conteúdos antigos" -#: builtin/apply.c:1623 +#: builtin/apply.c:1657 msgid "deleted file still has contents" -msgstr "" +msgstr "o ficheiro eliminado ainda tem conteúdos" -#: builtin/apply.c:1649 +#: builtin/apply.c:1683 #, c-format msgid "corrupt patch at line %d" -msgstr "" +msgstr "patch corrompido na linha %d" -#: builtin/apply.c:1685 +#: builtin/apply.c:1719 #, c-format msgid "new file %s depends on old contents" -msgstr "" +msgstr "o novo ficheiro %s depende de conteúdos antigos" -#: builtin/apply.c:1687 +#: builtin/apply.c:1721 #, c-format msgid "deleted file %s still has contents" -msgstr "" +msgstr "o ficheiro eliminado %s ainda tem conteúdos" -#: builtin/apply.c:1690 +#: builtin/apply.c:1724 #, c-format msgid "** warning: file %s becomes empty but is not deleted" -msgstr "" +msgstr "** aviso: o ficheiro %s ficará vazio, mas não será eliminado" -#: builtin/apply.c:1836 +#: builtin/apply.c:1870 #, c-format msgid "corrupt binary patch at line %d: %.*s" -msgstr "" +msgstr "patch binário corrompido na linha %d: %.*s" -#. there has to be one hunk (forward hunk) -#: builtin/apply.c:1865 +#: builtin/apply.c:1899 #, c-format msgid "unrecognized binary patch at line %d" -msgstr "" +msgstr "patch binário não reconhecido na linha %d" -#: builtin/apply.c:1951 +#: builtin/apply.c:2050 #, c-format msgid "patch with only garbage at line %d" -msgstr "" +msgstr "patch incompreensÃvel na linha %d" -#: builtin/apply.c:2041 +#: builtin/apply.c:2140 #, c-format msgid "unable to read symlink %s" -msgstr "" +msgstr "não é possÃvel ler a ligação simbólica %s" -#: builtin/apply.c:2045 +#: builtin/apply.c:2144 #, c-format msgid "unable to open or read %s" -msgstr "Não foi possÃvel abrir o ler %s" +msgstr "não é possÃvel abrir ou ler %s" -#: builtin/apply.c:2116 -msgid "oops" -msgstr "" - -#: builtin/apply.c:2638 +#: builtin/apply.c:2777 #, c-format msgid "invalid start of line: '%c'" -msgstr "começo de linha inválido: '%c'" +msgstr "inÃcio de linha inválido: '%c'" -#: builtin/apply.c:2756 +#: builtin/apply.c:2896 #, c-format msgid "Hunk #%d succeeded at %d (offset %d line)." msgid_plural "Hunk #%d succeeded at %d (offset %d lines)." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Excerto nº%d bem sucedido na linha %d (%d linha deslocada)" +msgstr[1] "Excerto nº%d bem sucedido na linha %d (%d linhas deslocadas)" -#: builtin/apply.c:2768 +#: builtin/apply.c:2908 #, c-format msgid "Context reduced to (%ld/%ld) to apply fragment at %d" -msgstr "" +msgstr "Contexto reduzido para (%ld/%ld) para aplicar o fragmento em %d" -#: builtin/apply.c:2774 +#: builtin/apply.c:2914 #, c-format msgid "" "while searching for:\n" "%.*s" msgstr "" +"ao procura por:\n" +"%.*s" -#: builtin/apply.c:2793 +#: builtin/apply.c:2934 #, c-format msgid "missing binary patch data for '%s'" -msgstr "" +msgstr "falta de dados do patch binário '%s'" -#: builtin/apply.c:2896 +#: builtin/apply.c:3035 #, c-format msgid "binary patch does not apply to '%s'" -msgstr "" +msgstr "o patch binário não foi aplicado corretamente a '%s'" -#: builtin/apply.c:2902 +#: builtin/apply.c:3041 #, c-format msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)" msgstr "" +"o patch binário aplicado a '%s' gera resultados incorretos (esperava-se %s, " +"obteve-se %s)" -#: builtin/apply.c:2923 +#: builtin/apply.c:3062 #, c-format msgid "patch failed: %s:%ld" -msgstr "" +msgstr "falha ao aplicar o patch: %s:%ld" -#: builtin/apply.c:3038 +#: builtin/apply.c:3186 #, c-format -msgid "patch %s has been renamed/deleted" -msgstr "" +msgid "cannot checkout %s" +msgstr "não é possÃvel extrair %s" -#: builtin/apply.c:3045 -#: builtin/apply.c:3062 +#: builtin/apply.c:3231 builtin/apply.c:3242 builtin/apply.c:3287 #, c-format msgid "read of %s failed" -msgstr "ler %s falhou" +msgstr "falha ao ler %s" -#: builtin/apply.c:3077 -msgid "removal patch leaves file contents" -msgstr "" +#: builtin/apply.c:3239 +#, c-format +msgid "reading from '%s' beyond a symbolic link" +msgstr "a ler '%s' indicado por uma ligação simbólica" -#: builtin/apply.c:3098 +#: builtin/apply.c:3267 builtin/apply.c:3489 #, c-format -msgid "%s: already exists in working directory" -msgstr "%s: já existe no espaço de trabalho" +msgid "path %s has been renamed/deleted" +msgstr "o caminho %s foi eliminado ou mudou de nome" -#: builtin/apply.c:3136 +#: builtin/apply.c:3348 builtin/apply.c:3503 #, c-format -msgid "%s: has been deleted/renamed" -msgstr "" +msgid "%s: does not exist in index" +msgstr "%s: não existe no Ãndice" -#: builtin/apply.c:3141 -#: builtin/apply.c:3172 +#: builtin/apply.c:3352 builtin/apply.c:3495 builtin/apply.c:3517 #, c-format msgid "%s: %s" msgstr "%s: %s" -#: builtin/apply.c:3152 -#, c-format -msgid "%s: does not exist in index" -msgstr "" - -#: builtin/apply.c:3166 +#: builtin/apply.c:3357 builtin/apply.c:3511 #, c-format msgid "%s: does not match index" -msgstr "%s: não tem correspondencia ao index" +msgstr "%s: não tem correspondência no Ãndice" -#: builtin/apply.c:3183 +#: builtin/apply.c:3459 +msgid "removal patch leaves file contents" +msgstr "patch de remoção deixa conteúdos no ficheiro" + +#: builtin/apply.c:3528 #, c-format msgid "%s: wrong type" -msgstr "" +msgstr "%s: tipo errado" -#: builtin/apply.c:3185 +#: builtin/apply.c:3530 #, c-format msgid "%s has type %o, expected %o" -msgstr "" +msgstr "%s é do tipo %o, esperado %o" -#: builtin/apply.c:3240 +#: builtin/apply.c:3689 builtin/apply.c:3691 +#, c-format +msgid "invalid path '%s'" +msgstr "caminho inválido '%s'" + +#: builtin/apply.c:3746 #, c-format msgid "%s: already exists in index" -msgstr "%s: já existe no indÃce" +msgstr "%s: já existe no Ãndice" -#: builtin/apply.c:3259 +#: builtin/apply.c:3749 #, c-format -msgid "new mode (%o) of %s does not match old mode (%o)%s%s" -msgstr "" +msgid "%s: already exists in working directory" +msgstr "%s: já existe no diretório de trabalho" + +#: builtin/apply.c:3769 +#, c-format +msgid "new mode (%o) of %s does not match old mode (%o)" +msgstr "o novo modo (%o) de %s não corresponde ao modo antigo (%o)" -#: builtin/apply.c:3265 +#: builtin/apply.c:3774 +#, c-format +msgid "new mode (%o) of %s does not match old mode (%o) of %s" +msgstr "o novo modo (%o) de %s não corresponde ao modo antigo (%o) de %s" + +#: builtin/apply.c:3794 +#, c-format +msgid "affected file '%s' is beyond a symbolic link" +msgstr "o ficheiro afetado '%s' é indicado por uma ligação simbólica" + +#: builtin/apply.c:3798 #, c-format msgid "%s: patch does not apply" -msgstr "" +msgstr "%s: patch não se aplica com sucesso" -#: builtin/apply.c:3278 +#: builtin/apply.c:3812 #, c-format msgid "Checking patch %s..." -msgstr "" +msgstr "A verificar o patch %s..." -#: builtin/apply.c:3333 -#: builtin/checkout.c:212 -#: builtin/reset.c:158 +#: builtin/apply.c:3905 builtin/checkout.c:233 builtin/reset.c:135 #, c-format msgid "make_cache_entry failed for path '%s'" -msgstr "" +msgstr "falha ao invocar make_cache_entry em '%s'" -#: builtin/apply.c:3476 +#: builtin/apply.c:4048 #, c-format msgid "unable to remove %s from index" -msgstr "" +msgstr "não é possÃvel remover %s do Ãndice" -#: builtin/apply.c:3503 +#: builtin/apply.c:4077 #, c-format -msgid "corrupt patch for subproject %s" -msgstr "" +msgid "corrupt patch for submodule %s" +msgstr "patch corrompido no submódulo %s" -#: builtin/apply.c:3507 +#: builtin/apply.c:4081 #, c-format msgid "unable to stat newly created file '%s'" -msgstr "não é possivel 'stat' o novo ficheiro creado '%s'" +msgstr "não é possÃvel obter estado do novo ficheiro criado '%s'" -#: builtin/apply.c:3512 +#: builtin/apply.c:4086 #, c-format msgid "unable to create backing store for newly created file %s" msgstr "" +"não é possÃvel criar armazenamento de segurança do ficheiro recém-criado %s" -#: builtin/apply.c:3515 +#: builtin/apply.c:4089 builtin/apply.c:4197 #, c-format msgid "unable to add cache entry for %s" -msgstr "" +msgstr "não é possÃvel adicionar %s à cache" -#: builtin/apply.c:3548 +#: builtin/apply.c:4122 #, c-format msgid "closing file '%s'" -msgstr "fechar fichero '%s'" +msgstr "a fechar o ficheiro '%s'" -#: builtin/apply.c:3597 +#: builtin/apply.c:4171 #, c-format msgid "unable to write file '%s' mode %o" -msgstr "" +msgstr "não é possÃvel escrever o ficheiro '%s' com o modo %o" -#: builtin/apply.c:3653 +#: builtin/apply.c:4258 #, c-format msgid "Applied patch %s cleanly." -msgstr "" +msgstr "Patch %s aplicado com sucesso." -#: builtin/apply.c:3661 +#: builtin/apply.c:4266 msgid "internal error" -msgstr "" +msgstr "erro interno" -#. Say this even without --verbose -#: builtin/apply.c:3664 +#: builtin/apply.c:4269 #, c-format msgid "Applying patch %%s with %d reject..." msgid_plural "Applying patch %%s with %d rejects..." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "A aplicar patch %%s com %d rejeição..." +msgstr[1] "A aplicar patch %%s com %d rejeições..." -#: builtin/apply.c:3674 +#: builtin/apply.c:4279 #, c-format msgid "truncating .rej filename to %.*s.rej" -msgstr "" +msgstr "a truncar o nome do ficheiro .rej em %.*s.rej " -#: builtin/apply.c:3695 +#: builtin/apply.c:4300 #, c-format msgid "Hunk #%d applied cleanly." -msgstr "" +msgstr "Excerto nº%d aplicado com sucesso." -#: builtin/apply.c:3698 +#: builtin/apply.c:4303 #, c-format msgid "Rejected hunk #%d." -msgstr "" +msgstr "Excerto nº%d rejeitado." -#: builtin/apply.c:3829 +#: builtin/apply.c:4393 msgid "unrecognized input" msgstr "entrada não reconhecida" -#: builtin/apply.c:3840 +#: builtin/apply.c:4404 msgid "unable to read index file" -msgstr "Não foi possÃvel ler o fichero indÃce" +msgstr "não foi possÃvel ler o ficheiro de Ãndice" + +#: builtin/apply.c:4507 +msgid "don't apply changes matching the given path" +msgstr "não aplicar alterações que correspondam ao caminho fornecido" + +#: builtin/apply.c:4510 +msgid "apply changes matching the given path" +msgstr "aplicar alterações que correspondam ao caminho fornecido" + +#: builtin/apply.c:4513 +msgid "remove <num> leading slashes from traditional diff paths" +msgstr "remover <num> barras à esquerda dos caminhos de diff tradicional" + +#: builtin/apply.c:4516 +msgid "ignore additions made by the patch" +msgstr "ignorar adições feitas pelo patch" + +#: builtin/apply.c:4518 +msgid "instead of applying the patch, output diffstat for the input" +msgstr "em vez de aplicar o patch, mostrar o diffstat da entrada" + +#: builtin/apply.c:4522 +msgid "show number of added and deleted lines in decimal notation" +msgstr "mostrar número de linhas adicionadas e removidas em notação decimal" + +#: builtin/apply.c:4524 +msgid "instead of applying the patch, output a summary for the input" +msgstr "em vez de aplicar o patch, mostrar um resumo da entrada" + +#: builtin/apply.c:4526 +msgid "instead of applying the patch, see if the patch is applicable" +msgstr "em vez de aplicar o patch, verificar se o patch pode ser aplicado" + +#: builtin/apply.c:4528 +msgid "make sure the patch is applicable to the current index" +msgstr "garantir que o patch pode ser aplicado ao Ãndice atual" + +#: builtin/apply.c:4530 +msgid "apply a patch without touching the working tree" +msgstr "aplicar um patch sem tocar na árvore de trabalho" -#: builtin/apply.c:4035 +#: builtin/apply.c:4532 +msgid "accept a patch that touches outside the working area" +msgstr "aceitar patches que alteram ficheiros fora da área de trabalho" + +#: builtin/apply.c:4534 +msgid "also apply the patch (use with --stat/--summary/--check)" +msgstr "aplicar o patch também (use com --stat/--summary/--check)" + +#: builtin/apply.c:4536 +msgid "attempt three-way merge if a patch does not apply" +msgstr "tentar merge com três pontos se um patch não for aplicado corretamente" + +#: builtin/apply.c:4538 +msgid "build a temporary index based on embedded index information" +msgstr "" +"construir um Ãndice temporário baseado na informação incorporada do Ãndice" + +#: builtin/apply.c:4541 builtin/checkout-index.c:169 builtin/ls-files.c:425 +msgid "paths are separated with NUL character" +msgstr "os caminhos estão separados por caracteres NUL" + +#: builtin/apply.c:4543 +msgid "ensure at least <n> lines of context match" +msgstr "garantir que, pelo menos, <n> linhas de contexto coincidem" + +#: builtin/apply.c:4545 +msgid "detect new or modified lines that have whitespace errors" +msgstr "detetar linhas novas ou modificadas que tenham espaços em branco" + +#: builtin/apply.c:4548 builtin/apply.c:4551 +msgid "ignore changes in whitespace when finding context" +msgstr "ignorar alterações de espaço em branco ao procurar contexto" + +#: builtin/apply.c:4554 +msgid "apply the patch in reverse" +msgstr "aplicar o patch em reverso" + +#: builtin/apply.c:4556 +msgid "don't expect at least one line of context" +msgstr "não esperar nenhuma linha de contexto" + +#: builtin/apply.c:4558 +msgid "leave the rejected hunks in corresponding *.rej files" +msgstr "deixar os excertos rejeitados nos respetivos ficheiros *.rej" + +#: builtin/apply.c:4560 +msgid "allow overlapping hunks" +msgstr "permitir a sobreposição de excertos" + +#: builtin/apply.c:4563 +msgid "tolerate incorrectly detected missing new-line at the end of file" +msgstr "" +"tolerar deteções incorretas de falta de nova linha no final do ficheiro" + +#: builtin/apply.c:4566 +msgid "do not trust the line counts in the hunk headers" +msgstr "não confiar na contagem de linhas no cabeçalho dos excertos" + +#: builtin/apply.c:4569 +msgid "prepend <root> to all filenames" +msgstr "preceder <root> a todos os nomes de ficheiro" + +#: builtin/apply.c:4591 +msgid "--3way outside a repository" +msgstr "--3way fora de um repositório" + +#: builtin/apply.c:4599 msgid "--index outside a repository" -msgstr "--index fora de um repositorio" +msgstr "--index fora de um repositório" -#: builtin/apply.c:4038 +#: builtin/apply.c:4602 msgid "--cached outside a repository" -msgstr "--cached fora de um repositorio" +msgstr "--cached fora de um repositório" -#: builtin/apply.c:4054 +#: builtin/apply.c:4621 #, c-format msgid "can't open patch '%s'" -msgstr "não é possivel abrir patch '%s'" +msgstr "não é possÃvel abrir o patch '%s'" -#: builtin/apply.c:4068 +#: builtin/apply.c:4635 #, c-format msgid "squelched %d whitespace error" msgid_plural "squelched %d whitespace errors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%d erro de espaço em branco reprimido" +msgstr[1] "%d erros de espaço em branco repimidos" -#: builtin/apply.c:4074 -#: builtin/apply.c:4084 +#: builtin/apply.c:4641 builtin/apply.c:4651 #, c-format msgid "%d line adds whitespace errors." msgid_plural "%d lines add whitespace errors." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%d linha adiciona erros de espaço em branco." +msgstr[1] "%d linhas adicionam erros de espaço em branco." #: builtin/archive.c:17 #, c-format msgid "could not create archive file '%s'" -msgstr "" +msgstr "não foi possÃvel criar o ficheiro de arquivo '%s'" #: builtin/archive.c:20 msgid "could not redirect output" -msgstr "" +msgstr "não foi possÃvel redirecionar a saÃda" #: builtin/archive.c:37 msgid "git archive: Remote with no URL" -msgstr "" +msgstr "git archive: Remoto sem URL" #: builtin/archive.c:58 msgid "git archive: expected ACK/NAK, got EOF" -msgstr "" +msgstr "git archive: esperava-se ACK/NAK, obteve-se EOF" -#: builtin/archive.c:63 +#: builtin/archive.c:61 #, c-format msgid "git archive: NACK %s" -msgstr "" +msgstr "git archive: NACK %s" -#: builtin/archive.c:65 +#: builtin/archive.c:63 #, c-format msgid "remote error: %s" msgstr "erro remoto: %s" -#: builtin/archive.c:66 +#: builtin/archive.c:64 msgid "git archive: protocol error" -msgstr "" +msgstr "git archive: erro de protocolo" -#: builtin/archive.c:71 +#: builtin/archive.c:68 msgid "git archive: expected a flush" +msgstr "git archive: esvaziamento de cache (flush) esperado" + +#: builtin/bisect--helper.c:7 +msgid "git bisect--helper --next-all [--no-checkout]" +msgstr "git bisect--helper --next-all [--no-checkout]" + +#: builtin/bisect--helper.c:17 +msgid "perform 'git bisect next'" +msgstr "executar 'git bisect next'" + +#: builtin/bisect--helper.c:19 +msgid "update BISECT_HEAD instead of checking out the current commit" +msgstr "atualizar BISECT_HEAD em vez de extrair o commit atual" + +#: builtin/blame.c:33 +msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>" +msgstr "git blame [<opções>] [<rev-opções>] [<rev>] [--] <ficheiro>" + +#: builtin/blame.c:38 +msgid "<rev-opts> are documented in git-rev-list(1)" +msgstr "<rev-opções> estão documentadas em git-rev-list(1)" + +#: builtin/blame.c:1782 +msgid "Blaming lines" +msgstr "Linhas de culpa" + +#: builtin/blame.c:2530 +msgid "Show blame entries as we find them, incrementally" +msgstr "" +"Mostrar entradas de culpa à medida que forem encontradas, incrementalmente" + +#: builtin/blame.c:2531 +msgid "Show blank SHA-1 for boundary commits (Default: off)" +msgstr "" +"Mostar SHA-1 dos commits de limite em branco (Predefinição: desativado)" + +#: builtin/blame.c:2532 +msgid "Do not treat root commits as boundaries (Default: off)" +msgstr "Não tratar os commits raiz como limites (Predefinição: desativado)" + +#: builtin/blame.c:2533 +msgid "Show work cost statistics" +msgstr "Mostrar estatÃsticas de custo de atividade" + +#: builtin/blame.c:2534 +msgid "Force progress reporting" +msgstr "Forçar informação de progresso" + +#: builtin/blame.c:2535 +msgid "Show output score for blame entries" +msgstr "Mostrar a pontuação das entradas de culpa" + +#: builtin/blame.c:2536 +msgid "Show original filename (Default: auto)" +msgstr "Mostrar o nome do ficheiro original (Predefinição: auto)" + +#: builtin/blame.c:2537 +msgid "Show original linenumber (Default: off)" +msgstr "Mostrar números de linha originais (Predefinição: desativado)" + +#: builtin/blame.c:2538 +msgid "Show in a format designed for machine consumption" +msgstr "Mostrar em formato próprio para ser consumo por uma máquina" + +#: builtin/blame.c:2539 +msgid "Show porcelain format with per-line commit information" +msgstr "Mostrar em formato de porcelana com informações de commit por linha" + +#: builtin/blame.c:2540 +msgid "Use the same output mode as git-annotate (Default: off)" +msgstr "Usar o mesmo modo de saÃda que git-annotate (Predefinição: desativado)" + +#: builtin/blame.c:2541 +msgid "Show raw timestamp (Default: off)" +msgstr "Mostrar carimbo de data/hora em bruto (Predefinição: desativado)" + +#: builtin/blame.c:2542 +msgid "Show long commit SHA1 (Default: off)" +msgstr "Mostrar SHA1 longo de commit (Predefinição: desativado)" + +#: builtin/blame.c:2543 +msgid "Suppress author name and timestamp (Default: off)" msgstr "" +"Suprimir nome de autor e carimbo de data/hora (Predefinição: desativado)" + +#: builtin/blame.c:2544 +msgid "Show author email instead of name (Default: off)" +msgstr "Mostrar o email do autor em vez do nome (Predefinição: desativado)" + +#: builtin/blame.c:2545 +msgid "Ignore whitespace differences" +msgstr "Ignorar as diferenças de espaço em branco" + +#: builtin/blame.c:2546 +msgid "Spend extra cycles to find better match" +msgstr "Despender ciclos extra para encontrar uma melhor correspondência" + +#: builtin/blame.c:2547 +msgid "Use revisions from <file> instead of calling git-rev-list" +msgstr "Usar revisões do <ficheiro> em vez de invocar git-rev-list" + +#: builtin/blame.c:2548 +msgid "Use <file>'s contents as the final image" +msgstr "Usar o conteúdo do <ficheiro> como imagem final" + +#: builtin/blame.c:2549 builtin/blame.c:2550 +msgid "score" +msgstr "pontuação" + +#: builtin/blame.c:2549 +msgid "Find line copies within and across files" +msgstr "Localizar linhas copiadas dentro e entre ficheiros" + +#: builtin/blame.c:2550 +msgid "Find line movements within and across files" +msgstr "Localizar linhas movidas dentro e entre ficheiros" + +#: builtin/blame.c:2551 +msgid "n,m" +msgstr "n,m" + +#: builtin/blame.c:2551 +msgid "Process only line range n,m, counting from 1" +msgstr "Processar apenas o intervalo de linhas n,m, a cantar de 1" + +#. TRANSLATORS: This string is used to tell us the maximum +#. display width for a relative timestamp in "git blame" +#. output. For C locale, "4 years, 11 months ago", which +#. 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:2640 +msgid "4 years, 11 months ago" +msgstr "há 4 anos e 11 meses atrás" -#: builtin/branch.c:144 +#: builtin/branch.c:25 +msgid "git branch [<options>] [-r | -a] [--merged | --no-merged]" +msgstr "git branch [<opções>] [-r | -a] [--merged | --no-merged]" + +#: builtin/branch.c:26 +msgid "git branch [<options>] [-l] [-f] <branch-name> [<start-point>]" +msgstr "git branch [<opções>] [-l] [-f] <nome-ramo> [<ponto-de-partida>]" + +#: builtin/branch.c:27 +msgid "git branch [<options>] [-r] (-d | -D) <branch-name>..." +msgstr "git branch [<opções>] [-r] (-d | -D) <nome-do-ramo>..." + +#: builtin/branch.c:28 +msgid "git branch [<options>] (-m | -M) [<old-branch>] <new-branch>" +msgstr "git branch [<opções>] (-m | -M) [<ramo-antigo>] <novo-ramo>" + +#: builtin/branch.c:29 +msgid "git branch [<options>] [-r | -a] [--points-at]" +msgstr "git branch [<opções>] [-r | -a] [--points-at]" + +#: builtin/branch.c:142 #, c-format msgid "" "deleting branch '%s' that has been merged to\n" " '%s', but not yet merged to HEAD." msgstr "" +"a eliminar o ramo '%s' incorporado em\n" +" '%s', mas ainda não incorporado em HEAD." -#: builtin/branch.c:148 +#: builtin/branch.c:146 #, c-format msgid "" "not deleting branch '%s' that is not yet merged to\n" " '%s', even though it is merged to HEAD." msgstr "" +"ramo '%s' não eliminado, visto que ainda não foi incorporado em\n" +" '%s', apesar de já ter sido incorporado em HEAD." + +#: builtin/branch.c:160 +#, c-format +msgid "Couldn't look up commit object for '%s'" +msgstr "Não foi possÃvel pesquisar pelo objeto commit de '%s'" -#: builtin/branch.c:180 +#: builtin/branch.c:164 +#, c-format +msgid "" +"The branch '%s' is not fully merged.\n" +"If you are sure you want to delete it, run 'git branch -D %s'." +msgstr "" +"O ramo '%s' não foi totalmente incorporado.\n" +"Se tem a certeza que o quer eliminar, execute 'git branch -D %s'." + +#: builtin/branch.c:177 +msgid "Update of config-file failed" +msgstr "Falha ao atualizar o ficheiro de configuração" + +#: builtin/branch.c:205 msgid "cannot use -a with -d" -msgstr "Não é possÃvel usar -a com um -d" +msgstr "não é possÃvel usar -a com -d" -#: builtin/branch.c:186 +#: builtin/branch.c:211 msgid "Couldn't look up commit object for HEAD" -msgstr "" +msgstr "Não foi possÃvel pesquisar pelo objeto commit de HEAD" -#: builtin/branch.c:191 +#: builtin/branch.c:219 #, c-format msgid "Cannot delete the branch '%s' which you are currently on." -msgstr "" +msgstr "Não é possÃvel eliminar o ramo '%s' no qual se encontra neste momento." -#: builtin/branch.c:202 +#: builtin/branch.c:235 #, c-format -msgid "remote branch '%s' not found." -msgstr "rama remota '%s não encontrada." +msgid "remote-tracking branch '%s' not found." +msgstr "ramo remoto seguido '%s' não encontrado." -#: builtin/branch.c:203 +#: builtin/branch.c:236 #, c-format msgid "branch '%s' not found." -msgstr "rama '%s' não encontrado." +msgstr "ramo '%s' não encontrado." -#: builtin/branch.c:210 +#: builtin/branch.c:251 #, c-format -msgid "Couldn't look up commit object for '%s'" -msgstr "" +msgid "Error deleting remote-tracking branch '%s'" +msgstr "Erro a eliminar o ramo remoto seguido '%s'" -#: builtin/branch.c:216 +#: builtin/branch.c:252 #, c-format -msgid "" -"The branch '%s' is not fully merged.\n" -"If you are sure you want to delete it, run 'git branch -D %s'." -msgstr "" +msgid "Error deleting branch '%s'" +msgstr "Erro a eliminar ramo '%s'" -#: builtin/branch.c:225 +#: builtin/branch.c:259 #, c-format -msgid "Error deleting remote branch '%s'" -msgstr "" +msgid "Deleted remote-tracking branch %s (was %s).\n" +msgstr "Ramo remoto seguido %s eliminado (era %s).\n" -#: builtin/branch.c:226 +#: builtin/branch.c:260 #, c-format -msgid "Error deleting branch '%s'" -msgstr "Erro a eliminar rama '%s'" +msgid "Deleted branch %s (was %s).\n" +msgstr "Ramo %s eliminado (era %s).\n" -#: builtin/branch.c:233 +#: builtin/branch.c:303 #, c-format -msgid "Deleted remote branch %s (was %s).\n" -msgstr "" +msgid "[%s: gone]" +msgstr "[%s: desaparecido]" -#: builtin/branch.c:234 +#: builtin/branch.c:308 #, c-format -msgid "Deleted branch %s (was %s).\n" -msgstr "Eliminar rama %s (era %s).\n" +msgid "[%s]" +msgstr "[%s]" -#: builtin/branch.c:239 -msgid "Update of config-file failed" -msgstr "" +#: builtin/branch.c:313 +#, c-format +msgid "[%s: behind %d]" +msgstr "[%s: atrás %d]" -#: builtin/branch.c:337 +#: builtin/branch.c:315 #, c-format -msgid "branch '%s' does not point at a commit" -msgstr "" +msgid "[behind %d]" +msgstr "[atrás %d]" -#: builtin/branch.c:409 +#: builtin/branch.c:319 #, c-format -msgid "behind %d] " -msgstr "atrás %d] " +msgid "[%s: ahead %d]" +msgstr "[%s: à frente %d]" -#: builtin/branch.c:411 +#: builtin/branch.c:321 #, c-format -msgid "ahead %d] " -msgstr "a frente %d] " +msgid "[ahead %d]" +msgstr "[à frente %d]" -#: builtin/branch.c:413 +#: builtin/branch.c:324 #, c-format -msgid "ahead %d, behind %d] " -msgstr "a frente %d, atrás %d] " +msgid "[%s: ahead %d, behind %d]" +msgstr "[%s: à frente %d, atrás %d]" -#: builtin/branch.c:521 -msgid "(no branch)" -msgstr "(não é rama)" +#: builtin/branch.c:327 +#, c-format +msgid "[ahead %d, behind %d]" +msgstr "[à frente %d, atrás %d]" -#: builtin/branch.c:586 -msgid "some refs could not be read" -msgstr "" +#: builtin/branch.c:340 +msgid " **** invalid ref ****" +msgstr " **** referências inválida ****" + +#: builtin/branch.c:366 +#, c-format +msgid "(no branch, rebasing %s)" +msgstr "(nenhum ramo, a efetuar rebase de %s)" + +#: builtin/branch.c:369 +#, c-format +msgid "(no branch, bisect started on %s)" +msgstr "(nenhum ramo, bissecção iniciada em %s)" + +#: builtin/branch.c:375 +#, c-format +msgid "(HEAD detached at %s)" +msgstr "(HEAD destacada em %s)" -#: builtin/branch.c:599 +#: builtin/branch.c:378 +#, c-format +msgid "(HEAD detached from %s)" +msgstr "(HEAD destacada de %s)" + +#: builtin/branch.c:382 +msgid "(no branch)" +msgstr "(nenhum ramo)" + +#: builtin/branch.c:524 msgid "cannot rename the current branch while not on any." msgstr "" +"não é possÃvel mudar o nome do ramo atual vista que não se encontra num ramo." -#: builtin/branch.c:609 +#: builtin/branch.c:534 #, c-format msgid "Invalid branch name: '%s'" -msgstr "Nome da rama inválida: '%s'" +msgstr "Nome de ramo inválido: '%s'" -#: builtin/branch.c:624 +#: builtin/branch.c:549 msgid "Branch rename failed" -msgstr "Falhou renomeação da rama" +msgstr "Falha ao mudar o nome do ramo" -#: builtin/branch.c:628 +#: builtin/branch.c:553 #, c-format msgid "Renamed a misnamed branch '%s' away" -msgstr "Renomeado uma rama erronea '%s'" +msgstr "O ramo incorretamente denominado '%s' mudou de nome" -#: builtin/branch.c:632 +#: builtin/branch.c:557 #, c-format msgid "Branch renamed to %s, but HEAD is not updated!" -msgstr "" +msgstr "O nome do ramo mudou para %s, mas a HEAD não está atualizada!" -#: builtin/branch.c:639 +#: builtin/branch.c:564 msgid "Branch is renamed, but update of config-file failed" msgstr "" +"O ramo mudou de nome, mas a atualização do ficheiro de configuração falhou" -#: builtin/branch.c:654 -#, c-format -msgid "malformed object name %s" -msgstr "" - -#: builtin/branch.c:678 +#: builtin/branch.c:586 #, c-format msgid "could not write branch description template: %s" -msgstr "" +msgstr "não foi possÃvel escrever o modelo da descrição de ramo: %s" + +#: builtin/branch.c:615 +msgid "Generic options" +msgstr "Opções genéricas" + +#: builtin/branch.c:617 +msgid "show hash and subject, give twice for upstream branch" +msgstr "apresentar hash e assunto, duplique para ramos a montante" + +#: builtin/branch.c:618 +msgid "suppress informational messages" +msgstr "suprimir mensagens informativas" + +#: builtin/branch.c:619 +msgid "set up tracking mode (see git-pull(1))" +msgstr "configurar modo de seguimento (consulte git-pull(1))" + +#: builtin/branch.c:621 +msgid "change upstream info" +msgstr "alterar a informação do ramo a montante" -#: builtin/branch.c:769 +#: builtin/branch.c:625 +msgid "use colored output" +msgstr "usar saÃda colorida" + +#: builtin/branch.c:626 +msgid "act on remote-tracking branches" +msgstr "atuar sobre ramos remotos seguidos" + +#: builtin/branch.c:628 builtin/branch.c:629 +msgid "print only branches that contain the commit" +msgstr "imprimir apenas ramos que contenham o commit" + +#: builtin/branch.c:632 +msgid "Specific git-branch actions:" +msgstr "Ações especÃficas do git-branch:" + +#: builtin/branch.c:633 +msgid "list both remote-tracking and local branches" +msgstr "listar ramos remotos seguidos e ramos locais" + +#: builtin/branch.c:635 +msgid "delete fully merged branch" +msgstr "eliminar um ramo totalmente incorporado" + +#: builtin/branch.c:636 +msgid "delete branch (even if not merged)" +msgstr "eliminar um ramo (mesmo que não tenha sido incorporado)" + +#: builtin/branch.c:637 +msgid "move/rename a branch and its reflog" +msgstr "mover ou mudar o nome de um ramo e o seu reflog" + +#: builtin/branch.c:638 +msgid "move/rename a branch, even if target exists" +msgstr "mover ou mudar o nome de um ramo, mesmo que o destino já exista" + +#: builtin/branch.c:639 +msgid "list branch names" +msgstr "listar os nomes dos ramos" + +#: builtin/branch.c:640 +msgid "create the branch's reflog" +msgstr "criar reflog do ramo" + +#: builtin/branch.c:642 +msgid "edit the description for the branch" +msgstr "editar a descrição do ramo" + +#: builtin/branch.c:643 +msgid "force creation, move/rename, deletion" +msgstr "forçar criação, mover/mudar o nome ou exclusão" + +#: builtin/branch.c:644 +msgid "print only branches that are merged" +msgstr "imprimir apenas os ramos que foram incorporados" + +#: builtin/branch.c:645 +msgid "print only branches that are not merged" +msgstr "imprimir apenas os ramos que não foram incorporados" + +#: builtin/branch.c:646 +msgid "list branches in columns" +msgstr "listar os ramos em colunas" + +#: builtin/branch.c:647 builtin/for-each-ref.c:38 builtin/tag.c:366 +msgid "key" +msgstr "chave" + +#: builtin/branch.c:648 builtin/for-each-ref.c:39 builtin/tag.c:367 +msgid "field name to sort on" +msgstr "nome do campo pelo qual ordernar" + +#: 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 "objeto" + +#: builtin/branch.c:651 +msgid "print only branches of the object" +msgstr "imprimir apenas os ramos do objeto" + +#: builtin/branch.c:669 msgid "Failed to resolve HEAD as a valid ref." -msgstr "" +msgstr "Falha ao resolver HEAD numa referência válida." -#: builtin/branch.c:774 -#: builtin/clone.c:558 +#: builtin/branch.c:673 builtin/clone.c:705 msgid "HEAD not found below refs/heads!" -msgstr "" +msgstr "HEAD não encontrada em refs/heads!" -#: builtin/branch.c:794 +#: builtin/branch.c:693 msgid "--column and --verbose are incompatible" msgstr "--column e --verbose são incompatÃveis" -#: builtin/branch.c:843 +#: builtin/branch.c:704 builtin/branch.c:746 +msgid "branch name required" +msgstr "nome do ramo é obrigatório" + +#: builtin/branch.c:722 +msgid "Cannot give description to detached HEAD" +msgstr "Não é possÃvel atribuir descrição a HEAD destacada" + +#: builtin/branch.c:727 +msgid "cannot edit description of more than one branch" +msgstr "não é possÃvel editar a descrição de mais do que um ramo" + +#: builtin/branch.c:734 +#, c-format +msgid "No commit on branch '%s' yet." +msgstr "Ainda não há commits no ramo '%s'." + +#: builtin/branch.c:737 +#, c-format +msgid "No branch named '%s'." +msgstr "Não há nenhum ramo denominado '%s'." + +#: builtin/branch.c:752 +msgid "too many branches for a rename operation" +msgstr "demasiados ramos para uma operação de mudança de nome" + +#: builtin/branch.c:757 +msgid "too many branches to set new upstream" +msgstr "demasiados ramos para definir novo ramo a montante" + +#: builtin/branch.c:761 +#, c-format +msgid "" +"could not set upstream of HEAD to %s when it does not point to any branch." +msgstr "" +"não foi possÃvel definir %s como ramo a montante de HEAD visto que esta não " +"aponta para um ramo." + +#: builtin/branch.c:764 builtin/branch.c:786 builtin/branch.c:807 +#, c-format +msgid "no such branch '%s'" +msgstr "o ramo '%s' não existe" + +#: builtin/branch.c:768 +#, c-format +msgid "branch '%s' does not exist" +msgstr "o ramo '%s' não existe" + +#: builtin/branch.c:780 +msgid "too many branches to unset upstream" +msgstr "demasiados ramos para remover a definição de ramo a montante" + +#: builtin/branch.c:784 +msgid "could not unset upstream of HEAD when it does not point to any branch." +msgstr "" +"não foi possÃvel remover a definição de ramo a montante de HEAD visto que " +"esta não aponta para um ramo." + +#: builtin/branch.c:790 +#, c-format +msgid "Branch '%s' has no upstream information" +msgstr "O ramo '%s' não tem informação sobre o ramo a montante" + +#: builtin/branch.c:804 +msgid "it does not make sense to create 'HEAD' manually" +msgstr "não faz sentido criar 'HEAD' manualmente" + +#: builtin/branch.c:810 msgid "-a and -r options to 'git branch' do not make sense with a branch name" msgstr "" +"as opções -a e -r de 'git branch' não fazem sentido com um nome de ramo" + +#: 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 "" +"A opção --set-upstream é obsoleta e será removida. Considere o uso de --" +"track ou --set-upstream-to\n" + +#: builtin/branch.c:830 +#, c-format +msgid "" +"\n" +"If you wanted to make '%s' track '%s', do this:\n" +"\n" +msgstr "" +"\n" +"Se quer que '%s' siga '%s', faça:\n" +"\n" + +#: builtin/branch.c:831 +#, c-format +msgid " git branch -d %s\n" +msgstr " git branch -d %s\n" + +#: builtin/branch.c:832 +#, c-format +msgid " git branch --set-upstream-to %s\n" +msgstr " git branch --set-upstream-to %s\n" -#: builtin/bundle.c:47 +#: builtin/bundle.c:51 #, c-format msgid "%s is okay\n" -msgstr "%s está bem\n" +msgstr "%s está correto\n" -#: builtin/bundle.c:56 +#: builtin/bundle.c:64 msgid "Need a repository to create a bundle." -msgstr "" +msgstr "É necessário um repositório para criar um bundle." -#: builtin/bundle.c:60 +#: builtin/bundle.c:68 msgid "Need a repository to unbundle." +msgstr "É preciso um repositório para desempacotar." + +#: builtin/cat-file.c:428 +msgid "" +"git cat-file (-t [--allow-unknown-type]|-s [--allow-unknown-type]|-e|-p|" +"<type>|--textconv) <object>" +msgstr "" +"git cat-file (-t [--allow-unknown-type]|-s [--allow-unknown-type]|-e|-p|" +"<tipo>|--textconv) <objeto>" + +#: builtin/cat-file.c:429 +msgid "git cat-file (--batch | --batch-check) [--follow-symlinks]" +msgstr "git cat-file (--batch | --batch-check) [--follow-symlinks]" + +#: builtin/cat-file.c:466 +msgid "<type> can be one of: blob, tree, commit, tag" +msgstr "<tipo> pode ser um de: blob, tree, commit, tag" + +#: builtin/cat-file.c:467 +msgid "show object type" +msgstr "mostrar tipo do objeto" + +#: builtin/cat-file.c:468 +msgid "show object size" +msgstr "mostrar tamanho do objeto" + +#: builtin/cat-file.c:470 +msgid "exit with zero when there's no error" +msgstr "sair com retorno zero quando não houver erros" + +#: builtin/cat-file.c:471 +msgid "pretty-print object's content" +msgstr "mostrar conteúdo do objeto com impressão bonita" + +#: builtin/cat-file.c:473 +msgid "for blob objects, run textconv on object's content" +msgstr "executar textconv no conteúdo de objetos blob" + +#: builtin/cat-file.c:475 +msgid "allow -s and -t to work with broken/corrupt objects" +msgstr "permitir que -s e -t funcionem com objetos danificados/corrompidos" + +#: builtin/cat-file.c:476 +msgid "buffer --batch output" +msgstr "carregar a saÃda de --batch" + +#: builtin/cat-file.c:478 +msgid "show info and content of objects fed from the standard input" +msgstr "mostrar informação e conteúdo dos objetos fornecidos na entrada padrão" + +#: builtin/cat-file.c:481 +msgid "show info about objects fed from the standard input" +msgstr "mostrar informação sobre os objetos fornecidos na entrada padrão" + +#: builtin/cat-file.c:484 +msgid "follow in-tree symlinks (used with --batch or --batch-check)" msgstr "" +"seguir ligações simbólica no interior da árvore (usado com --batch ou --" +"batch-check)" + +#: builtin/cat-file.c:486 +msgid "show all objects with --batch or --batch-check" +msgstr "mostrar todos os objetos com --batch ou --batch-check" + +#: builtin/check-attr.c:11 +msgid "git check-attr [-a | --all | <attr>...] [--] <pathname>..." +msgstr "git check-attr [-a | --all | <atributo>...] [--] <caminho>..." + +#: builtin/check-attr.c:12 +msgid "git check-attr --stdin [-z] [-a | --all | <attr>...]" +msgstr "git check-attr --stdin [-z] [-a | --all | <atributo>...]" + +#: builtin/check-attr.c:19 +msgid "report all attributes set on file" +msgstr "apresentar todos os atributos definidos no ficheiro" + +#: builtin/check-attr.c:20 +msgid "use .gitattributes only from the index" +msgstr "usar .gitattributes apenas a partir do Ãndice" + +#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:97 +msgid "read file names from stdin" +msgstr "ler os nomes dos ficheiros da entrada padrão" + +#: builtin/check-attr.c:23 builtin/check-ignore.c:24 +msgid "terminate input and output records by a NUL character" +msgstr "terminar registos da entrada e da saÃda com um carácter NUL" + +#: builtin/check-ignore.c:18 builtin/checkout.c:1136 builtin/gc.c:325 +msgid "suppress progress reporting" +msgstr "suprimir informação de progresso" + +#: builtin/check-ignore.c:26 +msgid "show non-matching input paths" +msgstr "mostrar caminhos de entrada sem correspondência" -#: builtin/checkout.c:113 -#: builtin/checkout.c:146 +#: builtin/check-ignore.c:28 +msgid "ignore index when checking" +msgstr "ignorar o Ãndice ao verificar" + +#: builtin/check-ignore.c:154 +msgid "cannot specify pathnames with --stdin" +msgstr "não é possÃvel especificar caminhos com --stdin" + +#: builtin/check-ignore.c:157 +msgid "-z only makes sense with --stdin" +msgstr "-z só faz sentido com --stdin" + +#: builtin/check-ignore.c:159 +msgid "no path specified" +msgstr "nenhum caminho especificado" + +#: builtin/check-ignore.c:163 +msgid "--quiet is only valid with a single pathname" +msgstr "--quiet só é válido com um único caminho" + +#: builtin/check-ignore.c:165 +msgid "cannot have both --quiet and --verbose" +msgstr "não é possÃvel usar --quiet e --verbose simultaneamente" + +#: builtin/check-ignore.c:168 +msgid "--non-matching is only valid with --verbose" +msgstr "--non-matching só é válido com --verbose" + +#: builtin/check-mailmap.c:8 +msgid "git check-mailmap [<options>] <contact>..." +msgstr "git check-mailmap [<opções>] <contacto>..." + +#: builtin/check-mailmap.c:13 +msgid "also read contacts from stdin" +msgstr "também ler contactos da entrada padrão" + +#: builtin/check-mailmap.c:24 #, c-format -msgid "path '%s' does not have our version" +msgid "unable to parse contact: %s" +msgstr "não é possÃvel analisar o contacto: %s" + +#: builtin/check-mailmap.c:47 +msgid "no contacts specified" +msgstr "nenhum contacto especificado" + +#: builtin/checkout-index.c:127 +msgid "git checkout-index [<options>] [--] [<file>...]" +msgstr "git checkout-index [<opções>] [--] [<ficheiro>...]" + +#: builtin/checkout-index.c:144 +msgid "stage should be between 1 and 3 or all" +msgstr "stage deve ser um número entre 1 e 3 ou o parâmetro all" + +#: builtin/checkout-index.c:160 +msgid "check out all files in the index" +msgstr "extrair todos os ficheiros presentes no Ãndice" + +#: builtin/checkout-index.c:161 +msgid "force overwrite of existing files" +msgstr "forçar substituição dos ficheiros existentes" + +#: builtin/checkout-index.c:163 +msgid "no warning for existing files and files not in index" msgstr "" +"não mostrar aviso para ficheiros existentes e ficheiros não presentes no " +"Ãndice" + +#: builtin/checkout-index.c:165 +msgid "don't checkout new files" +msgstr "não extrair novos ficheiros" + +#: builtin/checkout-index.c:167 +msgid "update stat information in the index file" +msgstr "atualizar informação de stat no ficheiro de Ãndice" + +#: builtin/checkout-index.c:171 +msgid "read list of paths from the standard input" +msgstr "ler lista de caminhos da entrada padrão" + +#: builtin/checkout-index.c:173 +msgid "write the content to temporary files" +msgstr "escrever o conteúdo em ficheiros temporários" + +#: 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 +msgid "string" +msgstr "cadeia" + +#: builtin/checkout-index.c:175 +msgid "when creating files, prepend <string>" +msgstr "preceder <cadeia> ao criar ficheiros" + +#: builtin/checkout-index.c:177 +msgid "copy out the files from named stage" +msgstr "copiar os ficheiros do estágio indicado" + +#: builtin/checkout.c:25 +msgid "git checkout [<options>] <branch>" +msgstr "git checkout [<opções>] <ramo>" + +#: builtin/checkout.c:26 +msgid "git checkout [<options>] [<branch>] -- <file>..." +msgstr "git checkout [<opções>] [<ramo>] -- <ficheiro>..." -#: builtin/checkout.c:115 -#: builtin/checkout.c:148 +#: builtin/checkout.c:134 builtin/checkout.c:167 +#, c-format +msgid "path '%s' does not have our version" +msgstr "o caminho '%s' não tem a nossa versão" + +#: builtin/checkout.c:136 builtin/checkout.c:169 #, c-format msgid "path '%s' does not have their version" -msgstr "" +msgstr "o caminho '%s' não tem a versão deles" -#: builtin/checkout.c:131 +#: builtin/checkout.c:152 #, c-format msgid "path '%s' does not have all necessary versions" -msgstr "" +msgstr "o caminho '%s' não tem todas as versões necessárias" -#: builtin/checkout.c:175 +#: builtin/checkout.c:196 #, c-format msgid "path '%s' does not have necessary versions" -msgstr "" +msgstr "o caminho '%s' não tem as versões necessárias" -#: builtin/checkout.c:192 +#: builtin/checkout.c:213 #, c-format msgid "path '%s': cannot merge" -msgstr "" +msgstr "caminho '%s': não é possÃvel integrar" -#: builtin/checkout.c:209 +#: builtin/checkout.c:230 #, c-format msgid "Unable to add merge result for '%s'" -msgstr "" +msgstr "Não é possÃvel integrar os resultados do merge de '%s'" -#: builtin/checkout.c:234 -#: builtin/checkout.c:392 -msgid "corrupt index file" -msgstr "ficheiro index corrupto" +#: builtin/checkout.c:251 builtin/checkout.c:254 builtin/checkout.c:257 +#: builtin/checkout.c:260 +#, c-format +msgid "'%s' cannot be used with updating paths" +msgstr "'%s' não pode ser usado com caminhos em atualização" -#: builtin/checkout.c:264 -#: builtin/checkout.c:271 +#: builtin/checkout.c:263 builtin/checkout.c:266 #, c-format -msgid "path '%s' is unmerged" -msgstr "" +msgid "'%s' cannot be used with %s" +msgstr "'%s' não pode ser usado com %s" -#: builtin/checkout.c:302 -#: builtin/checkout.c:498 -#: builtin/clone.c:583 -#: builtin/merge.c:812 -msgid "unable to write new index file" +#: builtin/checkout.c:269 +#, c-format +msgid "Cannot update paths and switch to branch '%s' at the same time." msgstr "" +"Não é possÃvel atualizar os caminhos e mudar para o ramo '%s' ao mesmo tempo." -#: builtin/checkout.c:319 -#: builtin/diff.c:302 -#: builtin/merge.c:408 -msgid "diff_setup_done failed" -msgstr "" +#: builtin/checkout.c:280 builtin/checkout.c:474 +msgid "corrupt index file" +msgstr "ficheiro de Ãndice corrompido" -#: builtin/checkout.c:414 +#: builtin/checkout.c:340 builtin/checkout.c:347 +#, c-format +msgid "path '%s' is unmerged" +msgstr "o caminho '%s' não foi integrado" + +#: builtin/checkout.c:496 msgid "you need to resolve your current index first" -msgstr "" +msgstr "primeiro deve resolver o Ãndice atual" -#: builtin/checkout.c:533 +#: builtin/checkout.c:623 #, c-format -msgid "Can not do reflog for '%s'\n" -msgstr "" +msgid "Can not do reflog for '%s': %s\n" +msgstr "Não é possÃvel efetuar reflog de '%s': %s\n" -#: builtin/checkout.c:566 +#: builtin/checkout.c:661 msgid "HEAD is now at" -msgstr "HEAD é agora em " +msgstr "HEAD está agora em" -#: builtin/checkout.c:573 +#: builtin/checkout.c:665 builtin/clone.c:659 +msgid "unable to update HEAD" +msgstr "não foi possÃvel atualizar HEAD" + +#: builtin/checkout.c:669 #, c-format msgid "Reset branch '%s'\n" -msgstr "Reset rama '%s'\n" +msgstr "Repor ramo '%s'\n" -#: builtin/checkout.c:576 +#: builtin/checkout.c:672 #, c-format msgid "Already on '%s'\n" msgstr "Já em '%s'\n" -#: builtin/checkout.c:580 +#: builtin/checkout.c:676 #, c-format msgid "Switched to and reset branch '%s'\n" -msgstr "" +msgstr "Mudou para e repôs o ramo '%s'\n" -#: builtin/checkout.c:582 +#: builtin/checkout.c:678 builtin/checkout.c:1068 #, c-format msgid "Switched to a new branch '%s'\n" -msgstr "Mudado para a nova rama '%s'\n" +msgstr "Mudou para o novo ramo '%s'\n" -#: builtin/checkout.c:584 +#: builtin/checkout.c:680 #, c-format msgid "Switched to branch '%s'\n" -msgstr "Mudado para a rama '%s'\n" +msgstr "Mudou para o ramo '%s'\n" -#: builtin/checkout.c:640 +#: builtin/checkout.c:732 #, c-format msgid " ... and %d more.\n" -msgstr " ... e %d mais.\n" +msgstr " ... e mais %d.\n" -#. The singular version -#: builtin/checkout.c:646 +#: builtin/checkout.c:738 #, c-format msgid "" "Warning: you are leaving %d commit behind, not connected to\n" @@ -1631,283 +4301,752 @@ msgid_plural "" "\n" "%s\n" msgstr[0] "" +"Aviso: deixa %d commit para trás, não ligado a nenhum ramo:\n" +"\n" +"%s\n" msgstr[1] "" +"Aviso: deixa %d commits para trás, não ligados a nenhum ramo:\n" +"\n" +"%s\n" -#: builtin/checkout.c:664 +#: 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" +"to do so with:\n" +"\n" +" git branch <new-branch-name> %s\n" +"\n" +msgid_plural "" "If you want to keep them by creating a new branch, this may be a good time\n" "to do so with:\n" "\n" -" git branch new_branch_name %s\n" +" git branch <new-branch-name> %s\n" +"\n" +msgstr[0] "" +"Se deseja mantê-lo, criando um novo ramo, agora seria uma boa altura\n" +"para fazê-lo com:\n" +"\n" +" git branch <nome-do-novo-ramo> %s\n" +"\n" +msgstr[1] "" +"Se deseja mantê-los, criando um novo ramo, agora seria uma boa altura\n" +"para fazê-lo com:\n" +"\n" +" git branch <nome-do-novo-ramo> %s\n" "\n" -msgstr "" -#: builtin/checkout.c:693 +#: builtin/checkout.c:793 msgid "internal error in revision walk" -msgstr "" +msgstr "erro interno durante o curso de revisões" -#: builtin/checkout.c:697 +#: builtin/checkout.c:797 msgid "Previous HEAD position was" -msgstr "" +msgstr "A posição anterior de HEAD era" -#: builtin/checkout.c:723 +#: builtin/checkout.c:824 builtin/checkout.c:1063 msgid "You are on a branch yet to be born" -msgstr "" +msgstr "Está num ramo ainda não criado" + +#: builtin/checkout.c:969 +#, c-format +msgid "only one reference expected, %d given." +msgstr "esperava-se apenas uma referência, %d fornecidas." -#. case (1) -#: builtin/checkout.c:854 +#: builtin/checkout.c:1009 builtin/worktree.c:211 #, c-format msgid "invalid reference: %s" -msgstr "" +msgstr "referência inválida: %s" -#. case (1): want a tree -#: builtin/checkout.c:893 +#: builtin/checkout.c:1038 #, c-format msgid "reference is not a tree: %s" -msgstr "" +msgstr "a referência não é uma árvore: %s" -#: builtin/checkout.c:973 -msgid "-B cannot be used with -b" -msgstr "" +#: builtin/checkout.c:1077 +msgid "paths cannot be used with switching branches" +msgstr "não podem ser usados caminhos ao mudar de ramo" -#: builtin/checkout.c:982 -msgid "--patch is incompatible with all other options" -msgstr "" +#: builtin/checkout.c:1080 builtin/checkout.c:1084 +#, c-format +msgid "'%s' cannot be used with switching branches" +msgstr "'%s' não pode ser usado ao mudar de ramo" -#: builtin/checkout.c:985 -msgid "--detach cannot be used with -b/-B/--orphan" -msgstr "" +#: 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' não pode ser usado com '%s'" -#: builtin/checkout.c:987 -msgid "--detach cannot be used with -t" -msgstr "" +#: builtin/checkout.c:1104 +#, c-format +msgid "Cannot switch branch to a non-commit '%s'" +msgstr "Não é possÃvel mudar de ramo para '%s', visto que não é um commit" -#: builtin/checkout.c:993 -msgid "--track needs a branch name" -msgstr "" +#: 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 "ramo" -#: builtin/checkout.c:1000 -msgid "Missing branch name; try -b" -msgstr "" +#: builtin/checkout.c:1138 +msgid "create and checkout a new branch" +msgstr "criar e extrair um novo ramo" -#: builtin/checkout.c:1006 -msgid "--orphan and -b|-B are mutually exclusive" -msgstr "" +#: builtin/checkout.c:1140 +msgid "create/reset and checkout a branch" +msgstr "criar/repor e extrair um ramo" -#: builtin/checkout.c:1008 -msgid "--orphan cannot be used with -t" -msgstr "" +#: builtin/checkout.c:1141 +msgid "create reflog for new branch" +msgstr "criar reflog do novo ramo" + +#: builtin/checkout.c:1142 +msgid "detach the HEAD at named commit" +msgstr "destacar HEAD no commit indicado" + +#: builtin/checkout.c:1143 +msgid "set upstream info for new branch" +msgstr "definir a informação do ramo a montante do novo ramo" + +#: builtin/checkout.c:1145 +msgid "new-branch" +msgstr "novo-ramo" + +#: builtin/checkout.c:1145 +msgid "new unparented branch" +msgstr "novo ramo sem pai" -#: builtin/checkout.c:1018 -msgid "git checkout: -f and -m are incompatible" +#: builtin/checkout.c:1146 +msgid "checkout our version for unmerged files" +msgstr "extrair a nossa versão dos ficheiros não integrados" + +#: builtin/checkout.c:1148 +msgid "checkout their version for unmerged files" +msgstr "extrair a versão deles dos ficheiros não integrados" + +#: builtin/checkout.c:1150 +msgid "force checkout (throw away local modifications)" +msgstr "forçar extração (descartar modificações locais)" + +#: builtin/checkout.c:1151 +msgid "perform a 3-way merge with the new branch" +msgstr "realizar um merge com 3 pontos com o novo ramo" + +#: builtin/checkout.c:1152 builtin/merge.c:227 +msgid "update ignored files (default)" +msgstr "atualizar ficheiros ignorados (predefinição)" + +#: builtin/checkout.c:1153 builtin/log.c:1269 parse-options.h:250 +msgid "style" +msgstr "estilo" + +#: builtin/checkout.c:1154 +msgid "conflict style (merge or diff3)" +msgstr "estilo de conflito (merge ou diff3)" + +#: builtin/checkout.c:1157 +msgid "do not limit pathspecs to sparse entries only" +msgstr "não restringir especificadores de caminho a entradas esparsas" + +#: builtin/checkout.c:1159 +msgid "second guess 'git checkout <no-such-branch>'" +msgstr "tentar adivinhar 'git checkout <ramo-inexistente>'" + +#: builtin/checkout.c:1161 +msgid "do not check if another worktree is holding the given ref" msgstr "" +"não verificar se outra árvore de trabalho contém a referência fornecida" + +#: 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 "forçar informação de progresso" + +#: builtin/checkout.c:1193 +msgid "-b, -B and --orphan are mutually exclusive" +msgstr "-b, -B e --orphan são mutuamente exclusivos" + +#: builtin/checkout.c:1210 +msgid "--track needs a branch name" +msgstr "--track requer um nome dum ramo" -#: builtin/checkout.c:1052 +#: builtin/checkout.c:1215 +msgid "Missing branch name; try -b" +msgstr "Falta um nome dum ramo; tente -b" + +#: builtin/checkout.c:1251 msgid "invalid path specification" -msgstr "" +msgstr "especificação de caminho inválida" -#: builtin/checkout.c:1060 +#: builtin/checkout.c:1258 #, c-format msgid "" -"git checkout: updating paths is incompatible with switching branches.\n" +"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 "" +"Não é possÃvel atualizar os caminho e mudar para o ramo '%s' ao mesmo " +"tempo.\n" +"Pretendia extrair '%s' podendo ser resolvido num commit?" -#: builtin/checkout.c:1062 -msgid "git checkout: updating paths is incompatible with switching branches." -msgstr "" - -#: builtin/checkout.c:1067 -msgid "git checkout: --detach does not take a path argument" -msgstr "" +#: builtin/checkout.c:1263 +#, c-format +msgid "git checkout: --detach does not take a path argument '%s'" +msgstr "git checkout: --detach não aceita um caminho como argumento '%s'" -#: builtin/checkout.c:1070 +#: builtin/checkout.c:1267 msgid "" "git checkout: --ours/--theirs, --force and --merge are incompatible when\n" "checking out of the index." msgstr "" +"git checkout: --ours/--theirs, --force e --merge são incompatÃveis\n" +"durante a extração do Ãndice." -#: builtin/checkout.c:1089 -msgid "Cannot switch branch to a non-commit." +#: builtin/clean.c:25 +msgid "" +"git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] <paths>..." msgstr "" +"git clean [-d] [-f] [-i] [-n] [-q] [-e <padrão>] [-x | -X] [--] <caminhos>..." -#: builtin/checkout.c:1092 -msgid "--ours/--theirs is incompatible with switching branches." -msgstr "" +#: builtin/clean.c:29 +#, c-format +msgid "Removing %s\n" +msgstr "A remover %s\n" -#: builtin/clean.c:78 -msgid "-x and -X cannot be used together" -msgstr "" +#: builtin/clean.c:30 +#, c-format +msgid "Would remove %s\n" +msgstr "Removeria %s\n" + +#: builtin/clean.c:31 +#, c-format +msgid "Skipping repository %s\n" +msgstr "A ignorar o repositório %s\n" + +#: builtin/clean.c:32 +#, c-format +msgid "Would skip repository %s\n" +msgstr "Ignoraria o repositório %s\n" -#: builtin/clean.c:82 -msgid "clean.requireForce set to true and neither -n nor -f given; refusing to clean" +#: builtin/clean.c:33 +#, c-format +msgid "failed to remove %s" +msgstr "falha ao remover %s" + +#: builtin/clean.c:291 +msgid "" +"Prompt help:\n" +"1 - select a numbered item\n" +"foo - select item based on unique prefix\n" +" - (empty) select nothing" msgstr "" +"Ajuda de linha de comandos:\n" +"1 - selecionar um item numerado\n" +"foo - selecionar item baseado no prefixo único\n" +" - (vazio) não seleciona nada" -#: builtin/clean.c:85 -msgid "clean.requireForce defaults to true and neither -n nor -f given; refusing to clean" +#: builtin/clean.c:295 +msgid "" +"Prompt help:\n" +"1 - select a single item\n" +"3-5 - select a range of items\n" +"2-3,6-9 - select multiple ranges\n" +"foo - select item based on unique prefix\n" +"-... - unselect specified items\n" +"* - choose all items\n" +" - (empty) finish selecting" msgstr "" +"Ajuda de linha de comandos:\n" +"1 - selecionar um único item\n" +"3-5 - selecionar um intervalo de items\n" +"2-3,6-9 - selecionar múltiplos intervalos\n" +"foo - selecionar item baseado no prefixo único\n" +"-... - desselecionar itens especificados\n" +"* - escolher todos os itens\n" +" - (vazio) concluir seleção" -#: builtin/clean.c:155 -#: builtin/clean.c:176 +#: builtin/clean.c:511 #, c-format -msgid "Would remove %s\n" -msgstr "" +msgid "Huh (%s)?" +msgstr "O quê (%s)?" -#: builtin/clean.c:159 -#: builtin/clean.c:179 +#: builtin/clean.c:653 #, c-format -msgid "Removing %s\n" -msgstr "Eliminando %s\n" +msgid "Input ignore patterns>> " +msgstr "Introduza padrões a ignorar>> " -#: builtin/clean.c:162 -#: builtin/clean.c:182 +#: builtin/clean.c:690 #, c-format -msgid "failed to remove %s" -msgstr "" +msgid "WARNING: Cannot find items matched by: %s" +msgstr "AVISO: não foram encontrados itens correspondentes a %s" + +#: builtin/clean.c:711 +msgid "Select items to delete" +msgstr "Selecione itens para eliminar" -#: builtin/clean.c:166 +#. TRANSLATORS: Make sure to keep [y/N] as is +#: builtin/clean.c:752 #, c-format -msgid "Would not remove %s\n" +msgid "Remove %s [y/N]? " +msgstr "Remover %s [y/N]? " + +#: builtin/clean.c:777 +msgid "Bye." +msgstr "Adeus." + +#: builtin/clean.c:785 +msgid "" +"clean - start cleaning\n" +"filter by pattern - exclude items from deletion\n" +"select by numbers - select items to be deleted by numbers\n" +"ask each - confirm each deletion (like \"rm -i\")\n" +"quit - stop cleaning\n" +"help - this screen\n" +"? - help for prompt selection" +msgstr "" +"clean - começar a limpar\n" +"filter by pattern - excluir itens da eliminação\n" +"select by numbers - selecionar itens para serem eliminados por número\n" +"ask each - confirmar cada eliminação (como \"rm -i\")\n" +"quit - parar limpeza\n" +"help - esta ajuda\n" +"? - ajuda para seleção em linha de comandos" + +#: builtin/clean.c:812 +msgid "*** Commands ***" +msgstr "*** Comandos ***" + +#: builtin/clean.c:813 +msgid "What now" +msgstr "E agora" + +#: builtin/clean.c:821 +msgid "Would remove the following item:" +msgid_plural "Would remove the following items:" +msgstr[0] "Removeria o seguinte item:" +msgstr[1] "Removeria os seguintes itens:" + +#: builtin/clean.c:838 +msgid "No more files to clean, exiting." +msgstr "Não há mais ficheiros por limpar, a terminar." + +#: builtin/clean.c:869 +msgid "do not print names of files removed" +msgstr "não imprimir os nomes dos ficheiros removidos" + +#: builtin/clean.c:871 +msgid "force" +msgstr "forçar" + +#: builtin/clean.c:872 +msgid "interactive cleaning" +msgstr "limpeza interativa" + +#: builtin/clean.c:874 +msgid "remove whole directories" +msgstr "remover diretórios inteiros" + +#: 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 "padrão" + +#: builtin/clean.c:876 +msgid "add <pattern> to ignore rules" +msgstr "adicionar <padrão> à s regras ignoradas" + +#: builtin/clean.c:877 +msgid "remove ignored files, too" +msgstr "também remover ficheiros ignorados" + +#: builtin/clean.c:879 +msgid "remove only ignored files" +msgstr "remover apenas ficheiros ignorados" + +#: builtin/clean.c:897 +msgid "-x and -X cannot be used together" +msgstr "-x e -X não pode ser usados juntos" + +#: builtin/clean.c:901 +msgid "" +"clean.requireForce set to true and neither -i, -n, nor -f given; refusing to " +"clean" msgstr "" +"clean.requireForce definido como true e nenhum -i, -n, ou -f fornecido; " +"recusando-se a limpar" -#: builtin/clean.c:168 -#, c-format -msgid "Not removing %s\n" +#: builtin/clean.c:904 +msgid "" +"clean.requireForce defaults to true and neither -i, -n, nor -f given; " +"refusing to clean" msgstr "" +"clean.requireForce predefinido como true e nenhum -i, -n, ou -f fornecido; " +"recusando-se a limpar" + +#: builtin/clone.c:37 +msgid "git clone [<options>] [--] <repo> [<dir>]" +msgstr "git clone [<opções>] [--] <repo> [<dir>]" + +#: builtin/clone.c:60 +msgid "don't create a checkout" +msgstr "não realizar extração" + +#: builtin/clone.c:61 builtin/clone.c:63 builtin/init-db.c:469 +msgid "create a bare repository" +msgstr "criar um repositório nu" + +#: builtin/clone.c:65 +msgid "create a mirror repository (implies bare)" +msgstr "criar um repositório espelhado (implica repositório nu)" + +#: builtin/clone.c:67 +msgid "to clone from a local repository" +msgstr "para clonar de um repositório local" + +#: builtin/clone.c:69 +msgid "don't use local hardlinks, always copy" +msgstr "não usar ligações fixas, copiar sempre" + +#: builtin/clone.c:71 +msgid "setup as shared repository" +msgstr "configurar como repositório partilhado" + +#: builtin/clone.c:73 builtin/clone.c:75 +msgid "initialize submodules in the clone" +msgstr "inicializar submódulos no clone" + +#: builtin/clone.c:76 builtin/init-db.c:466 +msgid "template-directory" +msgstr "diretório-modelo" + +#: builtin/clone.c:77 builtin/init-db.c:467 +msgid "directory from which templates will be used" +msgstr "diretório que contém os modelos usados" + +#: builtin/clone.c:79 builtin/submodule--helper.c:173 +msgid "reference repository" +msgstr "repositório de referência" + +#: builtin/clone.c:81 +msgid "use --reference only while cloning" +msgstr "usar --reference apenas para clonar" + +#: builtin/clone.c:82 builtin/column.c:26 builtin/merge-file.c:44 +msgid "name" +msgstr "nome" + +#: builtin/clone.c:83 +msgid "use <name> instead of 'origin' to track upstream" +msgstr "usar <nome> em vez de 'origin' para seguir o ramo a montante" + +#: builtin/clone.c:85 +msgid "checkout <branch> instead of the remote's HEAD" +msgstr "extrair <ramo> em vez da HEAD do remoto" + +#: builtin/clone.c:87 +msgid "path to git-upload-pack on the remote" +msgstr "caminho para git-upload-pack no remoto" + +#: builtin/clone.c:88 builtin/fetch.c:117 builtin/grep.c:665 +#: builtin/pull.c:193 +msgid "depth" +msgstr "profundidade" + +#: builtin/clone.c:89 +msgid "create a shallow clone of that depth" +msgstr "criar um clone raso com essa profundidade" + +#: builtin/clone.c:91 +msgid "clone only one branch, HEAD or --branch" +msgstr "clonar apenas um ramo, HEAD ou --branch" + +#: builtin/clone.c:92 builtin/init-db.c:475 +msgid "gitdir" +msgstr "gitdir" + +#: builtin/clone.c:93 builtin/init-db.c:476 +msgid "separate git dir from working tree" +msgstr "separar o repositório git da árvore de trabalho" + +#: builtin/clone.c:94 +msgid "key=value" +msgstr "chave=valor" + +#: builtin/clone.c:95 +msgid "set config inside the new repository" +msgstr "definir configuração dentro do novo repositório" + +#: builtin/clone.c:96 builtin/fetch.c:131 builtin/push.c:536 +msgid "use IPv4 addresses only" +msgstr "usar apenas endereços IPv4" -#: builtin/clone.c:243 +#: builtin/clone.c:98 builtin/fetch.c:133 builtin/push.c:538 +msgid "use IPv6 addresses only" +msgstr "usar apenas endereços IPv6" + +#: builtin/clone.c:239 +msgid "" +"No directory name could be guessed.\n" +"Please specify a directory on the command line" +msgstr "" +"Não foi possÃvel adivinhar o nome do diretório.\n" +"Especifique um diretório na linha de comandos" + +#: builtin/clone.c:305 #, c-format -msgid "reference repository '%s' is not a local directory." +msgid "reference repository '%s' as a linked checkout is not supported yet." msgstr "" +"ainda não é suportada a funcionalidade que permite ter o repositório de " +"referência '%s' como uma extração ligada" -#: builtin/clone.c:302 +#: builtin/clone.c:307 #, c-format -msgid "failed to open '%s'" -msgstr "falhou a abrir '%s'" +msgid "reference repository '%s' is not a local repository." +msgstr "o repositório de referência '%s' não é um repositório local." -#: builtin/clone.c:306 +#: builtin/clone.c:312 #, c-format -msgid "failed to create directory '%s'" -msgstr "falhou a criar o directório '%s'" +msgid "reference repository '%s' is shallow" +msgstr "o repositório de referência '%s' é raso" -#: builtin/clone.c:308 -#: builtin/diff.c:75 +#: builtin/clone.c:315 +#, c-format +msgid "reference repository '%s' is grafted" +msgstr "o repositório de referência '%s' está enxertado" + +#: builtin/clone.c:380 builtin/diff.c:84 #, c-format msgid "failed to stat '%s'" -msgstr "" +msgstr "falha ao invocar stat de '%s'" -#: builtin/clone.c:310 +#: builtin/clone.c:382 #, c-format msgid "%s exists and is not a directory" -msgstr "" +msgstr "%s existe e não é um diretório" -#: builtin/clone.c:324 +#: builtin/clone.c:396 #, c-format msgid "failed to stat %s\n" -msgstr "" +msgstr "falha ao invocar stat de %s\n" -#: builtin/clone.c:341 -#, c-format -msgid "failed to unlink '%s'" -msgstr "" - -#: builtin/clone.c:346 +#: builtin/clone.c:418 #, c-format msgid "failed to create link '%s'" -msgstr "" +msgstr "falha ao criar a ligação '%s'" -#: builtin/clone.c:350 +#: builtin/clone.c:422 #, c-format msgid "failed to copy file to '%s'" -msgstr "falhou a copiar o ficheiro para '%s'" +msgstr "falha ao copiar o ficheiro para '%s'" -#: builtin/clone.c:373 +#: builtin/clone.c:447 builtin/clone.c:631 #, c-format msgid "done.\n" -msgstr "terminado.\n" +msgstr "concluÃdo.\n" + +#: 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 "" +"Clonado com sucesso, mas a extração falhou.\n" +"Pode inspecionar o que foi extraÃdo com 'git status'\n" +"e repetir a extração com 'git checkout -f HEAD'\n" -#: builtin/clone.c:440 +#: builtin/clone.c:536 #, c-format msgid "Could not find remote branch %s to clone." -msgstr "" +msgstr "Ramo remoto %s não encontrado para clonar." + +#: builtin/clone.c:626 +#, c-format +msgid "Checking connectivity... " +msgstr "A verificar a conectividade... " + +#: builtin/clone.c:629 +msgid "remote did not send all necessary objects" +msgstr "o remoto não enviou todos os objetos necessários" + +#: builtin/clone.c:647 +#, c-format +msgid "unable to update %s" +msgstr "não foi possÃvel atualizar %s" -#: builtin/clone.c:549 +#: builtin/clone.c:696 msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n" msgstr "" +"a HEAD remota referencia uma referência inexistente, não é possÃvel " +"extrair.\n" -#: builtin/clone.c:639 +#: builtin/clone.c:727 +msgid "unable to checkout working tree" +msgstr "não foi possÃvel extrair a árvore de trabalho" + +#: builtin/clone.c:753 +msgid "unable to write parameters to config file" +msgstr "não foi possÃvel escrever os parâmetros no ficheiro de configuração" + +#: builtin/clone.c:816 +msgid "cannot repack to clean up" +msgstr "não é possÃvel reempacotar para limpar" + +#: builtin/clone.c:818 +msgid "cannot unlink temporary alternates file" +msgstr "não é possÃvel invocar unlink sobre o ficheiro alternates temporário" + +#: builtin/clone.c:850 msgid "Too many arguments." -msgstr "Demasiados parametros." +msgstr "Demasiados argumentos." -#: builtin/clone.c:643 +#: builtin/clone.c:854 msgid "You must specify a repository to clone." -msgstr "" +msgstr "Deve especificar um repositório para clonar." -#: builtin/clone.c:654 +#: builtin/clone.c:865 #, c-format msgid "--bare and --origin %s options are incompatible." -msgstr "" +msgstr "as opções --bare e --origin %s são incompatÃveis." + +#: builtin/clone.c:868 +msgid "--bare and --separate-git-dir are incompatible." +msgstr "--bare e --separate-git-dir são incompatÃveis." -#: builtin/clone.c:668 +#: builtin/clone.c:881 #, c-format msgid "repository '%s' does not exist" -msgstr "" +msgstr "o repositório '%s' não existe" -#: builtin/clone.c:673 -msgid "--depth is ignored in local clones; use file:// instead." -msgstr "" +#: builtin/clone.c:887 builtin/fetch.c:1174 +#, c-format +msgid "depth %s is not a positive number" +msgstr "profundidade %s não é um número positivo" -#: builtin/clone.c:683 +#: builtin/clone.c:897 #, c-format msgid "destination path '%s' already exists and is not an empty directory." -msgstr "" +msgstr "o caminho de destino '%s' já existe e não é um diretório vazio." -#: builtin/clone.c:693 +#: builtin/clone.c:907 #, c-format msgid "working tree '%s' already exists." -msgstr "" +msgstr "a árvore de trabalho '%s' já existe." -#: builtin/clone.c:706 -#: builtin/clone.c:720 +#: 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 "" +msgstr "não foi possÃvel criar os diretórios superiores de '%s'" -#: builtin/clone.c:709 +#: builtin/clone.c:925 #, c-format -msgid "could not create work tree dir '%s'." -msgstr "" +msgid "could not create work tree dir '%s'" +msgstr "não foi possÃvel criar o diretório de árvore de trabalho '%s'" -#: builtin/clone.c:728 +#: builtin/clone.c:943 #, c-format msgid "Cloning into bare repository '%s'...\n" -msgstr "Clonando em um repositorio nu (bare) '%s'...\n" +msgstr "A clonar no repositório nu '%s'...\n" -#: builtin/clone.c:730 +#: builtin/clone.c:945 #, c-format msgid "Cloning into '%s'...\n" -msgstr "Clonar em '%s'...\n" +msgstr "A clonar em '%s'...\n" + +#: builtin/clone.c:984 +msgid "--depth is ignored in local clones; use file:// instead." +msgstr "--depth é ignorado em clones locais; use file:// ." + +#: builtin/clone.c:987 +msgid "source repository is shallow, ignoring --local" +msgstr "o repositório de origem é raso, --local ignorado" + +#: builtin/clone.c:992 +msgid "--local is ignored" +msgstr "--local ignorado" -#: builtin/clone.c:786 +#: builtin/clone.c:996 #, c-format msgid "Don't know how to clone %s" msgstr "Não sei como clonar %s" -#: builtin/clone.c:835 +#: builtin/clone.c:1045 builtin/clone.c:1053 #, c-format msgid "Remote branch %s not found in upstream %s" -msgstr "" +msgstr "O ramo remoto %s não foi encontrado no repositório a montante %s" -#: builtin/clone.c:842 +#: builtin/clone.c:1056 msgid "You appear to have cloned an empty repository." -msgstr "" +msgstr "Parece foi clonado um repositório vazio." + +#: builtin/column.c:9 +msgid "git column [<options>]" +msgstr "git column [<opções>]" + +#: builtin/column.c:26 +msgid "lookup config vars" +msgstr "pesquisar variáveis de configuração" + +#: builtin/column.c:27 builtin/column.c:28 +msgid "layout to use" +msgstr "esquema a usar" + +#: builtin/column.c:29 +msgid "Maximum width" +msgstr "Largura máxima" + +#: builtin/column.c:30 +msgid "Padding space on left border" +msgstr "Espaço de preenchimento na borda esquerda" + +#: builtin/column.c:31 +msgid "Padding space on right border" +msgstr "Espaço de preenchimento na borda direita" + +#: builtin/column.c:32 +msgid "Padding space between columns" +msgstr "Espaço de preenchimento entre colunas" #: builtin/column.c:51 msgid "--command must be the first argument" -msgstr "" +msgstr "--command deve ser o primeiro argumento" + +#: builtin/commit.c:38 +msgid "git commit [<options>] [--] <pathspec>..." +msgstr "git commit [<opções>] [--] <especificador-de-caminho>..." #: builtin/commit.c:43 +msgid "git status [<options>] [--] <pathspec>..." +msgstr "git status [<opções>] [--] <especificador-de-caminho>..." + +#: builtin/commit.c:48 +msgid "" +"Your name and email address were configured automatically based\n" +"on your username and hostname. Please check that they are accurate.\n" +"You can suppress this message by setting them explicitly. Run the\n" +"following command and follow the instructions in your editor to edit\n" +"your configuration file:\n" +"\n" +" git config --global --edit\n" +"\n" +"After doing this, you may fix the identity used for this commit with:\n" +"\n" +" git commit --amend --reset-author\n" +msgstr "" +"O seu nome e endereço de e-mail foram configurados automaticamente com base\n" +"no seu nome de utilizador e nome de máquina. Verifique se estão corretos.\n" +"Pode suprimir esta mensagem configurando-os explicitamente. Execute\n" +"o seguinte comando e siga as instruções no editor para editar\n" +"o ficheiro de configuração:\n" +"\n" +" git config --global --edit\n" +"\n" +"Após fazer isto, pode corrigir a identidade usada neste commit com:\n" +"\n" +" git commit --amend --reset-author\n" + +#: builtin/commit.c:61 msgid "" "Your name and email address were configured automatically based\n" "on your username and hostname. Please check that they are accurate.\n" @@ -1921,126 +5060,160 @@ msgid "" " git commit --amend --reset-author\n" msgstr "" "O seu nome e endereço de e-mail foram configurados automaticamente com base\n" -"no o seu usuario e nome da maquina. Por favor, verifique se eles são precisos.\n" -"Você pode suprimir esta mensagem, configurando-los explicitamente:\n" +"no seu nome de utilizador e nome de máquina. Verifique se estão corretos.\n" +"Pode suprimir esta mensagem configurando-os explicitamente:\n" "\n" -" git config --global user.name \"O teu Nome\"\n" -" git config --global user.email tu@examplo.com\n" +" git config --global user.name \"O Seu Nome\"\n" +" git config --global user.email utilizador@exemplo.com\n" "\n" -"Após fazer isso, você pode corregir a identidade usada em este commit com:\n" +"Após fazer isto, pode corrigir a identidade usada neste commit com:\n" "\n" " git commit --amend --reset-author\n" -#: builtin/commit.c:55 +#: builtin/commit.c:73 msgid "" "You asked to amend the most recent commit, but doing so would make\n" "it empty. You can repeat your command with --allow-empty, or you can\n" "remove the commit entirely with \"git reset HEAD^\".\n" msgstr "" +"Pediu para emendar o commit mais recente, mas fazê-lo torná-lo-ia\n" +"vazio. Pode repetir o comando com --allow-empty, ou pode remover o\n" +"commit completamente com \"git reset HEAD^\".\n" -#: builtin/commit.c:60 +#: builtin/commit.c:78 msgid "" "The previous cherry-pick is now empty, possibly due to conflict resolution.\n" "If you wish to commit it anyway, use:\n" "\n" " git commit --allow-empty\n" "\n" -"Otherwise, please use 'git reset'\n" msgstr "" +"O cherry-pick anterior está vazio, possivelmente devido a resolução de " +"conflitos.\n" +"Se deseja fazer commit de qualquer forma, use:\n" +"\n" +" git commit --allow-empty\n" +"\n" -#: builtin/commit.c:309 -msgid "failed to unpack HEAD tree object" +#: builtin/commit.c:85 +msgid "Otherwise, please use 'git reset'\n" +msgstr "Caso contrário, use 'git reset'\n" + +#: builtin/commit.c:88 +msgid "" +"If you wish to skip this commit, use:\n" +"\n" +" git reset\n" +"\n" +"Then \"git cherry-pick --continue\" will resume cherry-picking\n" +"the remaining commits.\n" msgstr "" +"Se deseja ignorar este commit, use:\n" +"\n" +" git reset\n" +"\n" +"Depois \"git cherry-pick --continue\" irá retomar o cherry-pick\n" +"dos restantes commits.\n" -#: builtin/commit.c:351 +#: builtin/commit.c:305 +msgid "failed to unpack HEAD tree object" +msgstr "falha ao descompactar o objeto árvore HEAD" + +#: builtin/commit.c:346 msgid "unable to create temporary index" -msgstr "" +msgstr "não foi possÃvel criar Ãndice temporário" -#: builtin/commit.c:357 +#: builtin/commit.c:352 msgid "interactive add failed" -msgstr "falhou adicionar interativo" +msgstr "falha ao adicionar interativamente" + +#: builtin/commit.c:365 +msgid "unable to update temporary index" +msgstr "não é possÃvel atualizar o Ãndice temporário" -#: builtin/commit.c:390 -#: builtin/commit.c:411 -#: builtin/commit.c:461 +#: builtin/commit.c:367 +msgid "Failed to update main cache tree" +msgstr "Falha ao atualizar a árvore de cache principal" + +#: builtin/commit.c:391 builtin/commit.c:414 builtin/commit.c:463 msgid "unable to write new_index file" -msgstr "" +msgstr "não é possÃvel escrever o ficheiro new_index" -#: builtin/commit.c:442 +#: builtin/commit.c:445 msgid "cannot do a partial commit during a merge." -msgstr "" +msgstr "não é possÃvel fazer um commit parcial durante um merge." -#: builtin/commit.c:444 +#: builtin/commit.c:447 msgid "cannot do a partial commit during a cherry-pick." -msgstr "" +msgstr "não é possÃvel fazer um commit parcial durante um cherry-pick." -#: builtin/commit.c:454 +#: builtin/commit.c:456 msgid "cannot read the index" -msgstr "não foi possÃvel ler o indÃce" +msgstr "não é possÃvel ler o Ãndice" -#: builtin/commit.c:474 +#: builtin/commit.c:475 msgid "unable to write temporary index file" -msgstr "" +msgstr "não é possÃvel escrever ficheiro de Ãndice temporário" + +#: builtin/commit.c:580 +#, c-format +msgid "commit '%s' lacks author header" +msgstr "o commit '%s' não tem cabeçalho de autor" -#: builtin/commit.c:549 -#: builtin/commit.c:555 +#: builtin/commit.c:582 #, c-format -msgid "invalid commit: %s" -msgstr "commit inválido: %s" +msgid "commit '%s' has malformed author line" +msgstr "o commit '%s' tem a linha de autor malformada" -#: builtin/commit.c:578 +#: builtin/commit.c:601 msgid "malformed --author parameter" -msgstr "" +msgstr "parâmetro --author malformado" -#: builtin/commit.c:639 +#: builtin/commit.c:609 #, c-format -msgid "Malformed ident string: '%s'" +msgid "invalid date format: %s" +msgstr "formato de data inválido: %s" + +#: builtin/commit.c:653 +msgid "" +"unable to select a comment character that is not used\n" +"in the current commit message" msgstr "" +"não foi possÃvel selecionar um carácter de comentário que\n" +"não estivesse já a ser usado na mensagem de commit atual" -#: builtin/commit.c:677 -#: builtin/commit.c:710 -#: builtin/commit.c:1024 +#: builtin/commit.c:690 builtin/commit.c:723 builtin/commit.c:1080 #, c-format msgid "could not lookup commit %s" -msgstr "" +msgstr "não foi possÃvel consultar o commit %s" -#: builtin/commit.c:689 -#: builtin/shortlog.c:296 +#: builtin/commit.c:702 builtin/shortlog.c:285 #, c-format msgid "(reading log message from standard input)\n" -msgstr "" +msgstr "(a ler mensagem de log da entrada padrão)\n" -#: builtin/commit.c:691 +#: builtin/commit.c:704 msgid "could not read log from standard input" -msgstr "" +msgstr "não foi possÃvel ler o log da entrada padrão" -#: builtin/commit.c:695 +#: builtin/commit.c:708 #, c-format msgid "could not read log file '%s'" -msgstr "não é possivel ler o ficheiro de log '%s'" - -#: builtin/commit.c:701 -msgid "commit has empty message" -msgstr "a mensagem do commit está vazia" +msgstr "não é possÃvel ler o ficheiro de log '%s'" -#: builtin/commit.c:717 +#: builtin/commit.c:730 msgid "could not read MERGE_MSG" -msgstr "não é possivel ler MERGE_MSG" +msgstr "não foi possÃvel ler MERGE_MSG" -#: builtin/commit.c:721 +#: builtin/commit.c:734 msgid "could not read SQUASH_MSG" -msgstr "não é possivel ler SQUASH_MSG" +msgstr "não foi possÃvel ler SQUASH_MSG" -#: builtin/commit.c:725 -#, c-format -msgid "could not read '%s'" -msgstr "não é possivel ler '%s'" - -#: builtin/commit.c:777 +#: builtin/commit.c:785 msgid "could not write commit template" -msgstr "" +msgstr "não foi possÃvel escrever o modelo de commit" -#: builtin/commit.c:788 +#: builtin/commit.c:803 #, c-format msgid "" "\n" @@ -2049,8 +5222,13 @@ msgid "" "\t%s\n" "and try again.\n" msgstr "" +"\n" +"Parece que está a fazer commit de um merge.\n" +"Se não for o caso, remova o ficheiro\n" +"\t%s\n" +"e tente de novo.\n" -#: builtin/commit.c:793 +#: builtin/commit.c:808 #, c-format msgid "" "\n" @@ -2059,1616 +5237,3904 @@ msgid "" "\t%s\n" "and try again.\n" msgstr "" +"\n" +"Parece que está a fazer commit de um cherry-pick.\n" +"Se não é o caso, remova o ficheiro\n" +" %s\n" +"e tente outra vez.\n" -#: builtin/commit.c:805 +#: builtin/commit.c:821 +#, c-format msgid "" "Please enter the commit message for your changes. Lines starting\n" -"with '#' will be ignored, and an empty message aborts the commit.\n" +"with '%c' will be ignored, and an empty message aborts the commit.\n" msgstr "" +"Introduza a mensagem de commit das suas alterações.\n" +"Linhas começadas com '%c' serão ignoradas, e uma mensagem vazia\n" +"aborta o commit.\n" -#: builtin/commit.c:810 +#: builtin/commit.c:828 +#, c-format msgid "" "Please enter the commit message for your changes. Lines starting\n" -"with '#' will be kept; you may remove them yourself if you want to.\n" +"with '%c' will be kept; you may remove them yourself if you want to.\n" "An empty message aborts the commit.\n" msgstr "" +"Introduzia a mensagem de commit das suas alterações.\n" +"Linhas começadas com '%c' serão mantidas; pode removê-las se o desejar.\n" +"Uma mensagem vazia aborta o commit.\n" + +#: builtin/commit.c:848 +#, c-format +msgid "%sAuthor: %.*s <%.*s>" +msgstr "%sAutor: %.*s <%.*s>" -#: builtin/commit.c:823 +#: builtin/commit.c:856 #, c-format -msgid "%sAuthor: %s" -msgstr "%sAutor: %s" +msgid "%sDate: %s" +msgstr "%sData: %s" -#: builtin/commit.c:830 +#: builtin/commit.c:863 #, c-format -msgid "%sCommitter: %s" -msgstr "%sCommitador: %s" +msgid "%sCommitter: %.*s <%.*s>" +msgstr "%sCommitter: %.*s <%.*s>" -#: builtin/commit.c:850 +#: builtin/commit.c:881 msgid "Cannot read index" -msgstr "" +msgstr "Não é possÃvel ler o Ãndice" -#: builtin/commit.c:887 +#: builtin/commit.c:938 msgid "Error building trees" -msgstr "" +msgstr "Erro ao construir árvores" -#: builtin/commit.c:902 -#: builtin/tag.c:361 +#: builtin/commit.c:953 builtin/tag.c:266 #, c-format msgid "Please supply the message using either -m or -F option.\n" -msgstr "" +msgstr "Indique a mensagem usando as opções -m ou -F.\n" -#: builtin/commit.c:999 +#: builtin/commit.c:1055 #, c-format -msgid "No existing author found with '%s'" +msgid "--author '%s' is not 'Name <email>' and matches no existing author" msgstr "" +"--author '%s' não é do tipo 'Nome <email>' e não corresponde a um autor " +"existente" -#: builtin/commit.c:1014 -#: builtin/commit.c:1214 +#: builtin/commit.c:1070 builtin/commit.c:1310 #, c-format msgid "Invalid untracked files mode '%s'" -msgstr "" +msgstr "Modo inválido de ficheiros não controlados '%s'" -#: builtin/commit.c:1054 +#: builtin/commit.c:1107 +msgid "--long and -z are incompatible" +msgstr "--long e -z são incompatÃveis" + +#: builtin/commit.c:1137 msgid "Using both --reset-author and --author does not make sense" -msgstr "" +msgstr "Não faz sentido usar --reset-author e --author ao mesmo tempo" -#: builtin/commit.c:1065 +#: builtin/commit.c:1146 msgid "You have nothing to amend." -msgstr "Você não tem nada a corregir." +msgstr "Não há nada para emendar." -#: builtin/commit.c:1068 +#: builtin/commit.c:1149 msgid "You are in the middle of a merge -- cannot amend." -msgstr "" +msgstr "Merge em curso -- não é possÃvel emendar." -#: builtin/commit.c:1070 +#: builtin/commit.c:1151 msgid "You are in the middle of a cherry-pick -- cannot amend." -msgstr "" +msgstr "Cherry-pick em curso -- não é possÃvel emendar." -#: builtin/commit.c:1073 +#: builtin/commit.c:1154 msgid "Options --squash and --fixup cannot be used together" -msgstr "" +msgstr "As opções --squash e --fixup não podem ser usadas juntas" -#: builtin/commit.c:1083 +#: builtin/commit.c:1164 msgid "Only one of -c/-C/-F/--fixup can be used." -msgstr "" +msgstr "Apenas um entre -c/-C/-F/--fixup pode ser usado." -#: builtin/commit.c:1085 +#: builtin/commit.c:1166 msgid "Option -m cannot be combined with -c/-C/-F/--fixup." -msgstr "" +msgstr "A opção -m não pode ser combinada com -c/C/-F/--fixup." -#: builtin/commit.c:1093 +#: builtin/commit.c:1174 msgid "--reset-author can be used only with -C, -c or --amend." -msgstr "" +msgstr "--reset-author só pode ser usado com -C, -c ou --amend." -#: builtin/commit.c:1110 +#: builtin/commit.c:1191 msgid "Only one of --include/--only/--all/--interactive/--patch can be used." msgstr "" +"Apenas um entre --include/--only/--all/--interactive/--patch pode ser usado." -#: builtin/commit.c:1112 +#: builtin/commit.c:1193 msgid "No paths with --include/--only does not make sense." -msgstr "" +msgstr "As opções --include/--only não fazem sentido sem indicar caminhos." -#: builtin/commit.c:1114 +#: builtin/commit.c:1195 msgid "Clever... amending the last one with dirty index." -msgstr "" +msgstr "Inteligente... a emendar o último commit com o Ãndice sujo." -#: builtin/commit.c:1116 -msgid "Explicit paths specified without -i nor -o; assuming --only paths..." -msgstr "" +#: builtin/commit.c:1197 +msgid "Explicit paths specified without -i or -o; assuming --only paths..." +msgstr "Caminhos explÃcitos especificados sem -i ou -o; assumindo --only..." -#: builtin/commit.c:1126 -#: builtin/tag.c:577 +#: builtin/commit.c:1209 builtin/tag.c:475 #, c-format msgid "Invalid cleanup mode %s" -msgstr "" +msgstr "Modo de limpeza inválido %s" -#: builtin/commit.c:1131 +#: builtin/commit.c:1214 msgid "Paths with -a does not make sense." +msgstr "A especificação de caminhos com -a não faz sentido." + +#: builtin/commit.c:1324 builtin/commit.c:1605 +msgid "show status concisely" +msgstr "mostrar status de forma concisa" + +#: builtin/commit.c:1326 builtin/commit.c:1607 +msgid "show branch information" +msgstr "mostrar informação do ramo" + +#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:512 +#: builtin/worktree.c:430 +msgid "machine-readable output" +msgstr "saÃda inteligÃvel por máquina" + +#: builtin/commit.c:1331 builtin/commit.c:1611 +msgid "show status in long format (default)" +msgstr "apresentar status em formato longo (predefinição)" + +#: builtin/commit.c:1334 builtin/commit.c:1614 +msgid "terminate entries with NUL" +msgstr "terminar entradas com NUL" + +#: builtin/commit.c:1336 builtin/commit.c:1617 builtin/fast-export.c:981 +#: builtin/fast-export.c:984 builtin/tag.c:353 +msgid "mode" +msgstr "modo" + +#: builtin/commit.c:1337 builtin/commit.c:1617 +msgid "show untracked files, optional modes: all, normal, no. (Default: all)" msgstr "" +"mostrar ficheiros não controlados, modo é opcional: all, normal, no. " +"(Predefinição: all)" -#: builtin/commit.c:1315 -msgid "couldn't look up newly created commit" +#: builtin/commit.c:1340 +msgid "show ignored files" +msgstr "mostrar ficheiros ignorados" + +#: builtin/commit.c:1341 parse-options.h:155 +msgid "when" +msgstr "quando" + +#: builtin/commit.c:1342 +msgid "" +"ignore changes to submodules, optional when: all, dirty, untracked. " +"(Default: all)" msgstr "" +"ignorar alterações em submódulos, quando é opcional: all, dirty, untracked. " +"(Predefinição: all)" + +#: builtin/commit.c:1344 +msgid "list untracked files in columns" +msgstr "listar ficheiros não controlados em colunas" -#: builtin/commit.c:1317 +#: builtin/commit.c:1430 +msgid "couldn't look up newly created commit" +msgstr "não foi possÃvel consultar o commit recém-criado" + +#: builtin/commit.c:1432 msgid "could not parse newly created commit" -msgstr "" +msgstr "não foi possÃvel analisar o commit recém-criado" -#: builtin/commit.c:1358 +#: builtin/commit.c:1477 msgid "detached HEAD" -msgstr "" +msgstr "HEAD destacada" -#: builtin/commit.c:1360 +#: builtin/commit.c:1480 msgid " (root-commit)" -msgstr " (root-commit)" +msgstr " (commit-raiz)" -#: builtin/commit.c:1450 -msgid "could not parse HEAD commit" +#: builtin/commit.c:1575 +msgid "suppress summary after successful commit" +msgstr "suprimir o resumo depois de fazer commit com sucesso" + +#: builtin/commit.c:1576 +msgid "show diff in commit message template" +msgstr "mostrar diff no modelo da mensagem de commit" + +#: builtin/commit.c:1578 +msgid "Commit message options" +msgstr "Opções de mensagem de commit" + +#: builtin/commit.c:1579 builtin/tag.c:351 +msgid "read message from file" +msgstr "ler mensagem de um ficheiro" + +#: builtin/commit.c:1580 +msgid "author" +msgstr "autor" + +#: builtin/commit.c:1580 +msgid "override author for commit" +msgstr "substituir autor do commit" + +#: builtin/commit.c:1581 builtin/gc.c:326 +msgid "date" +msgstr "data" + +#: builtin/commit.c:1581 +msgid "override date for commit" +msgstr "substituir data do commit" + +#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:395 +#: builtin/notes.c:558 builtin/tag.c:349 +msgid "message" +msgstr "mensagem" + +#: builtin/commit.c:1582 +msgid "commit message" +msgstr "mensagem de commit" + +#: builtin/commit.c:1583 builtin/commit.c:1584 builtin/commit.c:1585 +#: builtin/commit.c:1586 parse-options.h:256 ref-filter.h:79 +msgid "commit" +msgstr "commit" + +#: builtin/commit.c:1583 +msgid "reuse and edit message from specified commit" +msgstr "reutilizar e editar a mensagem de um commit especificado" + +#: builtin/commit.c:1584 +msgid "reuse message from specified commit" +msgstr "reutilizar a mensagem de um commit especificado" + +#: builtin/commit.c:1585 +msgid "use autosquash formatted message to fixup specified commit" msgstr "" +"usar mensagem com formato autosquash para corrigir o commit especificado" -#: builtin/commit.c:1487 -#: builtin/merge.c:509 -#, c-format -msgid "could not open '%s' for reading" +#: builtin/commit.c:1586 +msgid "use autosquash formatted message to squash specified commit" msgstr "" +"usar mensagem com formato autosquash para esmagar o commit especificado" + +#: builtin/commit.c:1587 +msgid "the commit is authored by me now (used with -C/-c/--amend)" +msgstr "agora sou eu o autor do commit (usado com C/-c/--amend)" + +#: builtin/commit.c:1588 builtin/log.c:1219 builtin/revert.c:86 +msgid "add Signed-off-by:" +msgstr "adicionar Signed-off-by:" + +#: builtin/commit.c:1589 +msgid "use specified template file" +msgstr "usar ficheiro de modelo especificado" + +#: builtin/commit.c:1590 +msgid "force edit of commit" +msgstr "forçar edição do commit" + +#: builtin/commit.c:1591 +msgid "default" +msgstr "predefinição" + +#: builtin/commit.c:1591 builtin/tag.c:354 +msgid "how to strip spaces and #comments from message" +msgstr "como retirar espaços e #comentários da mensagem" + +#: builtin/commit.c:1592 +msgid "include status in commit message template" +msgstr "incluir status no modelo da mensagem de commit" + +#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:160 +#: builtin/revert.c:93 +msgid "GPG sign commit" +msgstr "assinar o commit com GPG" + +#: builtin/commit.c:1597 +msgid "Commit contents options" +msgstr "Opções de conteúdo do commit" + +#: builtin/commit.c:1598 +msgid "commit all changed files" +msgstr "fazer commit de todos os ficheiros alterados" + +#: builtin/commit.c:1599 +msgid "add specified files to index for commit" +msgstr "adicionar ficheiros especificados ao Ãndice para incluir no commit" + +#: builtin/commit.c:1600 +msgid "interactively add files" +msgstr "adicionar ficheiros interativamente" -#: builtin/commit.c:1494 +#: builtin/commit.c:1601 +msgid "interactively add changes" +msgstr "adicionar alterações interativamente" + +#: builtin/commit.c:1602 +msgid "commit only specified files" +msgstr "fazer commit somente dos ficheiros especificados" + +#: builtin/commit.c:1603 +msgid "bypass pre-commit hook" +msgstr "ignorar pre-commit hook" + +#: builtin/commit.c:1604 +msgid "show what would be committed" +msgstr "mostrar o que será incluÃdo no commit" + +#: builtin/commit.c:1615 +msgid "amend previous commit" +msgstr "emendar o commit anterior" + +#: builtin/commit.c:1616 +msgid "bypass post-rewrite hook" +msgstr "ignorar post-rewrite hook" + +#: builtin/commit.c:1621 +msgid "ok to record an empty change" +msgstr "aceitar o registo duma alteração vazia" + +#: builtin/commit.c:1623 +msgid "ok to record a change with an empty message" +msgstr "aceitar o registo duma alteração com uma mensagem vazia" + +#: builtin/commit.c:1652 +msgid "could not parse HEAD commit" +msgstr "não foi possÃvel analisar o commit HEAD" + +#: builtin/commit.c:1698 #, c-format msgid "Corrupt MERGE_HEAD file (%s)" -msgstr "" +msgstr "Ficheiro MERGE_HEAD corrompido (%s)" -#: builtin/commit.c:1501 +#: builtin/commit.c:1705 msgid "could not read MERGE_MODE" -msgstr "" +msgstr "não foi possÃvel ler MERGE_MODE" -#: builtin/commit.c:1520 +#: builtin/commit.c:1724 #, c-format msgid "could not read commit message: %s" -msgstr "" +msgstr "não foi possÃvel ler a mensagem de commit: %s" -#: builtin/commit.c:1534 +#: builtin/commit.c:1735 #, c-format msgid "Aborting commit; you did not edit the message.\n" -msgstr "" +msgstr "A abortar o commit; não editou a mensagem.\n" -#: builtin/commit.c:1539 +#: builtin/commit.c:1740 #, c-format msgid "Aborting commit due to empty commit message.\n" -msgstr "" +msgstr "A abortar o commit uma vez que a mensagem de commit está vazia.\n" -#: builtin/commit.c:1554 -#: builtin/merge.c:936 -#: builtin/merge.c:961 -msgid "failed to write commit object" +#: builtin/commit.c:1788 +msgid "" +"Repository has been updated, but unable to write\n" +"new_index file. Check that disk is not full and quota is\n" +"not exceeded, and then \"git reset HEAD\" to recover." msgstr "" +"O repositório foi atualizado, mas não foi possÃvel escrever\n" +"o ficheiro new_index. Verifique se o disco não está cheio\n" +"e que a quota não foi excedida e execute \"git reset HEAD\" para recuperar." -#: builtin/commit.c:1575 -msgid "cannot lock HEAD ref" +#: builtin/config.c:9 +msgid "git config [<options>]" +msgstr "git config [<opções>]" + +#: builtin/config.c:56 +msgid "Config file location" +msgstr "Localização do ficheiro de configuração" + +#: builtin/config.c:57 +msgid "use global config file" +msgstr "usar ficheiro de configuração global" + +#: builtin/config.c:58 +msgid "use system config file" +msgstr "usar ficheiro de configuração do sistema" + +#: builtin/config.c:59 +msgid "use repository config file" +msgstr "usar ficheiro de configuração do repositório" + +#: builtin/config.c:60 +msgid "use given config file" +msgstr "usar ficheiro de configuração fornecido" + +#: builtin/config.c:61 +msgid "blob-id" +msgstr "id-blob" + +#: builtin/config.c:61 +msgid "read config from given blob object" +msgstr "ler configuração a partir do objeto blob fornecido" + +#: builtin/config.c:62 +msgid "Action" +msgstr "Ação" + +#: builtin/config.c:63 +msgid "get value: name [value-regex]" +msgstr "obter valor: nome [regex-do-valor]" + +#: builtin/config.c:64 +msgid "get all values: key [value-regex]" +msgstr "obter todos os valores: chave [regex-do-valor]" + +#: builtin/config.c:65 +msgid "get values for regexp: name-regex [value-regex]" +msgstr "obter valores para a regexp: regex-do-nome [regex-do-valor]" + +#: builtin/config.c:66 +msgid "get value specific for the URL: section[.var] URL" +msgstr "obter valor do URL especificado: section[.var] URL" + +#: builtin/config.c:67 +msgid "replace all matching variables: name value [value_regex]" msgstr "" +"substituir todos as variáveis correspondentes: nome valor [regex-do-valor]" + +#: builtin/config.c:68 +msgid "add a new variable: name value" +msgstr "adicionar uma nova variável: nome valor" + +#: builtin/config.c:69 +msgid "remove a variable: name [value-regex]" +msgstr "remover uma variável: nome [regex-do-valor]" + +#: builtin/config.c:70 +msgid "remove all matches: name [value-regex]" +msgstr "remover todas as correspondências: nome [regex-do-valor]" + +#: builtin/config.c:71 +msgid "rename section: old-name new-name" +msgstr "mudar o nome da secção: nome-antigo novo-nome" + +#: builtin/config.c:72 +msgid "remove a section: name" +msgstr "remover uma secção: nome" + +#: builtin/config.c:73 +msgid "list all" +msgstr "listar todos" + +#: builtin/config.c:74 +msgid "open an editor" +msgstr "abrir um editor" + +#: builtin/config.c:75 +msgid "find the color configured: slot [default]" +msgstr "encontrar a cor configurada: slot [predefinição]" + +#: builtin/config.c:76 +msgid "find the color setting: slot [stdout-is-tty]" +msgstr "encontrar a definição de cor: slot [stdout-é-tty]" + +#: builtin/config.c:77 +msgid "Type" +msgstr "Tipo" + +#: builtin/config.c:78 +msgid "value is \"true\" or \"false\"" +msgstr "o valor é \"true\" (verdadeiro) ou \"falso\" (falso)" + +#: builtin/config.c:79 +msgid "value is decimal number" +msgstr "o valor é um número decimal" + +#: builtin/config.c:80 +msgid "value is --bool or --int" +msgstr "o valor é --bool ou --int" + +#: builtin/config.c:81 +msgid "value is a path (file or directory name)" +msgstr "o valor é um caminho (nome dum ficheiro ou diretório)" + +#: builtin/config.c:82 +msgid "Other" +msgstr "Outro" + +#: builtin/config.c:83 +msgid "terminate values with NUL byte" +msgstr "terminar valores com o byte NUL" -#: builtin/commit.c:1579 -msgid "cannot update HEAD ref" +#: builtin/config.c:84 +msgid "show variable names only" +msgstr "mostrar apenas os nomes das variáveis" + +#: builtin/config.c:85 +msgid "respect include directives on lookup" +msgstr "respeitar diretivas de inclusão ao pesquisar" + +#: builtin/config.c:86 +msgid "show origin of config (file, standard input, blob, command line)" msgstr "" +"mostrar a origem da configuração (ficheiro, entrada padrão, blob, linha de " +"comandos)" -#: builtin/commit.c:1590 +#: builtin/config.c:328 +msgid "unable to parse default color value" +msgstr "não é possÃvel analisar o valor de cor por omissão" + +#: builtin/config.c:469 +#, c-format msgid "" -"Repository has been updated, but unable to write\n" -"new_index file. Check that disk is not full or quota is\n" -"not exceeded, and then \"git reset HEAD\" to recover." +"# This is Git's per-user configuration file.\n" +"[user]\n" +"# Please adapt and uncomment the following lines:\n" +"#\tname = %s\n" +"#\temail = %s\n" msgstr "" +"# Este é o ficheiro de configuração do Git do utilizador.\n" +"[user]\n" +"# Adapte e retire os comentários das seguintes linhas:\n" +"#\tname = %s\n" +"#\temail = %s\n" + +#: builtin/config.c:611 +#, c-format +msgid "cannot create configuration file %s" +msgstr "não é possÃvel criar o ficheiro de configuração %s" + +#: builtin/count-objects.c:77 +msgid "git count-objects [-v] [-H | --human-readable]" +msgstr "git count-objects [-v] [-H | --human-readable]" + +#: builtin/count-objects.c:87 +msgid "print sizes in human readable format" +msgstr "imprimir dimensões em formato inteligÃvel por humanos" + +#: builtin/describe.c:17 +msgid "git describe [<options>] [<commit-ish>...]" +msgstr "git describe [<opções>] [<commit-ish>...]" + +#: builtin/describe.c:18 +msgid "git describe [<options>] --dirty" +msgstr "git describe [<opções>] --dirty" -#: builtin/describe.c:234 +#: builtin/describe.c:217 #, c-format msgid "annotated tag %s not available" -msgstr "" +msgstr "a tag anotada %s não está disponÃvel" -#: builtin/describe.c:238 +#: builtin/describe.c:221 #, c-format msgid "annotated tag %s has no embedded name" -msgstr "" +msgstr "a tag anotada %s não tem nenhum nome incorporado" -#: builtin/describe.c:240 +#: builtin/describe.c:223 #, c-format msgid "tag '%s' is really '%s' here" -msgstr "" +msgstr "a tag '%s' está de facto em '%s'" -#: builtin/describe.c:267 +#: builtin/describe.c:250 builtin/log.c:459 #, c-format msgid "Not a valid object name %s" -msgstr "" +msgstr "%s não é um nome de objeto válido" -#: builtin/describe.c:270 +#: builtin/describe.c:253 #, c-format msgid "%s is not a valid '%s' object" -msgstr "" +msgstr "%s não é um objeto '%s' válido" -#: builtin/describe.c:287 +#: builtin/describe.c:270 #, c-format msgid "no tag exactly matches '%s'" -msgstr "" +msgstr "nenhuma tag corresponde exatamente a '%s'" -#: builtin/describe.c:289 +#: builtin/describe.c:272 #, c-format msgid "searching to describe %s\n" -msgstr "" +msgstr "à procurar da descrição de %s\n" -#: builtin/describe.c:329 +#: builtin/describe.c:319 #, c-format msgid "finished search at %s\n" -msgstr "" +msgstr "a pesquisa terminou em %s\n" -#: builtin/describe.c:353 +#: builtin/describe.c:346 #, c-format msgid "" "No annotated tags can describe '%s'.\n" "However, there were unannotated tags: try --tags." msgstr "" +"Não é possÃvel usar tags anotadas para descrever '%s'.\n" +"No entanto, é possÃvel com tags não anotadas: tente --tags." -#: builtin/describe.c:357 +#: builtin/describe.c:350 #, c-format msgid "" "No tags can describe '%s'.\n" "Try --always, or create some tags." msgstr "" +"Não é possÃvel usar tags para descrever '%s'.\n" +"Tente --always, ou crie algumas tags." -#: builtin/describe.c:378 +#: builtin/describe.c:371 #, c-format msgid "traversed %lu commits\n" -msgstr "" +msgstr "%lu commits percorridos\n" -#: builtin/describe.c:381 +#: builtin/describe.c:374 #, c-format msgid "" "more than %i tags found; listed %i most recent\n" "gave up search at %s\n" msgstr "" +"mais de %i tags encontradas; foram listadas as %i mais recentes\n" +"pesquisa interrompida em %s\n" -#: builtin/describe.c:436 -msgid "--long is incompatible with --abbrev=0" +#: builtin/describe.c:396 +msgid "find the tag that comes after the commit" +msgstr "localizar a tag que vem após o commit" + +#: builtin/describe.c:397 +msgid "debug search strategy on stderr" +msgstr "depurar a estratégia de procura para stderr" + +#: builtin/describe.c:398 +msgid "use any ref" +msgstr "usar uma referência qualquer" + +#: builtin/describe.c:399 +msgid "use any tag, even unannotated" +msgstr "usar uma tag qualquer, mesmo não anotada" + +#: builtin/describe.c:400 +msgid "always use long format" +msgstr "usar sempre formato longo" + +#: builtin/describe.c:401 +msgid "only follow first parent" +msgstr "seguir só o primeiro pai" + +#: builtin/describe.c:404 +msgid "only output exact matches" +msgstr "imprimir apenas correspondências exatas" + +#: builtin/describe.c:406 +msgid "consider <n> most recent tags (default: 10)" +msgstr "considerar as <n> tags mais recentes (predefinição: 10)" + +#: builtin/describe.c:408 +msgid "only consider tags matching <pattern>" +msgstr "apenas considerar tags que correspondam ao <padrão>" + +#: builtin/describe.c:410 builtin/name-rev.c:314 +msgid "show abbreviated commit object as fallback" +msgstr "mostrar objetos de commit abreviados em recurso" + +#: builtin/describe.c:411 +msgid "mark" +msgstr "marca" + +#: builtin/describe.c:412 +msgid "append <mark> on dirty working tree (default: \"-dirty\")" msgstr "" +"acrescentar <marca> se a árvore de trabalho contiver alterações " +"(predefinição: \"-dirty\")" + +#: builtin/describe.c:430 +msgid "--long is incompatible with --abbrev=0" +msgstr "--long é incompatÃvel com --abbrev=0" -#: builtin/describe.c:462 +#: builtin/describe.c:456 msgid "No names found, cannot describe anything." -msgstr "Nenhum nome encontrado, não descreve nada." +msgstr "Nenhum nome encontrado, não é possÃvel descrever." -#: builtin/describe.c:482 +#: builtin/describe.c:476 msgid "--dirty is incompatible with commit-ishes" -msgstr "" +msgstr "--dirty é incompatÃvel com commits ou semelhantes" -#: builtin/diff.c:77 +#: builtin/diff.c:86 #, c-format msgid "'%s': not a regular file or symlink" -msgstr "" +msgstr "'%s': não é um ficheiro regular nem uma ligação simbólica" -#: builtin/diff.c:220 +#: builtin/diff.c:237 #, c-format msgid "invalid option: %s" -msgstr "" +msgstr "opção inválida: %s" -#: builtin/diff.c:297 +#: builtin/diff.c:358 msgid "Not a git repository" -msgstr "Não é um repositorio git" +msgstr "Não é um repositório git" -#: builtin/diff.c:347 +#: builtin/diff.c:401 #, c-format msgid "invalid object '%s' given." -msgstr "" - -#: builtin/diff.c:352 -#, c-format -msgid "more than %d trees given: '%s'" -msgstr "" +msgstr "objeto inválido '%s' fornecido." -#: builtin/diff.c:362 +#: builtin/diff.c:410 #, c-format msgid "more than two blobs given: '%s'" -msgstr "" +msgstr "mais do que dois blobs fornecidos: '%s'" -#: builtin/diff.c:370 +#: builtin/diff.c:417 #, c-format msgid "unhandled object '%s' given." +msgstr "objeto sem tratamento '%s' fornecido." + +#: builtin/fast-export.c:25 +msgid "git fast-export [rev-list-opts]" +msgstr "git fast-export [opções-de-rev-list]" + +#: builtin/fast-export.c:980 +msgid "show progress after <n> objects" +msgstr "mostrar progresso depois de <n> objetos" + +#: builtin/fast-export.c:982 +msgid "select handling of signed tags" +msgstr "selecionar o tratamento de tags assinadas" + +#: builtin/fast-export.c:985 +msgid "select handling of tags that tag filtered objects" +msgstr "selecionar o tratamento de tags que apontem para objetos filtrados" + +#: builtin/fast-export.c:988 +msgid "Dump marks to this file" +msgstr "Capturar marcas neste ficheiro" + +#: builtin/fast-export.c:990 +msgid "Import marks from this file" +msgstr "Importar marcas deste ficheiro" + +#: builtin/fast-export.c:992 +msgid "Fake a tagger when tags lack one" +msgstr "Inventar um autor de tag para tags que não tenham um" + +#: builtin/fast-export.c:994 +msgid "Output full tree for each commit" +msgstr "Mostrar a árvore completa para cada commit" + +#: builtin/fast-export.c:996 +msgid "Use the done feature to terminate the stream" +msgstr "Usar a funcionalidade done para terminar o fluxo" + +#: builtin/fast-export.c:997 +msgid "Skip output of blob data" +msgstr "Ignorar a exibição de dados de blob" + +#: builtin/fast-export.c:998 +msgid "refspec" +msgstr "especificador de referência" + +#: builtin/fast-export.c:999 +msgid "Apply refspec to exported refs" +msgstr "Aplicar o especificador de referência a referências exportadas" + +#: builtin/fast-export.c:1000 +msgid "anonymize output" +msgstr "anonimizar saÃda" + +#: builtin/fetch.c:20 +msgid "git fetch [<options>] [<repository> [<refspec>...]]" msgstr "" +"git fetch [<opções>] [<repositório> [<especificador-de-referência>...]]" + +#: builtin/fetch.c:21 +msgid "git fetch [<options>] <group>" +msgstr "git fetch [<opções>] <grupo>" + +#: builtin/fetch.c:22 +msgid "git fetch --multiple [<options>] [(<repository> | <group>)...]" +msgstr "git fetch --multiple [<opções>] [(<repositório> | <grupo>)...]" + +#: builtin/fetch.c:23 +msgid "git fetch --all [<options>]" +msgstr "git fetch --all [<opções>]" + +#: builtin/fetch.c:92 builtin/pull.c:166 +msgid "fetch from all remotes" +msgstr "obter de todos os remotos" + +#: builtin/fetch.c:94 builtin/pull.c:169 +msgid "append to .git/FETCH_HEAD instead of overwriting" +msgstr "acrescentar a .git/FETCH_HEAD em vez de substituir" + +#: builtin/fetch.c:96 builtin/pull.c:172 +msgid "path to upload pack on remote end" +msgstr "caminho para o comando upload pack no remoto" + +#: builtin/fetch.c:97 builtin/pull.c:174 +msgid "force overwrite of local branch" +msgstr "forçar a substituição do ramo local" + +#: builtin/fetch.c:99 +msgid "fetch from multiple remotes" +msgstr "obter de múltiplos remotos" + +#: builtin/fetch.c:101 builtin/pull.c:176 +msgid "fetch all tags and associated objects" +msgstr "obter todas as tags e objetos associados" + +#: builtin/fetch.c:103 +msgid "do not fetch all tags (--no-tags)" +msgstr "não obter todas as tags (--no-tags)" + +#: builtin/fetch.c:105 +msgid "number of submodules fetched in parallel" +msgstr "número de submódulos obtidos em paralelo" + +#: builtin/fetch.c:107 builtin/pull.c:179 +msgid "prune remote-tracking branches no longer on remote" +msgstr "eliminar os ramos cujo respetivo ramo remoto já não existe" + +#: builtin/fetch.c:108 builtin/pull.c:182 +msgid "on-demand" +msgstr "on-demand" + +#: builtin/fetch.c:109 builtin/pull.c:183 +msgid "control recursive fetching of submodules" +msgstr "controlar a obtenção recursiva de submódulos" + +#: builtin/fetch.c:113 builtin/pull.c:191 +msgid "keep downloaded pack" +msgstr "manter o pacote transferido" -#: builtin/fetch.c:200 +#: builtin/fetch.c:115 +msgid "allow updating of HEAD ref" +msgstr "permitir a atualização da referência HEAD" + +#: builtin/fetch.c:118 builtin/pull.c:194 +msgid "deepen history of shallow clone" +msgstr "aprofundar o histórico de um clone raso" + +#: builtin/fetch.c:120 builtin/pull.c:197 +msgid "convert to a complete repository" +msgstr "converter num repositório completo" + +#: builtin/fetch.c:122 builtin/log.c:1236 +msgid "dir" +msgstr "dir" + +#: builtin/fetch.c:123 +msgid "prepend this to submodule path output" +msgstr "preceder isto ao caminho do submódulo" + +#: builtin/fetch.c:126 +msgid "default mode for recursion" +msgstr "modo recursivo por omissão" + +#: builtin/fetch.c:128 builtin/pull.c:200 +msgid "accept refs that update .git/shallow" +msgstr "aceitar referência que atualizem .git/shallow" + +#: builtin/fetch.c:129 builtin/pull.c:202 +msgid "refmap" +msgstr "mapa de referências" + +#: builtin/fetch.c:130 builtin/pull.c:203 +msgid "specify fetch refmap" +msgstr "especificar mapa de referências" + +#: builtin/fetch.c:386 msgid "Couldn't find remote ref HEAD" -msgstr "" +msgstr "Referência remota HEAD não encontrada" -#: builtin/fetch.c:253 +#: builtin/fetch.c:466 #, c-format msgid "object %s not found" -msgstr "objecto %s não encontrado" +msgstr "objeto %s não encontrado" -#: builtin/fetch.c:259 +#: builtin/fetch.c:471 msgid "[up to date]" -msgstr "[Actualizada]" +msgstr "[atualizado]" -#: builtin/fetch.c:273 +#: builtin/fetch.c:485 #, c-format msgid "! %-*s %-*s -> %s (can't fetch in current branch)" -msgstr "" +msgstr "! %-*s %-*s -> %s (não é possÃvel obter no ramo atual)" -#: builtin/fetch.c:274 -#: builtin/fetch.c:360 +#: builtin/fetch.c:486 builtin/fetch.c:574 msgid "[rejected]" msgstr "[rejeitado]" -#: builtin/fetch.c:285 +#: builtin/fetch.c:497 msgid "[tag update]" -msgstr "[etiqueta actualizada]" +msgstr "[tag atualizada]" -#: builtin/fetch.c:287 -#: builtin/fetch.c:322 -#: builtin/fetch.c:340 +#: builtin/fetch.c:499 builtin/fetch.c:534 builtin/fetch.c:552 msgid " (unable to update local ref)" -msgstr "" +msgstr " (não é possÃvel atualizar a referência local)" -#: builtin/fetch.c:305 +#: builtin/fetch.c:517 msgid "[new tag]" -msgstr "[nova etiqueta]" +msgstr "[nova tag]" -#: builtin/fetch.c:308 +#: builtin/fetch.c:520 msgid "[new branch]" -msgstr "[nova rama]" +msgstr "[novo ramo]" -#: builtin/fetch.c:311 +#: builtin/fetch.c:523 msgid "[new ref]" -msgstr "[nova ref]" +msgstr "[nova referência]" -#: builtin/fetch.c:356 +#: builtin/fetch.c:569 msgid "unable to update local ref" -msgstr "" +msgstr "não é possÃvel atualizar a referência local" -#: builtin/fetch.c:356 +#: builtin/fetch.c:569 msgid "forced update" -msgstr "actualização forçada" +msgstr "atualização forçada" -#: builtin/fetch.c:362 +#: builtin/fetch.c:576 msgid "(non-fast-forward)" -msgstr "(non-fast-forward)" +msgstr "(sem avanço rápido)" -#: builtin/fetch.c:393 -#: builtin/fetch.c:685 +#: builtin/fetch.c:610 builtin/fetch.c:851 #, c-format msgid "cannot open %s: %s\n" -msgstr "não é possivel abrir %s: %s\n" +msgstr "não é possÃvel abrir %s: %s\n" -#: builtin/fetch.c:402 +#: builtin/fetch.c:619 #, c-format msgid "%s did not send all necessary objects\n" -msgstr "" +msgstr "%s não enviou todos os objetos necessários\n" + +#: builtin/fetch.c:637 +#, c-format +msgid "reject %s because shallow roots are not allowed to be updated" +msgstr "%s rejeitado, porque as raÃzes rasas não podem ser atualizadas" -#: builtin/fetch.c:488 +#: builtin/fetch.c:724 builtin/fetch.c:816 #, c-format msgid "From %.*s\n" -msgstr "Para %.*s\n" +msgstr "De %.*s\n" -#: builtin/fetch.c:499 +#: 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 "" +"algumas referências locais não puderam ser atualizadas; tente executar\n" +" 'git remote prune %s' para remover algum ramo antigo em conflito" -#: builtin/fetch.c:549 +#: builtin/fetch.c:787 #, c-format msgid " (%s will become dangling)" -msgstr "" +msgstr " (%s ficará suspenso)" -#: builtin/fetch.c:550 +#: builtin/fetch.c:788 #, c-format msgid " (%s has become dangling)" -msgstr "" +msgstr " (%s ficou suspenso)" -#: builtin/fetch.c:557 +#: builtin/fetch.c:820 msgid "[deleted]" msgstr "[eliminado]" -#: builtin/fetch.c:558 -#: builtin/remote.c:1055 +#: builtin/fetch.c:821 builtin/remote.c:1025 msgid "(none)" msgstr "(nenhum)" -#: builtin/fetch.c:675 +#: builtin/fetch.c:841 #, c-format msgid "Refusing to fetch into current branch %s of non-bare repository" -msgstr "" +msgstr "Não é possÃvel obter objetos no ramo atual %s de um repositório não nu" -#: builtin/fetch.c:709 -#, c-format -msgid "Don't know how to fetch from %s" -msgstr "" - -#: builtin/fetch.c:786 +#: builtin/fetch.c:860 #, c-format msgid "Option \"%s\" value \"%s\" is not valid for %s" -msgstr "" +msgstr "O valor \"%2$s\" da opção \"%1$s\" não é válido em %3$s" -#: builtin/fetch.c:789 +#: builtin/fetch.c:863 #, c-format msgid "Option \"%s\" is ignored for %s\n" -msgstr "" +msgstr "Opção \"%s\" ignorada em %s\n" -#: builtin/fetch.c:888 +#: builtin/fetch.c:920 +#, c-format +msgid "Don't know how to fetch from %s" +msgstr "Não sei como obter de %s" + +#: builtin/fetch.c:1080 #, c-format msgid "Fetching %s\n" -msgstr "Baixando %s\n" +msgstr "A obter de %s\n" -#: builtin/fetch.c:890 -#: builtin/remote.c:100 +#: builtin/fetch.c:1082 builtin/remote.c:96 #, c-format msgid "Could not fetch %s" -msgstr "" +msgstr "Não foi possÃvel obter de %s" -#: builtin/fetch.c:907 +#: 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 "" -"Nenhum repositório remoto especificado. Por favor, especifique um URL ou o\n" -"nome remoto a partir do qual novas revisões devem ser obtida." +"Nenhum repositório remoto especificado. Especifique um URL ou\n" +"o nome remoto a partir do qual as novas revisões devem ser obtidas." -#: builtin/fetch.c:927 +#: builtin/fetch.c:1123 msgid "You need to specify a tag name." -msgstr "Você precisa especificar um nome da etiqueta." +msgstr "Deve especificar um nome para a tag." + +#: builtin/fetch.c:1165 +msgid "--depth and --unshallow cannot be used together" +msgstr "--depth e --unshallow não podem ser usados juntos" -#: builtin/fetch.c:979 +#: builtin/fetch.c:1167 +msgid "--unshallow on a complete repository does not make sense" +msgstr "usar --unshallow num repositório completo não faz sentido" + +#: builtin/fetch.c:1187 msgid "fetch --all does not take a repository argument" -msgstr "" +msgstr "fetch --all não leva um repositório como argumento" -#: builtin/fetch.c:981 +#: builtin/fetch.c:1189 msgid "fetch --all does not make sense with refspecs" -msgstr "" +msgstr "fetch --all não faz sentido com especificadores de referência" -#: builtin/fetch.c:992 +#: builtin/fetch.c:1200 #, c-format msgid "No such remote or remote group: %s" -msgstr "" +msgstr "O remoto ou grupo remoto não existe: %s" -#: builtin/fetch.c:1000 +#: builtin/fetch.c:1208 msgid "Fetching a group and specifying refspecs does not make sense" +msgstr "Não faz sentido obter um grupo e especificar uma referência" + +#: builtin/fmt-merge-msg.c:14 +msgid "" +"git fmt-merge-msg [-m <message>] [--log[=<n>] | --no-log] [--file <file>]" msgstr "" +"git fmt-merge-msg [-m <mensagem>] [--log[=<n>] | --no-log] [--file " +"<ficheiro>]" + +#: builtin/fmt-merge-msg.c:667 +msgid "populate log with at most <n> entries from shortlog" +msgstr "povoar o registo com, no máximo, <n> entradas do shortlog" + +#: builtin/fmt-merge-msg.c:670 +msgid "alias for --log (deprecated)" +msgstr "alias de --log (obsoleto)" + +#: builtin/fmt-merge-msg.c:673 +msgid "text" +msgstr "texto" + +#: builtin/fmt-merge-msg.c:674 +msgid "use <text> as start of message" +msgstr "usar <texto> no inÃcio da mensagem" + +#: builtin/fmt-merge-msg.c:675 +msgid "file to read from" +msgstr "ficheiro a ler" + +#: builtin/for-each-ref.c:9 +msgid "git for-each-ref [<options>] [<pattern>]" +msgstr "git for-each-ref [<opções>] [<padrão>]" + +#: builtin/for-each-ref.c:10 +msgid "git for-each-ref [--points-at <object>]" +msgstr "git for-each-ref [--points-at <objeto>]" + +#: builtin/for-each-ref.c:11 +msgid "git for-each-ref [(--merged | --no-merged) [<object>]]" +msgstr "git for-each-ref [(--merged | --no-merged) [<objeto>]]" + +#: builtin/for-each-ref.c:12 +msgid "git for-each-ref [--contains [<object>]]" +msgstr "git for-each-ref [--contains [<objeto>]]" + +#: builtin/for-each-ref.c:27 +msgid "quote placeholders suitably for shells" +msgstr "" +"envolver os marcadores de posição em aspas de forma adequada para " +"interpretadores de comandos" + +#: builtin/for-each-ref.c:29 +msgid "quote placeholders suitably for perl" +msgstr "envolver os marcadores de posição em aspas de forma adequada para perl" + +#: builtin/for-each-ref.c:31 +msgid "quote placeholders suitably for python" +msgstr "" +"envolver os marcadores de posição em aspas de forma adequada para python" + +#: builtin/for-each-ref.c:33 +msgid "quote placeholders suitably for Tcl" +msgstr "envolver os marcadores de posição em aspas de forma adequada para Tcl" -#: builtin/gc.c:63 +#: builtin/for-each-ref.c:36 +msgid "show only <n> matched refs" +msgstr "mostrar apenas <n> referências correspondidas" + +#: builtin/for-each-ref.c:37 builtin/tag.c:372 +msgid "format to use for the output" +msgstr "formato a usar na saÃda" + +#: builtin/for-each-ref.c:41 +msgid "print only refs which points at the given object" +msgstr "imprimir apenas referências que apontem para o objeto fornecido" + +#: builtin/for-each-ref.c:43 +msgid "print only refs that are merged" +msgstr "imprimir apenas referenciadas incorporadas" + +#: builtin/for-each-ref.c:44 +msgid "print only refs that are not merged" +msgstr "imprimir apenas referências não incorporadas" + +#: builtin/for-each-ref.c:45 +msgid "print only refs which contain the commit" +msgstr "imprimir apenas referências que contenham o commit" + +#: builtin/fsck.c:156 builtin/prune.c:140 +msgid "Checking connectivity" +msgstr "A verificar conectividade" + +#: builtin/fsck.c:486 +msgid "Checking object directories" +msgstr "A verificar diretórios de objetos" + +#: builtin/fsck.c:553 +msgid "git fsck [<options>] [<object>...]" +msgstr "git fsck [<opções>] [<objeto>...]" + +#: builtin/fsck.c:559 +msgid "show unreachable objects" +msgstr "mostrar objetos inalcançáveis" + +#: builtin/fsck.c:560 +msgid "show dangling objects" +msgstr "mostrar objetos suspensos" + +#: builtin/fsck.c:561 +msgid "report tags" +msgstr "mostrar tags" + +#: builtin/fsck.c:562 +msgid "report root nodes" +msgstr "mostrar nós raiz" + +#: builtin/fsck.c:563 +msgid "make index objects head nodes" +msgstr "considerar objetos do Ãndice como nós cabeça" + +#: builtin/fsck.c:564 +msgid "make reflogs head nodes (default)" +msgstr "considerar os reflogs como nós cabeça (predefinição)" + +#: builtin/fsck.c:565 +msgid "also consider packs and alternate objects" +msgstr "considerar também pacotes e objetos alternate" + +#: builtin/fsck.c:566 +msgid "check only connectivity" +msgstr "verificar só a conetividade" + +#: builtin/fsck.c:567 +msgid "enable more strict checking" +msgstr "ativar verificação mais rigorosa" + +#: builtin/fsck.c:569 +msgid "write dangling objects in .git/lost-found" +msgstr "escrever objetos suspensos em .git/lost-found" + +#: builtin/fsck.c:570 builtin/prune.c:107 +msgid "show progress" +msgstr "mostrar progresso" + +#: builtin/fsck.c:631 +msgid "Checking objects" +msgstr "A verificar objetos" + +#: builtin/gc.c:25 +msgid "git gc [<options>]" +msgstr "git gc [<opções>]" + +#: builtin/gc.c:72 #, c-format msgid "Invalid %s: '%s'" msgstr "Inválido %s: '%s'" -#: builtin/gc.c:90 +#: builtin/gc.c:139 #, c-format msgid "insanely long object directory %.*s" +msgstr "diretório de objetos demasiado longo %.*s" + +#: builtin/gc.c:290 +#, c-format +msgid "" +"The last gc run reported the following. Please correct the root cause\n" +"and remove %s.\n" +"Automatic cleanup will not be performed until the file is removed.\n" +"\n" +"%s" msgstr "" +"A última execução do gc reportou o seguinte.\n" +"Corrija a raiz do problema e remova %s.\n" +"A limpeza automática não será realizada enquanto o ficheiro existir.\n" +"\n" +"%s" + +#: builtin/gc.c:327 +msgid "prune unreferenced objects" +msgstr "eliminar ficheiros não referenciados" + +#: builtin/gc.c:329 +msgid "be more thorough (increased runtime)" +msgstr "ser mais minucioso (aumenta o tempo de execução)" + +#: builtin/gc.c:330 +msgid "enable auto-gc mode" +msgstr "ativar modo auto-gc" -#: builtin/gc.c:221 +#: builtin/gc.c:331 +msgid "force running gc even if there may be another gc running" +msgstr "forçar a execução do gc mesmo que haja outro gc a executar" + +#: builtin/gc.c:373 #, c-format -msgid "Auto packing the repository for optimum performance.\n" +msgid "Auto packing the repository in background for optimum performance.\n" msgstr "" +"A autocompactar o repositório em segundo plano para obter um melhor " +"desempenho.\n" + +#: builtin/gc.c:375 +#, c-format +msgid "Auto packing the repository for optimum performance.\n" +msgstr "A autocompactar o repositório para obter um melhor desempenho.\n" -#: builtin/gc.c:224 +#: builtin/gc.c:376 +#, c-format +msgid "See \"git help gc\" for manual housekeeping.\n" +msgstr "Consulte \"git help gc\" para ler sobre manutenção manual.\n" + +#: builtin/gc.c:397 #, c-format msgid "" -"Auto packing the repository for optimum performance. You may also\n" -"run \"git gc\" manually. See \"git help gc\" for more information.\n" +"gc is already running on machine '%s' pid %<PRIuMAX> (use --force if not)" msgstr "" +"gc já a executar na máquina '%s' pid %<PRIuMAX> (use --force se não for o " +"caso)" -#: builtin/gc.c:251 -msgid "There are too many unreachable loose objects; run 'git prune' to remove them." +#: builtin/gc.c:441 +msgid "" +"There are too many unreachable loose objects; run 'git prune' to remove them." msgstr "" +"Existem demasiados objeto soltos inalcançáveis; execute 'git prune' para os " +"remover." + +#: builtin/grep.c:23 +msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]" +msgstr "git grep [<opções>] [-e] <padrão> [<rev>...] [[--] <caminho>...]" -#: builtin/grep.c:216 +#: builtin/grep.c:219 #, c-format msgid "grep: failed to create thread: %s" -msgstr "" +msgstr "grep: falha ao criar thread: %s" -#: builtin/grep.c:402 +#: builtin/grep.c:277 #, c-format -msgid "Failed to chdir: %s" -msgstr "" +msgid "invalid number of threads specified (%d) for %s" +msgstr "o número de threads especificado em %2$s é inválido (%1$d)" -#: builtin/grep.c:478 -#: builtin/grep.c:512 +#: builtin/grep.c:452 builtin/grep.c:487 #, c-format msgid "unable to read tree (%s)" -msgstr "" +msgstr "não foi possÃvel ler a árvore (%s)" -#: builtin/grep.c:526 +#: builtin/grep.c:502 #, c-format msgid "unable to grep from object of type %s" -msgstr "" +msgstr "não foi possÃvel efetuar grep de objetos do tipo %s" -#: builtin/grep.c:584 +#: builtin/grep.c:558 #, c-format msgid "switch `%c' expects a numerical value" -msgstr "" +msgstr "a opção '%c' espera um valor numérico" -#: builtin/grep.c:601 +#: builtin/grep.c:575 #, c-format msgid "cannot open '%s'" +msgstr "não é possÃvel abrir '%s'" + +#: builtin/grep.c:644 +msgid "search in index instead of in the work tree" +msgstr "procurar no Ãndice em vez de procurar na árvore de trabalho" + +#: builtin/grep.c:646 +msgid "find in contents not managed by git" +msgstr "procurar em conteúdos não geridos pelo git" + +#: builtin/grep.c:648 +msgid "search in both tracked and untracked files" +msgstr "procurar em ficheiros controlados e não controlados" + +#: builtin/grep.c:650 +msgid "ignore files specified via '.gitignore'" +msgstr "ignorar ficheiros especificados via '.gitignore'" + +#: builtin/grep.c:653 +msgid "show non-matching lines" +msgstr "mostrar linhas não correspondidas" + +#: builtin/grep.c:655 +msgid "case insensitive matching" +msgstr "não diferenciar maiúsculas de minúsculas" + +#: builtin/grep.c:657 +msgid "match patterns only at word boundaries" +msgstr "corresponder padrões apenas a palavras" + +#: builtin/grep.c:659 +msgid "process binary files as text" +msgstr "processar ficheiros binários como texto" + +#: builtin/grep.c:661 +msgid "don't match patterns in binary files" +msgstr "ignorar ficheiros binários" + +#: builtin/grep.c:664 +msgid "process binary files with textconv filters" +msgstr "processar ficheiros binários com filtros textconv" + +#: builtin/grep.c:666 +msgid "descend at most <depth> levels" +msgstr "descer no máximo até <profundidade>" + +#: builtin/grep.c:670 +msgid "use extended POSIX regular expressions" +msgstr "usar expressões regulares estendidas do POSIX" + +#: builtin/grep.c:673 +msgid "use basic POSIX regular expressions (default)" +msgstr "usar expressões regulares básicas do POSIX (predefinição)" + +#: builtin/grep.c:676 +msgid "interpret patterns as fixed strings" +msgstr "interpretar padrões como cadeias de caracteres fixas" + +#: builtin/grep.c:679 +msgid "use Perl-compatible regular expressions" +msgstr "usar expressões regulares compatÃveis com Perl" + +#: builtin/grep.c:682 +msgid "show line numbers" +msgstr "mostrar números de linha" + +#: builtin/grep.c:683 +msgid "don't show filenames" +msgstr "não mostrar nomes de ficheiro" + +#: builtin/grep.c:684 +msgid "show filenames" +msgstr "mostrar nomes de ficheiro" + +#: builtin/grep.c:686 +msgid "show filenames relative to top directory" +msgstr "mostrar nomes de ficheiro relativamente ao diretório superior" + +#: builtin/grep.c:688 +msgid "show only filenames instead of matching lines" +msgstr "mostrar apenas nomes de ficheiro em vez de linhas correspondidas" + +#: builtin/grep.c:690 +msgid "synonym for --files-with-matches" +msgstr "sinónimo de --files-with-matches" + +#: builtin/grep.c:693 +msgid "show only the names of files without match" +msgstr "mostrar apenas nomes de ficheiro sem correspondência" + +#: builtin/grep.c:695 +msgid "print NUL after filenames" +msgstr "imprimir NUL depois dos nomes de ficheiro" + +#: builtin/grep.c:697 +msgid "show the number of matches instead of matching lines" +msgstr "mostrar o número de correspondências em vez das linha correspondidas" + +#: builtin/grep.c:698 +msgid "highlight matches" +msgstr "realçar correspondências" + +#: builtin/grep.c:700 +msgid "print empty line between matches from different files" msgstr "" +"imprimir uma linha em branco entre correspondências de diferentes ficheiros" -#: builtin/grep.c:888 -msgid "no pattern given." +#: builtin/grep.c:702 +msgid "show filename only once above matches from same file" msgstr "" +"mostrar só uma vez o nome do ficheiro acima das correspondências dentro do " +"mesmo ficheiro" -#: builtin/grep.c:902 -#, c-format -msgid "bad object %s" +#: builtin/grep.c:705 +msgid "show <n> context lines before and after matches" +msgstr "mostrar <n> linhas de contexto antes e depois das correspondências" + +#: builtin/grep.c:708 +msgid "show <n> context lines before matches" +msgstr "mostrar <n> linhas de contexto antes das correspondências" + +#: builtin/grep.c:710 +msgid "show <n> context lines after matches" +msgstr "mostrar <n> linhas de contexto depois das correspondências" + +#: builtin/grep.c:712 +msgid "use <n> worker threads" +msgstr "usar <n> threads de trabalho" + +#: builtin/grep.c:713 +msgid "shortcut for -C NUM" +msgstr "atalho para -C NUM" + +#: builtin/grep.c:716 +msgid "show a line with the function name before matches" +msgstr "mostrar uma linha com o nome da função antes das correspondências" + +#: builtin/grep.c:718 +msgid "show the surrounding function" +msgstr "mostrar a função circundante" + +#: builtin/grep.c:721 +msgid "read patterns from file" +msgstr "ler padrões do ficheiro" + +#: builtin/grep.c:723 +msgid "match <pattern>" +msgstr "procurar <padrão>" + +#: builtin/grep.c:725 +msgid "combine patterns specified with -e" +msgstr "combinar padrões especificados com -e" + +#: builtin/grep.c:737 +msgid "indicate hit with exit status without output" +msgstr "indicar padrão encontrado no valor de saÃda, mas não imprimir" + +#: builtin/grep.c:739 +msgid "show only matches from files that match all patterns" msgstr "" +"mostrar apenas correspondências de ficheiro que tenham todos os padrões" + +#: builtin/grep.c:741 +msgid "show parse tree for grep expression" +msgstr "mostrar árvore de analise da expressões grep" + +#: builtin/grep.c:745 +msgid "pager" +msgstr "paginador" + +#: builtin/grep.c:745 +msgid "show matching files in the pager" +msgstr "mostrar ficheiros com correspondências no paginador" -#: builtin/grep.c:943 +#: builtin/grep.c:748 +msgid "allow calling of grep(1) (ignored by this build)" +msgstr "permitir invocar grep(1) (ignorado nesta compilação)" + +#: builtin/grep.c:811 +msgid "no pattern given." +msgstr "nenhum padrão fornecido." + +#: builtin/grep.c:843 builtin/index-pack.c:1475 +#, c-format +msgid "invalid number of threads specified (%d)" +msgstr "número de threads especificado inválido (%d)" + +#: builtin/grep.c:873 msgid "--open-files-in-pager only works on the worktree" -msgstr "" +msgstr "--open-files-in-pager só funciona na árvore de trabalho" -#: builtin/grep.c:966 +#: builtin/grep.c:899 msgid "--cached or --untracked cannot be used with --no-index." -msgstr "" +msgstr "--cached ou --untracked não podem ser usados com --no-index." -#: builtin/grep.c:971 +#: builtin/grep.c:904 msgid "--no-index or --untracked cannot be used with revs." -msgstr "" +msgstr "--no-index ou --untracked não podem ser usados em revisões." -#: builtin/grep.c:974 +#: builtin/grep.c:907 msgid "--[no-]exclude-standard cannot be used for tracked contents." msgstr "" +"--[no-]exclude-standard não podem ser usados em conteúdos não controlados." -#: builtin/grep.c:982 +#: builtin/grep.c:915 msgid "both --cached and trees are given." +msgstr "--cached e árvores fornecidos simultaneamente." + +#: builtin/hash-object.c:81 +msgid "" +"git hash-object [-t <type>] [-w] [--path=<file> | --no-filters] [--stdin] " +"[--] <file>..." +msgstr "" +"git hash-object [-t <tipo>] [-w] [--path=<ficheiro> | --no-filters] [--" +"stdin] [--] <ficheiro>..." + +#: builtin/hash-object.c:82 +msgid "git hash-object --stdin-paths" +msgstr "git hash-object --stdin-paths" + +#: builtin/hash-object.c:93 +msgid "type" +msgstr "tipo" + +#: builtin/hash-object.c:93 +msgid "object type" +msgstr "tipo do objeto" + +#: builtin/hash-object.c:94 +msgid "write the object into the object database" +msgstr "escrever o objeto na base de dados de objetos" + +#: builtin/hash-object.c:96 +msgid "read the object from stdin" +msgstr "ler o objeto da entrada padrão" + +#: builtin/hash-object.c:98 +msgid "store file as is without filters" +msgstr "guardar o ficheiro tal como está, sem filtros" + +#: builtin/hash-object.c:99 +msgid "" +"just hash any random garbage to create corrupt objects for debugging Git" msgstr "" +"obter hash de lixo aleatório para criar objetos corrompidos para depurar o " +"Git" + +#: builtin/hash-object.c:100 +msgid "process file as it were from this path" +msgstr "processar o ficheiro como se este fosse do caminho indicado" + +#: builtin/help.c:41 +msgid "print all available commands" +msgstr "imprimir todos os comandos disponÃveis" + +#: builtin/help.c:42 +msgid "print list of useful guides" +msgstr "imprimir lista de guias úteis" + +#: builtin/help.c:43 +msgid "show man page" +msgstr "mostrar página do manual" + +#: builtin/help.c:44 +msgid "show manual in web browser" +msgstr "mostrar o manual no navegador web" + +#: builtin/help.c:46 +msgid "show info page" +msgstr "mostrar página info" -#: builtin/help.c:59 +#: builtin/help.c:52 +msgid "git help [--all] [--guides] [--man | --web | --info] [<command>]" +msgstr "git help [--all] [--guides] [--man | --web | --info] [<comando>]" + +#: builtin/help.c:64 #, c-format msgid "unrecognized help format '%s'" -msgstr "formato ajuda não reconhecido '%s'" +msgstr "formato de ajuda não reconhecido '%s'" -#: builtin/help.c:87 +#: builtin/help.c:91 msgid "Failed to start emacsclient." -msgstr "" +msgstr "Falha ao iniciar emacsclient." -#: builtin/help.c:100 +#: builtin/help.c:104 msgid "Failed to parse emacsclient version." -msgstr "" +msgstr "Falha ao analisar a versão do emacsclient." -#: builtin/help.c:108 +#: builtin/help.c:112 #, c-format msgid "emacsclient version '%d' too old (< 22)." -msgstr "" +msgstr "a versão do emacsclient '%d' é demasiado antiga (< 22)." -#: builtin/help.c:126 -#: builtin/help.c:154 -#: builtin/help.c:163 -#: builtin/help.c:171 +#: builtin/help.c:130 builtin/help.c:151 builtin/help.c:160 builtin/help.c:168 #, c-format msgid "failed to exec '%s': %s" -msgstr "" +msgstr "falha ao executar '%s': %s" -#: builtin/help.c:211 +#: builtin/help.c:205 #, c-format msgid "" "'%s': path for unsupported man viewer.\n" "Please consider using 'man.<tool>.cmd' instead." msgstr "" +"'%s': caminho para visualizador de manual não suportado.\n" +"Considere usar 'man.<tool>.cmd'." -#: builtin/help.c:223 +#: builtin/help.c:217 #, c-format msgid "" "'%s': cmd for supported man viewer.\n" "Please consider using 'man.<tool>.path' instead." msgstr "" +"'%s': comando de visualizador de manual suportado.\n" +"Considere usar 'man.<tool>.path'." -#: builtin/help.c:287 -msgid "The most commonly used git commands are:" -msgstr "" - -#: builtin/help.c:355 +#: builtin/help.c:334 #, c-format msgid "'%s': unknown man viewer." -msgstr "" +msgstr "'%s' visualizador de manual desconhecido." -#: builtin/help.c:372 +#: builtin/help.c:351 msgid "no man viewer handled the request" -msgstr "" +msgstr "nenhum visualizador de manual atendeu o pedido" -#: builtin/help.c:380 +#: builtin/help.c:359 msgid "no info viewer handled the request" -msgstr "" +msgstr "nenhum visualizador de info atendeu o pedido" -#: builtin/help.c:391 -#, c-format -msgid "'%s': not a documentation directory." +#: builtin/help.c:408 +msgid "Defining attributes per path" +msgstr "Definir atributos por caminho" + +#: builtin/help.c:409 +msgid "Everyday Git With 20 Commands Or So" +msgstr "Diário Git com mais ou menos 20 Comandos" + +#: builtin/help.c:410 +msgid "A Git glossary" +msgstr "Um Glossário do Git" + +#: builtin/help.c:411 +msgid "Specifies intentionally untracked files to ignore" msgstr "" +"Especificar ficheiros não controlados para serem intencionalmente ignorados" + +#: builtin/help.c:412 +msgid "Defining submodule properties" +msgstr "Definir propriedades de submódulos" + +#: builtin/help.c:413 +msgid "Specifying revisions and ranges for Git" +msgstr "Especificar revisões e intervalos do Git" + +#: builtin/help.c:414 +msgid "A tutorial introduction to Git (for version 1.5.1 or newer)" +msgstr "Uma introdução ao Git (versão 1.5.1 ou mais recente)" + +#: builtin/help.c:415 +msgid "An overview of recommended workflows with Git" +msgstr "Uma descrição geral dos fluxos de trabalho recomendados para o Git" + +#: builtin/help.c:427 +msgid "The common Git guides are:\n" +msgstr "Os guias comuns do Git:\n" -#: builtin/help.c:432 -#: builtin/help.c:439 +#: builtin/help.c:448 builtin/help.c:465 #, c-format msgid "usage: %s%s" -msgstr "" +msgstr "utilização: %s%s" -#: builtin/help.c:453 +#: builtin/help.c:481 #, c-format msgid "`git %s' is aliased to `%s'" -msgstr "" +msgstr "'git %s' é um alias de '%s'" + +#: builtin/index-pack.c:152 +#, c-format +msgid "unable to open %s" +msgstr "não foi possÃvel ler %s" -#: builtin/index-pack.c:84 +#: builtin/index-pack.c:202 #, c-format msgid "object type mismatch at %s" -msgstr "" +msgstr "incompatibilidade de tipo de objeto em %s" -#: builtin/index-pack.c:104 -msgid "object of unexpected type" -msgstr "" +#: builtin/index-pack.c:222 +#, c-format +msgid "did not receive expected object %s" +msgstr "o objeto esperado %s não foi recebido" + +#: builtin/index-pack.c:225 +#, c-format +msgid "object %s: expected type %s, found %s" +msgstr "objeto %s: tipo esperado %s, obtido %s" -#: builtin/index-pack.c:141 +#: builtin/index-pack.c:267 #, c-format msgid "cannot fill %d byte" msgid_plural "cannot fill %d bytes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "não é possÃvel preencher %d byte" +msgstr[1] "não é possÃvel preencher %d bytes" -#: builtin/index-pack.c:151 +#: builtin/index-pack.c:277 msgid "early EOF" -msgstr "" +msgstr "fim de ficheiro (EOF) prematuro" -#: builtin/index-pack.c:152 +#: builtin/index-pack.c:278 msgid "read error on input" -msgstr "" +msgstr "erro de leitura da entrada" -#: builtin/index-pack.c:164 +#: builtin/index-pack.c:290 msgid "used more bytes than were available" -msgstr "" +msgstr "foram usados mais bytes dos que estavam disponÃveis" -#: builtin/index-pack.c:171 +#: builtin/index-pack.c:297 msgid "pack too large for current definition of off_t" -msgstr "" +msgstr "pacote demasiado grande para a definição atual de off_t" -#: builtin/index-pack.c:187 +#: builtin/index-pack.c:313 #, c-format msgid "unable to create '%s'" -msgstr "não é possivel crear '%s'" +msgstr "não foi possÃvel criar '%s'" -#: builtin/index-pack.c:192 +#: builtin/index-pack.c:318 #, c-format msgid "cannot open packfile '%s'" -msgstr "Não é possivel abrir o ficheiro packfile '%s'" +msgstr "não é possÃvel abrir o ficheiro de pacote '%s'" -#: builtin/index-pack.c:206 +#: builtin/index-pack.c:332 msgid "pack signature mismatch" -msgstr "" +msgstr "a assinatura do pacote não corresponde" -#: builtin/index-pack.c:226 +#: builtin/index-pack.c:334 +#, c-format +msgid "pack version %<PRIu32> unsupported" +msgstr "versão de pacote %<PRIu32> não suportada" + +#: builtin/index-pack.c:352 #, c-format msgid "pack has bad object at offset %lu: %s" -msgstr "" +msgstr "pacote com objeto incorreto no offset %lu: %s" -#: builtin/index-pack.c:300 +#: builtin/index-pack.c:473 #, c-format msgid "inflate returned %d" -msgstr "" +msgstr "a descompactação retornou %d" -#: builtin/index-pack.c:345 +#: builtin/index-pack.c:522 msgid "offset value overflow for delta base object" -msgstr "" +msgstr "delta de objeto base com capacidade excedida no valor de offset" -#: builtin/index-pack.c:353 +#: builtin/index-pack.c:530 +#, fuzzy msgid "delta base offset is out of bound" -msgstr "" +msgstr "um offset de base delta ultrapassou o limite" -#: builtin/index-pack.c:361 +#: builtin/index-pack.c:538 #, c-format msgid "unknown object type %d" -msgstr "ojecto com tipo desconhecido %d" +msgstr "objeto de tipo desconhecido %d" -#: builtin/index-pack.c:390 +#: builtin/index-pack.c:569 msgid "cannot pread pack file" -msgstr "Não é possivel pread pack file" +msgstr "não é possÃvel invocar pread sobre o ficheiro de pacote" -#: builtin/index-pack.c:392 +#: builtin/index-pack.c:571 #, c-format msgid "premature end of pack file, %lu byte missing" msgid_plural "premature end of pack file, %lu bytes missing" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "fim de ficheiro de pacote prematuro, falta %lu byte" +msgstr[1] "fim de ficheiro de pacote prematuro, faltam %lu bytes" -#: builtin/index-pack.c:405 +#: builtin/index-pack.c:597 msgid "serious inflate inconsistency" -msgstr "" +msgstr "inconsistência de descompactação grave" -#: builtin/index-pack.c:476 +#: builtin/index-pack.c:743 builtin/index-pack.c:749 builtin/index-pack.c:772 +#: builtin/index-pack.c:806 builtin/index-pack.c:815 #, c-format -msgid "cannot read existing object %s" -msgstr "não foi possÃvel ler objecto existente %s" +msgid "SHA1 COLLISION FOUND WITH %s !" +msgstr "COLISÃO DE SHA1 COM %s ENCONTRADA!" -#: builtin/index-pack.c:479 +#: builtin/index-pack.c:746 builtin/pack-objects.c:162 +#: builtin/pack-objects.c:254 #, c-format -msgid "SHA1 COLLISION FOUND WITH %s !" -msgstr "" +msgid "unable to read %s" +msgstr "não foi possÃvel ler %s" -#: builtin/index-pack.c:488 +#: builtin/index-pack.c:812 +#, c-format +msgid "cannot read existing object %s" +msgstr "não é possÃvel ler o objeto existente %s" + +#: builtin/index-pack.c:826 #, c-format msgid "invalid blob object %s" -msgstr "inválido objecto blob %s" +msgstr "objeto blob inválido %s" -#: builtin/index-pack.c:500 +#: builtin/index-pack.c:840 #, c-format msgid "invalid %s" -msgstr "inválido: %s" +msgstr "inválido %s" -#: builtin/index-pack.c:502 +#: builtin/index-pack.c:843 msgid "Error in object" -msgstr "" +msgstr "Erro no objeto" -#: builtin/index-pack.c:504 +#: builtin/index-pack.c:845 #, c-format msgid "Not all child objects of %s are reachable" -msgstr "" +msgstr "Nem todos os objetos filhos de %s são alcançáveis" -#: builtin/index-pack.c:576 -#: builtin/index-pack.c:602 +#: builtin/index-pack.c:917 builtin/index-pack.c:948 msgid "failed to apply delta" -msgstr "" +msgstr "falha ao aplicar delta" -#: builtin/index-pack.c:706 +#: builtin/index-pack.c:1118 msgid "Receiving objects" -msgstr "" +msgstr "A receber objetos" -#: builtin/index-pack.c:706 +#: builtin/index-pack.c:1118 msgid "Indexing objects" -msgstr "" +msgstr "A indexar objetos" -#: builtin/index-pack.c:728 +#: builtin/index-pack.c:1150 msgid "pack is corrupted (SHA1 mismatch)" -msgstr "" +msgstr "pacote corrompido (SHA1 não corresponde)" -#: builtin/index-pack.c:733 +#: builtin/index-pack.c:1155 msgid "cannot fstat packfile" -msgstr "Não é possivel fstat packfile" +msgstr "não é possÃvel invocar fstat sobre o ficheiro de pacote" -#: builtin/index-pack.c:736 +#: builtin/index-pack.c:1158 msgid "pack has junk at the end" -msgstr "" +msgstr "pacote com lixo no final" -#: builtin/index-pack.c:754 +#: builtin/index-pack.c:1169 +msgid "confusion beyond insanity in parse_pack_objects()" +msgstr "extrema confusão em parse_pack_objects()" + +#: builtin/index-pack.c:1194 msgid "Resolving deltas" -msgstr "Resolvendo deltas" +msgstr "A resolver deltas" + +#: builtin/index-pack.c:1205 +#, c-format +msgid "unable to create thread: %s" +msgstr "não foi possÃvel criar thread: %s" + +#: builtin/index-pack.c:1247 +msgid "confusion beyond insanity" +msgstr "extrema confusão" + +#: builtin/index-pack.c:1253 +#, c-format +msgid "completed with %d local objects" +msgstr "concluÃdo com %d objetos locais" + +#: builtin/index-pack.c:1263 +#, c-format +msgid "Unexpected tail checksum for %s (disk corruption?)" +msgstr "Soma de verificação inesperada no final de %s (corrupção no disco?)" + +#: builtin/index-pack.c:1267 +#, c-format +msgid "pack has %d unresolved delta" +msgid_plural "pack has %d unresolved deltas" +msgstr[0] "pacote com %d delta não resolvido" +msgstr[1] "pacote com %d deltas não resolvidos" -#: builtin/index-pack.c:787 +#: builtin/index-pack.c:1291 #, c-format msgid "unable to deflate appended object (%d)" -msgstr "" +msgstr "não é possÃvel compactar objeto acrescentado (%d)" -#: builtin/index-pack.c:866 +#: builtin/index-pack.c:1367 #, c-format msgid "local object %s is corrupt" -msgstr "" +msgstr "objeto local %s corrompido" -#: builtin/index-pack.c:890 +#: builtin/index-pack.c:1391 msgid "error while closing pack file" -msgstr "" +msgstr "erro ao fechar ficheiro de pacote" -#: builtin/index-pack.c:903 +#: builtin/index-pack.c:1404 #, c-format msgid "cannot write keep file '%s'" -msgstr "não é possivel escrever o fichero kepp '%s'" +msgstr "não é possÃvel escrever o ficheiro de conservação '%s'" -#: builtin/index-pack.c:911 +#: builtin/index-pack.c:1412 #, c-format msgid "cannot close written keep file '%s'" -msgstr "Não é possivel fechar o fichero escrito '%s'" +msgstr "não é possÃvel fechar o ficheiro de conservação '%s' escrito" -#: builtin/index-pack.c:924 +#: builtin/index-pack.c:1425 msgid "cannot store pack file" -msgstr "Não é possivel guardar o fichero pack" +msgstr "não é possÃvel guardar ficheiro de pacote" -#: builtin/index-pack.c:935 +#: builtin/index-pack.c:1436 msgid "cannot store index file" -msgstr "Não é possivel guardar fichero index" +msgstr "não é possÃvel guardar o ficheiro Ãndice" + +#: builtin/index-pack.c:1469 +#, c-format +msgid "bad pack.indexversion=%<PRIu32>" +msgstr "pack.indexversion=%<PRIu32> incorreto" + +#: builtin/index-pack.c:1479 builtin/index-pack.c:1664 +#, c-format +msgid "no threads support, ignoring %s" +msgstr "sem suporte de threads, %s ignorado" -#: builtin/index-pack.c:1024 +#: builtin/index-pack.c:1538 #, c-format msgid "Cannot open existing pack file '%s'" -msgstr "Não é possivel abrir o existente ficheiro pack %s" +msgstr "Não é possÃvel abrir o ficheiro de pacote '%s' existente" -#: builtin/index-pack.c:1026 +#: builtin/index-pack.c:1540 #, c-format msgid "Cannot open existing pack idx file for '%s'" -msgstr "Não é possivel abrir o ficheiro 'pack idx' para '%s'" +msgstr "Não é possÃvel abrir o ficheiro de Ãndice do pacote existente de '%s'" -#: builtin/index-pack.c:1073 +#: builtin/index-pack.c:1587 #, c-format msgid "non delta: %d object" msgid_plural "non delta: %d objects" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%d objeto não delta" +msgstr[1] "%d objetos não delta" -#: builtin/index-pack.c:1080 +#: builtin/index-pack.c:1594 #, c-format msgid "chain length = %d: %lu object" msgid_plural "chain length = %d: %lu objects" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "comprimento de cadeia = %d: %lu objeto" +msgstr[1] "comprimento de cadeia = %d: %lu objetos" -#: builtin/index-pack.c:1107 +#: builtin/index-pack.c:1624 msgid "Cannot come back to cwd" -msgstr "" +msgstr "Não é possÃvel voltar ao diretório de trabalho atual" -#: builtin/index-pack.c:1140 -#: builtin/index-pack.c:1143 -#: builtin/index-pack.c:1155 -#: builtin/index-pack.c:1159 +#: 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 "inválido %s" +msgstr "%s incorreto" -#: builtin/index-pack.c:1173 +#: builtin/index-pack.c:1709 msgid "--fix-thin cannot be used without --stdin" -msgstr "" +msgstr "--fix-thin não pode ser usado sem --stdin" -#: builtin/index-pack.c:1177 -#: builtin/index-pack.c:1187 +#: builtin/index-pack.c:1713 builtin/index-pack.c:1722 #, c-format msgid "packfile name '%s' does not end with '.pack'" -msgstr "" +msgstr "o nome do ficheiro de pacote '%s' não termina em '.pack'" -#: builtin/index-pack.c:1196 +#: builtin/index-pack.c:1730 msgid "--verify with no packfile name given" -msgstr "" +msgstr "--verify sem nome do ficheiro de pacote indicado" -#: builtin/index-pack.c:1220 -msgid "confusion beyond insanity" -msgstr "" - -#: builtin/index-pack.c:1239 -#, c-format -msgid "pack has %d unresolved delta" -msgid_plural "pack has %d unresolved deltas" -msgstr[0] "" -msgstr[1] "" - -#: builtin/init-db.c:35 -#, c-format -msgid "Could not make %s writable by group" -msgstr "" - -#: builtin/init-db.c:62 -#, c-format -msgid "insanely long template name %s" -msgstr "" - -#: builtin/init-db.c:67 +#: builtin/init-db.c:55 #, c-format msgid "cannot stat '%s'" -msgstr "" +msgstr "não é possÃvel invocar stat sobre '%s'" -#: builtin/init-db.c:73 +#: builtin/init-db.c:61 #, c-format msgid "cannot stat template '%s'" -msgstr "" +msgstr "não é possÃvel invocar stat sobre o modelo '%s'" -#: builtin/init-db.c:80 +#: builtin/init-db.c:66 #, c-format msgid "cannot opendir '%s'" -msgstr "" +msgstr "não é possÃvel abrir (opendir) '%s'" -#: builtin/init-db.c:97 +#: builtin/init-db.c:77 #, c-format msgid "cannot readlink '%s'" -msgstr "" +msgstr "não é possÃvel ler (readlink) '%s'" -#: builtin/init-db.c:99 -#, c-format -msgid "insanely long symlink %s" -msgstr "" - -#: builtin/init-db.c:102 +#: builtin/init-db.c:79 #, c-format msgid "cannot symlink '%s' '%s'" -msgstr "" +msgstr "não é possÃvel criar a ligação simbólica '%s' '%s'" -#: builtin/init-db.c:106 +#: builtin/init-db.c:85 #, c-format msgid "cannot copy '%s' to '%s'" -msgstr "" +msgstr "não é possÃvel copiar '%s' para '%s'" -#: builtin/init-db.c:110 +#: builtin/init-db.c:89 #, c-format msgid "ignoring template %s" -msgstr "" +msgstr "modelo %s ignorado" -#: builtin/init-db.c:133 -#, c-format -msgid "insanely long template path %s" -msgstr "" - -#: builtin/init-db.c:141 +#: builtin/init-db.c:118 #, c-format msgid "templates not found %s" -msgstr "" +msgstr "modelos não encontrados em %s" -#: builtin/init-db.c:154 +#: builtin/init-db.c:131 #, c-format msgid "not copying templates of a wrong format version %d from '%s'" msgstr "" +"os modelos com versão de formato %d incorreta não foram copiados de '%s'" -#: builtin/init-db.c:192 -#, c-format -msgid "insane git directory %s" -msgstr "" - -#: builtin/init-db.c:322 -#: builtin/init-db.c:325 +#: builtin/init-db.c:309 builtin/init-db.c:312 #, c-format msgid "%s already exists" msgstr "%s já existe" -#: builtin/init-db.c:354 +#: builtin/init-db.c:340 #, c-format msgid "unable to handle file type %d" -msgstr "" +msgstr "não foi possÃvel processar o tipo de ficheiro %d" -#: builtin/init-db.c:357 +#: builtin/init-db.c:343 #, c-format msgid "unable to move %s to %s" -msgstr "" - -#: builtin/init-db.c:362 -#, c-format -msgid "Could not create git link %s" -msgstr "" +msgstr "não foi possÃvel mover %s para %s" -#. -#. * TRANSLATORS: The first '%s' is either "Reinitialized -#. * existing" or "Initialized empty", the second " shared" or -#. * "", and the last '%s%s' is the verbatim directory name. -#. -#: builtin/init-db.c:419 +#. TRANSLATORS: The first '%s' is either "Reinitialized +#. existing" or "Initialized empty", the second " shared" or +#. "", and the last '%s%s' is the verbatim directory name. +#: builtin/init-db.c:399 #, c-format msgid "%s%s Git repository in %s%s\n" -msgstr "" +msgstr "Repositório Git %s%s em %s%s\n" -#: builtin/init-db.c:420 +#: builtin/init-db.c:400 msgid "Reinitialized existing" -msgstr "" +msgstr "existente reinicializado" -#: builtin/init-db.c:420 +#: builtin/init-db.c:400 msgid "Initialized empty" -msgstr "Inicializada vazio" +msgstr "vazio inicializado" -#: builtin/init-db.c:421 +#: builtin/init-db.c:401 msgid " shared" msgstr " partilhado" -#: builtin/init-db.c:440 -msgid "cannot tell cwd" +#: builtin/init-db.c:448 +msgid "" +"git init [-q | --quiet] [--bare] [--template=<template-directory>] [--" +"shared[=<permissions>]] [<directory>]" +msgstr "" +"git init [-q | --quiet] [--bare] [--template=<diretório-modelo>] [--" +"shared[=<permissões>]] [<diretório>]" + +#: builtin/init-db.c:471 +msgid "permissions" +msgstr "permissões" + +#: builtin/init-db.c:472 +msgid "specify that the git repository is to be shared amongst several users" msgstr "" +"especificar que o repositório git será partilhado por vários utilizadores" -#: builtin/init-db.c:521 -#: builtin/init-db.c:528 +#: builtin/init-db.c:506 builtin/init-db.c:511 #, c-format msgid "cannot mkdir %s" -msgstr "" +msgstr "não é possÃvel criar o diretório %s" -#: builtin/init-db.c:532 +#: builtin/init-db.c:515 #, c-format msgid "cannot chdir to %s" -msgstr "" +msgstr "não é possÃvel mudar para o diretório %s" -#: builtin/init-db.c:554 +#: builtin/init-db.c:536 #, c-format -msgid "%s (or --work-tree=<directory>) not allowed without specifying %s (or --git-dir=<directory>)" -msgstr "" - -#: builtin/init-db.c:578 -msgid "Cannot access current working directory" +msgid "" +"%s (or --work-tree=<directory>) not allowed without specifying %s (or --git-" +"dir=<directory>)" msgstr "" +"%s (ou --work-tree=<diretório>) não é permitido sem especificar %s (ou --git-" +"dir=<diretório>)" -#: builtin/init-db.c:585 +#: builtin/init-db.c:564 #, c-format msgid "Cannot access work tree '%s'" +msgstr "Não é possÃvel aceder à árvore de trabalho '%s'" + +#: builtin/interpret-trailers.c:15 +msgid "" +"git interpret-trailers [--in-place] [--trim-empty] [(--trailer " +"<token>[(=|:)<value>])...] [<file>...]" msgstr "" +"git interpret-trailers [--in-place] [--trim-empty] [(--trailer " +"<token>[(=|:)<valor>])...] [<ficheiro>...]" + +#: builtin/interpret-trailers.c:26 +msgid "edit files in place" +msgstr "editar ficheiros no local" + +#: builtin/interpret-trailers.c:27 +msgid "trim empty trailers" +msgstr "cortar terminadores vazios" + +#: builtin/interpret-trailers.c:28 +msgid "trailer" +msgstr "terminador" + +#: builtin/interpret-trailers.c:29 +msgid "trailer(s) to add" +msgstr "terminadores a adicionar" + +#: builtin/interpret-trailers.c:42 +msgid "no input file given for in-place editing" +msgstr "nenhum ficheiro de entrada fornecido para edição no local" -#: builtin/log.c:188 +#: builtin/log.c:43 +msgid "git log [<options>] [<revision-range>] [[--] <path>...]" +msgstr "git log [<opções>] [<intervalo-de-revisões>] [[--] <caminho>...]" + +#: builtin/log.c:44 +msgid "git show [<options>] <object>..." +msgstr "git show [<opções>] <objeto>..." + +#: builtin/log.c:83 +#, c-format +msgid "invalid --decorate option: %s" +msgstr "opção --decorate inválida: %s" + +#: builtin/log.c:131 +msgid "suppress diff output" +msgstr "suprimir saÃda do diff" + +#: builtin/log.c:132 +msgid "show source" +msgstr "mostrar origem" + +#: builtin/log.c:133 +msgid "Use mail map file" +msgstr "usar ficheiro de mapeamento de correio" + +#: builtin/log.c:134 +msgid "decorate options" +msgstr "opções de decoração" + +#: builtin/log.c:137 +msgid "Process line range n,m in file, counting from 1" +msgstr "processar intervalo de linhas n,m, a cantar a partir de 1" + +#: builtin/log.c:233 #, c-format msgid "Final output: %d %s\n" -msgstr "" +msgstr "Resultado final: %d %s\n" + +#: builtin/log.c:465 +#, c-format +msgid "git show %s: bad file" +msgstr "git show %s: ficheiro incorreto" -#: builtin/log.c:401 -#: builtin/log.c:489 +#: builtin/log.c:479 builtin/log.c:572 #, c-format msgid "Could not read object %s" -msgstr "" +msgstr "Não foi possÃvel ler o objeto %s" -#: builtin/log.c:513 +#: builtin/log.c:596 #, c-format msgid "Unknown type: %d" msgstr "Tipo desconhecido: %d" -#: builtin/log.c:602 +#: builtin/log.c:715 msgid "format.headers without value" -msgstr "" +msgstr "format.headers sem valor" -#: builtin/log.c:675 +#: builtin/log.c:801 msgid "name of output directory is too long" -msgstr "nome do diretório de saÃda é demasiado longo" +msgstr "o nome do diretório de saÃda é demasiado longo" -#: builtin/log.c:686 +#: builtin/log.c:816 #, c-format msgid "Cannot open patch file %s" -msgstr "Não é possivel abrir o ficheiro patch %s" +msgstr "Não é possÃvel abrir o ficheiro de patch %s" -#: builtin/log.c:700 +#: builtin/log.c:830 msgid "Need exactly one range." -msgstr "Necessita de exatamente um intervalo." +msgstr "É necessário exatamente um intervalo." -#: builtin/log.c:708 +#: builtin/log.c:840 msgid "Not a range." msgstr "Não é um intervalo." -#: builtin/log.c:745 -msgid "Could not extract email from committer identity." -msgstr "Não foi possÃvel extrair a identidade do committer do e-mail." - -#: builtin/log.c:791 +#: builtin/log.c:946 msgid "Cover letter needs email format" -msgstr "Carta de apresentação necessita um modelo de e-mail" +msgstr "A carta de apresentação precisa de um formato de e-mail" -#: builtin/log.c:885 +#: builtin/log.c:1025 #, c-format msgid "insane in-reply-to: %s" -msgstr "" +msgstr "in-reply-to incorreto: %s" -#: builtin/log.c:958 +#: builtin/log.c:1053 +msgid "git format-patch [<options>] [<since> | <revision-range>]" +msgstr "git format-patch [<opções>] [<desde> | <intervalo-de-revisões>]" + +#: builtin/log.c:1098 msgid "Two output directories?" msgstr "Dois diretórios de saÃda?" -#: builtin/log.c:1179 -#, c-format -msgid "bogus committer info %s" -msgstr "" +#: builtin/log.c:1214 +msgid "use [PATCH n/m] even with a single patch" +msgstr "usar [PATCH n/m] mesmo com um único patch" -#: builtin/log.c:1224 -msgid "-n and -k are mutually exclusive." +#: builtin/log.c:1217 +msgid "use [PATCH] even with multiple patches" +msgstr "usar [PATCH] mesmo com múltiplos patches" + +#: builtin/log.c:1221 +msgid "print patches to standard out" +msgstr "imprimir patches para a saÃda padrão" + +#: builtin/log.c:1223 +msgid "generate a cover letter" +msgstr "gerar uma carta de apresentação" + +#: builtin/log.c:1225 +msgid "use simple number sequence for output file names" msgstr "" +"usar uma sequência de números simples para denominar os ficheiros gerados" #: builtin/log.c:1226 -msgid "--subject-prefix and -k are mutually exclusive." -msgstr "" +msgid "sfx" +msgstr "sfx" -#: builtin/log.c:1234 -msgid "--name-only does not make sense" -msgstr "" +#: builtin/log.c:1227 +msgid "use <sfx> instead of '.patch'" +msgstr "usar <sfx> em vez de '.patch'" + +#: builtin/log.c:1229 +msgid "start numbering patches at <n> instead of 1" +msgstr "começar a numerar os patches em <n> em vez de 1" + +#: builtin/log.c:1231 +msgid "mark the series as Nth re-roll" +msgstr "marcar a série como a n-ésima reiteração" + +#: builtin/log.c:1233 +msgid "Use [<prefix>] instead of [PATCH]" +msgstr "usar [<prefixo>] em vez de [PATCH]" #: builtin/log.c:1236 -msgid "--name-status does not make sense" +msgid "store resulting files in <dir>" +msgstr "guardar os ficheiros resultantes em <dir>" + +#: builtin/log.c:1239 +msgid "don't strip/add [PATCH]" +msgstr "não tirar/inserir [PATCH]" + +#: builtin/log.c:1242 +msgid "don't output binary diffs" +msgstr "não gerar diffs binários" + +#: builtin/log.c:1244 +msgid "output all-zero hash in From header" +msgstr "preencher o cabeçalho From com hash de zeros" + +#: builtin/log.c:1246 +msgid "don't include a patch matching a commit upstream" +msgstr "não incluir um patch que coincida com um commit a montante" + +#: builtin/log.c:1248 +msgid "show patch format instead of default (patch + stat)" msgstr "" +"mostrar no formato de patch em vez de no formato por omissão (patch + stat)" -#: builtin/log.c:1238 -msgid "--check does not make sense" +#: builtin/log.c:1250 +msgid "Messaging" +msgstr "Mensagem" + +#: builtin/log.c:1251 +msgid "header" +msgstr "cabeçalho" + +#: builtin/log.c:1252 +msgid "add email header" +msgstr "adicionar cabeçalho de e-mail" + +#: builtin/log.c:1253 builtin/log.c:1255 +msgid "email" +msgstr "e-mail" + +#: builtin/log.c:1253 +msgid "add To: header" +msgstr "adicionar cabeçalho To:" + +#: builtin/log.c:1255 +msgid "add Cc: header" +msgstr "adicionar cabeçalho Cc:" + +#: builtin/log.c:1257 +msgid "ident" +msgstr "identidade" + +#: builtin/log.c:1258 +msgid "set From address to <ident> (or committer ident if absent)" msgstr "" +"definir o endereço From como <identidade> (ou como identidade do committer " +"se não indicado)" + +#: builtin/log.c:1260 +msgid "message-id" +msgstr "id-mensagem" #: builtin/log.c:1261 +msgid "make first mail a reply to <message-id>" +msgstr "usar o primeiro email para responder a <id-mensagem>" + +#: builtin/log.c:1262 builtin/log.c:1265 +msgid "boundary" +msgstr "limite" + +#: builtin/log.c:1263 +msgid "attach the patch" +msgstr "anexar o patch" + +#: builtin/log.c:1266 +msgid "inline the patch" +msgstr "incorporar o patch" + +#: builtin/log.c:1270 +msgid "enable message threading, styles: shallow, deep" +msgstr "ativar mensagens por tópicos, estilos: shallow (raso), deep (profundo)" + +#: builtin/log.c:1272 +msgid "signature" +msgstr "assinatura" + +#: builtin/log.c:1273 +msgid "add a signature" +msgstr "adicionar uma assinatura" + +#: builtin/log.c:1275 +msgid "add a signature from a file" +msgstr "adicionar uma assinatura de um ficheiro" + +#: builtin/log.c:1276 +msgid "don't print the patch filenames" +msgstr "não imprimir os nomes dos ficheiros de patch" + +#: builtin/log.c:1365 +msgid "-n and -k are mutually exclusive." +msgstr "-n e -k são mutuamente exclusivos." + +#: builtin/log.c:1367 +msgid "--subject-prefix and -k are mutually exclusive." +msgstr "--subject-prefix e -k são mutuamente exclusivos." + +#: builtin/log.c:1375 +msgid "--name-only does not make sense" +msgstr "--name-only não faz sentido" + +#: builtin/log.c:1377 +msgid "--name-status does not make sense" +msgstr "--name-status não faz sentido" + +#: builtin/log.c:1379 +msgid "--check does not make sense" +msgstr "--check não faz sentido" + +#: builtin/log.c:1407 msgid "standard output, or directory, which one?" msgstr "saÃda padrão, ou diretório, qual deles?" -#: builtin/log.c:1263 +#: builtin/log.c:1409 #, c-format msgid "Could not create directory '%s'" -msgstr "" +msgstr "Não foi possÃvel criar o diretório '%s'" -#: builtin/log.c:1416 +#: builtin/log.c:1506 +#, c-format +msgid "unable to read signature file '%s'" +msgstr "não é possÃvel ler o ficheiro de assinatura '%s'" + +#: builtin/log.c:1569 msgid "Failed to create output files" -msgstr "Falhou ao criar ficheiros de saÃda" +msgstr "Falha ao criar os ficheiros de saÃda" + +#: builtin/log.c:1617 +msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]" +msgstr "git cherry [-v] [<ramo-a-montante> [<head> [<limite>]]]" -#: builtin/log.c:1520 +#: builtin/log.c:1671 #, c-format -msgid "Could not find a tracked remote branch, please specify <upstream> manually.\n" +msgid "" +"Could not find a tracked remote branch, please specify <upstream> manually.\n" msgstr "" +"O ramo remoto seguido não foi encontrado, especifique <ramo-a-montante> " +"manualmente.\n" -#: builtin/log.c:1536 -#: builtin/log.c:1538 -#: builtin/log.c:1550 +#: builtin/log.c:1682 builtin/log.c:1684 builtin/log.c:1696 #, c-format msgid "Unknown commit %s" msgstr "Commit desconhecido %s" -#: builtin/merge.c:90 -msgid "switch `m' requires a value" +#: builtin/ls-files.c:378 +msgid "git ls-files [<options>] [<file>...]" +msgstr "git ls-files [<opções>] [<ficheiro>...]" + +#: builtin/ls-files.c:427 +msgid "identify the file status with tags" +msgstr "identificar o estado do ficheiro com tags" + +#: builtin/ls-files.c:429 +msgid "use lowercase letters for 'assume unchanged' files" +msgstr "" +"usar letras minúsculas para ficheiros 'assumido não alterado' ('assume " +"unchanged')" + +#: builtin/ls-files.c:431 +msgid "show cached files in the output (default)" +msgstr "mostrar ficheiros em cache na saÃda" + +#: builtin/ls-files.c:433 +msgid "show deleted files in the output" +msgstr "mostrar ficheiros eliminados na saÃda" + +#: builtin/ls-files.c:435 +msgid "show modified files in the output" +msgstr "mostrar ficheiros modificados na saÃda" + +#: builtin/ls-files.c:437 +msgid "show other files in the output" +msgstr "mostrar outros ficheiros na saÃda" + +#: builtin/ls-files.c:439 +msgid "show ignored files in the output" +msgstr "mostrar ficheiros ignorados na saÃda" + +#: builtin/ls-files.c:442 +msgid "show staged contents' object name in the output" +msgstr "mostrar nome de objetos com conteúdo preparado, na saÃda" + +#: builtin/ls-files.c:444 +msgid "show files on the filesystem that need to be removed" +msgstr "" +"mostrar ficheiros no sistema de ficheiros que precisam de ser removidos" + +#: builtin/ls-files.c:446 +msgid "show 'other' directories' names only" +msgstr "mostrar nomes de diretórios 'other' (outro)" + +#: builtin/ls-files.c:448 +msgid "show line endings of files" +msgstr "mostrar finais de linha dos ficheiros" + +#: builtin/ls-files.c:450 +msgid "don't show empty directories" +msgstr "não mostrar diretórios vazios" + +#: builtin/ls-files.c:453 +msgid "show unmerged files in the output" +msgstr "mostrar ficheiros com versões não conciliadas, na saÃda" + +#: builtin/ls-files.c:455 +msgid "show resolve-undo information" +msgstr "mostrar informação de resolver-anular" + +#: builtin/ls-files.c:457 +msgid "skip files matching pattern" +msgstr "ignorar ficheiros que correspondam ao padrão" + +#: builtin/ls-files.c:460 +msgid "exclude patterns are read from <file>" +msgstr "ler padrões de exclusão do <ficheiro>" + +#: builtin/ls-files.c:463 +msgid "read additional per-directory exclude patterns in <file>" +msgstr "ler padrões de exclusão por diretório do <ficheiro>" + +#: builtin/ls-files.c:465 +msgid "add the standard git exclusions" +msgstr "incluir as exclusões standard do git" + +#: builtin/ls-files.c:468 +msgid "make the output relative to the project top directory" +msgstr "mostrar os caminhos relativamente ao diretório superior do projeto" + +#: builtin/ls-files.c:471 +msgid "if any <file> is not in the index, treat this as an error" +msgstr "se um <ficheiro> não estiver no Ãndice, tratar como erro" + +#: builtin/ls-files.c:472 +msgid "tree-ish" +msgstr "árvore" + +#: builtin/ls-files.c:473 +msgid "pretend that paths removed since <tree-ish> are still present" +msgstr "fingir que os caminhos removidos desde <árvore> ainda estão presentes" + +#: builtin/ls-files.c:475 +msgid "show debugging data" +msgstr "mostrar dados de depuração" + +#: 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] [<repositório> [<referências>...]]" + +#: builtin/ls-remote.c:50 +msgid "do not print remote URL" +msgstr "não imprimir URL remoto" + +#: 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 "caminho para git-upload-pack no servidor remoto" + +#: builtin/ls-remote.c:56 +msgid "limit to tags" +msgstr "restringir-se a tags" + +#: builtin/ls-remote.c:57 +msgid "limit to heads" +msgstr "restringir-se a cabeças" + +#: builtin/ls-remote.c:58 +msgid "do not show peeled tags" +msgstr "não mostrar tags descascadas" + +#: builtin/ls-remote.c:60 +msgid "take url.<base>.insteadOf into account" +msgstr "ter url.<base>.insteadOf em conta" + +#: builtin/ls-remote.c:62 +msgid "exit with exit code 2 if no matching refs are found" +msgstr "terminar com código de saÃda 2 se não forem encontradas referências" + +#: builtin/ls-remote.c:64 +msgid "show underlying ref in addition to the object pointed by it" +msgstr "mostrar a referência subjacente em adição ao objeto por ela apontado" + +#: builtin/ls-tree.c:28 +msgid "git ls-tree [<options>] <tree-ish> [<path>...]" +msgstr "git ls-tree [<opções>] <árvore> [<caminho>...]" + +#: builtin/ls-tree.c:128 +msgid "only show trees" +msgstr "mostrar apenas árvores" + +#: builtin/ls-tree.c:130 +msgid "recurse into subtrees" +msgstr "percorrer as subárvores recursivamente" + +#: builtin/ls-tree.c:132 +msgid "show trees when recursing" +msgstr "mostrar árvores ao percorrer" -#: builtin/merge.c:127 +#: builtin/ls-tree.c:135 +msgid "terminate entries with NUL byte" +msgstr "terminar entradas com o byte NUL" + +#: builtin/ls-tree.c:136 +msgid "include object size" +msgstr "incluir dimensão dos objetos" + +#: builtin/ls-tree.c:138 builtin/ls-tree.c:140 +msgid "list only filenames" +msgstr "listar apenas os nomes de ficheiro" + +#: builtin/ls-tree.c:143 +msgid "use full path names" +msgstr "usar nomes de caminho completos" + +#: builtin/ls-tree.c:145 +msgid "list entire tree; not just current directory (implies --full-name)" +msgstr "" +"mostrar a árvore completa; não apenas o diretório atual (implica --full-name)" + +#: builtin/merge.c:45 +msgid "git merge [<options>] [<commit>...]" +msgstr "git merge [<opções>] [<commit>...]" + +#: builtin/merge.c:46 +msgid "git merge [<options>] <msg> HEAD <commit>" +msgstr "git merge [<opções>] <msg> HEAD <commit>" + +#: builtin/merge.c:47 +msgid "git merge --abort" +msgstr "git merge --abort" + +#: builtin/merge.c:100 +msgid "switch `m' requires a value" +msgstr "a opção 'm' requer um valor" + +#: builtin/merge.c:137 #, c-format msgid "Could not find merge strategy '%s'.\n" -msgstr "" +msgstr "Estratégia de merge '%s' não encontrada.\n" -#: builtin/merge.c:128 +#: builtin/merge.c:138 #, c-format msgid "Available strategies are:" -msgstr "As estratégias disponÃveis são:" +msgstr "Estratégias disponÃveis:" -#: builtin/merge.c:133 +#: builtin/merge.c:143 #, c-format msgid "Available custom strategies are:" -msgstr "Estratégias personalizadas disponÃveis são:" +msgstr "Estratégias personalizadas disponÃveis:" -#: builtin/merge.c:240 -msgid "could not run stash." +#: builtin/merge.c:193 builtin/pull.c:123 +msgid "do not show a diffstat at the end of the merge" +msgstr "não apresentar um diffstat no final do merge" + +#: builtin/merge.c:196 builtin/pull.c:126 +msgid "show a diffstat at the end of the merge" +msgstr "mostrar um diffstat no final do merge" + +#: builtin/merge.c:197 builtin/pull.c:129 +msgid "(synonym to --stat)" +msgstr "(sinónimo de --stat)" + +#: builtin/merge.c:199 builtin/pull.c:132 +msgid "add (at most <n>) entries from shortlog to merge commit message" msgstr "" +"adicionar (no máximo <n>) entradas do shortlog à mensagem de commit do merge" + +#: builtin/merge.c:202 builtin/pull.c:135 +msgid "create a single commit instead of doing a merge" +msgstr "criar um único commit em vez de realizar um merge" + +#: builtin/merge.c:204 builtin/pull.c:138 +msgid "perform a commit if the merge succeeds (default)" +msgstr "realizar um commit se o merge for bem sucedido (predefinição)" + +#: builtin/merge.c:206 builtin/pull.c:141 +msgid "edit message before committing" +msgstr "editar a mensagem antes de realizar commit" + +#: builtin/merge.c:207 +msgid "allow fast-forward (default)" +msgstr "permitir avanço rápido (predefinição)" + +#: builtin/merge.c:209 builtin/pull.c:147 +msgid "abort if fast-forward is not possible" +msgstr "abortar se não é possÃvel efetuar avanço rápido" + +#: builtin/merge.c:213 +msgid "Verify that the named commit has a valid GPG signature" +msgstr "verificar se o commit tem uma assinatura GPG válida" + +#: builtin/merge.c:214 builtin/notes.c:770 builtin/pull.c:152 +#: builtin/revert.c:89 +msgid "strategy" +msgstr "estratégia" + +#: builtin/merge.c:215 builtin/pull.c:153 +msgid "merge strategy to use" +msgstr "estratégia de merge a usar" + +#: builtin/merge.c:216 builtin/pull.c:156 +msgid "option=value" +msgstr "opção=valor" -#: builtin/merge.c:245 +#: builtin/merge.c:217 builtin/pull.c:157 +msgid "option for selected merge strategy" +msgstr "opções para a estratégia de merge selecionada" + +#: builtin/merge.c:219 +msgid "merge commit message (for a non-fast-forward merge)" +msgstr "mensagem de commit (de merge não suscetÃvel a avanço rápido)" + +#: builtin/merge.c:223 +msgid "abort the current in-progress merge" +msgstr "abortar merge em curso" + +#: builtin/merge.c:251 +msgid "could not run stash." +msgstr "não foi possÃvel executar o comando stash." + +#: builtin/merge.c:256 msgid "stash failed" -msgstr "falhou o stash" +msgstr "falha ao executar o comando stash" -#: builtin/merge.c:250 +#: builtin/merge.c:261 #, c-format msgid "not a valid object: %s" -msgstr "" +msgstr "nome de objeto inválido: %s" -#: builtin/merge.c:269 -#: builtin/merge.c:286 +#: builtin/merge.c:280 builtin/merge.c:297 msgid "read-tree failed" -msgstr "" +msgstr "falha ao executar o comando read-tree" -#: builtin/merge.c:316 +#: builtin/merge.c:327 msgid " (nothing to squash)" -msgstr " (nada para squash)" +msgstr " (não há nada para esmagar)" -#: builtin/merge.c:329 +#: builtin/merge.c:340 #, c-format msgid "Squash commit -- not updating HEAD\n" -msgstr "" +msgstr "Commit esmagado -- HEAD não atualizada\n" + +#: 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 "Não foi possÃvel escrever em '%s'" -#: builtin/merge.c:361 +#: builtin/merge.c:372 msgid "Writing SQUASH_MSG" -msgstr "Escrevendo SQUASH_MSG" +msgstr "A escrever SQUASH_MSG" -#: builtin/merge.c:363 +#: builtin/merge.c:374 msgid "Finishing SQUASH_MSG" -msgstr "Terminando SQUASH_MSG" +msgstr "A concluir SQUASH_MSG" -#: builtin/merge.c:386 +#: builtin/merge.c:397 #, c-format msgid "No merge message -- not updating HEAD\n" -msgstr "" +msgstr "Sem mensagem de merge -- HEAD não atualizada\n" -#: builtin/merge.c:437 +#: builtin/merge.c:448 #, c-format msgid "'%s' does not point to a commit" -msgstr "" +msgstr "'%s' não aponta para um commit" -#: builtin/merge.c:536 +#: builtin/merge.c:538 #, c-format msgid "Bad branch.%s.mergeoptions string: %s" -msgstr "" - -#: builtin/merge.c:629 -msgid "git write-tree failed to write a tree" -msgstr "" - -#: builtin/merge.c:679 -msgid "failed to read the cache" -msgstr "" - -#: builtin/merge.c:697 -msgid "Unable to write index." -msgstr "" +msgstr "Valor de branch.%s.mergeoptions incorreto: %s" -#: builtin/merge.c:710 +#: builtin/merge.c:657 msgid "Not handling anything other than two heads merge." -msgstr "" +msgstr "A processar exclusivamente merge de duas cabeças." -#: builtin/merge.c:724 +#: builtin/merge.c:671 #, c-format msgid "Unknown option for merge-recursive: -X%s" -msgstr "" +msgstr "Opção desconhecida de merge-recursive: -X%s" -#: builtin/merge.c:738 +#: builtin/merge.c:684 #, c-format msgid "unable to write %s" -msgstr "" +msgstr "não foi possÃvel escrever %s" -#: builtin/merge.c:877 +#: builtin/merge.c:773 #, c-format msgid "Could not read from '%s'" -msgstr "" +msgstr "Não foi possÃvel ler '%s'" -#: builtin/merge.c:886 +#: builtin/merge.c:782 #, c-format msgid "Not committing merge; use 'git commit' to complete the merge.\n" -msgstr "Não commitando um merge; usa 'git commit' para completar o merge.\n" +msgstr "" +"Commit do merge não realizado; use 'git commit' para concluir o merge.\n" -#: builtin/merge.c:892 +#: builtin/merge.c:788 +#, c-format msgid "" "Please enter a commit message to explain why this merge is necessary,\n" "especially if it merges an updated upstream into a topic branch.\n" "\n" -"Lines starting with '#' will be ignored, and an empty message aborts\n" +"Lines starting with '%c' will be ignored, and an empty message aborts\n" "the commit.\n" msgstr "" +"Introduza uma mensagem de commit, explicando por que este merge é " +"necessário,\n" +"sobretudo se incorpora um ramo a montante atualizado, com um ramo tópico.\n" +"\n" +"Linhas começadas com '%c' são ignoradas, e uma mensagem vazia\n" +"aborta o commit.\n" -#: builtin/merge.c:916 +#: builtin/merge.c:812 msgid "Empty commit message." msgstr "Mensagem de commit vazia." -#: builtin/merge.c:928 +#: builtin/merge.c:824 #, c-format msgid "Wonderful.\n" -msgstr "Fastastico.\n" +msgstr "Maravilhoso.\n" -#: builtin/merge.c:993 +#: builtin/merge.c:879 #, c-format msgid "Automatic merge failed; fix conflicts and then commit the result.\n" msgstr "" +"Falha ao realizar merge automático; corrija os conflitos e faça commit do " +"resultado.\n" -#: builtin/merge.c:1009 +#: builtin/merge.c:895 #, c-format msgid "'%s' is not a commit" msgstr "'%s' não é um commit" -#: builtin/merge.c:1050 +#: builtin/merge.c:936 msgid "No current branch." -msgstr "Nenhuma rama actual" +msgstr "Nenhum ramo atual." -#: builtin/merge.c:1052 +#: builtin/merge.c:938 msgid "No remote for the current branch." -msgstr "" +msgstr "Não há um remoto para o ramo atual." -#: builtin/merge.c:1054 +#: builtin/merge.c:940 msgid "No default upstream defined for the current branch." -msgstr "" +msgstr "Não está definido nenhum ramo a montante para o ramo atual." -#: builtin/merge.c:1059 +#: builtin/merge.c:945 #, c-format -msgid "No remote tracking branch for %s from %s" -msgstr "" +msgid "No remote-tracking branch for %s from %s" +msgstr "Nenhum ramo remoto seguido por %s de %s" -#: builtin/merge.c:1146 -#: builtin/merge.c:1303 +#: builtin/merge.c:1080 #, c-format -msgid "%s - not something we can merge" -msgstr "" +msgid "could not close '%s'" +msgstr "não foi possÃvel fechar '%s'" -#: builtin/merge.c:1214 +#: builtin/merge.c:1207 msgid "There is no merge to abort (MERGE_HEAD missing)." -msgstr "" +msgstr "Não há nenhum merge para abortar (MERGE_HEAD não presente)." -#: builtin/merge.c:1230 -#: git-pull.sh:31 +#: builtin/merge.c:1223 msgid "" "You have not concluded your merge (MERGE_HEAD exists).\n" -"Please, commit your changes before you can merge." -msgstr "" - -#: builtin/merge.c:1233 -#: git-pull.sh:34 -msgid "You have not concluded your merge (MERGE_HEAD exists)." +"Please, commit your changes before you merge." msgstr "" +"Merge não concluÃdo (MERGE_HEAD presente).\n" +"Faça commit das suas alterações antes de realizar merge." -#: builtin/merge.c:1237 +#: builtin/merge.c:1230 msgid "" "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n" -"Please, commit your changes before you can merge." +"Please, commit your changes before you merge." msgstr "" +"Cherry-pick não concluÃdo (CHERRY_PICK_HEAD presente).\n" +"Faça commit das suas alterações antes de realizar merge." -#: builtin/merge.c:1240 +#: builtin/merge.c:1233 msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)." -msgstr "" +msgstr "Cherry-pick não concluÃdo (CHERRY_PICK_HEAD presente)." -#: builtin/merge.c:1249 +#: builtin/merge.c:1242 msgid "You cannot combine --squash with --no-ff." -msgstr "" +msgstr "Não é possÃvel combinar --squash e --no-ff." -#: builtin/merge.c:1254 -msgid "You cannot combine --no-ff with --ff-only." -msgstr "" - -#: builtin/merge.c:1261 +#: builtin/merge.c:1250 msgid "No commit specified and merge.defaultToUpstream not set." +msgstr "Nenhum commit especificado e merge.defaultToUpstream não definido." + +#: builtin/merge.c:1267 +msgid "Squash commit into empty head not supported yet" +msgstr "Esmagar um commit numa cabeça vazia ainda não é suportado" + +#: builtin/merge.c:1269 +msgid "Non-fast-forward commit does not make sense into an empty head" msgstr "" +"Não faz sentido efetuar commit não suscetÃvel a avanço rápido, numa cabeça " +"vazia" -#: builtin/merge.c:1293 +#: builtin/merge.c:1275 +#, c-format +msgid "%s - not something we can merge" +msgstr "%s - não é algo suscetÃvel a merge" + +#: builtin/merge.c:1277 msgid "Can merge only exactly one commit into empty head" -msgstr "" +msgstr "Só é possÃvel realizar merge de exatamente um commit numa cabeça vazia" -#: builtin/merge.c:1296 -msgid "Squash commit into empty head not supported yet" +#: builtin/merge.c:1332 +#, c-format +msgid "Commit %s has an untrusted GPG signature, allegedly by %s." msgstr "" +"A assinatura GPG do commit %s, alegadamente assinada por %s, não é de " +"confiança." -#: builtin/merge.c:1298 -msgid "Non-fast-forward commit does not make sense into an empty head" +#: builtin/merge.c:1335 +#, c-format +msgid "Commit %s has a bad GPG signature allegedly by %s." msgstr "" +"A assinatura GPG do commit %s, alegadamente assinada por %s, está incorreta." + +#: builtin/merge.c:1338 +#, c-format +msgid "Commit %s does not have a GPG signature." +msgstr "O commit %s não tem uma assinatura GPG." -#: builtin/merge.c:1413 +#: builtin/merge.c:1341 +#, c-format +msgid "Commit %s has a good GPG signature by %s\n" +msgstr "A assinatura GPG do commit %s por %s está correta\n" + +#: builtin/merge.c:1424 #, c-format msgid "Updating %s..%s\n" -msgstr "Actualizando %s..%s\n" +msgstr "A atualizar %s..%s\n" -#: builtin/merge.c:1451 +#: builtin/merge.c:1461 #, c-format msgid "Trying really trivial in-index merge...\n" -msgstr "" +msgstr "A tentar merge mesmo trivial no interior do Ãndice...\n" -#: builtin/merge.c:1458 +#: builtin/merge.c:1468 #, c-format msgid "Nope.\n" msgstr "Não.\n" -#: builtin/merge.c:1490 +#: builtin/merge.c:1500 msgid "Not possible to fast-forward, aborting." -msgstr "" +msgstr "Não é possÃvel avançar rapidamente, a abortar." -#: builtin/merge.c:1513 -#: builtin/merge.c:1592 +#: builtin/merge.c:1523 builtin/merge.c:1602 #, c-format msgid "Rewinding the tree to pristine...\n" -msgstr "" +msgstr "A recuar a árvore ao seu estado original...\n" -#: builtin/merge.c:1517 +#: builtin/merge.c:1527 #, c-format msgid "Trying merge strategy %s...\n" -msgstr "" +msgstr "A tentar a estratégia de merge %s...\n" -#: builtin/merge.c:1583 +#: builtin/merge.c:1593 #, c-format msgid "No merge strategy handled the merge.\n" -msgstr "" +msgstr "Nenhuma estratégia de merge conseguiu processar o merge.\n" -#: builtin/merge.c:1585 +#: builtin/merge.c:1595 #, c-format msgid "Merge with strategy %s failed.\n" -msgstr "Fundir com a estratégia %s falhou.\n" +msgstr "Falha ao realizar merge com a estratégia %s.\n" -#: builtin/merge.c:1594 +#: builtin/merge.c:1604 #, c-format msgid "Using the %s to prepare resolving by hand.\n" -msgstr "" +msgstr "A usar %s para preparar resolução manual.\n" -#: builtin/merge.c:1606 +#: builtin/merge.c:1616 #, c-format msgid "Automatic merge went well; stopped before committing as requested\n" msgstr "" +"O merge automático foi bem sucedido; interrompido antes de realizar commit " +"como pretendido\n" -#: builtin/mv.c:108 -#, c-format -msgid "Checking rename of '%s' to '%s'\n" +#: builtin/merge-base.c:29 +msgid "git merge-base [-a | --all] <commit> <commit>..." +msgstr "git merge-base [-a | --all] <commit> <commit>..." + +#: builtin/merge-base.c:30 +msgid "git merge-base [-a | --all] --octopus <commit>..." +msgstr "git merge-base [-a | --all] --octopus <commit>..." + +#: builtin/merge-base.c:31 +msgid "git merge-base --independent <commit>..." +msgstr "git merge-base --independent <commit>..." + +#: builtin/merge-base.c:32 +msgid "git merge-base --is-ancestor <commit> <commit>" +msgstr "git merge-base --is-ancestor <commit> <commit>" + +#: builtin/merge-base.c:33 +msgid "git merge-base --fork-point <ref> [<commit>]" +msgstr "git merge-base --fork-point <referência> [<commit>]" + +#: builtin/merge-base.c:214 +msgid "output all common ancestors" +msgstr "mostrar todos os antecessores" + +#: builtin/merge-base.c:216 +msgid "find ancestors for a single n-way merge" +msgstr "encontrar antecessores de um único merge com n pontos" + +#: builtin/merge-base.c:218 +msgid "list revs not reachable from others" +msgstr "listar revisões não alcançáveis a partir de outras" + +#: builtin/merge-base.c:220 +msgid "is the first one ancestor of the other?" +msgstr "o primeiro é antecessor do segundo?" + +#: builtin/merge-base.c:222 +msgid "find where <commit> forked from reflog of <ref>" +msgstr "" +"descobrir aonde foi que o <commit> divergiu usando o reflog da <referência>" + +#: builtin/merge-file.c:8 +msgid "" +"git merge-file [<options>] [-L <name1> [-L <orig> [-L <name2>]]] <file1> " +"<orig-file> <file2>" +msgstr "" +"git merge-file [<opções>] [-L <nome1> [-L <orig> [-L <nome2>]]] <ficheiro1> " +"<ficheiro-orig> <ficheiro2>" + +#: builtin/merge-file.c:33 +msgid "send results to standard output" +msgstr "enviar resultados para a saÃda padrão" + +#: builtin/merge-file.c:34 +msgid "use a diff3 based merge" +msgstr "usar merge baseado em diff3" + +#: builtin/merge-file.c:35 +msgid "for conflicts, use our version" +msgstr "usar a nossa versão em caso de conflito" + +#: builtin/merge-file.c:37 +msgid "for conflicts, use their version" +msgstr "usar a versão deles em caso de conflito" + +#: builtin/merge-file.c:39 +msgid "for conflicts, use a union version" +msgstr "usar a união das versões em caso de conflito" + +#: builtin/merge-file.c:42 +msgid "for conflicts, use this marker size" +msgstr "usar este comprimento de marcador para os conflitos" + +#: builtin/merge-file.c:43 +msgid "do not warn about conflicts" +msgstr "não alertar sobre conflitos" + +#: builtin/merge-file.c:45 +msgid "set labels for file1/orig-file/file2" +msgstr "definir identificares para ficheiro1/ficheiro-orig/ficheiro2" + +#: builtin/mktree.c:65 +msgid "git mktree [-z] [--missing] [--batch]" +msgstr "git mktree [-z] [--missing] [--batch]" + +#: builtin/mktree.c:152 +msgid "input is NUL terminated" +msgstr "a entrada termina com NUL" + +#: builtin/mktree.c:153 builtin/write-tree.c:24 +msgid "allow missing objects" +msgstr "permitir objetos não presentes" + +#: builtin/mktree.c:154 +msgid "allow creation of more than one tree" +msgstr "permitir a criação de mais do que uma árvore" + +#: builtin/mv.c:15 +msgid "git mv [<options>] <source>... <destination>" +msgstr "git mv [<opções>] <origem>... <destino>" + +#: builtin/mv.c:70 +#, fuzzy, c-format +msgid "Directory %s is in index and no submodule?" +msgstr "O diretório %s está no Ãndice mas não no submódulo?" + +#: builtin/mv.c:72 +msgid "Please stage your changes to .gitmodules or stash them to proceed" msgstr "" +"Prepare as suas alterações em .gitmodules ou esconda-as (stash) para " +"prosseguir" + +#: builtin/mv.c:90 +#, c-format +msgid "%.*s is in index" +msgstr "%.*s está no Ãndice" #: builtin/mv.c:112 +msgid "force move/rename even if target exists" +msgstr "forçar mover/mudar o nome mesmo que o destino exista" + +#: builtin/mv.c:113 +msgid "skip move/rename errors" +msgstr "ignorar erros ao mover/mudar o nome" + +#: builtin/mv.c:152 +#, c-format +msgid "destination '%s' is not a directory" +msgstr "o destino '%s' não é um diretório" + +#: builtin/mv.c:163 +#, c-format +msgid "Checking rename of '%s' to '%s'\n" +msgstr "A verificar a mudança de nome de '%s' para '%s'\n" + +#: builtin/mv.c:167 msgid "bad source" -msgstr "fonte inválida" +msgstr "origem incorreta" -#: builtin/mv.c:115 +#: builtin/mv.c:170 msgid "can not move directory into itself" -msgstr "" +msgstr "não é possÃvel mover um diretório para dentro de si próprio" -#: builtin/mv.c:118 +#: builtin/mv.c:173 msgid "cannot move directory over file" -msgstr "" +msgstr "não é possÃvel mover um diretório para um ficheiro" -#: builtin/mv.c:128 -#, c-format -msgid "Huh? %.*s is in index?" -msgstr "" - -#: builtin/mv.c:140 +#: builtin/mv.c:182 msgid "source directory is empty" -msgstr "o directorio fonte está vazio" +msgstr "o diretório de origem está vazio" -#: builtin/mv.c:171 +#: builtin/mv.c:207 msgid "not under version control" msgstr "não está no controlo de versões" -#: builtin/mv.c:173 +#: builtin/mv.c:210 msgid "destination exists" -msgstr "existe destino" +msgstr "o destino já existe" -#: builtin/mv.c:181 +#: builtin/mv.c:218 #, c-format msgid "overwriting '%s'" -msgstr "subscrevendo '%s'" +msgstr "a substituir '%s'" -#: builtin/mv.c:184 +#: builtin/mv.c:221 msgid "Cannot overwrite" -msgstr "Não consegue subscrever" +msgstr "Não é possÃvel substituir" -#: builtin/mv.c:187 +#: builtin/mv.c:224 msgid "multiple sources for the same target" -msgstr "múltiplas fontes para o mesmo alvo" +msgstr "múltiplas origens para o mesmo destino" + +#: builtin/mv.c:226 +msgid "destination directory does not exist" +msgstr "o diretório de destino não existe" -#: builtin/mv.c:202 +#: builtin/mv.c:233 #, c-format msgid "%s, source=%s, destination=%s" -msgstr "" +msgstr "%s, origem=%s, destino=%s" -#: builtin/mv.c:212 +#: builtin/mv.c:254 #, c-format msgid "Renaming %s to %s\n" -msgstr "Mudar de nome %s para %s\n" +msgstr "A mudar de nome de %s para %s\n" -#: builtin/mv.c:215 -#: builtin/remote.c:731 +#: builtin/mv.c:257 builtin/remote.c:714 builtin/repack.c:365 #, c-format msgid "renaming '%s' failed" -msgstr "mudar de nome '%s' falhou" +msgstr "falha ao mudar o nome de '%s'" -#: builtin/notes.c:139 -#, c-format -msgid "unable to start 'show' for object '%s'" +#: builtin/name-rev.c:251 +msgid "git name-rev [<options>] <commit>..." +msgstr "git name-rev [<opções>] <commit>..." + +#: builtin/name-rev.c:252 +msgid "git name-rev [<options>] --all" +msgstr "git name-rev [<opções>] --all" + +#: builtin/name-rev.c:253 +msgid "git name-rev [<options>] --stdin" +msgstr "git name-rev [<opções>] --stdin" + +#: builtin/name-rev.c:305 +msgid "print only names (no SHA-1)" +msgstr "imprimir apenas nomes (sem SHA-1)" + +#: builtin/name-rev.c:306 +msgid "only use tags to name the commits" +msgstr "usar apenas tags para designar commits" + +#: builtin/name-rev.c:308 +msgid "only use refs matching <pattern>" +msgstr "usar apenas referência que correspondam ao <padrão>" + +#: builtin/name-rev.c:310 +msgid "list all commits reachable from all refs" +msgstr "listar todos os commits alcançáveis a partir de todas as referências" + +#: builtin/name-rev.c:311 +msgid "read from stdin" +msgstr "ler da entrada padrão" + +#: builtin/name-rev.c:312 +msgid "allow to print `undefined` names (default)" +msgstr "permitir imprimir nomes 'indefinidos' (predefinição)" + +#: builtin/name-rev.c:318 +msgid "dereference tags in the input (internal use)" +msgstr "desreferenciar tags na entrada (uso interno)" + +#: builtin/notes.c:25 +msgid "git notes [--ref <notes-ref>] [list [<object>]]" +msgstr "git notes [--ref <notes-ref>] [list [<objeto>]]" + +#: builtin/notes.c:26 +msgid "" +"git notes [--ref <notes-ref>] add [-f] [--allow-empty] [-m <msg> | -F <file> " +"| (-c | -C) <object>] [<object>]" msgstr "" +"git notes [--ref <notes-ref>] add [-f] [--allow-empty] [-m <msg> | -F " +"<ficheiro> | (-c | -C) <objeto>] [<objeto>]" + +#: builtin/notes.c:27 +msgid "git notes [--ref <notes-ref>] copy [-f] <from-object> <to-object>" +msgstr "git notes [--ref <notes-ref>] copy [-f] <de-objeto> <para-objeto>" -#: builtin/notes.c:145 -msgid "can't fdopen 'show' output fd" +#: builtin/notes.c:28 +msgid "" +"git notes [--ref <notes-ref>] append [--allow-empty] [-m <msg> | -F <file> | " +"(-c | -C) <object>] [<object>]" msgstr "" +"git notes [--ref <notes-ref>] append [--allow-empty] [-m <msg> | -F " +"<ficheiro> | (-c | -C) <objeto>] [<objeto>]" -#: builtin/notes.c:155 -#, c-format -msgid "failed to close pipe to 'show' for object '%s'" +#: builtin/notes.c:29 +msgid "git notes [--ref <notes-ref>] edit [--allow-empty] [<object>]" +msgstr "git notes [--ref <notes-ref>] edit [--allow-empty] [<objeto>]" + +#: builtin/notes.c:30 +msgid "git notes [--ref <notes-ref>] show [<object>]" +msgstr "git notes [--ref <notes-ref>] show [<objeto>]" + +#: builtin/notes.c:31 +msgid "" +"git notes [--ref <notes-ref>] merge [-v | -q] [-s <strategy>] <notes-ref>" msgstr "" +"git notes [--ref <notes-ref>] merge [-v | -q] [-s <estratégia>] <notes-ref>" + +#: builtin/notes.c:32 +msgid "git notes merge --commit [-v | -q]" +msgstr "git notes merge --commit [-v | -q]" + +#: builtin/notes.c:33 +msgid "git notes merge --abort [-v | -q]" +msgstr "git notes merge --abort [-v | -q]" + +#: builtin/notes.c:34 +msgid "git notes [--ref <notes-ref>] remove [<object>...]" +msgstr "git notes [--ref <notes-ref>] remove [<objeto>...]" + +#: builtin/notes.c:35 +msgid "git notes [--ref <notes-ref>] prune [-n | -v]" +msgstr "git notes [--ref <notes-ref>] prune [-n | -v]" + +#: builtin/notes.c:36 +msgid "git notes [--ref <notes-ref>] get-ref" +msgstr "git notes [--ref <notes-ref>] get-ref" + +#: builtin/notes.c:41 +msgid "git notes [list [<object>]]" +msgstr "git notes [list [<objeto>]]" + +#: builtin/notes.c:46 +msgid "git notes add [<options>] [<object>]" +msgstr "git notes add [<opções>] [<objeto>]" + +#: builtin/notes.c:51 +msgid "git notes copy [<options>] <from-object> <to-object>" +msgstr "git notes copy [<opções>] <de-objeto> <para-objeto>" + +#: builtin/notes.c:52 +msgid "git notes copy --stdin [<from-object> <to-object>]..." +msgstr "git notes copy --stdin [<de-objeto> <para-objeto>]..." + +#: builtin/notes.c:57 +msgid "git notes append [<options>] [<object>]" +msgstr "git notes append [<opções>] [<objeto>]" + +#: builtin/notes.c:62 +msgid "git notes edit [<object>]" +msgstr "git notes edit [<objeto>]" -#: builtin/notes.c:158 +#: builtin/notes.c:67 +msgid "git notes show [<object>]" +msgstr "git notes show [<objeto>]" + +#: builtin/notes.c:72 +msgid "git notes merge [<options>] <notes-ref>" +msgstr "git notes merge [<opções>] <notes-ref>" + +#: builtin/notes.c:73 +msgid "git notes merge --commit [<options>]" +msgstr "git notes merge --commit [<opções>]" + +#: builtin/notes.c:74 +msgid "git notes merge --abort [<options>]" +msgstr "git notes merge --abort [<opções>]" + +#: builtin/notes.c:79 +msgid "git notes remove [<object>]" +msgstr "git notes remove [<objeto>]" + +#: builtin/notes.c:84 +msgid "git notes prune [<options>]" +msgstr "git notes prune [<optções>]" + +#: builtin/notes.c:89 +msgid "git notes get-ref" +msgstr "git notes get-ref" + +#: builtin/notes.c:147 +#, c-format +msgid "unable to start 'show' for object '%s'" +msgstr "não foi possÃvel iniciar o comando 'show' sobre o objeto '%s'" + +#: builtin/notes.c:151 +msgid "could not read 'show' output" +msgstr "não foi possÃvel ler a saÃda do comando 'show'" + +#: builtin/notes.c:159 #, c-format msgid "failed to finish 'show' for object '%s'" -msgstr "" +msgstr "falha ao concluir o comando 'show' sobre o objeto '%s'" -#: builtin/notes.c:175 -#: builtin/tag.c:347 +#: builtin/notes.c:174 builtin/tag.c:248 #, c-format msgid "could not create file '%s'" -msgstr "" +msgstr "não foi possÃvel criar o ficheiro '%s'" -#: builtin/notes.c:189 +#: builtin/notes.c:193 msgid "Please supply the note contents using either -m or -F option" -msgstr "" - -#: builtin/notes.c:210 -#: builtin/notes.c:973 -#, c-format -msgid "Removing note for object %s\n" -msgstr "" +msgstr "Forneça o conteúdo da nota usando a opção -m ou -F" -#: builtin/notes.c:215 +#: builtin/notes.c:202 msgid "unable to write note object" -msgstr "" +msgstr "não é possÃvel escrever o objeto de nota" -#: builtin/notes.c:217 +#: builtin/notes.c:204 #, c-format -msgid "The note contents has been left in %s" -msgstr "" +msgid "The note contents have been left in %s" +msgstr "O conteúdo da nota foi guardado em %s" -#: builtin/notes.c:251 -#: builtin/tag.c:542 +#: builtin/notes.c:232 builtin/tag.c:440 #, c-format msgid "cannot read '%s'" -msgstr "não consegue ler '%s'" +msgstr "não é possÃvel ler '%s'" -#: builtin/notes.c:253 -#: builtin/tag.c:545 +#: builtin/notes.c:234 builtin/tag.c:443 #, c-format msgid "could not open or read '%s'" -msgstr "" +msgstr "não foi possÃvel abrir ou ler '%s'" -#: builtin/notes.c:272 -#: builtin/notes.c:445 -#: builtin/notes.c:447 -#: builtin/notes.c:507 -#: builtin/notes.c:561 -#: builtin/notes.c:644 -#: builtin/notes.c:649 -#: builtin/notes.c:724 -#: builtin/notes.c:766 -#: builtin/notes.c:968 -#: builtin/reset.c:293 -#: builtin/tag.c:558 +#: builtin/notes.c:253 builtin/notes.c:304 builtin/notes.c:306 +#: 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 "" +msgstr "Falha ao resolver '%s' numa referência válida." -#: builtin/notes.c:275 +#: builtin/notes.c:256 #, c-format msgid "Failed to read object '%s'." -msgstr "" +msgstr "Falha ao ler o objeto '%s'." -#: builtin/notes.c:299 -msgid "Cannot commit uninitialized/unreferenced notes tree" -msgstr "" +#: builtin/notes.c:260 +#, c-format +msgid "Cannot read note data from non-blob object '%s'." +msgstr "Não é possÃvel ler os dados da nota de um objeto não-blob '%s'." + +#: 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 "demasiados parâmetros" -#: builtin/notes.c:340 +#: builtin/notes.c:375 builtin/notes.c:662 #, c-format -msgid "Bad notes.rewriteMode value: '%s'" -msgstr "" +msgid "No note found for object %s." +msgstr "A nota do objeto %s não foi encontrada." + +#: builtin/notes.c:396 builtin/notes.c:559 +msgid "note contents as a string" +msgstr "conteúdo da nota sob a forma de cadeia de caracteres" -#: builtin/notes.c:350 +#: builtin/notes.c:399 builtin/notes.c:562 +msgid "note contents in a file" +msgstr "conteúdo da nota de um ficheiro" + +#: builtin/notes.c:402 builtin/notes.c:565 +msgid "reuse and edit specified note object" +msgstr "reutilizar e editar o objeto de nota especificado" + +#: builtin/notes.c:405 builtin/notes.c:568 +msgid "reuse specified note object" +msgstr "reutilizar o objeto de nota especificado" + +#: builtin/notes.c:408 builtin/notes.c:571 +msgid "allow storing empty note" +msgstr "permitir guardar uma nota vazia" + +#: builtin/notes.c:409 builtin/notes.c:480 +msgid "replace existing notes" +msgstr "substituir notas existentes" + +#: builtin/notes.c:434 #, c-format -msgid "Refusing to rewrite notes in %s (outside of refs/notes/)" +msgid "" +"Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite " +"existing notes" msgstr "" +"Não é possÃvel adicionar notas. Notas do objeto %s encontradas. Use '-f' " +"para substituÃ-las." -#. TRANSLATORS: The first %s is the name of the -#. environment variable, the second %s is its value -#: builtin/notes.c:377 +#: builtin/notes.c:449 builtin/notes.c:528 #, c-format -msgid "Bad %s value: '%s'" -msgstr "Inválido %s valor: '%s'" +msgid "Overwriting existing notes for object %s\n" +msgstr "A substituir as notas existentes do objeto %s\n" -#: builtin/notes.c:441 +#: builtin/notes.c:460 builtin/notes.c:621 builtin/notes.c:885 #, c-format -msgid "Malformed input line: '%s'." +msgid "Removing note for object %s\n" +msgstr "A remover a nota do objeto %s\n" + +#: builtin/notes.c:481 +msgid "read objects from stdin" +msgstr "ler objetos da entrada padrão" + +#: builtin/notes.c:483 +msgid "load rewriting config for <command> (implies --stdin)" +msgstr "carregar configuração de reescrita do <comando> (implica --stdin)" + +#: builtin/notes.c:501 +msgid "too few parameters" +msgstr "parâmetros insuficientes" + +#: builtin/notes.c:522 +#, c-format +msgid "" +"Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite " +"existing notes" msgstr "" +"Não é possÃvel copiar notas. Notas do objeto %s encontradas. Use '-f' para " +"substituÃ-las." -#: builtin/notes.c:456 +#: builtin/notes.c:534 #, c-format -msgid "Failed to copy notes from '%s' to '%s'" +msgid "Missing notes on source object %s. Cannot copy." +msgstr "Não existem notas no objeto de origem %s. Não é possÃvel copiar." + +#: 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 "" +"As opções -m/-F/-c/-C são obsoletas no subcomando 'edit'.\n" +"Use 'git notes add -f -m/-F/-c/-C' em seu lugar.\n" -#: builtin/notes.c:500 -#: builtin/notes.c:554 -#: builtin/notes.c:627 -#: builtin/notes.c:639 -#: builtin/notes.c:712 -#: builtin/notes.c:759 -#: builtin/notes.c:1033 -msgid "too many parameters" -msgstr "demasiado parametros" +#: builtin/notes.c:767 +msgid "General options" +msgstr "Opções gerais" -#: builtin/notes.c:513 -#: builtin/notes.c:772 +#: builtin/notes.c:769 +msgid "Merge options" +msgstr "Opções de merge" + +#: builtin/notes.c:771 +msgid "" +"resolve notes conflicts using the given strategy (manual/ours/theirs/union/" +"cat_sort_uniq)" +msgstr "" +"resolver conflitos nas notas usando a estratégia indicada (manual/ours/" +"theirs/union/cat_sort_uniq)" + +#: builtin/notes.c:773 +msgid "Committing unmerged notes" +msgstr "Efetuar commit de notas não integradas" + +#: builtin/notes.c:775 +msgid "finalize notes merge by committing unmerged notes" +msgstr "concluir merge de notas, fazendo commit de notas não integradas" + +#: builtin/notes.c:777 +msgid "Aborting notes merge resolution" +msgstr "Abortar resoluções de merge das notas" + +#: builtin/notes.c:779 +msgid "abort notes merge" +msgstr "abortar merge das notas" + +#: builtin/notes.c:856 #, c-format -msgid "No note found for object %s." -msgstr "Nenhuma nota encontrada para o objecto %s." +msgid "A notes merge into %s is already in-progress at %s" +msgstr "Merge das notas em %s já está em curso em %s" -#: builtin/notes.c:580 +#: builtin/notes.c:883 #, c-format -msgid "Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite existing notes" -msgstr "" +msgid "Object %s has no note\n" +msgstr "O objeto %s não tem nenhuma nota\n" + +#: builtin/notes.c:895 +msgid "attempt to remove non-existent note is not an error" +msgstr "não considerar como erro a remoção de uma nota não existente" + +#: builtin/notes.c:898 +msgid "read object names from the standard input" +msgstr "ler nome dos objetos da entrada padrão" + +#: builtin/notes.c:979 +msgid "notes-ref" +msgstr "notes-ref" + +#: builtin/notes.c:980 +msgid "use notes from <notes-ref>" +msgstr "usar notas de <notes-ref>" -#: builtin/notes.c:585 -#: builtin/notes.c:662 +#: builtin/notes.c:1015 builtin/remote.c:1626 #, c-format -msgid "Overwriting existing notes for object %s\n" +msgid "Unknown subcommand: %s" +msgstr "Subcomando desconhecido: %s" + +#: builtin/pack-objects.c:28 +msgid "" +"git pack-objects --stdout [<options>...] [< <ref-list> | < <object-list>]" msgstr "" +"git pack-objects --stdout [<opções>...] [< <lista-referências> | < <lista-" +"objetos>]" -#: builtin/notes.c:635 -msgid "too few parameters" +#: builtin/pack-objects.c:29 +msgid "" +"git pack-objects [<options>...] <base-name> [< <ref-list> | < <object-list>]" msgstr "" +"git pack-objects [<opções>...] <nome-base> [< <lista-referências> | < <lista-" +"objetos>]" -#: builtin/notes.c:656 +#: builtin/pack-objects.c:175 builtin/pack-objects.c:178 #, c-format -msgid "Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite existing notes" +msgid "deflate error (%d)" +msgstr "erro ao compactar (%d)" + +#: builtin/pack-objects.c:772 +msgid "Writing objects" +msgstr "A escrever objetos" + +#: builtin/pack-objects.c:1012 +msgid "disabling bitmap writing, as some objects are not being packed" msgstr "" +"a desativar escrita de mapa de bits, visto que alguns objetos não estão a " +"ser compactados" + +#: builtin/pack-objects.c:2172 +msgid "Compressing objects" +msgstr "A comprimir objetos" -#: builtin/notes.c:668 +#: builtin/pack-objects.c:2558 #, c-format -msgid "Missing notes on source object %s. Cannot copy." +msgid "unsupported index version %s" +msgstr "versão de Ãndice %s não suportada" + +#: builtin/pack-objects.c:2562 +#, c-format +msgid "bad index version '%s'" +msgstr "versão de Ãndice '%s' incorreta" + +#: builtin/pack-objects.c:2592 +msgid "do not show progress meter" +msgstr "não mostrar medidor de progresso" + +#: builtin/pack-objects.c:2594 +msgid "show progress meter" +msgstr "mostrar medidor de progresso" + +#: builtin/pack-objects.c:2596 +msgid "show progress meter during object writing phase" +msgstr "mostrar medidor de progresso durante a fase de escrita de objetos" + +#: builtin/pack-objects.c:2599 +msgid "similar to --all-progress when progress meter is shown" +msgstr "semelhante a --all-progress quando o medidor de progresso é mostrado" + +#: builtin/pack-objects.c:2600 +msgid "version[,offset]" +msgstr "versão[,offset]" + +#: builtin/pack-objects.c:2601 +msgid "write the pack index file in the specified idx format version" +msgstr "" +"escrever o ficheiro de Ãndice do pacote na versão de formato especificada" + +#: builtin/pack-objects.c:2604 +msgid "maximum size of each output pack file" +msgstr "tamanho máximo de cada ficheiro de pacote gerado" + +#: builtin/pack-objects.c:2606 +msgid "ignore borrowed objects from alternate object store" +msgstr "ignorar objetos emprestados do arquivo de objetos alternate" + +#: builtin/pack-objects.c:2608 +msgid "ignore packed objects" +msgstr "ignorar objetos compactados" + +#: builtin/pack-objects.c:2610 +msgid "limit pack window by objects" +msgstr "limitar a janela de compactação por objetos" + +#: builtin/pack-objects.c:2612 +msgid "limit pack window by memory in addition to object limit" msgstr "" +"limitar a janela de compactação por memória em adição ao limite por objetos" + +#: builtin/pack-objects.c:2614 +msgid "maximum length of delta chain allowed in the resulting pack" +msgstr "tamanho máximo de cadeias delta permitidas no pacote resultante" + +#: builtin/pack-objects.c:2616 +msgid "reuse existing deltas" +msgstr "reutilizar deltas existentes" + +#: builtin/pack-objects.c:2618 +msgid "reuse existing objects" +msgstr "reutilizar objetos existentes" + +#: builtin/pack-objects.c:2620 +msgid "use OFS_DELTA objects" +msgstr "usar objetos OFS_DELTA" + +#: builtin/pack-objects.c:2622 +msgid "use threads when searching for best delta matches" +msgstr "usar threads ao procurar pela melhor correspondência delta" + +#: builtin/pack-objects.c:2624 +msgid "do not create an empty pack output" +msgstr "não criar um pacote vazio" + +#: builtin/pack-objects.c:2626 +msgid "read revision arguments from standard input" +msgstr "ler argumentos de revisão da entrada padrão" + +#: builtin/pack-objects.c:2628 +msgid "limit the objects to those that are not yet packed" +msgstr "restringir-se aos objetos que ainda não foram compactados" + +#: builtin/pack-objects.c:2631 +msgid "include objects reachable from any reference" +msgstr "incluir objetos alcançáveis a partir de qualquer referência" + +#: builtin/pack-objects.c:2634 +msgid "include objects referred by reflog entries" +msgstr "incluir objetos referenciados por entradas do reflog" + +#: builtin/pack-objects.c:2637 +msgid "include objects referred to by the index" +msgstr "incluir objetos referenciados pelo Ãndice" + +#: builtin/pack-objects.c:2640 +msgid "output pack to stdout" +msgstr "gerar pacote para a saÃda padrão" + +#: builtin/pack-objects.c:2642 +msgid "include tag objects that refer to objects to be packed" +msgstr "incluir objetos tag que refiram objetos a compactar" + +#: builtin/pack-objects.c:2644 +msgid "keep unreachable objects" +msgstr "manter objetos inalcançáveis" + +#: builtin/pack-objects.c:2645 parse-options.h:142 +msgid "time" +msgstr "hora" + +#: builtin/pack-objects.c:2646 +msgid "unpack unreachable objects newer than <time>" +msgstr "descompactar objetos inalcançáveis mais recentes que <hora>" + +#: builtin/pack-objects.c:2649 +msgid "create thin packs" +msgstr "criar pacotes finos" + +#: builtin/pack-objects.c:2651 +msgid "create packs suitable for shallow fetches" +msgstr "criar pacotes adequados para obter em repositórios pouco profundos" + +#: builtin/pack-objects.c:2653 +msgid "ignore packs that have companion .keep file" +msgstr "ignorar pacotes que tenham um ficheiro .keep" + +#: builtin/pack-objects.c:2655 +msgid "pack compression level" +msgstr "nÃvel de compactação do pacote" + +#: builtin/pack-objects.c:2657 +msgid "do not hide commits by grafts" +msgstr "não esconder commits introduzidos por enxertos" + +#: builtin/pack-objects.c:2659 +msgid "use a bitmap index if available to speed up counting objects" +msgstr "" +"usar um Ãndice de mapa de bits se disponÃvel, para acelerar a contagem de " +"objetos" + +#: builtin/pack-objects.c:2661 +msgid "write a bitmap index together with the pack index" +msgstr "escrever um Ãndice de mapa de bits juntamente com o Ãndice do pacote" -#: builtin/notes.c:717 +#: builtin/pack-objects.c:2752 +msgid "Counting objects" +msgstr "A contar objetos" + +#: builtin/pack-refs.c:6 +msgid "git pack-refs [<options>]" +msgstr "git pack-refs [<opções>]" + +#: builtin/pack-refs.c:14 +msgid "pack everything" +msgstr "compactar tudo" + +#: builtin/pack-refs.c:15 +msgid "prune loose refs (default)" +msgstr "eliminar referências soltas (predefinição)" + +#: builtin/prune-packed.c:7 +msgid "git prune-packed [-n | --dry-run] [-q | --quiet]" +msgstr "git prune-packed [-n | --dry-run] [-q | --quiet]" + +#: builtin/prune-packed.c:40 +msgid "Removing duplicate objects" +msgstr "A remover objetos duplicados" + +#: builtin/prune.c:11 +msgid "git prune [-n] [-v] [--expire <time>] [--] [<head>...]" +msgstr "git prune [-n] [-v] [--expire <hora>] [--] [<head>...]" + +#: builtin/prune.c:105 builtin/worktree.c:124 +msgid "do not remove, show only" +msgstr "não remover, mostrar apenas" + +#: builtin/prune.c:106 builtin/worktree.c:125 +msgid "report pruned objects" +msgstr "apresentar objetos eliminados" + +#: builtin/prune.c:109 builtin/worktree.c:127 +msgid "expire objects older than <time>" +msgstr "expirar objetos mais antigos que <hora>" + +#: builtin/prune.c:123 +msgid "cannot prune in a precious-objects repo" +msgstr "não é possÃvel limpar num repositório de objetos-preciosos" + +#: builtin/pull.c:72 +msgid "git pull [<options>] [<repository> [<refspec>...]]" +msgstr "git pull [<opções>] [<repositório> [<especificador-de-referência>...]]" + +#: builtin/pull.c:117 +msgid "Options related to merging" +msgstr "Opções relacionadas com merge" + +#: builtin/pull.c:120 +msgid "incorporate changes by rebasing rather than merging" +msgstr "incorporar alterações por rebase em vez de merge" + +#: builtin/pull.c:144 builtin/revert.c:105 +msgid "allow fast-forward" +msgstr "permitir avanço rápido" + +#: builtin/pull.c:150 +msgid "verify that the named commit has a valid GPG signature" +msgstr "verificar se o commit tem uma assinatura GPG válida" + +#: builtin/pull.c:164 +msgid "Options related to fetching" +msgstr "Opções relacionadas com obtenção de objetos" + +#: builtin/pull.c:186 +msgid "number of submodules pulled in parallel" +msgstr "número de submódulos obtidos em paralelo" + +#: builtin/pull.c:275 #, c-format +msgid "Invalid value for pull.ff: %s" +msgstr "Valor inválido de pull.ff: %s" + +#: builtin/pull.c:359 +msgid "Cannot pull with rebase: You have unstaged changes." +msgstr "Não é possÃvel efetuar pull com rebase: tem alterações não preparadas." + +#: builtin/pull.c:365 +msgid "Additionally, your index contains uncommitted changes." +msgstr "Além disso, o Ãndice contém alterações pendentes para commit." + +#: builtin/pull.c:367 +msgid "Cannot pull with rebase: Your index contains uncommitted changes." +msgstr "" +"Não é possÃvel efetuar pull com rebase: o Ãndice contém alterações pendentes " +"para commit." + +#: builtin/pull.c:443 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" +"There is no candidate for rebasing against among the refs that you just " +"fetched." msgstr "" +"Não há nenhum candidato com o qual realizar rebase de entre as referências " +"que se acabaram de obter." -#: builtin/notes.c:971 -#, c-format -msgid "Object %s has no note\n" +#: builtin/pull.c:445 +msgid "" +"There are no candidates for merging among the refs that you just fetched." msgstr "" +"Não há nenhum candidato com o qual realizar merge de entre as referências " +"que se acabaram obter." -#: builtin/notes.c:1103 -#: builtin/remote.c:1598 -#, c-format -msgid "Unknown subcommand: %s" +#: builtin/pull.c:446 +msgid "" +"Generally this means that you provided a wildcard refspec which had no\n" +"matches on the remote end." msgstr "" +"Geralmente, significa que forneceu um especificador de referência\n" +"com um carácter universal (wildcard) que não corresponde a nenhum remoto." -#: builtin/pack-objects.c:2315 +#: builtin/pull.c:449 #, c-format -msgid "unsupported index version %s" +msgid "" +"You asked to pull from the remote '%s', but did not specify\n" +"a branch. Because this is not the default configured remote\n" +"for your current branch, you must specify a branch on the command line." msgstr "" +"Solicitou pull do remoto '%s', mas não especificou um ramo.\n" +"Uma vez que este não é o remoto configurado por omissão,\n" +"deve especificar um ramo na linha de comandos." + +#: builtin/pull.c:454 +msgid "You are not currently on a branch." +msgstr "Não se encontra em nenhum ramo de momento." + +#: builtin/pull.c:456 builtin/pull.c:471 +msgid "Please specify which branch you want to rebase against." +msgstr "Especifique o ramo sobre o qual pretende realizar rebase." + +#: builtin/pull.c:458 builtin/pull.c:473 +msgid "Please specify which branch you want to merge with." +msgstr "Especifique o ramo com o qual pretende realizar merge." + +#: builtin/pull.c:459 builtin/pull.c:474 +msgid "See git-pull(1) for details." +msgstr "Consulte git-pull(1) para obter mais detalhes." + +#: builtin/pull.c:469 +msgid "There is no tracking information for the current branch." +msgstr "O ramo atual não segue nenhum ramo." -#: builtin/pack-objects.c:2319 +#: builtin/pull.c:478 #, c-format -msgid "bad index version '%s'" +msgid "" +"If you wish to set tracking information for this branch you can do so with:\n" +"\n" +" git branch --set-upstream-to=%s/<branch> %s\n" msgstr "" +"Se deseja definir um ramo para este ramo seguir, pode fazê-lo com:\n" +"\n" +" git branch --set-upstream-to=%s/<ramo> %s\n" -#: builtin/pack-objects.c:2342 +#: builtin/pull.c:483 #, c-format -msgid "option %s does not accept negative form" -msgstr "opção %s não aceita formato negativo" +msgid "" +"Your configuration specifies to merge with the ref '%s'\n" +"from the remote, but no such ref was fetched." +msgstr "" +"A configuração indica para efetuar merge com a referência '%s'\n" +"do remoto, mas esta ainda não foi obtida." -#: builtin/pack-objects.c:2346 +#: builtin/pull.c:841 +msgid "Updating an unborn branch with changes added to the index." +msgstr "" +"A atualizar um ramo que ainda não foi criado e com alterações adicionadas ao " +"Ãndice." + +#: builtin/pull.c:870 #, c-format -msgid "unable to parse value '%s' for option %s" +msgid "" +"fetch updated the current branch head.\n" +"fast-forwarding your working tree from\n" +"commit %s." msgstr "" +"o fetch atualizou a cabeça do ramo atual.\n" +"a avançar a árvore de trabalho a partir do\n" +"commit %s." -#: builtin/push.c:45 +#: builtin/pull.c:875 +#, c-format +msgid "" +"Cannot fast-forward your working tree.\n" +"After making sure that you saved anything precious from\n" +"$ git diff %s\n" +"output, run\n" +"$ git reset --hard\n" +"to recover." +msgstr "" +"Não é possÃvel avançar rapidamente a árvore de trabalho.\n" +"Depois de guardar todas as alterações importantes indicadas por\n" +"$ git diff %s\n" +"execute\n" +"$ git reset --hard\n" +"para recuperar." + +#: builtin/pull.c:890 +msgid "Cannot merge multiple branches into empty head." +msgstr "Não é possÃvel efetuar merge de múltiplos ramos numa cabeça vazia." + +#: builtin/pull.c:894 +msgid "Cannot rebase onto multiple branches." +msgstr "Não é possÃvel efetuar rebase sobre múltiplos ramos." + +#: builtin/push.c:16 +msgid "git push [<options>] [<repository> [<refspec>...]]" +msgstr "git push [<opções>] [<repositório> [<especificador-de-referência>...]]" + +#: builtin/push.c:89 msgid "tag shorthand without <tag>" -msgstr "" +msgstr "forma abreviada de tag sem <tag>" -#: builtin/push.c:64 +#: builtin/push.c:99 msgid "--delete only accepts plain target ref names" -msgstr "--delete só aceita nomes simples para o ref de destino" +msgstr "--delete só aceita nomes simples como referências de destino" -#: builtin/push.c:99 +#: builtin/push.c:143 msgid "" "\n" "To choose either option permanently, see push.default in 'git help config'." msgstr "" +"\n" +"Para escolher uma opção permanentemente, consulte push.default em 'git help " +"config'." -#: builtin/push.c:102 +#: builtin/push.c:146 #, c-format msgid "" "The upstream branch of your current branch does not match\n" @@ -3682,8 +9148,17 @@ msgid "" " git push %s %s\n" "%s" msgstr "" +"O ramo a montante do ramo atual não coincide com o nome do ramo atual.\n" +"Para publicar no ramo a montante no remoto, use\n" +"\n" +" git push %s HEAD:%s\n" +"\n" +"Para publicar no ramo com o mesmo nome no remoto, use\n" +"\n" +" git push %s %s\n" +"%s" -#: builtin/push.c:121 +#: builtin/push.c:161 #, c-format msgid "" "You are not currently on a branch.\n" @@ -3692,8 +9167,13 @@ msgid "" "\n" " git push %s HEAD:<name-of-remote-branch>\n" msgstr "" +"Não se encontra em nenhum ramo neste momento.\n" +"Para publicar o histórico que conduziu ao estado atual (de HEAD\n" +"destacada), use\n" +"\n" +" git push %s HEAD:<name-of-remote-branch>\n" -#: builtin/push.c:128 +#: builtin/push.c:175 #, c-format msgid "" "The current branch %s has no upstream branch.\n" @@ -3701,67 +9181,108 @@ msgid "" "\n" " git push --set-upstream %s %s\n" msgstr "" +"O ramo atual %s não tem nenhum ramo a montante.\n" +"Para publicar o ramo atual e definir o remoto a montante, use\n" +"\n" +" git push --set-upstream %s %s\n" -#: builtin/push.c:136 +#: builtin/push.c:183 #, c-format msgid "The current branch %s has multiple upstream branches, refusing to push." msgstr "" +"O ramo atual %s tem múltiplos ramos a montante, recusando-se a publicar." -#: builtin/push.c:139 +#: builtin/push.c:186 #, c-format msgid "" "You are pushing to remote '%s', which is not the upstream of\n" "your current branch '%s', without telling me what to push\n" "to update which remote branch." msgstr "" +"O remoto '%s', no qual pretende publicar, não é o remoto a montante\n" +"do ramo atual '%s'. Deve indicar o que pretende publicar e que ramo\n" +"remoto atualizar." -#: builtin/push.c:174 -msgid "You didn't specify any refspecs to push, and push.default is \"nothing\"." +#: builtin/push.c:242 +msgid "" +"You didn't specify any refspecs to push, and push.default is \"nothing\"." msgstr "" +"Não indicou nenhum especificador de referência para publicar e o valor de " +"push.default é \"nothing\"." -#: builtin/push.c:181 +#: builtin/push.c:249 msgid "" "Updates were rejected because the tip of your current branch is behind\n" -"its remote counterpart. Merge the remote changes (e.g. 'git pull')\n" -"before pushing again.\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 "" +"As atualizações foram rejeitadas porque a ponta do ramo atual está atrasada\n" +"em relação ao homólogo remoto. Integre as alterações remotas (e.g.\n" +"'git pull ...') antes de publicar de novo.\n" +"Consulte 'Note about fast-forwards' em 'git push --help' para obter detalhes." -#: builtin/push.c:187 +#: builtin/push.c:255 msgid "" "Updates were rejected because a pushed branch tip is behind its remote\n" -"counterpart. If you did not intend to push that branch, you may want to\n" -"specify branches to push or set the 'push.default' configuration\n" -"variable to 'current' or 'upstream' to push only the current branch." +"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 "" +"As atualizações foram rejeitadas porque a ponta do ramo atual está atrasada\n" +"em relação ao homólogo remoto. Extraia o ramo e integre\n" +"as alterações remotas (e.g. 'git pull ...') antes de publicar de novo.\n" +"Consulte 'Note about fast-forwards' em 'git push --help' para obter detalhes." -#: builtin/push.c:193 +#: builtin/push.c:261 msgid "" -"Updates were rejected because a pushed branch tip is behind its remote\n" -"counterpart. Check out this branch and merge the remote changes\n" -"(e.g. 'git pull') before pushing again.\n" +"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 "" +"As atualizações foram rejeitadas porque o remoto contém alterações que\n" +"não tem localmente. Habitualmente, acontece porque outro repositório " +"publicou\n" +"na mesma referência. Pode integrar primeiro as alterações remotas\n" +"(e.g., 'git pull ...') antes de publicar de novo.\n" +"Consulte 'Note about fast-forwards' em 'git push --help' para obter detalhes." + +#: builtin/push.c:268 +msgid "Updates were rejected because the tag already exists in the remote." +msgstr "As atualizações foram rejeitadas porque a tag já existe no remoto." + +#: 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 "" +"Não é possÃvel atualizar uma referência remota que aponte para um\n" +"objeto não commit, ou atualizar uma referência remota fazendo-a\n" +"apontar para um objeto não commit, sem usar a opção '--force'.\n" -#: builtin/push.c:233 +#: builtin/push.c:331 #, c-format msgid "Pushing to %s\n" -msgstr "Pushing para %s\n" +msgstr "A publicar em %s\n" -#: builtin/push.c:237 +#: builtin/push.c:335 #, c-format msgid "failed to push some refs to '%s'" -msgstr "" +msgstr "falha ao publicar algumas referências em '%s'" -#: builtin/push.c:269 +#: builtin/push.c:365 #, c-format msgid "bad repository '%s'" -msgstr "repositorio inválido '%s'" +msgstr "repositório '%s' incorreto" -#: builtin/push.c:270 +#: 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" +"Either specify the URL from the command-line or configure a remote " +"repository using\n" "\n" " git remote add <name> <url>\n" "\n" @@ -3769,154 +9290,399 @@ msgid "" "\n" " git push <name>\n" msgstr "" +"Destino de publicação não definido.\n" +"Indique um URL na linha de comandos ou configure um repositório remoto " +"usando\n" +"\n" +" git remote add <nome> <url>\n" +"\n" +"e publique usando o nome remoto\n" +"\n" +" git push <nome>\n" -#: builtin/push.c:285 +#: builtin/push.c:381 msgid "--all and --tags are incompatible" -msgstr "--all e --tags are são incompatÃveis" +msgstr "--all e --tags são incompatÃveis" -#: builtin/push.c:286 +#: builtin/push.c:382 msgid "--all can't be combined with refspecs" -msgstr "" +msgstr "--all não pode ser combinado com especificadores de referências" -#: builtin/push.c:291 +#: builtin/push.c:387 msgid "--mirror and --tags are incompatible" -msgstr "" +msgstr "--mirror e --tags são incompatÃveis" -#: builtin/push.c:292 +#: builtin/push.c:388 msgid "--mirror can't be combined with refspecs" -msgstr "" +msgstr "--mirror não pode ser combinado com especificadores de referências" -#: builtin/push.c:297 +#: builtin/push.c:393 msgid "--all and --mirror are incompatible" -msgstr "" +msgstr "--all e --mirror são incompatÃveis" + +#: builtin/push.c:505 +msgid "repository" +msgstr "repositório" + +#: builtin/push.c:506 builtin/send-pack.c:161 +msgid "push all refs" +msgstr "publicar todas as referências" + +#: builtin/push.c:507 builtin/send-pack.c:163 +msgid "mirror all refs" +msgstr "replicar todas as referências" + +#: builtin/push.c:509 +msgid "delete refs" +msgstr "eliminar referências" + +#: builtin/push.c:510 +msgid "push tags (can't be used with --all or --mirror)" +msgstr "publicar tags (não pode ser usado com --all ou --mirror)" + +#: builtin/push.c:513 builtin/send-pack.c:164 +msgid "force updates" +msgstr "forçar atualização" + +#: builtin/push.c:515 builtin/send-pack.c:175 +msgid "refname>:<expect" +msgstr "nome da referência>:<esperado" + +#: builtin/push.c:516 builtin/send-pack.c:176 +msgid "require old value of ref to be at this value" +msgstr "exigir que o antigo valor da referência tenha este valor" + +#: builtin/push.c:519 +msgid "control recursive pushing of submodules" +msgstr "controlar a publicação recursiva de submódulos" -#: builtin/push.c:385 +#: builtin/push.c:521 builtin/send-pack.c:169 +msgid "use thin pack" +msgstr "usar pacote fino" + +#: builtin/push.c:522 builtin/push.c:523 builtin/send-pack.c:158 +#: builtin/send-pack.c:159 +msgid "receive pack program" +msgstr "programa receive pack" + +#: builtin/push.c:524 +msgid "set upstream for git pull/status" +msgstr "definir o ramo a montante usado com git pull/status" + +#: builtin/push.c:527 +msgid "prune locally removed refs" +msgstr "eliminar referências removidas localmente" + +#: builtin/push.c:529 +msgid "bypass pre-push hook" +msgstr "ignorar pre-push hook" + +#: builtin/push.c:530 +msgid "push missing but relevant tags" +msgstr "publicar tags perdidas mas relevantes" + +#: builtin/push.c:533 builtin/send-pack.c:166 +msgid "GPG sign the push" +msgstr "assinar publicação com GPG" + +#: builtin/push.c:535 builtin/send-pack.c:170 +msgid "request atomic transaction on remote side" +msgstr "solicitar transação atómica no servidor remoto" + +#: builtin/push.c:549 msgid "--delete is incompatible with --all, --mirror and --tags" -msgstr "" +msgstr "--delete é incompatÃvel com --all, --mirror e --tags" -#: builtin/push.c:387 +#: builtin/push.c:551 msgid "--delete doesn't make sense without any refs" +msgstr "--delete não faz sentido sem uma referência" + +#: builtin/read-tree.c:37 +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=<prefixo>) [-u [--exclude-per-directory=<gitignore>] | -i]] [--no-" +"sparse-checkout] [--index-output=<ficheiro>] (--empty | <árvore1> [<árvore2> " +"[<árvore3>]])" + +#: builtin/read-tree.c:110 +msgid "write resulting index to <file>" +msgstr "escrever o Ãndice resultante no <ficheiro>" -#: builtin/remote.c:98 +#: builtin/read-tree.c:113 +msgid "only empty the index" +msgstr "apenas esvaziar o Ãndice" + +#: builtin/read-tree.c:115 +msgid "Merging" +msgstr "A realizar merge" + +#: builtin/read-tree.c:117 +msgid "perform a merge in addition to a read" +msgstr "realizar um merge em adição a uma leitura" + +#: builtin/read-tree.c:119 +msgid "3-way merge if no file level merging required" +msgstr "" +"realizar merge com 3 pontos se o merge ao nÃvel dos ficheiros não for " +"necessário" + +#: builtin/read-tree.c:121 +msgid "3-way merge in presence of adds and removes" +msgstr "realizar merge com 3 ponto na presença de adições e remoções" + +#: builtin/read-tree.c:123 +msgid "same as -m, but discard unmerged entries" +msgstr "o mesmo que -m, mas descartar entradas não integradas" + +#: builtin/read-tree.c:124 +msgid "<subdirectory>/" +msgstr "<subdiretório>/" + +#: builtin/read-tree.c:125 +msgid "read the tree into the index under <subdirectory>/" +msgstr "ler a árvore em <subdiretório>/ para o Ãndice" + +#: builtin/read-tree.c:128 +msgid "update working tree with merge result" +msgstr "atualizar a árvore de trabalho com os resultados do merge" + +#: builtin/read-tree.c:130 +msgid "gitignore" +msgstr "gitignore" + +#: builtin/read-tree.c:131 +msgid "allow explicitly ignored files to be overwritten" +msgstr "permitir que os ficheiros explicitamente ignorados sejam substituÃdos" + +#: builtin/read-tree.c:134 +msgid "don't check the working tree after merging" +msgstr "não verificar a árvore de trabalho depois de efetuar merge" + +#: builtin/read-tree.c:135 +msgid "don't update the index or the work tree" +msgstr "não atualizar o Ãndice ou a árvore de trabalho" + +#: builtin/read-tree.c:137 +msgid "skip applying sparse checkout filter" +msgstr "ignorar a aplicação do filtro de extração esparsa" + +#: builtin/read-tree.c:139 +msgid "debug unpack-trees" +msgstr "depurar unpack-trees" + +#: builtin/reflog.c:423 +#, c-format +msgid "'%s' for '%s' is not a valid timestamp" +msgstr "'%s' em '%s' não é um carimbo de data/hora válido" + +#: builtin/reflog.c:540 builtin/reflog.c:545 +#, c-format +msgid "'%s' is not a valid timestamp" +msgstr "'%s' não é um carimbo de data/hora válido" + +#: builtin/remote.c:12 +msgid "git remote [-v | --verbose]" +msgstr "git remote [-v | --verbose]" + +#: builtin/remote.c:13 +msgid "" +"git remote add [-t <branch>] [-m <master>] [-f] [--tags | --no-tags] [--" +"mirror=<fetch|push>] <name> <url>" +msgstr "" +"git remote add [-t <ramo>] [-m <master>] [-f] [--tags | --no-tags] [--" +"mirror=<fetch|push>] <nome> <url>" + +#: builtin/remote.c:14 builtin/remote.c:34 +msgid "git remote rename <old> <new>" +msgstr "git remote rename <antigo> <novo>" + +#: builtin/remote.c:15 builtin/remote.c:39 +msgid "git remote remove <name>" +msgstr "git remote remove <nome>" + +#: builtin/remote.c:16 builtin/remote.c:44 +msgid "git remote set-head <name> (-a | --auto | -d | --delete | <branch>)" +msgstr "git remote set-head <nome> (-a | --auto | -d | --delete | <ramo>)" + +#: builtin/remote.c:17 +msgid "git remote [-v | --verbose] show [-n] <name>" +msgstr "git remote [-v | --verbose] show [-n] <nome>" + +#: builtin/remote.c:18 +msgid "git remote prune [-n | --dry-run] <name>" +msgstr "git remote prune [-n | --dry-run] <nome>" + +#: builtin/remote.c:19 +msgid "" +"git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)...]" +msgstr "" +"git remote [-v | --verbose] update [-p | --prune] [(<grupo> | <remoto>)...]" + +#: builtin/remote.c:20 +msgid "git remote set-branches [--add] <name> <branch>..." +msgstr "git remote set-branches [--add] <nome> <ramo>..." + +#: builtin/remote.c:21 builtin/remote.c:70 +msgid "git remote get-url [--push] [--all] <name>" +msgstr "git remote get-url [--push] [--all] <nome>" + +#: builtin/remote.c:22 builtin/remote.c:75 +msgid "git remote set-url [--push] <name> <newurl> [<oldurl>]" +msgstr "git remote set-url [--push] <nome> <novo-url> [<url-antigo>]" + +#: builtin/remote.c:23 builtin/remote.c:76 +msgid "git remote set-url --add <name> <newurl>" +msgstr "git remote set-url --add <nome> <novo-url>" + +#: builtin/remote.c:24 builtin/remote.c:77 +msgid "git remote set-url --delete <name> <url>" +msgstr "git remote set-url --delete <nome> <url>" + +#: builtin/remote.c:29 +msgid "git remote add [<options>] <name> <url>" +msgstr "git remote add [<opções>] <nome> <url>" + +#: builtin/remote.c:49 +msgid "git remote set-branches <name> <branch>..." +msgstr "git remote set-branches <nome> <ramo>..." + +#: builtin/remote.c:50 +msgid "git remote set-branches --add <name> <branch>..." +msgstr "git remote set-branches --add <nome> <ramo>..." + +#: builtin/remote.c:55 +msgid "git remote show [<options>] <name>" +msgstr "git remote show [<opções>] <nome>" + +#: builtin/remote.c:60 +msgid "git remote prune [<options>] <name>" +msgstr "git remote prune [<opções>] <nome>" + +#: builtin/remote.c:65 +msgid "git remote update [<options>] [<group> | <remote>]..." +msgstr "git remote update [<opções>] [<grupo> | <remoto>]..." + +#: builtin/remote.c:94 #, c-format msgid "Updating %s" -msgstr "Actualizando %s" +msgstr "A atualizar %s" -#: builtin/remote.c:130 +#: builtin/remote.c:126 msgid "" "--mirror is dangerous and deprecated; please\n" "\t use --mirror=fetch or --mirror=push instead" msgstr "" +"--mirror é perigoso e obsoleto;\n" +"\t use --mirror=fetch ou --mirror=push" -#: builtin/remote.c:147 +#: builtin/remote.c:143 #, c-format msgid "unknown mirror argument: %s" -msgstr "argumento mirror não conhecido: %s" +msgstr "argumento de mirror desconhecido: %s" + +#: builtin/remote.c:159 +msgid "fetch the remote branches" +msgstr "obter os ramos remotos" + +#: builtin/remote.c:161 +msgid "import all tags and associated objects when fetching" +msgstr "importar todas as tags e objetos associados ao obter" + +#: builtin/remote.c:164 +msgid "or do not fetch any tag at all (--no-tags)" +msgstr "ou não obter nenhuma tag (--no-tags)" + +#: builtin/remote.c:166 +msgid "branch(es) to track" +msgstr "ramos a seguir" + +#: builtin/remote.c:167 +msgid "master branch" +msgstr "ramo mestre" + +#: builtin/remote.c:168 +msgid "push|fetch" +msgstr "push|fetch" + +#: builtin/remote.c:169 +msgid "set up remote as a mirror to push to or fetch from" +msgstr "configurar o remoto como um espelho para publicar ou obter" -#: builtin/remote.c:185 +#: builtin/remote.c:181 msgid "specifying a master branch makes no sense with --mirror" -msgstr "" +msgstr "especificar um ramo mestre não faz sentido com --mirror" -#: builtin/remote.c:187 +#: builtin/remote.c:183 msgid "specifying branches to track makes sense only with fetch mirrors" -msgstr "" +msgstr "especificar ramos para seguir só faz sentido com fetch mirrors" -#: builtin/remote.c:195 -#: builtin/remote.c:646 +#: builtin/remote.c:190 builtin/remote.c:633 #, c-format msgid "remote %s already exists." -msgstr "o remoto %s já existe" +msgstr "o remoto %s já existe." -#: builtin/remote.c:199 -#: builtin/remote.c:650 +#: builtin/remote.c:194 builtin/remote.c:637 #, c-format msgid "'%s' is not a valid remote name" -msgstr "'%s' não é um nombe remoto valido" +msgstr "'%s' não é um nome de remoto válido" -#: builtin/remote.c:243 +#: builtin/remote.c:234 #, c-format msgid "Could not setup master '%s'" -msgstr "Não foi possÃvel configurar a rama master '%s'" +msgstr "Não foi possÃvel configuração o ramo mestre '%s'" -#: builtin/remote.c:299 -#, c-format -msgid "more than one %s" -msgstr "" - -#: builtin/remote.c:339 +#: builtin/remote.c:336 #, c-format msgid "Could not get fetch map for refspec %s" msgstr "" +"Não foi possÃvel obter o mapa de fetch do especificador de referência %s" -#: builtin/remote.c:440 -#: builtin/remote.c:448 +#: builtin/remote.c:437 builtin/remote.c:445 msgid "(matching)" -msgstr "" +msgstr "(correspondente)" -#: builtin/remote.c:452 +#: builtin/remote.c:449 msgid "(delete)" msgstr "(eliminado)" -#: builtin/remote.c:595 -#: builtin/remote.c:601 -#: builtin/remote.c:607 -#, c-format -msgid "Could not append '%s' to '%s'" -msgstr "Não foi possÃvel adicionar o '%s' para o '%s'" - -#: builtin/remote.c:639 -#: builtin/remote.c:792 -#: builtin/remote.c:890 +#: builtin/remote.c:626 builtin/remote.c:761 builtin/remote.c:858 #, c-format msgid "No such remote: %s" -msgstr "" +msgstr "Remoto inexistente: %s" -#: builtin/remote.c:656 +#: builtin/remote.c:643 #, c-format msgid "Could not rename config section '%s' to '%s'" -msgstr "Não foi possÃvel renombrar a secção da configuração de '%s' para '%s'" - -#: builtin/remote.c:662 -#: builtin/remote.c:799 -#, c-format -msgid "Could not remove config section '%s'" -msgstr "Não foi possÃvel remover a secção da configuração '%s'" +msgstr "" +"Não foi possÃvel mudar o nome da secção de configuração de '%s' para '%s'" -#: builtin/remote.c:677 +#: builtin/remote.c:663 #, c-format msgid "" -"Not updating non-default fetch respec\n" +"Not updating non-default fetch refspec\n" "\t%s\n" "\tPlease update the configuration manually if necessary." msgstr "" +"O seguinte especificador de referência, não-predefinido e usado para obter " +"objetos, não foi atualizado\n" +"\t%s\n" +"\tAtualize a configuração manualmente se necessário." -#: builtin/remote.c:683 -#, c-format -msgid "Could not append '%s'" -msgstr "Não foi possÃvel adicionar '%s'" - -#: builtin/remote.c:694 -#, c-format -msgid "Could not set '%s'" -msgstr "Não foi possÃvel atribuir '%s'" - -#: builtin/remote.c:716 +#: builtin/remote.c:699 #, c-format msgid "deleting '%s' failed" -msgstr "falhou eliminar '%s'" +msgstr "falha ao eliminar '%s'" -#: builtin/remote.c:750 +#: builtin/remote.c:733 #, c-format msgid "creating '%s' failed" -msgstr "falhou a criar '%s'" +msgstr "falha ao criar '%s'" -#: builtin/remote.c:764 -#, c-format -msgid "Could not remove branch %s" -msgstr "Não foi possÃvel remover rama %s" - -#: builtin/remote.c:834 +#: builtin/remote.c:796 msgid "" "Note: A branch outside the refs/remotes/ hierarchy was not removed;\n" "to delete it, use:" @@ -3924,1057 +9690,2752 @@ msgid_plural "" "Note: Some branches outside the refs/remotes/ hierarchy were not removed;\n" "to delete them, use:" msgstr[0] "" +"Nota: Um ramo fora da hierarquia refs/remotes/ não foi removido;\n" +"para o remover, use:" msgstr[1] "" +"Nota: alguns ramos fora da hierarquia refs/remotes/ não foram removidos;\n" +"para os remover, use:" + +#: builtin/remote.c:810 +#, c-format +msgid "Could not remove config section '%s'" +msgstr "Não foi possÃvel remover a secção de configuração '%s'" -#: builtin/remote.c:943 +#: builtin/remote.c:911 #, c-format msgid " new (next fetch will store in remotes/%s)" -msgstr "" +msgstr " novo (os próxima objetos obtidos serão guardados em remotes/%s)" -#: builtin/remote.c:946 +#: builtin/remote.c:914 msgid " tracked" -msgstr "seguido" +msgstr " seguido" -#: builtin/remote.c:948 +#: builtin/remote.c:916 msgid " stale (use 'git remote prune' to remove)" -msgstr "" +msgstr " obsoleto (use 'git remote prune' para remover)" -#: builtin/remote.c:950 +#: builtin/remote.c:918 msgid " ???" msgstr " ???" -#: builtin/remote.c:991 +#: builtin/remote.c:959 #, c-format msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch" msgstr "" +"branch.%s.merge inválido; não é possÃvel realizar rebase sobre mais do que " +"um ramo" -#: builtin/remote.c:998 +#: builtin/remote.c:967 #, c-format -msgid "rebases onto remote %s" -msgstr "" +msgid "rebases interactively onto remote %s" +msgstr "realiza rebase interativo sobre %s do remoto" -#: builtin/remote.c:1001 +#: builtin/remote.c:971 #, c-format msgid " merges with remote %s" -msgstr "Fundir com servidor remoto %s" +msgstr " realiza merge com %s do remoto" -#: builtin/remote.c:1002 +#: builtin/remote.c:972 msgid " and with remote" -msgstr " e com remoto" +msgstr " e com o remoto" -#: builtin/remote.c:1004 +#: builtin/remote.c:974 #, c-format msgid "merges with remote %s" -msgstr "Fundir com servidor remoto %s" +msgstr "realiza merge com %s do remoto" -#: builtin/remote.c:1005 +#: builtin/remote.c:975 msgid " and with remote" -msgstr " e com remoto" +msgstr " e com o remoto" -#: builtin/remote.c:1051 +#: builtin/remote.c:1021 msgid "create" -msgstr "creado" +msgstr "criado" -#: builtin/remote.c:1054 +#: builtin/remote.c:1024 msgid "delete" msgstr "eliminado" -#: builtin/remote.c:1058 +#: builtin/remote.c:1028 msgid "up to date" -msgstr "actualizado" +msgstr "atualizado" -#: builtin/remote.c:1061 +#: builtin/remote.c:1031 msgid "fast-forwardable" -msgstr "fast-forwardable" +msgstr "pode ser avançado rapidamente" -#: builtin/remote.c:1064 +#: builtin/remote.c:1034 msgid "local out of date" -msgstr "local desatualizada" +msgstr "local desatualizado" -#: builtin/remote.c:1071 +#: builtin/remote.c:1041 #, c-format msgid " %-*s forces to %-*s (%s)" -msgstr "" +msgstr " %-*s força em %-*s (%s)" -#: builtin/remote.c:1074 +#: builtin/remote.c:1044 #, c-format msgid " %-*s pushes to %-*s (%s)" -msgstr "" +msgstr " %-*s publica em %-*s (%s)" -#: builtin/remote.c:1078 +#: builtin/remote.c:1048 #, c-format msgid " %-*s forces to %s" -msgstr "" +msgstr " %-*s força em %s" -#: builtin/remote.c:1081 +#: builtin/remote.c:1051 #, c-format msgid " %-*s pushes to %s" -msgstr "" +msgstr " %-*s publica em %s" + +#: builtin/remote.c:1119 +msgid "do not query remotes" +msgstr "não consultar remotos" -#: builtin/remote.c:1118 +#: builtin/remote.c:1146 #, c-format msgid "* remote %s" -msgstr "* remota %s" +msgstr "* remoto %s" -#: builtin/remote.c:1119 +#: builtin/remote.c:1147 #, c-format msgid " Fetch URL: %s" -msgstr "" +msgstr " Obter do URL: %s" -#: builtin/remote.c:1120 -#: builtin/remote.c:1285 +#: builtin/remote.c:1148 builtin/remote.c:1299 msgid "(no URL)" msgstr "(nenhum URL)" -#: builtin/remote.c:1129 -#: builtin/remote.c:1131 +#: builtin/remote.c:1157 builtin/remote.c:1159 #, c-format msgid " Push URL: %s" -msgstr "" +msgstr " Publicar no URL: %s" -#: builtin/remote.c:1133 -#: builtin/remote.c:1135 -#: builtin/remote.c:1137 +#: builtin/remote.c:1161 builtin/remote.c:1163 builtin/remote.c:1165 #, c-format msgid " HEAD branch: %s" -msgstr "Rama HEAD: %s" +msgstr " Ramo HEAD: %s" -#: builtin/remote.c:1139 +#: builtin/remote.c:1167 #, c-format -msgid " HEAD branch (remote HEAD is ambiguous, may be one of the following):\n" -msgstr "" +msgid "" +" HEAD branch (remote HEAD is ambiguous, may be one of the following):\n" +msgstr " Ramo HEAD (o remoto HEAD é ambÃguo, pode ser um dos seguintes):\n" -#: builtin/remote.c:1151 +#: builtin/remote.c:1179 #, c-format msgid " Remote branch:%s" msgid_plural " Remote branches:%s" -msgstr[0] "Rama remota:%s" -msgstr[1] "Ramas remotas:%s'" +msgstr[0] " Ramo remoto:%s" +msgstr[1] " Ramos remotos:%s" -#: builtin/remote.c:1154 -#: builtin/remote.c:1181 +#: builtin/remote.c:1182 builtin/remote.c:1209 msgid " (status not queried)" -msgstr "" +msgstr " (estado não consultado)" -#: builtin/remote.c:1163 +#: builtin/remote.c:1191 msgid " Local branch configured for 'git pull':" msgid_plural " Local branches configured for 'git pull':" -msgstr[0] "" -msgstr[1] "" +msgstr[0] " Ramo local configurado para 'git pull':" +msgstr[1] " Ramos locais configurados para 'git pull':" -#: builtin/remote.c:1171 +#: builtin/remote.c:1199 msgid " Local refs will be mirrored by 'git push'" -msgstr "" +msgstr " Referências locais serão refletidas (mirror) por 'git push'" -#: builtin/remote.c:1178 +#: 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] "" +msgstr[0] " Referência local configurada para 'git push'%s:" +msgstr[1] " Referências locais configuradas para 'git push'%s:" -#: builtin/remote.c:1216 +#: builtin/remote.c:1227 +msgid "set refs/remotes/<name>/HEAD according to remote" +msgstr "definir refs/remotes/<nome>/HEAD de acordo com o remoto" + +#: builtin/remote.c:1229 +msgid "delete refs/remotes/<name>/HEAD" +msgstr "eliminar refs/remotes/<nome>/HEAD" + +#: builtin/remote.c:1244 msgid "Cannot determine remote HEAD" -msgstr "" +msgstr "Não é possÃvel determinar o remoto HEAD" -#: builtin/remote.c:1218 +#: builtin/remote.c:1246 msgid "Multiple remote HEAD branches. Please choose one explicitly with:" -msgstr "" +msgstr "Múltiplos ramos HEAD remotos. Escolha um explicitamente com:" -#: builtin/remote.c:1228 +#: builtin/remote.c:1256 #, c-format msgid "Could not delete %s" -msgstr "Não foi possÃvel abrir %s" +msgstr "Não foi possÃvel eliminar %s" -#: builtin/remote.c:1236 +#: builtin/remote.c:1264 #, c-format msgid "Not a valid ref: %s" -msgstr "" +msgstr "Referência inválida: %s" -#: builtin/remote.c:1238 +#: builtin/remote.c:1266 #, c-format msgid "Could not setup %s" msgstr "Não foi possÃvel configurar %s" -#: builtin/remote.c:1274 +#: builtin/remote.c:1284 #, c-format msgid " %s will become dangling!" -msgstr "" +msgstr " %s ficará suspenso!" -#: builtin/remote.c:1275 +#: builtin/remote.c:1285 #, c-format msgid " %s has become dangling!" -msgstr "" +msgstr " %s ficou suspenso!" -#: builtin/remote.c:1281 +#: builtin/remote.c:1295 #, c-format msgid "Pruning %s" -msgstr "Apagando %s" +msgstr "A eliminar %s" -#: builtin/remote.c:1282 +#: builtin/remote.c:1296 #, c-format msgid "URL: %s" msgstr "URL: %s" -#: builtin/remote.c:1295 +#: builtin/remote.c:1312 #, c-format msgid " * [would prune] %s" -msgstr "" +msgstr " * [eliminaria] %s" -#: builtin/remote.c:1298 +#: builtin/remote.c:1315 #, c-format msgid " * [pruned] %s" -msgstr "" +msgstr " * [eliminado] %s" -#: builtin/remote.c:1387 -#: builtin/remote.c:1461 +#: builtin/remote.c:1360 +msgid "prune remotes after fetching" +msgstr "eliminar remotos depois de obter" + +#: builtin/remote.c:1423 builtin/remote.c:1477 builtin/remote.c:1545 #, c-format msgid "No such remote '%s'" -msgstr "Não existe este remoto '%s'" +msgstr "Remoto inexistente '%s'" + +#: builtin/remote.c:1439 +msgid "add branch" +msgstr "adicionar ramo" -#: builtin/remote.c:1414 +#: builtin/remote.c:1446 msgid "no remote specified" -msgstr "Nenhum remoto especificado" +msgstr "nenhum remoto especificado" + +#: builtin/remote.c:1463 +msgid "query push URLs rather than fetch URLs" +msgstr "consultar URLs de publicação em vez de URLs utilizados para obter" -#: builtin/remote.c:1447 +#: builtin/remote.c:1465 +msgid "return all URLs" +msgstr "retornar todos os URLs" + +#: builtin/remote.c:1493 +#, c-format +msgid "no URLs configured for remote '%s'" +msgstr "o remoto '%s' não tem nenhum URL configurado" + +#: builtin/remote.c:1519 +msgid "manipulate push URLs" +msgstr "manipular URLs de publicação" + +#: builtin/remote.c:1521 +msgid "add URL" +msgstr "adicionar URL" + +#: builtin/remote.c:1523 +msgid "delete URLs" +msgstr "eliminar URLs" + +#: builtin/remote.c:1530 msgid "--add --delete doesn't make sense" -msgstr "" +msgstr "--add --delete não faz sentido" -#: builtin/remote.c:1487 +#: builtin/remote.c:1571 #, c-format msgid "Invalid old URL pattern: %s" -msgstr "" +msgstr "Padrão de URL antigo inválido: %s" -#: builtin/remote.c:1495 +#: builtin/remote.c:1579 #, c-format msgid "No such URL found: %s" -msgstr "Nenhum URL encontrado: %s" +msgstr "URL não encontrado: %s" -#: builtin/remote.c:1497 +#: builtin/remote.c:1581 msgid "Will not delete all non-push URLs" +msgstr "Não é possÃvel remover todos os URLs de não publicação" + +#: builtin/remote.c:1595 +msgid "be verbose; must be placed before a subcommand" +msgstr "ser verboso; deve ser colocado antes de um subcomando" + +#: builtin/repack.c:17 +msgid "git repack [<options>]" +msgstr "git repack [<opções>]" + +#: builtin/repack.c:159 +msgid "pack everything in a single pack" +msgstr "compactar tudo num único pacote" + +#: builtin/repack.c:161 +msgid "same as -a, and turn unreachable objects loose" +msgstr "o mesmo que -a, e soltar objetos inalcançáveis" + +#: builtin/repack.c:164 +msgid "remove redundant packs, and run git-prune-packed" +msgstr "remover pacotes redundantes e executar git-prune-packed" + +#: builtin/repack.c:166 +msgid "pass --no-reuse-delta to git-pack-objects" +msgstr "passar --no-reuse-delta ao git-pack-objects" + +#: builtin/repack.c:168 +msgid "pass --no-reuse-object to git-pack-objects" +msgstr "passar --no-reuse-object ao git-pack-objects" + +#: builtin/repack.c:170 +msgid "do not run git-update-server-info" +msgstr "não executar git-update-server-info" + +#: builtin/repack.c:173 +msgid "pass --local to git-pack-objects" +msgstr "passar --local ao git-pack-objects" + +#: builtin/repack.c:175 +msgid "write bitmap index" +msgstr "escrever Ãndice de mapa de bits" + +#: builtin/repack.c:176 +msgid "approxidate" +msgstr "aproximar" + +#: builtin/repack.c:177 +msgid "with -A, do not loosen objects older than this" +msgstr "com -A, não soltar mais objetos além destes" + +#: builtin/repack.c:179 +msgid "size of the window used for delta compression" +msgstr "dimensão da janela usada em compressão de deltas" + +#: builtin/repack.c:180 builtin/repack.c:184 +msgid "bytes" +msgstr "bytes" + +#: builtin/repack.c:181 +msgid "same as the above, but limit memory size instead of entries count" +msgstr "" +"o mesmo que o anterior, mas limitar a memória usada em vez do número de " +"entradas" + +#: builtin/repack.c:183 +msgid "limits the maximum delta depth" +msgstr "limitar a profundidade máxima de delta" + +#: builtin/repack.c:185 +msgid "maximum size of each packfile" +msgstr "tamanho máximo de cada ficheiro de pacote" + +#: builtin/repack.c:187 +msgid "repack objects in packs marked with .keep" +msgstr "reempacotar objetos em pacotes marcados com .keep" + +#: builtin/repack.c:197 +msgid "cannot delete packs in a precious-objects repo" +msgstr "não é possÃvel eliminar pacotes num repositório de objetos-preciosos" + +#: builtin/repack.c:381 +#, c-format +msgid "removing '%s' failed" +msgstr "falha ao remover '%s'" + +#: builtin/replace.c:19 +msgid "git replace [-f] <object> <replacement>" +msgstr "git replace [-f] <objeto> <substituição>" + +#: builtin/replace.c:20 +msgid "git replace [-f] --edit <object>" +msgstr "git replace [-f] --edit <objeto>" + +#: builtin/replace.c:21 +msgid "git replace [-f] --graft <commit> [<parent>...]" +msgstr "git replace [-f] --graft <commit> [<pai>...]" + +#: builtin/replace.c:22 +msgid "git replace -d <object>..." +msgstr "git replace -d <objeto>..." + +#: builtin/replace.c:23 +msgid "git replace [--format=<format>] [-l [<pattern>]]" +msgstr "git replace [--format=<formato>] [-l [<padrão>]]" + +#: builtin/replace.c:325 builtin/replace.c:363 builtin/replace.c:391 +#, c-format +msgid "Not a valid object name: '%s'" +msgstr "Nome de objeto inválido: '%s'" + +#: builtin/replace.c:355 +#, c-format +msgid "bad mergetag in commit '%s'" +msgstr "mergetag incorreta no commit '%s'" + +#: builtin/replace.c:357 +#, c-format +msgid "malformed mergetag in commit '%s'" +msgstr "mergetag malformada no commit '%s' " + +#: builtin/replace.c:368 +#, c-format +msgid "" +"original commit '%s' contains mergetag '%s' that is discarded; use --edit " +"instead of --graft" +msgstr "" +"o commit original '%s' contém a mergetag '%s' que foi excluÃda; use --edit " +"em vez de --graft" + +#: builtin/replace.c:401 +#, c-format +msgid "the original commit '%s' has a gpg signature." +msgstr "o commit original '%s' tem uma assinatura gpg." + +#: builtin/replace.c:402 +msgid "the signature will be removed in the replacement commit!" +msgstr "a assinatura será removida do commit substituto!" + +#: builtin/replace.c:408 +#, c-format +msgid "could not write replacement commit for: '%s'" +msgstr "não foi possÃvel escrever o commit substituto de: '%s'" + +#: builtin/replace.c:432 +msgid "list replace refs" +msgstr "listar referências substituÃdas" + +#: builtin/replace.c:433 +msgid "delete replace refs" +msgstr "eliminar referências substituÃdas" + +#: builtin/replace.c:434 +msgid "edit existing object" +msgstr "editar objeto existente" + +#: builtin/replace.c:435 +msgid "change a commit's parents" +msgstr "mudar os pais de um commit" + +#: builtin/replace.c:436 +msgid "replace the ref if it exists" +msgstr "substituir a referência se esta existir" + +#: builtin/replace.c:437 +msgid "do not pretty-print contents for --edit" +msgstr "não mostrar o conteúdo de --edit com impressão bonita" + +#: builtin/replace.c:438 +msgid "use this format" +msgstr "usar este formato" + +#: builtin/rerere.c:12 +msgid "git rerere [clear | forget <path>... | status | remaining | diff | gc]" +msgstr "" +"git rerere [clear | forget <caminho>... | status | remaining | diff | gc]" + +#: builtin/rerere.c:58 +msgid "register clean resolutions in index" +msgstr "registar resoluções limpas no Ãndice" + +#: builtin/reset.c:26 +msgid "" +"git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<commit>]" msgstr "" +"git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<commit>]" -#: builtin/reset.c:33 +#: builtin/reset.c:27 +msgid "git reset [-q] <tree-ish> [--] <paths>..." +msgstr "git reset [-q] <árvore> [--] <caminhos>..." + +#: builtin/reset.c:28 +msgid "git reset --patch [<tree-ish>] [--] [<paths>...]" +msgstr "git reset --patch [<árvore>] [--] [<caminhos>...]" + +#: builtin/reset.c:34 msgid "mixed" -msgstr "mistura" +msgstr "misturado" -#: builtin/reset.c:33 +#: builtin/reset.c:34 msgid "soft" -msgstr "leve" +msgstr "suave" -#: builtin/reset.c:33 +#: builtin/reset.c:34 msgid "hard" msgstr "forte" -#: builtin/reset.c:33 +#: builtin/reset.c:34 msgid "merge" -msgstr "juntar" +msgstr "merge" -#: builtin/reset.c:33 +#: builtin/reset.c:34 msgid "keep" -msgstr "manter" +msgstr "conservador" -#: builtin/reset.c:77 +#: builtin/reset.c:74 msgid "You do not have a valid HEAD." -msgstr "Não tens a HEAD válida." +msgstr "HEAD inválida." -#: builtin/reset.c:79 +#: builtin/reset.c:76 msgid "Failed to find tree of HEAD." -msgstr "" +msgstr "Falha ao procurar árvore de HEAD." -#: builtin/reset.c:85 +#: builtin/reset.c:82 #, c-format msgid "Failed to find tree of %s." -msgstr "" - -#: builtin/reset.c:96 -msgid "Could not write new index file." -msgstr "" +msgstr "Falha ao procurar árvore de %s." -#: builtin/reset.c:106 +#: builtin/reset.c:100 #, c-format msgid "HEAD is now at %s" -msgstr "HEAD é agora em %s" +msgstr "HEAD está agora em %s" -#: builtin/reset.c:130 -msgid "Could not read index" -msgstr "" +#: builtin/reset.c:183 +#, c-format +msgid "Cannot do a %s reset in the middle of a merge." +msgstr "Não é possÃvel repor de modo %s durante um merge." -#: builtin/reset.c:133 -msgid "Unstaged changes after reset:" -msgstr "" +#: builtin/reset.c:276 +msgid "be quiet, only report errors" +msgstr "silencioso, só reportar erros" + +#: builtin/reset.c:278 +msgid "reset HEAD and index" +msgstr "repor HEAD e Ãndice" -#: builtin/reset.c:223 +#: builtin/reset.c:279 +msgid "reset only HEAD" +msgstr "repor HEAD apenas" + +#: builtin/reset.c:281 builtin/reset.c:283 +msgid "reset HEAD, index and working tree" +msgstr "repor HEAD, Ãndice e árvore de trabalho" + +#: builtin/reset.c:285 +msgid "reset HEAD but keep local changes" +msgstr "repor HEAD mas conservar alterações locais" + +#: builtin/reset.c:288 +msgid "record only the fact that removed paths will be added later" +msgstr "registar apenas o facto de que os caminhos removidos serão adicionados" + +#: builtin/reset.c:305 #, c-format -msgid "Cannot do a %s reset in the middle of a merge." -msgstr "" +msgid "Failed to resolve '%s' as a valid revision." +msgstr "Falha ao resolver '%s' como referência válida." -#: builtin/reset.c:297 +#: builtin/reset.c:313 #, c-format -msgid "Could not parse object '%s'." -msgstr "Não foi possÃvel analisar objeto '%s'." +msgid "Failed to resolve '%s' as a valid tree." +msgstr "Falha ao resolver '%s' como árvore válida." -#: builtin/reset.c:302 +#: builtin/reset.c:322 msgid "--patch is incompatible with --{hard,mixed,soft}" -msgstr "" +msgstr "--patch é incompatÃvel com --{hard,mixed,soft}" -#: builtin/reset.c:311 +#: builtin/reset.c:331 msgid "--mixed with paths is deprecated; use 'git reset -- <paths>' instead." msgstr "" +"--mixed acompanhado com caminhos é obsoleto; use 'git reset -- <caminhos>'." -#: builtin/reset.c:313 +#: builtin/reset.c:333 #, c-format msgid "Cannot do %s reset with paths." -msgstr "" +msgstr "Não é possÃvel repor de modo %s com caminhos." -#: builtin/reset.c:325 +#: builtin/reset.c:343 #, c-format msgid "%s reset is not allowed in a bare repository" -msgstr "" +msgstr "Não é permitido repor de modo %s num repositório nu" -#: builtin/reset.c:341 +#: builtin/reset.c:347 +msgid "-N can only be used with --mixed" +msgstr "-N só pode ser usado com --mixed" + +#: builtin/reset.c:364 +msgid "Unstaged changes after reset:" +msgstr "Alterações não preparadas depois de repor:" + +#: builtin/reset.c:370 #, c-format msgid "Could not reset index file to revision '%s'." +msgstr "Não foi possÃvel repor o ficheiro Ãndice para a revisão '%s'." + +#: builtin/reset.c:374 +msgid "Could not write new index file." +msgstr "Não foi possÃvel escrever novo ficheiro de Ãndice." + +#: builtin/rev-list.c:350 +msgid "rev-list does not support display of notes" +msgstr "rev-list não suporta apresentação de notas" + +#: builtin/rev-parse.c:358 +msgid "git rev-parse --parseopt [<options>] -- [<args>...]" +msgstr "git rev-parse --parseopt [<opções>] -- [<argumentos>...]" + +#: builtin/rev-parse.c:363 +msgid "keep the `--` passed as an arg" +msgstr "Conservar '--' passado como argumento" + +#: builtin/rev-parse.c:365 +msgid "stop parsing after the first non-option argument" +msgstr "parar de analisar depois do primeiro argumento que não seja uma opção" + +#: builtin/rev-parse.c:368 +msgid "output in stuck long form" +msgstr "mostrar em formato fixo e longo" + +#: builtin/rev-parse.c:499 +msgid "" +"git rev-parse --parseopt [<options>] -- [<args>...]\n" +" or: git rev-parse --sq-quote [<arg>...]\n" +" or: git rev-parse [<options>] [<arg>...]\n" +"\n" +"Run \"git rev-parse --parseopt -h\" for more information on the first usage." msgstr "" +"git rev-parse --parseopt [<opções>] -- [<argumentos>...]\n" +" or: git rev-parse --sq-quote [<argumentos>...]\n" +" or: git rev-parse [<opções>] [<argumentos>...]\n" +"\n" +"Execute \"git rev-parse --parseopt -h\" para obter mais informação sobre a " +"primeira utilização." + +#: builtin/revert.c:22 +msgid "git revert [<options>] <commit-ish>..." +msgstr "git revert [<opções>] <commit-ish>..." + +#: builtin/revert.c:23 +msgid "git revert <subcommand>" +msgstr "git revert <subcommando>" -#: builtin/revert.c:70 -#: builtin/revert.c:92 +#: builtin/revert.c:28 +msgid "git cherry-pick [<options>] <commit-ish>..." +msgstr "git cherry-pick [<opções>] <commit-ish>..." + +#: builtin/revert.c:29 +msgid "git cherry-pick <subcommand>" +msgstr "git cherry-pick <subcommando>" + +#: builtin/revert.c:71 #, c-format msgid "%s: %s cannot be used with %s" -msgstr "" +msgstr "%s: %s não pode ser usado com %s" + +#: builtin/revert.c:80 +msgid "end revert or cherry-pick sequence" +msgstr "terminar reversão ou cherry-pick" + +#: builtin/revert.c:81 +msgid "resume revert or cherry-pick sequence" +msgstr "retomar a reversão ou cherry-pick" + +#: builtin/revert.c:82 +msgid "cancel revert or cherry-pick sequence" +msgstr "cancelar reversão ou cherry-pick" + +#: builtin/revert.c:83 +msgid "don't automatically commit" +msgstr "não efetuar commit automaticamente" + +#: builtin/revert.c:84 +msgid "edit the commit message" +msgstr "editar a mensagem de commit" + +#: builtin/revert.c:87 +msgid "parent number" +msgstr "número de pai" -#: builtin/revert.c:131 +#: builtin/revert.c:89 +msgid "merge strategy" +msgstr "estratégia de merge" + +#: builtin/revert.c:90 +msgid "option" +msgstr "opção" + +#: builtin/revert.c:91 +msgid "option for merge strategy" +msgstr "opção de estratégia de merge" + +#: builtin/revert.c:104 +msgid "append commit name" +msgstr "acrescentar nome do commit" + +#: builtin/revert.c:106 +msgid "preserve initially empty commits" +msgstr "preservar commits inicialmente vazios" + +#: builtin/revert.c:107 +msgid "allow commits with empty messages" +msgstr "permitir commits com mensagens vazias" + +#: builtin/revert.c:108 +msgid "keep redundant, empty commits" +msgstr "manter commits redundantes e vazios" + +#: builtin/revert.c:112 msgid "program error" msgstr "erro do programa" -#: builtin/revert.c:221 +#: builtin/revert.c:197 msgid "revert failed" -msgstr "falhou o revert" +msgstr "falha ao reverter" -#: builtin/revert.c:236 +#: builtin/revert.c:212 msgid "cherry-pick failed" -msgstr "cherry-pick falhou" +msgstr "falha ao efetuar cherry-pick" -#: builtin/rm.c:109 -#, c-format +#: builtin/rm.c:17 +msgid "git rm [<options>] [--] <file>..." +msgstr "git rm [<opções>] [--] <ficheiro>..." + +#: builtin/rm.c:65 msgid "" -"'%s' has staged content different from both the file and the HEAD\n" -"(use -f to force removal)" +"the following submodule (or one of its nested submodules)\n" +"uses a .git directory:" +msgid_plural "" +"the following submodules (or one of their nested submodules)\n" +"use a .git directory:" +msgstr[0] "" +"o submódulo seguinte (ou um dos seus submódulos aninhados)\n" +"usa um diretório .git:" +msgstr[1] "" +"os submódulos seguintes (ou um dos seus submódulos)\n" +"usam um diretório .git:" + +#: builtin/rm.c:71 +msgid "" +"\n" +"(use 'rm -rf' if you really want to remove it including all of its history)" msgstr "" +"\n" +"(use 'rm -rf' se quer mesmo removê-lo, incluindo todo o seu histórico)" -#: builtin/rm.c:115 -#, c-format +#: builtin/rm.c:230 msgid "" -"'%s' has changes staged in the index\n" -"(use --cached to keep the file, or -f to force removal)" +"the following file has staged content different from both the\n" +"file and the HEAD:" +msgid_plural "" +"the following files have staged content different from both the\n" +"file and the HEAD:" +msgstr[0] "" +"o seguinte ficheiro tem conteúdo preparado no Ãndice diferente\n" +"do conteúdo no ficheiro e em HEAD:" +msgstr[1] "" +"os seguintes ficheiros têm conteúdo preparado no Ãndice diferente\n" +"do conteúdo no ficheiro e em HEAD:" + +#: builtin/rm.c:235 +msgid "" +"\n" +"(use -f to force removal)" msgstr "" +"\n" +"(use -f para forçar remoção)" -#: builtin/rm.c:119 -#, c-format +#: builtin/rm.c:239 +msgid "the following file has changes staged in the index:" +msgid_plural "the following files have changes staged in the index:" +msgstr[0] "o seguinte ficheiro contém alterações preparadas no Ãndice:" +msgstr[1] "os seguintes ficheiros contêm alterações preparadas no Ãndice:" + +#: builtin/rm.c:243 builtin/rm.c:254 msgid "" -"'%s' has local modifications\n" +"\n" "(use --cached to keep the file, or -f to force removal)" msgstr "" +"\n" +"(use --cached para manter o ficheiro, ou -f para forçar remoção)" + +#: builtin/rm.c:251 +msgid "the following file has local modifications:" +msgid_plural "the following files have local modifications:" +msgstr[0] "o seguinte ficheiro contém alterações locais:" +msgstr[1] "os seguintes ficheiros contêm alterações locais:" + +#: builtin/rm.c:269 +msgid "do not list removed files" +msgstr "não listar ficheiros removidos" + +#: builtin/rm.c:270 +msgid "only remove from the index" +msgstr "remover apenas do Ãndice" + +#: builtin/rm.c:271 +msgid "override the up-to-date check" +msgstr "ignorar verificação de atualização" + +#: builtin/rm.c:272 +msgid "allow recursive removal" +msgstr "permitir remoção recursiva" + +#: builtin/rm.c:274 +msgid "exit with a zero status even if nothing matched" +msgstr "sair com valor zero mesmo quando não há correspondência" -#: builtin/rm.c:194 +#: builtin/rm.c:317 +msgid "Please, stage your changes to .gitmodules or stash them to proceed" +msgstr "" +"Prepare as suas alterações em .gitmodules ou esconda-as (stash) para " +"prosseguir" + +#: builtin/rm.c:335 #, c-format msgid "not removing '%s' recursively without -r" -msgstr "" +msgstr "não remover '%s' recursivamente sem -r" -#: builtin/rm.c:230 +#: builtin/rm.c:374 #, c-format msgid "git rm: unable to remove %s" +msgstr "git rm: não é possÃvel remover %s" + +#: builtin/send-pack.c:18 +msgid "" +"git send-pack [--all | --mirror] [--dry-run] [--force] [--receive-pack=<git-" +"receive-pack>] [--verbose] [--thin] [--atomic] [<host>:]<directory> " +"[<ref>...]\n" +" --all and explicit <ref> specification are mutually exclusive." +msgstr "" +"git send-pack [--all | --mirror] [--dry-run] [--force] [--receive-pack=<git-" +"receive-pack>] [--verbose] [--thin] [--atomic] [<host>:]<diretório> " +"[<referência>...]\n" +" --all e especificação explicita duma <referência> são mutuamente " +"exclusivos." + +#: builtin/send-pack.c:160 +msgid "remote name" +msgstr "nome do remoto" + +#: builtin/send-pack.c:171 +msgid "use stateless RPC protocol" +msgstr "use protocolo RPC sem estado" + +#: builtin/send-pack.c:172 +msgid "read refs from stdin" +msgstr "ler referências do stdin" + +#: builtin/send-pack.c:173 +msgid "print status from remote helper" +msgstr "imprimir estado do programa auxiliar remoto" + +#: builtin/shortlog.c:13 +msgid "git shortlog [<options>] [<revision-range>] [[--] [<path>...]]" msgstr "" +"git shortlog [<opções>] [<intervalo-de-revisões>] [[--] [<caminho>...]]" -#: builtin/shortlog.c:157 +#: builtin/shortlog.c:242 +msgid "sort output according to the number of commits per author" +msgstr "ordenar saÃda de acordo com o número de commits por autor" + +#: builtin/shortlog.c:244 +msgid "Suppress commit descriptions, only provides commit count" +msgstr "suprimir a descrição dos commits, fornecer apenas o número de commits" + +#: builtin/shortlog.c:246 +msgid "Show the email address of each author" +msgstr "Mostrar o endereço de e-mail de cada autor" + +#: builtin/shortlog.c:247 +msgid "w[,i1[,i2]]" +msgstr "w[,i1[,i2]]" + +#: builtin/shortlog.c:248 +msgid "Linewrap output" +msgstr "ajustar linhas" + +#: builtin/show-branch.c:10 +msgid "" +"git show-branch [-a | --all] [-r | --remotes] [--topo-order | --date-order]\n" +"\t\t[--current] [--color[=<when>] | --no-color] [--sparse]\n" +"\t\t[--more=<n> | --list | --independent | --merge-base]\n" +"\t\t[--no-name | --sha1-name] [--topics] [(<rev> | <glob>)...]" +msgstr "" +"git show-branch [-a | --all] [-r | --remotes] [--topo-order | --date-order]\n" +"\t\t[--current] [--color[=<when>] | --no-color] [--sparse]\n" +"\t\t[--more=<n> | --list | --independent | --merge-base]\n" +"\t\t[--no-name | --sha1-name] [--topics] [(<revisão> | <glob>)...]" + +#: builtin/show-branch.c:14 +msgid "git show-branch (-g | --reflog)[=<n>[,<base>]] [--list] [<ref>]" +msgstr "git show-branch (-g | --reflog)[=<n>[,<base>]] [--list] [<referência>]" + +#: builtin/show-branch.c:640 +msgid "show remote-tracking and local branches" +msgstr "mostrar os ramos remotos seguidos e os ramos locais" + +#: builtin/show-branch.c:642 +msgid "show remote-tracking branches" +msgstr "mostrar os ramos remotos seguidos" + +#: builtin/show-branch.c:644 +msgid "color '*!+-' corresponding to the branch" +msgstr "colorir '*!+-' correspondendo ao ramo" + +#: builtin/show-branch.c:646 +msgid "show <n> more commits after the common ancestor" +msgstr "mostrar mais <n> commits depois do antecessor comum" + +#: builtin/show-branch.c:648 +msgid "synonym to more=-1" +msgstr "sinónimo de more=-1" + +#: builtin/show-branch.c:649 +msgid "suppress naming strings" +msgstr "suprimir a cadeias de caracteres de nomes" + +#: builtin/show-branch.c:651 +msgid "include the current branch" +msgstr "incluir o ramo atual" + +#: builtin/show-branch.c:653 +msgid "name commits with their object names" +msgstr "designar commits pelos seus nomes de objeto" + +#: builtin/show-branch.c:655 +msgid "show possible merge bases" +msgstr "mostrar possÃveis bases de merge" + +#: builtin/show-branch.c:657 +msgid "show refs unreachable from any other ref" +msgstr "mostrar referências inalcançáveis a partir de outras referências" + +#: builtin/show-branch.c:659 +msgid "show commits in topological order" +msgstr "mostrar commits em ordem topológica" + +#: builtin/show-branch.c:662 +msgid "show only commits not on the first branch" +msgstr "mostrar apenas commits não presentes no primeiro ramo" + +#: builtin/show-branch.c:664 +msgid "show merges reachable from only one tip" +msgstr "mostrar merges alcançáveis a partir duma única ponta" + +#: builtin/show-branch.c:666 +msgid "topologically sort, maintaining date order where possible" +msgstr "" +"ordenar topologicamente, mantendo a ordenação por data sempre que possÃvel" + +#: builtin/show-branch.c:669 +msgid "<n>[,<base>]" +msgstr "<n>[,<base>]" + +#: builtin/show-branch.c:670 +msgid "show <n> most recent ref-log entries starting at base" +msgstr "mostrar as <n> entradas de ref-log mais recente a partir da base" + +#: builtin/show-ref.c:10 +msgid "" +"git show-ref [-q | --quiet] [--verify] [--head] [-d | --dereference] [-s | --" +"hash[=<n>]] [--abbrev[=<n>]] [--tags] [--heads] [--] [<pattern>...]" +msgstr "" +"git show-ref [-q | --quiet] [--verify] [--head] [-d | --dereference] [-s | --" +"hash[=<n>]] [--abbrev[=<n>]] [--tags] [--heads] [--] [<padrão>...]" + +#: builtin/show-ref.c:11 +msgid "git show-ref --exclude-existing[=<pattern>]" +msgstr "git show-ref --exclude-existing[=<padrão>]" + +#: builtin/show-ref.c:165 +msgid "only show tags (can be combined with heads)" +msgstr "mostrar apenas tags (pode ser combinado com heads)" + +#: builtin/show-ref.c:166 +msgid "only show heads (can be combined with tags)" +msgstr "mostrar apenas cabeças (pode ser combinado com tags)" + +#: builtin/show-ref.c:167 +msgid "stricter reference checking, requires exact ref path" +msgstr "" +"verificação de referências mais rigorosa, requer o caminho exato da " +"referência" + +#: builtin/show-ref.c:170 builtin/show-ref.c:172 +msgid "show the HEAD reference, even if it would be filtered out" +msgstr "mostrar a referência HEAD, mesmo que fosse filtrada" + +#: builtin/show-ref.c:174 +msgid "dereference tags into object IDs" +msgstr "desreferenciar tags em IDs de objeto" + +#: builtin/show-ref.c:176 +msgid "only show SHA1 hash using <n> digits" +msgstr "mostrar hash SHA1 com <n> digitos" + +#: builtin/show-ref.c:180 +msgid "do not print results to stdout (useful with --verify)" +msgstr "não imprimir resultados para o stdout (útil com --verify)" + +#: builtin/show-ref.c:182 +msgid "show refs from stdin that aren't in local repository" +msgstr "mostrar referências do stdin que não estão no repositório local" + +#: builtin/stripspace.c:17 +msgid "git stripspace [-s | --strip-comments]" +msgstr "git stripspace [-s | --strip-comments]" + +#: builtin/stripspace.c:18 +msgid "git stripspace [-c | --comment-lines]" +msgstr "git stripspace [-c | --comment-lines]" + +#: builtin/stripspace.c:35 +msgid "skip and remove all lines starting with comment character" +msgstr "" +"ignorar e remover todas as linhas começadas com um carácter de comentário" + +#: builtin/stripspace.c:38 +msgid "prepend comment character and space to each line" +msgstr "preceder cada linha com um carácter de comentário e um espaço" + +#: builtin/submodule--helper.c:73 builtin/submodule--helper.c:161 +msgid "alternative anchor for relative paths" +msgstr "âncora alternativa para caminhos relativos" + +#: builtin/submodule--helper.c:78 +msgid "git submodule--helper list [--prefix=<path>] [<path>...]" +msgstr "git submodule--helper list [--prefix=<caminho>] [<caminho>...]" + +#: builtin/submodule--helper.c:108 +msgid "git submodule--helper name <path>" +msgstr "git submodule--helper name <caminho>" + +#: builtin/submodule--helper.c:114 +#, c-format +msgid "no submodule mapping found in .gitmodules for path '%s'" +msgstr "" +"nenhum mapeamento de submódulo do caminho '%s' encontrado em .gitmodules" + +#: builtin/submodule--helper.c:164 +msgid "where the new submodule will be cloned to" +msgstr "sÃtio para aonde o novo submódulo será clonado" + +#: builtin/submodule--helper.c:167 +msgid "name of the new submodule" +msgstr "nome do novo submódulo" + +#: builtin/submodule--helper.c:170 +msgid "url where to clone the submodule from" +msgstr "url donde clonar o submódulos" + +#: builtin/submodule--helper.c:176 +msgid "depth for shallow clones" +msgstr "profundidade de clones rasos" + +#: 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=<caminho>] [--quiet] [--reference " +"<repositório>] [--name <nome>] [--url <url>][--depth <profundidade>] [--] " +"[<caminho>...]" + +#: builtin/submodule--helper.c:196 builtin/submodule--helper.c:202 +#: builtin/submodule--helper.c:210 #, c-format -msgid "Missing author: %s" -msgstr "Autor em falta: %s" +msgid "could not create directory '%s'" +msgstr "não foi possÃvel criar o diretório '%s'" -#: builtin/tag.c:60 +#: builtin/submodule--helper.c:198 #, c-format -msgid "malformed object at '%s'" +msgid "clone of '%s' into submodule path '%s' failed" +msgstr "falha ao clonar '%s' no caminho do submódulo '%s'" + +#: builtin/submodule--helper.c:221 +#, c-format +msgid "cannot open file '%s'" +msgstr "não é possÃvel abrir o ficheiro '%s'" + +#: builtin/submodule--helper.c:226 +#, c-format +msgid "could not close file %s" +msgstr "não é possÃvel fechar o ficheiro %s" + +#: builtin/submodule--helper.c:241 +#, c-format +msgid "could not get submodule directory for '%s'" +msgstr "não foi possÃvel obter o o diretório do submódulo de '%s'" + +#: builtin/submodule--helper.c:267 +msgid "fatal: submodule--helper subcommand must be called with a subcommand" msgstr "" +"fatal: o subcomando submodule--helper deve ser invocado com um subcomando" -#: builtin/tag.c:207 +#: builtin/submodule--helper.c:274 #, c-format -msgid "tag name too long: %.*s..." +msgid "fatal: '%s' is not a valid submodule--helper subcommand" +msgstr "fatal: '%s' não é um subcomando de submodule--helper válido" + +#: builtin/symbolic-ref.c:7 +msgid "git symbolic-ref [<options>] <name> [<ref>]" +msgstr "git symbolic-ref [<opções>] <nome> [<referência>]" + +#: builtin/symbolic-ref.c:8 +msgid "git symbolic-ref -d [-q] <name>" +msgstr "git symbolic-ref -d [-q] <nome>" + +#: builtin/symbolic-ref.c:40 +msgid "suppress error message for non-symbolic (detached) refs" +msgstr "" +"suprimir mensagens de erro sobre referências não-simbólicas (destacadas)" + +#: builtin/symbolic-ref.c:41 +msgid "delete symbolic ref" +msgstr "eliminar referências simbólicas" + +#: builtin/symbolic-ref.c:42 +msgid "shorten ref output" +msgstr "encurtar a apresentação de referências" + +#: builtin/symbolic-ref.c:43 builtin/update-ref.c:362 +msgid "reason" +msgstr "razão" + +#: builtin/symbolic-ref.c:43 builtin/update-ref.c:362 +msgid "reason of the update" +msgstr "razão da atualização" + +#: builtin/tag.c:23 +msgid "" +"git tag [-a | -s | -u <key-id>] [-f] [-m <msg> | -F <file>] <tagname> " +"[<head>]" msgstr "" +"git tag [-a | -s | -u <id-chave>] [-f] [-m <msg> | -F <ficheiro>] <nome-da-" +"tag> [<head>]" + +#: builtin/tag.c:24 +msgid "git tag -d <tagname>..." +msgstr "git tag -d <nome-da-tag>..." -#: builtin/tag.c:212 +#: builtin/tag.c:25 +msgid "" +"git tag -l [-n[<num>]] [--contains <commit>] [--points-at <object>]\n" +"\t\t[--format=<format>] [--[no-]merged [<commit>]] [<pattern>...]" +msgstr "" +"git tag -l [-n[<num>]] [--contains <commit>] [--points-at <objeto>]\n" +"\t\t[--format=<formato>] [--[no-]merged [<commit>]] [<padrão>...]" + +#: builtin/tag.c:27 +msgid "git tag -v <tagname>..." +msgstr "git tag -v <nome-da-tag>..." + +#: builtin/tag.c:80 +#, c-format +msgid "tag name too long: %.*s..." +msgstr "o nome da tag é demasiado longo: %.*s..." + +#: builtin/tag.c:85 #, c-format msgid "tag '%s' not found." -msgstr "etiqueta '%s' não foi encontrada." +msgstr "tag '%s' não encontrada." -#: builtin/tag.c:227 +#: builtin/tag.c:100 #, c-format msgid "Deleted tag '%s' (was %s)\n" -msgstr "" +msgstr "Tag '%s' eliminada (era %s)\n" -#: builtin/tag.c:239 +#: builtin/tag.c:112 #, c-format msgid "could not verify the tag '%s'" -msgstr "" +msgstr "não foi possÃvel validar a tag '%s'" -#: builtin/tag.c:249 +#: builtin/tag.c:122 +#, c-format msgid "" "\n" -"#\n" -"# Write a tag message\n" -"# Lines starting with '#' will be ignored.\n" -"#\n" +"Write a message for tag:\n" +" %s\n" +"Lines starting with '%c' will be ignored.\n" msgstr "" +"\n" +"Escreva a mensagem da tag:\n" +" %s\n" +"Linha começadas com '%c' serão ignoradas.\n" -#: builtin/tag.c:256 +#: builtin/tag.c:126 +#, c-format msgid "" "\n" -"#\n" -"# Write a tag message\n" -"# Lines starting with '#' will be kept; you may remove them yourself if you want to.\n" -"#\n" +"Write a message for tag:\n" +" %s\n" +"Lines starting with '%c' will be kept; you may remove them yourself if you " +"want to.\n" msgstr "" +"\n" +"Escreva a mensagem da tag:\n" +" %s\n" +"Linhas começadas com '%c' serão mantidas; pode removê-las se o desejar.\n" -#: builtin/tag.c:298 +#: builtin/tag.c:199 msgid "unable to sign the tag" -msgstr "" +msgstr "não foi possÃvel assinar a tag" -#: builtin/tag.c:300 +#: builtin/tag.c:201 msgid "unable to write tag file" -msgstr "" +msgstr "não foi possÃvel escrever o ficheiro da tag" -#: builtin/tag.c:325 +#: builtin/tag.c:226 msgid "bad object type." -msgstr "" +msgstr "tipo de objeto incorreto." -#: builtin/tag.c:338 +#: builtin/tag.c:239 msgid "tag header too big." -msgstr "" +msgstr "cabeçalho da tag demasiado longo." -#: builtin/tag.c:370 +#: builtin/tag.c:275 msgid "no tag message?" -msgstr "nenhuma mensaje para a etiqueta?" +msgstr "sem mensagem de tag?" -#: builtin/tag.c:376 +#: builtin/tag.c:281 #, c-format msgid "The tag message has been left in %s\n" -msgstr "" +msgstr "A mensagem da tag foi guardada em %s\n" -#: builtin/tag.c:425 -msgid "switch 'points-at' requires an object" -msgstr "" +#: builtin/tag.c:339 +msgid "list tag names" +msgstr "listar os nomes das tag" -#: builtin/tag.c:427 -#, c-format -msgid "malformed object name '%s'" -msgstr "" +#: builtin/tag.c:341 +msgid "print <n> lines of each tag message" +msgstr "imprimir <n> linhas de cada mensagem de tag" + +#: builtin/tag.c:343 +msgid "delete tags" +msgstr "eliminar tags" + +#: builtin/tag.c:344 +msgid "verify tags" +msgstr "verificar tags" + +#: builtin/tag.c:346 +msgid "Tag creation options" +msgstr "Opções de criação de tags" + +#: builtin/tag.c:348 +msgid "annotated tag, needs a message" +msgstr "tag anotada, é necessário uma mensagem" + +#: builtin/tag.c:350 +msgid "tag message" +msgstr "mensagem da tag" + +#: builtin/tag.c:352 +msgid "annotated and GPG-signed tag" +msgstr "tag anotada e assinada com GPG" + +#: builtin/tag.c:356 +msgid "use another key to sign the tag" +msgstr "usar outra chave para assinar a tag" + +#: builtin/tag.c:357 +msgid "replace the tag if exists" +msgstr "substituir a tag se esta existir" + +#: builtin/tag.c:358 builtin/update-ref.c:368 +msgid "create a reflog" +msgstr "criar um reflog" + +#: builtin/tag.c:360 +msgid "Tag listing options" +msgstr "Opções de listagem de tags" -#: builtin/tag.c:506 +#: builtin/tag.c:361 +msgid "show tag list in columns" +msgstr "mostrar a lista de tags em colunas" + +#: builtin/tag.c:362 builtin/tag.c:363 +msgid "print only tags that contain the commit" +msgstr "imprimir apenas tags que contenham o commit" + +#: builtin/tag.c:364 +msgid "print only tags that are merged" +msgstr "imprimir apenas as tags que foram incorporadas" + +#: builtin/tag.c:365 +msgid "print only tags that are not merged" +msgstr "imprimir apenas as tags que não foram incorporadas" + +#: builtin/tag.c:370 +msgid "print only tags of the object" +msgstr "imprimir apenas as tags do objeto" + +#: builtin/tag.c:399 msgid "--column and -n are incompatible" -msgstr "--column e -n are são incompatÃveis" +msgstr "--column e -n são incompatÃveis" -#: builtin/tag.c:523 +#: builtin/tag.c:419 msgid "-n option is only allowed with -l." -msgstr "" +msgstr "a opção -n só é permitida com -l." -#: builtin/tag.c:525 +#: builtin/tag.c:421 msgid "--contains option is only allowed with -l." -msgstr "" +msgstr "a opção --contains só é permitida com -l." -#: builtin/tag.c:527 +#: builtin/tag.c:423 msgid "--points-at option is only allowed with -l." -msgstr "" +msgstr "a opção --points-at só é permitida com -l." -#: builtin/tag.c:535 +#: builtin/tag.c:425 +msgid "--merged and --no-merged option are only allowed with -l" +msgstr "as opções --merged e --no-merged só são permitidas com -l" + +#: builtin/tag.c:433 msgid "only one -F or -m option is allowed." -msgstr "" +msgstr "só é permitido um opção -F ou -m." -#: builtin/tag.c:555 +#: builtin/tag.c:453 msgid "too many params" -msgstr "demasiado parametros" +msgstr "demasiado parâmetros" -#: builtin/tag.c:561 +#: builtin/tag.c:459 #, c-format msgid "'%s' is not a valid tag name." -msgstr "" +msgstr "'%s' não é um nome de tag válido." -#: builtin/tag.c:566 +#: builtin/tag.c:464 #, c-format msgid "tag '%s' already exists" -msgstr "etiqueta '%s' já existe" +msgstr "a tag '%s' já existe" -#: builtin/tag.c:584 +#: builtin/tag.c:489 #, c-format -msgid "%s: cannot lock the ref" -msgstr "" +msgid "Updated tag '%s' (was %s)\n" +msgstr "Tag '%s' atualizada (era %s)\n" + +#: builtin/unpack-objects.c:490 +msgid "Unpacking objects" +msgstr "A descompactar objetos" -#: builtin/tag.c:586 +#: builtin/update-index.c:79 #, c-format -msgid "%s: cannot update the ref" -msgstr "" +msgid "failed to create directory %s" +msgstr "falha ao criar o diretório %s" -#: builtin/tag.c:588 +#: builtin/update-index.c:85 #, c-format -msgid "Updated tag '%s' (was %s)\n" +msgid "failed to stat %s" +msgstr "falha ao efetuar stat de %s" + +#: builtin/update-index.c:95 +#, c-format +msgid "failed to create file %s" +msgstr "falha ao criar o ficheiro %s" + +#: builtin/update-index.c:103 +#, c-format +msgid "failed to delete file %s" +msgstr "falha ao eliminar o ficheiro %s" + +#: builtin/update-index.c:110 builtin/update-index.c:212 +#, c-format +msgid "failed to delete directory %s" +msgstr "falha ao criar o diretório %s" + +#: builtin/update-index.c:133 +#, c-format +msgid "Testing mtime in '%s' " +msgstr "A testar mtime em '%s' " + +#: builtin/update-index.c:145 +msgid "directory stat info does not change after adding a new file" msgstr "" +"a informação de stat do diretório não mudou depois de adicionar um novo " +"ficheiro" -#: git.c:16 -msgid "See 'git help <command>' for more information on a specific command." +#: builtin/update-index.c:158 +msgid "directory stat info does not change after adding a new directory" msgstr "" +"a informação de stat do diretório não mudou depois de adicionar um novo " +"diretório" -#: common-cmds.h:8 -msgid "Add file contents to the index" +#: builtin/update-index.c:171 +msgid "directory stat info changes after updating a file" +msgstr "a informação de stat mudou depois de atualizar um ficheiro" + +#: builtin/update-index.c:182 +msgid "directory stat info changes after adding a file inside subdirectory" msgstr "" +"a informação de stat do diretório mudou depois de adicionar um ficheiro " +"dentro dum subdiretório" -#: common-cmds.h:9 -msgid "Find by binary search the change that introduced a bug" +#: builtin/update-index.c:193 +msgid "directory stat info does not change after deleting a file" msgstr "" +"a informação de stat do diretório não mudou depois de eliminar um ficheiro" -#: common-cmds.h:10 -msgid "List, create, or delete branches" -msgstr "Listar, criar ou apagar ramas" +#: builtin/update-index.c:206 +msgid "directory stat info does not change after deleting a directory" +msgstr "" +"a informação de stat do diretório não mudou depois de eliminar um diretório" -#: common-cmds.h:11 -msgid "Checkout a branch or paths to the working tree" +#: builtin/update-index.c:213 +msgid " OK" +msgstr " OK" + +#: builtin/update-index.c:575 +msgid "git update-index [<options>] [--] [<file>...]" +msgstr "git update-index [<opções>] [--] [<ficheiro>...]" + +#: builtin/update-index.c:930 +msgid "continue refresh even when index needs update" +msgstr "continuar a refrescar mesmo quando o Ãndice precise de ser atualizado" + +#: builtin/update-index.c:933 +msgid "refresh: ignore submodules" +msgstr "refrescar: ignorar submódulos" + +#: builtin/update-index.c:936 +msgid "do not ignore new files" +msgstr "não ignorar novos ficheiros" + +#: builtin/update-index.c:938 +msgid "let files replace directories and vice-versa" +msgstr "deixar que os ficheiros substituam os diretórios e vice-versa" + +#: builtin/update-index.c:940 +msgid "notice files missing from worktree" +msgstr "avisar sobre ficheiros que faltem na árvore de trabalho" + +#: builtin/update-index.c:942 +msgid "refresh even if index contains unmerged entries" +msgstr "refrescar mesmo que o Ãndice contenha entradas não incorporadas" + +#: builtin/update-index.c:945 +msgid "refresh stat information" +msgstr "refrescar informação de stat" + +#: builtin/update-index.c:949 +msgid "like --refresh, but ignore assume-unchanged setting" +msgstr "como --refresh, mas ignorar a definição assume-unchanged" + +#: builtin/update-index.c:953 +msgid "<mode>,<object>,<path>" +msgstr "<modo>,<objeto>,<caminho>" + +#: builtin/update-index.c:954 +msgid "add the specified entry to the index" +msgstr "adicionar o elemento especificado ao Ãndice" + +#: builtin/update-index.c:958 +msgid "(+/-)x" +msgstr "(+/-)x" + +#: builtin/update-index.c:959 +msgid "override the executable bit of the listed files" +msgstr "substituir o bit executável dos ficheiros listados" + +#: builtin/update-index.c:963 +msgid "mark files as \"not changing\"" +msgstr "marcar ficheiros como \"não alterados\"" + +#: builtin/update-index.c:966 +msgid "clear assumed-unchanged bit" +msgstr "limpar o bit assumed-unchanged" + +#: builtin/update-index.c:969 +msgid "mark files as \"index-only\"" +msgstr "marcar ficheiros como \"únicos do Ãndice\"" + +#: builtin/update-index.c:972 +msgid "clear skip-worktree bit" +msgstr "limpar o bit ignorar-árvore-de-trabalho" + +#: builtin/update-index.c:975 +msgid "add to index only; do not add content to object database" msgstr "" +"só adicionar ao Ãndice; não adicionar o conteúdo à base de dados de objetos" -#: common-cmds.h:12 -msgid "Clone a repository into a new directory" +#: builtin/update-index.c:977 +msgid "remove named paths even if present in worktree" msgstr "" +"remover os caminhos mencionado mesmo se estiverem presentes na árvore de " +"trabalho" -#: common-cmds.h:13 -msgid "Record changes to the repository" -msgstr "Gravar alterações para o repositório" +#: builtin/update-index.c:979 +msgid "with --stdin: input lines are terminated by null bytes" +msgstr "com --stdin: as linhas da entrada são terminadas com bytes nulos" -#: common-cmds.h:14 -msgid "Show changes between commits, commit and working tree, etc" +#: builtin/update-index.c:981 +msgid "read list of paths to be updated from standard input" +msgstr "ler lista de caminho a atualizar da entrada padrão" + +#: builtin/update-index.c:985 +msgid "add entries from standard input to the index" +msgstr "adicionar elementos da entrada padrão ao Ãndice" + +#: builtin/update-index.c:989 +msgid "repopulate stages #2 and #3 for the listed paths" +msgstr "repovoar as fases nº2 e nº3 dos caminhos listados" + +#: builtin/update-index.c:993 +msgid "only update entries that differ from HEAD" +msgstr "atualizar apenas elementos que difiram de HEAD" + +#: builtin/update-index.c:997 +msgid "ignore files missing from worktree" +msgstr "ignorar ficheiros não presentes na árvore de trabalho" + +#: builtin/update-index.c:1000 +msgid "report actions to standard output" +msgstr "mostrar ações na saÃda padrão" + +#: builtin/update-index.c:1002 +msgid "(for porcelains) forget saved unresolved conflicts" msgstr "" +"(para porcelanas) esquecer conflitos guardados que não foram resolvidos" -#: common-cmds.h:15 -msgid "Download objects and refs from another repository" +#: builtin/update-index.c:1006 +msgid "write index in this format" +msgstr "escrever o Ãndice neste formato" + +#: builtin/update-index.c:1008 +msgid "enable or disable split index" +msgstr "ativar ou desativar a divisão do Ãndice" + +#: builtin/update-index.c:1010 +msgid "enable/disable untracked cache" +msgstr "ativar ou desativar cache não controlada" + +#: builtin/update-index.c:1012 +msgid "test if the filesystem supports untracked cache" +msgstr "testar se o sistema de ficheiros suporta cache não controlada" + +#: builtin/update-index.c:1014 +msgid "enable untracked cache without testing the filesystem" +msgstr "ativar cache não controlada sem testar o sistema de ficheiros" + +#: builtin/update-index.c:1134 +msgid "Untracked cache disabled" +msgstr "A cache não controlada está desativada" + +#: builtin/update-index.c:1146 +#, c-format +msgid "Untracked cache enabled for '%s'" +msgstr "A cache não controlada de '%s' foi ativada." + +#: builtin/update-ref.c:9 +msgid "git update-ref [<options>] -d <refname> [<old-val>]" +msgstr "git update-ref [<opções>] -d <nome-da-referência> [<valor-antigo>]" + +#: builtin/update-ref.c:10 +msgid "git update-ref [<options>] <refname> <new-val> [<old-val>]" msgstr "" +"git update-ref [<opções>] <nome-da-referência> <novo-valor> [<valor-" +"antigo>]" -#: common-cmds.h:16 -msgid "Print lines matching a pattern" +#: builtin/update-ref.c:11 +msgid "git update-ref [<options>] --stdin [-z]" +msgstr "git update-ref [<opções>] --stdin [-z]" + +#: builtin/update-ref.c:363 +msgid "delete the reference" +msgstr "eliminar a referência" + +#: builtin/update-ref.c:365 +msgid "update <refname> not the one it points to" msgstr "" +"atualizar a referência <nome-da-referência>, e não a referência aponta por " +"esta" -#: common-cmds.h:17 -msgid "Create an empty git repository or reinitialize an existing one" +#: builtin/update-ref.c:366 +msgid "stdin has NUL-terminated arguments" +msgstr "os argumentos da entrada padrão terminam em NUL" + +#: builtin/update-ref.c:367 +msgid "read updates from stdin" +msgstr "ler atualizações da entrada padrão" + +#: builtin/update-server-info.c:6 +msgid "git update-server-info [--force]" +msgstr "git update-server-info [--force]" + +#: builtin/update-server-info.c:14 +msgid "update the info files from scratch" +msgstr "atualizar os ficheiros de informação do zero" + +#: builtin/verify-commit.c:17 +msgid "git verify-commit [-v | --verbose] <commit>..." +msgstr "git verify-commit [-v | --verbose] <commit>..." + +#: builtin/verify-commit.c:72 +msgid "print commit contents" +msgstr "imprimir conteúdo do commit" + +#: builtin/verify-commit.c:73 builtin/verify-tag.c:84 +msgid "print raw gpg status output" +msgstr "imprimir informação do gpg em bruto" + +#: builtin/verify-pack.c:54 +msgid "git verify-pack [-v | --verbose] [-s | --stat-only] <pack>..." +msgstr "git verify-pack [-v | --verbose] [-s | --stat-only] <pack>..." + +#: builtin/verify-pack.c:64 +msgid "verbose" +msgstr "verboso" + +#: builtin/verify-pack.c:66 +msgid "show statistics only" +msgstr "mostrar apenas estatÃsticas" + +#: builtin/verify-tag.c:17 +msgid "git verify-tag [-v | --verbose] <tag>..." +msgstr "git verify-tag [-v | --verbose] <tag>..." + +#: builtin/verify-tag.c:83 +msgid "print tag contents" +msgstr "imprimir conteúdo da tag" + +#: builtin/worktree.c:15 +msgid "git worktree add [<options>] <path> [<branch>]" +msgstr "git worktree add [<opções>] <caminho> [<ramo>]" + +#: builtin/worktree.c:16 +msgid "git worktree prune [<options>]" +msgstr "git worktree prune [<opções>]" + +#: builtin/worktree.c:17 +msgid "git worktree list [<options>]" +msgstr "git worktree list [<opções>]" + +#: builtin/worktree.c:39 +#, c-format +msgid "Removing worktrees/%s: not a valid directory" +msgstr "A remover worktrees/%s: diretório inválido" + +#: builtin/worktree.c:45 +#, c-format +msgid "Removing worktrees/%s: gitdir file does not exist" +msgstr "A remover worktrees/%s: o ficheiro gitdir não existe" + +#: builtin/worktree.c:50 +#, c-format +msgid "Removing worktrees/%s: unable to read gitdir file (%s)" +msgstr "A remover worktrees/%s: não é possÃvel ler o ficheiro gitdir (%s)" + +#: builtin/worktree.c:61 +#, c-format +msgid "Removing worktrees/%s: invalid gitdir file" +msgstr "A remover worktrees/%s: ficheiro gitdir inválido" + +#: builtin/worktree.c:77 +#, c-format +msgid "Removing worktrees/%s: gitdir file points to non-existent location" +msgstr "" +"A remover worktrees/%s: o ficheiro gitdir aponta para uma localização " +"inexistente" + +#: builtin/worktree.c:112 +#, c-format +msgid "failed to remove: %s" +msgstr "falha ao remover: %s" + +#: builtin/worktree.c:201 +#, c-format +msgid "'%s' already exists" +msgstr "'%s' já existe" + +#: builtin/worktree.c:233 +#, c-format +msgid "could not create directory of '%s'" +msgstr "não foi possÃvel criar o diretório de '%s'" + +#: builtin/worktree.c:269 +#, c-format +msgid "Preparing %s (identifier %s)" +msgstr "A preparar %s (identificador %s)" + +#: builtin/worktree.c:317 +msgid "checkout <branch> even if already checked out in other worktree" +msgstr "" +"extrair o <ramo> mesmo se já tenha sido extraÃdo noutra árvore de trabalho" + +#: builtin/worktree.c:319 +msgid "create a new branch" +msgstr "criar um novo ramo" + +#: builtin/worktree.c:321 +msgid "create or reset a branch" +msgstr "criar ou repor um ramo" + +#: builtin/worktree.c:322 +msgid "detach HEAD at named commit" +msgstr "destacar HEAD no commit indicado" + +#: builtin/worktree.c:329 +msgid "-b, -B, and --detach are mutually exclusive" +msgstr "-b, -B e --detach são mutuamente exclusivos" + +#: builtin/write-tree.c:13 +msgid "git write-tree [--missing-ok] [--prefix=<prefix>/]" +msgstr "git write-tree [--missing-ok] [--prefix=<prefixo>/]" + +#: builtin/write-tree.c:26 +msgid "<prefix>/" +msgstr "<prefixo>/" + +#: builtin/write-tree.c:27 +msgid "write tree object for a subdirectory <prefix>" +msgstr "escrever objeto árvore do subdiretório <prefixo>" + +#: builtin/write-tree.c:30 +msgid "only useful for debugging" +msgstr "apenas útil para depuração" + +#: credential-cache--daemon.c:262 +msgid "print debugging messages to stderr" +msgstr "imprimir mensagens de depuração no stderr" + +#: git.c:14 +msgid "" +"'git help -a' and 'git help -g' list available subcommands and some\n" +"concept guides. See 'git help <command>' or 'git help <concept>'\n" +"to read about a specific subcommand or concept." +msgstr "" +"'git help -a' e 'git help -g' listam os subcomandos disponÃveis e alguns\n" +"guias de conceitos. Consulte 'git help <comando>' ou 'git help <conceito>'\n" +"para ler sobre um subcomando ou conceito especÃfico." + +#: 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 "iniciar uma área de trabalho (consulte também: git help tutorial)" + +#: common-cmds.h:10 +msgid "work on the current change (see also: git help everyday)" +msgstr "trabalhar na alteração atual (consulte também: git help everyday)" + +#: common-cmds.h:11 +msgid "examine the history and state (see also: git help revisions)" +msgstr "examinar o histórico e estado (consulte também: git help revisions)" + +#: common-cmds.h:12 +msgid "grow, mark and tweak your common history" +msgstr "aumentar, marcar e ajustar o seu histórico comum" + +#: common-cmds.h:13 +msgid "collaborate (see also: git help workflows)" +msgstr "colaborar (consulte também: git help workflows)" + +#: common-cmds.h:17 +msgid "Add file contents to the index" +msgstr "Adicionar conteúdos de ficheiros ao Ãndice" + #: common-cmds.h:18 -msgid "Show commit logs" -msgstr "Mostrado logs de commits" +msgid "Use binary search to find the commit that introduced a bug" +msgstr "Use procura binário para encontrar o commit que introduziu um bug" #: common-cmds.h:19 -msgid "Join two or more development histories together" -msgstr "" +msgid "List, create, or delete branches" +msgstr "Listar, criar ou eliminar ramos" #: common-cmds.h:20 -msgid "Move or rename a file, a directory, or a symlink" -msgstr "" +msgid "Switch branches or restore working tree files" +msgstr "Mudar de ramos ou restaurar os ficheiros da árvore de trabalho" #: common-cmds.h:21 -msgid "Fetch from and merge with another repository or a local branch" -msgstr "" +msgid "Clone a repository into a new directory" +msgstr "Clonar um repositório num novo diretório" #: common-cmds.h:22 -msgid "Update remote refs along with associated objects" -msgstr "" +msgid "Record changes to the repository" +msgstr "Gravar alterações no repositório" #: common-cmds.h:23 -msgid "Forward-port local commits to the updated upstream head" +msgid "Show changes between commits, commit and working tree, etc" msgstr "" +"Mostrar alterações entre commits, entre commit e árvore de trabalho, etc" #: common-cmds.h:24 -msgid "Reset current HEAD to the specified state" -msgstr "" +msgid "Download objects and refs from another repository" +msgstr "Transferir objetos e referências doutro repositório" #: common-cmds.h:25 -msgid "Remove files from the working tree and from the index" -msgstr "" +msgid "Print lines matching a pattern" +msgstr "Imprimir linhas que correspondam a um padrão" #: common-cmds.h:26 -msgid "Show various types of objects" -msgstr "" +msgid "Create an empty Git repository or reinitialize an existing one" +msgstr "Criar um repositório Git vazio ou reinicializar um já existente" #: common-cmds.h:27 -msgid "Show the working tree status" -msgstr "Mostrar o estado los ramos das árvores de trabalho" +msgid "Show commit logs" +msgstr "Mostrado logs de commits" #: common-cmds.h:28 -msgid "Create, list, delete or verify a tag object signed with GPG" -msgstr "" +msgid "Join two or more development histories together" +msgstr "Juntar duas ou mais histórias de desenvolvimento numa só" -#: git-am.sh:50 -msgid "You need to set your committer info first" -msgstr "Necessitas primeiro de especificiar os teus dados de committer" +#: common-cmds.h:29 +msgid "Move or rename a file, a directory, or a symlink" +msgstr "Mover ou mudar o nome de um ficheiro, diretório ou ligação simbólica" -#: git-am.sh:137 -msgid "Repository lacks necessary blobs to fall back on 3-way merge." -msgstr "" +#: common-cmds.h:30 +msgid "Fetch from and integrate with another repository or a local branch" +msgstr "Obter e integrar com outro repositório ou outro ramo local" -#: git-am.sh:154 -msgid "" -"Did you hand edit your patch?\n" -"It does not apply to blobs recorded in its index." -msgstr "" - -#: git-am.sh:163 -msgid "Falling back to patching base and 3-way merge..." -msgstr "" - -#: git-am.sh:275 -msgid "Only one StGIT patch series can be applied at once" -msgstr "" +#: common-cmds.h:31 +msgid "Update remote refs along with associated objects" +msgstr "Atualizar referências remotas juntamente com objetos associados" -#: git-am.sh:362 -#, sh-format -msgid "Patch format $patch_format is not supported." -msgstr "" +#: common-cmds.h:32 +msgid "Reapply commits on top of another base tip" +msgstr "Reaplicar commits no topo de outra base" -#: git-am.sh:364 -msgid "Patch format detection failed." -msgstr "Falhou a detecção do formato do patch." +#: common-cmds.h:33 +msgid "Reset current HEAD to the specified state" +msgstr "Repor a HEAD atual no estado especificado" -#: git-am.sh:418 -msgid "-d option is no longer supported. Do not use." -msgstr "" +#: common-cmds.h:34 +msgid "Remove files from the working tree and from the index" +msgstr "Remover ficheiros da árvore de trabalho e do Ãndice" -#: git-am.sh:481 -#, sh-format -msgid "previous rebase directory $dotest still exists but mbox given." -msgstr "" +#: common-cmds.h:35 +msgid "Show various types of objects" +msgstr "Mostrar vários tipos objetos" -#: git-am.sh:486 -msgid "Please make up your mind. --skip or --abort?" -msgstr "" +#: common-cmds.h:36 +msgid "Show the working tree status" +msgstr "Mostrar o estado da árvores de trabalho" -#: git-am.sh:513 -msgid "Resolve operation not in progress, we are not resuming." -msgstr "" +#: common-cmds.h:37 +msgid "Create, list, delete or verify a tag object signed with GPG" +msgstr "Criar, listar, eliminar ou verificar um objeto tag assinado com GPG" -#: git-am.sh:579 -#, sh-format -msgid "Dirty index: cannot apply patches (dirty: $files)" -msgstr "" +#: parse-options.h:145 +msgid "expiry-date" +msgstr "data-de-validade" -#: git-am.sh:755 -msgid "cannot be interactive without stdin connected to a terminal." -msgstr "" +#: parse-options.h:160 +msgid "no-op (backward compatibility)" +msgstr "sem-ação (retrocompatibilidade)" -#. TRANSLATORS: Make sure to include [y], [n], [e], [v] and [a] -#. in your translation. The program will only accept English -#. input at this point. -#: git-am.sh:766 -msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all " -msgstr "Aplicar? Sim[y]/[n]ão/[e]ditar/[v]er patch/[a]ceitar todos " +#: parse-options.h:237 +msgid "be more verbose" +msgstr "ser mais verboso" -#: git-am.sh:802 -#, sh-format -msgid "Applying: $FIRSTLINE" -msgstr "Aplicando: $FIRSTLINE" +#: parse-options.h:239 +msgid "be more quiet" +msgstr "ser mais silencioso" -#: git-am.sh:847 -msgid "No changes -- Patch already applied." -msgstr "Nenhuma mudança -- Já foi aplicado o patch." +#: parse-options.h:245 +msgid "use <n> digits to display SHA-1s" +msgstr "usar <n> dÃgitos para mostrar SHA-1s" -#: git-am.sh:873 -msgid "applying to an empty history" +#: rerere.h:38 +msgid "update the index with reused conflict resolution if possible" msgstr "" +"atualizar o Ãndice com resoluções de conflitos reutilizadas se possÃvel" + +#: git-bisect.sh:55 +msgid "You need to start by \"git bisect start\"" +msgstr "Deve começar por executar \"git bisect start\"" #. TRANSLATORS: Make sure to include [Y] and [n] in your #. translation. The program will only accept English input #. at this point. -#: git-bisect.sh:54 +#: git-bisect.sh:61 msgid "Do you want me to do it for you [Y/n]? " -msgstr "Queres que eu faça por sà [Y/n]?" +msgstr "Quer que o Git o faça por si [Y/n]? " -#: git-bisect.sh:95 +#: git-bisect.sh:122 #, sh-format msgid "unrecognised option: '$arg'" -msgstr "" +msgstr "opção não reconhecida: '$arg'" -#: git-bisect.sh:99 +#: git-bisect.sh:126 #, sh-format msgid "'$arg' does not appear to be a valid revision" -msgstr "" +msgstr "'$arg' não parecer ser uma revisão válida" -#: git-bisect.sh:117 +#: git-bisect.sh:155 msgid "Bad HEAD - I need a HEAD" -msgstr "" +msgstr "HEAD incorreta - é necessário uma HEAD" -#: git-bisect.sh:130 +#: git-bisect.sh:168 #, sh-format -msgid "Checking out '$start_head' failed. Try 'git bisect reset <validbranch>'." +msgid "" +"Checking out '$start_head' failed. Try 'git bisect reset <valid-branch>'." msgstr "" +"Falha ao extrair '$start_head'. Tente 'git bisect reset <ramo-válido>'." -#: git-bisect.sh:140 -msgid "won't bisect on seeked tree" -msgstr "" +#: git-bisect.sh:178 +msgid "won't bisect on cg-seek'ed tree" +msgstr "não é possÃvel bisseccionar numa árvore \"cg-seek'ed\"" -#: git-bisect.sh:144 +#: git-bisect.sh:182 msgid "Bad HEAD - strange symbolic ref" -msgstr "" +msgstr "HEAD incorreta - referência simbólica desconhecida" -#: git-bisect.sh:189 +#: git-bisect.sh:234 #, sh-format msgid "Bad bisect_write argument: $state" -msgstr "" +msgstr "Argumento de bisect_write incorreto: $state" -#: git-bisect.sh:218 +#: git-bisect.sh:263 #, sh-format msgid "Bad rev input: $arg" -msgstr "" +msgstr "Revisão incorreta na entrada: $arg" -#: git-bisect.sh:232 +#: git-bisect.sh:278 msgid "Please call 'bisect_state' with at least one argument." -msgstr "" +msgstr "Invoque 'bisect_state' com pelo menos um argumento." -#: git-bisect.sh:244 +#: git-bisect.sh:290 #, sh-format msgid "Bad rev input: $rev" -msgstr "" +msgstr "Revisão incorreta na entrada: $rev" -#: git-bisect.sh:250 -msgid "'git bisect bad' can take only one argument." -msgstr "" +#: git-bisect.sh:299 +#, sh-format +msgid "'git bisect $TERM_BAD' can take only one argument." +msgstr "'git bisect $TERM_BAD' só leva um argumento." + +#: git-bisect.sh:322 +#, sh-format +msgid "Warning: bisecting only with a $TERM_BAD commit." +msgstr "Aviso: a bisseccionar só com um commit $TERM_BAD." #. TRANSLATORS: Make sure to include [Y] and [n] in your #. translation. The program will only accept English input #. at this point. -#: git-bisect.sh:279 +#: git-bisect.sh:328 msgid "Are you sure [Y/n]? " -msgstr "Tens a certeza [Y/n]? " +msgstr "Tem a certeza [Y/n]? " -#: git-bisect.sh:354 +#: git-bisect.sh:340 #, sh-format -msgid "'$invalid' is not a valid commit" +msgid "" +"You need to give me at least one $bad_syn and one $good_syn revision.\n" +"(You can use \"git bisect $bad_syn\" and \"git bisect $good_syn\" for that.)" msgstr "" +"Deve indicar pelo menos uma revisão $bad_syn e uma revisão $good_syn.\n" +"(Pode usar \"git bisect $bad_syn\" e \"git bisect $good_syn\" para esse fim.)" -#: git-bisect.sh:363 +#: git-bisect.sh:343 +#, sh-format +msgid "" +"You need to start by \"git bisect start\".\n" +"You then need to give me at least one $good_syn and one $bad_syn revision.\n" +"(You can use \"git bisect $bad_syn\" and \"git bisect $good_syn\" for that.)" +msgstr "" +"Deve começar por executar \"git bisect start\".\n" +"Indique pelo menos uma revisão $good_syn e uma revisão $bad_syn.\n" +"(Pode usar \"git bisect $bad_syn\" e \"git bisect $good_syn\" para esse fim.)" + +#: git-bisect.sh:414 git-bisect.sh:546 +msgid "We are not bisecting." +msgstr "Não estamos a bisseccionar." + +#: git-bisect.sh:421 +#, sh-format +msgid "'$invalid' is not a valid commit" +msgstr "'$invalid' não é um commit válido" + +#: git-bisect.sh:430 #, sh-format msgid "" "Could not check out original HEAD '$branch'.\n" "Try 'git bisect reset <commit>'." msgstr "" +"Não foi possÃvel extrair a HEAD original de '$branch'.\n" +"Tente 'git bisect reset <commit>'." -#: git-bisect.sh:390 +#: git-bisect.sh:458 msgid "No logfile given" -msgstr "Nenhum ficheiro de log dado" +msgstr "Nenhum ficheiro de log fornecido" -#: git-bisect.sh:391 +#: git-bisect.sh:459 #, sh-format msgid "cannot read $file for replaying" -msgstr "" +msgstr "não é possÃvel ler $file para reproduzir" -#: git-bisect.sh:408 +#: git-bisect.sh:480 msgid "?? what are you talking about?" +msgstr "?? do que é que está a falar?" + +#: git-bisect.sh:492 +#, sh-format +msgid "running $command" +msgstr "a executar $command" + +#: git-bisect.sh:499 +#, sh-format +msgid "" +"bisect run failed:\n" +"exit code $res from '$command' is < 0 or >= 128" msgstr "" +"falha bisseccionar:\n" +"código de saÃda $res de '$command' é < 0 ou >= 128" -#: git-bisect.sh:474 -msgid "We are not bisecting." -msgstr "Não estamos a bisseccionar." +#: git-bisect.sh:525 +msgid "bisect run cannot continue any more" +msgstr "não é possÃvel continuar a bisseccionar" -#: git-pull.sh:21 +#: git-bisect.sh:531 +#, sh-format msgid "" -"Pull is not possible because you have unmerged files.\n" -"Please, fix them up in the work tree, and then use 'git add/rm <file>'\n" -"as appropriate to mark resolution, or use 'git commit -a'." +"bisect run failed:\n" +"'bisect_state $state' exited with error code $res" +msgstr "" +"falha ao bisseccionar:\n" +"'bisect_state $state' retornou com o código de erro $res" + +#: git-bisect.sh:538 +msgid "bisect run success" +msgstr "bissecção concluÃda com sucesso" + +#: git-bisect.sh:565 +msgid "please use two different terms" +msgstr "use dois termos diferentes" + +#: git-bisect.sh:575 +#, sh-format +msgid "'$term' is not a valid term" +msgstr "'$term' não é um termo válido" + +#: git-bisect.sh:578 +#, sh-format +msgid "can't use the builtin command '$term' as a term" +msgstr "não é possÃvel usar o comando '$term' como um termo" + +#: git-bisect.sh:587 git-bisect.sh:593 +#, sh-format +msgid "can't change the meaning of term '$term'" +msgstr "não é possÃvel alterar o significado do termo '$term'" + +#: git-bisect.sh:606 +#, sh-format +msgid "Invalid command: you're currently in a $TERM_BAD/$TERM_GOOD bisect." msgstr "" +"Comando inválido: bissecção em curso usando os termo $TERM_BAD/$TERM_GOOD." -#: git-pull.sh:25 -msgid "Pull is not possible because you have unmerged files." +#: git-bisect.sh:636 +msgid "no terms defined" +msgstr "nenhum termo definido" + +#: git-bisect.sh:653 +#, sh-format +msgid "" +"invalid argument $arg for 'git bisect terms'.\n" +"Supported options are: --term-good|--term-old and --term-bad|--term-new." +msgstr "" +"argumento inválido $arg de 'git bisect terms'.\n" +"Opções suportadas: --term-good|--term-old e --term-bad|--term-new." + +#: git-rebase.sh:57 +msgid "" +"When you have resolved this problem, run \"git rebase --continue\".\n" +"If you prefer to skip this patch, run \"git rebase --skip\" instead.\n" +"To check out the original branch and stop rebasing, run \"git rebase --abort" +"\"." +msgstr "" +"Depois de resolver este problema, execute \"git rebase --continue\".\n" +"Se prefere ignorar este patch, execute \"git rebase --skip\".\n" +"Para extrair o ramo original e interromper o rebase, execute \"git rebase --" +"abort\"." + +#: git-rebase.sh:165 +msgid "Applied autostash." +msgstr "Autostash aplicado." + +#: git-rebase.sh:168 +#, sh-format +msgid "Cannot store $stash_sha1" +msgstr "Não é possÃvel guardar $stash_sha1" + +#: git-rebase.sh:169 +msgid "" +"Applying autostash resulted in conflicts.\n" +"Your changes are safe in the stash.\n" +"You can run \"git stash pop\" or \"git stash drop\" at any time.\n" msgstr "" +"Surgiram conflitos ao aplicar autostash.\n" +"As suas alterações estão guardadas no stash.\n" +"Pode executar \"git stash pop\" ou \"git stash drop\" oportunamente.\n" -#: git-pull.sh:197 -msgid "updating an unborn branch with changes added to the index" +#: git-rebase.sh:208 +msgid "The pre-rebase hook refused to rebase." +msgstr "Rebase recusado pelo hook pre-rebase." + +#: git-rebase.sh:213 +msgid "It looks like git-am is in progress. Cannot rebase." +msgstr "Parece que o git-am está em curso. Não é possÃvel efetuar rebase." + +#: git-rebase.sh:354 +msgid "The --exec option must be used with the --interactive option" +msgstr "A opção --exec deve ser usada com a opção --interactive" + +#: git-rebase.sh:359 +msgid "No rebase in progress?" +msgstr "Rebase não está em curso?" + +#: git-rebase.sh:370 +msgid "The --edit-todo action can only be used during interactive rebase." +msgstr "A ação --edit-todo só pode ser usada durante um rebase interativo." + +#: git-rebase.sh:377 +msgid "Cannot read HEAD" +msgstr "Não é possÃvel ler HEAD" + +#: git-rebase.sh:380 +msgid "" +"You must edit all merge conflicts and then\n" +"mark them as resolved using git add" msgstr "" +"Deve editar todos os conflitos do merge e\n" +"marcá-los como resolvidos usando git add" + +#: git-rebase.sh:398 +#, sh-format +msgid "Could not move back to $head_name" +msgstr "Não foi possÃvel voltar para $head_name" + +#: git-rebase.sh:417 +#, sh-format +msgid "" +"It seems that there is already a $state_dir_base directory, and\n" +"I wonder if you are in the middle of another rebase. If that is the\n" +"case, please try\n" +"\t$cmd_live_rebase\n" +"If that is not the case, please\n" +"\t$cmd_clear_stale_rebase\n" +"and run me again. I am stopping in case you still have something\n" +"valuable there." +msgstr "" +"Parece que já existe um diretório $state_dir_base e\n" +"é possÃvel que outro processo de rebase já esteja em curso.\n" +"Se for o caso, tente\n" +"\t$cmd_live_rebase\n" +"Se não for o caso,\n" +"\t$cmd_clear_stale_rebase\n" +"e execute o comando de novo. A execução foi interrompida no caso de\n" +"ainda ter algo importante nesse sÃtio." + +#: git-rebase.sh:468 +#, sh-format +msgid "invalid upstream $upstream_name" +msgstr "$upstream_name a montante inválido" + +#: git-rebase.sh:492 +#, sh-format +msgid "$onto_name: there are more than one merge bases" +msgstr "$onto_name: há mais do que uma base de merge" + +#: git-rebase.sh:495 git-rebase.sh:499 +#, sh-format +msgid "$onto_name: there is no merge base" +msgstr "$onto_name: não há nenhuma base de merge" + +#: git-rebase.sh:504 +#, sh-format +msgid "Does not point to a valid commit: $onto_name" +msgstr "Não aponta para um commit válido: $onto_name" + +#: git-rebase.sh:527 +#, sh-format +msgid "fatal: no such branch: $branch_name" +msgstr "fatal: ramo inexistente: $branch_name" + +#: git-rebase.sh:560 +msgid "Cannot autostash" +msgstr "Não é possÃvel efetuar autostash" + +#: git-rebase.sh:565 +#, sh-format +msgid "Created autostash: $stash_abbrev" +msgstr "Autostash criado: $stash_abbrev" + +#: git-rebase.sh:569 +msgid "Please commit or stash them." +msgstr "Faça commit ou stash delas." -#: git-pull.sh:253 -msgid "Cannot merge multiple branches into empty head" +#: git-rebase.sh:589 +#, sh-format +msgid "Current branch $branch_name is up to date." +msgstr "O ramo atual $branch_name está atualizado." + +#: git-rebase.sh:593 +#, sh-format +msgid "Current branch $branch_name is up to date, rebase forced." +msgstr "O ramo atual $branch_name está atualizado, rebase forçado." + +#: git-rebase.sh:604 +#, sh-format +msgid "Changes from $mb to $onto:" +msgstr "Alterações de $mb para $onto:" + +#: git-rebase.sh:613 +msgid "First, rewinding head to replay your work on top of it..." msgstr "" +"Primeiro, a recuar a cabeça para replicar as suas alterações no topo desta..." -#: git-pull.sh:257 -msgid "Cannot rebase onto multiple branches" -msgstr "Não é possÃvel fazer rebase com várias ramas" +#: git-rebase.sh:623 +#, sh-format +msgid "Fast-forwarded $branch_name to $onto_name." +msgstr "$branch_name avançado rapidamente para $onto_name." #: git-stash.sh:51 msgid "git stash clear with parameters is unimplemented" -msgstr "" +msgstr "não está implementado git stash clear com parâmetros" #: git-stash.sh:74 msgid "You do not have the initial commit yet" -msgstr "Tu ainda não tens o commit inicial" +msgstr "O commit inicial ainda não existe" #: git-stash.sh:89 msgid "Cannot save the current index state" -msgstr "" +msgstr "Não é possÃvel guardar o estado atual do Ãndice" -#: git-stash.sh:123 -#: git-stash.sh:136 +#: git-stash.sh:124 git-stash.sh:137 msgid "Cannot save the current worktree state" -msgstr "" +msgstr "Não é possÃvel guardar o estado atual da árvore de trabalho" -#: git-stash.sh:140 +#: git-stash.sh:141 msgid "No changes selected" -msgstr "Não há alterações seleccionadas" +msgstr "Nenhuma alteração selecionada" -#: git-stash.sh:143 +#: git-stash.sh:144 msgid "Cannot remove temporary index (can't happen)" -msgstr "" +msgstr "Não é possÃvel remover o Ãndice temporário (não pode acontecer)" -#: git-stash.sh:156 +#: git-stash.sh:157 msgid "Cannot record working tree state" +msgstr "Não é possÃvel gravar o estado da árvore de trabalho" + +#: git-stash.sh:189 +#, sh-format +msgid "Cannot update $ref_stash with $w_commit" +msgstr "Não é possÃvel atualizar $ref_stash com $w_commit" + +#. TRANSLATORS: $option is an invalid option, like +#. `--blah-blah'. The 7 spaces at the beginning of the +#. second line correspond to "error: ". So you should line +#. up the second line with however many characters the +#. translation of "error: " takes in your language. E.g. in +#. English this is: +#. +#. $ git stash save --blah-blah 2>&1 | head -n 2 +#. error: unknown option for 'stash save': --blah-blah +#. To provide a message, use git stash save -- '--blah-blah' +#: git-stash.sh:239 +#, sh-format +msgid "" +"error: unknown option for 'stash save': $option\n" +" To provide a message, use git stash save -- '$option'" msgstr "" +"erro: opção desconhecida de 'stash save': $option\n" +" Para fornecer uma mensagem, use git stash save -- '$option'" -#: git-stash.sh:223 +#: git-stash.sh:260 msgid "No local changes to save" -msgstr "Sem alterações locais para guardar" +msgstr "Não há alterações locais para guardar" -#: git-stash.sh:227 +#: git-stash.sh:264 msgid "Cannot initialize stash" msgstr "Não é possÃvel inicializar o stash" -#: git-stash.sh:235 +#: git-stash.sh:268 msgid "Cannot save the current status" -msgstr "" +msgstr "Não é possÃvel guardar o estado atual" -#: git-stash.sh:253 +#: git-stash.sh:286 msgid "Cannot remove worktree changes" -msgstr "" +msgstr "Não é possÃvel remover as alterações da árvore de trabalho" + +#: git-stash.sh:405 +#, sh-format +msgid "unknown option: $opt" +msgstr "opção desconhecido: $opt" -#: git-stash.sh:352 +#: git-stash.sh:415 msgid "No stash found." -msgstr "nenhum stash encontrado." +msgstr "Nenhum stash encontrado." -#: git-stash.sh:359 +#: git-stash.sh:422 #, sh-format msgid "Too many revisions specified: $REV" -msgstr "" +msgstr "Demasiadas revisões especificadas: $REV" -#: git-stash.sh:365 +#: git-stash.sh:428 #, sh-format -msgid "$reference is not valid reference" -msgstr "" +msgid "$reference is not a valid reference" +msgstr "$reference não é uma referência válida" -#: git-stash.sh:393 +#: git-stash.sh:456 #, sh-format msgid "'$args' is not a stash-like commit" -msgstr "" +msgstr "'$args' não é um commit do tipo stash" -#: git-stash.sh:404 +#: git-stash.sh:467 #, sh-format msgid "'$args' is not a stash reference" -msgstr "" +msgstr "'$args' não é uma referência de stash" -#: git-stash.sh:412 +#: git-stash.sh:475 msgid "unable to refresh index" -msgstr "" +msgstr "não foi possÃvel refrescar o Ãndice" -#: git-stash.sh:416 +#: git-stash.sh:479 msgid "Cannot apply a stash in the middle of a merge" -msgstr "" +msgstr "Não é possÃvel aplicar um stash durante um merge" -#: git-stash.sh:424 +#: git-stash.sh:487 msgid "Conflicts in index. Try without --index." -msgstr "" +msgstr "Conflitos no Ãndice. Tente sem --index." -#: git-stash.sh:426 +#: git-stash.sh:489 msgid "Could not save index tree" -msgstr "Não foi posivel guardar o index tree" +msgstr "Não foi possÃvel guardar árvore do Ãndice" -#: git-stash.sh:460 +#: git-stash.sh:523 msgid "Cannot unstage modified files" -msgstr "" +msgstr "Não é possÃvel retirar os ficheiros modificado do Ãndice" + +#: git-stash.sh:538 +msgid "Index was not unstashed." +msgstr "O Ãndice não foi reposto." -#: git-stash.sh:491 +#: git-stash.sh:561 #, sh-format msgid "Dropped ${REV} ($s)" -msgstr "Deixado cair ${REV} ($s)" +msgstr "A descartar ${REV} ($s)" -#: git-stash.sh:492 +#: git-stash.sh:562 #, sh-format msgid "${REV}: Could not drop stash entry" -msgstr "" +msgstr "${REV}: Não foi possÃvel descartar elemento do stash" -#: git-stash.sh:499 +#: git-stash.sh:570 msgid "No branch name specified" -msgstr "Nenhum nome para a rama especificado" +msgstr "Nenhum nome de ramo especificado" -#: git-stash.sh:570 +#: git-stash.sh:642 msgid "(To restore them type \"git stash apply\")" -msgstr "" +msgstr "(Para os restaurar execute \"git stash apply\")" -#: git-submodule.sh:56 +#: git-submodule.sh:104 #, sh-format msgid "cannot strip one component off url '$remoteurl'" +msgstr "não é possÃvel tirar um componente do URL '$remoteurl'" + +#: git-submodule.sh:281 +msgid "Relative path can only be used from the toplevel of the working tree" msgstr "" +"Os caminhos relativos só podem ser usados a partir do topo da árvore de " +"trabalho" -#: git-submodule.sh:109 +#: git-submodule.sh:291 #, sh-format -msgid "No submodule mapping found in .gitmodules for path '$sm_path'" -msgstr "" +msgid "repo URL: '$repo' must be absolute or begin with ./|../" +msgstr "URL do repositório: '$repo' deve ser absoluto ou começar com ./|../" -#: git-submodule.sh:150 +#: git-submodule.sh:308 #, sh-format -msgid "Clone of '$url' into submodule path '$sm_path' failed" +msgid "'$sm_path' already exists in the index" +msgstr "'$sm_path' já existe no Ãndice" + +#: git-submodule.sh:312 +#, sh-format +msgid "" +"The following path is ignored by one of your .gitignore files:\n" +"$sm_path\n" +"Use -f if you really want to add it." msgstr "" +"O seguinte caminho foi ignorado por um ficheiro .gitignore:\n" +"$sm_path\n" +"Use -f se pretende mesmo adicioná-lo." + +#: git-submodule.sh:330 +#, sh-format +msgid "Adding existing repo at '$sm_path' to the index" +msgstr "A adicionar repositório existente em '$sm_path' ao Ãndice" + +#: git-submodule.sh:332 +#, sh-format +msgid "'$sm_path' already exists and is not a valid git repo" +msgstr "'$sm_path' já existe e não é uma repositório git válido" -#: git-submodule.sh:160 +#: git-submodule.sh:340 #, sh-format -msgid "Gitdir '$a' is part of the submodule path '$b' or vice versa" +msgid "A git directory for '$sm_name' is found locally with remote(s):" msgstr "" +"Um diretório git de '$sm_name' foi encontrado localmente com os remotos:" -#: git-submodule.sh:249 +#: git-submodule.sh:342 #, sh-format -msgid "repo URL: '$repo' must be absolute or begin with ./|../" +msgid "" +"If you want to reuse this local git directory instead of cloning again from" msgstr "" +"Se deseja reutilizar este diretório git local em vez de clonar de novo de" -#: git-submodule.sh:266 +#: git-submodule.sh:344 #, sh-format -msgid "'$sm_path' already exists in the index" +msgid "" +"use the '--force' option. If the local git directory is not the correct repo" msgstr "" +"use a opção '--force'. Se o diretório git local não é o repositório correto" -#: git-submodule.sh:283 +#: git-submodule.sh:345 #, sh-format -msgid "'$sm_path' already exists and is not a valid git repo" +msgid "" +"or you are unsure what this means choose another name with the '--name' " +"option." msgstr "" +"ou não tem a certeza do que isto significa, escolha outro nome com a opção " +"'--name'." + +#: git-submodule.sh:347 +#, sh-format +msgid "Reactivating local git directory for submodule '$sm_name'." +msgstr "A reativar o diretório git local do submódulo '$sm_name'." -#: git-submodule.sh:297 +#: git-submodule.sh:359 #, sh-format msgid "Unable to checkout submodule '$sm_path'" -msgstr "" +msgstr "Não foi possÃvel extrair o submódulo '$sm_path'" -#: git-submodule.sh:302 +#: git-submodule.sh:364 #, sh-format msgid "Failed to add submodule '$sm_path'" -msgstr "" +msgstr "Falha ao adicionar o submódulo '$sm_path'" -#: git-submodule.sh:307 +#: git-submodule.sh:373 #, sh-format msgid "Failed to register submodule '$sm_path'" +msgstr "Falha ao registar o submódulo '$sm_path'" + +#: git-submodule.sh:417 +#, sh-format +msgid "Entering '$prefix$displaypath'" +msgstr "A entrar em '$prefix$displaypath'" + +#: git-submodule.sh:437 +#, sh-format +msgid "Stopping at '$prefix$displaypath'; script returned non-zero status." msgstr "" +"Interrompido em '$prefix$displaypath'; o script retornou um valor diferente " +"de zero." + +#: git-submodule.sh:483 +#, sh-format +msgid "No url found for submodule path '$displaypath' in .gitmodules" +msgstr "Nenhum URL encontrado no submódulo '$displaypath' em .gitmodules" + +#: git-submodule.sh:492 +#, sh-format +msgid "Failed to register url for submodule path '$displaypath'" +msgstr "Falha ao registar o URL do submódulo '$displaypath'" -#: git-submodule.sh:349 +#: git-submodule.sh:494 #, sh-format -msgid "Entering '$prefix$sm_path'" -msgstr "Entrando '$prefix$sm_path'" +msgid "Submodule '$name' ($url) registered for path '$displaypath'" +msgstr "Submódulo '$name' ($url) registado em '$displaypath'" -#: git-submodule.sh:363 +#: git-submodule.sh:511 #, sh-format -msgid "Stopping at '$sm_path'; script returned non-zero status." +msgid "Failed to register update mode for submodule path '$displaypath'" +msgstr "Falha ao registar o modo de atualização do submódulo em '$displaypath'" + +#: git-submodule.sh:549 +#, sh-format +msgid "Use '.' if you really want to deinitialize all submodules" +msgstr "Use '.' se pretende mesmo anular a inicialização todos os submódulos" + +#: git-submodule.sh:566 +#, sh-format +msgid "Submodule work tree '$displaypath' contains a .git directory" msgstr "" +"A árvore de trabalho do submódulo em '$displaypath' contém um diretório .git" -#: git-submodule.sh:405 +#: git-submodule.sh:567 #, sh-format -msgid "No url found for submodule path '$sm_path' in .gitmodules" +msgid "" +"(use 'rm -rf' if you really want to remove it including all of its history)" msgstr "" +"(use 'rm -rf' se pretende mesmo removê-lo, incluindo todo o seu histórico)" -#: git-submodule.sh:414 +#: git-submodule.sh:573 #, sh-format -msgid "Failed to register url for submodule path '$sm_path'" +msgid "" +"Submodule work tree '$displaypath' contains local modifications; use '-f' to " +"discard them" msgstr "" +"A árvore de trabalho do submódulo em '$displaypath' contém alterações " +"locais; use '-f' para as descartar" -#: git-submodule.sh:422 +#: git-submodule.sh:576 +#, sh-format +msgid "Cleared directory '$displaypath'" +msgstr "Diretório '$displaypath' limpo" + +#: git-submodule.sh:577 #, sh-format -msgid "Failed to register update mode for submodule path '$sm_path'" +msgid "Could not remove submodule work tree '$displaypath'" msgstr "" +"Não foi possÃvel remover a árvore de trabalho do submódulo em '$displaypath'" -#: git-submodule.sh:424 +#: git-submodule.sh:580 #, sh-format -msgid "Submodule '$name' ($url) registered for path '$sm_path'" +msgid "Could not create empty submodule directory '$displaypath'" +msgstr "Não foi possÃvel criar o diretório vazio do submódulo '$displaypath'" + +#: git-submodule.sh:589 +#, sh-format +msgid "Submodule '$name' ($url) unregistered for path '$displaypath'" msgstr "" +"O registo do submódulo '$name' ($url) foi removido do caminho '$displaypath'" -#: git-submodule.sh:523 +#: git-submodule.sh:723 #, sh-format msgid "" -"Submodule path '$sm_path' not initialized\n" +"Submodule path '$displaypath' not initialized\n" "Maybe you want to use 'update --init'?" msgstr "" +"Submódulo em '$displaypath' não inicializado\n" +"Talvez queira usar 'update --init'?" -#: git-submodule.sh:536 +#: git-submodule.sh:736 #, sh-format -msgid "Unable to find current revision in submodule path '$sm_path'" +msgid "Unable to find current revision in submodule path '$displaypath'" msgstr "" +"Não foi possÃvel encontrar a revisão atual no submódulo em '$displaypath'" -#: git-submodule.sh:555 +#: git-submodule.sh:745 #, sh-format msgid "Unable to fetch in submodule path '$sm_path'" -msgstr "" +msgstr "Não foi possÃvel obter no submódulo '$sm_path'" -#: git-submodule.sh:569 +#: git-submodule.sh:768 #, sh-format -msgid "Unable to rebase '$sha1' in submodule path '$sm_path'" -msgstr "" +msgid "Unable to fetch in submodule path '$displaypath'" +msgstr "Não é possÃvel obter no submódulo '$displaypath'" -#: git-submodule.sh:570 +#: git-submodule.sh:788 #, sh-format -msgid "Submodule path '$sm_path': rebased into '$sha1'" -msgstr "" +msgid "Unable to checkout '$sha1' in submodule path '$displaypath'" +msgstr "Não foi possÃvel extrair '$sha1' no submódulo em '$displaypath'" -#: git-submodule.sh:575 +#: git-submodule.sh:789 #, sh-format -msgid "Unable to merge '$sha1' in submodule path '$sm_path'" -msgstr "" +msgid "Submodule path '$displaypath': checked out '$sha1'" +msgstr "Submódulo em '$displaypath': '$sha1' extraÃdo" -#: git-submodule.sh:576 +#: git-submodule.sh:793 #, sh-format -msgid "Submodule path '$sm_path': merged in '$sha1'" +msgid "Unable to rebase '$sha1' in submodule path '$displaypath'" msgstr "" +"Não foi possÃvel efetuar rebase de '$sha1' no submódulo em '$displaypath'" -#: git-submodule.sh:581 +#: git-submodule.sh:794 #, sh-format -msgid "Unable to checkout '$sha1' in submodule path '$sm_path'" -msgstr "" +msgid "Submodule path '$displaypath': rebased into '$sha1'" +msgstr "Submódulo em '$displaypath': rebase concluÃdo em '$sha1'" -#: git-submodule.sh:582 +#: git-submodule.sh:799 #, sh-format -msgid "Submodule path '$sm_path': checked out '$sha1'" -msgstr "" +msgid "Unable to merge '$sha1' in submodule path '$displaypath'" +msgstr "Não é possÃvel efetuar merge de '$sha1' no submódulo em '$displaypath'" -#: git-submodule.sh:604 -#: git-submodule.sh:927 +#: git-submodule.sh:800 #, sh-format -msgid "Failed to recurse into submodule path '$sm_path'" -msgstr "" +msgid "Submodule path '$displaypath': merged in '$sha1'" +msgstr "Submódulo em '$displaypath': merge em '$sha1' concluÃdo" -#: git-submodule.sh:712 -msgid "--" -msgstr "--" +#: git-submodule.sh:805 +#, sh-format +msgid "" +"Execution of '$command $sha1' failed in submodule path '$prefix$sm_path'" +msgstr "Falha ao executar '$command $sha1' no submódulo em '$prefix$sm_path'" -#: git-submodule.sh:770 +#: git-submodule.sh:806 #, sh-format -msgid " Warn: $name doesn't contain commit $sha1_src" -msgstr "" +msgid "Submodule path '$prefix$sm_path': '$command $sha1'" +msgstr "Submódulo em '$prefix$sm_path': '$command $sha1'" -#: git-submodule.sh:773 +#: git-submodule.sh:836 #, sh-format -msgid " Warn: $name doesn't contain commit $sha1_dst" -msgstr "" +msgid "Failed to recurse into submodule path '$displaypath'" +msgstr "Falha ao percorrer o submódulo em '$displaypath'" + +#: git-submodule.sh:944 +msgid "The --cached option cannot be used with the --files option" +msgstr "A opção --cached não pode ser usada com a opção --files" -#: git-submodule.sh:776 +#: git-submodule.sh:996 #, sh-format -msgid " Warn: $name doesn't contain commits $sha1_src and $sha1_dst" -msgstr "" +msgid "unexpected mode $mod_dst" +msgstr "modo inesperado $mod_dst" + +#: git-submodule.sh:1016 +#, sh-format +msgid " Warn: $display_name doesn't contain commit $sha1_src" +msgstr " Aviso: $display_name não contém o commit $sha1_src" + +#: git-submodule.sh:1019 +#, sh-format +msgid " Warn: $display_name doesn't contain commit $sha1_dst" +msgstr " Warn: $display_name não contém o commit $sha1_dst" + +#: git-submodule.sh:1022 +#, sh-format +msgid " Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst" +msgstr " Warn: $display_name contém os commits $sha1_src e $sha1_dst" -#: git-submodule.sh:801 +#: git-submodule.sh:1047 msgid "blob" msgstr "blob" -#: git-submodule.sh:802 -msgid "submodule" -msgstr "submódulos" +#: git-submodule.sh:1165 +#, sh-format +msgid "Failed to recurse into submodule path '$sm_path'" +msgstr "Falha ao percorrer recursivamente o submódulo em '$sm_path'" -#: git-submodule.sh:973 +#: git-submodule.sh:1229 #, sh-format -msgid "Synchronizing submodule url for '$name'" -msgstr "" +msgid "Synchronizing submodule url for '$displaypath'" +msgstr "A sincronizar o URL do submódulo em '$displaypath'" + +#~ msgid "unable to parse format" +#~ msgstr "não foi possÃvel analisar o formato" + +#~ msgid "improper format entered align:%s" +#~ msgstr "formato impróprio introduzido align:%s" + +#~ msgid "Could not set core.worktree in %s" +#~ msgstr "Não foi possÃvel definir core.worktree em %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ão está definido; o seu valor implÃcito foi alterado\n" +#~ "no Git 2.0 de 'matching' para 'simple'. Para suprimir esta mensagem\n" +#~ "e manter o comportamento tradicional, use:\n" +#~ "\n" +#~ " git config --global push.default matching\n" +#~ "\n" +#~ "Para suprimir esta mensagem e adotar o novo comportamento, use:\n" +#~ "\n" +#~ " git config --global push.default simple\n" +#~ "\n" +#~ "Quando push.default está definido como 'matching', o Git publica\n" +#~ "os ramos locais nos ramos remotos que já existam com o mesmo nome.\n" +#~ "\n" +#~ "Desde a versão 2.0, o Git assume o comportamento mais conservativo " +#~ "'simple',\n" +#~ "publicando só o ramo atual no ramo remoto correspondente, que é usado\n" +#~ "para atualizar o ramo atual com 'git pull'.\n" +#~ "Consulte 'git help config' e procure por 'push.default' para mais " +#~ "informações.\n" +#~ "(o modo 'simple' foi introduzido no Git 1.7.11. Use o modo semelhante\n" +#~ "'current' em vez de 'simple' se por vezes usa versões anteriores do Git)" + +#~ msgid "check|on-demand|no" +#~ msgstr "check|on-demand|no" + +#~ msgid "Could not append '%s'" +#~ msgstr "Não foi possÃvel acrescentar '%s'" + +#~ msgid "Could not set '%s'" +#~ msgstr "Não foi possÃvel definir '%s'" + +#~ msgid "Missing author: %s" +#~ msgstr "Autor em falta: %s" + +#~ msgid "Testing " +#~ msgstr "A testar " + +#~ msgid "Forward-port local commits to the updated upstream head" +#~ msgstr "" +#~ "Migrar commits locais para a cabeça atualizada em relação ao ramo a " +#~ "montante" + +#~ msgid " 0 files changed\n" +#~ msgstr " 0 ficheros modificados\n" + +#~ msgid " %d file changed" +#~ msgid_plural " %d files changed" +#~ msgstr[0] " %d ficheiro modificado" +#~ msgstr[1] " %d ficheiros modificados" + +#~ msgid ", %d insertion(+)" +#~ msgid_plural ", %d insertions(+)" +#~ msgstr[0] ", %d adição(+)" +#~ msgstr[1] ", %d adições(+)" + +#~ msgid ", %d deletion(-)" +#~ msgid_plural ", %d deletions(-)" +#~ msgstr[0] ", %d eliminado(-)" +#~ msgstr[1] ", %d eliminados(-)" + +#~ msgid "You do not have a valid HEAD" +#~ msgstr "Você não tem uma HEAD válida" + +#~ msgid "bug" +#~ msgstr "erro" + +#~ msgid "copied: %s -> %s" +#~ msgstr "copiado: %s -> %s" + +#~ msgid "modified: %s" +#~ msgstr "modificado: %s" + +#~ msgid "renamed: %s -> %s" +#~ msgstr "mudado de nome: %s -> %s" + +#~ msgid ", behind " +#~ msgstr ", atrás " + +#~ msgid "no files added" +#~ msgstr "nenhum ficheiros adicionado" + +#~ msgid "Could not extract email from committer identity." +#~ msgstr "Não foi possÃvel extrair a identidade do committer do e-mail." + +#~ msgid "option %s does not accept negative form" +#~ msgstr "opção %s não aceita formato negativo" + +#~ msgid "Applying: $FIRSTLINE" +#~ msgstr "Aplicando: $FIRSTLINE" + +#~ msgid "--" +#~ msgstr "--" #~ msgid "cherry-pick" #~ msgstr "cherry-pick" #~ msgid "Please enter the commit message for your changes." #~ msgstr "Por favor insira a mensagem de commit das suas alterações." - -#~ msgid "Too many options specified" -#~ msgstr "Demasiadas opções especificadas" @@ -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-16 00:16+0800\n" +"PO-Revision-Date: 2016-03-15 18:54+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,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»" @@ -2138,7 +2283,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 +2318,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 +2334,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 +2401,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 +3136,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 +3262,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 +3318,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 +3432,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 +3624,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 +3825,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 +3922,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 +3930,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 +3983,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 +4109,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 +4160,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 +4174,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 +4370,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 +4378,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 +4390,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 +4430,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 +4446,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 +4503,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 +4933,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 +4955,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 +5123,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 +5173,7 @@ msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ñ€Ð°Ð·Ð¾Ð±Ñ€Ð°Ñ‚ÑŒ новоÑозданный коммит" #: builtin/commit.c:1477 msgid "detached HEAD" -msgstr "отделенный HEAD" +msgstr "отделённый HEAD" #: builtin/commit.c:1480 msgid " (root-commit)" @@ -5032,8 +5211,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 +5245,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 +5269,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 +5357,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 +5503,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 +5747,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 +6207,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 +6524,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 +6834,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 +6858,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 +6867,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 +6960,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 +7008,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 +7085,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 +7519,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 +7551,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 +7610,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 +7629,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 +7673,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 +7906,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 +7926,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 +8202,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 +8219,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 +8378,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 +8580,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 +8650,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 +8678,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 +8708,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 +8720,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 +8749,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 +8757,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 +8768,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 +8782,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 +8847,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 +9017,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 +9158,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 +9204,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 +9226,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 +9358,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 +9370,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 +9383,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 +9618,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 +9802,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 +10038,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 +10092,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 +10116,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 +10189,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 +10493,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 +10710,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 +10803,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 +10849,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 +10860,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 +10922,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 +10945,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 +11262,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 +11422,7 @@ msgstr "Ðевозможно убрать из индекÑа измененны #: git-stash.sh:538 msgid "Index was not unstashed." -msgstr "Ð˜Ð½Ð´ÐµÐºÑ Ð½Ðµ был доÑтат из ÑпрÑтанных изменений." +msgstr "Ð˜Ð½Ð´ÐµÐºÑ Ð½Ðµ был извлечён из ÑпрÑтанных изменений." #: git-stash.sh:561 #, sh-format @@ -11372,108 +11596,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-03-16 00:16+0800\n" +"PO-Revision-Date: 2016-03-15 22:35+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,248 @@ 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:71 +#, c-format +msgid "unrecognized format: %%(%s)" +msgstr "okänt format: %%(%s)" + +#: ref-filter.c:77 +#, c-format +msgid "%%(body) does not take arguments" +msgstr "%%(body) tar inte argument" + +#: ref-filter.c:84 +#, c-format +msgid "%%(subject) does not take arguments" +msgstr "%%(subject) tar inte argument" -#: ref-filter.c:704 +#: 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:244 +#, c-format +msgid "malformed field name: %.*s" +msgstr "felformat fältnamn: %.*s" + +#: ref-filter.c:270 +#, c-format +msgid "unknown field name: %.*s" +msgstr "okänt fältnamn: %.*s" + +#: 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:424 +#, c-format +msgid "malformed format string %s" +msgstr "felformad formatsträng %s" + +#: ref-filter.c:878 +msgid ":strip= requires a positive integer argument" +msgstr ":strip= kräver ett positivt heltalsargument" + +#: ref-filter.c:883 +#, c-format +msgid "ref '%s' does not have %ld components to :strip" +msgstr "referensen \"%s\" har inte %ld komponenter för :strip" + +#: ref-filter.c:1046 +#, c-format +msgid "unknown %.*s format %s" +msgstr "okänt \"%.*s\"-format %s" + +#: ref-filter.c:1066 ref-filter.c:1097 +#, c-format +msgid "missing object %s for %s" +msgstr "objektet %s saknas för %s" + +#: ref-filter.c:1069 ref-filter.c:1100 +#, c-format +msgid "parse_object_buffer failed on %s for %s" +msgstr "parse_object_buffer misslyckades pÃ¥ %s för %s" + +#: ref-filter.c:1311 #, c-format msgid "malformed object at '%s'" msgstr "felformat objekt vid \"%s\"" -#: ref-filter.c:1561 +#: ref-filter.c:1373 +#, c-format +msgid "ignoring ref with broken name %s" +msgstr "ignorerar referens med trasigt namn %s" + +#: ref-filter.c:1378 +#, c-format +msgid "ignoring broken ref %s" +msgstr "ignorerar trasig referens %s" + +#: 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 +1344,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 +1363,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 +1409,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 +1417,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 +1427,243 @@ 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_file.c:1080 +msgid "offset before end of packfile (broken .idx?)" +msgstr "offset före slutet av packfilen (trasig .idx?)" + +#: sha1_file.c:2459 +#, c-format +msgid "offset before start of pack index for %s (corrupt index?)" +msgstr "offset före slutet av packindex för %s (trasigt index?)" + +#: sha1_file.c:2463 +#, c-format +msgid "offset beyond end of pack index for %s (truncated index?)" +msgstr "offset borton slutet av packindex för %s (trunkerat index?)" + +#: 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 +1685,86 @@ 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 +#: trailer.c:237 #, c-format -msgid "Could not set core.worktree in %s" -msgstr "Kunde inte sätta core.worktree i %s" +msgid "running trailer command '%s' failed" +msgstr "misslyckades utföra \"trailer\"-kommandot \"%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 +1802,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 +2308,11 @@ msgstr "försvunnen" msgid "behind " msgstr "efter " -#: compat/precompose_utf8.c:56 builtin/clone.c:408 +#: wt-status.c:1680 wt-status.c:1683 +msgid "ahead " +msgstr "före " + +#: 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 +2339,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 +2374,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 +2390,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 +2457,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 +2591,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 +2631,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 +2669,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 +2677,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 +2695,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 +2848,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 +2866,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 +3212,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 +3390,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 +3504,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 +3703,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 +3902,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 +3913,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 +4013,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 +4021,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 +4074,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 +4200,41 @@ 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:665 builtin/clone.c:659 +msgid "unable to update HEAD" +msgstr "kan inte uppdatera HEAD" + +#: 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 +4257,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 +4284,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 +4437,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 +4482,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 +4494,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 +4514,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 +4561,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 +4624,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 +4636,162 @@ 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:239 +msgid "" +"No directory name could be guessed.\n" +"Please specify a directory on the command line" +msgstr "" +"Kunde inte gissa katalognamn.\n" +"Ange en katalog pÃ¥ kommandoraden" + +#: 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 +4801,129 @@ 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:647 +#, c-format +msgid "unable to update %s" +msgstr "kan inte uppdatera %s" + +#: 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:753 +msgid "unable to write parameters to config file" +msgstr "kunde inte skriva parametrar till konfigurationsfilen" + +#: 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 +5135,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 +5321,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 +5411,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 +5448,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 +5472,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 +5564,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 +5715,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 +5965,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 +6132,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 +6188,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 +6442,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 +6681,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 +6762,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 +6771,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 +6780,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,60 +7070,55 @@ 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 +#: builtin/index-pack.c:1479 builtin/index-pack.c:1664 #, c-format msgid "no threads support, ignoring %s" msgstr "trÃ¥dstöd saknas, ignorerar %s" -#: builtin/index-pack.c:1537 +#: builtin/index-pack.c:1538 #, c-format msgid "Cannot open existing pack file '%s'" msgstr "Kan inte öppna befintlig paketfil \"%s\"" -#: builtin/index-pack.c:1539 +#: builtin/index-pack.c:1540 #, c-format msgid "Cannot open existing pack idx file for '%s'" msgstr "Kan inte öppna befintlig paket-idx-fil för \"%s\"" -#: builtin/index-pack.c:1586 +#: builtin/index-pack.c:1587 #, c-format msgid "non delta: %d object" msgid_plural "non delta: %d objects" msgstr[0] "icke-delta: %d objekt" msgstr[1] "icke-delta: %d objekt" -#: builtin/index-pack.c:1593 +#: builtin/index-pack.c:1594 #, c-format msgid "chain length = %d: %lu object" msgid_plural "chain length = %d: %lu objects" msgstr[0] "kedjelängd = %d: %lu objekt" msgstr[1] "kedjelängd = %d: %lu objekt" -#: builtin/index-pack.c:1623 +#: builtin/index-pack.c:1624 msgid "Cannot come back to cwd" msgstr "Kan inte gÃ¥ tillbaka till arbetskatalogen (cwd)" -#: 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 "felaktig %s" -#: builtin/index-pack.c:1708 +#: builtin/index-pack.c:1709 msgid "--fix-thin cannot be used without --stdin" msgstr "--fix-thin kan inte användas med --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 "paketfilnamnet \"%s\" slutar inte med \".pack\"" -#: builtin/index-pack.c:1729 +#: builtin/index-pack.c:1730 msgid "--verify with no packfile name given" msgstr "--verify angavs utan paketfilnamn" @@ -7042,24 +7244,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 +7323,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 +7759,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 +7792,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 +7800,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 +7851,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 +7870,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 +7922,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 +7976,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 +7984,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 +8165,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 +8185,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 +8469,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 +8486,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 +8530,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 +8561,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 +8575,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 +8591,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 +8657,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 +8859,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 +8913,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 +8928,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 +8939,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 +8970,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 +8979,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 +8994,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 +9011,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 +9023,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 +9040,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 +9065,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 +9080,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 +9093,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 +9109,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 +9128,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 +9140,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 +9154,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 +9169,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 +9205,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 +9376,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 +9522,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 +9571,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 +9595,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 +10170,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 +10423,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 +10580,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 +10624,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 +10903,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 +11216,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 +11263,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 +11277,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:321 +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)" @@ -11153,8 +11362,8 @@ msgid "Update remote refs along with associated objects" msgstr "Uppdatera fjärr-referenser och tillhörande objekt" #: common-cmds.h:32 -msgid "Forward-port local commits to the updated upstream head" -msgstr "FramÃ¥tanpassa lokala kommandon pÃ¥ uppdaterat uppströmshuvud" +msgid "Reapply commits on top of another base tip" +msgstr "Applicera incheckningar pÃ¥ nytt ovanpÃ¥ en annan bastopp" #: common-cmds.h:33 msgid "Reset current HEAD to the specified state" @@ -11866,7 +12075,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 +12084,184 @@ 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 "Forward-port local commits to the updated upstream head" +#~ msgstr "FramÃ¥tanpassa lokala kommandon pÃ¥ uppdaterat uppströmshuvud" + +#~ 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" @@ -12046,9 +12331,6 @@ msgstr "Synkroniserar undermodul-url för \"$displaypath\"" #~ msgid "unable to parse value '%s' for option %s" #~ msgstr "kunde inte tolka värdet \"%s\" för flaggan %s" -#~ msgid "unable to resolve HEAD" -#~ msgstr "kan inte bestämma HEAD" - #~ msgid "-b and -B are mutually exclusive" #~ msgstr "-b och -B kan inte användas samtidigt" @@ -12118,9 +12400,6 @@ msgstr "Synkroniserar undermodul-url för \"$displaypath\"" #~ msgid "prune .git/worktrees" #~ msgstr "rensa .git/worktrees" -#~ msgid "--worktrees does not take extra arguments" -#~ msgstr "--worktrees tar inte ytterligare argument" - #~ msgid "The most commonly used git commands are:" #~ msgstr "De mest använda git-kommandona är:" @@ -12151,9 +12430,6 @@ msgstr "Synkroniserar undermodul-url för \"$displaypath\"" #~ msgid "force creation (when already exists)" #~ msgstr "tvinga skapande (när den redan finns)" -#~ msgid "Malformed ident string: '%s'" -#~ msgstr "Felaktig indragningssträng: \"%s\"" - #~ msgid "slot" #~ msgstr "plats" @@ -12211,9 +12487,6 @@ msgstr "Synkroniserar undermodul-url för \"$displaypath\"" #~ msgid "bug" #~ msgstr "programfel" -#~ msgid "ahead " -#~ msgstr "före " - #~ msgid ", behind " #~ msgstr ", efter " @@ -12497,9 +12770,6 @@ msgstr "Synkroniserar undermodul-url för \"$displaypath\"" #~ msgid "# Changed but not updated:" #~ msgstr "# Ändrade men inte uppdaterade:" -#~ msgid "path '%s' does not have all 3 versions" -#~ msgstr "sökvägen \"%s\" har inte alla 3 versionerna" - #~ msgid "git checkout: we do not like '%s' as a branch name." #~ msgstr "git checkout: vi tycker inte om \"%s\" som namn pÃ¥ en gren." @@ -2,16 +2,16 @@ # 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-03-16 00:16+0800\n" +"PO-Revision-Date: 2016-03-21 07:14+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-Team: Vietnamese <gnome-vi-list@gnome.org>\n" "Language: vi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\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,249 @@ 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:71 +#, c-format +msgid "unrecognized format: %%(%s)" +msgstr "không nháºn ra định dạng: %%(%s)" + +#: ref-filter.c:77 +#, c-format +msgid "%%(body) does not take arguments" +msgstr "%%(body) không nháºn các đối số" + +#: ref-filter.c:84 +#, c-format +msgid "%%(subject) does not take arguments" +msgstr "%%(subject) không nháºn các đối số" -#: ref-filter.c:704 +#: 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 "improper format entered align:%s" -msgstr "định dạng không đúng chá»— căn chỉnh:%s" +msgid "unrecognized width:%s" +msgstr "chiá»u rá»™ng không được thừa nháºn:%s" -#: ref-filter.c:898 +#: ref-filter.c:157 +#, c-format +msgid "unrecognized %%(align) argument: %s" +msgstr "đối số không được thừa nháºn %%(align): %s" + +#: 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:244 +#, c-format +msgid "malformed field name: %.*s" +msgstr "tên trưá»ng dị hình: %.*s" + +#: ref-filter.c:270 +#, c-format +msgid "unknown field name: %.*s" +msgstr "không hiểu tên trưá»ng: %.*s" + +#: 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:424 +#, c-format +msgid "malformed format string %s" +msgstr "chuá»—i định dạng dị hình %s" + +#: ref-filter.c:878 +msgid ":strip= requires a positive integer argument" +msgstr ":strip= cần má»™t đối số nguyên dương" + +#: ref-filter.c:883 +#, c-format +msgid "ref '%s' does not have %ld components to :strip" +msgstr "tham chiếu “%s†không có %ld thà nh phần để mà :strip" + +#: ref-filter.c:1046 +#, c-format +msgid "unknown %.*s format %s" +msgstr "Không hiểu định dạng %.*s %s" + +#: ref-filter.c:1066 ref-filter.c:1097 +#, c-format +msgid "missing object %s for %s" +msgstr "thiếu đối tượng %s cho %s" + +#: ref-filter.c:1069 ref-filter.c:1100 +#, c-format +msgid "parse_object_buffer failed on %s for %s" +msgstr "parse_object_buffer gặp lá»—i trên %s cho %s" + +#: ref-filter.c: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:1373 +#, c-format +msgid "ignoring ref with broken name %s" +msgstr "Ä‘ang lá» Ä‘i tham chiếu vá»›i tên há»ng %s" + +#: ref-filter.c:1378 +#, c-format +msgid "ignoring broken ref %s" +msgstr "Ä‘ang lá» Ä‘i tham chiếu há»ng %s" + +#: 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 +1339,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 +1356,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 +1404,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 +1412,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 +1422,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 +1491,177 @@ 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_file.c:1080 +msgid "offset before end of packfile (broken .idx?)" +msgstr "vị trà tương đối trước Ä‘iểm kết thúc cá»§a táºp tin gói (.idx há»ng à ?)" + +#: sha1_file.c:2459 +#, c-format +msgid "offset before start of pack index for %s (corrupt index?)" +msgstr "vị trà tương đối nằm trước chỉ mục gói cho %s (mục lục bị há»ng à ?)" + +#: sha1_file.c:2463 +#, c-format +msgid "offset beyond end of pack index for %s (truncated index?)" +msgstr "" +"vị trà tương đối vượt quá cuối cá»§a chỉ mục gói cho %s (mục lục bị cắt cụt à ?)" + +#: 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 +1685,86 @@ 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 +#: trailer.c:237 #, c-format -msgid "Could not set core.worktree in %s" -msgstr "Không thể đặt “core.worktree†trong “%sâ€." +msgid "running trailer command '%s' failed" +msgstr "chạy lệnh kéo theo “%s†gặp lá»—i" -#: 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 +1802,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 +2325,11 @@ msgstr "đã ra Ä‘i" msgid "behind " msgstr "đằng sau " -#: compat/precompose_utf8.c:56 builtin/clone.c:408 +#: wt-status.c:1680 wt-status.c:1683 +msgid "ahead " +msgstr "phÃa trước " + +#: 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 +2357,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 +2394,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 +2410,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 +2481,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 +2614,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 +2653,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 +2694,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 +2702,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 +2720,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 +2874,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 +2892,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 +3237,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 +3419,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 +3535,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 +3733,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 +3890,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 +3932,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 +3943,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 +4043,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 +4051,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 +4104,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 +4232,41 @@ 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:665 builtin/clone.c:659 +msgid "unable to update HEAD" +msgstr "không thể cáºp nháºt HEAD" + +#: 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 +4285,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 +4306,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 +4461,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 +4505,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 +4517,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 +4537,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 +4584,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 +4646,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 +4658,161 @@ 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:239 +msgid "" +"No directory name could be guessed.\n" +"Please specify a directory on the command line" +msgstr "" +"Không Ä‘oán được thư mục tên là gì.\n" +"Vui lòng chỉ định tên má»™t thư mục trên dòng lệnh" + +#: builtin/clone.c: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 +4822,126 @@ 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:647 +#, c-format +msgid "unable to update %s" +msgstr "không thể cáºp nháºt %s" + +#: 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:753 +msgid "unable to write parameters to config file" +msgstr "không thể ghi các tham số và o táºp tin cấu hình" + +#: builtin/clone.c: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 +5166,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 +5363,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 +5456,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 +5494,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 +5518,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 +5612,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 +5765,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 +6015,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 +6184,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 +6242,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 +6495,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 +6737,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 +6817,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 +6826,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 +6835,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,58 +7122,53 @@ 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 +#: builtin/index-pack.c:1479 builtin/index-pack.c:1664 #, c-format msgid "no threads support, ignoring %s" msgstr "không há»— trợ Ä‘a tuyến, bá» qua %s" -#: builtin/index-pack.c:1537 +#: builtin/index-pack.c:1538 #, c-format msgid "Cannot open existing pack file '%s'" msgstr "Không thể mở táºp tin gói đã sẵn có “%sâ€" -#: builtin/index-pack.c:1539 +#: builtin/index-pack.c:1540 #, c-format msgid "Cannot open existing pack idx file for '%s'" msgstr "Không thể mở táºp tin idx cá»§a gói cho “%sâ€" -#: builtin/index-pack.c:1586 +#: builtin/index-pack.c:1587 #, c-format msgid "non delta: %d object" msgid_plural "non delta: %d objects" msgstr[0] "không delta: %d đối tượng" -#: builtin/index-pack.c:1593 +#: builtin/index-pack.c:1594 #, c-format msgid "chain length = %d: %lu object" msgid_plural "chain length = %d: %lu objects" msgstr[0] "chiá»u dà i xÃch = %d: %lu đối tượng" -#: builtin/index-pack.c:1623 +#: builtin/index-pack.c:1624 msgid "Cannot come back to cwd" msgstr "Không thể quay lại cwd" -#: 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 sai" -#: builtin/index-pack.c:1708 +#: builtin/index-pack.c:1709 msgid "--fix-thin cannot be used without --stdin" msgstr "--fix-thin không thể được dùng mà không có --stdin" -#: builtin/index-pack.c: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 "tên táºp tin táºp tin gói “%s†không được kết thúc bằng Ä‘uôi “.packâ€" -#: builtin/index-pack.c:1729 +#: builtin/index-pack.c:1730 msgid "--verify with no packfile name given" msgstr "dùng tùy chá»n --verify mà không đưa ra tên packfile" @@ -7098,24 +7294,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:26 +msgid "edit files in place" +msgstr "sá»a các táºp tin tại chá»—" -#: builtin/interpret-trailers.c:25 +#: 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 +7373,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 +7598,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 +7815,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 +7847,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 +7855,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 +7908,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 +7927,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 +7981,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 +8037,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 +8045,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 +8228,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 +8248,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 +8532,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 +8549,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 +8593,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 +8624,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 +8638,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 +8654,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 +8722,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 +8925,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 +8980,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 +8996,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 +9008,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 +9041,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 +9050,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 +9067,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 +9085,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 +9114,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 +9139,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 +9154,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 +9168,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 +9185,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 +9205,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 +9219,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 +9234,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 +9250,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 +9286,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 +9459,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 +9605,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 +9654,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 +9676,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 +10250,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 +10498,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 +10659,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 +10705,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 +10982,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 +11298,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 +11344,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 +11358,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:321 +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)" @@ -11232,9 +11445,8 @@ msgid "Update remote refs along with associated objects" msgstr "Cáºp nháºt th.chiếu máy chá»§ cùng vá»›i các đối tượng liên quan đến nó" #: common-cmds.h:32 -msgid "Forward-port local commits to the updated upstream head" -msgstr "" -"Chuyển tiếp những lần chuyển giao ná»™i bá»™ tá»›i head thượng nguồn đã cáºp nháºt" +msgid "Reapply commits on top of another base tip" +msgstr "Thu hoạch các lần chuyển giao trên đỉnh cá»§a đầu mút cÆ¡ sở khác" #: common-cmds.h:33 msgid "Reset current HEAD to the specified state" @@ -11950,7 +12162,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 +12171,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 +12227,133 @@ 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 "Forward-port local commits to the updated upstream head" +#~ msgstr "" +#~ "Chuyển tiếp những lần chuyển giao ná»™i bá»™ tá»›i head thượng nguồn đã cáºp nháºt" + +#~ 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ả" @@ -12129,9 +12418,6 @@ msgstr "Url Mô-Ä‘un-con đồng bá»™ hóa cho “$displaypathâ€" #~ msgid "unable to parse value '%s' for option %s" #~ msgstr "không thể phân tÃch giá trị “%s†cho tùy chá»n %s" -#~ msgid "unable to resolve HEAD" -#~ msgstr "không thể phân giải HEAD" - #~ msgid "-b and -B are mutually exclusive" #~ msgstr "-b và -B loại từ lẫn nhau." @@ -12201,9 +12487,6 @@ msgstr "Url Mô-Ä‘un-con đồng bá»™ hóa cho “$displaypathâ€" #~ msgid "prune .git/worktrees" #~ msgstr "xén .git/worktrees" -#~ msgid "--worktrees does not take extra arguments" -#~ msgstr "--worktrees không nháºn các đối số thêm" - #~ msgid "The most commonly used git commands are:" #~ msgstr "Những lệnh git hay được dùng nhất là :" @@ -12234,9 +12517,6 @@ msgstr "Url Mô-Ä‘un-con đồng bá»™ hóa cho “$displaypathâ€" #~ msgid "force creation (when already exists)" #~ msgstr "ép buá»™c tạo (khi đã có nhánh cùng tên)" -#~ msgid "Malformed ident string: '%s'" -#~ msgstr "Chuá»—i thụt lỠđầu dòng dị hình: “%sâ€" - #~ msgid "slot" #~ msgstr "khe" @@ -12285,9 +12565,6 @@ msgstr "Url Mô-Ä‘un-con đồng bá»™ hóa cho “$displaypathâ€" #~ msgid "bug" #~ msgstr "lá»—i" -#~ msgid "ahead " -#~ msgstr "phÃa trước " - #~ msgid ", behind " #~ msgstr ", đằng sau " diff --git a/po/zh_CN.po b/po/zh_CN.po index c7fed4628b..a6b06f9d39 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' 未æä¾›ç”¨äºŽ :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 "缺失 %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,16 @@ 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); + +/* + * Update HEAD of the specified gitdir. + * Similar to create_symref("relative-git-dir/HEAD", target, NULL), but + * this can update the main working tree's HEAD regardless of where + * $GIT_DIR points to. + * Return 0 if successful, non-zero otherwise. + * */ +extern int set_worktree_head_symref(const char *gitdir, const char *target); enum action_on_err { UPDATE_REFS_MSG_ON_ERR, diff --git a/refs/files-backend.c b/refs/files-backend.c index de9af1615c..ea78ce9d90 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,108 @@ 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; + int ret = -1; +#ifndef NO_SYMLINK_HEAD + char *ref_path = get_locked_file_path(lock->lk); + unlink(ref_path); + ret = symlink(target, ref_path); + free(ref_path); - if (logmsg && read_ref(ref_target, old_sha1)) - hashclr(old_sha1); + if (ret) + fprintf(stderr, "no symlink - falling back to symbolic ref\n"); +#endif + return ret; +} - if (safe_create_leading_directories(git_HEAD) < 0) - return error("unable to create directory for %s", git_HEAD); +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); + } +} -#ifndef NO_SYMLINK_HEAD - if (prefer_symlink_refs) { - unlink(git_HEAD); - if (!symlink(refs_heads_master, git_HEAD)) - goto done; - fprintf(stderr, "no symlink - falling back to symbolic ref\n"); +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; } -#endif - 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); + 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(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)) { + ret = create_symref_locked(lock, refname, target, logmsg); + unlock_ref(lock); + return ret; +} + +int set_worktree_head_symref(const char *gitdir, const char *target) +{ + static struct lock_file head_lock; + struct ref_lock *lock; + struct strbuf head_path = STRBUF_INIT; + const char *head_rel; + int ret; + + strbuf_addf(&head_path, "%s/HEAD", absolute_path(gitdir)); + if (hold_lock_file_for_update(&head_lock, head_path.buf, + LOCK_NO_DEREF) < 0) { + struct strbuf err = STRBUF_INIT; + unable_to_lock_message(head_path.buf, errno, &err); error("%s", err.buf); strbuf_release(&err); + strbuf_release(&head_path); + return -1; } - free(git_HEAD); - return 0; + /* head_rel will be "HEAD" for the main tree, "worktrees/wt/HEAD" for + linked trees */ + head_rel = remove_leading_path(head_path.buf, + absolute_path(get_git_common_dir())); + /* to make use of create_symref_locked(), initialize ref_lock */ + lock = xcalloc(1, sizeof(struct ref_lock)); + lock->lk = &head_lock; + lock->ref_name = xstrdup(head_rel); + lock->orig_ref_name = xstrdup(head_rel); + + ret = create_symref_locked(lock, head_rel, target, NULL); + + unlock_ref(lock); /* will free lock */ + strbuf_release(&head_path); + 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; @@ -457,7 +455,6 @@ static void read_config(void) { static int loaded; struct object_id oid; - const char *head_ref; int flag; if (loaded) @@ -465,10 +462,12 @@ static void read_config(void) loaded = 1; current_branch = NULL; - head_ref = resolve_ref_unsafe("HEAD", 0, oid.hash, &flag); - if (head_ref && (flag & REF_ISSYMREF) && - skip_prefix(head_ref, "refs/heads/", &head_ref)) { - current_branch = make_branch(head_ref, 0); + if (startup_info->have_repository) { + const char *head_ref = resolve_ref_unsafe("HEAD", 0, oid.hash, &flag); + if (head_ref && (flag & REF_ISSYMREF) && + skip_prefix(head_ref, "refs/heads/", &head_ref)) { + current_branch = make_branch(head_ref, 0); + } } git_config(handle_config, NULL); alias_all_urls(); @@ -715,18 +714,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) @@ -1670,7 +1660,7 @@ int branch_merge_matches(struct branch *branch, return refname_match(branch->merge[i]->src, refname); } -__attribute((format (printf,2,3))) +__attribute__((format (printf,2,3))) static const char *error_buf(struct strbuf *err, const char *fmt, ...) { if (err) { @@ -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..2d6628012d 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 @@ -588,6 +590,16 @@ static void *run_thread(void *data) struct async *async = data; intptr_t ret; + if (async->isolate_sigpipe) { + sigset_t mask; + sigemptyset(&mask); + sigaddset(&mask, SIGPIPE); + if (pthread_sigmask(SIG_BLOCK, &mask, NULL) < 0) { + ret = error("unable to block SIGPIPE in async thread"); + return (void *)ret; + } + } + pthread_setspecific(async_key, async); ret = async->proc(async->proc_in, async->proc_out, async->data); return (void *)ret; @@ -865,3 +877,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..49ba764c6c 100644 --- a/run-command.h +++ b/run-command.h @@ -116,6 +116,7 @@ struct async { int proc_in; int proc_out; #endif + int isolate_sigpipe; }; int start_async(struct async *async); @@ -123,4 +124,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/send-pack.c b/send-pack.c index 047bd18fde..37ee04ea3b 100644 --- a/send-pack.c +++ b/send-pack.c @@ -518,6 +518,7 @@ int send_pack(struct send_pack_args *args, demux.proc = sideband_demux; demux.data = fd; demux.out = -1; + demux.isolate_sigpipe = 1; if (start_async(&demux)) die("send-pack: unable to fork off sideband demultiplexer"); in = demux.out; @@ -531,8 +532,10 @@ int send_pack(struct send_pack_args *args, close(out); if (git_connection_is_socket(conn)) shutdown(fd[0], SHUT_WR); - if (use_sideband) + if (use_sideband) { + close(demux.out); finish_async(&demux); + } fd[1] = -1; return -1; } @@ -551,11 +554,11 @@ int send_pack(struct send_pack_args *args, packet_flush(out); if (use_sideband && cmds_sent) { + close(demux.out); if (finish_async(&demux)) { error("error in sideband demultiplexer"); ret = -1; } - close(demux.out); } if (ret < 0) 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); @@ -5,7 +5,9 @@ static int inside_git_dir = -1; static int inside_work_tree = -1; static int work_tree_config_is_bogus; -static struct string_list unknown_extensions = STRING_LIST_INIT_DUP; + +static struct startup_info the_startup_info; +struct startup_info *startup_info = &the_startup_info; /* * The input parameter must contain an absolute path, and it must already be @@ -100,7 +102,7 @@ char *prefix_path_gently(const char *prefix, int len, return NULL; } } else { - sanitized = xstrfmt("%.*s%s", len, prefix, path); + sanitized = xstrfmt("%.*s%s", len, len ? prefix : "", path); if (remaining_prefix) *remaining_prefix = len; if (normalize_path_copy_len(sanitized, sanitized, remaining_prefix)) { @@ -370,14 +372,13 @@ void setup_work_tree(void) initialized = 1; } -static int check_repo_format(const char *var, const char *value, void *cb) +static int check_repo_format(const char *var, const char *value, void *vdata) { + struct repository_format *data = vdata; const char *ext; if (strcmp(var, "core.repositoryformatversion") == 0) - repository_format_version = git_config_int(var, value); - else if (strcmp(var, "core.sharedrepository") == 0) - shared_repository = git_config_perm(var, value); + data->version = git_config_int(var, value); else if (skip_prefix(var, "extensions.", &ext)) { /* * record any known extensions here; otherwise, @@ -387,9 +388,15 @@ static int check_repo_format(const char *var, const char *value, void *cb) if (!strcmp(ext, "noop")) ; else if (!strcmp(ext, "preciousobjects")) - repository_format_precious_objects = git_config_bool(var, value); + data->precious_objects = git_config_bool(var, value); else - string_list_append(&unknown_extensions, ext); + string_list_append(&data->unknown_extensions, ext); + } else if (strcmp(var, "core.bare") == 0) { + data->is_bare = git_config_bool(var, value); + } else if (strcmp(var, "core.worktree") == 0) { + if (!value) + return config_error_nonbool(var); + data->work_tree = xstrdup(value); } return 0; } @@ -397,56 +404,84 @@ static int check_repo_format(const char *var, const char *value, void *cb) static int check_repository_format_gently(const char *gitdir, int *nongit_ok) { struct strbuf sb = STRBUF_INIT; - const char *repo_config; - config_fn_t fn; - int ret = 0; - - string_list_clear(&unknown_extensions, 0); + struct strbuf err = STRBUF_INIT; + struct repository_format candidate; + int has_common; - if (get_common_dir(&sb, gitdir)) - fn = check_repo_format; - else - fn = check_repository_format_version; + has_common = get_common_dir(&sb, gitdir); strbuf_addstr(&sb, "/config"); - repo_config = sb.buf; + read_repository_format(&candidate, sb.buf); + strbuf_release(&sb); /* - * git_config() can't be used here because it calls git_pathdup() - * to get $GIT_CONFIG/config. That call will make setup_git_env() - * set git_dir to ".git". - * - * We are in gitdir setup, no git dir has been found useable yet. - * Use a gentler version of git_config() to check if this repo - * is a good one. + * For historical use of check_repository_format() in git-init, + * we treat a missing config as a silent "ok", even when nongit_ok + * is unset. */ - git_config_early(fn, NULL, repo_config); - if (GIT_REPO_VERSION_READ < repository_format_version) { - if (!nongit_ok) - die ("Expected git repo version <= %d, found %d", - GIT_REPO_VERSION_READ, repository_format_version); - warning("Expected git repo version <= %d, found %d", - GIT_REPO_VERSION_READ, repository_format_version); - warning("Please upgrade Git"); - *nongit_ok = -1; - ret = -1; + if (candidate.version < 0) + return 0; + + if (verify_repository_format(&candidate, &err) < 0) { + if (nongit_ok) { + warning("%s", err.buf); + strbuf_release(&err); + *nongit_ok = -1; + return -1; + } + die("%s", err.buf); } - if (repository_format_version >= 1 && unknown_extensions.nr) { + repository_format_precious_objects = candidate.precious_objects; + string_list_clear(&candidate.unknown_extensions, 0); + if (!has_common) { + if (candidate.is_bare != -1) { + is_bare_repository_cfg = candidate.is_bare; + if (is_bare_repository_cfg == 1) + inside_work_tree = -1; + } + if (candidate.work_tree) { + free(git_work_tree_cfg); + git_work_tree_cfg = candidate.work_tree; + inside_work_tree = -1; + } + } else { + free(candidate.work_tree); + } + + return 0; +} + +int read_repository_format(struct repository_format *format, const char *path) +{ + memset(format, 0, sizeof(*format)); + format->version = -1; + format->is_bare = -1; + string_list_init(&format->unknown_extensions, 1); + git_config_from_file(check_repo_format, path, format); + return format->version; +} + +int verify_repository_format(const struct repository_format *format, + struct strbuf *err) +{ + if (GIT_REPO_VERSION_READ < format->version) { + strbuf_addf(err, _("Expected git repo version <= %d, found %d"), + GIT_REPO_VERSION_READ, format->version); + return -1; + } + + if (format->version >= 1 && format->unknown_extensions.nr) { int i; - if (!nongit_ok) - die("unknown repository extension: %s", - unknown_extensions.items[0].string); + strbuf_addstr(err, _("unknown repository extensions found:")); - for (i = 0; i < unknown_extensions.nr; i++) - warning("unknown repository extension: %s", - unknown_extensions.items[i].string); - *nongit_ok = -1; - ret = -1; + for (i = 0; i < format->unknown_extensions.nr; i++) + strbuf_addf(err, "\n\t%s", + format->unknown_extensions.items[i].string); + return -1; } - strbuf_release(&sb); - return ret; + return 0; } /* @@ -905,10 +940,9 @@ const char *setup_git_directory_gently(int *nongit_ok) else setenv(GIT_PREFIX_ENVIRONMENT, "", 1); - if (startup_info) { - startup_info->have_repository = !nongit_ok || !*nongit_ok; - startup_info->prefix = prefix; - } + startup_info->have_repository = !nongit_ok || !*nongit_ok; + startup_info->prefix = prefix; + return prefix; } @@ -963,28 +997,10 @@ int git_config_perm(const char *var, const char *value) return -(i & 0666); } -int check_repository_format_version(const char *var, const char *value, void *cb) -{ - int ret = check_repo_format(var, value, cb); - if (ret) - return ret; - if (strcmp(var, "core.bare") == 0) { - is_bare_repository_cfg = git_config_bool(var, value); - if (is_bare_repository_cfg == 1) - inside_work_tree = -1; - } else if (strcmp(var, "core.worktree") == 0) { - if (!value) - return config_error_nonbool(var); - free(git_work_tree_cfg); - git_work_tree_cfg = xstrdup(value); - inside_work_tree = -1; - } - return 0; -} - -int check_repository_format(void) +void check_repository_format(void) { - return check_repository_format_gently(get_git_dir(), NULL); + check_repository_format_gently(get_git_dir(), NULL); + startup_info->have_repository = 1; } /* 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..776101e8d7 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) { @@ -1343,9 +1353,6 @@ static char *resolve_relative_path(const char *rel) if (!starts_with(rel, "./") && !starts_with(rel, "../")) return NULL; - if (!startup_info) - die("BUG: startup_info struct is not initialized."); - if (!is_inside_work_tree()) die("relative path syntax can't be used outside working tree."); @@ -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) @@ -470,9 +481,15 @@ int strbuf_getwholeline(struct strbuf *sb, FILE *fp, int term) if (errno == ENOMEM) die("Out of memory, getdelim failed"); - /* Restore slopbuf that we moved out of the way before */ + /* + * Restore strbuf invariants; if getdelim left us with a NULL pointer, + * we can just re-init, but otherwise we should make sure that our + * length is empty, and that the result is NUL-terminated. + */ if (!sb->buf) strbuf_init(sb, 0); + else + strbuf_reset(sb); return EOF; } #else @@ -501,15 +518,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/string-list.c b/string-list.c index 2a32a3f1f5..62d20846cb 100644 --- a/string-list.c +++ b/string-list.c @@ -231,12 +231,12 @@ void string_list_sort(struct string_list *list) struct string_list_item *unsorted_string_list_lookup(struct string_list *list, const char *string) { - int i; + struct string_list_item *item; compare_strings_fn cmp = list->cmp ? list->cmp : strcmp; - for (i = 0; i < list->nr; i++) - if (!cmp(string, list->items[i].string)) - return list->items + i; + for_each_string_list_item(item, list) + if (!cmp(string, item->string)) + return item; return NULL; } diff --git a/submodule-config.c b/submodule-config.c index fe8ceabf30..7f67ec0c6a 100644 --- a/submodule-config.c +++ b/submodule-config.c @@ -30,7 +30,7 @@ enum lookup_type { lookup_path }; -static struct submodule_cache cache; +static struct submodule_cache the_submodule_cache; static int is_cache_init; static int config_path_cmp(const struct submodule_entry *a, @@ -392,8 +392,7 @@ static const struct submodule *config_from(struct submodule_cache *cache, struct hashmap_iter iter; struct submodule_entry *entry; - hashmap_iter_init(&cache->for_name, &iter); - entry = hashmap_iter_next(&iter); + entry = hashmap_iter_first(&cache->for_name, &iter); if (!entry) return NULL; return entry->config; @@ -427,8 +426,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) { @@ -458,14 +457,14 @@ static void ensure_cache_init(void) if (is_cache_init) return; - cache_init(&cache); + cache_init(&the_submodule_cache); is_cache_init = 1; } int parse_submodule_config_option(const char *var, const char *value) { struct parse_config_parameter parameter; - parameter.cache = &cache; + parameter.cache = &the_submodule_cache; parameter.commit_sha1 = NULL; parameter.gitmodules_sha1 = null_sha1; parameter.overwrite = 1; @@ -478,18 +477,18 @@ const struct submodule *submodule_from_name(const unsigned char *commit_sha1, const char *name) { ensure_cache_init(); - return config_from_name(&cache, commit_sha1, name); + return config_from_name(&the_submodule_cache, commit_sha1, name); } const struct submodule *submodule_from_path(const unsigned char *commit_sha1, const char *path) { ensure_cache_init(); - return config_from_path(&cache, commit_sha1, path); + return config_from_path(&the_submodule_cache, commit_sha1, path); } void submodule_free(void) { - cache_free(&cache); + cache_free(&the_submodule_cache); is_cache_init = 0; } 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-p4.sh b/t/lib-git-p4.sh index f9ae1d780d..012d40e746 100644 --- a/t/lib-git-p4.sh +++ b/t/lib-git-p4.sh @@ -50,7 +50,7 @@ native_path() { # at runtime (e.g. via NTP). The 'clock_gettime(CLOCK_MONOTONIC)' # function could fix that but it is not in Python until 3.3. time_in_seconds() { - python -c 'import time; print int(time.time())' + (cd / && "$PYTHON_PATH" -c 'import time; print(int(time.time()))') } # Try to pick a unique port: guess a large number, then hope @@ -198,9 +198,10 @@ marshal_dump() { cat >"$TRASH_DIRECTORY/marshal-dump.py" <<-EOF && import marshal import sys + instream = getattr(sys.stdin, 'buffer', sys.stdin) for i in range($line): - d = marshal.load(sys.stdin) - print d['$what'] + d = marshal.load(instream) + print(d[b'$what'].decode('utf-8')) EOF "$PYTHON_PATH" "$TRASH_DIRECTORY/marshal-dump.py" } 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..9317ba0858 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 @@ -71,6 +74,7 @@ PassEnv GIT_VALGRIND_OPTIONS PassEnv GNUPGHOME PassEnv ASAN_OPTIONS PassEnv GIT_TRACE +PassEnv GIT_CONFIG_NOSYSTEM Alias /dumb/ www/ Alias /auth/dumb/ www/auth/dumb/ 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/t1020-subdirectory.sh b/t/t1020-subdirectory.sh index 8e22b03cdd..df3183ea1a 100755 --- a/t/t1020-subdirectory.sh +++ b/t/t1020-subdirectory.sh @@ -141,13 +141,13 @@ test_expect_success 'GIT_PREFIX for !alias' ' test_expect_success 'GIT_PREFIX for built-ins' ' # Use GIT_EXTERNAL_DIFF to test that the "diff" built-in # receives the GIT_PREFIX variable. - printf "dir/" >expect && - printf "#!/bin/sh\n" >diff && - printf "printf \"\$GIT_PREFIX\"" >>diff && - chmod +x diff && + echo "dir/" >expect && + write_script diff <<-\EOF && + printf "%s\n" "$GIT_PREFIX" + EOF ( cd dir && - printf "change" >two && + echo "change" >two && GIT_EXTERNAL_DIFF=./diff git diff >../actual git checkout -- two ) && 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..3d6f1db9da 100755 --- a/t/t1300-repo-config.sh +++ b/t/t1300-repo-config.sh @@ -699,11 +699,13 @@ test_expect_success 'invalid unit' ' echo 1auto >expect && 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 - EOF test_must_fail git config --int --get aninvalid.unit 2>actual && - test_i18ncmp expect actual + test_i18ngrep "bad numeric config value .1auto. for .aninvalid.unit. in file .git/config: invalid unit" actual +' + +test_expect_success 'invalid stdin config' ' + echo "[broken" | test_must_fail git config --list --file - >output 2>&1 && + test_i18ngrep "bad config line 1 in standard input" output ' cat > expect << EOF @@ -957,13 +959,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 ' @@ -1140,6 +1144,9 @@ test_expect_success 'urlmatch' ' cookieFile = /tmp/cookie.txt EOF + test_expect_code 1 git config --bool --get-urlmatch doesnt.exist https://good.example.com >actual && + test_must_be_empty actual && + echo true >expect && git config --bool --get-urlmatch http.SSLverify https://good.example.com >actual && test_cmp expect actual && @@ -1201,4 +1208,154 @@ test_expect_success POSIXPERM,PERL 'preserves existing permissions' ' "die q(badrename) if ((stat(q(.git/config)))[2] & 07777) != 0600" ' +! test_have_prereq MINGW || +HOME="$(pwd)" # convert to Windows path + +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 !MINGW '--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 !MINGW '--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 !MINGW '--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/t1506-rev-parse-diagnosis.sh b/t/t1506-rev-parse-diagnosis.sh index 613d9bfe1b..86c2ff255d 100755 --- a/t/t1506-rev-parse-diagnosis.sh +++ b/t/t1506-rev-parse-diagnosis.sh @@ -166,11 +166,6 @@ test_expect_success 'relative path when cwd is outside worktree' ' grep "relative path syntax can.t be used outside working tree." error ' -test_expect_success 'relative path when startup_info is NULL' ' - test_must_fail test-match-trees HEAD:./file.txt HEAD:./file.txt 2>error && - grep "BUG: startup_info struct is not initialized." error -' - test_expect_success '<commit>:file correctly diagnosed after a pathname' ' test_must_fail git rev-parse file.txt HEAD:file.txt 1>actual 2>error && test_i18ngrep ! "exists on disk" error && 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/t1515-rev-parse-outside-repo.sh b/t/t1515-rev-parse-outside-repo.sh new file mode 100755 index 0000000000..3ec2971ee5 --- /dev/null +++ b/t/t1515-rev-parse-outside-repo.sh @@ -0,0 +1,45 @@ +#!/bin/sh + +test_description='check that certain rev-parse options work outside repo' +. ./test-lib.sh + +test_expect_success 'set up non-repo directory' ' + GIT_CEILING_DIRECTORIES=$(pwd) && + export GIT_CEILING_DIRECTORIES && + mkdir non-repo && + cd non-repo && + # confirm that git does not find a repo + test_must_fail git rev-parse --git-dir +' + +# Rather than directly test the output of sq-quote directly, +# make sure the shell can read back a tricky case, since +# that's what we really care about anyway. +tricky="really tricky with \\ and \" and '" +dump_args () { + for i in "$@"; do + echo "arg: $i" + done +} +test_expect_success 'rev-parse --sq-quote' ' + dump_args "$tricky" easy >expect && + eval "dump_args $(git rev-parse --sq-quote "$tricky" easy)" >actual && + test_cmp expect actual +' + +test_expect_success 'rev-parse --local-env-vars' ' + git rev-parse --local-env-vars >actual && + # we do not want to depend on the complete list here, + # so just look for something plausible + grep ^GIT_DIR actual +' + +test_expect_success 'rev-parse --resolve-git-dir' ' + git init --separate-git-dir repo dir && + test_must_fail git rev-parse --resolve-git-dir . && + echo "$(pwd)/repo" >expect && + git rev-parse --resolve-git-dir dir/.git >actual && + test_cmp expect actual +' + +test_done 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/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/t3200-branch.sh b/t/t3200-branch.sh index a897248490..f3e3b6cf2e 100755 --- a/t/t3200-branch.sh +++ b/t/t3200-branch.sh @@ -126,7 +126,28 @@ test_expect_success 'git branch -M foo bar should fail when bar is checked out' test_expect_success 'git branch -M baz bam should succeed when baz is checked out' ' git checkout -b baz && git branch bam && - git branch -M baz bam + git branch -M baz bam && + test $(git rev-parse --abbrev-ref HEAD) = bam +' + +test_expect_success 'git branch -M baz bam should succeed when baz is checked out as linked working tree' ' + git checkout master && + git worktree add -b baz bazdir && + git worktree add -f bazdir2 baz && + git branch -M baz bam && + test $(git -C bazdir rev-parse --abbrev-ref HEAD) = bam && + test $(git -C bazdir2 rev-parse --abbrev-ref HEAD) = bam +' + +test_expect_success 'git branch -M baz bam should succeed within a worktree in which baz is checked out' ' + git checkout -b baz && + git worktree add -f bazdir3 baz && + ( + cd bazdir3 && + git branch -M baz bam && + test $(git rev-parse --abbrev-ref HEAD) = bam + ) && + test $(git rev-parse --abbrev-ref HEAD) = bam ' test_expect_success 'git branch -M master should work when master is checked out' ' @@ -403,6 +424,12 @@ test_expect_success 'test deleting branch without config' ' test_i18ncmp expect actual ' +test_expect_success 'deleting currently checked out branch fails' ' + git worktree add -b my7 my7 && + test_must_fail git -C my7 branch -d my7 && + test_must_fail git branch -d my7 +' + test_expect_success 'test --track without .fetch entries' ' git branch --track my8 && test "$(git config branch.my8.remote)" && diff --git a/t/t3203-branch-output.sh b/t/t3203-branch-output.sh index 4261403cf6..c6a3ccba1b 100755 --- a/t/t3203-branch-output.sh +++ b/t/t3203-branch-output.sh @@ -184,4 +184,16 @@ test_expect_success 'ambiguous branch/tag not marked' ' test_cmp expect actual ' +test_expect_success 'local-branch symrefs shortened properly' ' + git symbolic-ref refs/heads/ref-to-branch refs/heads/branch-one && + git symbolic-ref refs/heads/ref-to-remote refs/remotes/origin/branch-one && + cat >expect <<-\EOF && + ref-to-branch -> branch-one + ref-to-remote -> refs/remotes/origin/branch-one + EOF + git branch >actual.raw && + grep ref-to <actual.raw >actual && + test_cmp expect actual +' + test_done 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/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh index 544f9ad508..d6d65a3a94 100755 --- a/t/t3404-rebase-interactive.sh +++ b/t/t3404-rebase-interactive.sh @@ -555,10 +555,9 @@ test_expect_success 'rebase a detached HEAD' ' test_expect_success 'rebase a commit violating pre-commit' ' mkdir -p .git/hooks && - PRE_COMMIT=.git/hooks/pre-commit && - echo "#!/bin/sh" > $PRE_COMMIT && - echo "test -z \"\$(git diff --cached --check)\"" >> $PRE_COMMIT && - chmod a+x $PRE_COMMIT && + write_script .git/hooks/pre-commit <<-\EOF && + test -z "$(git diff --cached --check)" + EOF echo "monde! " >> file1 && test_tick && test_must_fail git commit -m doesnt-verify file1 && 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/t4001-diff-rename.sh b/t/t4001-diff-rename.sh index 2f327b7495..ed90c6c6f9 100755 --- a/t/t4001-diff-rename.sh +++ b/t/t4001-diff-rename.sh @@ -77,6 +77,17 @@ test_expect_success 'favour same basenames even with minor differences' ' git show HEAD:path1 | sed "s/15/16/" > subdir/path1 && git status | test_i18ngrep "renamed: .*path1 -> subdir/path1"' +test_expect_success 'two files with same basename and same content' ' + git reset --hard && + mkdir -p dir/A dir/B && + cp path1 dir/A/file && + cp path1 dir/B/file && + git add dir && + git commit -m 2 && + git mv dir other-dir && + git status | test_i18ngrep "renamed: .*dir/A/file -> other-dir/A/file" +' + test_expect_success 'setup for many rename source candidates' ' git reset --hard && for i in 0 1 2 3 4 5 6 7 8 9; 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..899e52d50f 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 @@ -284,6 +284,12 @@ test_expect_success \ git index-pack test-3.pack && cmp test-3.idx test-3-${packname_3}.idx && + cat test-1-${packname_1}.pack >test-4.pack && + rm -f test-4.keep && + git index-pack --keep=why test-4.pack && + cmp test-1-${packname_1}.idx test-4.idx && + test -f test-4.keep && + :' test_expect_success 'unpacking with --strict' ' 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/t5400-send-pack.sh b/t/t5400-send-pack.sh index 04cea97f87..305ca7a930 100755 --- a/t/t5400-send-pack.sh +++ b/t/t5400-send-pack.sh @@ -128,6 +128,18 @@ test_expect_success 'denyNonFastforwards trumps --force' ' test "$victim_orig" = "$victim_head" ' +test_expect_success 'send-pack --all sends all branches' ' + # make sure we have at least 2 branches with different + # values, just to be thorough + git branch other-branch HEAD^ && + + git init --bare all.git && + git send-pack --all all.git && + git for-each-ref refs/heads >expect && + git -C all.git for-each-ref refs/heads >actual && + test_cmp expect actual +' + test_expect_success 'push --all excludes remote-tracking hierarchy' ' mkdir parent && ( diff --git a/t/t5500-fetch-pack.sh b/t/t5500-fetch-pack.sh index 3a9b77576f..9b9bec468a 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' ' @@ -531,6 +531,20 @@ test_expect_success 'shallow fetch with tags does not break the repository' ' git fsck ) ' + +test_expect_success 'fetch-pack can fetch a raw sha1' ' + git init hidden && + ( + cd hidden && + test_commit 1 && + test_commit 2 && + git update-ref refs/hidden/one HEAD^ && + git config transfer.hiderefs refs/hidden && + git config uploadpack.allowtipsha1inwant true + ) && + git fetch-pack hidden $(git -C hidden rev-parse refs/hidden/one) +' + check_prot_path () { cat >expected <<-EOF && Diag: url=$1 diff --git a/t/t5504-fetch-receive-strict.sh b/t/t5504-fetch-receive-strict.sh index a3e12d295a..44f3d5fb28 100755 --- a/t/t5504-fetch-receive-strict.sh +++ b/t/t5504-fetch-receive-strict.sh @@ -100,11 +100,8 @@ test_expect_success 'push with receive.fsckobjects' ' git config receive.fsckobjects true && git config transfer.fsckobjects false ) && - test_must_fail ok=sigpipe git push --porcelain dst master:refs/heads/test >act && - { - test_cmp exp act || - ! test -s act - } + test_must_fail git push --porcelain dst master:refs/heads/test >act && + test_cmp exp act ' test_expect_success 'push with transfer.fsckobjects' ' @@ -114,7 +111,8 @@ test_expect_success 'push with transfer.fsckobjects' ' cd dst && git config transfer.fsckobjects true ) && - test_must_fail ok=sigpipe git push --porcelain dst master:refs/heads/test >act + test_must_fail git push --porcelain dst master:refs/heads/test >act && + test_cmp exp act ' cat >bogus-commit <<\EOF 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..454d896390 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,13 @@ 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 config gc.autoDetach false && + 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..51c9669398 100755 --- a/t/t5532-fetch-proxy.sh +++ b/t/t5532-fetch-proxy.sh @@ -12,10 +12,8 @@ test_expect_success 'setup remote repo' ' ) ' -cat >proxy <<'EOF' -#!/bin/sh -echo >&2 "proxying for $*" -cmd=`"$PERL_PATH" -e ' +test_expect_success 'setup proxy script' ' + write_script proxy-get-cmd "$PERL_PATH" <<-\EOF && read(STDIN, $buf, 4); my $n = hex($buf) - 4; read(STDIN, $buf, $n); @@ -23,11 +21,16 @@ cmd=`"$PERL_PATH" -e ' # drop absolute-path on repo name $cmd =~ s{ /}{ }; print $cmd; -'` -echo >&2 "Running '$cmd'" -exec $cmd -EOF -chmod +x proxy + EOF + + write_script proxy <<-\EOF + echo >&2 "proxying for $*" + cmd=$(./proxy-get-cmd) + echo >&2 "Running $cmd" + exec $cmd + EOF +' + test_expect_success 'setup local repo' ' git remote add fake git://example.com/remote && git config core.gitproxy ./proxy 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/t5604-clone-reference.sh index dfa1bf79c5..4320082b1b 100755 --- a/t/t5700-clone-reference.sh +++ b/t/t5604-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/t5701-clone-local.sh b/t/t5605-clone-local.sh index 3c087e907c..3c087e907c 100755 --- a/t/t5701-clone-local.sh +++ b/t/t5605-clone-local.sh diff --git a/t/t5702-clone-options.sh b/t/t5606-clone-options.sh index 9e24ec88e6..9e24ec88e6 100755 --- a/t/t5702-clone-options.sh +++ b/t/t5606-clone-options.sh diff --git a/t/t5704-bundle.sh b/t/t5607-clone-bundle.sh index 348d9b3bc7..348d9b3bc7 100755 --- a/t/t5704-bundle.sh +++ b/t/t5607-clone-bundle.sh diff --git a/t/t5705-clone-2gb.sh b/t/t5608-clone-2gb.sh index 191d6d3a78..191d6d3a78 100755 --- a/t/t5705-clone-2gb.sh +++ b/t/t5608-clone-2gb.sh diff --git a/t/t5706-clone-branch.sh b/t/t5609-clone-branch.sh index 6e7a7be052..6e7a7be052 100755 --- a/t/t5706-clone-branch.sh +++ b/t/t5609-clone-branch.sh diff --git a/t/t5707-clone-detached.sh b/t/t5610-clone-detached.sh index 8b0d607df1..8b0d607df1 100755 --- a/t/t5707-clone-detached.sh +++ b/t/t5610-clone-detached.sh diff --git a/t/t5708-clone-config.sh b/t/t5611-clone-config.sh index 27d730c0a7..27d730c0a7 100755 --- a/t/t5708-clone-config.sh +++ b/t/t5611-clone-config.sh diff --git a/t/t5709-clone-refspec.sh b/t/t5612-clone-refspec.sh index 7ace2535c8..7ace2535c8 100755 --- a/t/t5709-clone-refspec.sh +++ b/t/t5612-clone-refspec.sh diff --git a/t/t5710-info-alternate.sh b/t/t5613-info-alternate.sh index 5a6e49d18d..9cd2626dba 100755 --- a/t/t5710-info-alternate.sh +++ b/t/t5613-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..4a2570ed95 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 ' @@ -292,6 +292,9 @@ test_expect_success 'setup submodule' ' echo content >file && git add file && git commit -m "added sub and file" && + mkdir -p deep/directory/hierachy && + git submodule add ./. deep/directory/hierachy/sub && + git commit -m "added another submodule" && git branch submodule ' @@ -475,4 +478,17 @@ test_expect_success 'mv -k does not accidentally destroy submodules' ' git checkout . ' +test_expect_success 'moving a submodule in nested directories' ' + ( + cd deep && + git mv directory ../ && + # git status would fail if the update of linking git dir to + # work dir of the submodule failed. + git status && + git config -f ../.gitmodules submodule.deep/directory/hierachy/sub.path >../actual && + echo "directory/hierachy/sub" >../expect + ) && + test_cmp actual expect +' + test_done 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/t7300-clean.sh b/t/t7300-clean.sh index 86ceb38b01..b89fd2a6ad 100755 --- a/t/t7300-clean.sh +++ b/t/t7300-clean.sh @@ -495,7 +495,7 @@ test_expect_success 'should not clean submodules' ' test_path_is_missing to_clean ' -test_expect_success POSIXPERM 'should avoid cleaning possible submodules' ' +test_expect_success POSIXPERM,SANITY 'should avoid cleaning possible submodules' ' rm -fr to_clean possible_sub1 && mkdir to_clean possible_sub1 && test_when_finished "rm -rf possible_sub*" && diff --git a/t/t7400-submodule-basic.sh b/t/t7400-submodule-basic.sh index be82a75e54..a41be3142e 100755 --- a/t/t7400-submodule-basic.sh +++ b/t/t7400-submodule-basic.sh @@ -818,6 +818,47 @@ test_expect_success 'submodule add --name allows to replace a submodule with ano ) ' +test_expect_success 'recursive relative submodules stay relative' ' + test_when_finished "rm -rf super clone2 subsub sub3" && + mkdir subsub && + ( + cd subsub && + git init && + >t && + git add t && + git commit -m "initial commit" + ) && + mkdir sub3 && + ( + cd sub3 && + git init && + >t && + git add t && + git commit -m "initial commit" && + git submodule add ../subsub dirdir/subsub && + git commit -m "add submodule subsub" + ) && + mkdir super && + ( + cd super && + git init && + >t && + git add t && + git commit -m "initial commit" && + git submodule add ../sub3 && + git commit -m "add submodule sub" + ) && + git clone super clone2 && + ( + cd clone2 && + git submodule update --init --recursive && + echo "gitdir: ../.git/modules/sub3" >./sub3/.git_expect && + echo "gitdir: ../../../.git/modules/sub3/modules/dirdir/subsub" >./sub3/dirdir/subsub/.git_expect + ) && + test_cmp clone2/sub3/.git_expect clone2/sub3/.git && + test_cmp clone2/sub3/dirdir/subsub/.git_expect clone2/sub3/dirdir/subsub/.git +' + test_expect_success 'submodule add with an existing name fails unless forced' ' ( cd addtest2 && @@ -849,6 +890,19 @@ test_expect_success 'set up a second submodule' ' git commit -m "submodule example2 added" ' +test_expect_success 'submodule deinit works on repository without submodules' ' + test_when_finished "rm -rf newdirectory" && + mkdir newdirectory && + ( + cd newdirectory && + git init && + >file && + git add file && + git commit -m "repo should not be empty" + git submodule deinit . + ) +' + test_expect_success 'submodule deinit should remove the whole submodule section from .git/config' ' git config submodule.example.foo bar && git config submodule.example2.frotz nitfol && diff --git a/t/t7406-submodule-update.sh b/t/t7406-submodule-update.sh index dda3929d99..e5af4b4976 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" } @@ -63,6 +63,10 @@ test_expect_success 'setup a submodule tree' ' git submodule add ../none none && test_tick && git commit -m "none" + ) && + git clone . recursivesuper && + ( cd recursivesuper + git submodule add ../super super ) ' @@ -95,6 +99,35 @@ test_expect_success 'submodule update from subdirectory' ' ) ' +supersha1=$(git -C super rev-parse HEAD) +mergingsha1=$(git -C super/merging rev-parse HEAD) +nonesha1=$(git -C super/none rev-parse HEAD) +rebasingsha1=$(git -C super/rebasing rev-parse HEAD) +submodulesha1=$(git -C super/submodule rev-parse HEAD) +pwd=$(pwd) + +cat <<EOF >expect +Submodule path '../super': checked out '$supersha1' +Submodule 'merging' ($pwd/merging) registered for path '../super/merging' +Submodule 'none' ($pwd/none) registered for path '../super/none' +Submodule 'rebasing' ($pwd/rebasing) registered for path '../super/rebasing' +Submodule 'submodule' ($pwd/submodule) registered for path '../super/submodule' +Submodule path '../super/merging': checked out '$mergingsha1' +Submodule path '../super/none': checked out '$nonesha1' +Submodule path '../super/rebasing': checked out '$rebasingsha1' +Submodule path '../super/submodule': checked out '$submodulesha1' +EOF + +test_expect_success 'submodule update --init --recursive from subdirectory' ' + git -C recursivesuper/super reset --hard HEAD^ && + (cd recursivesuper && + mkdir tmp && + cd tmp && + git submodule update --init --recursive ../super >../../actual + ) && + test_cmp expect actual +' + apos="'"; test_expect_success 'submodule update does not fetch already present commits' ' (cd submodule && @@ -311,16 +344,59 @@ test_expect_success 'submodule update - command in .git/config' ' ) ' +cat << EOF >expect +Execution of 'false $submodulesha1' failed in submodule path 'submodule' +EOF + test_expect_success 'submodule update - command in .git/config catches failure' ' (cd super && git config submodule.submodule.update "!false" ) && (cd super/submodule && - git reset --hard HEAD^ + git reset --hard $submodulesha1^ ) && (cd super && - test_must_fail git submodule update submodule - ) + test_must_fail git submodule update submodule 2>../actual + ) && + test_cmp actual expect +' + +cat << EOF >expect +Execution of 'false $submodulesha1' failed in submodule path '../submodule' +EOF + +test_expect_success 'submodule update - command in .git/config catches failure -- subdirectory' ' + (cd super && + git config submodule.submodule.update "!false" + ) && + (cd super/submodule && + git reset --hard $submodulesha1^ + ) && + (cd super && + mkdir tmp && cd tmp && + test_must_fail git submodule update ../submodule 2>../../actual + ) && + test_cmp actual expect +' + +cat << EOF >expect +Execution of 'false $submodulesha1' failed in submodule path '../super/submodule' +Failed to recurse into submodule path '../super' +EOF + +test_expect_success 'recursive submodule update - command in .git/config catches failure -- subdirectory' ' + (cd recursivesuper && + git submodule update --remote super && + git add super && + git commit -m "update to latest to have more than one commit in submodules" + ) && + git -C recursivesuper/super config submodule.submodule.update "!false" && + git -C recursivesuper/super/submodule reset --hard $submodulesha1^ && + (cd recursivesuper && + mkdir -p tmp && cd tmp && + test_must_fail git submodule update --recursive ../super 2>../../actual + ) && + test_cmp actual expect ' test_expect_success 'submodule init does not copy command into .git/config' ' diff --git a/t/t7407-submodule-foreach.sh b/t/t7407-submodule-foreach.sh index 7ca10b8606..6ba5daf42e 100755 --- a/t/t7407-submodule-foreach.sh +++ b/t/t7407-submodule-foreach.sh @@ -178,6 +178,26 @@ test_expect_success 'test messages from "foreach --recursive"' ' ' cat > expect <<EOF +Entering '../nested1' +Entering '../nested1/nested2' +Entering '../nested1/nested2/nested3' +Entering '../nested1/nested2/nested3/submodule' +Entering '../sub1' +Entering '../sub2' +Entering '../sub3' +EOF + +test_expect_success 'test messages from "foreach --recursive" from subdirectory' ' + ( + cd clone2 && + mkdir untracked && + cd untracked && + git submodule foreach --recursive >../../actual + ) && + test_i18ncmp expect actual +' + +cat > expect <<EOF nested1-nested1 nested2-nested2 nested3-nested3 @@ -242,8 +262,12 @@ test_expect_success 'test "status --recursive"' ' test_cmp expect actual ' -sed -e "/nested2 /s/.*/+$nested2sha1 nested1\/nested2 (file2~1)/;/sub[1-3]/d" < expect > expect2 -mv -f expect2 expect +cat > expect <<EOF + $nested1sha1 nested1 (heads/master) ++$nested2sha1 nested1/nested2 (file2~1) + $nested3sha1 nested1/nested2/nested3 (heads/master) + $submodulesha1 nested1/nested2/nested3/submodule (heads/master) +EOF test_expect_success 'ensure "status --cached --recursive" preserves the --cached flag' ' ( @@ -257,6 +281,27 @@ test_expect_success 'ensure "status --cached --recursive" preserves the --cached test_cmp expect actual ' +nested2sha1=$(git -C clone3/nested1/nested2 rev-parse HEAD) + +cat > expect <<EOF + $nested1sha1 ../nested1 (heads/master) ++$nested2sha1 ../nested1/nested2 (file2) + $nested3sha1 ../nested1/nested2/nested3 (heads/master) + $submodulesha1 ../nested1/nested2/nested3/submodule (heads/master) + $sub1sha1 ../sub1 ($sub1sha1_short) + $sub2sha1 ../sub2 ($sub2sha1_short) + $sub3sha1 ../sub3 (heads/master) +EOF + +test_expect_success 'test "status --recursive" from sub directory' ' + ( + cd clone3 && + mkdir tmp && cd tmp && + git submodule status --recursive > ../../actual + ) && + test_cmp expect actual +' + test_expect_success 'use "git clone --recursive" to checkout all submodules' ' git clone --recursive super clone4 && ( 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/t7501-commit.sh b/t/t7501-commit.sh index 63e04277f9..900f7de05a 100755 --- a/t/t7501-commit.sh +++ b/t/t7501-commit.sh @@ -200,6 +200,26 @@ test_expect_success '--amend --edit of empty message' ' test_cmp expect msg ' +test_expect_success '--amend to set message to empty' ' + echo bata >file && + git add file && + git commit -m "unamended" && + git commit --amend --allow-empty-message -m "" && + git diff-tree -s --format=%s HEAD >msg && + echo "" >expect && + test_cmp expect msg +' + +test_expect_success '--amend to set empty message needs --allow-empty-message' ' + echo conga >file && + git add file && + git commit -m "unamended" && + test_must_fail git commit --amend -m "" && + git diff-tree -s --format=%s HEAD >msg && + echo "unamended" >expect && + test_cmp expect msg +' + test_expect_success '-m --edit' ' echo amended >expect && git commit --allow-empty -m buffer && diff --git a/t/t7502-commit.sh b/t/t7502-commit.sh index b39e313ac2..725687d5d5 100755 --- a/t/t7502-commit.sh +++ b/t/t7502-commit.sh @@ -527,11 +527,6 @@ try_commit_status_combo () { test_i18ngrep "^# Changes to be committed:" .git/COMMIT_EDITMSG ' - test_expect_success 'commit' ' - try_commit "" && - test_i18ngrep "^# Changes to be committed:" .git/COMMIT_EDITMSG - ' - test_expect_success 'commit --status' ' try_commit --status && test_i18ngrep "^# Changes to be committed:" .git/COMMIT_EDITMSG 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/t7600-merge.sh b/t/t7600-merge.sh index 302e238263..85248a14b6 100755 --- a/t/t7600-merge.sh +++ b/t/t7600-merge.sh @@ -33,9 +33,11 @@ printf '%s\n' 1 2 3 4 5 6 7 8 9 >file printf '%s\n' '1 X' 2 3 4 5 6 7 8 9 >file.1 printf '%s\n' 1 2 3 4 '5 X' 6 7 8 9 >file.5 printf '%s\n' 1 2 3 4 5 6 7 8 '9 X' >file.9 +printf '%s\n' 1 2 3 4 5 6 7 8 '9 Y' >file.9y printf '%s\n' '1 X' 2 3 4 5 6 7 8 9 >result.1 printf '%s\n' '1 X' 2 3 4 '5 X' 6 7 8 9 >result.1-5 printf '%s\n' '1 X' 2 3 4 '5 X' 6 7 8 '9 X' >result.1-5-9 +printf '%s\n' 1 2 3 4 5 6 7 8 '9 Z' >result.9z >empty create_merge_msgs () { @@ -128,6 +130,12 @@ test_expect_success 'setup' ' git tag c2 && c2=$(git rev-parse HEAD) && git reset --hard "$c0" && + cp file.9y file && + git add file && + test_tick && + git commit -m "commit 7" && + git tag c7 && + git reset --hard "$c0" && cp file.9 file && git add file && test_tick && @@ -218,6 +226,26 @@ test_expect_success 'merge c1 with c2' ' verify_parents $c1 $c2 ' +test_expect_success 'merge --squash c3 with c7' ' + git reset --hard c3 && + test_must_fail git merge --squash c7 && + cat result.9z >file && + git commit --no-edit -a && + + { + cat <<-EOF + Squashed commit of the following: + + $(git show -s c7) + + # Conflicts: + # file + EOF + } >expect && + git cat-file commit HEAD | sed -e '1,/^$/d' >actual && + test_cmp expect actual +' + test_debug 'git log --graph --decorate --oneline --all' test_expect_success 'merge c1 with c2 and c3' ' @@ -725,4 +753,14 @@ test_expect_success 'merge detects mod-256 conflicts (resolve)' ' test_must_fail git merge -s resolve master ' +test_expect_success 'merge nothing into void' ' + git init void && + ( + cd void && + git remote add up .. && + git fetch up && + test_must_fail git merge FETCH_HEAD + ) +' + 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/t7610-mergetool.sh b/t/t7610-mergetool.sh index 6f12b235b3..76306cf268 100755 --- a/t/t7610-mergetool.sh +++ b/t/t7610-mergetool.sh @@ -243,6 +243,70 @@ test_expect_success 'mergetool takes partial path' ' git reset --hard ' +test_expect_success 'mergetool delete/delete conflict' ' + git checkout -b delete-base branch1 && + mkdir -p a/a && + (echo one; echo two; echo 3; echo 4) >a/a/file.txt && + git add a/a/file.txt && + git commit -m"base file" && + git checkout -b move-to-b delete-base && + mkdir -p b/b && + git mv a/a/file.txt b/b/file.txt && + (echo one; echo two; echo 4) >b/b/file.txt && + git commit -a -m"move to b" && + git checkout -b move-to-c delete-base && + mkdir -p c/c && + git mv a/a/file.txt c/c/file.txt && + (echo one; echo two; echo 3) >c/c/file.txt && + git commit -a -m"move to c" && + test_must_fail git merge move-to-b && + echo d | git mergetool a/a/file.txt && + ! test -f a/a/file.txt && + git reset --hard HEAD && + test_must_fail git merge move-to-b && + echo m | git mergetool a/a/file.txt && + test -f b/b/file.txt && + git reset --hard HEAD && + test_must_fail git merge move-to-b && + ! echo a | git mergetool a/a/file.txt && + ! test -f a/a/file.txt && + git reset --hard HEAD +' + +test_expect_success 'mergetool produces no errors when keepBackup is used' ' + test_config mergetool.keepBackup true && + test_must_fail git merge move-to-b && + : >expect && + echo d | git mergetool a/a/file.txt 2>actual && + test_cmp expect actual && + ! test -d a && + git reset --hard HEAD +' + +test_expect_success 'mergetool honors tempfile config for deleted files' ' + test_config mergetool.keepTemporaries false && + test_must_fail git merge move-to-b && + echo d | git mergetool a/a/file.txt && + ! test -d a && + git reset --hard HEAD +' + +test_expect_success 'mergetool keeps tempfiles when aborting delete/delete' ' + test_config mergetool.keepTemporaries true && + test_must_fail git merge move-to-b && + ! (echo a; echo n) | git mergetool a/a/file.txt && + test -d a/a && + cat >expect <<-\EOF && + file_BASE_.txt + file_LOCAL_.txt + file_REMOTE_.txt + EOF + ls -1 a/a | sed -e "s/[0-9]*//g" >actual && + test_cmp expect actual && + git clean -fdx && + git reset --hard HEAD +' + test_expect_success 'deleted vs modified submodule' ' git checkout -b test6 branch1 && git submodule update -N && 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..ff7a9e968f 100755 --- a/t/t7800-difftool.sh +++ b/t/t7800-difftool.sh @@ -20,7 +20,7 @@ difftool_test_setup () prompt_given () { prompt="$1" - test "$prompt" = "Launch 'test-tool' [Y/n]: branch" + test "$prompt" = "Launch 'test-tool' [Y/n]? branch" } # Create a file on master and change it on branch @@ -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..1e72971a16 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 && @@ -864,6 +905,33 @@ test_expect_success 'inside git repository but with --no-index' ' ) ' +test_expect_success 'grep --no-index descends into repos, but not .git' ' + rm -fr non && + mkdir -p non/git && + ( + GIT_CEILING_DIRECTORIES="$(pwd)/non" && + export GIT_CEILING_DIRECTORIES && + cd non/git && + + echo magic >file && + git init repo && + ( + cd repo && + echo magic >file && + git add file && + git commit -m foo && + echo magic >.git/file + ) && + + cat >expect <<-\EOF && + file + repo/file + EOF + git grep -l --no-index magic >actual && + test_cmp expect actual + ) +' + test_expect_success 'setup double-dash tests' ' cat >double-dash <<EOF && -- diff --git a/t/t8003-blame-corner-cases.sh b/t/t8003-blame-corner-cases.sh index 16f1442c1e..a9b266f0d3 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 ' @@ -212,4 +212,18 @@ test_expect_success 'blame file with CRLF attributes text' ' grep "A U Thor" actual ' +test_expect_success 'blame file with CRLF core.autocrlf=true' ' + git config core.autocrlf false && + printf "testcase\r\n" >crlfinrepo && + >.gitattributes && + git add crlfinrepo && + git commit -m "add crlfinrepo" && + git config core.autocrlf true && + mv crlfinrepo tmp && + git checkout crlfinrepo && + rm tmp && + git blame crlfinrepo >actual && + grep "A U Thor" actual +' + test_done 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..a87d3d3fc1 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,!MINGW,!UTF8_NFD_TO_NFC '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 !MINGW,!UTF8_NFD_TO_NFC '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/t9117-git-svn-init-clone.sh b/t/t9117-git-svn-init-clone.sh index a66f43c6b1..69a675052e 100755 --- a/t/t9117-git-svn-init-clone.sh +++ b/t/t9117-git-svn-init-clone.sh @@ -119,4 +119,10 @@ test_expect_success 'clone with -s/-T/-b/-t and --prefix "" still works' ' rm -f warning ' +test_expect_success 'init with -T as a full url works' ' + test ! -d project && + git svn init -T "$svnrepo"/project/trunk project && + rm -rf project + ' + test_done 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..25bb60b281 100755 --- a/t/t9300-fast-import.sh +++ b/t/t9300-fast-import.sh @@ -55,6 +55,10 @@ test_expect_success 'empty stream succeeds' ' git fast-import </dev/null ' +test_expect_success 'truncated stream complains' ' + echo "tag foo" | test_must_fail git fast-import +' + test_expect_success 'A: create pack from stdin' ' test_tick && cat >input <<-INPUT_END && @@ -171,10 +175,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 +268,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 +368,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 +477,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 +503,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 +628,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 +646,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 +655,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 +671,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 +691,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 +767,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 +799,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 +842,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 +933,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 +1110,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 +1507,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 +1528,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 +1574,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 +1635,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 +1695,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 +1982,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 +2049,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/t9802-git-p4-filetype.sh b/t/t9802-git-p4-filetype.sh index 66d3fc91a7..eb9a8ed197 100755 --- a/t/t9802-git-p4-filetype.sh +++ b/t/t9802-git-p4-filetype.sh @@ -223,12 +223,12 @@ build_gendouble() { import sys import struct - s = struct.pack(">LL18s", + s = struct.pack(b">LL18s", 0x00051607, # AppleDouble 0x00020000, # version 2 - "" # pad to 26 bytes + b"" # pad to 26 bytes ) - sys.stdout.write(s) + getattr(sys.stdout, 'buffer', sys.stdout).write(s) EOF } diff --git a/t/t9824-git-p4-git-lfs.sh b/t/t9824-git-p4-git-lfs.sh index 0b664a377c..110a7e7924 100755 --- a/t/t9824-git-p4-git-lfs.sh +++ b/t/t9824-git-p4-git-lfs.sh @@ -13,6 +13,10 @@ test_file_in_lfs () { FILE="$1" && SIZE="$2" && EXPECTED_CONTENT="$3" && + sed -n '1,1 p' "$FILE" | grep "^version " && + sed -n '2,2 p' "$FILE" | grep "^oid " && + sed -n '3,3 p' "$FILE" | grep "^size " && + test_line_count = 3 "$FILE" && cat "$FILE" | grep "size $SIZE" && HASH=$(cat "$FILE" | grep "oid sha256:" | sed -e "s/oid sha256://g") && LFS_FILE=".git/lfs/objects/$(echo "$HASH" | cut -c1-2)/$(echo "$HASH" | cut -c3-4)/$HASH" && @@ -265,7 +269,7 @@ test_expect_success 'Add big files to repo and store files in LFS based on compr # We only import HEAD here ("@all" is missing!) git p4 clone --destination="$git" //depot && - test_file_in_lfs file6.bin 13 "content 6 bin 39 bytes XXXXXYYYYYZZZZZ" + test_file_in_lfs file6.bin 39 "content 6 bin 39 bytes XXXXXYYYYYZZZZZ" && test_file_count_in_dir ".git/lfs/objects" 1 && cat >expect <<-\EOF && 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..79afa8748e 100644 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -202,13 +202,13 @@ do } run_list=$1; shift ;; --run=*) - run_list=$(expr "z$1" : 'z[^=]*=\(.*\)'); shift ;; + run_list=${1#--*=}; shift ;; -h|--h|--he|--hel|--help) help=t; shift ;; -v|--v|--ve|--ver|--verb|--verbo|--verbos|--verbose) verbose=t; shift ;; --verbose-only=*) - verbose_only=$(expr "z$1" : 'z[^=]*=\(.*\)') + verbose_only=${1#--*=} shift ;; -q|--q|--qu|--qui|--quie|--quiet) # Ignore --quiet under a TAP::Harness. Saying how many tests @@ -222,15 +222,15 @@ do valgrind=memcheck shift ;; --valgrind=*) - valgrind=$(expr "z$1" : 'z[^=]*=\(.*\)') + valgrind=${1#--*=} shift ;; --valgrind-only=*) - valgrind_only=$(expr "z$1" : 'z[^=]*=\(.*\)') + valgrind_only=${1#--*=} shift ;; --tee) shift ;; # was handled already --root=*) - root=$(expr "z$1" : 'z[^=]*=\(.*\)') + root=${1#--*=} shift ;; --chain-lint) GIT_TEST_CHAIN_LINT=1 @@ -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-match-trees.c b/test-match-trees.c index 109f03e711..4dad7095f1 100644 --- a/test-match-trees.c +++ b/test-match-trees.c @@ -6,6 +6,8 @@ int main(int ac, char **av) unsigned char hash1[20], hash2[20], shifted[20]; struct tree *one, *two; + setup_git_directory(); + if (get_sha1(av[1], hash1)) die("cannot parse %s as an object name", av[1]); if (get_sha1(av[2], hash2)) 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-revision-walking.c b/test-revision-walking.c index 285f06b7ff..3d0313354b 100644 --- a/test-revision-walking.c +++ b/test-revision-walking.c @@ -50,6 +50,8 @@ int main(int argc, char **argv) if (argc < 2) return 1; + setup_git_directory(); + if (!strcmp(argv[1], "run-twice")) { printf("1st\n"); if (!run_revision_walk()) 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) diff --git a/upload-pack.c b/upload-pack.c index b3f6653ffd..dc802a07c2 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -90,35 +90,32 @@ static void create_pack_file(void) "corruption on the remote side."; int buffered = -1; ssize_t sz; - const char *argv[13]; - int i, arg = 0; + int i; FILE *pipe_fd; if (shallow_nr) { - argv[arg++] = "--shallow-file"; - argv[arg++] = ""; + argv_array_push(&pack_objects.args, "--shallow-file"); + argv_array_push(&pack_objects.args, ""); } - argv[arg++] = "pack-objects"; - argv[arg++] = "--revs"; + argv_array_push(&pack_objects.args, "pack-objects"); + argv_array_push(&pack_objects.args, "--revs"); if (use_thin_pack) - argv[arg++] = "--thin"; + argv_array_push(&pack_objects.args, "--thin"); - argv[arg++] = "--stdout"; + argv_array_push(&pack_objects.args, "--stdout"); if (shallow_nr) - argv[arg++] = "--shallow"; + argv_array_push(&pack_objects.args, "--shallow"); if (!no_progress) - argv[arg++] = "--progress"; + argv_array_push(&pack_objects.args, "--progress"); if (use_ofs_delta) - argv[arg++] = "--delta-base-offset"; + argv_array_push(&pack_objects.args, "--delta-base-offset"); if (use_include_tag) - argv[arg++] = "--include-tag"; - argv[arg++] = NULL; + argv_array_push(&pack_objects.args, "--include-tag"); pack_objects.in = -1; pack_objects.out = -1; pack_objects.err = -1; pack_objects.git_cmd = 1; - pack_objects.argv = argv; if (start_command(&pack_objects)) die("git upload-pack: unable to fork git-pack-objects"); @@ -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; } } @@ -430,23 +446,6 @@ int git_mkstemp(char *path, size_t len, const char *template) return mkstemp(path); } -/* git_mkstemps() - create tmp file with suffix honoring TMPDIR variable. */ -int git_mkstemps(char *path, size_t len, const char *template, int suffix_len) -{ - const char *tmp; - size_t n; - - tmp = getenv("TMPDIR"); - if (!tmp) - tmp = "/tmp"; - n = snprintf(path, len, "%s/%s", tmp, template); - if (len <= n) { - errno = ENAMETOOLONG; - return -1; - } - return mkstemps(path, suffix_len); -} - /* Adapted from libiberty's mkstemp.c. */ #undef TMP_MAX diff --git a/wt-status.c b/wt-status.c index bba25960b4..1ea2ebe4c0 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 { @@ -1063,9 +1063,7 @@ static void abbrev_sha1_in_line(struct strbuf *line) strbuf_addf(line, "%s", split[i]->buf); } } - for (i = 0; split[i]; i++) - strbuf_release(split[i]); - + strbuf_list_free(split); } static void read_rebase_todolist(const char *fname, struct string_list *lines) @@ -1076,7 +1074,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 +1675,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); diff --git a/xdiff/xprepare.c b/xdiff/xprepare.c index 63a22c630e..13b55aba74 100644 --- a/xdiff/xprepare.c +++ b/xdiff/xprepare.c @@ -301,10 +301,11 @@ int xdl_prepare_env(mmfile_t *mf1, mmfile_t *mf2, xpparam_t const *xpp, xdl_free_ctx(&xe->xdf2); xdl_free_ctx(&xe->xdf1); + xdl_free_classifier(&cf); return -1; } - if (!(xpp->flags & XDF_HISTOGRAM_DIFF)) + if (XDF_DIFF_ALG(xpp->flags) != XDF_HISTOGRAM_DIFF) xdl_free_classifier(&cf); return 0; |